From 011d40d86f445a7c765ff1afba7d1d98ad2cc677 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 16 Aug 2018 17:49:20 +0700 Subject: [PATCH] re-add SD 6.0.0 due to OTA bug --- .gitignore | 1 + Makefile | 3 +- .../feather52832_bootloader_s132_6.1.0r0.hex | 10641 --------------- .../feather52832_bootloader_s132_6.1.0r0.zip | Bin 168578 -> 0 bytes .../feather52840_bootloader_s140_6.1.0r0.hex | 11209 ---------------- .../feather52840_bootloader_s140_6.1.0r0.zip | Bin 177490 -> 0 bytes .../pca10056_bootloader_s140_6.1.0r0.hex | 11208 --------------- .../pca10056_bootloader_s140_6.1.0r0.zip | Bin 177478 -> 0 bytes .../s132_nrf52_6.0.0_API/include/ble.h | 622 + .../s132_nrf52_6.0.0_API/include/ble_err.h | 93 + .../s132_nrf52_6.0.0_API/include/ble_gap.h | 2653 ++++ .../s132_nrf52_6.0.0_API/include/ble_gatt.h | 228 + .../s132_nrf52_6.0.0_API/include/ble_gattc.h | 715 + .../s132_nrf52_6.0.0_API/include/ble_gatts.h | 845 ++ .../s132_nrf52_6.0.0_API/include/ble_hci.h | 135 + .../s132_nrf52_6.0.0_API/include/ble_l2cap.h | 506 + .../s132_nrf52_6.0.0_API/include/ble_ranges.h | 156 + .../s132_nrf52_6.0.0_API/include/ble_types.h | 215 + .../include/nrf52/nrf_mbr.h | 241 + .../s132_nrf52_6.0.0_API/include/nrf_error.h | 90 + .../include/nrf_error_sdm.h | 70 + .../include/nrf_error_soc.h | 85 + .../s132_nrf52_6.0.0_API/include/nrf_nvic.h | 486 + .../s132_nrf52_6.0.0_API/include/nrf_sdm.h | 358 + .../s132_nrf52_6.0.0_API/include/nrf_soc.h | 964 ++ .../s132_nrf52_6.0.0_API/include/nrf_svc.h | 90 + .../s132_nrf52_6.0.0_license-agreement.txt | 35 + .../s132_nrf52_6.0.0_softdevice.hex | 9278 +++++++++++++ .../s140_nrf52_6.0.0_API/include/ble.h | 622 + .../s140_nrf52_6.0.0_API/include/ble_err.h | 93 + .../s140_nrf52_6.0.0_API/include/ble_gap.h | 2669 ++++ .../s140_nrf52_6.0.0_API/include/ble_gatt.h | 228 + .../s140_nrf52_6.0.0_API/include/ble_gattc.h | 715 + .../s140_nrf52_6.0.0_API/include/ble_gatts.h | 845 ++ .../s140_nrf52_6.0.0_API/include/ble_hci.h | 135 + .../s140_nrf52_6.0.0_API/include/ble_l2cap.h | 506 + .../s140_nrf52_6.0.0_API/include/ble_ranges.h | 156 + .../s140_nrf52_6.0.0_API/include/ble_types.h | 215 + .../include/nrf52/nrf_mbr.h | 242 + .../s140_nrf52_6.0.0_API/include/nrf_error.h | 90 + .../include/nrf_error_sdm.h | 70 + .../include/nrf_error_soc.h | 85 + .../s140_nrf52_6.0.0_API/include/nrf_nvic.h | 486 + .../s140_nrf52_6.0.0_API/include/nrf_sdm.h | 358 + .../s140_nrf52_6.0.0_API/include/nrf_soc.h | 1036 ++ .../s140_nrf52_6.0.0_API/include/nrf_svc.h | 90 + .../s140_nrf52_6.0.0_license-agreement.txt | 35 + .../s140_nrf52_6.0.0_softdevice.hex | 9443 +++++++++++++ 48 files changed, 35986 insertions(+), 33060 deletions(-) delete mode 100644 bin/feather52832/6.1.0r0/feather52832_bootloader_s132_6.1.0r0.hex delete mode 100644 bin/feather52832/6.1.0r0/feather52832_bootloader_s132_6.1.0r0.zip delete mode 100644 bin/feather52840/6.1.0r0/feather52840_bootloader_s140_6.1.0r0.hex delete mode 100644 bin/feather52840/6.1.0r0/feather52840_bootloader_s140_6.1.0r0.zip delete mode 100644 bin/pca10056/6.1.0r0/pca10056_bootloader_s140_6.1.0r0.hex delete mode 100644 bin/pca10056/6.1.0r0/pca10056_bootloader_s140_6.1.0r0.zip create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_err.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gap.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gatt.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gattc.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gatts.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_hci.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_l2cap.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_ranges.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_types.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf52/nrf_mbr.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error_sdm.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error_soc.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_nvic.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_sdm.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_soc.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_svc.h create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_license-agreement.txt create mode 100644 lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_softdevice.hex create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_err.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gap.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gatt.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gattc.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gatts.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_hci.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_l2cap.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_ranges.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_types.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf52/nrf_mbr.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error_sdm.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error_soc.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_nvic.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_sdm.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_soc.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_svc.h create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_license-agreement.txt create mode 100644 lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_softdevice.hex diff --git a/.gitignore b/.gitignore index dd3c2c4..d528193 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ Mkfile.old dkms.conf src/segger/Output +_build-*/ diff --git a/Makefile b/Makefile index e1d52e3..3cf3bbe 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ TUSB_PATH = lib/tinyusb/src NRFX_PATH = lib/nrfx SD_VER1 = 6 -SD_VER2 = 1 +SD_VER2 = 0 SD_VER3 = 0 SD_VER4 = 0 @@ -403,7 +403,6 @@ dfu-flash: $(NRFUTIL) --verbose dfu serial --package $(VERSION_FPATH).zip -p $(SERIAL) -b 115200 --singlebank endif - sd: @echo Flashing: $(SD_HEX) diff --git a/bin/feather52832/6.1.0r0/feather52832_bootloader_s132_6.1.0r0.hex b/bin/feather52832/6.1.0r0/feather52832_bootloader_s132_6.1.0r0.hex deleted file mode 100644 index 071f664..0000000 --- a/bin/feather52832/6.1.0r0/feather52832_bootloader_s132_6.1.0r0.hex +++ /dev/null @@ -1,10641 +0,0 @@ -:020000040000FA -:1000000000040020E90800007D050000C908000088 -:1000100087050000910500009B050000000000001E -:100020000000000000000000000000000D090000BA -:10003000A505000000000000AF050000B9050000A4 -:10004000C3050000CD050000D7050000E105000054 -:10005000EB050000F5050000FF05000009060000A3 -:10006000130600001D0600002706000031060000F0 -:100070003B060000450600004F0600005906000040 -:10008000630600006D060000770600008106000090 -:100090008B060000950600009F060000A9060000E0 -:1000A000B3060000BD060000C7060000D106000030 -:1000B000DB060000E5060000EF060000F906000080 -:1000C000030700000D0700001707000021070000CC -:1000D0002B070000350700003F070000490700001C -:1000E000530700005D07000067070000710700006C -:1000F0007B070000850700008F07000099070000BC -:10010000A30700001FB500F003F88DE80F001FBD26 -:1001100000F0E0BB1FB56FF00100009040100390AD -:10012000029001904FF010208069000B420900F00E -:100130001F045DF822300120A04083434DF8223097 -:10014000684600F045F91FBDF0B54FF6FF734FF458 -:10015000B4751A466E1E11E0A94201D3344600E080 -:100160000C46091B30F8027B641E3B441A44F9D14B -:100170009CB204EB134394B204EB12420029EBD17E -:1001800098B200EB134002EB124140EA0140F0BD8F -:10019000DE4992B00446D1E90001CDE91001FF2209 -:1001A0004021684600F03CFB94E80F008DE80F000A -:1001B000684610A902E004C841F8042D8842FAD12B -:1001C00010216846FFF7C0FF1090AA208DF8440068 -:1001D000FFF7A0FF00F0F3F84FF01024A069102201 -:1001E0006946803000F002F9A069082210A900F0E9 -:1001F000FDF800F0D8F84FF080510A6949690068AD -:100200004A43824201D8102070470020704710B541 -:10021000D0E900214FF0805002EB8103026944696C -:100220006243934209D84FF01022536903EB8103D4 -:100230000169406941438B4201D9092010BD5069D1 -:10024000401C01D0002010BD0F2010BD70B501680A -:100250000446AF4D4FF01020072952D2DFE801F0DD -:10026000330419293C1E2500D4E902656468294637 -:10027000304600F0CDF82A462146304600F0B6F868 -:10028000AA002146304600F09FFA002800D0032043 -:1002900070BD00F051FB4FF4805007E0201DFFF7C8 -:1002A000AAFF0028F4D100F047FB60682860002016 -:1002B00070BD241D94E80700920000F085FA002824 -:1002C000F6D00E2070BD8069401C12D0201DFFF7B3 -:1002D0009EFF0028F6D109E08069401C09D0201D4E -:1002E000FFF789FF0028EDD1606820B12046FFF7B5 -:1002F0004FFF042070BDFFF70DFF00F060F800F025 -:1003000052F8072070BD10B50C46182802D0012005 -:10031000086010BD2068FFF799FF206010BD4FF006 -:100320001024A069401C05D0A569A66980353079E4 -:10033000AA2808D06069401C2DD060690068401C64 -:1003400029D060692CE010212846FFF7FDFE3168B6 -:1003500081421CD1A16901F18002C03105E030B1B8 -:1003600008CA51F8040D984201D1012000E0002094 -:100370008A42F4D158B1286810B1042803D0FEE7AE -:10038000284600F057F862496868086008E000F005 -:1003900016F800F008F84FF480500168491C01D0AD -:1003A00000F0A4FAFEE7BFF34F8F5A4801685A4A9B -:1003B00001F4E06111430160BFF34F8FFEE74FF09E -:1003C00010208169491C02D0806900F0AEB87047E6 -:1003D000524A01681160121D416811604F4A8168DC -:1003E00010321160111DC068086070472DE9F0419E -:1003F00017460D460646002406E03046296800F000 -:10040000A7F8641C2D1D361DBC42F6D3BDE8F08153 -:1004100070B50C4605464FF4806608E0284600F0AB -:1004200084F8B44205D3A4F5806405F58055002C0A -:10043000F4D170BD4168044609B1012500E00025F2 -:100440004FF010267069A268920000F0BDF9C8B1A3 -:10045000204600F01AF89DB17669A56864684FF4EB -:10046000002084420AD2854208D229463046FFF74E -:10047000CFFF2A4621463046FFF7B8FFFFF79FFF20 -:10048000FFF791FFFFF746FEF8E72DE9FF414FF038 -:100490001024616980680D0B01EB800000F6FF708D -:1004A000010B0020009001900290024603906846E4 -:1004B00001230BE0560902F01F0C50F8267003FAD6 -:1004C0000CFC47EA0C0740F82670521CAA42F1D3F4 -:1004D0000AE04A0901F01F0650F8225003FA06F616 -:1004E000354340F82250491C8029F2D3A169090BF9 -:1004F0004A0901F01F0150F822408B409C4340F80C -:100500002240FFF765FFBDE8FF8100005C090000A5 -:10051000000000200CED00E00400FA050006004099 -:10052000144801680029FCD07047134A0221116069 -:1005300010490B68002BFCD00F4B1B1D186008687E -:100540000028FCD00020106008680028FCD070470C -:10055000094B10B501221A60064A1468002CFCD021 -:10056000016010680028FCD0002018601068002886 -:10057000FCD010BD00E4014004E5014008208F4993 -:1005800009680958084710208C4909680958084724 -:1005900014208A49096809580847182087490968BA -:1005A0000958084730208549096809580847382004 -:1005B00082490968095808473C2080490968095858 -:1005C000084740207D4909680958084744207B496D -:1005D00009680958084748207849096809580847B0 -:1005E0004C20764909680958084750207349096822 -:1005F0000958084754207149096809580847582084 -:100600006E490968095808475C206C49096809580F -:100610000847602069490968095808476420674904 -:100620000968095808476820644909680958084753 -:100630006C20624909680958084770205F490968B9 -:100640000958084774205D49096809580847782007 -:100650005A490968095808477C20584909680958C7 -:10066000084780205549096809580847842053499C -:1006700009680958084788205049096809580847F7 -:100680008C204E4909680958084790204B49096851 -:10069000095808479420494909680958084798208B -:1006A00046490968095808479C204449096809587F -:1006B0000847A0204149096809580847A4203F4934 -:1006C000096809580847A8203C490968095808479B -:1006D000AC203A49096809580847B02037490968E9 -:1006E00009580847B4203549096809580847B8200F -:1006F0003249096809580847BC2030490968095837 -:100700000847C0202D49096809580847C4202B49CB -:10071000096809580847C82028490968095808473E -:10072000CC202649096809580847D0202349096880 -:1007300009580847D4202149096809580847D82092 -:100740001E49096809580847DC201C4909680958EE -:100750000847E0201949096809580847E420174963 -:10076000096809580847E8201449096809580847E2 -:10077000EC201249096809580847F0200F49096818 -:1007800009580847F4200D49096809580847F82016 -:100790000A49096809580847FC20084909680958A6 -:1007A00008475FF480700549096809580847000048 -:1007B00003480449024A034B704700000000002030 -:1007C000680900006809000040EA010310B59B07B2 -:1007D0000FD1042A0DD310C808C9121F9C42F8D0AB -:1007E00020BA19BA884201D9012010BD4FF0FF305C -:1007F00010BD1AB1D30703D0521C07E0002010BD72 -:1008000010F8013B11F8014B1B1B07D110F8013BFD -:1008100011F8014B1B1B01D1921EF1D1184610BDDE -:1008200002F0FF0343EA032242EA024200F005B865 -:100830007047704770474FF000020429C0F01280E3 -:1008400010F0030C00F01B80CCF1040CBCF1020F83 -:1008500018BF00F8012BA8BF20F8022BA1EB0C0158 -:1008600000F00DB85FEAC17C24BF00F8012B00F84E -:10087000012B48BF00F8012B70474FF0000200B574 -:10088000134694469646203922BFA0E80C50A0E8B3 -:100890000C50B1F12001BFF4F7AF090728BFA0E861 -:1008A0000C5048BF0CC05DF804EB890028BF40F82D -:1008B000042B08BF704748BF20F8022B11F0804F6F -:1008C00018BF00F8012B7047014B1B68DB68184705 -:1008D0000000002009480A497047FFF7FBFFFFF7B7 -:1008E00011FC00BD20BFFDE7064B1847064A10600B -:1008F000016881F30888406800470000680900002B -:10090000680900001F030000000000201EF0040F13 -:100910000CBFEFF30881EFF3098188690238007892 -:10092000182803D100E00000074A1047074A126860 -:100930002C3212681047000000B5054B1B68054AB1 -:100940009B58984700BD00000703000000000020EE -:100950005809000004000000001000000000000022 -:0809600000FFFFFF0090D0032F -:1010000078130020394D0200EDBF00009F4C020014 -:10101000EDBF0000EDBF0000EDBF000000000000CC -:10102000000000000000000000000000954D0200DC -:10103000EDBF000000000000EDBF0000EDBF0000AC -:10104000FD4D0200034E0200EDBF0000EDBF0000A9 -:10105000EDBF0000EDBF0000EDBF0000EDBF0000E0 -:10106000094E0200EDBF0000EDBF00000F4E020070 -:10107000EDBF0000154E02001B4E0200214E020083 -:10108000EDBF0000EDBF0000EDBF0000EDBF0000B0 -:10109000EDBF0000EDBF0000EDBF0000EDBF0000A0 -:1010A000EDBF0000274E0200EDBF0000EDBF0000C5 -:1010B000EDBF0000EDBF0000EDBF0000EDBF000080 -:1010C0002D4E0200EDBF0000EDBF0000EDBF00009F -:1010D000EDBF0000EDBF0000EDBF0000EDBF000060 -:1010E000EDBF0000EDBF0000EDBF0000EDBF000050 -:1010F000EDBF0000EDBF0000EDBF0000EDBF000040 -:10110000EDBF0000EDBF000000F002F823F003FE89 -:101110000AA090E8000C82448344AAF10107DA4552 -:1011200001D123F0F8FDAFF2090EBAE80F0013F079 -:10113000010F18BFFB1A43F001031847DC410200FE -:10114000FC4102000A444FF0000C10F8013B13F080 -:10115000070408BF10F8014B1D1108BF10F8015B10 -:10116000641E05D010F8016B641E01F8016BF9D103 -:1011700013F0080F1EBF10F8014BAD1C0C1B09D15A -:101180006D1E58BF01F801CBFAD505E014F8016BCC -:1011900001F8016B6D1EF9D59142D6D3704700005E -:1011A0000023002400250026103A28BF78C1FBD870 -:1011B000520728BF30C148BF0B6070471FB500F011 -:1011C0003DF88DE80F001FBD1EF0040F0CBFEFF3BC -:1011D0000880EFF30980014A104700002FBF00008C -:1011E000F0B44046494652465B460FB402A0013077 -:1011F00001B50648004700BF01BC86460FBC8046CB -:10120000894692469B46F0BC7047000009110000D9 -:101210008269034981614FF001001044704700006A -:101220002512000001B41EB400B514F01FFD01B476 -:101230000198864601BC01B01EBD000023F068BDC8 -:1012400070B51A4C054609202070A01C00F0D1F89A -:101250005920A08029462046BDE8704008F0B0B86B -:1012600008F0B9B870B50C461149097829B1A0F158 -:1012700060015E2908D3012013E0602804D06928AA -:1012800002D043F201000CE020CC0A4E94E80E009C -:1012900006EB8000A0F58050241FD0F8806E284611 -:1012A000B047206070BD012070470000080000209A -:1012B00018000020784E02003249884201D20120F5 -:1012C00070470020704770B50446A0F500002E4E10 -:1012D000B0F1786F02D23444A4F500042948844266 -:1012E00001D2012500E0002500F043F848B125B9FE -:1012F000B44204D32548006808E0012070BD0020F6 -:1013000070BD002DF9D1B442F9D321488442F6D200 -:10131000F3E710B50446A0F50000B0F1786F03D2F2 -:1013200019480444A4F5000400F023F84FF080416C -:1013300030B11648006804E08C4204D2012003E07A -:1013400013488442F8D2002080F0010010BD10B58F -:1013500020B1FFF7DEFF08B1012010BD002010BD55 -:1013600010B520B1FFF7AFFF08B1012010BD00207C -:1013700010BD084808490068884201D10120704723 -:101380000020704700600200000000201C000020C8 -:101390000800002054000020BEBAFECA10B5044662 -:1013A0000021012000F03DF800210B2000F039F869 -:1013B0000421192000F035F804210D2000F031F847 -:1013C00004210E2000F02DF804210F2000F029F850 -:1013D0000421C84300F025F80621162000F021F86A -:1013E0000621152000F01DF82046FFF729FF0020F8 -:1013F00010BDAF2101807047FFF732BF1148704721 -:1014000010487047104A10B514680F4B0F4A083344 -:101410001A60FFF727FF0C48001D046010BD7047DD -:1014200070474907090E002804DB00F1E02080F82E -:101430000014704700F00F0000F1E02080F8141D48 -:101440007047000003F9004210050240010000014E -:10145000FE48002101604160018170472DE9F7439A -:10146000044692B091464068FFF771FF40B1606852 -:10147000FFF776FF20B9607800F00300022801D062 -:10148000012000E00020F14E30724846FFF71BFFBC -:1014900018B1102015B0BDE8F0834946012001F0D5 -:1014A0008EFE0028F6D101258DF842504FF4C05031 -:1014B000ADF84000002210A9284606F0F7FB0028EE -:1014C000E8D18DF842504FF428504FF00008ADF8A5 -:1014D000400047461C216846CDF81C8023F0B3FB32 -:1014E0009DF81C0008AA20F00F00401C20F0F0001E -:1014F00010308DF81C0020788DF81D0061789DF863 -:101500001E0061F3420040F001008DF81E009DF8BE -:1015100000000AA940F002008DF800002089ADF813 -:101520003000ADF83270608907AFADF834000B972A -:10153000606810AC0E900A94684606F0AAF900287C -:10154000A8D1BDF8200030808DF8425042F601202D -:10155000ADF840009DF81E0008AA20F00600801C8F -:1015600020F001008DF81E000220ADF83000ADF82B -:10157000340013A80E900AA9684606F08AF90028DC -:1015800088D1BDF820007080311D484600F033F945 -:10159000002887D18DF8425042F6A620ADF84000D1 -:1015A0001C216846CDF81C8023F04DFB9DF81C00E3 -:1015B000ADF8345020F00F00401C20F0F000103047 -:1015C0008DF81C009DF81D0008AA20F0FF008DF882 -:1015D0001D009DF81E000AA920F0060040F0010041 -:1015E000801C8DF81E009DF800008DF8445040F0DE -:1015F00002008DF80000CDE90A4711A80E90ADF861 -:101600003050684606F045F9002899D1BDF8200011 -:10161000F08000203EE73EB504460820ADF800000B -:101620002046FFF750FE08B110203EBD21460120A4 -:1016300001F0C5FD0028F8D12088ADF804006088CD -:10164000ADF80600A088ADF80800E088ADF80A0003 -:101650007E4801AB6A468088002106F023FDBDF874 -:1016600000100829E1D003203EBD1FB5044600202C -:1016700002900820ADF80800CDF80CD02046FFF706 -:1016800022FE10B1102004B010BD704802AA81885B -:101690004FF6FF7006F048FF0028F4D1BDF808109F -:1016A000082901D00320EEE7BDF800102180BDF825 -:1016B00002106180BDF80410A180BDF80610E18021 -:1016C000E1E701B582B00220ADF800005F4802AB4F -:1016D0006A464088002106F0E5FCBDF800100229AA -:1016E00000D003200EBD1CB5002100910221ADF8F1 -:1016F00000100190FFF70DFE08B110201CBD5348EB -:101700006A4641884FF6FF7006F00EFFBDF80010E4 -:101710000229F3D003201CBDFEB54C4C06461546ED -:10172000207A0F46C00705D00846FFF7CCFD18B158 -:101730001020FEBD0F20FEBDF82D01D90C20FEBDEE -:101740003046FFF7C0FD18BB208801A905F0A6FDB3 -:101750000028F4D130788DF80500208801A906F022 -:101760007FFC0028EBD100909DF800009DF805104B -:1017700040F002008DF80000090703D040F0080097 -:101780008DF800002088694606F007FC0028D6D1B5 -:10179000ADF8085020883B4602AA002106F082FCE2 -:1017A000BDF80810A942CAD00320FEBD7CB505468D -:1017B0000020009001900888ADF800000C462846F3 -:1017C0000195FFF7C4FD18B92046FFF7A2FD08B147 -:1017D00010207CBD15B1BDF8000050B11B486A4611 -:1017E00001884FF6FF7006F09FFEBDF800102180C3 -:1017F0007CBD0C207CBD30B593B0044600200D4666 -:101800000090142101A823F01EFA1C2108A823F03F -:101810001AFA9DF80000CDF808D020F00F00401C07 -:1018200020F0F00010308DF800009DF8010020F04D -:10183000FF008DF801009DF8200040F002008DF8B7 -:10184000200001208DF8460002E000001C0200206C -:1018500042F60420ADF8440011A801902088ADF8AC -:101860003C006088ADF83E00A088ADF84000E088FC -:10187000ADF842009DF8020006AA20F00600801C88 -:1018800020F001008DF802000820ADF80C00ADF842 -:1018900010000FA8059001A908A805F0FAFF00287C -:1018A00003D1BDF818002880002013B030BD00001F -:1018B000F0B5007B059F1E4614460D46012800D05A -:1018C000FFDF0C2030803A203880002C08D0287AA6 -:1018D000032806D0287B012800D0FFDF1720608175 -:1018E000F0BDA889FBE72DE9F04786B0144691F8D2 -:1018F0000C900E9A0D46B9F1010F0BD01021007B10 -:101900002E8A8846052807D0062833D0FFDF06B088 -:10191000BDE8F0870221F2E7E8890C2100EB4000E6 -:1019200001EB4000188033201080002CEFD0E889B4 -:10193000608100271AE00096688808F1020301AA76 -:10194000696900F084FF06EB0800801C07EB470183 -:1019500086B204EB4102BDF8040090810DF106014E -:1019600040460E3212F02FFC7F1CBFB26089B84295 -:10197000E1D8CCE734201080E889B9F1010F11D00B -:10198000122148430E301880002CC0D0E8896081B5 -:101990004846B9F1010F00D00220207300270DF155 -:1019A000040A1FE00621ECE70096688808F10203AC -:1019B00001AA696900F04BFF06EB0800801C86B2A3 -:1019C000B9F1010F12D007EBC70004EB4000BDF8DE -:1019D0000410C18110220AF10201103023F092F8A4 -:1019E0007F1CBFB26089B842DED890E707EB4701A1 -:1019F00004EB4102BDF80400D0810AF10201404627 -:101A0000103212F0E0FBEBE72DE9F0470E4688B00C -:101A100090F80CC096F80C80378AF5890C20109944 -:101A200002F10C044FF0000ABCF1030F08D0BCF126 -:101A3000040F3ED0BCF1070F7DD0FFDF08B067E791 -:101A400005EB850C00EB4C00188031200880002A43 -:101A5000F4D0A8F1060000F0FF09558125E0182117 -:101A600001A823F0F0F800977088434601AA716935 -:101A700000F0EDFEBDF804002080BDF80600E08017 -:101A8000BDF808002081A21C0DF10A01484612F0A1 -:101A90009AFBB9F1000F00D018B184F804A0A4F8A3 -:101AA00002A007EB080087B20A346D1EADB2D6D291 -:101AB000C4E705EB850C00EB4C0018803220088051 -:101AC000002ABBD0A8F1050000F0FF09558137E0DE -:101AD00000977088434601AA716900F0B8FE9DF82E -:101AE0000600BDF80410E1802179420860F300018E -:101AF00062F34101820862F38201C20862F3C3010A -:101B0000020962F30411420962F34511820962F38A -:101B100086112171C0096071BDF80700208122463D -:101B20000DF10901484612F04EFB18B184F802A0ED -:101B3000A4F800A000E007E007EB080087B20A3431 -:101B40006D1EADB2C4D279E7A8F1020084B205FBE4 -:101B500008F000F10E0CA3F800C035230B80002A1A -:101B6000A6D055819481009783B270880E32716936 -:101B700000F06DFE62E72DE9F84F1E460A9D0C4607 -:101B800081462AB1607A00F58070D080E0891081AA -:101B900099F80C000C274FF000084FF00E0A0D28A2 -:101BA00073D2DFE800F09E070E1C28303846556AD5 -:101BB00073737300214648460095FFF779FEBDE830 -:101BC000F88F207B9146082802D0032800D0FFDF41 -:101BD000378030200AE000BFA9F80A80EFE7207BB9 -:101BE0009146042800D0FFDF378031202880B9F1EA -:101BF000000FF1D1E3E7207B9146042800D0FFDFFE -:101C000037803220F2E7207B9146022800D0FFDFA8 -:101C100037803320EAE7207B1746022800D0FFDF19 -:101C20003420A6F800A02880002FC8D0A7F80A808A -:101C3000C5E7207B1746042800D0FFDF3520A6F833 -:101C400000A02880002FBAD04046A7F80A8012E0F2 -:101C5000207B1746052802D0062800D0FFDF102081 -:101C6000308036202880002FA9D0E0897881A7F81D -:101C70000E80B9F80E00B881A1E7207B91460728B5 -:101C800000D0FFDF37803720B0E72AE04FF01200A6 -:101C900018804FF038001700288090D0E0897881B4 -:101CA000A7F80E80A7F8108099F80C000A2805D034 -:101CB0000B2809D00C280DD0FFDF80E7207B0A28F5 -:101CC00000D0FFDF01200AE0207B0B2800D0FFDFDF -:101CD000042004E0207B0C2800D0FFDF05203873AF -:101CE0006DE7FFDF6BE770B50C46054601F0ABFB17 -:101CF00020B10078222804D2082070BD43F20200EF -:101D000070BD0521284610F0D1FC206008B10020EC -:101D100070BD032070BD30B44880087820F00F00FB -:101D2000C01C20F0F000903001F8080B1DCA81E8BB -:101D30001D0030BC07F0C5BB2DE9FF4784B000276C -:101D40008246029707989046894612300AF09EF91B -:101D5000401D20F00306079828B907A95046FFF751 -:101D6000C2FF002854D1B9F1000F05D00798017BBC -:101D700019BB052504681BE098F80000092803D06A -:101D80000D2812D0FFDF46E0079903254868B0B35D -:101D9000497B42887143914239D98AB2B3B2011D5D -:101DA00010F0F7FA0446078002E0079C0425083487 -:101DB0000CB1208810B1032D29D02CE00798012107 -:101DC00012300AF095F9ADF80C00024602AB294634 -:101DD000504608F0E4F9070001D1A01C02900798D2 -:101DE0003A461230C8F80400A8F802A003A94046F9 -:101DF000029B0AF08AF9D8B10A2817D200E006E05F -:101E0000DFE800F007091414100B0D14141213204E -:101E100014E6002012E6112010E608200EE643F238 -:101E200003000BE6072009E60D2007E6032005E680 -:101E3000BDF80C002346CDE900702A4650460799AC -:101E400000F015FD57B9032D08D10798B3B2417BB7 -:101E5000406871438AB2011D10F0AFFAB9F1000F6A -:101E6000D7D0079981F80C90D3E72DE9FE4F914622 -:101E70001A881C468A468046FAB102AB494608F0E9 -:101E80008EF9050019D04046A61C278810F052FD97 -:101E90003246072629463B46009610F060F9208816 -:101EA0002346CDE900504A465146404600F0DFFC4B -:101EB000002020800120BDE8FE8F0020FBE710B548 -:101EC00086B01C46AAB104238DF800301388ADF803 -:101ED00008305288ADF80A208A788DF80E200988DB -:101EE000ADF80C1000236A462146FFF725FF06B027 -:101EF00010BD1020FBE770B50D46052110F0D6FB94 -:101F0000040000D1FFDF294604F11200BDE8704053 -:101F10000AF0D7B82DE9F8430D468046002607F0B1 -:101F2000CDFA04462878102878D2DFE800F0773B15 -:101F30003453313112313131083131313131287975 -:101F4000001FC0B2022801D0102810D114BBFFDF3F -:101F500035E004B9FFDF0521404610F0A7FB007B08 -:101F6000032806D004280BD0072828D0FFDF072637 -:101F700055E02879801FC0B2022820D050B1F6E782 -:101F80002879401FC0B2022819D0102817D0EEE7D8 -:101F900004B9FFDF13E004B9FFDF287901280ED16F -:101FA000172137E00521404610F080FB070000D1E3 -:101FB000FFDF07F1120140460AF060F82CB12A4613 -:101FC00021464046FFF7A7FE29E01321404602F0D4 -:101FD000F1FC24E004B9FFDF0521404610F066FB68 -:101FE000060000D1FFDF694606F112000AF050F842 -:101FF000060000D0FFDFA988172901D2172200E0D0 -:102000000A46BDF80000824202D9014602E005E01E -:102010001729C5D3404600F03AFCD0E7FFDF304631 -:10202000BDE8F883401D20F0030219B102FB01F066 -:10203000001D00E000201044704713B5009848B11F -:102040000024684610F04FF9002C02D1F74A00999D -:1020500011601CBD01240020F4E72DE9F0470C4677 -:1020600015462421204622F0EEFD05B9FFDFA878B1 -:1020700060732888DFF8B4A3401D20F00301AF7817 -:102080008946DAF8000010F04CF9060000D1FFDFB5 -:102090004FF000082660A6F8008077B109FB07F131 -:1020A000091D0AD0DAF8000010F03BF9060000D153 -:1020B000FFDF6660C6F8008001E0C4F8048029886C -:1020C00004F11200BDE8F04709F0CABF2DE9F0475E -:1020D000804601F112000D46814609F0D7FF401DF0 -:1020E000D24F20F003026E7B14462968386810F046 -:1020F00043F93EB104FB06F2121D03D0696838684B -:1021000010F03AF9052010F079FA0446052010F095 -:102110007DFA201A012802D1386810F0F7F84946F4 -:102120004046BDE8F04709F0B0BF70B5054605214F -:1021300010F0BCFA040000D1FFDF04F112012846C0 -:10214000BDE8704009F09ABF2DE9F04F91B04FF013 -:10215000000BADF834B0ADF804B047880C46054626 -:1021600092460521384610F0A1FA060000D1FFDFA3 -:1021700024B1A780A4F806B0A4F808B029780922F1 -:102180000B20B2EB111F7DD12A7A04F11001382700 -:102190004FF00C084FF001090391102A73D2DFE8C9 -:1021A00002F072F2F1F07F08D2888D9F3DDBF3EEF2 -:1021B000B6B6307B022800D0FFDFA88908EBC0014B -:1021C000ADF804103021ADF83410002C25D060811A -:1021D000B5F80E9000271DE004EBC708317C88F8A5 -:1021E0000E10F189A8F80C10CDF80090688804232F -:1021F00004AA296900F02BFBBDF81010A8F81010F4 -:1022000009F10400BDF812107F1C1FFA80F9A8F82C -:102210001210BFB26089B842DED80DE1307B0228CF -:1022200000D0FFDFE98908EBC100ADF804003020E1 -:10223000ADF83400287B0A90001FC0B20F90002C2C -:10224000EBD06181B5F81090002725E0CDF8009023 -:102250006888696903AA0A9B00F0F9FA0A9804EBF6 -:10226000C70848441FFA80F908F10C0204A90F9826 -:1022700011F0A9FF18B188F80EB0A8F80CB0BDF89D -:102280000C1001E0D4E0CFE0A8F81010BDF80E105B -:102290007F1CA8F81210BFB26089B842D6D8CBE034 -:1022A0000DA8009001AB224629463046FFF71BFBE4 -:1022B000C2E0307B082805D0FFDF03E0307B082830 -:1022C00000D0FFDFE8891030ADF804003620ADF80B -:1022D0003400002C3FD0A9896181F189A18127E0D8 -:1022E000307B092800D0FFDFA88900F10C01ADF890 -:1022F00004103721ADF83410002C2CD06081E8890F -:102300000090AB89688804F10C02296956E0E889DD -:102310003921103080B2ADF80400ADF83410002C33 -:1023200074D0A9896181287A0E280AD002212173EC -:10233000E989E181288A0090EB8968886969039AB4 -:102340003CE00121F3E70DA8009001AB22462946AD -:102350003046FFF759FB6FE0307B0A2800D0FFDFE3 -:102360001220ADF80400ADF834704CB3A989618136 -:10237000A4F810B0A4F80EB084F80C905CE020E053 -:1023800002E031E039E042E0307B0B2800D0FFDF93 -:10239000288AADF834701230ADF8040084B10421FD -:1023A0002173A9896181E989E181298A2182688A69 -:1023B00000902B8A688804F11202696900F047FADC -:1023C0003AE0307B0C2800D0FFDF1220ADF804008B -:1023D000ADF834703CB305212173A4F80AB0A4F819 -:1023E0000EB0A4F810B027E00DA8009001AB224673 -:1023F00029463046FFF75CFA1EE00DA8009001ABBD -:10240000224629463046FFF7B6FB15E034E03B2173 -:10241000ADF80400ADF8341074B3A4F80690A4F835 -:1024200008B084F80AB007E0FFDF05E010000020E4 -:10243000297A012917D0FFDFBDF80400AAF80000AF -:102440006CB1BDF834002080BDF804006080BDF898 -:102450003400392803D03C2801D086F80CB011B0E4 -:102460000020BDE8F08F3C21ADF80400ADF8341039 -:1024700014B1697AA172DFE7AAF80000EFE72DE94D -:10248000F84356880F46804615460521304610F021 -:102490000DF9040000D1FFDF123400943B464146A1 -:1024A00030466A6809F065FFBAE570B50D4605214A -:1024B00010F0FCF8040000D1FFDF294604F11200FF -:1024C000BDE8704009F0EFBD70B50D46052110F074 -:1024D000EDF8040000D1FFDF294604F11200BDE849 -:1024E000704009F00DBE70B50546052110F0DEF80C -:1024F000040000D1FFDF04F1080321462846BDE8AF -:1025000070400422B1E470B50546052110F0CEF804 -:10251000040000D1FFDF214628462368BDE8704053 -:102520000522A2E470B50646052110F0BFF80400AC -:1025300000D1FFDF04F1120009F0A8FD401D20F0DA -:10254000030511E0011D008803224318214630468F -:10255000FFF78BFC00280BD0607BABB2684382B2E4 -:102560006068011D0FF05FFF606841880029E9D1B4 -:1025700070BD70B50E46054606F0A0FF040000D100 -:10258000FFDF0120207266726580207820F00F0046 -:10259000C01C20F0F00030302070BDE8704006F024 -:1025A00090BF2DE9F0438BB00D461446814606A935 -:1025B000FFF799FB002814D14FF6FF7601274FF45F -:1025C00020588CB103208DF800001020ADF81000C9 -:1025D00007A8059007AA204604A911F013FE78B1B8 -:1025E00007200BB0BDE8F0830820ADF808508DF847 -:1025F0000E708DF80000ADF80A60ADF80C800CE0AC -:102600000698A17801742188C1818DF80E70ADF80B -:102610000850ADF80C80ADF80A606A4602214846C1 -:10262000069BFFF789FBDCE708B501228DF8022045 -:1026300042F60202ADF800200A4603236946FFF77E -:102640003EFC08BD08B501228DF8022042F60302C7 -:10265000ADF800200A4604236946FFF730FC08BDA8 -:1026600000B587B079B102228DF800200A88ADF854 -:1026700008204988ADF80A1000236A460521FFF7B3 -:102680005BFB07B000BD1020FBE709B1072316E490 -:102690000720704770B588B00D461446064606A957 -:1026A000FFF721FB00280ED17CB10620ADF80850C1 -:1026B0008DF80000ADF80A40069B6A460821DC81CF -:1026C0003046FFF739FB08B070BD05208DF80000DB -:1026D000ADF80850F0E700B587B059B107238DF881 -:1026E0000030ADF80820039100236A460921FFF766 -:1026F00023FBC6E71020C4E770B588B00C46064639 -:10270000002506A9FFF7EFFA0028DCD10698012181 -:10271000123009F0EDFC9CB12178062921D2DFE8C6 -:1027200001F0200505160318801E80B2C01EE28845 -:1027300080B20AB1A3681BB1824203D90C20C2E760 -:102740001020C0E7042904D0A08850B901E0062079 -:10275000B9E7012913D0022905D004291CD0052985 -:102760002AD00720AFE709208DF800006088ADF877 -:102770000800E088ADF80A00A068039023E00A2072 -:102780008DF800006088ADF80800E088ADF80A0018 -:10279000A0680A25039016E00B208DF800006088E1 -:1027A000ADF80800A088ADF80A00E088ADF80C008C -:1027B000A0680B25049006E00C208DF800006078DE -:1027C0008DF808000C256A4629463046069BFFF71F -:1027D000B3FA78E700B587B00D228DF80020ADF888 -:1027E000081000236A461946FFF7A6FA49E700B524 -:1027F00087B071B102228DF800200A88ADF8082058 -:102800004988ADF80A1000236A460621FFF794FABA -:1028100037E7102035E770B586B0064601200D4633 -:10282000ADF808108DF80000014600236A463046D6 -:10283000FFF782FA040008D12946304605F04CFC27 -:102840000021304605F066FC204606B070BDF8B5A4 -:102850001C4615460E46069F10F05AF82346FF1DEB -:10286000BCB231462A4600940FF045FCF8BD30B4A6 -:102870001146DDE902423CB1032903D0002330BCFC -:1028800008F018BB0123FAE71A8030BC704770B516 -:102890000C460546FFF72FFB2146284605F02BFC8A -:1028A0002846BDE87040012105F034BC4FF0E0221D -:1028B0004FF400400021C2F88001BFF34F8FBFF3F7 -:1028C0006F8F1748016001601649900208607047D9 -:1028D000134900B500220A600A60124B4FF0607283 -:1028E0001A60002808BF00BD0F4A104BDFF840C037 -:1028F00001280CD002281CBFFFDF00BD03200860A8 -:102900001A604FF4000000BFCCF8000000BD0220A8 -:1029100008601A604FF04070F6E700B5FFDF00BDB9 -:1029200000F5004008F501409C02002014F500402D -:1029300004F5014070B50B2000F0BDF9082000F04F -:10294000BAF900210B2000F0D4F90021082000F092 -:10295000D0F9F44C01256560A5600020C4F8400161 -:10296000C4F84401C4F848010B2000F0B5F9082070 -:1029700000F0B2F90B2000F091F9256070BD10B5A0 -:102980000B2000F098F9082000F095F9E5480121A6 -:1029900041608160E4490A68002AFCD10021C0F846 -:1029A0004011C0F84411C0F848110B2000F094F910 -:1029B000BDE81040082000F08FB910B50B2000F0E2 -:1029C0008BF9BDE81040082000F086B900B530B1A1 -:1029D000012806D0022806D0FFDF002000BDD34822 -:1029E00000BDD34800BDD248001D00BD70B5D1491F -:1029F0004FF000400860D04DC00BC5F80803CF4829 -:102A000000240460C5F840410820C43500F053F9A3 -:102A1000C5F83C41CA48047070BD08B5C14A0021E0 -:102A200028B1012811D002281CD0FFDF08BD4FF4C7 -:102A30008030C2F80803C2F84803BB483C3001604C -:102A4000C2F84011BDE80840D0E74FF40030C2F8AA -:102A50000803C2F84803B44840300160C2F844118A -:102A6000B3480CE04FF48020C2F80803C2F84803D2 -:102A7000AD4844300160C2F84811AD48001D0068FF -:102A8000009008BD70B516460D460446022800D9D0 -:102A9000FFDF0022A348012304F110018B4000EB6B -:102AA0008401C1F8405526B1C1F84021C0F8043373 -:102AB00003E0C0F80833C1F84021C0F8443370BDCA -:102AC0002DE9F0411D46144630B1012833D00228CB -:102AD00038D0FFDFBDE8F081891E002221F07F4160 -:102AE0001046FFF7CFFF012D23D00020944D924FC9 -:102AF000012668703E61914900203C39086002203F -:102B0000091D08608D490420303908608B483D3428 -:102B1000046008206C6000F0DFF83004C7F804039C -:102B2000082000F0BBF88349F007091F08602E70E9 -:102B3000D0E70120DAE7012B02D00022012005E0D6 -:102B40000122FBE7012B04D000220220BDE8F04166 -:102B500098E70122F9E774480068704770B500F003 -:102B6000D8F8704C0546D4F840010026012809D158 -:102B7000D4F80803C00305D54FF48030C4F8080327 -:102B8000C4F84061D4F8440101280CD1D4F80803FA -:102B9000800308D54FF40030C4F80803C4F844613A -:102BA000012012F0FCFAD4F8480101280CD1D4F825 -:102BB0000803400308D54FF48020C4F80803C4F884 -:102BC0004861022012F0EBFA5E48056070BD70B5F6 -:102BD00000F09FF85A4D0446287850B1FFF706FFE1 -:102BE000687818B10020687012F0D9FA554804606E -:102BF00070BD0320F8E74FF0E0214FF40010C1F85A -:102C000000027047152000F067B84B4901200861A9 -:102C1000082000F061B848494FF47C10C1F808035F -:102C20000020024601EB8003C3F84025C3F8402191 -:102C3000401CC0B20628F5D37047410A43F609523A -:102C40005143C0F3080010FB02F000F5807001EB67 -:102C50005020704710B5430B48F2376463431B0C98 -:102C60005C020C60384C03FB0400384B4CF2F72438 -:102C700043435B0D13FB04F404EB402000F580702C -:102C80004012107008681844086010BD2C48406855 -:102C9000704729490120C1F800027047002809DB6C -:102CA00000F01F02012191404009800000F1E02066 -:102CB000C0F80011704700280DDB00F01F02012151 -:102CC00091404009800000F1E020C0F88011BFF37E -:102CD0004F8FBFF36F8F7047002809DB00F01F0292 -:102CE000012191404009800000F1E020C0F88012ED -:102CF00070474907090E002804DB00F1E02080F846 -:102D00000014704700F00F0000F1E02080F8141D5F -:102D100070470C48001F00680A4A0D49121D1160D7 -:102D20007047000000B0004004B500404081004002 -:102D300044B1004008F5014000800040408500405B -:102D40003400002014050240F7C2FFFF6F0C0100A1 -:102D5000010000010A4810B5046809490948083112 -:102D6000086012F0B0FA0648001D046010BD064964 -:102D7000002008604FF0E0210220C1F88002704777 -:102D80001005024001000001FC1F004010B50D209D -:102D900000F077F8C4B26FF0040000F072F8C0B22F -:102DA000844200D0FFDF3E490120086010BD70B5AD -:102DB0000D2000F048F83B4C0020C4F8000101252C -:102DC000C4F804530D2000F04FF825604FF0E021C7 -:102DD0006014C1F8000170BD10B50D2000F033F88B -:102DE0003048012141600021C0F80011BDE81040C9 -:102DF0000D2000F039B82C4810B504682A492B483A -:102E0000083108602749D1F80001012804D0FFDF0C -:102E10002548001D046010BD2148001D00680022E7 -:102E2000C0B2C1F8002112F09BFEF1E710B51D48B9 -:102E3000D0F800110029FBD0FFF7DDFFBDE81040FE -:102E40000D2000F011B800280DDB00F01F02012159 -:102E500091404009800000F1E020C0F88011BFF3EC -:102E60004F8FBFF36F8F7047002809DB00F01F0200 -:102E7000012191404009800000F1E020C0F880125B -:102E80007047002804DB00F1E02090F8000405E022 -:102E900000F00F0000F1E02090F8140D4009704799 -:102EA00004D5004000D000401005024001000001A0 -:102EB0004FF0E0214FF00070C1F8800101F5C071C2 -:102EC000BFF34F8FBFF36F8FC1F80001384B8022E3 -:102ED00083F8002441F8800C704700B502460420B6 -:102EE000344903E001EBC0031B792BB1401EC0B293 -:102EF000F8D2FFDFFF2000BD41F8302001EBC00118 -:102F000000224A718A7101220A7100BD294A0021FA -:102F100002EBC0000171704710B50446042800D3CD -:102F2000FFDF244800EBC4042079012800D0FFDF34 -:102F30006079A179401CC0B2814200D060714FF02D -:102F4000E0214FF00070C1F8000210BD2DE9F04102 -:102F500019480568184919480831086014480426BA -:102F600090F80004134F4009154C042818D0FFDFD7 -:102F700016E0217807EBC1000279012A08D14279D5 -:102F800083799A4204D04279827157F831008047A0 -:102F90002078401CC0B22070042801D3002020708B -:102FA000761EF6B2E5D20448001D0560BDE8F0814A -:102FB00019E000E0D40500201005024001000001E6 -:102FC000500000200548064A0168914201D10021C5 -:102FD000016004490120086070470000540000208F -:102FE000BEBAFECA40E5014070B50C46054609F080 -:102FF0005DFB21462846BDE870400AF042BC7047A0 -:103000002CFFFFFFDBE5B15100600200AF00FFFFC6 -:103010008400000068915B008308DF2FACFED63986 -:1030200029D64B9DC15EF1868A16B47C30B5F84D29 -:103030000446062CA9780ED2DFE804F0030E0E0E2B -:103040000509FFDF08E0022906D0FFDF04E00329BD -:1030500002D0FFDF00E0FFDFAC7030BD30B50446CA -:103060001038EB4D07280CD2DFE800F0040C060CFA -:103070000C0C0C00FFDF05E0287E112802D0FFDFDA -:1030800000E0FFDF2C7630BD2DE9F04111F024FA8D -:10309000044612F0F5FB201AC5B206200FF0AEFA76 -:1030A000044606200FF0B2FA211AD94C207E1228CD -:1030B00018D000200F1807200FF0A0FA06460720AE -:1030C0000FF0A4FA301A3918207E13280CD00020F3 -:1030D0000144A078042809D000200844281AC0B26E -:1030E000BDE8F0810120E5E70120F1E70120F4E7E8 -:1030F000C74810B590F825004108C54800F12600E2 -:1031000005D00DF09CFABDE8104005F0F9BF0DF0B8 -:1031100077FAF8E730B50446A1F120000D460A28F9 -:103120004AD2DFE800F005070C1C2328353A3F445B -:10313000FFDF42E0207820283FD1FFDF3DE0B448A8 -:103140008178052939D0007E122836D020782428AD -:1031500033D0252831D023282FD0FFDF2DE0207851 -:1031600022282AD0232828D8FFDF26E0207822280A -:1031700023D0FFDF21E0207822281ED024281CD075 -:1031800026281AD0272818D0292816D0FFDF14E0C7 -:103190002078252811D0FFDF0FE0207825280CD0DB -:1031A000FFDF0AE02078252807D0FFDF05E0207840 -:1031B000282802D0FFDF00E0FFDF257030BD1FB5FB -:1031C00004466A46002001F02FFEB4B1BDF802208B -:1031D0004FF6FF700621824201D1ADF80210BDF812 -:1031E0000420824201D1ADF80410BDF808108142DC -:1031F00003D14FF44860ADF8080068460DF090FF29 -:1032000005F07EFF04B010BD70B514460D460646AD -:10321000FEF759F858B90DB1A54201D90C2070BD7F -:10322000002408E056F82400FEF74DF808B11020FD -:1032300070BD641CE4B2AC42F4D3002070BD2DE933 -:10324000F04105461F4690460E4600240068FEF7F2 -:1032500087F830B9A98828680844401EFEF780F82E -:1032600008B110203CE728680028A88802D0B8429E -:1032700002D850E00028F5D0092031E72968085D20 -:10328000B8B1671CCA5D152A2ED03CDC152A3AD28B -:10329000DFE802F03912222228282A2A313139396E -:1032A00039393939393939392200085D30BB641C64 -:1032B000A4B2A242F9D833E00228DDD1A01C085CF8 -:1032C00088F80000072801D2400701D40A2007E748 -:1032D000307840F0010015E0C143C90707E001283C -:1032E00007D010E00620FBE60107A1F1805100297C -:1032F000F5D01846F4E63078810701D50B20EFE6CB -:1033000040F0020030702868005D384484B2A8881C -:10331000A04202D2B0E74FF4485382B2A242ADD8E5 -:103320000020DDE610B5027843F2022354080122A2 -:10333000022C12D003DC3CB1012C16D106E0032C88 -:1033400010D07F2C11D112E0002011E080790324ED -:10335000B4EB901F09D10A700BE08079B2EB901F9B -:1033600003D1F8E780798009F5D0184610BDFF2019 -:103370000870002010BD08B500208DF8000024481A -:1033800090F82E1049B190F82F0002280ED0032893 -:103390000ED0FFDF9DF8000008BD1D4869462530AE -:1033A00001F091FD0028F5D0FFDFF3E7032000E0F6 -:1033B00001208DF80000EDE738B50C46054669465A -:1033C00001F081FD00280DD19DF80010207861F3F7 -:1033D0004700207055F8010FC4F80100A888A4F830 -:1033E0000500002038BD38B51378A8B1022813D0E5 -:1033F000FF281AD007A46D46246800944C7905EB89 -:103400009414247864F347031370032809D00FE061 -:10341000E80100200302FF0123F0FE0313700228DD -:10342000F3D1D8B240F0010005E043F0FE00107087 -:10343000107820F0010010700868C2F80100888838 -:10344000A2F8050038BD02210FF030B938B50C469E -:103450000978222901D2082038BDADF800008DF886 -:10346000022068460DF02DF905F04AFE050003D153 -:1034700021212046FFF74EFE284638BD1CB500200E -:103480008DF80000CDF80100ADF80500FE4890F879 -:103490002E00022801D0012000E000208DF8070056 -:1034A00068460DF069FA002800D0FFDF1CBD00223D -:1034B0000A80437892B263F3451222F040020A80F8 -:1034C00000780C282BD2DFE800F02A06090E11162E -:1034D000191C1F220C2742F0110009E042F01D00C8 -:1034E00008800020704742F0110012E042F0100006 -:1034F00040F00200F4E742F01000F1E742F0010072 -:10350000EEE742F0010004E042F00200E8E742F09A -:10351000020040F00400E3E742F00400E0E7072087 -:1035200070472DE9FF478AB00025BDF82C60824620 -:103530001C4690468DF81C50700703D56068FDF757 -:10354000C2FE68B9D04F4FF0010997F82E0058B16C -:1035500097F82F00022807D16068FDF701FF18B126 -:1035600010200EB0BDE8F087300702D5A089802872 -:1035700016D8700705D4B8F1000F02D097F82400D0 -:1035800070B1E07DC0F300108DF81B00617D072055 -:1035900041B1012906D00229E3D00429E1D12CE070 -:1035A0000720DEE749468DF81790F00609D4A27D82 -:1035B000072032B1012A04D0022A05D0042AD0D132 -:1035C0001BE08DF8191002E002208DF819008DF82B -:1035D00015806068B0B107A9FFF7A4FE0028C0D12C -:1035E0009DF81C00FF280AD0606850F8011FCDF834 -:1035F0000F108088ADF8130008E00620B1E743F211 -:103600000220AEE7CDF80F50ADF81350E07B002854 -:10361000F3D1207C0028F0D1607C0028EDD1A07C83 -:103620000028EAD1E07CC006E7D18DF800A0BDF803 -:103630002C00ADF80200A0680190A068029004F18F -:103640000F0001F034FC8DF80C00FFF794FE8DF8AC -:103650000D009DF81C008DF80E008DF816508DF8A9 -:103660001850E07D08A900F00F008DF81A00684698 -:103670000DF09DFE05F044FD73E7F0B58FB0002519 -:103680008DF830508DF814508DF8345006468DF872 -:103690002850019502950395049519B10FC901AC05 -:1036A00084E80F00784CA078052801D004280CD1BC -:1036B00001986168884200D120B90398E168884286 -:1036C00003D110B108200FB0F0BD207DC00601D598 -:1036D0001F2700E0FF273B460DAA05A903A8FFF717 -:1036E000AEFD0028EFD1A08AC10702D0C00600D4E9 -:1036F000EE273B460AAA0CA901A8FFF7A0FD002867 -:10370000E1D19DF81400C00701D00A20DBE7A08AB0 -:10371000410708D4A17D31B19DF82810890702D056 -:1037200043F20120CFE79DF82810C90709D04007D0 -:1037300007D4208818B144F25061884201D907208B -:10374000C1E78DF818508DF81960BDF80800ADF884 -:103750001A000198079006A80DF043FE05F0D0FC72 -:103760000028B0D18DF820508DF82160BDF81000F0 -:10377000ADF822000398099008A80DF051FE05F05D -:10378000BFFC00289FD101AD241D95E80F0084E8FF -:103790000F00002097E770B586B00D46040005D0F5 -:1037A000FDF7DEFD20B1102006B070BD0820FBE75C -:1037B0002078C107A98802D0FF2902D303E01F297E -:1037C00001D20920F0E780073BD4FFF75DFC38B158 -:1037D0002178C1F3C100012804D0032802D005E0FC -:1037E0001320E1E7284890F82400C8B1C8074FF03B -:1037F00001064FF0000502D08DF80F6001E08DF852 -:103800000F50FFF7B8FD8DF8000020786946C0F32F -:10381000C1008DF8010060788DF80250C20801D017 -:103820000720C1E778B1C20701D08DF80260820796 -:1038300005D59DF8022042F002028DF802204007D3 -:1038400003D50620B0E78DF80260002022780B181F -:10385000C2F38002DA7001EB40026388D380401C1F -:10386000A388C0B253810228F0D3207A0028E8D17F -:10387000607A0028E5D1A07A0028E2D1E07A002819 -:10388000DFD1207BC00601E0E8010020D9D104F19E -:10389000080001F00CFB8DF80E0068460DF097F95A -:1038A00005F02EFC00288DD18DF810608DF8115098 -:1038B000E088ADF81200ADF8145004A80DF0DAF964 -:1038C00005F01EFC00288CD12078C00701D01520FF -:1038D00000E01320FFF7C2FB002065E72DE9FF475A -:1038E0000220FC4E8DF804000027708EADF8060013 -:1038F000B84643F202094CE001A80EF03EFE050076 -:1039000006D0708EA8B3A6F83280ADF806803EE0EF -:10391000039CA07F01072DD504F124000090A28E06 -:10392000BDF80800214604F1360301F054FC0500FF -:1039300005D04D452AD0112D3CD0FFDF3AE0A07FC5 -:1039400020F00801E07F420862F3C711A1778108E7 -:1039500061F30000E07794F8210000F01F0084F884 -:1039600020002078282826D129212046FFF7D2FBE5 -:1039700021E014E040070AD5BDF8080004F10E016B -:1039800001F0ABFA05000DD04D4510D100257F1C8C -:10399000FFB202200EF032FE401CB842ACD8052D1A -:1039A00011D008E0A07F20F00400A07703E0112DE3 -:1039B00000D0FFDF0025BDF806007086052D04D07D -:1039C000284604B0CEE5A6F832800020F9E770B5AD -:1039D0000646FFF738FD054605F070FD040000D1EE -:1039E000FFDF6680207820F00F00801C20F0F000C0 -:1039F000203020700320207295F83E006072BDE8F0 -:103A0000704005F05EBD2DE9F04786B0040000D19E -:103A1000FFDF2078AF4D20F00F00801C20F0F00079 -:103A20007030207060680178491F1B2933D2DFE8AD -:103A300001F0FC32323255FB320EFBFB42FA3232DD -:103A40003278FAFAF9F83232FAFAF7F6FA00C6885A -:103A50003046FFF7F8FC0546304607F029F9E0B19B -:103A60006068007A85F83E0021212846FFF752FB66 -:103A70003046FEF75AFB304603F050FE3146012037 -:103A800012F02EFBA87F20F01000A877FFF726FF8A -:103A9000002800D0FFDF06B064E5207820F0F000B9 -:103AA000203020700320207266806068007A607287 -:103AB00005F007FDD8E7C5882846FFF7C4FC00B924 -:103AC000FFDF60680079012800D0FFDF6068017ABD -:103AD00006B02846BDE8F04707F0C9BCC6883046A6 -:103AE000FFF7B1FC050000D1FFDF05F0EAFC6068DC -:103AF00031460089288160684089688160688089D2 -:103B0000A881012012F0ECFA0020A875A87F00F02F -:103B100003000228BFD1FFF7E1FE0028BBD0FFDF82 -:103B2000B9E700790228B6D000B1FFDF05F0C9FC83 -:103B30006668B6F806A0307A361D012806D0687E81 -:103B4000814605F049FA070003D101E0E878F7E77C -:103B5000FFDF0022022150460EF09FFD040000D13D -:103B6000FFDF22212046FFF7D5FA3079012800D067 -:103B70000220A17F804668F30101A177308B20816C -:103B8000708B6081B08BA08184F822908DF80880C2 -:103B9000B8680090F86801906A46032150460EF01C -:103BA0007CFD00B9FFDFB888ADF81000B8788DF85B -:103BB000120004AA052150460EF06FFD00B9FFDF88 -:103BC000B888ADF80C00F8788DF80E0003AA04212F -:103BD00050460EF062FD00B9FFDF062106F112002B -:103BE00001F099F940B37079800700D5FFDF717952 -:103BF000E07D61F34700E075D6F80600A0617089AA -:103C0000A083062106F10C0001F085F9F0B195F8CA -:103C100025004108607861F34700607006E040E0ED -:103C200038E070E058E04DE02EE042E0D5F82600A4 -:103C3000C4F80200688D12E0E07D20F0FE00801CD8 -:103C4000E075D6F81200A061F08AD9E7607820F01C -:103C5000FE00801C6070F068C4F80200308AE080CA -:103C6000B8F1010F04D0B8F1020F05D0FFDF12E761 -:103C70000320FFF7DBF90EE7287E122800D0FFDFD4 -:103C80001120FFF7EBF906E706B02046BDE8F04744 -:103C900001F02ABD05F015FC15F8300F40F00200C8 -:103CA00005E005F00EFC15F8300F40F00400287018 -:103CB000F1E6287E13280AD01528D8D15FF0160027 -:103CC000FFF7CCF906B0BDE8F04705F0FABB1420C9 -:103CD000F6E70000E8010020A978052909D00429A9 -:103CE000C5D105F0EEFB022006B0BDE8F047FFF7B6 -:103CF0009DB900790028BAD0E87801F0BFF805F046 -:103D0000E0FB0320F0E7287E122802D1687E01F054 -:103D1000B5F81120D4E72DE9F047054600784FF0BB -:103D200000080009DFF8C0A891460C464646012865 -:103D300075D0022874D007280AD00A2871D0FFDF76 -:103D4000A9F8006014B1A4F800806680002009E49E -:103D50006968012704F108000A784FF0020C4FF659 -:103D6000FF73172A7ED00EDC142A32D006DC052A17 -:103D700068D0092A10D0102A75D120E0152A73D0F6 -:103D8000162AF9D1F8E0183A082A6CD2DFE802F0D6 -:103D9000F36B6B0ACAF2DFF1C8884FF012081026E5 -:103DA00021468DE14FF01C080A26BCB38888A0800C -:103DB0006868807920726868C0796072C0E74FF0E7 -:103DC0001B08142654B30320207268688088A080E2 -:103DD000B6E70A793C2AB3D00D1D4FF010082C2607 -:103DE000E4B16988A180298B6182298B2182698B4A -:103DF000A182A98BE1826B790246A91D1846FFF7C3 -:103E0000F2FA2979002001290CD084F80FC0FF2193 -:103E10002176E06120626062A06291E70FE02EE10E -:103E200051E18CE1E77320760AF1040090E80E007E -:103E3000DAF81000C4E90930C4E9071280E7A9F8EC -:103E4000006083E72C264FF01D08002CF7D00546B4 -:103E5000A380887B2A880F1D60F300022A80887B5C -:103E6000400802E09DE007E1BEE060F341022A80E5 -:103E7000887B800860F382022A80887BB91CC00896 -:103E800060F3C3022A80B87A0011401C60F3041268 -:103E900002F07F0028807878AA1CFFF7A4FA387D0A -:103EA00005F1090207F11501FFF79DFA387B01F0D2 -:103EB00041F82874787B01F03DF86874F87EA874A6 -:103EC000787AE874387F2875B87B6875388AE88214 -:103ED000DAF81C00A861B87A524697F808A0C0F337 -:103EE0004111012904D0108C504503D2824609E0CB -:103EF000FFDF10E0022903D0288820F0600009E0ED -:103F0000504504D1288820F06000403002E0288825 -:103F100040F060002880A4F824A0524607F11D015B -:103F2000A86996E011264FF02008002C87D0A380C6 -:103F3000686804F10A02007920726868007B607288 -:103F400069688B1D48791946FFF74DFAF8E60A268D -:103F50004FF02108002CE9D08888A080686880791B -:103F600020726868C07960729AF8301021F00401FC -:103F70009FE065E04CE06FE00B264FF02208002C3C -:103F8000D4D0C888A0806868007920726868007AF8 -:103F900000F0D0FF60726868407A00F0CBFFA0723A -:103FA000CEE61C264FF02608002CBFD0A380686800 -:103FB000407960726868007AA0720AF1040090E8A3 -:103FC0000E00DAF81000C4E90530C4E9031268688D -:103FD00000793C2803D0432803D0FFDFB0E62772E6 -:103FE000AEE684F808C0ABE610264FF02408002C9B -:103FF0009CD08888A0806868807920816868807AF1 -:10400000608168680089A08168688089E08197E69E -:1040100010264FF02308002C88D08888A08068687C -:10402000C088208168680089608168684089A081B3 -:1040300068688089E0819AF8301021F0020138E048 -:1040400030264FF02508002C85D0A38069682822EF -:10405000496820F057FD73E614264FF01B08002C2A -:104060008ED0A380686800790128BAD02772DAE977 -:104070000710C4E9031063E64A46214660E0287A47 -:10408000012803D0022817D0FFDF59E610264FF091 -:104090001F08002C89D06888A080A8892081E88921 -:1040A0006081288AA081688AE0819AF8301021F026 -:1040B00001018AF8301043E64FF012081026688894 -:1040C00000F016FF3CE6287AC8B3012838D0022851 -:1040D00036D0032801D0FFDF32E609264FF0110861 -:1040E000002C85D06F883846FFF7ADF990F822A0F4 -:1040F000A780687A2072042138460EF0E9FA05217B -:1041000038460EF0E5FA002138460EF0E1FA0121BA -:1041100038460EF0DDFA032138460EF0D9FA0221B6 -:1041200038460EF0D5FA062138460EF0D1FA0721AE -:1041300038460EF0CDFA504600F0A0FE00E6FFE74C -:104140002846BDE8F04701F059BC70B5012803D0FE -:10415000052800D0FFDF70BD8DB22846FFF773F948 -:10416000040000D1FFDF20782128F4D005F0A6F963 -:1041700080B1017821F00F01891C21F0F00110318C -:1041800001700221017245800020A075BDE87040D9 -:1041900005F097B921462846BDE870401322FFF785 -:1041A00055B92DE9F04116460C00804600D1FFDFDD -:1041B000307820F00F00801C20F0F00010303070BC -:1041C0002078012804D0022818D0FFDFBDE8F08154 -:1041D0004046FFF738F9050000D1FFDF0320A8753E -:1041E00005F06FF994E80F00083686E80F00FE48E6 -:1041F00010F8301F41F001010170E7E74046FFF77A -:1042000022F9050000D1FFDFA1884FF6FF700027DB -:10421000814202D1E288824203D0814201D1E0880A -:1042200040B105F04EF994E80F00083686E80F001B -:10423000AF75CBE7A87D0128C8D17823002241467D -:1042400011F0A4FE0220A875C0E738B505460C465B -:104250000846FDF738F818BB203D062D4AD2DFE8A6 -:1042600005F0031B373C42300021052011F00EFF02 -:1042700008B1112038BDA01C0CF0A5FF04F040FFD0 -:10428000050038D1002208231146052011F07EFEDA -:10429000052830D0FFDF2EE06068FDF758F808B140 -:1042A000102038BD618820886A460DF03AFA04F083 -:1042B00027FF05001FD16068E8B1BDF8001001803C -:1042C00019E0A07800F0010120880DF05BFA0EE003 -:1042D000206801F03FFE05460DE0207800F0010067 -:1042E0000CF076F903E0618820880DF096F904F06F -:1042F00007FFF0E70725284638BD70B505460C4690 -:104300000846FDF706F808B1102070BD202D07D033 -:10431000212D0DD0222D0BD0252D09D0072070BDC9 -:104320002088A11C0CF02AFABDE8704004F0E8BE19 -:10433000062070BDAC482530704708B53421AA4826 -:1043400020F081FC0120FEF771FE1120FEF786FEB1 -:10435000A5496846263105F047F8A3489DF8002096 -:1043600010F8251F62F3470121F0010101700021BF -:1043700041724FF46171A0F8071002218172FEF7BB -:10438000B7FE00B1FFDFFDF763F801F078F908BD73 -:1043900010B50C464021204620F033FCA07F20F0D1 -:1043A0000300A077202020700020A07584F823004F -:1043B00010BD70472DE9FC410746FCF784FF10B1A2 -:1043C0001020BDE8FC81884E06F12501D6F82500B5 -:1043D0000090B6F82950ADF8045096F82B408DF8AF -:1043E00006403846FEF7E8FF0028EAD1FEF780FED7 -:1043F0000028E6D0009946F8251FB580B471E0E7A3 -:1044000010B50446FCF785FF08B1102010BD7648B2 -:104410007549224690F8250026314008FEF7E3FF53 -:10442000002010BD3EB504460D460846FCF771FF5E -:1044300008B110203EBD14B143F204003EBD6A48ED -:104440008078052803D0042801D008203EBD6946A5 -:1044500002A80AF05DFA2A4669469DF80800FEF7B0 -:10446000C2FF00203EBDFEB50D4604004FF0000720 -:1044700011D00822FEF7C8FE002811D1002608E05E -:1044800054F826006946FEF74DFF002808D1761C37 -:10449000F6B2AE42F4D30BF0E5FF10B143F20320C5 -:1044A000FEBD514E86F824700CB300271BE000BF00 -:1044B00054F8270002A9FEF735FF00B1FFDF9DF891 -:1044C00008008DF8000054F8270050F8011FCDF8BF -:1044D00001108088ADF8050068460BF0E8FF00B1D8 -:1044E000FFDF7F1CFFB2AF42E2D386F824500020EA -:1044F000FEBD2DE9F0478AB01546894604001ED05E -:104500000F4608222946FEF77FFE002811D100261B -:1045100013E000BF54F826006946103000F0D3FCC9 -:10452000002806D13FB157F82600FCF7CCFE10B1A9 -:1045300010200AB00BE4761CF6B2AE42EAD3002695 -:10454000A5F101081CE000BF06F1010A0AF0FF070F -:1045500012E000BF54F82600017C4A0854F82710E6 -:104560000B7CB2EB530F05D106221130113120F034 -:104570009DFA58B17F1CFFB2AF42EBD30AF0FF06A1 -:104580004645E1DB4E4624B1012003E043F205201D -:10459000CFE700200BF0B0FF10B90BF0B9FF10B15E -:1045A00043F20420C5E774B300270DF1170828E093 -:1045B00054F827006946103000F085FC00B1FFDF99 -:1045C00054F82700102250F8111FCDF801108088F0 -:1045D000ADF8050054F827100DF1070020F092FA0D -:1045E000AEB156F8271001E0E80100201022404645 -:1045F00020F088FA68460BF03FFF00B1FFDF7F1C18 -:10460000FFB2AF42D4D3FEF739FF002091E7404616 -:1046100001F094FCEEE730B585B00446FCF753FE9C -:1046200018B96068FCF79CFE10B1102005B030BDD1 -:1046300060884AF2B811884206D82078F84D28B12F -:10464000012806D0022804D00720EFE7FEF750FD2E -:1046500018E06078022804D0032802D043F2022038 -:10466000E4E785F82F00C1B200200090ADF8040007 -:1046700002292CD0032927D0FFDF68460BF0DFFF8B -:1046800004F03EFD0028D1D1606801F04AFC20789A -:1046900058B101208DF800000DF1010001F04EFC31 -:1046A00068460DF0D3F800B1FFDF207885F82E00C2 -:1046B000FEF7E4FE608860B1A88580B20BF014FFBD -:1046C00000B1FFDF0020B1E78DF80500D5E74020FD -:1046D000FAE74FF46170EFE710B50446FCF719FEF6 -:1046E00020B9606838B1FCF732FE08B1102010BD67 -:1046F000606801F023FCCA4830F82C1F6180C17843 -:10470000617080782070002010BD2DE9F8431446B8 -:1047100089460646FCF7FDFDA0B94846FCF720FE99 -:1047200080B92046FCF71CFE60B9BD4DA878012871 -:1047300000D13CB13178FF2906D049B143F20400E1 -:10474000BDE8F8831020FBE7012801D00420F7E73B -:10475000CCB3052811D004280FD069462046FEF7B7 -:10476000A6FE0028ECD1217D49B1012909D00229FA -:1047700009D0032909D00720E2E70820E0E7024634 -:1047800004E0012202E0022200E0032280462346E8 -:10479000174600200099FEF7C4FE0028D0D1A0895A -:1047A0002880A07BE875BDF80000A882AF75BDF831 -:1047B0000010090701D5A18931B1A1892980C0075D -:1047C00004D0032003E006E08021F7E70220FEF793 -:1047D0002DFC86F800804946BDE8F8430020FEF72E -:1047E0004CBF7CB58E4C05460E46A078022803D0FF -:1047F000032801D008207CBD15B143F204007CBD24 -:1048000007200DF003FF10B9A078032806D0FEF7AB -:104810003BFC28B1A078032804D009E012207CBD1D -:1048200013207CBD304600F00CFB0028F9D1E67067 -:10483000FEF7A1FD09F0A9FF01208DF800008DF819 -:1048400001008DF802502088ADF80400E07D8DF85D -:10485000060068460CF0A4FE04F052FC0028E0D1EB -:10486000A078032804D00420FEF7E0FB00207CBDE4 -:10487000E07800F0F6FA0520F6E71CB510B143F237 -:1048800004001CBD664CA078042803D0052801D084 -:1048900008201CBD00208DF8000001218DF80110BA -:1048A0008DF8020068460CF07BFE04F029FC00281D -:1048B000EFD1A078052805D05FF00200FEF7B6FB27 -:1048C00000201CBDE07800F0D9FA0320F6E72DE9BE -:1048D000FC4180460E4603250846FCF741FD0028B2 -:1048E00066D14046FEF7AFFD040004D020782228B0 -:1048F00004D2082065E543F2020062E5A07F00F0E3 -:1049000003073EB1012F0CD000203146FEF757FCC3 -:104910000500EFD1012F06D0022F1AD0FFDF284665 -:104920004FE50120F1E7A07D3146022801D011B109 -:1049300007E0112045E56846FCF797FE0028D9D12D -:104940006946404606F056FD0500E8D10120A075F5 -:10495000E5E7A07D032804D1314890F83000C00776 -:1049600001D02EB30EE026B1A07F40071ED4002157 -:1049700000E00121404606F05DFD0500CFD1A075A5 -:10498000002ECCD03146404600F0A7FA054611284B -:10499000C5D1A07F4107C2D4316844F80E1F7168A9 -:1049A000616040F0040020740025B8E71125B6E7E7 -:1049B000102006E570B50C460546FEF744FD0100E3 -:1049C00005D022462846BDE87040FEF73FBD43F2C1 -:1049D000020070BD10B5012807D1114B9B78012B47 -:1049E00000D011B143F2040010BD0BF0AFFDBDE8E3 -:1049F000104004F085BB012300F04ABA00231A4698 -:104A0000194600F045BA70B506460C460846FCF754 -:104A10005AFC18B92068FCF77CFC18B1102070BD56 -:104A2000E8010020F94D2A7E112A04D0132A00D370 -:104A30003EB10820F3E721463046FEF7ACFE60B1F8 -:104A4000EDE70920132A0DD0142A0BD0A188FF29E5 -:104A5000E5D31520FEF702FB0020D4E90012C5E9DA -:104A60000712DCE7A1881F29D9D31320F2E71CB570 -:104A7000E648007E132801D208201CBD00208DF8D6 -:104A8000000068460CF0F6F804F03AFB0028F4D178 -:104A90001120FEF7E3FA00201CBD2DE9F04FDFF8EE -:104AA0006CA3814691B09AF818009B4615460C46B7 -:104AB000132803D3FFF7DBFF00281FD12046FCF7A4 -:104AC00002FC78BB2846FCF7FEFB58BB20784FF071 -:104AD0000107C0074FF0000102D08DF83A7001E0E5 -:104AE0008DF83A1020788846C0F3C1008DF8000098 -:104AF00060788DF80910C10803D0072011B0BDE817 -:104B0000F08F80B1C10701D08DF80970810705D5FC -:104B10009DF8091041F002018DF80910400704D5F5 -:104B20000620EBE718E08DF8097000206E4606EBD2 -:104B3000400162884A81401CA288C0B20A820328D0 -:104B4000F5D32078C0F3C100012821D003281FD05D -:104B50004846FCF7B8FB08B11020CFE799F80000F1 -:104B6000400808D0012809D0022807D0032805D022 -:104B700043F20220C2E78DF8028001E08DF8027056 -:104B8000484650F8011FCDF803108088ADF80700A3 -:104B9000FEF7F1FB8DF801000020424606EB4001D4 -:104BA0002B88CB826B888B83AB884B84EB880B85FF -:104BB000401CCA85C0B28A860328EFD3E088ADF8CE -:104BC0003C0068460CF074F9002896D19AF8180059 -:104BD0005546112801D0082090E706200DF016FD5B -:104BE00038B12078C0F3C100012804D0032802D0D6 -:104BF00006E0122082E795F8240000283FF47DAFFC -:104C0000FEF742FA022801D2132077E7584600F057 -:104C100018F9002885D185F819B068460CF05AFAC1 -:104C200004F06EFA040098D1687E00F01AF91220A0 -:104C3000FEF714FA204661E770B5744D287E1228FD -:104C400001D00820EBE60CF048FA04F059FA040011 -:104C500005D1687E00F012F91120FEF7FFF9204619 -:104C6000DDE670B5064615460C460846FCF751FBD6 -:104C700018B92846FCF74DFB08B11020CFE62A46AC -:104C8000214630460CF02DFD04F03AFA0028F5D10B -:104C900021787F29F2D10520C1E67CB505460C4676 -:104CA0000846FCF710FB08B110207CBD2846FEF733 -:104CB000CAFB20B10078222804D208207CBD43F230 -:104CC00002007CBD514890F83000400701D511200A -:104CD0007CBD2178C80802D16078C20801D00720C5 -:104CE0007CBD890801D1800801D006207CBDADF8CB -:104CF000005020788DF8020060788DF803000220C3 -:104D0000ADF8040068460BF0D1FE04F0F9F97CBD63 -:104D100070B586B014460D460646FEF794FB28B1E2 -:104D20000078222805D2082006B078E643F2020077 -:104D3000FAE72846FCF714FB20B944B12046FCF7FB -:104D400006FB08B11020EFE700202060A0802F486C -:104D500090F83000800701D51120E5E703A930461F -:104D60000BF058FD18B100BF04F0CAF9DCE7ADF84C -:104D70000060BDF81400ADF80200BDF81600ADF8F3 -:104D80000400BDF81000BDF81210ADF80600ADF833 -:104D900008107DB1298809B1ADF80610698809B1FC -:104DA000ADF80210A98809B1ADF80810E98809B179 -:104DB000ADF80410DCB1BDF80610814201D9081A23 -:104DC0002080BDF80210BDF81400814201D9081AF4 -:104DD0006080BDF80800BDF80410BDF8162001443D -:104DE000BDF812001044814201D9081AA08068461B -:104DF0000BF0C1FDB8E71CB505490968CDE9001005 -:104E000068460CF057F804F07BF91CBDE80100205F -:104E1000EC4F02001CB500200090019068460CF099 -:104E200049F804F06DF9F0E7108008885080488850 -:104E30009080C88810818888D0800020508190811F -:104E4000704710B5044604F0C7F830B1407830B16F -:104E5000204604F0DAFB002010BD052010BD122012 -:104E600010BD10B504F0B8F8040000D1FFDF607881 -:104E700000B9FFDF6078401E607010BD10B504F00F -:104E8000ABF8040000D1FFDF6078401C607010BDFB -:104E90001CB5ADF800008DF802308DF803108DF8C8 -:104EA000042068460CF0E0FB04F02AF9ADE70CB5ED -:104EB00026A2D2E90012CDE900120079694601EB81 -:104EC000501000780CBD0278520804D0012A02D09C -:104ED00043F202207047FEF725BA1FB56A46FFF776 -:104EE000A3FF68460CF02CF904F00AF904B010BDD9 -:104EF00070B50C0006460DD0FEF7A5FA050000D1EE -:104F0000FFDFA68028892081288960816889A081A7 -:104F1000A889E08183E510B500231A4603E0845C8C -:104F20002343521CD2B28A42F9D30BB1002010BDE8 -:104F3000012010BD00B530B1012803D0022801D0F6 -:104F4000FFDF002000BDFF2000BD000007060504B4 -:104F50000302010010B50446FCF7B5F908B11020B2 -:104F600010BD2078C0F30210042807D86078072805 -:104F700004D3A178102901D8814201D2072010BDA5 -:104F8000E078410706D421794A0703D4000701D409 -:104F9000080701D5062010BD002010BD10B51378FC -:104FA0005C08837F64F3C713837713789C08C37FFF -:104FB00064F30003C3771078C309487863F34100B2 -:104FC000487013781C090B7864F347130B7013783F -:104FD000DB0863F3000048705078487110BD10B5CD -:104FE000C4780B7864F300030B70C478640864F32E -:104FF00041030B70C478A40864F382030B70C47877 -:10500000E40864F3C3030B700379117863F30001C0 -:10501000117003795B0863F34101117003799B08F8 -:1050200063F3820111700079C00860F3C30111704D -:1050300010BD70B514460D46064604F03FFA80B127 -:105040000178182221F00F01891C21F0F001A03114 -:1050500000F8081B21461FF09AFDBDE8704004F0DF -:1050600030BA29463046BDE870401322FEF7EEB94B -:105070002DE9F047064608A8894690E830041F4607 -:105080009046142128461FF0DEFD0021CAF80010CA -:10509000B8F1000F03D0B9F1000F03D114E0387854 -:1050A000C00711D02068FCF734F9C0BBB8F1000F7D -:1050B00007D12068123028602068143068602068AA -:1050C000A8602168CAF800103878800724D5606885 -:1050D000FCF73DF918BBB9F1000F21D0FFF72AF911 -:1050E0000168C6F868118188A6F86C11807986F885 -:1050F0006E0101F0F8FCF94FEF60626862B196F85A -:10510000680106F2691140081032FEF76CF91022AE -:10511000394660681FF0F6FC0020BDE8F08706E025 -:10512000606820B1E8606068C6F86401F4E71020A8 -:10513000F3E730B5054608780C4620F00F00401C18 -:1051400020F0F001103121700020607095F82300EC -:1051500030B104280FD0052811D0062814D0FFDF65 -:1051600020780121B1EB101F04D295F8200000F047 -:105170001F00607030BD21F0F000203002E021F00F -:10518000F00030302070EBE721F0F0004030F9E71C -:10519000F0B591B0022715460C4606463A46ADF8E2 -:1051A0000870092103AB04F0FAFF0490002810D026 -:1051B00004208DF804008DF80170E0340996059400 -:1051C0008DF818500AA968460EF060FF00B1FFDFA5 -:1051D000012011B0F0BD10B588B00C460A99ADF8A9 -:1051E0000000C3B11868CDF802005868CDF8060079 -:1051F000ADF80A20102203A81FF084FC68460CF0CA -:105200000FF803F07DFF002803D1A17F41F01001CA -:10521000A17708B010BD0020CDF80200E6E72DE927 -:10522000F84F0646808A0D4680B28246FEF70BF99B -:1052300004463078DFF8A48200274FF00209A8F175 -:1052400020080F2870D2DFE800F06FF23708387DB1 -:105250008CC8F1F0EFF35FF3F300A07F00F00300E0 -:10526000022809D05FF0000080F0010150460DF0E7 -:105270001DFA050003D101E00120F5E7FFDF98F8F2 -:105280005C10C90702D0D8F860000BE0032105F1DB -:105290001D0010F046FCD5F81D009149B0FBF1F25D -:1052A00001FB1200C5F81D0070686867B068A86748 -:1052B0002078252800D0FFDFCAE0A07F00F003009F -:1052C000022809D05FF0000080F0010150460DF087 -:1052D000EDF9060003D101E00120F5E7FFDF3078AA -:1052E000810702D52178252904D040F001003070D3 -:1052F000BDE8F88F85F80090307F287106F11D0019 -:105300002D36C5E90206F3E7A07F00F0030002286E -:1053100008D0002080F0010150460DF0C7F90400CC -:1053200004D102E00120F5E7A7E1FFDF2078C10604 -:1053300004D5072028703D346C60D9E740F00800A0 -:105340002070D5E7E07F000700D5FFDF307CB28812 -:1053500000F0010301B05046BDE8F04F092105F00F -:10536000A9BD04B9FFDF716821B1102204F1240046 -:105370001FF0C8FB28212046FDF7CCFEA07F00F0DF -:10538000030002280ED104F12400002300901A46E5 -:1053900021465046FFF71FFF112807D0292120463C -:1053A000FDF7B8FE307A84F82000A1E7A07F00075F -:1053B00000D5FFDF14F81E0F40F008002070E782D0 -:1053C000A761E761C109607861F34100014660F3BC -:1053D00082016170307AE0708AE7A07F00F00300FC -:1053E000022809D05FF0000080F0010150460DF066 -:1053F0005DF9040003D101E00120F5E7FFDF0221A0 -:1054000004F1850010F08DFB0420287004F5B470C1 -:105410006860B4F885002882304810387C346C61AC -:10542000C5E9028064E703E024E15BE02DE015E0DC -:10543000A07F00F00300022807D0002080F00101C7 -:1054400050460DF033F918B901E00120F6E7FFDF0F -:10545000324621465046BDE8F84FEAE504B9FFDF81 -:1054600020782128A1D93079012803D1E07F40F0AC -:105470000800E077324621465046FFF7DAFD204625 -:10548000BDE8F84F2321FDF745BE3279AA8005F12A -:1054900008030921504604F082FEE86010B105209F -:1054A000287025E7A07F00F00300022808D0002024 -:1054B00080F0010150460DF0F9F8040003D101E03D -:1054C0000120F5E7FFDF04F1620102231022081F2B -:1054D0000CF073FF07703179417009E74802002032 -:1054E00040420F00A07F00F00300022808D00020F7 -:1054F00080F0010150460DF0D9F8050003D101E01C -:105500000120F5E7FFDF95F8840000F00300012893 -:105510007AD1A07F00F00307E07F10F0010602D0EF -:10552000022F04D133E095F8A000C0072BD0D5F8A6 -:10553000601121B395F88320087C62F3870008741A -:10554000A17FCA09D5F8601162F341000874D5F84B -:10555000601166F300000874AEB1D5F86001102246 -:1055600004F1240188351FF0CDFA287E40F00100B7 -:105570002876287820F0010005F8880900E016B1A7 -:10558000022F04D02DE095F88800C00727D0D5F869 -:105590005C1121B395F88320087C62F387000874BE -:1055A000A17FCA09D5F85C1162F341000874D5F8EF -:1055B0005C1166F3000008748EB1D5F85C0110220E -:1055C00004F1240188351FF09DFA287840F001008D -:1055D00005F8180B287820F0010005F8A009022F23 -:1055E00044D0002000EB400005EBC00090F888009C -:1055F000800709D595F87C00D5F86421400805F1AD -:105600007D011032FDF7EFFE8DF8009095F88400D3 -:105610006A4600F003008DF8010095F888108DF8B7 -:10562000021095F8A0008DF803002146504601F0C5 -:1056300043FA2078252805D0212807D0FFDF2078DD -:10564000222803D922212046FDF764FDA07F00F027 -:10565000030002280CD0002080F0010150460DF01C -:1056600037F800283FF44FAEFFDF41E60120B9E7ED -:105670000120F1E7706847703AE6FFDF38E670B561 -:10568000FE4C002584F85C5025660EF0CCFC04F13D -:105690001001204603F0CEFE84F8305070BD70B586 -:1056A0000D46FDF7D0FE040000D1FFDF4FF4B871C6 -:1056B00028461FF0C8FA04F124002861A07F00F0FA -:1056C0000300022808D0012105F1E0000EF0ACFC37 -:1056D000002800D0FFDF70BD0221F5E70A46014631 -:1056E00002F1E0000EF0C0BC70B50546406886B01F -:1056F00001780A2906D00D2933D00E292FD0FFDFDB -:1057000006B070BD86883046FDF79DFE040000D1CE -:10571000FFDF20782128F3D028281BD168680221D8 -:105720000E3001F0BEF9A8B168680821801D01F0B3 -:10573000B8F978B104F1240130460BF033FF03F0DF -:10574000DFFC00B1FFDF06B02046BDE87040292134 -:10575000FDF7E0BC06B0BDE8704003F0B2BE012129 -:1057600001726868C6883046FDF76DFE040000D1FE -:10577000FFDFA07F00F00301022902D120F010001A -:10578000A077207821280AD06868017A09B10079C9 -:1057900080B1A07F00F00300022862D0FFDFA07F6D -:1057A00000F003000228ABD1FEF798F80028A7D03C -:1057B000FFDFA5E703F085FEA17F08062BD5E07F7C -:1057C000C00705D094F8200000F01F00102820D05A -:1057D0005FF0050084F82300207829281DD02428B4 -:1057E000DDD13146042010F07BFC22212046FDF75C -:1057F00091FCA07F00F00300022830D05FF0000091 -:1058000080F0010130460CF063FF0028C7D0FFDFB5 -:10581000C5E70620DEE70420DCE701F003000228EC -:1058200008D0002080F0010130460CF03FFF050059 -:1058300003D101E00120F5E7FFDF25212046FDF738 -:1058400069FC03208DF80000694605F1E0000EF0C8 -:1058500002FC0228A3D00028A1D0FFDF9FE701208F -:10586000CEE703F02EFE9AE72DE9F04387B0994684 -:10587000164688460746FDF7E6FD04004BD0207823 -:10588000222848D3232846D0E07F000743D4A07FB6 -:1058900000F00300022809D05FF0000080F0010151 -:1058A00038460CF003FF050002D00CE00120F5E7BC -:1058B000A07F00F00300022805D001210022384615 -:1058C0000CF0EBFE05466946284601F01CF90098ED -:1058D00000B9FFDF45B10098E03505612078222846 -:1058E00006D0242804D007E000990020086103E0D6 -:1058F00025212046FDF70EFC0098012141704762EA -:10590000868001A9C0E902890EF0C0FB022802D0FE -:10591000002800D0FFDF07B0BDE8F08370B586B087 -:105920000546FDF790FD017822291ED9807F00F001 -:105930000300022808D0002080F0010128460CF066 -:10594000B5FE04002FD101E00120F5E7FFDF2AE0DA -:10595000B4F85E0004F1620630440178427829B15F -:1059600021462846FFF714FCB0B9C9E6ADF804207B -:105970000921284602AB04F012FC03900028F4D061 -:1059800005208DF80000694604F1E0000EF063FB8D -:10599000022801D000B1FFDF02231022314604F1BA -:1059A0005E000CF040FDB4F860000028D0D1A7E6FE -:1059B00010B586B00446FDF746FD017822291BD9B3 -:1059C000807F00F00300022808D0002080F0010151 -:1059D00020460CF06BFE040003D101E00120F5E746 -:1059E000FFDF06208DF80000694604F1E0000EF0AC -:1059F00032FB002800D0FFDF06B010BD2DE9F05FBC -:105A000005460C4600270078904601093E4604F101 -:105A1000080BBA4602297DD0072902D00A2909D1EC -:105A200046E0686801780A2905D00D2930D00E2992 -:105A30002ED0FFDFBBE114271C26002C6BD0808802 -:105A4000A080FDF700FD5FEA000900D1FFDF99F8B3 -:105A500017005A46400809F11801FDF7C4FC6868B0 -:105A6000C0892082696851F8060FC4F8120048689E -:105A7000C4F81600A07E20F0060001E028020020F5 -:105A800040F00100A07699F81E0040F020014DE0A2 -:105A90001A270A26002CD1D0C088A080FDF7D3FC9D -:105AA000050000D1FFDF59462846FFF742FB7EE1A3 -:105AB0000CB1A88BA080287A0B287DD006DC0128A9 -:105AC0007BD0022808D0032804D135E00D2875D0FA -:105AD0000E2874D0FFDF6AE11E270926002CADD006 -:105AE000A088FDF7B0FC5FEA000900D1FFDF287B4A -:105AF00000F003000128207A1BD020F00100207262 -:105B0000297B890861F341002072297BC90861F370 -:105B1000820001E041E1F2E02072297B090961F392 -:105B2000C300207299F81E0040F0400189F81E1051 -:105B30003DE140F00100E2E713270D26002CAAD03A -:105B4000A088FDF780FC8146807F00F003000228DA -:105B500008D0002080F00101A0880CF0A7FD05000E -:105B600003D101E00120F5E7FFDF99F81E0000F006 -:105B70000302022A50D0686F817801F003010129E5 -:105B8000217A4BD021F00101217283789B0863F3C5 -:105B9000410121728378DB0863F3820121728378EB -:105BA0001B0963F3C3012172037863F306112172A9 -:105BB000437863F3C71103E061E0A9E090E0A1E05E -:105BC000217284F809A0C178A172022A29D0027931 -:105BD000E17A62F30001E1720279520862F3410155 -:105BE000E1720279920862F38201E1720279D208CD -:105BF00062F3C301E1724279217B62F300012173F8 -:105C00004279520862F3410121734279920862F3AA -:105C100082012173407928E0A86FADE741F00101CE -:105C2000B2E74279E17A62F30001E1724279520807 -:105C300062F34101E1724279920862F38201E172FA -:105C40004279D20862F3C301E1720279217B62F3E7 -:105C5000000121730279520862F341012173027934 -:105C6000920862F3820121730079C00860F3C301D6 -:105C7000217399F80000232831D9262140E0182704 -:105C80001026E4B3A088FDF7DEFB8346807F00F09A -:105C90000300022809D0002080F00101A0880CF048 -:105CA00005FD5FEA000903D101E00120F4E7FFDF11 -:105CB000E868A06099F8000040F0040189F800103D -:105CC00099F80100800708D5012020739BF8000097 -:105CD00023286CD92721584651E084F80CA066E0AF -:105CE00015270F265CB1A088FDF7ADFB8146062283 -:105CF0005946E86808F093FA0120A073A0E041E05B -:105D000048463CE016270926E4B3287B20724EE083 -:105D1000287B19270E26ACB3C4F808A0A4F80CA061 -:105D2000012807D0022805D0032805D0042803D075 -:105D3000FFDF0DE0207207E0697B042801F00F010E -:105D400041F0800121721ED0607A20F00300607261 -:105D5000A088FDF778FB05460078212827D0232866 -:105D600000D0FFDFA87F00F00300022813D000203E -:105D700080F00101A0880CF0ABFC22212846FDF741 -:105D8000C9F914E004E0607A20F00300401CDEE76B -:105D9000A8F8006010E00120EAE70CB16888A08054 -:105DA000287A68B301280AD002284FD0FFDFA8F86C -:105DB00000600CB1278066800020BDE8F09F1527A9 -:105DC0000F26002CE4D0A088FDF73DFB807F00F07B -:105DD0000300022808D0002080F00101A0880CF008 -:105DE00065FC050003D101E00120F5E7FFDFD5F8F0 -:105DF0001D000622594608F012FA84F80EA0D6E7D4 -:105E000017270926002CC3D0A088FDF71CFB81466C -:105E1000807F00F00300022808D0002080F00101FC -:105E2000A0880CF043FC050003D101E00120F5E758 -:105E3000FFDF6878800701D5022000E00120207292 -:105E400099F800002328B2D9272159E719270E26EF -:105E5000002C9DD0A088FDF7F6FA5FEA000900D17A -:105E6000FFDFC4F808A0A4F80CA084F808A0A07A6A -:105E700040F00300A07299F81E10C90961F3820076 -:105E8000A07299F81F2099F81E1012EAD11F05D0B0 -:105E900099F8201001F01F0110292BD020F00800E4 -:105EA000A07299F81F10607A61F3C3006072697A7A -:105EB00001F003010129A2D140F00400607299F8B9 -:105EC0001E0000F003000228E87A16D0217B60F360 -:105ED00000012173AA7A607B62F300006073EA7AA2 -:105EE000520862F341012173A97A490861F3410024 -:105EF00060735CE740F00800D2E7617B60F300016B -:105F00006173AA7A207B62F300002073EA7A520858 -:105F100062F341016173A97A490861F3410020737A -:105F200045E710B5FE4C30B10146102204F12000C7 -:105F30001EF0E8FD012084F8300010BD10B50446C5 -:105F400000F0D1FDF64920461022BDE81040203176 -:105F50001EF0D8BD70B5F24D06004FF0000413D00E -:105F6000FBF7B1F908B110240CE00621304608F027 -:105F70003DF9411C05D028665FF0010085F85C0002 -:105F800000E00724204670BD0020F7E7007810F0FD -:105F90000F0204D0012A05D0022A0CD110E000091A -:105FA00009D10AE00009012807D0022805D00328FA -:105FB00003D0042801D007207047087000207047E4 -:105FC0000620704705282AD2DFE800F003070F17E4 -:105FD0001F00087820F0FF001EE0087820F00F0076 -:105FE000401C20F0F000103016E0087820F00F0080 -:105FF000401C20F0F00020300EE0087820F00F0068 -:10600000401C20F0F000303006E0087820F00F004F -:10601000401C20F0F000403008700020704707203E -:1060200070472DE9F041804688B00D4600270846AC -:10603000FBF796F9A8B94046FDF705FA040003D02E -:106040002078222815D104E043F2020008B0BDE810 -:10605000F08145B9A07F410603D500F00300022876 -:1060600001D01020F2E7A07FC10601D4010702D5BC -:106070000DB10820EAE7E17F090701D50D20E5E72A -:1060800000F00300022805D125B12846FEF762FF83 -:106090000700DBD1A07F00F00300022808D0002019 -:1060A00080F0010140460CF001FB060002D00FE039 -:1060B0000120F5E7A07F00F0030002280ED00020A9 -:1060C00080F00101002240460CF0E7FA060007D0FC -:1060D000A07F00F00300022804D009E00120EFE7D0 -:1060E0000420B3E725B12A4631462046FEF756FF85 -:1060F0006946304600F007FD009800B9FFDF0099BF -:10610000022006F1E0024870C1F824804A610022B2 -:106110000A81A27F02F00302022A1CD0012008712A -:10612000287800F00102087E62F3010008762A78E0 -:10613000520862F3820008762A78920862F3C3005C -:1061400008762A78D20862F30410087624212046C3 -:10615000FCF7E0FF33E035B30871301D886130781B -:10616000400908777078C0F340004877287800F03D -:106170000102887F62F301008877A27FD20962F36F -:1061800082008877E27F62F3C3008877727862F3D7 -:1061900004108877A878C87701F1210228462031B9 -:1061A000FEF71DFF03E00320087105200876252176 -:1061B0002046FCF7AFFFA07F20F04000A07701A9A8 -:1061C00000980DF063FF022801D000B1FFDF3846D0 -:1061D0003CE72DE9FF4F534A0D4699B09A4607CA4E -:1061E0000AAB002783E807001998FDF72CF9060091 -:1061F00006D03078262806D008201DB0BDE8F08FE4 -:1062000043F20200F9E7B07F00F00309B9F1020F91 -:106210000AD05DB91B98FEF79DFE0028EDD1B07F36 -:1062200000F00300022801D11B9890BBB07F00F062 -:106230000300022808D0002080F0010119980CF01A -:1062400035FA040003D101E00120F5E7FFDF852DD9 -:1062500028D007DCF5B1812D1ED0822D1ED0832DD4 -:1062600008D11DE0862D1FD0882D1FD0892D1FD06D -:106270008A2D1FD00F2020710F281DD003F01EF98A -:10628000E0B101208DF83C00201D10902079B8B1BC -:106290005BE111E00020EEE70120ECE70220EAE7F5 -:1062A0000320E8E70520E6E70620E4E70820E2E728 -:1062B0000920E0E70A20DEE707209EE711209CE79F -:1062C000B9F1020F03D0A56F03D1A06F02E0656F93 -:1062D000FAE7606F804632D04FF0010001904FF036 -:1062E00002000090214630461B9AFEF757FE1B988D -:1062F000007800F00101A87861F30100A870B17F77 -:10630000C90961F38200A870F17F61F3C300A8702E -:10631000617861F30410A87020784009287003E0C8 -:1063200028020020F44F02006078C0F3400068703B -:106330001B988078E87000206871287103E00220C3 -:10634000019001200090A87898F80210C0F3C000D6 -:10635000C1F3C00108405FEA000B2DD05046FAF7A8 -:10636000B2FF78BBDAF80C00FAF7ADFF50BBDAF8F1 -:106370001C00FAF7A8FF28BBDAF80C00A060DAF8D6 -:106380001C00E060607898F8012042EA500100BFEC -:1063900061F34100607098F80210C0B200EA111178 -:1063A00061F30000607000202077009906F117006B -:1063B000022908D0012107E0607898F8012002EA5C -:1063C0005001E5E732E0002104EB810148610199C9 -:1063D000701C022901D0012100E0002104EB8101A1 -:1063E0004861A87800F00300012857D198F802000E -:1063F00000F00300012851D1B9F1020F04D02A1D89 -:10640000691D1B98FEF7EBFD287998F804100840E9 -:106410008DF83400697998F8052011408DF838100E -:1064200008433BD05046FAF74EFF08B11020E4E68F -:106430000AF110010491B9F1020F17D008460021AA -:1064400004F18C03CDE9000304F5AE7202920DABAA -:106450005A462046FEF70CFE0028E8D1B9F1020F9B -:1064600008D0504608D14FF0010107E050464FF0E8 -:106470000101E5E70498F5E74FF0000104F1A403FA -:10648000CDE9000304F5B072029281F001010EAB78 -:106490005A462046FEF7ECFD0028C8D160788007F8 -:1064A00034D4A87898F80210C0F38000C1F38001BA -:1064B00008432BD0297898F800000AAAB9F1020FF6 -:1064C00006D032F811204300DA4002F003070AE058 -:1064D00032F810204B00DA4012F0030705D0012FEC -:1064E0000BD0022F0BD0032F07D0BBF1000F0DD024 -:1064F000012906D0042904D008E00227F5E7012786 -:10650000F3E7012801D0042800D10427B07F40F030 -:106510008000B077F17F6BF30001F177607880073E -:1065200006D50320A071BBF1000F0ED1002028E09A -:106530000220022F18D0012F18D0042F29D00020BC -:10654000A071B07F20F08000B07725213046FCF7A5 -:10655000E1FD0FA904F1E0000DF07DFD10B102286E -:1065600000D0FFDF002048E6A071DFE7A0710D2119 -:1065700004F120001EF067FB207840F0020020703C -:1065800001208DF85C0017AA3146199800F094FAA2 -:10659000DBE70120A071D8E72DE9F04387B09046F2 -:1065A000894604460025FCF74EFF060006D03078E9 -:1065B000272806D0082007B0BDE8F08343F2020088 -:1065C000F9E7B07F00F00300022809D05FF0000077 -:1065D00080F0010120460CF069F8040003D101E0CD -:1065E0000120F5E7FFDFA7795FEA090005D0012860 -:1065F00021D0B9F1020F26D110E0B8F1000F22D15D -:10660000012F05D0022F05D0032F05D0FFDF2DE08D -:106610000C252BE0012529E0022527E04046FAF76A -:1066200052FEB0B9032F0ED11022414604F11D00D5 -:106630001EF068FA1AE0012F02D0022F03D104E005 -:10664000B8F1000F12D00720B5E74046FAF73BFE3D -:1066500008B11020AFE7102104F11D001EF0D1FA9F -:106660000621404607F0C2FDC4F81D002078252110 -:1066700040F0020020703046FCF74CFD2078C10746 -:1066800013D020F00100207002208DF8000004F1EA -:106690001D0002908DF804506946C3300DF0DBFCFC -:1066A000022803D010B1FFDF00E02577002082E749 -:1066B00030B587B00D460446FCF7C5FEA0B1807F1B -:1066C00000F00300022812D05FF0000080F001010A -:1066D00020460BF0EBFF04000ED02846FAF7F3FD3E -:1066E00038B1102007B030BD43F20200FAE70120B4 -:1066F000ECE72078400701D40820F3E7294604F1AD -:106700003D00202205461EF0FDF9207840F01000E3 -:10671000207001070FD520F00800207007208DF8A9 -:106720000000694604F1E00001950DF094FC022898 -:1067300001D000B1FFDF0020D4E770B50D4606465A -:10674000FCF781FE18B10178272921D102E043F23C -:10675000020070BD807F00F00300022808D00020F6 -:1067600080F0010130460BF0A1FF040003D101E0ED -:106770000120F5E7FFDFA079022809D16078C00782 -:1067800006D02A4621463046FEF702FD10B10FE042 -:10679000082070BDB4F860000E280BD204F162012D -:1067A00002231022081F0BF008FE01210170457022 -:1067B000002070BD112070BD70B5064614460D4610 -:1067C0000846FAF780FD18B92046FAF7A2FD08B18D -:1067D000102070BDA6F57F40FF380ED03046FCF784 -:1067E00032FE38B1417822464B08811C1846FCF72E -:1067F000FAFD07E043F2020070BD2046FDF700FEFF -:106800000028F9D11021E01D0FF08BF9E21D294677 -:1068100004F1170000F087F9002070BD2DE9F04168 -:1068200004468AB01546884600270846FAF798FDC0 -:1068300018B92846FAF794FD10B110200AB006E402 -:106840002046FCF700FE060003D0307827281AD136 -:1068500002E043F20200F1E7B07F00F003000228FB -:1068600008D0002080F0010120460BF01FFF04003B -:1068700003D101E00120F5E7FFDF2078400702D5D2 -:106880006078800701D40820D8E7B07F00F00300CB -:10689000022803D0A06F03D1A16F02E0606FFAE776 -:1068A000616F407800B19DB1487810B1B8F1000F28 -:1068B0000ED0ADB1EA1D06A8E16800F034F910224F -:1068C00006A905F117001EF0F1F818B1042707E03A -:1068D0000720B3E71022E91D04F12D001EF012F984 -:1068E000B8F1000F06D0102208F1070104F11D00D5 -:1068F0001EF008F92078252140F002002070304673 -:10690000FCF708FC2078C10715D020F001002070AA -:1069100002208DF8000004F11D0002901030039059 -:106920008DF804706946B3300DF095FB022803D052 -:1069300010B1FFDF00E0277700207FE7F8B51546AC -:106940000E460746FCF77FFD040004D0207822287D -:1069500004D00820F8BD43F20200F8BDA07F00F08B -:106960000300022802D043F20500F8BD3046FAF7D2 -:10697000AAFC18B92846FAF7A6FC08B11020F8BD01 -:1069800000953288B31C21463846FEF724FC1128B6 -:1069900015D00028F3D1297C4A08A17F62F3C711E2 -:1069A000A177297CE27F61F30002E277297C8908E4 -:1069B00084F82010A17F21F04001A177F8BDA17FCC -:1069C0000907FBD4D6F80200C4F83600D6F8060052 -:1069D000C4F83A003088A0861022294604F1240029 -:1069E0001EF090F8287C4108E07F61F34100E077D9 -:1069F000297C61F38200E077287C800884F82100FC -:106A0000A07F40F00800A0770020D3E770B50D46C6 -:106A100006460BB1072070BDFCF715FD040007D03A -:106A20002078222802D3A07F800604D4082070BDDD -:106A300043F2020070BDADB1294630460AF0B2FD06 -:106A400002F05EFB297C4A08A17F62F3C711A1779F -:106A5000297CE27F61F30002E277297C890884F8CF -:106A6000201004E030460AF0C0FD02F049FBA17F8F -:106A700021F02001A17770BD70B50D46FCF7E3FC55 -:106A8000040005D02846FAF744FC20B1102070BD60 -:106A900043F2020070BD29462046FEF74AFB002063 -:106AA00070BD04E010F8012B0AB100207047491EA8 -:106AB00089B2F7D20120704770B51546064602F03C -:106AC000FDFC040000D1FFDF207820F00F00801CC7 -:106AD00020F0F0002030207066802868A060BDE8BB -:106AE000704002F0EEBC10B5134C94F83000002852 -:106AF00008D104F12001A1F110000DF0EEFA0120FF -:106B000084F8300010BD10B190F8B9202AB10A48BD -:106B100090F8350018B1002003E0B83001E00648D5 -:106B200034300860704708B50023009313460A46C6 -:106B30000BF0B7FF08BD00002802002018B18178D3 -:106B4000012938D101E010207047018842F6011276 -:106B5000881A914231D018DC42F60102A1EB020002 -:106B600091422AD00CDC41B3B1F5C05F25D06FF45F -:106B7000C050081821D0A0F57060FF381BD11CE070 -:106B800001281AD002280AD117E0B0F5807F14D06E -:106B900008DC012811D002280FD003280DD0FF28CF -:106BA00009D10AE0B0F5817F07D0A0F580700338E5 -:106BB00003D0012801D0002070470F2070470A2819 -:106BC0001FD008DC0A2818D2DFE800F0191B1F1FAD -:106BD000171F231D1F21102815D008DC0B2812D0E9 -:106BE0000C2810D00D2816D00F2806D10DE0112842 -:106BF0000BD084280BD087280FD0032070470020AB -:106C0000704705207047072070470F207047042009 -:106C10007047062070470C20704743F2020070470F -:106C200038B50C46050041D06946FFF7AFF900289A -:106C300019D19DF80010607861F302006070694618 -:106C4000681CFFF7A3F900280DD19DF800106078AB -:106C500061F3C5006070A978C1F34101012903D037 -:106C6000022905D0072038BD217821F0200102E05B -:106C7000217841F020012170410704D0A978C9088A -:106C800061F386106070607810F0380F07D0A97833 -:106C9000090961F3C710607010F0380F02D16078F5 -:106CA000400603D5207840F040002070002038BD19 -:106CB00070B504460020088015466068FFF7B0FFF5 -:106CC000002816D12089A189884211D8606880786F -:106CD000C0070AD0B1F5007F0AD840F20120B1FB0D -:106CE000F0F200FB1210288007E0B1F5FF7F01D918 -:106CF0000C2070BD01F201212980002070BD10B56B -:106D00000478137864F3000313700478640864F360 -:106D1000410313700478A40864F3820313700478A9 -:106D2000E40864F3C30313700478240964F30413C0 -:106D300013700478640964F34513137000788009B4 -:106D400060F38613137031B10878C10701D1800751 -:106D500001D5012000E0002060F3C713137010BDBF -:106D60004278530702D002F0070306E012F0380F12 -:106D700002D0C2F3C20300E001234A7863F30202A7 -:106D80004A70407810F0380F02D0C0F3C20005E01E -:106D9000430702D000F0070000E0012060F3C502C5 -:106DA0004A7070472DE9F04F95B00D00824612D021 -:106DB000122128461DF025FF4FF6FF7B05AA012171 -:106DC000584607F03AF80024264637464FF4205834 -:106DD0006FF4205973E0102015B0BDE8F08F00BFAC -:106DE0009DF81E0001280AD1BDF81C1041450BD0AA -:106DF00011EB09000AD001280CD002280CD0042C79 -:106E00000ED0052C0FD10DE0012400E00224BDF8C6 -:106E10001A6008E0032406E00424BDF81A7002E0BA -:106E2000052400E00624BDF81A10514547D12C7402 -:106E3000BEB34FF0000810AA4FF0070ACDE9028256 -:106E4000CDE900A80DF13C091023CDF81090424681 -:106E50003146584607F0A4F808BBBDF83C002A4666 -:106E6000C0B210A90DF0AFF9C8B9AE81CFB1CDE96C -:106E700000A80DF1080C0AAE40468CE8410213232D -:106E800000223946584607F08BF840B9BDF83C005F -:106E9000F11CC01EC0B22A1D0DF095F910B10320DF -:106EA0009AE70AE0BDF82900E881062C05D19DF893 -:106EB0001E00A872BDF81C00288100208CE705A8E0 -:106EC00006F0C7FF00288BD0FFF779FE84E72DE995 -:106ED000F0471C46DDE90978DDF8209015460E00E4 -:106EE000824600D1FFDF0CB1208818B1D5B1112046 -:106EF000BDE8F087022D01D0012100E0002106F15C -:106F0000140005F089FEA8F8000002463B46294619 -:106F1000504603F044F9C9F8000008B9A41C3C60CD -:106F20000020E5E71320E3E7F0B41446DDE904525E -:106F30008DB1002314B1022C09D101E0012306E038 -:106F40000D7CEE0703D025F0010501230D742146C9 -:106F5000F0BC03F0AFBF1A80F0BC70472DE9FE4FC4 -:106F600091461A881C468A468046FAB102AB4946C9 -:106F700003F015F9050019D04046A61C27880BF030 -:106F8000D9FC3246072629463B4600960BF0E7F827 -:106F900020882346CDE900504A4651464046FFF737 -:106FA000C3FF002020800120BDE8FE8F0020FBE70A -:106FB0002DE9F04786B082460EA8904690E8B000D2 -:106FC000894604AA05A903A88DE807001E462A469B -:106FD00021465046FFF77BFF039901B1012139702B -:106FE000002818D1F94904F1140204AB0860039891 -:106FF00005998DE8070042464946504606F0C3F918 -:10700000A8B1092811D2DFE800F005080510100A20 -:107010000C0C0E00002006B06AE71120FBE70720E9 -:10702000F9E70820F7E70D20F5E70320F3E7BDF8BF -:1070300010100398CDE9000133462A4621465046F8 -:10704000FFF772FFE6E72DE9F04389B00D46DDE971 -:10705000108781461C461646142103A81DF0F3FD37 -:10706000012002218DF810108DF80C008DF81170A0 -:10707000ADF8146064B1A278D20709D08DF816007B -:10708000E088ADF81A00A088ADF81800A068079055 -:1070900008A80095CDE90110424603A948466B684F -:1070A000FFF786FF09B0BDE8F083F0B58BB0002490 -:1070B0000646069407940727089405A809940194A6 -:1070C00000970294CDE903400D4610232246304636 -:1070D00006F066FF78B90AA806A901940097029401 -:1070E000CDE90310BDF8143000222946304606F0E1 -:1070F0002DFD002801D0FFF762FD0BB0F0BD06F0BA -:10710000CDBB2DE9FC410C468046002602F0D6F9A5 -:10711000054620780D287DD2DFE800F0BC0713B3C8 -:1071200025BD49496383AF959B00A848006820B1FD -:10713000417841F010014170ADE0404602F0EEF9B7 -:10714000A9E0042140460BF0B1FA070000D1FFDFAF -:1071500007F11401404605F0F3FCA5BB132140469E -:10716000FDF728FC97E0042140460BF09FFA07004A -:1071700000D1FFDFE088ADF800000020B8819DF865 -:107180000000010704D5C00602D5A088B88105E03B -:107190009DF8010040067ED5A088F88105B9FFDF83 -:1071A00022462946404601F0BDFC022673E0E188F4 -:1071B000ADF800109DF8011009060FD5072803D07F -:1071C00006280AD00AE024E0042140460BF06EFABB -:1071D000060000D1FFDFA088F0810226CDB9FFDFD5 -:1071E00017E0042140460BF061FA070000D1FFDFF1 -:1071F00007F1140006F089FB90F0010F02D1E0794D -:10720000000648D5387C022640F00200387405B9E3 -:10721000FFDF00E03EE022462946404601F082FCC6 -:1072200039E0042140460BF041FA017C002D01F0C9 -:107230000206C1F340016171017C21F00201017479 -:10724000E7D1FFDFE5E702260121404602F098F989 -:1072500021E0042140460BF029FA054660680090C1 -:107260002089ADF8040001226946404602F0A9F9E0 -:10727000287C20F0020028740DE0002DC9D1FFDF2A -:10728000C7E7022600214046FBF71EF9002DC0D1BA -:10729000FFDFBEE7FFDF3046BDE8FC813EB50C00F6 -:1072A00009D001466B4601AA002006F0FBFE20B182 -:1072B000FFF785FC3EBD10203EBD00202080A07061 -:1072C0009DF8050002A900F00700FEF77BFE50B90B -:1072D0009DF8080020709DF8050002A9C0F3C200C7 -:1072E000FEF770FE08B103203EBD9DF808006070F7 -:1072F0009DF80500C109A07861F30410A0709DF805 -:107300000510890961F3C300A0709DF80410890677 -:1073100001D5022100E0012161F342009DF8001037 -:1073200061F30000A07000203EBD70B51446064613 -:107330000D4651EA040005D075B10846FAF707F882 -:1073400078B901E0072070BD2946304606F00BFFF2 -:1073500010B1BDE8704032E454B12046F9F7F7FFB0 -:1073600008B1102070BD21463046BDE8704095E759 -:10737000002070BD2DE9FC5F0C46904605460027B5 -:1073800001780822007A3E46B2EB111F7ED104F14B -:107390000A0100910A31821E4FF0020A04F1080B23 -:1073A0000191092A73D2DFE802F0ECDF05F4272708 -:1073B0007AA9CD00688804210BF078F9060000D185 -:1073C000FFDFB08920B152270726C2E08C020020DF -:1073D00051271026002C7DD06888A0800120A07144 -:1073E000A88900220099FFF7A0FF002873D1A8897F -:1073F0002081288AE081D1E0B5F81290072824D1B5 -:10740000E87B000621D5512709F1140086B2002C33 -:10741000E1D0A88900220099FFF787FF00285AD100 -:107420006888A08084F806A0A88920810120A07324 -:10743000288A2082A4F81290A88A009068884B4677 -:10744000A969019A01F04BFBA8E0502709F112004D -:1074500086B2002C3ED0A88900225946FFF765FF6E -:10746000002838D16888A080A889E080287A072879 -:1074700013D002202073288AE081E87BC009607362 -:10748000A4F81090A88A0090688801E083E080E06A -:107490004B4604F11202A969D4E70120EAE7B5F8E6 -:1074A0001290512709F1140086B2002C66D068882A -:1074B00004210BF0FBF883466888A080A88900228D -:1074C0000099FFF732FF00286ED184F806A0A88942 -:1074D000208101E052E067E00420A073288A208226 -:1074E000A4F81290A88A009068884B46A969019A6E -:1074F00001F0F5FAA989ABF80E104FE06888FBF7A8 -:10750000A2FF0746688804210BF0D0F8064607B9A9 -:10751000FFDF06B9FFDF687BC00702D051271426C2 -:1075200001E0502712264CB36888A080502F06D067 -:1075300084F806A0287B594601F0E1FA2EE0287B6A -:10754000A11DF9E7FE49A8894989814205D154273F -:1075500006269CB16888A08020E053270BE068884D -:10756000A080A889E08019E0688804210BF09EF8CB -:1075700000B9FFDF55270826002CF0D1A8F80060DD -:1075800011E056270726002CF8D06888A08000203C -:1075900013E0FFDF02E0012808D0FFDFA8F8006059 -:1075A0000CB1278066800020BDE8FC9F5727072686 -:1075B000002CE3D06888A080687AA071EEE7401DB7 -:1075C00020F0030009B14143091D01EB4000704761 -:1075D00013B5DB4A00201071009848B100246846BA -:1075E0000AF081FE002C02D1D64A009911601CBD20 -:1075F00001240020F4E770B50D46064686B0144617 -:107600005C2128461DF01FFB04B9FFDFA0786874D9 -:10761000A2782188284601F09CFA0020A881E88100 -:10762000228805F11401304605F06FFA6A460121FF -:10763000304606F002FC19E09DF80300000715D55E -:10764000BDF806103046FFF730FD9DF80300BDF889 -:10765000061040F010008DF80300BDF80300ADF8EF -:107660001400FF233046059A06F048FD684606F0F0 -:10767000F0FB0028E0D006B070BD10B50C4601F15B -:10768000140005F079FA0146627C2046BDE81040FE -:1076900001F094BA30B50446A94891B04FF6FF7591 -:1076A000C18905AA284606F0C8FB30E09DF81E00F7 -:1076B000A0422AD001282AD1BDF81C00B0F5205FD5 -:1076C00003D042F60101884221D1002002AB0AAA70 -:1076D0000CA9019083E8070007200090BDF81A105C -:1076E00010230022284606F05BFC38B9BDF82800BC -:1076F0000BAAC0B20CA90CF066FD10B1032011B0AA -:1077000030BD9DF82E00A04201D10020F7E705A86A -:1077100006F09FFB0028C9D00520F0E770B50546AC -:1077200004210AF0C3FF040000D1FFDF04F11401BB -:107730000C46284605F004FA21462846BDE870406C -:1077400005F005BA70B58AB00C460646FBF77BFE1D -:10775000050014D02878222827D30CB1A08890B136 -:1077600001208DF80C0003208DF8100000208DF80A -:10777000110054B1A088ADF81800206807E043F26A -:1077800002000AB070BD0920FBE7ADF818000590B3 -:10779000042130460AF08AFF040000D1FFDF04F123 -:1077A000140005F000FA000701D40820E9E701F011 -:1077B00085FE60B108A802210094CDE9011095F87A -:1077C000232003A930466368FFF7F2FBD9E71120B5 -:1077D000D7E72DE9F04FB2F802A0834689B01546ED -:1077E00089465046FBF72FFE0746042150460AF013 -:1077F0005DFF0026044605964FF002080696ADF898 -:107800001C6007B9FFDF04B9FFDF4146504603F0B3 -:10781000BCFE50B907AA06A905A88DE80700424694 -:10782000214650466368FFF752FB454807AB0660A8 -:10783000DDE9051204F11400CDF80090CDE9032034 -:10784000CDE9013197F82320594650466B6805F081 -:10785000F3F906000AD0022E04D0032E14D0042E11 -:1078600000D0FFDF09B03046BDE8F08FBDF81C0046 -:107870000028F7D00599CDE9001042462146504630 -:107880006368FFF751FBEDE7687840F00800687027 -:10789000E8E72DE9F04F99B004464FF0000828487A -:1078A000ADF81C80ADF82080ADF82480A0F80880E9 -:1078B000ADF81480ADF81880ADF82C80ADF82880B4 -:1078C000007916460D464746012808D0022806D002 -:1078D000032804D0042802D0082019B0C4E72046A9 -:1078E000F9F7F1FC80BB2846F9F7EDFC60BB606856 -:1078F000F9F736FD40BB606848B16089218988424C -:1079000002D8B1F5007F01D90C20E6E780460EAA27 -:1079100006A92846FFF7CCF90028DED168688078F0 -:10792000C0F34100022808D19DF8190010F0380F6B -:1079300003D02869F9F70BFD30B905A9206904E0E7 -:107940008C0200201400002020E0FFF769F90028D5 -:10795000C3D1206948B1607880079DF8150000F018 -:10796000380001D5F0B300E0E0BB9DF814008006BC -:107970000ED59DF8150010F0380F03D06068F9F7A8 -:10798000E6FC18B96068F9F7EBFC08B11020A4E731 -:107990000AA96069FFF744F900289ED1606940B1E7 -:1079A0009DF8290000F0070101293CD110F0380FA3 -:1079B00039D00BA9A069FFF733F900288DD19DF8C4 -:1079C000280080062FD49DF82C0080062BD4A069B7 -:1079D00050B19DF82D0000F00701012923D110F0CE -:1079E000380F00E01FE01ED0E06818B10078D0B179 -:1079F0001C2818D20FAA611C2046FFF780F901212C -:107A0000384661F30F2082468DF85210B94642F68F -:107A100003000F46ADF850000DF13F0218A9286889 -:107A20000CF0F0FB08B1072057E79DF8600015A99E -:107A3000CDF80090C01CCDE9019100F0FF0B0023B0 -:107A40000BF20122514614A806F03AF9F0BBBDF83A -:107A500054000C90FD492A8928690092CDE9010162 -:107A60006B89BDF838202868069906F029F90100CD -:107A70007ED120784FF0020AC10601D480062BD5B2 -:107A8000ADF80C90606950B90AA906A8FFF768F92B -:107A90009DF8290020F00700401C8DF829009DF872 -:107AA000280008A940F0C8008DF828008DF8527011 -:107AB00042F60210ADF8500003AACDF800A0CDE9BF -:107AC0000121002340F2032214A800E01EE00A99DD -:107AD00006F0F6F801004BD1DC484D4608385B460D -:107AE0000089ADF83D000FA8CDE90290CDF80490D3 -:107AF000CDF810904FF007090022CDF80090BDF8A6 -:107B000054104FF6FF7006F021F810B1FFF757F848 -:107B1000E3E69DF83C00000625D52946012060F3E8 -:107B20000F218DF852704FF42450ADF85000ADF88D -:107B30000C5062789DF80C00002362F300008DF871 -:107B40000C006278CDF800A0520862F341008DF875 -:107B50000C0003AACDE9012540F2032214A806F087 -:107B6000AFF8010004D1606888B32069A8B900E0CB -:107B700086E005A906A8FFF7F3F86078800706D429 -:107B80009DF8150020F038008DF8150005E09DF8EF -:107B9000140040F040008DF814008DF8527042F649 -:107BA0000110ADF85000208940F20121B0FBF1F244 -:107BB00001FB1202606809ABCDF80080CDE901033A -:107BC000002314A8059906F07BF8010058D120780D -:107BD000C00729D0ADF80C50A06950B90BA906A870 -:107BE000FFF7BEF89DF82D0020F00700401C8DF82F -:107BF0002D009DF82C008DF8527040F040008DF85B -:107C00002C0042F60310ADF8500007A903AACDF8E6 -:107C100000A0CDE90121002340F2032214A80B9912 -:107C200006F04EF801002BD1E06868B32946012028 -:107C300060F30F218DF8527042F60410ADF8500039 -:107C4000E068002302788DF8582040788DF85900BC -:107C5000E06816AA4088ADF85A00E06800798DF80F -:107C60005C00E068C088ADF85D00CDF80090CDE91B -:107C700001254FF4027214A806F022F8010003D087 -:107C80000C9800F0C7FF28E67048032108380171FE -:107C900056B100893080BDF824007080BDF8200006 -:107CA000B080BDF81C00F080002016E670B50125FC -:107CB0008AB016460B46012802D0022816D104E0ED -:107CC0008DF80E504FF4205003E08DF80E5042F620 -:107CD0000100ADF80C005BB10024601C60F30F24C0 -:107CE00004AA08A918460CF08DFA18B1072048E537 -:107CF000102046E504A99DF820205448CDE9002134 -:107D0000801E02900023214603A802F2012205F002 -:107D1000D7FF10B1FEF753FF33E54C4808380EB1DA -:107D2000C1883180057100202BE5F0B593B007467E -:107D300001268DF83E6041F60100ADF83C0012AA24 -:107D40000FA93046FFF7B2FF002848D13F4C00256D -:107D5000083CE7B31C2102A81CF075FF9DF8080041 -:107D60008DF83E6040F020008DF8080042F60520B6 -:107D7000ADF83C000E959DF83A00119520F00600F4 -:107D8000801C8DF83A009DF838006A4620F0FF000C -:107D90008DF838009DF8390009A920F0FF008DF812 -:107DA00039000420ADF82C00ADF830000EA80A9080 -:107DB00011A80D900FA80990ADF82E5002A8FFF75A -:107DC00068FD00280BD1BDF80000608100E008E0EC -:107DD000BDF80400A081401CE0812571002013B093 -:107DE000F0BD6581A581BDF84800F4E72DE9F74FA6 -:107DF0001649A0B00024083917940A79A146012A2F -:107E000004D0022A02D0082023B02DE5CA8882427D -:107E100001D00620F8E721988A46824201D1072046 -:107E2000F2E701202146ADF848004FF6FF788DF8C3 -:107E30006E0042F6020B60F30F21ADF84A80ADF8F8 -:107E40006CB006918DF8724002E0000094020020B0 -:107E50001CA9ADF870401391ADF8508012A806F03F -:107E60001CF800252E462F460DAB072212A94046CE -:107E700006F016F878B10A285DD195B38EB3ADF847 -:107E80006450ADF866609DF85E008DF8144019AC42 -:107E9000012864D06BE09DF83A001FB3012859D146 -:107EA000BDF8381059451FD118A809A901940294AA -:107EB000CDE9031007200090BDF8361010230022F2 -:107EC000404606F06DF8B0BBBDF86000042801D054 -:107ED00006284AD1BDF82410219881423AD10F20BA -:107EE00092E73AE0012835D1BDF83800B0F5205FBF -:107EF00003D042F6010188422CD1BAF80600BDF841 -:107F00003610884201D1012700E0002705B19EB15B -:107F1000219881421ED118A809AA01940294CDE9A2 -:107F20000320072000900D4610230022404606F053 -:107F300037F800B902E02DE04E460BE0BDF86000D6 -:107F4000022801D0102810D1C0B217AA09A90CF03C -:107F50003AF950B9BDF8369086E7052054E705A9EF -:107F600017A8221D0CF04EF908B103204CE79DF82C -:107F700014000023001DC2B28DF814202298009234 -:107F8000CDE901401BA8069905F09AFE10B902221E -:107F90008AF80420FEF713FE36E710B50B46401EA4 -:107FA00088B084B205AA00211846FEF7A8FE00207A -:107FB0000DF1080C06AA05A901908CE8070007201E -:107FC00000900123002221464FF6FF7005F0BEFD10 -:107FD0000446BDF81800012800D0FFDF2046FEF758 -:107FE000EEFD08B010BDF0B5F74F044687B0387904 -:107FF0000E46032804D0042802D0082007B0F0BDA4 -:1080000004AA03A92046FEF753FE0500F6D16068D6 -:108010008078C0F3410002280AD19DF80D0010F0CD -:10802000380F05D02069F9F792F908B11020E5E77B -:10803000208905AA21698DE807006389BDF8102011 -:108040002068039905F03CFE10B1FEF7B8FDD5E7B6 -:1080500016B1BDF814003080042038712846CDE7F1 -:10806000F8B50C0006460CD001464FF6FF7500230C -:108070006A46284606F016F828B100BFFEF79FFDB5 -:10808000F8BD1020F8BD69462046FEF7C9FD00285E -:10809000F8D1A078314600F001032846009A06F096 -:1080A0002DF8EBE730B587B0144600220DF1080C2F -:1080B00005AD01928CE82C00072200920A46014689 -:1080C00023884FF6FF7005F041FDBDF814102180A4 -:1080D000FEF775FD07B030BD70B50D4604210AF0FE -:1080E000E5FA040000D1FFDF294604F11400BDE8E1 -:1080F000704004F051BD70B50D4604210AF0D6FA67 -:10810000040000D1FFDF294604F11400BDE87040EF -:1081100004F065BD70B50D4604210AF0C7FA0400ED -:1081200000D1FFDF294604F11400BDE8704004F0DF -:108130007DBD70B5054604210AF0B8FA040000D1EF -:10814000FFDF214628462368BDE870400122FEF784 -:1081500005BF70B5064604210AF0A8FA040000D154 -:10816000FFDF04F1140004F007FD401D20F00305BB -:1081700011E0011D00880022431821463046FEF719 -:10818000EDFE00280BD0607CABB2684382B2A068E1 -:10819000011D0AF048F9A06841880029E9D170BDA5 -:1081A00070B5054604210AF081FA040000D1FFDF12 -:1081B000214628466368BDE870400222FEF7CEBE25 -:1081C00070B50E46054601F079F9040000D1FFDFD5 -:1081D0000120207266726580207820F00F00001D5B -:1081E00020F0F00040302070BDE8704001F069B927 -:1081F00010B50446012900D0FFDF2046BDE810403D -:108200000121FAF761B92DE9F04F97B04FF0000A5C -:108210000C008346ADF814A0D04619D0E06830B108 -:10822000A068A8B10188ADF81410A0F800A05846C5 -:10823000FBF709F9070043F2020961D038782228D8 -:108240005CD3042158460AF031FA050005D103E059 -:10825000102017B0BDE8F08FFFDF05F1140004F027 -:108260008BFC401D20F00306A078012803D00228D3 -:1082700001D00720EDE7218807AA584605F0DDFD6B -:1082800030BB07A805F0E5FD10BB07A805F0E1FD30 -:1082900048B99DF82600012805D1BDF82400A0F5B5 -:1082A0002451023902D04FF45050D2E7E068B0B107 -:1082B000CDE902A00720009005AACDF804A0049201 -:1082C000A2882188BDF81430584605F03FFC10B153 -:1082D000FEF775FCBDE7A168BDF8140008809DF8A5 -:1082E0001F00C00602D543F20140B2E70B9838B137 -:1082F000A1780078012905D080071AD40820A8E7C2 -:108300004846A6E7C007F9D002208DF83C00A868CF -:108310004FF00009A0B1697C4288714391420FD9A6 -:108320008AB2B3B2011D0AF034F88046A0F800A06A -:1083300006E003208DF83C00D5F800804FF00109DD -:108340009DF8200010F0380F00D1FFDF9DF82000CD -:108350001E49C0F3C200084497F8231010F8010C1E -:10836000884201D90F2074E72088ADF8400014A995 -:108370000095CDE90191434607220FA95846FEF723 -:1083800017FE002891D19DF8500050B9A07801281F -:1083900007D1687CB3B2704382B2A868011D0AF0AD -:1083A0000CF8002055E770B5064615460C46084601 -:1083B000FEF7C4FB002805D12A4621463046BDE819 -:1083C000704073E470BD11E58C020020FE4F020086 -:1083D00070B51E4614460D0009D044B1616831B134 -:1083E00038B1FC49C988814203D0072070BD1020F4 -:1083F00070BD2068FEF7A2FB0028F9D13246214665 -:108400002846BDE87040FFF744BA70B515460C0029 -:1084100006D038B1EF490989814203D0072070BDE9 -:10842000102070BD2068FEF789FB0028F9D129468D -:108430002046BDE87040D6E570B5064686B00D46CC -:1084400014461046F8F765FFD0BB6068F8F788FF60 -:10845000B0BBA6F57F40FF3803D03046FAF7F3FFF4 -:1084600080B128466946FEF79DFC00280CD19DF896 -:1084700010100F2008293DD2DFE801F0080606069B -:10848000060A0A0843F2020006B070BD0320FBE7AB -:108490009DF80210012908D1BDF80010B1F5C05FA8 -:1084A000F2D06FF4C052D142EED09DF806100129EF -:1084B0000DD1BDF80410A1F52851062907D200E01E -:1084C00029E0DFE801F0030304030303DCE79DF880 -:1084D0000A1001290FD1BDF80810B1F5245FD3D0DF -:1084E000A1F60211B1F50051CED00129CCD002295C -:1084F00001D1C9E7FFDF606878B9002305AA2946E2 -:10850000304605F0CFFD10B1FEF759FBBCE79DF8F2 -:108510001400800601D41020B6E761882246284660 -:108520006368FFF7BFFDAFE72DE9F043814687B0F1 -:10853000884614461046F8F7ECFE18B1102007B034 -:10854000BDE8F083002306AA4146484605F0AAFD8F -:1085500018B100BFFEF733FBF1E79DF81800C00625 -:1085600002D543F20140EAE70025072705A8019557 -:1085700000970295CDE9035062884FF6FF7341469C -:10858000484605F00DFD060013D16068F8F7C1FEFE -:1085900060B960680195CDE9025000970495238881 -:1085A00062884146484605F0FBFC0646BDF81400CB -:1085B00020803046CEE739B1864B0A889B899A42A3 -:1085C00002D843F2030070471DE610B586B0814C17 -:1085D0000423ADF81430638943B1A4898C4201D2DD -:1085E000914205D943F2030006B010BD0620FBE717 -:1085F000ADF81010002100910191ADF8003002217A -:108600008DF8021005A9029104A90391ADF812207A -:108610006946FFF7F8FDE7E72DE9FC4781460D467F -:108620000846F8F750FE88BB4846FAF70CFF5FEAA9 -:1086300000080AD098F80000222829D304214846CF -:108640000AF034F8070005D103E043F20200BDE868 -:10865000FC87FFDF07F1140004F0A5FA064628782E -:10866000012803D0022804D00720F0E7B0070FD577 -:1086700002E016F01C0F0BD0A8792C1DC00709D002 -:10868000E08838B1A068F8F71EFE18B11020DEE7C8 -:108690000820DCE721882A780720B1F5847F35D0CF -:1086A0001EDC40F20315A1F20313A94226D00EDC12 -:1086B000B1F5807FCBD003DCF9B1012926D1C6E723 -:1086C000A1F58073013BC2D0012B1FD113E0012B18 -:1086D000BDD0022B1AD0032BB9D0042B16D112E037 -:1086E000A1F20912082A11D2DFE802F00B040410EB -:1086F00010101004ABE7022AA9D007E0012AA6D087 -:1087000004E0320700E0F206002AA0DACDB200F061 -:10871000D5FE50B198F82300CDE90005FA8923462B -:1087200039464846FEF78FFC91E711208FE72DE987 -:10873000F04F8BB01F4615460C4683460026FAF7CD -:1087400082FE28B10078222805D208200BB081E5EE -:1087500043F20200FAE7B80801D00720F6E7032F3A -:1087600000D100274FF6FF79CCB1022D73D32046FC -:10877000F8F7F6FD30B904EB0508A8F10100F8F7A9 -:10878000EFFD08B11020E1E7AD1EAAB22146484630 -:1087900005F057FD38F8021C88425CD1ADB20D4996 -:1087A000B80702D58889401C00E001201FFA80F834 -:1087B000F80701D08F8900E04F4605AA4146584688 -:1087C00005F03BFB4FF0070A4FF00009DCB32046F1 -:1087D0000BE000008C020020408810283BD8361D9A -:1087E000304486B2AE4236D2A01902884245F3D355 -:1087F00051E000BF9DF8170002074CD594B304EB7D -:108800000608361DB8F80230B6B2102B23D89A19D4 -:10881000AA4220D8B8F8002091421CD1C0061CD52D -:10882000CDE900A90DF1080C0AAAA11948468CE867 -:108830000700B8F800100022584605F087F920B16B -:10884000FEF7BDF982E726E005E0B8F80200BDF8C2 -:108850002810884201D00B2078E7B8F80200304495 -:1088600086B207E0FFE7C00604D55846FEF71DFCB8 -:10887000002888D19DF81700BDF81A1020F01000CC -:108880008DF81700BDF81700ADF80000FF2358461B -:10889000009A05F033FC05A805F0DBFA18B9BDF81D -:1088A0001A10B942A6D90421584609F0FFFE040067 -:1088B00000D1FFDFA2895AB1CDE900A94D460023BE -:1088C00021465846FEF7BFFB0028BBD1A5813DE7F6 -:1088D00000203BE72DE9FF4F8BB01E4617000D46E9 -:1088E0004FF0000412D0B00802D007200FB0B1E45E -:1088F000032E00D100265DB10846F8F728FD28B9FF -:108900003888691E0844F8F722FD08B11020EDE709 -:10891000C64AB00701D5D18900E00121F0074FF622 -:10892000FF7802D0D089401E00E0404686B206AAF9 -:108930000B9805F082FA4FF000094FF0070B0DF18C -:10894000140A38E09DF81B00000734D5CDF80490D8 -:10895000CDF800B0CDF80890CDE9039A4346002247 -:108960000B9805F01DFB60BB05B3BDF814103A88E9 -:1089700021442819091D8A4230D3BDF81E2020F851 -:10898000022BBDF8142020F8022BCDE900B9CDE967 -:108990000290CDF810A0BDF81E10BDF814300022D2 -:1089A0000B9805F0FDFA08B103209FE7BDF814000D -:1089B0002044001D84B206A805F04BFA20B10A2815 -:1089C00006D0FEF7FCF891E7BDF81E10B142B9D908 -:1089D00034B17DB13888A11C884203D20C2085E7D0 -:1089E000052083E722462946404605F02AFC014639 -:1089F00028190180A41C3C80002077E710B50446AC -:108A0000F8F787FC08B1102010BD8848C089208085 -:108A1000002010BDF0B58BB00D460646142103A80A -:108A20001CF011F901208DF80C008DF810000020C9 -:108A30008DF81100ADF814503046FAF704FD48B136 -:108A40000078222812D30421304609F02FFE0400BA -:108A500005D103E043F202000BB0F0BDFFDF04F1EB -:108A60001400074604F09FF8800601D40820F3E7BD -:108A7000207C022140F00100207409A80094CDE977 -:108A80000110072203A930466368FEF791FA20B16E -:108A9000217C21F001012174DEE729463046F9F7F7 -:108AA00004FD08A9384604F06DF800B1FFDFBDF8F9 -:108AB0002040172C01D2172000E02046A84201D9FF -:108AC0002C4602E0172C00D2172421463046FFF72F -:108AD00012FB21463046F9F70EFA0020BCE7F8B544 -:108AE0001C4615460E46069F09F012FF2346FF1D41 -:108AF000BCB231462A46009409F0FDFAF8BD70B5C3 -:108B00000C4605460E2120461CF07BF800202080F4 -:108B10002DB1012D01D0FFDF70BD062000E0052042 -:108B2000A07170BD10B548800878134620F00F0082 -:108B3000001D20F0F00080300C4608701422194609 -:108B400004F108001CF023F800F0BBFC3748046077 -:108B500010BD2DE9F047DFF8D890491D064621F0F9 -:108B6000030117460C46D9F8000009F0DAFB0500AE -:108B700000D1FFDF4FF000083560A5F800802146E6 -:108B8000D9F8000009F0CDFB050000D1FFDF7560CA -:108B9000A5F800807FB104FB07F1091D0BD0D9F8BF -:108BA000000009F0BEFB040000D1FFDFB460C4F890 -:108BB0000080BDE8F087C6F80880FAE72DE9F041AB -:108BC0001746491D21F00302194D06460168144657 -:108BD000286809F0D1FB22467168286809F0CCFBAF -:108BE0003FB104FB07F2121D03D0B168286809F0F9 -:108BF000C3FB042009F002FD0446042009F006FD31 -:108C0000201A012804D12868BDE8F04109F07EBB94 -:108C1000BDE8F08110B50C4605F0DBF800B1FFDFD0 -:108C20002046BDE81040FDF7CABF00008C020020BE -:108C30001400002038B50C468288817B19B1418927 -:108C4000914200D90A462280C188121D90B26A461C -:108C500008F0D0FDBDF80000032800D30320C1B206 -:108C6000208800F0D7FF38BD38B50C468288817B5C -:108C700019B10189914200D90A462280C188121D8A -:108C800090B26A4608F0B6FDBDF80000022800D395 -:108C90000220C1B2208800F0BDFF401CC0B238BD28 -:108CA0002DE9FE4F82468B46F94814460BF103022C -:108CB000D0E90010CDE9011022F0030268464FF41C -:108CC0009071009209F00FFBF24E002C02D1F24A93 -:108CD00000999160009901440091357F05F10105EB -:108CE00004D1E8B20BF008FA00B1FFDF009800EB06 -:108CF0000510C01C20F0030100915CB9707AB27AB3 -:108D00001044C2B200200870308C80B204F0E9FE3A -:108D100000B1FFDF0098316A0844009021466846A0 -:108D200000F03BFF80460098C01C20F0030000903C -:108D3000B37AF27A717A04B1002009F0CAFB009983 -:108D4000084400902146684600F06FFFD148002794 -:108D50003D4690F801900CE0284600F001FF0646E1 -:108D600081788088F9F75EF971786D1C00FB0177D6 -:108D7000EDB24D45F0D10098C01C20F003000090EA -:108D800004B100203946F9F758F900990027084442 -:108D90000090C0483D4690F801900CE0284600F055 -:108DA000DFFE0646C1788088FEF709FC71786D1CED -:108DB00000FB0177EDB24D45F0D10098C01C20F0CA -:108DC0000300009004B100203946FEF701FC009931 -:108DD0004FF0000908440090AE484D4647780EE039 -:108DE000284600F0BDFE0646807B30B106F1080043 -:108DF00001F00FFF727800FB02996D1CEDB2BD42CD -:108E0000EED10098C01C20F00300009004B10020B7 -:108E1000494601F002FF0099084400902146684647 -:108E200000F075FE0098C01D20F007000090DAF8F1 -:108E30000010814204D3A0EB0B01B1F5803F04DBAD -:108E40004FF00408CAF8000004E0CAF80000B8F1C6 -:108E5000000F02D04046BDE8FE8F34BB8F49002092 -:108E6000009A03F057F8FBF768FA8A4801AA002134 -:108E70001030F8F7F3FA00B1FFDF8648407FFEF7C5 -:108E800054FF00B1FFDF83484FF4F67140301BF010 -:108E9000DAFE80480421403080F8E91180F8EA11B8 -:108EA000062180F8EB11032101710020D3E770B592 -:108EB000784C06464034207804EB4015E0780835BD -:108EC00090B9A01990F8E80100280ED0A0780F28DA -:108ED00000D3FFDF202128461BF0B5FE687866F33B -:108EE000020068700120E070284670BD2DE9F04155 -:108EF00005460C4600270078052190463E46B1EB1A -:108F0000101F00D0FFDF287A50B101280ED0FFDFFC -:108F1000A8F800600CB1278066800020BDE8F081D1 -:108F20000127092674B16888A08008E0022714266A -:108F300044B16888A0802869E060A88A2082287BE4 -:108F40002072E5E7A8F80060E7E730B5514C012052 -:108F5000002120706170207260720322A272E072A0 -:108F600021732174052121831F21618360744CA129 -:108F700061610A2121776077474D4FF4B06020622C -:108F80006868C11C21F00301814200D0FFDF6868DE -:108F9000606030BD30B5404C1568636810339D4249 -:108FA00002D20420136030BD3A4B5D785A6802EB60 -:108FB0000512107051700320D0801720908001207E -:108FC000D0709070002090735878401C5870606882 -:108FD00010306060002030BD70B506462D4800247A -:108FE000457807E0204600F0BBFD0178B14204D08F -:108FF000641CE4B2AC42F5D1002070BDF7B5074661 -:1090000008780C4610B3FFF7E7FF0546A7F12006E6 -:10901000202F06D0052E19D2DFE806F00F2B2B15D6 -:109020001A0000F0A8FD0DB1697800E00021401A97 -:10903000A17880B20844FF2808D8A07830B1A08871 -:10904000022831D202E0608817282DD20720FEBD09 -:10905000207AE0B161881729F8D3A1881729F5D3C0 -:10906000A1790029F2D0E1790029EFD0402804D974 -:10907000ECE7242F18D1207A48B161884FF6FB70B5 -:10908000814202D8A18881420ED90420FEBD0BE0A6 -:1090900004500200A8030020180000200000002057 -:1090A0006E5246357800000065B9207802AA012189 -:1090B000FFF770FF0028E9D12078FFF78DFF05004A -:1090C00000D1FFDF052E18D2DFE806F0030B0E08F3 -:1090D0001100A0786870A088E8800FE06088A88000 -:1090E0000CE0A078A87009E0A078E87006E054F8D9 -:1090F000020FA8606068E86000E0FFDF0020C5E7BD -:109100001A2835D00DDC132832D2DFE800F01B31ED -:10911000203131272723252D313129313131312F8C -:109120000F00302802D003DC1E2821D10720704711 -:109130003A3809281CD2DFE800F0151B0F1B1B1B57 -:109140001B1B07000020704743F20400704743F2E6 -:1091500002007047042070470D2070470F207047B1 -:109160000820704711207047132070470620704771 -:109170000320704710B5007800F0010008F02CFBC8 -:10918000BDE81040BCE710B5007800F0010008F021 -:109190002CFBBDE81040B3E70EB5017801F00101EA -:1091A0008DF80010417801F001018DF8011001786F -:1091B000C1F340018DF802104178C1F340018DF8F0 -:1091C0000310017889088DF80410417889088DF81A -:1091D000051081788DF80610C1788DF80710007998 -:1091E0008DF80800684607F037FAFFF789FF0EBDD3 -:1091F0002DE9F84FDFF8F883FE4C00264FF4907706 -:109200001FE0012000F054FD0120FFF750FE05464D -:109210003946D8F8080009F084F8686000B9FFDF23 -:10922000686807F0AAF8B0B12846FAF7ECFB2846C0 -:1092300000F044FD28B93A466968D8F8080009F0FA -:109240009BF894F9E9010428DBDA022009F0D6F949 -:1092500007460025A5E03A466968D8F8080009F0F5 -:109260008BF8F2E7B8F802104046491C89B2A8F81A -:109270000210B94201D3002141800221B8F8020056 -:1092800009F014FA002864D0B8F80200694608F022 -:1092900015FAFFF735FF00B1FFDF9DF8000078B148 -:1092A000B8F8020009F046FB5FEA000900D1FFDFD1 -:1092B000484608F0B4FD18B1B8F8020002F054F9BD -:1092C000B8F8020009F024FB5FEA000900D1FFDFD3 -:1092D000484608F09CFDE0BB0321B8F8020009F005 -:1092E000E5F95FEA000B47D1FFDF45E0DBF810004E -:1092F00010B10078FF2849D0022000F0D9FC0220EC -:10930000FFF7D5FD8246484608F08DFECAF80400F6 -:1093100000B9FFDFDAF8040008F055FF00210090E3 -:109320000170B8F802105046AAF8021001F01EFEB3 -:10933000484608F04AFF00B9FFDF504600F0BEFC87 -:1093400018B99AF80100000704D50098CBF810006E -:1093500012E024E0DBF8100038B10178491C11F06C -:10936000FF01017008D1FFDF06E0002211464846E8 -:1093700000F0CBFB00B9FFDF94F9EA01022805DB1E -:10938000B8F8020001F0B7FD0028AFD194F9E90167 -:10939000042804DB484608F07CFF00B101266D1C60 -:1093A000EDB2BD4204D294F9EA010228BFF65AAFE9 -:1093B000002E7FF422AFBDE8F84F032000F078BC08 -:1093C00010B58B4CE06008682061AFF2DB10F9F754 -:1093D00084FD607010BD87480021403801708448CA -:1093E000017085494160704770B505464FF0805067 -:1093F0000C46D0F8A410491C05D1D0F8A810C943D8 -:109400000904090C0BD050F8A01F01F001012970CC -:10941000416821608068A080287830B970BD06213D -:1094200020460CF07EFB01202870607940F0C000DF -:10943000607170BD70B54FF080540D46D4F8801047 -:10944000491C0BD1D4F88410491C07D1D4F88810DA -:10945000491C03D1D4F88C10491C0CD0D4F88010CE -:109460000160D4F884104160D4F888108160D4F889 -:109470008C10C16002E010210CF053FBD4F8900076 -:10948000401C0BD1D4F89400401C07D1D4F89800AC -:10949000401C03D1D4F89C00401C09D054F8900F14 -:1094A000286060686860A068A860E068E86070BDD7 -:1094B0002846BDE8704010210CF033BB4D480079C0 -:1094C000F5E470B54B4CE07830B3207804EB4010F5 -:1094D000407A00F00700204490F9E801002800DC01 -:1094E000FFDF2078002504EB4010407A00F00700F1 -:1094F000011991F8E801401E81F8E8012078401C2C -:10950000C0B220700F2800D12570A078401CA07038 -:109510000CF0FEF9E57070BDFFDF70BD3EB505468D -:10952000032109F0C3F80446284609F0F1F905467D -:1095300004B9FFDF206918B10078FF2800D1FFDFF0 -:1095400001AA6946284600F0E0FA60B9FFDF0AE0A8 -:10955000002202A9284600F0D8FA00B9FFDF9DF8E2 -:10956000080000B1FFDF9DF80000411E8DF80010DB -:10957000EED220690199884201D1002020613EBDD0 -:1095800070B50546A0F57F400C46FF3800D1FFDFDF -:10959000012C01D0FFDF70BDFFF790FF040000D168 -:1095A000FFDF207820F00F00401D20F0F000503049 -:1095B000207065800020207201202073BDE870407B -:1095C0007FE72DE9F04116460D460746FFF776FF87 -:1095D000040000D1FFDF207820F00F00401D20F0B4 -:1095E000F00050302070678001202072286805E06C -:1095F00018000020E8030020F81300202061A8884C -:10960000A0822673BDE8F0415BE77FB5FFF7E4FC7D -:10961000040000D1FFDF02A92046FFF70BFB05463F -:1096200003A92046FFF720FB8DF800508DF80100BC -:10963000BDF80800001DADF80200BDF80C00001DCB -:10964000ADF80400E088ADF80600684608F0ACF814 -:10965000002800D0FFDF7FBD2DE9F041FB4C06461E -:10966000207808B1082059E43046F7F752FE08B1D7 -:10967000102053E4F64D287808B9FFF766FCA87A65 -:10968000697A0844C7B200F076FAB84207D2381AAD -:10969000C1B232460020FFF77DFC0028E3D16068AC -:1096A000C01C20F00300606000F05DFB61680122D7 -:1096B0000844804601463046FFF7F2FA070012D010 -:1096C0000020FFF789FC06000BD006F1130061684B -:1096D00020F00300884200D0FFDF6878401E6870E9 -:1096E000666038461AE4002241463046FFF7D8FA51 -:1096F00000B1FFDF306860604FF6FF7060800120CE -:10970000207000200AE42DE9F0410446CF481746B6 -:109710000E46007808B10820A5E70846F7F7D3FD04 -:1097200008B110209FE7CA4D287808B9FFF70DFC53 -:10973000601E1E2807D8012C22D13078FE281FD8A1 -:10974000287700208FE7A4F120001F2805D8E0B279 -:109750003A463146BDE8F04150E4A4F140001F28EC -:1097600005D831462046BDE8F04100F0CFBAA4F15B -:10977000A0001F2804D80020A02C03D0A12C06D0C4 -:10978000072070E7317801F0010169776BE73168F4 -:109790000922F82901D38B0701D0104663E76B7CBF -:1097A00003F00303012B04D16B8BD7339CB28C42A3 -:1097B000F3D8296257E72DE9F04781460E4608465F -:1097C000F7F7A7FD48B94846F7F7C1FD28B909F1F1 -:1097D000030020F00301494502D01020BDE8F087C6 -:1097E0009B484FF0000A4030817869B1417880464B -:1097F00000EB41140834378832460021204600F03F -:109800006BFA050004D027E0A6F800A00520E5E7E4 -:10981000B9F1000F24D03088B84201D90C251FE0DF -:10982000607800F00705284600F042FA08EB0507CB -:10983000324697F8E8014946401C87F8E80120467F -:1098400007F5F47700F048FA05463878401E38707E -:10985000032000F02DFA2DB10C2D01D0A6F800A0A8 -:109860002846BBE76078794E00F00701012923D034 -:1098700002290CD0032934D0FFDF98F801104046AC -:10988000491CC9B288F801100F2935D036E061684B -:1098900021B1000702D46088FFF740FE98F8EA0182 -:1098A0004746012802D17078F9F736FB97F9EA01AB -:1098B0000428E2DBFFDFE0E7616821B14FF490723A -:1098C000B06808F059FD98F8E9014746032802D12D -:1098D0007078F9F721FB97F9E9010428CDDBFFDF68 -:1098E000CBE7C00602D56088FFF718FE98F9EB01B8 -:1098F0000628C2DBFFDFC0E780F801A08178491E9F -:109900008170617801F0070101EB080090F8E8111F -:10991000491C80F8E811A3E770B50D460446F7F737 -:10992000D2FC18B92846F7F7F4FC08B1102070BD36 -:1099300029462046BDE870400AF015BC70B50546C2 -:109940000AF034FCC4B22846F7F701FD08B1102034 -:1099500070BD35B128782C7018B1A04201D0072015 -:1099600070BD2046FDF796FE052805D10AF022FCC1 -:10997000012801D0002070BD0F2070BD70B50446D5 -:1099800015460E460846F7F79EFC18B92846F7F725 -:10999000C0FC08B1102070BD022C03D0102C01D0E7 -:1099A000092070BD2A46314620460AF00CFC0028EA -:1099B000F7D0052070BD70B514460D460646F7F782 -:1099C00082FC38B92846F7F7A4FC18B92046F7F707 -:1099D000BEFC08B1102070BD2246294630460AF070 -:1099E00011FC0028F7D0072070BD3EB50446F7F7FC -:1099F00090FC08B110203EBD684606F096FDFFF7CA -:109A00007FFB0028F7D19DF806002070BDF8080004 -:109A10006080BDF80A00A08000203EBD70B50546FC -:109A20000C460846F7F793FC20B93CB12068F7F7DD -:109A300070FC08B1102070BDA08828B121462846CE -:109A4000BDE87040FDF77EBE092070BD1800002003 -:109A5000A803002070B504460D460846F7F733FC0E -:109A600030B9601E1E2814D82846F7F72CFC08B120 -:109A70001020EAE7032C01D90720E6E704B9FFDF4D -:109A8000FC4800EB840050F8041C2846BDE87040F8 -:109A90000847A4F120001F2805D829462046BDE824 -:109AA0007040FAF7D2BBF02CE6D1A868F7F70BFCB0 -:109AB0000028DDD1284607F0DFFEBDE87040FFF743 -:109AC0001FBB70B504460D460846F7F722FC30B9B7 -:109AD000601E1E280FD82846F7F7F5FB08B11020A6 -:109AE000B3E7012C03D0022C01D0032C01D10620B6 -:109AF000ABE70720A9E7A4F120001F28F9D82946E1 -:109B00002046BDE87040FAF7F8BB08F04FB938B509 -:109B10000446D948007B00F00105D9B904F042FBA6 -:109B20000DB1226800E00022D4484178C06806F0F8 -:109B3000EAFBD2481030C0788DF8000010B101283F -:109B400002D004E0012000E000208DF8000068460B -:109B500006F063FD002D02D020682830206038BD5B -:109B600030B5C54D04466878A04200D8FFDF68686C -:109B700000EB041030BD70B5BF4800252C46467878 -:109B800007E02046FFF7ECFF4078641C2844C5B28C -:109B9000E4B2B442F5D1284657E72DE9F0410C462E -:109BA00007464FF0000800F00CF90646FF2801D9DF -:109BB0004FF013083868C01C20F003023A6054EAE2 -:109BC000080421D1AC48F3B2072124300CF0AEF9DF -:109BD00009E0072C10D2DFE804F0060408080A04A4 -:109BE0000600A74804E0A74802E0A74800E0A7480D -:109BF0000CF0BCF9054600E0FFDFA54200D0FFDF16 -:109C0000641CE4B2072CE4D3386800EB061038601B -:109C1000404628E5021D5143452900D2452108440C -:109C2000C01CB0FBF2F0C0B270472DE9FC5F0646E5 -:109C300091484FF000088B464746444690F8019003 -:109C400022E02046FFF78CFF050000D1FFDF687897 -:109C500069463844C7B22846FEF7ECFF824601A9A0 -:109C60002846FFF701F80346BDF804005246001DE0 -:109C700081B2BDF80000001D80B208F095FD6A7841 -:109C8000641C00FB0288E4B24C45DAD13068C01C89 -:109C900020F003003060BBF1000F00D000204246EE -:109CA000394608F08FFD316808443060BDE8FC9FFC -:109CB0007149403108710020C87070476E494031C9 -:109CC000CA782AB10A7801EB42110831814201D0E9 -:109CD00001207047002070472DE9F04106460078CA -:109CE000154600F00F0400201080601E0F46052866 -:109CF00000D3FFDF5F482A46183800EB840039465E -:109D000050F8043C3046BDE8F041184770B50C46A9 -:109D1000402802D0412806D120E0A07861780D18B3 -:109D2000E178814201D907208FE62078012801D906 -:109D300013208AE6FF2D08D80AF0CEFB06460BF06A -:109D40009FFD301A801EA84201DA12207DE64A48A3 -:109D50002168816021790173002076E6BDE87040BA -:109D6000084600F059B82DE9F0470027DFF808A1B0 -:109D70003E463D46B9463C469AF801800AE02046F8 -:109D8000FFF7EEFE4178807B0E4410FB0155641C0A -:109D9000E4B27F1C4445F2D109EB8700C6EBC60153 -:109DA00000EB81009AF8092000EB850101EBC2016C -:109DB0009AF80A209AF80B0001EBC20101EB80002F -:109DC0000CE52DE9F047DFF8B0900026344699F80D -:109DD000090099F80A2099F801700244D5B299F85F -:109DE0000B20104400F0FF0808E02046FFF7B8FE03 -:109DF000817B407811FB0066641CE4B2BC42F4D164 -:109E000099F8091099F80A0029442944414400B1FD -:109E1000012008443044E1E438B50446407800F0BD -:109E20000300012803D002280BD0072038BD60684A -:109E300058B1F7F795FAD0B96068F7F788FA20B902 -:109E400015E06068F7F73FFA88B969462046FCF7E5 -:109E50009DF80028EAD1607800F00300022817D1AD -:109E60009DF80000A0B16068F7F771FA80B110208A -:109E700038BD000024500200A80300201800002074 -:109E80004B410000E7AC0000E92F0000EB3E010071 -:109E90006189F8290DD8208988420AD8607800F0B5 -:109EA00003020A48012A06D1D731026A89B28A42DE -:109EB00001D20920DCE794E80E0000F1100585E8E6 -:109EC0000E000AB9002101830020D1E7A803002079 -:109ED0002DE9F041074614468846084601F022FD68 -:109EE000064608EB88001C22796802EBC0000D18BA -:109EF000688C58B14146384601F01CFD014678682F -:109F00000078C200082305F120000CE0E88CA8B11D -:109F10004146384601F015FD01467868082340782F -:109F2000C20005F1240008F07EFA38B10621217242 -:109F30006681D0E90010C4E9031009E028780928F7 -:109F40000BD00520207266816868E06000202870D0 -:109F50002046BDE8F04101F0DBBC0720207266819D -:109F6000F4E72DE9F04116460D460746406801EB3F -:109F700085011C2202EBC1014418204601F003FDBB -:109F800040B10021708865F30F2160F31F41062066 -:109F90000CF0A6F809202070324629463846BDE864 -:109FA000F04195E72DE9F0410E46074600241C21BB -:109FB000F07816E004EB8403726801EBC303D25C13 -:109FC0006AB1FFF77BFA050000D1FFDF6F802A46F8 -:109FD00021463046FFF7C5FF0120BDE8F081641C33 -:109FE000E4B2A042E6D80020F7E770B506460024A8 -:109FF0001C21C0780AE000BF04EB8403726801EB07 -:10A00000C303D5182A782AB1641CE4B2A042F3D85D -:10A01000402070BD282128461AF0F3FD7068808921 -:10A020002881204670BD70B5034600201C25DC78D1 -:10A030000DE000BF00EB80065A6805EBC60632440F -:10A04000167816B1128A8A4204D0401CC0B28442EB -:10A05000F0D8402070BDF0B5044600201C26E578FD -:10A060000EE000BF00EB8007636806EBC7073B44C8 -:10A070001F788F4202D15B78934204D0401CC0B25B -:10A080008542EFD84020F0BD0078032801D00020A1 -:10A090007047012070470078022801D000207047E7 -:10A0A000012070470078072801D000207047012068 -:10A0B00070472DE9F041064688461078F17815463C -:10A0C000884200D3FFDF2C781C27641CF078E4B2B0 -:10A0D000A04201D8201AC4B204EB8401706807EBD7 -:10A0E000C1010844017821B14146884708B12C706C -:10A0F00073E72878A042E8D1402028706DE770B55A -:10A1000014460B880122A240134207D113430B804F -:10A1100001230A22011D08F050F9047070BD2DE9D9 -:10A12000FF4F81B00878DDE90E7B9A4691460E46D6 -:10A1300040072CD4019808F0FDFB040000D1FFDF9C -:10A1400007F1040820461FFA88F107F03CFD0500DE -:10A1500000D1FFDF204629466A4607F086FF0098B7 -:10A16000A0F80370A0F805A0284608F02CF80178A4 -:10A1700069F306016BF3C711017020461FFA88F1DD -:10A1800007F064FD00B9FFDF019806F02EF806EB3A -:10A190000900017F491C017705B0BDE8F08F2DE96A -:10A1A000F84F0E469A4691460746032108F07EFA7C -:10A1B0000446008DDFF8B885002518B198F8000036 -:10A1C000B0421ED1384608F0B5FB070000D1FFDFD2 -:10A1D00009F10401384689B207F0F5FC050010D0FA -:10A1E000384629466A4607F040FF009800210A4693 -:10A1F0000180817006F0B2F80098C01DCAF8000016 -:10A2000021E098F80000B04216D104F1260734F896 -:10A21000341F012000FA06F911EA090F00D0FFDF10 -:10A220002088012340EA090020800A22391D38468F -:10A2300008F0DEF8067006E0324604F1340104F15D -:10A240002600FFF75CFF0A2188F800102846BDE8C9 -:10A25000F88FFEB515460C46064602AB0C220621C9 -:10A26000FFF79DFF002827D00299607812220A701C -:10A27000801C487008224A80A07002982988052313 -:10A2800081806988C180A9880181E9884181002590 -:10A290000C20CDE90005062221463046FFF73FFF9E -:10A2A0002946002266F31F41F02310460BF06EFE94 -:10A2B0006078801C60700120FEBDFEB514460D461E -:10A2C0000622064602AB1146FFF769FF002812D0AE -:10A2D000029B132000211870A87858700220588023 -:10A2E0009C800620CDE90001024605232946304620 -:10A2F000FFF715FF0120FEBD2DE9FE430C46804609 -:10A3000044E002AB0E2207214046FFF748FF002839 -:10A3100041D060681C2267788678BF1C06EB8601F6 -:10A3200002EBC101451802981421017047700A21FF -:10A330004180698A0181E98A4181A9888180A9894E -:10A340008181304601F0EEFA029905230722C88088 -:10A350006F700420287000250E20CDE900052146ED -:10A360004046FFF7DCFE294666F30F2168F31F41E4 -:10A37000F023002206200BF009FE6078FD49801CC6 -:10A38000607062682046921CFFF793FE60688078D8 -:10A390004028B6D10120BDE8FE83FEB50D46064635 -:10A3A00038E002AB0E2207213046FFF7F8FE002806 -:10A3B00035D068681C23C17801EB810203EBC2022F -:10A3C0008418029815220270627842700A22428034 -:10A3D000A2894281A2888281084601F0A3FA01463F -:10A3E00002988180618AC180E18A0181A088B8B128 -:10A3F0000020207000210E20CDE900010523072256 -:10A4000029463046FFF78BFE6A68DB492846D21C96 -:10A41000FFF74FFE6868C0784028C2D10120FEBD1A -:10A420000620E6E72DE9FE430C46814644E020463F -:10A4300001F093FAD0B302AB082207214846FFF798 -:10A44000AEFE0028A7D060681C2265780679AD1C96 -:10A4500006EB860102EBC10147180298B7F810809D -:10A4600006210170457004214180304601F05AFAFE -:10A470000146029805230722C180A0F804807D7060 -:10A48000082038700025CDE9000521464846FFF731 -:10A4900046FE294666F30F2169F31F41F02300228F -:10A4A00006200BF073FD6078801C60706268B34911 -:10A4B0002046121DFFF7FDFD606801794029B6D1E5 -:10A4C000012068E72DE9F34F83B00E4680E0304667 -:10A4D00001F043FA002875D071681C2091F80680BD -:10A4E00008EB880200EBC2000C184146304601F030 -:10A4F00028FA0146A078C30070684078C20004F1D1 -:10A50000240007F0ACFF07468088E18B401A80B238 -:10A51000002581B3AA46218B814200D80846814696 -:10A52000024602AB07210398FFF739FE010028D04D -:10A53000BAF1000F03D0029AB888022510808B462A -:10A54000E28B3968A9EB05001FFA80FA0A440398E8 -:10A55000009208F0EFF9ED1D009A59465346009518 -:10A5600007F0FDFDE08B504480B2E083B98888425B -:10A5700009D1012508E0FFE7801C4FF0010A80B2F5 -:10A58000C9E7002008E60025CDE90095238A0722C7 -:10A5900031460398FFF7C3FDE089401EE0818DB18D -:10A5A000A078401CA0707068F178427811FB02F12D -:10A5B000CAB2816901230E3007F0FFFE80F80080E7 -:10A5C0000020E08372686E493046921DFFF771FDEE -:10A5D0007068817940297FF47AAF0120DCE570B59D -:10A5E000064648680D4614468179402910D104EB8F -:10A5F00084011C2202EBC101084401F0E5F90028A6 -:10A6000006D06868294684713046BDE8704059E735 -:10A6100070BDFEB50C460746002645E0204601F019 -:10A620009CF9D8B360681C22417901EB810102EBEF -:10A63000C1014518688900B9FFDF02AB0822072174 -:10A640003846FFF7ACFD002833D002996078162217 -:10A650000A70801C4870042048806068407901F0CE -:10A6600061F9014602980523072281806989C1802A -:10A670000820CDE9000621463846FFF750FD6078F6 -:10A68000801C6070A88969890844B0F5803F00D3B8 -:10A69000FFDFA88969890844A8816E816268394909 -:10A6A0002046521DFFF705FD606841794029B5D16C -:10A6B0000120FEBD30B5438C458BC3F3C704002396 -:10A6C00045B1838B641EED1AC38A6D1E1D4495FB34 -:10A6D000F3F3E4B22CB1008918B1A04200D82046AF -:10A6E00003444FF6FF70834200D3034613800C707F -:10A6F00030BD2DE9FC41074616460D46486802EB81 -:10A7000086011C2202EBC10144186A4601A92046B9 -:10A71000FFF7D0FFA089618901448AB2BDF800101B -:10A72000914212D0081A00D50020608168684079F3 -:10A7300040280AD1204601F03DF9002805D068687C -:10A74000294646713846FFF764FFBDE8FC812DE9D4 -:10A75000FE4F8946804615465088032107F0A6FF24 -:10A760008346B8F8020040280ED240200DE00000D9 -:10A770002C00002089A0000097A00000A5A00000E8 -:10A78000C9B90000B5B90000403880B28246014620 -:10A79000584601F0E2F800287ED00AEB8A001C221D -:10A7A000DBF8041002EBC0000C18204601F0EBF8B7 -:10A7B000002877D1B8F80000E18A88423CD8A18906 -:10A7C000D1B348456ED100265146584601F0B2F843 -:10A7D000218C0F18608B48B9B9F1020F62D3B8F819 -:10A7E00004006083618A884226D80226A9EB06000D -:10A7F0001FFA80F9B888A28B801A002814DD494618 -:10A80000814500DA084683B2688869680291396830 -:10A810000A44CDE9003208F07BF8DDE90121F61D9C -:10A82000009B009607F067FCA18B01EB090080B24A -:10A83000A083618B884207D9688803B05246594685 -:10A84000BDE8F04F01F0DDB81FD14FF009002872CC -:10A85000B8F802006881D7E90001C5E90401608BFE -:10A86000A881284601F054F85146584601F062F894 -:10A870000146DBF8040008230078C20004F1200040 -:10A8800007F0D1FD0020A0836083A0890AF0FF02B9 -:10A89000401EA081688800E004E003B05946BDE88E -:10A8A000F04F26E7BDE8FE8F2DE9F041064615463C -:10A8B0000F461C461846F6F706FD18B92068F6F74D -:10A8C00028FD08B1102013E47168688C0978B0EB9A -:10A8D000C10F01D313200BE43946304601F02AF8AA -:10A8E0000146706808230078C20005F1200007F0D7 -:10A8F00064FDD4E90012C0E900120020E3E710B5BE -:10A900000446032107F0D2FE0146007800F0030060 -:10A91000022805D02046BDE8104001F1140298E459 -:10A920008A8A2046BDE81040C7E470B5044603217A -:10A9300007F0BCFE054601462046FFF773FD0028E0 -:10A9400016D029462046FFF764FE002810D029467D -:10A950002046FFF722FD00280AD029462046FFF7AF -:10A96000CBFC002804D029462046BDE87040A9E56C -:10A9700070BD2DE9F0410C4680461EE0E17842783A -:10A9800011FB02F1CAB2816901230E3007F04BFDC1 -:10A99000077860681C22C179491EC17107EB8701E5 -:10A9A000606802EBC10146183946204600F0D5FF29 -:10A9B00018B1304600F0E0FF20B16068C17900298D -:10A9C000DCD180E7FEF77AFD050000D1FFDF0A2029 -:10A9D0002872384600F0A6FF68813946204600F00C -:10A9E000B0FF0146606808234078C20006F12400E9 -:10A9F00007F019FDD0E90010C5E90310A5F80280A1 -:10AA0000284600F085FFB07800B9FFDFB078401E1F -:10AA1000B07058E770B50C460546032107F046FEB6 -:10AA200001464068C2792244C2712846BDE87040A0 -:10AA30009FE72DE9FE4F8246507814460F464FF0AF -:10AA4000000800284FD0012807D0022822D0FFDFBD -:10AA50002068B8606068F86024E702AB0E22082125 -:10AA60005046FFF79CFB0028F2D0029815210523E1 -:10AA70000170217841700A214180C0F80480C0F83B -:10AA80000880A0F80C80628882810E20CDE9000841 -:10AA9000082221E0A678304600F044FF054606EB88 -:10AAA00086012C22786802EBC1010822465A02ABCB -:10AAB00011465046FFF773FB0028C9D002980721C2 -:10AAC0000170217841700421418008218580C68071 -:10AAD000CDE9001805230A4639465046FFF71FFB0B -:10AAE00087F80880DEE6A678022516B1022E13D07C -:10AAF000FFDF2A1D914602AB08215046FFF74FFBAE -:10AB00000028A5D002980121022E01702178417001 -:10AB10004580868002D005E00625EAE7A188C1804D -:10AB2000E1880181CDE90098052308223946504685 -:10AB3000D4E710B50446032107F0B8FD014600F143 -:10AB400008022046BDE8104073E72DE9F05F0C468F -:10AB500001281DD0957992F80480567905EB85017E -:10AB60001F2202EBC10121F0030B08EB060111FBD0 -:10AB700005F14FF6FF7202EAC10909F1030115FB65 -:10AB80000611F94F21F0031A40B101283DD124E00C -:10AB90006168E57891F800804E78DFE7594678687B -:10ABA00007F0BFFB606000B9FFDF594660681AF02C -:10ABB0004AF8E5705146786807F0B3FB6168486170 -:10ABC00000B9FFDF6068426902EB090181616068DA -:10ABD00080F800806068467017E0606852464169FE -:10ABE000786807F0C9FB5A466168786807F0C4FBCB -:10ABF000032007F003FD0446032007F007FD201A99 -:10AC0000012802D1786807F081FB0BEB0A00BDE850 -:10AC1000F09F02460021022097E773B5D24D0A202B -:10AC20002870009848B100244FEA0D0007F05BFB44 -:10AC3000002C01D1009969607CBD01240020F5E75A -:10AC400070B50C4615463821204619F0FCFF012648 -:10AC500066700A2104F11C0019F0F5FF05B9FFDF49 -:10AC6000297A207861F301002070A879002817D094 -:10AC70002A4621460020FFF768FF6168402088705F -:10AC80006168C8706168087161684871616888713D -:10AC90006168288808816168688848816068868161 -:10ACA00070BDC878002802D0002201204DE770470F -:10ACB00070B50546002165F31F4100200BF010FA26 -:10ACC0000321284607F0F2FC040000D1FFDF2146F3 -:10ACD0002846FFF767F9002804D0207840F01000DC -:10ACE0002070012070BD2DE9FF4180460E460F0CFB -:10ACF000FEF7E4FB050007D06F800321384607F01C -:10AD0000D5FC040008D106E004B03846BDE8F041A7 -:10AD10001321F9F74FBEFFDF5FEA080005D0B8F155 -:10AD2000060F18D0FFDFBDE8FF8120782A4620F00B -:10AD3000080020700020ADF8020002208DF800000D -:10AD40004FF6FF70ADF80400ADF8060069463846CE -:10AD5000F9F727FAE7E7C6F3072101EB81021C2385 -:10AD6000606803EBC202805C042803D008280AD084 -:10AD7000FFDFD8E7012000904FF440432A462046E9 -:10AD800000F008FECFE704B02A462046BDE8F041B7 -:10AD9000FFF7E7B82DE9F05F0027B0F80A9090467A -:10ADA0000C4605463E46B9F1400F01D2402001E075 -:10ADB000A9F140001FFA80FA287AC01E08286BD239 -:10ADC000DFE800F00D04192058363C4772271026A2 -:10ADD000002C6CD0D5E90301C4E902015CE07027C6 -:10ADE0001226002C63D00A2205F10C0104F10800A0 -:10ADF00019F0CDFE50E071270C26002C57D0E868E2 -:10AE0000A06049E0742710269CB3D5E90301C4E98A -:10AE100002016888032107F049FC8346FEF74EFBD8 -:10AE200002466888508051465846FFF751F833E093 -:10AE300075270A26ECB1A88920812DE076271426F3 -:10AE4000BCB105F10C0004F1080307C883E8070052 -:10AE500022E07727102664B1D5E90301C4E9020195 -:10AE60006888032107F022FC01466888FFF781FD0E -:10AE700012E01CE073270826CCB16888032107F094 -:10AE800015FC01460078C00606D56888FFF78AF8E9 -:10AE900010B96888F8F79BFDA8F800602CB12780EE -:10AEA000A4F8069066806888A0800020AFE6A8F825 -:10AEB0000060FAE72DE9FC410C461E461746804625 -:10AEC000032107F0F3FB05460A2C0AD2DFE804F061 -:10AED00005050505050509090907042303E00623FF -:10AEE00001E0FFDF0023CDE90076224629464046F7 -:10AEF000FFF715F929E438B50546A0F57F40FF387E -:10AF000030D0284607F004FD040000D1FFDF2046C2 -:10AF100007F089F8002815D001466A46204607F058 -:10AF2000A4F800980321B0F80540284607F0BEFBBE -:10AF30000546052C03D0402C05D2402404E0007ABD -:10AF400080B1002038BD403CA4B2214600F005FD90 -:10AF500040B1686804EB84013E2202EBC101405A13 -:10AF60000028EFD0012038BD2C0000202DE9F04F43 -:10AF7000054689B0408807F0CBFC040000D1FFDF14 -:10AF800006AA2046696800F0C1FC069C001F34F840 -:10AF9000031F218063886380228881B28A4205D1A1 -:10AFA000042B0AD0052B1DD0062B15D02A4620468F -:10AFB000FFF7CDFB09B0BDE8F08F1646241D2A46E9 -:10AFC00021463046F7F75BFA0828F3D12A46214696 -:10AFD0003046FCF7FEFBEDE76888211D6B68FAF749 -:10AFE00043FCE7E717466888032107F05FFB4FF053 -:10AFF00000088DF804800646ADF80680042FD9D3EA -:10B000006279002AD6D020794FF6FF794FF01C0ADA -:10B0100013282CD008DC012878D0062847D0072830 -:10B0200075D0122874D106E0142872D0152871D07A -:10B0300016286DD1ACE10C2F6AD1307800F00301F5 -:10B04000022965D140F0080030706079B0700120AD -:10B050008DF804002089ADF808006089ADF80A0079 -:10B06000A089ADF80C00E089ADF80E0019E0B078C9 -:10B0700090429FD1307801079CD5062F9AD120F0BD -:10B08000080030706888414660F31F4100200BF0D3 -:10B0900027F802208DF80400ADF808902089ADF85B -:10B0A0000A0068882A4601A9F9F77BF882E7082F89 -:10B0B00080D12789B4F80A90402F01D2402001E0C6 -:10B0C000A7F1400080B280460146304600F045FCC2 -:10B0D00008B3716808EB88002C2202EBC000095A03 -:10B0E0004945E3D1FE4807AAD0E90210CDE907108F -:10B0F00060798DF81C0008F0FF048DF81E40688808 -:10B100003146FFF796FC2A46214639E0B6E014E0C6 -:10B110003CE039E0E6E0F248D0E90010CDE9071064 -:10B120006079ADF820708DF81C00ADF82290688829 -:10B1300007AA3146FFF77DFC3CE7082FB6D16089AE -:10B14000B4F80880402801D2402000E0403887B29F -:10B150003946304600F001FC0028A7D007EB8702F3 -:10B1600071680AEBC2000844028A42459ED1017808 -:10B1700008299BD140786179884297D1F9B22A4653 -:10B180003046FEF7EEFE15E70E2F07D0CDF81C80F7 -:10B19000CDF8208060798DF81C00C8E76189E789C7 -:10B1A0008B46B4F80C903046FEF73DFFABF1400102 -:10B1B000402901D309204AE0B9F1170F01D3172F15 -:10B1C00001D20B2043E040280ED000EB80027168D2 -:10B1D0000AEBC20008440178012903D14078617963 -:10B1E0008842A9D00A2032E03046FEF7FEFE014632 -:10B1F00040282BD001EB810372680AEBC30002EBFD -:10B200000008012288F80020627988F8012070681F -:10B2100022894089B84200D93846248A03232B72F8 -:10B22000AA82EF812882A5F80C906C82084600F073 -:10B2300079FB6881A8F81490A8F81870A8F80E4057 -:10B24000A8F810B0284600F063FBB3E604200521FF -:10B250002972A5F80A80E88101212973A049D1E962 -:10B260000421CDE9072161798DF81C10ADF81E008D -:10B27000688807AA3146FFF7DCFBE3E7062FE4D333 -:10B28000B078904215D13078010712D520F008002F -:10B2900030706888414660F31F4100200AF020FFAB -:10B2A00002208DF804002089ADF80800ADF80A905E -:10B2B000F7E604213046FEF7CEFE04464028C4D00F -:10B2C0000220830300902A462146304600F062FBAC -:10B2D0004146688864F30F2160F31F4106200AF09D -:10B2E000FFFE67E60E2FB0D104213046FEF7B3FE15 -:10B2F00081464028A9D04146688869F30F2160F350 -:10B300001F4106200AF0ECFE208A0790E089009099 -:10B310007068A7894089B84200D938468346B4F896 -:10B320000A8020890590484600F0FCFA6881079859 -:10B3300040B10220079B00902A464946304600F063 -:10B3400029FB37E6B8F1170F1ED3172F1CD30420A3 -:10B35000287200986882EF81A5F810B0A5F80C80DB -:10B3600009EB89020AEBC2007168009A0C18059873 -:10B37000A4F81480A4F818B0E2812082284600F0D6 -:10B38000C7FA0620207015E601200B230090D3E7B2 -:10B39000082FA6D121893046FEF745FE07464028F2 -:10B3A0009FD007EB870271680AEBC2000844804611 -:10B3B00000F0E9FA002894D16489B8F80E0020441E -:10B3C000B0F5803F05D368883A46314600F019FB56 -:10B3D000F0E5002C85D0A8F80E0068883A46314682 -:10B3E000FFF7FDF808202872384600F09BFA6881C4 -:10B3F000AC8127E770B50D460646032107F056F9E4 -:10B40000040004D02078000704D5112070BD43F259 -:10B41000020070BD2A4621463046FEF71AFF18B9D1 -:10B42000286860616868A061207840F0080020709A -:10B43000002070BD70B50D460646032107F036F9B1 -:10B44000040004D02078000704D4082070BD43F223 -:10B45000020070BD2A4621463046FEF72EFF00B995 -:10B46000A582207820F008002070002070BD2DE912 -:10B47000F04F0E4691B08046032107F017F90446BD -:10B48000404607F057FA07460020079008900990B9 -:10B49000ADF830000A9002900390049004B9FFDFE9 -:10B4A0000DF108091FBBFFDF21E038460BA9002280 -:10B4B00006F07CFC9DF82C0000F07F050A2D00D3DF -:10B4C000FFDF6019017F491E01779DF82C000006FF -:10B4D0000DD52A460CA907A8FEF711FE02E00000D0 -:10B4E0003050020019F80510491C09F80510761EA5 -:10B4F000F6B2DAD204F13400FA4D04F1260BDFF88B -:10B50000E8A304F12A07069010E05846069900F0D7 -:10B510006AFA064628700A2800D3FFDF5AF8261078 -:10B5200040468847E08CC05DB04202D0208D0028A4 -:10B53000EBD10A202870EC4D4E4628350EE00CA9C0 -:10B5400007A800F050FA0446375D55F8240000B90A -:10B55000FFDF55F82420394640469047BDF81E00CD -:10B560000028ECD111B026E510B5032107F09EF8B4 -:10B57000040000D1FFDF0A2104F11C0019F063FB75 -:10B58000207840F00400207010BD10B50C46032157 -:10B5900007F08CF82044007F002800D0012010BD67 -:10B5A0002DE9F84F894615468246032107F07EF8BB -:10B5B000070004D02846F5F786FE40B903E043F2C1 -:10B5C0000200BDE8F88F4846F5F7A3FE08B1102049 -:10B5D000F7E7786828B169880089814201D9092094 -:10B5E000EFE7B9F800001C2418B1402809D2402028 -:10B5F00008E03846FEF7F9FC8046402819D11320B0 -:10B60000DFE7403880B280460146384600F0A5F9B1 -:10B6100048B108EB8800796804EBC000085C012899 -:10B6200003D00820CDE70520CBE7FDF747FF060054 -:10B630000BD008EB8800796804EBC0000C18B9F84F -:10B64000000020B1E88910B113E01120B9E7288883 -:10B65000172802D36888172801D20720B1E7686845 -:10B6600038B12B1D224641463846FFF71DF9002808 -:10B67000A7D104F10C0269462046FFF71BF8288881 -:10B6800060826888E082B9F8000030B10220207042 -:10B69000E889A080E889A0B12BE003202070A88968 -:10B6A000A08078688178402905D180F802803946E9 -:10B6B0005046FEF721FE404600F034F9A9F800009C -:10B6C00021E07868218B4089884200D90846208390 -:10B6D000A6F802A004203072B9F800007081E08959 -:10B6E0007082F181208B3082A08AB081304600F0D8 -:10B6F0000FF97868C178402905D180F80380394670 -:10B700005046FEF74AFE00205BE770B50D46064640 -:10B71000032106F0CBFF040003D0402D04D24025C6 -:10B7200003E043F2020070BD403DADB2294600F097 -:10B7300014F958B105EB85011C22606802EBC101C8 -:10B74000084400F020F918B1082070BD052070BD34 -:10B750002A462146304600F054F9002070BD2DE9FC -:10B76000F0410D4616468046032106F09FFF044631 -:10B77000402D01D2402500E0403DADB28CB12946BC -:10B7800000F0EBF880B105EB85011C22606802EB4C -:10B79000C1014718384600F0F6F838B10820BDE876 -:10B7A000F08143F20200FAE70520F8E733463A4613 -:10B7B00029462046FFF778F80028F0D1EAB2214662 -:10B7C0004046FEF796FF0020E9E72DE9F0410D46DF -:10B7D00016468046032106F069FF0446402D01D23B -:10B7E000402500E0403DAFB224B13046F5F76BFD97 -:10B7F00038B902E043F20200D1E73068F5F763FDA3 -:10B8000008B11020CBE73946204600F0A6F860B119 -:10B8100007EB87011C22606802EBC101451828462E -:10B8200000F0B1F818B10820B9E70520B7E7B088F3 -:10B83000A98A884201D90C20B1E76168E88C49786F -:10B84000B0EBC10F01D31320A9E73946204600F021 -:10B8500078F80146606808234078C20005F12400AA -:10B8600006F0ABFDD6E90012C0E90012FAB221469B -:10B870004046FEF7B4FE002091E72DE9F0470D4663 -:10B880001F4690468146032106F010FF0446402DD6 -:10B8900001D2402001E0A5F1400086B23CB14DB19B -:10B8A0003846F5F754FD50B11020BDE8F08743F25B -:10B8B0000200FAE76068C8B1A0F80C8024E03146C5 -:10B8C000204600F04AF888B106EB86011C22606829 -:10B8D00002EBC1014518284600F055F840B1082098 -:10B8E000E3E700002C000020485002000520DCE7C0 -:10B8F000A5F80880F2B221464846FEF7FAFE1FB1CD -:10B90000A8896989084438800020CEE706F0ADBBDD -:10B91000017821F00F01491C21F0F0011031017074 -:10B92000FDF7CFBD10B50446402800D9FFDF4034F5 -:10B93000A0B210BD406842690078484302EBC000E5 -:10B940007047C2784068037812FB03F2437840697D -:10B9500001FB032100EBC1007047C2788A4209D97C -:10B96000406801EB81011C2202EBC101405C08B17F -:10B9700001207047002070470078062801D9012077 -:10B980007047002070470078062801D001207047DA -:10B9900000207047F0B401EB81061C27446807EBD8 -:10B9A000C6063444049D05262670E3802571F0BC4C -:10B9B000FEF78EBA10B5418911B1FFF7DDFF08B16E -:10B9C000002010BD012010BD10B5C18C8278B1EBF4 -:10B9D000C20F04D9C18911B1FFF7CEFF08B1002011 -:10B9E00010BD012010BD10B50C4601230A22011D17 -:10B9F00006F019FD007821880122824091432180C0 -:10BA000010BDF0B402EB82051C264C6806EBC505A0 -:10BA1000072363554B681C79402C03D11A71F0BC85 -:10BA2000FEF700BDF0BC704710B5EFF3108000F0DA -:10BA3000010472B6F7484178491C417040780128EA -:10BA400001D109F08DFF002C00D162B610BD70B598 -:10BA5000F04CA07848B90125A570FFF7E5FF09F083 -:10BA600090FF20B1002009F05AFF002070BD4FF078 -:10BA70008040E570C0F80453F7E770B5EFF310802D -:10BA800000F0010572B6E34C607800B9FFDF607822 -:10BA9000401E6070607808B909F066FF002D00D183 -:10BAA00062B670BDDB4810B5817821B10021C1704C -:10BAB0008170FFF7E2FF002010BD10B5044609F0C9 -:10BAC00060FFD4498978084000D001202060002020 -:10BAD00010BD10B5FFF7A8FF09F053FF02220123A4 -:10BAE000CC49540728B1CC48026023610320087276 -:10BAF00002E00A72C4F804330020887110BD2DE9F9 -:10BB0000F84FDFF810934278817889F804200026F6 -:10BB100089F80510074689F806600078DFF8FCB25E -:10BB2000354620B1012811D0022811D0FFDF09F0DD -:10BB30003AFF4FF0804498B109F03CFFB0420FD17A -:10BB4000304609F03BFF0028FAD041E00126EEE73D -:10BB5000FFF76AFF58460168C907FCD00226E6E7EE -:10BB60000120E060C4F80451AD490E600107D1F82E -:10BB70004412AB4AC1F3423124321160A849343136 -:10BB800008604FF0020AC4F804A3A060A548016849 -:10BB9000C94341F3001101F10108016841F01001AE -:10BBA000016000E020BFD4F804010028FAD030463C -:10BBB00009F004FF0028FAD0B8F1000F04D1994829 -:10BBC000016821F010010160C4F808A3C4F8045111 -:10BBD00099F805004E4680B1387870B909F0D1FE69 -:10BBE00080460AF065F86FF00042B8F1000F02D00D -:10BBF000C6E9032001E0C6E90302DBF80000C00744 -:10BC000001D009F0BAFE387810B13572BDE8F88F6E -:10BC10004FF01808C4F808830127A7614FF4A070FB -:10BC2000ADF80000BDF80000411EADF80010F9D2DB -:10BC3000C4F80C51C4F810517648C01D09F0D0FE6C -:10BC40003570FFF746FF676175493079203108602C -:10BC5000C4F80483DAE770B5050000D1FFDF4FF0C8 -:10BC600080424FF0FF30C2F808030021C2F80011F3 -:10BC7000C2F80411C2F80C11C2F81011654C6170C1 -:10BC800009F08BFE10B10120A0706070634800685D -:10BC9000C00701D009F071FE2846BDE870402EE7CC -:10BCA0005C48007A002800D0012070472DE9FC5F35 -:10BCB0005D48D0F800905C4A5C4908321160840607 -:10BCC000D4F8080100B10120D4F8001111B14FF0EF -:10BCD000010801E04FF00008D4F8041101B101217E -:10BCE0000191D4F80C1101B101210091D4F8101187 -:10BCF00001B10121474D8A4695F800B0002620B1D8 -:10BD0000C4F80861012009F00AFE4248C01D09F08C -:10BD10006FFE00B1FFDF0127B8F1000F10D0C4F8AB -:10BD20000873E87818B1EE70002009F0F8FD287A61 -:10BD3000022805D1032028723748022101602761BB -:10BD4000019808B1C4F80461009850B1C4F80C61BE -:10BD5000287A032800D0FFDF2F4806602F72FFF7F4 -:10BD60008CFEBAF1000F07D0C4F81061287A0128C0 -:10BD700001D100F05DF86761BBF1000F07D02E70B4 -:10BD8000287A012801D1FFF7A4FEFFF776FE2148AB -:10BD9000C01D09F043FE2449091DC1F80090BDE80B -:10BDA000FC9F1C4810B5C01D09F022FE194940B186 -:10BDB000012008704FF0E021C1F80002BDE81040FA -:10BDC00032E6087A012801D1FFF783FE1148BDE869 -:10BDD0001040C01D09F022BE70B50E4CA07808B905 -:10BDE00009F0C2FD01208507A861207A00260328FA -:10BDF0000AD100BFD5F80C0120B9002009F0DEFD02 -:10BE00000028F7D1C5F80C6126724FF0FF30C5F855 -:10BE1000080370BD3C000020340C00400C040040BE -:10BE20001805004010ED00E010050240010000017F -:10BE300070B5134C6079F0B1012803D0A179401E90 -:10BE4000814218DA09F09DFD054609F031FF61795C -:10BE5000012902D9A179491CA1710DB1216900E024 -:10BE6000E168411A022902DA11F1020FD1DC0DB1A9 -:10BE7000206100E0E060BDE870402AE6C9E700000C -:10BE80003C00002010B5202000F07FF8202000F0BA -:10BE90008DF84D49202081F80004F5F7AFFA4B49A1 -:10BEA00008604B48D0F8041341F00101C0F80413B6 -:10BEB000D0F8041341F08071C0F804134249012006 -:10BEC0001C39C1F8000110BD10B5202000F05DF84C -:10BED0003E480021C8380160001D01603D4A481EEF -:10BEE00010603B4AC2F80803384B1960C2F80001E1 -:10BEF000C2F8600138490860BDE81040202000F019 -:10BF000055B834493548091F0860704731493348EE -:10BF1000086070472D48C8380160001D521E02603D -:10BF200070472C4901200860BFF34F8F70472DE9FF -:10BF3000F0412849D0F8188028480860244CD4F8EB -:10BF400000010025244E6F1E28B14046F5F7B4F9D4 -:10BF500040B9002111E0D4F8600198B14046F5F7EE -:10BF6000ABF948B1C4F80051C4F860513760BDE87E -:10BF7000F041202000F01AB831684046BDE8F04199 -:10BF800018F08CBEFFDFBDE8F08100280DDB00F06B -:10BF90001F02012191404009800000F1E020C0F81B -:10BFA0008011BFF34F8FBFF36F8F7047002809DBFD -:10BFB00000F01F02012191404009800000F1E020C3 -:10BFC000C0F880127047000020E000E0C806024080 -:10BFD0000000024018050240000402400100000178 -:10BFE0000F4A12680D498A420CD118470C4A126850 -:10BFF0000A4B9A4206D101B509F02CFEFFF781FFEA -:10C00000BDE801400749096809580847064807493B -:10C01000054A064B7047000000000000BEBAFECA89 -:10C020005400002004000020781300207813002022 -:10C03000F8B51D46DDE906470E000AD006F07AFC89 -:10C040002346FF1DBCB231462A46009406F087F80D -:10C05000F8BDD0192246194618F054FD2046F8BD07 -:10C0600070B50D460446102118F0CBFD2581172030 -:10C070006081A07B40F00A00A07370BD4FF6FF7294 -:10C080000A80014602200AF02BB8704700897047E9 -:10C09000827BD30701D1920703D4808908800020D6 -:10C0A000704705207047827B920700D581817047D9 -:10C0B00001460020098841F6FE52114200D00120BD -:10C0C000704700B50346807BC00701D0052000BD46 -:10C0D00059811846FFF7ECFFC00703D0987B40F06A -:10C0E00004009873987B40F001009873002000BD15 -:10C0F000827B520700D509B14089704717207047ED -:10C10000827B61F3C302827370472DE9FC5F0E46A8 -:10C11000044601789646012000FA01F14DF6FF52DF -:10C1200001EA020962684FF6FF7B1188594502D186 -:10C130000920BDE8FC9FB9F1000F05D041F6FE557E -:10C14000294201D00120F4E741EA090111801D00D4 -:10C1500014D000232B7094F800C0052103221F4641 -:10C160004FF0020ABCF10E0F76D2DFE80CF0F909AD -:10C17000252F47646B77479193B4D1D80420D8E733 -:10C18000616820898B7B9B0767D517284AD30B8969 -:10C19000834247D38989172901D3814242D185F847 -:10C1A00000A0A5F801003280616888816068817B09 -:10C1B00021F002018173C6E0042028702089A5F8CF -:10C1C00001006089A5F803003180BCE0208A318835 -:10C1D000C01D1FFA80F8414524D30620287020890D -:10C1E000A5F801006089A5F80300A089A5F805005D -:10C1F0000721208ACDE90001636941E00CF0FF00CE -:10C20000082810D0082028702089A5F8010060892E -:10C21000A5F8030031806A1D694604F10C0007F09F -:10C22000F1FF10B15EE01020EDE730889DF80010BE -:10C230000844308087E00A2028702089A5F8010092 -:10C24000328044E00C2028702089A5F80100608924 -:10C25000A5F8030031803AE082E064E02189338868 -:10C2600000EB41021FFA82F843453BD3B8F1050FBA -:10C2700038D30E222A700BEA4101CDE90010E368A1 -:10C2800060882A467146FFF7D3FEA6F800805AE080 -:10C290004020287060893188C01C1FFA80F8414511 -:10C2A00020D32878714620F03F0012302870208972 -:10C2B000A5F801006089CDE9000260882A46E3689C -:10C2C000FFF7B6FEA6F80080287840063BD46168E8 -:10C2D0002089888037E0A0893288401D1FFA80F8C5 -:10C2E000424501D204273DE0162028702089A5F898 -:10C2F00001006089A5F80300A089CDE900016088EC -:10C300002A4671462369FFF793FEA6F80080DEE710 -:10C3100018202870207A6870A6F800A013E06168E1 -:10C320000A88920401D405271CE0C9882289914219 -:10C3300001D0062716E01E21297030806068018830 -:10C3400021F400510180B9F1000F0BD061887823EE -:10C350000022022009F01AFE61682078887006E049 -:10C36000338003276068018821EA0901018038468B -:10C37000DFE62DE9FF4F85B01746129C0D001E46E3 -:10C380001CD03078C10703D000F03F00192801D934 -:10C39000012100E000212046FFF7AAFEA8420DD3AC -:10C3A0002088A0F57F41FF3908D03078410601D4BC -:10C3B000000605D5082009B0BDE8F08F0720FAE790 -:10C3C00000208DF800008DF8010030786B1E00F021 -:10C3D0003F0C0121A81E4FF0050A4FF002094FF053 -:10C3E000030B9AB2BCF1200F75D2DFE80CF08B1072 -:10C3F000745E7468748C749C74B674BB74C974D5A0 -:10C4000074E2747474F274F074EF74EE748B052D2E -:10C4100078D18DF80090A0788DF804007088ADF880 -:10C42000060030798DF80100707800F03F000C288C -:10C4300029D00ADCA0F10200092863D2DFE800F06D -:10C44000126215621A621D622000122824D004DCD8 -:10C450000E281BD01028DBD11BE016281FD018286F -:10C46000D6D11FE02078800701E02078400700281F -:10C4700048DAEFE020780007F9E72078C006F6E711 -:10C4800020788006F3E720784006F0E72078000661 -:10C49000EDE72088C005EAE720884005E7E7208827 -:10C4A0000005E4E72088C004E1E72078800729D56B -:10C4B000032D27D18DF800B0B6F8010082E0217875 -:10C4C00049071FD5062D1DD381B27078012803D0EE -:10C4D000022817D102E0CAE0022000E01020042266 -:10C4E0008DF8002072788DF80420801CB1FBF0F2EA -:10C4F000ADF8062092B242438A4203D10397ADF8C9 -:10C500000890A7E07AE02078000777D598B28208F3 -:10C510008DF800A0ADF80420B0EB820F6ED1029729 -:10C52000ADF8061096E02178C90667D5022D65D3CF -:10C5300081B206208DF80000707802285ED300BF1B -:10C54000B1FBF0F28DF80400ADF8062092B2424340 -:10C550008A4253D1ADF808907BE0207880064DD513 -:10C56000072003E0207840067FD508208DF80000E2 -:10C57000A088ADF80400ADF80620ADF8081068E01A -:10C580002078000671D50920ADF804208DF8000050 -:10C59000ADF8061002975DE02188C90565D5022D2A -:10C5A00063D381B20A208DF80000707804285CD330 -:10C5B000C6E72088400558D5012D56D10B208DF8AF -:10C5C0000000A088ADF8040044E021E026E016E079 -:10C5D000FFE72088000548D5052D46D30C208DF8AF -:10C5E0000000A088ADF80400B6F803006D1FADF898 -:10C5F0000850ADF80600ADF80AA02AE035E0208822 -:10C60000C00432D5012D30D10D208DF8000021E07D -:10C610002088800429D4B6F80100E080A07B0007C0 -:10C6200023D5032D21D3307800F03F001B2818D0EC -:10C630000F208DF80000208840F40050A4F800007E -:10C64000B6F80100ADF80400ED1EADF80650ADF8E7 -:10C6500008B0039769460598F5F75CFC050008D01B -:10C6600016E00E208DF80000EAE7072510E0082507 -:10C670000EE0307800F03F001B2809D01D2807D0BD -:10C680000220059909F02CFD208800F4005020803C -:10C69000A07B400708D52046FFF70AFDC00703D15D -:10C6A000A07B20F00400A073284684E61FB5022872 -:10C6B00006D101208DF8000088B26946F5F72AFC02 -:10C6C0001FBD0000F8B51D46DDE906470E000AD083 -:10C6D00006F030F92346FF1DBCB231462A460094CD -:10C6E00005F03DFDF8BDD0192246194618F00AFAAA -:10C6F0002046F8BD2DE9FF4F8DB09B46DDE91B5765 -:10C70000DDF87CA00C46082B05D0E06901F002F9A9 -:10C7100050B11020D2E02888092140F01000288074 -:10C720008AF80010022617E0E16901208871E269A9 -:10C730004FF420519180E1698872E06942F601016D -:10C740000181E069002181732888112140F02000D7 -:10C7500028808AF80010042638780A900A20387059 -:10C760004FF0020904F118004D460C9001F095FBC2 -:10C77000B04681E0BBF1100F0ED1022D0CD0A9EB19 -:10C780000800801C80B20221CDE9001005AB5246A2 -:10C790001E990D98FFF796FFBDF816101A98814262 -:10C7A00003D9F74800790F9004E003D10A9808B143 -:10C7B00038702FE04FF00201CDE900190DF116039A -:10C7C00052461E990D98FFF77DFF1D980088401B6B -:10C7D000801B83B2C6F1FF00984200D203461E9927 -:10C7E0000BA8D9B15FF00002DDF878C0CDE90320D5 -:10C7F00009EB060189B2CDE901C10F980090BDF89F -:10C80000161000220D9801F0CBFB387070B1C0B249 -:10C81000832807D0BDF8160020833AE00AEB09010F -:10C820008A19E1E7022011B0BDE8F08FBDF82C00B5 -:10C83000811901F0FF08022D0DD09AF80120424520 -:10C8400006D1BDF82010814207D0B8F1FF0F04D007 -:10C850009AF801801FE08AF80180C94800680178D1 -:10C86000052902D1BDF81610818009EB08001FFAD6 -:10C8700080F905EB080085B2DDE90C1005AB0F9AD5 -:10C8800001F00EFB28B91D980088411B4145BFF6F9 -:10C8900071AF022D13D0BBF1100F0CD1A9EB080022 -:10C8A000801C81B20220CDE9000105AB52461E99E1 -:10C8B0000D98FFF707FF1D980580002038700020B5 -:10C8C000B1E72DE9F8439C46089E13460027B26B5A -:10C8D0009AB3491F8CB2F18FA1F57F45FF3D05D07A -:10C8E0005518AD882944891D8DB200E0002529190D -:10C8F000B6F83C800831414520D82A44BCF80110E4 -:10C9000022F8021BBCF8031022F8021B984622F8FA -:10C91000024B914605F0FCFF4FF00C0C41464A4695 -:10C920002346CDF800C005F0E6FBF587B16B00208B -:10C930002944A41D2144088003E001E0092700E008 -:10C9400083273846BDE8F88310B50B88848F9C4256 -:10C950000CD9846BE018048844B1848824F4004422 -:10C96000A41D23440B801060002010BD0A2010BDC0 -:10C970002DE9F0478AB00025904689468246ADF8F9 -:10C98000185007274BE0059806888088000446D495 -:10C99000A8F8006007A8019500970295CDE903501B -:10C9A0004FF4007300223146504601F0F9FA0400BA -:10C9B0003CD1BDF81800ADF82000059804888188A6 -:10C9C000B44216D10A0414D401950295039521F4BA -:10C9D00000410097049541F4804342882146504627 -:10C9E00001F0B4F804000BD10598818841F40041AE -:10C9F000818005AA08A94846FFF7A6FF0400DCD0FD -:10CA00000097059802950195039504950188BDF856 -:10CA10001C300022504601F099F80A2C06D105AAD4 -:10CA200006A94846FFF790FF0400ACD0ADF81850B7 -:10CA300004E00598818821F40041818005AA06A9B7 -:10CA40004846FFF781FF0028F3D00A2C03D0204688 -:10CA50000AB0BDE8F0870020FAE710B50C46896BF4 -:10CA600086B051B10C218DF80010A18FADF80810DF -:10CA7000A16B01916946FAF744FB00204FF6FF7164 -:10CA8000A063E187A08706B010BD2DE9F0410D46F7 -:10CA90000746896B0020069E1446002911D0012B01 -:10CAA0000FD1324629463846FFF762FF002808D1E9 -:10CAB000002C06D0324629463846BDE8F04100F049 -:10CAC00038BFBDE8F0812DE9FC411446DDE9087C62 -:10CAD0000E46DDE90A15521DBCF800E092B29645FB -:10CAE00002D20720BDE8FC81ACF8002017222A7092 -:10CAF000A5F80160A5F803300522CDE900423B46C8 -:10CB00002A46FFF7DFFD0020ECE770B50C4615461E -:10CB10004821204618F097F804F1080044F81C0F4B -:10CB200000204FF6FF71E06161842084A584172006 -:10CB3000E08494F82A0040F00A0084F82A0070BDCE -:10CB40004FF6FF720A800146032009F0C9BA30B5DA -:10CB500085B00C460546FFF780FFA18E284629B117 -:10CB600001218DF800106946FAF7CBFA0020E06247 -:10CB70002063606305B030BDB0F84000704700002E -:10CB80005800002090F84620920703D4408808807F -:10CB90000020F3E70620F1E790F846209207EDD554 -:10CBA000A0F84410EAE70146002009880A0700D5EA -:10CBB000012011F0F00F01D040F00200CA0501D5AC -:10CBC00040F004008A0501D540F008004A0501D56F -:10CBD00040F010000905D1D540F02000CEE700B5A7 -:10CBE000034690F84600C00701D0062000BDA3F818 -:10CBF00042101846FFF7D7FF10F03E0F05D093F80C -:10CC0000460040F0040083F8460013F8460F40F059 -:10CC100001001870002000BD90F84620520700D592 -:10CC200011B1B0F84200A9E71720A7E710F8462F86 -:10CC300061F3C3020270A1E72DE9FF4F9BB00E0024 -:10CC4000DDE92B34DDE92978289D24D02878C10737 -:10CC500003D000F03F00192801D9012100E0002194 -:10CC60002046FFF7D9FFB04215D32878410600F0DF -:10CC70003F010CD41E290CD0218811F47F6F0AD1FA -:10CC80003A8842B1A1F57F42FF3A04D001E012296F -:10CC900001D1000602D504201FB0C5E5F9491D9851 -:10CCA0004FF0000A08718DF818A08DF83CA00FAA6B -:10CCB0000A60ADF81CA0ADF850A02978994601F0A3 -:10CCC0003F02701F5B1C04F1180C4FF0060E4FF072 -:10CCD000040BCDF858C01F2A7ED2DFE802F07D7D1C -:10CCE000107D267DAC7DF47DF37DF27DF17DF47DBC -:10CCF000F07D7D7DEF7DEE7D7D7D7D7DED0094F889 -:10CD00004610B5F80100890701D5032E02D08DF831 -:10CD100018B022E34FF40061ADF850106080032199 -:10CD20008DF83C10ADF84000D8E2052EEFD1B5F8F3 -:10CD300001002083ADF81C00B5F80310618308B131 -:10CD4000884201D901207FE10020A07220814FF6A6 -:10CD5000FF702084169801F0A0F8052089F80000E3 -:10CD60000220029083460AAB1D9A16991B9801F087 -:10CD700097F890BB9DF82E00012804D0022089F876 -:10CD80000100102003E0012089F801000220059035 -:10CD9000002203A90BA807F035FAE8BB9DF80C00A8 -:10CDA000059981423DD13A88801CA2EB0B0181425A -:10CDB00037DB02990220CDE900010DF12A034A4632 -:10CDC00041461B98FFF77EFC02980BF1020B801C7A -:10CDD00080B217AA03A901E0A0E228E002900BA804 -:10CDE00007F010FA02999DF80C00CDE9000117AB8D -:10CDF0004A4641461B98FFF765FC9DF80C100AABAC -:10CE00000BEB01001FFA80FB02981D9A084480B2C8 -:10CE1000029016991B9800E003E001F041F8002809 -:10CE2000B6D0BBF1020F02D0A7F800B053E20A203F -:10CE30008DF818004FE200210391072EFFF467AF31 -:10CE4000B5F801002083ADF81C00B5F8032062831B -:10CE500000283FF477AF90423FF674AF0120A072F4 -:10CE6000B5F8050020810020A073E06900F052FDB4 -:10CE700078B9E16901208871E2694FF4205191800D -:10CE8000E1698872E06942F601010181E0690021EF -:10CE90008173F01F20841E986062072060841698BA -:10CEA00000F0FBFF072089F80000012004900290A9 -:10CEB0000020ADF82A0028E01DE2A3E13AE1EAE013 -:10CEC00016E2AEE086E049E00298012814D0E0695D -:10CED0008079012803D1BDF82800ADF80E00049830 -:10CEE00003ABCDE900B04A4641461B98FFF7EAFB89 -:10CEF0000498001D80B20490BDF82A00ADF80C0023 -:10CF0000ADF80E00059880B202900AAB1D9A1699F2 -:10CF10001B9800F0C5FF28B902983988001D0590BC -:10CF20008142D1D20298012881D0E069807901281C -:10CF300005D0BDF82810A1F57F40FF3803D1BDF81A -:10CF40002800ADF80E00049803ABCDE900B04A46C6 -:10CF500041461B98FFF7B6FB0298BBE1072E02D0B3 -:10CF6000152E7FF4D4AEB5F801102183ADF81C1056 -:10CF7000B5F80320628300293FF4E4AE91423FF606 -:10CF8000E1AE0121A1724FF0000BA4F808B084F8C3 -:10CF90000EB0052E07D0C0B2691DE26907F013F983 -:10CFA00000287FF444AF4FF6FF70208401A906AA41 -:10CFB00014A8CDF800B081E885032878214600F058 -:10CFC0003F031D9A1B98FFF795FB8246208BADF817 -:10CFD0001C0080E10120032EC3D14021ADF8501088 -:10CFE000B5F801102183ADF81C100AAAB8F1000FA2 -:10CFF00000D00023CDE9020304921D98CDF80480EF -:10D00000009038880022401E83B21B9800F0C8FFB1 -:10D010008DF8180090BB0B2089F80000BDF828009F -:10D0200037E04FF0010C052E9BD18020ADF8500069 -:10D03000B5F801102183B5F803002084ADF81C1069 -:10D04000B0F5007F03D907208DF8180085E140F482 -:10D050007C4222840CA8B8F1000F00D00023CDE957 -:10D060000330CDE9018C1D9800903888401E83B2B2 -:10D070001B9800F095FF8DF8180028B18328A8D1DF -:10D080000220BDE0580000200D2189F80010BDF8F5 -:10D090003000401C1EE1032E04D248067FF537AE57 -:10D0A000002017E1B5F80110ADF81C1028784006F3 -:10D0B00002D58DF83CE002E007208DF83C004FF0EF -:10D0C00000080320CDE902081E9BCDF810801D98B2 -:10D0D0000193A6F1030B00901FFA8BF342461B98B5 -:10D0E00000F034FD8DF818008DF83C802978490651 -:10D0F0000DD52088C00506D5208BBDF81C108842B0 -:10D1000001D1C4F8248040468DF81880E2E08328DD -:10D1100001D14FF0020A4FF48070ADF85000BDF815 -:10D120001C002083A4F820B01E9860620320608455 -:10D130001321CCE0052EFFF4EAADB5F80110ADF8EF -:10D140001C10A28F62B3A2F57F43FE3B28D00822B9 -:10D150008DF83C204FF0000B0523CDE9023BDDF8B4 -:10D1600078C0CDF810B01D9A80B2CDF804C040F45C -:10D1700000430092B5F803201B9800F0E7FC8DF8FF -:10D180003CB04FF400718DF81800ADF850108328B2 -:10D1900010D0F8B1A18FA1F57F40FE3807D0DCE0B8 -:10D1A0000B228DF83C204FF6FE72A287D2E7A4F83E -:10D1B0003CB0D2E000942B4631461E9A1B98FFF7F4 -:10D1C00080FB8DF8180008B183284BD1BDF81C00F6 -:10D1D000208355E700942B4631461E9A1B98FFF793 -:10D1E00070FB8DF81800E8BBE18FA06B0844811D2F -:10D1F0008DE882034388828801881B98FFF763FCCF -:10D20000824668E095F80180022E70D15FEA08003E -:10D2100002D0B8F1010F6AD109208DF83C0007A8AF -:10D2200000908DF840804346002221461B98FFF76E -:10D230002CFC8DF842004FF0000B8DF843B050B934 -:10D24000B8F1010F12D0B8F1000F04D1A18FA1F5F0 -:10D250007F40FF380AD0A08F40B18DF83CB04FF42A -:10D26000806000E037E0ADF850000DE00FA91B989A -:10D27000F9F747FF82468DF83CB04FF48060ADF877 -:10D280005000BAF1020F06D0FC480068C07928B1FE -:10D290008DF8180027E0A4F8188044E0BAF1000FD8 -:10D2A00003D081208DF818003DE007A80090434688 -:10D2B000012221461B98FFF7E8FB8DF81800214654 -:10D2C0001B98FFF7CAFB9DF8180020B9192189F8AF -:10D2D0000010012038809DF83C0020B10FA91B9858 -:10D2E000F9F70FFF8246BAF1000F33D01BE018E0C8 -:10D2F0008DF818E031E02078000712D5012E10D10A -:10D300000A208DF83C00E088ADF8400003201B990E -:10D3100008F0E6FE0820ADF85000C1E648067FF5AB -:10D32000F6AC4FF0040A2088BDF850100843208066 -:10D33000BDF8500080050BD5A18FA1F57F40FE38C8 -:10D3400006D11E98E06228982063A6864FF0030A53 -:10D350005046A1E49DF8180078B1012089F800003A -:10D36000297889F80110BDF81C10A9F802109DF861 -:10D37000181089F80410052038802088BDF8501056 -:10D3800088432080E4E72DE9FF4F8846087895B070 -:10D39000012181404FF20900249C0140ADF820108A -:10D3A0002088DDF88890A0F57F424FF0000AFF3A10 -:10D3B00006D039B1000705D5012019B0BDE8F08FBE -:10D3C0000820FAE7239E4FF0000B0EA886F800B065 -:10D3D00018995D460988ADF83410A8498DF81CB03D -:10D3E000179A0A718DF838B0086098F80000012883 -:10D3F0003BD0022809D003286FD1307820F03F00BD -:10D400001D303070B8F80400E08098F80010032058 -:10D41000022904D1317821F03F011B31317094F899 -:10D420004610090759D505ABB9F1000F13D00021FB -:10D4300002AA82E80B000720CDE90009BDF83400FC -:10D44000B8F80410C01E83B20022159800F0A8FDA1 -:10D450000028D1D101E0F11CEAE7B8F80400A6F8F1 -:10D460000100BDF81400C01C04E198F805108DF807 -:10D470001C1098F80400012806D04FF4007A022806 -:10D480002CD00328B8D16CE12188B8F8080011F439 -:10D490000061ADF8201020D017281CD3B4F840103C -:10D4A000814218D3B4F84410172901D3814212D114 -:10D4B000317821F03F01C91C3170A6F80100032129 -:10D4C000ADF83410A4F8440094F8460020F00200AF -:10D4D00084F8460065E105257EE177E1208808F1C2 -:10D4E000080700F4FE60ADF8200010F0F00F1BD02C -:10D4F00010F0C00F03D03888228B9042EBD199B93D -:10D50000B878C00710D0B9680720CDE902B1CDF8CE -:10D5100004B00090CDF810B0FB88BA88398815980F -:10D5200000F014FB0028D6D12398BDF82010401C31 -:10D5300080294ED006DC10290DD020290BD040299F -:10D5400087D124E0B1F5807F6ED051457ED0B1F512 -:10D55000806F97D1DEE0C80601D5082000E01020DA -:10D5600082460DA907AA0520CDE902218DF83800D1 -:10D57000ADF83CB0CDE9049608A93888CDE90001A2 -:10D580005346072221461598FFF7B4F8A8E09DF806 -:10D590001C2001214FF00A0A002A9BD105ABB9F1EA -:10D5A000000F00D00020CDE902100720CDE90009CE -:10D5B000BDF834000493401E83B2218B00221598DD -:10D5C00000F0EEFC8DF81C000B203070BDF814004C -:10D5D00020E09DF81C2001214FF00C0A002A22D1E6 -:10D5E00013ABB9F1000F00D00020CDE902100720E5 -:10D5F000CDE900090493BDF83400228C401E83B2AB -:10D60000218B159800F0CCFC8DF81C000D2030709B -:10D61000BDF84C00401CADF8340005208DF83800F2 -:10D62000208BADF83C00BCE03888218B88427FF429 -:10D6300052AF9DF81C004FF0120A00281CD1606AFE -:10D64000A8B1B878C0073FF446AF00E018E0BA6868 -:10D650000720CDE902B2CDF804B00090CDF810B0AB -:10D66000FB88BA88159800F071FA8DF81C00132019 -:10D6700030700120ADF8340093E000005800002025 -:10D680003988208B8142D2D19DF81C004FF0160AB8 -:10D690000028A06B08D0E0B34FF6FF7000215F4672 -:10D6A000ADF808B0019027E068B1B978C907BED1DC -:10D6B000E18F0DAB0844821D03968DE80C02438870 -:10D6C0008288018809E0B878C007BCD0BA680DAB81 -:10D6D00003968DE80C02BB88FA881598FFF7F3F9DA -:10D6E00005005ED0072D72D076E0019005AA02A950 -:10D6F0002046FFF729F90146E28FBDF80800824273 -:10D7000001D00029F1D0E08FA16B08440780019877 -:10D71000E08746E09DF81C004FF0180A40B1208BCE -:10D72000C8B13888208321461598FFF796F938E06C -:10D7300004F118000090237E012221461598FFF77E -:10D74000A4F98DF81C000028EDD1192030700120BB -:10D75000ADF83400E7E7052521461598FFF77DF978 -:10D760003AE0208800F40070ADF8200050452DD13B -:10D77000A08FA0F57F41FE3901D006252CE0D8F816 -:10D7800008004FF0160A48B1A063B8F80C10A18742 -:10D790004FF6FF71E187A0F800B002E04FF6FF708E -:10D7A000A087BDF8200030F47F611AD078230022D2 -:10D7B0000320159908F0EAFB98F8000020712088F2 -:10D7C000BDF82010084320800EE000E007252088E7 -:10D7D000BDF8201088432080208810F47F6F1CD073 -:10D7E0003AE02188814321809DF8380020B10EA9BC -:10D7F0001598F9F786FC05469DF81C000028EBD02B -:10D8000086F801A001203070208B70809DF81C00EC -:10D8100030710520ADF83400DEE7A18EE1B1189833 -:10D820000DAB0088ADF834002398CDE90304CDE9B1 -:10D830000139206B0090E36A179A1598FFF7FCF9FD -:10D84000054601208DF838000EA91598F9F759FC06 -:10D8500000B10546A4F834B094F8460040070AD554 -:10D860002046FFF7A0F910F03E0F04D114F8460F40 -:10D8700020F0040020701898BDF83410018028466C -:10D880009BE500B585B0032806D102208DF8000085 -:10D8900088B26946F9F735FC05B000BD10B5384CC3 -:10D8A0000B782268012B02D0022B2AD111E01378C9 -:10D8B0000BB1052B01D10423137023688A889A8049 -:10D8C0002268CB88D38022680B89138149895181D2 -:10D8D0000DE08B8893802268CB88D38022680B89E7 -:10D8E00013814B8953818B89938109691161216867 -:10D8F000F9F707FC226800210228117003D00028E4 -:10D9000000D0812010BD832010BD806B002800D086 -:10D91000012070478178012909D10088B0F5205F86 -:10D9200003D042F60101884201D100207047072050 -:10D930007047F0B587B0002415460E460746ADF88F -:10D94000184011E005980088288005980194811DF1 -:10D95000CDE902410721049400918388428801881F -:10D96000384600F0F3F830B905AA06A93046FEF7AC -:10D97000EBFF0028E6D00A2800D1002007B0F0BD58 -:10D980005800002010B58B7883B102789A4205D1F7 -:10D990000B885BB102E08B79091D4BB18B789A4201 -:10D9A000F9D1B0F801300C88A342F4D1002010BDA9 -:10D9B000812010BD072826D012B1012A27D103E00B -:10D9C000497801F0070102E04978C1F3C201052955 -:10D9D0001DD2DFE801F00318080C12000AB1032081 -:10D9E00070470220704704280DD250B10DE0052881 -:10D9F00009D2801E022808D303E0062803D003289A -:10DA000003D005207047002070470F207047812009 -:10DA10007047C0B282060BD4000607D5FE48807A54 -:10DA20004143C01D01EBD00080B2704708467047EB -:10DA30000020704770B513880B800B781C0625D525 -:10DA4000F54CA47A844204D843F0100008700020FA -:10DA500070BD956800F0070605EBD0052D78F54000 -:10DA600065F304130B701378D17803F0030341EAD4 -:10DA7000032140F20123B1FBF3F503FB151192687A -:10DA8000E41D00FB012000EBD40070BD906870BD68 -:10DA900037B51446BDF8041011809DF804100A062D -:10DAA0001ED5C1F30013DC49A568897A814208D8E4 -:10DAB000FE2811D1C91DC9085A42284617F099F805 -:10DAC0000AE005EBD00100F0070201250878954037 -:10DAD000A843934018430870207820F0100020706D -:10DAE0003EBD2DE9F0410746C81C0E4620F003005C -:10DAF000B04202D08620BDE8F081C74D00203446F8 -:10DB00002E60AF802881AA72E8801AE0E988491C5B -:10DB1000E980810614D4E17800F0030041EA002096 -:10DB200040F20121B0FBF1F201FB12012068FFF786 -:10DB300070FF2989084480B22881381A3044A060D7 -:10DB40000C3420784107E1D40020D4E72DE9FF4FC1 -:10DB500089B01646DDE9168A0F46994623F44045FA -:10DB6000084600F00DFB04000FD0099804F064FD96 -:10DB70000290207800060AD5A748817A029881424F -:10DB800005D887200DB0BDE8F08F0120FAE72246C6 -:10DB900001A90298FFF74EFF834600208DF80C0084 -:10DBA0004046B8F1070F1AD001222146FFF702FFC5 -:10DBB0000028E7D12078400611D502208DF80C000E -:10DBC000ADF81070BDF80400ADF81200ADF81460A7 -:10DBD0001898ADF81650CDF81CA0ADF818005FEA03 -:10DBE000094004D500252E46A84601270CE02178DF -:10DBF000E07801F0030140EA012040F20121B0FB8E -:10DC0000F1F2804601FB12875FEA494009D5B84529 -:10DC100007D1A178207901F0030140EA0120B04248 -:10DC200001D3BE4201D90720ACE7A8191FFA80F939 -:10DC3000B94501D90D20A5E79DF80C0028B103A92D -:10DC40000998F9F75CFA00289CD1B84507D1A0786B -:10DC50004FEA192161F30100A07084F804901A982A -:10DC600000B10580199850EA0A0027D0199830B100 -:10DC70000BEB06002A46199916F044FF0EE00BEB59 -:10DC800006085746189E099804F042FE2B46F61DDA -:10DC9000B5B239464246009504F02DFA224601A954 -:10DCA0000298FFF7C7FE9DF80400224620F01000FE -:10DCB0008DF80400DDE90110FFF7EAFE002061E7BE -:10DCC0002DE9FF4FDFF8509182461746B9F806104C -:10DCD000D9F8000001EB410100EB810440F2012082 -:10DCE000B2FBF0F185B000FB11764D46DDF84C80BB -:10DCF00031460698FFF78DFE29682A898B46611AFE -:10DD00000C3101441144AB8889B28B4202D8842083 -:10DD100009B038E70699CDB2290603D5A90601D581 -:10DD20000620F5E7B9F806C00CF1010C1FFA8CFCCF -:10DD3000A9F806C0149909B1A1F800C0A90602D536 -:10DD4000C4F8088007E0104480B2A9F80800191A46 -:10DD500001EB0B00A0602246FE200699FFF798FE1B -:10DD6000E77026712078390A61F30100320AA17840 -:10DD700040F0040062F30101A17020709AF80200E3 -:10DD80006071BAF80000E08000262673280602D5EC -:10DD900099F80A7000E00127A80601D54FF00008A5 -:10DDA0004D4600244FF007090FE0CDE902680196C7 -:10DDB000CDF800900496E9882046129B089AFFF758 -:10DDC000C5FE0028A4D1641CE4B2BC42EDD30020FF -:10DDD0009EE72DE9F047804600F0D2F9070005D014 -:10DDE000002644460C4D40F2012919E00120BDE80F -:10DDF000F087204600F0C4F90278C17802F00302EF -:10DE000041EA0222B2FBF9F309FB13210068FFF794 -:10DE100000FE304486B201E0F4050020641CA4B288 -:10DE2000E988601E8142E4DCA8F10100E8802889CD -:10DE3000801B288100203870D9E710B5144631B115 -:10DE4000491E218004F0F8FBA070002010BD0120C5 -:10DE500010BD10B5D24904460088CA88904201D34B -:10DE60000A2010BD096800EB400001EB80025079E8 -:10DE7000A072D08820819178107901F0030140EAE6 -:10DE80000120A081A078E11CFFF7D4FD206120884B -:10DE9000401C2080E080002010BD012101827047DD -:10DEA0002DE9FF4F85B04FF6FF788246A3F800803A -:10DEB00048681F460D4680788DF80600486800883F -:10DEC000ADF8040000208DF80A00088A0C88A042F2 -:10DED00000D304462C8241E0288A401C2882701D11 -:10DEE0006968FFF74FFDB8BB3988414501D1601E15 -:10DEF00038806888A04236D3B178307901F00301C8 -:10DF000040EA012901A9701DFFF73CFD20BB2989CA -:10DF100041452CD0002231460798FFF74BFDD8B978 -:10DF20002989494518D1E9680391B5F80AC0D6F89E -:10DF300008B05046CDF800C004F0EAFCDDF800C09F -:10DF40005A460CF1070C1FFA8CFC4B460399CDF88E -:10DF500000C004F09AF850B1641CA4B2204600F04E -:10DF60000FF90600B8D1641E2C820A20D0E67C800E -:10DF70007079B871F088B8803178F07801F00301D9 -:10DF800040EA01207881A7F80C90504604F054FB39 -:10DF9000324607F10801FFF74DFD38610020B7E672 -:10DFA0002DE9FF4F87B081461C469246DDF860B0F0 -:10DFB000DDF85480089800F0E3F805000CD04846DE -:10DFC00004F03AFB2978090608D57549897A814217 -:10DFD00004D887200BB0D6E50120FBE7CAF3090679 -:10DFE0002A4601A9FFF726FD0746149807281CD0EA -:10DFF00000222946FFF7DEFC0028EBD128784006F6 -:10E0000013D501208DF808000898ADF80C00BDF874 -:10E010000400ADF80E00ADF81060ADF8124002A992 -:10E020004846F9F76CF80028D4D12978E87801F04F -:10E03000030140EA0121AA78287902F0030240EAAC -:10E040000220564507D0B1F5007F04D9611E8142F8 -:10E0500001DD0B20BEE7864201D90720BAE7801B0D -:10E0600085B2A54200D92546BBF1000F01D0ABF81F -:10E070000050179818B1B9192A4616F043FDB8F1A7 -:10E08000000F0DD03E4448464446169F04F052FC13 -:10E090002146FF1DBCB232462B46009404F05FF8C7 -:10E0A000002097E72DE9F04107461D461646084631 -:10E0B00000F066F804000BD0384604F0BDFA217871 -:10E0C000090607D53649897A814203D8872012E5A7 -:10E0D000012010E522463146FFF7ACFC65B12178FE -:10E0E000E07801F0030140EA0120B0F5007F01D89B -:10E0F000012000E0002028700020FCE42DE9F04120 -:10E1000007461D461646084600F03AF804000BD0B4 -:10E11000384604F091FA2178090607D52049897A12 -:10E12000814203D88720E6E40120E4E42246314618 -:10E13000FFF7AEFCFF2D14D02178E07801F0030248 -:10E1400040EA022040F20122B0FBF2F302FB13008E -:10E1500015B900F2012080B2E070000A60F30101FD -:10E1600021700020C7E410B50C4600F009F828B172 -:10E17000C18821804079A070002010BD012010BD11 -:10E180000749CA88824209D340B1096800EB4000C0 -:10E190006FF00B0202EB80000844704700207047CC -:10E1A000F405002010B508F05DF9F4F77FFB07F0E7 -:10E1B000E3FFBDE8104008F0ABB8202834BF0120D1 -:10E1C00000207047012303FA00F04FF0A04200291D -:10E1D00014BFC2F80C05C2F8080570474FF0A04103 -:10E1E000012202FA00F0C1F81805704770B5034625 -:10E1F000002002466FF02F050EE09C5CA4F1300673 -:10E200000A2E02D34FF0FF3070BD00EB800005EB0B -:10E210004000521C2044D2B28A42EED370BD30B5C9 -:10E220000A230BE0B0FBF3F403FB1404B0FBF3F0A0 -:10E230008D183034521E05F8014CD2B2002AF1D1AB -:10E2400030BD30B500234FF6FF7510E0040A44EAF4 -:10E25000002084B2C85C6040C0F30314604005EA4B -:10E2600000344440E0B25B1C84EA40109BB293420D -:10E27000ECD330BD2DE9F041FE4B0026012793F889 -:10E2800060501C7893F864C0B8B183F88D40A3F84F -:10E290008E1083F88C2083F88A70BCF1000F0CBFBD -:10E2A00083F8906083F89050F3488068008804F009 -:10E2B0002FFBBDE8F04103F0C5BF4FF6FF7083F8B8 -:10E2C0008D40A3F88E0083F88C2083F88A70BCF10F -:10E2D000000F14BF83F8905083F89060BDE8F08180 -:10E2E00070B5E54E0446306890F898100025012975 -:10E2F00019D090F89210012924D090F868100129C3 -:10E300002AD090F88A1001291CBF002070BD6570CA -:10E3100017212170D0F88C106160B0F89010218125 -:10E3200080F88A5016E065701C212170D0F8991091 -:10E330006160D0F89D10A16090F8A110217380F861 -:10E34000985007E0657007212170D0F89410616043 -:10E3500080F89250012070BD65701421217000F189 -:10E360006A012022201D16F0CDFB012121723068A8 -:10E3700080F86850BF48B0F86C20A0F89420B268CC -:10E38000537B80F8963080F89210108804F0C0FA21 -:10E3900003F067FFDEE7B848006890F868100029CE -:10E3A00014BFB0F86C004FF6FF70704770B5B24CF8 -:10E3B00006462068002808BFFFDF0025206845705A -:10E3C0006660002808BFFFDF2068417800291CBF75 -:10E3D000FFDF70BDA42116F036FC2068FF2101701C -:10E3E0007F2180F8361013214184282180F86510A0 -:10E3F000012180F8581080F85D5008F0ACFCBDE8B1 -:10E40000704007F0E6BE9C490968097881420CBF5C -:10E410000120002070479848006890F82200C0F35F -:10E42000400070479448006890F8220000F0010016 -:10E4300070479148006890F82200C0F300107047C0 -:10E440002DE9F0438C48D0F800C09CF82400BCF8BB -:10E450002240C0F38001C0F34002114400F00100EB -:10E460000144C4F30010F0B1132C17D009DC102CB8 -:10E4700002BF824830F81100BDE8F083122C0DD0A5 -:10E4800008E0152C08BF7E4809D01D2C04BF7D482C -:10E49000BDE8F083FFDF0020BDE8F0837A4830F864 -:10E4A0001100BDE8F0839CF85A209CF85B002E26F2 -:10E4B00000234FF47A774FF014084FF04009022AF6 -:10E4C00004BF4AF2D745B5FBF7F510D0012A04BFC7 -:10E4D0004AF22F75B5FBF7F510D04AF62315B5FBB8 -:10E4E000F7F5082A08BF4E4613D0042A18D01E4656 -:10E4F000082A0ED0042A13D0022A49D003F1280694 -:10E50000042A0FD0082A1CBF4FF01908082204D093 -:10E510000AE04FF0140806F5A8764FF0400203E039 -:10E5200006F5A8764FF0100218FB026212FB0152AA -:10E53000C1EB0111554D01EB810105EB8101114446 -:10E5400014F0010F4FF4C8724FF4BF7504BFC4F349 -:10E550004006002E6FD0C4F3400601F5A571EEB160 -:10E56000082804BF164640270CD0042804BF2E46B6 -:10E57000102707D0022807BF03F11806042703F16C -:10E580002806082707EB870706EB870631441CE0BF -:10E5900003F118064FF019080422C5E7082804BF44 -:10E5A000164640270CD0042804BF2E46102707D05B -:10E5B000022807BF03F11806042703F128060827DD -:10E5C00007EB871706EB870631449C31082804BF08 -:10E5D000164640270CD0042804BF2E46102707D02B -:10E5E000022807BF03F11806042703F128060827AD -:10E5F000C7EBC70707EB470706EB470631449831DF -:10E6000014F0010F18D0082808BF40200CD00428AF -:10E6100004BF2A46102007D0022807BF03F11802C2 -:10E62000042003F12802082000EB400303EB001054 -:10E63000104401444FE052E0082804BF144640262D -:10E640000CD0042804BF2C46102607D0022807BF90 -:10E6500003F11804042603F12804082606EB8616A5 -:10E66000BCF83CC004EB86042144BCF1EB0F32D96A -:10E670000EE000000006002060000020AC50020008 -:10E68000B45002008E891300A4500200D4FEFFFF94 -:10E6900044F255240CF10B0C0CFB04FC4FEA9C5C7F -:10E6A000082807D0042802D0022805D008E02A460E -:10E6B000102008E0402006E003F11802042002E0E8 -:10E6C00003F12802082000EB801002EB800000F527 -:10E6D000A5700CFB001101F26510BDE8F08301F597 -:10E6E000A571082804BF144640260CD0042804BF96 -:10E6F0002C46102607D0022807BF03F11804042671 -:10E7000003F12804082606EB8616BCF844C004EB87 -:10E7100086042144BCF1EB0FDDD944F255240CF101 -:10E720000B0C0CFB04FC4FEA9C5C0828C2D00428AC -:10E73000BDD00228C4D1BFE7FE4840F27121006875 -:10E74000806A48437047FB48006890F8350000280D -:10E7500018BF0120704710B5F74C207B022818BF66 -:10E76000032808D1207D04F115010DF024F90828B3 -:10E770001CBF012010BD207B002816BF02280020EE -:10E780000120BDE8104008F0FDBEEB49087370475A -:10E79000E849096881F8300070472DE9F047E54CF9 -:10E7A0002168087B002816BF02280020012048733A -:10E7B00001F10E0108F0D0FE2168087B022816BF87 -:10E7C00003280122002281F82F204FF0080081F851 -:10E7D0002D00487B01F10E034FF001064FF00007BA -:10E7E000012804BF5B7913F0C00F0AD001F10E03BA -:10E7F000012804D1587900F0C000402801D0002041 -:10E8000000E0012081F82E00002A04BF91F82200C8 -:10E8100010F0040F07D0087D01F115010DF0CBF8C1 -:10E82000216881F82D002068476006F081F8216892 -:10E83000C14D4FF00009886095F82D000DF0D7F814 -:10E84000804695F82F00002818BFB8F1000F04D0BB -:10E8500095F82D000CF092FE68B195F83000002874 -:10E860001CBF95F82E0000281DD0697B05F10E0015 -:10E8700001290ED012E06E734A4605F10E014046A2 -:10E8800008F0BFFE95F82D1005F10E000DF0A6F969 -:10E8900009E0407900F0C000402831D0394605F148 -:10E8A0000E0008F0E5FE2068C77690F8220010F010 -:10E8B000040F08BFBDE8F087002795F82D000CF085 -:10E8C00011FF050008BFBDE8F08710210DF015FF0E -:10E8D000002818BFBDE8F08720683A4600F11C0107 -:10E8E000C676284608F08DFE206800F11C0160689D -:10E8F0000EF012FA6068BDE8F04701210EF027BA69 -:10E900000DF0A9F94A4605F10E0108F07AFECAE7B2 -:10E91000884A1268137B0370D2F80E000860508A90 -:10E920008880704778B584490446824D407B0873DF -:10E930002A68207810706088ADF8000080B200F07E -:10E940000101C0F3400341EA4301C0F3800341EAFF -:10E950008301C0F3C00341EAC301C0F3001341EADD -:10E960000311C0F3401341EA4311C0F3801041EAA0 -:10E9700080105084E07D012808BF012603D00228C2 -:10E9800014BFFFDF0226286880F85A60607E0128E5 -:10E9900008BF012603D0022814BFFFDF0226286823 -:10E9A00080F85B60217B80F82410418C1D290CBF0E -:10E9B000002161688162617D80F83510A17B0029AA -:10E9C00016BF0229002101210175D4F80F10C0F8EB -:10E9D0001510B4F81310A0F81910A17EB0F8662035 -:10E9E00061F30302A0F86620E17E012918BF00212F -:10E9F00080F83410002078BD4E480068408CC0F389 -:10EA0000001131B1C0F38000002804BF1F207047FF -:10EA100002E0C0F3400109B10020704710F0010F7F -:10EA200014BFEE20FF20704742480068408CC0F3BE -:10EA3000001119B1C0F3800028B102E0C0F340001A -:10EA400008B100207047012070473A490022096848 -:10EA50000A664B8C1D2B0CBF81F8642081F8640082 -:10EA600070470023334A126882F859309164A2F843 -:10EA70004C00012082F8590070472E4A002312688A -:10EA800082F85830A2F854000120116582F858002D -:10EA900070472849096881F85D007047254800687B -:10EAA00090F95D0070472348006890F82200C0F399 -:10EAB000401070471F48006890F82200C0F3C00063 -:10EAC0007047012070471B48006890F85B00704752 -:10EAD00070B508F0F8F808F0D7F807F0C9FF08F0AB -:10EAE00051F8144C2068016E491C016690F83300FF -:10EAF000002530B108F02FF907F06BFB206880F893 -:10EB000033502068457090F8371021B1BDE870404F -:10EB1000042009F001BA90F8641001B3006E81423C -:10EB20001DD8042009F0F8F9206890F8220010F0B0 -:10EB3000010F03E0600000200006002007D0A0685D -:10EB400043220188BDE870400120FFF793BBBDE878 -:10EB5000704043224FF6FF710020FFF78BBBBDE8EA -:10EB60007040002009F0D8B92DE9F047FF4E8146EA -:10EB700082B030680F464FF00008458C15F0030F47 -:10EB800010D015F0010F05F0020005D0002808BFD5 -:10EB90004FF0010806D004E0002818BF4FF002082B -:10EBA00000D1FFDF4FF0000A544615F0010F05F0C9 -:10EBB00002000DD080B915F0040F0DD04AF0080006 -:10EBC000002F1CBF40F0010040F0020440D090E054 -:10EBD00010B115F0040F0DD015F0070F10D015F07F -:10EBE000010F05F0020036D0002808BF15F0040F11 -:10EBF00027D03DE0002F18BF4AF0090479D134E056 -:10EC00002FB14AF0080415F0200F14D071E03168DC -:10EC100005F02002B1F84400104308BF4AF0010497 -:10EC200067D04AF0180415F0200F62D191F85A10FD -:10EC300008295AD156E0316891F85A10082951D163 -:10EC400053E04AF00800002F18BF40F0010450D1F3 -:10EC500040F010044DE0002818BF15F0040F07D055 -:10EC6000002F18BF4AF00B0443D14AF0180440E0CB -:10EC700015F0030F3CD115F0040F39D077B131688E -:10EC80004AF0080091F85A1008290CBF40F002041D -:10EC900020F0020415F0200F22D02AE0316805F0A0 -:10ECA0002002B1F84400104308BF4AF0030420D00A -:10ECB0004AF0180015F0200F09D000BF91F85A1043 -:10ECC000082914BF40F0020420F0020411E091F87A -:10ECD0005A20082A14BF40F0010020F00100EDE79F -:10ECE000082902D024F0010403E044F0010400E00C -:10ECF000FFDF15F0400F1BD0C7B93168B1F84400F1 -:10ED0000002804BF488C10F0010F0BD110F0020F47 -:10ED100008BF10F0200F05D115F0010F08BF15F046 -:10ED2000020F03D091F85A00082801D044F04004A3 -:10ED30007068A0F800A0017821F02001017007217F -:10ED40000DF0B6FF414670680EF0A9F921467068D3 -:10ED50000EF0B1F914F0010F0AD006230022844905 -:10ED600070680EF082F93068417B70680DF0E2FF48 -:10ED700014F0020F18D0D6E90010B9F1000F4FF0CF -:10ED800006034FF0010207D01C310EF06EF901218D -:10ED900070680DF0DCFF07E015310EF066F93068A1 -:10EDA000017D70680DF0D3FF14F0040F18BFFFDF72 -:10EDB00014F0080F17D0CDF800A03068BDF800108F -:10EDC0000223B0F86600020962F30B01ADF80010EF -:10EDD0009DF80110032260F307118DF801106946B8 -:10EDE00070680EF042F9012F61D13068B0F844101C -:10EDF000E9B390F82200C0F34000C0BB70680EF089 -:10EE00004AF9401CC7B23068B0F84420B0F8561038 -:10EE1000551AC7F1FF018D42A8BF0D46AA423AD943 -:10EE200090F8220010F0010F35D144F01004214673 -:10EE300070680EF040F9F81CC0B2ED1E284482B292 -:10EE40003068B0F86610036E090951FA83F190F842 -:10EE50005C30484F1944BC460023E1FB07C31B0943 -:10EE60006FF0240C03FB0C1180F85C1000E01EE036 -:10EE700090F85B00012101F025F80090BDF800003A -:10EE80009DF80210032340EA01400190042201A9E9 -:10EE900070680EF0EAF83068AAB2016C70680EF083 -:10EEA00038F93068B0F856102944A0F8561014F01C -:10EEB000400F06D0D6E90010012306225D310EF086 -:10EEC000D4F814F0200F18BFFFDF0020002818BF6F -:10EED000FFDF02B0BDE8F0872DE9F843234C20683E -:10EEE000002808BFFFDF2068417839BB0178FF297F -:10EEF00024D0002680F83160A0F85660867080F833 -:10EF00003760304607F052FE07F046FB206890F964 -:10EF10005D0007F002FC184807F005FC174807F0F1 -:10EF20002BFE606807F045FE206890F8240010F082 -:10EF3000010F06D0252007F0FEFB09E00C20BDE8FC -:10EF4000F88310F0020F18BF262076D007F0F3FBED -:10EF5000206890F85A10252007F0EAFA206880F817 -:10EF60002C6007F01DFE20680AE000006000002011 -:10EF70000E06002053E4B36EA05002009D50020024 -:10EF800090F85A10002007F02DFC0F21052007F003 -:10EF900098FB206890F82E10002901BF90F82F10E0 -:10EFA000002990F8220010F0040F75D005F0C0FC85 -:10EFB000054620682946806806F0D6F9DFF82C84DB -:10EFC000074690FBF8F008FB10704142284605F018 -:10EFD000B0F92168886097FBF8F04A6810444860EF -:10EFE0000CF0E6FC01462068426891426FD8C0E907 -:10EFF0000165FF4D4FF0010895F82D000CF0F7FC6E -:10F00000814695F82F000127002818BFB9F1000F9D -:10F0100004D095F82D000CF0B1FAA8B195F83000A5 -:10F0200000281CBF95F82E00002825D0697B05F12B -:10F030000E00012916D01AE0FFE710F0040F14BFEC -:10F040002720FFDF82D183E73A466F7305F10E0177 -:10F05000484608F0D6FA95F82D1005F10E000CF090 -:10F06000BDFD09E0407900F0C000402815D04146C0 -:10F0700005F10E0008F0FCFA206890F8220010F06C -:10F08000040F24D095F82D000CF02CFB05001ED0A9 -:10F0900010210DF032FB40B119E00CF0DCFD3A46D6 -:10F0A00005F10E0108F0ADFAE6E720683A4600F1F6 -:10F0B0001C01C776284608F0A4FA206800F11C015C -:10F0C00060680DF029FE012160680DF040FE2068A7 -:10F0D000417B0E3007F0D9FA206890F8581059B3E8 -:10F0E000B0F85410A0F84410016D016490F822109B -:10F0F000C1F30011E9B9B0F8660002210509ADF8C5 -:10F100000050684606F0EEFC28B1BDF80000C0F3E0 -:10F110000B00A84204D1BDF80000401CADF800006F -:10F120002168BDF80000B1F8662060F30F12A1F865 -:10F130006620206880F85860206890F8591031B136 -:10F14000B0F84C108187816C816380F85960B0F809 -:10F150006610026E090951FA82F190F85C20DFF81E -:10F1600094C2114463460022E1FB0C3212096FF095 -:10F17000240302FB031180F85C100CF09CFC0321BB -:10F1800060680CF01BFD216881F833000020BDE8A9 -:10F19000F8839949886070472DE9F043964C83B015 -:10F1A000226892F831303BB1508C1D2808BFFFDF38 -:10F1B00003B0BDE8F0438BE401260027F1B105461A -:10F1C00092F85C0007F0B7FA206890F85B10FF2017 -:10F1D00007F0AEF920684FF4A57190F85B2000208D -:10F1E00007F009FC206890F8221011F0030F00F0DE -:10F1F0002D81002D00F0248100F028B992F8221012 -:10F200008046D07EC1F30011002956D005466068C3 -:10F210000780017821F020010170518C132937D02B -:10F220001FDC102908BF022144D0122908BF062183 -:10F2300040D0FFDF6E4D606805F10E010DF05EFD00 -:10F24000697B60680DF076FD2068418C1D2918BF30 -:10F25000152965D0B0F84420016C60680DF083FD7D -:10F260005EE0152918BF1D29E3D14FF001010DF013 -:10F270001FFD6068017841F020010170216885B1AF -:10F280001C310DF049FD012160680DF060FDD1E7F2 -:10F2900000210DF00DFD6068017841F02001017042 -:10F2A000C8E715310DF038FD2068017D60680DF06C -:10F2B0004EFDBFE70DF0FCFCBCE70021FFF754FC5E -:10F2C0006068C17811F03F0F2AD0017911F0100F5A -:10F2D00026D00DF0EBFC2368024693F82410C1F30E -:10F2E0008000C1F3400C604401F0010100EB010C0F -:10F2F00093F82C10C1F38000C1F34005284401F0BD -:10F3000001010844ACEB0000C1B293F85A0000F0D0 -:10F31000D9FD009003230422694660680DF0A5FE24 -:10F320002068002590F8241090F82C0021EA0002B3 -:10F3300012F0010F18BF01250ED111F0020F04D0F9 -:10F3400010F0020F08BF022506D011F0040F03D001 -:10F3500010F0040F08BF0425B8F1000F2BD0012DC9 -:10F360001BD0022D08BF26201BD0042D14BFFFDFA9 -:10F37000272016D0206890F85A10252007F0D8F8DA -:10F38000206890F82210C1F3001169B101224FF4F6 -:10F390009671002007F02FFB0DE0252007F0CBF938 -:10F3A000E8E707F0C8F9E5E790F85A204FF49671BE -:10F3B000002007F020FB206890F82C10294380F8EB -:10F3C0002C1090F8242032EA01011CD04670418CA8 -:10F3D00013292BD026DC102904BF03B0BDE8F0832D -:10F3E000122923D0C1F30010002807E040420F008B -:10F3F0000006002053E4B36E6000002018BFFFDF5A -:10F4000003B0BDE8F083418C1D2908BF80F82C7043 -:10F41000DCD0C1F30011002914BF80F8316080F8FE -:10F420003170D3E7152918BF1D29DBD190F85A2078 -:10F4300003B04FF00101BDE8F043084607F0C8BC37 -:10F4400090F85B200121084607F0C2FC2168002DDE -:10F45000C87E7CD04A8C3D46C2F34000002808BFDD -:10F4600047F0080512F0400F18BF45F0400500288E -:10F4700019BFD1F83890B1F83C80D1F84090B1F87C -:10F4800044806068072107800DF012FC002160684D -:10F490000DF005FE294660680DF00DFE15F0080F11 -:10F4A00015D02068BDF800100223B0F866000209EC -:10F4B00062F30B01ADF800109DF80110032260F318 -:10F4C00007118DF80110694660680DF0CEFD606887 -:10F4D0000DF0AAFC2168C0F1FE00B1F85620A8EB9F -:10F4E00002018142A8BF0146CFB2D019404542D2A5 -:10F4F00045F0100160680DF0DEFD60680DF094FCD1 -:10F500002168C0F1FE00B1F85610A8EB010181425C -:10F51000A8BF0146CFB260680DF0BDFD3844421C63 -:10F520002068B0F86610036E090951FA83F190F86B -:10F530005C30FF4D1944AC460023E1FB05C31B09B9 -:10F540006FF0240C03FB0C1180F85C1000E038E035 -:10F5500090F85B00012100F0B5FC0090BDF80000C0 -:10F560009DF80210032340EA01400190042201A902 -:10F5700060680DF07AFD216891F8220010F0400FCC -:10F5800005D0012306225D3160680DF06EFD206814 -:10F590003A46B0F8560000EB090160680DF0B9FD7D -:10F5A0002068B0F856103944A0F8561007F0AEFEA7 -:10F5B000002818BFFFDF20684670867003B0BDE8E2 -:10F5C000F0830121FFF7D0FAF0E7DA4810B50068C0 -:10F5D000417841B90078FF2805D000210846FFF79F -:10F5E000DBFD002010BD07F06EFB07F04DFB07F0C0 -:10F5F0003FFA07F0C7FA0C2010BD10B5CD4C2068BB -:10F6000090F8220010F0010F1CBFA06801884FF095 -:10F610003C0212BF01204FF6FF710020FEF72AFEC8 -:10F620002168012081F8370010BDC249096881F8BE -:10F63000320070472DE9F041002608F039FC00281F -:10F6400000F0F380BB4C2068417800270125012998 -:10F6500006D0022901D003297BD0FFDFBDE8F0816D -:10F66000817802270029418C37D0C1F34002002A5B -:10F6700008BF11F0010F6DD090F85B204FF0010131 -:10F680004FF0000007F0A4FB216891F82200C0F3BE -:10F690004000002814BF0C20222091F85B1006F0D7 -:10F6A00047FF2068477090F8330020B106F07DFDD9 -:10F6B000402007F03DFB206890F83400002818BF78 -:10F6C00007F063FB0021962007F0A2FA07F015FE71 -:10F6D000002818BFFFDFBDE8F081C1F3001282B13E -:10F6E00010293ED090F8330020B106F05EFD402096 -:10F6F00007F01EFB206890F8221011F0040F35D09F -:10F7000042E090F8242090F82C309A4229D1B0F8A9 -:10F710004400002808BF11F0010F05D111F0020FBD -:10F7200008BF11F0200F7DD04FF001014FF0000015 -:10F73000FFF732FD2068418C11F0010F04BFC1F3C7 -:10F74000400100290AD1B0F85610B0F84420914287 -:10F7500001E032E026E018BFBDE8F08180F83150CA -:10F76000B9E7BDE8F0410021012015E590F835101A -:10F77000012914BF0329102646F00E0190F85A20E3 -:10F780004FF0000007F024FB206890F834000028B8 -:10F7900018BF07F0FAFA0021962007F039FA20681E -:10F7A000477098E7B0F85610B0F8440081423CD05A -:10F7B000BDE8F04101210846EEE48178D9B1418CE1 -:10F7C00011F0010F1CD080F8685090F86A20B0F852 -:10F7D0006C100120FEF74EFD2068477007F073FAA9 -:10F7E00007F052FA07F044F907F0CCF9BDE8F04110 -:10F7F000032008F091BB8178BDE8F0410120CBE403 -:10F8000011F0020F08BFFFDF3FF465AFB0F85610EC -:10F81000808F814209D001210846FFF7BDFC0320FB -:10F82000216800E001E0487055E7BDE8F041FFF7CE -:10F830004FB9FFF74DB910B53E4C206890F8341021 -:10F8400049B1363007F0ACFA18B921687F2081F849 -:10F85000360007F090FA206890F8330018B107F0EE -:10F860007AFA06F0B6FC08F023FBA8B1206890F8FD -:10F870002210C1F3001179B14078022818BFFFDFD0 -:10F8800000210120FFF788FC2068417800291EBF75 -:10F8900040780128FFDF10BDBDE81040FFF718B920 -:10F8A0002DE9F047234C0F4680462168B8F1030F3D -:10F8B000488C08BFC0F3400508D000F0010591F85E -:10F8C0003200002818BF4FF0010901D14FF00009A4 -:10F8D00006F025FF0646B8F1030F0CBF4FF00208F3 -:10F8E0004FF0010835EA090008BFBDE8F08720683D -:10F8F00090F8330068B10CF0C1F838700146FF2869 -:10F9000007D06068C01C0CF092F838780CF0C3F88F -:10F91000064360680178C1F3801221680B7D9A422A -:10F920000DD10622C01C153115F0C0F8002803E0E7 -:10F9300053E4B36E6000002008BF012000D0002017 -:10F940003978FF2906D0C8B9206890F82D00884280 -:10F9500016D113E0A0B1616811F8030BC0F3801059 -:10F960000CF029F805460CF089F938B128460BF05F -:10F97000B9FE18B110210CF0C0FE08B1012000E062 -:10F980000020216891F8221011F0040F01D0F0B18D -:10F990001AE0CEB9FE4890F83500002818BF40455F -:10F9A00015D1616811F8030BC0F380100CF003F857 -:10F9B00004460CF063F938B120460BF093FE18B101 -:10F9C00010210CF09AFE10B10120BDE8F087002054 -:10F9D000BDE8F0872DE9F04FEE4D074683B028686B -:10F9E00000264078022818BFFFDF28684FF07F0903 -:10F9F00090F8341049B1363007F0D2F9002804BF2E -:10FA0000286880F8369007F0B6F968680DF072F94A -:10FA10000446002F00F0048268680DF0F6FA002812 -:10FA200000F0FE8106F049FE002800F0F981FF2079 -:10FA3000DFF864B3DFF8588300274FF0010A062C83 -:10FA400080F00082DFE804F0EFEFEF03EFF78DF8CE -:10FA5000000069460320FFF723FF002800F0E48040 -:10FA6000296891F8340010B191F89800D0B1286855 -:10FA7000817801294CD06868042107800DF018F9BD -:10FA800008F10E0168680DF039F998F80D106868F2 -:10FA90000DF050F92868828F816B68680DF087F946 -:10FAA00000F04DB99DF8000081F898A00A7881F81F -:10FAB0009920FF280FD001F19B029A310BF0A0FF93 -:10FAC000002808BFFFDF286890F89A1041F0020173 -:10FAD00080F89A100DE068680278C2F3801281F80D -:10FAE0009A20D0F80320C1F89B20B0F80700A1F8B5 -:10FAF0009F00286800F1A10490F836007F2808BF15 -:10FB0000FFDF286890F83610217080F83690AEE755 -:10FB100090F822009BF80490C0F38014686864F3A6 -:10FB20008619072107800DF0C3F8002168680DF0E1 -:10FB3000B6FA494668680DF0BEFA0623002208F1BD -:10FB40000E0168680DF091FA2868417B68680DF035 -:10FB5000F1F868680DF068F929688A8FC0F1FE0134 -:10FB60008A42B8BF1146CFB2BA423DD9F81EC7B2D9 -:10FB700049F0100A514668680DF09DFA68680DF06A -:10FB80008AFA3844431C2868B0F86610026E0909E6 -:10FB900051FA82F190F85C20DFF800920A44C846DE -:10FBA0004FF0000CE2FB098C4FEA1C116FF0240CA3 -:10FBB00001FB0C2180F85C1090F85B001A460121D3 -:10FBC00000F080F90190BDF804009DF806100323B1 -:10FBD00040EA01400290042202A968680DF045FA4B -:10FBE000514668680DF067FA34B1D5E90010012379 -:10FBF00006225D310DF039FA28683A46816B686853 -:10FC00000DF087FA2868A0F85670818F8F420CBFDC -:10FC10000121002180F8311007F078FB002818BF7F -:10FC2000FFDF8CE007E00DE128688078002840F0D5 -:10FC3000F98000F0F5B88DF8000068680178C1F32C -:10FC40008019D0F803100191B0F80700ADF8080052 -:10FC500069460520FFF724FE0028286873D08178C4 -:10FC6000002972D090F85BA0D5E90104D0F80F10FC -:10FC7000C4F80E10B0F813106182417D2175817DAA -:10FC80006175B0F81710E182B0F819106180B0F812 -:10FC90001B10A180B0F81D10E18000F11F0104F1DC -:10FCA000080015F0E4F8686890F8241001F01F01CE -:10FCB000217690F82400400984F86C0184F854A05F -:10FCC00084F855A0286890F8651084F8561090F8CC -:10FCD0005D0084F857009DF80010A86800F050F906 -:10FCE000022008F019F96868DBF800400DF1040AF9 -:10FCF000078008210CF0DCFF002168680DF0CFF9C7 -:10FD0000214668680DF0D7F90623002208F10E019C -:10FD100068680DF0AAF92868417B68680DF00AF858 -:10FD2000494668680DF013F80623012251466868B9 -:10FD30000DF09BF907F0EAFA002818BFFFDF032057 -:10FD40002968487070E066E0FFE76868AC684FF0CB -:10FD500001080278617BC2F3401211406173D0F850 -:10FD60000F10C4F80E10B0F813106182417D217598 -:10FD7000817D6175B0F81710E182B0F819106180CB -:10FD8000B0F81B10A180B0F81D10E18008E0000061 -:10FD900000060020600000209850020053E4B36E7B -:10FDA00000F11F0104F1080015F061F8686890F88F -:10FDB000241001F01F01217690F82400400984F8F6 -:10FDC0006C0184F8548084F85580286890F8651098 -:10FDD00084F8561090F85D0084F857009DF80010E4 -:10FDE000A86800F0CDF8286880F868A090F86A202C -:10FDF000B0F86C100120FEF73DFA2868477006F055 -:10FE000062FF06F041FF06F033FE06F0BBFE012064 -:10FE100008F082F808E090F82200C0F3001008B162 -:10FE2000012601E0FEF754FE286890F8330018B16F -:10FE300006F091FF06F0CDF966B100210120FFF731 -:10FE4000ABF910E0286890F82200C0F300100028F9 -:10FE5000E8D0E5E728688178012904D190F85B10A3 -:10FE6000FF2006F065FB28684178002919BF41781A -:10FE7000012903B0BDE8F08F4078032818BFFFDFE9 -:10FE800003B0BDE8F08F70B5794C06460D4620688A -:10FE9000807858B106F014FB21680346304691F88B -:10FEA0005B202946BDE8704008F0DDBD06F008FB88 -:10FEB00021680346304691F85A202946BDE8704033 -:10FEC00008F0D1BD78B50C4600210091082804BF88 -:10FED0004FF4C87040210DD0042804BF4FF4BF7008 -:10FEE000102107D0022807BF01F11800042101F1F9 -:10FEF00028000821521D02FB01065D489DF80010F4 -:10FF0000006890F85C2062F3050141F040058DF82F -:10FF1000005090F85B00012804BF9DF8020020F01B -:10FF2000E0002AD0022818BFFFDF21D025F0800092 -:10FF30008DF80000C4EB041000EB80001E2101EBE3 -:10FF4000800006FB04044B48844228BFFFDF4A4878 -:10FF5000A0FB0410BDF80110000960F30C01ADF81E -:10FF60000110BDF800009DF8021040EA014078BD84 -:10FF70009DF8020020F0E00020308DF80200D5E767 -:10FF80002DE9F0413A4D04460E46286890F8680085 -:10FF9000002818BFFFDF0027286880F86A702188D2 -:10FFA000A0F86C106188A0F88210A188A0F88410D5 -:10FFB000E188A0F8861094F86C1180F8881090F809 -:10FFC0002F1049B1427B00F10E01012A04D1497979 -:10FFD00001F0C001402934D090F8301041B1427B8B -:10FFE00000F10E01012A04BF497911F0C00F28D099 -:10FFF00000F1760014F032FF6868FF2E0178C1F33B -:020000040001F9 -:1000000080116176D0F80310C4F81A10B0F8070018 -:10001000E08328681DD0C167E18BA0F8801000F153 -:100020007002511E30460BF0EBFC002808BFFFDFCA -:10003000286890F86F1041F0020180F86F10BDE859 -:10004000F081D0F80E10C0F87610418AA0F87A102E -:10005000D2E7C767A0F88070617E80F86F10D4F88F -:100060001A100167E18BA0F87410BDE8F081000060 -:1000700060000020C4BF0300898888880178406838 -:1000800029B190F80C1190F8730038B901E001F033 -:10009000ABBC19B1042901D0012070470020704782 -:1000A00070B50C460546062102F000FB606008B101 -:1000B000002006E00721284602F0F8FA606018B137 -:1000C00001202070002070BD022070BD2DE9FC478A -:1000D0000C4606466946FFF7E3FF00287DD19DF8F0 -:1000E000000050B1FEF757F9B0427CD021463046AF -:1000F00009F038FE002873D12DE00DF089FAB042E6 -:1001000071D02146304612F02BFB002868D1019DAA -:1001100095F8D00022E0012000E00020804695F80C -:1001200037004FF0010A4FF00009F0B195F83800A0 -:1001300080071AD584F8019084F800A084F8049010 -:10014000E68095F839102172698F6181A98FA181AC -:1001500085F8379044E0019D95F80C01583500284A -:10016000DBD1E87E0028D8D0D5E7304602F0E2FBAC -:10017000070000D1FFDF384601F0F2FD40B184F8FE -:1001800001900F212170E680208184F804A027E0EF -:10019000304602F0BDFB070000D1FFDFB8F1000FD1 -:1001A00021D0384601F033FEB8B19DF8000038B9CF -:1001B0000198D0F8F8004188B14201D180F8009050 -:1001C000304607F048F984F801900C21217084F83A -:1001D0000490E680297F217200E004E085F81B90FE -:1001E0000120BDE8FC870020FBE71CB56946FFF74E -:1001F00057FF00B1FFDF684601F002FCFA4900201A -:100200008968A1F8D2001CBD2DE9FC4104460E46C8 -:10021000062002F0F3F90546072002F0EFF9284422 -:10022000C7B20025A8463E4417E02088401C80B293 -:100230002080B04202D34046A4F8008080B2B84289 -:1002400004D3B04202D20020BDE8FC816946FFF72A -:1002500027FF0028F8D06D1CEDB2AE42E5D84FF66E -:10026000FF7020801220EFE738B54FF6FF70ADF831 -:1002700000000DE00621BDF8000002F029FA044656 -:100280000721BDF8000002F023FA0CB100B1FFDF36 -:1002900000216846FFF7B8FF0028EBD038BD70B5E5 -:1002A00007F046F90BF073F9D04C4FF6FF760025B6 -:1002B0006683A683CEA0257001680079A4F1400270 -:1002C000657042F8421FA11C1071601C12F014FCF2 -:1002D00025721B2060814FF4A471A181E0812182ED -:1002E0000321A1740422E274A082E082A4F13E0002 -:1002F000218305704680BC480C300570A4F11000C5 -:100300000570468070BD70B5B74C16460D466060EE -:10031000217007F087F8FFF7A7FFFFF7C0FF2078ED -:1003200010F073FAB4480DF0E7FD2178606812F020 -:10033000F6FA20780AF0B6FB284608F049F9AE48EC -:10034000FEF734F82178606809F0F2FD3146207834 -:1003500013F094F9BDE870400BF019B910B5012401 -:100360000AB1002010BD21B1012903D0002420468C -:1003700010BD02210CF00AFFF9E72DE9F047040057 -:1003800000D1FFDF994802211C308146FFF73CFF76 -:1003900000B1FFDF954D0620B5F81C8002F02EF964 -:1003A0000646072002F02AF93044C6B2701CC7B2D4 -:1003B000A88BB04228D120460DF0A0F8B0B120782B -:1003C00018283FD1207901283CD1E088062102F08D -:1003D0006DF9040000D1FFDF208807F03CF8208889 -:1003E000062102F075F940B3FFDF2BE0287860B3F7 -:1003F00000266670142020702021201D14F023FC9C -:10040000022020712E701DE0B84217D12046FDF762 -:1004100067FFD0B12078172814D1207968B1E0881F -:10042000072102F043F940B1008807F014F8E08892 -:10043000072102F04DF900B1FFDF03E02146FFF78D -:1004400045FE10B10120BDE8F08702214846FFF7C4 -:10045000DBFE10B9A98B4145AAD12046BDE8F04783 -:1004600013F052B910B501F067FA08B10C2010BDB5 -:100470000BF0E0F8002010BD10B50446007818B16C -:10048000012801D0122010BD01F067FA20B10BF055 -:1004900081FA08B10C2010BD207801F00FFAE21D9E -:1004A00004F11703611CBDE810400BF068B910B5EA -:1004B000044601F041FA08B10C2010BD207828B1A3 -:1004C000012803D0FF280BD0122010BD01F0F6F94F -:1004D000611C0BF06FF808B1002010BD072010BDA3 -:1004E00001200BF0A1F8F7E710B50BF056FA08B1B0 -:1004F000002010BD302010BD10B5044601F02DFACB -:1005000008B10C2010BD20460BF041FA002010BDB0 -:1005100010B501F022FA20B10BF03CFA08B10C2022 -:1005200010BD0BF091F9002010BDFF2181704FF636 -:10053000FF7181802C4949680A7882718A8802811A -:100540004988418101214170002070471CB5002479 -:1005500012F1080F15D00CDC12F1280F11D012F196 -:10056000140F0ED012F1100F0BD012F10C0F0ED190 -:1005700007E012F1040F04D01AB1032A01D0042AB3 -:1005800005D1012806D0022808D003280AD0122459 -:1005900020461CBD1046FEF77CFAF9E710460DF028 -:1005A00051FCF5E7084614466946FFF779FD08B1A6 -:1005B0000224EDE79DF80000019880F857400024E0 -:1005C000E6E710B5134601220CF0D4F8002010BD68 -:1005D00010B5044610F0FCFE05280FD0204610F0A0 -:1005E00003F9002010BD00006C000020E40700208B -:1005F000FFFFFFFF1F000000A40600200C20F1E712 -:1006000010B5044601F0A9F908B10C20EAE721462B -:10061000002006F08EFF0020E4E710B5044610F03D -:1006200071F950B108F04DFA38B1207807F0F5FFB4 -:1006300020780DF0F3FE0020D4E70C20D2E710B5AF -:10064000044601F08AF908B10C20CBE721460120CD -:1006500006F06FFF0020C5E738B504464FF6FF707F -:10066000ADF80000A079E179884216D02079FDF735 -:10067000A4FD90B16079FDF7A0FD70B10022A079D2 -:10068000114613F011FC40B90022E079114613F035 -:100690000BFC10B9207A072801D9122038BD08F0C8 -:1006A0001DFA60B910F094FE48B900216846FFF7C2 -:1006B000ABFD20B1204605F016FF002038BD0C2010 -:1006C00038BD2DE9FC41817805461A2925D00EDC7C -:1006D00016292DD2DFE801F02C2C2C2C2C212C2CCF -:1006E0002C2C2C2C2C2C2C2C2C2C2C2121212A2970 -:1006F0001ED00BDCA1F11E010C2919D2DFE801F09C -:1007000018181818181818181818180D3A39042934 -:100710000ED2DFE801F00D020D022888B0F5706FEF -:1007200006D201276946FFF7BBFC18B102208BE512 -:10073000122089E59DF8000001F0CCF8019C08B179 -:10074000F43401E004F5B8749DF8000001F0C2F83B -:10075000019E08B1F53601E006F271166846FFF712 -:100760008DFC08B1207808B10C206DE52770A878C1 -:100770003070684601F044F9002065E57CB50D460F -:100780006946FFF78DFC002618B12E602E710220FD -:100790007CBD9DF8000001F09DF8019C9DF80000D3 -:1007A000583401F097F8019884F840608168296016 -:1007B000017B297194F840100029F5D100207CBDFF -:1007C00070B50D4604460189002380880CF031F98C -:1007D000696A81421DD2401A401CA1884008091A4A -:1007E0008AB2A2802189081A2081668895F854105F -:1007F00010460CF0F8F8864200D230466080E68859 -:1008000095F8551020890CF0EEF8864200D230465B -:10081000E08070BDF0B585B00D46064603A9FFF730 -:100820003FFC00282DD19DF80C0060B300220499F4 -:10083000FB20B1F84A30FB2B00D30346B1F84C4003 -:10084000FB20FB2C00D30446DFF890CA9CE8811003 -:1008500000900197CDF808C0ADF80230ADF8064021 -:100860006846FFF7ADFF6E80BDF80400E880BDF874 -:1008700008006881BDF80200A880BDF80600288144 -:10088000002005B0F0BD0122D1E72DE9F04186B08E -:10089000044600886946FFF703FC002868D12189D7 -:1008A000E08801F0BCF8002862D1A188608801F0DE -:1008B000B6F800285CD12189E08801F0BEF8002854 -:1008C00056D1A188608801F0B8F8070050D120887F -:1008D00002A9FFF79FFF00B1FFDFBDF8101062888B -:1008E0000920914244D3BDF80C10E28891423FD3D5 -:1008F000BDF81210BDF80E2023891144A2881A44B5 -:10090000914235D39DF80000019D4FF0000801266B -:1009100040B185F89B61019890F8DE0105F5CD7531 -:1009200040B914E085F80561019890F8280105F5B3 -:10093000827508B13A2718E0E08868806088E8800E -:100940002089A880A08828810122019909E0E088F7 -:1009500068806088E8802089A880A0882881019923 -:1009600000222846FFF72CFF2E7085F801803846BC -:1009700006B0BDE8F08188E710B5044600F0EDFF51 -:1009800020B10BF007F808B10C202BE6207800F01E -:1009900095FFE279611C0BF07EF908B1002021E699 -:1009A00002201FE610B503780446002B406813466A -:1009B0000A46014608D001200CF06BF96168496ACB -:1009C000884203D901200DE60020F5E7002009E662 -:1009D000887800B90320C97801B903211070197013 -:1009E0000020704710B586B00446008803A9FFF7C1 -:1009F00057FB002806D1A08830B1012804D0022876 -:100A000002D0122006B0EDE56B4602AA214603A8EB -:100A1000FFF7DEFF0028F5D19DF80C300022012100 -:100A2000002B049B06D083F8A511049B93F8F231A8 -:100A30004BBB20E083F80F11049B93F834313BB992 -:100A4000049B93F80E311BB9049B93F87D300BB1D6 -:100A50003A200CE0049B83F80E11049B9DF80810CB -:100A600083F81011049B9DF8001083F8111104996C -:100A700081F80F21C6E7049B93F8A4311BB9049BAE -:100A800093F87D300BB13A200CE0049B83F8A4115D -:100A9000049B9DF8081083F8A611049B9DF8001094 -:100AA00083F8A711049981F8A521ABE710B5044696 -:100AB0000020A17801B90120E2780AB940F00200D3 -:100AC00000F0C5FF002803D12046BDE8104089E7AB -:100AD00088E52DE9F04104460078012804D018B1DA -:100AE000022801D003281ED1607828B1012803D044 -:100AF000022801D0032816D1E07B10B9A078012884 -:100B000011D1A07830F005020DD110F0050F0AD0F8 -:100B1000400801D011202CE7E078E68862890F4672 -:100B200018B1012801D0122023E7104600F09FFFE2 -:100B3000302558B13946304600F0A3FF30B1A07BD4 -:100B40000028F0D00728EED8002012E7284610E74A -:100B50001FB5044600F0E3FE10B10C2004B041E5DF -:100B6000022104F10A0000F096FFA0788DF8080039 -:100B7000A0788DF8000060788DF8040020788DF85A -:100B80000300A07B8DF80500E07B00B101208DF80B -:100B90000600A078C0070DD0E078012813D0A0B1DE -:100BA0005FF000008DF80100E088ADF80A00608970 -:100BB000ADF80C0002A80FF0B1FE0028CED16846B7 -:100BC0000DF031FCCAE70220ECE70120EAE710B59E -:100BD00004460121FFF77DFF002803D12046BDE830 -:100BE0001040B5E7FEE40278012A01D0BAB118E05E -:100BF00042783AB1012A05D0022A12D189B18188FE -:100C000079B100E059B1418849B1808838B101EB30 -:100C10008101490000EB8000B1EB002F01D20020E0 -:100C200070471220704770B5044600780D460128C1 -:100C300009D010F0CDFB052803D00FF080FD00286F -:100C400000D00C2070BD0DF0CFFA88B10DF0E1FAA4 -:100C50000DF0C6FB0028F5D125B160780DF076FBCC -:100C60000028EFD1A1886088BDE870400FF071BE08 -:100C7000122070BD10B504460121FFF7B4FF002813 -:100C800004D12046BDE810400121CCE7AAE42DE9BB -:100C9000F0470746B0F84C50FB2092460E46FB2D1D -:100CA00000D30546DFF83886B8F80A00A84200D21B -:100CB000054697F85510284600F020FEB8F80C10AD -:100CC000814200D208468146B7F84A40FB20FB2CFF -:100CD00000D30446B8F80E00A04200D2044697F8AC -:100CE0005410204600F00AFEB8F81010814200D2DD -:100CF00008464FF4A4721B2C01D0904203D11B2D47 -:100D000025D0914523D0F580A6F808907480B08056 -:100D1000524639463046FFF753FD01203070F088C7 -:100D20001B38E02800D9FFDF70881B38E02800D985 -:100D3000FFDF30894FF4E064A0F5A470A04200D931 -:100D4000FFDFB088A0F5A470A04200D9FFDFBDE8A6 -:100D5000F087F0B5871FDDE9056540F67B44A742C3 -:100D600013D28F1FA74210D288420ED8B2F5FA7F55 -:100D70000BD2A3F10A00241FA04206D2521C4A4300 -:100D8000B2EB830F01DAAE4201D90020F0BD0120A1 -:100D9000F0BD2DE9FC41477A04468846780778D0B3 -:100DA000F80876D1780701D51120C0E494F83A000C -:100DB00008B9012F78D100252E46F8071BD088F0FE -:100DC0000105208A294600F052FE48B36089294671 -:100DD00000F057FE20B3208A6189884264D8A18E32 -:100DE000E08DCDE90001238D628CA18BE08AFFF7B5 -:100DF000B0FFA8B10125B8070ED504EB4500828EDF -:100E0000C18DCDE90012038D428C818BC08AFFF722 -:100E1000A0FF28B16D1C2E46B8F1000F02D027E0CC -:100E2000302084E4228A01211DE0B14203D004EB8A -:100E30004100008A024404EB4100C38A878ABB4216 -:100E400032D1838B478BBB422ED1438C078CBB4264 -:100E50002AD1038DC78CBB4226D1438900898342A6 -:100E600022D1491CC9B2A942DFD3608990421BD369 -:100E7000207810B1012817D10EE0A078B8F1000F4A -:100E800008D048B1012807D0022805D003280BD18B -:100E900002E009E00028EDD1607838B1012805D0E2 -:100EA000022803D0032801D0122040E400203EE4B1 -:100EB00000216EE70178C90702D0406812F0F7BB45 -:100EC00012F0C4BB2DE9F0438DB00D46AFF6E00241 -:100ED000D2E9008701462846FFF75BFF00280CD1C6 -:100EE00000F01DFD40B9FE4E307828B90CF090FBA3 -:100EF000A0F57F41FF3903D00C200DB0BDE8F08391 -:100F0000032105F1100000F0C6FDF54808AA3E389F -:100F10000890F4480990F248062110380A900BA86E -:100F200001F092FB040035D003210BF0C2F9B18A25 -:100F3000A4F84A10F28AA4F84C20F37C0093B1463E -:100F4000B37C208801F06DFC00B1FFDF208806F043 -:100F500081FA218804F10E0000F009FDE2A004F1FD -:100F6000120600680490032104A804F0B1FD0020DB -:100F700004A90A5C3254401CC0B20328F9D3A88BE0 -:100F80006080688CA080288DE080687AC10703D0DB -:100F9000012106E00920B0E7800701D5022100E029 -:100FA0000021B9F818000A460FF068FD0146A0625A -:100FB00020460FF071FD002684F85E6084F85F60C3 -:100FC000A87800F07BFC6076D5F80300C4F81A001E -:100FD000B5F80700E083C4F808802773012084F87F -:100FE0000001024604F582712046FFF750FE8DF89D -:100FF00000600121684604F06BFD9DF8000000F0E0 -:101000000701C0F3C1021144C0F3401008448DF839 -:101010000000401D2076092801D2083020760021EA -:1010200020460BF046F968780DF0E9F8A9782878A1 -:10103000EA1C0DF0B7F848B10DF0EBF8A978287864 -:10104000EA1C0DF05DF9060002D038E0122636E009 -:10105000687A00F001010020CA0700D0012089074A -:1010600001D540F002000DF086F8060027D1214698 -:1010700003200DF06FF9060021D1687A00F001011C -:101080008DF80810C00705D06889ADF80A00288AD5 -:10109000ADF80C0002A80FF041FC064695F83A00A6 -:1010A00000B101200DF079F84EB90DF099F9060064 -:1010B00005D1A98F20460FF0D3FB060008D0208869 -:1010C00006F0C9F92088062101F002FB00B1FFDF1C -:1010D000304612E701460020F4E638B58048007833 -:1010E00078B910F075F9052805D00CF091FAA0F543 -:1010F0007F41FF3905D068460FF06FFC040002D035 -:101100000CE00C2038BD0098008806F0A4F9009887 -:101110000621008801F0DCFA00B1FFDF204638BD6F -:101120001CB582894189CDE900120389C288818872 -:101130004088FFF70EFE08B100201CBD30201CBD0A -:1011400070B50546FFF7ECFF00280ED12888062170 -:1011500001F0ACFA040007D000F046FC20B1D4F84E -:10116000F800017831B901E0022070BDD4F84411D3 -:10117000097809B13A2070BD05218171D4F8F810C1 -:1011800000200881D4F8F810A8884881D4F8F81015 -:10119000E8888881D4F8F8102889C881D4F8F80044 -:1011A000028941898A4204D88279082A01D88A4270 -:1011B00001D3122070BD29884180D4F8F810022094 -:1011C0000870002070BD3EB504460BF065FAB0B162 -:1011D00043480125A0F140024570236842F8423F90 -:1011E00023790021137141706946062001F0E7F967 -:1011F00000B1FFDF684601F0C0F910B10EE0122027 -:101200003EBDBDF80440029880F80051684601F0E8 -:10121000B4F918B9BDF80400A042F4D100203EBDD5 -:1012200070B505460088062101F040FA040007D099 -:1012300000F0DAFB20B1D4F8F810087830B901E0FA -:10124000022070BDD4F84401007808B13A2070BD86 -:101250009620005D10F0010F18D0D5F8020048600C -:10126000D5F80600886054F8F80F6989102281814A -:10127000206805F10C010E3013F044FC21680320B6 -:101280000870216828884880002070BD0C2070BD3F -:1012900038B504460078EF2856D86088ADF80000CD -:1012A000009800F009FCD0B36188080708D4D4E99D -:1012B0000120824248D8202A46D3B0F5804F43D837 -:1012C000207B60B307283FD8607B28B1012803D07A -:1012D000022801D0032837D14A0707E0BC5002009A -:1012E000E4070020780000201122330003D40228F4 -:1012F00001D0032805D1A07B08B1012824D14807DB -:1013000007D4607D28B1012803D0022801D003282A -:101310001AD1C806E07D03D5012815D110E013E0ED -:10132000012801D003280FD1C80609D4607E012806 -:1013300003D0022801D0032806D1A07E0F2803D8AD -:10134000E07E18B1012801D0122038BD002038BD40 -:10135000F8B515460E46044607F0C0FB08B10C2050 -:10136000F8BD2046FFF794FF0028F9D1E07D03285F -:101370000BD0A078C00602D4607E032805D0FDF70C -:101380008DFB3070A07515B10CE01120F8BDFF2069 -:101390008DF8000069460020FDF76FFB69460020CC -:1013A000FDF75FFB2046BDE8F840FDF7BBBA002221 -:1013B000CEE770B50C46054612B11F2907D80CE0E0 -:1013C000FF2C04D8FDF735F818B11F2C01D91220D5 -:1013D00070BD2846FDF717F808B1002070BD422007 -:1013E00070BD10B50446408810B1FDF71DFB78B103 -:1013F0002078618800F001026078FFF7DAFF0028AA -:1014000005D1FDF7F9FA6288824203D907203DE44D -:1014100012203BE410466168FDF72FFB002035E405 -:1014200010B50446408810B1FCF7F5FF70B1207884 -:10143000618800F001026078FFF7BBFF002804D14B -:1014400060886168FDF70DFB00201FE412201DE499 -:101450007CB5054640784224012808D8A878FCF7D6 -:10146000D2FF20B128781224012802D090B1204662 -:101470007CBDFDF71FFB20B1A8880028F7D080288D -:10148000F5D8FDF71EFB60B168780028EFD028780A -:10149000012808D006F0FEF8044606F0F6FF002802 -:1014A00072D00C207CBDFDF756F910B9FDF7FBFAA0 -:1014B00090B307F013FB0028F3D1FCF76CFFA0F505 -:1014C0007F41FF39EDD1FDF768F9AE8842F2107027 -:1014D0004643A879FDF7B9FAFCF7A4FFF8B100225A -:1014E000072101A801F0B0F804001FD0F74803213C -:1014F000846020460AF098FD2046FDF74AFEF44D30 -:10150000A88AA4F84A00E88AA4F84C00FCF791FFE6 -:1015100070B1288B01210FE0FFE712207CBD31461E -:10152000002007F07DF868B3FFDF37E009207CBDBD -:10153000FDF7C9FA0146288B07F01DF90146A062A4 -:101540000022204606F0A9F8FCF773FF08B9FDF762 -:10155000BAFAE87C0090AB7CEA8AA98A208801F07C -:1015600060F900B1FFDF208805F074FF31462046A6 -:1015700007F056F800B1FFDF002204F5CD712046D8 -:10158000FFF785FB0AE0FFE744B1208805F063FF21 -:101590002088072101F09CF800B1FFDF00207CBD0E -:1015A000002155E770B50D46072101F07FF80400D2 -:1015B00003D094F8730110B10AE0022070BD94F8D2 -:1015C0006500142801D0152802D194F8C00108B193 -:1015D0000C2070BD1022294604F5BA7013F092FA5F -:1015E000012084F87301002070BD10B5072101F0BF -:1015F0005DF818B190F8731111B107E0022006E709 -:1016000090F86510142903D0152901D00C20FEE6AE -:10161000022180F873110020F9E62DE9FC410C4607 -:101620004BF68032122194421CD8DCB16946FEF799 -:1016300037FD002815D19DF8000000F04BF9019E00 -:101640009DF80000583600F045F9019DAD1C2F882B -:101650002246394630460AF0A2FC2888B842F6D124 -:10166000002022E4084620E47CB504460088694650 -:10167000FEF716FD002810D19DF8000000F02AF9B1 -:10168000019D9DF80000583500F024F90198A278DA -:1016900090F82C10914201D10C207CBD7F21297241 -:1016A000A9720021E972E17880F82D10217980F883 -:1016B0002E10A17880F82C1000207CBD1CB50C46A3 -:1016C0006946FEF7EDFC00280AD19DF8000000F005 -:1016D00001F9019890F8730000B1012020700020FA -:1016E0001CBD7CB50D4614466946FEF7D9FC0028A2 -:1016F00009D19DF8000000F0EDF8019890F82C0059 -:10170000012801D00C207CBD9DF8000000F0E2F81B -:10171000019890F86010297090F861002070002006 -:101720007CBD70B50D461646072100F0BFFF18B30B -:1017300081880124C388428804EB4104AC4217D855 -:1017400042F210746343A4106243B3FBF2F2521EE0 -:1017500094B24FF4FA72944200D91446A54200D2D2 -:101760002C46491C641CB4FBF1F24A43521E91B250 -:1017700090F8AC211AB901E0022070BD01843180DB -:10178000002070BD10B50C46072100F08FFF48B156 -:1017900080F8DF4024B190F8DD1009B107F001F8BE -:1017A000002034E6022032E6017899B1417889B10F -:1017B00041881B290ED381881B290BD3C18802299C -:1017C00008D343490268403941F8522F40684860C5 -:1017D000002070471220704710B504460FF04AF9F8 -:1017E000204606F097FF002011E610B506F095FFA1 -:1017F00000200CE62DE9F04115460F460646012271 -:10180000114638460FF03AF904460121384606F0F1 -:10181000B2FF844200D2044601213046653C00F00C -:101820005EF806460121002000F059F830440121FD -:101830009630844206D900F19601201AB0FBF1F0EF -:10184000401C81B229800020BDE8F08110B504461B -:1018500000F083F808B10C20D9E5601C0AF0F6F915 -:10186000207800F00100FCF793FF207800F00100E1 -:101870000CF0CAFC0020CAE510B50446072000F0B1 -:10188000AFFE08B10C20C2E52078C00710D00022BE -:101890006078114612F008FB08B11220B7E5A06885 -:1018A00008F0A3FE6078616808F0A8FE0020AEE5AD -:1018B000002008F09AFE00210846F5E718B102283A -:1018C00001D0012070470020704700006C0000200C -:1018D000E407002008B10020F6E70120F4E710B586 -:1018E000012904D0022905D0FFDF20468FE5C00082 -:1018F000503001E080002C3084B2F6E711F00C0F7C -:1019000004D04FF4747101EB801006E0022902D07C -:10191000C000703001E080003C3080B2D4E710B5E8 -:101920000FF056FD042805D00FF052FD052801D018 -:1019300000206CE501206AE510B5FFF7F0FF10B15B -:101940000CF012FD28B907F0C9F820B1FCF7FBFE36 -:1019500008B101205BE5002059E510B5FFF7DFFF76 -:1019600018B907F0BBF8002800D001204FE52DE999 -:10197000FE4300250F4680460A260421404604F017 -:10198000D0F840460AF064FE062000F037FE044618 -:1019900015E06946062000F012FE0AE0BDF80400DA -:1019A000B84206D00298042241460E3013F07EF869 -:1019B00050B1684600F0E1FD0500EFD0641E002C38 -:1019C00006DD002DE5D005E040460AF04AFEF5E7C9 -:1019D00005B9FFDFD8F800000AF0EBFA761E01D057 -:1019E0000028CAD0BDE8FE8390F8D01090F87300AC -:1019F00020B919B1042901D0012065E7002063E76F -:101A0000017800290AD0416891F8DD20002A05D02C -:101A1000002281F8DD20406806F0C3BE54E71B3881 -:101A2000E12806D2B1F5A47F03D344F2902081428D -:101A300001D9122048E7002046E7FB2803D840F6EA -:101A40004800814201D911203EE700203CE770B5F3 -:101A500014460546012200F053F8002806D121461D -:101A60002846BDE87040002200F04AB870BD042846 -:101A700003D321B9B0F5804F01D9002024E701201C -:101A800022E7042803D321B9B0F5804F01D9002003 -:101A90001AE7012018E710B500224FF4C84408E007 -:101AA00030F81230A34200D9234620F81230521CDD -:101AB000D2B28A42F4D3AAE480B2C1060BD40107A1 -:101AC0001CD481064FEAC07101D5B9B900E099B1C3 -:101AD000800713D410E0410610D481060ED4C1074C -:101AE0004FEA807104D0002902DB400704D405E0EE -:101AF000010703D4400701D40120E5E60020E3E616 -:101B00000AB1012200E00222024202D1880802D179 -:101B100009B10020D8E61120D6E6000030B50588CE -:101B200025F4004421448CB24FF4004194420AD27F -:101B3000121B92B21B339A4201D2A94307E005F46B -:101B40000041214303E0A21A92B2A943114301804C -:101B500030BD0844083050434A31084480B27047D1 -:101B600070B51D4616460B46044629463046049A73 -:101B7000FFF7EFFF0646B34200D2FFDF28212046E1 -:101B800013F061F84FF6FF70A082283EB0B265777F -:101B90006080B0F5004F00D9FFDF618805F13C009F -:101BA000814200D2FFDF60880835401B343880B2A4 -:101BB00020801B2800D21B2020800020A07770BD31 -:101BC0008161886170472DE9F05F0D46C188044648 -:101BD00000F12809008921F4004620F4004800F0B3 -:101BE00062FB10B10020BDE8F09F4FF0000A4FF0FB -:101BF000010BB0450CD9617FA8EB0600401A0838EC -:101C0000854219DC09EB06000021058041801AE0BD -:101C10006088617F801B471A083F0DD41B2F00DAB4 -:101C2000FFDFBD4201DC294600E0B9B2681A0204B8 -:101C3000120C04D0424502DD84F817A0D2E709EB6C -:101C400006000180428084F817B0CCE770B50446E6 -:101C500000F12802C088E37D20F400402BB110443D -:101C60000288438813448B4201D2002070BD0025B6 -:101C70008A4202D30180458008E0891A0904090CD0 -:101C8000418003D0A01D00F01EFB08E0637F0088A8 -:101C90000833184481B26288A01DFFF73FFFE57545 -:101CA000012070BD70B5034600F12804C588808806 -:101CB00020F400462644A84202D10020188270BDBC -:101CC00098893588A84206D3401B75882D1A204470 -:101CD000ADB2C01E05E02C1AA5B25C7F2044304492 -:101CE000401D0C88AC4200D90D809C8924B1002491 -:101CF00014700988198270BD0124F9E770B5044693 -:101D000000F12801808820F400404518208A00282E -:101D100025D0A189084480B2A08129886A8811440D -:101D2000814200D2FFDF2888698800260844A18903 -:101D3000884212D1A069807F2871698819B1201D5D -:101D400000F0C1FA08E0637F28880833184481B2A4 -:101D50006288201DFFF7E2FEA6812682012070BD69 -:101D60002DE9F041418987880026044600F12805C5 -:101D7000B94218D004F10A0821F4004028444188EF -:101D800019B1404600F09FFA08E0637F00880833ED -:101D9000184481B262884046FFF7C0FE761C618914 -:101DA000B6B2B942E8D13046BDE8F0812DE9F04144 -:101DB00004460B4627892830A68827F40041B4F84A -:101DC0000A8001440D46B74201D10020ECE70AB178 -:101DD000481D106023B1627F691D184612F092FE03 -:101DE0002E88698804F1080021B18A1996B200F0A2 -:101DF0006AFA06E0637F62880833991989B2FFF7AF -:101E00008DFE474501D1208960813046CCE781882D -:101E1000C088814201D101207047002070470189AC -:101E20008088814201D1012070470020704770B541 -:101E30008588C38800F1280425F4004223F400417A -:101E400014449D421AD08389058A5E1925886388C7 -:101E5000EC18A64214D313B18B4211D30EE0437F8A -:101E600008325C192244408892B2801A80B223332F -:101E7000984201D211B103E08A4201D1002070BD25 -:101E8000012070BD2DE9F0478846C18804460089CD -:101E900021F4004604F1280720F4004507EB060969 -:101EA00000F001FA002178BBB54204D9627FA81B7B -:101EB000801A002503E06088627F801B801A083842 -:101EC00023D4E28962B1B9F80020B9F802303BB1FD -:101ED000E81A2177404518DBE0893844801A09E088 -:101EE000801A217740450ADB607FE1890830304461 -:101EF00039440844C01EA4F81280BDE8F087454567 -:101F000003DB01202077E7E7FFE761820020F4E7A9 -:101F10002DE9F74F044600F12805C088884620F4D3 -:101F2000004A608A05EB0A0608B1404502D200204B -:101F3000BDE8FE8FE08978B13788B6F8029007EBEC -:101F40000901884200D0FFDF207F4FF0000B50EAEC -:101F5000090106D088B33BE00027A07FB946307165 -:101F6000F2E7E18959B1607F2944083050440844C0 -:101F7000B4F81F1020F8031D94F821108170E28935 -:101F800007EB080002EB0801E1813080A6F802B0FF -:101F900002985F4650B1637F30880833184481B29D -:101FA0006288A01DFFF7BAFDE78121E0607FE1892B -:101FB00008305044294408442DE0FFE7E089B4F894 -:101FC0001F102844C01B20F8031D94F821108170B5 -:101FD00009EB0800E28981B202EB0800E08137805A -:101FE00071800298A0B1A01D00F06DF9A4F80EB0A8 -:101FF000A07F401CA077A07D08B1E088A08284F873 -:1020000016B000BFA4F812B084F817B001208FE713 -:10201000E0892844C01B30F8031DA4F81F10807805 -:1020200084F82100EEE710B5818800F1280321F43F -:1020300000442344848AC288A14212D0914210D025 -:10204000818971B9826972B11046FFF7E8FE50B913 -:102050001089283220F40040104419790079884210 -:1020600001D1002010BD184610BD00F12803407FAB -:1020700008300844C01E1060088808B9DB1E1360D1 -:1020800008884988084480B270472DE9F04100F182 -:102090002806407F1C4608309046431808884D8823 -:1020A000069ADB1EA0B1C01C80B2904214D9801ADF -:1020B000A04200DB204687B298183A46414612F00B -:1020C000F5FC002816D1E01B84B2B844002005E0DE -:1020D000ED1CADB2F61EE8E7101A80B20119A94254 -:1020E00006D8304422464146BDE8F04112F0DEBC3D -:1020F0004FF0FF3058E62DE9F04100F12804407F11 -:102100001E46083090464318002508884F88069AD6 -:10211000DB1E90B1C01C80B2904212D9801AB0422E -:1021200000DB304685B299182A46404612F0EAFC98 -:10213000701B86B2A844002005E0FF1CBFB2E41E5D -:10214000EAE7101A80B28119B94206D8211832463E -:10215000404612F0D7FCA81985B2284624E62DE99E -:10216000F04100F12804407F1E4608309046431895 -:10217000002508884F88069ADB1E90B1C01C80B2EB -:10218000904212D9801AB04200DB304685B29818CE -:102190002A46414612F0B6FC701B86B2A8440020C5 -:1021A00005E0FF1CBFB2E41EEAE7101A80B28119F5 -:1021B000B94206D820443246414612F0A3FCA81981 -:1021C00085B22846F0E5401D704710B5044600F181 -:1021D0002801C288808820F400431944904206D028 -:1021E000A28922B9228A12B9A28A904201D1002082 -:1021F00010BD0888498831B1201D00F064F8002026 -:102200002082012010BD637F62880833184481B2A8 -:10221000201DFFF783FCF2E70021C1810177418295 -:10222000C1758175704703881380C28942B1C28825 -:1022300022F4004300F128021A440A60C089704762 -:102240000020704710B50446808AA0F57F41FF3911 -:1022500000D0FFDFE088A082E08900B10120A075F6 -:1022600010BD4FF6FF71818200218175704710B556 -:102270000446808AA0F57F41FF3900D1FFDFA07DB1 -:1022800028B9A088A18A884201D1002010BD012070 -:1022900010BD8188828A914201D1807D08B10020E1 -:1022A00070470120704720F4004221F400439A4215 -:1022B00007D100F4004001F40041884201D0012020 -:1022C00070470020704730B5044600880D4620F462 -:1022D0000040A84200D2FFDF21884FF4004088432D -:1022E0002843208030BD70B50C00054609D0082C6D -:1022F00000D2FFDF1DB1A1B2286800F044F8201D14 -:1023000070BD0DB100202860002070BD0021026862 -:1023100003E093881268194489B2002AF9D100F0C9 -:1023200032B870B500260D460446082900D2FFDFFA -:10233000206808B91EE0044620688188A94202D0BE -:1023400001680029F7D181880646A94201D10068B9 -:102350000DE005F1080293B20022994209D3284406 -:10236000491B02608180216809682160016020604A -:1023700000E00026304670BD00230B608A800268B2 -:102380000A600160704700234360021D0181026002 -:102390007047F0B50F460188408815460C181E4658 -:1023A000AC4200D3641B3044A84200D9FFDFA0191F -:1023B000A84200D9FFDF3819F0BD2DE9F041884669 -:1023C00006460188408815460C181F46AC4200D3CB -:1023D000641B3844A84200D9FFDFE019A84200D9A5 -:1023E000FFDF70883844708008EB0400BDE8F0819E -:1023F0002DE9F041054600881E461746841B884695 -:10240000BC4200D33C442C8068883044B84200D998 -:10241000FFDFA019B84200D9FFDF68883044688028 -:1024200008EB0400E2E72DE9F04106881D4604466A -:10243000701980B2174688462080B84201D3C01B6D -:1024400020806088A84200D2FFDF7019B84200D90E -:10245000FFDF6088401B608008EB0600C6E730B5F0 -:102460000D460188CC18944200D3A41A40889842A3 -:1024700000D8FFDF281930BD2DE9F041C84D0446D2 -:102480009046A8780E46A04200D8FFDF05EB8607ED -:10249000B86A50F8240000B1FFDFB868002816D0F1 -:1024A000304600F044F90146B868FFF73AFF0500EE -:1024B0000CD0B86A082E40F8245000D3FFDFB9488A -:1024C0004246294650F82630204698472846BDE81F -:1024D000F0812DE9F8431E468C1991460F460546BA -:1024E000FF2C00D9FFDFB14500D9FFDFE4B2009532 -:1024F0004DB300208046E81C20F00300A84200D025 -:10250000FFDF4946DFF89892684689F8001089F89D -:10251000017089F8024089F8034089F8044089F87D -:10252000054089F8066089F80770414600F008F90F -:10253000002142460F464B460098C01C20F0030085 -:10254000009012B10EE00120D4E703EB8106B062E7 -:10255000002005E0D6F828C04CF82070401CC0B21E -:10256000A042F7D30098491C00EB8400C9B2009048 -:102570000829E1D3401BBDE8F88310B50446EEF707 -:10258000C8FE08B1102010BD2078854A618802EB92 -:10259000800092780EE0836A53F8213043B14A1CE0 -:1025A0006280A180806A50F82100A060002010BDE8 -:1025B000491C89B28A42EED86180052010BD70B5F1 -:1025C00005460C460846EEF7A4FE08B1102070BD83 -:1025D000082D01D3072070BD25700020608070BDDC -:1025E0000EB56946FFF7EBFF00B1FFDF6846FFF766 -:1025F000C4FF08B100200EBD01200EBD10B5044679 -:10260000082800D3FFDF6648005D10BD3EB50546D3 -:1026100000246946FFF7D3FF18B1FFDF01E0641C17 -:10262000E4B26846FFF7A9FF0028F8D02846FFF774 -:10263000E5FF001BC0B23EBD59498978814201D9EE -:10264000C0B27047FF2070472DE9F041544B062976 -:1026500003D007291CD19D7900E0002500244FF606 -:10266000FF7603EB810713F801C00AE06319D7F87E -:1026700028E09BB25EF823E0BEF1000F04D0641C9A -:10268000A4B2A445F2D8334603801846B34201D120 -:1026900000201CE7BDE8F041EEE6A0F57F43FF3BDC -:1026A00001D0082901D300207047E5E6A0F57F425C -:1026B000FF3A0BD0082909D2394A9378834205D9C9 -:1026C00002EB8101896A51F82000704700207047B1 -:1026D0002DE9F04104460D46A4F57F4143F2020086 -:1026E000FF3902D0082D01D30720F0E62C494FF026 -:1026F00000088A78A242F8D901EB8506B26A52F83E -:102700002470002FF1D027483946203050F825207A -:1027100020469047B16A284641F8248000F007F827 -:1027200002463946B068FFF727FE0020CFE61D4974 -:10273000403131F810004FF6FC71C01C0840704762 -:102740002DE9F843164E8846054600242868C01C2B -:1027500020F0030028602046FFF7E9FF315D484381 -:10276000B8F1000F01D0002200E02A680146009273 -:1027700032B100274FEA0D00FFF7B5FD1FB106E0AB -:1027800001270020F8E706EB8401009A8A60296897 -:10279000641C0844E4B22860082CD7D3EBE60000A0 -:1027A00004080020C850020070B50E461D461146B0 -:1027B00000F0D4F804462946304600F0D8F820440A -:1027C000001D70BD2DE9F04190460D4604004FF00C -:1027D000000610D00027E01C20F00300A04200D02B -:1027E000FFDFDDB141460020FFF77DFD0C3000EB3F -:1027F000850617B112E00127EDE7614F04F10C00E7 -:10280000A9003C602572606000EB85002060606874 -:1028100012F019FA41463868FFF765FD3046BDE809 -:10282000F0812DE9FF4F564C804681B020689A46D2 -:10283000934600B9FFDF2068027A424503D9416818 -:1028400051F8280020B143F2020005B0BDE8F08F36 -:102850005146029800F082F886B258460E9900F070 -:1028600086F885B27019001D87B22068A1463946E6 -:102870000068FFF756FD04001FD0678025802946B9 -:10288000201D0E9D07465A4601230095FFF768F963 -:102890002088314638440123029ACDF800A0FFF782 -:1028A0005FF92088C1193846FFF78AF9D9F8000086 -:1028B0004168002041F82840C7E70420C5E770B50B -:1028C0002F4C0546206800B9FFDF2068017AA94235 -:1028D0000ED9426852F8251051B1002342F8253034 -:1028E0004A880068FFF748FD216800200A7A08E05E -:1028F00043F2020070BD4B6853F8203033B9401CDE -:10290000C0B28242F7D80868FFF700FD002070BD12 -:1029100070B51B4E05460024306800B9FFDF3068F3 -:10292000017AA94204D9406850F8250000B1041D7D -:10293000204670BD70B5124E05460024306800B9BF -:10294000FFDF3068017AA94206D9406850F82510A7 -:1029500011B131F8040B4418204670BD10B50A4679 -:102960000121FFF7F6F8C01C20F0030010BD10B5E0 -:102970000A460121FFF7EDF8C01C20F0030010BD4E -:102980008000002070B50446C2F11005281912F02D -:10299000B9F815F0FF0108D0491EC9B28020605473 -:1029A0002046BDE8704012F02CB970BD30B505E08E -:1029B0005B1EDBB2CC5CD55C6C40C454002BF7D101 -:1029C00030BD10B5002409E00B78521E44EA4303E1 -:1029D00000F8013B11F8013BD2B2DC09002AF3D127 -:1029E00010BD2DE9F04389B01E46DDE9107990460F -:1029F0000D00044622D002460846F949FDF7E1FDE4 -:102A0000102221463846FFF7DCFFE07B000606D5A2 -:102A1000F34A3946102310320846FFF7C7FF102249 -:102A200039464846FFF7CDFFF87B000606D5EC4A4D -:102A30004946102310320846FFF7B8FF1021204600 -:102A400012F0DFF80DE0103EB6B208EB06011023DD -:102A500022466846FFF7AAFF224628466946FDF748 -:102A6000B0FD102EEFD818D0F2B241466846FFF7FD -:102A700089FF10234A46694604A8FFF797FF1023F1 -:102A8000224604A96846FFF791FF22462846694678 -:102A9000FDF797FD09B0BDE8F08310233A464146A3 -:102AA000EAE770B59CB01E460546134620980C46D2 -:102AB0008DF80800202219460DF1090012F022F8C5 -:102AC000202221460DF1290012F01CF817A913A8A5 -:102AD000CDE90001412302AA31462846FFF781FFD4 -:102AE0001CB070BD2DE9FF4F9FB014AEDDE92D5431 -:102AF00010AFBB49CDE90076202320311AA8FFF79B -:102B000070FF4FF000088DF808804FF001098DF834 -:102B1000099054F8010FCDF80A00A088ADF80E0016 -:102B200014F8010C1022C0F340008DF8100055F885 -:102B3000010FCDF81100A888ADF8150015F8010CAB -:102B40002C99C0F340008DF8170006A8824611F0BA -:102B5000D9FF0AA883461022229911F0D3FFA0487A -:102B60003523083802AA40688DF83C80CDE900760C -:102B70000E901AA91F98FFF734FF8DF808808DF882 -:102B800009902068CDF80A00A088ADF80E0014F86E -:102B9000010C1022C0F340008DF810002868CDF819 -:102BA0001100A888ADF8150015F8010C2C99C0F398 -:102BB00040008DF81700504611F0A4FF584610222F -:102BC000229911F09FFF86483523083802AA4068F1 -:102BD0008DF83C90CDE900760E901AA92098FFF769 -:102BE00000FF23B0BDE8F08FF0B59BB00C46054662 -:102BF000DDE922101E461746DDE92032D0F801C07B -:102C0000CDF808C0B0F805C0ADF80CC00078C0F32E -:102C100040008DF80E00D1F80100CDF80F00B1F89A -:102C20000500ADF8130008781946C0F340008DF890 -:102C300015001088ADF8160090788DF818000DF189 -:102C40001900102211F05EFF0DF12900102231460B -:102C500011F058FF0DF139001022394611F052FFE2 -:102C600017A913A8CDE90001412302AA214628464D -:102C7000FFF7B7FE1BB0F0BDF0B5A3B017460D4689 -:102C800004461E46102202A8289911F03BFF06A810 -:102C90002022394611F036FF0EA82022294611F0D5 -:102CA00031FF1EA91AA8CDE90001502302AA31461E -:102CB00016A8FFF796FE1698206023B0F0BDF0B579 -:102CC00089B00446DDE90E070D463978109EC1F340 -:102CD00040018DF8001031789446C1F340018DF821 -:102CE00001101968CDF802109988ADF8061099798D -:102CF0008DF808100168CDF809108188ADF80D1025 -:102D000080798DF80F0010236A46614604A8FFF70A -:102D10004DFE2246284604A9FDF753FCD6F80100D3 -:102D20000090B6F80500ADF80400D7F80100CDF822 -:102D30000600B7F80500ADF80A0000200390102344 -:102D40006A46214604A8FFF731FE2246284604A918 -:102D5000FDF737FC09B0F0BD1FB51C6800945B6837 -:102D6000019313680293526803920246084669462B -:102D7000FDF727FC1FBD10B588B00446106804900D -:102D80005068059000200690079008466A4604A9FE -:102D9000FDF717FCBDF80000208008B010BD1FB57E -:102DA0001288ADF800201A88ADF8022000220192A6 -:102DB00002920392024608466946FDF702FC1FBDD7 -:102DC0007FB5074B14460546083B9A1C6846FFF73B -:102DD000E6FF224669462846FFF7CDFF7FBD00008B -:102DE0002051020070B5044600780E46012813D029 -:102DF000052802D0092813D10EE0A0686169057882 -:102E0000042003F06DF9052D0AD078230022042058 -:102E1000616903F0BBF803E00420616903F060F925 -:102E200031462046BDE8704001F084B810B500F18D -:102E30002D03C2799C78411D144064F30102C271D4 -:102E4000D2070DD04A795C7922404A710A791B7900 -:102E50001A400A718278C9788A4200D9817010BDFF -:102E600000224A71F5E74178012900D00C21017058 -:102E700070472DE9F04F93B04FF0000B0C690D46F1 -:102E80008DF820B0097801260C2017464FF00D0868 -:102E90004FF0110A4FF008091B2975D2DFE811F035 -:102EA0001B00C20205031D035C036F03A103B603ED -:102EB000F7031804600492049F04EB04290533050A -:102EC00051055C05ED053006330662067E06F80600 -:102ED0001C07E506EA0614B120781D282AD0D5F88B -:102EE00008805FEA08004FD001208DF82000686A52 -:102EF00002220D908DF824200A208DF82500A86963 -:102F00000A90A8880028EED098F8001091B10F29F7 -:102F100010D27DD2DFE801F07C1349DEFCFBFAF928 -:102F2000F8F738089CF6F50002282DD124B1207856 -:102F30000C2801D00026EEE38DF82020CAE1042001 -:102F4000696A03F0CDF8A8880728EED1204600F082 -:102F5000ECFF022809D0204600F0E7FF032807D93C -:102F6000204600F0E2FF072802D20120207004E092 -:102F7000002CB8D020780128D7D198F80400C11FC0 -:102F80000A2902D30A2061E0C3E1A070D8F800103A -:102F9000E162B8F80410218698F8060084F832003F -:102FA000012028700320207044E00728BDD1002CA8 -:102FB00099D020780D28B8D198F8031094F82F20D4 -:102FC000C1F3C000C2F3C002104201D0062000E0ED -:102FD0000720890707D198F805100142D2D198F847 -:102FE00006100142CED194F8312098F8051020EA5D -:102FF00002021142C6D194F8322098F8061090438C -:103000000142BFD198F80400C11F0A29BAD200E0DA -:1030100006E2617D81427CD8D8F800106160B8F882 -:103020000410218198F80600A072012028700E205B -:10303000207003208DF82000686A0D9004F12D00A7 -:103040000990601D0A900F300B9021E12875FDE377 -:10305000412891D1204600F068FF042802D1E07891 -:10306000C00704D1204600F060FF0F2884D1A88C4F -:10307000D5F80C8080B24FF0400BE669FFF748FCB2 -:10308000324641465B464E46CDF80090FFF733F896 -:103090000B208DF82000686A0D90E06909900021EE -:1030A00008A8FFF79FFE2078042806D0A07D58B11D -:1030B000012809D003280AD048E305202070032006 -:1030C00028708DF82060CCE184F800A032E712204F -:1030D0002070E8E11128BCD1204600F026FF04282A -:1030E00002D1E078C00719D0204600F01EFF062864 -:1030F00005D1E078C00711D1A07D02280ED020466E -:1031000008E0CBE084E070E14FE122E102E1E8E099 -:1031100019E0AEE100F009FF11289AD1102208F160 -:10312000010104F13C0011F0EDFC607801286ED043 -:1031300012202070E078C00760D0A07D0028C8D0A1 -:103140000128C6D05AE0112890D1204600F0EDFEAB -:10315000082804D0204600F0E8FE132886D104F1A8 -:103160006C00102208F10101064611F0CBFC20781A -:1031700008280DD014202070E178C8070DD0A07D5C -:1031800002280AD06278022A04D00328A1D035E0B0 -:103190000920F0E708B1012837D1C80713D0A07D76 -:1031A00002281DD000200090D4E9062133460EA845 -:1031B000FFF777FC10220EA904F13C0011F076FC19 -:1031C000C8B1042042E7D4E90912201D8DE80700A8 -:1031D00004F12C0332460EA8616BFFF770FDE9E79E -:1031E000606BC1F34401491E0068C84000F0010053 -:1031F00040F08000D7E72078092806D185F80090B4 -:103200008DF8209032E32870EBE30920FBE79CE186 -:10321000112899D1204600F088FE0A2802D1E078D2 -:10322000C00704D1204600F080FE15288CD104F19F -:103230003C00102208F10101064611F063FC2078E1 -:103240000A2816D016202070D4E90932606B611D5F -:103250008DE80F0004F15C0304F16C0247310EA805 -:10326000FFF7C2FC10220EA9304611F01FFC18B166 -:10327000F6E20B20207071E22046FFF7D7FDA07820 -:10328000216A0A18C0F11001104611F0BAFC23E3BC -:10329000394608A8FFF7A6FD06463BE20228B8D14A -:1032A000204600F042FE042804D3204600F03DFEF4 -:1032B000082809D3204600F038FE0E2829D32046DE -:1032C00000F033FE122824D2A07D0228A1D10E20C6 -:1032D0008DF82000686A0D9098F801008DF82400A0 -:1032E000F0E3022895D1204600F01FFE002810D000 -:1032F000204600F01AFE0128F9D0204600F015FE05 -:103300000C28F4D004208DF8240098F801008DF8E2 -:1033100025005EE21128FCD1002CFAD02078172875 -:10332000F7D16178606A022911D0002101EB4101D7 -:10333000182606EBC1011022405808F1010111F0D6 -:10334000E1FB0420696A00F0E3FD2670F2E501214B -:10335000ECE70B28DDD1002CDBD020781828D8D161 -:103360006078616A02281CD05FF0000000EB400228 -:10337000102000EBC2000958B8F8010008806078FE -:10338000616A02280FD0002000EB4002142000EBFD -:10339000C2000958404650F8032F0A604068486050 -:1033A00039E00120E2E70120EEE71128B1D1002C3D -:1033B000AFD020781928ACD16178606A022912D088 -:1033C0005FF0000101EB41011C2202EBC101102260 -:1033D000405808F1010111F095FB0420696A00F0E2 -:1033E00097FD1A20B6E00121ECE7082891D1002CC6 -:1033F0008FD020781A288CD1606A98F80120017843 -:1034000062F347010170616AD8F8022041F8012F88 -:10341000B8F8060088800420696A00F079FD8EE221 -:10342000072013E63878012894D1182204F11400FB -:10343000796811F0ACFBE079C10894F82F0001EA3B -:10344000D001E07861F30000E070217D002974D1A3 -:103450002178032909D0C00725D0032028708DF8D2 -:103460002090686A0D90412004E3607DA178884235 -:1034700001D90620EAE502262671E179204621F0ED -:10348000E001E171617A21F0F0016172A17A21F02D -:10349000F001A172FFF7CAFC2E708DF82090686AC7 -:1034A0000D900720E6E20420ADE6387805289DD18E -:1034B0008DF82000686A0D90B8680A900720ADF872 -:1034C00024000A988DF830B06168016021898180FC -:1034D000A17A817104202070F4E23978052985D120 -:1034E0008DF82010696A0D91391D09AE0EC986E864 -:1034F0000E004121ADF824108DF830B01070A88C6A -:10350000D7F80C8080B24026A769FFF713FA41462E -:103510003A463346C846CDF80090FEF720FE00211B -:1035200008A8FFF75FFCE07820F03E00801CE07008 -:103530002078052802D00F200CE049E1A07D20B1C1 -:10354000012802D0032802D002E10720C0E584F858 -:103550000080EFE42070EDE4102104F15C0002F043 -:10356000E0FA606BB0BBA07D18B1012801D0052046 -:10357000FDE006202870F7486063A063BEE238785B -:10358000022894D1387908B12875B3E3A07D0228C8 -:1035900002D0032805D022E0B8680028F5D0606387 -:1035A0001CE06078012806D0A07994F82E1001283C -:1035B00005D0E84806E0A17994F82E00F7E7B8684E -:1035C0000028E2D06063E078C00701D0012902D072 -:1035D000E04803E003E0F8680028D6D0A0630620A6 -:1035E00011E68DF82090696A0D91E1784846C90787 -:1035F00009D06178022903D1A17D29B1012903D025 -:10360000A17D032900D00720287031E138780528F2 -:10361000BBD1207807281ED084F800A005208DF8A3 -:103620002000686A0D90B8680A90ADF824A08DF863 -:1036300030B003210170E178CA070FD0A27D022AC1 -:103640001AD000210091D4E9061204F15C03401C59 -:10365000FFF727FA67E384F80090DFE7D4E909234E -:10366000211D8DE80E0004F12C0304F15C02401CC6 -:10367000616BFFF724FB56E3626BC1F34401491E03 -:103680001268CA4002F0010141F08001DAE738789F -:103690000528BDD18DF82000686A0D90B8680A90A1 -:1036A000ADF824A08DF830B0042100F8011B1022E1 -:1036B00004F15C0111F026FA002108A8FFF792FB43 -:1036C0002078092801D0132044E70A2020709CE5C7 -:1036D000E078C10742D0A17D012902D0022927D07C -:1036E00038E0617808A8012916D004F16C01009136 -:1036F000D4E9061204F15C03001DFFF7BDFA0A20AD -:10370000287003268DF82080686A0D90002108A893 -:10371000FFF768FBDDE2C3E204F15C010091D4E94C -:10372000062104F16C03001DFFF7A6FA0026E9E765 -:10373000C0F3440114290DD24FF0006101EBB01029 -:103740004FEAB060E0706078012801D01020BFE43B -:103750000620FFE6607801283FF4B8AC0A2052E565 -:10376000E178C90708D0A17D012903D10B20287079 -:1037700004202FE028702DE00E2028706078616B07 -:10378000012817D004F15C0304F16C020EA8FFF7C6 -:10379000E3FA2046FFF74AFBA0780EAEC0F1100115 -:1037A000304411F02EFA06208DF82000686A099640 -:1037B0000D909AE004F16C0304F15C020EA8FFF78F -:1037C000CBFAE9E73978022903D139790029D1D038 -:1037D00029758FE28DF82000686A0D9058E53878D9 -:1037E0000728F6D1D4E909216078012809D000BF63 -:1037F00004F16C00CDE90002029105D104F16C03E3 -:1038000004E004F15C00F5E704F15C0304F14C0012 -:103810007A680646216AFFF765F96078012821D1A8 -:10382000A078216A0A18C0F11001104611F0E9F9D8 -:10383000D4E90923606B04F12D018DE80F0004F138 -:103840005C0304F16C0231460EA800E054E2FFF77D -:10385000CBF910220EA904F13C0011F027F908B1B0 -:103860000B20AFE485F800808DF82090686A0D90F9 -:103870008DF824A00CE538780528AAD18DF8200011 -:10388000686A0D90B8680A90ADF824A08DF830B041 -:1038900080F80080617801291AD0D4E9093204F156 -:1038A0002D01A66B03920096CDE9011304F16C0380 -:1038B00004F15C0204F14C01401CFFF795F9002172 -:1038C00008A8FFF78FFA6078012805D0152041E697 -:1038D000D4E90923611DE4E70E20287006208DF845 -:1038E0002000686ACDF824B00D90A0788DF82800EB -:1038F000CEE438780328C0D1E079C00770D00F201B -:103900002870072066E7387804286BD11422391D07 -:1039100004F1140011F03BF9616A208CA1F8090050 -:10392000616AA078C871E179626A01F003011172DD -:10393000616A627A0A73616AA07A81F824001620AB -:1039400061E485F800A08DF82090696A50460D91D9 -:1039500090E00000205102003878052842D1B86874 -:10396000A8616178606A022901D0012100E000218C -:1039700001EB4101142606EBC1014058082102F079 -:10398000D0F86178606A022901D0012100E00021AD -:1039900001EB410106EBC101425802A8E169FFF7C2 -:1039A0000FFA6078626A022801D0012000E000204E -:1039B00000EB4001102000EBC1000223105802A9C7 -:1039C0000932FEF7F3FF626AFD4B0EA80932A169C6 -:1039D000FFF7E5F96178606A022904D0012103E06C -:1039E00042E18BE0BDE0002101EB4101182606EB2E -:1039F000C101A27840580EA911F084F86178606A7C -:103A0000022901D0012100E0002101EB410106EB78 -:103A1000C1014058A1780844C1F1100111F0F1F83A -:103A200005208DF82000686A0D90A8690A90ADF80D -:103A300024A08DF830B0062101706278616A022AF4 -:103A400001D0012200E0002202EB420206EBC2029A -:103A5000401C8958102211F055F8002108A8FFF7E2 -:103A6000C1F91220C5F818B028708DF82090686A46 -:103A70000D900B208DF824000AE43878052870D1C9 -:103A80008DF82000686A0D90B8680A900B20ADF898 -:103A900024000A98072101706178626A022901D026 -:103AA000012100E0002101EB4103102101EBC301E2 -:103AB00051580988A0F801106178626A022902D081 -:103AC000012101E02FE1002101EB4103142101EB71 -:103AD000C30151580A6840F8032F4968416059E012 -:103AE0001920287001208DF8300077E61620287004 -:103AF0008DF830B0002108A8FFF774F9032617E10C -:103B000014202870B0E6387805282AD18DF82000D6 -:103B1000686A0D90B8680A90ADF824A08DF830B0AE -:103B200080F800906278616A4E46022A01D0012234 -:103B300000E0002202EB42021C2303EBC202401C05 -:103B40008958102210F0DEFF002108A8FFF74AF97B -:103B5000152028708DF82060686A0D908DF824601B -:103B60003CE680E0387805287DD18DF82000686A31 -:103B70000D90B8680A90ADF8249009210170616930 -:103B8000097849084170616951F8012FC0F8022095 -:103B90008988C18020781C28A8D1A1E7E078C007D7 -:103BA00002D04FF0060C01E04FF0070C60780228BD -:103BB0000AD000BF4FF0000000EB040101F1090141 -:103BC00005D04FF0010004E04FF00100F4E74FF0A2 -:103BD00000000B78204413EA0C030B7010F8092F37 -:103BE00002EA0C02027004D14FF01B0C84F800C0F2 -:103BF000D2B394F801C0BCF1010F00D09BB990F88A -:103C000000C0E0465FEACC7C04D028F001060670D4 -:103C1000102606E05FEA887C05D528F002060670CB -:103C200013262E70032694F801C0BCF1020F00D0B9 -:103C300092B991F800C05FEACC7804D02CF001066C -:103C40000E70172106E05FEA8C7805D52CF002068D -:103C50000E701921217000260078D0BBCAB3C3BBF7 -:103C60001C20207035E012E002E03878062841D1AF -:103C70001A2019E4207801283CD00C283AD020469C -:103C8000FFF7F1F809208DF82000686A0D9031E007 -:103C90003878052805D006203870032618202870AB -:103CA00046E005218DF82010686A0D90B8680A90EA -:103CB0000220ADF8240001208DF830000A98017030 -:103CC000297D4170394608A8FFF78CF80646182070 -:103CD0002870012E0ED02BE001208DF82000686A9C -:103CE0000D9003208DF82400287D8DF8250085F89F -:103CF00014B012E0287D80B11D202070172028709C -:103D00008DF82090686A0D9002208DF824003946C5 -:103D100008A8FFF767F806460AE00CB1FE202070FD -:103D20009DF8200020B1002108A8FFF75BF810E4FF -:103D300013B03046BDE8F08F2DE9F04387B00C4654 -:103D40004E6900218DF804100120257803460227D2 -:103D50004FF007094FF0050C85B1012D53D0022D0E -:103D600039D1FE2030708DF80030606A0590032054 -:103D70008DF80400207E8DF8050063E0217901298B -:103D800025D002292DD0032928D0042923D1B17DA3 -:103D9000022920D131780D1F042D04D30A3D032DB3 -:103DA00001D31D2917D12189022914D38DF804705C -:103DB000237020899DF8041088421BD2082001E05E -:103DC000185102008DF80000606A059057E0707885 -:103DD0000128EBD0052007B0BDE8F0831D2030702E -:103DE000E4E771780229F5D131780C29F3D18DF807 -:103DF0000490DDE7083402F804CB94E80B0082E875 -:103E00000B000320E7E71578052DE4D18DF800C0FD -:103E1000656A0595956802958DF8101094F80480F0 -:103E2000B8F1010F13D0B8F1020F2DD0B8F1030F84 -:103E30001CD0B8F1040FCED1ADF804700E2028705C -:103E4000207E687000216846FEF7CCFF0CE0ADF8DC -:103E500004700B202870207E002100F01F00687085 -:103E60006846FEF7BFFF37700020B4E7ADF8047076 -:103E70008DF8103085F800C0207E687027701146DC -:103E80006846FEF7AFFFA6E7ADF804902B70207FE1 -:103E90006870607F00F00100A870A07F00F01F0034 -:103EA000E870E27F2A71C0071CD094F8200000F06F -:103EB0000700687194F8210000F00700A871002144 -:103EC0006846FEF78FFF2868F062A8883086A879D8 -:103ED00086F83200A069407870752879B0700D209E -:103EE0003070C1E7A9716971E9E700B587B00428AE -:103EF0000CD101208DF800008DF804000020059100 -:103F00008DF8050001466846FEF76CFF07B000BD5E -:103F100070B50C46054602F0E3F821462846BDE898 -:103F200070407823002202F031B808B10078704761 -:103F30000C20704770B50C0005784FF000010CD0D4 -:103F400021702146F1F76BF969482178405D88427C -:103F500001D1032070BD022070BDF1F760F900208F -:103F600070BD0279012A05D000220A704B78012B1E -:103F700002D003E0042070470A758A610279930039 -:103F8000521C0271C15003207047F0B587B00F4634 -:103F900005460124287905EB800050F8046C707800 -:103FA000411E02290AD252493A46083901EB8000E3 -:103FB000314650F8043C2846984704460CB1012C81 -:103FC00011D12879401E10F0FF00287101D0032480 -:103FD000E0E70A208DF80000706A05900021019644 -:103FE0006846FFF7A7FF032CD4D007B02046F0BDEA -:103FF00070B515460A46044629461046FFF7C5FF28 -:10400000064674B12078FE280BD1207C30B1002008 -:104010002870294604F10C00FFF7B7FF2046FEF791 -:1040200022FF304670BD704770B50E4604467C21B5 -:1040300010F009FE0225012E03D0022E04D0052027 -:1040400070BD0120607000E065702046FEF70BFF38 -:10405000A575002070BD28B1027C1AB10A4600F196 -:104060000C01C5E70120704710B5044686B0042056 -:1040700002F036F82078FE2806D000208DF80000E7 -:1040800069462046FFF7E7FF06B010BD7CB50E4637 -:1040900000218DF804104178012903D0022903D0B2 -:1040A000002405E0046900E044690CB1217C89B179 -:1040B0006D4601462846FFF754FF032809D13246D2 -:1040C00029462046FFF794FF9DF80410002900D0F0 -:1040D00004207CBD04F10C05EBE730B40C4601462E -:1040E000034A204630BC034B0C3AFEF758BE000092 -:1040F0005C5102001851020070B50D46040011D049 -:1041000085B12101284610F07CFD10225449284633 -:1041100010F0F8FC524801210838018044804560C5 -:10412000002070BD012070BD70B54D4E00240546C5 -:10413000083E10E07068AA7B00EB0410817B91427E -:1041400008D1C17BEA7B914204D10C22294610F0B0 -:10415000ADFC30B1641C30888442EBDB4FF0FF30A3 -:1041600070BD204670BD70B50D46060006D02DB15D -:10417000FFF7DAFF002803DB401C14E0102070BDBD -:10418000374C083C20886288411C914201D90420A8 -:1041900070BD6168102201EB0010314610F0B2FCD6 -:1041A0002088401C20802870002070BD2C480838D2 -:1041B000008870472A4908390888012802D0401E23 -:1041C00008800020704770B514460D0018D0BCB1AF -:1041D0000021A170022802D0102811D105E0288802 -:1041E00070B10121A170108008E02846FFF79CFF04 -:1041F000002805DB401CA070A8892080002070BD2D -:10420000012070BD70B5054614460E000BD000208D -:104210003070A878012808D005D91149A1F108010A -:104220000A8890420AD9012070BD24B128782070F4 -:104230002888000A5070022008700FE064B14968B5 -:10424000102201EB00112046103910F05BFC287899 -:1042500020732888000A607310203070002070BD21 -:104260008C0000202DE9F04190460C4607460025C1 -:10427000FE48072F00EB881607D2DFE807F0070794 -:10428000070704040400012500E0FFDF06F81470AE -:10429000002D13D0F548803000EB880191F82700FD -:1042A000202803D006EB4000447001E081F826404E -:1042B00006EB44022020507081F82740BDE8F081D1 -:1042C000F0B51F4614460E460546202A00D1FFDFF2 -:1042D000E649E648803100EB871C0CEB440001EB1B -:1042E0008702202E07D00CEB460140784B784870AF -:1042F000184620210AE092F82530407882F82500FF -:10430000F6E701460CEB410005704078A142F8D178 -:1043100092F82740202C03D00CEB4404637001E09A -:1043200082F826300CEB41042023637082F82710BA -:10433000F0BD30B50D46CE4B44190022181A72EB71 -:10434000020100D2FFDFCB48854200DDFFDFC94814 -:104350004042854200DAFFDFC548401C844207DA4C -:10436000002C01DB204630BDC148401C201830BD68 -:10437000BF48C043FAE710B504460168407ABE4A18 -:1043800052F82020114450B10220084420F07F4010 -:10439000EEF753FC94F90810BDE81040C9E704207B -:1043A000F3E72DE9F047B14E803696F82D50DFF84F -:1043B000BC9206EB850090F8264034E009EB8517A7 -:1043C0004FF0070817F81400012806D004282ED053 -:1043D00005282ED0062800D0FFDF01F000F90146A5 -:1043E00007EB4400427806EB850080F8262090F821 -:1043F0002720A24202D1202280F82720084601F07F -:10440000F9F82A4621460120FFF72CFF9B48414638 -:1044100000EB041002682046904796F82D5006EBFA -:10442000850090F82640202CC8D1BDE8F0870220F6 -:1044300000E003208046D0E710B58C4C202180346A -:1044400084F8251084F8261084F82710002084F8BA -:10445000280084F82D0084F82E10411EA16044F835 -:10446000100B2074607420736073A0738449E0772C -:1044700020750870487000217C4A103C02F8110039 -:10448000491CC9B22029F9D30120EEF7C6FA002051 -:10449000EEF7C3FA012084F82200EEF709FD79480F -:1044A000EEF71BFD764CA41E20707748EEF715FD45 -:1044B0006070BDE81040EEF73DBA10B5EEF75FFA58 -:1044C0006F4CA41E2078EEF721FD6078EEF71EFDFC -:1044D000BDE8104001F0BBB8202070472DE9F34F34 -:1044E000624C0025803404EB810A89B09AF82500DB -:1044F000202821D0691E02916049009501EB001728 -:10450000391D03AB07C983E80700A18BADF81C1068 -:10451000A07F8DF81E009DF81500A046C8B10226A8 -:10452000554951F820400399A219114421F07F41C7 -:10453000019184B102210FE00120EEF76EFA002014 -:10454000EEF76BFAEEF739FA01F081F884F82F50A4 -:10455000A7E00426E4E700218DF81810022801D016 -:10456000012820D1039801190998081A801C9DF888 -:104570001C1020F07F4001B10221353181420BD265 -:1045800003208DF815000398C4F13201401A20F081 -:104590007F40322403900CE098F8240018B901F011 -:1045A000F0F900284DD0322C03D214B101F043F8B9 -:1045B00001E001F04CF8324A107820B3934652786B -:1045C000039B121B00219DF81840994601281BD01F -:1045D000032819D05FF000008DF81E00002A04DDCA -:1045E000981A039001208DF818009DF81C0000B166 -:1045F00002210398254A20F07F40039003AB0998DD -:1046000001F031F810B110E00120E5E79DF81D0040 -:1046100018B99BF80000032812D08DF81C50CDF873 -:104620000C908DF818408DF81E509DF8180058B168 -:1046300003980123811900221846EEF741FA06E09B -:1046400000200BB0BDE8F08F0120EEF7E6F997F9F6 -:104650000C20012300200199EEF732FAF87BC00705 -:1046600001D0EEF716FB012112E000004C0A0020F9 -:10467000FF7F841E0020A1076C5102004C0800201F -:104680009E0000203B5E0100A3430100FFFF3F00AE -:1046900088F82F108AF8285020226946F74810F031 -:1046A00076FA0120CDE72DE9F05FDFF8D0830646EA -:1046B00008EB860090F82550202D1FD0A8F180002F -:1046C0002C4600EB8617A0F50079DFF8B4B305E0BF -:1046D000A24607EB4A004478202C0AD0EEF73BFABA -:1046E00009EB04135A4601211B1D00F0BCFF0028F2 -:1046F000EED0AC4202D0334652461EE0E14808B14B -:10470000AFF30080EEF727FA98F82F206AB1D8F8B7 -:104710000C20411C891A0902CA1701EB1261091207 -:10472000002902DD0020BDE8F09F3146FFF7D6FEEC -:1047300008B10120F7E733462A4620210420FFF77D -:10474000BFFDEFE72DE9F041CC4C2569EEF703FA08 -:10475000401B0002C11700EB1160001200D4FFDF04 -:1047600094F8220000B1FFDF012784F8227094F84A -:104770002E00202800D1FFDF94F82E60202084F83E -:104780002E00002584F82F5084F8205084F8215002 -:10479000BD4825600078022833D0032831D000209E -:1047A0002077A068401C05D04FF0FF30A0600120AA -:1047B000EEF733F90020EEF730F9EEF72CFAEEF7CA -:1047C00024FAEEF7FAF80FF00BFCB048056005602C -:1047D0004FF0E0214FF40040B846C1F88002EEF7F8 -:1047E000C6FA94F82D703846FFF75DFF0028FAD01E -:1047F000A248803800EB871010F81600022802D07B -:1048000006E00120CCE73A4631460620FFF72AFDB4 -:1048100084F8238004EB870090F82600202804D039 -:104820009948801E4078EEF777FB207F002803D060 -:10483000EEF7E1F92577657740E5904910B591F8F5 -:104840002D200024803901EB821100BF11F81430B3 -:104850002BB1641CE4B2202CF8D3202010BD8C496D -:1048600001EB041108600020C87321460120FFF706 -:10487000F9FC204610BD10B5012801D0032800D155 -:1048800071B37E4A92F82D307C4C0022803C04EBC0 -:10489000831300BF13F812400CB1082010BD521C46 -:1048A000D2B2202AF6D3784A48B1022807D0072985 -:1048B00016D2DFE801F01506080A0C0E10000021E0 -:1048C0000AE01B2108E03A2106E0582104E07721A4 -:1048D00002E0962100E0B52151701070002010BD5B -:1048E000072010BD684810B54078EEF7A6F980B2F1 -:1048F00010BD10B5202811D2604991F82D30A1F1DA -:10490000800202EB831414F810303BB191F82D3083 -:1049100002EB831212F81020012A01D0002010BDF2 -:1049200091F82D2001460020FFF79CFC012010BDCE -:1049300010B5EEF710F9BDE81040EEF77EB92DE99D -:10494000F0410E464D4F01782025803F0C4607EB85 -:10495000831303E0254603EB45046478944202D0B8 -:10496000202CF7D108E0202C06D0A14206D103EB81 -:1049700041014978017007E000209FE403EB440007 -:1049800003EB450140784870424F7EB127B10021CA -:1049900040F2DD30AFF300803078A04206D127B17D -:1049A00000214FF47870AFF30080357027B10021FB -:1049B00040F2E530AFF3008001207FE410B542689B -:1049C0000B689A1A1202D41702EB1462121216D450 -:1049D000497A91B1427A82B92F4A006852F821107F -:1049E000126819441044001D891C081A0002C117DE -:1049F00000EB11600012322801DB012010BD002005 -:104A000010BD2DE9F04781461C48214E00EB810086 -:104A1000984690F825402020107006F50070154645 -:104A200000EB81170BE000BF06EB04104946001DA8 -:104A3000FFF7C4FF28B107EB44002C704478202C0A -:104A4000F2D1297888F8001013E000BF06EB0415B6 -:104A5000291D4846FFF7B2FF68B988F80040A97BD6 -:104A600099F80A00814201D80020DEE407EB4400F7 -:104A70004478202CEAD10120D7E40000CC0A0020A1 -:104A8000FFFF3F00000000009E00002000F50040F6 -:104A90004C080020000000006C5102002DE9FC4190 -:104AA0000E4607460024FE4D09E000BF9DF80000B9 -:104AB00005EB00108168384600F0E9FD01246B46E3 -:104AC00001AA31463846FFF79CFF0028EED0204669 -:104AD000BDE8FC8170B50446F2480125A54300EB12 -:104AE000841100EB8510402210F00CF8EE4E26B138 -:104AF000002140F25F40AFF30080EA48803000EBD5 -:104B0000850100EB8400D0F82500C1F8250026B10E -:104B1000002140F26340AFF30080284670BD2DE9CC -:104B2000FC418446DF481546089C00EB85170E467D -:104B300017F81400012803D0022801D00020C7E78D -:104B40000B46DA4A0121604600F08DFDA8B101ABA9 -:104B50006A4629463046FFF754FF70B1D1489DF8A8 -:104B600004209DF80010803000EB85068A4208D0B2 -:104B70002B460520FFF7A4FB0BE02A462146042024 -:104B800014E0202903D007EB4100407801E096F8BB -:104B9000250007EB440148709DF80000202809D04B -:104BA00007EB400044702A4621460320FFF75AFBDA -:104BB00001208DE706F8254F0120F070F3E7B84992 -:104BC00001EB0010001DFFF7D6BB7CB51D46134658 -:104BD00004460E4600F1080221461846EEF73AF860 -:104BE00094F908000F2804DD1F3820722068401C4B -:104BF000206096B10220AE4951F826104618206870 -:104C00006946801B20F07F40206094F9080028440A -:104C1000C01C1F2803DA012009E00420EBE701AAE9 -:104C2000EEF718F89DF8040010B10098401C0090B1 -:104C30000099206831440844C01C20F07F40606027 -:104C40007CBD2DE9FE430C460646097860799072DA -:104C5000207998461546507241B19248803090F8BC -:104C60002E1020290AD00069401D0BE0D4E9022350 -:104C7000217903B02846BDE8F043A6E78D48417886 -:104C8000701D084420F07F47217900222846A36840 -:104C9000FFF79BFF3946284600F0F9FCD4E90232C1 -:104CA00021796846FFF791FF41462846019CFFF7AE -:104CB000F5FE2B4622460021304600F0D4FC0028A9 -:104CC00003D13146284600F0E2FCBDE8FE832DE921 -:104CD000FE4F814600F097FC30B1002799F80000A4 -:104CE00020B10020BDE8FE8F0127F7E76D4D6E4C27 -:104CF0004FF0000A803524B1002140F2D640AFF3D6 -:104D0000008095F82D8085F823A0002624B100218D -:104D100040F2DB40AFF300801FB94046FFF7DAFEF8 -:104D2000804624B1002140F2E340AFF30080EDF76C -:104D300012FF43466A464946FFF783FF24B100212C -:104D400040F2E940AFF3008095F82E0020280CD007 -:104D500029690098401A0002C21700EB1260001285 -:104D600003D5684600F093FC012624B1002140F2EF -:104D7000F340AFF3008095F823000028BBD124B1A5 -:104D8000002140F2F940AFF30080EDF7E4FE6B46FE -:104D9000464A002100F067FC0028A3D027B941460D -:104DA0006846FFF77BFE064326B16846FFF7E3FA45 -:104DB000C9F8080024B1002140F20C50AFF3008084 -:104DC00001208FE72DE9FF5F8A46814600F01BFC3A -:104DD000344C803410B39AF80000002710B1012839 -:104DE00000D0FFDF304D25B1002140F28250AFF3FB -:104DF00000800120A84600905FEA080604D0002148 -:104E000040F28A50AFF30080009800F0F3FB94F872 -:104E10002D50002084F8230067B119E094F82E008B -:104E20000127202800D1FFDF9AF800000028D9D000 -:104E3000FFDFD7E72846FFF74DFE054626B10021E4 -:104E400040F29450AFF3008094F823000028D3D1AF -:104E500026B1002140F29E50AFF30080EDF77BFEBB -:104E600083462B4601AA5146FFF7EBFE5FEA060890 -:104E700004D0002140F2A550AFF300803B462A4603 -:104E800001A95846CDF80090FFF749FE064604EB0D -:104E9000850090F828B0B8F1000F11D000210BE088 -:104EA0004C0800204C0A002000000000FFFF3F00DB -:104EB0006C5102009E00002040F2AC50AFF3008025 -:104EC00000F08DFB0090B8F1000F04D0002140F2FB -:104ED000B250AFF3008094F8230000288CD1B8F1D1 -:104EE000000F04D0002140F2BA50AFF30080FE4919 -:104EF0000DF1040C01EB09109CE80E0000F1040018 -:104F000080E80E004EB35FEA080604D0002140F2AC -:104F1000C750AFF300803BEA070012D094F82E0090 -:104F200020280ED126B1002140F2CC50AFF30080F2 -:104F30002846FFF7B8FB20B99AF80000D8B301283B -:104F400049D0B8F1000F04D0002140F2E950AFF38E -:104F50000080284600F03CFB01265FEA080504D0EB -:104F6000002140F2F250AFF30080009800F042FBC5 -:104F700025B1002140F2F650AFF300808EB194F8D5 -:104F80002D0004EB800090F82600202809D025B1E0 -:104F9000002140F2FD50AFF30080D4484078EDF797 -:104FA000BBFF25B1002140F20260AFF3008004B0E6 -:104FB0003046BDE8F09FFFE7B8F1000F04D00021B4 -:104FC00040F2D450AFF3008094F82D2049460420DD -:104FD000FFF748F9C0E7002E3FF40EAF002140F282 -:104FE000DF50AFF3008007E72DE9F84FC04D814651 -:104FF00095F82D004FF00008BE4C4FF0010B4746CE -:1050000024B100214FF4C260AFF30080584600F095 -:10501000F1FA85F8237024B1002140F21560AFF356 -:10502000008095F82D00FFF755FD064695F8230002 -:1050300028B1002CE4D0002140F21B604BE024B1E9 -:10504000002140F21F60AFF30080A948803800EBD8 -:10505000861111F81900032856D1334605EB830A4F -:105060004A469AF82500904201D1012000E0002034 -:1050700000900AF125000021FFF761FC014600982D -:10508000014203D001228AF82820AF77E1B324B18E -:10509000002140F22460AFF30080324649460120EF -:1050A000FFF7E0F89AF828A024B1002140F22F6021 -:1050B000AFF3008000F093FA834624B1002140F260 -:1050C0003460AFF3008095F8230038B1002C97D0FE -:1050D00000214FF4C760AFF3008091E7BAF1000FF1 -:1050E00007D095F82E00202803D13046FFF7DBFAD1 -:1050F000E0B124B1002140F24C60AFF300803046B3 -:1051000000F066FA4FF0010824B1002140F255602A -:10511000AFF30080584600F06DFA24B1002140F250 -:105120005960AFF300804046BDE8F88F002CF1D005 -:10513000002140F24760AFF30080E6E70020EDF782 -:1051400045BC0120EDF742BC6848007870472DE966 -:10515000F041674C94F82E0020281FD194F82D6060 -:1051600004EB860797F82550202D00D1FFDF60491A -:10517000803901EB861000EB4500407807F8250FD9 -:105180000120F87084F82300294684F82E50324616 -:1051900002202234FFF766F8002020700DE42DE98C -:1051A000F041514E524C012538B1012821D002283E -:1051B00079D003287DD0FFDFF0E700F03CFAFFF75D -:1051C000C6FF207E00B1FFDF84F821500020EDF7FC -:1051D00024FCA168481C04D0012300221846EDF7E6 -:1051E0006FFC14F82E0F217806EB01110A680121DB -:1051F00054E0FFF7ACFF0120EDF70FFC94F821001D -:1052000050B1A068401C07D014F82E0F217806EB8F -:1052100001110A68062141E0207EDFF8D0800027D6 -:1052200008F10208012803D002281ED0FFDFB5E7ED -:10523000A777EDF7E0FC98F80000032801D1657727 -:105240002577607D2C4951F8200094F8201051B941 -:1052500048B161680123091A00221846EDF730FCB5 -:10526000022020769AE7277698E784F8205000F00D -:10527000E2F9A07F50B198F8010061680123091A92 -:1052800000221846EDF71CFC257600E0277614F87E -:105290002E0F217806EB01110A680021BDE8F041CC -:1052A000104700E005E011480078BDE8F041EDF757 -:1052B00033BEFFF74CFF14F82E0F217806EB0111D7 -:1052C0000A680521EAE710B5094C94F82E00202859 -:1052D00000D1FFDF14F82E0F2178034A02EB0111F1 -:1052E0000A6804210AE000004C0800209C0000200D -:1052F000CC0A0020000000006C510200BDE8104004 -:1053000010477CB5E74C054694F82E00202800D1C4 -:10531000FFDFA068401C00D0FFDF94F82E00E249B8 -:1053200001AA01EB0010694690F90C002844EDF742 -:1053300091FC9DF904000F2801DD012000E0002010 -:10534000009908446168084420F07F41A16094F806 -:105350002100002807D002B00123BDE870400022E0 -:105360001846EDF7ADBB7CBD30B5D04A0B1A541CC6 -:10537000B3EB940F12D3451AB5EB940F0ED39342AF -:1053800003D9101A43185B1C08E0954204D9511A3E -:105390000844401C434201E0FFDF0023184630BDB3 -:1053A0000123002201460220EDF78ABB0220EDF71F -:1053B00034BBEDF7D0BB2DE9FC47BA4C054694F859 -:1053C0002E00202800D1FFDF642D58D3B84A0021D9 -:1053D000521B71EB010052D394F82E20A0462046B8 -:1053E000DFF8C49290F82D7009EB0214D8F8000091 -:1053F00001AA28446946EDF72DFC9DF90400002818 -:1054000002DD0098401C0090A06800996268461870 -:10541000B21A22F07F42B2F5800F30D208EB870239 -:10542000444692F82520202A0AD009EB021252683D -:10543000101A0002C21700EB1260001288421EDB35 -:10544000A068401C10D0EDF786FBA168081A000286 -:10545000C11700EB11600012022810DD0120EDF7EA -:10546000DCFA4FF0FF30A06020682844206026F06E -:105470007F402061012084F82300BDE8FC870020E4 -:10548000FBE72DE9F047874C074694F82D00A4F17F -:10549000800606EB801010F8170000B9FFDF94F8C3 -:1054A0002D50A046834C24B1002140F66D00AFF38F -:1054B000008040F6790940F6820A06EB851600BFA7 -:1054C00016F81700012818D0042810D005280ED08F -:1054D00006280CD01CB100214846AFF3008020BF45 -:1054E000002CEDD000215046AFF30080E8E72A46BB -:1054F00039460120FEF7B6FEF2E74FF0010A4FF001 -:105500000009454624B1002140F68900AFF3008030 -:10551000504600F06FF885F8239024B1002140F642 -:105520008E00AFF3008095F82D00FFF7D3FA064602 -:1055300095F8230028B1002CE4D0002140F6940017 -:105540001FE024B1002140F69800AFF3008005EB86 -:10555000860000F1270133463A462630FFF7EFF97F -:1055600024B1002140F69C00AFF3008000F037F832 -:10557000824695F8230038B1002CC3D0002140F6B4 -:10558000A200AFF30080BDE785F82D60012085F80B -:105590002300504600F02EF8002C04D0002140F6E5 -:1055A000AF00AFF30080BDE8F08730B504463D485A -:1055B0000D4690F82D003B49803901EB801010F822 -:1055C000140000B9FFDF384800EB0410C57330BD8C -:1055D000344981F82D00012081F82300704710B56F -:1055E000354808B1AFF30080EFF3108000F0010000 -:1055F00072B610BD10B5002804D1304808B1AFF321 -:10560000008062B610BD2E480068C005C00D10D0E5 -:10561000103840B2002804DB00F1E02090F80004CC -:1056200005E000F00F0000F1E02090F8140D4009B3 -:1056300070470820704710B51A4C94F824000028D1 -:1056400004D1F6F7F1F9012084F8240010BD10B55B -:10565000144C94F82400002804D0F6F70EFA002029 -:1056600084F8240010BD10B51C685B68241A181A51 -:1056700024F07F4420F07F40A14206D8B4F5800F8B -:1056800003D2904201D8012010BD002010BDD0E906 -:105690000032D21A21F07F43114421F07F41C0E94A -:1056A00000317047CC0A00204C080020FF7F841E88 -:1056B000FF1FA10700000000000000000000000024 -:1056C00004ED00E02DE9F041044680074FF00005AD -:1056D0004FF001060CD56B48056006600EF009FB23 -:1056E00020B16948016841F48061016024F002043E -:1056F000E0044FF0FF3705D564484660C0F80873F2 -:1057000024F48054600003D56148056024F080448F -:10571000E0050FD55F48C0F80052C0F808735E4935 -:105720000D60091D0D605C4A04210C321160066198 -:1057300024F48074A00409D558484660C0F800528B -:10574000C0F808735648056024F40054C4F3803050 -:10575000C4F3C031884200D0FFDF14F4404F14D0AE -:1057600050484660C0F808734F488660C0F8005241 -:10577000C0F808734D490D600A1D16608660C0F8B8 -:1057800008730D60166024F4404420050AD548488B -:1057900046608660C0F80873C0F8487345480560E5 -:1057A00024F400640EF0F6FB4348044200D0FFDF0F -:1057B000BDE8F081F0B50022202501234FEA020464 -:1057C00020FA02F1C9072DD051B2002910DB00BF29 -:1057D0004FEA51174FEA870701F01F0607F1E0274C -:1057E00003FA06F6C7F88061BFF34F8FBFF36F8FE0 -:1057F0000CDB00BF4FEA51174FEA870701F01F0685 -:1058000007F1E02703FA06F6C7F8806204DB01F12E -:10581000E02181F8004405E001F00F0101F1E021F1 -:1058200081F8144D02F10102AA42C9D3F0BD10B5AE -:10583000224C20600846F6F70EFA2068FFF742FF78 -:105840002068FFF7B7FF0DF0E9FF00F01AF90EF03E -:10585000A1FB0EF0ECFAEDF72BFBBDE810400EF0CB -:105860008DB810B5154C2068FFF72CFF2068FFF7A6 -:10587000A1FF0EF08FFBF6F7AFFA0020206010BDFD -:105880000A207047FC1F00403C17004000C0004049 -:1058900004E50140008000400485004000D0004045 -:1058A00004D5004000E0004000F0004000F500405A -:1058B00000B0004008B50040FEFF0FFDA000002032 -:1058C00070B526490A680AB30022154601244B68C0 -:1058D0005B1C4B60092B00D34D600E7904FA06F374 -:1058E0000E681E420FD0EFF3108212F0010272B662 -:1058F00000D001220C689C430C6002B962B6496872 -:105900000160002070BD521C092AE0D3052070BD43 -:105910004FF0E0214FF48000C1F800027047EFF330 -:10592000108111F0010F72B64FF0010202FA00F27D -:105930000A48036842EA0302026000D162B6E7E760 -:105940000648002101604160704701218140034801 -:105950000068084000D0012070470000A40000202B -:1059600001208107086070470121880741600021FC -:10597000C0F80011184801707047174901200870DD -:1059800070474FF08040D0F80001012803D0124842 -:105990000078002800D00120704710480068C00738 -:1059A00000D0012070470D480C300068C00700D0BF -:1059B00001207047094814300068704707491031CA -:1059C0000A68D20306D5096801F00301814201D1BA -:1059D0000120704700207047AC0000200804004000 -:1059E000002101700846704701460020087070478A -:1059F000EFF3108101F0010172B60278012A01D0A3 -:105A0000012200E000220123037001B962B60AB14D -:105A1000002070474FF400507047E9E7EFF3108122 -:105A200011F0010F72B64FF00002027000D162B6A1 -:105A300000207047F2E700002DE9F04115460E46C0 -:105A40000446002700F0E7F8A84215D300234120C0 -:105A50000FE000BF94F84220A25CF25494F8421088 -:105A6000491CB1FBF0F200FB12115B1C84F84210E0 -:105A7000DBB2AB42EED3012700F0D9F83846BDE8DF -:105A8000F081704910B5802081F800046E49002033 -:105A900081F8420081F84100433181F8420081F8E9 -:105AA0004100433181F8420081F841006748FFF727 -:105AB00097FF6648401CFFF793FFEDF767F9BDE8D5 -:105AC000104000F0B4B8402070475F4800F0A3B821 -:105AD0000A4601465C48AFE7402070475A484330C9 -:105AE00000F099B80A46014657484330A4E74021E0 -:105AF00001700020704710B504465348863000F00E -:105B00008AF82070002010BD0A4601464E4810B5A4 -:105B10008630FFF791FF08B1002010BD42F2070068 -:105B200010BD70B50C460546412900D9FFDF484835 -:105B30000068103840B200F050F8C6B20D2000F0F6 -:105B40004CF8C0B2864203D2FFDF01E0EDF76EF9F8 -:105B5000224629463C48FFF76FFF0028F6D070BD6B -:105B60002DE9F041394F002506463F1D57F82540E5 -:105B7000204600F041F810B36D1CEDB2032DF5D3B3 -:105B80003148433000F038F8002825D02E4800F086 -:105B900033F8002820D02C48863000F02DF800285B -:105BA0001AD0EDF719F92948FFF722FFB0F5005F89 -:105BB00000D0FFDFBDE8F0412448FFF72FBF94F885 -:105BC00041004121265414F8410F401CB0FBF1F272 -:105BD00001FB12002070D3E751E7002804DB00F13D -:105BE000E02090F8000405E000F00F0000F1E02054 -:105BF00090F8140D4009704710F8411F4122491CCC -:105C0000B1FBF2F302FB13114078814201D1012074 -:105C100070470020704710F8411F4078814201D33F -:105C2000081A02E0C0F141000844C0B2704710B544 -:105C30000648FFF7DDFE002803D1BDE81040EDF770 -:105C4000B6B810BD0DE000E0FC0A0020B000002056 -:105C500004ED00E070B5154D2878401CC4B268789A -:105C6000844202D0F6F75DF92C7070BD2DE9F04149 -:105C70000E4C4FF0E02600BFF6F748F920BF40BFBA -:105C800020BF677820786070D6F80052EBF7B8FB39 -:105C9000854305D1D6F8040210B92078B842EBD07C -:105CA000F6F72FF90020BDE8F0810000C0000020C9 -:105CB0002DE9F041012528034FF0E0210026C1F82D -:105CC0008001BFF34F8FBFF36F8F1F4CC4F800618B -:105CD0000C2000F02CF81D4801680268C94341F30C -:105CE000001142F010020260C4F804532560491C00 -:105CF00000E020BFD4F80021002AFAD019B90168C9 -:105D000021F010010160124807686560C4F808536B -:105D1000C4F800610C2000F00AF83846BDE8F081B4 -:105D200010B50446FFF7C4FF2060002010BD002816 -:105D300009DB00F01F02012191404009800000F1C1 -:105D4000E020C0F88012704700C0004010ED00E075 -:105D500008C500402DE9F047FF4C0646FF21A0682A -:105D600000EB061211702178FF2910D04FF00809BE -:105D700009EB011109EB06174158C05900F0F4F97D -:105D8000002807DDA168207801EB06110870267055 -:105D9000BDE8F08794F8008045460DE0A06809EB67 -:105DA00005114158C05900F0DFF9002806DCA06851 -:105DB000A84600EB08100578FF2DEFD1A06800EB96 -:105DC000061100EB08100D700670E1E7F0B5E24B2C -:105DD0000446002001259A680C269B780CE000BF41 -:105DE00005EB0017D75DA74204D106EB0017D75982 -:105DF0008F4204D0401CC0B28342F1D8FF20F0BDD6 -:105E000070B5FFF7D6FAD44C08252278A16805EBC7 -:105E10000212895800F0A8F9012808DD2178A0684D -:105E200005EB01114058BDE87040FFF7B9BAFFF724 -:105E30008BF9BDE87040EDF76FB82DE9F041C64C25 -:105E40002578FFF7B6FAFF2D6ED04FF00808A2684C -:105E500008EB0516915900F087F90228A06801DDCA -:105E600080595DE000EB051109782170022101EBFA -:105E70000511425C5AB1521E4254815901F580010C -:105E800021F07F4181512846FFF764FF34E004236D -:105E9000012203EB051302EB051250F803C0875CE7 -:105EA000BCF1000F10D0BCF5007F10D9CCF3080274 -:105EB00050F806C00CEB423C2CF07F4C40F806C07A -:105EC000C3589A1A520A09E0FF2181540AE0825904 -:105ED00002EB4C3222F07F4282510022425428468B -:105EE000FFF738FF0C21A06801EB05114158E0686D -:105EF00050F82720384690472078FF2814D0FFF725 -:105F000058FA2278A16808EB02124546895800F039 -:105F10002BF9012893DD2178A06805EB0111405889 -:105F2000BDE8F041FFF73CBABDE8F081F0B51D4691 -:105F300014460E460746FF2B00D3FFDFA00700D014 -:105F4000FFDF8548FF210022C0E90247C5700671C6 -:105F50000170427082701046012204E002EB0013CF -:105F6000401CE154C0B2A842F8D3F0BD70B57A4CE1 -:105F7000064665782079854200D3FFDFE06840F867 -:105F800025606078401C6070284670BD2DE9FF5F79 -:105F90001D468B460746FF24FFF70BFADFF8B89142 -:105FA000064699F80100B84200D8FFDF00214FF003 -:105FB00001084FF00C0A99F80220D9F808000EE009 -:105FC00008EB0113C35CFF2B0ED0BB4205D10AEBDB -:105FD000011350F803C0DC450CD0491CC9B28A42F9 -:105FE000EED8FF2C02D00DE00C46F6E799F803102E -:105FF0008A4203D1FF2004B0BDE8F09F1446521C32 -:1060000089F8022008EB04110AEB0412475440F807 -:1060100002B00421029B0022012B01EB04110CD0E1 -:1060200040F801204FF4007808234FF0020C45455A -:1060300013D9E905C90D02D002E04550F2E7414607 -:1060400006EB413203EB041322F07F42C250691A7F -:106050000CEB0412490A81540BE005B9012506EB4B -:10606000453103EB041321F07F41C1500CEB0411C7 -:10607000425499F800502046FFF76CFE99F8000052 -:10608000A84201D0FFF7BCFE3846B4E770B50C4615 -:106090000546FFF78EF9064621462846FFF796FE8D -:1060A0000446FF281AD02C4D082101EB0411A868E2 -:1060B0004158304600F058F800F58050C11700EB09 -:1060C000D14040130221AA6801EB0411515C09B1CF -:1060D00000EB4120002800DC012070BD002070BDD5 -:1060E0002DE9F04788468146FFF770FE0746FF28F6 -:1060F0001BD0194D2E78A8683146344605E0BC42C5 -:1061000006D0264600EB06121478FF2CF7D10CE0DF -:10611000FF2C0AD0A6420CD100EB011000782870A9 -:10612000FF2804D0FFF76CFE03E0002030E6FFF705 -:106130003DF941464846FFF7A9FF0123A9680246F9 -:1061400003EB0413FF20C854A878401EB84200D1C6 -:10615000A87001EB041001E0C80B002001EB061150 -:1061600000780870104613E6081A0002C11700EB09 -:1061700011600012704700005E48002101704170FC -:1061800010218170704770B5054616460C460220F6 -:10619000ECF79EFB5749012008705749F01E086034 -:1061A00056480560001F046070BD10B50220ECF772 -:1061B0008FFB50490120087051480021C0F80011A0 -:1061C000C0F80411C0F808114E494FF400000860EF -:1061D00010BD48480178D9B14B4A4FF40001116015 -:1061E0004749D1F800310022002B1CBFD1F80431FF -:1061F000002B02D0D1F8081119B142704FF01001F4 -:1062000004E04FF00101417040490968817002705B -:106210004FF00000ECF75CBB10B50220ECF758FB28 -:1062200034480122002102703548C0F80011C0F83E -:106230000411C0F80811026010BD2E480178002931 -:1062400004BF407870472E48D0F80011002904BFE1 -:1062500002207047D0F8001100291CBFD0F80411AB -:10626000002905D0D0F80801002804BF012070479C -:10627000002070471F4800B50278214B4078C821A4 -:10628000491EC9B282B1D3F800C1BCF1000F10D0D1 -:10629000D3F8000100281CBFD3F8040100280BD05C -:1062A000D3F8080150B107E0022802D0012805D038 -:1062B00002E00029E4D1FFDF002000BD012000BD85 -:1062C0000C480178002904BF807870470C48D0F84A -:1062D000001100291CBFD0F80411002902D0D0F809 -:1062E000080110B14FF01000704708480068C0B2B4 -:1062F00070470000C200002010F5004008F5004083 -:1063000000F0004004F5014008F5014000F40040B1 -:106310004C48002101704170704770B50646144624 -:106320000D460120ECF7D4FA47480660001D0460D2 -:10633000001D056070BD70B5424901250D7040EA31 -:106340000241424A41F080711160414C0026C4F87C -:106350000461404A4FF040711160002802BFC4F848 -:106360000052256070BD012818BFFFDFC4F800622D -:1063700025604FF000703849086070BD31480178E1 -:1063800079B1344A4FF0407111603149D1F804219C -:106390000021002A08BF417002D0304A12684270C2 -:1063A00001700020ECF794BA26480178002904BF58 -:1063B000407870472648D0F80401002808BF70478D -:1063C00026480068C0B27047002808BF704730B543 -:1063D0001C480078002808BFFFDF1D48D0F80411D2 -:1063E000002918BF30BD0224C0F80443DFF870C094 -:1063F000DCF80010C1F30015DCF8001041F01001CA -:10640000CCF80010D0F80411002904BF4FF400416B -:106410004FF0E02207D100BFC2F8801220BFD0F8B1 -:106420000431002BF8D02DB9DCF8001021F0100158 -:10643000CCF80010C0F8084330BD05490120886041 -:1064400070470000C500002008F5004004F500403A -:1064500000F0004008F5014004F5014000F4004060 -:1064600010ED00E010B5FA480024012144700470DA -:1064700044728472C17280F82540C462846318300B -:106480000EF0F0FCF349601E0860091D0860091D4C -:106490000C60091D0860091D0C60091D0860091DBC -:1064A0000860091D0860091D0860091D0860091DB4 -:1064B0000860091D0860091D0860091D086010BDFD -:1064C000E548016801F00F01032904BF012070476E -:1064D000006800F00F00042804BF0220704700B5D8 -:1064E000FFDF012000BD10B5D94C0168A1614168F2 -:1064F000E161007A84F82000207E48B1207FF7F720 -:106500006DFEA07E011C18BF0121207FF7F75AFE07 -:10651000607E002808BF10BD607FF7F75FFEE07E59 -:10652000011C18BF0121607FBDE81040F7F74ABE8B -:1065300030B500250446012904D002290CBF4FF0D4 -:106540008075FFDF45F4847040F48010C349086013 -:1065500044F44030091D40F00070086030BD30B593 -:1065600000250446012904D002290CBF4FF0807594 -:10657000FFDF45F4847040F48010B849086044F4AB -:106580004030091D40F000700860B548D0F80001A7 -:10659000002818BFFFDF30BD2DE9F04102254FF084 -:1065A000E02801240026C8F88051BFF34F8FBFF3C5 -:1065B0006F8FAC48066004600DF09BFBAA4F18B1CA -:1065C000386840F4806038600DF069FB38B1386895 -:1065D00020F0770040F0880040F0004038600DF077 -:1065E00076FB30B1A148016821F47F4141F4B051FC -:1065F0000160A0499E4808600DF069FB944948B1CC -:106600009D4881F8215005609D4A9C481060121FEA -:106610009C4810609C4A40F25B601060121F40F280 -:1066200003101060101F04608B4A0320106097480D -:10663000046091F82120002A14BF4FF4C022944A2C -:1066400042F44022934B1A60944B934A1A601B1FEA -:10665000934A1A60026822F440720260026842F4AF -:1066600080720260C8F880527D4A1020C2F804038C -:1066700081F83160CE62BDE8F0818A48016821F07E -:10668000010141F0807101607047714A0368C2F8EE -:1066900002308088D080117270476D4B10B51A7A25 -:1066A0008A4208D101460622981C0EF0FFF9002804 -:1066B00004BF012010BD002010BD654890F82500E2 -:1066C0007047634A517010707047F0B505468000FE -:1066D00000F1804000F580508B88C0F820360B78A0 -:1066E000D1F8011043EA0121C0F8001605F10800B5 -:1066F000012707FA00F66C4C002A04BF2068B0435B -:1067000004D0012A18BFFFDF2068304320602068D2 -:1067100007FA05F108432060F0BD0DF091BD4C482B -:1067200090F832007047614AC17811600068604992 -:10673000000208607047252808BF02210ED02628D5 -:1067400008BF1A210AD0272808BF502106D00A28DE -:1067500094BF0422062202EB4001C9B2554A1160DF -:106760005549086070472DE9F0413D4E80460320B1 -:106770000D46C6F80002364F97F82100002814BFD6 -:106780004FF4C02042484D49086028460DF086FD70 -:106790000124B8F1000F03D0B8F1010F16D018E0B2 -:1067A0000DF095FA78B1464A11685006022DD0F8DE -:1067B00020030CBFC0F30660C0F3062021F4FE41A5 -:1067C00041EA00201060BC72346002E00220B8721E -:1067D00074603C48C4643C4800682946BDE8F04108 -:1067E00000F09DBD2DE9F0410D461D4907460320EF -:1067F000C1F80002164C94F82100002814BF4FF491 -:10680000C02023482D4E306028460DF047FD17B1BB -:10681000012F5BD063E00DF05AFA78B128490A687D -:106820004806022DD0F820030CBFC0F30660C0F369 -:10683000062022F4FE4242EA002008600120A072F5 -:10684000A06B40F48010A0634FF4801046E000007D -:10685000D80B0020000E0040101500401415004019 -:1068600000100040FC1F00403C1700404017004053 -:106870002C000089781700406015004044800040DB -:106880009CF501402811004038150040501600408A -:106890000000040408F5014040800040A4F50140D8 -:1068A00010110040741700404016004024150040AD -:1068B0001C150040081500405415004004F5014027 -:1068C00088150040008000404C8500400220A072E6 -:1068D000A06B40F40010A0634FF400103060ECF7A0 -:1068E000D5F92946BDE8F04100F019BD2DE9F74F73 -:1068F000FB4C804682B003200E46C4F80002F94DDE -:1069000095F82100002814BF4FF4C020F648F74F37 -:10691000386004980DF0C2FCDFF8D4A34FF00109F1 -:10692000B8F1000F48D0B8F1010F18BFFFDF5CD0FD -:10693000F0480660F149F0480860A86B40F4002078 -:10694000A863D4F800824FF0100AC4F808A3002509 -:10695000C4F80052EA484FF4802BC0F800B0C4F8E5 -:106960000051C4F80C51C4F81051C4F80451C4F8D3 -:106970001451C4F818510DF0AAF9002818BFC4F832 -:106980002851E04800680090C4F80082C7F800B0C1 -:10699000C4F804A34FF400203860DB48C0F84C90E2 -:1069A000DA480068B04228BFFFDF3046049905B0DE -:1069B000BDE8F04F00F0B3BC0DF089F980B1D44AC6 -:1069C0000498116853060228D3F820030CBFC0F3C3 -:1069D0000660C0F3062021F4FE4141EA0020106069 -:1069E000CAF8004085F80A90A2E7CA48CAF8000031 -:1069F0000220A8729CE72DE9F041BA4C064600251A -:106A000094F8310017468846002808BFFFDF16B10A -:106A1000012E16D021E094F83100012808D094F816 -:106A20003020394640460DF046FCE16A451814E036 -:106A300094F830103A4640460DF07BFCE16A451868 -:106A40000BE094F8310094F8301001283A464046A3 -:106A500009D00DF096FCE16A45183A4629463046C1 -:106A6000BDE8F04142E70DF046FCE16A4518F4E765 -:106A70002DE9F84F9A4CD4F8000220F00B09D4F815 -:106A800004034FF0100AC0F30018C4F808A300264E -:106A9000C4F80062934D95F82100002814BF4FF40C -:106AA000C020914840F4402195480160A97A01270F -:106AB000012902D0022903D015E0297E11B912E084 -:106AC000697E81B1A97FEA7F07FA01F107FA02F234 -:106AD0001143016095F82000800000F1804000F52E -:106AE000C040C0F81065FF208DF80000C4F81061A8 -:106AF000276104E09DF80000401E8DF800009DF81D -:106B0000000018B1D4F810010028F3D09DF800005F -:106B1000002808BFFFDFC4F810610DF0D8F8002886 -:106B200018BFC4F828616E72AE72EF72C4F800929A -:106B3000B8F1000F18BFC4F804A3BDE8F88FFF2018 -:106B400008B58DF8000066480021C0F81011012139 -:106B5000016104E09DF80010491E8DF800109DF8B9 -:106B6000001019B1D0F810110029F3D09DF80000E1 -:106B7000002808BFFFDF08BD0068674920F07F409C -:106B8000086070474FF0E0200221C0F8801100F546 -:106B9000C070BFF34F8FBFF36F8FC0F80011704705 -:106BA0004FF0E0210220C1F8000170475B490870F6 -:106BB00070475B490860704770B50546ECF766F8AA -:106BC000484C2844E16A884298BFFFDF01202074C6 -:106BD000ECF75CF84119616194F8210040B1084478 -:106BE00060613F48D0F8001241F04001C0F8001247 -:106BF00045490020C1F844014A4960690860A06B1A -:106C00003A4940F48000A0634FF48000086070BDF2 -:106C100070B5344C05460220207443480E46016886 -:106C200001F00F01032908BF012207D0006800F01E -:106C30000F0004280EBF0222FFDF012294F831006A -:106C400094F8301001281AD028460DF0E1FB60615D -:106C500094F8210048B16169084460612048D0F887 -:106C6000001241F04001C0F8001227490020C1F88D -:106C700044016169E06A08442A49086070BD3346EE -:106C800028460DF093FBE2E71D494FF480000860B1 -:106C90001448816B21F480018163002101747047E5 -:106CA000C20002F1804202F5F832204BC2F81035E2 -:106CB000C2F81415012181400C4801600948826B1B -:106CC000114381637047104801214160C160002178 -:106CD000C0F84411134801600248C16270470000C7 -:106CE00000100040D80B00200000040404F501400F -:106CF000ACF501404885004048810040A8F50140BE -:106D000008F5014018110040008000404C8500400B -:106D100088150040041000403C150040C7000020CA -:106D20000415004044850040101500400411004047 -:106D300010B504460CF0CBFF00281CBFFC4880F8BF -:106D40002140FC480460FC48D0F8001241F04001AA -:106D5000C0F8001210BDF84810B5D0F8001221F0AC -:106D60004001C0F800120CF0B2FFF249002818BF31 -:106D70000220086010BDF048D0F8001221F0100188 -:106D8000C0F80012012181617047EB480021C0F872 -:106D90001C11D0F8001241F01001C0F80012704729 -:106DA000E54981B0D1F81C21012A1EBF002001B0A5 -:106DB0007047E24A126802F07F02524202700020DD -:106DC000C1F81C01DE4800680090012001B0704746 -:106DD000F0B517460C00064608BFFFDFD44D14F08F -:106DE000010F2F731CBF012CFFDF002E0CBF0120F1 -:106DF00002206872EC7201281CBF0228FFDFF0BD80 -:106E00002DE9F84FDFF83C9399F80000042828BFDB -:106E1000FFDFDFF834A3DAF84C11CC48C44C00266D -:106E20004FF00108D9B1A17A012902D0022903D07B -:106E300015E0217E11B912E0617E81B1A17FE27F70 -:106E400008FA01F108FA02F21143016094F82010E7 -:106E5000890001F1804101F5C041C1F81065BB48CE -:106E6000A16B0160A663217C002019B1DAF84411FE -:106E7000012900D00021A27AAF4F012A6DD0022A49 -:106E800073D000BFD7F8101101290CBF10210021C9 -:106E900041EA0005AE48016811F0FF0F03D0D7F8B2 -:106EA0001411012900D0002184F83210006810F07C -:106EB000FF0F03D0D7F81801012800D0002084F874 -:106EC0003300A448006884F83400FFF7B6F90128BD -:106ED00018BF002084F83500C7F80061C7F80C61BE -:106EE000C7F81061C7F80461C7F81461C7F81861E2 -:106EF0000CF0EDFE002818BFC7F82861964800681E -:106F000000909148C0F8446194480068DFF850A2AE -:106F10000090DAF80000A06294F8211000291CBF4C -:106F2000401AA0628F480068E0628F48016801F053 -:106F30000F01032908BF012007D0006800F00F00EF -:106F400004280EBF0220FFDF012084F83000A07A61 -:106F500084F83100022824D116E0D7F80C0101286A -:106F600014BF002008208DE7FFE7D7F80C010128A7 -:106F700014BF002002207D4A1268012A14BF042297 -:106F80000022104308437DE7607850B178490968D2 -:106F900009780840217831EA000008BF84F824808D -:106FA00001D084F8246015F0020F0AD0EBF76EFED2 -:106FB000A16A704A081A99F80010490852F821107D -:106FC000884715F0010F18BF4FF0000B12D000BF1B -:106FD000EBF75CFEE16A99F80020081A664951F85F -:106FE00022205946904700BF99F8000010F0010F89 -:106FF0002FD10CE015F0020F18BF4FF0010BE7D1B5 -:1070000015F0080F18BF4FF0020BE1D1ECE7DFF8E5 -:1070100060B1DBF80000007800F00F00072828BFFF -:1070200084F8256015D2DBF80000062200F1090182 -:10703000A01C0DF03BFD40B9207ADBF80010097868 -:10704000B0EBD11F08BF012001D04FF0000084F841 -:107050002500E17A4FF0000011F0020F1CBF15F07F -:10706000020F15F0040F19D111F0100F1CBF94F886 -:107070003320002A02D094F835207AB111F0080F9D -:107080001CBF94F82420002A08D111F0040F02D06C -:1070900094F8251011B115F0010F01D04FF0010047 -:1070A000617A19B1A0B1FFF7E3FC17E094F8210071 -:1070B000002814BF4FF4C021304924480160D7F89C -:1070C000000220F00300C7F8000284F80B8005E0FE -:1070D00001290DD0022918BFFFDF12D015F0010FD2 -:1070E0001AD0274899F8001050F82100804760E036 -:1070F000667284F80B8084F80A809621227B002037 -:1071000007E0667284F80B800220A072227B962131 -:107110000120FFF770FCE1E715F0020F34D01949A8 -:1071200099F8002028EA950051F82210884740E09D -:10713000D80B0020601500400010004048150040AA -:107140001C110040C70000200080004008F50140ED -:1071500040160040101400401811004044810040C7 -:107160004485004040850040101500400014004058 -:107170000415004084510200CC51020000000404B8 -:107180008C5102009C51020015F0080F06D0924865 -:1071900099F8001050F8210080470AE015F0100F10 -:1071A00008BFFFDF05D08D4899F8001050F8210086 -:1071B0008047A07A022818BFBDE8F88F207C0028FD -:1071C00008BFBDE8F88F8649C1F84461022815D090 -:1071D000012818BFFFDFE16A6069884298BFFFDFBE -:1071E000D4F81400CAF80000A06B7E4940F4800077 -:1071F000A0634FF480000860BDE8F88F6169E06A21 -:107200000844EFE738B50025774C002818BFC4F8CC -:107210000052C4F80051C4F80C51C4F81051C4F81D -:107220000451C4F81451C4F818510CF050FD002852 -:1072300018BFC4F828516D480068009038BD012877 -:1072400004BF28207047022804BF1820704700B5EB -:10725000FFDF282000BD012804BF41F6A47070475D -:10726000022804BF41F28830704700B5FFDF41F6C5 -:10727000A47000BD10B5022807D001280EBF42F649 -:10728000CE30FFDF41F66A0010BD0CF0FBFC30B9D8 -:107290000CF005FD002808BF41F6583001D041F23E -:1072A000643041F29A01084410BD012812BF02283F -:1072B0000020704700B5FFDF002000BD4A490820CC -:1072C000C1F800024A4890F82100002814BF4FF48A -:1072D000C020484848490860494948480860091D95 -:1072E00048480860091D48480860091D474808606B -:1072F0003C494FF440200860704745480168032925 -:107300001BBF006802280120002070474048016828 -:107310000B291BBF00680A28012000207047344950 -:107320008A7A012A49D0022A18BF70474B7E002B67 -:1073300008BF7047012A44D0CB7E4A7F13F1000C6E -:1073400018BF4FF0010C24231844324B1860244B13 -:107350000020C3F84C0110028CF0010240EA0250F8 -:1073600040F0031291F82000830003F1804303F5FD -:10737000C043C3F81025284A8B7F02EB8000DA0057 -:1073800002F1804202F5F832C2F81405DFF88CC031 -:10739000C2F810C5C97FCA0002F1804202F5F83276 -:1073A000C2F814051E48C2F81005012000FA03F2C5 -:1073B00088400C491043086070470B7E002BB9D100 -:1073C00070478B7E0A7F002B14BF4FF0010C4FF0EB -:1073D000000C1123B8E70000AC510200BC510200C0 -:1073E0000080004004F501400010004018110040EA -:1073F000D80B00200000040408F5014000110040F3 -:10740000A0F50140141000401C1100401010004075 -:10741000501500404C850040006000404C81004009 -:107420001011004010B53F4822210DF0EAFB3D4805 -:107430000024017821F010010170012105F0A6FE61 -:1074400039494FF6FF7081F8224088843749088017 -:10745000488010BD704734498A8C824218BF7047FB -:10746000002081F822004FF6FF70888470472D4974 -:10747000016070472D49088070472B498A8CA2F51E -:107480007F43FF3B03D0002101600846704791F81D -:1074900022202549012A1ABF0160012000207047DF -:1074A000214901F1220091F82220012A04BF002085 -:1074B0007047012202701D4800888884104670477A -:1074C0001A49488070471849184B8A8C5B889A4241 -:1074D00006D191F82220002A1EBF016001207047CA -:1074E000002070471048114A818C5288914209D17E -:1074F0004FF6FF71818410F8221F19B1002101702D -:1075000001207047002070470748084A818C528844 -:10751000914205D190F8220000281CBF002070473E -:10752000012070473A0C0020140C0020C8000020F5 -:107530007047574A012340B1012818BF70471370A4 -:107540000868906088889081704753700868C2F816 -:1075500002008888D08070474D4A10B1012807D0BA -:107560000EE0507860B1D2F802000860D08804E0E4 -:10757000107828B190680860908988800120704751 -:1075800000207047424910B1012803D006E0487836 -:1075900010B903E0087808B1012070470020704757 -:1075A00030B58DB00C4605460D2104A80DF04BFBFF -:1075B000E0788DF81F0020798DF81E0060798DF835 -:1075C0001D002868009068680190A8680290E8682B -:1075D000039068460CF0BCF920789DF82F10884283 -:1075E0000CD160789DF82E10884207D1A0789DF8C4 -:1075F0002D10884202BF01200DB030BD00200DB01B -:1076000030BD30B50C4605468DB04FF0030104F196 -:10761000030012B1FEF766FA01E0FEF782FA607924 -:107620000D2120F0C00040F04000607104A80DF072 -:107630000AFBE0788DF81F0020798DF81E00607934 -:107640008DF81D002868009068680190A868029075 -:10765000E868039068460CF07BF99DF82F002070D5 -:107660009DF82E0060709DF82D00A0700DB030BD0B -:1076700010B5002904464FF0060102D0FEF732FA99 -:1076800001E0FEF74EFA607920F0C000607110BD95 -:10769000CC000020FE48406870472DE9F0410F46BD -:1076A000064601461446012005F0CCF9054696F839 -:1076B0005500FFF7D0FD4AF2B12108444FF47A712A -:1076C000B0FBF1F0718840F271225143C0EB4100F0 -:1076D000001BA0F2653402F08BFF002818BF1E3C8F -:1076E000AF4234BF28463846A04203D2AF422CBF37 -:1076F0003C462C467462BDE8F0812DE9FF4F95B001 -:10770000044690F8550089461090DDE917100843AB -:107710001190E048002605780C2D28BFFFDFDE4FD2 -:1077200037F8158094F86C510C2D28BFFFDFDA482C -:1077300030F8150040441FFA80F894F865000D28D1 -:107740000CBF012000200B901798002804BF94F86C -:107750000C0103282BD10B9848B3B4F88E0148458F -:1077600025D1D4F81401C4F80001608840F2E24148 -:107770004843C4F80401B4F85A01B4F8E6100844C8 -:10778000C4F80801204602F03DFFB4F89201E082FF -:1077900094F890016075B4F894016080B4F8960193 -:1077A000A080B4F89801E080022084F80C01D4F89D -:1077B00064010F90D4F860010D90B4F8E670B4F84D -:1077C0005801D4F854110591179921B194F820115A -:1077D00051B100F0DDB804F1E001099174310A9172 -:1077E00004F5A075091D07E004F59A710991091DBA -:1077F0000A9104F59275091D0C91B4F85810A9EB83 -:107800000000A9EB01010FFA80FA0FFA81FBBAF12F -:10781000000F05DAD4F8500105900120DA461190E6 -:10782000002004909B480079E8B3F4F739FAD0B30C -:10783000B4F8F800022836D394F80C01022832D0AC -:1078400094F8230178BB94F86C81B8F10C0F28BF31 -:10785000FFDF914830F8180000F5C8601FFA80F883 -:1078600094F80C0101287DD0608840F2E241414348 -:107870000020B8F1000F05D0884808FB01F1B1FBEA -:10788000F0F0401C07EB0B01A1EB0A02D4F8141135 -:1078900080B2431A049902FB03110491C4F8140145 -:1078A000012084F8230194F80C01002874D00128E9 -:1078B00000F03B82022800F08E81032818BFFFDF12 -:1078C00000F068820498311A0598FCF732FD0A9995 -:1078D000012640F2712208600C98A0F80090002068 -:1078E00028702E710A980068A8606188D4F8140185 -:1078F0005143C0EB41006749A0F23530C861896946 -:10790000814287BF09990860099801600998616AF6 -:107910000068084400F2A510E86002F069FE10B1AA -:10792000E8681E30E8606E71B4F8D000A0EB090082 -:1079300000B20028C4BF032068710B980028189873 -:1079400000F07F82D8B100BFB4F8F81000290CBF56 -:107950000020B4F8FA00A4F8FA0094F8FC20401CC7 -:10796000504300E019E0884209D26879401E00289F -:1079700005DD6E71B4F8FA00401CA4F8FA001798FF -:10798000002800F0818294F82001002800F078821D -:1079900019B00220BDE8F08F65E094F86800032874 -:1079A00057D03B4894F8551090F8300005F05FF937 -:1079B000E18A40F27122514300EB41010020D4F8EA -:1079C0000421B8F1000F06D0344808FB02F2B2FBE4 -:1079D000F0F000F10100D4F80031D4F80821A0EB58 -:1079E000030C049BC4F8000102FB0C334FF00000B1 -:1079F00007D000BF294808FB01F1B1FBF0F000F10E -:107A00000100D4F81011C4F81001A0EB01011944D1 -:107A1000608840F2E24300FB03F34FF0000006D021 -:107A20001E4808FB03F3B3FBF0F000F1010007EB85 -:107A30000B03A3EB0A03A3EB0202D4F81431A2F167 -:107A40000102A0EB030302FB03110491C4F814012B -:107A500026E7E18A40F27122D4F8040101FB02F129 -:107A600000EB4101AAE70D98002808BFFFDF94F85A -:107A70005510074890F8300005F0F9F80790E18AB2 -:107A800040F271204143079800EB4101002007E0DC -:107A90005C0C0020DC000020DC51020040420F00A2 -:107AA000B8F1000F07D000BFFF4808FB01F1B1FBA0 -:107AB000F0F000F10100C4F81001618840F2E240EA -:107AC00001FB00F14FF0000006D0F74808FB01F180 -:107AD000B1FBF0F000F10100C4F8140186B22146B8 -:107AE0004FF00100D4F828A004F0ACFF074694F84A -:107AF0005500FFF7B0FB4AF2B12B58444FF47A78A7 -:107B0000B0FBF8F0618840F271225143C0EB4100B4 -:107B1000801BA0F2653602F06BFD002818BF1E3EE8 -:107B2000BA4534BF38465046B04203D2BA452CBF9E -:107B300056463E46666294F85500FFF7B6FB00F2E3 -:107B4000E140B0FBF8F10D980E1894F85500FFF7DE -:107B5000ACFB074694F85500FFF77DFB38444AF22A -:107B6000AB310844B0FBF8F1E28A40F271204243A5 -:107B70000798D4F8107100EB4200401AC01B304443 -:107B8000A0F12006617D40F2E24011FB00FA94F87A -:107B900055000090FFF75FFB5844B0FBF8F000EB96 -:107BA000470000EB0A070098FFF749FB384400F153 -:107BB0006201BE48816194F85500FFF776FB00F240 -:107BC000E140B0FBF8F10D980844301AB0F53D7F64 -:107BD00098BFFFDF76E6E18A40F27122D4F8040113 -:107BE000514300EB41010020B8F1000F07D000BF66 -:107BF000AD4808FB01F1B1FBF0F000F10100C4F861 -:107C00001001608840F2E24100FB01F14FF00000FA -:107C100006D0A54808FB01F1B1FBF0F000F101002E -:107C2000C4F8140186B221464FF00100D4F828A010 -:107C300004F008FF804694F85500FFF70CFB4AF269 -:107C4000B12B00EB0B014FF47A70B1FBF0F06188BF -:107C500040F271225143C0EB4100801BA0F2653617 -:107C600002F0C6FC002818BF1E3EC24534BF404685 -:107C70005046B04203D2C2452CBF564646466662C5 -:107C80000FBB1898F8B194F855603046FFF7E3FA47 -:107C900000EB0B014FF47A70B1FBF0F0D4F8101147 -:107CA000E28A084440F27123D4F804115A4301EBEC -:107CB00042010F1A3046FFF7C2FA0F99081A3844EA -:107CC000A0F120060AE0E28A40F27121D4F8040112 -:107CD000514300EB4100D4F81011461AD4F80821A2 -:107CE000D4F80011D4F8100101FB020A607D40F2C3 -:107CF000E24110FB01F894F855000746FFF7ABFA94 -:107D000000EB0B014FF47A70B1FBF0F000EB4A008E -:107D100080443846FFF793FA404400F1600163481D -:107D20008161012084F80C01CCE5618840F2712268 -:107D3000D4F814015143C0EB410101FB0AF6D4F819 -:107D4000081107EB0B02521AD4F800C1D4F8103115 -:107D5000521E0CFB013102FB001A607D40F2E24131 -:107D600010FB01F894F855000746FFF774FA4AF241 -:107D7000B12101444FF47A70B1FBF0F000EB4A00FE -:107D800080443846FFF75BFA404400F16001474801 -:107D9000816197E5618840F27122D4F81401514362 -:107DA000C0EB410000FB0AF694F8640024281CBFD5 -:107DB00094F8650024280BD1B4F88E01A9EB0000DB -:107DC00000B2002804DB94F89101002818BF10903D -:107DD0001198D8B1D7B90F9800281ABF0D9800286C -:107DE000FFDF94F85500FFF736FA4AF2B12101445B -:107DF0004FF47A70B1FBF0F0361A94F85500FFF7A3 -:107E00001EFA0F99081A3044A0F12006D4F8141174 -:107E100007EB0B0000FB01F71098FFF71CFA4AF282 -:107E2000B12101444FF47A70B1FBF0F000EB470749 -:107E30001098FFF704FA384400F160011B48816193 -:107E400040E500287FF480AD94F80C0100283FF451 -:107E500096AD618840F27122D4F814015143C0EB11 -:107E60004101284604F076FD0004000C3FF487AD84 -:107E70002299002918BF0880012019B0BDE8F08FB1 -:107E800094F85C01FDF7B0F894F85C012946FCF722 -:107E900099FF20B1179880F0010084F8210119B0F2 -:107EA0000020BDE8F08F000040420F00DC00002001 -:107EB00070B5FE4C607A00281CBF002070BD94F89D -:107EC000340038B1A16B606A884203D9F7F795FB9B -:107ED000002070BDA06AE8B1F6F72EFC0546F6F763 -:107EE000AFFA284442F210714618FCF721FD05460E -:107EF0002946E06AFDF738FAE562A16A82199142E3 -:107F000024BF081AA06205D20120A062F7F775FB12 -:107F1000002070BD012070BDF8B5E44C0246E44F6E -:107F200000256168606A052A48D2DFE802F0032F65 -:107F300034373E00A07A002660B101216846FDF783 -:107F4000D1FD9DF8000042F210710002B0FBF1F289 -:107F500001FB1206F6F7F0FB8119A069FCF7E9F9BD -:107F6000A061257403206075607A38B9207B04F124 -:107F70001001FCF727FF002808BFFFDF2584FCF76E -:107F8000E1FB7879BDE8F840EAF7C6BFBDE8F84004 -:107F9000002100F0A9BDC1F86001F8BDD1F8600171 -:107FA000BDE8F840012100F09FBD84F83450FCF793 -:107FB000C9FB7879BDE8F840EAF7AEBFFFDFF8BD4E -:107FC0002DE9F04FDFF8E492044683B099F8000001 -:107FD0008B4601270025B64E4FF00208032804BF48 -:107FE00099F80C00A0427CD1D9F80400706199F88E -:107FF0000000032818BFFFDF0324BBF1080F71D274 -:10800000DFE80BF0040F31312CD1D1C8C9F824506E -:10801000F6F762FF002818BFFFDFB47003B0BDE8B9 -:10802000F08FF6F70DFA0446D9F81C00A04228BFDD -:10803000C9F81C4005D2201AFDF7BDF9C9F81C404B -:1080400038B1F7F7C2FA002818BFFFDF03B0BDE868 -:10805000F08F03B00020BDE8F04F5DE703B0BDE84E -:10806000F04FFEF7CDBE89F8144089F8105099F80A -:1080700034004FF0010A42F2107B68B14FF47A717C -:10808000D9F81800FCF755F9C9F81800002109F1D2 -:10809000100004F05FFC1BE001216846FDF718FDAD -:1080A0009DF800000002B0FBFBF10BFB110AF6F794 -:1080B00043FB82445146D9F81800FCF73AF9C9F855 -:1080C0001800514609F1100004F044FC00F1010AC7 -:1080D000B9F82000411C0A293CBF5044A9F82000EF -:1080E00001E064E05FE0D9F8040038B1B9F820009D -:1080F000401C0A2828BF89F8158001D289F815404C -:1081000099F8090070BB99F8340040B1D9F83810DB -:10811000D9F82400884202D9F7F76FFA22E0D9F89B -:10812000280058B3F6F708FB0446F6F789F920440F -:1081300000EB0B08FCF7FCFB04462146D9F82C00A9 -:10814000FDF712F9C9F82C40D9F8281000EB080205 -:10815000914224BF081AC9F828000FD2C9F8287024 -:10816000F7F74BFA99F80C00FCF7C3FB89F80050BD -:10817000707903B0BDE8F04FEAF7CEBE99F80C0075 -:1081800009F11001FCF71EFE002808BFFFDF03B055 -:10819000BDE8F08F99F80C00FCF7ABFB89F80050B4 -:1081A00003B0BDE8F08FFFDF03B0BDE8F08F202CF7 -:1081B00028BFFFDFDFF8FC90072139F81400FAF739 -:1081C00075FA5FEA000A08BFFFDF202C28BFFFDF37 -:1081D00039F81400BAF80010884218BFFFDF54467F -:1081E000C6F814A04FF0200ABBF1080F80F04981B7 -:1081F000DFE80BF0049EA8A8A1F3F2F1C4F86051E7 -:10820000F580C4F8645194F8210138B9FCF790FB6B -:10821000D4F82C11FDF7A8F800281BDCB4F81E11C7 -:10822000B4F85800814206D1B4F8D410081AA4F862 -:10823000D600204605E0081AA4F8D600B4F81E11AE -:108240002046A4F85810D4F84811C4F82C11C0F8EE -:1082500050111DE0B4F81C11B4F85800081AA4F825 -:10826000D600B4F81C112046A4F85810D4F82C11EC -:10827000C4F84811C4F85011D4F83411C4F8E0100F -:10828000D4F83811C4F85411B4F83C11A4F85811BA -:1082900002F095F8FCF726FB814694F85500FEF7AE -:1082A000DAFF4AF2B121084406E000005C0C00202D -:1082B000DC000020980C00204FF47A71B0FBF1F044 -:1082C000D4F8141140F27122084461885143C0EB84 -:1082D0004100A0F1300AB9F1B70F98BF4FF0B709CC -:1082E0002146012004F0AEFB4844AAEB0000A0F2B6 -:1082F0001A39A2462146012004F0A4FBDAF8241022 -:108300009C30814288BF0D1AC6F80C904D4528BF9D -:108310004D46B560D4F84C01A0F2A5103061FCF7D1 -:10832000F0FF84F8207186F8028003B0BDE8F08F7A -:1083300002F059F901E0FEF763FD84F8207103B003 -:10834000BDE8F08FFCF7F4FAD4F85021014610464E -:10835000FDF70AF848B1628840F27123D4F814118D -:108360005A43C1EB4201B0FBF1F094F865100D29BE -:108370000FD0B4F85820B4F81E1113189942AEBFAC -:10838000481C401C1044A4F81E0194F8220178B93E -:1083900005E0B4F81E01401CA4F81E0108E0B4F882 -:1083A0001E01B4F8D410884204BF401CA4F81E017A -:1083B000B4F85A010DF1040B401CA4F85A01B4F8AA -:1083C0008000B4F87E10401AB4F85810401E0844DB -:1083D0001FFA80F812E046E03EE052E000231A4621 -:1083E0002046CDF800B0FFF788F9002804BF03B09D -:1083F000BDE8F08F012818BFFFDF25D0B4F81E11AB -:10840000A8EB010000B20028E8DA082084F8740024 -:1084100084F87370204601F095FD84F80C5194F8AF -:108420005C514FF6FF77202D00D3FFDF29F8157040 -:1084300094F85C01FCF75DFA84F85CA1707903B0F4 -:10844000BDE8F04FEAF768BDB4F81E01BDF80410AE -:108450000844A4F81E01D1E7FEF771FB03B0BDE8A4 -:10846000F04FFEF7CDBC94F80C01042818BFFFDFD5 -:1084700084F80C5194F85C514FF6FF77202DD5D33A -:10848000D3E7FFDF03B0BDE8F08F10B5F84C2078DC -:1084900050B101206072F7F7C8F82078032805D0A2 -:1084A000207A002808BF10BD0C2010BD207BFCF7EF -:1084B0009BFD207BFCF7E5FF207BFCF71AFA0028E8 -:1084C00008BFFFDF0020207010BD2DE9F04FE84FFE -:1084D00083B0387801244FF0000840B17C7201204D -:1084E000F7F7A3F83878032818BF387A0DD0DFF8EB -:1084F000849389F8034069460720FAF760F800285A -:1085000018BFFFDF4FF6FF7440E0387BFCF76CFDCF -:10851000387BFCF7B6FF387BFCF7EBF9002808BF87 -:10852000FFDF87F80080E2E7029800281CBF90F880 -:108530000C1100292AD00088A0421CBFDFF838A304 -:108540004FF0200B3AD00721FAF7B0F8040008BF2B -:10855000FFDF94F85C01FCF794FF84F80C8194F839 -:108560005C514FF6FF76202D28BFFFDF2AF81560FB -:1085700094F85C01FCF7BDF984F85CB1694607200A -:10858000FAF71DF8002818BFFFDF12E06846F9F778 -:10859000F4FF0028C8D011E0029800281CBF90F812 -:1085A0000C11002905D00088A0F57F41FF39CAD100 -:1085B00004E06846F9F7E1FF0028EDD089F8038070 -:1085C00087F8348087F80B8003B00020BDE8F08F77 -:1085D00070B50446A94890F80004A94D400995F8E3 -:1085E00000144909884218BFFFDF95F8140D4009AF -:1085F000A44991F800144909884218BFFFDF9D493A -:10860000002001224C7188700A7048700A71C8708D -:1086100097490870BDE8704057E796490870704761 -:108620002DE9F843924C064688462078002860D110 -:108630009548FCF702F9207320285AD0032766607A -:108640002770002565722572AEB1012106F1FC008C -:10865000FDF767FA0620F9F7D1FF81460720F9F701 -:10866000CDFF96F8FC104844B1FBF0F200FB12106D -:10867000401C86F8FC00FCF735F940F2F6518842C0 -:1086800038BF40F2F65000F59F7086B2F5F7D8FE7D -:10869000E061F6F751F84FF0010968B384F80A90E9 -:1086A000FCF746F9814601216846FDF711FA9DF86D -:1086B000000042F210710002B0FBF1F201FB120067 -:1086C00081194846FBF735FEA061C4E90A89277580 -:1086D00067752574207B04F11001FCF773FB0028FB -:1086E00008BFFFDF25840020F6F79FFF0020BDE8CC -:1086F000F8830C20BDE8F883FCF71AF93146FBF744 -:1087000018FEA061A57284F83490A8F28B50A5627F -:10871000A063DCE7574948707047564908717047B5 -:108720002DE9F041534C0646E088401CE080D4E936 -:1087300002516078D6F8607120B13A46284604F0BC -:108740003DF90546A068854205D02169281A0844EC -:108750002061FCF7D6FDA560AF4209D896F80C0160 -:10876000012805D0E078002804BF0120BDE8F08191 -:108770000020BDE8F08110B504460846FEF76BFD09 -:108780004AF2B12108444FF47A71B0FBF1F040F2A3 -:10879000E241614300F2353081428CBF081A00206B -:1087A00010BD70B5044682B0002084F8200194F812 -:1087B000DE00002807BF94F80C01032802B070BD4A -:1087C000FCF7B6F8D4F8502101461046FCF7CCFD72 -:1087D0000028DCBF02B070BD628840F27123D4F87B -:1087E00014115A43C1EB4201B0FBF1F0B4F8581038 -:1087F000401C0844A4F81C01B4F8D400B4F81C21AF -:10880000801A00B20028DCBF02B070BD012084F8DD -:108810002201B4F88000B4F87E2001AE801A401E18 -:10882000084485B212E00096B4F81C11002301221E -:108830002046FEF762FF002804BF02B070BD012889 -:108840000DD0022812BFFFDF02B070BDB4F81C01CA -:10885000281A00B20028BCBF02B070BDE3E7B4F82C -:108860001C01BDF804100844A4F81C01EEE7000048 -:108870005C0C0020DC000020980C002001E000E0EF -:108880000BE000E019E000E0C17F0100F8B5042230 -:10889000002506295BD2DFE801F007260319192A13 -:1088A000044680F80C2107E00446B748C078002849 -:1088B00018BF84F80C210AD0FBF744FFA4F85A51E2 -:1088C000B4F85800A4F81E0184F82251F8BD0095B0 -:1088D000B4F8D410012300222046FEF70EFF002832 -:1088E00018BFFFDFE8E7032180F80C11F8BD06464A -:1088F000876AB0F81401314685B2012004F0A2F86D -:10890000044696F85500FEF7A6FC4AF2B121084449 -:108910004FF47A71B0FBF1F0718840F2712251434B -:10892000C0EB4100401BA0F2653501F061FE00285C -:1089300018BF1E3DA74234BF20463846A84228BF74 -:108940002C4602D2A74228BF3C467462F8BDFFDF26 -:10895000F8BD2DE9F0478C4CA178022906BFE188CB -:108960000029BDE8F0876569C5F8640195F85500F0 -:10897000FEF765FCD5F86411081AA1680144A160EE -:10898000E1680844E060656995F82301002808BFA4 -:10899000BDE8F08795F80C01032818BFBDE8F08703 -:1089A00095F8558024780C2C28BFFFDF774E36F8D9 -:1089B000147095F86C410C2C28BFFFDF36F81400BA -:1089C000384495F86C7184B20C2F28BFFFDF36F85D -:1089D000170000F5C86087B24046FEF730FCD5F8B6 -:1089E00064110E1A4046FEF736FC4FF47A7900F215 -:1089F000E730B0FBF9F0361A4046FEF720FCD5F818 -:108A0000E010A1EB000A4046FEF725FC4AF2B12136 -:108A10000844B0FBF9F0AAEB0000A0F1600161434B -:108A2000B1FBF7F1292202EB50006031A0EB5102BB -:108A300000EB5100B24201D8B04201D8F3F7B1F9CE -:108A4000688840F2E241414300202CB104FB01F070 -:108A50004F49B0FBF1F0401CC5F81401002085F827 -:108A60002301BDE8F08770B50546474890F802C07D -:108A7000BCF1020F07BF406900F5B074454800F132 -:108A80002404002904BF256070BD4FF47A760129C3 -:108A90000DD002291CBFFFDF70BD1046FEF7EAFBB8 -:108AA00000F2E140B0FBF6F0281A206070BD1846D5 -:108AB000FEF7FBFB00F2E140B0FBF6F0281A206065 -:108AC00070BD3448007800281CBF0020704710B5E6 -:108AD0000720F9F785FD80F0010010BD2D480078D2 -:108AE000002818BF012070472DE9F843294C0025C4 -:108AF000814684F83450D4F8188084F83010E57238 -:108B00002570012727722946606803F08DFA616895 -:108B1000C1F85081267B81F85C61C1F86091C1F891 -:108B20005481B1F80080202E28BFFFDF1A4820F8BA -:108B30001680646884F80C510023A4F858511A4632 -:108B4000194620460095FEF7D8FD002818BFFFDF24 -:108B5000C4F80851C4F8005184F80C71A4F81E51EF -:108B6000A4F81C5184F82251B4F85800401EA4F80F -:108B70005800A4F85A51FBF7E5FD03484079BDE8D9 -:108B8000F843EAF7C9B90000DC000020DC5102001C -:108B900040420F005C0C0020980C00202DE9F041B1 -:108BA0000E46044604F00FFC0546204604F00FFC78 -:108BB000044603F082FFF94F010015D0386990F8A0 -:108BC00054208A4210D090F8A4311BB190F8A631FD -:108BD00023421FD02EB990F85130234201D18A424E -:108BE00018D890F8A401A8B1284603F066FF70B128 -:108BF000396991F85520824209D091F8A40118B141 -:108C000091F8A701284205D091F8A40110B10120E4 -:108C1000BDE8F0810020FBE730B5E04C85B0E069AD -:108C200000285ED0142168460CF00DF8206990F8F9 -:108C30005500FEF710FB4FF47A7100F5FA70B0FBA7 -:108C4000F1F5206990F85500FEF7F9FA2844ADF8DF -:108C5000060020690188ADF80010B0F85810ADF892 -:108C600004104188ADF8021090F8860130B1A06977 -:108C7000C11C039104F088FA8DF81000206990F867 -:108C800085018DF80800E169684688472069002160 -:108C900080F8861180F885110399002921D090F879 -:108CA000841100291DD190F86410272919D09DF84E -:108CB0001010039A002914D013780124FF2B12D02E -:108CC000072B0ED102290CD15178FF2909D100BF01 -:108CD00080F884410399C0F888119DF8101080F83D -:108CE000871105B030BD1B29F2D9FAE770B5AB4C3E -:108CF000206990F865001B2800D0FFDF206900255F -:108D000080F88D5090F8B80100B1FFDF206990F82D -:108D10008E1041B180F88E500188A0F8BC1180F807 -:108D2000BA510E2108E00188A0F8BC1180F8BA51B0 -:108D3000012180F8BE110D2180F8B8110088F9F7E3 -:108D4000E7FDF9F77FFA2079EAF7E6F8206980F87D -:108D5000655070BD70B5914CA07980072CD5A07876 -:108D6000002829D162692046D37801690D2B01F1D1 -:108D700058005FD00DDCA3F102034FF001050B2B6F -:108D800019D2DFE803F01A1844506127182C183A5A -:108D90006400152B6FD008DC112B4BD0122B5AD04E -:108DA000132B62D0142B06D166E0162B71D0172B33 -:108DB00070D0FF2B6FD0FFDF70BD91F867200123CB -:108DC000194603F05DFD0028F6D12169082081F8DD -:108DD000670070BD1079BDE8704001F0AEBC91F83D -:108DE0006600C00700D1FFDF01F066FC206910F8C3 -:108DF000661F21F00101017070BD91F86500102817 -:108E000000D0FFDF2069112180F88D5008E091F833 -:108E10006500142800D0FFDF2069152180F88D50EF -:108E200080F8651070BD91F86500152800D0FFDF4F -:108E3000172005E091F86500152800D0FFDF192004 -:108E4000216981F8650070BDBDE870404EE7BDE85E -:108E5000704001F046BC91F864200123002103F02A -:108E60000FFD00B9FFDF0E200FE011F8660F20F0B4 -:108E7000040008701DE00FE091F864200123002138 -:108E800003F0FEFC00B9FFDF1C20216981F86400BB -:108E900070BD12E01BE022E091F86600C0F3011003 -:108EA000012800D0FFDF206910F8661F21F01001B3 -:108EB0000170BDE8704001F0FFBB91F86420012310 -:108EC000002103F0DDFC00B9FFDF1F20DDE791F892 -:108ED0006500212801D000B1FFDF2220B0E7BDE806 -:108EE000704001F0F5BB2D48016991F86620130729 -:108EF00002D501218170704742F0080281F8662096 -:108F00008069C07881F8C90001F0CDBB10B5234C51 -:108F100021690A88A1F8FC2181F8FA0191F854002E -:108F200001F0B5FB216981F8FE0191F8550001F0CF -:108F3000AEFB216981F8FF01012081F8F8010020D2 -:108F400081F8A4012079BDE81040E9F7E5BF10B52C -:108F5000124C01230921206990F86420583003F055 -:108F60008FFC38B12169002001F87C0F087301F8EB -:108F7000180C10BD0120A07010BD70B5074D012365 -:108F800029462869896990F8642009790E2A01D157 -:108F9000122905D000241C2A05D006E0FC00002080 -:108FA000BDE87040D3E7142902D0202A08D009E098 -:108FB00080F8644080F88840BDE8704001F0E0BB74 -:108FC000162906D0262A01D1162902D0172909D040 -:108FD0000CE000F8644F80F82440407821280CD041 -:108FE0001A2017E090F86520222A07D0EA69002AA3 -:108FF00003D0FF2901D180F8863149E780F8654028 -:1090000001F05AFB286980F87D4090F8A4010028FF -:10901000F3D00020BDE8704078E72DE9F843FD4C1F -:10902000206990F86410202908D0002790F8651076 -:10903000222905D07FB300F1640503E00127F5E79D -:1090400000F1650510F8961F41F004010170A06958 -:1090500004F0C5F94FF00108002608B33946A069AD -:10906000FFF79CFDE0B16A46A169206903F034FD79 -:1090700090B3A06904F0B1F92169A1F88E01B1F8AB -:10908000581001F0EAFA40B32069282180F87410E2 -:1090900080F8738048E0FFE70220A070BDE8F88305 -:1090A000206990F8A40110B11E20FFF72FFFAFB187 -:1090B000A0692169C07881F8CA0008FA00F1C1F3FB -:1090C000006000B9FFDF20690A2180F8641090F881 -:1090D000880040B9FFDF06E009E01AE02E7001F0D9 -:1090E000EBFAFFF700FF206980F87D60D6E7206982 -:1090F00090F8A40118B10020FFF708FF2E70206936 -:1091000000F1650180F87D608D420DD180F86560C9 -:109110000AE020699DF8001080F890119DF8011078 -:1091200080F8911124202870206900F165018D429A -:1091300003D1BDE8F84301F0BFBA80F88860ADE71D -:1091400070B5B44C01230B21206990F8652058308C -:1091500003F096FB202650BB20690123002190F8E4 -:109160006520583003F08CFB0125F0B1206990F8A0 -:10917000640024281BD0A06904F00FF9C8B120694D -:1091800090F8961041F0040180F89610A1694A7990 -:1091900002F0070280F85120097901F0070180F8F8 -:1091A000501090F8A5311BBB06E0A57070E6A670C4 -:1091B0006EE6BDE8704096E690F8A431C3B900F1C0 -:1091C00054035E788E4205D11978914202D180F81D -:1091D0007D500DE000F5F9710D7002884A8090F81D -:1091E00050200A7190F8510048712079E9F794FEF7 -:1091F0002169212081F86500BDE8704001F053BA73 -:1092000070B58448006990F84E20448EC38E418F1B -:10921000B0F84050022A23D0A94200D32946018643 -:10922000C18FB0F84220914200D311468186018F50 -:10923000B0F84420914200D311464186818FB0F8A6 -:109240004620914200D31146C186418EA14200D9E9 -:109250000C464486C18E994200D90B46C38617E658 -:10926000028E914200D31146C68F828E964200D262 -:109270003246A94200D329460186B0F842108A42FC -:1092800000D30A468286002180F84E10CFE770B5E1 -:10929000604C206990F8660010F0300F04D0A07880 -:1092A00040F00100A070F3E5A06904F05BF848B35A -:1092B0002569A06904F052F828872569A06904F09F -:1092C00049F868872569A06904F04AF8A8872569E4 -:1092D000A06904F041F8E887A0794FF00102800707 -:1092E00003D56069C07814280FD0206990F8641005 -:1092F0001C290AD090F84E1001290DD090F89B112E -:1093000051B906E0BDE87040EDE5206980F84E20D7 -:1093100002E090F89A1131B1206910F8661F41F00F -:109320001001017016E090F8661041F0200180F8FD -:10933000661000F5D67103888B86038FCB86438F2A -:109340000B87838F4B87C08F888781F832202079E5 -:10935000E9F7E2FDBDE8704001F0A5B970B52D4C0C -:10936000206990F86610890707D590F864200123DA -:109370000821583003F084FAE8B1206990F8900091 -:10938000800712D4A06903F0C9FF216981F8910018 -:10939000A06930F8052FA1F892204088A1F8940028 -:1093A00011F8900F40F002000870206990F89010BA -:1093B000C90703D00FE00120A07069E590F86600AE -:1093C000800700D5FFDF206910F8661F41F0020119 -:1093D000017001F068F92069002590F864100629F1 -:1093E00006D180F8645080F888502079E9F794FD20 -:1093F000206990F88C110429DFD180F88C512079F4 -:10940000E9F78AFD206990F864100029D5D180F829 -:1094100088503DE5FC00002070B5FB4C0123002185 -:10942000206990F86520583003F02AFA012578B9B0 -:10943000206990F86520122A0AD0012305215830AE -:1094400003F01EFA10B10820A07021E5A5701FE5F9 -:10945000206990F88E0008B901F025F92169A0690A -:10946000E83103F03CFF2169A069C03103F042FFFD -:10947000206990F8C00100B1FFDF21690888A1F8D8 -:10948000C20101F5E271A06903F017FF2169A0692B -:1094900001F5E67103F019FF206980F8C05114212D -:1094A00080F865102079BDE87040E9F735BD70B5EA -:1094B000D54C01230021206990F86520583003F035 -:1094C000DFF90125A8B1A06903F0C3FE98B1A06936 -:1094D0002169B0F80D00A1F88E01B1F8581001F023 -:1094E000BCF858B12069282180F8741080F87350B6 -:1094F000CEE4A570CCE4BDE87040F4E4A069216935 -:10950000027981F89021B0F80520A1F8922103F0AA -:1095100093FE2169A1F89401A06903F090FE2169EE -:10952000A1F89601A06903F091FE2169A1F89801C4 -:109530000D2081F86500ABE47CB5B34CA079C00781 -:1095400038D0A06901230521C578206990F86520ED -:10955000583003F095F968B1AD1E0A2D06D2DFE848 -:1095600005F009090505090905050909A07840F074 -:109570000800A070A07800281CD1A06903F032FE7A -:1095800000286ED0A0690226C5781DB1012D01D03A -:10959000162D18D1206990F8640003F059F990B1A4 -:1095A000206990F864101F290DD0202903D0162DB2 -:1095B00016D0A6707CBD262180F86410162D02D02E -:1095C0002A20FFF7A3FC0C2D58D00CDC0C2D48D220 -:1095D000DFE805F033301D44A8A8489F57A8363966 -:1095E0002020A0707CBD0120152D6ED008DC112D2F -:1095F0006CD0122D6CD0132D64D0142D31D179E0A4 -:10960000162D7DD0182D7ED0FF2D2AD184E0206923 -:109610000123194690F86720583003F031F9F8B962 -:10962000A06903F043FE216981F87201072081F8E7 -:10963000670079E001F02BF976E0FFF738FF73E07F -:1096400001F005F970E0206990F86510112901D04A -:10965000A67069E0122180F8651065E0FFF7DCFE76 -:1096600062E05FE0206990F865001728F0D101F012 -:1096700023F821691B2081F8650055E0FFF76EFE95 -:1096800052E0206990F86600C00703D0A07840F04F -:10969000010022E06946A06903F047FE9DF8000042 -:1096A00000F02501206900F8961F9DF8011001F0D7 -:1096B0004101417000F0F7FF206910F8661F41F08A -:1096C000010113E0FFF743FC2EE016E01EE0FFE788 -:1096D000216991F86610490701D5A07024E000F0D7 -:1096E000E2FF206910F8661F41F0040101701BE0E1 -:1096F00006E008E0FFF7CBFD16E001F075F813E097 -:10970000FFF71EFD10E0FFF788FC0DE001F04BF8BD -:109710000AE0FFF732FC07E0E16919B1216981F83D -:10972000860101E0FFF7DFFB2069F0E92A12491CFE -:1097300042F10002C0E900127CBD70B5324CA07944 -:1097400000074AD5A078002847D1206990F8CB00BF -:10975000FE2800D1FFDF2069FE21002580F8CB1014 -:1097600090F86510192906D180F88D5000F0A4FFFB -:10977000206980F86550206990F864101F2902D094 -:10978000272921D119E090F8650003F061F878B13C -:1097900020692621012380F8641090F865200B21B0 -:1097A000583003F06DF878B92A20FFF7AFFB0BE0D3 -:1097B0002169202081F8640006E0012180F88511EC -:1097C00080F8645080F88850206990F86710082964 -:1097D00003D10221217080F8CB100EE40A490969F7 -:1097E00091F890210AB991F8542081F8542091F809 -:1097F00091210AB991F8552081F85520002802D00E -:109800000020FFF783BB7047FC00002070B5F84CC8 -:1098100006460D46206990F8CB00FE2800D0FFDFF9 -:109820002269002082F8CB6015B1A2F88A00BDE45D -:1098300022F8840F01201071B8E470B5EC4C0123BC -:109840000021206990F86420583003F019F80028AE -:1098500031D0206990F89A1111B190F89B1139B16B -:1098600090F8A41100295FD090F8A51121B35BE016 -:10987000B0F89C1120F8401FB0F85E114180B0F89C -:1098800060118180B0F86211C180002180F85A1106 -:1098900090F8260080060AD501F05DF8206910F8DE -:1098A000661F21F0200141F01001017002E000214B -:1098B00014203DE0012079E490F8652001230B217C -:1098C000583002F0DDFF78BB206990F8540000F0BA -:1098D000DEFE0546206990F8550000F0D8FE0646E9 -:1098E000206990F8A611284600F0C3FE50B1206907 -:1098F00090F8A711304600F0BCFE18B10020FFF729 -:1099000005FB11E020690123032190F86520583000 -:1099100002F0B6FF40B920690123022190F86520CA -:10992000583002F0ADFF08B100203FE400211620BE -:10993000FFF76CFFBEE710B548BBAD4C206990F84F -:109940006610CA0702D00121092018E08A070AD54B -:1099500001210C20FFF75AFF206910F8901F41F0F9 -:10996000010101702AE04A0702D50121132006E017 -:109970000A0707D510F8C91FC17001210720FFF79A -:1099800045FF1BE0C90602D590F89B1109B10020E4 -:1099900010BD90F89A1179B1B0F89C1120F8401FD1 -:1099A000B0F85E114180B0F860118180B0F86211AA -:1099B000C180002180F85A1100F0CDFF012010BDB8 -:1099C00070B58B4C206990F8CB10FE2978D1A17826 -:1099D000002975D190F8672001231946583002F00C -:1099E0004FFF00286CD1206990F8701149B1002117 -:1099F000A0F8821090F8711180F8CC10002102209C -:109A00005BE090F8652001230421583002F038FF14 -:109A10000546FFF790FF002852D1284600F0A6FF28 -:109A200000284DD120690123002190F8642058308E -:109A300002F026FF78B120690123042190F8652007 -:109A4000583002F01DFF30B9206990F87C0010B149 -:109A50000021122031E0206990F864200A2A0DD0FC -:109A6000002D2DD101230021583002F009FF78B1DB -:109A7000206990F88C1104290AD105E010F8CA1F5A -:109A800081700021072018E090F89000800718D01E -:109A9000FFF7D3FE002813D120690123002190F89D -:109AA0006420583002F0ECFE002809D0206990F8BC -:109AB0008401002804D00021FF20BDE87040A5E605 -:109AC00009E000210C20FFF7A1FE206910F8901F8B -:109AD00041F00101017070E43EB505466846FDF7AE -:109AE000CCFC00B9FFDF222100980BF08AF803219B -:109AF000009803F05FFB0098017821F010010170DD -:109B0000294603F07CFB3A4C0D2D40D00BDCA5F12F -:109B100002050B2D19D2DFE805F01F186019191F77 -:109B2000186D18192400152D78D008DC112D25D0BA -:109B3000122D0BD0132D09D0142D06D12BE0162D8C -:109B400042D0172D68D0FF2D67D0FFDFFDF7A8FCAE -:109B5000002800D1FFDF3EBD2169009891F8CC10AC -:109B600017E0E26800981178017191884171090A43 -:109B700081715188C171090A0172E7E703210098D8 -:109B800003F047FC0621009803F047FCDEE700984D -:109B900006210171DAE72069B0F84410009803F05B -:109BA000C9FB2069B0F84610009803F0C7FB206994 -:109BB000B0F84010009803F0C5FB2069B0F84210DF -:109BC000009803F0C3FBC1E70098216991F8A62132 -:109BD000027191F8A7114171B8E721690098F0313D -:109BE00003F08CFB21690098C43103F091FBADE7D1 -:109BF000FC000020F949D1E90001CDE9010120690B -:109C000001A990F8960000F025008DF80400009856 -:109C100003F0B9FB9AE701E019E023E02069B0F80E -:109C20004010009803F08EFB2069B0F842100098B5 -:109C300003F08CFB2069B0F84410009803F07AFB25 -:109C40002069B0F84610009803F078FB7EE72169A0 -:109C500091F8A40100280098B8D111F8542F02718E -:109C60004978B8E7206990F88721D0F888110098E2 -:109C700003F0D3FA6AE7DA4810B5006990F86A1081 -:109C800041B990F8652001230621583002F0F8FD13 -:109C9000002800D0012010BD70B5D14D286990F882 -:109CA000681039B1012905D0022906D0032904D052 -:109CB000FFDF1DE4B0F8D41037E090F867100829F2 -:109CC00036D0B0F87E10B0F8802000248B1C9A4269 -:109CD00006D3511A891E0C04240C01D0641EA4B2B0 -:109CE00090F87C1039B190F8642001230921583094 -:109CF00002F0C6FD40B3FFF7BEFF78B1296900202E -:109D0000B1F87820B1F876108B1C9A4203D3501A20 -:109D1000801E00D0401EA04200D284B20CB1641E4E -:109D2000A4B22869B0F8D4102144A0F8D01054E5AA -:109D3000B0F87E100329BDD330F8581F028D1144AE -:109D4000491CA0F8781048E50024EAE770B50C46F5 -:109D500005464FF4007120460AF075FF25803CE56A -:109D6000F8F7ADBD2DE9F0410D4607460721F8F79C -:109D70009DFC041E3CD094F8AC010026A8B16E7086 -:109D8000092028700BE0268484F8AC61D4F8AE0179 -:109D90006860D4F8B201A860B4F8B601A88194F85C -:109DA000AC010028EFD12E71BAE094F8B80190B35D -:109DB00094F8B8010D2813D00E2801D0FFDFAFE0D2 -:109DC0002088F8F7A5FD0746F8F751FA78B96E70C4 -:109DD0000E20287094F8BA0128712088E88014E0D9 -:109DE0002088F8F795FD0746F8F741FA10B10020F2 -:109DF000BDE8F0816E700D20287094F8BA012871CA -:109E00002088E88094F8BE01287284F8B86138464A -:109E1000F8F727FA84E0FFE794F8F00130B16E70AC -:109E20001020287084F8F061AF8079E094F8C001C8 -:109E300090B16E700A2028702088A880D4F8C411D0 -:109E4000C5F80610D4F8C811C5F80A10B4F8CC014A -:109E5000E88184F8C06163E094F8CE0140B16E708F -:109E60001A202870B4F8D001A88084F8CE6157E099 -:109E700094F8EA0170B16E701B20287005E000BFF5 -:109E800084F8EA61D4F8EC01686094F8EA010028EB -:109E9000F6D145E094F8D20190B16E70152028708B -:109EA00004F5EA7707E000BF84F8D2610A22394658 -:109EB000281D0AF06CFE94F8D2010028F4D12FE09E -:109EC00094F8DE0158B16E701D20287084F8DE61B0 -:109ED0000A2204F5F071281D0AF059FE20E094F8DA -:109EE000F20138B11E20287084F8F261D4F8F40130 -:109EF000686015E094F8F80100283FF479AF6E70BF -:109F00001620287008E000BF84F8F861D4F8FA0140 -:109F10006860B4F8FE01288194F8F8010028F3D1B4 -:109F2000012065E72E480021C161016208466AE40C -:109F300030B52B4D0C46E860FFF7F4FF00B1FFDFB2 -:109F40002C7130BD002180F8641080F8651080F815 -:109F5000681090F8DE1009B1022100E00321FEF73D -:109F600095BC2DE9F0411E4C0546206909B1002140 -:109F700004E0B0F8E610B0F8D6201144A0F8E610DE -:109F800090F8701139B990F86720012319465830BC -:109F900002F076FC30B1206930F8821FB0F854200E -:109FA00011440180206990F8883033B1B0F88410F2 -:109FB000B0F8D6201144A0F8841090F98C70002FCE -:109FC00006DDB0F88A10B0F8D6201144A0F88A1047 -:109FD00001213D2635B180F8746017E0F45102008C -:109FE000FC0000202278022A0AD0012A11D0A2788F -:109FF0002AB380F8731012F0140F0DD01E2113E055 -:10A0000090F8CC20062A3CD016223AE080F8731053 -:10A0100044E090F8722134E0110702D580F87460B2 -:10A020003CE0910603D5232180F8741036E09007B8 -:10A0300000D1FFDF21692A2081F874002AE02BB1CA -:10A04000B0F88420B0F886309A4210D2002F05DD97 -:10A05000B0F88A20B0F886309A4208D2B0F8823040 -:10A06000B0F88020934204D390F870310BB12222D3 -:10A0700007E090F868303BB1B0F87E30934209D3E6 -:10A08000082280F87420C1E7B0F87E20062A01D3A8 -:10A090003E22F6E7206990F8731019B12069BDE8F7 -:10A0A000F0414FE7BDE8F0410021FEF7EFBB2DE99D -:10A0B000F047F94C81460D4620690088F8F73AFCD4 -:10A0C000060000D1FFDFA0782843A070A0794FF0F0 -:10A0D00000058006206904D5A0F87E5080F8E45081 -:10A0E00003E030F87E1F491C0180FFF7C4FD012703 -:10A0F00040B3E088000506D5206990F86A1011B1D8 -:10A10000A0F876501EE02069B0F87610491C89B29C -:10A11000A0F87610B0F878208A4201D3531A00E0F4 -:10A120000023B4F808C00CF1050C634501D880F891 -:10A130007C70914206D3A0F8765080F8F0712079B7 -:10A14000E8F7EAFEA0794FF0020810F0600F0ED099 -:10A15000206990F8681011B1032908D102E080F855 -:10A16000687001E080F868800121FEF78FFB2069AC -:10A1700090F86810012904D1E188C90501D580F85B -:10A180006880B9F1000F70D1E188890502D5A0F887 -:10A19000F85003E030F8F81F491C018000F0A2FBE2 -:10A1A000FEF73AFDFFF70CFC00F054FF0028206991 -:10A1B00002D0A0F8D85003E030F8D81F491C018025 -:10A1C00000F04BFF38B1216991F8E400022807D86C -:10A1D000401C81F8E400206990F8E400022804D9CA -:10A1E000206920F8D85F458005732069012300218C -:10A1F00090F86520583002F043FB20B9206990F8B0 -:10A2000065000C2859D120690123002190F86420B1 -:10A21000583002F035FB48B320690123002190F843 -:10A220006720583002F02CFB00B3206990F86810CA -:10A23000022942D190F8E400C0B93046F7F7E7FDB3 -:10A24000A0B1216991F8CB00FE2836D1B1F8D20037 -:10A25000012832D981F8DD70B1F88000B1F87E2094 -:10A26000831E9A4203DB012004E032E025E0801ADD -:10A27000401E80B2B1F8D82023899A4201D301222E -:10A2800002E09A1A521C92B2904200D9104601285C -:10A2900001D181F8DD5091F8692192B1B1F8DA204D -:10A2A000B1F86A118A4201D3012102E0891A491CDE -:10A2B00089B2884205D9084603E02169012081F866 -:10A2C000DD502169B1F858201044A1F8D400FFF7FF -:10A2D000E3FCE088C0F340214846FFF742FE2069D6 -:10A2E00080F8DE50BDE8F047FDF7FCB86A49024649 -:10A2F0008878CB78184312D10846006942B1897931 -:10A30000090703D590F86700082808D001200EE659 -:10A31000B0F84810028E914201D8FEF701BA002031 -:10A3200005E670B55C4C05460E46E0882843E080A3 -:10A33000A80703D5E80700D0FFDF6661EA074FF002 -:10A3400000014FF001001AD0A661F278062A02D06F -:10A350000B2A14D10AE0226992F86530172B0ED12E -:10A360000023E2E9283302F8370C08E0226992F86A -:10A370006530112B03D182F8691082F88E00AA078C -:10A3800018D56269D278052A02D00B2A12D10AE0C8 -:10A39000216991F86520152A0CD10022E1E92A22D1 -:10A3A00001F83E0C06E0206990F86520102A01D1E2 -:10A3B00080F86A10280601D50820E07079E42DE9BC -:10A3C000F84F354C00254FF00108E580A570E57089 -:10A3D0004146257061F3070220619246814680F86C -:10A3E000DE800088F8F7A6FA070000D1FFDF2069B9 -:10A3F0000088FDF73FF820690088FDF761F82069C3 -:10A40000B0F8D21071B190F8CB10FE290FD190F8AE -:10A41000701189B190F8672001231946583002F075 -:10A420002FFA78B1206990F8CB00FE2804D020697B -:10A4300090F8CB00FFF750FB206990F8DF1089B14E -:10A44000258118E02069A0F8825090F8711180F8F9 -:10A45000CC1000210220FFF7D9F9206980F8DD50E7 -:10A460000220E7E790F8AC1119B9018C828891427B -:10A4700000D881882181B0F8D610491E8EB2B0F87C -:10A48000D8103144A0F8D81090F8DC1031B1A0F801 -:10A49000DA5080F8DC5006E0FC000020B0F8DA105A -:10A4A0003144A0F8DA1030F87E1F31440180FFF704 -:10A4B000E2FB20B1206930F8761F31440180206929 -:10A4C000B0F8D210012902D8491CA0F8D2100EB160 -:10A4D00080F8E45090F8DD10A1B1B0F8D8002189DF -:10A4E00088420FD23846F7F792FC58B1206990F8AD -:10A4F000691139B1B0F8DA10B0F86A01814201D3BC -:10A5000000F0AEFD206980F8DD5090F865100B2951 -:10A5100001D00C2916D1B0F85820B0F88E31D21ADB -:10A5200012B2002A0EDBD0F89011816090F89411DD -:10A530000173022101F078FD206980F8655080F8F0 -:10A54000988026E0242910D1B0F85810B0F88E2158 -:10A55000891A09B2002908DB90F8A401FFF73EF937 -:10A56000206900F8655F057613E090F864102429EF -:10A5700001D025290DD1B0F85810B0F88E01081A75 -:10A5800000B2002805DB0120FFF728F9206980F8D8 -:10A59000645020690146B0F8D620583001F066FFBB -:10A5A000206990F8691109B1A0F8DA50F7480090D5 -:10A5B000F74BF84A4946504600F0A4FC216A11B115 -:10A5C0006078FCF76DFB20690123052190F8652078 -:10A5D000583002F055F9002803D0BDE8F84F00F0DC -:10A5E0006ABABDE8F88F00F01BBDEB49C8619EE474 -:10A5F000E948C069002800D0012098E4E64A50707C -:10A60000116294E410B50446B0F894214388B0F880 -:10A610009611B0F898019A4205D1A388994202D1C7 -:10A62000E38898420FD02388A4F8B031A4F8B2216F -:10A63000A4F8B411A4F8B601012084F8AC01D648FE -:10A640000079E8F769FC0121204601F0EDFC0020CB -:10A6500004F8650F0320E07010BD401A00B247F601 -:10A66000FE71884201DC002801DC01205FE400204B -:10A670005DE4012802D0022805D102E0012904D0BE -:10A6800001E0022901D0002051E401204FE410B57F -:10A69000012804D0022804D0FFDF204610BD012489 -:10A6A000FBE70224F9E7BC480021006920F88A1F73 -:10A6B0008178491C81703AE4B74800B5016911F806 -:10A6C0008C0F401E40B20870002800DAFFDF00BD8A -:10A6D000B1482721006980F86410002180F88411B6 -:10A6E00025E410B5AC4C206990F88C11042916D1E2 -:10A6F00090F8642001230021583002F0C1F800B91D -:10A70000FFDF206990F89010890703D4062180F8B4 -:10A71000641004E0002180F8881080F88C11206912 -:10A7200090F86600800707D5FFF7C6FF206910F88C -:10A73000661F21F00201017010BD974910B509692B -:10A7400091F864200A2A09D191F8CA20824205D1E1 -:10A75000002081F8640081F8880010BD91F866201F -:10A76000130706D522F0080081F86600BDE8104006 -:10A77000A2E7FF2801D0FFDF10BDBDE81040A7E72A -:10A7800010B5854C05212069FEF780F8206990F806 -:10A790004E10012903D0BDE8104000F030B902216D -:10A7A00080F84E1010BD10B57B4C206910F8961F34 -:10A7B00041F004010170A06902F02DFE162806D1B7 -:10A7C000206990F86400202802D0262805D010BD0A -:10A7D000A06902F024FEFEF799FB2169002081F8B0 -:10A7E000640081F8880010BD70B56B4C01230A210C -:10A7F000206990F86420583002F042F810B3A06944 -:10A8000002F0B0FDA8B12569A06902F0A7FD288774 -:10A810002569A06902F09EFD68872569A06902F09C -:10A820009FFDA8872569A06902F096FDE887FEF7DD -:10A83000E7FC2169002081F8880081F86400BDE808 -:10A8400070409DE7A07840F00100A070B6E510B51B -:10A85000514C01230021206990F86520583002F006 -:10A860000FF830B1FFF71FFF2169102081F8650054 -:10A8700010BD20690123052190F86520583001F0B2 -:10A88000FFFF08B1082000E00120A07010BD70B5E6 -:10A89000414C01230021206990F86520583001F0D7 -:10A8A000EFFF012588B1A06902F0FDFC2169A1F844 -:10A8B0008E01B1F85810FFF7D0FE40B12069282171 -:10A8C00080F8741080F8735078E5A57076E52169FA -:10A8D000A06901F5C87102F0E1FC21690B2081F843 -:10A8E00065006BE510B5FEF728FFFEF725FE2A4C44 -:10A8F000A079400708D5A07830B9206990F86700A2 -:10A90000072801D101202070FEF724FAA079C006A3 -:10A9100009D5A07838B9206990F865100B2902D1C3 -:10A920000C2180F86510E07800070ED5206901231E -:10A93000052190F86520583001F0A2FF30B10820C1 -:10A94000A0702169002081F8B80110BDBDE8104059 -:10A95000002000F089BB10B5FEF752FCFFF710FF96 -:10A960000121BDE810401520FEF750BF10B50A4C7C -:10A97000216991F8652088B3102A0FD0142A10D0CD -:10A98000152A22D01B2A35D122E00000AFA00100F9 -:10A99000EDA2010023A30100FC00002001210B20F7 -:10A9A00018E0FBF79BF80C2816D320690821F0303B -:10A9B000FBF798F828B120690421C430FBF792F81E -:10A9C00000B9FFDF0121042004E000F038F803E0C3 -:10A9D00001210620FEF71AFF012010BDFFE7212A02 -:10A9E00008D191F87D0038B991F8A40110B191F81F -:10A9F000A50108B10020F0E701211720EAE7284B64 -:10AA000030B4186900F5D67201881185018E518520 -:10AA1000818E9185018FB0F84440A14200D3214638 -:10AA2000D185818FB0F84600814200D20846108659 -:10AA3000012082F82600187930BCE8F76DBA70B5AD -:10AA4000174C0025206990F8731101290AD00229BA -:10AA500025D190F88E10A9B1062180F8CC100121E3 -:10AA6000022017E090F8B811002918D100F1B003C6 -:10AA700000F1E801002200F5BA7001F07BFE01212F -:10AA8000052007E090F89600400701D5112000E06E -:10AA90000D200121FEF7BAFE206980F873518DE484 -:10AAA000FC00002030B5FF4C05462078002818BF78 -:10AAB000FFDF257230BDFB490120C87170472DE9C9 -:10AAC000F14FF94D2846297840680029044600F1E5 -:10AAD000580890F8551001F0AAFF94F85510668EAA -:10AAE00080B2082968D001F07EFF864238BF304628 -:10AAF000C7B2DFF8B093ED48C9F824006E68287833 -:10AB0000002896F86AA0B6F832B096F8551030468C -:10AB100001F08DFF96F8551080B2082950D001F051 -:10AB200062FF014658468B4528BF0846BAF1000F20 -:10AB30001CBF001D80B2C0B296F85510FBF70FFD88 -:10AB400098F81200002840D008F15801D74891E841 -:10AB50000E1000F5027686E80E10D8F86810C0F8DE -:10AB60002112D8F86C10C0F8251200F58170FCF79E -:10AB700020F8287800280CBF0120002080F0010177 -:10AB8000CB480176D8E91412C0E90412A0F583720B -:10AB9000D9F82410FBF7C1FB94F85500012808BF31 -:10ABA000002204D002281ABFFFDF0022012239460A -:10ABB0000120FBF7C0FB0EE0042101F014FF94E735 -:10ABC000042101F010FF0146ACE7D9F82400FBF79F -:10ABD000F0FFFBF7D3FB009818B900219620FCF793 -:10ABE00017F894F8542001210020FCF7F1F894F8AC -:10ABF0002C00012808BFFCF7C8F8022089F80000E3 -:10AC0000FCF77BFB002818BFFFDFBDE8F88F2DE9BC -:10AC1000F04FDFF894A283B050469AF800204068C5 -:10AC2000AAF11401009190F85D1000F15806044655 -:10AC30004FF00108AAF13407A9B3012900F0DB8025 -:10AC4000022900F0DD80032918BFFFDF00F0E68055 -:10AC5000386A0823017821F008010170B27903EA0B -:10AC6000C202114321F004010170F279042303EAC6 -:10AC70008202114321F01001017096F80590F86AE4 -:10AC8000F7F7D5F80546FCF73FFCB9F1020F00F0E5 -:10AC9000CC80B9F1010F00F0CB80B9F1030F00F0C7 -:10ACA000CA8000F0CBB8FFE7337B21464FF00209A2 -:10ACB0004FF0000B242B1CBF96F80DC0BCF1240FE5 -:10ACC00007D01F2B18BF202B19D0BCF1220F2ED07C -:10ACD00048E094F8545052B191F89001002846D0C1 -:10ACE000012D18BF012834D04FF002053FE091F844 -:10ACF000F20080B3012D18BF01282AD0F4E7BCF17F -:10AD0000220F14D072B391F8A60194F8545010F0A9 -:10AD1000010F18BF404604D0012D18BF012818D0DC -:10AD2000E2E710F0020F18BF4846F5D11FE0CAB1A4 -:10AD300090F8A61190F8510094F8545001EA0000E0 -:10AD400010F0010F18BF404606D0012D18BF012892 -:10AD5000CAD14FF001050AE010F0020F18BF4846B3 -:10AD6000F3D104E094F85450042D08BF0825294677 -:10AD7000204601F05AFE80B2294601F034FE218EB1 -:10AD8000814238BF0846ADF80800A4F84800009892 -:10AD9000FCF799FB68B1BA89396A42F48062BA81DA -:10ADA0007A694FF4806090470320707186F80380C1 -:10ADB0004EE701AA02A9F86AF6F774FF386210B1EB -:10ADC00096F8351029B10098FCF751FB86F80580FC -:10ADD0003EE79DF8041031B9A0F800B080F802B049 -:10ADE000012102F0E7F9BDF80810386A02F019FBFA -:10ADF00086F805902CE70098FCF739FB28E700BFA0 -:10AE0000B4F84800ADF8000001AA6946F86AF6F700 -:10AE100049FF3862002808BFFFDF19E70098FCF7F8 -:10AE200052FB002808BFFFDF12E7A84306D103E06A -:10AE3000A84303D100E00DB1012100E00021386AF0 -:10AE4000027842EA01110170717C00291CBF7179FE -:10AE500001293CD006F15801144891E80E1000F584 -:10AE6000027585E80E10B16EC0F82112F16EC0F8BF -:10AE7000251200F58170FBF79CFE9AF8000000286F -:10AE80000CBF012100210A480176D6E91212C0E95F -:10AE90000412A0F583713A6AFBF73FFA94F8540064 -:10AEA000012807E02001002054010020D80C0020D8 -:10AEB000E00E002008BF002204D002281ABFFFDFE6 -:10AEC00000220122FB210020FBF735FA03E0FBF70B -:10AED00070FEFBF753FA012194F855200846FBF762 -:10AEE00077FF87F80480386A018839828078B874DF -:10AEF00087F80080FCF70AFA002818BFFFDF03B0CC -:10AF0000BDE8F08F2DE9F0471D46174681460C46F7 -:10AF1000FE4EDDF82080307828B9002F1CBF002DB0 -:10AF2000B8F1000F00D1FFDFC6F81C80C6E90D9410 -:10AF3000C6E905754FF00000F071B071F070B070A7 -:10AF400030717071F24DB081F081287804F15807AA -:10AF50002088F7F7EFFCF0622088F7F7D9FC306320 -:10AF6000FBF71AFB94F95700FBF7D7FB04F112002B -:10AF7000FBF702FE04F10E00FBF7D5FB2878002852 -:10AF80000CBF03200120FBF711FEB87EFBF7D3FBBB -:10AF9000FBF706FE2878002804BFFF2094F85440F1 -:10AFA00019D0BF7C668E94F85510204601F03FFD05 -:10AFB00094F8551080B2082926D001F014FD0146FE -:10AFC00030468E4228BF0846002F1CBF001D80B2AD -:10AFD000C0B294F855402146FBF7C1FA2878C0B1B9 -:10AFE000686890F86801002818BFFBF746FB214607 -:10AFF0000120FBF7F7FB6868D0F8E000FBF7DCFD09 -:10B00000BDE8F04701205AE5042101F0ECFC0146BF -:10B01000D6E721460020FBF7E5FBBDE8F047F6E563 -:10B02000BB4800B501783438007819B1022818BF40 -:10B03000FFDF00BD012818BFFFDF00BDB34810B51A -:10B040000078022818BFFFDFBDE8104000F02FBADB -:10B0500000F02DBAAD4800797047AC48C078704711 -:10B06000AA490120487170472DE9F0470600A84819 -:10B07000A64D406800F15804686A90F8019018BF26 -:10B08000012E03D1296B09F0EDF96870687800276B -:10B090004FF00108A0B101283CD0022860D003285D -:10B0A0001CBFFFDFBDE8F087012E08BFBDE8F087B9 -:10B0B000286BF7F7B1F8287ABDE8F047E7F72CBF1F -:10B0C000012E14D0A86A002808BFFFDF6889C21CBF -:10B0D000D5E9091009F016FDA86A686201224946FF -:10B0E000286BF6F715FF022E08BFBDE8F087D4E9FC -:10B0F0001401401C41F10001C4E91401E079012868 -:10B1000001D1E77101E084F80780287ABDE8F047B3 -:10B11000E7F702BF012E14D0A86A002808BFFFDF9E -:10B120006889C21CD5E9091009F0ECFCA86A6862BC -:10B1300000224946286BF6F7EBFE022E08BFBDE859 -:10B14000F087D4E91410491C40F10000C4E9141040 -:10B15000E07901280CBFE77184F80780BDE8F0872B -:10B16000012E06D0286BF7F757F8022E08BFBDE86E -:10B17000F087D4E91410491C40F10000C4E9141010 -:10B18000E0790128BFD1BCE770B5614E3046A6F129 -:10B190003404406800F158052078012818BFFFDF0B -:10B1A000A87868B10021A970A289042042F00402A5 -:10B1B000A28162699047307800281CBF0120287165 -:10B1C000216A0322087832EA000009D1A28912F428 -:10B1D000806F05D042F00202A2816269022090478E -:10B1E0000121002000F082F918B1BDE8704000F0A4 -:10B1F0005EB9BDE87040002061E42DE9F14F444E96 -:10B2000000273046A6F134054068317800F1580A2D -:10B210002878B846022818BFFFDFE88940F400709C -:10B22000E88171683078FF2091F85410FBF797F9A6 -:10B23000009800289AF8120000F00181FBF7C4F88A -:10B24000FBF7B2F84FF0010990B99AF8120078B103 -:10B25000686A417861B100789AF80710C0F3C000BD -:10B26000884205D185F80290BDE8F84F00F01FB97B -:10B27000686A41786981002908BFAF6203D0286BF2 -:10B28000F6F700FEA862E88940F02000E881EF7040 -:10B290003078706800F15804834690F82C0001283B -:10B2A0001AD1FBF768FD2146584601F0A4FA98B17F -:10B2B0003078002870680CBF00F58A7000F5F570D2 -:10B2C000BBF800104180217A0171617A417180F8E8 -:10B2D0000090287AE7F720FE686A9AF8061000784E -:10B2E000C0F38000884240D03078706800F1580484 -:10B2F00090F85D00002834D0022850D06771307873 -:10B3000000281CBF207900280ED003E02001002077 -:10B31000540100202771AA89394642F01002AA81FF -:10B320006A694FF010009047E078A0B1E770FCF731 -:10B33000D9F8002808BFFFDF0820AA89002142F0C1 -:10B340000802AA816A699047D4E91202411C42F1BD -:10B350000000C4E91210A07901280CBFA77184F87D -:10B360000690E88940F48070E881696A9AF80730AD -:10B370000878C0F3C0029A424ED13278726800F069 -:10B38000030002F15804012818BF02282DD0032819 -:10B390001CBFA87940F0040012D0A8713CE0E86A14 -:10B3A000F6F7ACFC002808BFFFDFD4E91202411C0D -:10B3B00042F10000C4E91210287AE7F7ADFD9DE7DD -:10B3C00084F80290EA89484642F40062EA81AA8938 -:10B3D00042F00102AA816A699047E079012801D10F -:10B3E000E77119E084F8079016E0487818B3E98906 -:10B3F00041F40061E981A96A71B1FB2884BFA87991 -:10B4000040F01000C9D8E879002808BFC84603D02A -:10B4100080206A69002190470120009900F066F8B9 -:10B42000B0B1B8F1000F1CBF0020FFF71DFEBDE852 -:10B43000F84F00F03CB8E0790128D3D1D0E70028DC -:10B4400018BFFAF7FAFFE88940F04000E881E3E727 -:10B45000B8F1000F1CBF0120FFF706FEFFF7D7FB76 -:10B46000B8F1000F08BFBDE8F88F0220BDE8F84F23 -:10B47000FAE570B50D4606463C483C4900784C68F4 -:10B4800050B1FBF71DF8034694F854202946304686 -:10B49000BDE87040FDF7E7BAFBF712F8034694F8F1 -:10B4A000542029463046BDE8704005F074BF2F494E -:10B4B00010B54C68FBF707FCFBF7E6FBFBF7D8FA87 -:10B4C000FBF760FBFAF75AFF94F82C00012808BF3D -:10B4D000FBF751FC264C00216269E0899047E26944 -:10B4E000A179A07890470020207010BD70B5204C45 -:10B4F0000546002908BF012D06D1E07800F10100C2 -:10B50000C0B2E07001282ED8A169284688470028DB -:10B5100029D06179174839B1012D01BF417800293F -:10B52000017811F0100F1ED0A179E1B90F49097807 -:10B53000002908BF012D01D091B18DB90E490978BC -:10B5400011F0100F04BF007810F0100F0BD0A0897D -:10B5500048B9A06A20B9608910B111F0100F02D06B -:10B560004FF0000070BD4FF0010070BD540100208D -:10B5700020010020D80C002030010020FE498A78EC -:10B58000824286BF084490F843010020704710B5FE -:10B5900040F2D311F84809F034FBFF220821F748A4 -:10B5A00009F027FBF6480021417081704FF461716A -:10B5B000818010BD2DE9F0410E46054600F0ADFB3F -:10B5C000ED4C102816D004EBC00191F85A0110F090 -:10B5D000010F1CBF0120BDE8F081607808283CBF46 -:10B5E000012081F85A011CD26078401C6070012053 -:10B5F000BDE8F0816078082813D222780127501C1A -:10B60000207004EBC2083068C8F85401B088A8F86C -:10B610005801102A28BFFFDF88F8535188F85A7163 -:10B62000E2E70020BDE8F081D54988707047D44832 -:10B630008078704770B4D04800250178491E4BB21D -:10B64000002B46DB00EBC30191F85A1111F0010FFA -:10B650003BD04278D9B2521E427000EBC10282F850 -:10B660005A5190F802C00022BCF1000F0BD9841887 -:10B6700094F803618E4202D1102A26D103E0521CB5 -:10B68000D2B29445F3D80278521ED2B202708A42E6 -:10B690001BD000EBC20200EBC10CD2F85341CCF836 -:10B6A0005341D2F85721CCF85721847890F800C044 -:10B6B0000022002C09D9861896F8036166450CD142 -:10B6C000102A1CBF024482F80311591E4BB2002BF2 -:10B6D000B8DAAB48857070BC7047521CD2B2944245 -:10B6E000E9D8F2E7A4498A78824286BF01EB0010CC -:10B6F000C01C002070472DE9F04101261F469046EE -:10B700003446002500F009FB10282AD09A494FF052 -:10B71000000C01EBC00292F85A2102F001058A7870 -:10B72000002A1ED901EB0C0393F8033183421FD189 -:10B73000BCF1100F15D0002F18BF87F800C0887813 -:10B7400060450ED901EB0C1010F1030F09D001EB8D -:10B750000C0090F84B4190F83B0101280CBF0126EA -:10B76000002648EA050046EA04010840BDE8F081E9 -:10B770000CF1010303F0FF0C6245D3D8F1E72DE98A -:10B78000F05F1F4690460E46814600F0C6FA7A4D9D -:10B79000044610283CD00146AB780020002B0ED97F -:10B7A0002A1892F803218A4205D110281CBF1220C2 -:10B7B000BDE8F09F03E0401CC0B28342F0D8082BE4 -:10B7C0003FD2102C27D0AE781022701CA87005EB49 -:10B7D000061909F10300414600F0B2FF09F18300A8 -:10B7E0001022394600F0ACFF1021384600F085FFEA -:10B7F0003544102185F84301404600F07EFF85F86E -:10B800004B0185F80341002085F83B01BDE8F09F1E -:10B81000AB78082B15D22C78CA46601C287005EB33 -:10B82000C4093068C9F85401B0884FF0000BA9F87A -:10B830005801102C28BFFFDF89F853A189F85AB1AD -:10B84000C1E70720BDE8F09F70B44B488178491EDE -:10B850004BB2002BBCBF70BC704700BF817803F0B7 -:10B86000FF0C491ECAB2827050FA83F191F803119D -:10B8700094453ED000EB021500EB0C14D5F80360A4 -:10B88000C4F80360D5F80760C4F80760D5F80B600A -:10B89000C4F80B60D5F80F60C4F80F60D5F883606A -:10B8A000C4F88360D5F88760C4F88760D5F88B60EA -:10B8B000C4F88B60D5F88F50C4F88F50851800EB12 -:10B8C0000C0402EB420295F803610CEB4C0C00EB0C -:10B8D000420284F8036100EB4C0CD2F80B61CCF807 -:10B8E0000B61B2F80F21ACF80F2195F83B2184F8D9 -:10B8F0003B2100EBC10292F85A2112F0010F33D123 -:10B9000090F802C00022BCF1000F0BD9841894F803 -:10B9100003518D4202D1102A26D103E0521CD2B22B -:10B920009445F3D80278521ED2B202708A421BD0DC -:10B9300000EBC20200EBC10CD2F85341CCF85341EA -:10B94000D2F85721CCF85721847890F800C0002213 -:10B95000002C09D9851895F80351654512D1102A94 -:10B960001CBF024482F80311591E4BB2002BBFF6D4 -:10B9700075AF70BC70470000080F00206801002000 -:10B980005C010020521CD2B29442E3D8ECE7FE499D -:10B9900048707047FC484078704738B14AF2B81197 -:10B9A000884203D8F84988800120704700207047FA -:10B9B000F5488088704710B500F0AFF9102814D012 -:10B9C000F24A0146002092F802C0BCF1000F0CD9E7 -:10B9D000131893F803318B4203D1102818BF10BD00 -:10B9E00003E0401CC0B28445F2D8082010BDE749EE -:10B9F0008A78824286BF01EB0010833000207047B6 -:10BA0000E24B93F802C084459CBF00207047184465 -:10BA100090F8030103EBC00090F853310B70D0F89D -:10BA200054111160B0F85801908001207047D74A36 -:10BA3000114491F80321D4490A700268C1F8062024 -:10BA400080884881704770B516460C460546FBF75E -:10BA500082F9FAF7BEFBCC48407868B1CB488178D0 -:10BA600051B12A19002E0CBF8330C01CFAF78BFB92 -:10BA7000FAF7D2FB012070BD002070BD10B5FAF7B7 -:10BA8000F9FB002804BFFF2010BDBDE81040FAF705 -:10BA900017BCFAF7EFBBBD498A7882429CBF0020F1 -:10BAA0007047084490F8030101EBC00090F85A0178 -:10BAB00000F0010070472DE9F047B44E00273D46E5 -:10BAC000307800288CBFDFF8C882BDE8F0870024FA -:10BAD000B078002808D9311991F80321AA4204D07E -:10BAE000611CCCB2A042F6D81024A04286BF06EB5F -:10BAF0000410C01C002006EBC50999F85A1111F07A -:10BB0000010F16D050B1102C04D0311991F83B110F -:10BB1000012903D0102100F0F0FD50B108F80740D2 -:10BB200038467B1C99F8532109F5AA71DFB2FAF760 -:10BB3000CCFD681CC5B23078A842C8D8BDE8F087F3 -:10BB40002DE9F041914C00263546A07800288CBFA5 -:10BB50008F4FBDE8F0816119C0B291F80381A8420E -:10BB600086BF04EB0510C01C002091F83B11012991 -:10BB700003D0102100F0C1FD58B104EBC800BD5541 -:10BB800090F8532100F5AA713046731CDEB2FAF723 -:10BB90009CFD681CC5B2A078A842DCD8BDE8F08145 -:10BBA00001447A4810B500EB02100A4601218330A7 -:10BBB000FAF7E9FABDE81040FAF72EBB0A467249D7 -:10BBC00010B5497841B1714B997829B10244D81C1C -:10BBD000FAF7D9FA012010BD002010BD6B4A01EB25 -:10BBE000410102EB41010268C1F80B218088A1F8F4 -:10BBF0000F0170472DE9F041644D07460024A878F5 -:10BC0000002898BFBDE8F081C0B2A04217D905EB6B -:10BC1000041010F1830612D01021304600F06DFDA3 -:10BC200068B904EB440005EB400808F20B113A46F2 -:10BC30003046FBF7E6FCB8F80F01A8F80F01601CCE -:10BC4000C4B2A878A042DFD8BDE8F0810146102236 -:10BC5000504800F075BD4F4870474C498A78824281 -:10BC600003D90A1892F843210AB10020704700EB6B -:10BC7000400001EB400000F20B10704743498A7806 -:10BC8000824206D9084490F83B01002804BF0120F5 -:10BC90007047002070472DE9F0410E4607461546D3 -:10BCA0000621304600F029FD384C98B1A17871B1D9 -:10BCB00004F59D7011F0010F18BF00F8015FA17825 -:10BCC000490804D0457000F8025F491EFAD10120EE -:10BCD000BDE8F0813846314600F01FF8102819D031 -:10BCE000A3780021002B15D9621892F80321824213 -:10BCF0000BD1102918BF08290CD004EB010080F8E3 -:10BD00003B514FF00100BDE8F08101F10101C9B2E2 -:10BD10008B42E9D80020BDE8F0812DE9F0411B4DB0 -:10BD20000646002428780F46002811D905EBC400E8 -:10BD300090F85311B14206D10622394600F5AA7097 -:10BD400008F0B4FE38B1601CC4B22878A042EDD827 -:10BD50001020BDE8F0812046BDE8F0810B4910B409 -:10BD60004A7801EBC003521E4A70002283F85A2120 -:10BD700091F802C0BCF1000F16D98B1893F803415B -:10BD800084420DD1102A07E05C010020080F00203A -:10BD900068010020DB1000201CBF10BC704703E0CE -:10BDA000521CD2B29445E8D80A78521ED2B20A7018 -:10BDB00082421BD001EBC20201EBC003D2F853C197 -:10BDC000C3F853C1D2F85721C3F857218C7891F8A2 -:10BDD00000C00022002C09D98B1893F80331634569 -:10BDE00006D1102A1CBF114481F8030110BC704712 -:10BDF000521CD2B29442EFD810BC704770B449497B -:10BE00000D188A78521ED3B28B7095F80321984290 -:10BE10003DD001EB001401EB031C00EB4000DCF80B -:10BE20000360C4F80360DCF80760C4F80760DCF85E -:10BE30000B60C4F80B60DCF80F60C4F80F60DCF82E -:10BE40008360C4F88360DCF88760C4F88760DCF83E -:10BE50008B60C4F88B60DCF88FC0C4F88FC001EB36 -:10BE6000030C03EB43039CF8034101EB430385F808 -:10BE7000034101EB4000D3F80B41C0F80B41B3F88C -:10BE80000F31A0F80F319CF83B0185F83B0101EB25 -:10BE9000C20090F85A0110F0010F1CBF70BC70472F -:10BEA00000208C78002C0DD90B1893F803C1944511 -:10BEB00004D110281CBF70BC704703E0401CC0B206 -:10BEC0008442F1D80878401EC0B20870904204BF86 -:10BED00070BC704701EBC20301EBC000D0F853C146 -:10BEE000C3F853C1D0F85701C3F857018C780B78C9 -:10BEF0000020002C9CBF70BC704700BF01EB000C01 -:10BF00009CF803C19C4506D110281CBF084480F84A -:10BF1000032170BC7047401CC0B28442EED870BC94 -:10BF200070470000080F002010B50A7B02F01F02C6 -:10BF30000A73002202768B1893F808C00CF00103F4 -:10BF40004FEA5C0C0CF0010423444FEA5C0C0CF04B -:10BF5000010423444FEA5C0C0CF001041C444FEA3A -:10BF60005C0303F0010CA4445B0803F00104A44447 -:10BF70005B0803F00104A4440CEB530300EB020C38 -:10BF8000521C8CF8133090F818C0D2B26344037678 -:10BF9000052AD0D3D8B2252888BFFFDF10BD0023E3 -:10BFA000C383428401EBC202521EB2FBF1F1018451 -:10BFB000704770B46FF01F02010C02EA90251F2336 -:10BFC000A1F5AA4054381CBFA1F5AA40B0F1550014 -:10BFD00009D0A1F52850AA381EBFA1F52A40B0F11A -:10BFE000AA00012000D100204FF0000C62466446F8 -:10BFF0008CEA0106F6431643B6F1FF3F11D005F077 -:10C0000001064FEA5C0C4CEAC63C03F001065208FC -:10C010006D085B08641C42EAC632162CE8D370BC7B -:10C02000704770BC002070472DE9F04701270025BC -:10C03000044603290FD04FF4FA4300297CD001298C -:10C0400000F00681022918BFBDE8F0870146BDE86F -:10C05000F047583068E704F158067821304608F078 -:10C06000F2FDB571F57135737573F57335747571CE -:10C070007576B576212086F83E00412086F83F008F -:10C08000FE2086F8730084F82C50258484F85470C0 -:10C0900084F85570282084F856001B20208760877C -:10C0A0004FF4A470E087A0871B20208660864FF4A1 -:10C0B000A470E086A0861B20A4F84000A4F84400E9 -:10C0C0004FF4A470A4F84600A4F842001B20A4F882 -:10C0D0004A00A4F84C00A4F8480067734FF4486085 -:10C0E0006080A4F8D050A4F8D250A4F8D450A4F89A -:10C0F000D650A4F8D850A4F8DA5084F8DD5084F86B -:10C10000DF50A4F8E65084F8E450A4F8F850A4F8FE -:10C11000FA5084F89A5184F89B5184F8A45184F819 -:10C12000A55184F8695184F8705184F8735184F8EA -:10C130008C51BDE8F087FFE7A4F8E65084F8DE50A4 -:10C140006088FD490144B1FBF0F1A4F878104BF68A -:10C150008031A4F87A10E288A4F87E50B4F882C046 -:10C16000D2000CFB00FCB2FBF0F29CFBF0FC521C7A -:10C17000A4F882C092B202FB00FC04F15801A4F8BA -:10C180008020BCF5C84FC4BF521E0A85B3FBF0F235 -:10C19000521CCA8500F5802202F5EE32531EB3FB15 -:10C1A000F0F20A84CB8B03FB00F2B2FBF0F0C88301 -:10C1B000214604F15800FFF7B7FE07F088FDE8B309 -:10C1C000D4F80E006FF01F01020C01EA9026A2F5D0 -:10C1D000AA404FF01F0C54381CBFA2F5AA40B0F182 -:10C1E00055000AD0A2F52850AA381EBFA2F52A4051 -:10C1F000B0F1AA004FF0010901D14FF00009002071 -:10C200000146034680EA02086FEA080848EA010886 -:10C21000B8F1FF3F18D006F00108400840EAC830E6 -:10C2200049080CF0010876085B1C41EAC8314FEA66 -:10C230005C0C162BE6D3B9F1000F00E000E003D050 -:10C2400084F86851BDE8F08784F86871BDE8F0872C -:10C25000B4F89411B4F89821B4F802C004F158006D -:10C26000A4F87E50B4F88240D20004FB0CF4B2FB78 -:10C27000F1F294FBF1F4521C448592B202FB01F4FA -:10C280000285B4F5C84FC4BF521E0285B3FBF1F25C -:10C29000521CC285428C01EBC202521EB2FBF1F26B -:10C2A0000284C28B02FB0CF2B2FBF1F1C183BDE848 -:10C2B000F08770B50025044603290DD04FF4FA42EB -:10C2C000002963D001297DD0022918BF70BD014625 -:10C2D000BDE87040583027E604F158067821304612 -:10C2E00008F0B1FCB571F57135737573F57335747C -:10C2F00075717576B576212086F83E00412086F866 -:10C300003F00FE2086F8730084F82C50258401201D -:10C3100084F8540084F85500282184F856101B2115 -:10C32000218761874FF4A471E187A1871B212186B2 -:10C3300061864FF4A471E186A1861B21A4F8401008 -:10C34000A4F844104FF4A471A4F84610A4F84210C5 -:10C350001B21A4F84A10A4F84C10A4F848106073EC -:10C36000A4F8D850202084F8DA0084F8D050C4F81B -:10C37000D45084F8045184F8055184F80E5184F89F -:10C380000F5184F8F45084F8005170BD60886A49F8 -:10C390000144B1FBF0F1A4F878104BF68031A4F819 -:10C3A0007A10E388A4F87E50B4F882C0DB000CFB5E -:10C3B00000FC9CFBF0FCB3FBF0F304F15801A4F883 -:10C3C00082C000E022E05B1C9BB203FB00FCA4F8EF -:10C3D0008030BCF5C84FC4BF5B1E0B85B2FBF0F2CA -:10C3E000521CCA8500F5802202F5EE32531EB3FBC3 -:10C3F000F0F20A84CB8B03FB00F2B2FBF0F0C883AF -:10C40000214604F15800BDE870408DE5D4F8F830BD -:10C41000B4F802C004F158005989DB89A4F87E50B1 -:10C42000B4F88240DB0004FB0CF4B3FBF1F394FBA3 -:10C43000F1F45B1C44859BB203FB01F40385B4F566 -:10C44000C84FC4BF5B1E0385B2FBF1F2521CC2850C -:10C45000428C01EBC202521EB2FBF1F20284C28B8B -:10C4600002FB0CF2B2FBF1F1C18370BD2DE9F003C8 -:10C47000047E0CB1252C03D9BDE8F00312207047CF -:10C48000002A02BF0020BDE8F003704791F80DC0FC -:10C490001F260123294D4FF00008BCF1000F77D073 -:10C4A000BCF1010F1EBF1F20BDE8F0037047B0F8BC -:10C4B00000C00A7C8F7B91F80F907A404F7C87EA0E -:10C4C000090742EA072282EA0C0C00270CF0FF0958 -:10C4D0004FEA1C2C99FAA9F99CFAACFC4FEA1969AD -:10C4E0004FEA1C6C49EA0C2C0CEB0C1C7F1C94448E -:10C4F000FFB21FFA8CFC032FE8D38CEA020C0F4F1B -:10C500000022ECFB057212096FF0240502FB05C244 -:10C51000D2B201EBD207427602F007053F7A03FA66 -:10C5200005F52F4218BF82767ED104FB0CF2120C67 -:10C53000521CD2B2002403E0FFDB050053E4B36ECB -:10C5400000EB040C9CF813C094453CBFA2EB0C021A -:10C55000D2B212D30D194FF0000C2D7A03FA0CF75A -:10C560003D421CBF521ED2B2002A6AD00CF1010C0F -:10C570000CF0FF0CBCF1080FF0D304F1010C0CF02F -:10C58000FF04052CD7D33046BDE8F0037047FFE722 -:10C5900090F819C00C7E474604FB02C2FE4C4FF0D7 -:10C5A000000CE2FB054C4FEA1C1C6FF024040CFB52 -:10C5B0000422D2B201EBD204427602F0070C247AB4 -:10C5C00003FA0CFC14EA0C0F1FBF82764046BDE84C -:10C5D000F003704790F818C0B2FBFCF40CFB142277 -:10C5E000521CD2B25FF0000400EB040C9CF813C0A4 -:10C5F00094453CBFA2EB0C02D2B212D30D194FF0FE -:10C60000000C2D7A03FA0CF815EA080F1CBF521E15 -:10C61000D2B27AB10CF1010C0CF0FF0CBCF1080F96 -:10C62000F0D304F1010C00E00EE00CF0FF04052C47 -:10C63000DAD3A8E70CEBC40181763846BDE8F003F5 -:10C6400070470CEBC40181764046BDE8F0037047AB -:10C65000D24A016812681140D14A12681143016040 -:10C66000704730B4CF49CD4B00244FF0010C0A780D -:10C67000521CD2B20A70202A08BF0C700D781A68BA -:10C680000CFA05F52A42F2D0097802680CFA01F199 -:10C690005140016030BC7047017931F01F0113BF78 -:10C6A000002000221146704710B4435C491C03F07F -:10C6B000010C5B0803F00104A4445B0803F00104CF -:10C6C000A4445B0803F00104A4445B0803F00104E4 -:10C6D000A4445B0803F001045B08A44403F00104D4 -:10C6E000A4440CEB53031A44D2B20529DDDB012A22 -:10C6F0008CBF0120002010BC704730B40022A1F193 -:10C70000010CBCF1000F11DD431E11F0010F08BF39 -:10C7100013F8012F5C785FEA6C0C07D013F8025F06 -:10C7200022435C782A43BCF1010CF7D1491E5CBF5F -:10C73000405C0243002A0CBF0120002030BC70473F -:10C74000002A08BF70471144401E12F0010F03D0A9 -:10C7500011F8013D00F8013F520808BF704700BFC3 -:10C7600011F8013C437011F8023D00F8023F521EDF -:10C77000F6D1704770B58CB000F110041D46164616 -:10C780000DF1FF3C5FF0080014F8012C8CF801203B -:10C7900014F8022D0CF8022F401EF5D101F1100CF7 -:10C7A0006C460DF10F0108201CF8012C4A701CF892 -:10C7B000022D01F8022F401EF6D1204607F0C8F8DE -:10C7C0007EB16A1E04F130005FF0080110F8013CF0 -:10C7D000537010F8023D02F8023F491EF6D10CB02A -:10C7E00070BD08982860099868600A98A8600B983E -:10C7F000E8600CB070BD38B505460C466846FAF7DF -:10C80000CFFA002808BF38BD9DF900202272A07E13 -:10C81000607294F90A100020511A48BF494295F8F5 -:10C820002D308B42C8BF38BDFF2B08BF38BDE17A21 -:10C83000491CC9B2E17295F82E30994203D8A17A09 -:10C840007F2918BF38BDA2720020E072012038BDD8 -:10C850000C2818BF0B2810D00D2818BF1F280CD08B -:10C86000202818BF212808D0222818BF232804D048 -:10C8700024281EBF2628002070474FF00100704773 -:10C880000C2963D2DFE801F006090E13161B323CB7 -:10C89000415C484E002A5BD058E0072A18BF082A9E -:10C8A00056D053E00C2A18BF0B2A51D04EE00D2A67 -:10C8B0004ED04BE0A2F10F000C2849D946E023B13D -:10C8C000A2F110000B2843D940E0122A18BF112A08 -:10C8D0003ED090F8360020B1122A37D31A2A37D921 -:10C8E00034E0162A32D31A2A32D92FE0A2F10F01EE -:10C8F00003292DD990F8360008B31B2A28D925E042 -:10C90000002B08BF042A21D122E013B1062A1FD030 -:10C910001CE0012A1AD11BE01C2A1CBF1D2A1E2A5A -:10C9200016D013E01F2A18BF202A11D0212A18BFC1 -:10C93000222A0DD0232A1CBF242A262A08D005E04B -:10C9400013B10E2A04D001E0052A01D0002070475F -:10C95000012070472DE9F0410D4604468668F8F73E -:10C96000B6F958B9F7F7E4FF40F23471F7F7E1FC94 -:10C97000A0602046F8F7ABF90028F3D0DDB13046CF -:10C98000A168F8F7F1FC002815DD2844401EB0FB33 -:10C99000F5F707FB05F107E053E4B36EFC51020025 -:10C9A00000520200700100203046F7F7C2FCA06080 -:10C9B0003846BDE8F0810020BDE8F08170B504463E -:10C9C000904228BF70BD101B64280AD325188D42E1 -:10C9D00005D8F8F7F0FC00281CBF284670BD20469B -:10C9E00070BD6420F2E711F00C0F13D001F00401C8 -:10C9F00000290DBF4022102296214FF4167101F537 -:10CA0000BC71A0EB010388428CBF93FBF2F00020C5 -:10CA100080B27047022919BF6FF00D0101EBD00001 -:10CA20006FF00E0101EB9000F2E7808E7047C08E30 -:10CA30007047084418449830002A14BF042100218C -:10CA40000844704730B491F854300A8E13F00C0F3C -:10CA50004FF4747C1CBF0CEB821292B21DD08B8EF3 -:10CA6000934238BF1A464B8E91F8554014F00C0F84 -:10CA70001CBF0CEB83139BB217D0C98E994238BFF1 -:10CA80000B4600280CBF01200020D1189831002847 -:10CA900018BF0420084430BC7047022B07BF920027 -:10CAA0003C32D200703292B2D9E7022C07BF9B0011 -:10CAB0003C33DB0070339BB2DFE710F0010F1CBF8B -:10CAC0000120704710F0020F1CBF0220704710F0C9 -:10CAD000040018BF082070472DE9F04105461746AD -:10CAE00088460126084600F06EFC0446404600F0E9 -:10CAF0006EFC034610F0010F18BF012008D113F09F -:10CB0000020F18BF022003D113F0040018BF082041 -:10CB100014F0010F18BF4FF0010C20D050EA0C01A7 -:10CB200008BF002613F0030F08BF002014F0030F06 -:10CB300008BF4FF0000C95F85410814208BF002048 -:10CB4000387095F85510614508BF4FF0000C87F814 -:10CB500001C0002808BFBCF1000F1CD10DE014F08B -:10CB6000020F18BF4FF0020CD8D114F0040F14BFFD -:10CB70004FF0080C4FF0000CD0E7404600F02DFCC1 -:10CB8000B5F85810401A00B247F6FE71884201DC31 -:10CB9000002800DC00263046BDE8F08101281CBFDB -:10CBA00002280020704718B4CBB2C1F3072CC1B2E1 -:10CBB000C0F30720012B05D0022B08BFBCF1020FE8 -:10CBC0001BD002E0BCF1010F17D0012904D00229CB -:10CBD00008BF022811D001E001280ED001EA0C01A3 -:10CBE00061F3070210EA030060F30F22D0B210F0E5 -:10CBF000020F18BF02200BD106E0084003EA0C0127 -:10CC0000084060F30702EFE710F0010018BF0120B1 -:10CC10008DF80000C2F3072010F0020F18BF0220A9 -:10CC200003D110F0010018BF01208DF80100BDF8FC -:10CC3000000018BC7047162A10D12A220C2818BFF1 -:10CC40000D280FD04FF0230C1F280DD031B10878DC -:10CC5000012818BF002805D0162805D000207047ED -:10CC6000012070471A70FBE783F800C0F8E701293C -:10CC700002D0022905D007E0002804BF40F2E240BC -:10CC8000704740F6C410704700B5FFDF40F2E24045 -:10CC900000BD8A8EC98E00280CBF012000201144DF -:10CCA0009831002818BF0420084470474078704726 -:10CCB00030B50546007801F00F0220F00F00104358 -:10CCC0002870092912D2DFE801F0050705070509D8 -:10CCD000050B0F0006240BE00C2409E0222407E0DA -:10CCE00001240020E87003E00E2401E00024FFDFAF -:10CCF0006C7030BD007800F00F0070470A68C0F813 -:10CD000003208988A0F807107047D0F803200A6034 -:10CD1000B0F80700888070470A68C0F80920898841 -:10CD2000A0F80D107047D0F809200A60B0F80D0087 -:10CD3000888070470278402322F0400203EA811184 -:10CD40001143017070470078C0F38010704702787B -:10CD5000802322F0800203EAC11111430170704761 -:10CD60000078C009704770B514460E4605461F2A64 -:10CD700088BFFFDF2246314605F1090007F0C2FEF9 -:10CD8000A01D687070BD70B544780E460546062C2F -:10CD900038BFFFDFA01F84B21F2C88BF1F2422468C -:10CDA00005F10901304607F0ADFE204670BD70B5B3 -:10CDB00014460E4605461F2A88BFFFDF224631462D -:10CDC00005F1090007F09EFEA01D687070BD09689E -:10CDD000C0F80F1070470A88A0F8132089784175B1 -:10CDE000704790F8242001F01F0122F01F02114328 -:10CDF00080F824107047072988BF072190F8242065 -:10CE0000E02322F0E00203EA4111114380F82410EC -:10CE100070471F3008F02BB810B5044600F009FB2E -:10CE2000002818BF204410BDC17811F03F0F1BBF70 -:10CE3000027912F0010F0022012211F03F0F1BBFF7 -:10CE4000037913F0020F002301231A4402EB42027C -:10CE5000530011F03F0F1BBF027912F0080F0022A0 -:10CE6000012203EB420311F03F0F1BBF027912F0C6 -:10CE7000040F00220122134411F03F0F1BBF02795F -:10CE800012F0200F0022012202EBC20203EB420348 -:10CE900011F03F0F1BBF027912F0100F0022012288 -:10CEA00002EB42021A4411F03F0F1BBF007910F051 -:10CEB000400F00200120104410F0FF0014BF01219A -:10CEC00000210844C0B2704770B50278417802F082 -:10CED0000F02082A4DD2DFE802F004080B4C4C4C3C -:10CEE0000F14881F1F280AD943E00C2907D040E0FF -:10CEF000881F1F2803D93CE0881F1F2839D801202C -:10CF000070BD4A1EFE2A34D88446C07800258209A6 -:10CF1000032A09D000F03F04601C884204D8604610 -:10CF2000FFF782FFA04201D9284670BD9CF803009C -:10CF30004FF0010610F03F0F1EBF1CF104000078F7 -:10CF400010F0100F13D064460421604600F071FA0F -:10CF5000002818BF14EB0000E6D0017801F03F0173 -:10CF60002529E1D280780221B1EB501FDCD3304675 -:10CF700070BD002070BD70B50178012501F00F0172 -:10CF8000002404290AD007290DD008291CBF00203D -:10CF900070BD40780E2836D0204670BD4078801F86 -:10CFA0001F2830D9F8E7844640789CF803108A0996 -:10CFB000032AF1D001F03F06711C8142ECD8604693 -:10CFC000FFF732FFB042E7D89CF8030010F03F0FA4 -:10CFD0001EBF1CF10400007810F0100F13D066463D -:10CFE0000421604600F025FA002818BF16EB000067 -:10CFF000D2D0017801F03F012529CDD280780221DD -:10D00000B1EB501FC8D3284670BD10B4017801F0B1 -:10D010000F01032920D0052921D14478B0F8191037 -:10D02000B0F81BC0B0F81730827D222C17D106292A -:10D0300015D3B1F5486F98BFBCF5FA7F0FD272B126 -:10D04000082A98BF8A420AD28B429CBFB0F81D00C2 -:10D05000B0F5486F03D805E040780C2802D010BC2A -:10D060000020704710BC012070472DE9F0411F4699 -:10D0700014460D00064608BFFFDF2146304600F08B -:10D08000D8F9040008BFFFDF30193A462946BDE849 -:10D09000F04107F037BDC07800F03F007047C02274 -:10D0A00002EA8111C27802F03F021143C170704759 -:10D0B000C07880097047C9B201F00102C1F3400392 -:10D0C0001A4402EB4202C1F3800303EB4202C1F3B4 -:10D0D000C00302EB4302C1F3001303EB43031A4402 -:10D0E000C1F3401303EBC30302EB4302C1F380130C -:10D0F0001A4412F0FF0202D0521CD2B20171C3785E -:10D1000002F03F0103F0C0031943C170511C41708C -:10D1100070472DE9F0410546C078164600F03F04FF -:10D120001019401C0F46FF2888BFFFDF2819324620 -:10D130003946001D07F0E6FCA019401C6870BDE8E8 -:10D14000F081C178407801F03F01401A401E80B262 -:10D15000704710B590F803C00B460CF03F014478BF -:10D160000CF03F0CA4EB0C0CACF1010C1FFA8CF48E -:10D17000944288BF14462BB10844011D224618462C -:10D1800007F0C0FC204610BD4078704700B502781B -:10D1900001F0030322F003021A430270012914BFB5 -:10D1A0000229002104D0032916BFFFDF012100BDA1 -:10D1B000417000BD00B5027801F0030322F00302C4 -:10D1C0001A430270012914BF0229002104D0032947 -:10D1D00016BFFFDF012100BD417000BD007800F0E7 -:10D1E00003007047417841B1C078192803D2C04A82 -:10D1F000105C884201D1012070470020704730B593 -:10D2000001240546C17019293CBFB948445C02D3CA -:10D21000FF2918BFFFDF6C7030BD70B515460E4694 -:10D2200004461B2A88BFFFDF65702A463146E01C92 -:10D23000BDE8704007F066BCB0F807007047B0F872 -:10D2400009007047C172090A01737047B0F80B00FA -:10D25000704730B4B0F80720B0F809C0B0F8053016 -:10D260000179941F40F67A45AC4298BFBCF5FA7F2D -:10D270000ED269B1082998BF914209D293429FBF4B -:10D28000B0F80B00B0F5486F012030BC98BF704774 -:10D29000002030BC7047001D07F0E9BD021D0846A4 -:10D2A000114607F0E4BDB0F80900704700797047F7 -:10D2B0000A68426049688160704742680A60806815 -:10D2C000486070470988818170478089088070476D -:10D2D0000A68C0F80E204968C0F812107047D0F8EC -:10D2E0000E200A60D0F81200486070470968C0F844 -:10D2F00016107047D0F81600086070470A68426040 -:10D3000049688160704742680A6080684860704779 -:10D310000968C1607047C06808607047007970474D -:10D320000A68426049688160704742680A608068A4 -:10D33000486070470171090A417170478171090A9B -:10D34000C17170470172090A417270478172090AFE -:10D35000C172704780887047C088704700897047E5 -:10D360004089704701891B2924BF4189B1F5A47FF9 -:10D3700007D381881B2921BFC088B0F5A47F012075 -:10D380007047002070470A684260496881607047B2 -:10D3900042680A60806848607047017911F0070FA1 -:10D3A0001BBF407910F0070F002001207047017962 -:10D3B00011F0070F1BBF407910F0070F002001206C -:10D3C000704701717047007970474171704740792B -:10D3D00070478171090AC1717047C088704745A2C2 -:10D3E00082B0D2E90012CDE900120179407901F052 -:10D3F000070269461DF80220012A07D800F007003D -:10D40000085C01289EBF012002B07047002002B0D6 -:10D4100070470171704700797047417170474079DA -:10D42000704730B50C460546FB2988BFFFDF6C709E -:10D4300030BDC378024613F03F0008BF7047052097 -:10D44000127903F03F0312F0010F36D0002914BF08 -:10D450000B20704712F0020F32D0012914BF801D3B -:10D46000704700BF12F0040F2DD0022914BF401CDA -:10D47000704700BF12F0080F28D0032914BF801C8A -:10D48000704700BF12F0100F23D0042914BFC01C36 -:10D49000704700BF12F0200F1ED005291ABF1230AE -:10D4A000C0B2704712F0400F19D006291ABF401CB5 -:10D4B000C0B27047072918D114E00029CAD114E07E -:10D4C0000129CFD111E00229D4D10EE00329D9D10D -:10D4D0000BE00429DED108E00529E3D105E00629A7 -:10D4E000E8D102E0834288BF704700207047000007 -:10D4F0000452020000010102010202032DE9F04181 -:10D50000FE4E0446736893F828000127002528B1D1 -:10D5100093F8A001D8B993F84801C0B193F8480135 -:10D5200098B383F8A071D3F84C113C2269B36570AD -:10D53000201D07F0E7FA052020702771706890F829 -:10D54000A011002918BF80F8485107D034E083F8B3 -:10D55000A05103F12A014FF48E72E7E71D212A3012 -:10D5600007F04FFB70687F2180F84510FF2180F89D -:10D57000381080F82B1080F83E10818E21F0600169 -:10D580002031818680F8285016E0FFE793F82200CA -:10D59000012814D0187801281BD093F850010128D5 -:10D5A0001CBF0020BDE8F081657018202070D3F802 -:10D5B0005201606083F850510120BDE8F081657030 -:10D5C00007202070586A606083F822500120BDE86F -:10D5D000F0816570142020702022991C201D07F016 -:10D5E00091FA257271680D7081F85051C448828893 -:10D5F0008284D0F86421527B80F8262080F8227043 -:10D60000D1F864010088F5F783F9F4F72AFED3E72F -:10D61000BA4840680178002914BF80884FF6FF702F -:10D62000704770B5B54C0546606890F87411204697 -:10D630000629806803D0FFF73BFD38B117E0FFF7FC -:10D6400037FD90B9A068FFF733FD10E0616891F8ED -:10D650007401082809D025B191F83E00FF2806D0B2 -:10D6600003E091F82B00FF2801D0012070BD0020BD -:10D6700070BDF8B5A14C07460E46606890F82810BA -:10D68000002906BF90F848110029F8BD00F13305C4 -:10D6900020787F2808BFFFDF207828707F20207047 -:10D6A000606890F89A1100F5D470085C012808BFF2 -:10D6B000012503D0022814BFFFDF0225606880F82F -:10D6C000365090F8971180F8461090F87411072999 -:10D6D0000CD190F8A401012808BF012503D002282D -:10D6E00014BFFFDF0225606880F83750606890F84B -:10D6F00074010025062804D1A068FFF7D9FC002892 -:10D700003DD0606890F87411082904BF90F8A10119 -:10D7100002280ED04FF00301A068FFF77DFB40B157 -:10D7200041780A09616881F838200088C0F30B004D -:10D7300048870095A068FFF7DDFA01466068BDF8EC -:10D74000005090F83420520962F34615ADF80050AD -:10D75000072918BFFFDF1CD0BDF8000000906068EB -:10D76000BDF8001081860421A068FFF755FB002852 -:10D770007DD0B0F80100C004C00C79D0ABE0A06847 -:10D78000C17811F03F0F1CBF007910F0100FB8D115 -:10D79000CFE790F87411062916D0072936D008294A -:10D7A00073D00A2918BFFFDFD6D145F00A01ADF8C2 -:10D7B000001090F83E00FF2814BF0120002060F305 -:10D7C0008201ADF80010C7E7A068FFF771FC58B1FF -:10D7D000012808BF45F0010046D0022814BFFFDF32 -:10D7E00045F0020040D0B7E7A068C17811F03F0FC4 -:10D7F0001CBF007910F0020FAED00120FFF711FF1F -:10D80000002808BF45F004002ED0A5E7A068FFF768 -:10D810004FFCB0B1012804BF45F00100ADF8000095 -:10D820000FD0022898D145F00200ADF80000A168A1 -:10D83000CA7812F03F0F1CBF097911F0020F21D1F5 -:10D8400018E0A068C17811F03F0F1CBF007910F0FC -:10D85000020F05D1606890F83E00FF283FF47CAFCE -:10D86000BDF8000040F00400ADF8000074E726E0C9 -:10D870002AE00AE0616891F83E10FF2908BF20F015 -:10D880000400F1D040F00400EEE790F83E10FF29CC -:10D890001CBF45F00401ADF8001090F8A10102286A -:10D8A000BDF800000CBF40F0080020F00800ADF803 -:10D8B00000000CBF40F0020020F00200D4E76068D6 -:10D8C000818E21F0600105E06068818E21F06001A9 -:10D8D00001F140018186606890F87401A068C17808 -:10D8E00011F03F0F10D0017911F0400F0CD04FF024 -:10D8F0000601FFF791FA0078616803E074010020E7 -:10D90000EC10002081F84500606890F8740106284A -:10D9100004D00020FFF785FE18BB04E0022F18BFDB -:10D92000012FF6D1F8BDA068C17811F03F0F33D0B8 -:10D93000017911F0010F2FD0616801F12C0791F8E6 -:10D94000783101F12B05FF2B0CD03A4629461846B9 -:10D95000FEF756F8002808BFFFDF287840F00200E5 -:10D96000287019E0FFF7EFF92870A068FFF7C2F9F7 -:10D97000072804D23946A068FFF7C7F90CE0A06871 -:10D98000FFF7B8F9072807D10021A068FFF744FA8C -:10D99000016839608088B8800120FFF742FE80BBB3 -:10D9A000A068C17811F03F0F2BD0017911F0020F60 -:10D9B00027D0616801F13F0591F876216F1E1AB1F9 -:10D9C000022E18BF032E08D0FFF794F907280AD2B9 -:10D9D0002946A068FFF7A7F912E0D1F85A0128609C -:10D9E000B1F85E010BE0A068FFF784F9072807D1C2 -:10D9F0000121A068FFF710FA016829608088A880DB -:10DA00003E70606890F87401062808BFF8BD0728CA -:10DA100018BF082802D00A2806D0F8BDA068FFF772 -:10DA200047FB022808BFF8BD606800F14705A06801 -:10DA3000FFF787FB616891F83230C3F1FF02904233 -:10DA400028BF104605D98A8E22F0600202F14002FA -:10DA50008A86C2B203EB0501A068FFF77AFB616812 -:10DA600091F83220104481F83200F8BD2DE9F047DA -:10DA7000F74D06466C6894F82800002818BFBDE8EA -:10DA8000F0871D212A34204607F0BBF801272770B4 -:10DA9000A868FFF72FF920B3012827D002282AD041 -:10DAA000062818BFFFDF2BD004F11D01A868FFF77F -:10DAB0006AF92072686804F1020904F1010890F81B -:10DAC0007801FF2821D04A464146FDF799FF0028FA -:10DAD00008BFFFDF98F8000040F0020088F800005F -:10DAE00031E0608940F013006081DDE7608940F03B -:10DAF00015006081DEE7608940F010006081D3E7A7 -:10DB0000608940F012006081CEE7A868FFF71BF93A -:10DB100088F80000A868FFF7EDF8072804D2494606 -:10DB2000A868FFF7F2F80EE0A868FFF7E3F8072807 -:10DB300009D10021A868FFF76FF90168C9F8001042 -:10DB40008088A9F80400287804F109087F2808BF14 -:10DB5000FFDF287888F800004FF07F0985F80090F3 -:10DB6000277300206073FF20A073A17A11F0040FC7 -:10DB700008BF20752DD0686804F1150804F1140A57 -:10DB800090F8761119B1022E18BF032E09D0A8689B -:10DB9000FFF7B0F807280BD24146A868FFF7C3F893 -:10DBA00015E0D0F85A11C8F80010B0F85E010CE08A -:10DBB000A868FFF79FF8072809D10121A868FFF797 -:10DBC0002BF90168C8F800108088A8F804008AF8CA -:10DBD000006084F81B90686890F89711217780F8AE -:10DBE0002870BDE8F047062003F08BBB2DE9F0411B -:10DBF000974C606890F82810FF250026A1B91D21D8 -:10DC00002A3006F0FEFF60687F2180F8451080F81A -:10DC1000385080F82B5080F83E50818E21F0600102 -:10DC20002031818680F82860606800F5D47290F811 -:10DC30009A11895C80F8A411002002F082FFF8B1EB -:10DC4000F8F7AEFF6068834990F879010F5C3846B9 -:10DC5000F8F771FD606880F8977190F8A41125209D -:10DC6000F8F766FC606890F8A4110120F8F77BFDD6 -:10DC7000606890F86811032918BF022904D00FE0EA -:10DC8000BDE8F04100F064BF90F89A1100F5D4703F -:10DC9000085C012804D1012211460020F9F798F808 -:10DCA000F9F773F8606890F8A401012807BF01270D -:10DCB000032100270521A068FDF780FF616881F836 -:10DCC000760140B1002F0CBF50274027F8F76DFABE -:10DCD0003846F9F72DF86068D0F87C01F8F76CFF4A -:10DCE000606890F87811FF291CBF00F29110FDF7D1 -:10DCF0009EFE6068062180F8775180F8785180F8A0 -:10DD0000856180F8846180F8A16180F87411BDE8B4 -:10DD1000F08170B54E4C0646606800F5BA75204635 -:10DD2000806841B1D0F80510C5F81D10B0F80900A1 -:10DD3000A5F8210003E005F11D01FEF7E6FFA0684C -:10DD4000FFF701F885F82400A0680021032E018068 -:10DD500002D0052E04D046E00321FEF7A9FF42E0E1 -:10DD60000521FEF7A5FF6068D0F8640100F10E01FF -:10DD7000A068FFF72CF86068D0F8640100F1120188 -:10DD8000A068FFF728F8D4E90110D1F86421527D8A -:10DD90008275D1F86421D28AC275120A0276D1F84E -:10DDA000642152884276120A8276D1F864219288E0 -:10DDB000C276120A0277D1F86421D2884277120A19 -:10DDC0008277D1F864110831FFF723F86068D0F842 -:10DDD0006401017EA068FFF704F8606890F8AA115A -:10DDE000A068FFF708F805F11D01A068FEF794FF91 -:10DDF00095F82410A068FEF7AAFF606800F5AD75DD -:10DE000090F8596190F8751191B190F86811032953 -:10DE100006D190F86111002918BF90F87A0101D15C -:10DE200090F87701FDF719FF00281CBF0126054671 -:10DE30002946A068FEF762FF3146A068BDE8704041 -:10DE4000FEF778BF0249496881F873017047000006 -:10DE5000740100202052020070B5FE4D686890F8F1 -:10DE6000741102291FBF90F8741101290C2070BD94 -:10DE700000F166014FF00004C0F84C1180F84841F1 -:10DE80004FF01D0100F12A0006F0BBFE68687F21FB -:10DE900080F84510FF2180F8381080F82B1080F8AA -:10DEA0003E10818E21F060012031818680F828406B -:10DEB000047080F8224080F85041012680F8A0616B -:10DEC00090F8760130B1F8F746FFF8F782F9686804 -:10DED00080F876416868072180F8724180F86161B6 -:10DEE00080F8684180F8794180F8734180F8A14159 -:10DEF00080F86011002070BDD64910B58860486870 -:10DF00000021A0F8A51180F8A711012180F8741153 -:10DF1000FFF7A2FF002818BFFFDF10BD2DE9F04179 -:10DF2000CC4D0446686890F87401012818BF022897 -:10DF300004D003281CBF0C20BDE8F081607A0228C1 -:10DF400023D0F8F729FB0220F8F730FE686890F933 -:10DF50007301F8F7E2FBA868F8F72BFEBE48F8F764 -:10DF60000BFEBE48F8F7DFFB686890F8591100F522 -:10DF7000AD70F8F78AFB0F210720F8F7A2FB68685D -:10DF800090F86101F0B1FDF7DBFD6868217A00F5DA -:10DF9000D47280F89A11217A895C80F8A4116168A2 -:10DFA000C0F87C112168C0F88011627A6AB1012A38 -:10DFB00024D00526022A08BF80F8746176D0032A8F -:10DFC00075D0B5E0FDF777FDDFE7A54B90F860C1B0 -:10DFD000002100BF90F87921521CA3FB0264640861 -:10DFE000A4EB8404224480F879212CFA02F212F086 -:10DFF000010F03D1491CC9B20329EBD3002680F8D5 -:10E00000A16190F87111002904BF90F875010028F2 -:10E0100048D0F6F78DFC044668682146D0F86C01BC -:10E02000F7F7A2F9DFF83C82074690FBF8F008FB0F -:10E03000107041422046F6F77CF96968C1F86C011E -:10E0400097FBF8F0D1F89C211044C1F89C01FDF732 -:10E05000AFFC6A68D2F89C11884223D8C2F89C6150 -:10E06000C2F86C4192F8750100281CBF0120FDF731 -:10E07000C1FD0121686890F87221002A1CBF90F848 -:10E080007121002A0ED090F8593100F5AD72012BA4 -:10E0900004D1527902F0C002402A09D000F5AD70D7 -:10E0A000F9F7E6FA6968042081F8740140E009E0B4 -:10E0B0000124FDF7D0FD6968224601F5AD71F9F73D -:10E0C000A0FAEFE7002918BFFFDF686800F2A51487 -:10E0D00090F8A701400908BF012703D0012814BF09 -:10E0E00000270227F8F75CFD207800F03F04204667 -:10E0F000F8F721FB6868394680F89741FF20F8F768 -:10E1000017FA39460120F8F76DFBF8F73EFE0521B6 -:10E11000A868FDF753FD696881F8760128B150249D -:10E12000F8F743F82046F8F703FE686880F8746152 -:10E130000020BDE8F08110B5464C606890F874117D -:10E1400004290DD005291CBF0C2010BD90F8A10199 -:10E1500048B100F020FD6168082081F8740108E0F2 -:10E16000FFF744FD05E000F016FD6168072081F827 -:10E170007401002010BD3749002210F0010F4968DA -:10E1800002D0012281F8A82110F0080F03D0114419 -:10E19000082081F8A801002070472E49496881F8BD -:10E1A0007001704710B52B4C636893F85831022BFF -:10E1B00014BF032B00280BD100291ABF022901200C -:10E1C00000201146FDF7F7FB08281CBF012010BDF9 -:10E1D000606890F85801002816BF0228002001202E -:10E1E000BDE81040F9F7CEB91A48406890F85801D8 -:10E1F000002816BF022800200120F9F7C3B91549ED -:10E20000496881F8580170471249496881F87201DC -:10E21000704770B50F4C616891F85801002816BF1F -:10E2200002280020012081F8590101F5AD71F9F7AC -:10E2300093F9606890F85811022916BF032901214B -:10E24000002180F8751190F8592100F5AD734FF059 -:10E25000000509E0740100201D5202002352020053 -:10E26000ABAAAAAA40420F00012A04BF5B7913F0AF -:10E27000C00F0AD000F5AD73012A04D15A7902F01B -:10E28000C002402A01D0002200E0012280F8712162 -:10E29000002A04BF002970BDC0F89C51F6F748FB66 -:10E2A0006168C1F86C0191F8750100281CBF00205D -:10E2B000FDF7A0FC0026606890F8721100291ABFD3 -:10E2C00090F87111002970BD90F8592100F5AD71D9 -:10E2D000012A04D1497901F0C001402906D029461C -:10E2E000BDE8704000F5AD70F9F7C2B9FDF7B3FCB9 -:10E2F00061683246BDE8704001F5AD71F9F781B94A -:10E3000070B5FF4D0C4600280CBF0123002369683F -:10E3100081F8613181F86A014FF0080081F87A01D3 -:10E320000CD1002C1ABF022C012000201146FDF751 -:10E3300042FB6968082881F87A0101D0002070BD8D -:10E34000022C14BF032C1220F8D170BD002818BF76 -:10E35000112070470328EA4A526808BFC2F86411C6 -:10E3600082F8680100207047E548416891F868012B -:10E37000032804D0012818BF022807D004E091F830 -:10E380006A01012808BF70470020704791F86901B1 -:10E39000012814BF03280120F6D1704770B5F8F7A3 -:10E3A00092FCF8F771FCF8F763FBF8F7EBFBD44C41 -:10E3B0000025606890F8760130B1F8F7CCFCF7F7EB -:10E3C00008FF606880F8765160680121A0F8A551C7 -:10E3D00080F8A75180F8741180F85051002070BD6A -:10E3E000C74810B5406800F5C47006F0C2F80020B8 -:10E3F00010BDC3480121406890F86821032A03BF7B -:10E4000080F85211D0F864211288002218BF80F8D9 -:10E410005221A0F8542180F850117047B84949683A -:10E4200081F8AA0170470178002311F0010FB44967 -:10E4300049680AD04278032A08BFC1F8643181F8DC -:10E440006821012281F8A8211346027812F0040FF6 -:10E450000CD082784FF0000C032A08BFC1F864C1C9 -:10E4600081F868210B44082283F8A821C27881F83A -:10E4700058210279002A16BF022A0123002381F8BD -:10E48000613181F86921427981F86021807981F8D0 -:10E4900070014FF0000070479948406800F5D27055 -:10E4A00070472DE9F041964C05460E46606890F89D -:10E4B0007401032818BFFFDF022D1EBF032DFFDFED -:10E4C000BDE8F0814FF000074FF00105AEB1606884 -:10E4D00090F8371089B1818E21F0600101F140017F -:10E4E000818690F8282042B980F8285011F0080F52 -:10E4F00014BF0720062002F004FF6068A0F8A57191 -:10E5000080F8A77180F87451BDE8F08100F020BB5D -:10E510002DE9F0477A4C0646894660684FF00108BD -:10E52000072E90F8617138BF032533D3082E4FF0C2 -:10E53000000088BFBDE8F087FFF773F8002873D1AB -:10E54000A068C17811F03F0F12D0027912F0010FCC -:10E550000ED061684FF0050591F87621002A18BFAA -:10E56000B9F1000F16D091F8A411012909D011E0DA -:10E5700011F03F0F1ABF007910F0100F002F53D188 -:10E580004CE04FF001024FF00501FDF75CFA6168C5 -:10E5900081F87601A16808782944C0F3801030B171 -:10E5A000487900F0C000402808BF012000D00020BA -:10E5B000616891F87611002918BF002807D0FDF78F -:10E5C0005DFA0146606880F8771180F884816068A0 -:10E5D00090F87711FF292AD080F878110846FDF7C6 -:10E5E0005AFA40EA0705606890F87721FF2A18BFB9 -:10E5F000002D10D0072E0ED3A068C17811F03F0F68 -:10E6000009D0017911F0020F05D00B21FDF7C8FAEE -:10E61000606880F885812846BDE8F087FDF707F837 -:10E62000002808BFBDE8F0870120BDE8F087A36897 -:10E6300090F8612159191B78C3F3801C00F27713FD -:10E640006046FDF758F80546CDE7F0B52C4C074677 -:10E6500083B060686D460078002818BFFFDF002691 -:10E6600061688E70D1F8640102888A8042884A838A -:10E6700082888A83C088C88381F8206047B10121DD -:10E68000A068FEF7C9FB0546A0680078C10907E04D -:10E690006946A068FEF739FBA0680078C0F38011D6 -:10E6A0006068012790F87521002A18BF002904D05E -:10E6B0006A7902F0C002402A29D090F87221002A1B -:10E6C00018BF002903D0697911F0C00F1FD000F1E5 -:10E6D0000E0006F0C3FB616891F87801FF281CD09A -:10E6E00001F10802C91DFDF78BF9002808BFFFDF03 -:10E6F0006068C17941F00201C171D0F8911101E067 -:10E70000740100204161B0F89511018310E029687F -:10E71000C0F80E10A9884182DDE7D1F86401427E7D -:10E72000CA71D0F81A208A60C08B88814E610E832E -:10E7300060680770D0F8642190F8731182F8571060 -:10E74000D0F864010088F4F7E3F8F3F77BFD03B039 -:10E75000F0BD2DE9F041FC4C05460126606800271C -:10E7600090F86811012918BF022902D0032918BFA7 -:10E77000FFDF55B1A068FEF7A7FB18B9A068FEF748 -:10E78000FAFB10B100F085FA2DE0606890F8740192 -:10E790007F25801F062828BFBDE8F081DFE800F054 -:10E7A00003191930443EE848F8F7FAFA002808BF80 -:10E7B0002570F8F7E0FA606890F8760130B1F8F764 -:10E7C000CAFAF7F706FD606880F87671F8F750F935 -:10E7D00020E0DD48F8F7E4FA002808BF2570F8F7D4 -:10E7E000CAFA00F03CFA102880F0DE80DFE800F082 -:10E7F00036B6BFC3DCDC12CCD4DCDCDC249C38694C -:10E80000D148F8F7CDFA002808BF2570F8F7B3FA19 -:10E81000F8F72EF9BDE8F041FFF7E8B9CA48F8F774 -:10E82000BFFA30B9257004E0C748F8F7B9FA0028F4 -:10E83000F8D0F8F7A0FA9AE0032002F082F9002855 -:10E8400071D000210320FFF764FA0122114610461F -:10E85000F8F7BEFA61680C2081F87401BDE8F08118 -:10E86000606800F5BA75042002F06BF900287ED0CC -:10E870000E202870012002F044FDA0686168007835 -:10E88000C0F3401081F8990100210520FFF741FAFB -:10E89000AE49A0684FF0200CD1F864210378527B78 -:10E8A00023F020030CEA42121A430270D1F86401EB -:10E8B00095F82530427B1A4042732820D1F8641124 -:10E8C0002DE0062002F03DF9002850D09F4D0F208A -:10E8D00085F87401022002F014FD6068012190F8AF -:10E8E000A4210846F8F774FAA06861680078C0F3BC -:10E8F000401081F8990101210520FFF70AFAD5F8A7 -:10E9000064014673A068017821F020010170F8F7D6 -:10E91000FDFC002818BFFFDF2820D5F8641181F81E -:10E920005600BDE8F08122E0052002F00AF9F0B1BE -:10E9300001210320FFF7EDF9F8F7E8FC002818BFE4 -:10E94000FFDF6068012190F8A4210846F8F740FA3B -:10E9500061680D2081F87401BDE8F0816068A0F85D -:10E96000A57180F8A77180F87461BDE8F081BDE8F9 -:10E97000F04100F0EDB86168032081F87401BDE852 -:10E98000F041082002F0BDBC00F005F961680720E5 -:10E9900081F87401BDE8F08100F0FDF8616808209D -:10E9A00081F87401BDE8F081FFDFBDE8F08170B54A -:10E9B000654C606890F874110C2929D00D2932D06B -:10E9C0000E293BD00F291CBFFFDF70BD042002F0D1 -:10E9D00098FC606890F8A4110E20F7F7A9FD0021BB -:10E9E0009620F8F715F9F8F7D0F90521A068FDF79A -:10E9F000E5F8616881F8760128B15025F7F7D5FB75 -:10EA00002846F8F795F961680B2081F8740170BD0C -:10EA1000F8F7BBF900219620F8F7FAF861680920A9 -:10EA200081F8740170BD00219620F8F7F1F8F8F72D -:10EA3000ACF961680A2081F8740170BD0021A0F86A -:10EA4000A51180F8A711012180F874110020FFF7AB -:10EA5000FCFDBDE87040032002F053BC70B53A4C99 -:10EA6000606890F874117F25891F062928BF70BD42 -:10EA7000DFE801F017321D033D113348F8F790F934 -:10EA8000002808BF2570F8F776F9F7F7F1FFBDE821 -:10EA90007040FFF7ABB82C48F8F782F960BB2570DF -:10EAA0002AE02948F8F77CF9D8B9257019E090F8E0 -:10EAB000371089B1818E012221F0600140318186B9 -:10EAC00090F8283043B980F8282011F0080F14BFBF -:10EAD0000720062002F015FC1B48F8F761F9002812 -:10EAE000E3D0F8F748F9BDE8704000F031B81648B7 -:10EAF000F8F756F90028D2D0F8F73DF96068002100 -:10EB000000F5C47005F0E6FCBDE8704000F020B8E8 -:10EB100070B50D4C06460D46012908D0606890F886 -:10EB2000A4213046BDE87040134602F034BCF7F72C -:10EB3000C7FC61680346304691F8A4212946BDE828 -:10EB4000704002F028BC000074010020EC1000208E -:10EB500070B5F8F7B8F8F8F797F8F7F789FFF8F70E -:10EB600011F8F84C0025606890F8760130B1F8F79C -:10EB7000F2F8F7F72EFB606880F8765160680221A2 -:10EB800080F87411A0F8A55180F8A751BDE8704035 -:10EB9000002002F0B6BB2DE9F041EA4C616891F823 -:10EBA000A701400908BF012503D0012814BF002593 -:10EBB0000225D1F88021002A2FD001F2A5170028C4 -:10EBC00008BF012603D0012814BF00260226F7F74C -:10EBD000E7FF387800F03F073846F7F7ACFD60688C -:10EBE000314680F89771FF20F7F7A2FC6068324643 -:10EBF000D0F880110120F7F779FEF8F7C6F8052163 -:10EC0000A068FCF7DBFF616881F8760128B1502627 -:10EC1000F7F7CBFA3046F8F78BF86068D0F87C014C -:10EC2000F7F7CAFF606890F86811022906D0032937 -:10EC300004BF90F89001012804D008E090F89001FA -:10EC4000022804D12A4601210020F8F7C1F86068A3 -:10EC5000002180F8A45180F88411BDE8F081B94802 -:10EC600010B5406890F8371089B1818E012221F0EB -:10EC700060014031818690F8283043B980F828201F -:10EC800011F0080F14BF0720062002F03AFB022003 -:10EC900010BD2DE9F04FAB4D83B00024686890F8AB -:10ECA00074017F27801F26464FF00108062880F058 -:10ECB0003E82DFE800F003080893FDFC00F0ACFCA6 -:10ECC000044600F035BA9F48F8F76AF8002808BFF4 -:10ECD0002F70F8F750F8A868FEF70CF804460728DC -:10ECE0006AD1A868FEF7E4F9696891F89021824238 -:10ECF00062D191F87401062804D1A868FEF7D8F90A -:10ED0000002836D0686890F87411082904BF90F87C -:10ED1000A101022813D04FF00301A868FEF77CF888 -:10ED2000002849D06968437891F83820B2EB131F66 -:10ED300042D10088498FC0F30B0088423CD10021AA -:10ED40002046FFF7E5FBB0B38DF800608DF8046056 -:10ED50008DF80860A868FF24C17811F03F0F1CBF30 -:10ED6000007910F0020F1CD00120FEF75AFC50B1C0 -:10ED700017E0A868C17811F03F0F1CBF007910F0B0 -:10ED8000100FBFD1DBE702AA694601A800F0D4F951 -:10ED9000686890F859419DF80000002818BF44F0B9 -:10EDA000020423469DF808209DF804109DF80000F9 -:10EDB00000F0A0FA02E0FFE7FFF751FF04466868A1 -:10EDC00090F87601002800F0B381F7F7C4FFF7F759 -:10EDD00000FA686880F8766100F0AAB9A868FDF7C3 -:10EDE00089FF8146A9686868CA7890F891319A428B -:10EDF00021D10A7990F892319A421CD14A7990F83F -:10EE000093319A4217D18A7990F894319A4212D16B -:10EE1000CA7990F895319A420DD10A7A90F89631D4 -:10EE20009A4208D1097890F89801C1F38011814283 -:10EE300008BF012400D00024F7F71AFE4148F7F775 -:10EE4000AFFF002808BF2F70F7F795FFB9F1040F47 -:10EE500075D1002C73D0686890F8481100296ED1E4 -:10EE600090F8281021B190F8341011F0100F66D0EE -:10EE7000D0F84C411D21204605F0C3FE84F80080E7 -:10EE8000686804F1020A04F1010990F87801FF288A -:10EE90000FD052464946FCF7B3FD002808BFFFDFFC -:10EEA00099F8000040F0020089F800001FE04BE0F4 -:10EEB000FEE0A868FDF747FF89F80000A868FDF7A5 -:10EEC00019FF072804D25146A868FDF71EFF0EE07F -:10EED000A868FDF70FFF072809D10021A868FDF7F2 -:10EEE0009BFF0168CAF800108088AAF8040004F1AA -:10EEF0001D01A868FDF747FF2072287804F1090971 -:10EF00007F2808BFFFDF287889F800002F70686825 -:10EF1000618990F8A12162F3000141F01A01618139 -:10EF200084F80C806673FF21A1732175E77690F851 -:10EF30009711217780F84881072002F0E2F9062432 -:10EF400000F0F6B8740100204FF00208FD48F7F712 -:10EF500027FF002808BF2F70F7F70DFFA868FDF7FF -:10EF6000C9FE0446A868FEF7A3F8082C08BF0028CD -:10EF70007ED1A8684FF00301C27812F03F0F77D01E -:10EF8000007931EA000073D1686800F5BA7790F82B -:10EF90006101002814BFBE79FE784FF00009B878EF -:10EFA00078B1FCF76BFD0446FF280AD00146A8683B -:10EFB000401DFCF73CFDB4420CBF4FF001094FF07F -:10EFC00000090021A868FDF727FF062207F11D01AF -:10EFD00005F06CFD40B9A868FDF7B5FE97F8241060 -:10EFE000884208BF012000D0002059EA00095DD006 -:10EFF000686800F5AD7490F859A1787838B130465A -:10F00000FCF72BFE00281CBF04464FF0010A002726 -:10F01000A86801784FEAD11B0121FDF7FDFEBBF185 -:10F02000000F07D0407900F0C000402808BF4FF023 -:10F03000010B01D04FF0000B0121A868FDF7ECFE99 -:10F040000622214605F032FD30B9A868FDF788FE9A -:10F05000504508BF012401D04FF000043BEA0400F2 -:10F0600018BFFF2E0FD03046FCF7C1FC060000E0B1 -:10F070001CE008D00121A868FDF7CEFE014630460D -:10F08000F8F78EFA074644EA070019EA000F0DD098 -:10F090006868012100F5C47005F01CFA4FF0010802 -:10F0A0004046FFF7D2FA052002F02BF944463FE034 -:10F0B0000224A448F7F774FE002808BF2F70F7F762 -:10F0C0005AFEA868FDF716FE0646A868FDF7F0FF91 -:10F0D000072E08BF00282BD1A8684FF00101C27885 -:10F0E00012F03F0F24D00279914321D1696801F5D4 -:10F0F000BA760021FDF790FE062206F11D0105F00B -:10F10000D5FCA8B9A868FDF71EFE96F82410884221 -:10F110000ED16868012100F5C47005F0DBF9FF210C -:10F12000022000F099F8002818BF032400E0FFDF58 -:10F1300003B02046BDE8F08F2DE9F74F814C002544 -:10F14000914660688A4690F8750100280CBF4FF020 -:10F1500001084FF00008A0680178CE090121FDF7F1 -:10F160005BFE36B1407900F0C000402808BF0126A0 -:10F1700000D00026606890F87611002963D090F8DE -:10F1800068114FF0000B03291ED190F8611100297E -:10F1900018BF90F87A7117D0FF2F18BF082F22D010 -:10F1A0003846FCF7EBF9002818BF4FF00108002E95 -:10F1B00049D0606890F88501D0B1FCF76AFC05463B -:10F1C000606880F885B13EE0A168CA7812F03F0F10 -:10F1D00019BF097911F0010F90F82B10FF2918BF02 -:10F1E00090F87771D8D176B390F8840170B12AE0A5 -:10F1F0003846FCF7FCFB05460121A068FDF70CFE34 -:10F2000001462846F8F7CCF905461CE0A068C1780D -:10F2100011F03F0F05D0017911F0010F18BF0B213C -:10F2200001D14FF005014FF00002FCF70CFC6168C2 -:10F2300081F8760138B1FCF721FCFF2803D0616822 -:10F24000012581F877018AF800500098067089F846 -:10F25000008003B0BDE8F08F2DE9F041394C024643 -:10F260000025606890F8A1310BB3A0684FF000064C -:10F270004FF00107C37813F03F0F1CBF007910F067 -:10F28000100F1BD00020FEF7F4F9606890F83400EE -:10F29000C0F3411002281BD0022000F058FC88B1B6 -:10F2A0006068012580F89061F7F7E2FB1FE0002A13 -:10F2B00014BF0223012380F8A131D6E71046FEF7E0 -:10F2C000D8F905E06068818E21F0600140318186C7 -:10F2D000606890F8281051B980F8287090F83400D0 -:10F2E00010F0080F14BF0720062002F00AF8284685 -:10F2F000BDE8F0812DE9F047124C05461F469046C7 -:10F300000E46A068FDF7D4FE002800F0D280012848 -:10F3100005D0022800F00F81BDE8F0479FE4A06807 -:10F320000921C27812F03F0F00F043810279914326 -:10F3300040F03F81616891F86811032909D012F00B -:10F34000020F01E07401002008BFFF2119D065B150 -:10F3500016E00021FDF760FD61680622D1F8641116 -:10F360001A3105F0A3FB50BB1EE0FDF7F9FC054682 -:10F370000121A068FDF750FD2946F7F78EF918B175 -:10F380003946012000F038B9606890F86901032817 -:10F3900018BF022840F00D81002E1CBFFE21012065 -:10F3A00040F02A8100F005B9A068FDF7CCFC616847 -:10F3B000D1F86411497E884208BF012600D000269A -:10F3C000A068C17811F03F0F05D0017911F0020F4C -:10F3D00001D05DB338E0616891F86A21012A01D05B -:10F3E000A6B119E0C6B90021FDF716FD61680268F3 -:10F3F000D1F86411C1F81A208088C883A068FDF78D -:10F40000A2FC6168D1F86411487605E091F87701B3 -:10F4100091F87A1188424BD1606800F5C47005F00C -:10F420009DF8002844D00F20BDE8F087B8F1000F08 -:10F430000CD0FDF795FC05460121A068FDF7ECFC1A -:10F440002946F7F72AF908B1012200E00022616895 -:10F4500091F86A01012807D040B92EB991F87731A7 -:10F4600091F87A118B4201D1012100E000210A427A -:10F470001ED0012808BF002E13D14FF00001A06854 -:10F48000FDF7CAFC61680268D1F86411C1F81A205E -:10F490008088C883A068FDF756FC6168D1F86411C4 -:10F4A0004876606800F5C47005F058F80028BAD1B5 -:10F4B0007FE06068A8464FF0020990F868010328D1 -:10F4C0002AD0A068C17811F03F0F1BBF007910F05F -:10F4D000020F002001204FF0FF05A8B14FF00100FE -:10F4E000FEF79FF8002804BF3D46B8F1000F0BD18E -:10F4F000A068FDF735FC07460121A068FDF78CFCEC -:10F500003946F7F7CAF850B129460020FFF7A4FEA4 -:10F51000002818BF4FF003094846BDE8F08760682F -:10F5200090F86901032818BF0228F5D1002E18BFF2 -:10F53000FE25E9D1F0E7626892F86831032B38D0F4 -:10F54000A0684FF0090CC17811F03F0F31D001795C -:10F550003CEA010C2DD1022B01F0020105D000295B -:10F5600008BFFF2147D0CDB344E009B135B113E066 -:10F5700002F5C47004F0F2FFA0B91AE0B8F1000F70 -:10F580001AD0FDF7EDFB05460121A068FDF744FC0C -:10F590002946F7F782F878B1606800F5C47004F086 -:10F5A000DDFF30B139460220FEF763F80D20BDE8DB -:10F5B000F0870220BDE8F087606890F869010328B1 -:10F5C00018BF0228F5D1002EF3D04FF0FE014FF006 -:10F5D000020000F0A4FA0220BDE8F087FFE7FDF783 -:10F5E000BFFB05460121A068FDF716FC2946F7F789 -:10F5F00054F820B13946022000F091FAD9E760684A -:10F6000090F86901032818BF0228D2D1002E1CBF30 -:10F61000FE210220F0D1CCE72DE9F04F83B04FF06E -:10F620000008FE48F7F7BCFBFC4C002804BF7F2015 -:10F630002070F7F7A0FBA068FDF75CFB8246012174 -:10F64000FEF766FF05466068002690F8A4110129C0 -:10F6500018BFFFDF0ED0606890F8760130B1F7F781 -:10F660007AFBF6F7B6FD606880F8766103B0404635 -:10F67000BDE8F08FEA4F4FF006084FF00109BAF1EC -:10F68000080F1AD2DFE80AF0278C0419191912FEA4 -:10F69000F7F7EEF9002DDED0606890F868010128D8 -:10F6A00012BF0228FF20FEF7E1F9D4E72DB190F850 -:10F6B0006801022806D0012854D0F7F7D9F94FF095 -:10F6C0000608C8E7FF20FEF7D1F960684FF00C0884 -:10F6D00080F8A161BFE74FF00008002D00F02881FD -:10F6E00090F86811022934D001293BD00329B2D106 -:10F6F000A268D0F86411D37891F81AC0634521D17B -:10F70000137991F81BC063451CD1537991F81CC043 -:10F71000634517D1937991F81DC0634512D1D37910 -:10F7200091F81EC063450DD1137A91F81FC063454F -:10F7300008D1137891F819C0C3F38013634508BF4B -:10F74000012300D0002390F86A0101280ED0DBB11C -:10F75000EAE0FF20FEF78AF960684FF00C0880F8B5 -:10F76000A19178E7FF20FEF781F916E0002B70D118 -:10F7700010461A31FDF7C9FAA068FDF7E4FA61688E -:10F78000D1F864114876CFE097F87A0108287AD04A -:10F7900097F8771181425CD0CAE04FF006085AE72B -:10F7A00090F8751100290CBF4FF0010A4FF0000AC4 -:10F7B0004FF00008A16811F8092BD20907D0497948 -:10F7C00001F0C001402908BF4FF0010B01D04FF0FC -:10F7D000000B90F86811032906D190F861110029F7 -:10F7E00018BF90F87A0101D190F877010090FCF7EA -:10F7F000FEF85FEA00092DD00098FBF7BFFE002855 -:10F8000018BF4FF0010ABBF1000F23D0A06800F130 -:10F8100009014846F7F7C4FE5FEA0008606890F8FF -:10F82000599118BF49F00209606890F868110329DE -:10F8300014D0F7F71DF9002DAFD0F6F73EFF0028E2 -:10F840000CBFB8F1000F484675D000BFFEF70EF9A7 -:10F85000A3E769E0606890F85991E5E7A168D0F8FE -:10F860006401CA78837E9A421FD10A79C37E9A4284 -:10F870001BD14A79037F9A4217D18A79437F9A42F2 -:10F8800013D101E066E053E0CA79837F9A420CD13C -:10F890000A7AC37F9A4208D10978407EC1F3801169 -:10F8A000814208BF4FF0010901D04FF0000997F8DD -:10F8B0007701082806D097F87A11884208BF4FF0E0 -:10F8C000010B01D04FF0000BB8F1000F05D1BAF1D8 -:10F8D000000F04D0F6F7F1FE08B1012000E000208F -:10F8E0004DB197F86A11012903D021B959EA0B01EA -:10F8F00001D0012100E00021084219D0606890F891 -:10F900006A11012908BFB9F1000F0DD1D0F86401C7 -:10F9100000F11A01A068FDF7F8F9A068FDF713FAE5 -:10F920006168D1F8641148764FF00E0893E602E062 -:10F93000F7F79EF831E7606890F86901032818BF6F -:10F9400002287FF42AAFBBF1000F18BFFE207FF41E -:10F950007DAF22E790F87001002818BF002D3FF41A -:10F96000ACAEA068FDF7A4FB30B101287DD0022821 -:10F970007CD0F7F77DF86EE6F7F77AF8606890F8D4 -:10F98000680103283FF409AFA068C17811F03F0F68 -:10F9900005D0027912F0100F18BF012500D1002503 -:10F9A000002D14BF0822012211F03F0F3FF4F5AEE5 -:10F9B000007932EA00017FF4F0AE10F0020F06D0B9 -:10F9C0000120FDF72EFE002808BF012000D00020F6 -:10F9D0008DF800608DF804608DF80860FF27D0B1C5 -:10F9E00002AA694601A8FFF7A7FB606890F8597161 -:10F9F0009DF80000002818BF47F002070BD1A0684F -:10FA0000FDF7AEF980460121A068FDF705FA4146F1 -:10FA1000F6F743FEC0B195B1012003E07401002068 -:10FA2000EC10002000F093F800283FF4B6AE394601 -:10FA30000020FDF71EFE606880F890616CE039469A -:10FA4000002000F06CF8A8E6606890F869010328CF -:10FA500018BF02287FF4A1AE9DF8040000283FF4EF -:10FA60009CAE9DF80000002801E017E032E07FF432 -:10FA700094AE75B14FF0010000F069F800283FF432 -:10FA80008CAEFE210020FDF7F4FD606880F89061E7 -:10FA900042E0FE21002000F042F87EE6F6F7E8FFA3 -:10FAA000A0681821C27812F03F0F3FF476AE0079BB -:10FAB00031EA00007FF471AE012000F048F8002820 -:10FAC0003FF46BAEFF210120FDF7D3FD606880F8A5 -:10FAD000909121E0F6F7CCFF606890F86801032868 -:10FAE0003FF45BAEA0681821C27812F03F0F3FF4DC -:10FAF00054AE007931EA00007FF44FAE012000F0EF -:10FB000026F800283FF449AEFF210220FDF7B1FDA1 -:10FB10006168022081F890014FF003089BE510B561 -:10FB2000FDF7A7FD2448406890F82810002918BF69 -:10FB300010BD012280F8282090F8340010F0080F42 -:10FB400014BF07200620BDE8104001F0DABB70B5F5 -:10FB5000194D06460421A868FDF75EF90446807831 -:10FB60000221B1EB501F18D0686890F82800A0B9A6 -:10FB700000F0CAFF217811F0800F14BF4FF4967186 -:10FB80001E21B4F80120C2F30C0212FB01F10A1A83 -:10FB9000B2F5877F28BF814201D2002070BD68681E -:10FBA0002188A0F8A511A17880F8A7113046BDE8FA -:10FBB000704000F0C6BF000074010020D0F8E010D3 -:10FBC00049B1D0E939231A448B691A448A61D0E9D2 -:10FBD0003712D16003E0F74AD0F8DC101162D0E9A7 -:10FBE000371009B1086170470028FCD000218161FD -:10FBF00070472DE9FF4F06460C46488883B040F217 -:10FC0000E24148430190E08A002500FB01FA94F8A4 -:10FC1000640090460D2822D00C2820D024281ED025 -:10FC200094F8650024281AD000208346069818B15D -:10FC30000121204602F077FE94F8541094F8550004 -:10FC4000009094F8D0200F464FF47A794AB1012AF7 -:10FC500061D0022A44D0032A5DD0FFDFB5E0012045 -:10FC6000E3E7B8F1000F00D1FFDFD24814F8541FCA -:10FC7000243090F83800FCF7FAFF01902078F7F76D -:10FC8000F9FA4D4600F2E730B0FBF5F1DFF82493C6 -:10FC9000D9F80C0001EB00082078F7F7EBFA0146E1 -:10FCA00014F85409022816D0012816D040F6340062 -:10FCB00008444AF2EF010844B0FBF5F10198D9F885 -:10FCC0001C20411A514402EB08000D18012084F851 -:10FCD000D0002D1D78E02846EAE74FF4C860E7E73A -:10FCE000DFF8D092A8F10100D9F80810014300D143 -:10FCF000FFDFB148B8F1000F016801EB0A0506D03B -:10FD0000D9F8080000F22330A84200D9FFDF032011 -:10FD100084F8D00058E094F86420019D242A05D08E -:10FD200094F86530242B01D0252A3AD1B4F8582014 -:10FD3000B4F8F030D21A521C12B2002A31DB94F817 -:10FD4000F22072B3174694F8F32002B110460090E7 -:10FD5000022916D0012916D040F6340049F608527F -:10FD60008118022F12D0012F12D040F63400104417 -:10FD7000814210D9081A00F5FA70B0FBF9F0054479 -:10FD80000FE04846EAE74FF4C860E7E74846EEE789 -:10FD90004FF4C860EBE7401A00F5FA70B0FBF9F0D9 -:10FDA0002D1AB8F1000F0FD0DFF80882D8F808003C -:10FDB00018B9B8F8020000B1FFDFD8F8080000F267 -:10FDC0002330A84200D9FFDF05B9FFDF2946D4F868 -:10FDD000D400F4F7AEFAC4F8D400B060002030705C -:10FDE0004FF0010886F80480204602F089FEABF14E -:10FDF0000101084202D186F8058005E094F8D000A0 -:10FE000001282FD003207071606A3946009A01F0F2 -:10FE100005FBF060069830EA0B0020D029463046FA -:10FE2000FCF798FD87B2204602F06AFEB8420FD870 -:10FE3000074686F8058005FB07F1D4F8D400F4F7EF -:10FE400078FAB06029463046FCF784FD384487B222 -:10FE50003946204602F067FDB068C4F8D40007B008 -:10FE6000BDE8F08F0220CEE72DE9F04106460C46B2 -:10FE7000012001F0BAFAC5B20B2001F0B6FAC0B207 -:10FE8000854200D0FFDF0025082C7DD2DFE804F09A -:10FE90000461696965C98E96304601F0B5FA06219C -:10FEA000F2F704FC040000D1FFDF304601F0ACFAA9 -:10FEB0002188884200D0FFDF94F8D00000B9FFDF2E -:10FEC000204602F03FFA3B4E21460020B560758087 -:10FED000F561FCF7B7FD00F19807606AB84217D9E1 -:10FEE00094F85500F7F7B7F9014694F854004FF429 -:10FEF0007A72022828D0012828D040F6340008441D -:10FF00004AF247310844B0FBF2F1606A0844C51B6D -:10FF1000214600203561FCF795FD618840F2E24200 -:10FF200051439830081AA0F22330706194F855209C -:10FF300094F85410606A01F071FAA0F29310B06165 -:10FF4000BDE8F041F5F7DDB91046D8E74FF4C860D9 -:10FF5000D5E7BDE8F04102F0C2BBBDE8F041F6F7DD -:10FF60004FBF6FF0040001F040FAC4B2192001F055 -:10FF70003CFAC0B2844200D0FFDF304601F044FAC0 -:10FF80000621F2F793FB00E04BE0040000D1FFDF15 -:10FF9000304601F039FA2188884200D0FFDF204640 -:10FFA000BDE8F0410122002101F055BAF6F7C7FD86 -:10FFB000D3E700009812002084010020304601F0B1 -:10FFC00023FA0621F2F772FB040000D1FFDF30466E -:10FFD00001F01AFA2188884200D0FFDF94F8D0009F -:10FFE000042800D0FFDF84F8D05094F8DA504FF6A0 -:10FFF000FF76202D00D3FFDFFB4820F8156094F832 -:020000040002F8 -:10000000DA00F4F776FC00B9FFDF202084F8DA008C -:100010002046FFF7D3FDF5480078BDE8F041E2F750 -:100020007BBFFFDFBDE8F08170B5EF4C0025483C99 -:1000300084F82C50E07868B1E570FEF7DAF92078A2 -:10004000042803D0A06AFFF7B9FDA562E74800784D -:10005000E2F762FFBDE8704001F00EBA70B5E24C05 -:100060000146483C206AF5F77FF96568A27890FB65 -:10007000F5F172B140F27122B5FBF2F292B2E36B8C -:1000800001FB02F6B34202D901FB123200E000226A -:10009000E2634D43002800DAFFDF2946206AF4F7C7 -:1000A00048F9206270BD2DE9F05FFEF7F5F9824650 -:1000B000CD486C3800F1240881684646D8F81C0009 -:1000C000F4F737F90146306AF5F74EF94FF00009B9 -:1000D000074686F839903C464FF423754E461CE09F -:1000E0000AEB06000079F7F7B6F84AF2B1210144AD -:1000F0004FF47A70B1FBF0F108EB8602404692684B -:1001000011448C4207D3641A90F83910A4F5237473 -:10011000491C88F83910761CF6B298F83A00B042BB -:10012000DED8002C0FDD98F83910404608EB81012D -:100130008968A14207D24168C91BA94200D90D466E -:100140006C4288F8399098F83960C3460AEB060883 -:1001500098F80400F7F77FF801464AF2B12001440D -:100160004FF47A7AB1FBFAF298F80410082909D012 -:10017000042909D00020131804290AD0082908D01E -:10018000252007E0082000E0022000EB4000283096 -:10019000F1E70F20401D4FF4A872082913D004295D -:1001A00014D0022915D04FF0080C282210FB0C2087 -:1001B000184462190BEB860302449868D8468242C1 -:1001C0000BD8791925E04FF0400CEFE74FF0100CF9 -:1001D000ECE74FF0040C1822E8E798F8392098F87B -:1001E0003A604046B24210D2521C88F839203C1B7B -:1001F0009868621984180846F7F72DF84AF2B12179 -:100200000144B1FBFAF0011903E080F83990D8F805 -:100210000410D8F82000BDE8F05FF4F78AB82DE9A3 -:10022000FE4F14460546FEF737F9DFF8BCB10290E1 -:10023000ABF1480B58469BF839604FF0000A0BEBC6 -:1002400086018968CBF84010ECB30446007800279B -:10025000042827D0052840D0FFDFA0463946A069F2 -:10026000F4F767F80746F4F763FB81463946D8F898 -:100270000440F5F779F8401E90FBF4F0C143614368 -:100280003846F4F756F80146C8F820004846F5F716 -:100290006BF8002800DDFFDF012088F8140088F8E3 -:1002A00013008FE0D4F81890D4F8048001F04BF9D3 -:1002B000070010D0387800B9FFDF796978684A46BE -:1002C0000844414600E00EE001F029F907464045A8 -:1002D000C3D9FFDFC1E75746BFE7A06A01F0DAF8EC -:1002E00040F6B837B9E7016A0BEB46000191C08DC3 -:1002F00008B35C46DBF81800FFF7B0FE6168206ABF -:10030000F4F717F8074684F839A0019CD846204630 -:10031000DBF81810F5F728F8814639462046F5F73E -:1003200023F8D8F80420B9FBF2F3B0FBF2F08342D3 -:1003300043D0012142E0F4F7FBFAFFF78FFEFFF70D -:10034000B2FE9BF83910DBF804900BEB81010746F5 -:10035000896800913946DBF82000F5F705F800249C -:100360008046484504DB98FBF9F404FB09F41BE0E4 -:10037000002059469BF8392008E000BF01EB8003BC -:1003800004F523749B68401C1C44C0B28242F5D81B -:1003900052B10120F6F75FFF4AF2B12101444FF458 -:1003A0007A70B1FBF0F004440099A8EB04000C1A39 -:1003B00000D5FFDFCBF84040A7E7002188F81410F4 -:1003C00088F813A09BF802005C46B8B13946206A51 -:1003D000F4F7CAFF0146E26B40F2712042438A42C1 -:1003E00006D2C4F840A009E00413002080010020D8 -:1003F000206C511A884200D308462064AF6085F80B -:1004000000A001202871029F94F839003F1DC05DB3 -:10041000F6F721FF4AF23B5101444FF47A70B1FBE9 -:10042000F0F0216CFB300844E8602078042808D103 -:1004300094F8390004EB4000C08D0A2801D2032053 -:1004400000E00220687104EB4600C08DC0B1284670 -:100450006168FCF77FFA82B20020761C0CE000BFD6 -:1004600004EB4003B042D98D114489B2D98501D340 -:10047000491CD985401CC0B294F83A108142EFD291 -:10048000A868A061E06194F8390004EB4000C18DD8 -:10049000491CC18594F83900C05D082803D00428A0 -:1004A00003D000210BE0082100E0022101EB410113 -:1004B00028314FF4A872082804D0042802D002285A -:1004C00007D028220A44042805D0082803D0252173 -:1004D00002E01822F6E70F21491D08280CD0042855 -:1004E0000CD002280CD0082011FB0020216C88427F -:1004F00008D20120BDE8FE8F4020F5E71020F3E789 -:100500000420F1E70020F5E770B5FB4C061D14F858 -:10051000392F905DF6F79FFE4FF47A7100F2E730C5 -:10052000B0FBF1F0D4F8071045182078805DF6F79D -:1005300086FE2178895D082903D0042903D0002292 -:100540000BE0082200E0022202EB420228324FF4C4 -:10055000A873082904D0042902D0022907D028232F -:100560001344042905D0082903D0252202E01823CA -:10057000F6E70F22521D08290AD004290AD00229C1 -:100580000AD0082112FB0131081A281A293070BD3F -:100590004021F7E71021F5E70421F3E7FEB5044613 -:1005A0000F46012000F021FFC5B20B2000F01DFF17 -:1005B000C0B2854200D0FFDF01260025CE48082FBB -:1005C00050D2DFE807F004304747434F4F4C044612 -:1005D000467406744078002819D1FDF75DFF009538 -:1005E00094F839108DF808104188C90410D0606C57 -:1005F000019003208DF80900BF4824388560C5614B -:1006000025746846FDF78AFC002800D0FFDFFEBD98 -:10061000FFF77AFF0190207D10B18DF80950EBE7CC -:100620008DF80960E8E70446407840B1207C08B9BD -:10063000FDF7B4FE6574BDE8FE40F4F783B8A67418 -:10064000FDF779FD0028E2D0FFDFFEBDBDE8FE40EA -:10065000F6F7D6BB2046BDE8FE4000F07DBFBDE802 -:10066000FE40E1E4FFDFFEBDA34950B101228A70E4 -:100670004A6840F27123B2FBF3F202EB0010C86348 -:1006800070470020887070472DE9F05F894640F27E -:100690007121994E484300250446706090462F46CC -:1006A000D0074AF2B12A4FF47A7B0FD0B9F8000094 -:1006B0004843B0600120F6F7CEFD00EB0A01B1FB24 -:1006C000FBF0241AB7680125A4F523745FEA0870CB -:1006D00016D539F8151040F27120414306EB850814 -:1006E0000820C8F80810F6F7B6FD00EB0A01B1FBC8 -:1006F000FBF0241AD8F80800A4F5237407446D1CF5 -:10070000A7421AD9002D18D0391BB1FBF5F0B268F9 -:10071000101AB1FBF5F205FB1212801AB06001202D -:1007200009E000BFB1FBF5F306EB80029468E31A21 -:10073000401CC0B29360A842F4D3BDE8F09F2DE9FD -:10074000F0416D4C00262078042804D0207805283C -:1007500001D00C2066E401206070607C002538B177 -:10076000EFF3108010F0010F72B610D001270FE0E8 -:10077000FDF792FE074694F82400F4F735FC7888DC -:10078000C00411D000210320FDF78BFE0CE00027F0 -:10079000607C38B1A07C28B1FDF700FE6574A574BB -:1007A000F3F7D0FF07B962B694F82400F4F769FEB6 -:1007B00094F82C0030B184F82C502078052800D013 -:1007C000FFDF0C26657000F057FE30462AE44A48E9 -:1007D00010B5007808B1FFF7B2FF00F0EDFE464912 -:1007E00000202439086210BD10B5444C58B10128CE -:1007F00007D0FFDFA06841F66A01884200D3FFDF1F -:1008000010BD40F6C410A060F4E73C4908B508707C -:10081000394900200870487081F82C00C8700874AD -:10082000487488742022886281F824202439487012 -:100830004FF6FF7211F16C0121F81020401CC0B27C -:100840002028F9D30020FFF7CFFFFFF7C0FF1020CB -:10085000ADF80000012269460420FFF715FF08BD2E -:100860007FB5254C05460E46207810B10C2004B00B -:1008700070BD95F8552095F85410686A00F0E3FEB5 -:10088000C5F8E400A56295F8D00000B1FFDF1A4971 -:1008900000202439C86105212170607084F82C0083 -:1008A000014604E004EB4102491CD085C9B294F82A -:1008B0003A208A42F6D284F839003046FFF7D4FE57 -:1008C0000F48F3F7BAFF84F82400202800D1FFDF97 -:1008D000F4F72EF8A06194F8241001226846FFF77F -:1008E0009EFC00B9FFDF94F824006946F4F76AFA29 -:1008F00000B9FFDF0020BAE7BC1200208001002011 -:100900009D050200F84810B5007808B1002010BD20 -:100910000620F1F765FE80F0010010BD38B5F24DFC -:100920000446287800B1FFDF0020009023780246BB -:100930000146DB0705D06088A188ADF800100122D0 -:100940001146491E85F83A106946FFF79DFE0020C2 -:1009500038BD1FB511B1112004B010BDE24C217893 -:1009600009B10C20F8E700226270042121701146C1 -:1009700005E000BF04EB4103491CDA85C9B294F8D5 -:100980003A308B42F6D284F83920FFF76DFED74813 -:10099000F3F753FF84F82400202800D1FFDF00F094 -:1009A000D2FD10B1F3F7C4FF05E0F3F7C1FF40F645 -:1009B000B831F3F7BEFCA06194F824100122684618 -:1009C000FFF72DFC00B9FFDF94F824006946F4F727 -:1009D000F9F900B9FFDF0020BEE770B5C24CA16A8B -:1009E0000160FFF7ACFE050002D1A06AFFF7E6F850 -:1009F0000020A062284670BD7FB5BB4C2178052938 -:100A000001D00C2033E7B8492439C860A06A00B986 -:100A1000FFDFA06A90F8D00000B1FFDFA06A90F875 -:100A2000DA00202800D0FFDFB148F3F706FFA16A03 -:100A30000546202881F8DA000E8800D3FFDFAA4897 -:100A4000483020F81560A06A90F8DA00202800D11C -:100A5000FFDF002301226846A16AFFF7CAF8A06AF7 -:100A6000694690F8DA00F4F7ADF900B9FFDF00202D -:100A7000A062FCE69C4924394870704710B540F2EA -:100A8000E24300FB03F4002000F0DDFD844201D9C5 -:100A9000201A10BD002010BD70B50D460646014657 -:100AA0000020FBF7CFFF044696F85500F6F7D3FB7E -:100AB000014696F854004FF47A72022815D00128A6 -:100AC00015D040F6340008444AF247310844B0FBE0 -:100AD000F2F1708840F271225043C1EB4000A0F265 -:100AE0002330A54206D2214605E01046EBE74FF43D -:100AF000C860E8E72946814204D2A54201D22046D7 -:100B000000E02846706270BD70B5F5F7D9FC044668 -:100B1000F6F795FB01467448243882684068101A3D -:100B20000E18204600F058FC05462046F6F793FBC9 -:100B3000281A4FF47A7100F2E730B0FBF1F030443C -:100B400070BD70B50546FDF7A7FC674900782439EC -:100B50008C689834072D2CD2DFE805F0043030255E -:100B60002830300014214FF4A873042810D0082234 -:100B7000082809D02A2102280FD011FB02400022A8 -:100B80002823D118441815E0402211FB0240F8E751 -:100B9000102211FB02402E22F3E7042211FB024037 -:100BA00000221823EDE704F5317403E004F5B07476 -:100BB00000E0FFDF4C48006CA04201D9012070BD6D -:100BC000002070BD70B5484C243C607870B1D4E909 -:100BD00004512846A268FBF7F1FE2061A84205D027 -:100BE000A169401B0844A061F4F78BFB2169A06850 -:100BF000884201D8207808B1002070BD012070BD66 -:100C00002DE9FF47074615460E461C461846F6F7DF -:100C100016FB07EB46014618204600F0DDFB4AF2C2 -:100C2000C5714FF47A790144C846B1FBF8F0064427 -:100C30002D4860362438806800EB050A2046F6F718 -:100C4000FEFA371A204600F0C7FB05462046F6F7A5 -:100C500002FB291AB1FBF8F0A7EB000C18200225C3 -:100C60004FF4C8714FF4BF724FF02808082C2ED0F3 -:100C7000042C29D00027022C2CD0082317F1280798 -:100C800003EB830307EB83039C440023082C31D040 -:100C9000042C22D00027022C32D040464FF0080806 -:100CA00007F5B07708EB08184044874235D2082C86 -:100CB0002DD0042C28D00020022C2BD0082728303F -:100CC00007EB0717384436E017461023D8E70F46DE -:100CD0004023D5E704231837D2E7104640F2EE3719 -:100CE0004FF01008DEE70000BC1200209D05020056 -:100CF00069FE010008464FF435674FF04008D1E720 -:100D00004FF00408B437CDE710461027D8E708465F -:100D10004027D5E704271830D2E7082C46D0042C0A -:100D200041D00027022C44D008202837C0EBC0084F -:100D300008EB401038446044082C40D0042C3BD0D1 -:100D40000021022C3DD0082211F1280102EB821271 -:100D500001EB8201471801208DF804008DF8055041 -:100D6000FF4D8DF80030514607F22727E869F3F769 -:100D7000E0FACDE902072046F6F76DFA4AF23B5158 -:100D80000144B1FBF9F0381AFB38286402986E640C -:100D9000E86195F824006946F4F714F8002800D1BA -:100DA000FFDFBDE8FF8717461020BFE70F46402052 -:100DB000BCE704201837B9E711461022C6E74022E5 -:100DC000C4E704221831C1E72DE9FE4F04461D4651 -:100DD000174688464FF001091846F6F730FADFF853 -:100DE00080B30146ABF1240B07EB4802DBF80800A7 -:100DF0005E46204410440F18284600F0EDFA00F635 -:100E0000FB014FF47A7AB1FBFAF0384400F1200884 -:100E10002846F6F714FAB2680146A8EB0200001B58 -:100E2000461A284600F0D8FA07462846F6F713FA7D -:100E3000391AB1FBFAF0A6EB000C182028274FF462 -:100E4000C8714FF4BF72082D2CD0042D27D0002676 -:100E5000022D2AD00823283603EB830306EB8303F5 -:100E60000CEB0306082D28D0042D21D00023022DE1 -:100E700028D03846082703F5B07300BF07EB0717E3 -:100E8000384483422AD2082D22D0042D1DD00020C0 -:100E9000022D20D00823283003EB03132CE0164644 -:100EA0001023D9E70E464023D6E704231836D3E7AC -:100EB000104640F2EE331027E0E708464FF4356362 -:100EC0004027DBE70427B433D8E710461023E3E7D5 -:100ED00008464023E0E704231830DDE7082D47D01B -:100EE000042D42D00020022D45D0082310F1280007 -:100EF000C3EBC30707EB431318443044082D40D01D -:100F0000042D3BD00021022D3DD0082211F12801F3 -:100F100002EB821201EB8201451805F596750C98DB -:100F2000F6F799F94AF23B510144B1FBFAF08C4EC5 -:100F3000FB3004F1FB02316C5F460844DBF808101B -:100F40004B191A44824228D9621911440D1AFB35F3 -:100F5000E1F79CFEB968084461190844B0F1807F4C -:100F600036D2642D12D2642011E010461023BFE760 -:100F700008464023BCE704231830B9E71146102285 -:100F8000C6E74022C4E704221831C1E72846F4F737 -:100F900012FAE8B1306C28443064E1F777FEB968A2 -:100FA000293821440844CDE9000896F839008DF825 -:100FB000080002208DF809006846FCF7AFFF00B179 -:100FC000FFDFFDF7B8F800B1FFDF4846BDE8FE8F50 -:100FD0004FF00009F9E71FB500F03BFB604C60786B -:100FE00080B994F8241000226846FFF718F938B148 -:100FF00094F824006946F3F7E5FE18B9FFDF01E035 -:101000000120E070F3F79EFB00206074A0741FBD08 -:101010002DE9F84FFDF740FA0646451CC078400917 -:101020000AD001280AD000202978824608064FF409 -:10103000967405D41E2004E00120F5E70220F3E7B2 -:101040002046B5F80120C2F30C0212FB00F7C809D4 -:1010500001D010B103E01E2401E0FFDF0024FFF700 -:1010600053FDA7EB00092878B77909EB0408C0F312 -:10107000801010B120B1322504E04FF4FA7501E080 -:10108000FFDF00250C2F00D3FFDF3648364A30F84B -:101090001700291801FB0821501CB1FBF0F5F5F7EA -:1010A0000FFAF6F7D8F84FF47A7100F27160B0FBDE -:1010B000F1F1A9EB0100471BA7F15900103FB0F572 -:1010C000237F11D3264E717829B90246534629460B -:1010D0002046FFF795FD00F0BCFAF3F733FB002044 -:1010E0007074B074BDE8F88F307800905346224693 -:1010F00029463846FFF768FE0028F3D10121022077 -:10110000FDF7CFF9BDE8F84F65E710B504460129B2 -:1011100003D113482438007830B1042084F8D0007B -:10112000BDE81040F3F70EBB00220121204600F07D -:1011300092F934F8580F401C2080F1E72DE9F04176 -:101140000746FDF7A9F9050000D1FFDF29783846E9 -:10115000FBF78DFD024C0146A4F12406E06905E091 -:10116000BC120020285202003F420F00B268024425 -:101170006FB32878082803D0042803D000270BE099 -:10118000082300E0022303EB430728374FF4A8733A -:10119000082804D0042802D0022810D028233B4479 -:1011A00008280ED004280ED002280ED05FF00800C8 -:1011B000C0EBC00707EB40101844983009E0182333 -:1011C000EDE74020F4E71020F2E70420F0E74FF4C9 -:1011D000FC701044471828783F1DF6F73CF802468B -:1011E00028784FF47A7102281DD001281DD040F6CE -:1011F000340010444AF2EF021044B0FBF1F03A1A06 -:10120000A06A40F2E241B0464788D0304F43316A8D -:1012100081420DD03946606B00F081F90646B84234 -:1012200007D9FFDF05E00846E3E74FF4C860E0E7D1 -:101230000026FA488068864207D2A16A40F27122ED -:101240004888424306EB420604E040F2E240B6FB27 -:10125000F0F0A16AC882A06A297880F85410297831 -:1012600080F8551005214175C08A6FF41C71484300 -:1012700006EB400040F63541C8F81C00B0EB410FCA -:1012800000D3FFDFBDE8F08110B5052937D2DFE8D4 -:1012900001F00509030D3100002100E00121BDE846 -:1012A000104032E7032180F8D01010BD044640887A -:1012B00040F2E2414843D949091D0860D4F8F800DA -:1012C0000089E082D4F8F80080796075D4F8F800DD -:1012D00040896080D4F8F8008089A080D4F8F800B4 -:1012E000C089E0802046A16AFFF7D6FB022084F87F -:1012F000D00010BD816ABDE81040FFF7CDBBFFDF15 -:1013000010BD70B5C64C0928A1683FD2DFE800F0D7 -:10131000050B0B15131538380800BDE870405AE668 -:10132000BDE8704074E6022803D00020BDE870409C -:1013300004E70120FAE7E16070BD032802D0052828 -:101340001CD000E0E160002600F083F9B44D0120DC -:10135000243585F82C0085F83860A86AE9690026EC -:10136000C0F8D41080F8D060E068FFF745FB00B10A -:10137000FFDFF3F7E7F96E74AE7470BD0126E3E7A3 -:10138000A6480078BDE87040E1F7C6BDFFDF70BD3C -:10139000A3494860704770B5A14D0446B1B14FF400 -:1013A0007A76012903D0022905D0FFDF70BD1846E7 -:1013B000F5F77BFF05E06888401C68801046F5F76C -:1013C00059FF00F2E730B0FBF6F0201AA86070BDBC -:1013D0009348243000787047082803D0042801D0AF -:1013E000F5F739BF4EF628307047002804DB00F1CE -:1013F000E02090F8000405E000F00F0000F1E0208C -:1014000090F8140D4009704710B50446202800D309 -:10141000FFDF83486C3030F8140010BD70B505460E -:101420000C461046F5F717FF4FF47A71022C0DD0D9 -:10143000012C0DD040F6340210444AF247321044D9 -:10144000B0FBF1F0284400F2931070BD0A46F3E7B8 -:101450004FF4C862F0E71FB513460A46044601463A -:101460006846FEF7C6FB94F8DA006946F3F7AAFC73 -:10147000002800D1FFDF1FBD70B5694C0025243462 -:10148000257094F82400F3F734FA00B9FFDF84F8EC -:10149000245070BD2DE9F041050000D1FFDF604A06 -:1014A0000024D5F8E4602046631E116A08E08869CC -:1014B000B04203D3984201D203460C460846C9689D -:1014C0000029F4D104B904460021C5F8E040D03524 -:1014D000CCB1E068E560E86000B105612E6988463E -:1014E000A96156B1B06930B16F69B84200D2FFDF6F -:1014F000B069C01BA861C6F81880494D24355CB19D -:10150000207820B902E0E9601562E7E7FFDF616952 -:10151000606808446863B5E6C5F83480B2E610B583 -:101520000C4601461046F3F71FFF002806DA211A81 -:10153000491EB1FBF4F101FB040010BD90FBF4F176 -:1015400001FB140010BD3648016A002001E0084686 -:10155000C9680029FBD170477FB504466FF00400CD -:10156000FFF743FFC5B21920FFF73FFFC0B2854226 -:1015700000D0FFDFFCF790FF4088C00407D00121B6 -:101580000320FCF78EFF25480078E1F7C5FC002218 -:1015900021466846FEF743FE38B169462046F3F718 -:1015A00011FC002800D1FFDF7FBD1D49012024313F -:1015B000C870FEF739FD7FBD2DE9FE43184D0120AF -:1015C000287000264FF6FF7420E00621F1F76EF830 -:1015D000070000D1FFDF97F8DA00D037F3F751FFAB -:1015E00007F80A6BA14617F8DA89B8F1200F00D383 -:1015F000FFDF0B4A6C3222F8189097F8DA00F3F705 -:1016000078F900B9FFDF202087F8DA006946062064 -:10161000F0F7D5FF78B1FFDF0DE00000800100207A -:1016200098120020029830B190F8D01019B10088BB -:10163000A042CAD104E06846F0F79FFF0028F1D02D -:101640002E70BDE8FE8310B5FFF7E8FE00F5C87008 -:1016500010BD0548002190F8392000EB4200C185FB -:1016600002480078E1F758BCBC120020800100203D -:10167000F4490C28896881F8CB001ABF1328182870 -:1016800070474FF00002112810D0072808BF70479C -:1016900015280BD001281ABF002802287047A1F88E -:1016A00084204FF0010081F888007047A1F88A205B -:1016B000704770B5E34CA1680A88A1F83E2181F813 -:1016C0003C0191F85400012808BF012503D00228ED -:1016D00014BFFFDF0225A06880F8405190F8550044 -:1016E000012808BF012503D0022814BFFFDF02250F -:1016F000A068012180F8415180F83A11002180F85A -:101700000E11E078BDE87040E1F706BCCD4A012932 -:1017100092681BD0002302290FD0032922D030B3B6 -:1017200001282FD0032818BF704792F864001328AF -:101730001CBF1628182805D1704792F8CB00002846 -:1017400008BF7047D2F8F8000370704792F8CB00DA -:10175000012808BF704700BFD2F8FC000178491E7D -:101760000170704792F8CB000328EBD17047D2F894 -:10177000F800B2F858108288891A09B20029A8BF67 -:1017800003707047B2F85800B2F80211401A00B264 -:101790000028E1DA70472DE9F041AA4C0026032722 -:1017A000D4F808C0012590B12069C0788CF8CA002F -:1017B00005FA00F010F4000F08BFFFDFA06880F802 -:1017C0006470A0F8846080F88850BDE8F081002340 -:1017D0009CF8652019460CF15800FBF751F80028D9 -:1017E00004BF6570BDE8F0816078002818BFBDE8CF -:1017F000F0812069C178A06880F8C91080F8657010 -:10180000A0F88A6080F88C50BDE8F08170B58D4CEE -:1018100084B0207910F0010F04BF04B070BD2069BE -:1018200000230521C578A06890F864205830FBF7A4 -:1018300027F8002818BF062D09D026DC022D1CBF72 -:10184000042D052D03D0607840F0080060706078AA -:1018500000281CBF04B070BD2069FBF7C3FC002842 -:1018600000F01B832069C078801E162880F0158345 -:10187000DFE800F011F18CB0DF2FF1F0F17FEFDC49 -:10188000F1F1F1CFEEEDECEBEAE70B2D1CBF0D2DE6 -:10189000112DD8D1DBE7A0684FF000034FF0010114 -:1018A00090F8672000F15800FAF7EAFF002840F0AE -:1018B00067832069FBF7FAFCA16881F8F60007202E -:1018C00081F86700002081F88C0081F8880000F022 -:1018D00057BBA0680921002390F864205830FAF71C -:1018E000CFFF18B120690079122812D0A0680A2110 -:1018F000002390F864205830FAF7C2FF18B120692D -:10190000007914281DD020690079162840F038830A -:1019100021E0A0680125002390F8642009215830B7 -:10192000FAF7AEFF002808BF657000F029836078E1 -:10193000002840F02583A16881F87C0081F88800A8 -:1019400044E0A168002081F86400A1F8840081F8D7 -:10195000880000F045BAA06890F864101F2940F094 -:101960000F83002180F8641080F888101A2000F09E -:1019700005BBA06890F864100F295FD16178002939 -:1019800040F0FE8280F8691012213EE0A06890F8D5 -:101990006410132952D16178002940F0F182D0F807 -:1019A000F81000884988814218BFFFDFA068D0F88E -:1019B000F80000F126012069FBF7A5FCA06800F102 -:1019C000C4012069FBF7A7FCA168162081F8640018 -:1019D00000F0D6BAA26892F8640016282ED160787A -:1019E000002840F0CD82D2F8F80002F1B00300F1F7 -:1019F0001E0100220E30FAF7BDFEA0680021C0E9EA -:101A00002811012180F86910182180F8641000F075 -:101A1000B7BA2069FBF7FFFC032840F0B1822069C8 -:101A2000FBF7FDFC01F0DAFB00F0AABA20690079AF -:101A3000F8E7A06890F864101A290DD0022000F091 -:101A4000D6B95AE28C010020D3E19FE140E10EE1DA -:101A500023E14DE0BEE0C6E16178002940F09082CC -:101A6000002580F88D5080F88850D0F8F810008854 -:101A70004988814218BFFFDFA068D0F8F8100D70C8 -:101A8000D0F844110A78002A18BFFFDF2BD190F854 -:101A90008E207AB180F88E500288CA80D0F8441126 -:101AA0000D71D0F844210E211170D0F84421018825 -:101AB000518010E00288CA80D0F844110D71D0F82E -:101AC000442101211172D0F844210D211170D0F868 -:101AD0004421018851800088F0F71AFFF0F7B2FB2B -:101AE000E078E1F719FAA06880F8645000F048BA8D -:101AF000A0680023194690F865205830FAF7C0FE18 -:101B000048B9A0680023082190F864205830FAF7FB -:101B1000B7FE00287ED06078002840F03182A068AF -:101B200090F8900010F0020F14D12069FBF7F6FB3B -:101B3000A16881F891002069B0F80520A1F89220F1 -:101B4000B0F80700A1F8940091F8900040F002006E -:101B500081F89000A06890F8901011F0010F12D158 -:101B600090F86520002319465830FAF789FE0028BE -:101B700008BFFFDF0121A06880F8651080F88C1095 -:101B80000021A0F88A10A06890F86410012907D1FC -:101B9000002180F8641080F88810E078E1F7BCF943 -:101BA000A168D1F8F800098842888A4204BF017808 -:101BB000042940F0E5814FF000050570E078E1F779 -:101BC000ABF9A06890F86410002908BF80F888502D -:101BD00000F0D6B9A0680023072190F8642058309F -:101BE000FAF74EFEB0B16078002840F0C98102A932 -:101BF0002069FBF7CDFB9DF80800002500F02501CA -:101C0000A06880F896109DF8091001F0410180F855 -:101C1000971000E04EE080F88850D0F8F810008867 -:101C20004988814218BFFFDFA068D0F8F8100D7016 -:101C3000D0F844110A78002A18BFFFDF7FF453AFB1 -:101C40000288CA80D0F844110D71D0F84411029A6C -:101C50008A60039ACA60D0F8442108211170018873 -:101C6000D0F844014180E078E1F756F93BE7A068FD -:101C70000023092190F864205830FAF701FEC8B11A -:101C80006078002840F07C81A16881F87C0081F8B0 -:101C9000880081F8640000F073B9A0680023194639 -:101CA00090F865205830FAF7EBFD18B1607818B15C -:101CB00000F066B901209AE0A0680021A0F88A101F -:101CC000012180F88C10022180F8651000F058B9CD -:101CD000A0680023194690F865205830FAF7D0FD27 -:101CE00088B32069FBF73EFB00287CD0A5682069FB -:101CF000FBF734FB2887A5682069FBF72BFB688777 -:101D0000A5682069FBF72CFBA887A5682069FBF76D -:101D100023FBE887A06890F864101C2913BF90F893 -:101D20004E10012180F84E10012907D090F80511BE -:101D3000002904BF90F80411002905D04FF01E01BE -:101D400080F865101AE04FE04FF01D0180F8651033 -:101D50000288A0F82A21028FA0F82C21428FA0F837 -:101D60002E21828F00F58A71A0F83021C08FC883A0 -:101D70004FF001000875E078E1F7CEF8A068002187 -:101D8000A0F88A10012180F88C10F9E0A0680023E7 -:101D90000A2190F864205830FAF772FD20B32069C8 -:101DA000FBF7E0FAA8B1A5682069FBF7D7FA288706 -:101DB000A5682069FBF7CEFA6887A5682069FBF75C -:101DC000CFFAA887A5682069FBF7C6FAE88700F074 -:101DD000FEFEA068002180F8881080F8641000BF23 -:101DE00000F0C6FECCE058E0607840F00100607082 -:101DF000C6E0A0680023194690F865205830FAF72D -:101E00003FFD00283FF456AFA06890F864002328F7 -:101E100012BF2428607840F02000E8D06846F5F72B -:101E200052FB002808BF002104D0009802A9C07806 -:101E30008DF80800A06801AB162290F86400FAF74C -:101E4000FAFE88B1A0689DF80420162180F8EC20E5 -:101E500080F8ED10192180F86510012180F88C10B0 -:101E60000021A0F88A108BE02069FBF796FAA0B158 -:101E70002169087900F00702A06880F850204979AC -:101E800001F0070180F8511090F80F31002B04BFCA -:101E900090F80E31002B05D024E04FF00000FFF742 -:101EA0007AFC6DE090F855C000F15403944501BFF1 -:101EB0001A788A42012180F87D1013D00288A0F898 -:101EC000362190F8502000F58A7180F8382190F87A -:101ED000510081F825004FF0010081F82000E078E2 -:101EE000E1F71AF8A068212180F86510012180F837 -:101EF0008C100021A0F88A1042E0A06890F86400DD -:101F00001F287FF471AF2069FBF751FA88B320696D -:101F1000A2680179407901F0070161F307052946BC -:101F200000F0070060F30F21012082F888000025EF -:101F3000A2F88450232082F86400566DD2F8100174 -:101F4000FAF731FEF2B2C1B28A4207BFA16881F846 -:101F5000F250A26882F8F210C6F30721C0F30720FE -:101F6000814219BFA16881F8F300A06880F8F3509E -:101F700006E0FFE70120FFF70EFC1E20FFF799FBAC -:101F8000A068D0E92A12491C42F10002C0E92A12D5 -:101F900004B070BD2DE9F047FE4D04464FF0000738 -:101FA000687808436870287910F0200F2846806808 -:101FB00018BFA0F87E7004D1B0F87E10491CA0F8BC -:101FC0007E1090F86A10012639B990F86420002339 -:101FD00006215830FAF754FC58B3A88810F4006F63 -:101FE00007D0A86890F86A10002918BFA0F876708A -:101FF0001FD1A868B0F87610491C89B2A0F87610F5 -:10200000B0F878208A422CBF511A00218288521DD4 -:102010008A4228BF80F87C60B0F87610B0F878204B -:10202000914206D3A0F8767080F81A61E878E0F75C -:1020300073FF287910F0600F08D0A86890F8681036 -:1020400021B980F868600121FFF71EF94FF00808F8 -:10205000002C56D16878002851D1287910F0040F4F -:102060000DD0A86890F86400032808BFFFDFA868B7 -:1020700090F86710072904BF2E7080F8677001F090 -:10208000FEF8287910F0080F19D06878B8B9A86858 -:10209000002190F8CB00FFF739FBA86890F8CB003F -:1020A000FE2808BFFFDFFE21A86880F8CB1090F85B -:1020B0006710082903D10221297080F86770FFF7A3 -:1020C000A5FBA87810F0080F16D0A86800230521FA -:1020D00090F864205830FAF7D3FB50B185F80180AE -:1020E000A868D0F8441108780D2808BF00200870AF -:1020F00002E00020F8F7B8FFA86800F0F8FF00F051 -:10210000B0FDA868A14600F1580490F8F40030B979 -:10211000E27B002301212046FAF7B2FB10B1608D6B -:10212000401C60853D21B9F1000F18D128780228A4 -:1021300008BF16200ED0012804BFA86890F8F6004A -:1021400008D06878E8B110F0140F1CBF1E2020776B -:1021500002D005E0207703E010F0080F02D02177CD -:10216000E67641E010F0030F03D02A202077E676D0 -:102170003AE010F0200F08BFFFDF23202077E6763B -:1021800032E094F8300028B1A08D411CA185E18D8A -:10219000884213D294F8340028B1608E411C6186C5 -:1021A000E18D88420AD2618D208D814203D3AA68D5 -:1021B00092F8F42012B9E28D914203D322202077C5 -:1021C000E67611E0217C31B1E18C814228BF84F8B0 -:1021D0001C80C5D206E0E08C062803D33E20207781 -:1021E000E67601E0E07EA0B12773677327740221D1 -:1021F000A868FFF749F8A86890F8CB10012904D126 -:10220000D0F8FC000178491E0170E878E0F784FE00 -:1022100003E00021A868FFF737F8BDE8F047F5F7BD -:1022200061B95C4A51789378194314D11146012859 -:10223000896809D0107910F0040F03D091F8670075 -:10224000072808D001207047B1F84800098E88425D -:1022500001D8FEF7B7BC0020704770B54D4C06465C -:102260000D46A0883043A08016F0020F04D016F06F -:10227000010F18BFFFDFE56016F0010F18BF2561E1 -:1022800016F0020F10D0E878062802D00B2837D0BD -:102290000AE0A06890F86410182905D10021C0E96F -:1022A0002A11012180F86A1016F0800F1CBF082047 -:1022B000A07016F4806F08BF70BDA268B2F8580015 -:1022C00091880844801DE97880B2012908BFA2F8EE -:1022D000020107D0002904BFD2F8F810888001D08D -:1022E000182915D0E978284601291CD011B31829DE -:1022F00018BF70BDB2F8F010BDE87040FBF769B8C8 -:10230000A06890F86410122908BF0021CCD1C9E759 -:1023100092F8F210002902BF92F8F3100029002071 -:10232000A2F8F000DEE7B2F8021141724FEA112183 -:10233000A97270BDD2F8F810898841734FEA112153 -:10234000A97370BDF0B5134C85B00026A060A680BF -:102350006670A670054626700088F5F78BF8A068B1 -:102360000088F5F7ADF8B5F8D800A168401C82B236 -:1023700001F15800FAF77AF8002818BFFFDF95F846 -:10238000650024280DD1B5F85810B5F8F000081AEA -:1023900000B201E08C0100200028A4BF6078002872 -:1023A00006D095F86400242818BF25283BD119E0F1 -:1023B000A06890F8F210002908BF90F8541080F837 -:1023C000541090F8F310002908BF90F8551080F8C9 -:1023D00055100020FFF76DF985F86560A16881F858 -:1023E0007D6020E0B5F85810B5F8F000081A00B28A -:1023F0000028A4BF6078002815D1A06890F8F210DA -:10240000002908BF90F8541080F8541090F8F31089 -:10241000002908BF90F8551080F855100020FFF7EC -:1024200048F985F86460A5F8D860A06890F888102D -:1024300039B1B0F88410B0F88620914224BF05B0BD -:10244000F0BD90F88C1039B1B0F88A10B0F8862041 -:10245000914224BF05B0F0BDB0F88220B0F88010E2 -:102460008A4224BF05B0F0BD90F868209AB3B0F856 -:102470007E208A4224BF05B0F0BD00BF90F8CB702B -:10248000FE2F00F013816846F4F7F7FF002808BF1D -:10249000FFDF2221009802F0B4FB03210098FAF735 -:1024A00089FE0098017821F0100101703946FAF791 -:1024B000A6FE192F80F0D880DFE807F02820144608 -:1024C000D6D6D71A71D6D7D764D6D6D6D6C9D7D747 -:1024D0007B94ADD6B600B0F87E10062924BF05B0B7 -:1024E000F0BDCBE7A168009891F8F5100171BCE050 -:1024F000A068009990F8CC000871B6E0A068D0F808 -:10250000FC00411C0098FAF7C6FEAEE0A1680098F6 -:10251000D1F8F82092790271D1F8F820128942712D -:10252000120A8271D1F8F8205289C271120A02721D -:10253000D1F8F82092894272120A8272D1F8F8100A -:10254000C989FAF77FFE90E0A068D0F8F800011D75 -:102550000098FAF7ADFEA068D0F8F80000F10C0181 -:102560000098FAF7AFFEA068D0F8F80000F11E015D -:102570000098FAF7ADFEA06800F1C0010098FAF7E4 -:10258000B5FE72E06269009811780171918841711D -:10259000090A81715188C171090A017265E0FD491A -:1025A000D1E90001CDE9020102A90098FAF7B8FECD -:1025B0005BE0A068B0F844100098FAF7BBFEA06892 -:1025C000B0F846100098FAF7B9FEA068B0F84010CD -:1025D0000098FAF7B7FEA068B0F842100098FAF732 -:1025E000B5FE42E0A068B0F840100098FAF7AAFEE5 -:1025F000A068B0F842100098FAF7A8FEA068B0F8FA -:1026000044100098FAF796FEA068B0F846100098BB -:10261000FAF794FE29E0A168009891F81021027160 -:1026200091F81111417120E0A06890F8F300FAF7D9 -:10263000B5FA01460098FAF7C8FEA06890F8F200D3 -:10264000FAF7ACFA01460098FAF7BBFE0DE0A06875 -:1026500090F8ED100098FAF7DCFEA06890F8EC1006 -:102660000098FAF7DAFE00E0FFDFF4F719FF002820 -:1026700008BFFFDF0098C178012903D049B11829AC -:102680000FD013E0A168B1F802114172090A8172FA -:102690000CE0A168D1F8F81089884173090A8173A8 -:1026A00004E0A168B1F8F010FAF793FEBA48009080 -:1026B000BA4BBB4A29463046F8F724FCA0680023F1 -:1026C000052190F864205830FAF7DAF8002804BFA2 -:1026D00005B0F0BD05B0BDE8F040F8F7ECB9B14881 -:1026E000806890F8881029B1B0F88410B0F886207E -:1026F000914219D290F88C1029B1B0F88A10B0F834 -:102700008620914210D2B0F88220B0F880108A4220 -:102710000AD290F86820B0F87E001AB1884203D23D -:10272000F8F77EBC0628FBD30020014632E470B5E2 -:102730000C46064615464FF4A471204602F083FA73 -:102740002680002D08BFFFDF2868C4F8F8006868FD -:10275000C4F8FC00A868C4F8440170BDF0F7AFB835 -:102760002DE9F0410D4607460621EFF79FFF041EB5 -:1027700008BFBDE8F081D4F844110026087858B1AC -:102780004A8821888A4207D1092810D00E281DD0F6 -:102790000D2832D008284CD094F81A01002857D0C0 -:1027A0006E701020287084F81A61AF803EE06E7061 -:1027B00009202870D4F84401416869608168A960E3 -:1027C0008089A881D4F8440106702FE00846F0F70C -:1027D0009FF80746EFF74BFDB0B96E700E202870DA -:1027E000D4F8440140686860D4F844010670384663 -:1027F000EFF737FD0120BDE8F0810846F0F788F8D3 -:102800000746EFF734FD10B10020BDE8F0816E708F -:102810000D202870D4F8440141686960008928813E -:10282000D4F8440106703846EFF71BFD0120BDE8DF -:10283000F0816E7008202870D4F8440141688268E5 -:10284000C0686960AA60E860D4F844010670EDE7EA -:1028500094F81C01B0B16E701520287094F81C011A -:102860000028E3D084F81C61D4F81E016860D4F815 -:102870002201A860B4F82601A88194F81C01002860 -:10288000F0D1D3E794F8280170B16E701D20287044 -:1028900084F82861D4F82A016860D4F82E01A86071 -:1028A000B4F83201A881C1E794F8340140B16E70E8 -:1028B0001E20287084F83461D4F836016860B5E7CA -:1028C00094F8140180B16E701B20287094F81401E4 -:1028D0000028ABD084F81461D4F81601686094F82D -:1028E00014010028F6D1A1E794F83A01002808BFA6 -:1028F000BDE8F0816E701620287094F83A01002827 -:1029000094D000BF84F83A61D4F83C016860B4F810 -:102910004001288194F83A010028F3D186E7214A42 -:102920005061D17070472DE9F0470446481E85B2CA -:1029300038BFBDE8F08704F108080126DFF864908D -:102940004FF0090A5FF00007B4F8D800401CA4F863 -:10295000D800B4F87E00401CA4F87E0094F86A0009 -:1029600040B994F864200023062104F15800F9F7D7 -:1029700087FF30B3B4F87600401C80B2A4F876002C -:10298000B4F8781081422CBF0A1A0022A3885B1D7C -:10299000934209E040520200951F020023220200E8 -:1029A0005B2202008C01002028BF84F87C608842F2 -:1029B00007D3A4F8767084F81A6199F80300E0F759 -:1029C000ABFA94F8880020B1B4F88400401CA4F855 -:1029D000840094F88C0020B1B4F88A00401CA4F85C -:1029E0008A0094F8F40040B994F86720002301218C -:1029F00004F15800F9F744FF20B1B4F88200401CFC -:102A0000A4F8820094F864000C2802D00D2820D08D -:102A100067E0B4F85800411CB4F80201814260D16B -:102A2000D4F8FC00411C404602F021FA0221204665 -:102A3000F9F73FFCD4F8FC000078002808BFFFDF5E -:102A40000121FE20FEF762FE84F8647084F898602D -:102A500047E0B4F85800411CD4F8F800808881425F -:102A60003FD1D4F844010178002918BFFFDF22D1FB -:102A70002188C180D4F8F8004189D4F8440101814B -:102A8000D4F8F8008189D4F844014181D4F8F800E1 -:102A9000C189D4F844018181D4F844010771D4F884 -:102AA000440180F800A0D4F844012188418099F8BD -:102AB0000300E0F731FA01212046F9F7FAFB032180 -:102AC0002046FEF7E1FBD9F80800D0F8F8000078BE -:102AD000022818BFFFDF0221FE20FEF717FE84F850 -:102AE0006470B4F85800401C691EA4F858008DB2F8 -:102AF000BFF42AAFBDE8F087FA4AC2E90601704781 -:102B000070B50446B0F87E0094F86810002908BF3C -:102B1000C0F1020503D0B4F88010081A051F94F81C -:102B20007C0040B194F864200023092104F158008E -:102B3000F9F7A6FEA0B1B4F8766094F86A0058B927 -:102B400094F864200023062104F15800F9F798FE58 -:102B5000002808BF284603D0B4F87800801B001F67 -:102B6000A842D8BF0546002DD4BF0020A8B270BD32 -:102B7000042110B5DB4CA068FEF786FBA06890F836 -:102B80004E10012902BF022180F84E1010BD00F541 -:102B90008A710288A0F81E21028EA0F82021828E60 -:102BA000A0F82221028FB0F844309A4228BF1A467A -:102BB0000A82828FB0F84600824238BF10464882AF -:102BC00001200872E078BDE81040E0F7A5B9C548DB -:102BD00030B4806890F84E30B0F832C0C48EB0F88F -:102BE0004010428F022B25D08A4238BF1146018601 -:102BF000C28FB0F842108A4238BF11468186028FD8 -:102C0000B0F844108A4238BF11464186828FB0F82E -:102C100046108A4238BF1146C186418E614588BF41 -:102C20008C46A0F832C0C18EA14288BF0C46C48633 -:102C300030BC7047038E9A4228BF1A46C58F838ED8 -:102C40009D4238BF2B468A4238BF11460186B0F8F4 -:102C500042108B4228BF0B468386002180F84E101D -:102C6000CDE770B59F4CA06890F8CB10FE2906BF49 -:102C70006178002970BD90F867204FF000034FF095 -:102C8000010100F15800F9F7FBFD002818BF70BDE5 -:102C9000A06890F8F41021B1BDE870400220FEF762 -:102CA000E7BC90F86420002319465830F9F7E8FD96 -:102CB00040B1A06890F87C0020B1BDE870401220BF -:102CC000FEF7D6BCA068002590F86420122A1FD019 -:102CD00004DC032A3FD0112A1FD003E0182A35D084 -:102CE000232A43D0002304215830F9F7C9FD0028D6 -:102CF00018BF70BDD4F808C09CF8650019286ED0C4 -:102D00003BDC01286ED002287AD003285DD038E061 -:102D1000BDE870400B20FEF7ABBCF2F7DFFE0C28DD -:102D200038BF70BDA0680821D0F8F8001E30F2F757 -:102D3000D9FE28B1A0680421C030F2F7D3FE00B953 -:102D4000FFDFBDE870400320FEF792BCBDE8704095 -:102D50000620FEF78DBC90F8CA1080F8CC10072032 -:102D6000FEF786FCA06880F8645070BD1820FEF75E -:102D70007FFCA068A0F8845070BD1E2848D0212890 -:102D80006CD0DCF8F80001260178002974D0408866 -:102D9000BCF8001088426FD100239CF864201946CB -:102DA0000CF15800F9F76CFD002865D0A068D0F848 -:102DB000F810097802297DD003297CD004297BD022 -:102DC000052908BF082078D0C8E09CF8C9008CF815 -:102DD000CC000720FEF74CFCA06800F06EB97CE048 -:102DE00000E00DE00C20FEF743FCA068A0F88A503C -:102DF00090F8901041F0010180F8901000F05DB95A -:102E00001320FEF735FCA068A0F88A5000F055B9F1 -:102E10009CF80501002818BF70BD9CF8040188B11A -:102E2000BCF80601ACF84000BCF80801ACF8420060 -:102E3000BCF80A01ACF84400BCF80C01ACF8460040 -:102E40008CF80451FFF7C3FEFFF792FE1520FEF742 -:102E50000FFCA068A0F88A5000F02FB99CF87D0004 -:102E600058B18CF8F2508CF8F3501820FEF700FCA3 -:102E7000A068A0F88A5070BD70E09CF80F0100288F -:102E800018BF70BD9CF80E01002808BF70BDDCE9BA -:102E90001416DCF81001F9F786FEF2B2C1B28A42CC -:102EA00007BFA16881F8F250A26882F8F210C6F359 -:102EB000072103E018E01DE03DE024E0C0F3072017 -:102EC000814219BFA16881F8F300A06880F8F3502F -:102ED0001820BDE87040FEF7CBBB1120FEF7C8FB01 -:102EE000A068EAE08C01002090F86500F9F7B0FCDA -:102EF000A0BB08E090F8691041B190F86A00002882 -:102F000008BFFFDF0A20FEF7B3FB27E0F2F7E6FD7C -:102F10000C2823D3A0680821D0F8F8001E30F2F75F -:102F2000E1FD28B1A0680421C030F2F7DBFD00B953 -:102F3000FFDF0320E7E790F8900010F0030F0DD1BA -:102F40000C20FEF795FBA068A0F8845080F88860FC -:102F500090F8901041F0010180F89010A06890F86E -:102F6000CB10FE2918BF70BD90F8642000231946CD -:102F70005830F9F785FC002808BF70BDA06890F8AC -:102F80000011E9B3A1690978D1BB90F86500F9F7A0 -:102F90005FFCA8BBA068B0F858100A2931D900F12D -:102FA00008010522E06901F081FD0028A06804BF46 -:102FB00080F8005170BDD0F8FC00017861B1411C6F -:102FC0000522E06901F072FD002818BF70BDA068FD -:102FD000D0F8FC00007830B9A068E169D0F8FC00B6 -:102FE000401C01F044FFA068D0F8FC000178491CA7 -:102FF00001700120FEF73CFBA06880F8005170BD15 -:10300000FFE7A06890F8041111B190F8051181B3A1 -:1030100090F80E11002908BF70BD90F80F1100291B -:1030200018BF70BD90F86500F9F712FC002818BFB2 -:1030300070BDA06890F85400012808BF012503D096 -:10304000022814BFFFDF0225A06890F85500012870 -:1030500008BF012603D0022814BFFFDF0226A168A3 -:10306000012D91F810012BD0022D08BF022829D084 -:1030700033E0FFE7B0F80611A0F84010B0F80811EF -:10308000A0F84210B0F80A11A0F84410B0F80C11E2 -:10309000A0F8461080F8045190F865001D2804D06F -:1030A000BDE870401420FEF7E3BAFFF790FDFFF78C -:1030B0005FFD1520FEF7DCFAA06880F8655070BD52 -:1030C00001280AD191F81101012E04D0022E08BF67 -:1030D000022807D001E0012804D0BDE87040162086 -:1030E000FEF7C6BABDE870400020FEF7E2BA70B540 -:1030F000044690F8640000250C2814D00D2818BF51 -:1031000070BDB4F85800D4F8F810401C8988884283 -:1031100018BF70BDD4F84401FE4E0178002918BFD5 -:10312000FFDF45D122E0B4F85800B4F80211401C8A -:10313000884218BF70BDD4F8FC00411C04F108009F -:1031400001F095FE02212046F9F7B3F8D4F8FC000F -:103150000078002808BFFFDF0121FE20FEF7D6FA25 -:1031600084F86450012084F8980070BD2188C180E3 -:10317000D4F8F800D4F8441140890881D4F8F80054 -:10318000D4F8441180894881D4F8F800D4F8441167 -:10319000C0898881D4F844010571D4F8441109200C -:1031A0000870D4F8441120884880F078DFF7B4FE26 -:1031B00001212046F9F77DF803212046FEF764F847 -:1031C000B068D0F8F8000078022818BFFFDF0221AD -:1031D000FE20FEF79BFA84F8645070BD70B5CD4CAC -:1031E000A16891F86420162A11BF132A91F88E2045 -:1031F000002A62781BBF02206070002A70BD81F82F -:10320000C8004FF0000581F88D5081F88850D1F842 -:10321000F80009884088884218BFFFDFA068D0F80E -:10322000F8000078032818BFFFDF0321FE20FEF717 -:103230006DFAA068D0F844110A78002A18BFFFDFA1 -:1032400019D10288CA80D0F8442190F8C8101171B1 -:10325000D0F844110D72D0F844210D211170D0F82E -:103260004421018851800088EFF752FBEEF7EAFF16 -:10327000E078DFF751FEA06880F8645070BD10B5AB -:10328000A44C207910F0020F08BF10BD6078002810 -:1032900018BF10BDE068C078192880F06B81DFE8A6 -:1032A00000F05F4F0D8EF9F9A5223FF96F82B0F95A -:1032B000F9F9F9F8E4E1FAF6F5F9F400A068002369 -:1032C000012190F867205830F9F7DAFA002818BF82 -:1032D00010BD0821A06880F86710002180F88810D0 -:1032E00080F88C1010BDA0680023194690F8652066 -:1032F0005830F9F7C5FA18B1A168002081F88C00A0 -:10330000A0680023194690F864205830F9F7B8FAFD -:10331000002808BF10BD0020A16881F8880010BDFA -:10332000A0680023194690F864205830F9F7A8FAED -:10333000002808BFFFDF0420A16881F8640010BDE9 -:10334000A0680023194690F864205830F9F798FADD -:10335000002808BFFFDF0C20A16881F8640010BDC1 -:10336000A0680023194690F864205830F9F788FACD -:10337000002808BFFFDF0D20A16881F8640010BDA0 -:10338000A0680023194690F864205830F9F778FABD -:10339000002808BFFFDF0121A06880F88D100F21F1 -:1033A00080F8641010BDA06890F86400122818BF5F -:1033B000FFDF0121A06880F88E101121F0E7A068DE -:1033C0000023194690F864205830F9F759FA28B9C3 -:1033D000A06890F88E00002808BFFFDF0121A068D8 -:1033E00080F88D10132180F8641010BDA06890F84B -:1033F0006400182818BFFFDF1A20A16881F8640054 -:1034000010BDA068D0F8F81003884A889A4204BF1B -:10341000097804291BD190F864204FF00003194665 -:1034200000F15800F9F72CFA002808BFFFDFA06868 -:1034300090F8901011F0020F04BF012180F8641081 -:1034400005D0002180F88810D0F8F8000170A0683D -:103450000023194690F865205830F9F711FA002832 -:1034600008BF10BD0020A16881E0A06800231946B4 -:1034700090F864205830F9F703FA002808BFFFDFFE -:103480000520A16881F8640010BD30E01FE012E063 -:1034900001E068E06EE0A0680023194690F864201F -:1034A0005830F9F7EDF9002808BFFFDF1C20A168AC -:1034B00081F86400E8E7A0680023194690F86520C9 -:1034C0005830F9F7DDF9002808BFFFDFCAE7A06828 -:1034D0000023194690F864205830F9F7D1F90028F4 -:1034E00008BFFFDF1F20A16881F86400CCE7A06857 -:1034F00090F8651021291DD090F86410232918BF79 -:10350000FFDFC1D190F8F210002904BF90F8F3104A -:10351000002901E08C0100201CBF242180F86410E8 -:103520007FF4F9AE4FF0000180F864100846FEF712 -:10353000C0F8F0E690F8F210002907BF90F8F310F9 -:103540000029242180F865108CD14FF0000180F80B -:10355000651080F87D1090F80E0100281CBF002037 -:10356000FEF7A7F87EE7A168002081F8650081F8E2 -:103570008C0089E7FFDF87E770B58D4C0829207A3A -:1035800062D2DFE801F0041959592561615978B117 -:10359000F3F702F801210846F3F724F9F3F78EFE5A -:1035A0000020A072F3F7C7F8BDE87040F3F7F8BA4F -:1035B000BDE87040F1F7C6B8D4E90001F0F7B9FEF4 -:1035C0002060A07A401CC0B2A07228281CD370BD15 -:1035D000A07A0025401EC6B2E0683044F3F7E0FB55 -:1035E00010B9E1687F208855A07A272828BF0125D7 -:1035F0002846F3F707FEA07A282809D2401CC0B25B -:10360000A072282828BF70BDBDE87040F3F793B8BA -:10361000207A00281CBF012000F085F8F3F728FA73 -:10362000F3F7B0FA0120E07262480078DFF774FC2B -:10363000BDE87040F1F786B8002808BF70BD0020D3 -:10364000BDE8704000F06FB8FFDF70BD10B5584C9A -:10365000207A002804BF0C2010BD00202072E072E8 -:10366000607AF1F7C1FC607AF1F70BFF607AF1F74D -:1036700040F900280CBF1F20002010BD002270B5AB -:103680004B4C06460D46207A68B12272E272607A8F -:10369000F1F7AAFC607AF1F7F4FE607AF1F729F904 -:1036A000002808BFFFDF4348E560067070BD70B5B5 -:1036B000050007D0A5F5E8503F494C3881429CBF32 -:1036C000122070BD3A4CE068002804BF092070BD8C -:1036D000207A00281CBF0C2070BD3848F1F7ADF8E7 -:1036E0006072202804BF1F2070BDF1F721F920600F -:1036F000002D1CBF2844206001206560207200203E -:1037000000F011F8002070BD2949CA7A002A04BFD0 -:10371000002070471F22027000224270CB68436075 -:10372000CA72012070472DE9F04184B00746F1F7D5 -:10373000FFF81F4D8046414668682C6800EB80000A -:1037400046002046F1F710FEB04206DB6868811B98 -:103750004046F0F7EEFD0446286040F234762146FC -:103760004046F1F701FEB04204DA31464046F0F738 -:10377000E0FD044600208DF800004FF4DD6003906A -:1037800004208DF80500002F14BF012003208DF8C0 -:10379000040068460294F1F79AFA687A6946F1F7EC -:1037A00011FB002808BFFFDF04B0BDE8F081000076 -:1037B00044130020AC010020B5EB3C007935020039 -:1037C0002DE9F0410C4612490D68114A11490832A1 -:1037D0001160A0F12001312901D301200CE0412822 -:1037E00010D040CC0C4F94E80E0007EB8000241F53 -:1037F00050F8807C3046B84720600548001D0560C1 -:10380000BDE8F0812046DDF703FDF5E706207047AF -:1038100010050240010000014852020010B5534853 -:10382000F2F7DEF800B1FFDF5048401CF2F7D8F89D -:10383000002800D0FFDF10BD2DE9F14F4C4ED6F827 -:1038400000B001274948F2F7D3F8DFF8208128B902 -:103850005FF0000708F10100F2F7E0F8454C0025A1 -:103860004FF0030901206060C4F80051C4F804510E -:10387000009931602060DFF800A118E0DAF800005C -:10388000C00614D50E2000F064F8EFF3108010F09D -:10389000010072B600D00120C4F80493D4F80011DE -:1038A00019B9D4F8041101B920BF00B962B6D4F82F -:1038B000000118B9D4F804010028DFD0D4F80401BD -:1038C0000028CFD137B1C6F800B008F10100F2F7F7 -:1038D0008FF811E008F10100F2F78AF80028B9D159 -:1038E000C4F80893C4F80451C4F800510E2000F045 -:1038F00030F81E48F2F792F80020BDE8F88F2DE965 -:10390000F0438DB00D46064600240DF110090DF16F -:10391000200817E004EB4407102255F827106846EA -:1039200001F0F0F805EB870710224846796801F0AE -:10393000E9F86846FFF780FF10224146B86801F0B9 -:10394000E1F8641CB442E5DB0DB00020BDE8F08373 -:1039500072E7002809DB00F01F02012191404009B5 -:10396000800000F1E020C0F880127047AD01002017 -:1039700004E5004000E0004010ED00E0B249002006 -:103980000870704770B5B14D01232B60B04B1C68B7 -:10399000002CFCD0002407E00E6806601E68002E94 -:1039A000FCD0001D091D641C9442F5D30020286042 -:1039B00018680028FCD070BD70B5A34E0446A54D14 -:1039C0003078022800D0FFDFAC4200D3FFDF7169FE -:1039D000A148012903D847F23052944201DD032265 -:1039E0004271491C7161291BC1609B497078F1F7D4 -:1039F000E9F9002800D1FFDF70BD70B5924C0D468B -:103A00006178884200D0FFDF924E082D4BD2DFE86C -:103A100005F04A041E2D4A4A4A382078022800D070 -:103A2000FFDF03202070A078012801D020B108E03A -:103A3000A06800F0AFFD04E004F1080007C8FFF73C -:103A4000A1FF05202070BDE87040F0F77BBEF0F7C5 -:103A50006FFF01466068F1F787FCB04202D26169EE -:103A600002290BD30320F1F75AFF12E0F0F760FFB1 -:103A700001466068F1F778FCB042F3D2BDE87040CF -:103A80009AE7207802280AD0052806D0FFDF042014 -:103A90002070BDE8704000F0CCB8022000E00320A8 -:103AA000F1F73DFFF3E7FFDF70BD70B50546F0F7B6 -:103AB0003FFF654C60602078012800D0FFDF664939 -:103AC000012008700020087104208D604871614851 -:103AD000C860022020706078F1F774F9002800D1E6 -:103AE000FFDF70BD10B5584C207838B90220F1F7CF -:103AF0002CFF18B90320F1F728FF08B1112010BDE1 -:103B00005648F0F79AFE6070202804D001202070FB -:103B10000020606110BD032010BD2DE9F047144660 -:103B2000054600EB84000E46A0F1040800F045FDB8 -:103B300007464FF0805001694F4306EB8401091F8F -:103B4000B14201D2012100E0002189461CB1006987 -:103B5000B4EB900F02D90920BDE8F0872846DDF7C5 -:103B6000ABFB90B9A84510D3BD4205D2B84503D2EE -:103B700045EA0600800701D01020EDE73046DDF76A -:103B80009BFB10B9B9F1000F01D00F20E4E73448D6 -:103B900034490068884205D0224631462846FFF75E -:103BA000F1FE14E0FFF79EFF0028D5D12648002142 -:103BB0008560C0E90364817000F071F810B14FF4C2 -:103BC000A97000E0292060431830FFF76EFF002045 -:103BD000C2E770B505464FF0805004696C4320463B -:103BE000DDF76AFB08B10F2070BD00F0E6FCA842CB -:103BF00001D8102070BD1A481A490068884203D0C5 -:103C0000204600F0C7FC10E0FFF76CFF0028F1D160 -:103C10000D4801218460817000F041F808B112481C -:103C200000E012481830FFF740FF002070BD00F0A0 -:103C30000DBF10B5044C6078F0F75BFE00B9FFDFF4 -:103C40000020207010BD0000B001002004E50140FC -:103C500000E40140105C0C0054130020FB3902000A -:103C600054000020BEBAFECA645E0100084C010088 -:103C70004FF08050D0F830010A2801D00020704762 -:103C80000120704700B5FFF7F3FF20B14FF08050DF -:103C9000D0F8340108B1002000BD012000BD4FF074 -:103CA0008050D0F83011062905D0D0F83001401CE2 -:103CB00001D000207047012070474FF08050D0F8AD -:103CC0003001082801D0002070470120704700B55E -:103CD000FFF7E5FF48B14FF08050D0F834110629C6 -:103CE00005D3D0F83401401C01D0002000BD0120D4 -:103CF00000BD00B5FFF7D3FF58B14FF08050D0F8AA -:103D00003411062905D3D0F83401401C01D001201C -:103D100000BD002000BD00004C4909680160002082 -:103D200070474A4908600020704701218A0720B186 -:103D3000012804D042F204007047916700E0D16787 -:103D40000020704742490120086042F20600704797 -:103D500008B504233E4A1907103230B1C1F80433C4 -:103D6000106840F0010010600BE0106820F00100C6 -:103D70001060C1F808330020C1F808013548006818 -:103D80000090002008BD011F0B2909D830491031CF -:103D90000A6822F01E0242EA4000086000207047D4 -:103DA00042F205007047000100F18040C0F804199C -:103DB00000207047000100F18040C0F80819002081 -:103DC0007047000100F18040D0F800090860002031 -:103DD0007047012801D9072070471F4A52F8200078 -:103DE00002680A43026000207047012801D90720B9 -:103DF0007047194A52F8200002688A430260002086 -:103E00007047012801D907207047134A52F8200053 -:103E10000068086000207047020010494FF0000061 -:103E200003D0012A01D0072070470A6070474FF085 -:103E300080410020C1F808014FF0E020802180F887 -:103E400000140121C0F80011704700000004004078 -:103E500000050040080100400C53020078050040B6 -:103E60006249634B0A6863499A42096801D1C1F308 -:103E700010010160002070475C495D4B0A685D4994 -:103E8000091D9A4201D1C0F310000860002070475C -:103E90005649574B0A68574908319A4201D1C0F335 -:103EA000100008600020704730B5504B504D1C6822 -:103EB00042F20803AC4202D0142802D203E01128D7 -:103EC00001D3184630BDC3004B481844C0F8101544 -:103ED000C0F81425002030BD4449454B0A6842F221 -:103EE00009019A4202D0062802D203E0042801D335 -:103EF00008467047404A012142F8301000207047C0 -:103F00003A493B4B0A6842F209019A4202D006281C -:103F100002D203E0042801D308467047364A012143 -:103F200002EBC00041600020704770B52F4A304E50 -:103F3000314C156842F2090304EB8002B54204D00B -:103F4000062804D2C2F8001807E0042801D3184656 -:103F500070BDC1F31000C2F80008002070BD70B53C -:103F6000224A234E244C156842F2090304EB8002D6 -:103F7000B54204D0062804D2D2F8000807E004288D -:103F800001D3184670BDD2F80008C0F310000860D5 -:103F9000002070BD174910B508311848086011207D -:103FA000154A002102EBC003C3F81015C3F814151D -:103FB000401C1428F6D3002006E0042804D302EBAA -:103FC0008003C3F8001807E002EB8003D3F8004831 -:103FD000C4F31004C3F80048401C0628EDD310BDFC -:103FE000044906480831086070470000540000206A -:103FF000BEBAFECA00F5014000F001400000FEFF1D -:10400000834B1B6803B19847BFF34F8F814801680A -:10401000814A01F4E06111430160BFF34F8F00BF9B -:10402000FDE710B5EFF3108010F0010F72B601D06C -:10403000012400E0002400F0E1F850B1DDF7DCF9E4 -:10404000F0F73BFAF1F70DFCE7F73EFF734900206C -:10405000086004B962B6002010BD2DE9F0410C469D -:104060000546EFF3108010F0010F72B601D0012663 -:1040700000E0002600F0C2F820B106B962B60820C0 -:10408000BDE8F081DDF7ACF8DDF7BAF902460020B3 -:1040900001234709BF0007F1E02700F01F01D7F80F -:1040A0000071CF40F9071BD0202803D222FA00F17B -:1040B000C90727D141B2002904DB01F1E02191F8C1 -:1040C000001405E001F00F0101F1E02191F8141D49 -:1040D0004909082916D203FA01F717F0EC0F11D09D -:1040E000401C6428D5D3E7F7CDFE4D4A4D4900204A -:1040F000E7F710FF49494C4808602046DDF7E3F830 -:1041000060B904E006B962B641F20100B8E7404880 -:1041100004602DB12846DDF723F918B110242CE0F6 -:10412000424D19E02878022802D94FF4805424E047 -:1041300007240028687801D0F8B908E0E8B1202801 -:104140001BD8A878212818D8012816D001E0A87813 -:1041500098B9E8780B2810D83549802081F8140DDB -:10416000DDF74EF92946F1F762FBF0F765F900F04B -:1041700057FA2846DDF712F9044606B962B61CB1B3 -:10418000FFF74FFF20467BE7002079E710B5044694 -:1041900000F034F800B101202070002010BD254946 -:1041A00008600020704770B50C4623490D6822490D -:1041B000224E08310E60102807D011280CD012288A -:1041C0000FD0132811D0012013E0D4E90001FFF72C -:1041D00044FF354620600DE0FFF723FF00252060F7 -:1041E00008E02068FFF7D2FF03E01249206808606A -:1041F000002020601048001D056070BD07480A4976 -:104200000068884201D101207047002070470000FB -:10421000C80100200CED00E00400FA055400002065 -:10422000F813002000000020BEBAFECA145302009A -:104230000BE000E004000020100502400100000136 -:1042400000B5864910F1080F08BFF82024D014DC0F -:1042500010F1280F08BFD8201ED010F1140F08BF8E -:10426000EC2019D010F1100F08BFF02014D010F17D -:104270000C0F08BFF4200FD00CE010F1040F08BFA2 -:10428000FC2009D0002818BF032805D0042804BF4B -:10429000086000BDFFDF00BD086000BD00B57049CB -:1042A000012808BF032004D0022816BFFFDF042026 -:1042B00000BD086000BD70B505460C4616461046A8 -:1042C000F2F7C9FF022C08BF4FF47A7105D0012C18 -:1042D0000CBF4FF4C86140F6340144183046F2F781 -:1042E000E4FF204449F6797108444FF47A71B0FB39 -:1042F000F1F0281A70BD70B505460C460846F2F775 -:10430000B9FF022C08BF40F24C4105D0012C0CBF74 -:1043100040F634014FF4AF5149F6CA62511A0844CD -:104320004FF47A7100F2E140B0FBF1F0281A801EE0 -:1043300070BD70B5064615460C460846F2F79AFF62 -:10434000022D08BF4FF47A7105D0012D0CBF4FF438 -:10435000C86140F63401022C08BF40F24C4205D03F -:10436000012C0CBF40F634024FF4AF52891A0844B6 -:1043700049F6FC6108444FF47A71B0FBF1F0301A51 -:1043800070BD70B504460E460846F2F764FF054658 -:104390003046F2F78AFF28444AF2AB3108444FF422 -:1043A0007A71B0FBF1F0201A801E70BD2DE9F0414A -:1043B00007461E460D4614461046082A16BF042816 -:1043C0004EF62830F2F747FF07EB4701C1EBC71164 -:1043D00000EBC100022D08BF40F24C4105D0012D79 -:1043E0000CBF40F634014FF4AF5147182846F2F79E -:1043F00041FF381A4FF47A7100F6B730B0FBF1F58F -:104400002046F2F71CFF28443044401DBDE8F081EF -:1044100070B5054614460E460846F2F71CFF05EB3C -:104420004502C2EBC512C0EBC2053046F2F73DFFB4 -:104430002D1A2046082C16BF04284EF62830F2F715 -:104440000AFF28444FF47A7100F6B730B0FBF1F55B -:104450002046F2F7F4FE2844401D70BD0C150040C4 -:10446000101500402DE9FE430C468046F8F7B6FED5 -:10447000074698F80160204601A96A46EDF7D3FE89 -:1044800005000DD0012F02D00320BDE8FE83204699 -:1044900002AA0199EDF7E9FD0298B0F803000AE0DD -:1044A000022F14D1042E12D3B8F80300BDF8002057 -:1044B000011D914204D8001D80B2A919814202D188 -:1044C0004FF00000E1E702D24FF00100DDE74FF0CE -:1044D0000200DAE7C2790D2341B342BB818801298A -:1044E00004D94908818004BF012282800168012922 -:1044F00018BF002930D001686FEA0101C1EBC10289 -:1045000002EB011281796FEA010101EB8103C3EB38 -:10451000811111444FEA914201608188B2FBF1F3AD -:1045200001FB132181714FF0010102E01AB14FF03C -:104530000001C17170478188FF2908D24FF6FF72D0 -:1045400002EA41018180FF2984BFFF228280016845 -:10455000012918BF0029CED10360CCE7817931B1A0 -:10456000491E11F0FF0181711CBF0020704701201E -:10457000704710B50121C171817181800446042109 -:10458000F1F7B0FA002818BF10BD2068401C206069 -:1045900010BD00000B4A022111600B490B68002B73 -:1045A000FCD0084B1B1D186008680028FCD00020B8 -:1045B000106008680028FCD070474FF080504069B8 -:1045C0007047000004E5014000E4014002000B4692 -:1045D0004FF00000014620D0012A04D0022A04D066 -:1045E000032A0DD103E0012002E0022015E00320A0 -:1045F000072B05D2DFE803F00406080A0C0E1000B2 -:1046000007207047012108E0022106E0032104E0B1 -:10461000042102E0052100E00621F0F72CB900009A -:10462000F948052181700021017041707047F749F8 -:104630000A78012A05D0CA681044C8604038F0F7EB -:1046400060BE8A6810448860F8E7002819D00378B3 -:10465000EF49F04A13B1012B0ED011E00379012B81 -:1046600000D06BB943790BB1012B09D18368643B4E -:104670008B4205D2C0680EE00379012B02D00BB14A -:104680000020704743790BB1012BF9D1C368643B1B -:104690008B42F5D280689042F2D801207047DB4906 -:1046A00010B501220A700279A2B100220A71427982 -:1046B00092B104224A718268D34C52328A60C06837 -:1046C0001434C8606060F0F733F9CF4920600220ED -:1046D000887010BD0322E9E70322EBE770B5CB4DEC -:1046E000044600202870207988B100202871607964 -:1046F00078B10420C44E6871A168F068EFF719FE24 -:10470000A860E0685230E8600320B07070BD0120FE -:10471000ECE70320EEE72DE9F04105460226F0F72D -:1047200010FD006800B1FFDFB74C01273DB12878CC -:10473000B0B1012805D0022810D0032813D027716A -:104740000CE06868C82807D3F0F735FE20B1686828 -:10475000FFF76DFF012603E0002601E000F05EF99F -:104760003046BDE8F08120780028F7D16868FFF76F -:104770006CFF0028E3D06868017879B1A07804283C -:1047800000D0FFDF01216868FFF7A8FF9F49E078AC -:10479000F0F718FB0028E1D1FFDFDFE7FFF77FFF2D -:1047A0006770DBE72DE9F047974C8846E17888424F -:1047B00000D0FFDFDFF8509200250127934E09F16A -:1047C0001409B8F1080F75D2DFE808F0040C28527C -:1047D0007A808D95A078032802D0022800D0FFDFD0 -:1047E000BDE8F087A078032802D0022800D0FFDFC0 -:1047F0000420A07025712078002878D1FFF717FFDA -:104800003078012806D0B068E06000F033F920610C -:10481000002060E0E078F0F7D2F9F5E7A07803280F -:1048200002D0022800D0FFDF207800286DD1A078C8 -:10483000032816D0F0F77CF801464F46D9F800005F -:10484000F0F792FD00280EDB796881420BDB081A35 -:10485000F0606E49E078F0F7B5FA0028C0D1FFDFCC -:10486000BEE7042028E00420F1F759F8A570B7E767 -:10487000A078032802D0022800D0FFDF207888BB70 -:10488000A078032817D0F0F753F801464F46D9F81F -:104890000000F0F769FD0028E5DB79688142E2DB82 -:1048A000081AF0605949E078F0F78CFA002897D19F -:1048B000FFDF95E740E00520F1F731F8A7708FE7BB -:1048C000A078042800D0FFDF022004E0A0780428AC -:1048D00000D0FFDF0120A1688847FFF71CFF0546D5 -:1048E00030E004E011E0A078042800D0FFDFBDE84C -:1048F000F04700F093B8A078042804D0617809B19B -:10490000022800D0FFDF207818B1BDE8F04700F0A2 -:104910008EB8207920B10620F1F701F82571CDE796 -:10492000607838B13949E078F0F74CFA00B9FFDF28 -:10493000657055E70720BFE7FFDF51E73DB1012D67 -:1049400003D0FFDF022DF9D14AE70420C3E703209B -:10495000C1E770B5050004D02B4CA078052806D11E -:1049600001E0102070BD0820F0F7EFFF08B1112022 -:1049700070BD2948EFF761FFE070202806D00121C3 -:10498000F0F713FE0020A560A07070BD032070BD7D -:104990001D4810B5017809B1112010BD8178052995 -:1049A00006D0012906D029B101210170002010BDD7 -:1049B0000F2010BD00F03BF8F8E770B5124C05462B -:1049C000A07808B1012809D155B12846FFF73DFE6E -:1049D00040B1287840B1A078012809D00F2070BDDF -:1049E000102070BD072070BD2846FFF758FE03E079 -:1049F00000212846FFF772FE0449E078F0F7E2F95B -:104A000000B9FFDF002070BDCC010020641300203E -:104A10003D860100FF1FA107A54702000A4810B507 -:104A2000006900F01FF8BDE81040EFF78BBE0648A4 -:104A300010B5C078EFF75DFF00B9FFDF0820F0F791 -:104A40006EFFBDE81040EBE5CC01002010B5134C23 -:104A50002060201D0160114810300260001D0360BD -:104A6000002010BD0E490A6848F202139A4302431F -:104A70000A6070470A4A116848F2021301EA03000B -:104A8000994311607047054B02465B421020134466 -:104A9000FC2B01D811600020704700000006004088 -:104AA000C8060240704770477047704740EA0103EC -:104AB00010B59B070FD1042A0DD310C808C9121FC7 -:104AC0009C42F8D020BA19BA884201D9012010BD01 -:104AD0004FF0FF3010BD1AB1D30703D0521C07E0CE -:104AE000002010BD10F8013B11F8014B1B1B07D132 -:104AF00010F8013B11F8014B1B1B01D1921EF1D1A3 -:104B0000184610BD032A40F2308010F0030C00F06C -:104B1000158011F8013BBCF1020F624498BF11F8F7 -:104B200001CB00F8013B38BF11F8013BA2F10402B0 -:104B300098BF00F801CB38BF00F8013B11F0030328 -:104B400000F02580083AC0F0088051F8043B083A8C -:104B500051F804CBA0E80810F5E7121D5CBF51F82E -:104B6000043B40F8043BAFF30080D20724BF11F8A8 -:104B7000013B11F801CB48BF11F8012B24BF00F80D -:104B8000013B00F801CB48BF00F8012B704710B57E -:104B9000203AC0F00B80B1E81850203AA0E8185035 -:104BA000B1E81850A0E81850BFF4F5AF5FEA027CF6 -:104BB00024BFB1E81850A0E8185044BF18C918C065 -:104BC000BDE810405FEA827C24BF51F8043B40F806 -:104BD000043B08BF7047D20728BF31F8023B48BFEB -:104BE00011F8012B28BF20F8023B48BF00F8012B29 -:104BF000704702F0FF0343EA032242EA024200F058 -:104C000002B84FF000020429C0F0128010F0030C2B -:104C100000F01B80CCF1040CBCF1020F18BF00F8AF -:104C2000012BA8BF20F8022BA1EB0C0100F00DB85E -:104C30005FEAC17C24BF00F8012B00F8012B48BFBC -:104C400000F8012B70474FF0000200B51346944660 -:104C50009646203922BFA0E80C50A0E80C50B1F1D4 -:104C60002001BFF4F7AF090728BFA0E80C5048BFE8 -:104C70000CC05DF804EB890028BF40F8042B08BF86 -:104C8000704748BF20F8022B11F0804F18BF00F882 -:104C9000012B70477047704770477047FEDF184917 -:104CA0000978F9B90420714608421BD10699154AC2 -:104CB000914217DC0699022914DB02394878DF2873 -:104CC00010D10878FE2807D0FF280BD14FF0010043 -:104CD0004FF000020C4B184741F201000099019A75 -:104CE000094B1847094B002B02D01B68DB6818479B -:104CF0004FF0FF3071464FF00002034B18470000A1 -:104D000028ED00E0006002000140020004000020E5 -:104D1000174818497047FFF7FBFFDCF74FFA00BD53 -:104D2000154816490968884203D1154A13605B6823 -:104D3000184700BD20BFFDE70F48104909688842A9 -:104D400010D1104B18684FF0FF318842F2D080F339 -:104D500008884FF02021884204DD0B4802680321B7 -:104D60000A4302600948804709488047FFDF000086 -:104D700078130020781300200010000000000020AD -:104D8000040000200060020014090040C52F00004C -:104D9000214D020004207146084202D0EFF3098140 -:104DA00001E0EFF30881886902380078102813DBEE -:104DB00020280FDB2C280BDB0A4A12680A4B9A4288 -:104DC00003D1602804DB094A1047022008607047BD -:104DD000074A1047074A1047074A12682C321268E0 -:104DE0001047000054000020BEBAFECA051400009F -:104DF000C1370200A7410200040000200D4B0E49FC -:104E000008470E4B0C4908470D4B0B4908470D4B03 -:104E1000094908470C4B084908470C4B0649084705 -:104E20000B4B054908470B4B034908470A4B0249FE -:104E300008470000ADBC0000E1BF0000552D000098 -:104E4000CF2B00005D2B0000F72D00002114000087 -:104E50001B2900004D2F0000C91100000021016036 -:104E600081807047002101604160017270470A68CB -:104E700002600B790371704759960000B7970000E4 -:104E8000199900007D990000B7990000EB99000086 -:104E90001D9A0000559A0000C39A00000797000071 -:104EA0003D990000A7120000B54300000144000036 -:104EB00067440000F344000017460000D946000094 -:104EC0000B470000E34700007B480000CF4800008C -:104ED000B5490000D5490000C3160000E7160000E0 -:104EE000171600006B16000019170000AD17000020 -:104EF00023600000D361000099650000B1660000E6 -:104F00003B670000B96700001D6800003D690000B4 -:104F10000D6A0000796A0000F7490000FD490000B1 -:104F2000074A00006F4A00009B4A0000394C00000D -:104F3000634C00009B4C0000114D0000F74D000039 -:104F4000154E000025440000A7120000A712000023 -:104F5000A7120000A7120000A7120000A71200006D -:104F6000A7120000A3250000292600004526000006 -:104F700061260000EF2700008B2600009526000028 -:104F8000D7260000F9260000D527000017280000CA -:104F9000A7120000A7120000A7830000C78300002B -:104FA000D18300000B8400003984000029850000B3 -:104FB000B7850000CB850000198600002F87000010 -:104FC000D5880000FD8900002B730000158A0000C1 -:104FD000A7120000A7120000A1B500000BB7000047 -:104FE0005FB70000CBB700007BB8000001000000F5 -:104FF00000000000100110013A0200001A02000433 -:1050000005060000FFFFFFFF0000FFFF95AD000059 -:10501000173D00004921000075730000ED8E00006F -:105020000000000099910000759100008791000038 -:10503000000002000000000000020000000000006C -:1050400000010000000000005381000033810000D7 -:10505000A181000025250000E724000007250000AD -:10506000FFA800002BA9000033AB00001D59000071 -:10507000C181000000000000F181000073250000E4 -:1050800000000000000000000000000015AA000061 -:1050900000000000B1590000030000000155555503 -:1050A000D6BE898E00006306630C631200000703FE -:1050B000AB054F08000053044308330C0000000008 -:1050C00048080000480800009F5600009F56000056 -:1050D0009143000041AC0000F77500005B20000028 -:1050E0002F2702004D9D0100DD560000DD56000017 -:1050F000B3430000A3AC00007B760000CD2000008D -:105100005D270200619D01007001700140003800C0 -:105110005C0024004801000200000300656C74621A -:10512000000000000000000000000000000000007F -:1051300087000000000000000000000000000000E8 -:10514000BE83605ADB0B376038A5F5AA9183886C63 -:1051500001000000732E0100393D01000000000134 -:105160000206030405000000070000000000000024 -:10517000060000000A00000032000000730000007A -:10518000B4000000538901009113020037F80000B9 -:105190003DB001005DEA01003DB00100D5F900001D -:1051A000FBB1010053E70100FBB1010035F600003F -:1051B00089B10100AFE9010089B1010033F80000B5 -:1051C00051B001000DE5010051B0010087FE000063 -:1051D00073B4010011EB010073B40100F401FA0093 -:1051E000960064004B0032001E0014000A00050007 -:1051F000020001000041000000000000AAAED7AB91 -:10520000154120100C0802170D01010209090101C6 -:10521000060209181803010109090303055555552C -:10522000252627D6BE898E00F401FA009600640078 -:105230004B0032001E0014000A00050002000100AD -:105240002541000000000000613E0200793E02009E -:10525000913E0200A93E0200D93E0200013F020039 -:105260002B3F02005F3F0200D33B02001B3B0200CA -:105270002F3C0200874A0200E1590100F159010068 -:105280001D5A0100EF5A0100F75A0100095B0100A5 -:105290002B3D0200453D0200193D0200233D020066 -:1052A000513D0200873D02000D380200A73D02007B -:1052B000B53D0200C33D0200D33D0200EB3D0200BC -:1052C000033E0200193E02000D38020000000000FB -:1052D0004FBA0000A5BA0000BBBA0000CD450200DD -:1052E00039380200FF380200534902009149020098 -:1052F000BB490200C1580100215D01000D380200C8 -:105300000D3802000D3802000D3802001C05004067 -:105310002005004000100200385302000800002061 -:10532000E0010000441100006C530200E80100207D -:1053300090110000A0110000011413F81302412085 -:105340000A2006441A0102228C2720FB349B5F802E -:105350001280021E10133F0B1420FC0A1B2082082F -:0C536000019C0916C7327F0B6CEC10BCDE -:020000040007F3 -:10400000807F0020D5860700FD860700FF86070019 -:1040100001870700038707000587070000000000ED -:10402000000000000000000000000000A54807009C -:1040300009870700000000000B8707009D43070069 -:104040009D4907000F870700A18407000F8707001D -:104050000F8707000F8707000F8707000F870700EC -:104060000F8707000F8707000F8707000F870700DC -:104070000F8707000F8707000F8707000F870700CC -:104080000F870700CD6A07000F8707000F8707001B -:10409000896B07000F870700454807000F87070057 -:1040A0000F8707000F8707000F8707000F8707009C -:1040B0000F8707000F8707000000000000000000C6 -:1040C0000F8707000F8707000F8707000F8707007C -:1040D0000F8707000F8707000F8707000000000009 -:1040E00000000000000000000000000000000000D0 -:1040F00000000000000000000000000000000000C0 -:1041000000000000000000000000000000000000AF -:10411000000000000000000000000000000000009F -:10412000000000000000000000000000000000008F -:10413000000000000000000000000000000000007F -:10414000000000000000000000000000000000006F -:10415000000000000000000000000000000000005F -:10416000000000000000000000000000000000004F -:10417000000000000000000000000000000000003F -:10418000000000000000000000000000000000002F -:10419000000000000000000000000000000000001F -:1041A000000000000000000000000000000000000F -:1041B00000000000000000000000000000000000FF -:1041C00000000000000000000000000000000000EF -:1041D00000000000000000000000000000000000DF -:1041E00000000000000000000000000000000000CF -:1041F00000000000000000000000000000000000BF -:1042000010B5054C237833B9044B13B10448AFF310 -:1042100000800123237010BD8430002000000000C6 -:104220002C8B070008B5034B1BB103490348AFF3C0 -:10423000008008BD00000000883000202C8B0700A3 -:10424000154B002B08BF134B9D46A3F5803A002168 -:104250008B460F461348144A121A00F063F80F4BAE -:10426000002B00D098470E4B002B00D09847002021 -:10427000002104000D000D48002802D00C48AFF3C7 -:10428000008000F02BF82000290000F0F7F900F082 -:1042900011F800BF00000800807F0020000000002F -:1042A00000000000843000203441002000000000A5 -:1042B0000000000008B5074B044613B10021AFF31E -:1042C0000080054B1868836A03B19847204600F0C8 -:1042D00031F800BF000000006C8A070070B50D4E79 -:1042E0000D4CA41BA4100025A54209D10B4E0C4C6B -:1042F00004F0B0FBA41BA4100025A54205D170BD9D -:1043000056F8253098470135EEE756F8253098479E -:104310000135F2E77C3000207C3000207C3000202A -:104320008030002002440346934200D1704703F8D6 -:10433000011BF9E7FEE700BFBFF34F8F0549064BAE -:10434000CA6802F4E0621343CB60BFF34F8F00BF33 -:10435000FDE700BF00ED00E00400FA054BDF704709 -:1043600010DF704711DF704713DF704718DF7047A9 -:1043700060DF704769DF704761DF704708B5034B46 -:104380001B68DB0700D500BEFFF7D6FFF0ED00E0AD -:10439000014B1878704700BF923200201F4A136803 -:1043A000013313601E4A12780AB9DB072ED41D4A66 -:1043B0001378C3F10103DBB213704FF400314FF0F7 -:1043C000A04223BBC2F80C15174A12784AB1174A0B -:1043D000127832B94FF0A0424FF40021D3B9C2F89D -:1043E0000C15134BD3F8002482B1124AC3F80026EF -:1043F000C3F80426C3F80826C3F80C26C3F8102611 -:10440000C3F81426C3F81826C3F81C267047C2F850 -:104410000815D9E7C2F80815E3E700BF9432002079 -:1044200090320020983200209232002091320020F9 -:10443000000001403546526E014B1870704700BFB6 -:104440009032002010B54FF0A0441B4BC4F85037F9 -:10445000C4F85837194B4FF4C85043F0010398473C -:104460000323C4F84437C4F84C374FF40033C4F87E -:104470000C354FF40023C4F80C35114A1E210820D6 -:1044800002F07AFD08B102F033FE02F0DFFC0D4BC2 -:104490000A221B68B3FBF2F3013BB3F1807F09D220 -:1044A000094A5360094BE02183F8231000239360ED -:1044B0000723136010BD00BF0C000300808A0700B3 -:1044C000A03000207030002010E000E000ED00E09F -:1044D0000E4B00221A604FF0A0424FF40023C2F8A6 -:1044E0000C354FF40033C2F80C35094AC2F880305D -:1044F00003F18043A3F570434FF48032C3F848239F -:10450000C3F8082301225A609A60704710E000E067 -:1045100000E100E07FB558B10023CDE903330593F6 -:1045200002A802230293FFF721FF08B102F0E0FD89 -:104530004FF4E820FFF718FF08B102F0D9FD3D4B1A -:104540003D49186800906846FFF70AFF08B102F07D -:10455000CFFD3A4991F816335A09EC231341DB0792 -:1045600007D5374B9A68002A5FD01A6842F4800258 -:104570001A60344B01930C22002102A8FFF7D2FEEF -:1045800001238DF80930019A002302A940208DF8FB -:104590000A308DF80B30FFF7EDFE08B102F0A8FDF0 -:1045A0000C22002102A8FFF7BDFE9DF80830019AF9 -:1045B00043F0010302A9A0208DF80830FFF7DAFECE -:1045C00008B102F095FD0C22002102A8FFF7AAFE17 -:1045D00001238DF80830019AF72302A92320ADF8B2 -:1045E0000A30FFF7C7FE08B102F082FD0C2200215D -:1045F00002A8FFF797FE01238DF808308DF80A30E6 -:10460000019A062302A92020ADF80C30FFF7B2FE74 -:1046100008B102F06DFD01A8FFF7AAFE08B102F093 -:1046200067FD002007B05DF804FB4FF480030B60CA -:104630009FE700BF708A07007D43070000E100E0AC -:10464000284100200030002070B50B4E4FF0A044F0 -:1046500001234FF4002533704FF4DA20C4F80855D5 -:1046600000F0D6F943F20803186800F0D1F90023EE -:104670003370C4F80C5570BD9032002070B54FF007 -:1046800080434A4DD3F81C65D3F81C25B12A6BD161 -:1046900001232B704FF080430022C3F81C25012416 -:1046A000434B444AC3F84025434B1B68B3F5E82FFE -:1046B00002D0002002F01CFDFFF7C4FE00F0B8FAA3 -:1046C00000F030FBB13E18BF012600285AD000F0A0 -:1046D0003BFB08B102F00CFD3046FFF71BFF00F07A -:1046E00059FB08B102F004FD3CB94FF0A043D3F8E8 -:1046F00010456FEA145404F001042B78002B45D1C7 -:104700004FF0A042D2F81015C90205D4D2F81035E6 -:104710006FEA935303F001032B70002C38D0002173 -:10472000287800F09DFA08B102F0E2FCFFF71AFECB -:104730004FF0A043D3F81025D20205D5D3F8103599 -:104740005B0201D4FFF780FF43F20804FFF7C0FECD -:10475000206800F0C7F928B100F0E4FA10B9206829 -:1047600000F0B8FAFFF7E8FDD3F81C25A82A0CBF23 -:10477000012200222A708DD0D3F81C354E2B89D00F -:1047800000248DE73046FFF7C5FEADE70123C3E700 -:1047900043F20803186800F0A5F90028BFD04FF4D1 -:1047A0007A71204600F05CFAC0E700BF9232002028 -:1047B00000A00040000001061410001010B5FEB06B -:1047C0004FF4FA730DF1020101A8ADF80230FFF7C2 -:1047D000D3FD044640B9BDF80430102B07D0112B8F -:1047E0000FD001A800F050FD20467EB010BD094B4F -:1047F00001221A704FF0A0434FF40022C3F808259D -:10480000EFE7044B18704FF0A0434FF40022C3F8B9 -:104810000C25E6E79132002013B501A8FFF79EFDB5 -:10482000044610B9019801F019FC204602B010BDF1 -:1048300008B5FFF7C3FF0528FBD1FFF7EDFF0528FB -:10484000F7D108BD0021024A084602F0B9BB00BFFB -:104850003148070038B50C46F8B90968D9B1104A93 -:10486000914215460CD0531A3B2B12D93C222846B4 -:1048700004F0DDF804E0C85CD05413F1FF33FAD241 -:1048800000223C21064802F07BFC0023A88723601D -:1048900038BD3D23F1E70E23F9E70123F7E700BF19 -:1048A000807F00206FF00203064A9E4502D1EFF39D -:1048B000098101E0EFF308818869A0F10200007826 -:1048C000104700BF5548070038B50546A8B10D4C44 -:1048D00000223C21204602F053FCA38F83420ED1DC -:1048E000224604F13C0152F8040B45F8040B8A42BD -:1048F000F9D10133A387002038BD0E20FCE70B203F -:10490000FAE700BF807F00200B2970B504461546EA -:1049100030D90389053300EB43030144CA1AD2B2EC -:10492000012A27D98B4225D81946134804F07FF86D -:104930002388522B06D1AB0711D062884AF6AF53B9 -:104940009A420CD00F2014E034F8022B824204D09B -:104950002E88964203F1010308D1002009E0218945 -:1049600000230A344FF6FE7043F20C059942EBD84F -:104970000B2070BD0920FCE79932002008B5002209 -:1049800002F0FEFB044A5178137843EA012398426F -:1049900014BF0B20002008BD9932002010B54FF045 -:1049A0008043D3F80443610709D5D3F8082103F500 -:1049B000847322B100221A600D4B1B689847A2062F -:1049C00007D50C4B1A6822B1002018600A4B1B68EF -:1049D000984763060AD5094B1A683AB100221A6053 -:1049E000054B01201B68BDE81040184710BD00BFF3 -:1049F000A432002014010040A83200201801004019 -:104A0000024AD2F80034002BFBD0704700E001408E -:104A10000A4908B50223C1F80435BFF36F8FBFF30D -:104A20004F8FC1F80805FFF7EBFF0023C1F80435ED -:104A3000BFF36F8FBFF34F8F08BD00BF00E0014091 -:104A400011DF704713DF7047014B01221A70704766 -:104A5000CC320020064B1878012803D1012904BF6D -:104A60000221197012B1104602F042BB704700BF1C -:104A7000D832002038B5064D064C02F007FB2B78E3 -:104A8000023B022B02D92378002BF6D038BD00BFA1 -:104A9000D8320020CC320020044B1B7803F0FF01F9 -:104AA0001BB9034A084602F08BBA7047CD3200208A -:104AB000494A070008B51C21084801F06BFB08B102 -:104AC00002F016FB00231C220549044801F052FBAA -:104AD00018B1BDE8084002F00BBB08BDD032002081 -:104AE000DC32002007B50368013303D1002003B096 -:104AF0005DF804FB01A800F07BF9019B1A78012AFC -:104B0000F4D1588830B1996843F20803002218683C -:104B100002F036FB019B5B881B1A58425841E6E7BE -:104B200084B02DE9F34108AC84E80F009DF82040E3 -:104B3000BDF822800B9D01A8DDE9097600F058F947 -:104B400054B9394B0122FF21A3F802809D601A70ED -:104B50001971364B1A7012E0012C17D1324BBA1969 -:104B60002A449A60A5221A70FF221A710C9AA3F89F -:104B70000280C3E903765D619A612C4B1C70FFF7DC -:104B800099FF02B0BDE8F04104B07047032C0FD18B -:104B9000019A254B11781970518892689A60C3E97F -:104BA0000376AA2259801A715D61204B0122D1E758 -:104BB000022C16D1019A1C4B1178A5290BD1002289 -:104BC0005A809A60FF221A70FF221A710022C3E9EC -:104BD00003225A61E9E719705188926859809A60F6 -:104BE000F2E7052C0ED1FFF7D3FB40B100F028FD12 -:104BF00008B102F07DFA0D4B03221A70C1E700F0F4 -:104C0000EBF9F5E7042C09D1074B00229A605A8092 -:104C1000FF221A70019A12791A71B0E7062CB0D1EE -:104C2000024B0422E9E700BFDC320020D83200202A -:104C30001FB50023CDE90233074B019301F062FA5F -:104C400030B906494FF4FE2301A84B6001F07EFA0B -:104C500005B05DF804FB00BF554A0700D0320020C4 -:104C600070B504460E4600F05BFF054640B94CB1F6 -:104C700000F03AFC0546FFF7FDFE0CB900F0ACF978 -:104C8000284670BDCEB10E4B0E4A1C700E4B0F481D -:104C90001C70214602F00AF94FF400454FF4FA70F7 -:104CA00000214FF47A720023E5FB060103F030FD8A -:104CB00022460146064802F00BF900F069F9D9E7EF -:104CC000CD320020994A0700CC320020888A0700A4 -:104CD000AC32002038B5FFF7B3FE08B102F008FA95 -:104CE0000F490D680023012404FA03F22A4207D079 -:104CF0005A0903F01F00203204FA00F041F82200A4 -:104D00000133272BF0D143F208042068FFF79AFE05 -:104D100008B102F0EDF92068BDE8384000F06EB847 -:104D200000E100E007B501A800F062F8019B1A78E5 -:104D3000A52A07D01879A0F1AA035842584103B018 -:104D40005DF804FB0120FAE710B501F0E2F8A8B124 -:104D50000E4B0F4843F00103984701F05BF808B190 -:104D600002F0C6F901F0D5F808B102F0C1F901F07E -:104D700099F8044638B102F0BBF904E001F0ACF850 -:104D800004460028E4D1204610BD00BF908A0700E9 -:104D900000A8610000B589B003AB142200211846B9 -:104DA000FFF7C0FA02228DF80C20002200920FC8F3 -:104DB000FFF7B6FEFFF75EFE002009B05DF804FBCA -:104DC00013B5044601A800F013F8019B1A7822706D -:104DD0005A8862809A68A2601A792271DA68E26061 -:104DE0001A6922615A6962619B69A36102B010BDB0 -:104DF000014B0360704700BF00F00700F0B50346A9 -:104E0000186880F308885868FF2464B2EFF30585BA -:104E1000002D01D1A64600472546064621273FBA68 -:104E2000F0B40024002500260027F0B4F92040B299 -:104E3000004700BFF0BD00BF73B500230DF10201B4 -:104E400001A8ADF80230019302F0F8FDF8B9019C19 -:104E500025785DB3174B93F83020032A28D00C2611 -:104E600006FB00F29958E9B998189D5093F8302044 -:104E70000132D2B283F83020BDF802300E4A9B08CE -:104E8000013B043443608460084602F099F8019BBA -:104E900033B128B1184602F0EDFD08B102F028F94F -:104EA00002B070BD01300428DAD1F0E70720EEE748 -:104EB0000420ECE7F8320020014F070011B108464A -:104EC00002F016B97047000010B50C230B4A43439B -:104ED000D418D15881B192F83010A0680139C9B204 -:104EE00082F830100021D150C4E90111043802F0D9 -:104EF000C1FD08B102F0FCF8002010BDF83200201E -:104F0000F8B5214B214E01221A7035460C2796F830 -:104F1000303003B9F8BD002407FB04F3EA5882B12E -:104F2000013AE818042A06D8DFE802F019050F0351 -:104F3000240000F097FEE0B2FFF7C6FF08B102F0D0 -:104F4000D7F80134042CE7D1E1E72B449A685A6082 -:104F500000F032FE0028EED002F0CAF8EBE700F0D5 -:104F6000DFFE00F0BBFE08B102F0C2F80120FFF73F -:104F700063FAE0E700F004FF00F026FF0020BDE840 -:104F8000F840FFF759BA00BFCD320020F8320020B8 -:104F900008B50E4B002283F8302003F130011A606F -:104FA000C3E901220C338B42F9D1094800F0FEFD20 -:104FB00002F0DCFC08B102F09BF8064802F0C2FCEB -:104FC00008B102F095F8002008BD00BFF8320020BB -:104FD000BD4E0700394E070008B50020FFF774FFEB -:104FE0000120FFF771FF0220FFF76EFF0320FFF79C -:104FF0006BFFBDE8084002F001BD006870476CDF40 -:1050000070476DDF70476EDF70476FDF704772DF8C -:10501000704773DF704774DF704776DF704777DF64 -:1050200070477ADF70477CDF70477FDF704786DF2D -:10503000704790DF7047AFDF7047B0DF7047B1DF78 -:105040007047B2DF7047B5DF704764DF704766DFD7 -:1050500070470C2813D8DFE800F014121212121255 -:1050600009120712120D0B0002207047032070472F -:105070000420704704290CBF052006207047062035 -:1050800070470120704702F033B8F8B51C4683889A -:105090000E4611461A191D2A05460DDC0268D01865 -:1050A000671CD754023000F8016C224603F0BFFCA5 -:1050B000AB8802341C44AC80F8BD10B504460846E9 -:1050C0000321FFF7C6FF03210246204601F02CFA18 -:1050D00018B1BDE8104002F00BB810BDF0B5474D57 -:1050E0002C789FB0002C40F0848016AB182221460B -:1050F00010A80293CDE903440594FFF713F9282380 -:1051000012933F4B1B7801278DF840708DF8557036 -:105110000AAE002B6FD021463A4C102206A8FFF7AA -:1051200001F9102206A9E01D03F072FC002862D0EC -:10513000354839460460FFF766FF08B101F0D8FF33 -:10514000324B374603F1100C186859683A4603C2CF -:10515000083363451746F7D12068A2880E902C4883 -:10516000A379ADF83C20002101228DF83E30066085 -:10517000FFF74BFF08B101F0BBFF03238DF854305C -:1051800004238DF8063041F23053ADF81830214B2E -:1051900032469B798DF81A300DF1070106A8FFF70A -:1051A00054FF012319460DF1060202A8FFF76DFF17 -:1051B000194803F047FC184AC3B2092102A8FFF7B7 -:1051C00064FF3246062102A81023FFF75EFF10AAF3 -:1051D00002A91248FFF71BFF08B101F089FF0F4B2E -:1051E00001211878FFF715FF08B101F081FF0123B5 -:1051F0002B701FB0F0BD0623C3E700BFA033002013 -:10520000683300202C330020B833002033330020D3 -:105210009C3300206C330020968A07006030002009 -:10522000032810B50B46144620D0042825D169B1B7 -:10523000124B18884FF6FF7398421ED01321FFF7C8 -:10524000ECFED0B1BDE8104001F052BF104601F0B5 -:10525000F3FF08B101F04CFF094B1B689C420CD1D5 -:1052600001220321074801F05FF9EAE7012118460E -:10527000FFF7EFFE01210246F4E710BD6230002087 -:10528000BC3300206C330020F0B504460146B1B0B9 -:105290008B4801F07DF923881A2B4AD01DD8112B99 -:1052A0007AD006D8012B00F0D280102B6DD031B00F -:1052B000F0BD132B00F08D80142BF8D1814A258A84 -:1052C000518D02F1180000238D420CBF0146194692 -:1052D0000732A088FFF7ABFEA8E0512B00F0BD809D -:1052E0001FD8232B00F0DB80262BE0D1237A012B63 -:1052F000DDD1754B00221A70744B196801391960A1 -:10530000002940F0A18010AB14221846FFF70AF8DC -:1053100005228DF84020149A00920FC8FFF700FC78 -:10532000C5E7552B00F0C280562B00F08380522B2E -:10533000BDD1674B1C884FF6FF75AC4200F0AB80C7 -:10534000644B1B78002B00F0A080012308226249E7 -:105350002046FFF774FE002840F09E80024601467A -:1053600002232046FFF76BFE002840F095802A4676 -:105370000C212046FFF75FFE43F20203984296D0CD -:10538000082894D0112851D191E7514BA2881A8056 -:105390004D4B00221A708AE730AD802325F89C3DE2 -:1053A0004B4C4A4B322200201A60FFF745F801238C -:1053B0002A4610A92088FFF744FE08B101F098FEA4 -:1053C000464B1B780BB9FFF789FE4FF6FF7323801E -:1053D0006DE73C4B03AC9A79186899888DF82220C8 -:1053E0000790DA1DADF82010173326461068516873 -:1053F000254603C508329A422C46F7D1384B09AAF4 -:1054000003F11807154618685968144603C4083391 -:10541000BB422246F7D1186820602D48314A0088E7 -:1054200010AB8521CDE91456FFF7FFFD00283FF4AE -:105430003EAF31E0A379002B7FF439AF244B132129 -:105440001888FFF7EAFDF1E7FFF748FE2FE7204B4A -:1054500000211888FFF7FBFDE8E7A379002B3FF454 -:1054600026AFA27B043A022A3FF621AF022B18BFD7 -:1054700001238DF840304FF4C173ADF84430144B24 -:1054800010A91888FFF7D9FDD0E71A46194620461B -:10549000FFF7D5FDCAE7082001F02AFE07E70C4B0D -:1054A000002211461888FFF7C4FDBFE7E188084BCA -:1054B000F72928BFF7211888FFF7C5FDB6E700BF19 -:1054C0006C3300202C330020A033002064300020F7 -:1054D000623000206833002060330020B3330020A6 -:1054E00044330020AE33002030B5464A46480023FE -:1054F0001370464A95B0137000F058FB01F05CFE43 -:105500000546002868D14248FFF7DEF9002866D139 -:10551000404B01221A7014AC112304F84C3D3E4854 -:1055200003F090FA3C4982B22046FFF77CFD08B1B7 -:1055300001F0DEFD0822002104A8FEF7F3FE374A41 -:105540004FF0C87304A8CDE90423FFF76AFD08B142 -:1055500001F0CEFD00210C222046FEF7E3FE0823D9 -:10556000ADF804302E4B029321462E4B2E48039368 -:1055700000F028FE08B101F0BBFD2C4C00214022B8 -:1055800004A8FEF7CFFE204603F05CFA0594284CF1 -:10559000ADF81000204603F055FA0794254CADF8FD -:1055A0001800204603F04EFA1123ADF8300004A88D -:1055B000ADF84C300D9401F005F91F4B30221A70F4 -:1055C00007225A7010229A70FFF788FD1B4B0422A5 -:1055D00019780120FFF723FD284615B030BD04A837 -:1055E000FFF70FFD08B101F083FD9DF8113004A80D -:1055F00001338DF81130FFF702FD00288BD001F048 -:1056000077FD88E7B333002021520700AD33002037 -:105610002C33002068330020968A07000800180009 -:1056200091560700875007006C3300209D8A0700C1 -:10563000B18A0700CC8A0700AE330020603000201A -:1056400010B50F4B01221A700E4B18884FF6FF73DE -:10565000984207D01321FFF7E0FC08B101F048FDA4 -:10566000002010BD084C2278002AF9D0074B18788A -:10567000FFF7D1FC08B101F03BFD00232370EFE7F9 -:10568000B333002062300020A033002060300020BF -:10569000F0B50B7889B005460C46092B23D8DFE816 -:1056A00013F02B00330042000A0018002400FD0014 -:1056B000060145000B0100F063FB0421FFF7C9FC64 -:1056C00004210246284600F02FFF60B101F010FDD2 -:1056D00009E0FFF7B5FF08B101F00AFD00F074FB27 -:1056E00008B100F089FB09B0F0BDFFF7A9FF002861 -:1056F000F7D001F0FDFCF4E7724B01221A704B6801 -:105700001A78714B1A70EEE76E4B02261E704B68CA -:105710001B78012BE7D100F0E1FA3146FFF799FC45 -:1057200002463146CEE7674B0322EBE70120FEF746 -:1057300083FE644B1E78022E2AD0032E4ED0012EFB -:10574000D1D104AB102218460021FEF7EBFD5E4AD2 -:10575000237A12788DF81020002203920C2B4FF040 -:105760000302CDE90120DCD163681846FFF745FC50 -:105770000590181DFFF741FC069003F10800FFF7A4 -:105780003CFC079001A800F017FA0028ABD0C4E752 -:10579000237A13F003010FD00022C1F104019446D3 -:1057A00098181646C0B267680132914207F800C0E7 -:1057B000F6D10133334423720123049363680693C3 -:1057C000237A04A89B08059300F0AAFA00288AD03F -:1057D0000221FFF73EFC0221024673E7207A83078D -:1057E00002D0324631466DE7384E0190314601F025 -:1057F000F9FC014618B12846FFF75FFC73E76168C2 -:10580000019A306803F013F9019801F053FD014645 -:105810000028F0D101A9304601F05CFD01460028C6 -:10582000E9D104230493019B9B08059304A83368E2 -:10583000069300F017FA074640B9254A237A116803 -:105840000B441360234B32681A604CE709281BD1C4 -:105850001F4B217A1A68114419601F4B1B78002BCB -:105860003FF441AF1D4C2388013B9BB22380002BAA -:105870007FF439AF284600F01DFE08B101F038FC76 -:10588000174B1B8823802EE7306801F0D5FC0146BA -:1058900010B12846FFF711FC3946ACE70E4B012248 -:1058A0001A700F4A8B8813800C4A13801BE70A4A30 -:1058B000002313700A4AF8E7054B196800F0BEFD93 -:1058C00003E700BFAD330020B4330020C033002015 -:1058D000A4330020BC330020AC330020AA330020C6 -:1058E000A833002018DF70470129F8B50D4614468B -:1058F0001F4607D0032912D014B32046BDE8F84054 -:1059000001F0F6BB0F4B1B78052BF5D10E4B1B6836 -:10591000002BF1D03A46214604209847ECE7094E87 -:105920003378022BE8D1094B5B689847064B3570FA -:105930001E68002EE0D03A4621462846B047DBE7F5 -:10594000F8BD00BFCC330020C4330020F03300206A -:1059500000B5084B89B001221A7005238DF80C3070 -:10596000079B009303AB0FCBFFF7DAF809B05DF8A4 -:1059700004FB00BFCD33002000B589B003238DF8B0 -:105980000C300A4B1B88ADF80E30094B5A68049254 -:105990009A68DB680693079B0093059203AB0FCBD5 -:1059A000FFF7BEF8002009B05DF804FBFC330020CF -:1059B0004834002000B589B001238DF80C300B4B22 -:1059C0001B88ADF80E3043F208031A68084B59687B -:1059D00004919968DB6806930591009203AB0FCBA5 -:1059E000FFF79EF8002009B05DF804FBFC330020AF -:1059F0004834002000B589B003AB142200211846BA -:105A0000FEF790FC04228DF80C20002200920FC8B3 -:105A1000FFF786F809B05DF804FB000030B589B0E7 -:105A200003AC142200212046FEF77CFC094B1B88A6 -:105A3000ADF80E30084BDB6806930025079B8DF808 -:105A40000C50009394E80F00FFF76AF8284609B05D -:105A500030BD00BFFC3300204834002008B5084B9F -:105A600008481860084B02221A70084B196800F0A9 -:105A700091FB18B1BDE8084001F03ABB08BD00BF7A -:105A80006034002058340020CC3300200034002043 -:105A900010B50B4B1B788BB90A4801F05DFA08B1C1 -:105AA00001F026FB00224FF41601064801F010FA1F -:105AB000044608B101F01CFB204610BD0824FBE79A -:105AC000CD330020D03300207FB50C46032105469E -:105AD000CDE900109608684602940396FFF702FF8E -:105AE000D8B1B4F5805F11D801236846CDE90035FF -:105AF000CDE90246FFF7F6FE78B903236846CDE903 -:105B00000035CDE90246FFF7EDFE06E01A46E11A40 -:105B1000E81AFFF7D9FF0028E6D004B070BD0000F6 -:105B2000F0B585B004A8184B40F80C3D174B184F42 -:105B3000184E00241C70184B3946CDE902441C80D5 -:105B400000F004FB054618B13470284605B0F0BDDE -:105B500043F2080301461B68104A11487B6001F0BC -:105B6000A5F908B101F0C4FA00224FF416010D485E -:105B700001F0AEF908B101F0BBFA0B4B00221A603C -:105B800001233370E1E700BFE958070044340020E7 -:105B900058340020CC330020FC330020515907003A -:105BA000DC8A0700D0330020C8330020014B186086 -:105BB000704700BFC433002070B54368204C0FCB42 -:105BC00084E80F002278510701D5930731D163682B -:105BD0009E072ED1A1688D072BD1E068840728D1BC -:105BE0000B44184E0344B1F5304F336023D843F2D1 -:105BF00008010968C1F5DA218B421CD8124D134BFC -:105C00002B60D107124B6B600ED5124BAB60124B61 -:105C10001B78012B11D1FFF73BFF044610B92B680D -:105C200030689847204670BD93074CBF0B4B0C4B18 -:105C3000ECE70624F6E70C24F4E70824F2E700BFBB -:105C40004834002000340020F03300205D5A070063 -:105C5000F5590700B5590700CC33002079590700E2 -:105C60001D5A0700F8B50646002829D083689B070F -:105C700028D1164B1B78052B26D1154D4468154F9E -:105C80002B683A68A4002344934204D94FF0FF33B1 -:105C90002B600C20F8BDFFF7FBFE0028FAD10E4860 -:105CA0002B68B1680068224600F064FA0028F1D140 -:105CB0002B681C443B682C609C4218BF0920E9E714 -:105CC0000E20E7E71020E5E70820E3E7CC330020CB -:105CD000C8330020003400206034002070B50B4B26 -:105CE0001D6885B90A4E3378042B0CD1094C0A4B38 -:105CF00021781A780948FEF707FE10B9052333709A -:105D000070BD2570FCE70820FAE700BFC83300200B -:105D1000CC330020443400204834002004340020D8 -:105D2000F8B5134B1A78032A074603D0042A03D088 -:105D3000082419E004221A700E4B1B68002BF7D1BF -:105D4000FFF7A6FE044678B90B4E7D683378AD00A8 -:105D50005A19402A0AD80948B9682A46184402F054 -:105D600066FE33781D4435702046F8BD0924FBE7F4 -:105D7000CC330020C83300204434002004340020F9 -:105D800038B50D4C2378052B14D10C4B0C4D1A68EB -:105D90002B689A420ED106232370FFF779FE40B993 -:105DA000084B29681B685868FEF7E8FD08B9072307 -:105DB000237038BD0820FCE7CC330020C833002016 -:105DC000003400206034002010B5084B1B78072BEE -:105DD0000AD1074801F0C0F808B101F089F9054B74 -:105DE000BDE810409B681847082010BDCC33002048 -:105DF000D0330020F033002000B589B006238DF8A1 -:105E00000C30079B009303AB0FCBFEF789FE09B064 -:105E10005DF804FB10B58CB005A8FEF7D1FF089A19 -:105E2000002A3BD00B9C02F58053A3422AD91C497F -:105E3000A4F5805301EA530343F2080109688A423A -:105E400008D85800121A00F580512044FFF73CFE94 -:105E50000CB010BD03F580500121CDE90110CDE952 -:105E6000030101A8FFF73EFD0028F1D14FF4805057 -:105E7000CDE9020001A801910491FFF733FD00284C -:105E8000E6D1DEE70123CDE9013492084FF48053D7 -:105E900001A803930492FFF725FDD9E71046D7E741 -:105EA00000F0FFFF00B58DB005A8FEF789FF099847 -:105EB00060B1089B6BB943F208031B68800800229D -:105EC000039001A8CDE90123FFF70CFD0DB05DF8AB -:105ED00004FB0B9A1344F1E700B58DB005A8FEF75B -:105EE0006FFF099878B1089B83B943F208031B68D8 -:105EF0000393800803214FF4E822049001A8CDE920 -:105F00000112FFF7EFFC0DB05DF804FB0B9A134490 -:105F1000EEE730B58DB005A8FEF752FF0898A0B1A6 -:105F20000B9C00F58053A34211D943F208031B6870 -:105F3000984218D8A4F5805323F00105421B5B0852 -:105F400005F580516019FFF7BFFD0DB030BD800829 -:105F500003224FF48053049001A8CDE90123039458 -:105F6000FFF7C0FCF1E70E20EFE729DF704728DFDD -:105F70007047000037B50B460C465A6814F80C1BE6 -:105F8000DD680092044A5B6952F8255002462046BB -:105F9000A84703B030BD00BF6434002038B5184CAA -:105FA0002378182202FB03431A795D69012A03D082 -:105FB000032A18D00F2015E0124A996910689A68D0 -:105FC000DB680003121AB2F5805F1D44014438BF3C -:105FD0009208284428BF4FF48062FFF7C6FF08B933 -:105FE0000123A37038BD4FF080531869054B80B270 -:105FF000B5FBF0F518682844FFF7B9FFEFE700BFDD -:10600000743400206C35002070B5134D6C780A2C68 -:106010001FD02E783444E4B2092C84BF0A3CE4B289 -:10602000182606FB0454A261207103C9A360049BD7 -:10603000E360AB7804F1100282E8030023B1002092 -:106040006B7801336B7070BDFFF7A8FF1128F7D193 -:10605000F5E70420F7E700BF74340020F8B52749BE -:106060008B780C462BB1002602288E7002D00328B4 -:106070003AD0F8BD0D78224A182101FB054113687A -:1060800089680133B1EB033F13601BD86378166056 -:10609000013B63706B1CDBB218270426092B17FB2E -:1060A000056188BFA5F10903214400202370FFF793 -:1060B00061FF07FB05430022C3E904621A719A607D -:1060C0009A61DA606378002BD3D0A378002BD0D10B -:1060D000FFF764FF0028CCD01128CAD021781823FC -:1060E00003FB0141043105E00B78182202FB031188 -:1060F00004310D20BDE8F840FFF73CBF74340020A8 -:106100006C3500200D4A002313600D4A04201380D3 -:10611000937002F1F001137193609361D360C2E94F -:10612000040318328A42F6D1064A1360064A002058 -:10613000C2E90033C2E90233704700BF6C3500206A -:10614000743400206835002064340020074A136846 -:10615000042B1FBF0B60591C1160054A1DBF01684D -:1061600042F8231000201846704700BF6835002011 -:106170006434002013B5CC180C43A40708D1009355 -:1061800013460A4601460120FFF73EFF02B010BD4C -:106190001020FBE707B500220B46009201460320C2 -:1061A000FFF732FF03B05DF804FBA8DF7047AADFFA -:1061B0007047ADDF7047AEDF7047B0DF704762DF1A -:1061C000704700002DE9F0470F4694B005460028BF -:1061D00000F02E81002900F02B814B68002B00F08D -:1061E00027814FF6FF730380924B04AA03F1100C32 -:1061F000164618685968144603C408336345224696 -:10620000F7D114AB41F230520DF10A01304623F8B8 -:10621000482DFFF7D4FF0446002840F005812A1DD1 -:1062200019460120FFF7C1FF0446002840F0FC801A -:106230009DF80A30AB7101461C220DA8FEF772F8DA -:106240009DF834300E9443F004038DF8343001AEE1 -:10625000AB798DF80E30214641F23253032230469D -:10626000CDE91044CDE91244ADF80C30FEF75AF8F0 -:106270009DF8043064F3030364F307138DF80430CE -:106280009DF805304FF0010A6AF303036AF3071320 -:106290008DF805309DF806306AF3420364F3C303BA -:1062A00064F30413DBB243EA0A032146142208A86C -:1062B0008DF806300DF10C08FEF734F84FF0140994 -:1062C00005F1080308AA0DA9A8880A940C94CDE941 -:1062D0000886ADF82C90FFF76AFF0446002840F0CE -:1062E000A38001461C220DA8FEF71CF89DF834304F -:1062F0000E9443F018038DF83430AB798DF80E30DE -:10630000214641F2315303223046CDE91044CDE914 -:106310001244ADF80C30FEF705F89DF8043064F334 -:10632000030364F307138DF804309DF805306AF316 -:1063300003036AF307138DF805309DF806306AF3FE -:10634000420364F3C303DBB243F0110321464A4620 -:1063500008A88DF80630FDF7E5FF1723ADF82C30BF -:1063600008AA05F110030DA9A8880A940C94CDE998 -:106370000886FFF71CFF0446002855D101461C2261 -:106380000DA8FDF7CFFF9DF834300E9443F00203C3 -:106390008DF83430AB798DF80E30214641F234530C -:1063A00003223046CDE91044CDE91244ADF80C305B -:1063B000FDF7B8FF9DF804306AF303036AF307138F -:1063C0008DF804309DF8053064F3030364F307137C -:1063D0008DF805309DF806306AF3420364F3C30379 -:1063E00064F30413DBB243EA0A0321464A4608A8D1 -:1063F0008DF80630FDF796FF02230A93ADF82C3096 -:1064000008AA05F120030DA9A8880C97CDE90886F4 -:10641000FFF7CDFE044638B97B68AB62BB6803B1B9 -:10642000EB62054B01221A70204614B0BDE8F087DC -:106430000E24F9E7E08A07007035002070B50546A4 -:1064400086B070B302884FF6FF739A422BD0174B79 -:106450001B7843B3164C1022080AE170207121FA10 -:1064600002F0090E072301266071A17102A8002124 -:106470006370ADF806302270A670FDF753FF2B8ACB -:10648000ADF808300023ADF80C3002A90DF1060379 -:1064900028888DF80A60CDE90434FFF78CFE06B039 -:1064A00070BD0E20FBE70820F9E700BF7035002023 -:1064B0007135002030B5054687B060B302884FF6CD -:1064C000FF739A4229D0164B1B7833B3154C112316 -:1064D00023700B0A6170A3700B0C090EE37021711D -:1064E00005230021102202A8ADF80630FDF71AFF9F -:1064F0002B8AADF8083001238DF80A300023ADF85F -:106500000C3002A90DF106032888CDE90434FFF709 -:1065100052FE07B030BD0E20FBE70820F9E700BFB0 -:10652000703500207135002030B5044687B038B38F -:1065300000884FF6FF73984224D0134B1B780BB39F -:10654000124D102369700321ADF80610AA700021C6 -:106550001A4602A82B70FDF7E5FE238AADF8083035 -:1065600001238DF80A300023ADF80C3002A90DF19B -:1065700006032088CDE90435FFF71DFE07B030BDC6 -:106580000E20FBE70820F9E7703500207135002068 -:1065900070B50D4688B0044640B139B1826A2AB15F -:1065A0000B88112B59D003D8102B43D008B070BDE5 -:1065B000502B42D0512BF9D18B79022BF6D10A897D -:1065C000038A9A42F2D18B7B043B022BEED99DF8D1 -:1065D000163043F001038DF816300B8AADF81830F1 -:1065E0004B8AADF81A30022601F11403082200216B -:1065F00001A807938DF81060FDF794FE01AAA18A07 -:1066000020880196CDF808D0FFF7D3FD034638B3B4 -:10661000E36A03B1984740F2FD1304A92088ADF85E -:106620001430FFF7CAFD0028C0D0E36A002BBDD0AC -:106630009847BBE78B882380B8E7C98803899942CC -:10664000B4D108238DF81030123535F8023C8DF89E -:106650001830059504A99047A8E74FF6FF73EAE7BD -:106660009DF800202088D207D5D504A9ADF81430B4 -:10667000FFF7A3FD0028D8D1297D4B1E072B41D859 -:10668000DFE803F0041A2327292B3E2D00238DF881 -:1066900004306B8A012B05D8062201212046FFF722 -:1066A00043FFC0E7012315358DF80C300295A36A2E -:1066B00001A92046984779E76A8A01239A428DF812 -:1066C0000430F0D806220221E8E702238DF80430D6 -:1066D000EDE70323FAE70423F8E70523F6E76B8ADF -:1066E000022B02D803220821D8E7AA7D6B7D43EA5A -:1066F0000223ADF808300BB90723E7E70623E5E7E7 -:106700000923E3E70322C9E7A8DF7047AADF704740 -:106710002DE9F04381468FB0154698460E4611B9D3 -:10672000084600F0E5FC15B9284600F0E1FC1C2203 -:106730000DEB02000021FDF7F5FD9DF81C30ADF8D2 -:106740000490002443F002030127214603226846F7 -:106750008DF81C300894CDE90A44CDE90C448DF83D -:106760000670FDF7DFFD98F800308DF8003098F8DE -:1067700001308DF801309DF8023067F3420303F0D9 -:10678000E70364F300032146142202A88DF80230C7 -:10679000FDF7C8FD0A48CDF80CD001AB029302AA60 -:1067A000169B0088ADF8105007A9ADF81240ADF85F -:1067B00014500696FFF7AAFF0FB0BDE8F08300BFA4 -:1067C000B035002030B587B006A941F60A0304466B -:1067D00021F80C3D01205A4A8DF80E00FFF794FF76 -:1067E0000546002849D12288002A49D1228952B180 -:1067F000544B0093E16804F13C0342F62420FFF778 -:1068000087FF002847D1228A52B14F4B009361691C -:1068100004F13C0342F62520FFF77AFF00283AD125 -:10682000228B52B1494B0093E16904F13C0342F6DB -:106830002720FFF76DFF00282DD1228C4AB1444B51 -:106840000093616A04F13C0342F62620FFF760FFE3 -:1068500008BB228D4AB13F4B0093E16A04F13C032F -:1068600042F62820FFF754FFA8B9236BABB9616B40 -:10687000002938D1A36B002B42D1284607B030BD88 -:10688000354B0093616804F13C0342F62920FFF781 -:106890003FFF0028AAD00546EFE71A688DF81020C0 -:1068A0001A68120A8DF811205A888DF81220DA78A9 -:1068B0008DF813205A688DF814209B688DF81530D8 -:1068C0001A0A1B0C8DF81730244B8DF816200093F4 -:1068D000082204F13C0304A942F62320FFF718FF25 -:1068E0000028C4D0D7E71E4B0A790093096804F149 -:1068F0003C0342F62A20FFF70BFF0028BAD0CAE774 -:106900001A788DF810205A888DF81120120A8DF807 -:1069100012209A888DF81320120A8DF81420DB8833 -:106920008DF815301B0A8DF816300E4B0093072298 -:1069300004F13C0304A942F65020FFF7E9FEAAE760 -:10694000B035002090350020A8350020803500208B -:1069500078350020B235002088350020BA35002077 -:10696000A035002098350020094A537891780133EA -:10697000DBB2994208BF0023117899421FBF037010 -:106980005078182303FB002014BF04300020704708 -:10699000C4350020082910B5044602D0002000F0BC -:1069A000A7FBD4E90030BDE81040184773B5054691 -:1069B00002A8002400F8014D0E4600F0A7FB0DF1DF -:1069C0000600FFF7D1FF90B106700A4B9DF8062034 -:1069D00045605A709DF8070000F0BCFB24B9064BD7 -:1069E0004FF48012C3F80021204602B070BD042489 -:1069F000F0E700BFC435002000E100E0204B214952 -:106A00001A682F2300BF00BF00BF00BF00BF00BF38 -:106A100000BF00BF8A422FD000BF00BF00BF00BF31 -:106A200000BF00BF00BF00BF00BF00BF00BF00BF6E -:106A300000BF00BF00BF00BF00BF00BF00BF00BF5E -:106A400000BF00BF00BF00BF00BF00BF00BF00BF4E -:106A500000BF00BF00BF00BF00BF00BF00BF00BF3E -:106A600000BF00BF00BF00BF00BF00BF00BF00BF2E -:106A700000BF00BF00BF00BF013BC3D1704700BFD4 -:106A8000703000200024F4000C4B0D484FF400320D -:106A900010B5C3F8802001244FF48033C0F8483388 -:106AA000C0F808334460FFF7A9FF064B846000205C -:106AB0001860FFF7A3FF044B187010BD00E100E061 -:106AC00000100140E0360020D13600202DE9F341CE -:106AD0002549264B0025C1F84051C1F84451C1F861 -:106AE0004851C1F84C51C1F80051C1F804511B681C -:106AF000002B34D0D1F804451D49DFF8888009689F -:106B0000641A24F07F442F461A68A24212D8A41AAD -:106B100015441A7CDE6962B15A691F7400929B6940 -:106B2000019342460821684600F04AFA08B100F095 -:106B3000DFFABEB90F4B104A197813788B4205D192 -:106B40000133DBB2022B08BF0023137012780B4B0A -:106B500043F822500A4B4FF48012C3F8002102B0D0 -:106B6000BDE8F0813346CFE700100140E436002055 -:106B7000E0360020DC360020DD360020D436002050 -:106B800000E100E0956907002DE9F74FA44AA54907 -:106B900013780978A44C99423BD00133DBB2022B25 -:106BA00008BF00231370A1491278A14B0F6853F856 -:106BB00022003B1823F07F4300220B602368154618 -:106BC0001646944613B942B1236006E01968814223 -:106BD0000DD902B12360091A196001272368DFF873 -:106BE000589201930026BDB9DFF858A263E0401A1D -:106BF0000E44D968C3F800C0D3F81CE031B1BA190B -:106C000022F07F42C3E90121DD611D460122734666 -:106C1000D8E700252F46E1E72846ED69834A436817 -:106C20001268DFF824E2D0F808C0991A21F07F41F9 -:106C3000714500F2A980614401600122027422685A -:106C40000023C0E90133C361002A40F0A78020601F -:106C5000C9E75A1C9AF80210D4F800B0D2B2914297 -:106C60008AF8002004BF00228AF80020182202FBC4 -:106C700003A31A799868022A73D0032A00F081804E -:106C8000012A18D1017CB1B9DA6842601A698260C0 -:106C90005A69C2609B698361664B1B78002BBDD02B -:106CA0004160BBE7984200F09E809846DB69002B6C -:106CB000F8D1002303749AF800309AF801209A4220 -:106CC000C7D1236826B9019A934201D1002F42D03F -:106CD000002B00F08580D3F80090574C534BD4F82C -:106CE00004651868554F351A3B7825F07F45033504 -:106CF0009BB94FF48033C4F84433C4F80433504B89 -:106D00004FF400324FF00108C3F880211A60C4F834 -:106D10000080FFF773FE87F80080A9452CBF484428 -:106D2000401920F07F40C4F84005D4F804359B1B7F -:106D300023F07F43801B033320F07F4083420AD936 -:106D4000D4F80435C4F84035FFF758FE3C4B4FF4F7 -:106D50000032C3F80021374B00221A7003B0BDE89F -:106D6000F08F5B46D846A2E78BF81020DBF81CB00A -:106D70000123BBF1000FF7D1002B9CD0C4F800B069 -:106D800099E700231A46F4E7D31A23F07F436345BB -:106D900034BFACEB0303002303604EE701681368C4 -:106DA00099421BD8591A1160C26150E7A1EB0C013E -:106DB000D3F81CC01A46BCF1000F0AD06346D3F8C2 -:106DC00000C08C45F2D3ACEB010CC3F800C09C466C -:106DD00013460160C0F81CC0D86104E71346EEE713 -:106DE000FFF752FEB7E740450CD1DBF81C302360BB -:106DF00043B90E490122C9F808200B600D4B1A70E7 -:106E0000FFF7FCFDC2690368C8F81C2012B11168C5 -:106E10000B44136023689B4518BF012649E700BF58 -:106E2000DC360020DD360020E4360020E03600208D -:106E3000D4360020D036002000100140D13600208A -:106E400000E100E0C4350020FEFF7F0008B5FFF739 -:106E50001BFE104B00200B2218809A700E4B1860FE -:106E60000E4B18700E4B18700E4B4FF48012E02131 -:106E7000C3F8802183F814131A6002F18042A2F54E -:106E80006F22C2F8080583F81113074BD2F80425C6 -:106E90001A6008BDC4350020E4360020DC3600202E -:106EA000DD36002000E100E0E0360020074B9B7853 -:106EB0004BB132B128B10368187C20B959745A61BA -:106EC0007047072070470820704700BFC435002076 -:106ED0002DE9F7431D4FBB7805460E4690469BB300 -:106EE00090B304292ED9436973B3437C02A80024CC -:106EF000012B00F8014D0CBF8946A14600F006F9B0 -:106F00000DF10600FFF730FDD0B101230370104BE7 -:106F10004560D3F80435C0E90498C0E902369DF80D -:106F200006307B709DF8070000F014F924B9094B76 -:106F30004FF48012C3F80021204603B0BDE8F0836F -:106F40000424EFE70724F7E70824F5E7C435002019 -:106F50000010014000E100E0064A92783AB130B1F9 -:106F6000426922B1002202740221FFF71FBD0820EE -:106F7000704700BFC435002012F0030310B511D1D3 -:106F8000094C22604C1CE400A4B22244074C22604D -:106F9000074A1370074A1370074A1080074A1846B9 -:106FA000118010BD0720FCE7F0360020EC360020F1 -:106FB000E8360020F8360020F4360020F6360020AF -:106FC0002DE9F3472B4D2B888B4206460C4617467E -:106FD0004BD302A84FF0000800F8018D00F096F89E -:106FE000254B264A18781178CBB2254909888B425F -:106FF00038BF0133C0B238BF5FFA83F840452ED0A6 -:1070000092F800801378DBB2994286BF0133DBB27D -:10701000002313709DF8070000F09CF84FF6FF73F3 -:10702000984524D0DFF860A0DAF800304FEAC809AC -:1070300003EB090243F83870A6B19CB1114B2888C4 -:107040001B68224608FB0030314601F0F0FCDAF8FC -:1070500000304B4400209C8002B0BDE8F0874FF622 -:10706000FF78D7E700209080F6E70920F4E70420B6 -:10707000F2E700BFF4360020F8360020E8360020A2 -:10708000F6360020EC360020F0360020F8B5124C21 -:10709000124D264622782B789A4200D1F8BD2378EB -:1070A0000F48104A078812680F48DBB219B202EB8A -:1070B000C10C006852F83120BCF8041003FB070033 -:1070C00090470A4A23781288DBB29A4286BF01337E -:1070D000DBB200233370DDE7F8360020E83600200D -:1070E000F4360020F0360020EC360020F636002082 -:1070F0001FB50021CDE9021001AA44F20100ADF84C -:107100000410FDF73BF905B05DF804FB70B5EFF333 -:10711000108672B60C4A946801239CB993600B4B9D -:107120000B4DD3F8801029401160C3F88050D3F87C -:10713000841051604FF0FF32C3F88420047006B908 -:1071400062B670BD0370FAE72841002000E100E05C -:10715000FC06FFBD10B5084B9A685AB150B9EFF361 -:10716000108172B6054A1C6814605C6854609860AF -:1071700001B962B610BD00BF2841002000E100E067 -:107180002AB113880144884204D1184670474FF64B -:10719000FF73F7E75BBA10F8012B9BB25A40C2F3BA -:1071A0000313534083EA03331BB25A0102F4FF5224 -:1071B00053409BB2E7E70000064B074A00201870D7 -:1071C000064B1A600422C3E90120C3E90300C3E9A6 -:1071D00005007047F9360020FC3600206C40002086 -:1071E0000020704730B5F9B1124B5C6800220A608C -:1071F000E4B1B0F5167F1BD8D8681D680130013C9A -:10720000D86018695C604FF4177404FB00540C607C -:10721000012101FA00F49969013000F003002143D3 -:1072200018619961104630BD0E20FCE70420FAE792 -:107230000C20F8E76C400020F0B51D4B9A68A2B313 -:1072400059691E688D1A05F003052C464FF417770F -:1072500007FB046C604512D1012101FA04F0996921 -:1072600041409961002021465E68D3F818C04FF074 -:10727000010E71440024164401F003010AE00134B8 -:1072800004F00304A142E3D11020EDE74AB1013A32 -:107290000D4601240EFA05F515EA0C0FA6EB0207C0 -:1072A000F4D00CB1C3E90172F0BD0420FCE700BFCB -:1072B0006C400020064A13691268013B4FF41771B5 -:1072C00003F0030301FB0323C3F8580200207047B7 -:1072D0006C40002030B5C0B1B9B10E4BDA68B2B124 -:1072E000013ADA609A681D6801329A605A694FF46F -:1072F000177404FB025404600132D4F85802086089 -:1073000002F003025A61002030BD0E20FCE7042089 -:10731000FAE700BF6C4000203FB40C49086890B108 -:107320000B4B1C687CB10B4A1568CDE90250002359 -:107330008DF804300B60136004AB13E9070023469B -:1073400004B030BC184704B030BC704790400020F7 -:1073500094400020A0400020DC2810B509D0DD2892 -:1073600010D0C02816D1FFF7D7FF0E4B0E4A1A6077 -:1073700010BD0E4A0E4B19681368581C1060C022CD -:10738000CA54F2E7094A0A4B19681368581C10607E -:10739000DB22F5E7064B054A196813685C1C14608C -:1073A000C854E2E768300020E573070090400020F1 -:1073B000A0400020C02802BF014B024A1A6070475B -:1073C00068300020E573070008B5DB2000F042FDBF -:1073D00010B9024B024A1A6008BD00BF6C30002091 -:1073E00081750700C02810B409D0DB280BD0094BE9 -:1073F000094A196813685C1C1460C85406E05DF8FB -:10740000044BFFF789BF054B054A1A605DF8044B32 -:10741000704700BFA040002090400020683000204E -:107420005973070010B5064A064C12682368D05CF1 -:1074300000F010FD10B923680133236010BD00BFB8 -:10744000A44000209840002008B5C02000F002FDB4 -:1074500028B9034B1B6813B9024B034A1A6008BDD5 -:10746000984000206C300020257407007FB51C4C2C -:107470001C4E1D4D226833689A4219D31B4B2B605A -:10748000FFF7E2FF002829D1194B01221A70194B8E -:107490001B681BB38DF80420174A126802922268F9 -:1074A000039204AA12E9070004B0BDE8704018472F -:1074B000114B22681B689A5CC02A03D022689B5C2F -:1074C000DB2B05D10D4B2A689A4204BF0C4B2B6075 -:1074D0002B689847042801D01128CBD104B070BD87 -:1074E000984000209C4000206C3000204974070028 -:1074F0008840002094400020A4400020257407000C -:10750000C97307001FB50378032B044605D1164B3A -:107510001B78022B01D1FFF7A9FF2378042B20D180 -:10752000124B1A6862B1124B1968124B1B689942D0 -:1075300006D2114B20791B6804B0BDE810401847F3 -:107540000E4B1B686BB10292094A0221126803922A -:107550008DF8041004AA12E9070004B0BDE8104039 -:10756000184704B010BD00BF88400020A040002094 -:10757000904000208C400020683000209440002083 -:1075800010B50C4A0C4C12682368D35CC02B03D096 -:10759000DB2B0CD0042009E0DC2000F05BFC28B9D8 -:1075A0002368064A01332360054B1A6010BDDD20B5 -:1075B000F3E700BFA4400020984000202574070096 -:1075C0006C300020014B1860002070479440002070 -:1075D000F0B50C4E377887B097B90B4D0FCD6C4690 -:1075E0000FC495E80300072384E80300074A3946DF -:1075F000684600F0E1FB08B90123337007B0F0BD25 -:107600000020FBE788400020F08A0700057507008E -:10761000024B00221A7000F031BC00BF88400020ED -:1076200010B5C0B10D4B1A78012A04D0022A0CBF44 -:107630000420082010BD0A4A00241460094A116081 -:10764000094A106002221A70084B094A1A60FFF7B3 -:107650000DFF2046EEE71020ECE700BF8840002039 -:10766000984000209C400020A44000206C30002066 -:1076700049740700054B064A1860064B1960064B13 -:1076800000201860054B1A60704700BFA040002022 -:10769000B57307008C400020904000206830002027 -:1076A000064B07481B68DB00DBB200220370042195 -:1076B0005B4242708270C370FFF7B2BFD0400020BF -:1076C000A840002070B52D4C2D4E0246254623784B -:1076D000012B14D002D3022B20D070BD002AFCD184 -:1076E0002848FFF739FC08B1FFF702FD264B1B685D -:1076F000002BF2D0254ABDE8704010781847012AC7 -:10770000EBD13168224B06311868FFF789FF08B1C9 -:10771000FFF7EEFC02232B700022D8E7022A19D0D3 -:10772000032A0ED0002AD8D11A4B16481A6041F607 -:10773000E121FFF7CDFB0028CFD0BDE87040FFF777 -:10774000D7BC154A1368013303F007031360002305 -:107750002370E1E70F4A1368052B0AD00133136049 -:10776000074B19680A4B06311868BDE87040FFF7EF -:1077700057BF064B01221A70E9E700BFF440002012 -:10778000E8400020AC400020E4400020EC40002015 -:10779000FC400020F0400020D4400020F0B585B02F -:1077A00004AB03E907009DF80400032878D8DFE85C -:1077B00000F00802A7AA012005B0BDE8F040FFF7DD -:1077C00081BF039E564C032E40F28680029D6B784B -:1077D00013F00F0269D00E2A7ED1042E59D02A78D8 -:1077E000500656D5110654D51A44AB781A44EB7896 -:1077F0001A4412F0FF024CD1B71E39462846FFF753 -:10780000BFFCEB195A78EB5D43EA0223984240D162 -:1078100044492A780B6802F00702D8B282422BD181 -:10782000013303F007030B60FFF73AFF3E4B0122E1 -:1078300030461A70FFF73EFD08B1FFF759FC384992 -:107840004FF41670FFF7CEFC00285ED0042802D05B -:107850000020FFF74DFC35480521FFF70BFF08B16D -:10786000FFF746FC324B1B68002B56D04FF0000050 -:1078700005B0BDE8F04018474FF416712068FFF7D7 -:10788000F9FE08B1FFF734FC05B0BDE8F040FFF7A2 -:1078900007BF20684FF41671FFF7ECFE00283CD0BC -:1078A00005B0BDE8F040FFF723BC2978AA780B4467 -:1078B0001344EA78134413F0FF030DD11D4A1268F4 -:1078C0000132C1F3C20102F00702914204D11A4A07 -:1078D00003201370FFF7F6FE25681DB14FF41671F3 -:1078E0002846D9E70E494FF41670FFF77BFC80B1AC -:1078F000042802D02846FFF7FBFB0C480521CBE704 -:1079000005210A48C8E70320CAE720684FF416712A -:10791000A3E720684FF41671BEE705B0F0BD00BFC5 -:10792000F8400020D0400020CC400020D84000206B -:10793000E0400020D4400020EC4000200220FFF76F -:10794000C1BE0000074B10B5044618600648FFF79B -:1079500039FE08B1FFF7CCFB002C0CBF0E20002035 -:1079600010BD00BFE04000209D770700184A19486D -:10797000002310B51360184A1360184A1360184AA0 -:107980001370184A1370184B184A01211960184BCC -:107990001960184B1970FFF789FA08B1032010BD60 -:1079A000FFF70AFC0028FAD1FFF712FE0028F6D1F3 -:1079B000114C4FF416702146FFF714FC0028EDD14E -:1079C00020684FF41671BDE81040FFF753BE00BFAA -:1079D000FC400020088B0700E8400020F040002019 -:1079E000CC400020F4400020D04000203D7907002A -:1079F000D4400020EC400020F84000200C4A08B59C -:107A0000002313600B4A1360FFF7EAFB08B1FFF78E -:107A10006FFBFFF7FDFD08B1FFF76AFB0648FFF7B4 -:107A20009BFA042802D10020FFF762FB002008BD6A -:107A3000E4400020E0400020AC40002037B50D4677 -:107A4000044698B191B10A4B19780022019259B1BC -:107A500001A91A70FFF73EFC019B063B2B802368AF -:107A60000433236003B030BD0420FBE70E20F9E7A8 -:107A7000CC4000200438FFF7DFBB00000C4B1B7824 -:107A8000062B10D10B4B1B681A070CD10A4B186838 -:107A900000F0F003302B08D000F0E000A0F140032C -:107AA000584258417047002070470120704700BF7E -:107AB000E00F00F0E40F00F0E80F00F0094B1B7836 -:107AC000062B0CD1084B1B681A0708D1074B186806 -:107AD00000F0F000A0F130035842584170470020F8 -:107AE000704700BFE00F00F0E40F00F0E80F00F077 -:107AF00008B5FFF7C3FF28B17D4B7E4A1B68C3F36F -:107B000004231360FFF7DAFF10B17B4B7B4A1A6046 -:107B1000FFF7B4FF28B17A4B7A4A1B68C3F34233AC -:107B20001360FFF7CBFF20B1774AD36823F080734F -:107B3000D360FFF7A3FF40B14FF080430022C3F8AA -:107B40000C21C3F81021C3F83825FFF7B7FF10B197 -:107B50006E4B03221A60FFF7B1FF40B16C4B052258 -:107B60001A6001229A6700229A603F225A60694B8C -:107B70001B78062B50D1684B1B6819074CD1674BFB -:107B80001B6803F0F003502B46D14FF08052644B3A -:107B9000D2F80414C3F82015D2F80814C3F8241539 -:107BA000D2F80C14C3F82815D2F81014C3F82C1509 -:107BB000D2F81414C3F83015D2F81814C3F83415D9 -:107BC000D2F81C14C3F84015D2F82014C3F8441599 -:107BD000D2F82414C3F84815D2F82814C3F84C1569 -:107BE000D2F82C14C3F85015D2F83014C3F8541539 -:107BF000D2F83414C3F86015D2F83814C3F86415F9 -:107C0000D2F83C14C3F86815D2F84014C3F86C15C8 -:107C1000D2F84424C3F87025FFF730FF28B1414B58 -:107C2000414A1B6803F04F031360FFF727FF48B179 -:107C30004FF08043D3F80024D20744BF6FF0010215 -:107C4000C3F80024394B1B68062B08D1384B1B683E -:107C5000062B01BF374A136843F480631360364A2A -:107C6000D2F8883043F47003C2F88830BFF34F8FE6 -:107C7000BFF36F8F4FF01023D3F80022002A03DBED -:107C8000D3F80432002B2FDA2C4B0122C3F8042541 -:107C9000D3F80024002AFBD04FF010221521C2F89F -:107CA0000012D3F80024002AFBD04FF01023152235 -:107CB000C3F80422214B1A46D3F800140029FBD044 -:107CC0000021C3F80415D2F80034002BFBD0BFF319 -:107CD0004F8F19491A4BCA6802F4E0621343CB6014 -:107CE000BFF34F8F00BFFDE7164B174A1A6008BD60 -:107CF000240300104035014074C007400DF0ADBAB8 -:107D0000440200103C050040F0ED00E0A0050040FA -:107D100010560040E00F00F0E40F00F0E80F00F014 -:107D200000C0004058020010E40E00403001001076 -:107D3000340100103C17004000ED00E000E001407D -:107D40000400FA05703000200090D00313B50478C9 -:107D5000012C13D104238DF80030436812491B789D -:107D600012488DF80430224600F0C4FA104B1C7003 -:107D7000104B1B686846984702B010BD022C09D111 -:107D8000C368094909488DF800400122019300F0B9 -:107D9000B1FAEDE7002CEFD102A8032300F8083D6B -:107DA000044B1B68E7E700BF04410020743000204B -:107DB0000541002000410020F0B5204D0646174641 -:107DC0009C460FCD89B06C460FC495E80F0084E83F -:107DD0000F0073690693337C8DF81CC0003318BF05 -:107DE00001238DF81430737C1548002B14BF0E232B -:107DF00000238DF81530F3680293B368039333685A -:107E00000193736800930F4B1F600F4B00221A7091 -:107E100069460E4A00F0A4F868B9336801330AD005 -:107E20009DF81D3013B9064800F026FB01220849D1 -:107E3000034800F05FFA09B0F0BD00BF0C8B0700EB -:107E40007430002000410020054100204D7D0700D6 -:107E500004410020074908B501220870064800F0D7 -:107E6000C7F9112804D0002814BF0320002008BD42 -:107E70000420FCE7064100207430002008B50248C9 -:107E800000F038F9002008BD743000200023435072 -:107E900082B043580193019B02B0704700234350C6 -:107EA00082B043580193019B02B070470A4610B557 -:107EB0004FF48E71FFF7EAFF938A91689BB2C95C19 -:107EC000938A01339BB29382C0F81C1510BD1FB575 -:107ED000002382688DF800308DF8081083750192B8 -:107EE000D0E900136846984705B05DF804FB08B573 -:107EF00002464FF492710068FFF7C8FF4FF4847197 -:107F00001068FFF7C3FF136801221A6008BD10B59F -:107F1000CB7D0A464FF4847123B9FFF7B7FFD0F841 -:107F2000183510BDFFF7B2FF537ED168D0F81805A1 -:107F3000C854537E0133DBB25376F2E71FB50123F9 -:107F40008DF80030054B8DF8080001916846D3E9A3 -:107F50000012904705B05DF804FB00BF0841002007 -:107F6000F8B50679604D7601AB190446D87E002835 -:107F700040F0B880487F18770868471C0BD0012371 -:107F800083404FF0A0400327C0F808350B6803F585 -:107F9000E07340F823704B68581C1FBF03F5E07373 -:107FA0004FF0A040002740F8237023792068D1F8D3 -:107FB00018C005EB43131F7FC0F824C520684B7D14 -:107FC000002F69D00F7D3B43C0F86C35D1E90070BC -:107FD0002368C3F80C75C3F814050B7D012B1FD162 -:107FE0008B685F1C06D003F5E0734FF0A0400027BC -:107FF00040F82370C868431C0BD0012383404FF026 -:10800000A0400327C0F80835CB6803F5E07340F8BB -:108010002370D1E902072368C3F80875C3F8100577 -:10802000AB195A600B69AB5122B323790A7F2068E0 -:1080300005EB43131B7F002B46D04FF48871FFF7ED -:108040002DFF4FF490712068FFF728FF4FF49271D5 -:108050002068FFF723FF4FF4A2712068FFF71EFF8F -:1080600023682249C3F804132068114640F30730FF -:1080700000F00AFB2379226805EB43131B7F7BB3D7 -:1080800008233544C2F8003500200123E87528761E -:10809000A875EB76A876F8BD91F814C043EA0C03F6 -:1080A000C0F86C35D1E900C02368C3F81405C3F8E3 -:1080B0000CC50B7D012BB3D18B68581C9AD003F5EE -:1080C000E0734FF0A04093E74FF48E71FFF7DEFEB0 -:1080D0004FF4A2712068FFF7D9FE23680449C1E775 -:1080E0000423CEE70820D6E7084100201003020051 -:1080F00080000200F0B50179394A0368490154183B -:10810000247F04B10024C3F8004553185B68B3B161 -:108110000379046802EB43131B7F002B53D0314BD0 -:10812000C4F8083303681B0B5CB20125640903F033 -:108130001F0305FA03F320342B4D45F8243004794E -:10814000036802EB4414D3F80C75247FD3F814654C -:10815000002C3AD04FF0FF3CD3F80845D3F8105527 -:10816000C3F80CC5C3F814C50368C3F808C5C3F841 -:1081700010C57B1C1FBF4FF0A04307F5E07702201E -:1081800043F82700771C1FBF4FF0A04306F5E076A9 -:10819000022043F82600681C1FBF05F5E0754FF06C -:1081A000A043022043F82500631C1CBF4FF0A043EE -:1081B00004F5E0740A441CBF022043F824000023A5 -:1081C000D3765360F0BD094BAAE74FF0FF3CD3F8DC -:1081D0000845D3F81055C3F814C5C3F80CC5C3E758 -:1081E000084100201003020000E100E084020200C8 -:1081F0002DE9F04103793E4E5B010446F018007F03 -:1082000020B101F06040B0F1005F6DD13344987D42 -:1082100000286BD19A759960988294F804804FEA8F -:108220004817F5192B7F53B34FF490712068FFF76F -:1082300035FE4FF4AC712068FFF730FE2368AA7D4D -:10824000A968C3F84415C3F84825236801229A6039 -:108250006B6813B10020BDE8F0812268D2F82011CC -:10826000D2F8583119B9002BF8D00F2003E0002BB9 -:1082700014BF0F200020F31900229A75EBE74FF48A -:108280008E712068FFF702FE236801229A6006EBD8 -:10829000481841462068FFF709FE6B68002BD9D1CA -:1082A000A97DAA8A91420DD8AB8A9BB2B3F5807F93 -:1082B000DBD02368D3F81C21002AFBD00122DA602E -:1082C0000020D8E72068D0F81C3123B9AB8A9BB2D4 -:1082D000B3F5807FF7D1AB8A9BB2B3F5807FE0D056 -:1082E0004146FFF7E3FDDBE71020B4E71120B2E7DA -:1082F000084100202DE9F84303795E4D5B010F46EC -:10830000E91806460C7F2CB107F06041B1F1005F1F -:1083100040F0AB80E918486828B13168BCB14FF42F -:108320000474C1F808432B44DC7DB4B1197E0029E4 -:108330004ED048B13379326805EB43152B7F4BB1F2 -:108340004FF40473C2F804331120BDE8F8834FF4EE -:108350000174E6E74FF40173F4E7DA75DF605C76E9 -:108360001C7696F804904FEA491805EB0803197F2C -:1083700000293ED04FF488713068FFF78FFD4FF42D -:10838000A2713068FFF78AFD3368C3F83475C3F80B -:108390003825336804BB01221A60337932685B01E7 -:1083A000E9184968F9B9D2F81041D2F84411D2F865 -:1083B000240114B909B90028F5D01D4400239842BE -:1083C000EB7514BF032018460029BED00F20BCE770 -:1083D0001F611A760124C4E7D3F8002242F020027C -:1083E000C3F80022D9E74FF40473C2F80433002025 -:1083F000ABE79B7E1BB914B93046FFF778FD05EB60 -:10840000080730687B685BBB4FF4A271FFF73EFD45 -:1084100005EB49193068D0F82431D0F80821D0F89C -:10842000444172B90CB9002BF4D045440022EA75DE -:10843000EBB9002CCAD1A97E3368012271B11A6050 -:10844000D5E7002BF1D1002CEFD14946FFF75FFDB6 -:108450007B7EFA7D9A42DDD82346E6E75A60C6E77E -:108460004FF40173C0F80433C1E710206DE7032017 -:108470006BE700BF0841002038B50379074C04EBD7 -:10848000431305461A7F42B99B7E33B9FFF72FFD90 -:108490002B7904EB43140123A37638BD0841002057 -:1084A0007FB5774C774A237F002B64D0D2F82461C4 -:1084B000002E3FD04FF492711046FFF7EFFC0223DD -:1084C0008DF80030D2F88034C2F880340393D2F8AB -:1084D0003C358DF80830E36801930023E37523767B -:1084E0006846D4E900139847664AD2F8443173B11C -:1084F0004FF4A2711046FFF7D1FCE37D3BB100239E -:10850000E375D2F83C05E168C0B2FFF717FD5D4A9C -:10851000D2F8203163B14FF490711046FFF7BEFCE2 -:10852000A37D2BB1D2F84C155548C9B2FFF7CFFC4B -:1085300004B070BDD2F81031002BD5D010464FF4E6 -:108540008871FFF7ABFCD2F83C35E07DDBB2984296 -:10855000CAD1237EE16863B1D2F8005225F020052C -:10856000C2F80052E3752369E3602676FFF7E6FC64 -:10857000BAE7E375FAE7D2F80433990548D5D2F89B -:108580002431002B44D04FF492711046FFF77EFC4B -:108590004FF40173C2F80833A37E0BB90123536073 -:1085A0000223384A8DF80030D2F88034C2F8803483 -:1085B0000393E37D8DF80830E36801930023E375AE -:1085C00023766846D4E9001398472E48D0F81C312A -:1085D00033B1A38AA27D9A4246D92949FFF766FCA6 -:1085E000284AD2F84431002BA2D04FF4A271104691 -:1085F000FFF74CFCA37E0BB101231360E37D002B3E -:1086000096D00023607EE168E375FFF797FC8FE763 -:108610001C4DD5F804335B07D7D5D5F80831002BAE -:10862000D3D017492846FFF772FC637EE27D9A4259 -:10863000CBD1237E53B1E3752369E168E360002366 -:10864000607E23766376FFF779FCBEE7A37E0BB9E5 -:1086500001236B600B4B4FF40172C3F80823002316 -:10866000E375607EE168EEE74FF48E71FFF70EFC74 -:10867000A17D0029B4D00248FFF729FCB0E700BF74 -:1086800008410020002000400028C3B2A8BF00F12C -:1086900060424FEA501010B5BABF0D4A03F00F0404 -:1086A00002F561424FEA41114FEA8000C9B200F180 -:1086B0006040B4BF115582F8001300F5614003F02B -:1086C0001F0201239340C0F88031036010BD00BF3A -:1086D00014ED00E00649074A074B9B1A03DD043BF3 -:1086E000C858D050FBDCFFF703FAFBF7A9FD0000E8 -:1086F000388B07000030002084300020FEE7FEE7C2 -:10870000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE741 -:1087100053B94AB9002908BF00281CBF4FF0FF31E8 -:108720004FF0FF3000F072B9ADF1080C6DE904CEE6 -:1087300000F006F8DDF804E0DDE9022304B070473C -:108740002DE9F047089E04468846002B4BD18A420B -:10875000154667D9B2FA82F24AB1C2F1200701FA8E -:1087600002F320FA07F7954047EA030894404FEADE -:10877000154E230CB8FBFEF71FFA85FC0EFB17887D -:1087800043EA084307FB0CF1994209D9EB1807F1BA -:10879000FF3080F01B81994240F21881023F2B4448 -:1087A0005B1AA4B2B3FBFEF00EFB103344EA0344A1 -:1087B00000FB0CFCA44509D92C1900F1FF3380F013 -:1087C0000781A44540F2048102382C4440EA074066 -:1087D000A4EB0C0400271EB1D4400023C6E90043DB -:1087E0003946BDE8F0878B4209D9002E00F0EB80B6 -:1087F0000027C6E9000138463946BDE8F087B3FADC -:1088000083F7002F47D18B4202D3824200F2FA80D5 -:10881000841A61EB030301209846002EE0D0C6E9DC -:108820000048DDE702B9FFDEB2FA82F2002A40F02A -:108830008F80491B4FEA154E1FFA85F80127B1FBBF -:10884000FEFC230C0EFB1C1143EA014308FB0CF158 -:10885000994207D9EB180CF1FF3002D2994200F28D -:10886000CD808446591AA3B2B1FBFEF00EFB101462 -:1088700043EA044408FB00F8A04507D92C1900F18D -:10888000FF3302D2A04500F2B6801846A4EB0804DC -:1088900040EA0C409FE7C7F1200CBB4022FA0CFED7 -:1088A0004EEA030E01FA07F420FA0CF521FA0CF354 -:1088B0004FEA1E482543B3FBF8F92C0C08FB19338B -:1088C0001FFA8EFA44EA034309FB0AF49C4202FAB7 -:1088D00007F200FA07F10BD91EEB030309F1FF3091 -:1088E00080F087809C4240F28480A9F102097344A1 -:1088F0001B1BADB2B3FBF8F008FB103345EA034491 -:1089000000FB0AFAA24508D91EEB040400F1FF336C -:108910006BD2A24569D90238744440EA0940A0FBF1 -:108920000289A4EB0A044C45C2464B4654D351D0AD -:10893000002E69D0B1EB0A0564EB030404FA0CFCC9 -:10894000FD40FC404CEA0505C6E90054002747E716 -:10895000C2F1200320FA03F7954001FA02F021FA50 -:1089600003F34FEA154E3843010CB3FBFEF71FFA31 -:1089700085F80EFB173341EA034107FB08F38B42EE -:1089800004FA02F407D9691807F1FF3C2FD28B4291 -:108990002DD9023F2944CB1A81B2B3FBFEF00EFB66 -:1089A000103341EA034100FB08F38B4207D96918F1 -:1089B00000F1FF3C17D28B4215D902382944C91A5D -:1089C00040EA07473BE73746304609E70746E7E610 -:1089D0001846FBE64145ABD2B8EB020A69EB0E0242 -:1089E00001381346A4E76046E9E7184695E767466D -:1089F000D1E781467CE702382C4447E7ACF1020C12 -:108A00002B442FE7384608E73746E9E6704700BFB2 -:108A100030B50024A24201D1002007E0035D0134FB -:108A20000D1915F8015CAB42F4D0581B30BD10B5E0 -:108A3000431E0A44914200D110BD11F8014B03F8C6 -:108A4000014FF7E7034613F8012B002AFBD1181A50 -:108A500001387047F8B500BFF8BC08BC9E467047A7 -:108A6000F8B500BFF8BC08BC9E4670470030002037 -:108A700000100207000000000000000000000000DD -:108A80000338FDD870470000AC3200200000000021 -:108A90000338FDD870474164614446550041646124 -:108AA000667275697420496E647573747269657352 -:108AB00000426C75656672756974204665617468FC -:108AC0006572206E5246353238333200733133329C -:108AD00020362E312E30207230000000D03300209E -:108AE00023D1BCEA5F782315DEEF121200000000EC -:108AF000080000000600000005000000070000005C -:108B0000000000000000D601AC400020FFFFFFFF86 -:108B1000FFFFFFFFFFFFFFFFFFFFFFFF0000000061 -:108B2000000000000000D601070100000000000066 -:108B300010B7FF7F010000000000000000000000EF -:108B40000000000000000000000000000000000025 -:108B50000000000000000000000000000000000015 -:108B60000000000000000000000000000000000005 -:108B700000000000000000000000000000000000F5 -:108B800000000000000000000000000000000000E5 -:108B90000000000000000000FF00FFFF32000000A6 -:108BA000B5730700257407000090D0030020004033 -:0C8BB00000000000254207000142070001 -:020000041000EA -:081014000040070000E00700A6 -:00000001FF diff --git a/bin/feather52832/6.1.0r0/feather52832_bootloader_s132_6.1.0r0.zip b/bin/feather52832/6.1.0r0/feather52832_bootloader_s132_6.1.0r0.zip deleted file mode 100644 index e348c58eaffddbb29183b70d500a1f86423c3e18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168578 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 KNOhk->{yc^eY+WK+16MXe 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 aCGGsp#Jki=r#NB0#P=}ZlW&2<*?$B29)frP diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble.h new file mode 100644 index 0000000..9ebb41f --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble.h @@ -0,0 +1,622 @@ +/* + * Copyright (c) 2012 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON BLE SoftDevice Common + @{ + @defgroup ble_api Events, type definitions and API calls + @{ + + @brief Module independent events, type definitions and API calls for the BLE SoftDevice. + + */ + +#ifndef BLE_H__ +#define BLE_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_err.h" +#include "ble_gap.h" +#include "ble_l2cap.h" +#include "ble_gatt.h" +#include "ble_gattc.h" +#include "ble_gatts.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_COMMON_ENUMERATIONS Enumerations + * @{ */ + +/** + * @brief Common API SVC numbers. + */ +enum BLE_COMMON_SVCS +{ + SD_BLE_ENABLE = BLE_SVC_BASE, /**< Enable and initialize the BLE stack */ + SD_BLE_EVT_GET, /**< Get an event from the pending events queue. */ + SD_BLE_UUID_VS_ADD, /**< Add a Vendor Specific UUID. */ + SD_BLE_UUID_DECODE, /**< Decode UUID bytes. */ + SD_BLE_UUID_ENCODE, /**< Encode UUID bytes. */ + SD_BLE_VERSION_GET, /**< Get the local version information (company ID, Link Layer Version, Link Layer Subversion). */ + SD_BLE_USER_MEM_REPLY, /**< User Memory Reply. */ + SD_BLE_OPT_SET, /**< Set a BLE option. */ + SD_BLE_OPT_GET, /**< Get a BLE option. */ + SD_BLE_CFG_SET, /**< Add a configuration to the BLE stack. */ +}; + +/** + * @brief BLE Module Independent Event IDs. + */ +enum BLE_COMMON_EVTS +{ + BLE_EVT_USER_MEM_REQUEST = BLE_EVT_BASE + 0, /**< User Memory request. @ref ble_evt_user_mem_request_t */ + BLE_EVT_USER_MEM_RELEASE = BLE_EVT_BASE + 1, /**< User Memory release. @ref ble_evt_user_mem_release_t */ +}; + +/**@brief BLE Connection Configuration IDs. + * + * IDs that uniquely identify a connection configuration. + */ +enum BLE_CONN_CFGS +{ + BLE_CONN_CFG_GAP = BLE_CONN_CFG_BASE + 0, /**< BLE GAP specific connection configuration. */ + BLE_CONN_CFG_GATTC = BLE_CONN_CFG_BASE + 1, /**< BLE GATTC specific connection configuration. */ + BLE_CONN_CFG_GATTS = BLE_CONN_CFG_BASE + 2, /**< BLE GATTS specific connection configuration. */ + BLE_CONN_CFG_GATT = BLE_CONN_CFG_BASE + 3, /**< BLE GATT specific connection configuration. */ + BLE_CONN_CFG_L2CAP = BLE_CONN_CFG_BASE + 4, /**< BLE L2CAP specific connection configuration. */ +}; + +/**@brief BLE Common Configuration IDs. + * + * IDs that uniquely identify a common configuration. + */ +enum BLE_COMMON_CFGS +{ + BLE_COMMON_CFG_VS_UUID = BLE_CFG_BASE, /**< Vendor specific UUID configuration */ +}; + +/**@brief Common Option IDs. + * IDs that uniquely identify a common option. + */ +enum BLE_COMMON_OPTS +{ + BLE_COMMON_OPT_PA_LNA = BLE_OPT_BASE + 0, /**< PA and LNA options */ + BLE_COMMON_OPT_CONN_EVT_EXT = BLE_OPT_BASE + 1, /**< Extended connection events option */ +}; + +/** @} */ + +/** @addtogroup BLE_COMMON_DEFINES Defines + * @{ */ + +/** @brief Required pointer alignment for BLE Events. +*/ +#define BLE_EVT_PTR_ALIGNMENT 4 + +/** @brief Leaves the maximum of the two arguments. +*/ +#define BLE_MAX(a, b) ((a) < (b) ? (b) : (a)) + +/** @brief Maximum possible length for BLE Events. + * @note The highest value used for @ref ble_gatt_conn_cfg_t::att_mtu in any connection configuration shall be used as a parameter. + * If that value has not been configured for any connections then @ref BLE_GATT_ATT_MTU_DEFAULT must be used instead. +*/ +#define BLE_EVT_LEN_MAX(ATT_MTU) ( \ + offsetof(ble_evt_t, evt.gattc_evt.params.prim_srvc_disc_rsp.services) + ((ATT_MTU) - 1) / 4 * sizeof(ble_gattc_service_t) \ +) + +/** @defgroup BLE_USER_MEM_TYPES User Memory Types + * @{ */ +#define BLE_USER_MEM_TYPE_INVALID 0x00 /**< Invalid User Memory Types. */ +#define BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES 0x01 /**< User Memory for GATTS queued writes. */ +/** @} */ + +/** @defgroup BLE_UUID_VS_COUNTS Vendor Specific UUID counts + * @{ + */ +#define BLE_UUID_VS_COUNT_DEFAULT 10 /**< Default VS UUID count. */ +#define BLE_UUID_VS_COUNT_MAX 254 /**< Maximum VS UUID count. */ +/** @} */ + +/** @defgroup BLE_COMMON_CFG_DEFAULTS Configuration defaults. + * @{ + */ +#define BLE_CONN_CFG_TAG_DEFAULT 0 /**< Default configuration tag, SoftDevice default connection configuration. */ + +/** @} */ + +/** @} */ + +/** @addtogroup BLE_COMMON_STRUCTURES Structures + * @{ */ + +/**@brief User Memory Block. */ +typedef struct +{ + uint8_t *p_mem; /**< Pointer to the start of the user memory block. */ + uint16_t len; /**< Length in bytes of the user memory block. */ +} ble_user_mem_block_t; + +/**@brief Event structure for @ref BLE_EVT_USER_MEM_REQUEST. */ +typedef struct +{ + uint8_t type; /**< User memory type, see @ref BLE_USER_MEM_TYPES. */ +} ble_evt_user_mem_request_t; + +/**@brief Event structure for @ref BLE_EVT_USER_MEM_RELEASE. */ +typedef struct +{ + uint8_t type; /**< User memory type, see @ref BLE_USER_MEM_TYPES. */ + ble_user_mem_block_t mem_block; /**< User memory block */ +} ble_evt_user_mem_release_t; + +/**@brief Event structure for events not associated with a specific function module. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which this event occurred. */ + union + { + ble_evt_user_mem_request_t user_mem_request; /**< User Memory Request Event Parameters. */ + ble_evt_user_mem_release_t user_mem_release; /**< User Memory Release Event Parameters. */ + } params; /**< Event parameter union. */ +} ble_common_evt_t; + +/**@brief BLE Event header. */ +typedef struct +{ + uint16_t evt_id; /**< Value from a BLE__EVT series. */ + uint16_t evt_len; /**< Length in octets including this header. */ +} ble_evt_hdr_t; + +/**@brief Common BLE Event type, wrapping the module specific event reports. */ +typedef struct +{ + ble_evt_hdr_t header; /**< Event header. */ + union + { + ble_common_evt_t common_evt; /**< Common Event, evt_id in BLE_EVT_* series. */ + ble_gap_evt_t gap_evt; /**< GAP originated event, evt_id in BLE_GAP_EVT_* series. */ + ble_gattc_evt_t gattc_evt; /**< GATT client originated event, evt_id in BLE_GATTC_EVT* series. */ + ble_gatts_evt_t gatts_evt; /**< GATT server originated event, evt_id in BLE_GATTS_EVT* series. */ + ble_l2cap_evt_t l2cap_evt; /**< L2CAP originated event, evt_id in BLE_L2CAP_EVT* series. */ + } evt; /**< Event union. */ +} ble_evt_t; + + +/** + * @brief Version Information. + */ +typedef struct +{ + uint8_t version_number; /**< Link Layer Version number. See https://www.bluetooth.org/en-us/specification/assigned-numbers/link-layer for assigned values. */ + uint16_t company_id; /**< Company ID, Nordic Semiconductor's company ID is 89 (0x0059) (https://www.bluetooth.org/apps/content/Default.aspx?doc_id=49708). */ + uint16_t subversion_number; /**< Link Layer Sub Version number, corresponds to the SoftDevice Config ID or Firmware ID (FWID). */ +} ble_version_t; + +/** + * @brief Configuration parameters for the PA and LNA. + */ +typedef struct +{ + uint8_t enable :1; /**< Enable toggling for this amplifier */ + uint8_t active_high :1; /**< Set the pin to be active high */ + uint8_t gpio_pin :6; /**< The GPIO pin to toggle for this amplifier */ +} ble_pa_lna_cfg_t; + +/** + * @brief PA & LNA GPIO toggle configuration + * + * This option configures the SoftDevice to toggle pins when the radio is active for use with a power amplifier and/or + * a low noise amplifier. + * + * Toggling the pins is achieved by using two PPI channels and a GPIOTE channel. The hardware channel IDs are provided + * by the application and should be regarded as reserved as long as any PA/LNA toggling is enabled. + * + * @note @ref sd_ble_opt_get is not supported for this option. + * @note Setting this option while the radio is in use (i.e. any of the roles are active) may have undefined consequences + * and must be avoided by the application. + */ +typedef struct +{ + ble_pa_lna_cfg_t pa_cfg; /**< Power Amplifier configuration */ + ble_pa_lna_cfg_t lna_cfg; /**< Low Noise Amplifier configuration */ + + uint8_t ppi_ch_id_set; /**< PPI channel used for radio pin setting */ + uint8_t ppi_ch_id_clr; /**< PPI channel used for radio pin clearing */ + uint8_t gpiote_ch_id; /**< GPIOTE channel used for radio pin toggling */ +} ble_common_opt_pa_lna_t; + +/** + * @brief Configuration of extended BLE connection events. + * + * When enabled the SoftDevice will dynamically extend the connection event when possible. + * + * The connection event length is controlled by the connection configuration as set by @ref ble_gap_conn_cfg_t::event_length. + * The connection event can be extended if there is time to send another packet pair before the start of the next connection interval, + * and if there are no conflicts with other BLE roles requesting radio time. + * + * @note @ref sd_ble_opt_get is not supported for this option. + */ +typedef struct +{ + uint8_t enable : 1; /**< Enable extended BLE connection events, disabled by default. */ +} ble_common_opt_conn_evt_ext_t; + +/**@brief Option structure for common options. */ +typedef union +{ + ble_common_opt_pa_lna_t pa_lna; /**< Parameters for controlling PA and LNA pin toggling. */ + ble_common_opt_conn_evt_ext_t conn_evt_ext; /**< Parameters for enabling extended connection events. */ +} ble_common_opt_t; + +/**@brief Common BLE Option type, wrapping the module specific options. */ +typedef union +{ + ble_common_opt_t common_opt; /**< COMMON options, opt_id in @ref BLE_COMMON_OPTS series. */ + ble_gap_opt_t gap_opt; /**< GAP option, opt_id in @ref BLE_GAP_OPTS series. */ +} ble_opt_t; + +/**@brief BLE connection configuration type, wrapping the module specific configurations, set with + * @ref sd_ble_cfg_set. + * + * @note Connection configurations don't have to be set. + * In the case that no configurations has been set, or fewer connection configurations has been set than enabled connections, + * the default connection configuration will be automatically added for the remaining connections. + * When creating connections with the default configuration, @ref BLE_CONN_CFG_TAG_DEFAULT should be used in + * place of @ref ble_conn_cfg_t::conn_cfg_tag. + * + * @sa sd_ble_gap_adv_start() + * @sa sd_ble_gap_connect() + * + * @mscs + * @mmsc{@ref BLE_CONN_CFG} + * @endmscs + + */ +typedef struct +{ + uint8_t conn_cfg_tag; /**< The application chosen tag it can use with the + @ref sd_ble_gap_adv_start() and @ref sd_ble_gap_connect() calls + to select this configuration when creating a connection. + Must be different for all connection configurations added and not @ref BLE_CONN_CFG_TAG_DEFAULT. */ + union { + ble_gap_conn_cfg_t gap_conn_cfg; /**< GAP connection configuration, cfg_id is @ref BLE_CONN_CFG_GAP. */ + ble_gattc_conn_cfg_t gattc_conn_cfg; /**< GATTC connection configuration, cfg_id is @ref BLE_CONN_CFG_GATTC. */ + ble_gatts_conn_cfg_t gatts_conn_cfg; /**< GATTS connection configuration, cfg_id is @ref BLE_CONN_CFG_GATTS. */ + ble_gatt_conn_cfg_t gatt_conn_cfg; /**< GATT connection configuration, cfg_id is @ref BLE_CONN_CFG_GATT. */ + ble_l2cap_conn_cfg_t l2cap_conn_cfg; /**< L2CAP connection configuration, cfg_id is @ref BLE_CONN_CFG_L2CAP. */ + } params; /**< Connection configuration union. */ +} ble_conn_cfg_t; + +/** + * @brief Configuration of Vendor Specific UUIDs, set with @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_INVALID_PARAM Too many UUIDs configured. + */ +typedef struct +{ + uint8_t vs_uuid_count; /**< Number of 128-bit Vendor Specific UUID bases to allocate memory for. + Default value is @ref BLE_UUID_VS_COUNT_DEFAULT. Maximum value is + @ref BLE_UUID_VS_COUNT_MAX. */ +} ble_common_cfg_vs_uuid_t; + +/**@brief Common BLE Configuration type, wrapping the common configurations. */ +typedef union +{ + ble_common_cfg_vs_uuid_t vs_uuid_cfg; /**< Vendor specific UUID configuration, cfg_id is @ref BLE_COMMON_CFG_VS_UUID. */ +} ble_common_cfg_t; + +/**@brief BLE Configuration type, wrapping the module specific configurations. */ +typedef union +{ + ble_conn_cfg_t conn_cfg; /**< Connection specific configurations, cfg_id in @ref BLE_CONN_CFGS series. */ + ble_common_cfg_t common_cfg; /**< Global common configurations, cfg_id in @ref BLE_COMMON_CFGS series. */ + ble_gap_cfg_t gap_cfg; /**< Global GAP configurations, cfg_id in @ref BLE_GAP_CFGS series. */ + ble_gatts_cfg_t gatts_cfg; /**< Global GATTS configuration, cfg_id in @ref BLE_GATTS_CFGS series. */ +} ble_cfg_t; + +/** @} */ + +/** @addtogroup BLE_COMMON_FUNCTIONS Functions + * @{ */ + +/**@brief Enable the BLE stack + * + * @param[in, out] p_app_ram_base Pointer to a variable containing the start address of the + * application RAM region (APP_RAM_BASE). On return, this will + * contain the minimum start address of the application RAM region + * required by the SoftDevice for this configuration. + * + * @note The memory requirement for a specific configuration will not increase between SoftDevices + * with the same major version number. + * + * @note The value of *p_app_ram_base when the app has done no custom configuration of the + * SoftDevice, i.e. the app has not called @ref sd_ble_cfg_set before @ref sd_ble_enable, can + * be found in the release notes. + * + * @note At runtime the IC's RAM is split into 2 regions: The SoftDevice RAM region is located + * between 0x20000000 and APP_RAM_BASE-1 and the application's RAM region is located between + * APP_RAM_BASE and the start of the call stack. + * + * @details This call initializes the BLE stack, no BLE related function other than @ref + * sd_ble_cfg_set can be called before this one. + * + * @mscs + * @mmsc{@ref BLE_COMMON_ENABLE} + * @endmscs + * + * @retval ::NRF_SUCCESS The BLE stack has been initialized successfully. + * @retval ::NRF_ERROR_INVALID_STATE The BLE stack had already been initialized and cannot be reinitialized. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied. + * @retval ::NRF_ERROR_NO_MEM The amount of memory assigned to the SoftDevice by *p_app_ram_base is not + * large enough to fit this configuration's memory requirement. Check *p_app_ram_base + * and set the start address of the application RAM region accordingly. + */ +SVCALL(SD_BLE_ENABLE, uint32_t, sd_ble_enable(uint32_t * p_app_ram_base)); + +/**@brief Add configurations for the BLE stack + * + * @param[in] cfg_id Config ID, see @ref BLE_CONN_CFGS, @ref BLE_COMMON_CFGS, @ref + * BLE_GAP_CFGS or @ref BLE_GATTS_CFGS. + * @param[in] p_cfg Pointer to a ble_cfg_t structure containing the configuration value. + * @param[in] app_ram_base The start address of the application RAM region (APP_RAM_BASE). + * See @ref sd_ble_enable for details about APP_RAM_BASE. + * + * @note The memory requirement for a specific configuration will not increase between SoftDevices + * with the same major version number. + * + * @note If a configuration is set more than once, the last one set is the one that takes effect on + * @ref sd_ble_enable. + * + * @note Any part of the BLE stack that is NOT configured with @ref sd_ble_cfg_set will have default + * configuration. + * + * @note @ref sd_ble_cfg_set may be called at any time when the SoftDevice is enabled (see @ref + * sd_softdevice_enable) while the BLE part of the SoftDevice is not enabled (see @ref + * sd_ble_enable). + * + * @note Error codes for the configurations are described in the configuration structs. + * + * @mscs + * @mmsc{@ref BLE_COMMON_ENABLE} + * @endmscs + * + * @retval ::NRF_SUCCESS The configuration has been added successfully. + * @retval ::NRF_ERROR_INVALID_STATE The BLE stack had already been initialized. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid cfg_id supplied. + * @retval ::NRF_ERROR_NO_MEM The amount of memory assigned to the SoftDevice by app_ram_base is not + * large enough to fit this configuration's memory requirement. + */ +SVCALL(SD_BLE_CFG_SET, uint32_t, sd_ble_cfg_set(uint32_t cfg_id, ble_cfg_t const * p_cfg, uint32_t app_ram_base)); + +/**@brief Get an event from the pending events queue. + * + * @param[out] p_dest Pointer to buffer to be filled in with an event, or NULL to retrieve the event length. + * This buffer must be aligned to the extend defined by @ref BLE_EVT_PTR_ALIGNMENT. + * The buffer should be interpreted as a @ref ble_evt_t struct. + * @param[in, out] p_len Pointer the length of the buffer, on return it is filled with the event length. + * + * @details This call allows the application to pull a BLE event from the BLE stack. The application is signaled that + * an event is available from the BLE stack by the triggering of the SD_EVT_IRQn interrupt. + * The application is free to choose whether to call this function from thread mode (main context) or directly from the + * Interrupt Service Routine that maps to SD_EVT_IRQn. In any case however, and because the BLE stack runs at a higher + * priority than the application, this function should be called in a loop (until @ref NRF_ERROR_NOT_FOUND is returned) + * every time SD_EVT_IRQn is raised to ensure that all available events are pulled from the BLE stack. Failure to do so + * could potentially leave events in the internal queue without the application being aware of this fact. + * + * Sizing the p_dest buffer is equally important, since the application needs to provide all the memory necessary for the event to + * be copied into application memory. If the buffer provided is not large enough to fit the entire contents of the event, + * @ref NRF_ERROR_DATA_SIZE will be returned and the application can then call again with a larger buffer size. + * The maximum possible event length is defined by @ref BLE_EVT_LEN_MAX. The application may also "peek" the event length + * by providing p_dest as a NULL pointer and inspecting the value of *p_len upon return: + * + * \code + * uint16_t len; + * errcode = sd_ble_evt_get(NULL, &len); + * \endcode + * + * @mscs + * @mmsc{@ref BLE_COMMON_IRQ_EVT_MSC} + * @mmsc{@ref BLE_COMMON_THREAD_EVT_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Event pulled and stored into the supplied buffer. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied. + * @retval ::NRF_ERROR_NOT_FOUND No events ready to be pulled. + * @retval ::NRF_ERROR_DATA_SIZE Event ready but could not fit into the supplied buffer. + */ +SVCALL(SD_BLE_EVT_GET, uint32_t, sd_ble_evt_get(uint8_t *p_dest, uint16_t *p_len)); + + +/**@brief Add a Vendor Specific base UUID. + * + * @details This call enables the application to add a vendor specific base UUID to the BLE stack's table, for later + * use with all other modules and APIs. This then allows the application to use the shorter, 24-bit @ref ble_uuid_t + * format when dealing with both 16-bit and 128-bit UUIDs without having to check for lengths and having split code + * paths. This is accomplished by extending the grouping mechanism that the Bluetooth SIG standard base UUID uses + * for all other 128-bit UUIDs. The type field in the @ref ble_uuid_t structure is an index (relative to + * @ref BLE_UUID_TYPE_VENDOR_BEGIN) to the table populated by multiple calls to this function, and the UUID field + * in the same structure contains the 2 bytes at indexes 12 and 13. The number of possible 128-bit UUIDs available to + * the application is therefore the number of Vendor Specific UUIDs added with the help of this function times 65536, + * although restricted to modifying bytes 12 and 13 for each of the entries in the supplied array. + * + * @note Bytes 12 and 13 of the provided UUID will not be used internally, since those are always replaced by + * the 16-bit uuid field in @ref ble_uuid_t. + * + * @note If a UUID is already present in the BLE stack's internal table, the corresponding index will be returned in + * p_uuid_type along with an @ref NRF_SUCCESS error code. + * + * @param[in] p_vs_uuid Pointer to a 16-octet (128-bit) little endian Vendor Specific UUID disregarding + * bytes 12 and 13. + * @param[out] p_uuid_type Pointer to a uint8_t where the type field in @ref ble_uuid_t corresponding to this UUID will be stored. + * + * @retval ::NRF_SUCCESS Successfully added the Vendor Specific UUID. + * @retval ::NRF_ERROR_INVALID_ADDR If p_vs_uuid or p_uuid_type is NULL or invalid. + * @retval ::NRF_ERROR_NO_MEM If there are no more free slots for VS UUIDs. + */ +SVCALL(SD_BLE_UUID_VS_ADD, uint32_t, sd_ble_uuid_vs_add(ble_uuid128_t const *p_vs_uuid, uint8_t *p_uuid_type)); + + +/** @brief Decode little endian raw UUID bytes (16-bit or 128-bit) into a 24 bit @ref ble_uuid_t structure. + * + * @details The raw UUID bytes excluding bytes 12 and 13 (i.e. bytes 0-11 and 14-15) of p_uuid_le are compared + * to the corresponding ones in each entry of the table of vendor specific UUIDs populated with @ref sd_ble_uuid_vs_add + * to look for a match. If there is such a match, bytes 12 and 13 are returned as p_uuid->uuid and the index + * relative to @ref BLE_UUID_TYPE_VENDOR_BEGIN as p_uuid->type. + * + * @note If the UUID length supplied is 2, then the type set by this call will always be @ref BLE_UUID_TYPE_BLE. + * + * @param[in] uuid_le_len Length in bytes of the buffer pointed to by p_uuid_le (must be 2 or 16 bytes). + * @param[in] p_uuid_le Pointer pointing to little endian raw UUID bytes. + * @param[out] p_uuid Pointer to a @ref ble_uuid_t structure to be filled in. + * + * @retval ::NRF_SUCCESS Successfully decoded into the @ref ble_uuid_t structure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_LENGTH Invalid UUID length. + * @retval ::NRF_ERROR_NOT_FOUND For a 128-bit UUID, no match in the populated table of UUIDs. + */ +SVCALL(SD_BLE_UUID_DECODE, uint32_t, sd_ble_uuid_decode(uint8_t uuid_le_len, uint8_t const *p_uuid_le, ble_uuid_t *p_uuid)); + + +/** @brief Encode a @ref ble_uuid_t structure into little endian raw UUID bytes (16-bit or 128-bit). + * + * @note The pointer to the destination buffer p_uuid_le may be NULL, in which case only the validity and size of p_uuid is computed. + * + * @param[in] p_uuid Pointer to a @ref ble_uuid_t structure that will be encoded into bytes. + * @param[out] p_uuid_le_len Pointer to a uint8_t that will be filled with the encoded length (2 or 16 bytes). + * @param[out] p_uuid_le Pointer to a buffer where the little endian raw UUID bytes (2 or 16) will be stored. + * + * @retval ::NRF_SUCCESS Successfully encoded into the buffer. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid UUID type. + */ +SVCALL(SD_BLE_UUID_ENCODE, uint32_t, sd_ble_uuid_encode(ble_uuid_t const *p_uuid, uint8_t *p_uuid_le_len, uint8_t *p_uuid_le)); + + +/**@brief Get Version Information. + * + * @details This call allows the application to get the BLE stack version information. + * + * @param[out] p_version Pointer to a ble_version_t structure to be filled in. + * + * @retval ::NRF_SUCCESS Version information stored successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY The BLE stack is busy (typically doing a locally-initiated disconnection procedure). + */ +SVCALL(SD_BLE_VERSION_GET, uint32_t, sd_ble_version_get(ble_version_t *p_version)); + + +/**@brief Provide a user memory block. + * + * @note This call can only be used as a response to a @ref BLE_EVT_USER_MEM_REQUEST event issued to the application. + * + * @param[in] conn_handle Connection handle. + * @param[in] p_block Pointer to a user memory block structure or NULL if memory is managed by the application. + * + * @mscs + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_PEER_CANCEL_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_NOAUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Successfully queued a response to the peer. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_LENGTH Invalid user memory block length supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection state or no user memory request pending. + */ +SVCALL(SD_BLE_USER_MEM_REPLY, uint32_t, sd_ble_user_mem_reply(uint16_t conn_handle, ble_user_mem_block_t const *p_block)); + +/**@brief Set a BLE option. + * + * @details This call allows the application to set the value of an option. + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC} + * @endmscs + * + * @param[in] opt_id Option ID, see @ref BLE_COMMON_OPTS and @ref BLE_GAP_OPTS. + * @param[in] p_opt Pointer to a ble_opt_t structure containing the option value. + * + * @retval ::NRF_SUCCESS Option set successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints. + * @retval ::NRF_ERROR_INVALID_STATE Unable to set the parameter at this time. + * @retval ::NRF_ERROR_BUSY The BLE stack is busy or the previous procedure has not completed. + */ +SVCALL(SD_BLE_OPT_SET, uint32_t, sd_ble_opt_set(uint32_t opt_id, ble_opt_t const *p_opt)); + + +/**@brief Get a BLE option. + * + * @details This call allows the application to retrieve the value of an option. + * + * @param[in] opt_id Option ID, see @ref BLE_COMMON_OPTS and @ref BLE_GAP_OPTS. + * @param[out] p_opt Pointer to a ble_opt_t structure to be filled in. + * + * @retval ::NRF_SUCCESS Option retrieved successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints. + * @retval ::NRF_ERROR_INVALID_STATE Unable to retrieve the parameter at this time. + * @retval ::NRF_ERROR_BUSY The BLE stack is busy or the previous procedure has not completed. + * @retval ::NRF_ERROR_NOT_SUPPORTED This option is not supported. + * + */ +SVCALL(SD_BLE_OPT_GET, uint32_t, sd_ble_opt_get(uint32_t opt_id, ble_opt_t *p_opt)); + +/** @} */ +#ifdef __cplusplus +} +#endif +#endif /* BLE_H__ */ + +/** + @} + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_err.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_err.h new file mode 100644 index 0000000..1b4820d --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_err.h @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2012 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON + @{ + @addtogroup nrf_error + @{ + @ingroup BLE_COMMON + @} + + @defgroup ble_err General error codes + @{ + + @brief General error code definitions for the BLE API. + + @ingroup BLE_COMMON +*/ +#ifndef NRF_BLE_ERR_H__ +#define NRF_BLE_ERR_H__ + +#include "nrf_error.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* @defgroup BLE_ERRORS Error Codes + * @{ */ +#define BLE_ERROR_NOT_ENABLED (NRF_ERROR_STK_BASE_NUM+0x001) /**< @ref sd_ble_enable has not been called. */ +#define BLE_ERROR_INVALID_CONN_HANDLE (NRF_ERROR_STK_BASE_NUM+0x002) /**< Invalid connection handle. */ +#define BLE_ERROR_INVALID_ATTR_HANDLE (NRF_ERROR_STK_BASE_NUM+0x003) /**< Invalid attribute handle. */ +#define BLE_ERROR_INVALID_ADV_HANDLE (NRF_ERROR_STK_BASE_NUM+0x004) /**< Invalid advertising handle. */ +#define BLE_ERROR_INVALID_ROLE (NRF_ERROR_STK_BASE_NUM+0x005) /**< Invalid role. */ +#define BLE_ERROR_BLOCKED_BY_OTHER_LINKS (NRF_ERROR_STK_BASE_NUM+0x006) /**< The attempt to change link settings failed due to the scheduling of other links. */ +/** @} */ + + +/** @defgroup BLE_ERROR_SUBRANGES Module specific error code subranges + * @brief Assignment of subranges for module specific error codes. + * @note For specific error codes, see ble_.h or ble_error_.h. + * @{ */ +#define NRF_L2CAP_ERR_BASE (NRF_ERROR_STK_BASE_NUM+0x100) /**< L2CAP specific errors. */ +#define NRF_GAP_ERR_BASE (NRF_ERROR_STK_BASE_NUM+0x200) /**< GAP specific errors. */ +#define NRF_GATTC_ERR_BASE (NRF_ERROR_STK_BASE_NUM+0x300) /**< GATT client specific errors. */ +#define NRF_GATTS_ERR_BASE (NRF_ERROR_STK_BASE_NUM+0x400) /**< GATT server specific errors. */ +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif + + +/** + @} + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gap.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gap.h new file mode 100644 index 0000000..8b13816 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gap.h @@ -0,0 +1,2653 @@ +/* + * Copyright (c) 2011 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_GAP Generic Access Profile (GAP) + @{ + @brief Definitions and prototypes for the GAP interface. + */ + +#ifndef BLE_GAP_H__ +#define BLE_GAP_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_hci.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@addtogroup BLE_GAP_ENUMERATIONS Enumerations + * @{ */ + +/**@brief GAP API SVC numbers. + */ +enum BLE_GAP_SVCS +{ + SD_BLE_GAP_ADDR_SET = BLE_GAP_SVC_BASE, /**< Set own Bluetooth Address. */ + SD_BLE_GAP_ADDR_GET = BLE_GAP_SVC_BASE + 1, /**< Get own Bluetooth Address. */ + SD_BLE_GAP_WHITELIST_SET = BLE_GAP_SVC_BASE + 2, /**< Set active whitelist. */ + SD_BLE_GAP_DEVICE_IDENTITIES_SET = BLE_GAP_SVC_BASE + 3, /**< Set device identity list. */ + SD_BLE_GAP_PRIVACY_SET = BLE_GAP_SVC_BASE + 4, /**< Set Privacy settings*/ + SD_BLE_GAP_PRIVACY_GET = BLE_GAP_SVC_BASE + 5, /**< Get Privacy settings*/ + SD_BLE_GAP_ADV_SET_CONFIGURE = BLE_GAP_SVC_BASE + 6, /**< Configure an advertising set. */ + SD_BLE_GAP_ADV_START = BLE_GAP_SVC_BASE + 7, /**< Start Advertising. */ + SD_BLE_GAP_ADV_STOP = BLE_GAP_SVC_BASE + 8, /**< Stop Advertising. */ + SD_BLE_GAP_CONN_PARAM_UPDATE = BLE_GAP_SVC_BASE + 9, /**< Connection Parameter Update. */ + SD_BLE_GAP_DISCONNECT = BLE_GAP_SVC_BASE + 10, /**< Disconnect. */ + SD_BLE_GAP_TX_POWER_SET = BLE_GAP_SVC_BASE + 11, /**< Set TX Power. */ + SD_BLE_GAP_APPEARANCE_SET = BLE_GAP_SVC_BASE + 12, /**< Set Appearance. */ + SD_BLE_GAP_APPEARANCE_GET = BLE_GAP_SVC_BASE + 13, /**< Get Appearance. */ + SD_BLE_GAP_PPCP_SET = BLE_GAP_SVC_BASE + 14, /**< Set PPCP. */ + SD_BLE_GAP_PPCP_GET = BLE_GAP_SVC_BASE + 15, /**< Get PPCP. */ + SD_BLE_GAP_DEVICE_NAME_SET = BLE_GAP_SVC_BASE + 16, /**< Set Device Name. */ + SD_BLE_GAP_DEVICE_NAME_GET = BLE_GAP_SVC_BASE + 17, /**< Get Device Name. */ + SD_BLE_GAP_AUTHENTICATE = BLE_GAP_SVC_BASE + 18, /**< Initiate Pairing/Bonding. */ + SD_BLE_GAP_SEC_PARAMS_REPLY = BLE_GAP_SVC_BASE + 19, /**< Reply with Security Parameters. */ + SD_BLE_GAP_AUTH_KEY_REPLY = BLE_GAP_SVC_BASE + 20, /**< Reply with an authentication key. */ + SD_BLE_GAP_LESC_DHKEY_REPLY = BLE_GAP_SVC_BASE + 21, /**< Reply with an LE Secure Connections DHKey. */ + SD_BLE_GAP_KEYPRESS_NOTIFY = BLE_GAP_SVC_BASE + 22, /**< Notify of a keypress during an authentication procedure. */ + SD_BLE_GAP_LESC_OOB_DATA_GET = BLE_GAP_SVC_BASE + 23, /**< Get the local LE Secure Connections OOB data. */ + SD_BLE_GAP_LESC_OOB_DATA_SET = BLE_GAP_SVC_BASE + 24, /**< Set the remote LE Secure Connections OOB data. */ + SD_BLE_GAP_ENCRYPT = BLE_GAP_SVC_BASE + 25, /**< Initiate encryption procedure. */ + SD_BLE_GAP_SEC_INFO_REPLY = BLE_GAP_SVC_BASE + 26, /**< Reply with Security Information. */ + SD_BLE_GAP_CONN_SEC_GET = BLE_GAP_SVC_BASE + 27, /**< Obtain connection security level. */ + SD_BLE_GAP_RSSI_START = BLE_GAP_SVC_BASE + 28, /**< Start reporting of changes in RSSI. */ + SD_BLE_GAP_RSSI_STOP = BLE_GAP_SVC_BASE + 29, /**< Stop reporting of changes in RSSI. */ + SD_BLE_GAP_SCAN_START = BLE_GAP_SVC_BASE + 30, /**< Start Scanning. */ + SD_BLE_GAP_SCAN_STOP = BLE_GAP_SVC_BASE + 31, /**< Stop Scanning. */ + SD_BLE_GAP_CONNECT = BLE_GAP_SVC_BASE + 32, /**< Connect. */ + SD_BLE_GAP_CONNECT_CANCEL = BLE_GAP_SVC_BASE + 33, /**< Cancel ongoing connection procedure. */ + SD_BLE_GAP_RSSI_GET = BLE_GAP_SVC_BASE + 34, /**< Get the last RSSI sample. */ + SD_BLE_GAP_PHY_UPDATE = BLE_GAP_SVC_BASE + 35, /**< Initiate or respond to a PHY Update Procedure. */ + SD_BLE_GAP_DATA_LENGTH_UPDATE = BLE_GAP_SVC_BASE + 36, /**< Initiate or respond to a Data Length Update Procedure. */ + SD_BLE_GAP_QOS_CHANNEL_SURVEY_START = BLE_GAP_SVC_BASE + 37, /**< Start Quality of Service (QoS) channel survey module. */ + SD_BLE_GAP_QOS_CHANNEL_SURVEY_STOP = BLE_GAP_SVC_BASE + 38, /**< Stop Quality of Service (QoS) channel survey module. */ +}; + +/**@brief GAP Event IDs. + * IDs that uniquely identify an event coming from the stack to the application. + */ +enum BLE_GAP_EVTS +{ + BLE_GAP_EVT_CONNECTED = BLE_GAP_EVT_BASE, + BLE_GAP_EVT_DISCONNECTED = BLE_GAP_EVT_BASE + 1, /**< Disconnected from peer. \n See @ref ble_gap_evt_disconnected_t. */ + BLE_GAP_EVT_CONN_PARAM_UPDATE = BLE_GAP_EVT_BASE + 2, /**< Connection Parameters updated. \n See @ref ble_gap_evt_conn_param_update_t. */ + BLE_GAP_EVT_SEC_PARAMS_REQUEST = BLE_GAP_EVT_BASE + 3, /**< Request to provide security parameters. \n Reply with @ref sd_ble_gap_sec_params_reply. \n See @ref ble_gap_evt_sec_params_request_t. */ + BLE_GAP_EVT_SEC_INFO_REQUEST = BLE_GAP_EVT_BASE + 4, /**< Request to provide security information. \n Reply with @ref sd_ble_gap_sec_info_reply. \n See @ref ble_gap_evt_sec_info_request_t. */ + BLE_GAP_EVT_PASSKEY_DISPLAY = BLE_GAP_EVT_BASE + 5, /**< Request to display a passkey to the user. \n In LESC Numeric Comparison, reply with @ref sd_ble_gap_auth_key_reply. \n See @ref ble_gap_evt_passkey_display_t. */ + BLE_GAP_EVT_KEY_PRESSED = BLE_GAP_EVT_BASE + 6, /**< Notification of a keypress on the remote device.\n See @ref ble_gap_evt_key_pressed_t */ + BLE_GAP_EVT_AUTH_KEY_REQUEST = BLE_GAP_EVT_BASE + 7, /**< Request to provide an authentication key. \n Reply with @ref sd_ble_gap_auth_key_reply. \n See @ref ble_gap_evt_auth_key_request_t. */ + BLE_GAP_EVT_LESC_DHKEY_REQUEST = BLE_GAP_EVT_BASE + 8, /**< Request to calculate an LE Secure Connections DHKey. \n Reply with @ref sd_ble_gap_lesc_dhkey_reply. \n See @ref ble_gap_evt_lesc_dhkey_request_t */ + BLE_GAP_EVT_AUTH_STATUS = BLE_GAP_EVT_BASE + 9, /**< Authentication procedure completed with status. \n See @ref ble_gap_evt_auth_status_t. */ + BLE_GAP_EVT_CONN_SEC_UPDATE = BLE_GAP_EVT_BASE + 10, /**< Connection security updated. \n See @ref ble_gap_evt_conn_sec_update_t. */ + BLE_GAP_EVT_TIMEOUT = BLE_GAP_EVT_BASE + 11, /**< Timeout expired. \n See @ref ble_gap_evt_timeout_t. */ + BLE_GAP_EVT_RSSI_CHANGED = BLE_GAP_EVT_BASE + 12, /**< RSSI report. \n See @ref ble_gap_evt_rssi_changed_t. */ + BLE_GAP_EVT_ADV_REPORT = BLE_GAP_EVT_BASE + 13, /**< Advertising report. \n See @ref ble_gap_evt_adv_report_t. */ + BLE_GAP_EVT_SEC_REQUEST = BLE_GAP_EVT_BASE + 14, /**< Security Request. \n See @ref ble_gap_evt_sec_request_t. */ + BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST = BLE_GAP_EVT_BASE + 15, /**< Connection Parameter Update Request. \n Reply with @ref sd_ble_gap_conn_param_update. \n See @ref ble_gap_evt_conn_param_update_request_t. */ + BLE_GAP_EVT_SCAN_REQ_REPORT = BLE_GAP_EVT_BASE + 16, /**< Scan request report. \n See @ref ble_gap_evt_scan_req_report_t. */ + BLE_GAP_EVT_PHY_UPDATE_REQUEST = BLE_GAP_EVT_BASE + 17, /**< PHY Update Request. \n Reply with @ref sd_ble_gap_phy_update. \n See @ref ble_gap_evt_phy_update_request_t. */ + BLE_GAP_EVT_PHY_UPDATE = BLE_GAP_EVT_BASE + 18, /**< PHY Update Procedure is complete. \n See @ref ble_gap_evt_phy_update_t. */ + BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST = BLE_GAP_EVT_BASE + 19, /**< Data Length Update Request. \n Reply with @ref sd_ble_gap_data_length_update.\n See @ref ble_gap_evt_data_length_update_request_t. */ + BLE_GAP_EVT_DATA_LENGTH_UPDATE = BLE_GAP_EVT_BASE + 20, /**< LL Data Channel PDU payload length updated. \n See @ref ble_gap_evt_data_length_update_t. */ + BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT = BLE_GAP_EVT_BASE + 21, /**< Channel survey report. \n See @ref ble_gap_evt_qos_channel_survey_report_t. */ + BLE_GAP_EVT_ADV_SET_TERMINATED = BLE_GAP_EVT_BASE + 22, /**< Advertising set terminated. \n See @ref ble_gap_evt_adv_set_terminated_t. */ +}; + +/**@brief GAP Option IDs. + * IDs that uniquely identify a GAP option. + */ +enum BLE_GAP_OPTS +{ + BLE_GAP_OPT_CH_MAP = BLE_GAP_OPT_BASE, /**< Channel Map. @ref ble_gap_opt_ch_map_t */ + BLE_GAP_OPT_LOCAL_CONN_LATENCY = BLE_GAP_OPT_BASE + 1, /**< Local connection latency. @ref ble_gap_opt_local_conn_latency_t */ + BLE_GAP_OPT_PASSKEY = BLE_GAP_OPT_BASE + 2, /**< Set passkey. @ref ble_gap_opt_passkey_t */ + BLE_GAP_OPT_COMPAT_MODE_1 = BLE_GAP_OPT_BASE + 3, /**< Compatibility mode. @ref ble_gap_opt_compat_mode_1_t */ + BLE_GAP_OPT_AUTH_PAYLOAD_TIMEOUT = BLE_GAP_OPT_BASE + 4, /**< Set Authenticated payload timeout. @ref ble_gap_opt_auth_payload_timeout_t */ + BLE_GAP_OPT_SLAVE_LATENCY_DISABLE = BLE_GAP_OPT_BASE + 5, /**< Disable slave latency. @ref ble_gap_opt_slave_latency_disable_t */ +}; + +/**@brief GAP Configuration IDs. + * + * IDs that uniquely identify a GAP configuration. + */ +enum BLE_GAP_CFGS +{ + BLE_GAP_CFG_ROLE_COUNT = BLE_GAP_CFG_BASE, /**< Role count configuration. */ + BLE_GAP_CFG_DEVICE_NAME = BLE_GAP_CFG_BASE + 1, /**< Device name configuration. */ +}; + +/**@brief GAP TX Power roles. + */ +enum BLE_GAP_TX_POWER_ROLES +{ + BLE_GAP_TX_POWER_ROLE_ADV = 1, /**< Advertiser role. */ + BLE_GAP_TX_POWER_ROLE_SCAN_INIT = 2, /**< Scanner and initiator role. */ + BLE_GAP_TX_POWER_ROLE_CONN = 3, /**< Connection role. */ +}; + +/** @} */ + +/**@addtogroup BLE_GAP_DEFINES Defines + * @{ */ + +/**@defgroup BLE_ERRORS_GAP SVC return values specific to GAP + * @{ */ +#define BLE_ERROR_GAP_UUID_LIST_MISMATCH (NRF_GAP_ERR_BASE + 0x000) /**< UUID list does not contain an integral number of UUIDs. */ +#define BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST (NRF_GAP_ERR_BASE + 0x001) /**< Use of Whitelist not permitted with discoverable advertising. */ +#define BLE_ERROR_GAP_INVALID_BLE_ADDR (NRF_GAP_ERR_BASE + 0x002) /**< The upper two bits of the address do not correspond to the specified address type. */ +#define BLE_ERROR_GAP_WHITELIST_IN_USE (NRF_GAP_ERR_BASE + 0x003) /**< Attempt to modify the whitelist while already in use by another operation. */ +#define BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE (NRF_GAP_ERR_BASE + 0x004) /**< Attempt to modify the device identity list while already in use by another operation. */ +#define BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE (NRF_GAP_ERR_BASE + 0x005) /**< The device identity list contains entries with duplicate identity addresses. */ +/**@} */ + + +/**@defgroup BLE_GAP_ROLES GAP Roles + * @{ */ +#define BLE_GAP_ROLE_INVALID 0x0 /**< Invalid Role. */ +#define BLE_GAP_ROLE_PERIPH 0x1 /**< Peripheral Role. */ +#define BLE_GAP_ROLE_CENTRAL 0x2 /**< Central Role. */ +/**@} */ + + +/**@defgroup BLE_GAP_TIMEOUT_SOURCES GAP Timeout sources + * @{ */ +#define BLE_GAP_TIMEOUT_SRC_SCAN 0x01 /**< Scanning timeout. */ +#define BLE_GAP_TIMEOUT_SRC_CONN 0x02 /**< Connection timeout. */ +#define BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD 0x03 /**< Authenticated payload timeout. */ +/**@} */ + + +/**@defgroup BLE_GAP_ADDR_TYPES GAP Address types + * @{ */ +#define BLE_GAP_ADDR_TYPE_PUBLIC 0x00 /**< Public (identity) address.*/ +#define BLE_GAP_ADDR_TYPE_RANDOM_STATIC 0x01 /**< Random static (identity) address. */ +#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE 0x02 /**< Random private resolvable address. */ +#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE 0x03 /**< Random private non-resolvable address. */ +#define BLE_GAP_ADDR_TYPE_ANONYMOUS 0x7F /**< An advertiser may advertise without its address. + This type of advertising is called anonymous. */ +/**@} */ + + +/**@brief The default interval in seconds at which a private address is refreshed. */ +#define BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S (900) /* 15 minutes. */ +/**@brief The maximum interval in seconds at which a private address can be refreshed. */ +#define BLE_GAP_MAX_PRIVATE_ADDR_CYCLE_INTERVAL_S (41400) /* 11 hours 30 minutes. */ + + +/** @brief BLE address length. */ +#define BLE_GAP_ADDR_LEN (6) + +/**@defgroup BLE_GAP_PRIVACY_MODES Privacy modes + * @{ */ +#define BLE_GAP_PRIVACY_MODE_OFF 0x00 /**< Device will send and accept its identity address for its own address. */ +#define BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY 0x01 /**< Device will send and accept only private addresses for its own address. */ +#define BLE_GAP_PRIVACY_MODE_NETWORK_PRIVACY 0x02 /**< Device will send and accept only private addresses for its own address, + and will not accept a peer using identity address as sender address when + the peer IRK is exchanged, non-zero and added to the identity list. */ +/**@} */ + +/** @brief Invalid power level. */ +#define BLE_GAP_POWER_LEVEL_INVALID 127 + +/** @brief Advertising set handle not set. */ +#define BLE_GAP_ADV_SET_HANDLE_NOT_SET (0xFF) + +/** @brief The default number of advertising sets. */ +#define BLE_GAP_ADV_SET_COUNT_DEFAULT (1) + +/** @brief The maximum number of advertising sets supported by this SoftDevice. */ +#define BLE_GAP_ADV_SET_COUNT_MAX (1) + +/**@defgroup BLE_GAP_ADV_SET_DATA_SIZES Advertising data sizes. + * @{ */ +#define BLE_GAP_ADV_SET_DATA_SIZE_MAX (31) /**< Maximum data length for an advertising set. */ +/**@}. */ + +/** @brief Set ID not available in advertising report. */ +#define BLE_GAP_ADV_REPORT_SET_ID_NOT_AVAILABLE 0xFF + +/**@defgroup BLE_GAP_EVT_ADV_SET_TERMINATED_REASON GAP Advertising Set Terminated reasons + * @{ */ +#define BLE_GAP_EVT_ADV_SET_TERMINATED_REASON_TIMEOUT 0x01 /**< Timeout value reached. */ +#define BLE_GAP_EVT_ADV_SET_TERMINATED_REASON_LIMIT_REACHED 0x02 /**< @ref ble_gap_adv_params_t::max_adv_evts was reached. */ +/**@} */ + +/**@defgroup BLE_GAP_AD_TYPE_DEFINITIONS GAP Advertising and Scan Response Data format + * @note Found at https://www.bluetooth.org/Technical/AssignedNumbers/generic_access_profile.htm + * @{ */ +#define BLE_GAP_AD_TYPE_FLAGS 0x01 /**< Flags for discoverability. */ +#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE 0x02 /**< Partial list of 16 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE 0x03 /**< Complete list of 16 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE 0x04 /**< Partial list of 32 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE 0x05 /**< Complete list of 32 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE 0x06 /**< Partial list of 128 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE 0x07 /**< Complete list of 128 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME 0x08 /**< Short local device name. */ +#define BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME 0x09 /**< Complete local device name. */ +#define BLE_GAP_AD_TYPE_TX_POWER_LEVEL 0x0A /**< Transmit power level. */ +#define BLE_GAP_AD_TYPE_CLASS_OF_DEVICE 0x0D /**< Class of device. */ +#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C 0x0E /**< Simple Pairing Hash C. */ +#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R 0x0F /**< Simple Pairing Randomizer R. */ +#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE 0x10 /**< Security Manager TK Value. */ +#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS 0x11 /**< Security Manager Out Of Band Flags. */ +#define BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE 0x12 /**< Slave Connection Interval Range. */ +#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT 0x14 /**< List of 16-bit Service Solicitation UUIDs. */ +#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT 0x15 /**< List of 128-bit Service Solicitation UUIDs. */ +#define BLE_GAP_AD_TYPE_SERVICE_DATA 0x16 /**< Service Data - 16-bit UUID. */ +#define BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS 0x17 /**< Public Target Address. */ +#define BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS 0x18 /**< Random Target Address. */ +#define BLE_GAP_AD_TYPE_APPEARANCE 0x19 /**< Appearance. */ +#define BLE_GAP_AD_TYPE_ADVERTISING_INTERVAL 0x1A /**< Advertising Interval. */ +#define BLE_GAP_AD_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS 0x1B /**< LE Bluetooth Device Address. */ +#define BLE_GAP_AD_TYPE_LE_ROLE 0x1C /**< LE Role. */ +#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C256 0x1D /**< Simple Pairing Hash C-256. */ +#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R256 0x1E /**< Simple Pairing Randomizer R-256. */ +#define BLE_GAP_AD_TYPE_SERVICE_DATA_32BIT_UUID 0x20 /**< Service Data - 32-bit UUID. */ +#define BLE_GAP_AD_TYPE_SERVICE_DATA_128BIT_UUID 0x21 /**< Service Data - 128-bit UUID. */ +#define BLE_GAP_AD_TYPE_LESC_CONFIRMATION_VALUE 0x22 /**< LE Secure Connections Confirmation Value */ +#define BLE_GAP_AD_TYPE_LESC_RANDOM_VALUE 0x23 /**< LE Secure Connections Random Value */ +#define BLE_GAP_AD_TYPE_URI 0x24 /**< URI */ +#define BLE_GAP_AD_TYPE_3D_INFORMATION_DATA 0x3D /**< 3D Information Data. */ +#define BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA 0xFF /**< Manufacturer Specific Data. */ +/**@} */ + + +/**@defgroup BLE_GAP_ADV_FLAGS GAP Advertisement Flags + * @{ */ +#define BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE (0x01) /**< LE Limited Discoverable Mode. */ +#define BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE (0x02) /**< LE General Discoverable Mode. */ +#define BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED (0x04) /**< BR/EDR not supported. */ +#define BLE_GAP_ADV_FLAG_LE_BR_EDR_CONTROLLER (0x08) /**< Simultaneous LE and BR/EDR, Controller. */ +#define BLE_GAP_ADV_FLAG_LE_BR_EDR_HOST (0x10) /**< Simultaneous LE and BR/EDR, Host. */ +#define BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE (BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED) /**< LE Limited Discoverable Mode, BR/EDR not supported. */ +#define BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE (BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED) /**< LE General Discoverable Mode, BR/EDR not supported. */ +/**@} */ + + +/**@defgroup BLE_GAP_ADV_INTERVALS GAP Advertising interval max and min + * @{ */ +#define BLE_GAP_ADV_INTERVAL_MIN 0x000020 /**< Minimum Advertising interval in 625 us units, i.e. 20 ms. */ +#define BLE_GAP_ADV_INTERVAL_MAX 0x004000 /**< Maximum Advertising interval in 625 us units, i.e. 10.24 s. + @note Support for values above @ref BLE_GAP_ADV_INTERVAL_MAX + is experimental. Values above 0xFFFFFF, i.e 10,485.759375 s + are not supported. */ + /**@} */ + + +/**@defgroup BLE_GAP_SCAN_INTERVALS GAP Scan interval max and min + * @{ */ +#define BLE_GAP_SCAN_INTERVAL_MIN 0x0004 /**< Minimum Scan interval in 625 us units, i.e. 2.5 ms. */ +#define BLE_GAP_SCAN_INTERVAL_MAX 0xFFFF /**< Maximum Scan interval in 625 us units, i.e. 40,959.375 s. */ + /** @} */ + + +/**@defgroup BLE_GAP_SCAN_WINDOW GAP Scan window max and min + * @{ */ +#define BLE_GAP_SCAN_WINDOW_MIN 0x0004 /**< Minimum Scan window in 625 us units, i.e. 2.5 ms. */ +#define BLE_GAP_SCAN_WINDOW_MAX 0xFFFF /**< Maximum Scan window in 625 us units, i.e. 40,959.375 s. */ + /** @} */ + + +/**@defgroup BLE_GAP_SCAN_TIMEOUT GAP Scan timeout max and min + * @{ */ +#define BLE_GAP_SCAN_TIMEOUT_MIN 0x0001 /**< Minimum Scan timeout in 10 ms units, i.e 10 ms. */ +#define BLE_GAP_SCAN_TIMEOUT_UNLIMITED 0x0000 /**< Continue to scan forever. */ + /** @} */ + +/**@defgroup BLE_GAP_SCAN_BUFFER_SIZE GAP Minimum scanner buffer size + * + * Scan buffers are used for storing advertising data received from an advertiser. + * If ble_gap_scan_params_t::extended is set to 0, @ref BLE_GAP_SCAN_BUFFER_MIN is the minimum scan buffer length. + * else the minimum scan buffer size is @ref BLE_GAP_SCAN_BUFFER_EXTENDED_MIN. + * @{ */ +#define BLE_GAP_SCAN_BUFFER_MIN (31) /**< Minimum data length for an + advertising set. */ +#define BLE_GAP_SCAN_BUFFER_MAX (31) /**< Maximum data length for an + advertising set. */ +#define BLE_GAP_SCAN_BUFFER_EXTENDED_MIN (255) /**< Minimum data length for an + extended advertising set. */ +#define BLE_GAP_SCAN_BUFFER_EXTENDED_MAX (1650) /**< Maximum data length for an + extended advertising set. + @note Extended scanning is only + supported as an experimental + feature in this SoftDevice. + The scanner will only receive + advertising data up to 31 bytes. */ +/** @} */ + +/**@defgroup BLE_GAP_ADV_TYPES GAP Advertising types + * + * Advertising types defined in Bluetooth Core Specification v5.0, Vol 6, Part B, Section 4.4.2. + * + * The maximum advertising data length is defined by @ref BLE_GAP_ADV_SET_DATA_SIZE_MAX. + * Note that some of the advertising types do not support advertising data. Non-scannable types do not support + * scan response data. + * + * @{ */ +#define BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED 0x01 /**< Connectable and scannable undirected + advertising events. */ +#define BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED_HIGH_DUTY_CYCLE 0x02 /**< Connectable non-scannable directed advertising + events. Advertising interval is less that 3.75 ms. + Use this type for fast reconnections. + @note Advertising data is not supported. */ +#define BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED 0x03 /**< Connectable non-scannable directed advertising + events. + @note Advertising data is not supported. */ +#define BLE_GAP_ADV_TYPE_NONCONNECTABLE_SCANNABLE_UNDIRECTED 0x04 /**< Non-connectable scannable undirected + advertising events. */ +#define BLE_GAP_ADV_TYPE_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED 0x05 /**< Non-connectable non-scannable undirected + advertising events. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_UNDIRECTED 0x06 /**< Connectable non-scannable undirected advertising + events using extended advertising PDUs. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_DIRECTED 0x07 /**< Connectable non-scannable directed advertising + events using extended advertising PDUs. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_SCANNABLE_UNDIRECTED 0x08 /**< Non-connectable scannable undirected advertising + events using extended advertising PDUs. + @note Only scan response data is supported. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_SCANNABLE_DIRECTED 0x09 /**< Non-connectable scannable directed advertising + events using extended advertising PDUs. + @note Only scan response data is supported. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED 0x0A /**< Non-connectable non-scannable undirected advertising + events using extended advertising PDUs. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_DIRECTED 0x0B /**< Non-connectable non-scannable directed advertising + events using extended advertising PDUs. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +/**@} */ + +/**@defgroup BLE_GAP_ADV_FILTER_POLICIES GAP Advertising filter policies + * @{ */ +#define BLE_GAP_ADV_FP_ANY 0x00 /**< Allow scan requests and connect requests from any device. */ +#define BLE_GAP_ADV_FP_FILTER_SCANREQ 0x01 /**< Filter scan requests with whitelist. */ +#define BLE_GAP_ADV_FP_FILTER_CONNREQ 0x02 /**< Filter connect requests with whitelist. */ +#define BLE_GAP_ADV_FP_FILTER_BOTH 0x03 /**< Filter both scan and connect requests with whitelist. */ +/**@} */ + +/**@defgroup BLE_GAP_ADV_DATA_STATUS GAP Advertising data status + * @{ */ +#define BLE_GAP_ADV_DATA_STATUS_COMPLETE 0x00 /**< All data in the advertising event have been received. */ +#define BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA 0x01 /**< More data to be received. */ +#define BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_TRUNCATED 0x02 /**< Incomplete data. Buffer size insufficient to receive more. */ +#define BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MISSED 0x03 /**< Failed to receive the remaining data. */ +/**@} */ + +/**@defgroup BLE_GAP_SCAN_FILTER_POLICIES GAP Scanner filter policies + * @{ */ +#define BLE_GAP_SCAN_FP_ACCEPT_ALL 0x00 /**< Accept all advertising packets except directed advertising packets + not addressed to this device. */ +#define BLE_GAP_SCAN_FP_WHITELIST 0x01 /**< Accept advertising packets from devices in the whitelist except directed + packets not addressed to this device. */ +#define BLE_GAP_SCAN_FP_ALL_NOT_RESOLVED_DIRECTED 0x02 /**< Accept all advertising packets specified in @ref BLE_GAP_SCAN_FP_ACCEPT_ALL. + In addition, accept directed advertising packets, where the advertiser's + address is a resolvable private address that cannot be resolved. */ +#define BLE_GAP_SCAN_FP_WHITELIST_NOT_RESOLVED_DIRECTED 0x03 /**< Accept all advertising packets specified in @ref BLE_GAP_SCAN_FP_WHITELIST. + In addition, accept directed advertising packets, where the advertiser's + address is a resolvable private address that cannot be resolved. */ +/**@} */ + +/**@defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values in 10 ms units + * @{ */ +#define BLE_GAP_ADV_TIMEOUT_HIGH_DUTY_MAX (128) /**< Maximum high duty advertising time in 10 ms units. Corresponds to 1.28 s. */ +#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX (18000) /**< Maximum advertising time in 10 ms units corresponding to TGAP(lim_adv_timeout) = 180 s in limited discoverable mode. */ +#define BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED (0) /**< Unlimited advertising in general discoverable mode. + For high duty cycle advertising, this corresponds to @ref BLE_GAP_ADV_TIMEOUT_HIGH_DUTY_MAX. */ +/**@} */ + + +/**@defgroup BLE_GAP_DISC_MODES GAP Discovery modes + * @{ */ +#define BLE_GAP_DISC_MODE_NOT_DISCOVERABLE 0x00 /**< Not discoverable discovery Mode. */ +#define BLE_GAP_DISC_MODE_LIMITED 0x01 /**< Limited Discovery Mode. */ +#define BLE_GAP_DISC_MODE_GENERAL 0x02 /**< General Discovery Mode. */ +/**@} */ + + +/**@defgroup BLE_GAP_IO_CAPS GAP IO Capabilities + * @{ */ +#define BLE_GAP_IO_CAPS_DISPLAY_ONLY 0x00 /**< Display Only. */ +#define BLE_GAP_IO_CAPS_DISPLAY_YESNO 0x01 /**< Display and Yes/No entry. */ +#define BLE_GAP_IO_CAPS_KEYBOARD_ONLY 0x02 /**< Keyboard Only. */ +#define BLE_GAP_IO_CAPS_NONE 0x03 /**< No I/O capabilities. */ +#define BLE_GAP_IO_CAPS_KEYBOARD_DISPLAY 0x04 /**< Keyboard and Display. */ +/**@} */ + + +/**@defgroup BLE_GAP_AUTH_KEY_TYPES GAP Authentication Key Types + * @{ */ +#define BLE_GAP_AUTH_KEY_TYPE_NONE 0x00 /**< No key (may be used to reject). */ +#define BLE_GAP_AUTH_KEY_TYPE_PASSKEY 0x01 /**< 6-digit Passkey. */ +#define BLE_GAP_AUTH_KEY_TYPE_OOB 0x02 /**< Out Of Band data. */ +/**@} */ + + +/**@defgroup BLE_GAP_KP_NOT_TYPES GAP Keypress Notification Types + * @{ */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_START 0x00 /**< Passkey entry started. */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_IN 0x01 /**< Passkey digit entered. */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_OUT 0x02 /**< Passkey digit erased. */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_CLEAR 0x03 /**< Passkey cleared. */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_END 0x04 /**< Passkey entry completed. */ +/**@} */ + + +/**@defgroup BLE_GAP_SEC_STATUS GAP Security status + * @{ */ +#define BLE_GAP_SEC_STATUS_SUCCESS 0x00 /**< Procedure completed with success. */ +#define BLE_GAP_SEC_STATUS_TIMEOUT 0x01 /**< Procedure timed out. */ +#define BLE_GAP_SEC_STATUS_PDU_INVALID 0x02 /**< Invalid PDU received. */ +#define BLE_GAP_SEC_STATUS_RFU_RANGE1_BEGIN 0x03 /**< Reserved for Future Use range #1 begin. */ +#define BLE_GAP_SEC_STATUS_RFU_RANGE1_END 0x80 /**< Reserved for Future Use range #1 end. */ +#define BLE_GAP_SEC_STATUS_PASSKEY_ENTRY_FAILED 0x81 /**< Passkey entry failed (user canceled or other). */ +#define BLE_GAP_SEC_STATUS_OOB_NOT_AVAILABLE 0x82 /**< Out of Band Key not available. */ +#define BLE_GAP_SEC_STATUS_AUTH_REQ 0x83 /**< Authentication requirements not met. */ +#define BLE_GAP_SEC_STATUS_CONFIRM_VALUE 0x84 /**< Confirm value failed. */ +#define BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP 0x85 /**< Pairing not supported. */ +#define BLE_GAP_SEC_STATUS_ENC_KEY_SIZE 0x86 /**< Encryption key size. */ +#define BLE_GAP_SEC_STATUS_SMP_CMD_UNSUPPORTED 0x87 /**< Unsupported SMP command. */ +#define BLE_GAP_SEC_STATUS_UNSPECIFIED 0x88 /**< Unspecified reason. */ +#define BLE_GAP_SEC_STATUS_REPEATED_ATTEMPTS 0x89 /**< Too little time elapsed since last attempt. */ +#define BLE_GAP_SEC_STATUS_INVALID_PARAMS 0x8A /**< Invalid parameters. */ +#define BLE_GAP_SEC_STATUS_DHKEY_FAILURE 0x8B /**< DHKey check failure. */ +#define BLE_GAP_SEC_STATUS_NUM_COMP_FAILURE 0x8C /**< Numeric Comparison failure. */ +#define BLE_GAP_SEC_STATUS_BR_EDR_IN_PROG 0x8D /**< BR/EDR pairing in progress. */ +#define BLE_GAP_SEC_STATUS_X_TRANS_KEY_DISALLOWED 0x8E /**< BR/EDR Link Key cannot be used for LE keys. */ +#define BLE_GAP_SEC_STATUS_RFU_RANGE2_BEGIN 0x8F /**< Reserved for Future Use range #2 begin. */ +#define BLE_GAP_SEC_STATUS_RFU_RANGE2_END 0xFF /**< Reserved for Future Use range #2 end. */ +/**@} */ + + +/**@defgroup BLE_GAP_SEC_STATUS_SOURCES GAP Security status sources + * @{ */ +#define BLE_GAP_SEC_STATUS_SOURCE_LOCAL 0x00 /**< Local failure. */ +#define BLE_GAP_SEC_STATUS_SOURCE_REMOTE 0x01 /**< Remote failure. */ +/**@} */ + + +/**@defgroup BLE_GAP_CP_LIMITS GAP Connection Parameters Limits + * @{ */ +#define BLE_GAP_CP_MIN_CONN_INTVL_NONE 0xFFFF /**< No new minimum connection interval specified in connect parameters. */ +#define BLE_GAP_CP_MIN_CONN_INTVL_MIN 0x0006 /**< Lowest minimum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */ +#define BLE_GAP_CP_MIN_CONN_INTVL_MAX 0x0C80 /**< Highest minimum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */ +#define BLE_GAP_CP_MAX_CONN_INTVL_NONE 0xFFFF /**< No new maximum connection interval specified in connect parameters. */ +#define BLE_GAP_CP_MAX_CONN_INTVL_MIN 0x0006 /**< Lowest maximum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */ +#define BLE_GAP_CP_MAX_CONN_INTVL_MAX 0x0C80 /**< Highest maximum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */ +#define BLE_GAP_CP_SLAVE_LATENCY_MAX 0x01F3 /**< Highest slave latency permitted, in connection events. */ +#define BLE_GAP_CP_CONN_SUP_TIMEOUT_NONE 0xFFFF /**< No new supervision timeout specified in connect parameters. */ +#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MIN 0x000A /**< Lowest supervision timeout permitted, in units of 10 ms, i.e. 100 ms. */ +#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MAX 0x0C80 /**< Highest supervision timeout permitted, in units of 10 ms, i.e. 32 s. */ +/**@} */ + + +/**@defgroup BLE_GAP_DEVNAME GAP device name defines. + * @{ */ +#define BLE_GAP_DEVNAME_DEFAULT "nRF5x" /**< Default device name value. */ +#define BLE_GAP_DEVNAME_DEFAULT_LEN 31 /**< Default number of octets in device name. */ +#define BLE_GAP_DEVNAME_MAX_LEN 248 /**< Maximum number of octets in device name. */ +/**@} */ + + +/**@brief Disable RSSI events for connections */ +#define BLE_GAP_RSSI_THRESHOLD_INVALID 0xFF + +/**@defgroup BLE_GAP_PHYS GAP PHYs + * @{ */ +#define BLE_GAP_PHY_AUTO 0x00 /**< Automatic PHY selection. Refer @ref sd_ble_gap_phy_update for more information.*/ +#define BLE_GAP_PHY_1MBPS 0x01 /**< 1 Mbps PHY. */ +#define BLE_GAP_PHY_2MBPS 0x02 /**< 2 Mbps PHY. */ +#define BLE_GAP_PHY_CODED 0x04 /**< Coded PHY. */ +#define BLE_GAP_PHY_NOT_SET 0xFF /**< PHY is not configured. */ + +/**@brief Supported PHYs in connections, for scanning, and for advertising. */ +#define BLE_GAP_PHYS_SUPPORTED (BLE_GAP_PHY_1MBPS | BLE_GAP_PHY_2MBPS) /**< All PHYs except @ref BLE_GAP_PHY_CODED are supported. */ + +/**@} */ + +/**@defgroup BLE_GAP_CONN_SEC_MODE_SET_MACROS GAP attribute security requirement setters + * + * See @ref ble_gap_conn_sec_mode_t. + * @{ */ +/**@brief Set sec_mode pointed to by ptr to have no access rights.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(ptr) do {(ptr)->sm = 0; (ptr)->lv = 0;} while(0) +/**@brief Set sec_mode pointed to by ptr to require no protection, open link.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_OPEN(ptr) do {(ptr)->sm = 1; (ptr)->lv = 1;} while(0) +/**@brief Set sec_mode pointed to by ptr to require encryption, but no MITM protection.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 2;} while(0) +/**@brief Set sec_mode pointed to by ptr to require encryption and MITM protection.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 3;} while(0) +/**@brief Set sec_mode pointed to by ptr to require LESC encryption and MITM protection.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_LESC_ENC_WITH_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 4;} while(0) +/**@brief Set sec_mode pointed to by ptr to require signing or encryption, no MITM protection needed.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(ptr) do {(ptr)->sm = 2; (ptr)->lv = 1;} while(0) +/**@brief Set sec_mode pointed to by ptr to require signing or encryption with MITM protection.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(ptr) do {(ptr)->sm = 2; (ptr)->lv = 2;} while(0) +/**@} */ + + +/**@brief GAP Security Random Number Length. */ +#define BLE_GAP_SEC_RAND_LEN 8 + + +/**@brief GAP Security Key Length. */ +#define BLE_GAP_SEC_KEY_LEN 16 + + +/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key Length. */ +#define BLE_GAP_LESC_P256_PK_LEN 64 + + +/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman DHKey Length. */ +#define BLE_GAP_LESC_DHKEY_LEN 32 + + +/**@brief GAP Passkey Length. */ +#define BLE_GAP_PASSKEY_LEN 6 + + +/**@brief Maximum amount of addresses in the whitelist. */ +#define BLE_GAP_WHITELIST_ADDR_MAX_COUNT (8) + + +/**@brief Maximum amount of identities in the device identities list. */ +#define BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT (8) + + +/**@brief Default connection count for a configuration. */ +#define BLE_GAP_CONN_COUNT_DEFAULT (1) + + +/**@defgroup BLE_GAP_EVENT_LENGTH GAP event length defines. + * @{ */ +#define BLE_GAP_EVENT_LENGTH_MIN (2) /**< Minimum event length, in 1.25 ms units. */ +#define BLE_GAP_EVENT_LENGTH_DEFAULT (3) /**< Default event length, in 1.25 ms units. */ +/**@} */ + + +/**@defgroup BLE_GAP_ROLE_COUNT GAP concurrent connection count defines. + * @{ */ +#define BLE_GAP_ROLE_COUNT_PERIPH_DEFAULT (1) /**< Default maximum number of connections concurrently acting as peripherals. */ +#define BLE_GAP_ROLE_COUNT_CENTRAL_DEFAULT (3) /**< Default maximum number of connections concurrently acting as centrals. */ +#define BLE_GAP_ROLE_COUNT_CENTRAL_SEC_DEFAULT (1) /**< Default number of SMP instances shared between all connections acting as centrals. */ +#define BLE_GAP_ROLE_COUNT_COMBINED_MAX (20) /**< Maximum supported number of concurrent connections in the peripheral and central roles combined. */ + +/**@} */ + +/**@brief Automatic data length parameter. */ +#define BLE_GAP_DATA_LENGTH_AUTO 0 + +/**@defgroup BLE_GAP_AUTH_PAYLOAD_TIMEOUT Authenticated payload timeout defines. + * @{ */ +#define BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MAX (48000) /**< Maximum authenticated payload timeout in 10 ms units, i.e. 8 minutes. */ +#define BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MIN (1) /**< Minimum authenticated payload timeout in 10 ms units, i.e. 10 ms. */ +/**@} */ + +/**@defgroup GAP_SEC_MODES GAP Security Modes + * @{ */ +#define BLE_GAP_SEC_MODE 0x00 /**< No key (may be used to reject). */ +/**@} */ + +/**@brief The total number of channels in Bluetooth Low Energy. */ +#define BLE_GAP_CHANNEL_COUNT (40) + +/**@defgroup BLE_GAP_QOS_CHANNEL_SURVEY_INTERVALS Quality of Service (QoS) Channel survey interval defines + * @{ */ +#define BLE_GAP_QOS_CHANNEL_SURVEY_INTERVAL_CONTINUOUS (0) /**< Continuous channel survey. */ +#define BLE_GAP_QOS_CHANNEL_SURVEY_INTERVAL_MIN_US (7500) /**< Minimum channel survey interval in microseconds (7.5 ms). */ +#define BLE_GAP_QOS_CHANNEL_SURVEY_INTERVAL_MAX_US (4000000) /**< Maximum channel survey interval in microseconds (4 s). */ + /**@} */ + +/** @} */ + + +/**@addtogroup BLE_GAP_STRUCTURES Structures + * @{ */ + +/**@brief Advertising event properties. */ +typedef struct +{ + uint8_t type; /**< Advertising type. See @ref BLE_GAP_ADV_TYPES. */ + uint8_t anonymous : 1; /**< Omit advertiser's address from all PDUs. + @note Anonymous advertising is only available for + @ref BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED and + @ref BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_DIRECTED. */ + uint8_t include_tx_power : 1; /**< Include TxPower set by @ref sd_ble_gap_tx_power_set in the extended header + of the advertising PDU. + @note TxPower can only be added to the extended header when @ref type is an extended advertising type. */ +} ble_gap_adv_properties_t; + + +/**@brief Advertising report type. */ +typedef struct +{ + uint16_t connectable : 1; /**< Connectable advertising event type. */ + uint16_t scannable : 1; /**< Scannable advertising event type. */ + uint16_t directed : 1; /**< Directed advertising event type. */ + uint16_t scan_response : 1; /**< Received a scan response. */ + uint16_t extended_pdu : 1; /**< Received an extended advertising set. */ + uint16_t status : 2; /**< Data status. See @ref BLE_GAP_ADV_DATA_STATUS. */ + uint16_t reserved : 9; /**< Reserved for future use. */ +} ble_gap_adv_report_type_t; + +/**@brief Advertising Auxiliary Pointer. */ +typedef struct +{ + uint16_t aux_offset; /**< Time offset from the beginning of advertising packet to the auxiliary packet in 100 us units. */ + uint8_t aux_phy; /**< Indicates the PHY on which the auxiliary advertising packet is sent. See @ref BLE_GAP_PHYS. */ +} ble_gap_aux_pointer_t; + +/**@brief Bluetooth Low Energy address. */ +typedef struct +{ + uint8_t addr_id_peer : 1; /**< Only valid for peer addresses. + Reference to peer in device identities list (as set with @ref sd_ble_gap_device_identities_set) when peer is using privacy. */ + uint8_t addr_type : 7; /**< See @ref BLE_GAP_ADDR_TYPES. */ + uint8_t addr[BLE_GAP_ADDR_LEN]; /**< 48-bit address, LSB format. + addr is not used if addr_type is @ref BLE_GAP_ADDR_TYPE_ANONYMOUS. */ +} ble_gap_addr_t; + + +/**@brief GAP connection parameters. + * + * @note When ble_conn_params_t is received in an event, both min_conn_interval and + * max_conn_interval will be equal to the connection interval set by the central. + * + * @note If both conn_sup_timeout and max_conn_interval are specified, then the following constraint applies: + * conn_sup_timeout * 4 > (1 + slave_latency) * max_conn_interval + * that corresponds to the following Bluetooth Spec requirement: + * The Supervision_Timeout in milliseconds shall be larger than + * (1 + Conn_Latency) * Conn_Interval_Max * 2, where Conn_Interval_Max is given in milliseconds. + */ +typedef struct +{ + uint16_t min_conn_interval; /**< Minimum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/ + uint16_t max_conn_interval; /**< Maximum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/ + uint16_t slave_latency; /**< Slave Latency in number of connection events, see @ref BLE_GAP_CP_LIMITS.*/ + uint16_t conn_sup_timeout; /**< Connection Supervision Timeout in 10 ms units, see @ref BLE_GAP_CP_LIMITS.*/ +} ble_gap_conn_params_t; + + +/**@brief GAP connection security modes. + * + * Security Mode 0 Level 0: No access permissions at all (this level is not defined by the Bluetooth Core specification).\n + * Security Mode 1 Level 1: No security is needed (aka open link).\n + * Security Mode 1 Level 2: Encrypted link required, MITM protection not necessary.\n + * Security Mode 1 Level 3: MITM protected encrypted link required.\n + * Security Mode 1 Level 4: LESC MITM protected encrypted link using a 128-bit strength encryption key required.\n + * Security Mode 2 Level 1: Signing or encryption required, MITM protection not necessary.\n + * Security Mode 2 Level 2: MITM protected signing required, unless link is MITM protected encrypted.\n + */ +typedef struct +{ + uint8_t sm : 4; /**< Security Mode (1 or 2), 0 for no permissions at all. */ + uint8_t lv : 4; /**< Level (1, 2, 3 or 4), 0 for no permissions at all. */ + +} ble_gap_conn_sec_mode_t; + + +/**@brief GAP connection security status.*/ +typedef struct +{ + ble_gap_conn_sec_mode_t sec_mode; /**< Currently active security mode for this connection.*/ + uint8_t encr_key_size; /**< Length of currently active encryption key, 7 to 16 octets (only applicable for bonding procedures). */ +} ble_gap_conn_sec_t; + +/**@brief Identity Resolving Key. */ +typedef struct +{ + uint8_t irk[BLE_GAP_SEC_KEY_LEN]; /**< Array containing IRK. */ +} ble_gap_irk_t; + + +/**@brief Channel mask (40 bits). + * Every channel is represented with a bit positioned as per channel index defined in Bluetooth Core Specification v5.0, + * Vol 6, Part B, Section 1.4.1. The LSB contained in array element 0 represents channel index 0, and bit 39 represents + * channel index 39. If a bit is set to 1, the channel is not used. + */ +typedef uint8_t ble_gap_ch_mask_t[5]; + + +/**@brief GAP advertising parameters. */ +typedef struct +{ + ble_gap_adv_properties_t properties; /**< The properties of the advertising events. */ + ble_gap_addr_t const *p_peer_addr; /**< Address of a known peer. + @note ble_gap_addr_t::addr_type cannot be + @ref BLE_GAP_ADDR_TYPE_ANONYMOUS. + - When privacy is enabled and the local device uses + @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE addresses, + the device identity list is searched for a matching entry. If + the local IRK for that device identity is set, the local IRK + for that device will be used to generate the advertiser address + field in the advertising packet. + - If @ref ble_gap_adv_properties_t::type is directed, this must be + set to the targeted scanner or initiator. If the peer address is + in the device identity list, the peer IRK for that device will be + used to generate @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE + target addresses used in the advertising event PDUs. */ + uint32_t interval; /**< Advertising interval in 625 us units. @sa BLE_GAP_ADV_INTERVALS. + @note If @ref ble_gap_adv_properties_t::type is set to + @ref BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED_HIGH_DUTY_CYCLE + advertising, this parameter is ignored. */ + uint16_t duration; /**< Advertising duration in 10 ms units. When timeout is reached, + an event of type @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised. + @sa BLE_GAP_ADV_TIMEOUT_VALUES. */ + uint8_t max_adv_evts; /**< Maximum advertising events that shall be sent prior to disabling + advertising. Setting the value to 0 disables the limitation. When + the count of advertising events specified by this parameter + (if not 0) is reached, advertising will be automatically stopped + and an event of type @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised + @note If @ref ble_gap_adv_properties_t::type is set to + @ref BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED_HIGH_DUTY_CYCLE, + this parameter is ignored. + @note Setting max_adv_evts to a values not equal to 0 is only supported + as an experimental feature in this SoftDevice. */ + ble_gap_ch_mask_t channel_mask; /**< Channel mask for primary and secondary advertising channels. + At least one of the primary channels, that is channel index 37-39, must be used. + Masking away secondary advertising channels is not supported. */ + uint8_t filter_policy; /**< Filter Policy. @sa BLE_GAP_ADV_FILTER_POLICIES. */ + uint8_t primary_phy; /**< Indicates the PHY on which the primary advertising channel packets + are transmitted. If set to @ref BLE_GAP_PHY_AUTO, @ref BLE_GAP_PHY_1MBPS + will be used. + The only supported value by this SoftDevice is @ref BLE_GAP_PHY_1MBPS. */ + uint8_t secondary_phy; /**< Indicates the PHY on which the secondary advertising channel packets + are transmitted. + If set to @ref BLE_GAP_PHY_AUTO, @ref BLE_GAP_PHY_1MBPS will be used. + Valid values are + @ref BLE_GAP_PHY_1MBPS and @ref BLE_GAP_PHY_2MBPS. @ref BLE_GAP_PHY_CODED + is not supported by this SoftDevice. + If @ref ble_gap_adv_properties_t::type is an extended advertising type + and connectable, this is the PHY that will be used to establish a + connection and send AUX_ADV_IND packets on. + @note This parameter will be ignored when + @ref ble_gap_adv_properties_t::type is not an extended advertising type. */ + uint8_t set_id:4; /**< The advertising set identifier distinguishes this advertising set from other + advertising sets transmitted by this and other devices. + @note This parameter will be ignored when + @ref ble_gap_adv_properties_t::type is not an extended advertising type. */ + uint8_t scan_req_notification:1; /**< Enable scan request notifications for this advertising set. When a + scan request is received and the scanner address is allowed + by the filter policy, @ref BLE_GAP_EVT_SCAN_REQ_REPORT is raised. + @note This parameter will be ignored when + @ref ble_gap_adv_properties_t::type is a non-scannable + advertising type. */ +} ble_gap_adv_params_t; + + +/**@brief GAP advertising data buffers. + * + * The application must provide the buffers for advertisement. The memory shall reside in application RAM, and + * shall never be modified while advertising. The data shall be kept alive until either: + * - @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised. + * - @ref BLE_GAP_EVT_CONNECTED is raised with @ref ble_gap_evt_connected_t::adv_handle set to the corresponding + * advertising handle. + * - Advertising is stopped. + * - Advertising data is changed. + * To update advertising data while advertising, provide new buffers to @ref sd_ble_gap_adv_set_configure. */ +typedef struct +{ + ble_data_t adv_data; /**< Advertising data. + @note + Advertising data can only be specified for a @ref ble_gap_adv_properties_t::type + that is allowed to contain advertising data. */ + ble_data_t scan_rsp_data; /**< Scan response data. + @note + Scan response data can only be specified for a @ref ble_gap_adv_properties_t::type + that is scannable. */ +} ble_gap_adv_data_t; + + +/**@brief GAP scanning parameters. */ +typedef struct +{ + uint8_t extended : 1; /**< If 1, the scanner will accept extended advertising packets. + If set to 0, the scanner will not receive advertising packets + on secondary advertising channels, and will not be able + to receive long advertising PDUs. + @note Extended scanning is only supported as an experimental feature in this + SoftDevice. */ + uint8_t report_incomplete_evts : 1; /**< If 1, events of type @ref ble_gap_evt_adv_report_t may have + @ref ble_gap_adv_report_type_t::status set to + @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA. + This parameter is ignored when used with @ref sd_ble_gap_connect + @note This may be used to abort receiving more packets from an extended + advertising event, and is only available for extended + scanning, see @ref sd_ble_gap_scan_start. + @note This feature is not supported by this SoftDevice. */ + uint8_t active : 1; /**< If 1, perform active scanning by sending scan requests. + This parameter is ignored when used with @ref sd_ble_gap_connect. */ + uint8_t filter_policy : 2; /**< Scanning filter policy. @sa BLE_GAP_SCAN_FILTER_POLICIES. + @note Only @ref BLE_GAP_SCAN_FP_ACCEPT_ALL and + @ref BLE_GAP_SCAN_FP_WHITELIST are valid when used with + @ref sd_ble_gap_connect */ + uint8_t scan_phys; /**< Bitfield of PHYs to scan on. If set to @ref BLE_GAP_PHY_AUTO, + scan_phys will default to @ref BLE_GAP_PHY_1MBPS. + - If @ref ble_gap_scan_params_t::extended is set to 0, the only + supported PHY is @ref BLE_GAP_PHY_1MBPS. + - When used with @ref sd_ble_gap_scan_start, + the bitfield indicates the PHYs the scanner will use for scanning + on primary advertising channels. The scanner will accept + @ref BLE_GAP_PHYS_SUPPORTED as secondary advertising channel PHYs. + - When used with @ref sd_ble_gap_connect, the + bitfield indicates the PHYs on where a connection may be initiated. + If scan_phys contains @ref BLE_GAP_PHY_1MBPS and/or @ref BLE_GAP_PHY_2MBPS, + the primary scan PHY is @ref BLE_GAP_PHY_1MBPS. */ + uint16_t interval; /**< Scan interval in 625 us units. @sa BLE_GAP_SCAN_INTERVALS. */ + uint16_t window; /**< Scan window in 625 us units. @sa BLE_GAP_SCAN_WINDOW. */ + uint16_t timeout; /**< Scan timeout in 10 ms units. @sa BLE_GAP_SCAN_TIMEOUT. */ + ble_gap_ch_mask_t channel_mask; /**< Channel mask for primary and secondary advertising channels. + At least one of the primary channels, that is channel index 37-39, must be + set to 0. + Masking away secondary channels is not supported. */ +} ble_gap_scan_params_t; + + +/**@brief Privacy. + * + * The privacy feature provides a way for the device to avoid being tracked over a period of time. + * The privacy feature, when enabled, hides the local device identity and replaces it with a private address + * that is automatically refreshed at a specified interval. + * + * If a device still wants to be recognized by other peers, it needs to share it's Identity Resolving Key (IRK). + * With this key, a device can generate a random private address that can only be recognized by peers in possession of that key, + * and devices can establish connections without revealing their real identities. + * + * Both network privacy (@ref BLE_GAP_PRIVACY_MODE_NETWORK_PRIVACY) and device privacy (@ref BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY) + * are supported. + * + * @note If the device IRK is updated, the new IRK becomes the one to be distributed in all + * bonding procedures performed after @ref sd_ble_gap_privacy_set returns. + * The IRK distributed during bonding procedure is the device IRK that is active when @ref sd_ble_gap_sec_params_reply is called. + */ +typedef struct +{ + uint8_t privacy_mode; /**< Privacy mode, see @ref BLE_GAP_PRIVACY_MODES. Default is @ref BLE_GAP_PRIVACY_MODE_OFF. */ + uint8_t private_addr_type; /**< The private address type must be either @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE or @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE. */ + uint16_t private_addr_cycle_s; /**< Private address cycle interval in seconds. Providing an address cycle value of 0 will use the default value defined by @ref BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S. */ + ble_gap_irk_t *p_device_irk; /**< When used as input, pointer to IRK structure that will be used as the default IRK. If NULL, the device default IRK will be used. + When used as output, pointer to IRK structure where the current default IRK will be written to. If NULL, this argument is ignored. + By default, the default IRK is used to generate random private resolvable addresses for the local device unless instructed otherwise. */ +} ble_gap_privacy_params_t; + + +/**@brief PHY preferences for TX and RX + * @note tx_phys and rx_phys are bit fields. Multiple bits can be set in them to indicate multiple preferred PHYs for each direction. + * @code + * p_gap_phys->tx_phys = BLE_GAP_PHY_1MBPS | BLE_GAP_PHY_2MBPS; + * p_gap_phys->rx_phys = BLE_GAP_PHY_1MBPS | BLE_GAP_PHY_2MBPS; + * @endcode + * + */ +typedef struct +{ + uint8_t tx_phys; /**< Preferred transmit PHYs, see @ref BLE_GAP_PHYS. */ + uint8_t rx_phys; /**< Preferred receive PHYs, see @ref BLE_GAP_PHYS. */ +} ble_gap_phys_t; + +/** @brief Keys that can be exchanged during a bonding procedure. */ +typedef struct +{ + uint8_t enc : 1; /**< Long Term Key and Master Identification. */ + uint8_t id : 1; /**< Identity Resolving Key and Identity Address Information. */ + uint8_t sign : 1; /**< Connection Signature Resolving Key. */ + uint8_t link : 1; /**< Derive the Link Key from the LTK. */ +} ble_gap_sec_kdist_t; + + +/**@brief GAP security parameters. */ +typedef struct +{ + uint8_t bond : 1; /**< Perform bonding. */ + uint8_t mitm : 1; /**< Enable Man In The Middle protection. */ + uint8_t lesc : 1; /**< Enable LE Secure Connection pairing. */ + uint8_t keypress : 1; /**< Enable generation of keypress notifications. */ + uint8_t io_caps : 3; /**< IO capabilities, see @ref BLE_GAP_IO_CAPS. */ + uint8_t oob : 1; /**< The OOB data flag. + - In LE legacy pairing, this flag is set if a device has out of band authentication data. + The OOB method is used if both of the devices have out of band authentication data. + - In LE Secure Connections pairing, this flag is set if a device has the peer device's out of band authentication data. + The OOB method is used if at least one device has the peer device's OOB data available. */ + uint8_t min_key_size; /**< Minimum encryption key size in octets between 7 and 16. If 0 then not applicable in this instance. */ + uint8_t max_key_size; /**< Maximum encryption key size in octets between min_key_size and 16. */ + ble_gap_sec_kdist_t kdist_own; /**< Key distribution bitmap: keys that the local device will distribute. */ + ble_gap_sec_kdist_t kdist_peer; /**< Key distribution bitmap: keys that the remote device will distribute. */ +} ble_gap_sec_params_t; + + +/**@brief GAP Encryption Information. */ +typedef struct +{ + uint8_t ltk[BLE_GAP_SEC_KEY_LEN]; /**< Long Term Key. */ + uint8_t lesc : 1; /**< Key generated using LE Secure Connections. */ + uint8_t auth : 1; /**< Authenticated Key. */ + uint8_t ltk_len : 6; /**< LTK length in octets. */ +} ble_gap_enc_info_t; + + +/**@brief GAP Master Identification. */ +typedef struct +{ + uint16_t ediv; /**< Encrypted Diversifier. */ + uint8_t rand[BLE_GAP_SEC_RAND_LEN]; /**< Random Number. */ +} ble_gap_master_id_t; + + +/**@brief GAP Signing Information. */ +typedef struct +{ + uint8_t csrk[BLE_GAP_SEC_KEY_LEN]; /**< Connection Signature Resolving Key. */ +} ble_gap_sign_info_t; + + +/**@brief GAP LE Secure Connections P-256 Public Key. */ +typedef struct +{ + uint8_t pk[BLE_GAP_LESC_P256_PK_LEN]; /**< LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key. Stored in the standard SMP protocol format: {X,Y} both in little-endian. */ +} ble_gap_lesc_p256_pk_t; + + +/**@brief GAP LE Secure Connections DHKey. */ +typedef struct +{ + uint8_t key[BLE_GAP_LESC_DHKEY_LEN]; /**< LE Secure Connections Elliptic Curve Diffie-Hellman Key. Stored in little-endian. */ +} ble_gap_lesc_dhkey_t; + + +/**@brief GAP LE Secure Connections OOB data. */ +typedef struct +{ + ble_gap_addr_t addr; /**< Bluetooth address of the device. */ + uint8_t r[BLE_GAP_SEC_KEY_LEN]; /**< Random Number. */ + uint8_t c[BLE_GAP_SEC_KEY_LEN]; /**< Confirm Value. */ +} ble_gap_lesc_oob_data_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_CONNECTED. */ +typedef struct +{ + ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1 + and the address is the device's identity address. */ + uint8_t role; /**< BLE role for this connection, see @ref BLE_GAP_ROLES */ + ble_gap_conn_params_t conn_params; /**< GAP Connection Parameters. */ + uint8_t adv_handle; /**< Advertising handle in which advertising has ended. + This variable is only set if role is set to @ref BLE_GAP_ROLE_PERIPH. */ + ble_gap_adv_data_t adv_data; /**< Advertising buffers corresponding to the terminated + advertising set. The advertising buffers provided in + @ref sd_ble_gap_adv_set_configure are now released. + This variable is only set if role is set to @ref BLE_GAP_ROLE_PERIPH. */ +} ble_gap_evt_connected_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_DISCONNECTED. */ +typedef struct +{ + uint8_t reason; /**< HCI error code, see @ref BLE_HCI_STATUS_CODES. */ +} ble_gap_evt_disconnected_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE. */ +typedef struct +{ + ble_gap_conn_params_t conn_params; /**< GAP Connection Parameters. */ +} ble_gap_evt_conn_param_update_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_PHY_UPDATE_REQUEST. */ +typedef struct +{ + ble_gap_phys_t peer_preferred_phys; /**< The PHYs the peer prefers to use. */ +} ble_gap_evt_phy_update_request_t; + +/**@brief Event Structure for @ref BLE_GAP_EVT_PHY_UPDATE. */ +typedef struct +{ + uint8_t status; /**< Status of the procedure, see @ref BLE_HCI_STATUS_CODES.*/ + uint8_t tx_phy; /**< TX PHY for this connection, see @ref BLE_GAP_PHYS. */ + uint8_t rx_phy; /**< RX PHY for this connection, see @ref BLE_GAP_PHYS. */ +} ble_gap_evt_phy_update_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST. */ +typedef struct +{ + ble_gap_sec_params_t peer_params; /**< Initiator Security Parameters. */ +} ble_gap_evt_sec_params_request_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_SEC_INFO_REQUEST. */ +typedef struct +{ + ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. */ + ble_gap_master_id_t master_id; /**< Master Identification for LTK lookup. */ + uint8_t enc_info : 1; /**< If 1, Encryption Information required. */ + uint8_t id_info : 1; /**< If 1, Identity Information required. */ + uint8_t sign_info : 1; /**< If 1, Signing Information required. */ +} ble_gap_evt_sec_info_request_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_PASSKEY_DISPLAY. */ +typedef struct +{ + uint8_t passkey[BLE_GAP_PASSKEY_LEN]; /**< 6-digit passkey in ASCII ('0'-'9' digits only). */ + uint8_t match_request : 1; /**< If 1 requires the application to report the match using @ref sd_ble_gap_auth_key_reply + with either @ref BLE_GAP_AUTH_KEY_TYPE_NONE if there is no match or + @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY if there is a match. */ +} ble_gap_evt_passkey_display_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_KEY_PRESSED. */ +typedef struct +{ + uint8_t kp_not; /**< Keypress notification type, see @ref BLE_GAP_KP_NOT_TYPES. */ +} ble_gap_evt_key_pressed_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_KEY_REQUEST. */ +typedef struct +{ + uint8_t key_type; /**< See @ref BLE_GAP_AUTH_KEY_TYPES. */ +} ble_gap_evt_auth_key_request_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST. */ +typedef struct +{ + ble_gap_lesc_p256_pk_t *p_pk_peer; /**< LE Secure Connections remote P-256 Public Key. This will point to the application-supplied memory + inside the keyset during the call to @ref sd_ble_gap_sec_params_reply. */ + uint8_t oobd_req :1; /**< LESC OOB data required. A call to @ref sd_ble_gap_lesc_oob_data_set is required to complete the procedure. */ +} ble_gap_evt_lesc_dhkey_request_t; + + +/**@brief Security levels supported. + * @note See Bluetooth Specification Version 4.2 Volume 3, Part C, Chapter 10, Section 10.2.1. +*/ +typedef struct +{ + uint8_t lv1 : 1; /**< If 1: Level 1 is supported. */ + uint8_t lv2 : 1; /**< If 1: Level 2 is supported. */ + uint8_t lv3 : 1; /**< If 1: Level 3 is supported. */ + uint8_t lv4 : 1; /**< If 1: Level 4 is supported. */ +} ble_gap_sec_levels_t; + + +/**@brief Encryption Key. */ +typedef struct +{ + ble_gap_enc_info_t enc_info; /**< Encryption Information. */ + ble_gap_master_id_t master_id; /**< Master Identification. */ +} ble_gap_enc_key_t; + + +/**@brief Identity Key. */ +typedef struct +{ + ble_gap_irk_t id_info; /**< Identity Resolving Key. */ + ble_gap_addr_t id_addr_info; /**< Identity Address. */ +} ble_gap_id_key_t; + + +/**@brief Security Keys. */ +typedef struct +{ + ble_gap_enc_key_t *p_enc_key; /**< Encryption Key, or NULL. */ + ble_gap_id_key_t *p_id_key; /**< Identity Key, or NULL. */ + ble_gap_sign_info_t *p_sign_key; /**< Signing Key, or NULL. */ + ble_gap_lesc_p256_pk_t *p_pk; /**< LE Secure Connections P-256 Public Key. When in debug mode the application must use the value defined + in the Core Bluetooth Specification v4.2 Vol.3, Part H, Section 2.3.5.6.1 */ +} ble_gap_sec_keys_t; + + +/**@brief Security key set for both local and peer keys. */ +typedef struct +{ + ble_gap_sec_keys_t keys_own; /**< Keys distributed by the local device. For LE Secure Connections the encryption key will be generated locally and will always be stored if bonding. */ + ble_gap_sec_keys_t keys_peer; /**< Keys distributed by the remote device. For LE Secure Connections, p_enc_key must always be NULL. */ +} ble_gap_sec_keyset_t; + + +/**@brief Data Length Update Procedure parameters. */ +typedef struct +{ + uint16_t max_tx_octets; /**< Maximum number of payload octets that a Controller supports for transmission of a single Link Layer Data Channel PDU. */ + uint16_t max_rx_octets; /**< Maximum number of payload octets that a Controller supports for reception of a single Link Layer Data Channel PDU. */ + uint16_t max_tx_time_us; /**< Maximum time, in microseconds, that a Controller supports for transmission of a single Link Layer Data Channel PDU. */ + uint16_t max_rx_time_us; /**< Maximum time, in microseconds, that a Controller supports for reception of a single Link Layer Data Channel PDU. */ +} ble_gap_data_length_params_t; + + +/**@brief Data Length Update Procedure local limitation. */ +typedef struct +{ + uint16_t tx_payload_limited_octets; /**< If > 0, the requested TX packet length is too long by this many octets. */ + uint16_t rx_payload_limited_octets; /**< If > 0, the requested RX packet length is too long by this many octets. */ + uint16_t tx_rx_time_limited_us; /**< If > 0, the requested combination of TX and RX packet lengths is too long by this many microseconds. */ +} ble_gap_data_length_limitation_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_STATUS. */ +typedef struct +{ + uint8_t auth_status; /**< Authentication status, see @ref BLE_GAP_SEC_STATUS. */ + uint8_t error_src : 2; /**< On error, source that caused the failure, see @ref BLE_GAP_SEC_STATUS_SOURCES. */ + uint8_t bonded : 1; /**< Procedure resulted in a bond. */ + uint8_t lesc : 1; /**< Procedure resulted in a LE Secure Connection. */ + ble_gap_sec_levels_t sm1_levels; /**< Levels supported in Security Mode 1. */ + ble_gap_sec_levels_t sm2_levels; /**< Levels supported in Security Mode 2. */ + ble_gap_sec_kdist_t kdist_own; /**< Bitmap stating which keys were exchanged (distributed) by the local device. If bonding with LE Secure Connections, the enc bit will be always set. */ + ble_gap_sec_kdist_t kdist_peer; /**< Bitmap stating which keys were exchanged (distributed) by the remote device. If bonding with LE Secure Connections, the enc bit will never be set. */ +} ble_gap_evt_auth_status_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_CONN_SEC_UPDATE. */ +typedef struct +{ + ble_gap_conn_sec_t conn_sec; /**< Connection security level. */ +} ble_gap_evt_conn_sec_update_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_TIMEOUT. */ +typedef struct +{ + uint8_t src; /**< Source of timeout event, see @ref BLE_GAP_TIMEOUT_SOURCES. */ + union + { + ble_data_t adv_report_buffer; /**< If source is set to @ref BLE_GAP_TIMEOUT_SRC_SCAN, the released + scan buffer is contained in this field. */ + } params; /**< Event Parameters. */ +} ble_gap_evt_timeout_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_RSSI_CHANGED. */ +typedef struct +{ + int8_t rssi; /**< Received Signal Strength Indication in dBm. */ + uint8_t ch_index; /**< Data Channel Index on which the Signal Strength is measured (0-36). */ +} ble_gap_evt_rssi_changed_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_ADV_SET_TERMINATED */ +typedef struct +{ + uint8_t reason; /**< Reason for why the advertising set terminated. See + @ref BLE_GAP_EVT_ADV_SET_TERMINATED_REASON. */ + uint8_t adv_handle; /**< Advertising handle in which advertising has ended. */ + uint8_t num_completed_adv_events; /**< If @ref ble_gap_adv_params_t::max_adv_evts was not set to 0, + this field indicates the number of completed advertising events. */ + ble_gap_adv_data_t adv_data; /**< Advertising buffers corresponding to the terminated + advertising set. The advertising buffers provided in + @ref sd_ble_gap_adv_set_configure are now released. */ +} ble_gap_evt_adv_set_terminated_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_ADV_REPORT. + * + * @note If @ref ble_gap_adv_report_type_t::status is set to @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, + * not all fields in the advertising report may be available. + * + * @note When ble_gap_adv_report_type_t::status is not set to @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, + * scanning will be paused. To continue scanning, call @ref sd_ble_gap_scan_start. + */ +typedef struct +{ + ble_gap_adv_report_type_t type; /**< Advertising report type. See @ref ble_gap_adv_report_type_t. */ + ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. If the peer_addr is resolved: + @ref ble_gap_addr_t::addr_id_peer is set to 1 and the address is the + peer's identity address. */ + ble_gap_addr_t direct_addr; /**< Contains the target address of the advertising event if + @ref ble_gap_adv_report_type_t::directed is set to 1. If the + SoftDevice was able to resolve the address, + @ref ble_gap_addr_t::addr_id_peer is set to 1 and the direct_addr + contains the local identity address. If the target address of the + advertising event is @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE, + and the SoftDevice was unable to resolve it, the application may try + to resolve this address to find out if the advertising event was + directed to us. */ + uint8_t primary_phy; /**< Indicates the PHY on which the primary advertising packet was received on. + See @ref BLE_GAP_PHYS. */ + uint8_t secondary_phy; /**< Indicates the PHY on which the secondary advertising packet was received on. + See @ref BLE_GAP_PHYS. This field is to 0 if no packets where received on + a secondary advertising channel. */ + int8_t tx_power; /**< TX Power reported by the advertiser in the last packet header received. + This field is set to @ref BLE_GAP_POWER_LEVEL_INVALID if the + last received packet did not contain the Tx Power field. + @note TX Power is only included in extended advertising packets. */ + int8_t rssi; /**< Received Signal Strength Indication in dBm of the last packet received. */ + uint8_t ch_index; /**< Channel Index on which the last advertising packet is received (0-39). */ + uint8_t set_id; /**< Set ID of the received advertising data. Set ID is not present + if set to @ref BLE_GAP_ADV_REPORT_SET_ID_NOT_AVAILABLE. */ + uint16_t data_id:12; /**< The advertising data ID of the received advertising data. Data ID + is not present if @ref ble_gap_evt_adv_report_t::set_id is set to + @ref BLE_GAP_ADV_REPORT_SET_ID_NOT_AVAILABLE. */ + ble_data_t data; /**< Received advertising or scan response data. If + @ref ble_gap_adv_report_type_t::status is not set to + @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, the data buffer provided + in @ref sd_ble_gap_scan_start is now released. */ + ble_gap_aux_pointer_t aux_pointer; /**< The offset and PHY of the next advertising packet in this extended advertising + event. @note This field is only set if @ref ble_gap_adv_report_type_t::status + is set to @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA. */ +} ble_gap_evt_adv_report_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_SEC_REQUEST. */ +typedef struct +{ + uint8_t bond : 1; /**< Perform bonding. */ + uint8_t mitm : 1; /**< Man In The Middle protection requested. */ + uint8_t lesc : 1; /**< LE Secure Connections requested. */ + uint8_t keypress : 1; /**< Generation of keypress notifications requested. */ +} ble_gap_evt_sec_request_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST. */ +typedef struct +{ + ble_gap_conn_params_t conn_params; /**< GAP Connection Parameters. */ +} ble_gap_evt_conn_param_update_request_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_SCAN_REQ_REPORT. */ +typedef struct +{ + uint8_t adv_handle; /**< Advertising handle for the advertising set which received the Scan Request */ + int8_t rssi; /**< Received Signal Strength Indication in dBm. */ + ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1 + and the address is the device's identity address. */ +} ble_gap_evt_scan_req_report_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST. */ +typedef struct +{ + ble_gap_data_length_params_t peer_params; /**< Peer data length parameters. */ +} ble_gap_evt_data_length_update_request_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE. */ +typedef struct +{ + ble_gap_data_length_params_t effective_params; /**< The effective data length parameters. */ +} ble_gap_evt_data_length_update_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT. */ +typedef struct +{ + int8_t channel_energy[BLE_GAP_CHANNEL_COUNT]; /**< The measured energy on the Bluetooth Low Energy + channels, in dBm, indexed by Channel Index. + If no measurement is available for the given channel, channel_energy is set to + @ref BLE_GAP_POWER_LEVEL_INVALID. */ +} ble_gap_evt_qos_channel_survey_report_t; + +/**@brief GAP event structure. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which event occurred. */ + union /**< union alternative identified by evt_id in enclosing struct. */ + { + ble_gap_evt_connected_t connected; /**< Connected Event Parameters. */ + ble_gap_evt_disconnected_t disconnected; /**< Disconnected Event Parameters. */ + ble_gap_evt_conn_param_update_t conn_param_update; /**< Connection Parameter Update Parameters. */ + ble_gap_evt_sec_params_request_t sec_params_request; /**< Security Parameters Request Event Parameters. */ + ble_gap_evt_sec_info_request_t sec_info_request; /**< Security Information Request Event Parameters. */ + ble_gap_evt_passkey_display_t passkey_display; /**< Passkey Display Event Parameters. */ + ble_gap_evt_key_pressed_t key_pressed; /**< Key Pressed Event Parameters. */ + ble_gap_evt_auth_key_request_t auth_key_request; /**< Authentication Key Request Event Parameters. */ + ble_gap_evt_lesc_dhkey_request_t lesc_dhkey_request; /**< LE Secure Connections DHKey calculation request. */ + ble_gap_evt_auth_status_t auth_status; /**< Authentication Status Event Parameters. */ + ble_gap_evt_conn_sec_update_t conn_sec_update; /**< Connection Security Update Event Parameters. */ + ble_gap_evt_timeout_t timeout; /**< Timeout Event Parameters. */ + ble_gap_evt_rssi_changed_t rssi_changed; /**< RSSI Event Parameters. */ + ble_gap_evt_adv_report_t adv_report; /**< Advertising Report Event Parameters. */ + ble_gap_evt_adv_set_terminated_t adv_set_terminated; /**< Advertising Set Terminated Event Parameters. */ + ble_gap_evt_sec_request_t sec_request; /**< Security Request Event Parameters. */ + ble_gap_evt_conn_param_update_request_t conn_param_update_request; /**< Connection Parameter Update Parameters. */ + ble_gap_evt_scan_req_report_t scan_req_report; /**< Scan Request Report Parameters. */ + ble_gap_evt_phy_update_request_t phy_update_request; /**< PHY Update Request Event Parameters. */ + ble_gap_evt_phy_update_t phy_update; /**< PHY Update Parameters. */ + ble_gap_evt_data_length_update_request_t data_length_update_request; /**< Data Length Update Request Event Parameters. */ + ble_gap_evt_data_length_update_t data_length_update; /**< Data Length Update Event Parameters. */ + ble_gap_evt_qos_channel_survey_report_t qos_channel_survey_report; /**< Quality of Service (QoS) Channel Survey Report Parameters. */ + } params; /**< Event Parameters. */ +} ble_gap_evt_t; + + +/** + * @brief BLE GAP connection configuration parameters, set with @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_CONN_COUNT The connection count for the connection configurations is zero. + * @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true: + * - The sum of conn_count for all connection configurations combined exceeds UINT8_MAX. + * - The event length is smaller than @ref BLE_GAP_EVENT_LENGTH_MIN. + */ +typedef struct +{ + uint8_t conn_count; /**< The number of concurrent connections the application can create with this configuration. + The default and minimum value is @ref BLE_GAP_CONN_COUNT_DEFAULT. */ + uint16_t event_length; /**< The time set aside for this connection on every connection interval in 1.25 ms units. + The default value is @ref BLE_GAP_EVENT_LENGTH_DEFAULT, the minimum value is @ref BLE_GAP_EVENT_LENGTH_MIN. + The event length and the connection interval are the primary parameters + for setting the throughput of a connection. + See the SoftDevice Specification for details on throughput. */ +} ble_gap_conn_cfg_t; + + +/** + * @brief Configuration of maximum concurrent connections in the different connected roles, set with + * @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_CONN_COUNT The sum of periph_role_count and central_role_count is too + * large. The maximum supported sum of concurrent connections is + * @ref BLE_GAP_ROLE_COUNT_COMBINED_MAX. + * @retval ::NRF_ERROR_INVALID_PARAM central_sec_count is larger than central_role_count. + * @retval ::NRF_ERROR_RESOURCES The adv_set_count is too large. The maximum + * supported advertising handles is + * @ref BLE_GAP_ADV_SET_COUNT_MAX. + */ +typedef struct +{ + uint8_t adv_set_count; /**< Maximum number of advertising sets. Default value is @ref BLE_GAP_ADV_SET_COUNT_DEFAULT. */ + uint8_t periph_role_count; /**< Maximum number of connections concurrently acting as a peripheral. Default value is @ref BLE_GAP_ROLE_COUNT_PERIPH_DEFAULT. */ + uint8_t central_role_count; /**< Maximum number of connections concurrently acting as a central. Default value is @ref BLE_GAP_ROLE_COUNT_CENTRAL_DEFAULT. */ + uint8_t central_sec_count; /**< Number of SMP instances shared between all connections acting as a central. Default value is @ref BLE_GAP_ROLE_COUNT_CENTRAL_SEC_DEFAULT. */ + uint8_t qos_channel_survey_role_available:1; /**< If set, the Quality of Service (QoS) channel survey module is available to the + application using @ref sd_ble_gap_qos_channel_survey_start. */ +} ble_gap_cfg_role_count_t; + + +/** + * @brief Device name and its properties, set with @ref sd_ble_cfg_set. + * + * @note If the device name is not configured, the default device name will be + * @ref BLE_GAP_DEVNAME_DEFAULT, the maximum device name length will be + * @ref BLE_GAP_DEVNAME_DEFAULT_LEN, vloc will be set to @ref BLE_GATTS_VLOC_STACK and the device name + * will have no write access. + * + * @note If @ref max_len is more than @ref BLE_GAP_DEVNAME_DEFAULT_LEN and vloc is set to @ref BLE_GATTS_VLOC_STACK, + * the attribute table size must be increased to have room for the longer device name (see + * @ref sd_ble_cfg_set and @ref ble_gatts_cfg_attr_tab_size_t). + * + * @note If vloc is @ref BLE_GATTS_VLOC_STACK : + * - p_value must point to non-volatile memory (flash) or be NULL. + * - If p_value is NULL, the device name will initially be empty. + * + * @note If vloc is @ref BLE_GATTS_VLOC_USER : + * - p_value cannot be NULL. + * - If the device name is writable, p_value must point to volatile memory (RAM). + * + * @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true: + * - Invalid device name location (vloc). + * - Invalid device name security mode. + * @retval ::NRF_ERROR_INVALID_LENGTH One or more of the following is true: + * - The device name length is invalid (must be between 0 and @ref BLE_GAP_DEVNAME_MAX_LEN). + * - The device name length is too long for the given Attribute Table. + * @retval ::NRF_ERROR_NOT_SUPPORTED Device name security mode is not supported. + */ +typedef struct +{ + ble_gap_conn_sec_mode_t write_perm; /**< Write permissions. */ + uint8_t vloc:2; /**< Value location, see @ref BLE_GATTS_VLOCS.*/ + uint8_t *p_value; /**< Pointer to where the value (device name) is stored or will be stored. */ + uint16_t current_len; /**< Current length in bytes of the memory pointed to by p_value.*/ + uint16_t max_len; /**< Maximum length in bytes of the memory pointed to by p_value.*/ +} ble_gap_cfg_device_name_t; + + +/**@brief Configuration structure for GAP configurations. */ +typedef union +{ + ble_gap_cfg_role_count_t role_count_cfg; /**< Role count configuration, cfg_id is @ref BLE_GAP_CFG_ROLE_COUNT. */ + ble_gap_cfg_device_name_t device_name_cfg; /**< Device name configuration, cfg_id is @ref BLE_GAP_CFG_DEVICE_NAME. */ +} ble_gap_cfg_t; + + +/**@brief Channel Map option. + * + * @details Used with @ref sd_ble_opt_get to get the current channel map + * or @ref sd_ble_opt_set to set a new channel map. When setting the + * channel map, it applies to all current and future connections. When getting the + * current channel map, it applies to a single connection and the connection handle + * must be supplied. + * + * @note Setting the channel map may take some time, depending on connection parameters. + * The time taken may be different for each connection and the get operation will + * return the previous channel map until the new one has taken effect. + * + * @note After setting the channel map, by spec it can not be set again until at least 1 s has passed. + * See Bluetooth Specification Version 4.1 Volume 2, Part E, Section 7.3.46. + * + * @retval ::NRF_SUCCESS Get or set successful. + * @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true: + * - Less then two bits in @ref ch_map are set. + * - Bits for primary advertising channels (37-39) are set. + * @retval ::NRF_ERROR_BUSY Channel map was set again before enough time had passed. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied for get. + * + */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle (only applicable for get) */ + uint8_t ch_map[5]; /**< Channel Map (37-bit). */ +} ble_gap_opt_ch_map_t; + + +/**@brief Local connection latency option. + * + * @details Local connection latency is a feature which enables the slave to improve + * current consumption by ignoring the slave latency set by the peer. The + * local connection latency can only be set to a multiple of the slave latency, + * and cannot be longer than half of the supervision timeout. + * + * @details Used with @ref sd_ble_opt_set to set the local connection latency. The + * @ref sd_ble_opt_get is not supported for this option, but the actual + * local connection latency (unless set to NULL) is set as a return parameter + * when setting the option. + * + * @note The latency set will be truncated down to the closest slave latency event + * multiple, or the nearest multiple before half of the supervision timeout. + * + * @note The local connection latency is disabled by default, and needs to be enabled for new + * connections and whenever the connection is updated. + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_NOT_SUPPORTED Get is not supported. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter. + */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle */ + uint16_t requested_latency; /**< Requested local connection latency. */ + uint16_t * p_actual_latency; /**< Pointer to storage for the actual local connection latency (can be set to NULL to skip return value). */ +} ble_gap_opt_local_conn_latency_t; + +/**@brief Disable slave latency + * + * @details Used with @ref sd_ble_opt_set to temporarily disable slave latency of a peripheral connection + * (see @ref ble_gap_conn_params_t::slave_latency). And to re-enable it again. When disabled, the + * peripheral will ignore the slave_latency set by the central. + * + * @note Shall only be called on peripheral links. + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_NOT_SUPPORTED Get is not supported. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter. + */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle */ + uint8_t disable : 1; /**< Set to 1 to disable slave latency. Set to 0 enable it again.*/ +} ble_gap_opt_slave_latency_disable_t; + +/**@brief Passkey Option. + * + * @details Structure containing the passkey to be used during pairing. This can be used with @ref + * sd_ble_opt_set to make the SoftDevice use a preprogrammed passkey for authentication + * instead of generating a random one. + * + * @note Repeated pairing attempts using the same preprogrammed passkey makes pairing vulnerable to MITM attacks. + * + * @note @ref sd_ble_opt_get is not supported for this option. + * + */ +typedef struct +{ + uint8_t const * p_passkey; /**< Pointer to 6-digit ASCII string (digit 0..9 only, no NULL termination) passkey to be used during pairing. If this is NULL, the SoftDevice will generate a random passkey if required.*/ +} ble_gap_opt_passkey_t; + + +/**@brief Compatibility mode 1 option. + * + * @details This can be used with @ref sd_ble_opt_set to enable and disable + * compatibility mode 1. Compatibility mode 1 is disabled by default. + * + * @note Compatibility mode 1 enables interoperability with devices that do not support a value of + * 0 for the WinOffset parameter in the Link Layer CONNECT_IND packet. This applies to a + * limited set of legacy peripheral devices from another vendor. Enabling this compatibility + * mode will only have an effect if the local device will act as a central device and + * initiate a connection to a peripheral device. In that case it may lead to the connection + * creation taking up to one connection interval longer to complete for all connections. + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_INVALID_STATE When connection creation is ongoing while mode 1 is set. + */ +typedef struct +{ + uint8_t enable : 1; /**< Enable compatibility mode 1.*/ +} ble_gap_opt_compat_mode_1_t; + + +/**@brief Authenticated payload timeout option. + * + * @details This can be used with @ref sd_ble_opt_set to change the Authenticated payload timeout to a value other + * than the default of @ref BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MAX. + * + * @note The authenticated payload timeout event ::BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD will be generated + * if auth_payload_timeout time has elapsed without receiving a packet with a valid MIC on an encrypted + * link. + * + * @note The LE ping procedure will be initiated before the timer expires to give the peer a chance + * to reset the timer. In addition the stack will try to prioritize running of LE ping over other + * activities to increase chances of finishing LE ping before timer expires. To avoid side-effects + * on other activities, it is recommended to use high timeout values. + * Recommended timeout > 2*(connInterval * (6 + connSlaveLatency)). + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. auth_payload_timeout was outside of allowed range. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter. + */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle */ + uint16_t auth_payload_timeout; /**< Requested timeout in 10 ms unit, see @ref BLE_GAP_AUTH_PAYLOAD_TIMEOUT. */ +} ble_gap_opt_auth_payload_timeout_t; + +/**@brief Option structure for GAP options. */ +typedef union +{ + ble_gap_opt_ch_map_t ch_map; /**< Parameters for the Channel Map option. */ + ble_gap_opt_local_conn_latency_t local_conn_latency; /**< Parameters for the Local connection latency option */ + ble_gap_opt_passkey_t passkey; /**< Parameters for the Passkey option.*/ + ble_gap_opt_compat_mode_1_t compat_mode_1; /**< Parameters for the compatibility mode 1 option.*/ + ble_gap_opt_auth_payload_timeout_t auth_payload_timeout; /**< Parameters for the authenticated payload timeout option.*/ + ble_gap_opt_slave_latency_disable_t slave_latency_disable; /**< Parameters for the Disable slave latency option */ +} ble_gap_opt_t; +/**@} */ + + +/**@addtogroup BLE_GAP_FUNCTIONS Functions + * @{ */ + +/**@brief Set the local Bluetooth identity address. + * + * The local Bluetooth identity address is the address that identifies this device to other peers. + * The address type must be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC. + * + * @note The identity address cannot be changed while advertising, scanning or creating a connection. + * + * @note This address will be distributed to the peer during bonding. + * If the address changes, the address stored in the peer device will not be valid and the ability to + * reconnect using the old address will be lost. + * + * @note By default the SoftDevice will set an address of type @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC upon being + * enabled. The address is a random number populated during the IC manufacturing process and remains unchanged + * for the lifetime of each IC. + * + * @mscs + * @mmsc{@ref BLE_GAP_ADV_MSC} + * @endmscs + * + * @param[in] p_addr Pointer to address structure. + * + * @retval ::NRF_SUCCESS Address successfully set. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::NRF_ERROR_INVALID_STATE The identity address cannot be changed while advertising, + * scanning or creating a connection. + */ +SVCALL(SD_BLE_GAP_ADDR_SET, uint32_t, sd_ble_gap_addr_set(ble_gap_addr_t const *p_addr)); + + +/**@brief Get local Bluetooth identity address. + * + * @note This will always return the identity address irrespective of the privacy settings, + * i.e. the address type will always be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC. + * + * @param[out] p_addr Pointer to address structure to be filled in. + * + * @retval ::NRF_SUCCESS Address successfully retrieved. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or NULL pointer supplied. + */ +SVCALL(SD_BLE_GAP_ADDR_GET, uint32_t, sd_ble_gap_addr_get(ble_gap_addr_t *p_addr)); + + +/**@brief Set the active whitelist in the SoftDevice. + * + * @note Only one whitelist can be used at a time and the whitelist is shared between the BLE roles. + * The whitelist cannot be set if a BLE role is using the whitelist. + * + * @note If an address is resolved using the information in the device identity list, then the whitelist + * filter policy applies to the peer identity address and not the resolvable address sent on air. + * + * @mscs + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC} + * @endmscs + * + * @param[in] pp_wl_addrs Pointer to a whitelist of peer addresses, if NULL the whitelist will be cleared. + * @param[in] len Length of the whitelist, maximum @ref BLE_GAP_WHITELIST_ADDR_MAX_COUNT. + * + * @retval ::NRF_SUCCESS The whitelist is successfully set/cleared. + * @retval ::NRF_ERROR_INVALID_ADDR The whitelist (or one of its entries) provided is invalid. + * @retval ::BLE_ERROR_GAP_WHITELIST_IN_USE The whitelist is in use by a BLE role and cannot be set or cleared. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied. + * @retval ::NRF_ERROR_DATA_SIZE The given whitelist size is invalid (zero or too large); this can only return when + * pp_wl_addrs is not NULL. + */ +SVCALL(SD_BLE_GAP_WHITELIST_SET, uint32_t, sd_ble_gap_whitelist_set(ble_gap_addr_t const * const * pp_wl_addrs, uint8_t len)); + + +/**@brief Set device identity list. + * + * @note Only one device identity list can be used at a time and the list is shared between the BLE roles. + * The device identity list cannot be set if a BLE role is using the list. + * + * @param[in] pp_id_keys Pointer to an array of peer identity addresses and peer IRKs, if NULL the device identity list will be cleared. + * @param[in] pp_local_irks Pointer to an array of local IRKs. Each entry in the array maps to the entry in pp_id_keys at the same index. + * To fill in the list with the currently set device IRK for all peers, set to NULL. + * @param[in] len Length of the device identity list, maximum @ref BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT. + * + * @mscs + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS The device identity list successfully set/cleared. + * @retval ::NRF_ERROR_INVALID_ADDR The device identity list (or one of its entries) provided is invalid. + * This code may be returned if the local IRK list also has an invalid entry. + * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE The device identity list is in use and cannot be set or cleared. + * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE The device identity list contains multiple entries with the same identity address. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied. + * @retval ::NRF_ERROR_DATA_SIZE The given device identity list size invalid (zero or too large); this can + * only return when pp_id_keys is not NULL. + */ +SVCALL(SD_BLE_GAP_DEVICE_IDENTITIES_SET, uint32_t, sd_ble_gap_device_identities_set(ble_gap_id_key_t const * const * pp_id_keys, ble_gap_irk_t const * const * pp_local_irks, uint8_t len)); + + +/**@brief Set privacy settings. + * + * @note Privacy settings cannot be changed while advertising, scanning or creating a connection. + * + * @param[in] p_privacy_params Privacy settings. + * + * @mscs + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied. + * @retval ::NRF_ERROR_INVALID_ADDR The pointer to privacy settings is NULL or invalid. + * Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer. + * @retval ::NRF_ERROR_INVALID_PARAM Out of range parameters are provided. + * @retval ::NRF_ERROR_INVALID_STATE Privacy settings cannot be changed while advertising, scanning + * or creating a connection. + */ +SVCALL(SD_BLE_GAP_PRIVACY_SET, uint32_t, sd_ble_gap_privacy_set(ble_gap_privacy_params_t const *p_privacy_params)); + + +/**@brief Get privacy settings. + * + * @note ::ble_gap_privacy_params_t::p_device_irk must be initialized to NULL or a valid address before this function is called. + * If it is initialized to a valid address, the address pointed to will contain the current device IRK on return. + * + * @param[in,out] p_privacy_params Privacy settings. + * + * @retval ::NRF_SUCCESS Privacy settings read. + * @retval ::NRF_ERROR_INVALID_ADDR The pointer given for returning the privacy settings may be NULL or invalid. + * Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer. + */ +SVCALL(SD_BLE_GAP_PRIVACY_GET, uint32_t, sd_ble_gap_privacy_get(ble_gap_privacy_params_t *p_privacy_params)); + + +/**@brief Configure an advertising set. Set, clear or update advertising and scan response data. + * + * @note The format of the advertising data will be checked by this call to ensure interoperability. + * Limitations imposed by this API call to the data provided include having a flags data type in the scan response data and + * duplicating the local name in the advertising data and scan response data. + * + * @note In order to update advertising data while advertising, new advertising buffers must be provided. + * + * @mscs + * @mmsc{@ref BLE_GAP_ADV_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @param[in,out] p_adv_handle Provide a pointer to a handle containing @ref BLE_GAP_ADV_SET_HANDLE_NOT_SET to configure + * a new advertising set. On success, a new handle is then returned through the pointer. + * Provide a pointer to an existing advertising handle to configure an existing advertising set. + * @param[in] p_adv_data Advertising data. If set to NULL, no advertising data will be used. See @ref ble_gap_adv_data_t. + * @param[in] p_adv_params Advertising parameters. When this function is used to update advertising data while advertising, + * this parameter must be NULL. See @ref ble_gap_adv_params_t. + * + * @retval ::NRF_SUCCESS Advertising set successfully configured. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied: + * - Invalid advertising data configuration specified. See @ref ble_gap_adv_data_t. + * - Invalid configuration of p_adv_params. See @ref ble_gap_adv_params_t. + * - Use of whitelist requested but whitelist has not been set, + * see @ref sd_ble_gap_whitelist_set. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR ble_gap_adv_params_t::p_peer_addr is invalid. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * - It is invalid to provide non-NULL advertising set parameters while advertising. + * - It is invalid to provide the same data buffers while advertising. To update + * advertising data, provide new advertising buffers. + * @retval ::BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST Discoverable mode and whitelist incompatible. + * @retval ::BLE_ERROR_INVALID_ADV_HANDLE The provided advertising handle was not found. Use @ref BLE_GAP_ADV_SET_HANDLE_NOT_SET to + * configure a new advertising handle. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_FLAGS Invalid combination of advertising flags supplied. + * @retval ::NRF_ERROR_INVALID_DATA Invalid data type(s) supplied. Check the advertising data format specification + * given in Bluetooth Specification Version 5.0, Volume 3, Part C, Chapter 11. + * @retval ::NRF_ERROR_INVALID_LENGTH Invalid data length(s) supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported data length or advertising parameter configuration. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to configure a new advertising handle. Update an + * existing advertising handle instead. + * @retval ::BLE_ERROR_GAP_UUID_LIST_MISMATCH Invalid UUID list supplied. + */ +SVCALL(SD_BLE_GAP_ADV_SET_CONFIGURE, uint32_t, sd_ble_gap_adv_set_configure(uint8_t *p_adv_handle, ble_gap_adv_data_t const *p_adv_data, ble_gap_adv_params_t const *p_adv_params)); + + +/**@brief Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure). + * + * @note Only one advertiser may be active at any time. + * + * @events + * @event{@ref BLE_GAP_EVT_CONNECTED, Generated after connection has been established through connectable advertising.} + * @event{@ref BLE_GAP_EVT_ADV_SET_TERMINATED, Advertising set has terminated.} + * @event{@ref BLE_GAP_EVT_SCAN_REQ_REPORT, A scan request was received.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_ADV_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @param[in] adv_handle Advertising handle to advertise on, received from @ref sd_ble_gap_adv_set_configure. + * @param[in] conn_cfg_tag Tag identifying a configuration set by @ref sd_ble_cfg_set or + * @ref BLE_CONN_CFG_TAG_DEFAULT to use the default connection configuration. For non-connectable + * advertising, this is ignored. + * + * @retval ::NRF_SUCCESS The BLE stack has started advertising. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. adv_handle is not configured or already advertising. + * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached; connectable advertiser cannot be started. + * @retval ::BLE_ERROR_INVALID_ADV_HANDLE Advertising handle not found. Configure a new adveriting handle with @ref sd_ble_gap_adv_set_configure. + * @retval ::NRF_ERROR_NOT_FOUND conn_cfg_tag not found. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied: + * - Invalid configuration of p_adv_params. See @ref ble_gap_adv_params_t. + * - Use of whitelist requested but whitelist has not been set, see @ref sd_ble_gap_whitelist_set. + * @retval ::NRF_ERROR_RESOURCES Either: + * - adv_handle is configured with connectable advertising, but the event_length parameter + * associated with conn_cfg_tag is too small to be able to establish a connection on + * the selected advertising phys. Use @ref sd_ble_cfg_set to increase the event length. + * - Not enough BLE role slots available. + Stop one or more currently active roles (Central, Peripheral, Broadcaster or Observer) and try again. + * - p_adv_params is configured with connectable advertising, but the event_length parameter + * associated with conn_cfg_tag is too small to be able to establish a connection on + * the selected advertising phys. Use @ref sd_ble_cfg_set to increase the event length. + * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported PHYs supplied to the call. + */ +SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start(uint8_t adv_handle, uint8_t conn_cfg_tag)); + + +/**@brief Stop advertising (GAP Discoverable, Connectable modes, Broadcast Procedure). + * + * @mscs + * @mmsc{@ref BLE_GAP_ADV_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @param[in] adv_handle The advertising handle that should stop advertising. + * + * @retval ::NRF_SUCCESS The BLE stack has stopped advertising. + * @retval ::BLE_ERROR_INVALID_ADV_HANDLE Invalid advertising handle. + * @retval ::NRF_ERROR_INVALID_STATE The advertising handle is not advertising. + */ +SVCALL(SD_BLE_GAP_ADV_STOP, uint32_t, sd_ble_gap_adv_stop(uint8_t adv_handle)); + + + +/**@brief Update connection parameters. + * + * @details In the central role this will initiate a Link Layer connection parameter update procedure, + * otherwise in the peripheral role, this will send the corresponding L2CAP request and wait for + * the central to perform the procedure. In both cases, and regardless of success or failure, the application + * will be informed of the result with a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE event. + * + * @details This function can be used as a central both to reply to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST or to start the procedure unrequested. + * + * @events + * @event{@ref BLE_GAP_EVT_CONN_PARAM_UPDATE, Result of the connection parameter update procedure.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CPU_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC} + * @mmsc{@ref BLE_GAP_MULTILINK_CPU_MSC} + * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_CPU_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_conn_params Pointer to desired connection parameters. If NULL is provided on a peripheral role, + * the parameters in the PPCP characteristic of the GAP service will be used instead. + * If NULL is provided on a central role and in response to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST, the peripheral request will be rejected + * + * @retval ::NRF_SUCCESS The Connection Update procedure has been started successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_BUSY Procedure already in progress, wait for pending procedures to complete and retry. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + */ +SVCALL(SD_BLE_GAP_CONN_PARAM_UPDATE, uint32_t, sd_ble_gap_conn_param_update(uint16_t conn_handle, ble_gap_conn_params_t const *p_conn_params)); + + +/**@brief Disconnect (GAP Link Termination). + * + * @details This call initiates the disconnection procedure, and its completion will be communicated to the application + * with a @ref BLE_GAP_EVT_DISCONNECTED event. + * + * @events + * @event{@ref BLE_GAP_EVT_DISCONNECTED, Generated when disconnection procedure is complete.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CONN_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] hci_status_code HCI status code, see @ref BLE_HCI_STATUS_CODES (accepted values are @ref BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION and @ref BLE_HCI_CONN_INTERVAL_UNACCEPTABLE). + * + * @retval ::NRF_SUCCESS The disconnection procedure has been started successfully. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (disconnection is already in progress). + */ +SVCALL(SD_BLE_GAP_DISCONNECT, uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code)); + + +/**@brief Set the radio's transmit power. + * + * @param[in] role The role to set the transmit power for, see @ref BLE_GAP_TX_POWER_ROLES for + * possible roles. + * @param[in] handle The handle parameter is interpreted depending on role: + * - If role is @ref BLE_GAP_TX_POWER_ROLE_CONN, this value is the specific connection handle. + * - If role is @ref BLE_GAP_TX_POWER_ROLE_ADV, the advertising set identified with the advertising handle, + * will use the specified transmit power, and include it in the advertising packet headers if + * @ref ble_gap_adv_properties_t::include_tx_power set. + * - For all other roles handle is ignored. + * @param[in] tx_power Radio transmit power in dBm (see note for accepted values). + * + * @note Supported tx_power values: -40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +3dBm and +4dBm. + * @note The initiator will have the same transmit power as the scanner. + * @note When a connection is created it will inherit the transmit power from the initiator or + * advertiser leading to the connection. + * + * @retval ::NRF_SUCCESS Successfully changed the transmit power. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::BLE_ERROR_INVALID_ADV_HANDLE Advertising handle not found. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(uint8_t role, uint16_t handle, int8_t tx_power)); + + +/**@brief Set GAP Appearance value. + * + * @param[in] appearance Appearance (16-bit), see @ref BLE_APPEARANCES. + * + * @retval ::NRF_SUCCESS Appearance value set successfully. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + */ +SVCALL(SD_BLE_GAP_APPEARANCE_SET, uint32_t, sd_ble_gap_appearance_set(uint16_t appearance)); + + +/**@brief Get GAP Appearance value. + * + * @param[out] p_appearance Pointer to appearance (16-bit) to be filled in, see @ref BLE_APPEARANCES. + * + * @retval ::NRF_SUCCESS Appearance value retrieved successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + */ +SVCALL(SD_BLE_GAP_APPEARANCE_GET, uint32_t, sd_ble_gap_appearance_get(uint16_t *p_appearance)); + + +/**@brief Set GAP Peripheral Preferred Connection Parameters. + * + * @param[in] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure with the desired parameters. + * + * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters set successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + */ +SVCALL(SD_BLE_GAP_PPCP_SET, uint32_t, sd_ble_gap_ppcp_set(ble_gap_conn_params_t const *p_conn_params)); + + +/**@brief Get GAP Peripheral Preferred Connection Parameters. + * + * @param[out] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure where the parameters will be stored. + * + * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters retrieved successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + */ +SVCALL(SD_BLE_GAP_PPCP_GET, uint32_t, sd_ble_gap_ppcp_get(ble_gap_conn_params_t *p_conn_params)); + + +/**@brief Set GAP device name. + * + * @note If the device name is located in application flash memory (see @ref ble_gap_cfg_device_name_t), + * it cannot be changed. Then @ref NRF_ERROR_FORBIDDEN will be returned. + * + * @param[in] p_write_perm Write permissions for the Device Name characteristic, see @ref ble_gap_conn_sec_mode_t. + * @param[in] p_dev_name Pointer to a UTF-8 encoded, non NULL-terminated string. + * @param[in] len Length of the UTF-8, non NULL-terminated string pointed to by p_dev_name in octets (must be smaller or equal than @ref BLE_GAP_DEVNAME_MAX_LEN). + * + * @retval ::NRF_SUCCESS GAP device name and permissions set successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied. + * @retval ::NRF_ERROR_FORBIDDEN Device name is not writable. + */ +SVCALL(SD_BLE_GAP_DEVICE_NAME_SET, uint32_t, sd_ble_gap_device_name_set(ble_gap_conn_sec_mode_t const *p_write_perm, uint8_t const *p_dev_name, uint16_t len)); + + +/**@brief Get GAP device name. + * + * @note If the device name is longer than the size of the supplied buffer, + * p_len will return the complete device name length, + * and not the number of bytes actually returned in p_dev_name. + * The application may use this information to allocate a suitable buffer size. + * + * @param[out] p_dev_name Pointer to an empty buffer where the UTF-8 non NULL-terminated string will be placed. Set to NULL to obtain the complete device name length. + * @param[in,out] p_len Length of the buffer pointed by p_dev_name, complete device name length on output. + * + * @retval ::NRF_SUCCESS GAP device name retrieved successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied. + */ +SVCALL(SD_BLE_GAP_DEVICE_NAME_GET, uint32_t, sd_ble_gap_device_name_get(uint8_t *p_dev_name, uint16_t *p_len)); + + +/**@brief Initiate the GAP Authentication procedure. + * + * @details In the central role, this function will send an SMP Pairing Request (or an SMP Pairing Failed if rejected), + * otherwise in the peripheral role, an SMP Security Request will be sent. + * + * @events + * @event{Depending on the security parameters set and the packet exchanges with the peer\, the following events may be generated:} + * @event{@ref BLE_GAP_EVT_SEC_PARAMS_REQUEST} + * @event{@ref BLE_GAP_EVT_SEC_INFO_REQUEST} + * @event{@ref BLE_GAP_EVT_PASSKEY_DISPLAY} + * @event{@ref BLE_GAP_EVT_KEY_PRESSED} + * @event{@ref BLE_GAP_EVT_AUTH_KEY_REQUEST} + * @event{@ref BLE_GAP_EVT_LESC_DHKEY_REQUEST} + * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE} + * @event{@ref BLE_GAP_EVT_AUTH_STATUS} + * @event{@ref BLE_GAP_EVT_TIMEOUT} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_SEC_REQ_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_sec_params Pointer to the @ref ble_gap_sec_params_t structure with the security parameters to be used during the pairing or bonding procedure. + * In the peripheral role, only the bond, mitm, lesc and keypress fields of this structure are used. + * In the central role, this pointer may be NULL to reject a Security Request. + * + * @retval ::NRF_SUCCESS Successfully initiated authentication procedure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_NO_MEM The maximum number of authentication procedures that can run in parallel for the given role is reached. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported. + * @retval ::NRF_ERROR_TIMEOUT A SMP timeout has occurred, and further SMP operations on this link is prohibited. + */ +SVCALL(SD_BLE_GAP_AUTHENTICATE, uint32_t, sd_ble_gap_authenticate(uint16_t conn_handle, ble_gap_sec_params_t const *p_sec_params)); + + +/**@brief Reply with GAP security parameters. + * + * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE. + * @note If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters. + * + * @events + * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_JW_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_PERIPH_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_CONFIRM_FAIL_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_KS_TOO_SMALL_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_APP_ERROR_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_REMOTE_PAIRING_FAIL_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_TIMEOUT_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] sec_status Security status, see @ref BLE_GAP_SEC_STATUS. + * @param[in] p_sec_params Pointer to a @ref ble_gap_sec_params_t security parameters structure. In the central role this must be set to NULL, as the parameters have + * already been provided during a previous call to @ref sd_ble_gap_authenticate. + * @param[in,out] p_sec_keyset Pointer to a @ref ble_gap_sec_keyset_t security keyset structure. Any keys generated and/or distributed as a result of the ongoing security procedure + * will be stored into the memory referenced by the pointers inside this structure. The keys will be stored and available to the application + * upon reception of a @ref BLE_GAP_EVT_AUTH_STATUS event. + * Note that the SoftDevice expects the application to provide memory for storing the + * peer's keys. So it must be ensured that the relevant pointers inside this structure are not NULL. The pointers to the local key + * can, however, be NULL, in which case, the local key data will not be available to the application upon reception of the + * @ref BLE_GAP_EVT_AUTH_STATUS event. + * + * @retval ::NRF_SUCCESS Successfully accepted security parameter from the application. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported. + */ +SVCALL(SD_BLE_GAP_SEC_PARAMS_REPLY, uint32_t, sd_ble_gap_sec_params_reply(uint16_t conn_handle, uint8_t sec_status, ble_gap_sec_params_t const *p_sec_params, ble_gap_sec_keyset_t const *p_sec_keyset)); + + +/**@brief Reply with an authentication key. + * + * @details This function is only used to reply to a @ref BLE_GAP_EVT_AUTH_KEY_REQUEST or a @ref BLE_GAP_EVT_PASSKEY_DISPLAY, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE. + * @note If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters. + * + * @events + * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] key_type See @ref BLE_GAP_AUTH_KEY_TYPES. + * @param[in] p_key If key type is @ref BLE_GAP_AUTH_KEY_TYPE_NONE, then NULL. + * If key type is @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY, then a 6-byte ASCII string (digit 0..9 only, no NULL termination) + * or NULL when confirming LE Secure Connections Numeric Comparison. + * If key type is @ref BLE_GAP_AUTH_KEY_TYPE_OOB, then a 16-byte OOB key value in little-endian format. + * + * @retval ::NRF_SUCCESS Authentication key successfully set. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_AUTH_KEY_REPLY, uint32_t, sd_ble_gap_auth_key_reply(uint16_t conn_handle, uint8_t key_type, uint8_t const *p_key)); + + +/**@brief Reply with an LE Secure connections DHKey. + * + * @details This function is only used to reply to a @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE. + * @note If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters. + * + * @events + * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_dhkey LE Secure Connections DHKey. + * + * @retval ::NRF_SUCCESS DHKey successfully set. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_LESC_DHKEY_REPLY, uint32_t, sd_ble_gap_lesc_dhkey_reply(uint16_t conn_handle, ble_gap_lesc_dhkey_t const *p_dhkey)); + + +/**@brief Notify the peer of a local keypress. + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] kp_not See @ref BLE_GAP_KP_NOT_TYPES. + * + * @retval ::NRF_SUCCESS Keypress notification successfully queued for transmission. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Either not entering a passkey or keypresses have not been enabled by both peers. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_BUSY The BLE stack is busy. Retry at later time. + */ +SVCALL(SD_BLE_GAP_KEYPRESS_NOTIFY, uint32_t, sd_ble_gap_keypress_notify(uint16_t conn_handle, uint8_t kp_not)); + + +/**@brief Generate a set of OOB data to send to a peer out of band. + * + * @note The @ref ble_gap_addr_t included in the OOB data returned will be the currently active one (or, if a connection has already been established, + * the one used during connection setup). The application may manually overwrite it with an updated value. + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. Can be @ref BLE_CONN_HANDLE_INVALID if a BLE connection has not been established yet. + * @param[in] p_pk_own LE Secure Connections local P-256 Public Key. + * @param[out] p_oobd_own The OOB data to be sent out of band to a peer. + * + * @retval ::NRF_SUCCESS OOB data successfully generated. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_LESC_OOB_DATA_GET, uint32_t, sd_ble_gap_lesc_oob_data_get(uint16_t conn_handle, ble_gap_lesc_p256_pk_t const *p_pk_own, ble_gap_lesc_oob_data_t *p_oobd_own)); + +/**@brief Provide the OOB data sent/received out of band. + * + * @note An authentication procedure with OOB selected as an algorithm must be in progress when calling this function. + * @note A @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST event with the oobd_req set to 1 must have been received prior to calling this function. + * + * @events + * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_oobd_own The OOB data sent out of band to a peer or NULL if the peer has not received OOB data. + * Must correspond to @ref ble_gap_sec_params_t::oob flag in @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST. + * @param[in] p_oobd_peer The OOB data received out of band from a peer or NULL if none received. + * Must correspond to @ref ble_gap_sec_params_t::oob flag in @ref sd_ble_gap_authenticate in the central role + * or @ref sd_ble_gap_sec_params_reply in the peripheral role. + * + * @retval ::NRF_SUCCESS OOB data accepted. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_LESC_OOB_DATA_SET, uint32_t, sd_ble_gap_lesc_oob_data_set(uint16_t conn_handle, ble_gap_lesc_oob_data_t const *p_oobd_own, ble_gap_lesc_oob_data_t const *p_oobd_peer)); + + +/**@brief Initiate GAP Encryption procedure. + * + * @details In the central role, this function will initiate the encryption procedure using the encryption information provided. + * + * @events + * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE, The connection security has been updated.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_ENC_MSC} + * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_master_id Pointer to a @ref ble_gap_master_id_t master identification structure. + * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. + * + * @retval ::NRF_SUCCESS Successfully initiated authentication procedure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::BLE_ERROR_INVALID_ROLE Operation is not supported in the Peripheral role. + * @retval ::NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, wait for pending procedures to complete and retry. + */ +SVCALL(SD_BLE_GAP_ENCRYPT, uint32_t, sd_ble_gap_encrypt(uint16_t conn_handle, ble_gap_master_id_t const *p_master_id, ble_gap_enc_info_t const *p_enc_info)); + + +/**@brief Reply with GAP security information. + * + * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_INFO_REQUEST, calling it at other times will result in @ref NRF_ERROR_INVALID_STATE. + * @note If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters. + * @note Data signing is not yet supported, and p_sign_info must therefore be NULL. + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_ENC_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. May be NULL to signal none is available. + * @param[in] p_id_info Pointer to a @ref ble_gap_irk_t identity information structure. May be NULL to signal none is available. + * @param[in] p_sign_info Pointer to a @ref ble_gap_sign_info_t signing information structure. May be NULL to signal none is available. + * + * @retval ::NRF_SUCCESS Successfully accepted security information. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const *p_enc_info, ble_gap_irk_t const *p_id_info, ble_gap_sign_info_t const *p_sign_info)); + + +/**@brief Get the current connection security. + * + * @param[in] conn_handle Connection handle. + * @param[out] p_conn_sec Pointer to a @ref ble_gap_conn_sec_t structure to be filled in. + * + * @retval ::NRF_SUCCESS Current connection security successfully retrieved. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_CONN_SEC_GET, uint32_t, sd_ble_gap_conn_sec_get(uint16_t conn_handle, ble_gap_conn_sec_t *p_conn_sec)); + + +/**@brief Start reporting the received signal strength to the application. + * + * A new event is reported whenever the RSSI value changes, until @ref sd_ble_gap_rssi_stop is called. + * + * @events + * @event{@ref BLE_GAP_EVT_RSSI_CHANGED, New RSSI data available. How often the event is generated is + * dependent on the settings of the threshold_dbm + * and skip_count input parameters.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC} + * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] threshold_dbm Minimum change in dBm before triggering the @ref BLE_GAP_EVT_RSSI_CHANGED event. Events are disabled if threshold_dbm equals @ref BLE_GAP_RSSI_THRESHOLD_INVALID. + * @param[in] skip_count Number of RSSI samples with a change of threshold_dbm or more before sending a new @ref BLE_GAP_EVT_RSSI_CHANGED event. + * + * @retval ::NRF_SUCCESS Successfully activated RSSI reporting. + * @retval ::NRF_ERROR_INVALID_STATE RSSI reporting is already ongoing. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_RSSI_START, uint32_t, sd_ble_gap_rssi_start(uint16_t conn_handle, uint8_t threshold_dbm, uint8_t skip_count)); + + +/**@brief Stop reporting the received signal strength. + * + * @note An RSSI change detected before the call but not yet received by the application + * may be reported after @ref sd_ble_gap_rssi_stop has been called. + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC} + * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * + * @retval ::NRF_SUCCESS Successfully deactivated RSSI reporting. + * @retval ::NRF_ERROR_INVALID_STATE RSSI reporting is not ongoing. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_RSSI_STOP, uint32_t, sd_ble_gap_rssi_stop(uint16_t conn_handle)); + + +/**@brief Get the received signal strength for the last connection event. + * + * @ref sd_ble_gap_rssi_start must be called to start reporting RSSI before using this function. @ref NRF_ERROR_NOT_FOUND + * will be returned until RSSI was sampled for the first time after calling @ref sd_ble_gap_rssi_start. + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[out] p_rssi Pointer to the location where the RSSI measurement shall be stored. + * @param[out] p_ch_index Pointer to the location where Channel Index for the RSSI measurement shall be stored. + * + * @retval ::NRF_SUCCESS Successfully read the RSSI. + * @retval ::NRF_ERROR_NOT_FOUND No sample is available. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_INVALID_STATE RSSI reporting is not ongoing. + */ +SVCALL(SD_BLE_GAP_RSSI_GET, uint32_t, sd_ble_gap_rssi_get(uint16_t conn_handle, int8_t *p_rssi, uint8_t *p_ch_index)); + + +/**@brief Start or continue scanning (GAP Discovery procedure, Observer Procedure). + * + * @note A call to this function will require the application to keep the memory pointed by + * p_adv_report_buffer alive until the buffer is released. The buffer is released when the scanner is stopped + * or when this function is called with another buffer. + * + * @note The scanner will automatically stop in the following cases: + * - @ref sd_ble_gap_scan_stop is called. + * - @ref sd_ble_gap_connect is called. + * - A @ref BLE_GAP_EVT_TIMEOUT with source set to @ref BLE_GAP_TIMEOUT_SRC_SCAN is received. + * - When a @ref BLE_GAP_EVT_ADV_REPORT event is received and @ref ble_gap_adv_report_type_t::status is not set to + * @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA. In this case scanning is only paused to let the application + * access received data. The application must call this function to continue scanning, or call @ref sd_ble_gap_scan_stop + * to stop scanning. + * + * @note If a @ref BLE_GAP_EVT_ADV_REPORT event is received with @ref ble_gap_adv_report_type_t::status set to + * @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, the scanner will continue scanning, and the application will + * receive more reports from this advertising event. The following reports will include the old and new received data. + * The application can stop the scanner from receiving more packets from this advertising event by calling this function. + * This might be useful when receiving data from extended advertising events where @ref ble_gap_evt_adv_report_t::aux_pointer + * is large. + * + * @events + * @event{@ref BLE_GAP_EVT_ADV_REPORT, An advertising or scan response packet has been received.} + * @event{@ref BLE_GAP_EVT_TIMEOUT, Scanner has timed out.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_SCAN_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @param[in] p_scan_params Pointer to scan parameters structure. When this function is used to continue + * scanning, this parameter must be NULL. + * @param[in] p_adv_report_buffer Pointer to buffer used to store incoming advertising data. + * The memory pointed to should be kept alive until the scanning is stopped. + * See @ref BLE_GAP_SCAN_BUFFER_SIZE for minimum and maximum buffer size. + * If the scanner receives advertising data larger than can be stored in the buffer, + * a @ref BLE_GAP_EVT_ADV_REPORT will be raised with @ref ble_gap_adv_report_type_t::status + * set to @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_TRUNCATED. + * + * @retval ::NRF_SUCCESS Successfully initiated scanning procedure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Either: + * - Scanning is already ongoing and p_scan_params was not NULL + * - Scanning is not running and p_scan_params was NULL. + * - The scanner has timed out when this function is called to continue scanning. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. See @ref ble_gap_scan_params_t. + * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported parameters supplied. See @ref ble_gap_scan_params_t. + * @retval ::NRF_ERROR_INVALID_LENGTH The provided buffer length is invalid. See @ref BLE_GAP_SCAN_BUFFER_MIN. + * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available. + * Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again + * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported PHYs supplied to the call. + */ +SVCALL(SD_BLE_GAP_SCAN_START, uint32_t, sd_ble_gap_scan_start(ble_gap_scan_params_t const *p_scan_params, ble_data_t const * p_adv_report_buffer)); + + +/**@brief Stop scanning (GAP Discovery procedure, Observer Procedure). + * + * @note The buffer provided in @ref sd_ble_gap_scan_start is released. + * + * @mscs + * @mmsc{@ref BLE_GAP_SCAN_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Successfully stopped scanning procedure. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Not in the scanning state. + */ +SVCALL(SD_BLE_GAP_SCAN_STOP, uint32_t, sd_ble_gap_scan_stop(void)); + + +/**@brief Create a connection (GAP Link Establishment). + * + * @note If a scanning procedure is currently in progress it will be automatically stopped when calling this function. + * The scanning procedure will be stopped even if the function returns an error. + * + * @mscs + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC} + * @endmscs + * + * @param[in] p_peer_addr Pointer to peer identity address. If @ref ble_gap_scan_params_t::filter_policy is set to use + * whitelist, then p_peer_addr is ignored. + * @param[in] p_scan_params Pointer to scan parameters structure. + * @param[in] p_conn_params Pointer to desired connection parameters. + * @param[in] conn_cfg_tag Tag identifying a configuration set by @ref sd_ble_cfg_set or + * @ref BLE_CONN_CFG_TAG_DEFAULT to use the default connection configuration. + * + * @retval ::NRF_SUCCESS Successfully initiated connection procedure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid parameter(s) pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * - Invalid parameter(s) in p_scan_params or p_conn_params. + * - Use of whitelist requested but whitelist has not been set, see @ref sd_ble_gap_whitelist_set. + * - Peer address was not present in the device identity list, see @ref sd_ble_gap_device_identities_set. + * @retval ::NRF_ERROR_NOT_FOUND conn_cfg_tag not found. + * @retval ::NRF_ERROR_INVALID_STATE The SoftDevice is in an invalid state to perform this operation. This may be due to an + * existing locally initiated connect procedure, which must complete before initiating again. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Peer address. + * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached. + * @retval ::NRF_ERROR_RESOURCES Either: + * - Not enough BLE role slots available. + * Stop one or more currently active roles (Central, Peripheral or Observer) and try again. + * - The event_length parameter associated with conn_cfg_tag is too small to be able to + * establish a connection on the selected @ref ble_gap_scan_params_t::scan_phys. + * Use @ref sd_ble_cfg_set to increase the event length. + * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported PHYs supplied to the call. + */ +SVCALL(SD_BLE_GAP_CONNECT, uint32_t, sd_ble_gap_connect(ble_gap_addr_t const *p_peer_addr, ble_gap_scan_params_t const *p_scan_params, ble_gap_conn_params_t const *p_conn_params, uint8_t conn_cfg_tag)); + + +/**@brief Cancel a connection establishment. + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Successfully canceled an ongoing connection procedure. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + */ +SVCALL(SD_BLE_GAP_CONNECT_CANCEL, uint32_t, sd_ble_gap_connect_cancel(void)); + + +/**@brief Initiate or respond to a PHY Update Procedure + * + * @details This function is used to initiate or respond to a PHY Update Procedure. It will always + * generate a @ref BLE_GAP_EVT_PHY_UPDATE event if successfully executed. + * If this function is used to initiate a PHY Update procedure and the only option + * provided in @ref ble_gap_phys_t::tx_phys and @ref ble_gap_phys_t::rx_phys is the + * currently active PHYs in the respective directions, the SoftDevice will generate a + * @ref BLE_GAP_EVT_PHY_UPDATE with the current PHYs set and will not initiate the + * procedure in the Link Layer. + * + * If @ref ble_gap_phys_t::tx_phys or @ref ble_gap_phys_t::rx_phys is @ref BLE_GAP_PHY_AUTO, + * then the stack will select PHYs based on the peer's PHY preferences and the local link + * configuration. The PHY Update procedure will for this case result in a PHY combination + * that respects the time constraints configured with @ref sd_ble_cfg_set and the current + * link layer data length. + * + * When acting as a central, the SoftDevice will select the fastest common PHY in each direction. + * + * If the peer does not support the PHY Update Procedure, then the resulting + * @ref BLE_GAP_EVT_PHY_UPDATE event will have a status set to + * @ref BLE_HCI_UNSUPPORTED_REMOTE_FEATURE. + * + * If the PHY procedure was rejected by the peer due to a procedure collision, the status + * will be @ref BLE_HCI_STATUS_CODE_LMP_ERROR_TRANSACTION_COLLISION or + * @ref BLE_HCI_DIFFERENT_TRANSACTION_COLLISION. + * If the peer responds to the PHY Update procedure with invalid parameters, the status + * will be @ref BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS. + * If the PHY procedure was rejected by the peer for a different reason, the status will + * contain the reason as specified by the peer. + * + * @events + * @event{@ref BLE_GAP_EVT_PHY_UPDATE, Result of the PHY Update Procedure.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_PHY_UPDATE} + * @mmsc{@ref BLE_GAP_PERIPHERAL_PHY_UPDATE} + * @endmscs + * + * @param[in] conn_handle Connection handle to indicate the connection for which the PHY Update is requested. + * @param[in] p_gap_phys Pointer to PHY structure. + * + * @retval ::NRF_SUCCESS Successfully requested a PHY Update. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported PHYs supplied to the call. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_BUSY Procedure is already in progress or not allowed at this time. Process pending events and wait for the pending procedure to complete and retry. + * + */ +SVCALL(SD_BLE_GAP_PHY_UPDATE, uint32_t, sd_ble_gap_phy_update(uint16_t conn_handle, ble_gap_phys_t const *p_gap_phys)); + + +/**@brief Initiate or respond to a Data Length Update Procedure. + * + * @note If the application uses @ref BLE_GAP_DATA_LENGTH_AUTO for one or more members of + * p_dl_params, the SoftDevice will choose the highest value supported in current + * configuration and connection parameters. + * + * @param[in] conn_handle Connection handle. + * @param[in] p_dl_params Pointer to local parameters to be used in Data Length Update + * Procedure. Set any member to @ref BLE_GAP_DATA_LENGTH_AUTO to let + * the SoftDevice automatically decide the value for that member. + * Set to NULL to use automatic values for all members. + * @param[out] p_dl_limitation Pointer to limitation to be written when local device does not + * have enough resources or does not support the requested Data Length + * Update parameters. Ignored if NULL. + * + * @mscs + * @mmsc{@ref BLE_GAP_DATA_LENGTH_UPDATE_PROCEDURE_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Successfully set Data Length Extension initiation/response parameters. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameters supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED The requested parameters are not supported by the SoftDevice. Inspect + * p_dl_limitation to see which parameter is not supported. + * @retval ::NRF_ERROR_RESOURCES The connection event length configured for this link is not sufficient for the requested parameters. + * Use @ref sd_ble_cfg_set with @ref BLE_CONN_CFG_GAP to increase the connection event length. + * Inspect p_dl_limitation to see where the limitation is. + * @retval ::NRF_ERROR_BUSY Peer has already initiated a Data Length Update Procedure. Process the + * pending @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST event to respond. + */ +SVCALL(SD_BLE_GAP_DATA_LENGTH_UPDATE, uint32_t, sd_ble_gap_data_length_update(uint16_t conn_handle, ble_gap_data_length_params_t const *p_dl_params, ble_gap_data_length_limitation_t *p_dl_limitation)); + +/**@brief Start the Quality of Service (QoS) channel survey module. + * + * @details The channel survey module provides measurements of the energy levels on + * the Bluetooth Low Energy channels. When the module is enabled, @ref BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT + * events will periodically report the measured energy levels for each channel. + * + * @note The measurements are scheduled with lower priority than other Bluetooth Low Energy roles, + * Radio Timeslot API events and Flash API events. + * + * @note The channel survey module will attempt to do measurements so that the average interval + * between measurements will be interval_us. However due to the channel survey module + * having the lowest priority of all roles and modules, this may not be possible. In that + * case fewer than expected channel survey reports may be given. + * + * @note In order to use the channel survey module, @ref ble_gap_cfg_role_count_t::qos_channel_survey_role_available + * must be set. This is done using @ref sd_ble_cfg_set. + * + * @param[in] interval_us Requested average interval for the measurements and reports. See + * @ref BLE_GAP_QOS_CHANNEL_SURVEY_INTERVALS for valid ranges. If set + * to @ref BLE_GAP_QOS_CHANNEL_SURVEY_INTERVAL_CONTINUOUS, the channel + * survey role will be scheduled at every available opportunity. + * + * @retval ::NRF_SUCCESS The module is successfully started. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter supplied. interval_us is out of the + * allowed range. + * @retval ::NRF_ERROR_INVALID_STATE Trying to start the module when already running. + * @retval ::NRF_ERROR_RESOURCES The channel survey module is not available to the application. + * Set @ref ble_gap_cfg_role_count_t::qos_channel_survey_role_available using + * @ref sd_ble_cfg_set. + */ +SVCALL(SD_BLE_GAP_QOS_CHANNEL_SURVEY_START, uint32_t, sd_ble_gap_qos_channel_survey_start(uint32_t interval_us)); + +/**@brief Stop the Quality of Service (QoS) channel survey module. + * + * @retval ::NRF_SUCCESS The module is successfully stopped. + * @retval ::NRF_ERROR_INVALID_STATE Trying to stop the module when it is not running. + */ +SVCALL(SD_BLE_GAP_QOS_CHANNEL_SURVEY_STOP, uint32_t, sd_ble_gap_qos_channel_survey_stop(void)); + + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // BLE_GAP_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gatt.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gatt.h new file mode 100644 index 0000000..98a7a15 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gatt.h @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2013 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_GATT Generic Attribute Profile (GATT) Common + @{ + @brief Common definitions and prototypes for the GATT interfaces. + */ + +#ifndef BLE_GATT_H__ +#define BLE_GATT_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_hci.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_GATT_DEFINES Defines + * @{ */ + +/** @brief Default ATT MTU, in bytes. */ +#define BLE_GATT_ATT_MTU_DEFAULT 23 + +/**@brief Invalid Attribute Handle. */ +#define BLE_GATT_HANDLE_INVALID 0x0000 + +/**@brief First Attribute Handle. */ +#define BLE_GATT_HANDLE_START 0x0001 + +/**@brief Last Attribute Handle. */ +#define BLE_GATT_HANDLE_END 0xFFFF + +/** @defgroup BLE_GATT_TIMEOUT_SOURCES GATT Timeout sources + * @{ */ +#define BLE_GATT_TIMEOUT_SRC_PROTOCOL 0x00 /**< ATT Protocol timeout. */ +/** @} */ + +/** @defgroup BLE_GATT_WRITE_OPS GATT Write operations + * @{ */ +#define BLE_GATT_OP_INVALID 0x00 /**< Invalid Operation. */ +#define BLE_GATT_OP_WRITE_REQ 0x01 /**< Write Request. */ +#define BLE_GATT_OP_WRITE_CMD 0x02 /**< Write Command. */ +#define BLE_GATT_OP_SIGN_WRITE_CMD 0x03 /**< Signed Write Command. */ +#define BLE_GATT_OP_PREP_WRITE_REQ 0x04 /**< Prepare Write Request. */ +#define BLE_GATT_OP_EXEC_WRITE_REQ 0x05 /**< Execute Write Request. */ +/** @} */ + +/** @defgroup BLE_GATT_EXEC_WRITE_FLAGS GATT Execute Write flags + * @{ */ +#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_CANCEL 0x00 /**< Cancel prepared write. */ +#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE 0x01 /**< Execute prepared write. */ +/** @} */ + +/** @defgroup BLE_GATT_HVX_TYPES GATT Handle Value operations + * @{ */ +#define BLE_GATT_HVX_INVALID 0x00 /**< Invalid Operation. */ +#define BLE_GATT_HVX_NOTIFICATION 0x01 /**< Handle Value Notification. */ +#define BLE_GATT_HVX_INDICATION 0x02 /**< Handle Value Indication. */ +/** @} */ + +/** @defgroup BLE_GATT_STATUS_CODES GATT Status Codes + * @{ */ +#define BLE_GATT_STATUS_SUCCESS 0x0000 /**< Success. */ +#define BLE_GATT_STATUS_UNKNOWN 0x0001 /**< Unknown or not applicable status. */ +#define BLE_GATT_STATUS_ATTERR_INVALID 0x0100 /**< ATT Error: Invalid Error Code. */ +#define BLE_GATT_STATUS_ATTERR_INVALID_HANDLE 0x0101 /**< ATT Error: Invalid Attribute Handle. */ +#define BLE_GATT_STATUS_ATTERR_READ_NOT_PERMITTED 0x0102 /**< ATT Error: Read not permitted. */ +#define BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED 0x0103 /**< ATT Error: Write not permitted. */ +#define BLE_GATT_STATUS_ATTERR_INVALID_PDU 0x0104 /**< ATT Error: Used in ATT as Invalid PDU. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION 0x0105 /**< ATT Error: Authenticated link required. */ +#define BLE_GATT_STATUS_ATTERR_REQUEST_NOT_SUPPORTED 0x0106 /**< ATT Error: Used in ATT as Request Not Supported. */ +#define BLE_GATT_STATUS_ATTERR_INVALID_OFFSET 0x0107 /**< ATT Error: Offset specified was past the end of the attribute. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHORIZATION 0x0108 /**< ATT Error: Used in ATT as Insufficient Authorization. */ +#define BLE_GATT_STATUS_ATTERR_PREPARE_QUEUE_FULL 0x0109 /**< ATT Error: Used in ATT as Prepare Queue Full. */ +#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND 0x010A /**< ATT Error: Used in ATT as Attribute not found. */ +#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_LONG 0x010B /**< ATT Error: Attribute cannot be read or written using read/write blob requests. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_ENC_KEY_SIZE 0x010C /**< ATT Error: Encryption key size used is insufficient. */ +#define BLE_GATT_STATUS_ATTERR_INVALID_ATT_VAL_LENGTH 0x010D /**< ATT Error: Invalid value size. */ +#define BLE_GATT_STATUS_ATTERR_UNLIKELY_ERROR 0x010E /**< ATT Error: Very unlikely error. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_ENCRYPTION 0x010F /**< ATT Error: Encrypted link required. */ +#define BLE_GATT_STATUS_ATTERR_UNSUPPORTED_GROUP_TYPE 0x0110 /**< ATT Error: Attribute type is not a supported grouping attribute. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_RESOURCES 0x0111 /**< ATT Error: Encrypted link required. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_BEGIN 0x0112 /**< ATT Error: Reserved for Future Use range #1 begin. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_END 0x017F /**< ATT Error: Reserved for Future Use range #1 end. */ +#define BLE_GATT_STATUS_ATTERR_APP_BEGIN 0x0180 /**< ATT Error: Application range begin. */ +#define BLE_GATT_STATUS_ATTERR_APP_END 0x019F /**< ATT Error: Application range end. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_BEGIN 0x01A0 /**< ATT Error: Reserved for Future Use range #2 begin. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_END 0x01DF /**< ATT Error: Reserved for Future Use range #2 end. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_BEGIN 0x01E0 /**< ATT Error: Reserved for Future Use range #3 begin. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_END 0x01FC /**< ATT Error: Reserved for Future Use range #3 end. */ +#define BLE_GATT_STATUS_ATTERR_CPS_CCCD_CONFIG_ERROR 0x01FD /**< ATT Common Profile and Service Error: Client Characteristic Configuration Descriptor improperly configured. */ +#define BLE_GATT_STATUS_ATTERR_CPS_PROC_ALR_IN_PROG 0x01FE /**< ATT Common Profile and Service Error: Procedure Already in Progress. */ +#define BLE_GATT_STATUS_ATTERR_CPS_OUT_OF_RANGE 0x01FF /**< ATT Common Profile and Service Error: Out Of Range. */ +/** @} */ + + +/** @defgroup BLE_GATT_CPF_FORMATS Characteristic Presentation Formats + * @note Found at http://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml + * @{ */ +#define BLE_GATT_CPF_FORMAT_RFU 0x00 /**< Reserved For Future Use. */ +#define BLE_GATT_CPF_FORMAT_BOOLEAN 0x01 /**< Boolean. */ +#define BLE_GATT_CPF_FORMAT_2BIT 0x02 /**< Unsigned 2-bit integer. */ +#define BLE_GATT_CPF_FORMAT_NIBBLE 0x03 /**< Unsigned 4-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT8 0x04 /**< Unsigned 8-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT12 0x05 /**< Unsigned 12-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT16 0x06 /**< Unsigned 16-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT24 0x07 /**< Unsigned 24-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT32 0x08 /**< Unsigned 32-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT48 0x09 /**< Unsigned 48-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT64 0x0A /**< Unsigned 64-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT128 0x0B /**< Unsigned 128-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT8 0x0C /**< Signed 2-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT12 0x0D /**< Signed 12-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT16 0x0E /**< Signed 16-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT24 0x0F /**< Signed 24-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT32 0x10 /**< Signed 32-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT48 0x11 /**< Signed 48-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT64 0x12 /**< Signed 64-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT128 0x13 /**< Signed 128-bit integer. */ +#define BLE_GATT_CPF_FORMAT_FLOAT32 0x14 /**< IEEE-754 32-bit floating point. */ +#define BLE_GATT_CPF_FORMAT_FLOAT64 0x15 /**< IEEE-754 64-bit floating point. */ +#define BLE_GATT_CPF_FORMAT_SFLOAT 0x16 /**< IEEE-11073 16-bit SFLOAT. */ +#define BLE_GATT_CPF_FORMAT_FLOAT 0x17 /**< IEEE-11073 32-bit FLOAT. */ +#define BLE_GATT_CPF_FORMAT_DUINT16 0x18 /**< IEEE-20601 format. */ +#define BLE_GATT_CPF_FORMAT_UTF8S 0x19 /**< UTF-8 string. */ +#define BLE_GATT_CPF_FORMAT_UTF16S 0x1A /**< UTF-16 string. */ +#define BLE_GATT_CPF_FORMAT_STRUCT 0x1B /**< Opaque Structure. */ +/** @} */ + +/** @defgroup BLE_GATT_CPF_NAMESPACES GATT Bluetooth Namespaces + * @{ + */ +#define BLE_GATT_CPF_NAMESPACE_BTSIG 0x01 /**< Bluetooth SIG defined Namespace. */ +#define BLE_GATT_CPF_NAMESPACE_DESCRIPTION_UNKNOWN 0x0000 /**< Namespace Description Unknown. */ +/** @} */ + +/** @} */ + +/** @addtogroup BLE_GATT_STRUCTURES Structures + * @{ */ + +/** + * @brief BLE GATT connection configuration parameters, set with @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_INVALID_PARAM att_mtu is smaller than @ref BLE_GATT_ATT_MTU_DEFAULT. + */ +typedef struct +{ + uint16_t att_mtu; /**< Maximum size of ATT packet the SoftDevice can send or receive. + The default and minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT. + @mscs + @mmsc{@ref BLE_GATTC_MTU_EXCHANGE} + @mmsc{@ref BLE_GATTS_MTU_EXCHANGE} + @endmscs + */ +} ble_gatt_conn_cfg_t; + +/**@brief GATT Characteristic Properties. */ +typedef struct +{ + /* Standard properties */ + uint8_t broadcast :1; /**< Broadcasting of the value permitted. */ + uint8_t read :1; /**< Reading the value permitted. */ + uint8_t write_wo_resp :1; /**< Writing the value with Write Command permitted. */ + uint8_t write :1; /**< Writing the value with Write Request permitted. */ + uint8_t notify :1; /**< Notification of the value permitted. */ + uint8_t indicate :1; /**< Indications of the value permitted. */ + uint8_t auth_signed_wr :1; /**< Writing the value with Signed Write Command permitted. */ +} ble_gatt_char_props_t; + +/**@brief GATT Characteristic Extended Properties. */ +typedef struct +{ + /* Extended properties */ + uint8_t reliable_wr :1; /**< Writing the value with Queued Write operations permitted. */ + uint8_t wr_aux :1; /**< Writing the Characteristic User Description descriptor permitted. */ +} ble_gatt_char_ext_props_t; + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // BLE_GATT_H__ + +/** @} */ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gattc.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gattc.h new file mode 100644 index 0000000..7fb3920 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gattc.h @@ -0,0 +1,715 @@ +/* + * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_GATTC Generic Attribute Profile (GATT) Client + @{ + @brief Definitions and prototypes for the GATT Client interface. + */ + +#ifndef BLE_GATTC_H__ +#define BLE_GATTC_H__ + +#include +#include "nrf.h" +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" +#include "ble_gatt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_GATTC_ENUMERATIONS Enumerations + * @{ */ + +/**@brief GATTC API SVC numbers. */ +enum BLE_GATTC_SVCS +{ + SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER = BLE_GATTC_SVC_BASE, /**< Primary Service Discovery. */ + SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, /**< Relationship Discovery. */ + SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, /**< Characteristic Discovery. */ + SD_BLE_GATTC_DESCRIPTORS_DISCOVER, /**< Characteristic Descriptor Discovery. */ + SD_BLE_GATTC_ATTR_INFO_DISCOVER, /**< Attribute Information Discovery. */ + SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, /**< Read Characteristic Value by UUID. */ + SD_BLE_GATTC_READ, /**< Generic read. */ + SD_BLE_GATTC_CHAR_VALUES_READ, /**< Read multiple Characteristic Values. */ + SD_BLE_GATTC_WRITE, /**< Generic write. */ + SD_BLE_GATTC_HV_CONFIRM, /**< Handle Value Confirmation. */ + SD_BLE_GATTC_EXCHANGE_MTU_REQUEST, /**< Exchange MTU Request. */ +}; + +/** + * @brief GATT Client Event IDs. + */ +enum BLE_GATTC_EVTS +{ + BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP = BLE_GATTC_EVT_BASE, /**< Primary Service Discovery Response event. \n See @ref ble_gattc_evt_prim_srvc_disc_rsp_t. */ + BLE_GATTC_EVT_REL_DISC_RSP, /**< Relationship Discovery Response event. \n See @ref ble_gattc_evt_rel_disc_rsp_t. */ + BLE_GATTC_EVT_CHAR_DISC_RSP, /**< Characteristic Discovery Response event. \n See @ref ble_gattc_evt_char_disc_rsp_t. */ + BLE_GATTC_EVT_DESC_DISC_RSP, /**< Descriptor Discovery Response event. \n See @ref ble_gattc_evt_desc_disc_rsp_t. */ + BLE_GATTC_EVT_ATTR_INFO_DISC_RSP, /**< Attribute Information Response event. \n See @ref ble_gattc_evt_attr_info_disc_rsp_t. */ + BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP, /**< Read By UUID Response event. \n See @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t. */ + BLE_GATTC_EVT_READ_RSP, /**< Read Response event. \n See @ref ble_gattc_evt_read_rsp_t. */ + BLE_GATTC_EVT_CHAR_VALS_READ_RSP, /**< Read multiple Response event. \n See @ref ble_gattc_evt_char_vals_read_rsp_t. */ + BLE_GATTC_EVT_WRITE_RSP, /**< Write Response event. \n See @ref ble_gattc_evt_write_rsp_t. */ + BLE_GATTC_EVT_HVX, /**< Handle Value Notification or Indication event. \n Confirm indication with @ref sd_ble_gattc_hv_confirm. \n See @ref ble_gattc_evt_hvx_t. */ + BLE_GATTC_EVT_EXCHANGE_MTU_RSP, /**< Exchange MTU Response event. \n See @ref ble_gattc_evt_exchange_mtu_rsp_t. */ + BLE_GATTC_EVT_TIMEOUT, /**< Timeout event. \n See @ref ble_gattc_evt_timeout_t. */ + BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE /**< Write without Response transmission complete. \n See @ref ble_gattc_evt_write_cmd_tx_complete_t. */ +}; + +/** @} */ + +/** @addtogroup BLE_GATTC_DEFINES Defines + * @{ */ + +/** @defgroup BLE_ERRORS_GATTC SVC return values specific to GATTC + * @{ */ +#define BLE_ERROR_GATTC_PROC_NOT_PERMITTED (NRF_GATTC_ERR_BASE + 0x000) /**< Procedure not Permitted. */ +/** @} */ + +/** @defgroup BLE_GATTC_ATTR_INFO_FORMAT Attribute Information Formats + * @{ */ +#define BLE_GATTC_ATTR_INFO_FORMAT_16BIT 1 /**< 16-bit Attribute Information Format. */ +#define BLE_GATTC_ATTR_INFO_FORMAT_128BIT 2 /**< 128-bit Attribute Information Format. */ +/** @} */ + +/** @defgroup BLE_GATTC_DEFAULTS GATT Client defaults + * @{ */ +#define BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT 1 /**< Default number of Write without Response that can be queued for transmission. */ +/** @} */ + +/** @} */ + +/** @addtogroup BLE_GATTC_STRUCTURES Structures + * @{ */ + +/** + * @brief BLE GATTC connection configuration parameters, set with @ref sd_ble_cfg_set. + */ +typedef struct +{ + uint8_t write_cmd_tx_queue_size; /**< The guaranteed minimum number of Write without Response that can be queued for transmission. + The default value is @ref BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT */ +} ble_gattc_conn_cfg_t; + +/**@brief Operation Handle Range. */ +typedef struct +{ + uint16_t start_handle; /**< Start Handle. */ + uint16_t end_handle; /**< End Handle. */ +} ble_gattc_handle_range_t; + + +/**@brief GATT service. */ +typedef struct +{ + ble_uuid_t uuid; /**< Service UUID. */ + ble_gattc_handle_range_t handle_range; /**< Service Handle Range. */ +} ble_gattc_service_t; + + +/**@brief GATT include. */ +typedef struct +{ + uint16_t handle; /**< Include Handle. */ + ble_gattc_service_t included_srvc; /**< Handle of the included service. */ +} ble_gattc_include_t; + + +/**@brief GATT characteristic. */ +typedef struct +{ + ble_uuid_t uuid; /**< Characteristic UUID. */ + ble_gatt_char_props_t char_props; /**< Characteristic Properties. */ + uint8_t char_ext_props : 1; /**< Extended properties present. */ + uint16_t handle_decl; /**< Handle of the Characteristic Declaration. */ + uint16_t handle_value; /**< Handle of the Characteristic Value. */ +} ble_gattc_char_t; + + +/**@brief GATT descriptor. */ +typedef struct +{ + uint16_t handle; /**< Descriptor Handle. */ + ble_uuid_t uuid; /**< Descriptor UUID. */ +} ble_gattc_desc_t; + + +/**@brief Write Parameters. */ +typedef struct +{ + uint8_t write_op; /**< Write Operation to be performed, see @ref BLE_GATT_WRITE_OPS. */ + uint8_t flags; /**< Flags, see @ref BLE_GATT_EXEC_WRITE_FLAGS. */ + uint16_t handle; /**< Handle to the attribute to be written. */ + uint16_t offset; /**< Offset in bytes. @note For WRITE_CMD and WRITE_REQ, offset must be 0. */ + uint16_t len; /**< Length of data in bytes. */ + uint8_t const *p_value; /**< Pointer to the value data. */ +} ble_gattc_write_params_t; + +/**@brief Attribute Information for 16-bit Attribute UUID. */ +typedef struct +{ + uint16_t handle; /**< Attribute handle. */ + ble_uuid_t uuid; /**< 16-bit Attribute UUID. */ +} ble_gattc_attr_info16_t; + +/**@brief Attribute Information for 128-bit Attribute UUID. */ +typedef struct +{ + uint16_t handle; /**< Attribute handle. */ + ble_uuid128_t uuid; /**< 128-bit Attribute UUID. */ +} ble_gattc_attr_info128_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Service count. */ + ble_gattc_service_t services[1]; /**< Service data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_prim_srvc_disc_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_REL_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Include count. */ + ble_gattc_include_t includes[1]; /**< Include data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_rel_disc_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Characteristic count. */ + ble_gattc_char_t chars[1]; /**< Characteristic data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_char_disc_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_DESC_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Descriptor count. */ + ble_gattc_desc_t descs[1]; /**< Descriptor data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_desc_disc_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Attribute count. */ + uint8_t format; /**< Attribute information format, see @ref BLE_GATTC_ATTR_INFO_FORMAT. */ + union { + ble_gattc_attr_info16_t attr_info16[1]; /**< Attribute information for 16-bit Attribute UUID. + @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ + ble_gattc_attr_info128_t attr_info128[1]; /**< Attribute information for 128-bit Attribute UUID. + @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ + } info; /**< Attribute information union. */ +} ble_gattc_evt_attr_info_disc_rsp_t; + +/**@brief GATT read by UUID handle value pair. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + uint8_t *p_value; /**< Pointer to the Attribute Value, length is available in @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t::value_len. */ +} ble_gattc_handle_value_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP. */ +typedef struct +{ + uint16_t count; /**< Handle-Value Pair Count. */ + uint16_t value_len; /**< Length of the value in Handle-Value(s) list. */ + uint8_t handle_value[1]; /**< Handle-Value(s) list. To iterate through the list use @ref sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter. + @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_char_val_by_uuid_read_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_READ_RSP. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + uint16_t offset; /**< Offset of the attribute data. */ + uint16_t len; /**< Attribute data length. */ + uint8_t data[1]; /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_read_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP. */ +typedef struct +{ + uint16_t len; /**< Concatenated Attribute values length. */ + uint8_t values[1]; /**< Attribute values. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_char_vals_read_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_WRITE_RSP. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + uint8_t write_op; /**< Type of write operation, see @ref BLE_GATT_WRITE_OPS. */ + uint16_t offset; /**< Data offset. */ + uint16_t len; /**< Data length. */ + uint8_t data[1]; /**< Data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_write_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_HVX. */ +typedef struct +{ + uint16_t handle; /**< Handle to which the HVx operation applies. */ + uint8_t type; /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */ + uint16_t len; /**< Attribute data length. */ + uint8_t data[1]; /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_hvx_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP. */ +typedef struct +{ + uint16_t server_rx_mtu; /**< Server RX MTU size. */ +} ble_gattc_evt_exchange_mtu_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_TIMEOUT. */ +typedef struct +{ + uint8_t src; /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */ +} ble_gattc_evt_timeout_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE. */ +typedef struct +{ + uint8_t count; /**< Number of write without response transmissions completed. */ +} ble_gattc_evt_write_cmd_tx_complete_t; + +/**@brief GATTC event structure. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which event occurred. */ + uint16_t gatt_status; /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */ + uint16_t error_handle; /**< In case of error: The handle causing the error. In all other cases @ref BLE_GATT_HANDLE_INVALID. */ + union + { + ble_gattc_evt_prim_srvc_disc_rsp_t prim_srvc_disc_rsp; /**< Primary Service Discovery Response Event Parameters. */ + ble_gattc_evt_rel_disc_rsp_t rel_disc_rsp; /**< Relationship Discovery Response Event Parameters. */ + ble_gattc_evt_char_disc_rsp_t char_disc_rsp; /**< Characteristic Discovery Response Event Parameters. */ + ble_gattc_evt_desc_disc_rsp_t desc_disc_rsp; /**< Descriptor Discovery Response Event Parameters. */ + ble_gattc_evt_char_val_by_uuid_read_rsp_t char_val_by_uuid_read_rsp; /**< Characteristic Value Read by UUID Response Event Parameters. */ + ble_gattc_evt_read_rsp_t read_rsp; /**< Read Response Event Parameters. */ + ble_gattc_evt_char_vals_read_rsp_t char_vals_read_rsp; /**< Characteristic Values Read Response Event Parameters. */ + ble_gattc_evt_write_rsp_t write_rsp; /**< Write Response Event Parameters. */ + ble_gattc_evt_hvx_t hvx; /**< Handle Value Notification/Indication Event Parameters. */ + ble_gattc_evt_exchange_mtu_rsp_t exchange_mtu_rsp; /**< Exchange MTU Response Event Parameters. */ + ble_gattc_evt_timeout_t timeout; /**< Timeout Event Parameters. */ + ble_gattc_evt_attr_info_disc_rsp_t attr_info_disc_rsp; /**< Attribute Information Discovery Event Parameters. */ + ble_gattc_evt_write_cmd_tx_complete_t write_cmd_tx_complete; /**< Write without Response transmission complete Event Parameters. */ + } params; /**< Event Parameters. @note Only valid if @ref gatt_status == @ref BLE_GATT_STATUS_SUCCESS. */ +} ble_gattc_evt_t; +/** @} */ + +/** @addtogroup BLE_GATTC_FUNCTIONS Functions + * @{ */ + +/**@brief Initiate or continue a GATT Primary Service Discovery procedure. + * + * @details This function initiates or resumes a Primary Service discovery procedure, starting from the supplied handle. + * If the last service has not been reached, this function must be called again with an updated start handle value to continue the search. + * + * @note If any of the discovered services have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with + * type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event. + * + * @events + * @event{@ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_PRIM_SRVC_DISC_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] start_handle Handle to start searching from. + * @param[in] p_srvc_uuid Pointer to the service UUID to be found. If it is NULL, all primary services will be returned. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Primary Service Discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER, uint32_t, sd_ble_gattc_primary_services_discover(uint16_t conn_handle, uint16_t start_handle, ble_uuid_t const *p_srvc_uuid)); + + +/**@brief Initiate or continue a GATT Relationship Discovery procedure. + * + * @details This function initiates or resumes the Find Included Services sub-procedure. If the last included service has not been reached, + * this must be called again with an updated handle range to continue the search. + * + * @events + * @event{@ref BLE_GATTC_EVT_REL_DISC_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_REL_DISC_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Relationship Discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, uint32_t, sd_ble_gattc_relationships_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range)); + + +/**@brief Initiate or continue a GATT Characteristic Discovery procedure. + * + * @details This function initiates or resumes a Characteristic discovery procedure. If the last Characteristic has not been reached, + * this must be called again with an updated handle range to continue the discovery. + * + * @note If any of the discovered characteristics have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with + * type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event. + * + * @events + * @event{@ref BLE_GATTC_EVT_CHAR_DISC_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_CHAR_DISC_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Characteristic Discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, uint32_t, sd_ble_gattc_characteristics_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range)); + + +/**@brief Initiate or continue a GATT Characteristic Descriptor Discovery procedure. + * + * @details This function initiates or resumes a Characteristic Descriptor discovery procedure. If the last Descriptor has not been reached, + * this must be called again with an updated handle range to continue the discovery. + * + * @events + * @event{@ref BLE_GATTC_EVT_DESC_DISC_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_DESC_DISC_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handle_range A pointer to the range of handles of the Characteristic to perform this procedure on. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Descriptor Discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_DESCRIPTORS_DISCOVER, uint32_t, sd_ble_gattc_descriptors_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range)); + + +/**@brief Initiate or continue a GATT Read using Characteristic UUID procedure. + * + * @details This function initiates or resumes a Read using Characteristic UUID procedure. If the last Characteristic has not been reached, + * this must be called again with an updated handle range to continue the discovery. + * + * @events + * @event{@ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_READ_UUID_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_uuid Pointer to a Characteristic value UUID to read. + * @param[in] p_handle_range A pointer to the range of handles to perform this procedure on. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Read using Characteristic UUID procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, uint32_t, sd_ble_gattc_char_value_by_uuid_read(uint16_t conn_handle, ble_uuid_t const *p_uuid, ble_gattc_handle_range_t const *p_handle_range)); + + +/**@brief Initiate or continue a GATT Read (Long) Characteristic or Descriptor procedure. + * + * @details This function initiates or resumes a GATT Read (Long) Characteristic or Descriptor procedure. If the Characteristic or Descriptor + * to be read is longer than ATT_MTU - 1, this function must be called multiple times with appropriate offset to read the + * complete value. + * + * @events + * @event{@ref BLE_GATTC_EVT_READ_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_VALUE_READ_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] handle The handle of the attribute to be read. + * @param[in] offset Offset into the attribute value to be read. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Read (Long) procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_READ, uint32_t, sd_ble_gattc_read(uint16_t conn_handle, uint16_t handle, uint16_t offset)); + + +/**@brief Initiate a GATT Read Multiple Characteristic Values procedure. + * + * @details This function initiates a GATT Read Multiple Characteristic Values procedure. + * + * @events + * @event{@ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_READ_MULT_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handles A pointer to the handle(s) of the attribute(s) to be read. + * @param[in] handle_count The number of handles in p_handles. + * + * @retval ::NRF_SUCCESS Successfully started the Read Multiple Characteristic Values procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_CHAR_VALUES_READ, uint32_t, sd_ble_gattc_char_values_read(uint16_t conn_handle, uint16_t const *p_handles, uint16_t handle_count)); + + +/**@brief Perform a Write (Characteristic Value or Descriptor, with or without response, signed or not, long or reliable) procedure. + * + * @details This function can perform all write procedures described in GATT. + * + * @note Only one write with response procedure can be ongoing per connection at a time. + * If the application tries to write with response while another write with response procedure is ongoing, + * the function call will return @ref NRF_ERROR_BUSY. + * A @ref BLE_GATTC_EVT_WRITE_RSP event will be issued as soon as the write response arrives from the peer. + * + * @note The number of Write without Response that can be queued is configured by @ref ble_gattc_conn_cfg_t::write_cmd_tx_queue_size + * When the queue is full, the function call will return @ref NRF_ERROR_RESOURCES. + * A @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event will be issued as soon as the transmission of the write without response is complete. + * + * @note The application can keep track of the available queue element count for writes without responses by following the procedure below: + * - Store initial queue element count in a variable. + * - Decrement the variable, which stores the currently available queue element count, by one when a call to this function returns @ref NRF_SUCCESS. + * - Increment the variable, which stores the current available queue element count, by the count variable in @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event. + * + * @events + * @event{@ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE, Write without response transmission complete.} + * @event{@ref BLE_GATTC_EVT_WRITE_RSP, Write response received from the peer.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_VALUE_WRITE_WITHOUT_RESP_MSC} + * @mmsc{@ref BLE_GATTC_VALUE_WRITE_MSC} + * @mmsc{@ref BLE_GATTC_VALUE_LONG_WRITE_MSC} + * @mmsc{@ref BLE_GATTC_VALUE_RELIABLE_WRITE_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_write_params A pointer to a write parameters structure. + * + * @retval ::NRF_SUCCESS Successfully started the Write procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied. + * @retval ::NRF_ERROR_BUSY For write with response, procedure already in progress. Wait for a @ref BLE_GATTC_EVT_WRITE_RSP event and retry. + * @retval ::NRF_ERROR_RESOURCES Too many writes without responses queued. + * Wait for a @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event and retry. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_WRITE, uint32_t, sd_ble_gattc_write(uint16_t conn_handle, ble_gattc_write_params_t const *p_write_params)); + + +/**@brief Send a Handle Value Confirmation to the GATT Server. + * + * @mscs + * @mmsc{@ref BLE_GATTC_HVI_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] handle The handle of the attribute in the indication. + * + * @retval ::NRF_SUCCESS Successfully queued the Handle Value Confirmation for transmission. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no Indication pending to be confirmed. + * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_HV_CONFIRM, uint32_t, sd_ble_gattc_hv_confirm(uint16_t conn_handle, uint16_t handle)); + +/**@brief Discovers information about a range of attributes on a GATT server. + * + * @events + * @event{@ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP, Generated when information about a range of attributes has been received.} + * @endevents + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handle_range The range of handles to request information about. + * + * @retval ::NRF_SUCCESS Successfully started an attribute information discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_ATTR_INFO_DISCOVER, uint32_t, sd_ble_gattc_attr_info_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * p_handle_range)); + +/**@brief Start an ATT_MTU exchange by sending an Exchange MTU Request to the server. + * + * @details The SoftDevice sets ATT_MTU to the minimum of: + * - The Client RX MTU value, and + * - The Server RX MTU value from @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP. + * + * However, the SoftDevice never sets ATT_MTU lower than @ref BLE_GATT_ATT_MTU_DEFAULT. + * + * @events + * @event{@ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_MTU_EXCHANGE} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] client_rx_mtu Client RX MTU size. + * - The minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT. + * - The maximum value is @ref ble_gatt_conn_cfg_t::att_mtu in the connection configuration + used for this connection. + * - The value must be equal to Server RX MTU size given in @ref sd_ble_gatts_exchange_mtu_reply + * if an ATT_MTU exchange has already been performed in the other direction. + * + * @retval ::NRF_SUCCESS Successfully sent request to the server. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state or an ATT_MTU exchange was already requested once. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid Client RX MTU size supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_EXCHANGE_MTU_REQUEST, uint32_t, sd_ble_gattc_exchange_mtu_request(uint16_t conn_handle, uint16_t client_rx_mtu)); + +/**@brief Iterate through Handle-Value(s) list in @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event. + * + * @param[in] p_gattc_evt Pointer to event buffer containing @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event. + * @note If the buffer contains different event, behavior is undefined. + * @param[in,out] p_iter Iterator, points to @ref ble_gattc_handle_value_t structure that will be filled in with + * the next Handle-Value pair in each iteration. If the function returns other than + * @ref NRF_SUCCESS, it will not be changed. + * - To start iteration, initialize the structure to zero. + * - To continue, pass the value from previous iteration. + * + * \code + * ble_gattc_handle_value_t iter; + * memset(&iter, 0, sizeof(ble_gattc_handle_value_t)); + * while (sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(&ble_evt.evt.gattc_evt, &iter) == NRF_SUCCESS) + * { + * app_handle = iter.handle; + * memcpy(app_value, iter.p_value, ble_evt.evt.gattc_evt.params.char_val_by_uuid_read_rsp.value_len); + * } + * \endcode + * + * @retval ::NRF_SUCCESS Successfully retrieved the next Handle-Value pair. + * @retval ::NRF_ERROR_NOT_FOUND No more Handle-Value pairs available in the list. + */ +__STATIC_INLINE uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter); + +/** @} */ + +#ifndef SUPPRESS_INLINE_IMPLEMENTATION + +__STATIC_INLINE uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter) +{ + uint32_t value_len = p_gattc_evt->params.char_val_by_uuid_read_rsp.value_len; + uint8_t *p_first = p_gattc_evt->params.char_val_by_uuid_read_rsp.handle_value; + uint8_t *p_next = p_iter->p_value ? p_iter->p_value + value_len : p_first; + + if ((p_next - p_first) / (sizeof(uint16_t) + value_len) < p_gattc_evt->params.char_val_by_uuid_read_rsp.count) + { + p_iter->handle = (uint16_t)p_next[1] << 8 | p_next[0]; + p_iter->p_value = p_next + sizeof(uint16_t); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_NOT_FOUND; + } +} + +#endif /* SUPPRESS_INLINE_IMPLEMENTATION */ + +#ifdef __cplusplus +} +#endif +#endif /* BLE_GATTC_H__ */ + +/** + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gatts.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gatts.h new file mode 100644 index 0000000..e437b6e --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_gatts.h @@ -0,0 +1,845 @@ +/* + * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_GATTS Generic Attribute Profile (GATT) Server + @{ + @brief Definitions and prototypes for the GATTS interface. + */ + +#ifndef BLE_GATTS_H__ +#define BLE_GATTS_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_hci.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" +#include "ble_gatt.h" +#include "ble_gap.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_GATTS_ENUMERATIONS Enumerations + * @{ */ + +/** + * @brief GATTS API SVC numbers. + */ +enum BLE_GATTS_SVCS +{ + SD_BLE_GATTS_SERVICE_ADD = BLE_GATTS_SVC_BASE, /**< Add a service. */ + SD_BLE_GATTS_INCLUDE_ADD, /**< Add an included service. */ + SD_BLE_GATTS_CHARACTERISTIC_ADD, /**< Add a characteristic. */ + SD_BLE_GATTS_DESCRIPTOR_ADD, /**< Add a generic attribute. */ + SD_BLE_GATTS_VALUE_SET, /**< Set an attribute value. */ + SD_BLE_GATTS_VALUE_GET, /**< Get an attribute value. */ + SD_BLE_GATTS_HVX, /**< Handle Value Notification or Indication. */ + SD_BLE_GATTS_SERVICE_CHANGED, /**< Perform a Service Changed Indication to one or more peers. */ + SD_BLE_GATTS_RW_AUTHORIZE_REPLY, /**< Reply to an authorization request for a read or write operation on one or more attributes. */ + SD_BLE_GATTS_SYS_ATTR_SET, /**< Set the persistent system attributes for a connection. */ + SD_BLE_GATTS_SYS_ATTR_GET, /**< Retrieve the persistent system attributes. */ + SD_BLE_GATTS_INITIAL_USER_HANDLE_GET, /**< Retrieve the first valid user handle. */ + SD_BLE_GATTS_ATTR_GET, /**< Retrieve the UUID and/or metadata of an attribute. */ + SD_BLE_GATTS_EXCHANGE_MTU_REPLY /**< Reply to Exchange MTU Request. */ +}; + +/** + * @brief GATT Server Event IDs. + */ +enum BLE_GATTS_EVTS +{ + BLE_GATTS_EVT_WRITE = BLE_GATTS_EVT_BASE, /**< Write operation performed. \n See @ref ble_gatts_evt_write_t. */ + BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST, /**< Read/Write Authorization request. \n Reply with @ref sd_ble_gatts_rw_authorize_reply. \n See @ref ble_gatts_evt_rw_authorize_request_t. */ + BLE_GATTS_EVT_SYS_ATTR_MISSING, /**< A persistent system attribute access is pending. \n Respond with @ref sd_ble_gatts_sys_attr_set. \n See @ref ble_gatts_evt_sys_attr_missing_t. */ + BLE_GATTS_EVT_HVC, /**< Handle Value Confirmation. \n See @ref ble_gatts_evt_hvc_t. */ + BLE_GATTS_EVT_SC_CONFIRM, /**< Service Changed Confirmation. \n No additional event structure applies. */ + BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST, /**< Exchange MTU Request. \n Reply with @ref sd_ble_gatts_exchange_mtu_reply. \n See @ref ble_gatts_evt_exchange_mtu_request_t. */ + BLE_GATTS_EVT_TIMEOUT, /**< Peer failed to respond to an ATT request in time. \n See @ref ble_gatts_evt_timeout_t. */ + BLE_GATTS_EVT_HVN_TX_COMPLETE /**< Handle Value Notification transmission complete. \n See @ref ble_gatts_evt_hvn_tx_complete_t. */ +}; + +/**@brief GATTS Configuration IDs. + * + * IDs that uniquely identify a GATTS configuration. + */ +enum BLE_GATTS_CFGS +{ + BLE_GATTS_CFG_SERVICE_CHANGED = BLE_GATTS_CFG_BASE, /**< Service changed configuration. */ + BLE_GATTS_CFG_ATTR_TAB_SIZE, /**< Attribute table size configuration. */ +}; + +/** @} */ + +/** @addtogroup BLE_GATTS_DEFINES Defines + * @{ */ + +/** @defgroup BLE_ERRORS_GATTS SVC return values specific to GATTS + * @{ */ +#define BLE_ERROR_GATTS_INVALID_ATTR_TYPE (NRF_GATTS_ERR_BASE + 0x000) /**< Invalid attribute type. */ +#define BLE_ERROR_GATTS_SYS_ATTR_MISSING (NRF_GATTS_ERR_BASE + 0x001) /**< System Attributes missing. */ +/** @} */ + +/** @defgroup BLE_GATTS_ATTR_LENS_MAX Maximum attribute lengths + * @{ */ +#define BLE_GATTS_FIX_ATTR_LEN_MAX (510) /**< Maximum length for fixed length Attribute Values. */ +#define BLE_GATTS_VAR_ATTR_LEN_MAX (512) /**< Maximum length for variable length Attribute Values. */ +/** @} */ + +/** @defgroup BLE_GATTS_SRVC_TYPES GATT Server Service Types + * @{ */ +#define BLE_GATTS_SRVC_TYPE_INVALID 0x00 /**< Invalid Service Type. */ +#define BLE_GATTS_SRVC_TYPE_PRIMARY 0x01 /**< Primary Service. */ +#define BLE_GATTS_SRVC_TYPE_SECONDARY 0x02 /**< Secondary Type. */ +/** @} */ + + +/** @defgroup BLE_GATTS_ATTR_TYPES GATT Server Attribute Types + * @{ */ +#define BLE_GATTS_ATTR_TYPE_INVALID 0x00 /**< Invalid Attribute Type. */ +#define BLE_GATTS_ATTR_TYPE_PRIM_SRVC_DECL 0x01 /**< Primary Service Declaration. */ +#define BLE_GATTS_ATTR_TYPE_SEC_SRVC_DECL 0x02 /**< Secondary Service Declaration. */ +#define BLE_GATTS_ATTR_TYPE_INC_DECL 0x03 /**< Include Declaration. */ +#define BLE_GATTS_ATTR_TYPE_CHAR_DECL 0x04 /**< Characteristic Declaration. */ +#define BLE_GATTS_ATTR_TYPE_CHAR_VAL 0x05 /**< Characteristic Value. */ +#define BLE_GATTS_ATTR_TYPE_DESC 0x06 /**< Descriptor. */ +#define BLE_GATTS_ATTR_TYPE_OTHER 0x07 /**< Other, non-GATT specific type. */ +/** @} */ + + +/** @defgroup BLE_GATTS_OPS GATT Server Operations + * @{ */ +#define BLE_GATTS_OP_INVALID 0x00 /**< Invalid Operation. */ +#define BLE_GATTS_OP_WRITE_REQ 0x01 /**< Write Request. */ +#define BLE_GATTS_OP_WRITE_CMD 0x02 /**< Write Command. */ +#define BLE_GATTS_OP_SIGN_WRITE_CMD 0x03 /**< Signed Write Command. */ +#define BLE_GATTS_OP_PREP_WRITE_REQ 0x04 /**< Prepare Write Request. */ +#define BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL 0x05 /**< Execute Write Request: Cancel all prepared writes. */ +#define BLE_GATTS_OP_EXEC_WRITE_REQ_NOW 0x06 /**< Execute Write Request: Immediately execute all prepared writes. */ +/** @} */ + +/** @defgroup BLE_GATTS_VLOCS GATT Value Locations + * @{ */ +#define BLE_GATTS_VLOC_INVALID 0x00 /**< Invalid Location. */ +#define BLE_GATTS_VLOC_STACK 0x01 /**< Attribute Value is located in stack memory, no user memory is required. */ +#define BLE_GATTS_VLOC_USER 0x02 /**< Attribute Value is located in user memory. This requires the user to maintain a valid buffer through the lifetime of the attribute, since the stack + will read and write directly to the memory using the pointer provided in the APIs. There are no alignment requirements for the buffer. */ +/** @} */ + +/** @defgroup BLE_GATTS_AUTHORIZE_TYPES GATT Server Authorization Types + * @{ */ +#define BLE_GATTS_AUTHORIZE_TYPE_INVALID 0x00 /**< Invalid Type. */ +#define BLE_GATTS_AUTHORIZE_TYPE_READ 0x01 /**< Authorize a Read Operation. */ +#define BLE_GATTS_AUTHORIZE_TYPE_WRITE 0x02 /**< Authorize a Write Request Operation. */ +/** @} */ + +/** @defgroup BLE_GATTS_SYS_ATTR_FLAGS System Attribute Flags + * @{ */ +#define BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS (1 << 0) /**< Restrict system attributes to system services only. */ +#define BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS (1 << 1) /**< Restrict system attributes to user services only. */ +/** @} */ + +/** @defgroup BLE_GATTS_SERVICE_CHANGED Service Changed Inclusion Values + * @{ + */ +#define BLE_GATTS_SERVICE_CHANGED_DEFAULT (1) /**< Default is to include the Service Changed characteristic in the Attribute Table. */ +/** @} */ + +/** @defgroup BLE_GATTS_ATTR_TAB_SIZE Attribute Table size + * @{ + */ +#define BLE_GATTS_ATTR_TAB_SIZE_MIN (248) /**< Minimum Attribute Table size */ +#define BLE_GATTS_ATTR_TAB_SIZE_DEFAULT (1408) /**< Default Attribute Table size. */ +/** @} */ + +/** @defgroup BLE_GATTS_DEFAULTS GATT Server defaults + * @{ + */ +#define BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT 1 /**< Default number of Handle Value Notifications that can be queued for transmission. */ +/** @} */ + +/** @} */ + +/** @addtogroup BLE_GATTS_STRUCTURES Structures + * @{ */ + +/** + * @brief BLE GATTS connection configuration parameters, set with @ref sd_ble_cfg_set. + */ +typedef struct +{ + uint8_t hvn_tx_queue_size; /**< Minimum guaranteed number of Handle Value Notifications that can be queued for transmission. + The default value is @ref BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT */ +} ble_gatts_conn_cfg_t; + +/**@brief Attribute metadata. */ +typedef struct +{ + ble_gap_conn_sec_mode_t read_perm; /**< Read permissions. */ + ble_gap_conn_sec_mode_t write_perm; /**< Write permissions. */ + uint8_t vlen :1; /**< Variable length attribute. */ + uint8_t vloc :2; /**< Value location, see @ref BLE_GATTS_VLOCS.*/ + uint8_t rd_auth :1; /**< Read authorization and value will be requested from the application on every read operation. */ + uint8_t wr_auth :1; /**< Write authorization will be requested from the application on every Write Request operation (but not Write Command). */ +} ble_gatts_attr_md_t; + + +/**@brief GATT Attribute. */ +typedef struct +{ + ble_uuid_t const *p_uuid; /**< Pointer to the attribute UUID. */ + ble_gatts_attr_md_t const *p_attr_md; /**< Pointer to the attribute metadata structure. */ + uint16_t init_len; /**< Initial attribute value length in bytes. */ + uint16_t init_offs; /**< Initial attribute value offset in bytes. If different from zero, the first init_offs bytes of the attribute value will be left uninitialized. */ + uint16_t max_len; /**< Maximum attribute value length in bytes, see @ref BLE_GATTS_ATTR_LENS_MAX for maximum values. */ + uint8_t *p_value; /**< Pointer to the attribute data. Please note that if the @ref BLE_GATTS_VLOC_USER value location is selected in the attribute metadata, this will have to point to a buffer + that remains valid through the lifetime of the attribute. This excludes usage of automatic variables that may go out of scope or any other temporary location. + The stack may access that memory directly without the application's knowledge. For writable characteristics, this value must not be a location in flash memory.*/ +} ble_gatts_attr_t; + +/**@brief GATT Attribute Value. */ +typedef struct +{ + uint16_t len; /**< Length in bytes to be written or read. Length in bytes written or read after successful return.*/ + uint16_t offset; /**< Attribute value offset. */ + uint8_t *p_value; /**< Pointer to where value is stored or will be stored. + If value is stored in user memory, only the attribute length is updated when p_value == NULL. + Set to NULL when reading to obtain the complete length of the attribute value */ +} ble_gatts_value_t; + + +/**@brief GATT Characteristic Presentation Format. */ +typedef struct +{ + uint8_t format; /**< Format of the value, see @ref BLE_GATT_CPF_FORMATS. */ + int8_t exponent; /**< Exponent for integer data types. */ + uint16_t unit; /**< Unit from Bluetooth Assigned Numbers. */ + uint8_t name_space; /**< Namespace from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */ + uint16_t desc; /**< Namespace description from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */ +} ble_gatts_char_pf_t; + + +/**@brief GATT Characteristic metadata. */ +typedef struct +{ + ble_gatt_char_props_t char_props; /**< Characteristic Properties. */ + ble_gatt_char_ext_props_t char_ext_props; /**< Characteristic Extended Properties. */ + uint8_t const *p_char_user_desc; /**< Pointer to a UTF-8 encoded string (non-NULL terminated), NULL if the descriptor is not required. */ + uint16_t char_user_desc_max_size; /**< The maximum size in bytes of the user description descriptor. */ + uint16_t char_user_desc_size; /**< The size of the user description, must be smaller or equal to char_user_desc_max_size. */ + ble_gatts_char_pf_t const *p_char_pf; /**< Pointer to a presentation format structure or NULL if the CPF descriptor is not required. */ + ble_gatts_attr_md_t const *p_user_desc_md; /**< Attribute metadata for the User Description descriptor, or NULL for default values. */ + ble_gatts_attr_md_t const *p_cccd_md; /**< Attribute metadata for the Client Characteristic Configuration Descriptor, or NULL for default values. */ + ble_gatts_attr_md_t const *p_sccd_md; /**< Attribute metadata for the Server Characteristic Configuration Descriptor, or NULL for default values. */ +} ble_gatts_char_md_t; + + +/**@brief GATT Characteristic Definition Handles. */ +typedef struct +{ + uint16_t value_handle; /**< Handle to the characteristic value. */ + uint16_t user_desc_handle; /**< Handle to the User Description descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */ + uint16_t cccd_handle; /**< Handle to the Client Characteristic Configuration Descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */ + uint16_t sccd_handle; /**< Handle to the Server Characteristic Configuration Descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */ +} ble_gatts_char_handles_t; + + +/**@brief GATT HVx parameters. */ +typedef struct +{ + uint16_t handle; /**< Characteristic Value Handle. */ + uint8_t type; /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */ + uint16_t offset; /**< Offset within the attribute value. */ + uint16_t *p_len; /**< Length in bytes to be written, length in bytes written after return. */ + uint8_t const *p_data; /**< Actual data content, use NULL to use the current attribute value. */ +} ble_gatts_hvx_params_t; + +/**@brief GATT Authorization parameters. */ +typedef struct +{ + uint16_t gatt_status; /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */ + uint8_t update : 1; /**< If set, data supplied in p_data will be used to update the attribute value. + Please note that for @ref BLE_GATTS_AUTHORIZE_TYPE_WRITE operations this bit must always be set, + as the data to be written needs to be stored and later provided by the application. */ + uint16_t offset; /**< Offset of the attribute value being updated. */ + uint16_t len; /**< Length in bytes of the value in p_data pointer, see @ref BLE_GATTS_ATTR_LENS_MAX. */ + uint8_t const *p_data; /**< Pointer to new value used to update the attribute value. */ +} ble_gatts_authorize_params_t; + +/**@brief GATT Read or Write Authorize Reply parameters. */ +typedef struct +{ + uint8_t type; /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */ + union { + ble_gatts_authorize_params_t read; /**< Read authorization parameters. */ + ble_gatts_authorize_params_t write; /**< Write authorization parameters. */ + } params; /**< Reply Parameters. */ +} ble_gatts_rw_authorize_reply_params_t; + +/**@brief Service Changed Inclusion configuration parameters, set with @ref sd_ble_cfg_set. */ +typedef struct +{ + uint8_t service_changed : 1; /**< If 1, include the Service Changed characteristic in the Attribute Table. Default is @ref BLE_GATTS_SERVICE_CHANGED_DEFAULT. */ +} ble_gatts_cfg_service_changed_t; + +/**@brief Attribute table size configuration parameters, set with @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_INVALID_LENGTH One or more of the following is true: + * - The specified Attribute Table size is too small. + * The minimum acceptable size is defined by @ref BLE_GATTS_ATTR_TAB_SIZE_MIN. + * - The specified Attribute Table size is not a multiple of 4. + */ +typedef struct +{ + uint32_t attr_tab_size; /**< Attribute table size. Default is @ref BLE_GATTS_ATTR_TAB_SIZE_DEFAULT, minimum is @ref BLE_GATTS_ATTR_TAB_SIZE_MIN. */ +} ble_gatts_cfg_attr_tab_size_t; + +/**@brief Config structure for GATTS configurations. */ +typedef union +{ + ble_gatts_cfg_service_changed_t service_changed; /**< Include service changed characteristic, cfg_id is @ref BLE_GATTS_CFG_SERVICE_CHANGED. */ + ble_gatts_cfg_attr_tab_size_t attr_tab_size; /**< Attribute table size, cfg_id is @ref BLE_GATTS_CFG_ATTR_TAB_SIZE. */ +} ble_gatts_cfg_t; + + +/**@brief Event structure for @ref BLE_GATTS_EVT_WRITE. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + ble_uuid_t uuid; /**< Attribute UUID. */ + uint8_t op; /**< Type of write operation, see @ref BLE_GATTS_OPS. */ + uint8_t auth_required; /**< Writing operation deferred due to authorization requirement. Application may use @ref sd_ble_gatts_value_set to finalize the writing operation. */ + uint16_t offset; /**< Offset for the write operation. */ + uint16_t len; /**< Length of the received data. */ + uint8_t data[1]; /**< Received data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gatts_evt_write_t; + +/**@brief Event substructure for authorized read requests, see @ref ble_gatts_evt_rw_authorize_request_t. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + ble_uuid_t uuid; /**< Attribute UUID. */ + uint16_t offset; /**< Offset for the read operation. */ +} ble_gatts_evt_read_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST. */ +typedef struct +{ + uint8_t type; /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */ + union { + ble_gatts_evt_read_t read; /**< Attribute Read Parameters. */ + ble_gatts_evt_write_t write; /**< Attribute Write Parameters. */ + } request; /**< Request Parameters. */ +} ble_gatts_evt_rw_authorize_request_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_SYS_ATTR_MISSING. */ +typedef struct +{ + uint8_t hint; /**< Hint (currently unused). */ +} ble_gatts_evt_sys_attr_missing_t; + + +/**@brief Event structure for @ref BLE_GATTS_EVT_HVC. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ +} ble_gatts_evt_hvc_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST. */ +typedef struct +{ + uint16_t client_rx_mtu; /**< Client RX MTU size. */ +} ble_gatts_evt_exchange_mtu_request_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_TIMEOUT. */ +typedef struct +{ + uint8_t src; /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */ +} ble_gatts_evt_timeout_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_HVN_TX_COMPLETE. */ +typedef struct +{ + uint8_t count; /**< Number of notification transmissions completed. */ +} ble_gatts_evt_hvn_tx_complete_t; + +/**@brief GATTS event structure. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which the event occurred. */ + union + { + ble_gatts_evt_write_t write; /**< Write Event Parameters. */ + ble_gatts_evt_rw_authorize_request_t authorize_request; /**< Read or Write Authorize Request Parameters. */ + ble_gatts_evt_sys_attr_missing_t sys_attr_missing; /**< System attributes missing. */ + ble_gatts_evt_hvc_t hvc; /**< Handle Value Confirmation Event Parameters. */ + ble_gatts_evt_exchange_mtu_request_t exchange_mtu_request; /**< Exchange MTU Request Event Parameters. */ + ble_gatts_evt_timeout_t timeout; /**< Timeout Event. */ + ble_gatts_evt_hvn_tx_complete_t hvn_tx_complete; /**< Handle Value Notification transmission complete Event Parameters. */ + } params; /**< Event Parameters. */ +} ble_gatts_evt_t; + +/** @} */ + +/** @addtogroup BLE_GATTS_FUNCTIONS Functions + * @{ */ + +/**@brief Add a service declaration to the Attribute Table. + * + * @note Secondary Services are only relevant in the context of the entity that references them, it is therefore forbidden to + * add a secondary service declaration that is not referenced by another service later in the Attribute Table. + * + * @mscs + * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC} + * @endmscs + * + * @param[in] type Toggles between primary and secondary services, see @ref BLE_GATTS_SRVC_TYPES. + * @param[in] p_uuid Pointer to service UUID. + * @param[out] p_handle Pointer to a 16-bit word where the assigned handle will be stored. + * + * @retval ::NRF_SUCCESS Successfully added a service declaration. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, Vendor Specific UUIDs need to be present in the table. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + */ +SVCALL(SD_BLE_GATTS_SERVICE_ADD, uint32_t, sd_ble_gatts_service_add(uint8_t type, ble_uuid_t const *p_uuid, uint16_t *p_handle)); + + +/**@brief Add an include declaration to the Attribute Table. + * + * @note It is currently only possible to add an include declaration to the last added service (i.e. only sequential population is supported at this time). + * + * @note The included service must already be present in the Attribute Table prior to this call. + * + * @mscs + * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC} + * @endmscs + * + * @param[in] service_handle Handle of the service where the included service is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially. + * @param[in] inc_srvc_handle Handle of the included service. + * @param[out] p_include_handle Pointer to a 16-bit word where the assigned handle will be stored. + * + * @retval ::NRF_SUCCESS Successfully added an include declaration. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, handle values need to match previously added services. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_NOT_SUPPORTED Feature is not supported, service_handle must be that of the last added service. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, self inclusions are not allowed. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + * @retval ::NRF_ERROR_NOT_FOUND Attribute not found. + */ +SVCALL(SD_BLE_GATTS_INCLUDE_ADD, uint32_t, sd_ble_gatts_include_add(uint16_t service_handle, uint16_t inc_srvc_handle, uint16_t *p_include_handle)); + + +/**@brief Add a characteristic declaration, a characteristic value declaration and optional characteristic descriptor declarations to the Attribute Table. + * + * @note It is currently only possible to add a characteristic to the last added service (i.e. only sequential population is supported at this time). + * + * @note Several restrictions apply to the parameters, such as matching permissions between the user description descriptor and the writable auxiliaries bits, + * readable (no security) and writable (selectable) CCCDs and SCCDs and valid presentation format values. + * + * @note If no metadata is provided for the optional descriptors, their permissions will be derived from the characteristic permissions. + * + * @mscs + * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC} + * @endmscs + * + * @param[in] service_handle Handle of the service where the characteristic is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially. + * @param[in] p_char_md Characteristic metadata. + * @param[in] p_attr_char_value Pointer to the attribute structure corresponding to the characteristic value. + * @param[out] p_handles Pointer to the structure where the assigned handles will be stored. + * + * @retval ::NRF_SUCCESS Successfully added a characteristic. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, service handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation, a service context is required. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX. + */ +SVCALL(SD_BLE_GATTS_CHARACTERISTIC_ADD, uint32_t, sd_ble_gatts_characteristic_add(uint16_t service_handle, ble_gatts_char_md_t const *p_char_md, ble_gatts_attr_t const *p_attr_char_value, ble_gatts_char_handles_t *p_handles)); + + +/**@brief Add a descriptor to the Attribute Table. + * + * @note It is currently only possible to add a descriptor to the last added characteristic (i.e. only sequential population is supported at this time). + * + * @mscs + * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC} + * @endmscs + * + * @param[in] char_handle Handle of the characteristic where the descriptor is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially. + * @param[in] p_attr Pointer to the attribute structure. + * @param[out] p_handle Pointer to a 16-bit word where the assigned handle will be stored. + * + * @retval ::NRF_SUCCESS Successfully added a descriptor. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, characteristic handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation, a characteristic context is required. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX. + */ +SVCALL(SD_BLE_GATTS_DESCRIPTOR_ADD, uint32_t, sd_ble_gatts_descriptor_add(uint16_t char_handle, ble_gatts_attr_t const *p_attr, uint16_t *p_handle)); + +/**@brief Set the value of a given attribute. + * + * @note Values other than system attributes can be set at any time, regardless of whether any active connections exist. + * + * @mscs + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. Ignored if the value does not belong to a system attribute. + * @param[in] handle Attribute handle. + * @param[in,out] p_value Attribute value information. + * + * @retval ::NRF_SUCCESS Successfully set the value of the attribute. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_NOT_FOUND Attribute not found. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden handle supplied, certain attributes are not modifiable by the application. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied on a system attribute. + */ +SVCALL(SD_BLE_GATTS_VALUE_SET, uint32_t, sd_ble_gatts_value_set(uint16_t conn_handle, uint16_t handle, ble_gatts_value_t *p_value)); + +/**@brief Get the value of a given attribute. + * + * @note If the attribute value is longer than the size of the supplied buffer, + * @ref ble_gatts_value_t::len will return the total attribute value length (excluding offset), + * and not the number of bytes actually returned in @ref ble_gatts_value_t::p_value. + * The application may use this information to allocate a suitable buffer size. + * + * @note When retrieving system attribute values with this function, the connection handle + * may refer to an already disconnected connection. Refer to the documentation of + * @ref sd_ble_gatts_sys_attr_get for further information. + * + * @param[in] conn_handle Connection handle. Ignored if the value does not belong to a system attribute. + * @param[in] handle Attribute handle. + * @param[in,out] p_value Attribute value information. + * + * @retval ::NRF_SUCCESS Successfully retrieved the value of the attribute. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_NOT_FOUND Attribute not found. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid attribute offset supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied on a system attribute. + * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value. + */ +SVCALL(SD_BLE_GATTS_VALUE_GET, uint32_t, sd_ble_gatts_value_get(uint16_t conn_handle, uint16_t handle, ble_gatts_value_t *p_value)); + +/**@brief Notify or Indicate an attribute value. + * + * @details This function checks for the relevant Client Characteristic Configuration descriptor value to verify that the relevant operation + * (notification or indication) has been enabled by the client. It is also able to update the attribute value before issuing the PDU, so that + * the application can atomically perform a value update and a server initiated transaction with a single API call. + * + * @note The local attribute value may be updated even if an outgoing packet is not sent to the peer due to an error during execution. + * The Attribute Table has been updated if one of the following error codes is returned: @ref NRF_ERROR_INVALID_STATE, @ref NRF_ERROR_BUSY, + * @ref NRF_ERROR_FORBIDDEN, @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING and @ref NRF_ERROR_RESOURCES. + * The caller can check whether the value has been updated by looking at the contents of *(@ref ble_gatts_hvx_params_t::p_len). + * + * @note Only one indication procedure can be ongoing per connection at a time. + * If the application tries to indicate an attribute value while another indication procedure is ongoing, + * the function call will return @ref NRF_ERROR_BUSY. + * A @ref BLE_GATTS_EVT_HVC event will be issued as soon as the confirmation arrives from the peer. + * + * @note The number of Handle Value Notifications that can be queued is configured by @ref ble_gatts_conn_cfg_t::hvn_tx_queue_size + * When the queue is full, the function call will return @ref NRF_ERROR_RESOURCES. + * A @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event will be issued as soon as the transmission of the notification is complete. + * + * @note The application can keep track of the available queue element count for notifications by following the procedure below: + * - Store initial queue element count in a variable. + * - Decrement the variable, which stores the currently available queue element count, by one when a call to this function returns @ref NRF_SUCCESS. + * - Increment the variable, which stores the current available queue element count, by the count variable in @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event. + * + * @events + * @event{@ref BLE_GATTS_EVT_HVN_TX_COMPLETE, Notification transmission complete.} + * @event{@ref BLE_GATTS_EVT_HVC, Confirmation received from the peer.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC} + * @mmsc{@ref BLE_GATTS_HVN_MSC} + * @mmsc{@ref BLE_GATTS_HVI_MSC} + * @mmsc{@ref BLE_GATTS_HVX_DISABLED_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in,out] p_hvx_params Pointer to an HVx parameters structure. If @ref ble_gatts_hvx_params_t::p_data + * contains a non-NULL pointer the attribute value will be updated with the contents + * pointed by it before sending the notification or indication. If the attribute value + * is updated, @ref ble_gatts_hvx_params_t::p_len is updated by the SoftDevice to + * contain the number of actual bytes written, else it will be set to 0. + * + * @retval ::NRF_SUCCESS Successfully queued a notification or indication for transmission, and optionally updated the attribute value. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE One or more of the following is true: + * - Invalid Connection State + * - Notifications and/or indications not enabled in the CCCD + * - An ATT_MTU exchange is ongoing + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied. Only attributes added directly by the application are available to notify and indicate. + * @retval ::BLE_ERROR_GATTS_INVALID_ATTR_TYPE Invalid attribute type(s) supplied, only characteristic values may be notified and indicated. + * @retval ::NRF_ERROR_NOT_FOUND Attribute not found. + * @retval ::NRF_ERROR_FORBIDDEN The connection's current security level is lower than the one required by the write permissions of the CCCD associated with this characteristic. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied. + * @retval ::NRF_ERROR_BUSY For @ref BLE_GATT_HVX_INDICATION Procedure already in progress. Wait for a @ref BLE_GATTS_EVT_HVC event and retry. + * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value. + * @retval ::NRF_ERROR_RESOURCES Too many notifications queued. + * Wait for a @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event and retry. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTS_HVX, uint32_t, sd_ble_gatts_hvx(uint16_t conn_handle, ble_gatts_hvx_params_t const *p_hvx_params)); + +/**@brief Indicate the Service Changed attribute value. + * + * @details This call will send a Handle Value Indication to one or more peers connected to inform them that the Attribute + * Table layout has changed. As soon as the peer has confirmed the indication, a @ref BLE_GATTS_EVT_SC_CONFIRM event will + * be issued. + * + * @note Some of the restrictions and limitations that apply to @ref sd_ble_gatts_hvx also apply here. + * + * @events + * @event{@ref BLE_GATTS_EVT_SC_CONFIRM, Confirmation of attribute table change received from peer.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTS_SC_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] start_handle Start of affected attribute handle range. + * @param[in] end_handle End of affected attribute handle range. + * + * @retval ::NRF_SUCCESS Successfully queued the Service Changed indication for transmission. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_NOT_SUPPORTED Service Changed not enabled at initialization. See @ref + * sd_ble_cfg_set and @ref ble_gatts_cfg_service_changed_t. + * @retval ::NRF_ERROR_INVALID_STATE One or more of the following is true: + * - Invalid Connection State + * - Notifications and/or indications not enabled in the CCCD + * - An ATT_MTU exchange is ongoing + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied, handles must be in the range populated by the application. + * @retval ::NRF_ERROR_BUSY Procedure already in progress. + * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTS_SERVICE_CHANGED, uint32_t, sd_ble_gatts_service_changed(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle)); + +/**@brief Respond to a Read/Write authorization request. + * + * @note This call should only be used as a response to a @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST event issued to the application. + * + * @mscs + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC} + * @mmsc{@ref BLE_GATTS_READ_REQ_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_WRITE_REQ_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_PEER_CANCEL_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_rw_authorize_reply_params Pointer to a structure with the attribute provided by the application. + * + * @note @ref ble_gatts_authorize_params_t::p_data is ignored when this function is used to respond + * to a @ref BLE_GATTS_AUTHORIZE_TYPE_READ event if @ref ble_gatts_authorize_params_t::update + * is set to 0. + * + * @retval ::NRF_SUCCESS Successfully queued a response to the peer, and in the case of a write operation, Attribute Table updated. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no authorization request pending. + * @retval ::NRF_ERROR_INVALID_PARAM Authorization op invalid, + * handle supplied does not match requested handle, + * or invalid data to be written provided by the application. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTS_RW_AUTHORIZE_REPLY, uint32_t, sd_ble_gatts_rw_authorize_reply(uint16_t conn_handle, ble_gatts_rw_authorize_reply_params_t const *p_rw_authorize_reply_params)); + + +/**@brief Update persistent system attribute information. + * + * @details Supply information about persistent system attributes to the stack, + * previously obtained using @ref sd_ble_gatts_sys_attr_get. + * This call is only allowed for active connections, and is usually + * made immediately after a connection is established with an known bonded device, + * often as a response to a @ref BLE_GATTS_EVT_SYS_ATTR_MISSING. + * + * p_sysattrs may point directly to the application's stored copy of the system attributes + * obtained using @ref sd_ble_gatts_sys_attr_get. + * If the pointer is NULL, the system attribute info is initialized, assuming that + * the application does not have any previously saved system attribute data for this device. + * + * @note The state of persistent system attributes is reset upon connection establishment and then remembered for its duration. + * + * @note If this call returns with an error code different from @ref NRF_SUCCESS, the storage of persistent system attributes may have been completed only partially. + * This means that the state of the attribute table is undefined, and the application should either provide a new set of attributes using this same call or + * reset the SoftDevice to return to a known state. + * + * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS is used with this function, only the system attributes included in system services will be modified. + * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS is used with this function, only the system attributes included in user services will be modified. + * + * @mscs + * @mmsc{@ref BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC} + * @mmsc{@ref BLE_GATTS_SYS_ATTRS_UNK_PEER_MSC} + * @mmsc{@ref BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_sys_attr_data Pointer to a saved copy of system attributes supplied to the stack, or NULL. + * @param[in] len Size of data pointed by p_sys_attr_data, in octets. + * @param[in] flags Optional additional flags, see @ref BLE_GATTS_SYS_ATTR_FLAGS + * + * @retval ::NRF_SUCCESS Successfully set the system attribute information. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid flags supplied. + * @retval ::NRF_ERROR_INVALID_DATA Invalid data supplied, the data should be exactly the same as retrieved with @ref sd_ble_gatts_sys_attr_get. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + */ +SVCALL(SD_BLE_GATTS_SYS_ATTR_SET, uint32_t, sd_ble_gatts_sys_attr_set(uint16_t conn_handle, uint8_t const *p_sys_attr_data, uint16_t len, uint32_t flags)); + + +/**@brief Retrieve persistent system attribute information from the stack. + * + * @details This call is used to retrieve information about values to be stored persistently by the application + * during the lifetime of a connection or after it has been terminated. When a new connection is established with the same bonded device, + * the system attribute information retrieved with this function should be restored using using @ref sd_ble_gatts_sys_attr_set. + * If retrieved after disconnection, the data should be read before a new connection established. The connection handle for + * the previous, now disconnected, connection will remain valid until a new one is created to allow this API call to refer to it. + * Connection handles belonging to active connections can be used as well, but care should be taken since the system attributes + * may be written to at any time by the peer during a connection's lifetime. + * + * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS is used with this function, only the system attributes included in system services will be returned. + * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS is used with this function, only the system attributes included in user services will be returned. + * + * @mscs + * @mmsc{@ref BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle of the recently terminated connection. + * @param[out] p_sys_attr_data Pointer to a buffer where updated information about system attributes will be filled in. The format of the data is described + * in @ref BLE_GATTS_SYS_ATTRS_FORMAT. NULL can be provided to obtain the length of the data. + * @param[in,out] p_len Size of application buffer if p_sys_attr_data is not NULL. Unconditionally updated to actual length of system attribute data. + * @param[in] flags Optional additional flags, see @ref BLE_GATTS_SYS_ATTR_FLAGS + * + * @retval ::NRF_SUCCESS Successfully retrieved the system attribute information. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid flags supplied. + * @retval ::NRF_ERROR_DATA_SIZE The system attribute information did not fit into the provided buffer. + * @retval ::NRF_ERROR_NOT_FOUND No system attributes found. + */ +SVCALL(SD_BLE_GATTS_SYS_ATTR_GET, uint32_t, sd_ble_gatts_sys_attr_get(uint16_t conn_handle, uint8_t *p_sys_attr_data, uint16_t *p_len, uint32_t flags)); + + +/**@brief Retrieve the first valid user attribute handle. + * + * @param[out] p_handle Pointer to an integer where the handle will be stored. + * + * @retval ::NRF_SUCCESS Successfully retrieved the handle. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + */ +SVCALL(SD_BLE_GATTS_INITIAL_USER_HANDLE_GET, uint32_t, sd_ble_gatts_initial_user_handle_get(uint16_t *p_handle)); + +/**@brief Retrieve the attribute UUID and/or metadata. + * + * @param[in] handle Attribute handle + * @param[out] p_uuid UUID of the attribute. Use NULL to omit this field. + * @param[out] p_md Metadata of the attribute. Use NULL to omit this field. + * + * @retval ::NRF_SUCCESS Successfully retrieved the attribute metadata, + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameters supplied. Returned when both @c p_uuid and @c p_md are NULL. + * @retval ::NRF_ERROR_NOT_FOUND Attribute was not found. + */ +SVCALL(SD_BLE_GATTS_ATTR_GET, uint32_t, sd_ble_gatts_attr_get(uint16_t handle, ble_uuid_t * p_uuid, ble_gatts_attr_md_t * p_md)); + +/**@brief Reply to an ATT_MTU exchange request by sending an Exchange MTU Response to the client. + * + * @details This function is only used to reply to a @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST event. + * + * @details The SoftDevice sets ATT_MTU to the minimum of: + * - The Client RX MTU value from @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST, and + * - The Server RX MTU value. + * + * However, the SoftDevice never sets ATT_MTU lower than @ref BLE_GATT_ATT_MTU_DEFAULT. + * + * @mscs + * @mmsc{@ref BLE_GATTS_MTU_EXCHANGE} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] server_rx_mtu Server RX MTU size. + * - The minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT. + * - The maximum value is @ref ble_gatt_conn_cfg_t::att_mtu in the connection configuration + * used for this connection. + * - The value must be equal to Client RX MTU size given in @ref sd_ble_gattc_exchange_mtu_request + * if an ATT_MTU exchange has already been performed in the other direction. + * + * @retval ::NRF_SUCCESS Successfully sent response to the client. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no ATT_MTU exchange request pending. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid Server RX MTU size supplied. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTS_EXCHANGE_MTU_REPLY, uint32_t, sd_ble_gatts_exchange_mtu_reply(uint16_t conn_handle, uint16_t server_rx_mtu)); +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // BLE_GATTS_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_hci.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_hci.h new file mode 100644 index 0000000..f0dde9a --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_hci.h @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON + @{ +*/ + + +#ifndef BLE_HCI_H__ +#define BLE_HCI_H__ +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup BLE_HCI_STATUS_CODES Bluetooth status codes + * @{ */ + +#define BLE_HCI_STATUS_CODE_SUCCESS 0x00 /**< Success. */ +#define BLE_HCI_STATUS_CODE_UNKNOWN_BTLE_COMMAND 0x01 /**< Unknown BLE Command. */ +#define BLE_HCI_STATUS_CODE_UNKNOWN_CONNECTION_IDENTIFIER 0x02 /**< Unknown Connection Identifier. */ +/*0x03 Hardware Failure +0x04 Page Timeout +*/ +#define BLE_HCI_AUTHENTICATION_FAILURE 0x05 /**< Authentication Failure. */ +#define BLE_HCI_STATUS_CODE_PIN_OR_KEY_MISSING 0x06 /**< Pin or Key missing. */ +#define BLE_HCI_MEMORY_CAPACITY_EXCEEDED 0x07 /**< Memory Capacity Exceeded. */ +#define BLE_HCI_CONNECTION_TIMEOUT 0x08 /**< Connection Timeout. */ +/*0x09 Connection Limit Exceeded +0x0A Synchronous Connection Limit To A Device Exceeded +0x0B ACL Connection Already Exists*/ +#define BLE_HCI_STATUS_CODE_COMMAND_DISALLOWED 0x0C /**< Command Disallowed. */ +/*0x0D Connection Rejected due to Limited Resources +0x0E Connection Rejected Due To Security Reasons +0x0F Connection Rejected due to Unacceptable BD_ADDR +0x10 Connection Accept Timeout Exceeded +0x11 Unsupported Feature or Parameter Value*/ +#define BLE_HCI_STATUS_CODE_INVALID_BTLE_COMMAND_PARAMETERS 0x12 /**< Invalid BLE Command Parameters. */ +#define BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION 0x13 /**< Remote User Terminated Connection. */ +#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES 0x14 /**< Remote Device Terminated Connection due to low resources.*/ +#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF 0x15 /**< Remote Device Terminated Connection due to power off. */ +#define BLE_HCI_LOCAL_HOST_TERMINATED_CONNECTION 0x16 /**< Local Host Terminated Connection. */ +/* +0x17 Repeated Attempts +0x18 Pairing Not Allowed +0x19 Unknown LMP PDU +*/ +#define BLE_HCI_UNSUPPORTED_REMOTE_FEATURE 0x1A /**< Unsupported Remote Feature. */ +/* +0x1B SCO Offset Rejected +0x1C SCO Interval Rejected +0x1D SCO Air Mode Rejected*/ +#define BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS 0x1E /**< Invalid LMP Parameters. */ +#define BLE_HCI_STATUS_CODE_UNSPECIFIED_ERROR 0x1F /**< Unspecified Error. */ +/*0x20 Unsupported LMP Parameter Value +0x21 Role Change Not Allowed +*/ +#define BLE_HCI_STATUS_CODE_LMP_RESPONSE_TIMEOUT 0x22 /**< LMP Response Timeout. */ +#define BLE_HCI_STATUS_CODE_LMP_ERROR_TRANSACTION_COLLISION 0x23 /**< LMP Error Transaction Collision/LL Procedure Collision. */ +#define BLE_HCI_STATUS_CODE_LMP_PDU_NOT_ALLOWED 0x24 /**< LMP PDU Not Allowed. */ +/*0x25 Encryption Mode Not Acceptable +0x26 Link Key Can Not be Changed +0x27 Requested QoS Not Supported +*/ +#define BLE_HCI_INSTANT_PASSED 0x28 /**< Instant Passed. */ +#define BLE_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED 0x29 /**< Pairing with Unit Key Unsupported. */ +#define BLE_HCI_DIFFERENT_TRANSACTION_COLLISION 0x2A /**< Different Transaction Collision. */ +/* +0x2B Reserved +0x2C QoS Unacceptable Parameter +0x2D QoS Rejected +0x2E Channel Classification Not Supported +0x2F Insufficient Security +*/ +#define BLE_HCI_PARAMETER_OUT_OF_MANDATORY_RANGE 0x30 /**< Parameter Out Of Mandatory Range. */ +/* +0x31 Reserved +0x32 Role Switch Pending +0x33 Reserved +0x34 Reserved Slot Violation +0x35 Role Switch Failed +0x36 Extended Inquiry Response Too Large +0x37 Secure Simple Pairing Not Supported By Host. +0x38 Host Busy - Pairing +0x39 Connection Rejected due to No Suitable Channel Found*/ +#define BLE_HCI_CONTROLLER_BUSY 0x3A /**< Controller Busy. */ +#define BLE_HCI_CONN_INTERVAL_UNACCEPTABLE 0x3B /**< Connection Interval Unacceptable. */ +#define BLE_HCI_DIRECTED_ADVERTISER_TIMEOUT 0x3C /**< Directed Advertisement Timeout. */ +#define BLE_HCI_CONN_TERMINATED_DUE_TO_MIC_FAILURE 0x3D /**< Connection Terminated due to MIC Failure. */ +#define BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED 0x3E /**< Connection Failed to be Established. */ + +/** @} */ + + +#ifdef __cplusplus +} +#endif +#endif // BLE_HCI_H__ + +/** @} */ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_l2cap.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_l2cap.h new file mode 100644 index 0000000..eaeb4b7 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_l2cap.h @@ -0,0 +1,506 @@ +/* + * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_L2CAP Logical Link Control and Adaptation Protocol (L2CAP) + @{ + @brief Definitions and prototypes for the L2CAP interface. + */ + +#ifndef BLE_L2CAP_H__ +#define BLE_L2CAP_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@addtogroup BLE_L2CAP_TERMINOLOGY Terminology + * @{ + * @details + * + * L2CAP SDU + * - A data unit that the application can send/receive to/from a peer. + * + * L2CAP PDU + * - A data unit that is exchanged between local and remote L2CAP entities. + * It consists of L2CAP protocol control information and payload fields. + * The payload field can contain an L2CAP SDU or a part of an L2CAP SDU. + * + * L2CAP MTU + * - The maximum length of an L2CAP SDU. + * + * L2CAP MPS + * - The maximum length of an L2CAP PDU payload field. + * + * Credits + * - A value indicating the number of L2CAP PDUs that the receiver of the credit can send to the peer. + * @} */ + +/**@addtogroup BLE_L2CAP_ENUMERATIONS Enumerations + * @{ */ + +/**@brief L2CAP API SVC numbers. */ +enum BLE_L2CAP_SVCS +{ + SD_BLE_L2CAP_CH_SETUP = BLE_L2CAP_SVC_BASE + 0, /**< Set up an L2CAP channel. */ + SD_BLE_L2CAP_CH_RELEASE = BLE_L2CAP_SVC_BASE + 1, /**< Release an L2CAP channel. */ + SD_BLE_L2CAP_CH_RX = BLE_L2CAP_SVC_BASE + 2, /**< Receive an SDU on an L2CAP channel. */ + SD_BLE_L2CAP_CH_TX = BLE_L2CAP_SVC_BASE + 3, /**< Transmit an SDU on an L2CAP channel. */ + SD_BLE_L2CAP_CH_FLOW_CONTROL = BLE_L2CAP_SVC_BASE + 4, /**< Advanced SDU reception flow control. */ +}; + +/**@brief L2CAP Event IDs. */ +enum BLE_L2CAP_EVTS +{ + BLE_L2CAP_EVT_CH_SETUP_REQUEST = BLE_L2CAP_EVT_BASE + 0, /**< L2CAP Channel Setup Request event. + \n See @ref ble_l2cap_evt_ch_setup_request_t. */ + BLE_L2CAP_EVT_CH_SETUP_REFUSED = BLE_L2CAP_EVT_BASE + 1, /**< L2CAP Channel Setup Refused event. + \n See @ref ble_l2cap_evt_ch_setup_refused_t. */ + BLE_L2CAP_EVT_CH_SETUP = BLE_L2CAP_EVT_BASE + 2, /**< L2CAP Channel Setup Completed event. + \n See @ref ble_l2cap_evt_ch_setup_t. */ + BLE_L2CAP_EVT_CH_RELEASED = BLE_L2CAP_EVT_BASE + 3, /**< L2CAP Channel Released event. + \n No additional event structure applies. */ + BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED = BLE_L2CAP_EVT_BASE + 4, /**< L2CAP Channel SDU data buffer released event. + \n See @ref ble_l2cap_evt_ch_sdu_buf_released_t. */ + BLE_L2CAP_EVT_CH_CREDIT = BLE_L2CAP_EVT_BASE + 5, /**< L2CAP Channel Credit received. + \n See @ref ble_l2cap_evt_ch_credit_t. */ + BLE_L2CAP_EVT_CH_RX = BLE_L2CAP_EVT_BASE + 6, /**< L2CAP Channel SDU received. + \n See @ref ble_l2cap_evt_ch_rx_t. */ + BLE_L2CAP_EVT_CH_TX = BLE_L2CAP_EVT_BASE + 7, /**< L2CAP Channel SDU transmitted. + \n See @ref ble_l2cap_evt_ch_tx_t. */ +}; + +/** @} */ + +/**@addtogroup BLE_L2CAP_DEFINES Defines + * @{ */ + +/**@brief Maximum number of L2CAP channels per connection. */ +#define BLE_L2CAP_CH_COUNT_MAX (64) + +/**@brief Minimum L2CAP MTU, in bytes. */ +#define BLE_L2CAP_MTU_MIN (23) + +/**@brief Minimum L2CAP MPS, in bytes. */ +#define BLE_L2CAP_MPS_MIN (23) + +/**@brief Invalid CID. */ +#define BLE_L2CAP_CID_INVALID (0x0000) + +/**@brief Default number of credits for @ref sd_ble_l2cap_ch_flow_control. */ +#define BLE_L2CAP_CREDITS_DEFAULT (1) + +/**@defgroup BLE_L2CAP_CH_SETUP_REFUSED_SRCS L2CAP channel setup refused sources + * @{ */ +#define BLE_L2CAP_CH_SETUP_REFUSED_SRC_LOCAL (0x01) /**< Local. */ +#define BLE_L2CAP_CH_SETUP_REFUSED_SRC_REMOTE (0x02) /**< Remote. */ + /** @} */ + + /** @defgroup BLE_L2CAP_CH_STATUS_CODES L2CAP channel status codes + * @{ */ +#define BLE_L2CAP_CH_STATUS_CODE_SUCCESS (0x0000) /**< Success. */ +#define BLE_L2CAP_CH_STATUS_CODE_LE_PSM_NOT_SUPPORTED (0x0002) /**< LE_PSM not supported. */ +#define BLE_L2CAP_CH_STATUS_CODE_NO_RESOURCES (0x0004) /**< No resources available. */ +#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_AUTHENTICATION (0x0005) /**< Insufficient authentication. */ +#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_AUTHORIZATION (0x0006) /**< Insufficient authorization. */ +#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_ENC_KEY_SIZE (0x0007) /**< Insufficient encryption key size. */ +#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_ENC (0x0008) /**< Insufficient encryption. */ +#define BLE_L2CAP_CH_STATUS_CODE_INVALID_SCID (0x0009) /**< Invalid Source CID. */ +#define BLE_L2CAP_CH_STATUS_CODE_SCID_ALLOCATED (0x000A) /**< Source CID already allocated. */ +#define BLE_L2CAP_CH_STATUS_CODE_UNACCEPTABLE_PARAMS (0x000B) /**< Unacceptable parameters. */ +#define BLE_L2CAP_CH_STATUS_CODE_NOT_UNDERSTOOD (0x8000) /**< Command Reject received instead of LE Credit Based Connection Response. */ +#define BLE_L2CAP_CH_STATUS_CODE_TIMEOUT (0xC000) /**< Operation timed out. */ +/** @} */ + +/** @} */ + +/**@addtogroup BLE_L2CAP_STRUCTURES Structures + * @{ */ + +/** + * @brief BLE L2CAP connection configuration parameters, set with @ref sd_ble_cfg_set. + * + * @note These parameters are set per connection, so all L2CAP channels created on this connection + * will have the same parameters. + * + * @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true: + * - rx_mps is smaller than @ref BLE_L2CAP_MPS_MIN. + * - tx_mps is smaller than @ref BLE_L2CAP_MPS_MIN. + * - ch_count is greater than @ref BLE_L2CAP_CH_COUNT_MAX. + * @retval ::NRF_ERROR_NO_MEM rx_mps or tx_mps is set too high. + */ +typedef struct +{ + uint16_t rx_mps; /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall + be able to receive on L2CAP channels on connections with this + configuration. The minimum value is @ref BLE_L2CAP_MPS_MIN. */ + uint16_t tx_mps; /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall + be able to transmit on L2CAP channels on connections with this + configuration. The minimum value is @ref BLE_L2CAP_MPS_MIN. */ + uint8_t rx_queue_size; /**< Number of SDU data buffers that can be queued for reception per + L2CAP channel. The minimum value is one. */ + uint8_t tx_queue_size; /**< Number of SDU data buffers that can be queued for transmission + per L2CAP channel. The minimum value is one. */ + uint8_t ch_count; /**< Number of L2CAP channels the application can create per connection + with this configuration. The default value is zero, the maximum + value is @ref BLE_L2CAP_CH_COUNT_MAX. + @note if this parameter is set to zero, all other parameters in + @ref ble_l2cap_conn_cfg_t are ignored. */ +} ble_l2cap_conn_cfg_t; + +/**@brief L2CAP channel RX parameters. */ +typedef struct +{ + uint16_t rx_mtu; /**< The maximum L2CAP SDU size, in bytes, that L2CAP shall be able to + receive on this L2CAP channel. + - Must be equal to or greater than @ref BLE_L2CAP_MTU_MIN. */ + uint16_t rx_mps; /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall be + able to receive on this L2CAP channel. + - Must be equal to or greater than @ref BLE_L2CAP_MPS_MIN. + - Must be equal to or less than @ref ble_l2cap_conn_cfg_t::rx_mps. */ + ble_data_t sdu_buf; /**< SDU data buffer for reception. + - If @ref ble_data_t::p_data is non-NULL, initial credits are + issued to the peer. + - If @ref ble_data_t::p_data is NULL, no initial credits are + issued to the peer. */ +} ble_l2cap_ch_rx_params_t; + +/**@brief L2CAP channel setup parameters. */ +typedef struct +{ + ble_l2cap_ch_rx_params_t rx_params; /**< L2CAP channel RX parameters. */ + uint16_t le_psm; /**< LE Protocol/Service Multiplexer. Used when requesting + setup of an L2CAP channel, ignored otherwise. */ + uint16_t status; /**< Status code, see @ref BLE_L2CAP_CH_STATUS_CODES. + Used when replying to a setup request of an L2CAP + channel, ignored otherwise. */ +} ble_l2cap_ch_setup_params_t; + +/**@brief L2CAP channel TX parameters. */ +typedef struct +{ + uint16_t tx_mtu; /**< The maximum L2CAP SDU size, in bytes, that L2CAP is able to + transmit on this L2CAP channel. */ + uint16_t peer_mps; /**< The maximum L2CAP PDU payload size, in bytes, that the peer is + able to receive on this L2CAP channel. */ + uint16_t tx_mps; /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP is able + to transmit on this L2CAP channel. This is effective tx_mps, + selected by the SoftDevice as + MIN( @ref ble_l2cap_ch_tx_params_t::peer_mps, @ref ble_l2cap_conn_cfg_t::tx_mps ) */ + uint16_t credits; /**< Initial credits given by the peer. */ +} ble_l2cap_ch_tx_params_t; + +/**@brief L2CAP Channel Setup Request event. */ +typedef struct +{ + ble_l2cap_ch_tx_params_t tx_params; /**< L2CAP channel TX parameters. */ + uint16_t le_psm; /**< LE Protocol/Service Multiplexer. */ +} ble_l2cap_evt_ch_setup_request_t; + +/**@brief L2CAP Channel Setup Refused event. */ +typedef struct +{ + uint8_t source; /**< Source, see @ref BLE_L2CAP_CH_SETUP_REFUSED_SRCS */ + uint16_t status; /**< Status code, see @ref BLE_L2CAP_CH_STATUS_CODES */ +} ble_l2cap_evt_ch_setup_refused_t; + +/**@brief L2CAP Channel Setup Completed event. */ +typedef struct +{ + ble_l2cap_ch_tx_params_t tx_params; /**< L2CAP channel TX parameters. */ +} ble_l2cap_evt_ch_setup_t; + +/**@brief L2CAP Channel SDU Data Duffer Released event. */ +typedef struct +{ + ble_data_t sdu_buf; /**< Returned reception or transmission SDU data buffer. The SoftDevice + returns SDU data buffers supplied by the application, which have + not yet been returned previously via a @ref BLE_L2CAP_EVT_CH_RX or + @ref BLE_L2CAP_EVT_CH_TX event. */ +} ble_l2cap_evt_ch_sdu_buf_released_t; + +/**@brief L2CAP Channel Credit received event. */ +typedef struct +{ + uint16_t credits; /**< Additional credits given by the peer. */ +} ble_l2cap_evt_ch_credit_t; + +/**@brief L2CAP Channel received SDU event. */ +typedef struct +{ + uint16_t sdu_len; /**< Total SDU length, in bytes. */ + ble_data_t sdu_buf; /**< SDU data buffer. + @note If there is not enough space in the buffer + (sdu_buf.len < sdu_len) then the rest of the SDU will be + silently discarded by the SoftDevice. */ +} ble_l2cap_evt_ch_rx_t; + +/**@brief L2CAP Channel transmitted SDU event. */ +typedef struct +{ + ble_data_t sdu_buf; /**< SDU data buffer. */ +} ble_l2cap_evt_ch_tx_t; + +/**@brief L2CAP event structure. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which the event occured. */ + uint16_t local_cid; /**< Local Channel ID of the L2CAP channel, or + @ref BLE_L2CAP_CID_INVALID if not present. */ + union + { + ble_l2cap_evt_ch_setup_request_t ch_setup_request; /**< L2CAP Channel Setup Request Event Parameters. */ + ble_l2cap_evt_ch_setup_refused_t ch_setup_refused; /**< L2CAP Channel Setup Refused Event Parameters. */ + ble_l2cap_evt_ch_setup_t ch_setup; /**< L2CAP Channel Setup Completed Event Parameters. */ + ble_l2cap_evt_ch_sdu_buf_released_t ch_sdu_buf_released;/**< L2CAP Channel SDU Data Buffer Released Event Parameters. */ + ble_l2cap_evt_ch_credit_t credit; /**< L2CAP Channel Credit Received Event Parameters. */ + ble_l2cap_evt_ch_rx_t rx; /**< L2CAP Channel SDU Received Event Parameters. */ + ble_l2cap_evt_ch_tx_t tx; /**< L2CAP Channel SDU Transmitted Event Parameters. */ + } params; /**< Event Parameters. */ +} ble_l2cap_evt_t; + +/** @} */ + +/**@addtogroup BLE_L2CAP_FUNCTIONS Functions + * @{ */ + +/**@brief Set up an L2CAP channel. + * + * @details This function is used to: + * - Request setup of an L2CAP channel: sends an LE Credit Based Connection Request packet to a peer. + * - Reply to a setup request of an L2CAP channel (if called in response to a + * @ref BLE_L2CAP_EVT_CH_SETUP_REQUEST event): sends an LE Credit Based Connection + * Response packet to a peer. + * + * @note A call to this function will require the application to keep the SDU data buffer alive + * until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_RX or + * @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event. + * + * @events + * @event{@ref BLE_L2CAP_EVT_CH_SETUP, Setup successful.} + * @event{@ref BLE_L2CAP_EVT_CH_SETUP_REFUSED, Setup failed.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_SETUP_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in,out] p_local_cid Pointer to a uint16_t containing Local Channel ID of the L2CAP channel: + * - As input: @ref BLE_L2CAP_CID_INVALID when requesting setup of an L2CAP + * channel or local_cid provided in the @ref BLE_L2CAP_EVT_CH_SETUP_REQUEST + * event when replying to a setup request of an L2CAP channel. + * - As output: local_cid for this channel. + * @param[in] p_params L2CAP channel parameters. + * + * @retval ::NRF_SUCCESS Successfully queued request or response for transmission. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_LENGTH Supplied higher rx_mps than has been configured on this link. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (L2CAP channel already set up). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + * @retval ::NRF_ERROR_RESOURCES The limit has been reached for available L2CAP channels, + * see @ref ble_l2cap_conn_cfg_t::ch_count. + */ +SVCALL(SD_BLE_L2CAP_CH_SETUP, uint32_t, sd_ble_l2cap_ch_setup(uint16_t conn_handle, uint16_t *p_local_cid, ble_l2cap_ch_setup_params_t const *p_params)); + +/**@brief Release an L2CAP channel. + * + * @details This sends a Disconnection Request packet to a peer. + * + * @events + * @event{@ref BLE_L2CAP_EVT_CH_RELEASED, Release complete.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_RELEASE_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in] local_cid Local Channel ID of the L2CAP channel. + * + * @retval ::NRF_SUCCESS Successfully queued request for transmission. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (Setup or release is + * in progress for the L2CAP channel). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + */ +SVCALL(SD_BLE_L2CAP_CH_RELEASE, uint32_t, sd_ble_l2cap_ch_release(uint16_t conn_handle, uint16_t local_cid)); + +/**@brief Receive an SDU on an L2CAP channel. + * + * @details This may issue additional credits to the peer using an LE Flow Control Credit packet. + * + * @note A call to this function will require the application to keep the memory pointed by + * @ref ble_data_t::p_data alive until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_RX + * or @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event. + * + * @note The SoftDevice can queue up to @ref ble_l2cap_conn_cfg_t::rx_queue_size SDU data buffers + * for reception per L2CAP channel. + * + * @events + * @event{@ref BLE_L2CAP_EVT_CH_RX, The SDU is received.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_RX_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in] local_cid Local Channel ID of the L2CAP channel. + * @param[in] p_sdu_buf Pointer to the SDU data buffer. + * + * @retval ::NRF_SUCCESS Buffer accepted. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (Setup or release is + * in progress for an L2CAP channel). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + * @retval ::NRF_ERROR_RESOURCES Too many SDU data buffers supplied. Wait for a + * @ref BLE_L2CAP_EVT_CH_RX event and retry. + */ +SVCALL(SD_BLE_L2CAP_CH_RX, uint32_t, sd_ble_l2cap_ch_rx(uint16_t conn_handle, uint16_t local_cid, ble_data_t const *p_sdu_buf)); + +/**@brief Transmit an SDU on an L2CAP channel. + * + * @note A call to this function will require the application to keep the memory pointed by + * @ref ble_data_t::p_data alive until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_TX + * or @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event. + * + * @note The SoftDevice can queue up to @ref ble_l2cap_conn_cfg_t::tx_queue_size SDUs for + * transmission per L2CAP channel. + * + * @note The application can keep track of the available credits for transmission by following + * the procedure below: + * - Store initial credits given by the peer in a variable. + * (Initial credits are provided in a @ref BLE_L2CAP_EVT_CH_SETUP event.) + * - Decrement the variable, which stores the currently available credits, by + * ceiling((@ref ble_data_t::len + 2) / tx_mps) when a call to this function returns + * @ref NRF_SUCCESS. (tx_mps is provided in a @ref BLE_L2CAP_EVT_CH_SETUP event.) + * - Increment the variable, which stores the currently available credits, by additional + * credits given by the peer in a @ref BLE_L2CAP_EVT_CH_CREDIT event. + * + * @events + * @event{@ref BLE_L2CAP_EVT_CH_TX, The SDU is transmitted.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_TX_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in] local_cid Local Channel ID of the L2CAP channel. + * @param[in] p_sdu_buf Pointer to the SDU data buffer. + * + * @retval ::NRF_SUCCESS Successfully queued L2CAP SDU for transmission. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (Setup or release is + * in progress for the L2CAP channel). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + * @retval ::NRF_ERROR_DATA_SIZE Invalid SDU length supplied, must not be more than + * @ref ble_l2cap_ch_tx_params_t::tx_mtu provided in + * @ref BLE_L2CAP_EVT_CH_SETUP event. + * @retval ::NRF_ERROR_RESOURCES Too many SDUs queued for transmission. Wait for a + * @ref BLE_L2CAP_EVT_CH_TX event and retry. + */ +SVCALL(SD_BLE_L2CAP_CH_TX, uint32_t, sd_ble_l2cap_ch_tx(uint16_t conn_handle, uint16_t local_cid, ble_data_t const *p_sdu_buf)); + +/**@brief Advanced SDU reception flow control. + * + * @details Adjust the way the SoftDevice issues credits to the peer. + * This may issue additional credits to the peer using an LE Flow Control Credit packet. + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_FLOW_CONTROL_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in] local_cid Local Channel ID of the L2CAP channel or @ref BLE_L2CAP_CID_INVALID to set + * the value that will be used for newly created channels. + * @param[in] credits Number of credits that the SoftDevice will make sure the peer has every + * time it starts using a new reception buffer. + * - @ref BLE_L2CAP_CREDITS_DEFAULT is the default value the SoftDevice will + * use if this function is not called. + * - If set to zero, the SoftDevice will stop issuing credits for new reception + * buffers the application provides or has provided. SDU reception that is + * currently ongoing will be allowed to complete. + * @param[out] p_credits NULL or pointer to a uint16_t. If a valid pointer is provided, it will be + * written by the SoftDevice with the number of credits that is or will be + * available to the peer. If the value written by the SoftDevice is 0 when + * credits parameter was set to 0, the peer will not be able to send more + * data until more credits are provided by calling this function again with + * credits > 0. This parameter is ignored when local_cid is set to + * @ref BLE_L2CAP_CID_INVALID. + * + * @note Application should take care when setting number of credits higher than default value. In + * this case the application must make sure that the SoftDevice always has reception buffers + * available (see @ref sd_ble_l2cap_ch_rx) for that channel. If the SoftDevice does not have + * such buffers available, packets may be NACKed on the Link Layer and all Bluetooth traffic + * on the connection handle may be stalled until the SoftDevice again has an available + * reception buffer. This applies even if the application has used this call to set the + * credits back to default, or zero. + * + * @retval ::NRF_SUCCESS Flow control parameters accepted. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (Setup or release is + * in progress for an L2CAP channel). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + */ +SVCALL(SD_BLE_L2CAP_CH_FLOW_CONTROL, uint32_t, sd_ble_l2cap_ch_flow_control(uint16_t conn_handle, uint16_t local_cid, uint16_t credits, uint16_t *p_credits)); + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // BLE_L2CAP_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_ranges.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_ranges.h new file mode 100644 index 0000000..0935bca --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_ranges.h @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2012 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON + @{ + @defgroup ble_ranges Module specific SVC, event and option number subranges + @{ + + @brief Definition of SVC, event and option number subranges for each API module. + + @note + SVCs, event and option numbers are split into subranges for each API module. + Each module receives its entire allocated range of SVC calls, whether implemented or not, + but return BLE_ERROR_NOT_SUPPORTED for unimplemented or undefined calls in its range. + + Note that the symbols BLE__SVC_LAST is the end of the allocated SVC range, + rather than the last SVC function call actually defined and implemented. + + Specific SVC, event and option values are defined in each module's ble_.h file, + which defines names of each individual SVC code based on the range start value. +*/ + +#ifndef BLE_RANGES_H__ +#define BLE_RANGES_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define BLE_SVC_BASE 0x60 /**< Common BLE SVC base. */ +#define BLE_SVC_LAST 0x6B /**< Common BLE SVC last. */ + +#define BLE_GAP_SVC_BASE 0x6C /**< GAP BLE SVC base. */ +#define BLE_GAP_SVC_LAST 0x9A /**< GAP BLE SVC last. */ + +#define BLE_GATTC_SVC_BASE 0x9B /**< GATTC BLE SVC base. */ +#define BLE_GATTC_SVC_LAST 0xA7 /**< GATTC BLE SVC last. */ + +#define BLE_GATTS_SVC_BASE 0xA8 /**< GATTS BLE SVC base. */ +#define BLE_GATTS_SVC_LAST 0xB7 /**< GATTS BLE SVC last. */ + +#define BLE_L2CAP_SVC_BASE 0xB8 /**< L2CAP BLE SVC base. */ +#define BLE_L2CAP_SVC_LAST 0xBF /**< L2CAP BLE SVC last. */ + + +#define BLE_EVT_INVALID 0x00 /**< Invalid BLE Event. */ + +#define BLE_EVT_BASE 0x01 /**< Common BLE Event base. */ +#define BLE_EVT_LAST 0x0F /**< Common BLE Event last. */ + +#define BLE_GAP_EVT_BASE 0x10 /**< GAP BLE Event base. */ +#define BLE_GAP_EVT_LAST 0x2F /**< GAP BLE Event last. */ + +#define BLE_GATTC_EVT_BASE 0x30 /**< GATTC BLE Event base. */ +#define BLE_GATTC_EVT_LAST 0x4F /**< GATTC BLE Event last. */ + +#define BLE_GATTS_EVT_BASE 0x50 /**< GATTS BLE Event base. */ +#define BLE_GATTS_EVT_LAST 0x6F /**< GATTS BLE Event last. */ + +#define BLE_L2CAP_EVT_BASE 0x70 /**< L2CAP BLE Event base. */ +#define BLE_L2CAP_EVT_LAST 0x8F /**< L2CAP BLE Event last. */ + + +#define BLE_OPT_INVALID 0x00 /**< Invalid BLE Option. */ + +#define BLE_OPT_BASE 0x01 /**< Common BLE Option base. */ +#define BLE_OPT_LAST 0x1F /**< Common BLE Option last. */ + +#define BLE_GAP_OPT_BASE 0x20 /**< GAP BLE Option base. */ +#define BLE_GAP_OPT_LAST 0x3F /**< GAP BLE Option last. */ + +#define BLE_GATT_OPT_BASE 0x40 /**< GATT BLE Option base. */ +#define BLE_GATT_OPT_LAST 0x5F /**< GATT BLE Option last. */ + +#define BLE_GATTC_OPT_BASE 0x60 /**< GATTC BLE Option base. */ +#define BLE_GATTC_OPT_LAST 0x7F /**< GATTC BLE Option last. */ + +#define BLE_GATTS_OPT_BASE 0x80 /**< GATTS BLE Option base. */ +#define BLE_GATTS_OPT_LAST 0x9F /**< GATTS BLE Option last. */ + +#define BLE_L2CAP_OPT_BASE 0xA0 /**< L2CAP BLE Option base. */ +#define BLE_L2CAP_OPT_LAST 0xBF /**< L2CAP BLE Option last. */ + + +#define BLE_CFG_INVALID 0x00 /**< Invalid BLE configuration. */ + +#define BLE_CFG_BASE 0x01 /**< Common BLE configuration base. */ +#define BLE_CFG_LAST 0x1F /**< Common BLE configuration last. */ + +#define BLE_CONN_CFG_BASE 0x20 /**< BLE connection configuration base. */ +#define BLE_CONN_CFG_LAST 0x3F /**< BLE connection configuration last. */ + +#define BLE_GAP_CFG_BASE 0x40 /**< GAP BLE configuration base. */ +#define BLE_GAP_CFG_LAST 0x5F /**< GAP BLE configuration last. */ + +#define BLE_GATT_CFG_BASE 0x60 /**< GATT BLE configuration base. */ +#define BLE_GATT_CFG_LAST 0x7F /**< GATT BLE configuration last. */ + +#define BLE_GATTC_CFG_BASE 0x80 /**< GATTC BLE configuration base. */ +#define BLE_GATTC_CFG_LAST 0x9F /**< GATTC BLE configuration last. */ + +#define BLE_GATTS_CFG_BASE 0xA0 /**< GATTS BLE configuration base. */ +#define BLE_GATTS_CFG_LAST 0xBF /**< GATTS BLE configuration last. */ + +#define BLE_L2CAP_CFG_BASE 0xC0 /**< L2CAP BLE configuration base. */ +#define BLE_L2CAP_CFG_LAST 0xDF /**< L2CAP BLE configuration last. */ + + + + + +#ifdef __cplusplus +} +#endif +#endif /* BLE_RANGES_H__ */ + +/** + @} + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_types.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_types.h new file mode 100644 index 0000000..88c9318 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/ble_types.h @@ -0,0 +1,215 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON + @{ + @defgroup ble_types Common types and macro definitions + @{ + + @brief Common types and macro definitions for the BLE SoftDevice. + */ + +#ifndef BLE_TYPES_H__ +#define BLE_TYPES_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_TYPES_DEFINES Defines + * @{ */ + +/** @defgroup BLE_CONN_HANDLES BLE Connection Handles + * @{ */ +#define BLE_CONN_HANDLE_INVALID 0xFFFF /**< Invalid Connection Handle. */ +#define BLE_CONN_HANDLE_ALL 0xFFFE /**< Applies to all Connection Handles. */ +/** @} */ + + +/** @defgroup BLE_UUID_VALUES Assigned Values for BLE UUIDs + * @{ */ +/* Generic UUIDs, applicable to all services */ +#define BLE_UUID_UNKNOWN 0x0000 /**< Reserved UUID. */ +#define BLE_UUID_SERVICE_PRIMARY 0x2800 /**< Primary Service. */ +#define BLE_UUID_SERVICE_SECONDARY 0x2801 /**< Secondary Service. */ +#define BLE_UUID_SERVICE_INCLUDE 0x2802 /**< Include. */ +#define BLE_UUID_CHARACTERISTIC 0x2803 /**< Characteristic. */ +#define BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP 0x2900 /**< Characteristic Extended Properties Descriptor. */ +#define BLE_UUID_DESCRIPTOR_CHAR_USER_DESC 0x2901 /**< Characteristic User Description Descriptor. */ +#define BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG 0x2902 /**< Client Characteristic Configuration Descriptor. */ +#define BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG 0x2903 /**< Server Characteristic Configuration Descriptor. */ +#define BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT 0x2904 /**< Characteristic Presentation Format Descriptor. */ +#define BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT 0x2905 /**< Characteristic Aggregate Format Descriptor. */ +/* GATT specific UUIDs */ +#define BLE_UUID_GATT 0x1801 /**< Generic Attribute Profile. */ +#define BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED 0x2A05 /**< Service Changed Characteristic. */ +/* GAP specific UUIDs */ +#define BLE_UUID_GAP 0x1800 /**< Generic Access Profile. */ +#define BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME 0x2A00 /**< Device Name Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE 0x2A01 /**< Appearance Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR 0x2A03 /**< Reconnection Address Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_PPCP 0x2A04 /**< Peripheral Preferred Connection Parameters Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_CAR 0x2AA6 /**< Central Address Resolution Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_RPA_ONLY 0x2AC9 /**< Resolvable Private Address Only Characteristic. */ +/** @} */ + + +/** @defgroup BLE_UUID_TYPES Types of UUID + * @{ */ +#define BLE_UUID_TYPE_UNKNOWN 0x00 /**< Invalid UUID type. */ +#define BLE_UUID_TYPE_BLE 0x01 /**< Bluetooth SIG UUID (16-bit). */ +#define BLE_UUID_TYPE_VENDOR_BEGIN 0x02 /**< Vendor UUID types start at this index (128-bit). */ +/** @} */ + + +/** @defgroup BLE_APPEARANCES Bluetooth Appearance values + * @note Retrieved from http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml + * @{ */ +#define BLE_APPEARANCE_UNKNOWN 0 /**< Unknown. */ +#define BLE_APPEARANCE_GENERIC_PHONE 64 /**< Generic Phone. */ +#define BLE_APPEARANCE_GENERIC_COMPUTER 128 /**< Generic Computer. */ +#define BLE_APPEARANCE_GENERIC_WATCH 192 /**< Generic Watch. */ +#define BLE_APPEARANCE_WATCH_SPORTS_WATCH 193 /**< Watch: Sports Watch. */ +#define BLE_APPEARANCE_GENERIC_CLOCK 256 /**< Generic Clock. */ +#define BLE_APPEARANCE_GENERIC_DISPLAY 320 /**< Generic Display. */ +#define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL 384 /**< Generic Remote Control. */ +#define BLE_APPEARANCE_GENERIC_EYE_GLASSES 448 /**< Generic Eye-glasses. */ +#define BLE_APPEARANCE_GENERIC_TAG 512 /**< Generic Tag. */ +#define BLE_APPEARANCE_GENERIC_KEYRING 576 /**< Generic Keyring. */ +#define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER 640 /**< Generic Media Player. */ +#define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER 704 /**< Generic Barcode Scanner. */ +#define BLE_APPEARANCE_GENERIC_THERMOMETER 768 /**< Generic Thermometer. */ +#define BLE_APPEARANCE_THERMOMETER_EAR 769 /**< Thermometer: Ear. */ +#define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR 832 /**< Generic Heart rate Sensor. */ +#define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT 833 /**< Heart Rate Sensor: Heart Rate Belt. */ +#define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE 896 /**< Generic Blood Pressure. */ +#define BLE_APPEARANCE_BLOOD_PRESSURE_ARM 897 /**< Blood Pressure: Arm. */ +#define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST 898 /**< Blood Pressure: Wrist. */ +#define BLE_APPEARANCE_GENERIC_HID 960 /**< Human Interface Device (HID). */ +#define BLE_APPEARANCE_HID_KEYBOARD 961 /**< Keyboard (HID Subtype). */ +#define BLE_APPEARANCE_HID_MOUSE 962 /**< Mouse (HID Subtype). */ +#define BLE_APPEARANCE_HID_JOYSTICK 963 /**< Joystick (HID Subtype). */ +#define BLE_APPEARANCE_HID_GAMEPAD 964 /**< Gamepad (HID Subtype). */ +#define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE 965 /**< Digitizer Tablet (HID Subtype). */ +#define BLE_APPEARANCE_HID_CARD_READER 966 /**< Card Reader (HID Subtype). */ +#define BLE_APPEARANCE_HID_DIGITAL_PEN 967 /**< Digital Pen (HID Subtype). */ +#define BLE_APPEARANCE_HID_BARCODE 968 /**< Barcode Scanner (HID Subtype). */ +#define BLE_APPEARANCE_GENERIC_GLUCOSE_METER 1024 /**< Generic Glucose Meter. */ +#define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR 1088 /**< Generic Running Walking Sensor. */ +#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE 1089 /**< Running Walking Sensor: In-Shoe. */ +#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE 1090 /**< Running Walking Sensor: On-Shoe. */ +#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP 1091 /**< Running Walking Sensor: On-Hip. */ +#define BLE_APPEARANCE_GENERIC_CYCLING 1152 /**< Generic Cycling. */ +#define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER 1153 /**< Cycling: Cycling Computer. */ +#define BLE_APPEARANCE_CYCLING_SPEED_SENSOR 1154 /**< Cycling: Speed Sensor. */ +#define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR 1155 /**< Cycling: Cadence Sensor. */ +#define BLE_APPEARANCE_CYCLING_POWER_SENSOR 1156 /**< Cycling: Power Sensor. */ +#define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR 1157 /**< Cycling: Speed and Cadence Sensor. */ +#define BLE_APPEARANCE_GENERIC_PULSE_OXIMETER 3136 /**< Generic Pulse Oximeter. */ +#define BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP 3137 /**< Fingertip (Pulse Oximeter subtype). */ +#define BLE_APPEARANCE_PULSE_OXIMETER_WRIST_WORN 3138 /**< Wrist Worn(Pulse Oximeter subtype). */ +#define BLE_APPEARANCE_GENERIC_WEIGHT_SCALE 3200 /**< Generic Weight Scale. */ +#define BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACT 5184 /**< Generic Outdoor Sports Activity. */ +#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_DISP 5185 /**< Location Display Device (Outdoor Sports Activity subtype). */ +#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_DISP 5186 /**< Location and Navigation Display Device (Outdoor Sports Activity subtype). */ +#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD 5187 /**< Location Pod (Outdoor Sports Activity subtype). */ +#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD 5188 /**< Location and Navigation Pod (Outdoor Sports Activity subtype). */ +/** @} */ + +/** @brief Set .type and .uuid fields of ble_uuid_struct to specified UUID value. */ +#define BLE_UUID_BLE_ASSIGN(instance, value) do {\ + instance.type = BLE_UUID_TYPE_BLE; \ + instance.uuid = value;} while(0) + +/** @brief Copy type and uuid members from src to dst ble_uuid_t pointer. Both pointers must be valid/non-null. */ +#define BLE_UUID_COPY_PTR(dst, src) do {\ + (dst)->type = (src)->type; \ + (dst)->uuid = (src)->uuid;} while(0) + +/** @brief Copy type and uuid members from src to dst ble_uuid_t struct. */ +#define BLE_UUID_COPY_INST(dst, src) do {\ + (dst).type = (src).type; \ + (dst).uuid = (src).uuid;} while(0) + +/** @brief Compare for equality both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */ +#define BLE_UUID_EQ(p_uuid1, p_uuid2) \ + (((p_uuid1)->type == (p_uuid2)->type) && ((p_uuid1)->uuid == (p_uuid2)->uuid)) + +/** @brief Compare for difference both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */ +#define BLE_UUID_NEQ(p_uuid1, p_uuid2) \ + (((p_uuid1)->type != (p_uuid2)->type) || ((p_uuid1)->uuid != (p_uuid2)->uuid)) + +/** @} */ + +/** @addtogroup BLE_TYPES_STRUCTURES Structures + * @{ */ + +/** @brief 128 bit UUID values. */ +typedef struct +{ + uint8_t uuid128[16]; /**< Little-Endian UUID bytes. */ +} ble_uuid128_t; + +/** @brief Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs. */ +typedef struct +{ + uint16_t uuid; /**< 16-bit UUID value or octets 12-13 of 128-bit UUID. */ + uint8_t type; /**< UUID type, see @ref BLE_UUID_TYPES. If type is @ref BLE_UUID_TYPE_UNKNOWN, the value of uuid is undefined. */ +} ble_uuid_t; + +/**@brief Data structure. */ +typedef struct +{ + uint8_t *p_data; /**< Pointer to the data buffer provided to/from the application. */ + uint16_t len; /**< Length of the data buffer, in bytes. */ +} ble_data_t; + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* BLE_TYPES_H__ */ + +/** + @} + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf52/nrf_mbr.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf52/nrf_mbr.h new file mode 100644 index 0000000..ea231b3 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf52/nrf_mbr.h @@ -0,0 +1,241 @@ +/* + * Copyright (c) 2014 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @defgroup nrf_mbr_api Master Boot Record API + @{ + + @brief APIs for updating SoftDevice and BootLoader + +*/ + +#ifndef NRF_MBR_H__ +#define NRF_MBR_H__ + +#include "nrf_svc.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup NRF_MBR_DEFINES Defines + * @{ */ + +/**@brief MBR SVC Base number. */ +#define MBR_SVC_BASE (0x18) + +/**@brief Page size in words. */ +#define MBR_PAGE_SIZE_IN_WORDS (1024) + +/** @brief The size that must be reserved for the MBR when a SoftDevice is written to flash. +This is the offset where the first byte of the SoftDevice hex file is written.*/ +#define MBR_SIZE (0x1000) + +/** @} */ + +/** @addtogroup NRF_MBR_ENUMS Enumerations + * @{ */ + +/**@brief nRF Master Boot Record API SVC numbers. */ +enum NRF_MBR_SVCS +{ + SD_MBR_COMMAND = MBR_SVC_BASE, /**< ::sd_mbr_command */ +}; + +/**@brief Possible values for ::sd_mbr_command_t.command */ +enum NRF_MBR_COMMANDS +{ + SD_MBR_COMMAND_COPY_BL, /**< Copy a new BootLoader. @see ::sd_mbr_command_copy_bl_t*/ + SD_MBR_COMMAND_COPY_SD, /**< Copy a new SoftDevice. @see ::sd_mbr_command_copy_sd_t*/ + SD_MBR_COMMAND_INIT_SD, /**< Initialize forwarding interrupts to SD, and run reset function in SD. Does not require any parameters in ::sd_mbr_command_t params.*/ + SD_MBR_COMMAND_COMPARE, /**< This command works like memcmp. @see ::sd_mbr_command_compare_t*/ + SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET, /**< Change the address the MBR starts after a reset. @see ::sd_mbr_command_vector_table_base_set_t*/ + SD_MBR_COMMAND_RESERVED, + SD_MBR_COMMAND_IRQ_FORWARD_ADDRESS_SET, /**< Start forwarding all interrupts to this address. @see ::sd_mbr_command_irq_forward_address_set_t*/ +}; + +/** @} */ + +/** @addtogroup NRF_MBR_TYPES Types + * @{ */ + +/**@brief This command copies part of a new SoftDevice + * + * The destination area is erased before copying. + * If dst is in the middle of a flash page, that whole flash page will be erased. + * If (dst+len) is in the middle of a flash page, that whole flash page will be erased. + * + * The user of this function is responsible for setting the BPROT registers. + * + * @retval ::NRF_SUCCESS indicates that the contents of the memory blocks where copied correctly. + * @retval ::NRF_ERROR_INTERNAL indicates that the contents of the memory blocks where not verified correctly after copying. + */ +typedef struct +{ + uint32_t *src; /**< Pointer to the source of data to be copied.*/ + uint32_t *dst; /**< Pointer to the destination where the content is to be copied.*/ + uint32_t len; /**< Number of 32 bit words to copy. Must be a multiple of @ref MBR_PAGE_SIZE_IN_WORDS words.*/ +} sd_mbr_command_copy_sd_t; + + +/**@brief This command works like memcmp, but takes the length in words. + * + * @retval ::NRF_SUCCESS indicates that the contents of both memory blocks are equal. + * @retval ::NRF_ERROR_NULL indicates that the contents of the memory blocks are not equal. + */ +typedef struct +{ + uint32_t *ptr1; /**< Pointer to block of memory. */ + uint32_t *ptr2; /**< Pointer to block of memory. */ + uint32_t len; /**< Number of 32 bit words to compare.*/ +} sd_mbr_command_compare_t; + + +/**@brief This command copies a new BootLoader. + * + * With this command, destination of BootLoader is always the address written in + * NRF_UICR->BOOTADDR. + * + * Destination is erased by this function. + * If (destination+bl_len) is in the middle of a flash page, that whole flash page will be erased. + * + * This function will use PROTENSET to protect the flash that is not intended to be written. + * + * On success, this function will not return. It will start the new BootLoader from reset-vector as normal. + * + * @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen. + * @retval ::NRF_ERROR_FORBIDDEN if NRF_UICR->BOOTADDR is not set. + * @retval ::NRF_ERROR_INVALID_LENGTH if parameters attempts to read or write outside flash area. + * @retval ::NRF_ERROR_NO_MEM if no parameter page is provided (see SoftDevice Specification for more info) + */ +typedef struct +{ + uint32_t *bl_src; /**< Pointer to the source of the Bootloader to be be copied.*/ + uint32_t bl_len; /**< Number of 32 bit words to copy for BootLoader. */ +} sd_mbr_command_copy_bl_t; + +/**@brief Change the address the MBR starts after a reset + * + * Once this function has been called, this address is where the MBR will start to forward + * interrupts to after a reset. + * + * To restore default forwarding this function should be called with @ref address set to 0. The + * MBR will then start forwarding interrupts to the address in NFR_UICR->BOOTADDR or to the + * SoftDevice if the BOOTADDR is not set. + * + * On success, this function will not return. It will reset the device. + * + * @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen. + * @retval ::NRF_ERROR_INVALID_ADDR if parameter address is outside of the flash size. + * @retval ::NRF_ERROR_NO_MEM if no parameter page is provided (see SoftDevice Specification for more info) + */ +typedef struct +{ + uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/ +} sd_mbr_command_vector_table_base_set_t; + +/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the MBR + * + * Unlike sd_mbr_command_vector_table_base_set_t, this function does not reset, and it does not + * change where the MBR starts after reset. + * + * @retval ::NRF_SUCCESS + */ +typedef struct +{ + uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/ +} sd_mbr_command_irq_forward_address_set_t; + +/**@brief Input structure containing data used when calling ::sd_mbr_command + * + * Depending on what command value that is set, the corresponding params value type must also be + * set. See @ref NRF_MBR_COMMANDS for command types and corresponding params value type. If command + * @ref SD_MBR_COMMAND_INIT_SD is set, it is not necessary to set any values under params. + */ +typedef struct +{ + uint32_t command; /**< Type of command to be issued. See @ref NRF_MBR_COMMANDS. */ + union + { + sd_mbr_command_copy_sd_t copy_sd; /**< Parameters for copy SoftDevice.*/ + sd_mbr_command_compare_t compare; /**< Parameters for verify.*/ + sd_mbr_command_copy_bl_t copy_bl; /**< Parameters for copy BootLoader. Requires parameter page. */ + sd_mbr_command_vector_table_base_set_t base_set; /**< Parameters for vector table base set. Requires parameter page.*/ + sd_mbr_command_irq_forward_address_set_t irq_forward_address_set; /**< Parameters for irq forward address set*/ + } params; /**< Command parameters. */ +} sd_mbr_command_t; + +/** @} */ + +/** @addtogroup NRF_MBR_FUNCTIONS Functions + * @{ */ + +/**@brief Issue Master Boot Record commands + * + * Commands used when updating a SoftDevice and bootloader. + * + * The @ref SD_MBR_COMMAND_COPY_BL and @ref SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET requires + * parameters to be retained by the MBR when resetting the IC. This is done in a separate flash + * page provided by the application. The UICR register UICR.NRFFW[1] must be set to an address + * corresponding to a page in the application flash space. This page will be cleared by the MBR and + * used to store the command before reset. When the UICR.NRFFW[1] field is set the page it refers + * to must not be used by the application. If the UICR.NRFFW[1] is set to 0xFFFFFFFF (the default) + * MBR commands which use flash will be unavailable and return @ref NRF_ERROR_NO_MEM. + * + * @param[in] param Pointer to a struct describing the command. + * + * @note For return values, see ::sd_mbr_command_copy_sd_t, ::sd_mbr_command_copy_bl_t, + * ::sd_mbr_command_compare_t, ::sd_mbr_command_vector_table_base_set_t, + * ::sd_mbr_command_irq_forward_address_set_t + * + * @retval ::NRF_ERROR_NO_MEM if UICR.NRFFW[1] is not set (i.e. is 0xFFFFFFFF). + * @retval ::NRF_ERROR_INVALID_PARAM if an invalid command is given. +*/ +SVCALL(SD_MBR_COMMAND, uint32_t, sd_mbr_command(sd_mbr_command_t* param)); + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // NRF_MBR_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error.h new file mode 100644 index 0000000..6badee9 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2014 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /** + @defgroup nrf_error SoftDevice Global Error Codes + @{ + + @brief Global Error definitions +*/ + +/* Header guard */ +#ifndef NRF_ERROR_H__ +#define NRF_ERROR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup NRF_ERRORS_BASE Error Codes Base number definitions + * @{ */ +#define NRF_ERROR_BASE_NUM (0x0) ///< Global error base +#define NRF_ERROR_SDM_BASE_NUM (0x1000) ///< SDM error base +#define NRF_ERROR_SOC_BASE_NUM (0x2000) ///< SoC error base +#define NRF_ERROR_STK_BASE_NUM (0x3000) ///< STK error base +/** @} */ + +#define NRF_SUCCESS (NRF_ERROR_BASE_NUM + 0) ///< Successful command +#define NRF_ERROR_SVC_HANDLER_MISSING (NRF_ERROR_BASE_NUM + 1) ///< SVC handler is missing +#define NRF_ERROR_SOFTDEVICE_NOT_ENABLED (NRF_ERROR_BASE_NUM + 2) ///< SoftDevice has not been enabled +#define NRF_ERROR_INTERNAL (NRF_ERROR_BASE_NUM + 3) ///< Internal Error +#define NRF_ERROR_NO_MEM (NRF_ERROR_BASE_NUM + 4) ///< No Memory for operation +#define NRF_ERROR_NOT_FOUND (NRF_ERROR_BASE_NUM + 5) ///< Not found +#define NRF_ERROR_NOT_SUPPORTED (NRF_ERROR_BASE_NUM + 6) ///< Not supported +#define NRF_ERROR_INVALID_PARAM (NRF_ERROR_BASE_NUM + 7) ///< Invalid Parameter +#define NRF_ERROR_INVALID_STATE (NRF_ERROR_BASE_NUM + 8) ///< Invalid state, operation disallowed in this state +#define NRF_ERROR_INVALID_LENGTH (NRF_ERROR_BASE_NUM + 9) ///< Invalid Length +#define NRF_ERROR_INVALID_FLAGS (NRF_ERROR_BASE_NUM + 10) ///< Invalid Flags +#define NRF_ERROR_INVALID_DATA (NRF_ERROR_BASE_NUM + 11) ///< Invalid Data +#define NRF_ERROR_DATA_SIZE (NRF_ERROR_BASE_NUM + 12) ///< Invalid Data size +#define NRF_ERROR_TIMEOUT (NRF_ERROR_BASE_NUM + 13) ///< Operation timed out +#define NRF_ERROR_NULL (NRF_ERROR_BASE_NUM + 14) ///< Null Pointer +#define NRF_ERROR_FORBIDDEN (NRF_ERROR_BASE_NUM + 15) ///< Forbidden Operation +#define NRF_ERROR_INVALID_ADDR (NRF_ERROR_BASE_NUM + 16) ///< Bad Memory Address +#define NRF_ERROR_BUSY (NRF_ERROR_BASE_NUM + 17) ///< Busy +#define NRF_ERROR_CONN_COUNT (NRF_ERROR_BASE_NUM + 18) ///< Maximum connection count exceeded. +#define NRF_ERROR_RESOURCES (NRF_ERROR_BASE_NUM + 19) ///< Not enough resources for operation + +#ifdef __cplusplus +} +#endif +#endif // NRF_ERROR_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error_sdm.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error_sdm.h new file mode 100644 index 0000000..530959b --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error_sdm.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /** + @addtogroup nrf_sdm_api + @{ + @defgroup nrf_sdm_error SoftDevice Manager Error Codes + @{ + + @brief Error definitions for the SDM API +*/ + +/* Header guard */ +#ifndef NRF_ERROR_SDM_H__ +#define NRF_ERROR_SDM_H__ + +#include "nrf_error.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN (NRF_ERROR_SDM_BASE_NUM + 0) ///< Unknown LFCLK source. +#define NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION (NRF_ERROR_SDM_BASE_NUM + 1) ///< Incorrect interrupt configuration (can be caused by using illegal priority levels, or having enabled SoftDevice interrupts). +#define NRF_ERROR_SDM_INCORRECT_CLENR0 (NRF_ERROR_SDM_BASE_NUM + 2) ///< Incorrect CLENR0 (can be caused by erroneous SoftDevice flashing). + +#ifdef __cplusplus +} +#endif +#endif // NRF_ERROR_SDM_H__ + +/** + @} + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error_soc.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error_soc.h new file mode 100644 index 0000000..1e784b8 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_error_soc.h @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup nrf_soc_api + @{ + @defgroup nrf_soc_error SoC Library Error Codes + @{ + + @brief Error definitions for the SoC library + +*/ + +/* Header guard */ +#ifndef NRF_ERROR_SOC_H__ +#define NRF_ERROR_SOC_H__ + +#include "nrf_error.h" +#ifdef __cplusplus +extern "C" { +#endif + +/* Mutex Errors */ +#define NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN (NRF_ERROR_SOC_BASE_NUM + 0) ///< Mutex already taken + +/* NVIC errors */ +#define NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE (NRF_ERROR_SOC_BASE_NUM + 1) ///< NVIC interrupt not available +#define NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED (NRF_ERROR_SOC_BASE_NUM + 2) ///< NVIC interrupt priority not allowed +#define NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN (NRF_ERROR_SOC_BASE_NUM + 3) ///< NVIC should not return + +/* Power errors */ +#define NRF_ERROR_SOC_POWER_MODE_UNKNOWN (NRF_ERROR_SOC_BASE_NUM + 4) ///< Power mode unknown +#define NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN (NRF_ERROR_SOC_BASE_NUM + 5) ///< Power POF threshold unknown +#define NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN (NRF_ERROR_SOC_BASE_NUM + 6) ///< Power off should not return + +/* Rand errors */ +#define NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES (NRF_ERROR_SOC_BASE_NUM + 7) ///< RAND not enough values + +/* PPI errors */ +#define NRF_ERROR_SOC_PPI_INVALID_CHANNEL (NRF_ERROR_SOC_BASE_NUM + 8) ///< Invalid PPI Channel +#define NRF_ERROR_SOC_PPI_INVALID_GROUP (NRF_ERROR_SOC_BASE_NUM + 9) ///< Invalid PPI Group + +#ifdef __cplusplus +} +#endif +#endif // NRF_ERROR_SOC_H__ +/** + @} + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_nvic.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_nvic.h new file mode 100644 index 0000000..f5c7e8e --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_nvic.h @@ -0,0 +1,486 @@ +/* + * Copyright (c) 2016 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @defgroup nrf_nvic_api SoftDevice NVIC API + * @{ + * + * @note In order to use this module, the following code has to be added to a .c file: + * \code + * nrf_nvic_state_t nrf_nvic_state = {0}; + * \endcode + * + * @note Definitions and declarations starting with __ (double underscore) in this header file are + * not intended for direct use by the application. + * + * @brief APIs for the accessing NVIC when using a SoftDevice. + * + */ + +#ifndef NRF_NVIC_H__ +#define NRF_NVIC_H__ + +#include +#include "nrf.h" +#include "nrf_svc.h" +#include "nrf_error.h" +#include "nrf_error_soc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@addtogroup NRF_NVIC_DEFINES Defines + * @{ */ + +/**@defgroup NRF_NVIC_ISER_DEFINES SoftDevice NVIC internal definitions + * @{ */ + +#define __NRF_NVIC_NVMC_IRQn (30) /**< The peripheral ID of the NVMC. IRQ numbers are used to identify peripherals, but the NVMC doesn't have an IRQ number in the MDK. */ + +#define __NRF_NVIC_ISER_COUNT (2) /**< The number of ISER/ICER registers in the NVIC that are used. */ + +/**@brief Interrupts used by the SoftDevice, with IRQn in the range 0-31. */ +#define __NRF_NVIC_SD_IRQS_0 ((uint32_t)( \ + (1U << POWER_CLOCK_IRQn) \ + | (1U << RADIO_IRQn) \ + | (1U << RTC0_IRQn) \ + | (1U << TIMER0_IRQn) \ + | (1U << RNG_IRQn) \ + | (1U << ECB_IRQn) \ + | (1U << CCM_AAR_IRQn) \ + | (1U << TEMP_IRQn) \ + | (1U << __NRF_NVIC_NVMC_IRQn) \ + | (1U << (uint32_t)SWI5_IRQn) \ + )) + +/**@brief Interrupts used by the SoftDevice, with IRQn in the range 32-63. */ +#define __NRF_NVIC_SD_IRQS_1 ((uint32_t)0) + +/**@brief Interrupts available for to application, with IRQn in the range 0-31. */ +#define __NRF_NVIC_APP_IRQS_0 (~__NRF_NVIC_SD_IRQS_0) + +/**@brief Interrupts available for to application, with IRQn in the range 32-63. */ +#define __NRF_NVIC_APP_IRQS_1 (~__NRF_NVIC_SD_IRQS_1) + +/**@} */ + +/**@} */ + +/**@addtogroup NRF_NVIC_VARIABLES Variables + * @{ */ + +/**@brief Type representing the state struct for the SoftDevice NVIC module. */ +typedef struct +{ + uint32_t volatile __irq_masks[__NRF_NVIC_ISER_COUNT]; /**< IRQs enabled by the application in the NVIC. */ + uint32_t volatile __cr_flag; /**< Non-zero if already in a critical region */ +} nrf_nvic_state_t; + +/**@brief Variable keeping the state for the SoftDevice NVIC module. This must be declared in an + * application source file. */ +extern nrf_nvic_state_t nrf_nvic_state; + +/**@} */ + +/**@addtogroup NRF_NVIC_INTERNAL_FUNCTIONS SoftDevice NVIC internal functions + * @{ */ + +/**@brief Disables IRQ interrupts globally, including the SoftDevice's interrupts. + * + * @retval The value of PRIMASK prior to disabling the interrupts. + */ +__STATIC_INLINE int __sd_nvic_irq_disable(void); + +/**@brief Enables IRQ interrupts globally, including the SoftDevice's interrupts. + */ +__STATIC_INLINE void __sd_nvic_irq_enable(void); + +/**@brief Checks if IRQn is available to application + * @param[in] IRQn IRQ to check + * + * @retval 1 (true) if the IRQ to check is available to the application + */ +__STATIC_INLINE uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn); + +/**@brief Checks if priority is available to application + * @param[in] priority priority to check + * + * @retval 1 (true) if the priority to check is available to the application + */ +__STATIC_INLINE uint32_t __sd_nvic_is_app_accessible_priority(uint32_t priority); + +/**@} */ + +/**@addtogroup NRF_NVIC_FUNCTIONS SoftDevice NVIC public functions + * @{ */ + +/**@brief Enable External Interrupt. + * @note Corresponds to NVIC_EnableIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_EnableIRQ documentation in CMSIS. + * + * @retval ::NRF_SUCCESS The interrupt was enabled. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt has a priority not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn); + +/**@brief Disable External Interrupt. + * @note Corresponds to NVIC_DisableIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_DisableIRQ documentation in CMSIS. + * + * @retval ::NRF_SUCCESS The interrupt was disabled. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn); + +/**@brief Get Pending Interrupt. + * @note Corresponds to NVIC_GetPendingIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_GetPendingIRQ documentation in CMSIS. + * @param[out] p_pending_irq Return value from NVIC_GetPendingIRQ. + * + * @retval ::NRF_SUCCESS The interrupt is available for the application. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq); + +/**@brief Set Pending Interrupt. + * @note Corresponds to NVIC_SetPendingIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_SetPendingIRQ documentation in CMSIS. + * + * @retval ::NRF_SUCCESS The interrupt is set pending. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn); + +/**@brief Clear Pending Interrupt. + * @note Corresponds to NVIC_ClearPendingIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_ClearPendingIRQ documentation in CMSIS. + * + * @retval ::NRF_SUCCESS The interrupt pending flag is cleared. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn); + +/**@brief Set Interrupt Priority. + * @note Corresponds to NVIC_SetPriority in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * @pre Priority is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_SetPriority documentation in CMSIS. + * @param[in] priority A valid IRQ priority for use by the application. + * + * @retval ::NRF_SUCCESS The interrupt and priority level is available for the application. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt priority is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority); + +/**@brief Get Interrupt Priority. + * @note Corresponds to NVIC_GetPriority in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_GetPriority documentation in CMSIS. + * @param[out] p_priority Return value from NVIC_GetPriority. + * + * @retval ::NRF_SUCCESS The interrupt priority is returned in p_priority. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE - IRQn is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority); + +/**@brief System Reset. + * @note Corresponds to NVIC_SystemReset in CMSIS. + * + * @retval ::NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN + */ +__STATIC_INLINE uint32_t sd_nvic_SystemReset(void); + +/**@brief Enter critical region. + * + * @post Application interrupts will be disabled. + * @note sd_nvic_critical_region_enter() and ::sd_nvic_critical_region_exit() must be called in matching pairs inside each + * execution context + * @sa sd_nvic_critical_region_exit + * + * @param[out] p_is_nested_critical_region If 1, the application is now in a nested critical region. + * + * @retval ::NRF_SUCCESS + */ +__STATIC_INLINE uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region); + +/**@brief Exit critical region. + * + * @pre Application has entered a critical region using ::sd_nvic_critical_region_enter. + * @post If not in a nested critical region, the application interrupts will restored to the state before ::sd_nvic_critical_region_enter was called. + * + * @param[in] is_nested_critical_region If this is set to 1, the critical region won't be exited. @sa sd_nvic_critical_region_enter. + * + * @retval ::NRF_SUCCESS + */ +__STATIC_INLINE uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region); + +/**@} */ + +#ifndef SUPPRESS_INLINE_IMPLEMENTATION + +__STATIC_INLINE int __sd_nvic_irq_disable(void) +{ + int pm = __get_PRIMASK(); + __disable_irq(); + return pm; +} + +__STATIC_INLINE void __sd_nvic_irq_enable(void) +{ + __enable_irq(); +} + +__STATIC_INLINE uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn) +{ + if (IRQn < 32) + { + return ((1UL<= (1 << __NVIC_PRIO_BITS)) + { + return 0; + } + if( priority == 0 + || priority == 1 + || priority == 4 + ) + { + return 0; + } + return 1; +} + + +__STATIC_INLINE uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn) +{ + if (!__sd_nvic_app_accessible_irq(IRQn)) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } + if (!__sd_nvic_is_app_accessible_priority(NVIC_GetPriority(IRQn))) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED; + } + + if (nrf_nvic_state.__cr_flag) + { + nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] |= (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F)); + } + else + { + NVIC_EnableIRQ(IRQn); + } + return NRF_SUCCESS; +} + +__STATIC_INLINE uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn) +{ + if (!__sd_nvic_app_accessible_irq(IRQn)) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } + + if (nrf_nvic_state.__cr_flag) + { + nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] &= ~(1UL << ((uint32_t)(IRQn) & 0x1F)); + } + else + { + NVIC_DisableIRQ(IRQn); + } + + return NRF_SUCCESS; +} + +__STATIC_INLINE uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq) +{ + if (__sd_nvic_app_accessible_irq(IRQn)) + { + *p_pending_irq = NVIC_GetPendingIRQ(IRQn); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } +} + +__STATIC_INLINE uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn) +{ + if (__sd_nvic_app_accessible_irq(IRQn)) + { + NVIC_SetPendingIRQ(IRQn); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } +} + +__STATIC_INLINE uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn) +{ + if (__sd_nvic_app_accessible_irq(IRQn)) + { + NVIC_ClearPendingIRQ(IRQn); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } +} + +__STATIC_INLINE uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if (!__sd_nvic_app_accessible_irq(IRQn)) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } + + if (!__sd_nvic_is_app_accessible_priority(priority)) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED; + } + + NVIC_SetPriority(IRQn, (uint32_t)priority); + return NRF_SUCCESS; +} + +__STATIC_INLINE uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority) +{ + if (__sd_nvic_app_accessible_irq(IRQn)) + { + *p_priority = (NVIC_GetPriority(IRQn) & 0xFF); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } +} + +__STATIC_INLINE uint32_t sd_nvic_SystemReset(void) +{ + NVIC_SystemReset(); + return NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN; +} + +__STATIC_INLINE uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region) +{ + int was_masked = __sd_nvic_irq_disable(); + if (!nrf_nvic_state.__cr_flag) + { + nrf_nvic_state.__cr_flag = 1; + nrf_nvic_state.__irq_masks[0] = ( NVIC->ICER[0] & __NRF_NVIC_APP_IRQS_0 ); + NVIC->ICER[0] = __NRF_NVIC_APP_IRQS_0; + nrf_nvic_state.__irq_masks[1] = ( NVIC->ICER[1] & __NRF_NVIC_APP_IRQS_1 ); + NVIC->ICER[1] = __NRF_NVIC_APP_IRQS_1; + *p_is_nested_critical_region = 0; + } + else + { + *p_is_nested_critical_region = 1; + } + if (!was_masked) + { + __sd_nvic_irq_enable(); + } + return NRF_SUCCESS; +} + +__STATIC_INLINE uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region) +{ + if (nrf_nvic_state.__cr_flag && (is_nested_critical_region == 0)) + { + int was_masked = __sd_nvic_irq_disable(); + NVIC->ISER[0] = nrf_nvic_state.__irq_masks[0]; + NVIC->ISER[1] = nrf_nvic_state.__irq_masks[1]; + nrf_nvic_state.__cr_flag = 0; + if (!was_masked) + { + __sd_nvic_irq_enable(); + } + } + + return NRF_SUCCESS; +} + +#endif /* SUPPRESS_INLINE_IMPLEMENTATION */ + +#ifdef __cplusplus +} +#endif + +#endif // NRF_NVIC_H__ + +/**@} */ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_sdm.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_sdm.h new file mode 100644 index 0000000..8c48d93 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_sdm.h @@ -0,0 +1,358 @@ +/* + * Copyright (c) 2015 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @defgroup nrf_sdm_api SoftDevice Manager API + @{ + + @brief APIs for SoftDevice management. + +*/ + +#ifndef NRF_SDM_H__ +#define NRF_SDM_H__ + +#include +#include "nrf.h" +#include "nrf_svc.h" +#include "nrf_error.h" +#include "nrf_error_sdm.h" +#include "nrf_soc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup NRF_SDM_DEFINES Defines + * @{ */ +#ifdef NRFSOC_DOXYGEN +/// Declared in nrf_mbr.h +#define MBR_SIZE 0 +#warning test +#endif + +/** @brief The major version for the SoftDevice binary distributed with this header file. */ +#define SD_MAJOR_VERSION (6) + +/** @brief The minor version for the SoftDevice binary distributed with this header file. */ +#define SD_MINOR_VERSION (0) + +/** @brief The bugfix version for the SoftDevice binary distributed with this header file. */ +#define SD_BUGFIX_VERSION (0) + +/** @brief The full version number for the SoftDevice binary this header file was distributed + * with, as a decimal number in the form Mmmmbbb, where: + * - M is major version (one or more digits) + * - mmm is minor version (three digits) + * - bbb is bugfix version (three digits). */ +#define SD_VERSION (SD_MAJOR_VERSION * 1000000 + SD_MINOR_VERSION * 1000 + SD_BUGFIX_VERSION) + +/** @brief SoftDevice Manager SVC Base number. */ +#define SDM_SVC_BASE 0x10 + +/** @brief SoftDevice unique string size in bytes. */ +#define SD_UNIQUE_STR_SIZE 20 + +/** @brief Invalid info field. Returned when an info field does not exist. */ +#define SDM_INFO_FIELD_INVALID (0) + +/** @brief Defines the SoftDevice Information Structure location (address) as an offset from +the start of the SoftDevice (without MBR)*/ +#define SOFTDEVICE_INFO_STRUCT_OFFSET (0x2000) + +/** @brief Defines the absolute SoftDevice Information Structure location (address) when the + * SoftDevice is installed just above the MBR (the usual case). */ +#define SOFTDEVICE_INFO_STRUCT_ADDRESS (SOFTDEVICE_INFO_STRUCT_OFFSET + MBR_SIZE) + +/** @brief Defines the offset for the SoftDevice Information Structure size value relative to the + * SoftDevice base address. The size value is of type uint8_t. */ +#define SD_INFO_STRUCT_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET) + +/** @brief Defines the offset for the SoftDevice size value relative to the SoftDevice base address. + * The size value is of type uint32_t. */ +#define SD_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x08) + +/** @brief Defines the offset for FWID value relative to the SoftDevice base address. The FWID value + * is of type uint16_t. */ +#define SD_FWID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x0C) + +/** @brief Defines the offset for the SoftDevice ID relative to the SoftDevice base address. The ID + * is of type uint32_t. */ +#define SD_ID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x10) + +/** @brief Defines the offset for the SoftDevice version relative to the SoftDevice base address in + * the same format as @ref SD_VERSION, stored as an uint32_t. */ +#define SD_VERSION_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x14) + +/** @brief Defines the offset for the SoftDevice unique string relative to the SoftDevice base address. + * The SD_UNIQUE_STR is stored as an array of uint8_t. The size of array is @ref SD_UNIQUE_STR_SIZE. + */ +#define SD_UNIQUE_STR_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x18) + +/** @brief Defines a macro for retrieving the actual SoftDevice Information Structure size value + * from a given base address. Use @ref MBR_SIZE as the argument when the SoftDevice is + * installed just above the MBR (the usual case). */ +#define SD_INFO_STRUCT_SIZE_GET(baseaddr) (*((uint8_t *) ((baseaddr) + SD_INFO_STRUCT_SIZE_OFFSET))) + +/** @brief Defines a macro for retrieving the actual SoftDevice size value from a given base + * address. Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above + * the MBR (the usual case). */ +#define SD_SIZE_GET(baseaddr) (*((uint32_t *) ((baseaddr) + SD_SIZE_OFFSET))) + +/** @brief Defines a macro for retrieving the actual FWID value from a given base address. Use + * @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the usual + * case). */ +#define SD_FWID_GET(baseaddr) (*((uint16_t *) ((baseaddr) + SD_FWID_OFFSET))) + +/** @brief Defines a macro for retrieving the actual SoftDevice ID from a given base address. Use + * @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the + * usual case). */ +#define SD_ID_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_ID_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \ + ? (*((uint32_t *) ((baseaddr) + SD_ID_OFFSET))) : SDM_INFO_FIELD_INVALID) + +/** @brief Defines a macro for retrieving the actual SoftDevice version from a given base address. + * Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR + * (the usual case). */ +#define SD_VERSION_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_VERSION_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \ + ? (*((uint32_t *) ((baseaddr) + SD_VERSION_OFFSET))) : SDM_INFO_FIELD_INVALID) + +/** @brief Defines a macro for retrieving the address of SoftDevice unique str based on a given base address. + * Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR + * (the usual case). */ +#define SD_UNIQUE_STR_ADDR_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_UNIQUE_STR_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \ + ? (((uint8_t *) ((baseaddr) + SD_UNIQUE_STR_OFFSET))) : SDM_INFO_FIELD_INVALID) + +/**@defgroup NRF_FAULT_ID_RANGES Fault ID ranges + * @{ */ +#define NRF_FAULT_ID_SD_RANGE_START 0x00000000 /**< SoftDevice ID range start. */ +#define NRF_FAULT_ID_APP_RANGE_START 0x00001000 /**< Application ID range start. */ +/**@} */ + +/**@defgroup NRF_FAULT_IDS Fault ID types + * @{ */ +#define NRF_FAULT_ID_SD_ASSERT (NRF_FAULT_ID_SD_RANGE_START + 1) /**< SoftDevice assertion. The info parameter is reserved for future used. */ +#define NRF_FAULT_ID_APP_MEMACC (NRF_FAULT_ID_APP_RANGE_START + 1) /**< Application invalid memory access. The info parameter will contain 0x00000000, + in case of SoftDevice RAM access violation. In case of SoftDevice peripheral + register violation the info parameter will contain the sub-region number of + PREGION[0], on whose address range the disallowed write access caused the + memory access fault. */ +/**@} */ + +/** @} */ + +/** @addtogroup NRF_SDM_ENUMS Enumerations + * @{ */ + +/**@brief nRF SoftDevice Manager API SVC numbers. */ +enum NRF_SD_SVCS +{ + SD_SOFTDEVICE_ENABLE = SDM_SVC_BASE, /**< ::sd_softdevice_enable */ + SD_SOFTDEVICE_DISABLE, /**< ::sd_softdevice_disable */ + SD_SOFTDEVICE_IS_ENABLED, /**< ::sd_softdevice_is_enabled */ + SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, /**< ::sd_softdevice_vector_table_base_set */ + SVC_SDM_LAST /**< Placeholder for last SDM SVC */ +}; + +/** @} */ + +/** @addtogroup NRF_SDM_DEFINES Defines + * @{ */ + +/**@defgroup NRF_CLOCK_LF_ACCURACY Clock accuracy + * @{ */ + +#define NRF_CLOCK_LF_ACCURACY_250_PPM (0) /**< Default: 250 ppm */ +#define NRF_CLOCK_LF_ACCURACY_500_PPM (1) /**< 500 ppm */ +#define NRF_CLOCK_LF_ACCURACY_150_PPM (2) /**< 150 ppm */ +#define NRF_CLOCK_LF_ACCURACY_100_PPM (3) /**< 100 ppm */ +#define NRF_CLOCK_LF_ACCURACY_75_PPM (4) /**< 75 ppm */ +#define NRF_CLOCK_LF_ACCURACY_50_PPM (5) /**< 50 ppm */ +#define NRF_CLOCK_LF_ACCURACY_30_PPM (6) /**< 30 ppm */ +#define NRF_CLOCK_LF_ACCURACY_20_PPM (7) /**< 20 ppm */ +#define NRF_CLOCK_LF_ACCURACY_10_PPM (8) /**< 10 ppm */ +#define NRF_CLOCK_LF_ACCURACY_5_PPM (9) /**< 5 ppm */ +#define NRF_CLOCK_LF_ACCURACY_2_PPM (10) /**< 2 ppm */ +#define NRF_CLOCK_LF_ACCURACY_1_PPM (11) /**< 1 ppm */ + +/** @} */ + +/**@defgroup NRF_CLOCK_LF_SRC Possible LFCLK oscillator sources + * @{ */ + +#define NRF_CLOCK_LF_SRC_RC (0) /**< LFCLK RC oscillator. */ +#define NRF_CLOCK_LF_SRC_XTAL (1) /**< LFCLK crystal oscillator. */ +#define NRF_CLOCK_LF_SRC_SYNTH (2) /**< LFCLK Synthesized from HFCLK. */ + +/** @} */ + +/** @} */ + +/** @addtogroup NRF_SDM_TYPES Types + * @{ */ + +/**@brief Type representing LFCLK oscillator source. */ +typedef struct +{ + uint8_t source; /**< LF oscillator clock source, see @ref NRF_CLOCK_LF_SRC. */ + uint8_t rc_ctiv; /**< Only for ::NRF_CLOCK_LF_SRC_RC: Calibration timer interval in 1/4 second + units (nRF52: 1-32). + @note To avoid excessive clock drift, 0.5 degrees Celsius is the + maximum temperature change allowed in one calibration timer + interval. The interval should be selected to ensure this. + + @note Must be 0 if source is not ::NRF_CLOCK_LF_SRC_RC. */ + uint8_t rc_temp_ctiv; /**< Only for ::NRF_CLOCK_LF_SRC_RC: How often (in number of calibration + intervals) the RC oscillator shall be calibrated if the temperature + hasn't changed. + 0: Always calibrate even if the temperature hasn't changed. + 1: Only calibrate if the temperature has changed (legacy - nRF51 only). + 2-33: Check the temperature and only calibrate if it has changed, + however calibration will take place every rc_temp_ctiv + intervals in any case. + + @note Must be 0 if source is not ::NRF_CLOCK_LF_SRC_RC. + + @note For nRF52, the application must ensure calibration at least once + every 8 seconds to ensure +/-500 ppm clock stability. The + recommended configuration for ::NRF_CLOCK_LF_SRC_RC on nRF52 is + rc_ctiv=16 and rc_temp_ctiv=2. This will ensure calibration at + least once every 8 seconds and for temperature changes of 0.5 + degrees Celsius every 4 seconds. See the Product Specification + for the nRF52 device being used for more information.*/ + uint8_t accuracy; /**< External clock accuracy used in the LL to compute timing + windows, see @ref NRF_CLOCK_LF_ACCURACY.*/ +} nrf_clock_lf_cfg_t; + +/**@brief Fault Handler type. + * + * When certain unrecoverable errors occur within the application or SoftDevice the fault handler will be called back. + * The protocol stack will be in an undefined state when this happens and the only way to recover will be to + * perform a reset, using e.g. CMSIS NVIC_SystemReset(). + * If the application returns from the fault handler the SoftDevice will call NVIC_SystemReset(). + * + * @note This callback is executed in HardFault context, thus SVC functions cannot be called from the fault callback. + * + * @param[in] id Fault identifier. See @ref NRF_FAULT_IDS. + * @param[in] pc The program counter of the instruction that triggered the fault. + * @param[in] info Optional additional information regarding the fault. Refer to each Fault identifier for details. + * + * @note When id is set to @ref NRF_FAULT_ID_APP_MEMACC, pc will contain the address of the instruction being executed at the time when + * the fault is detected by the CPU. The CPU program counter may have advanced up to 2 instructions (no branching) after the one that triggered the fault. + */ +typedef void (*nrf_fault_handler_t)(uint32_t id, uint32_t pc, uint32_t info); + +/** @} */ + +/** @addtogroup NRF_SDM_FUNCTIONS Functions + * @{ */ + +/**@brief Enables the SoftDevice and by extension the protocol stack. + * + * @note Some care must be taken if a low frequency clock source is already running when calling this function: + * If the LF clock has a different source then the one currently running, it will be stopped. Then, the new + * clock source will be started. + * + * @note This function has no effect when returning with an error. + * + * @post If return code is ::NRF_SUCCESS + * - SoC library and protocol stack APIs are made available. + * - A portion of RAM will be unavailable (see relevant SDS documentation). + * - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation). + * - Interrupts will not arrive from protected peripherals or interrupts. + * - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the SoftDevice. + * - Interrupt latency may be affected by the SoftDevice (see relevant SDS documentation). + * - Chosen low frequency clock source will be running. + * + * @param p_clock_lf_cfg Low frequency clock source and accuracy. + If NULL the clock will be configured as an RC source with rc_ctiv = 16 and .rc_temp_ctiv = 2 + In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock. + * @param fault_handler Callback to be invoked in case of fault, cannot be NULL. + * + * @retval ::NRF_SUCCESS + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or NULL pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE SoftDevice is already enabled, and the clock source and fault handler cannot be updated. + * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDevice interrupt is already enabled, or an enabled interrupt has an illegal priority level. + * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid clock source configuration supplied in p_clock_lf_cfg. + */ +SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler)); + + +/**@brief Disables the SoftDevice and by extension the protocol stack. + * + * Idempotent function to disable the SoftDevice. + * + * @post SoC library and protocol stack APIs are made unavailable. + * @post All interrupts that was protected by the SoftDevice will be disabled and initialized to priority 0 (highest). + * @post All peripherals used by the SoftDevice will be reset to default values. + * @post All of RAM become available. + * @post All interrupts are forwarded to the application. + * @post LFCLK source chosen in ::sd_softdevice_enable will be left running. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_SOFTDEVICE_DISABLE, uint32_t, sd_softdevice_disable(void)); + +/**@brief Check if the SoftDevice is enabled. + * + * @param[out] p_softdevice_enabled If the SoftDevice is enabled: 1 else 0. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_SOFTDEVICE_IS_ENABLED, uint32_t, sd_softdevice_is_enabled(uint8_t * p_softdevice_enabled)); + +/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the SoftDevice + * + * This function is only intended to be called when a bootloader is enabled. + * + * @param[in] address The base address of the interrupt vector table for forwarded interrupts. + + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, uint32_t, sd_softdevice_vector_table_base_set(uint32_t address)); + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // NRF_SDM_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_soc.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_soc.h new file mode 100644 index 0000000..2c4d958 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_soc.h @@ -0,0 +1,964 @@ +/* + * Copyright (c) 2015 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @defgroup nrf_soc_api SoC Library API + * @{ + * + * @brief APIs for the SoC library. + * + */ + +#ifndef NRF_SOC_H__ +#define NRF_SOC_H__ + +#include +#include "nrf.h" +#include "nrf_svc.h" +#include "nrf_error.h" +#include "nrf_error_soc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@addtogroup NRF_SOC_DEFINES Defines + * @{ */ + +/**@brief The number of the lowest SVC number reserved for the SoC library. */ +#define SOC_SVC_BASE (0x20) /**< Base value for SVCs that are available when the SoftDevice is disabled. */ +#define SOC_SVC_BASE_NOT_AVAILABLE (0x2C) /**< Base value for SVCs that are not available when the SoftDevice is disabled. */ + +/**@brief Guaranteed time for application to process radio inactive notification. */ +#define NRF_RADIO_NOTIFICATION_INACTIVE_GUARANTEED_TIME_US (62) + +/**@brief The minimum allowed timeslot extension time. */ +#define NRF_RADIO_MINIMUM_TIMESLOT_LENGTH_EXTENSION_TIME_US (200) + +/**@brief The maximum processing time to handle a timeslot extension. */ +#define NRF_RADIO_MAX_EXTENSION_PROCESSING_TIME_US (17) + +/**@brief The latest time before the end of a timeslot the timeslot can be extended. */ +#define NRF_RADIO_MIN_EXTENSION_MARGIN_US (79) + +#define SOC_ECB_KEY_LENGTH (16) /**< ECB key length. */ +#define SOC_ECB_CLEARTEXT_LENGTH (16) /**< ECB cleartext length. */ +#define SOC_ECB_CIPHERTEXT_LENGTH (SOC_ECB_CLEARTEXT_LENGTH) /**< ECB ciphertext length. */ + +#define SD_EVT_IRQn (SWI2_IRQn) /**< SoftDevice Event IRQ number. Used for both protocol events and SoC events. */ +#define SD_EVT_IRQHandler (SWI2_IRQHandler) /**< SoftDevice Event IRQ handler. Used for both protocol events and SoC events. + The default interrupt priority for this handler is set to 4 */ +#define RADIO_NOTIFICATION_IRQn (SWI1_IRQn) /**< The radio notification IRQ number. */ +#define RADIO_NOTIFICATION_IRQHandler (SWI1_IRQHandler) /**< The radio notification IRQ handler. + The default interrupt priority for this handler is set to 4 */ +#define NRF_RADIO_LENGTH_MIN_US (100) /**< The shortest allowed radio timeslot, in microseconds. */ +#define NRF_RADIO_LENGTH_MAX_US (100000) /**< The longest allowed radio timeslot, in microseconds. */ + +#define NRF_RADIO_DISTANCE_MAX_US (128000000UL - 1UL) /**< The longest timeslot distance, in microseconds, allowed for the distance parameter (see @ref nrf_radio_request_normal_t) in the request. */ + +#define NRF_RADIO_EARLIEST_TIMEOUT_MAX_US (128000000UL - 1UL) /**< The longest timeout, in microseconds, allowed when requesting the earliest possible timeslot. */ + +#define NRF_RADIO_START_JITTER_US (2) /**< The maximum jitter in @ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START relative to the requested start time. */ + +/**@} */ + +/**@addtogroup NRF_SOC_ENUMS Enumerations + * @{ */ + +/**@brief The SVC numbers used by the SVC functions in the SoC library. */ +enum NRF_SOC_SVCS +{ + SD_PPI_CHANNEL_ENABLE_GET = SOC_SVC_BASE, + SD_PPI_CHANNEL_ENABLE_SET = SOC_SVC_BASE + 1, + SD_PPI_CHANNEL_ENABLE_CLR = SOC_SVC_BASE + 2, + SD_PPI_CHANNEL_ASSIGN = SOC_SVC_BASE + 3, + SD_PPI_GROUP_TASK_ENABLE = SOC_SVC_BASE + 4, + SD_PPI_GROUP_TASK_DISABLE = SOC_SVC_BASE + 5, + SD_PPI_GROUP_ASSIGN = SOC_SVC_BASE + 6, + SD_PPI_GROUP_GET = SOC_SVC_BASE + 7, + SD_FLASH_PAGE_ERASE = SOC_SVC_BASE + 8, + SD_FLASH_WRITE = SOC_SVC_BASE + 9, + SD_FLASH_PROTECT = SOC_SVC_BASE + 10, + SD_PROTECTED_REGISTER_WRITE = SOC_SVC_BASE + 11, + SD_MUTEX_NEW = SOC_SVC_BASE_NOT_AVAILABLE, + SD_MUTEX_ACQUIRE = SOC_SVC_BASE_NOT_AVAILABLE + 1, + SD_MUTEX_RELEASE = SOC_SVC_BASE_NOT_AVAILABLE + 2, + SD_RAND_APPLICATION_POOL_CAPACITY_GET = SOC_SVC_BASE_NOT_AVAILABLE + 3, + SD_RAND_APPLICATION_BYTES_AVAILABLE_GET = SOC_SVC_BASE_NOT_AVAILABLE + 4, + SD_RAND_APPLICATION_VECTOR_GET = SOC_SVC_BASE_NOT_AVAILABLE + 5, + SD_POWER_MODE_SET = SOC_SVC_BASE_NOT_AVAILABLE + 6, + SD_POWER_SYSTEM_OFF = SOC_SVC_BASE_NOT_AVAILABLE + 7, + SD_POWER_RESET_REASON_GET = SOC_SVC_BASE_NOT_AVAILABLE + 8, + SD_POWER_RESET_REASON_CLR = SOC_SVC_BASE_NOT_AVAILABLE + 9, + SD_POWER_POF_ENABLE = SOC_SVC_BASE_NOT_AVAILABLE + 10, + SD_POWER_POF_THRESHOLD_SET = SOC_SVC_BASE_NOT_AVAILABLE + 11, + SD_POWER_RAM_POWER_SET = SOC_SVC_BASE_NOT_AVAILABLE + 13, + SD_POWER_RAM_POWER_CLR = SOC_SVC_BASE_NOT_AVAILABLE + 14, + SD_POWER_RAM_POWER_GET = SOC_SVC_BASE_NOT_AVAILABLE + 15, + SD_POWER_GPREGRET_SET = SOC_SVC_BASE_NOT_AVAILABLE + 16, + SD_POWER_GPREGRET_CLR = SOC_SVC_BASE_NOT_AVAILABLE + 17, + SD_POWER_GPREGRET_GET = SOC_SVC_BASE_NOT_AVAILABLE + 18, + SD_POWER_DCDC_MODE_SET = SOC_SVC_BASE_NOT_AVAILABLE + 19, + SD_APP_EVT_WAIT = SOC_SVC_BASE_NOT_AVAILABLE + 21, + SD_CLOCK_HFCLK_REQUEST = SOC_SVC_BASE_NOT_AVAILABLE + 22, + SD_CLOCK_HFCLK_RELEASE = SOC_SVC_BASE_NOT_AVAILABLE + 23, + SD_CLOCK_HFCLK_IS_RUNNING = SOC_SVC_BASE_NOT_AVAILABLE + 24, + SD_RADIO_NOTIFICATION_CFG_SET = SOC_SVC_BASE_NOT_AVAILABLE + 25, + SD_ECB_BLOCK_ENCRYPT = SOC_SVC_BASE_NOT_AVAILABLE + 26, + SD_ECB_BLOCKS_ENCRYPT = SOC_SVC_BASE_NOT_AVAILABLE + 27, + SD_RADIO_SESSION_OPEN = SOC_SVC_BASE_NOT_AVAILABLE + 28, + SD_RADIO_SESSION_CLOSE = SOC_SVC_BASE_NOT_AVAILABLE + 29, + SD_RADIO_REQUEST = SOC_SVC_BASE_NOT_AVAILABLE + 30, + SD_EVT_GET = SOC_SVC_BASE_NOT_AVAILABLE + 31, + SD_TEMP_GET = SOC_SVC_BASE_NOT_AVAILABLE + 32, + SVC_SOC_LAST = SOC_SVC_BASE_NOT_AVAILABLE + 37 +}; + +/**@brief Possible values of a ::nrf_mutex_t. */ +enum NRF_MUTEX_VALUES +{ + NRF_MUTEX_FREE, + NRF_MUTEX_TAKEN +}; + +/**@brief Power modes. */ +enum NRF_POWER_MODES +{ + NRF_POWER_MODE_CONSTLAT, /**< Constant latency mode. See power management in the reference manual. */ + NRF_POWER_MODE_LOWPWR /**< Low power mode. See power management in the reference manual. */ +}; + + +/**@brief Power failure thresholds */ +enum NRF_POWER_THRESHOLDS +{ + NRF_POWER_THRESHOLD_V17 = 4UL, /**< 1.7 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V18, /**< 1.8 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V19, /**< 1.9 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V20, /**< 2.0 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V21, /**< 2.1 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V22, /**< 2.2 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V23, /**< 2.3 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V24, /**< 2.4 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V25, /**< 2.5 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V26, /**< 2.6 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V27, /**< 2.7 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V28 /**< 2.8 Volts power failure threshold. */ +}; + + + +/**@brief DC/DC converter modes. */ +enum NRF_POWER_DCDC_MODES +{ + NRF_POWER_DCDC_DISABLE, /**< The DCDC is disabled. */ + NRF_POWER_DCDC_ENABLE /**< The DCDC is enabled. */ +}; + +/**@brief Radio notification distances. */ +enum NRF_RADIO_NOTIFICATION_DISTANCES +{ + NRF_RADIO_NOTIFICATION_DISTANCE_NONE = 0, /**< The event does not have a notification. */ + NRF_RADIO_NOTIFICATION_DISTANCE_800US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_1740US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_2680US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_3620US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_4560US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_5500US /**< The distance from the active notification to start of radio activity. */ +}; + + +/**@brief Radio notification types. */ +enum NRF_RADIO_NOTIFICATION_TYPES +{ + NRF_RADIO_NOTIFICATION_TYPE_NONE = 0, /**< The event does not have a radio notification signal. */ + NRF_RADIO_NOTIFICATION_TYPE_INT_ON_ACTIVE, /**< Using interrupt for notification when the radio will be enabled. */ + NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE, /**< Using interrupt for notification when the radio has been disabled. */ + NRF_RADIO_NOTIFICATION_TYPE_INT_ON_BOTH, /**< Using interrupt for notification both when the radio will be enabled and disabled. */ +}; + +/**@brief The Radio signal callback types. */ +enum NRF_RADIO_CALLBACK_SIGNAL_TYPE +{ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_START, /**< This signal indicates the start of the radio timeslot. */ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_TIMER0, /**< This signal indicates the NRF_TIMER0 interrupt. */ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO, /**< This signal indicates the NRF_RADIO interrupt. */ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_FAILED, /**< This signal indicates extend action failed. */ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_SUCCEEDED /**< This signal indicates extend action succeeded. */ +}; + +/**@brief The actions requested by the signal callback. + * + * This code gives the SOC instructions about what action to take when the signal callback has + * returned. + */ +enum NRF_RADIO_SIGNAL_CALLBACK_ACTION +{ + NRF_RADIO_SIGNAL_CALLBACK_ACTION_NONE, /**< Return without action. */ + NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND, /**< Request an extension of the current + timeslot. Maximum execution time for this action: + @ref NRF_RADIO_MAX_EXTENSION_PROCESSING_TIME_US. + This action must be started at least + @ref NRF_RADIO_MIN_EXTENSION_MARGIN_US before + the end of the timeslot. */ + NRF_RADIO_SIGNAL_CALLBACK_ACTION_END, /**< End the current radio timeslot. */ + NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END /**< Request a new radio timeslot and end the current timeslot. */ +}; + +/**@brief Radio timeslot high frequency clock source configuration. */ +enum NRF_RADIO_HFCLK_CFG +{ + NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED, /**< The SoftDevice will guarantee that the high frequency clock source is the + external crystal for the whole duration of the timeslot. This should be the + preferred option for events that use the radio or require high timing accuracy. + @note The SoftDevice will automatically turn on and off the external crystal, + at the beginning and end of the timeslot, respectively. The crystal may also + intentionally be left running after the timeslot, in cases where it is needed + by the SoftDevice shortly after the end of the timeslot. */ + NRF_RADIO_HFCLK_CFG_NO_GUARANTEE /**< This configuration allows for earlier and tighter scheduling of timeslots. + The RC oscillator may be the clock source in part or for the whole duration of the timeslot. + The RC oscillator's accuracy must therefore be taken into consideration. + @note If the application will use the radio peripheral in timeslots with this configuration, + it must make sure that the crystal is running and stable before starting the radio. */ +}; + +/**@brief Radio timeslot priorities. */ +enum NRF_RADIO_PRIORITY +{ + NRF_RADIO_PRIORITY_HIGH, /**< High (equal priority as the normal connection priority of the SoftDevice stack(s)). */ + NRF_RADIO_PRIORITY_NORMAL, /**< Normal (equal priority as the priority of secondary activities of the SoftDevice stack(s)). */ +}; + +/**@brief Radio timeslot request type. */ +enum NRF_RADIO_REQUEST_TYPE +{ + NRF_RADIO_REQ_TYPE_EARLIEST, /**< Request radio timeslot as early as possible. This should always be used for the first request in a session. */ + NRF_RADIO_REQ_TYPE_NORMAL /**< Normal radio timeslot request. */ +}; + +/**@brief SoC Events. */ +enum NRF_SOC_EVTS +{ + NRF_EVT_HFCLKSTARTED, /**< Event indicating that the HFCLK has started. */ + NRF_EVT_POWER_FAILURE_WARNING, /**< Event indicating that a power failure warning has occurred. */ + NRF_EVT_FLASH_OPERATION_SUCCESS, /**< Event indicating that the ongoing flash operation has completed successfully. */ + NRF_EVT_FLASH_OPERATION_ERROR, /**< Event indicating that the ongoing flash operation has timed out with an error. */ + NRF_EVT_RADIO_BLOCKED, /**< Event indicating that a radio timeslot was blocked. */ + NRF_EVT_RADIO_CANCELED, /**< Event indicating that a radio timeslot was canceled by SoftDevice. */ + NRF_EVT_RADIO_SIGNAL_CALLBACK_INVALID_RETURN, /**< Event indicating that a radio timeslot signal callback handler return was invalid. */ + NRF_EVT_RADIO_SESSION_IDLE, /**< Event indicating that a radio timeslot session is idle. */ + NRF_EVT_RADIO_SESSION_CLOSED, /**< Event indicating that a radio timeslot session is closed. */ + NRF_EVT_NUMBER_OF_EVTS +}; + +/**@} */ + + +/**@addtogroup NRF_SOC_STRUCTURES Structures + * @{ */ + +/**@brief Represents a mutex for use with the nrf_mutex functions. + * @note Accessing the value directly is not safe, use the mutex functions! + */ +typedef volatile uint8_t nrf_mutex_t; + +/**@brief Parameters for a request for a timeslot as early as possible. */ +typedef struct +{ + uint8_t hfclk; /**< High frequency clock source, see @ref NRF_RADIO_HFCLK_CFG. */ + uint8_t priority; /**< The radio timeslot priority, see @ref NRF_RADIO_PRIORITY. */ + uint32_t length_us; /**< The radio timeslot length (in the range 100 to 100,000] microseconds). */ + uint32_t timeout_us; /**< Longest acceptable delay until the start of the requested timeslot (up to @ref NRF_RADIO_EARLIEST_TIMEOUT_MAX_US microseconds). */ +} nrf_radio_request_earliest_t; + +/**@brief Parameters for a normal radio timeslot request. */ +typedef struct +{ + uint8_t hfclk; /**< High frequency clock source, see @ref NRF_RADIO_HFCLK_CFG. */ + uint8_t priority; /**< The radio timeslot priority, see @ref NRF_RADIO_PRIORITY. */ + uint32_t distance_us; /**< Distance from the start of the previous radio timeslot (up to @ref NRF_RADIO_DISTANCE_MAX_US microseconds). */ + uint32_t length_us; /**< The radio timeslot length (in the range [100..100,000] microseconds). */ +} nrf_radio_request_normal_t; + +/**@brief Radio timeslot request parameters. */ +typedef struct +{ + uint8_t request_type; /**< Type of request, see @ref NRF_RADIO_REQUEST_TYPE. */ + union + { + nrf_radio_request_earliest_t earliest; /**< Parameters for requesting a radio timeslot as early as possible. */ + nrf_radio_request_normal_t normal; /**< Parameters for requesting a normal radio timeslot. */ + } params; /**< Parameter union. */ +} nrf_radio_request_t; + +/**@brief Return parameters of the radio timeslot signal callback. */ +typedef struct +{ + uint8_t callback_action; /**< The action requested by the application when returning from the signal callback, see @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION. */ + union + { + struct + { + nrf_radio_request_t * p_next; /**< The request parameters for the next radio timeslot. */ + } request; /**< Additional parameters for return_code @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END. */ + struct + { + uint32_t length_us; /**< Requested extension of the radio timeslot duration (microseconds) (for minimum time see @ref NRF_RADIO_MINIMUM_TIMESLOT_LENGTH_EXTENSION_TIME_US). */ + } extend; /**< Additional parameters for return_code @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND. */ + } params; /**< Parameter union. */ +} nrf_radio_signal_callback_return_param_t; + +/**@brief The radio timeslot signal callback type. + * + * @note In case of invalid return parameters, the radio timeslot will automatically end + * immediately after returning from the signal callback and the + * @ref NRF_EVT_RADIO_SIGNAL_CALLBACK_INVALID_RETURN event will be sent. + * @note The returned struct pointer must remain valid after the signal callback + * function returns. For instance, this means that it must not point to a stack variable. + * + * @param[in] signal_type Type of signal, see @ref NRF_RADIO_CALLBACK_SIGNAL_TYPE. + * + * @return Pointer to structure containing action requested by the application. + */ +typedef nrf_radio_signal_callback_return_param_t * (*nrf_radio_signal_callback_t) (uint8_t signal_type); + +/**@brief AES ECB parameter typedefs */ +typedef uint8_t soc_ecb_key_t[SOC_ECB_KEY_LENGTH]; /**< Encryption key type. */ +typedef uint8_t soc_ecb_cleartext_t[SOC_ECB_CLEARTEXT_LENGTH]; /**< Cleartext data type. */ +typedef uint8_t soc_ecb_ciphertext_t[SOC_ECB_CIPHERTEXT_LENGTH]; /**< Ciphertext data type. */ + +/**@brief AES ECB data structure */ +typedef struct +{ + soc_ecb_key_t key; /**< Encryption key. */ + soc_ecb_cleartext_t cleartext; /**< Cleartext data. */ + soc_ecb_ciphertext_t ciphertext; /**< Ciphertext data. */ +} nrf_ecb_hal_data_t; + +/**@brief AES ECB block. Used to provide multiple blocks in a single call + to @ref sd_ecb_blocks_encrypt.*/ +typedef struct +{ + soc_ecb_key_t const * p_key; /**< Pointer to the Encryption key. */ + soc_ecb_cleartext_t const * p_cleartext; /**< Pointer to the Cleartext data. */ + soc_ecb_ciphertext_t * p_ciphertext; /**< Pointer to the Ciphertext data. */ +} nrf_ecb_hal_data_block_t; + +/**@} */ + +/**@addtogroup NRF_SOC_FUNCTIONS Functions + * @{ */ + +/**@brief Initialize a mutex. + * + * @param[in] p_mutex Pointer to the mutex to initialize. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_MUTEX_NEW, uint32_t, sd_mutex_new(nrf_mutex_t * p_mutex)); + +/**@brief Attempt to acquire a mutex. + * + * @param[in] p_mutex Pointer to the mutex to acquire. + * + * @retval ::NRF_SUCCESS The mutex was successfully acquired. + * @retval ::NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN The mutex could not be acquired. + */ +SVCALL(SD_MUTEX_ACQUIRE, uint32_t, sd_mutex_acquire(nrf_mutex_t * p_mutex)); + +/**@brief Release a mutex. + * + * @param[in] p_mutex Pointer to the mutex to release. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_MUTEX_RELEASE, uint32_t, sd_mutex_release(nrf_mutex_t * p_mutex)); + +/**@brief Query the capacity of the application random pool. + * + * @param[out] p_pool_capacity The capacity of the pool. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_RAND_APPLICATION_POOL_CAPACITY_GET, uint32_t, sd_rand_application_pool_capacity_get(uint8_t * p_pool_capacity)); + +/**@brief Get number of random bytes available to the application. + * + * @param[out] p_bytes_available The number of bytes currently available in the pool. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_RAND_APPLICATION_BYTES_AVAILABLE_GET, uint32_t, sd_rand_application_bytes_available_get(uint8_t * p_bytes_available)); + +/**@brief Get random bytes from the application pool. + * + * @param[out] p_buff Pointer to unit8_t buffer for storing the bytes. + * @param[in] length Number of bytes to take from pool and place in p_buff. + * + * @retval ::NRF_SUCCESS The requested bytes were written to p_buff. + * @retval ::NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES No bytes were written to the buffer, because there were not enough bytes available. +*/ +SVCALL(SD_RAND_APPLICATION_VECTOR_GET, uint32_t, sd_rand_application_vector_get(uint8_t * p_buff, uint8_t length)); + +/**@brief Gets the reset reason register. + * + * @param[out] p_reset_reason Contents of the NRF_POWER->RESETREAS register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RESET_REASON_GET, uint32_t, sd_power_reset_reason_get(uint32_t * p_reset_reason)); + +/**@brief Clears the bits of the reset reason register. + * + * @param[in] reset_reason_clr_msk Contains the bits to clear from the reset reason register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RESET_REASON_CLR, uint32_t, sd_power_reset_reason_clr(uint32_t reset_reason_clr_msk)); + +/**@brief Sets the power mode when in CPU sleep. + * + * @param[in] power_mode The power mode to use when in CPU sleep, see @ref NRF_POWER_MODES. @sa sd_app_evt_wait + * + * @retval ::NRF_SUCCESS The power mode was set. + * @retval ::NRF_ERROR_SOC_POWER_MODE_UNKNOWN The power mode was unknown. + */ +SVCALL(SD_POWER_MODE_SET, uint32_t, sd_power_mode_set(uint8_t power_mode)); + +/**@brief Puts the chip in System OFF mode. + * + * @retval ::NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN + */ +SVCALL(SD_POWER_SYSTEM_OFF, uint32_t, sd_power_system_off(void)); + +/**@brief Enables or disables the power-fail comparator. + * + * Enabling this will give a SoftDevice event (NRF_EVT_POWER_FAILURE_WARNING) when the power failure warning occurs. + * The event can be retrieved with sd_evt_get(); + * + * @param[in] pof_enable True if the power-fail comparator should be enabled, false if it should be disabled. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_POF_ENABLE, uint32_t, sd_power_pof_enable(uint8_t pof_enable)); + + +/**@brief Sets the power failure comparator threshold value. + * + * + * @param[in] threshold The power-fail threshold value to use, see @ref NRF_POWER_THRESHOLDS. + * + * @retval ::NRF_SUCCESS The power failure threshold was set. + * @retval ::NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN The power failure threshold is unknown. + */ +SVCALL(SD_POWER_POF_THRESHOLD_SET, uint32_t, sd_power_pof_threshold_set(uint8_t threshold)); + + +/**@brief Writes the NRF_POWER->RAM[index].POWERSET register. + * + * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWERSET register to write to. + * @param[in] ram_powerset Contains the word to write to the NRF_POWER->RAM[index].POWERSET register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RAM_POWER_SET, uint32_t, sd_power_ram_power_set(uint8_t index, uint32_t ram_powerset)); + +/**@brief Writes the NRF_POWER->RAM[index].POWERCLR register. + * + * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWERCLR register to write to. + * @param[in] ram_powerclr Contains the word to write to the NRF_POWER->RAM[index].POWERCLR register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RAM_POWER_CLR, uint32_t, sd_power_ram_power_clr(uint8_t index, uint32_t ram_powerclr)); + +/**@brief Get contents of NRF_POWER->RAM[index].POWER register, indicates power status of RAM[index] blocks. + * + * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWER register to read from. + * @param[out] p_ram_power Content of NRF_POWER->RAM[index].POWER register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RAM_POWER_GET, uint32_t, sd_power_ram_power_get(uint8_t index, uint32_t * p_ram_power)); + +/**@brief Set bits in the general purpose retention registers (NRF_POWER->GPREGRET*). + * + * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2. + * @param[in] gpregret_msk Bits to be set in the GPREGRET register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_GPREGRET_SET, uint32_t, sd_power_gpregret_set(uint32_t gpregret_id, uint32_t gpregret_msk)); + +/**@brief Clear bits in the general purpose retention registers (NRF_POWER->GPREGRET*). + * + * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2. + * @param[in] gpregret_msk Bits to be clear in the GPREGRET register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_GPREGRET_CLR, uint32_t, sd_power_gpregret_clr(uint32_t gpregret_id, uint32_t gpregret_msk)); + +/**@brief Get contents of the general purpose retention registers (NRF_POWER->GPREGRET*). + * + * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2. + * @param[out] p_gpregret Contents of the GPREGRET register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_GPREGRET_GET, uint32_t, sd_power_gpregret_get(uint32_t gpregret_id, uint32_t *p_gpregret)); + +/**@brief Enable or disable the DC/DC regulator. + * + * @param[in] dcdc_mode The mode of the DCDC, see @ref NRF_POWER_DCDC_MODES. + * + * @retval ::NRF_SUCCESS + * @retval ::NRF_ERROR_INVALID_PARAM The DCDC mode is invalid. + */ +SVCALL(SD_POWER_DCDC_MODE_SET, uint32_t, sd_power_dcdc_mode_set(uint8_t dcdc_mode)); + + +/**@brief Request the high frequency crystal oscillator. + * + * Will start the high frequency crystal oscillator, the startup time of the crystal varies + * and the ::sd_clock_hfclk_is_running function can be polled to check if it has started. + * + * @see sd_clock_hfclk_is_running + * @see sd_clock_hfclk_release + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_CLOCK_HFCLK_REQUEST, uint32_t, sd_clock_hfclk_request(void)); + +/**@brief Releases the high frequency crystal oscillator. + * + * Will stop the high frequency crystal oscillator, this happens immediately. + * + * @see sd_clock_hfclk_is_running + * @see sd_clock_hfclk_request + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_CLOCK_HFCLK_RELEASE, uint32_t, sd_clock_hfclk_release(void)); + +/**@brief Checks if the high frequency crystal oscillator is running. + * + * @see sd_clock_hfclk_request + * @see sd_clock_hfclk_release + * + * @param[out] p_is_running 1 if the external crystal oscillator is running, 0 if not. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_CLOCK_HFCLK_IS_RUNNING, uint32_t, sd_clock_hfclk_is_running(uint32_t * p_is_running)); + +/**@brief Waits for an application event. + * + * An application event is either an application interrupt or a pended interrupt when the interrupt + * is disabled. + * + * When the application waits for an application event by calling this function, an interrupt that + * is enabled will be taken immediately on pending since this function will wait in thread mode, + * then the execution will return in the application's main thread. + * + * In order to wake up from disabled interrupts, the SEVONPEND flag has to be set in the Cortex-M + * MCU's System Control Register (SCR), CMSIS_SCB. In that case, when a disabled interrupt gets + * pended, this function will return to the application's main thread. + * + * @note The application must ensure that the pended flag is cleared using ::sd_nvic_ClearPendingIRQ + * in order to sleep using this function. This is only necessary for disabled interrupts, as + * the interrupt handler will clear the pending flag automatically for enabled interrupts. + * + * @note If an application interrupt has happened since the last time sd_app_evt_wait was + * called this function will return immediately and not go to sleep. This is to avoid race + * conditions that can occur when a flag is updated in the interrupt handler and processed + * in the main loop. + * + * @post An application interrupt has happened or a interrupt pending flag is set. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_APP_EVT_WAIT, uint32_t, sd_app_evt_wait(void)); + +/**@brief Get PPI channel enable register contents. + * + * @param[out] p_channel_enable The contents of the PPI CHEN register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_CHANNEL_ENABLE_GET, uint32_t, sd_ppi_channel_enable_get(uint32_t * p_channel_enable)); + +/**@brief Set PPI channel enable register. + * + * @param[in] channel_enable_set_msk Mask containing the bits to set in the PPI CHEN register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_CHANNEL_ENABLE_SET, uint32_t, sd_ppi_channel_enable_set(uint32_t channel_enable_set_msk)); + +/**@brief Clear PPI channel enable register. + * + * @param[in] channel_enable_clr_msk Mask containing the bits to clear in the PPI CHEN register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_CHANNEL_ENABLE_CLR, uint32_t, sd_ppi_channel_enable_clr(uint32_t channel_enable_clr_msk)); + +/**@brief Assign endpoints to a PPI channel. + * + * @param[in] channel_num Number of the PPI channel to assign. + * @param[in] evt_endpoint Event endpoint of the PPI channel. + * @param[in] task_endpoint Task endpoint of the PPI channel. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_CHANNEL The channel number is invalid. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_CHANNEL_ASSIGN, uint32_t, sd_ppi_channel_assign(uint8_t channel_num, const volatile void * evt_endpoint, const volatile void * task_endpoint)); + +/**@brief Task to enable a channel group. + * + * @param[in] group_num Number of the channel group. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_GROUP_TASK_ENABLE, uint32_t, sd_ppi_group_task_enable(uint8_t group_num)); + +/**@brief Task to disable a channel group. + * + * @param[in] group_num Number of the PPI group. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_GROUP_TASK_DISABLE, uint32_t, sd_ppi_group_task_disable(uint8_t group_num)); + +/**@brief Assign PPI channels to a channel group. + * + * @param[in] group_num Number of the channel group. + * @param[in] channel_msk Mask of the channels to assign to the group. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_GROUP_ASSIGN, uint32_t, sd_ppi_group_assign(uint8_t group_num, uint32_t channel_msk)); + +/**@brief Gets the PPI channels of a channel group. + * + * @param[in] group_num Number of the channel group. + * @param[out] p_channel_msk Mask of the channels assigned to the group. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_GROUP_GET, uint32_t, sd_ppi_group_get(uint8_t group_num, uint32_t * p_channel_msk)); + +/**@brief Configures the Radio Notification signal. + * + * @note + * - The notification signal latency depends on the interrupt priority settings of SWI used + * for notification signal. + * - To ensure that the radio notification signal behaves in a consistent way, the radio + * notifications must be configured when there is no protocol stack or other SoftDevice + * activity in progress. It is recommended that the radio notification signal is + * configured directly after the SoftDevice has been enabled. + * - In the period between the ACTIVE signal and the start of the Radio Event, the SoftDevice + * will interrupt the application to do Radio Event preparation. + * - Using the Radio Notification feature may limit the bandwidth, as the SoftDevice may have + * to shorten the connection events to have time for the Radio Notification signals. + * + * @param[in] type Type of notification signal, see @ref NRF_RADIO_NOTIFICATION_TYPES. + * @ref NRF_RADIO_NOTIFICATION_TYPE_NONE shall be used to turn off radio + * notification. Using @ref NRF_RADIO_NOTIFICATION_DISTANCE_NONE is + * recommended (but not required) to be used with + * @ref NRF_RADIO_NOTIFICATION_TYPE_NONE. + * + * @param[in] distance Distance between the notification signal and start of radio activity, see @ref NRF_RADIO_NOTIFICATION_DISTANCES. + * This parameter is ignored when @ref NRF_RADIO_NOTIFICATION_TYPE_NONE or + * @ref NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE is used. + * + * @retval ::NRF_ERROR_INVALID_PARAM The group number is invalid. + * @retval ::NRF_ERROR_INVALID_STATE A protocol stack or other SoftDevice is running. Stop all + * running activities and retry. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_RADIO_NOTIFICATION_CFG_SET, uint32_t, sd_radio_notification_cfg_set(uint8_t type, uint8_t distance)); + +/**@brief Encrypts a block according to the specified parameters. + * + * 128-bit AES encryption. + * + * @note: + * - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while + * the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application + * main or low interrupt level. + * + * @param[in, out] p_ecb_data Pointer to the ECB parameters' struct (two input + * parameters and one output parameter). + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_ECB_BLOCK_ENCRYPT, uint32_t, sd_ecb_block_encrypt(nrf_ecb_hal_data_t * p_ecb_data)); + +/**@brief Encrypts multiple data blocks provided as an array of data block structures. + * + * @details: Performs 128-bit AES encryption on multiple data blocks + * + * @note: + * - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while + * the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application + * main or low interrupt level. + * + * @param[in] block_count Count of blocks in the p_data_blocks array. + * @param[in,out] p_data_blocks Pointer to the first entry in a contiguous array of + * @ref nrf_ecb_hal_data_block_t structures. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_ECB_BLOCKS_ENCRYPT, uint32_t, sd_ecb_blocks_encrypt(uint8_t block_count, nrf_ecb_hal_data_block_t * p_data_blocks)); + +/**@brief Gets any pending events generated by the SoC API. + * + * The application should keep calling this function to get events, until ::NRF_ERROR_NOT_FOUND is returned. + * + * @param[out] p_evt_id Set to one of the values in @ref NRF_SOC_EVTS, if any events are pending. + * + * @retval ::NRF_SUCCESS An event was pending. The event id is written in the p_evt_id parameter. + * @retval ::NRF_ERROR_NOT_FOUND No pending events. + */ +SVCALL(SD_EVT_GET, uint32_t, sd_evt_get(uint32_t * p_evt_id)); + +/**@brief Get the temperature measured on the chip + * + * This function will block until the temperature measurement is done. + * It takes around 50 us from call to return. + * + * @param[out] p_temp Result of temperature measurement. Die temperature in 0.25 degrees Celsius. + * + * @retval ::NRF_SUCCESS A temperature measurement was done, and the temperature was written to temp + */ +SVCALL(SD_TEMP_GET, uint32_t, sd_temp_get(int32_t * p_temp)); + +/**@brief Flash Write +* +* Commands to write a buffer to flash +* +* If the SoftDevice is enabled: +* This call initiates the flash access command, and its completion will be communicated to the +* application with exactly one of the following events: +* - @ref NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed. +* - @ref NRF_EVT_FLASH_OPERATION_ERROR - The command could not be started. +* +* If the SoftDevice is not enabled no event will be generated, and this call will return @ref NRF_SUCCESS when the + * write has been completed +* +* @note +* - This call takes control over the radio and the CPU during flash erase and write to make sure that +* they will not interfere with the flash access. This means that all interrupts will be blocked +* for a predictable time (depending on the NVMC specification in the device's Product Specification +* and the command parameters). +* - The data in the p_src buffer should not be modified before the @ref NRF_EVT_FLASH_OPERATION_SUCCESS +* or the @ref NRF_EVT_FLASH_OPERATION_ERROR have been received if the SoftDevice is enabled. +* - This call will make the SoftDevice trigger a hardfault when the page is written, if it is +* protected. +* +* +* @param[in] p_dst Pointer to start of flash location to be written. +* @param[in] p_src Pointer to buffer with data to be written. +* @param[in] size Number of 32-bit words to write. Maximum size is the number of words in one +* flash page. See the device's Product Specification for details. +* +* @retval ::NRF_ERROR_INVALID_ADDR Tried to write to a non existing flash address, or p_dst or p_src was unaligned. +* @retval ::NRF_ERROR_BUSY The previous command has not yet completed. +* @retval ::NRF_ERROR_INVALID_LENGTH Size was 0, or higher than the maximum allowed size. +* @retval ::NRF_ERROR_FORBIDDEN Tried to write to an address outside the application flash area. +* @retval ::NRF_SUCCESS The command was accepted. +*/ +SVCALL(SD_FLASH_WRITE, uint32_t, sd_flash_write(uint32_t * p_dst, uint32_t const * p_src, uint32_t size)); + + +/**@brief Flash Erase page +* +* Commands to erase a flash page +* If the SoftDevice is enabled: +* This call initiates the flash access command, and its completion will be communicated to the +* application with exactly one of the following events: +* - @ref NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed. +* - @ref NRF_EVT_FLASH_OPERATION_ERROR - The command could not be started. +* +* If the SoftDevice is not enabled no event will be generated, and this call will return @ref NRF_SUCCESS when the +* erase has been completed +* +* @note +* - This call takes control over the radio and the CPU during flash erase and write to make sure that +* they will not interfere with the flash access. This means that all interrupts will be blocked +* for a predictable time (depending on the NVMC specification in the device's Product Specification +* and the command parameters). +* - This call will make the SoftDevice trigger a hardfault when the page is erased, if it is +* protected. +* +* +* @param[in] page_number Page number of the page to erase +* +* @retval ::NRF_ERROR_INTERNAL If a new session could not be opened due to an internal error. +* @retval ::NRF_ERROR_INVALID_ADDR Tried to erase to a non existing flash page. +* @retval ::NRF_ERROR_BUSY The previous command has not yet completed. +* @retval ::NRF_ERROR_FORBIDDEN Tried to erase a page outside the application flash area. +* @retval ::NRF_SUCCESS The command was accepted. +*/ +SVCALL(SD_FLASH_PAGE_ERASE, uint32_t, sd_flash_page_erase(uint32_t page_number)); + + +/**@brief Flash Protection set + * + * Commands to set the flash protection configuration registers. + This sets the CONFIGx registers of the BPROT peripheral. + * + * @note Not all parameters are valid for all products. Some bits in each parameter may not be + * valid for your product. Please refer your Product Specification for more details. + * + * @note To read the values read them directly. They are only write-protected. + * + * @note It is possible to use @ref sd_protected_register_write instead of this function. + * + * @param[in] block_cfg0 Value to be written to the configuration register. + * @param[in] block_cfg1 Value to be written to the configuration register. + * @param[in] block_cfg2 Value to be written to the configuration register. + * @param[in] block_cfg3 Value to be written to the configuration register. + * + * @retval ::NRF_ERROR_NOT_SUPPORTED Non-zero value supplied to one or more of the unsupported parameters. + * @retval ::NRF_SUCCESS Values successfully written to configuration registers. + */ +SVCALL(SD_FLASH_PROTECT, uint32_t, sd_flash_protect(uint32_t block_cfg0, uint32_t block_cfg1, uint32_t block_cfg2, uint32_t block_cfg3)); + +/**@brief Opens a session for radio timeslot requests. + * + * @note Only one session can be open at a time. + * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START) will be called when the radio timeslot + * starts. From this point the NRF_RADIO and NRF_TIMER0 peripherals can be freely accessed + * by the application. + * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_TIMER0) is called whenever the NRF_TIMER0 + * interrupt occurs. + * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO) is called whenever the NRF_RADIO + * interrupt occurs. + * @note p_radio_signal_callback() will be called at ARM interrupt priority level 0. This + * implies that none of the sd_* API calls can be used from p_radio_signal_callback(). + * + * @param[in] p_radio_signal_callback The signal callback. + * + * @retval ::NRF_ERROR_INVALID_ADDR p_radio_signal_callback is an invalid function pointer. + * @retval ::NRF_ERROR_BUSY If session cannot be opened. + * @retval ::NRF_ERROR_INTERNAL If a new session could not be opened due to an internal error. + * @retval ::NRF_SUCCESS Otherwise. + */ + SVCALL(SD_RADIO_SESSION_OPEN, uint32_t, sd_radio_session_open(nrf_radio_signal_callback_t p_radio_signal_callback)); + +/**@brief Closes a session for radio timeslot requests. + * + * @note Any current radio timeslot will be finished before the session is closed. + * @note If a radio timeslot is scheduled when the session is closed, it will be canceled. + * @note The application cannot consider the session closed until the @ref NRF_EVT_RADIO_SESSION_CLOSED + * event is received. + * + * @retval ::NRF_ERROR_FORBIDDEN If session not opened. + * @retval ::NRF_ERROR_BUSY If session is currently being closed. + * @retval ::NRF_SUCCESS Otherwise. + */ + SVCALL(SD_RADIO_SESSION_CLOSE, uint32_t, sd_radio_session_close(void)); + +/**@brief Requests a radio timeslot. + * + * @note The request type is determined by p_request->request_type, and can be one of @ref NRF_RADIO_REQ_TYPE_EARLIEST + * and @ref NRF_RADIO_REQ_TYPE_NORMAL. The first request in a session must always be of type @ref NRF_RADIO_REQ_TYPE_EARLIEST. + * @note For a normal request (@ref NRF_RADIO_REQ_TYPE_NORMAL), the start time of a radio timeslot is specified by + * p_request->distance_us and is given relative to the start of the previous timeslot. + * @note A too small p_request->distance_us will lead to a @ref NRF_EVT_RADIO_BLOCKED event. + * @note Timeslots scheduled too close will lead to a @ref NRF_EVT_RADIO_BLOCKED event. + * @note See the SoftDevice Specification for more on radio timeslot scheduling, distances and lengths. + * @note If an opportunity for the first radio timeslot is not found before 100 ms after the call to this + * function, it is not scheduled, and instead a @ref NRF_EVT_RADIO_BLOCKED event is sent. + * The application may then try to schedule the first radio timeslot again. + * @note Successful requests will result in nrf_radio_signal_callback_t(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START). + * Unsuccessful requests will result in a @ref NRF_EVT_RADIO_BLOCKED event, see @ref NRF_SOC_EVTS. + * @note The jitter in the start time of the radio timeslots is +/- @ref NRF_RADIO_START_JITTER_US us. + * @note The nrf_radio_signal_callback_t(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START) call has a latency relative to the + * specified radio timeslot start, but this does not affect the actual start time of the timeslot. + * @note NRF_TIMER0 is reset at the start of the radio timeslot, and is clocked at 1MHz from the high frequency + * (16 MHz) clock source. If p_request->hfclk_force_xtal is true, the high frequency clock is + * guaranteed to be clocked from the external crystal. + * @note The SoftDevice will neither access the NRF_RADIO peripheral nor the NRF_TIMER0 peripheral + * during the radio timeslot. + * + * @param[in] p_request Pointer to the request parameters. + * + * @retval ::NRF_ERROR_FORBIDDEN If session not opened or the session is not IDLE. + * @retval ::NRF_ERROR_INVALID_ADDR If the p_request pointer is invalid. + * @retval ::NRF_ERROR_INVALID_PARAM If the parameters of p_request are not valid. + * @retval ::NRF_SUCCESS Otherwise. + */ + SVCALL(SD_RADIO_REQUEST, uint32_t, sd_radio_request(nrf_radio_request_t const * p_request)); + +/**@brief Write register protected by the SoftDevice + * + * This function writes to a register that is write-protected by the SoftDevice. Please refer to your + * SoftDevice Specification for more details about which registers that are protected by SoftDevice. + * This function can write to the following protected peripheral: + * - BPROT + * + * @note Protected registers may be read directly. + * @note Register that are write-once will return @ref NRF_SUCCESS on second set, even the value in + * the register has not changed. See the Product Specification for more details about register + * properties. + * + * @param[in] p_register Pointer to register to be written. + * @param[in] value Value to be written to the register. + * + * @retval ::NRF_ERROR_INVALID_ADDR This function can not write to the reguested register. + * @retval ::NRF_SUCCESS Value successfully written to register. + * + */ +SVCALL(SD_PROTECTED_REGISTER_WRITE, uint32_t, sd_protected_register_write(volatile uint32_t * p_register, uint32_t value)); + +/**@} */ + +#ifdef __cplusplus +} +#endif +#endif // NRF_SOC_H__ + +/**@} */ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_svc.h b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_svc.h new file mode 100644 index 0000000..292c692 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_API/include/nrf_svc.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef NRF_SVC__ +#define NRF_SVC__ + +#include "stdint.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef SVCALL_AS_NORMAL_FUNCTION +#define SVCALL(number, return_type, signature) return_type signature +#else + +#ifndef SVCALL +#if defined (__CC_ARM) +#define SVCALL(number, return_type, signature) return_type __svc(number) signature +#elif defined (__GNUC__) +#ifdef __cplusplus +#define GCC_CAST_CPP (uint16_t) +#else +#define GCC_CAST_CPP +#endif +#define SVCALL(number, return_type, signature) \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wreturn-type\"") \ + __attribute__((naked)) \ + __attribute__((unused)) \ + static return_type signature \ + { \ + __asm( \ + "svc %0\n" \ + "bx r14" : : "I" (GCC_CAST_CPP number) : "r0" \ + ); \ + } \ + _Pragma("GCC diagnostic pop") + +#elif defined (__ICCARM__) +#define PRAGMA(x) _Pragma(#x) +#define SVCALL(number, return_type, signature) \ +PRAGMA(swi_number = (number)) \ + __swi return_type signature; +#else +#define SVCALL(number, return_type, signature) return_type signature +#endif +#endif // SVCALL + +#endif // SVCALL_AS_NORMAL_FUNCTION + +#ifdef __cplusplus +} +#endif +#endif // NRF_SVC__ diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_license-agreement.txt b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_license-agreement.txt new file mode 100644 index 0000000..2d1bc12 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_license-agreement.txt @@ -0,0 +1,35 @@ +Copyright (c) 2007 - 2018, Nordic Semiconductor ASA +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form, except as embedded into a Nordic + Semiconductor ASA integrated circuit in a product or a software update for + such product, must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + +3. Neither the name of Nordic Semiconductor ASA nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +4. This software, with or without modification, must only be used with a + Nordic Semiconductor ASA integrated circuit. + +5. Any software provided in binary form under this license must not be reverse + engineered, decompiled, modified and/or disassembled. + +THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_softdevice.hex b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_softdevice.hex new file mode 100644 index 0000000..c612d93 --- /dev/null +++ b/lib/softdevice/s132_nrf52_6.0.0/s132_nrf52_6.0.0_softdevice.hex @@ -0,0 +1,9278 @@ +:020000040000FA +:1000000000040020E90800007D050000C908000088 +:1000100087050000910500009B050000000000001E +:100020000000000000000000000000000D090000BA +:10003000A505000000000000AF050000B9050000A4 +:10004000C3050000CD050000D7050000E105000054 +:10005000EB050000F5050000FF05000009060000A3 +:10006000130600001D0600002706000031060000F0 +:100070003B060000450600004F0600005906000040 +:10008000630600006D060000770600008106000090 +:100090008B060000950600009F060000A9060000E0 +:1000A000B3060000BD060000C7060000D106000030 +:1000B000DB060000E5060000EF060000F906000080 +:1000C000030700000D0700001707000021070000CC +:1000D0002B070000350700003F070000490700001C +:1000E000530700005D07000067070000710700006C +:1000F0007B070000850700008F07000099070000BC +:10010000A30700001FB500F003F88DE80F001FBD26 +:1001100000F0E0BB1FB56FF00100009040100390AD +:10012000029001904FF010208069000B420900F00E +:100130001F045DF822300120A04083434DF8223097 +:10014000684600F045F91FBDF0B54FF6FF734FF458 +:10015000B4751A466E1E11E0A94201D3344600E080 +:100160000C46091B30F8027B641E3B441A44F9D14B +:100170009CB204EB134394B204EB12420029EBD17E +:1001800098B200EB134002EB124140EA0140F0BD8F +:10019000DE4992B00446D1E90001CDE91001FF2209 +:1001A0004021684600F03CFB94E80F008DE80F000A +:1001B000684610A902E004C841F8042D8842FAD12B +:1001C00010216846FFF7C0FF1090AA208DF8440068 +:1001D000FFF7A0FF00F0F3F84FF01024A069102201 +:1001E0006946803000F002F9A069082210A900F0E9 +:1001F000FDF800F0D8F84FF080510A6949690068AD +:100200004A43824201D8102070470020704710B541 +:10021000D0E900214FF0805002EB8103026944696C +:100220006243934209D84FF01022536903EB8103D4 +:100230000169406941438B4201D9092010BD5069D1 +:10024000401C01D0002010BD0F2010BD70B501680A +:100250000446AF4D4FF01020072952D2DFE801F0DD +:10026000330419293C1E2500D4E902656468294637 +:10027000304600F0CDF82A462146304600F0B6F868 +:10028000AA002146304600F09FFA002800D0032043 +:1002900070BD00F051FB4FF4805007E0201DFFF7C8 +:1002A000AAFF0028F4D100F047FB60682860002016 +:1002B00070BD241D94E80700920000F085FA002824 +:1002C000F6D00E2070BD8069401C12D0201DFFF7B3 +:1002D0009EFF0028F6D109E08069401C09D0201D4E +:1002E000FFF789FF0028EDD1606820B12046FFF7B5 +:1002F0004FFF042070BDFFF70DFF00F060F800F025 +:1003000052F8072070BD10B50C46182802D0012005 +:10031000086010BD2068FFF799FF206010BD4FF006 +:100320001024A069401C05D0A569A66980353079E4 +:10033000AA2808D06069401C2DD060690068401C64 +:1003400029D060692CE010212846FFF7FDFE3168B6 +:1003500081421CD1A16901F18002C03105E030B1B8 +:1003600008CA51F8040D984201D1012000E0002094 +:100370008A42F4D158B1286810B1042803D0FEE7AE +:10038000284600F057F862496868086008E000F005 +:1003900016F800F008F84FF480500168491C01D0AD +:1003A00000F0A4FAFEE7BFF34F8F5A4801685A4A9B +:1003B00001F4E06111430160BFF34F8FFEE74FF09E +:1003C00010208169491C02D0806900F0AEB87047E6 +:1003D000524A01681160121D416811604F4A8168DC +:1003E00010321160111DC068086070472DE9F0419E +:1003F00017460D460646002406E03046296800F000 +:10040000A7F8641C2D1D361DBC42F6D3BDE8F08153 +:1004100070B50C4605464FF4806608E0284600F0AB +:1004200084F8B44205D3A4F5806405F58055002C0A +:10043000F4D170BD4168044609B1012500E00025F2 +:100440004FF010267069A268920000F0BDF9C8B1A3 +:10045000204600F01AF89DB17669A56864684FF4EB +:10046000002084420AD2854208D229463046FFF74E +:10047000CFFF2A4621463046FFF7B8FFFFF79FFF20 +:10048000FFF791FFFFF746FEF8E72DE9FF414FF038 +:100490001024616980680D0B01EB800000F6FF708D +:1004A000010B0020009001900290024603906846E4 +:1004B00001230BE0560902F01F0C50F8267003FAD6 +:1004C0000CFC47EA0C0740F82670521CAA42F1D3F4 +:1004D0000AE04A0901F01F0650F8225003FA06F616 +:1004E000354340F82250491C8029F2D3A169090BF9 +:1004F0004A0901F01F0150F822408B409C4340F80C +:100500002240FFF765FFBDE8FF8100005C090000A5 +:10051000000000200CED00E00400FA050006004099 +:10052000144801680029FCD07047134A0221116069 +:1005300010490B68002BFCD00F4B1B1D186008687E +:100540000028FCD00020106008680028FCD070470C +:10055000094B10B501221A60064A1468002CFCD021 +:10056000016010680028FCD0002018601068002886 +:10057000FCD010BD00E4014004E5014008208F4993 +:1005800009680958084710208C4909680958084724 +:1005900014208A49096809580847182087490968BA +:1005A0000958084730208549096809580847382004 +:1005B00082490968095808473C2080490968095858 +:1005C000084740207D4909680958084744207B496D +:1005D00009680958084748207849096809580847B0 +:1005E0004C20764909680958084750207349096822 +:1005F0000958084754207149096809580847582084 +:100600006E490968095808475C206C49096809580F +:100610000847602069490968095808476420674904 +:100620000968095808476820644909680958084753 +:100630006C20624909680958084770205F490968B9 +:100640000958084774205D49096809580847782007 +:100650005A490968095808477C20584909680958C7 +:10066000084780205549096809580847842053499C +:1006700009680958084788205049096809580847F7 +:100680008C204E4909680958084790204B49096851 +:10069000095808479420494909680958084798208B +:1006A00046490968095808479C204449096809587F +:1006B0000847A0204149096809580847A4203F4934 +:1006C000096809580847A8203C490968095808479B +:1006D000AC203A49096809580847B02037490968E9 +:1006E00009580847B4203549096809580847B8200F +:1006F0003249096809580847BC2030490968095837 +:100700000847C0202D49096809580847C4202B49CB +:10071000096809580847C82028490968095808473E +:10072000CC202649096809580847D0202349096880 +:1007300009580847D4202149096809580847D82092 +:100740001E49096809580847DC201C4909680958EE +:100750000847E0201949096809580847E420174963 +:10076000096809580847E8201449096809580847E2 +:10077000EC201249096809580847F0200F49096818 +:1007800009580847F4200D49096809580847F82016 +:100790000A49096809580847FC20084909680958A6 +:1007A00008475FF480700549096809580847000048 +:1007B00003480449024A034B704700000000002030 +:1007C000680900006809000040EA010310B59B07B2 +:1007D0000FD1042A0DD310C808C9121F9C42F8D0AB +:1007E00020BA19BA884201D9012010BD4FF0FF305C +:1007F00010BD1AB1D30703D0521C07E0002010BD72 +:1008000010F8013B11F8014B1B1B07D110F8013BFD +:1008100011F8014B1B1B01D1921EF1D1184610BDDE +:1008200002F0FF0343EA032242EA024200F005B865 +:100830007047704770474FF000020429C0F01280E3 +:1008400010F0030C00F01B80CCF1040CBCF1020F83 +:1008500018BF00F8012BA8BF20F8022BA1EB0C0158 +:1008600000F00DB85FEAC17C24BF00F8012B00F84E +:10087000012B48BF00F8012B70474FF0000200B574 +:10088000134694469646203922BFA0E80C50A0E8B3 +:100890000C50B1F12001BFF4F7AF090728BFA0E861 +:1008A0000C5048BF0CC05DF804EB890028BF40F82D +:1008B000042B08BF704748BF20F8022B11F0804F6F +:1008C00018BF00F8012B7047014B1B68DB68184705 +:1008D0000000002009480A497047FFF7FBFFFFF7B7 +:1008E00011FC00BD20BFFDE7064B1847064A10600B +:1008F000016881F30888406800470000680900002B +:10090000680900001F030000000000201EF0040F13 +:100910000CBFEFF30881EFF3098188690238007892 +:10092000182803D100E00000074A1047074A126860 +:100930002C3212681047000000B5054B1B68054AB1 +:100940009B58984700BD00000703000000000020EE +:100950005809000004000000001000000000000022 +:0809600000FFFFFF0090D0032F +:10100000E0120020D1430200192F000043430200E8 +:10101000192F0000192F0000192F000000000000F8 +:101020000000000000000000000000002944020051 +:10103000192F000000000000192F0000192F0000D8 +:101040009144020097440200192F0000192F00005C +:10105000192F0000192F0000192F0000192F000070 +:101060009D440200192F0000192F0000A344020024 +:10107000192F0000A9440200AF440200B544020049 +:10108000192F0000192F0000192F0000192F000040 +:10109000192F0000192F0000192F0000192F000030 +:1010A000192F0000BB440200192F0000192F000067 +:1010B000192F0000192F0000192F0000192F000010 +:1010C000C1440200192F0000192F0000192F000041 +:1010D000192F0000192F0000192F0000192F0000F0 +:1010E000192F0000192F0000192F0000192F0000E0 +:1010F000192F0000192F0000192F0000192F0000D0 +:10110000192F0000192F000000F002F823F04DF90C +:101110000AA090E8000C82448344AAF10107DA4552 +:1011200001D123F042F9AFF2090EBAE80F0013F033 +:10113000010F18BFFB1A43F0010318479038020053 +:10114000B03802000A444FF0000C10F8013B13F0D5 +:10115000070408BF10F8014B1D1108BF10F8015B10 +:10116000641E05D010F8016B641E01F8016BF9D103 +:1011700013F0080F1EBF10F8014BAD1C0C1B09D15A +:101180006D1E58BF01F801CBFAD505E014F8016BCC +:1011900001F8016B6D1EF9D59142D6D3704700005E +:1011A0000023002400250026103A28BF78C1FBD870 +:1011B000520728BF30C148BF0B6070471FB500F011 +:1011C0003DF88DE80F001FBD1EF0040F0CBFEFF3BC +:1011D0000880EFF30980014A10470000752E0000D7 +:1011E0008269034981614FF001001044704700009B +:1011F000F511000001B41EB400B512F00FFE01B4E9 +:101200000198864601BC01B01EBD0000F0B4404606 +:10121000494652465B460FB402A0013001B506486C +:10122000004700BF01BC86460FBC804689469246F7 +:101230009B46F0BC704700000911000023F0B2B8D3 +:1012400070B51A4C054609202070A01C00F05FF80C +:101250005920A08029462046BDE8704008F05CB8BF +:1012600008F065B870B50C461149097829B1A0F1AC +:1012700060015E2908D3012013E0602804D06928AA +:1012800002D043F201000CE020CC0A4E94E80E009C +:1012900006EB8000A0F58050241FD0F8806E284611 +:1012A000B047206070BD012070470000080000209A +:1012B0001C0000202845020010B504460021012032 +:1012C00000F03DF800210B2000F039F8042119202E +:1012D00000F035F804210D2000F031F804210E2033 +:1012E00000F02DF804210F2000F029F80421C84354 +:1012F00000F025F80621162000F021F8062115201F +:1013000000F01DF82046FFF79BFF002010BDA8212C +:1013100001807047FFF7A4BF11487047104870471D +:10132000104A10B514680F4B0F4A08331A60FFF7C4 +:1013300099FF0C48001D046010BD704770474907B5 +:10134000090E002806DA00F00F0000F1E02080F816 +:10135000141D704700F1E02080F800147047000071 +:1013600003F900421005024001000001FE4800217F +:1013700001604160018170472DE9F743044692B056 +:101380009146406813F00EF840B1606813F013F80E +:1013900020B9607800F00300022801D0012000E0AD +:1013A0000020F14E3072484612F0B8FF18B11020FC +:1013B00015B0BDE8F0834946012001F018FF002870 +:1013C000F6D101258DF842504FF4C050ADF84000E1 +:1013D000002210A9284606F047FC0028E8D18DF825 +:1013E00042504FF428504FF00008ADF840004746F7 +:1013F0001C216846CDF81C8022F07BFF9DF81C0064 +:1014000008AA20F00F00401C20F0F00010308DF8EA +:101410001C0020788DF81D0061789DF81E0061F396 +:10142000420040F001008DF81E009DF800000AA95E +:1014300040F002008DF800002089ADF83000ADF8D2 +:101440003270608907AFADF834000B97606810AC5C +:101450000E900A94684606F0FCF90028A8D1BDF861 +:10146000200030808DF8425042F60120ADF8400057 +:101470009DF81E0008AA20F00600801C20F0010044 +:101480008DF81E000220ADF83000ADF8340013A82E +:101490000E900AA9684606F0DCF9002888D1BDF84C +:1014A00020007080311D484600F033F9002887D1B4 +:1014B0008DF8425042F6A620ADF840001C21684647 +:1014C000CDF81C8022F015FF9DF81C00ADF83450BB +:1014D00020F00F00401C20F0F00010308DF81C00B0 +:1014E0009DF81D0008AA20F0FF008DF81D009DF852 +:1014F0001E000AA920F0060040F00100801C8DF8B3 +:101500001E009DF800008DF8445040F002008DF858 +:101510000000CDE90A4711A80E90ADF8305068469A +:1015200006F097F9002899D1BDF82000F08000203E +:101530003EE73EB504460820ADF80000204612F014 +:10154000EDFE08B110203EBD2146012001F04FFE06 +:101550000028F8D12088ADF804006088ADF80600B6 +:10156000A088ADF80800E088ADF80A007E4801AB1D +:101570006A468088002106F071FDBDF80010082938 +:10158000E1D003203EBD1FB5044600200290082094 +:10159000ADF80800CDF80CD0204612F0BFFE10B117 +:1015A000102004B010BD704802AA81884FF6FF7069 +:1015B00006F096FF0028F4D1BDF80810082901D0E4 +:1015C0000320EEE7BDF800102180BDF80210618015 +:1015D000BDF80410A180BDF80610E180E1E701B577 +:1015E00082B00220ADF800005F4802AB6A46408836 +:1015F000002106F033FDBDF80010022900D00320C1 +:101600000EBD1CB5002100910221ADF80010019023 +:1016100012F0AAFE08B110201CBD53486A4641884A +:101620004FF6FF7006F05CFFBDF800100229F3D002 +:1016300003201CBDFEB54C4C06461546207A0F46CD +:10164000C00705D0084612F069FE18B11020FEBD93 +:101650000F20FEBDF82D01D90C20FEBD304612F042 +:101660005DFE18BB208801A905F03CFE0028F4D1DE +:1016700030788DF80500208801A906F0CEFC0028FE +:10168000EBD100909DF800009DF8051040F002009D +:101690008DF80000090703D040F008008DF8000025 +:1016A0002088694606F056FC0028D6D1ADF80850CF +:1016B00020883B4602AA002106F0D0FCBDF80810A5 +:1016C000A942CAD00320FEBD7CB50546002000908B +:1016D00001900888ADF800000C462846019512F0EC +:1016E00061FE18B9204612F03FFE08B110207CBD03 +:1016F00015B1BDF8000050B11B486A4601884FF68D +:10170000FF7006F0EDFEBDF8001021807CBD0C20BE +:101710007CBD30B593B0044600200D4600901421E6 +:1017200001A822F0E6FD1C2108A822F0E2FD9DF8A8 +:101730000000CDF808D020F00F00401C20F0F00091 +:1017400010308DF800009DF8010020F0FF008DF8AA +:1017500001009DF8200040F002008DF820000120DB +:101760008DF8460002E000000C02002042F6042042 +:10177000ADF8440011A801902088ADF83C006088C5 +:10178000ADF83E00A088ADF84000E088ADF842001A +:101790009DF8020006AA20F00600801C20F001003F +:1017A0008DF802000820ADF80C00ADF810000FA86D +:1017B000059001A908A806F04CF8002803D1BDF84F +:1017C00018002880002013B030BD0000F0B5007B69 +:1017D000059F1E4614460D46012800D0FFDF0C2051 +:1017E00030803A203880002C08D0287A032806D090 +:1017F000287B012800D0FFDF17206081F0BDA88979 +:10180000FBE72DE9F04786B0144691F80C900E9A4C +:101810000D46B9F1010F0BD01021007B2E8A8846AE +:10182000052807D0062833D0FFDF06B0BDE8F087D3 +:101830000221F2E7E8890C2100EB400001EB4000B7 +:10184000188033201080002CEFD0E88960810027B9 +:101850001AE00096688808F1020301AA696900F09D +:1018600084FF06EB0800801C07EB470186B204EBFF +:101870004102BDF8040090810DF1060140460E3290 +:1018800010F018FE7F1CBFB26089B842E1D8CCE7E7 +:1018900034201080E889B9F1010F11D0122148439A +:1018A0000E301880002CC0D0E88960814846B9F11C +:1018B000010F00D00220207300270DF1040A1FE061 +:1018C0000621ECE70096688808F1020301AA69691D +:1018D00000F04BFF06EB0800801C86B2B9F1010F47 +:1018E00012D007EBC70004EB4000BDF80410C18123 +:1018F00010220AF10201103022F05AFC7F1CBFB204 +:101900006089B842DED890E707EB470104EB41025B +:10191000BDF80400D0810AF102014046103210F0F7 +:10192000C9FDEBE72DE9F0470E4688B090F80CC0F2 +:1019300096F80C80378AF5890C20109902F10C0476 +:101940004FF0000ABCF1030F08D0BCF1040F3ED0E9 +:10195000BCF1070F7DD0FFDF08B067E705EB850C12 +:1019600000EB4C00188031200880002AF4D0A8F148 +:10197000060000F0FF09558125E0182101A822F09A +:10198000B8FC00977088434601AA716900F0EDFE2B +:10199000BDF804002080BDF80600E080BDF8080016 +:1019A0002081A21C0DF10A01484610F083FDB9F117 +:1019B000000F00D018B184F804A0A4F802A007EB2F +:1019C000080087B20A346D1EADB2D6D2C4E705EB6B +:1019D000850C00EB4C00188032200880002ABBD018 +:1019E000A8F1050000F0FF09558137E000977088E5 +:1019F000434601AA716900F0B8FE9DF80600BDF8E3 +:101A00000410E1802179420860F3000162F3410192 +:101A1000820862F38201C20862F3C301020962F321 +:101A20000411420962F34511820962F386112171A2 +:101A3000C0096071BDF80700208122460DF109013F +:101A4000484610F037FD18B184F802A0A4F800A0B1 +:101A500000E007E007EB080087B20A346D1EADB264 +:101A6000C4D279E7A8F1020084B205FB08F000F1C6 +:101A70000E0CA3F800C035230B80002AA6D0558198 +:101A80009481009783B270880E32716900F06DFE08 +:101A900062E72DE9F84F1E460A9D0C4681462AB1A1 +:101AA000607A00F58070D080E089108199F80C0090 +:101AB0000C274FF000084FF00E0A0D2873D2DFE814 +:101AC00000F09E070E1C28303846556A7373730069 +:101AD000214648460095FFF779FEBDE8F88F207B48 +:101AE0009146082802D0032800D0FFDF378030203D +:101AF0000AE000BFA9F80A80EFE7207B914604289E +:101B000000D0FFDF378031202880B9F1000FF1D1FC +:101B1000E3E7207B9146042800D0FFDF37803220A6 +:101B2000F2E7207B9146022800D0FFDF3780332088 +:101B3000EAE7207B1746022800D0FFDF3420A6F812 +:101B400000A02880002FC8D0A7F80A80C5E7207B16 +:101B50001746042800D0FFDF3520A6F800A0288013 +:101B6000002FBAD04046A7F80A8012E0207B174623 +:101B7000052802D0062800D0FFDF10203080362054 +:101B80002880002FA9D0E0897881A7F80E80B9F8C5 +:101B90000E00B881A1E7207B9146072800D0FFDF27 +:101BA00037803720B0E72AE04FF0120018804FF05E +:101BB00038001700288090D0E0897881A7F80E803F +:101BC000A7F8108099F80C000A2805D00B2809D036 +:101BD0000C280DD0FFDF80E7207B0A2800D0FFDF34 +:101BE00001200AE0207B0B2800D0FFDF042004E066 +:101BF000207B0C2800D0FFDF052038736DE7FFDF66 +:101C00006BE770B50C46054601F025FC20B1007865 +:101C1000222804D2082070BD43F2020070BD0521C5 +:101C200028460EF0C5FE206008B1002070BD0320DC +:101C300070BD30B44880087820F00F00C01C20F040 +:101C4000F000903001F8080B1DCA81E81D0030BC7F +:101C500007F0E3BB2DE9FF4784B0002782460297D7 +:101C600007989046894612300AF014F9401D20F07A +:101C70000306079828B907A95046FFF7C2FF0028B6 +:101C800054D1B9F1000F05D00798017B19BB052588 +:101C900004681BE098F80000092803D00D2812D032 +:101CA000FFDF46E0079903254868B0B3497B4288C7 +:101CB0007143914239D98AB2B3B2011D0EF0EBFCE7 +:101CC0000446078002E0079C042508340CB12088F4 +:101CD00010B1032D29D02CE00798012112300AF011 +:101CE0000BF9ADF80C00024602AB2946504608F04D +:101CF000F0F9070001D1A01C029007983A46123073 +:101D0000C8F80400A8F802A003A94046029B0AF004 +:101D100000F9D8B10A2817D200E006E0DFE800F0A9 +:101D200007091414100B0D141412132014E60020CC +:101D300012E6112010E608200EE643F203000BE63F +:101D4000072009E60D2007E6032005E6BDF80C0094 +:101D50002346CDE900702A465046079900F015FD4C +:101D600057B9032D08D10798B3B2417B406871433E +:101D70008AB2011D0EF0A3FCB9F1000FD7D007996C +:101D800081F80C90D3E72DE9FE4F91461A881C4646 +:101D90008A468046FAB102AB494608F09AF9050036 +:101DA00019D04046A61C27880EF046FF324607266B +:101DB00029463B4600960EF054FB20882346CDE989 +:101DC00000504A465146404600F0DFFC002020808B +:101DD0000120BDE8FE8F0020FBE710B586B01C4651 +:101DE000AAB104238DF800301388ADF8083052886A +:101DF000ADF80A208A788DF80E200988ADF80C100D +:101E000000236A462146FFF725FF06B010BD1020CB +:101E1000FBE770B50D4605210EF0CAFD040000D1A8 +:101E2000FFDF294604F11200BDE870400AF04DB80A +:101E30002DE9F8430D468046002607F0EBFA0446EC +:101E40002878102878D2DFE800F0773B345331311E +:101E5000123131310831313131312879001FC0B2AE +:101E6000022801D0102810D114BBFFDF35E004B9DF +:101E7000FFDF052140460EF09BFD007B032806D0C6 +:101E800004280BD0072828D0FFDF072655E0287943 +:101E9000801FC0B2022820D050B1F6E72879401F39 +:101EA000C0B2022819D0102817D0EEE704B9FFDF1E +:101EB00013E004B9FFDF287901280ED1172137E09C +:101EC000052140460EF074FD070000D1FFDF07F149 +:101ED0001201404609F0D6FF2CB12A462146404661 +:101EE000FFF7A7FE29E01321404602F0A7FD24E0FA +:101EF00004B9FFDF052140460EF05AFD060000D16F +:101F0000FFDF694606F1120009F0C6FF060000D0A7 +:101F1000FFDFA988172901D2172200E00A46BDF881 +:101F20000000824202D9014602E005E01729C5D32C +:101F3000404600F03AFCD0E7FFDF3046BDE8F883CA +:101F4000401D20F0030219B102FB01F0001D00E06A +:101F500000201044704713B5009848B1002468462B +:101F60000EF043FB002C02D1F74A009911601CBD12 +:101F700001240020F4E72DE9F0470C461546242102 +:101F8000204622F0B6F905B9FFDFA87860732888EB +:101F9000DFF8B4A3401D20F00301AF788946DAF8DA +:101FA00000000EF040FB060000D1FFDF4FF00008FC +:101FB0002660A6F8008077B109FB07F1091D0AD059 +:101FC000DAF800000EF02FFB060000D1FFDF66609C +:101FD000C6F8008001E0C4F80480298804F11200EA +:101FE000BDE8F04709F040BF2DE9F047804601F118 +:101FF00012000D46814609F04DFF401DD24F20F0E2 +:1020000003026E7B1446296838680EF037FB3EB138 +:1020100004FB06F2121D03D0696838680EF02EFB2F +:1020200005200EF06DFC044605200EF071FC201A10 +:10203000012802D138680EF0EBFA49464046BDE867 +:10204000F04709F026BF70B5054605210EF0B0FC3B +:10205000040000D1FFDF04F112012846BDE8704002 +:1020600009F010BF2DE9F04F91B04FF0000BADF823 +:1020700034B0ADF804B047880C46054692460521B9 +:1020800038460EF095FC060000D1FFDF24B1A78092 +:10209000A4F806B0A4F808B0297809220B20B2EB06 +:1020A000111F7DD12A7A04F1100138274FF00C0856 +:1020B0004FF001090391102A73D2DFE802F072F2A7 +:1020C000F1F07F08D2888D9F3DDBF3EEB6B6307B12 +:1020D000022800D0FFDFA88908EBC001ADF804108A +:1020E0003021ADF83410002C25D06081B5F80E9069 +:1020F00000271DE004EBC708317C88F80E10F18939 +:10210000A8F80C10CDF800906888042304AA296967 +:1021100000F02BFBBDF81010A8F8101009F1040016 +:10212000BDF812107F1C1FFA80F9A8F81210BFB278 +:102130006089B842DED80DE1307B022800D0FFDF95 +:10214000E98908EBC100ADF804003020ADF8340097 +:10215000287B0A90001FC0B20F90002CEBD0618149 +:10216000B5F81090002725E0CDF8009068886969DF +:1021700003AA0A9B00F0F9FA0A9804EBC70848443E +:102180001FFA80F908F10C0204A90F9810F092F9D7 +:1021900018B188F80EB0A8F80CB0BDF80C1001E02A +:1021A000D4E0CFE0A8F81010BDF80E107F1CA8F8FE +:1021B0001210BFB26089B842D6D8CBE00DA800900B +:1021C00001AB224629463046FFF71BFBC2E0307BBD +:1021D000082805D0FFDF03E0307B082800D0FFDFB0 +:1021E000E8891030ADF804003620ADF83400002C3A +:1021F0003FD0A9896181F189A18127E0307B09283D +:1022000000D0FFDFA88900F10C01ADF804103721E0 +:10221000ADF83410002C2CD06081E8890090AB8997 +:10222000688804F10C02296956E0E88939211030E8 +:1022300080B2ADF80400ADF83410002C74D0A98938 +:102240006181287A0E280AD002212173E989E1816F +:10225000288A0090EB8968886969039A3CE001212B +:10226000F3E70DA8009001AB224629463046FFF760 +:1022700059FB6FE0307B0A2800D0FFDF1220ADF859 +:102280000400ADF834704CB3A9896181A4F810B092 +:10229000A4F80EB084F80C905CE020E002E031E09D +:1022A00039E042E0307B0B2800D0FFDF288AADF810 +:1022B00034701230ADF8040084B104212173A9896F +:1022C0006181E989E181298A2182688A00902B8ACB +:1022D000688804F11202696900F047FA3AE0307B3D +:1022E0000C2800D0FFDF1220ADF80400ADF83470E8 +:1022F0003CB305212173A4F80AB0A4F80EB0A4F8E9 +:1023000010B027E00DA8009001AB224629463046C8 +:10231000FFF75CFA1EE00DA8009001AB22462946AB +:102320003046FFF7B6FB15E034E03B21ADF8040082 +:10233000ADF8341074B3A4F80690A4F808B084F88B +:102340000AB007E0FFDF05E010000020297A01292C +:1023500017D0FFDFBDF80400AAF800006CB1BDF88B +:1023600034002080BDF804006080BDF834003928B6 +:1023700003D03C2801D086F80CB011B00020BDE895 +:10238000F08F3C21ADF80400ADF8341014B1697A37 +:10239000A172DFE7AAF80000EFE72DE9F8435688BD +:1023A0000F4680461546052130460EF001FB04001D +:1023B00000D1FFDF123400943B46414630466A6844 +:1023C00009F0DBFEBAE570B50D4605210EF0F0FA16 +:1023D000040000D1FFDF294604F11200BDE870407F +:1023E00009F065BD70B50D4605210EF0E1FA040057 +:1023F00000D1FFDF294604F11200BDE8704009F06A +:1024000083BD70B5054605210EF0D2FA040000D157 +:10241000FFDF04F1080321462846BDE8704004228E +:10242000B1E470B5054605210EF0C2FA040000D1F2 +:10243000FFDF214628462368BDE870400522A2E45C +:1024400070B5064605210EF0B3FA040000D1FFDF97 +:1024500004F1120009F01EFD401D20F0030511E0FB +:10246000011D00880322431821463046FFF78BFCEC +:1024700000280BD0607BABB2684382B26068011D5C +:102480000EF053F9606841880029E9D170BD70B53C +:102490000E46054606F0BEFF040000D1FFDF012016 +:1024A000207266726580207820F00F00C01C20F03A +:1024B000F00030302070BDE8704006F0AEBF2DE96E +:1024C000F0438BB00D461446814606A9FFF799FBF1 +:1024D000002814D14FF6FF7601274FF420588CB115 +:1024E00003208DF800001020ADF8100007A805901B +:1024F00007AA204604A90FF0FCFF78B107200BB013 +:10250000BDE8F0830820ADF808508DF80E708DF806 +:102510000000ADF80A60ADF80C800CE00698A178D8 +:1025200001742188C1818DF80E70ADF80850ADF8A6 +:102530000C80ADF80A606A4602214846069BFFF708 +:1025400089FBDCE708B501228DF8022042F6020281 +:10255000ADF800200A4603236946FFF73EFC08BD9C +:1025600008B501228DF8022042F60302ADF80020E2 +:102570000A4604236946FFF730FC08BD00B587B062 +:1025800079B102228DF800200A88ADF80820498828 +:10259000ADF80A1000236A460521FFF75BFB07B080 +:1025A00000BD1020FBE709B1072316E407207047A0 +:1025B00070B588B00D461446064606A9FFF721FB04 +:1025C00000280ED17CB10620ADF808508DF800002F +:1025D000ADF80A40069B6A460821DC813046FFF7C9 +:1025E00039FB08B070BD05208DF80000ADF808502B +:1025F000F0E700B587B059B107238DF80030ADF88A +:102600000820039100236A460921FFF723FBC6E750 +:102610001020C4E770B588B00C460646002506A910 +:10262000FFF7EFFA0028DCD106980121123009F0FB +:1026300063FC9CB12178062921D2DFE801F0200556 +:1026400005160318801E80B2C01EE28880B20AB14F +:10265000A3681BB1824203D90C20C2E71020C0E757 +:10266000042904D0A08850B901E00620B9E7012967 +:1026700013D0022905D004291CD005292AD007200F +:10268000AFE709208DF800006088ADF80800E08809 +:10269000ADF80A00A068039023E00A208DF800003E +:1026A0006088ADF80800E088ADF80A00A0680A2547 +:1026B000039016E00B208DF800006088ADF808004C +:1026C000A088ADF80A00E088ADF80C00A0680B25E2 +:1026D000049006E00C208DF8000060788DF808006A +:1026E0000C256A4629463046069BFFF7B3FA78E781 +:1026F00000B587B00D228DF80020ADF8081000233A +:102700006A461946FFF7A6FA49E700B587B071B1E6 +:1027100002228DF800200A88ADF808204988ADF81B +:102720000A1000236A460621FFF794FA37E71020C3 +:1027300035E770B586B0064601200D46ADF80810A5 +:102740008DF80000014600236A463046FFF782FA02 +:10275000040008D12946304605F09AFC0021304695 +:1027600005F0B4FC204606B070BDF8B51C46154611 +:102770000E46069F0EF04EFA2346FF1DBCB23146B0 +:102780002A4600940DF039FEF8BD30B41146DDE95B +:1027900002423CB1032903D0002330BC08F022BB25 +:1027A0000123FAE71A8030BC704770B50C46054625 +:1027B000FFF72FFB2146284605F079FC2846BDE8A7 +:1027C0007040012105F082BC4FF0E0224FF400413F +:1027D0000020C2F88011204908702049900208604A +:1027E000704730B51C4D04462878A04218BF002C15 +:1027F00002D0002818BFFFDF2878A04208BF30BDF4 +:102800002C701749154A0020ECB1164DDFF858C05E +:10281000131F012C0DD0022C1CBFFFDF30BD086040 +:1028200003200860CCF800504FF4000010601860DE +:1028300030BD086002200860CCF800504FF04070B6 +:102840001060186030BD086008604FF06070106064 +:1028500030BD00B5FFDF00BD1800002008F50140C5 +:1028600000F500408C02002014F5004070B50B20EC +:1028700000F0B5F9082000F0B2F900210B2000F0BB +:10288000C4F90021082000F0C0F9EC4C0125656076 +:10289000A5600020C4F84001C4F84401C4F8480110 +:1028A0000B2000F0A7F9082000F0A4F90B2000F09D +:1028B0008BF9256070BD10B50B2000F090F9082051 +:1028C00000F08DF9DD48012141608160DC490A6832 +:1028D000002AFCD10021C0F84011C0F84411C0F812 +:1028E00048110B2000F086F9BDE81040082000F0E8 +:1028F00081B910B50B2000F07DF9BDE8104008202B +:1029000000F078B900B530B1012806D0022806D011 +:10291000FFDF002000BDCB4800BDCB4800BDCA484A +:10292000001D00BD70B5C9494FF000400860C84D9A +:10293000C00BC5F80803C74800240460C5F840412F +:102940000820C43500F04BF9C5F83C41C24804707A +:1029500070BD08B5B94A002128B1012811D002285C +:102960001CD0FFDF08BD4FF48030C2F80803C2F866 +:102970004803B3483C300160C2F84011BDE808404C +:10298000D0E74FF40030C2F80803C2F84803AC485F +:1029900040300160C2F84411AB480CE04FF4802095 +:1029A000C2F80803C2F84803A54844300160C2F8E1 +:1029B0004811A548001D0068009008BD70B5164676 +:1029C0000D460446022800D9FFDF00229B48012360 +:1029D00004F110018B4000EB8401C1F8405526B191 +:1029E000C1F84021C0F8043303E0C0F80833C1F84F +:1029F0004021C0F8443370BD2DE9F0411C46154616 +:102A000030B1012834D0022839D0FFDFBDE8F08191 +:102A1000891E002221F07F411046FFF7CFFF012CD5 +:102A200024D000208C4E8A4F012470703C6189496B +:102A300000203C3908600220091D086085490420F7 +:102A40003039086083483D350560C7F800420820EA +:102A500000F0D0F82004C7F80403082000F0B4F810 +:102A60007A49E007091F08603470CFE70120D9E7F1 +:102A7000012B02D00022012005E00122FBE7012BFF +:102A800004D000220220BDE8F04197E70122F9E7D7 +:102A90006B480068704770B500F0C7F8674C054692 +:102AA000D4F840010026012809D1D4F80803C00356 +:102AB00005D54FF48030C4F80803C4F84061D4F859 +:102AC000440101280CD1D4F80803800308D54FF441 +:102AD0000030C4F80803C4F84461012010F0CDFCB4 +:102AE000D4F8480101280CD1D4F80803400308D5D4 +:102AF0004FF48020C4F80803C4F84861022010F0A5 +:102B0000BCFC5648056070BD70B500F08EF8524DA3 +:102B10000446287858B1FFF705FF687820B10020F7 +:102B200085F8010010F0A9FC4C48046070BD03203A +:102B3000F8E74FF0E0214FF40010C1F800027047B1 +:102B4000152000F057B8424901200861082000F024 +:102B500051B83F494FF47C10C1F8080300200246E9 +:102B600001EB8003C3F84025C3F84021401CC0B2EC +:102B70000628F5D37047410A43F609525143C0F382 +:102B8000080010FB02F000F5807001EB5020704748 +:102B900010B5430B48F2376463431B0C5C020C60B6 +:102BA0002F4C03FB04002F4B4CF2F72443435B0DE7 +:102BB00013FB04F404EB402000F580704012107009 +:102BC00008681844086010BD00F01F020121914000 +:102BD0004009800000F1E020C0F80011704700F0CB +:102BE0001F02012191404009800000F1E020C0F85F +:102BF0008011704700F01F020121914040098000C0 +:102C000000F1E020C0F8801270474907090E002843 +:102C100006DA00F00F0000F1E02080F8141D704784 +:102C200000F1E02080F8001470470C48001F006895 +:102C30000A4A0D49121D11607047000000B00040A3 +:102C400004B500404081004044B1004008F5014017 +:102C500000800040408500403800002014050240FC +:102C6000F7C2FFFF6F0C0100010000010A4810B518 +:102C70000468094909480831086010F092FC0648C8 +:102C8000001D046010BD0649002008604FF0E021DF +:102C90000220C1F8800270471005024001000001C7 +:102CA000FC1F004010B50D2000F06FF8C4B26FF0AB +:102CB000040000F06AF8C0B2844200D0FFDF3A4955 +:102CC0000120086010BD70B50D2000F048F8374CA9 +:102CD0000020C4F800010125C4F804530D2000F0C1 +:102CE00049F825604FF0E0216014C1F8000170BD83 +:102CF00010B50D2000F033F82C480121416000216F +:102D0000C0F80011BDE810400D2000F033B828488D +:102D100010B5046826492748083108602349D1F8CE +:102D20000001012804D0FFDF2148001D046010BD10 +:102D30001D48001D00680022C0B2C1F8002110F03B +:102D4000E7FFF1E710B51948D0F800110029FBD0D2 +:102D5000FFF7DDFFBDE810400D2000F00BB800F0DC +:102D60001F02012191404009800000F1E020C0F8DD +:102D70008011704700F01F0201219140400980003E +:102D800000F1E020C0F880127047002806DA00F059 +:102D90000F0000F1E02090F8140D03E000F1E020B6 +:102DA00090F800044009704704D5004000D000406E +:102DB000100502400100000110B5202000F082F84B +:102DC000202000F08AF84A49202081F8000449496F +:102DD00000060860091D48480860FEF79DFA45494D +:102DE000C83108604548D0F8041341F00101C0F82B +:102DF0000413D0F8041341F08071C0F804133C4967 +:102E000001201C39C1F8000110BD10B5202000F0D0 +:102E100059F8384800210160001D0160354A481EFC +:102E2000E83A1060354AC2F80803324BC8331960DB +:102E3000C2F80001C2F8600131490860BDE81040E5 +:102E4000202000F04AB82B492E48EC390860704722 +:102E500028492C48E8390860704726480160001D61 +:102E6000521E0260704723490120E8390860BFF311 +:102E70004F8F704770B51F4A8069E83A2149116049 +:102E80001E49D1F8006100231F4D1D4A5C1E1EB172 +:102E9000A84206D300210FE0D1F8606186B1A842B4 +:102EA00009D2C1F80031C1F860311460BDE870404A +:102EB000202000F012B81168BDE8704021F040BA3F +:102EC000FFDF70BD00F01F0201219140400980002A +:102ED00000F1E020C0F88011704700F01F020121CE +:102EE00091404009800000F1E020C0F88012704756 +:102EF00020E000E000060240C41400200000024070 +:102F00000004024001000001006002000F4A126844 +:102F10000D498A420CD118470C4A12680A4B9A4252 +:102F200006D101B510F06EFFFFF78DFFBDE801403F +:102F3000074909680958084706480749054A064BE2 +:102F40007047000000000000BEBAFECAB0000020BA +:102F500004000020E0120020E012002070B50C46B2 +:102F6000054609F0A7FA21462846BDE870400AF058 +:102F70008CBB10B511F0B0FBFFF726FC11F04CFA3A +:102F8000BDE8104011F0FEBA0120810708607047CB +:102F9000012081074860704712480068C00700D0D0 +:102FA000012070470F48001F0068C00700D00120B3 +:102FB00070470C4808300068C00700D001207047F7 +:102FC000084810300068704706490C310A68D2037F +:102FD00006D5096801F00301814201D10120704743 +:102FE000002070470C0400407047704770477047DE +:102FF000704770477047704770470004050600002F +:103000002CFFFFFFDBE5B15100600200A800FFFFCD +:1030100084000000808D5B0016425791AD5F58BC64 +:103020008E702F5A0FAA100DBCD52BFD30B5FC4D5C +:103030000446062CA9780ED2DFE804F0030E0E0E2B +:103040000509FFDF08E0022906D0FFDF04E00329BD +:1030500002D0FFDF00E0FFDFAC7030BD30B50446CA +:103060001038EF4D07280CD2DFE800F0040C060CF6 +:103070000C0C0C00FFDF05E0287E112802D0FFDFDA +:1030800000E0FFDF2C7630BD2DE9F0410FF09CFB16 +:10309000044610F038FD201AC5B206200DF030FCB1 +:1030A000044606200DF034FC211ADD4C207E122847 +:1030B00018D000200F1807200DF022FC064607202C +:1030C0000DF026FC301A3918207E13280CD0002071 +:1030D0000144A078042809D000200844281AC0B26E +:1030E000BDE8F0810120E5E70120F1E70120F4E7E8 +:1030F000CB4810B590F825004108C94800F12600DA +:1031000005D00BF0B6FABDE8104005F0AFBF0BF0EC +:1031100089FAF8E730B50446A1F120000D460A28E7 +:103120004AD2DFE800F005070C1C2328353A3F445B +:10313000FFDF42E0207820283FD1FFDF3DE0B848A4 +:103140008178052939D0007E122836D020782428AD +:1031500033D0252831D023282FD0FFDF2DE0207851 +:1031600022282AD0232828D8FFDF26E0207822280A +:1031700023D0FFDF21E0207822281ED024281CD075 +:1031800026281AD0272818D0292816D0FFDF14E0C7 +:103190002078252811D0FFDF0FE0207825280CD0DB +:1031A000FFDF0AE02078252807D0FFDF05E0207840 +:1031B000282802D0FFDF00E0FFDF257030BD10B50A +:1031C000012803D0022805D0FFDF10BDBDE8104064 +:1031D00003202BE79248007E122800D0FFDF002159 +:1031E000052011F04FF8BDE81040112036E71FB55B +:1031F00004466A46002001F01FFEB4B1BDF802206B +:103200004FF6FF700621824201D1ADF80210BDF8E1 +:103210000420824201D1ADF80410BDF808108142AB +:1032200003D14FF44860ADF8080068460BF089FF01 +:1032300005F01CFF04B010BD70B514460D460646DF +:1032400011F06CF858B90DB1A54201D90C2070BD30 +:10325000002408E056F8240011F060F808B11020AE +:1032600070BD641CE4B2AC42F4D3002070BD2DE903 +:10327000F04105461F4690460E460024006811F0B6 +:103280009AF808B110202BE728680028A88802D0F7 +:10329000B84202D84FE00028F5D0092020E728687E +:1032A000025DB2B1611C475C152F2DD03BDC3AD2D8 +:1032B000DFE807F03912222228282A2A3131393949 +:1032C00039393939393939392200025D32BB641C48 +:1032D000A4B2A142F9D833E0022ADED1A21C805C5C +:1032E00088F80000072801D2400701D40A20F7E639 +:1032F000307840F0010015E0D043C00707E0012A14 +:1033000007D010E00620EBE61007A0F1805000285F +:10331000F5D01846E4E63078820701D50B20DFE6C9 +:1033200040F0020030702868005D084484B2A8882C +:10333000A04202D2B1E74FF4485381B2A142AED8C5 +:103340000020CDE610B5027843F202235408012292 +:10335000022C12D003DC3CB1012C16D106E0032C68 +:1033600010D07F2C11D112E0002011E080790324CD +:10337000B4EB901F09D10A700BE08079B2EB901F7B +:1033800003D1F8E780798009F5D0184610BDFF20F9 +:103390000870002010BD224991F82E2042B191F80A +:1033A0002F10022909D0032909D043F202207047C7 +:1033B00001461B48253001F092BD032100E00121A8 +:1033C00001700020704738B50C460546694601F08B +:1033D00086FD00280DD19DF80010207861F347008C +:1033E000207055F8010FC4F80100A888A4F8050062 +:1033F000002038BD38B51378B0B1022814D0FF28AA +:103400001BD008A46D46246800944C7905EB9414F5 +:10341000247864F34703137003280AD010E00000F7 +:10342000D80100200302FF0123F0FE0313700228DD +:10343000F2D1D8B240F0010005E043F0FE00107078 +:10344000107820F0010010700868C2F80100888828 +:10345000A2F8050038BD02210DF0AABA38B50C4615 +:103460000978222901D2082038BDADF800008DF876 +:10347000022068460BF044F905F0F8FD050003D181 +:1034800021212046FFF746FE284638BD1CB5002006 +:103490008DF80000CDF80100ADF80500FE4890F869 +:1034A0002E00022801D0012000E000208DF8070046 +:1034B00068460BF056FB002800D0FFDF1CBD002241 +:1034C0000A80437892B263F345120A8043785B081E +:1034D00063F386120A8000780C282BD2DFE800F014 +:1034E0002A06090E1116191C1F220C2742F0110082 +:1034F00009E042F01D0008800020704742F01100F2 +:1035000012E042F0100040F00200F4E742F0100038 +:10351000F1E742F00100EEE742F0010004E042F082 +:103520000200E8E742F0020040F00400E3E742F066 +:103530000400E0E7072070472DE9FF478AB0002527 +:10354000BDF82C6082461C4690468DF81C507007D2 +:1035500003D5606810F0E2FE68B9CF4F4FF0010963 +:1035600097F82E0058B197F82F00022807D160680D +:1035700010F021FF18B110200EB0BDE8F087300721 +:1035800002D5A089802816D8700705D4B8F1000F9D +:1035900002D097F8240070B1E07DC0F300108DF8E0 +:1035A0001B00617D072041B1012906D00229E3D02B +:1035B0000429E1D12CE00720DEE749468DF8179079 +:1035C000F00609D4A27D072032B1012A04D0022AD4 +:1035D00005D0042AD0D11BE08DF8191002E002209A +:1035E0008DF819008DF815806068B0B107A9FFF754 +:1035F000A9FE0028C0D19DF81C00FF280AD06068F1 +:1036000050F8011FCDF80F108088ADF8130008E0C6 +:103610000620B1E743F20220AEE7CDF80F50ADF837 +:103620001350E07B0028F3D1207C0028F0D1607C8F +:103630000028EDD1A07C0028EAD1E07CC006E7D1CB +:103640008DF800A0BDF82C00ADF80200A068019034 +:10365000A068029004F10F0001F035FC8DF80C0019 +:103660000DF10D00FFF797FE00B1FFDF9DF81C0084 +:103670008DF80E008DF816508DF81850E07D08A9D1 +:1036800000F00F008DF81A0068460BF036FF05F0C9 +:10369000EDFC71E7F0B59DB000228DF868208DF843 +:1036A00058208DF8602005468DF86C2012921392F8 +:1036B0001492159219B10FC912AC84E80F00764C20 +:1036C000A078052801D004280CD11298616888429E +:1036D00000D120B91498E168884203D110B10820C4 +:1036E0001DB0F0BD1F26334618AA1AA912A8FFF76D +:1036F000BEFD0028F4D133461BAA16A914A8FFF773 +:10370000B6FD0028ECD19DF85800C00701D00A2072 +:10371000E6E7A08A410708D4A17D31B19DF8601089 +:10372000890702D043F20120DAE79DF86010C9074B +:1037300009D0400707D4208818B144F2506188426C +:1037400001D90720CCE78DF8005003268DF80160E1 +:1037500001278DF80270BDF84C208DF8032001A8D8 +:10376000129920F025FD68460BF028FF05F07EFC3D +:103770000028B5D18DF824508DF825608DF826707D +:10378000BDF854208DF827200AA8149920F010FDC8 +:1037900009A80BF060FF05F069FC0028A0D112AD6C +:1037A000241D95E80F0084E80F00002098E770B50D +:1037B00086B00D46040005D010F0FDFD20B11020AC +:1037C00006B070BD0820FBE72078C107A98802D0A9 +:1037D000FF2902D303E01F2901D20920F0E7800767 +:1037E00061D4FFF751FC38B12078C0F3C101012941 +:1037F00004D0032902D005E01320E1E7264991F81F +:10380000241041B1C0074FF000054FF0010604D06D +:103810008DF80F6003E00720D2E78DF80F5068465F +:10382000FFF7B9FD00B1FFDF2078C0F3C1008DF8CC +:1038300001008DF80250607808B98DF80260607858 +:10384000C00705D09DF8020040F001008DF802008D +:103850006078800705D59DF8020040F002008DF8E1 +:1038600002006078400705D59DF8020040F0040092 +:103870008DF802002078C0F380008DF80300608886 +:10388000ADF80600A088ADF80A00207A58B9607A31 +:1038900048B9A07A38B901E0D8010020E07A10B91F +:1038A000207BC00601D006208AE704F1080001F061 +:1038B0000AFB8DF80E0068460BF087F905F0D6FB81 +:1038C00000288BD18DF810608DF81150ADF8125092 +:1038D000ADF8145004A80BF0FDF905F0C7FB002863 +:1038E0008BD1E08864280AD248B1012001F001FBA5 +:1038F000002891D12078C00705D0152004E064216C +:10390000B0FBF1F0F2E71320FFF7A8FB002057E728 +:103910002DE9FF470220FF4E8DF804000027708E2E +:10392000ADF80600B84643F202094CE001A80CF0DD +:10393000A6FF050006D0708EA8B3A6F83280ADF8B9 +:1039400006803EE0039CA07F01072DD504F12400F2 +:103950000090A28EBDF80800214604F1360301F064 +:1039600054FC050005D04D452AD0112D3CD0FFDF79 +:103970003AE0A07F20F00801E07F420862F3C7111F +:10398000A177810861F30000E07794F8210000F04E +:103990001F0084F820002078282826D129212046DD +:1039A000FFF7B8FB21E014E040070AD5BDF8080096 +:1039B00004F10E0101F0ABFA05000DD04D4510D118 +:1039C00000257F1CFFB202200CF09AFF401CB84279 +:1039D000ACD8052D11D008E0A07F20F00400A0771E +:1039E00003E0112D00D0FFDF0025BDF80600708632 +:1039F000052D04D0284604B0BFE5A6F8328000208B +:103A0000F9E770B50646FFF726FD054605F002FD0D +:103A1000040000D1FFDF6680207820F00F00801CBA +:103A200020F0F000203020700620207295F83E0033 +:103A30006072BDE8704005F0F0BC2DE9F04786B03B +:103A4000040000D1FFDF2078B24D20F00F00801C71 +:103A500020F0F0007030207060680178491F1B2949 +:103A600033D2DFE801F0FE32323255FD320EFDFD79 +:103A700042FC32323278FCFCFB323232FCFCFAF986 +:103A8000FC00C6883046FFF7E6FC0546304607F0E6 +:103A9000A7F8E0B16068007A85F83E002121284649 +:103AA000FFF738FB3046FEF7CEFA304603F016FE3D +:103AB0003146012010F0E6FBA87F20F01000A87727 +:103AC000FFF726FF002800D0FFDF06B055E520787D +:103AD00020F0F000203020700620207266806068A0 +:103AE000007A607205F099FCD8E7C5882846FFF790 +:103AF000B2FC00B9FFDF60680079012800D0FFDF69 +:103B00006068017A06B02846BDE8F04707F044BC7B +:103B1000C6883046FFF79FFC050000D1FFDF05F0A7 +:103B20007CFC606831460089288160684089688132 +:103B300060688089A881012010F0A4FB0020A8758E +:103B4000A87F00F003000228BFD1FFF7E1FE0028A4 +:103B5000BBD0FFDFB9E70079022811D000B1FFDF49 +:103B600005F05BFC6668B6F806A0307A361D0128C1 +:103B70000CD0687E814605F0E5F9070009D107E021 +:103B800006B00220BDE8F047FFF719BBE878F1E77F +:103B9000FFDF0022022150460CF001FF040000D19B +:103BA000FFDF22212046FFF7B5FA3079012800D047 +:103BB0000220A17F804668F30101A177308B20812C +:103BC000708B6081B08BA08184F822908DF8088082 +:103BD000B8680090F86801906A46032150460CF0DE +:103BE000DEFE00B9FFDFB888ADF81000B8788DF8B8 +:103BF000120004AA052150460CF0D1FE00B9FFDFE7 +:103C0000B888ADF80C00F8788DF80E0003AA0421EE +:103C100050460CF0C4FE00B9FFDF062106F1120089 +:103C200001F093F938B37079800700D5FFDF71791F +:103C3000E07D61F34700E075D6F80600A061708969 +:103C4000A083062106F10C0001F07FF9E8B195F898 +:103C500025004108607805E032E02AE047E03FE0D7 +:103C600021E035E061F347006070D5F82600C4F824 +:103C70000200688D12E0E07D20F0FE00801CE075FF +:103C8000D6F81200A061F08ADAE7607820F0FE0032 +:103C9000801C6070F068C4F80200308AE080404602 +:103CA000FFF78DFA11E706B02046BDE8F04701F0B6 +:103CB00035BD05F0B2FB15F8300F40F0020005E00D +:103CC00005F0ABFB15F8300F40F004002870FCE65F +:103CD000287E132809D01528E4D11620FFF7BEF955 +:103CE00006B0BDE8F04705F098BB1420F6E7A978C8 +:103CF000052909D00429D5D105F08FFB022006B093 +:103D0000BDE8F047FFF792B900790028CAD0E878FB +:103D100002E00000D801002001F0BCF805F07DFBB6 +:103D20000320ECE72DE9F05F054600784FF000082E +:103D30000009DFF820A891460C46464601287AD0B3 +:103D400001274FF0020C4FF6FF73022874D00728AA +:103D50000BD00A2871D0FFDFA9F8006014B1A4F8D5 +:103D6000008066800020BDE8F09F696804F10800CB +:103D70000A78172A70D010DC4FF0000B142A31D0CB +:103D800006DC052A6DD0092A0FD0102A7ED11FE04B +:103D9000152A7CD0162AF9D1F0E01B3A052A75D2F3 +:103DA000DFE802F009C5FDDAFC00C8884FF0120810 +:103DB0001026214675E14FF01C080A26D4B38888E6 +:103DC000A0806868807920726868C0796072C3E7F3 +:103DD0004FF01B0814266CB303202072686880889B +:103DE000A080B9E70A793C2AB6D00D1D4FF0100823 +:103DF0002C26FCB16988A180298B6182298B2182C4 +:103E0000698BA182A98BE1826B790246A91D1846B4 +:103E1000FFF7F0FA2879012810D084F80FC0FF20AE +:103E20002076C4F81CB0C4F820B0C4F824B0C4F89C +:103E300028B091E712E013E13BE135E1E7730AF1C5 +:103E4000040084F818B090E80E00DAF81000C4E915 +:103E50000930C4E907127FE7A8E002E0A9F8006092 +:103E600080E72C264FF01D08002CF7D00546A380D4 +:103E7000887B2A880F1D60F300022A80887B400817 +:103E800060F341022A80887B800801E0E6E0ADE033 +:103E900060F382022A80887BB91CC00860F3C302E9 +:103EA0002A80B87A0011401C60F3041202F07F00EF +:103EB00028807878AA1CFFF79DFA387D05F1090261 +:103EC00007F11501FFF796FA387B01F04DF82874D9 +:103ED000787B01F049F86874F87EA874787AE87401 +:103EE00097F83B002875B87B6875A5F816B0DAF826 +:103EF0001C00A861397ABAF82000884201D2014634 +:103F000010E0B87AC0F3411002280BD0012809D084 +:103F1000288820F060002880A1840A4607F11C014F +:103F2000A86998E0288820F060004030F3E7112667 +:103F30004FF02008002C91D0A380686804F10A0299 +:103F4000007920726868007B607269688B1D48790F +:103F50001946FFF74FFAFFE60A264FF02108002C1A +:103F6000E9D08888A0806868807920726868C07904 +:103F700060729AF8301021F004018BE00B264FF0AC +:103F80002208002CD7D0C888A080686800792072E9 +:103F90006868007A00F0E8FF607201E052E039E002 +:103FA0006868407A00F0E0FFA072D5E61C264FF06A +:103FB0002608002CBFD0A3806868407960726868CA +:103FC000007AA0720AF1040090E80E00DAF81000FE +:103FD000C4E90530C4E90312686800793C2803D0BD +:103FE00043287DD0FFDFB7E62772B5E610264FF0F5 +:103FF0002408002C9FD08888A08068688079208160 +:104000006868807A608168680089A08168688089B2 +:10401000E081A1E610264FF02308002C8BD0888881 +:10402000A0806868C08820816868008960816868AD +:104030004089A08168688089E0819AF8301021F079 +:10404000020127E030264FF02508002C88D0A380FD +:1040500069682822496820F0ABF87DE64A4677E097 +:10406000287A012803D0022817D0FFDF74E6102633 +:104070004FF01F08002C85D06888A080A889208177 +:10408000E8896081288AA081688AE0819AF83010E6 +:1040900021F001018AF830105EE64FF01208102678 +:1040A000688800F03FFF57E62846BDE8F05F01F062 +:1040B000BFBC287A07284DD2DFE800F04C38384AD8 +:1040C0004A4A040009264FF01108002C92D06F884C +:1040D0003846FFF7C0F990F822A0A780687A00E080 +:1040E0002DE02072042138460CF074FC052138467E +:1040F0000CF070FC002138460CF06CFC01213846B5 +:104100000CF068FC032138460CF064FC02213846B0 +:104110000CF060FC062138460CF05CFC07213846A8 +:104120000CF058FC504600F0B5FE15E614264FF092 +:104130001B08002C8AD0A380287A012802D084F89A +:1041400008C009E62772DAE90710C4E9031003E69C +:104150002146A9E7FFDFFFE570B5FE4D287E122856 +:1041600001D0082070BD0AF0C3FF04F07FFF0400F7 +:1041700002D1687E00F08EFE0021052010F082F84A +:10418000204670BD1CB5F348007E132801D20820DC +:104190001CBD00208DF8000068460AF09BFD04F06D +:1041A00065FF0028F4D10021052010F06BF81120E4 +:1041B000FEF754FF00201CBD70B5012805D005286E +:1041C00025D0062800D0FFDF70BD8DB22846FFF74E +:1041D00042F9040000D1FFDF20782128F4D005F057 +:1041E00019F968B1017821F00F01891C21F0F00163 +:1041F000103101700221017245800020A07528E075 +:1042000021462846BDE870401322FFF727B9D14860 +:10421000047EA4F1120005281FD2DFE800F0060397 +:1042200003030300FFF7AEFF01E0FFF795FF00284F +:10423000CAD105F0EFF80028C6D0017821F00F01AF +:10424000891C21F0F00120310170132C07D00221CC +:104250000172BDE8704005F0E0B8FFDF70BD0121DC +:10426000F6E72DE9F04116460C00804600D1FFDF4D +:10427000307820F00F00801C20F0F00010303070FB +:104280002078012804D0022818D0FFDFBDE8F08193 +:104290004046FFF7E0F8050000D1FFDF0320A875D6 +:1042A00005F0BBF894E80F00083686E80F00A9482F +:1042B00010F8301F41F001010170E7E74046FFF7B9 +:1042C000CAF8050000D1FFDFA1884FF6FF70002774 +:1042D000814202D1E288824203D0814201D1E0884A +:1042E00040B105F09AF894E80F00083686E80F0010 +:1042F000AF75CBE7A87D0128C8D1782300224146BD +:104300000FF016FF0220A875C0E738B505460C4629 +:10431000084610F003F818BB203D062D4AD2DFE80E +:1043200005F0031B373C4230002106200FF080FFD0 +:1043300008B1112038BDA01C0AF0AFFF04F096FEB2 +:10434000050038D100220823114606200FF0F0FEA8 +:10435000062830D0FFDF2EE0606810F023F808B1A7 +:10436000102038BD618820886A460BF05FFB04F09E +:104370007DFE05001FD16068E8B1BDF80010018026 +:1043800019E0A07800F0010120880BF085FB0EE019 +:10439000206801F0FBFD05460DE0207800F00100EB +:1043A0000AF033F903E0618820880BF0C4FA04F0C6 +:1043B0005DFEF0E70725284638BD70B505460C467A +:1043C00008460FF0D1FF08B1102070BD202D07D096 +:1043D000212D0DD0222D0BD0252D09D0072070BD09 +:1043E0002088A11C0AF006FABDE8704004F03EBE29 +:1043F000062070BD57482530704708B53421554810 +:104400001FF077FF0120FEF711FE1120FEF726FEB8 +:1044100050496846263104F093FF4E489DF800202D +:1044200010F8251F62F3470121F0010101700021FE +:1044300041724FF46171A0F8071002218172FEF7FA +:1044400057FE00B1FFDFFCF791FF01F032F908BD24 +:1044500010B50C46402120461FF029FFA07F20F018 +:104460000300A077202020700020A07584F823008E +:1044700010BD70472DE9FC4107460FF04FFF10B10A +:104480001020BDE8FC81334E06F12501D6F8250049 +:104490000090B6F82950ADF8045096F82B408DF8EE +:1044A00006403846FEF78FFF0028EAD1FEF720FECF +:1044B0000028E6D0009946F8251FB580B471E0E7E2 +:1044C00010B504460FF050FF08B1102010BD214870 +:1044D0002049224690F8250026314008FEF78AFF41 +:1044E000002010BDFEB50D4604004FF0000712D0AD +:1044F0000822FEF7A1FE002812D1002609E000BF25 +:1045000054F826006946FEF71DFF002808D1761CE6 +:10451000F6B2AE42F4D309F07CFF10B143F20320AF +:10452000FEBD0C4E86F8247024B300271EE000BFA9 +:1045300054F8270002A9FEF705FF00B1FFDF9DF840 +:1045400008008DF8000054F8270050F8011FCDF83E +:10455000011001E0D80100208088ADF80500684610 +:1045600009F0A1FF00B1FFDF7F1CFFB2AF42DFD334 +:1045700086F824500020FEBD2DE9F0478AB015468C +:10458000894604001ED00F4608222946FEF754FE35 +:10459000002810D1002613E054F826006946103098 +:1045A00000F09DFC002806D147B157F826000FF017 +:1045B000B5FE18B110200AB0BDE8F087761CF6B23F +:1045C000AE42E9D30026A5F101081BE006F1010A7D +:1045D0000AF0FF0712E000BF54F82600017C4A08E9 +:1045E00054F827100B7CB2EB530F05D10622113083 +:1045F00011311FF0B1FD58B17F1CFFB2AF42EBD3B8 +:104600000AF0FF064645E1DB4E4624B1012003E0F7 +:1046100043F20520CFE7002009F076FF10B909F03A +:1046200087FF10B143F20420C5E75CB300270DF10A +:10463000170825E054F827006946103000F04FFCB9 +:1046400000B1FFDF54F82700102250F8111FCDF8F9 +:1046500001108088ADF8050054F827100DF107000F +:104660001FF0A6FD96B156F82710102240461FF005 +:104670009FFD684609F0F0FE00B1FFDF7F1CFFB22E +:10468000AF42D7D3FEF702FF002094E7404601F087 +:1046900071FCEEE730B585B004460FF03FFE18B967 +:1046A00060680FF088FE10B1102005B030BD608842 +:1046B0004AF2B811884206D82078FB4D28B101286B +:1046C00006D0022804D00720EFE7FEF711FD18E01E +:1046D0006078022804D0032802D043F20220E4E7E5 +:1046E00085F82F00C1B200200090ADF80400022927 +:1046F0002CD0032927D0FFDF684609F0BAFF04F069 +:10470000B5FC0028D1D1606801F027FC207858B1B1 +:1047100001208DF800000DF1010001F02BFC68462E +:104720000BF018FA00B1FFDF207885F82E00FEF7B5 +:10473000ADFE608860B1A88580B209F0DDFE00B1F1 +:10474000FFDF0020B1E78DF80500D5E74020FAE74C +:104750004FF46170EFE710B504460FF005FE20B985 +:10476000606838B10FF01EFE08B1102010BD6068FF +:1047700001F000FCCC4830F82C1F6180C1786170DA +:1047800080782070002010BD2DE9F843144689463A +:1047900006460FF0E9FDA0B948460FF00CFE80B9BF +:1047A00020460FF008FE60B9BF4DA878012800D15F +:1047B0003CB13178FF2906D049B143F20400BDE88D +:1047C000F8831020FBE7012801D00420F7E74FF021 +:1047D0000008A4B3052811D004280FD0694620464C +:1047E000FEF76DFE0028EAD1207D48B1012809D0EE +:1047F000022809D0032809D00720E0E70820DEE7D7 +:10480000424604E0012202E0022200E003222346A5 +:10481000174600200099FEF78FFE0028CFD1A0890F +:104820002880A07BE875BDF80000A882AF75BDF8B0 +:104830000000000701D5A08988B1A08928804946D9 +:104840000020FEF727FF0028B9D1A87805280BD053 +:10485000042809D0287DC00703D0032002E080206F +:10486000ECE70220FEF7E2FB86F800800020A6E7D6 +:104870007CB58D4C05460E46A078022803D003284F +:1048800001D008207CBD15B143F204007CBD072097 +:104890000CF03EF810B9A078032806D0FEF7F4FB20 +:1048A00028B1A078032804D009E012207CBD132091 +:1048B0007CBD304600F0CDFA0028F9D1E670012029 +:1048C0008DF800008DF801008DF802502088ADF8B9 +:1048D0000400E07D8DF8060068460AF0EAFF04F067 +:1048E000C5FB0028E4D1A078032805D05FF00400C0 +:1048F000FEF79CFB00207CBDE07800F0BAFA0520B2 +:10490000F6E71CB510B143F204001CBD664CA0785C +:10491000042803D0052801D008201CBD00208DF8F4 +:10492000000001218DF801108DF8020068460AF0A0 +:10493000C0FF04F09BFB0028EFD1A078052805D02C +:104940005FF00200FEF772FB00201CBDE07800F073 +:10495000A1FA0320F6E72DE9FC4180460E46032527 +:1049600008460FF028FD002866D14046FEF773FD8B +:10497000040004D02078222804D2082081E543F2E4 +:1049800002007EE5A07F00F003073EB1012F0CD0AE +:1049900000203146FEF72BFC0500EFD1012F06D099 +:1049A000022F1AD0FFDF28466BE50120F1E7A07D3A +:1049B0003146022801D011B107E0112061E56846B7 +:1049C000FCF7E1FD0028D9D16946404606F0A7FC76 +:1049D0000500E8D10120A075E5E7A07D032804D1FA +:1049E000314890F83000C00701D02EB30EE026B158 +:1049F000A07F40071ED4002100E00121404606F0C0 +:104A0000AEFC0500CFD1A075002ECCD0314640467B +:104A100000F07DFA05461128C5D1A07F4107C2D418 +:104A2000316844F80E1F7168616040F00400207422 +:104A30000025B8E71125B6E7102022E570B50C4631 +:104A40000546FEF708FD010005D022462846BDE8D0 +:104A50007040FEF703BD43F2020070BD10B501289F +:104A600007D1114B9B78012B00D011B143F2040008 +:104A700010BD09F084FDBDE8104004F0F7BA012331 +:104A800000F012BA00231A46194600F00DBA70B5AC +:104A900006460C4608460FF041FC18B920680FF096 +:104AA00063FC18B1102070BDD8010020F74D2A7E9C +:104AB000112A04D0132A00D33EB10820F3E721467F +:104AC0003046FEF774FE60B1EDE70920132A0DD0E1 +:104AD000142A0BD0A188FF29E5D31520FEF7BEFAD2 +:104AE0000020D4E90012C5E90712DCE7A1881F29DC +:104AF000D9D31320F2E72DE9F047DFF8908307467A +:104B000090B098F818009A4615460C46132803D31F +:104B1000FFF738FB002822D120460FF0FFFBA0BB97 +:104B200028460FF0FBFB80BB20784FF00101C00747 +:104B30004FF0000602D08DF83A1001E08DF83A608F +:104B40002078C0F3C1008DF800006278072042B1E0 +:104B5000012A06D0022A02D0042A00D1062010B071 +:104B60002AE58DF809106088ADF80A00A088ADF834 +:104B7000100020788946C0F3C10001281FD0032807 +:104B80001DD038460FF0CAFB08B11020E7E738788F +:104B9000400808D0012809D0022807D0032805D0F2 +:104BA00043F20220DBE78DF8026001E08DF802900D +:104BB00057F8010FCDF80300B888ADF807000DF1E4 +:104BC0000100FEF7E8FB08B10320C8E72888ADF82C +:104BD00016006888ADF81C00A888ADF82200E888A7 +:104BE000ADF82800ADF82E60ADF8346068460AF0E4 +:104BF000BDF8E8B998F818004546112801D00820FA +:104C0000ADE706200BF084FE38B12078C0F3C10078 +:104C1000012804D0032802D004E012209FE795F871 +:104C2000240028B1FEF730FA022803D2132096E7B9 +:104C3000072094E7504600F00CF900288FD185F842 +:104C400019A068460AF051FA04F010FA002886D13B +:104C5000687E00F00EF9E08864280AD248B101208D +:104C600000F047F9040091D11220FEF7F7F9204631 +:104C700075E76421B0FBF1F0F2E770B50646154622 +:104C80000C4608460FF070FB18B928460FF06CFB75 +:104C900008B1102007E72A46214630460AF0A9FE4F +:104CA00004F0E4F90028F5D121787F29F2D105201C +:104CB000F9E67CB505460C4608460FF02FFB08B117 +:104CC00010207CBD2846FEF7C6FB20B100782228C4 +:104CD00004D208207CBD43F202007CBD6B4890F8F2 +:104CE0003000400701D511207CBD2178C80802D1D1 +:104CF0006078C20801D007207CBD890801D18008F6 +:104D000001D006207CBDADF8005020788DF802005F +:104D100060788DF803000220ADF80400684609F0C1 +:104D200042FF04F0A3F97CBD70B586B014460D4671 +:104D30000646FEF790FB28B10078222805D208200D +:104D400006B0B0E643F20200FAE728460FF033FB64 +:104D500020B944B120460FF025FB08B11020EFE741 +:104D600000202060A080494890F83000800701D5DD +:104D70001120E5E703A9304609F0BDFD18B100BFD9 +:104D800004F074F9DCE7ADF80060BDF81400ADF88C +:104D90000200BDF81600ADF80400BDF81000BDF823 +:104DA0001210ADF80600ADF808107DB1298809B1E0 +:104DB000ADF80610698809B1ADF80210A98809B1EB +:104DC000ADF80810E98809B1ADF80410DCB1BDF800 +:104DD0000610814201D9081A2080BDF80210BDF8E2 +:104DE0001400814201D9081A6080BDF80800BDF89E +:104DF0000410BDF816200144BDF812001044814291 +:104E000001D9081AA080684609F0AAFEB8E71CB5C7 +:104E10001F490968CDE90010684609F0AAFF04F0AF +:104E200025F91CBD1CB5002000900190684609F0D2 +:104E3000A0FF04F01BF91CBD108008885080488832 +:104E40009080C88810818888D0800020508190810F +:104E5000704710B5044604F075F830B1407830B1B1 +:104E6000204604F07EFB002010BD052010BD12205E +:104E700010BD10B504F066F8040000D1FFDF6078C3 +:104E800000B9FFDF6078401E607010BDD8010020BF +:104E90009C46020010B504F055F8040000D1FFDF75 +:104EA0006078401C6070F0E71CB5ADF800008DF82C +:104EB00002308DF803108DF8042068460AF05EFD7C +:104EC00004F0D4F81CBD0CB52DA2D2E90012CDE936 +:104ED00000120079694601EB501000780CBD027891 +:104EE000520804D0012A02D043F202207047FEF794 +:104EF00029BA10B548B183000022114605200FF0F1 +:104F000017F9052801D00320BFE70020BDE71FB532 +:104F10006A46FFF791FF68460AF04CF904F0A6F8DC +:104F200004B0B2E770B50C0006460DD0FEF793FA58 +:104F3000050000D1FFDFA6802889208128896081B3 +:104F40006889A081A889E081ADE510B500231A46E3 +:104F500003E0845C2343521CD2B28A42F9D30BB1E2 +:104F6000002092E7012090E700B530B1012803D07E +:104F7000022801D0FFDF002000BDFF2000BD00009F +:104F8000070605040302010010B504460FF0C6F938 +:104F900008B1102010BD2078C0F30210042807D8F3 +:104FA0006078072804D3A178102901D8814201D262 +:104FB000072010BDE078410706D421794A0703D4C1 +:104FC000000701D4080701D5062010BD002010BD40 +:104FD00010B513785C08837F64F3C7138377137865 +:104FE0009C08C37F64F30003C3771078C309487833 +:104FF00063F34100487013781C090B7864F347137E +:105000000B701378DB0863F3000048705078487128 +:1050100010BD10B5C4780B7864F300030B70C4782E +:10502000640864F341030B70C478A40864F382033A +:105030000B70C478E40864F3C3030B700379117830 +:1050400063F30001117003795B0863F34101117090 +:1050500003799B0863F3820111700079C00860F343 +:10506000C301117010BD70B514460D46064604F01C +:10507000D1F980B10178182221F00F01891C21F0AB +:10508000F001A03100F8081B21461FF0D6F8BDE85A +:10509000704004F0C2B929463046BDE87040132282 +:1050A000FEF7DCB92DE9F047064608A8894690E8E6 +:1050B00030041F469046142128461FF01AF900219B +:1050C000CAF80010B8F1000F03D0B9F1000F03D1F6 +:1050D00014E03878C00711D020680FF045F9C0BB44 +:1050E000B8F1000F07D12068123028602068143012 +:1050F00068602068A8602168CAF8001038788007C6 +:1051000024D560680FF04EF918BBB9F1000F21D01B +:10511000FFF770F90168C6F868118188A6F86C116C +:10512000807986F86E0101F002FDF94FEF60626848 +:1051300062B196F8680106F2691140081032FEF774 +:1051400059F91022394660681FF032F80020BDE896 +:10515000F08706E0606820B1E8606068C6F8640126 +:10516000F4E71020F3E730B5054608780C4620F048 +:105170000F00401C20F0F001103121700020607001 +:1051800095F8230030B104280FD0052811D0062847 +:1051900014D0FFDF20780121B1EB101F04D295F865 +:1051A000200000F01F00607030BD21F0F0002030C2 +:1051B00002E021F0F00030302070EBE721F0F00049 +:1051C0004030F9E7F0B591B0022715460C46064687 +:1051D0003A46ADF80870092103AB04F07AFF049059 +:1051E000002810D004208DF804008DF80170E03400 +:1051F000099605948DF818500AA968460DF0CAF86A +:1052000000B1FFDF012011B0F0BD10B588B00C4631 +:105210000A99ADF80000C3B11868CDF802005868CB +:10522000CDF80600ADF80A20102203A81EF0C0FF3A +:1052300068460AF062F803F019FF002803D1A17F45 +:1052400041F01001A17708B010BD0020CDF8020098 +:10525000E6E72DE9F84F0646808A0D4680B2824681 +:10526000FEF7F9F804463078DFF8A48200274FF003 +:105270000509A8F120080F2870D2DFE800F06FF2CE +:105280003708387D8CC8F1F0EFF35FF3F300A07FAF +:1052900000F00300022809D05FF0000080F0010157 +:1052A00050460BF085FB050003D101E00120F5E736 +:1052B000FFDF98F85C10C90702D0D8F860000BE057 +:1052C000032105F11D000EF004FDD5F81D009149E4 +:1052D000B0FBF1F201FB1200C5F81D0070686867B1 +:1052E000B068A8672078252800D0FFDFCAE0A07F3B +:1052F00000F00300022809D05FF0000080F00101F7 +:1053000050460BF055FB060003D101E00120F5E704 +:10531000FFDF3078810702D52178252904D040F0BD +:1053200001003070BDE8F88F02202870307F2871AE +:1053300006F11D002D36C5E90206F3E7A07F00F057 +:105340000300022808D0002080F0010150460BF035 +:105350002FFB040004D102E00120F5E7A7E1FFDF05 +:105360002078C10604D5072028703D346C60D9E749 +:1053700040F008002070D5E7E07F000700D5FFDF90 +:10538000307CB28800F0010301B05046BDE8F04F18 +:10539000092105F027BD04B9FFDF716821B1102292 +:1053A00004F124001EF004FF28212046FDF7B2FE80 +:1053B000A07F00F0030002280ED104F12400002396 +:1053C00000901A4621465046FFF71FFF112807D0CC +:1053D00029212046FDF79EFE307A84F82000A1E7BF +:1053E000A07F000700D5FFDF14F81E0F40F0080073 +:1053F0002070E782A761E761C109607861F341002D +:10540000014660F382016170307AE0708AE7A07F24 +:1054100000F00300022809D05FF0000080F00101D5 +:1054200050460BF0C5FA040003D101E00120F5E776 +:10543000FFDF022104F185000EF04BFC04202870F0 +:1054400004F5B4706860B4F88500288230481038DC +:105450007C346C61C5E9028064E703E024E15BE031 +:105460002DE015E0A07F00F00300022807D0002007 +:1054700080F0010150460BF09BFA18B901E00120C1 +:10548000F6E7FFDF324621465046BDE8F84FEAE531 +:1054900004B9FFDF20782128A1D93079012803D170 +:1054A000E07F40F00800E077324621465046FFF7A3 +:1054B000DAFD2046BDE8F84F2321FDF72BBE3279F7 +:1054C000AA8005F108030921504604F002FEE860B5 +:1054D00010B185F8009025E7A07F00F003000228B6 +:1054E00008D0002080F0010150460BF061FA040062 +:1054F00003D101E00120F5E7FFDF04F1620102239F +:105500001022081F0BF0DBF807703179417009E7B2 +:105510003802002040420F00A07F00F00300022864 +:1055200008D0002080F0010150460BF041FA050040 +:1055300003D101E00120F5E7FFDF95F8840000F0DA +:10554000030001287AD1A07F00F00307E07F10F06C +:10555000010602D0022F04D133E095F8A000C00765 +:105560002BD0D5F8601121B395F88320087C62F325 +:1055700087000874A17FCA09D5F8601162F3410061 +:105580000874D5F8601166F300000874AEB1D5F860 +:105590006001102204F1240188351EF009FE287EE6 +:1055A00040F001002876287820F0010005F88809ED +:1055B00000E016B1022F04D02DE095F88800C00756 +:1055C00027D0D5F85C1121B395F88320087C62F3CD +:1055D00087000874A17FCA09D5F85C1162F3410005 +:1055E0000874D5F85C1166F3000008748EB1D5F824 +:1055F0005C01102204F1240188351EF0D9FD2878C1 +:1056000040F0010005F8180B287820F0010005F89B +:10561000A009022F44D0002000EB400005EBC000A1 +:1056200090F88800800709D595F87C00D5F86421AA +:10563000400805F17D011032FDF7DCFE8DF8009089 +:1056400095F884006A4600F003008DF8010095F893 +:1056500088108DF8021095F8A0008DF803002146FF +:10566000504601F04DFA2078252805D0212807D092 +:10567000FFDF2078222803D922212046FDF74AFDAA +:10568000A07F00F0030002280CD0002080F0010170 +:1056900050460BF09FF900283FF44FAEFFDF41E684 +:1056A0000120B9E70120F1E7706847703AE6FFDFB3 +:1056B00038E670B5FE4C002584F85C5025660CF089 +:1056C00036FE04F11001204603F060FE84F83050ED +:1056D00070BD70B50D46FDF7BEFE040000D1FFDFC2 +:1056E0004FF4B87128461EF004FE04F1240028612E +:1056F000A07F00F00300022808D0012105F1E0009E +:105700000CF016FE002800D0FFDF70BD0221F5E787 +:105710000A46014602F1E0000CF02ABE70B50546CB +:10572000406886B001780A2906D00D2933D00E29A9 +:105730002FD0FFDF06B070BD86883046FDF78BFEA8 +:10574000040000D1FFDF20782128F3D028281BD1C6 +:10575000686802210E3001F0C8F9A8B16868082114 +:10576000801D01F0C2F978B104F1240130460AF03D +:10577000A2F803F07BFC00B1FFDF06B02046BDE8D5 +:1057800070402921FDF7C6BC06B0BDE8704003F0AB +:1057900044BE012101726868C6883046FDF75BFE91 +:1057A000040000D1FFDFA07F00F00301022902D135 +:1057B00020F01000A077207821280AD06868017AAC +:1057C00009B1007980B1A07F00F00300022862D007 +:1057D000FFDFA07F00F003000228ABD1FEF798F8AE +:1057E0000028A7D0FFDFA5E703F017FEA17F08067A +:1057F0002BD5E07FC00705D094F8200000F01F00F3 +:10580000102820D05FF0050084F823002078292894 +:105810001DD02428DDD1314604200EF033FD222195 +:105820002046FDF777FCA07F00F00300022830D06F +:105830005FF0000080F0010130460BF0CBF800284B +:10584000C7D0FFDFC5E70620DEE70420DCE701F074 +:105850000300022808D0002080F0010130460BF040 +:10586000A7F8050003D101E00120F5E7FFDF2521BE +:105870002046FDF74FFC03208DF80000694605F136 +:10588000E0000CF06CFD0228A3D00028A1D0FFDFBF +:105890009FE70120CEE703F0C0FD9AE72DE9F04332 +:1058A00087B09946164688460746FDF7D4FD0400A2 +:1058B0004BD02078222848D3232846D0E07F000709 +:1058C00043D4A07F00F00300022809D05FF000005D +:1058D00080F0010138460BF06BF8050002D00CE0B7 +:1058E0000120F5E7A07F00F00300022805D0012188 +:1058F000002238460BF053F805466946284601F069 +:1059000026F9009800B9FFDF45B10098E035056140 +:105910002078222806D0242804D007E0009900200F +:10592000086103E025212046FDF7F4FB00980121E2 +:1059300041704762868001A9C0E902890CF02AFD06 +:10594000022802D0002800D0FFDF07B0BDE8F083B6 +:1059500070B586B00546FDF77EFD017822291ED977 +:10596000807F00F00300022808D0002080F00101B1 +:1059700028460BF01DF804002FD101E00120F5E7C7 +:10598000FFDF2AE0B4F85E0004F1620630440178DB +:10599000427829B121462846FFF714FCB0B9C9E680 +:1059A000ADF804200921284602AB04F092FB0390D5 +:1059B0000028F4D005208DF80000694604F1E000CD +:1059C0000CF0CDFC022801D000B1FFDF0223102231 +:1059D000314604F15E000AF0A8FEB4F86000002829 +:1059E000D0D1A7E610B586B00446FDF734FD0178A6 +:1059F00022291BD9807F00F00300022808D0002054 +:105A000080F0010120460AF0D3FF040003D101E039 +:105A10000120F5E7FFDF06208DF80000694604F15C +:105A2000E0000CF09CFC002800D0FFDF06B010BDA9 +:105A30002DE9F05F05460C460027007890460109E5 +:105A40003E4604F1080BBA4602297DD0072902D050 +:105A50000A2909D146E0686801780A2905D00D298C +:105A600030D00E292ED0FFDFBCE114271C26002CDD +:105A70006BD08088A080FDF7EEFC5FEA000900D1C2 +:105A8000FFDF99F817005A46400809F11801FDF7A1 +:105A9000B1FC6868C0892082696851F8060FC4F8B3 +:105AA00012004868C4F81600A07E20F0060001E04D +:105AB0001802002040F00100A07699F81E0040F086 +:105AC00020014DE01A270A26002CD1D0C088A080E2 +:105AD000FDF7C1FC050000D1FFDF59462846FFF75E +:105AE00042FB7FE10CB1A88BA080287A0B287DD0E7 +:105AF00006DC01287BD0022808D0032804D135E039 +:105B00000D2875D00E2874D0FFDF6BE11E27092603 +:105B1000002CADD0A088FDF79EFC5FEA000900D103 +:105B2000FFDF287B00F003000128207A1BD020F043 +:105B300001002072297B890861F341002072297BD2 +:105B4000C90861F3820001E041E1F2E02072297BA3 +:105B5000090961F3C300207299F81E0040F040016A +:105B600089F81E103EE140F00100E2E713270D2600 +:105B7000002CAAD0A088FDF76EFC8146807F00F043 +:105B80000300022808D0002080F00101A0880AF05C +:105B90000FFF050003D101E00120F5E7FFDF99F8D1 +:105BA0001E0000F00302022A50D0686F817801F0D5 +:105BB00003010129217A4BD021F001012172837860 +:105BC0009B0863F3410121728378DB0863F3820150 +:105BD000217283781B0963F3C3012172037863F395 +:105BE00006112172437863F3C71103E061E0A9E075 +:105BF00090E0A1E0217284F809A0C178A172022A84 +:105C000029D00279E17A62F30001E1720279520847 +:105C100062F34101E1720279920862F38201E1725A +:105C20000279D20862F3C301E1724279217B62F307 +:105C3000000121734279520862F3410121734279D4 +:105C4000920862F382012173407928E0A86FADE7E2 +:105C500041F00101B2E74279E17A62F30001E172B9 +:105C60004279520862F34101E1724279920862F38B +:105C70008201E1724279D20862F3C301E1720279D2 +:105C8000217B62F3000121730279520862F3410122 +:105C900021730279920862F3820121730079C008AE +:105CA00060F3C301217399F80000232831D926211C +:105CB00040E018271026E4B3A088FDF7CCFB83460C +:105CC000807F00F00300022809D0002080F001014D +:105CD000A0880AF06DFE5FEA000903D101E001200F +:105CE000F4E7FFDFE868A06099F8000040F00401E5 +:105CF00089F8001099F80100800708D50120207369 +:105D00009BF8000023286DD92721584651E084F8DC +:105D10000CA067E015270F265CB1A088FDF79BFB60 +:105D2000814606225946E86808F059F90120A07317 +:105D3000A2E041E048463CE016270926E4B3287B70 +:105D400020724FE0287B19270E26ACB3C4F808A0B8 +:105D5000A4F80CA0012807D0022805D0032805D0FC +:105D6000042803D0FFDF0DE0207207E0697B0428E0 +:105D700001F00F0141F0800121721ED0607A20F005 +:105D800003006072A088FDF766FB054600782128B5 +:105D900028D0232800D0FFDFA87F00F003000228CE +:105DA00013D0002080F00101A0880AF013FE222108 +:105DB0002846FDF7AFF915E004E0607A20F0030013 +:105DC000401CDEE7A8F8006011E00120EAE70CB112 +:105DD0006888A080287A03282ED004280AD00528B5 +:105DE00050D0FFDFA8F800600CB12780668000204B +:105DF000BDE8F09F15270F26002CE3D0A088FDF703 +:105E00002AFB807F00F00300022809D05FF0000029 +:105E100080F00101A0880AF0CBFD050003D101E06C +:105E20000120F5E7FFDFD5F81D000622594608F0EE +:105E3000D6F884F80EA0D5E717270926002CC1D084 +:105E4000A088FDF708FB8146807F00F00300022850 +:105E500008D0002080F00101A0880AF0A9FD05000B +:105E600003D101E00120F5E7FFDF6878800701D565 +:105E7000022000E00120207299F800002328B1D907 +:105E8000272157E719270E26002C9BD0A088FDF765 +:105E9000E2FA5FEA000900D1FFDFC4F808A0A4F825 +:105EA0000CA084F808A0A07A40F00300A07299F832 +:105EB0001E10C90961F38200A07299F81F2099F899 +:105EC0001E1012EAD11F05D099F8201001F01F0111 +:105ED00010292BD020F00800A07299F81F10607ACA +:105EE00061F3C3006072697A01F003010129A2D154 +:105EF00040F00400607299F81E0000F003000228D0 +:105F0000E87A16D0217B60F300012173AA7A607BC6 +:105F100062F300006073EA7A520862F34101217370 +:105F2000A97A490861F3410060735BE740F008001B +:105F3000D2E7617B60F300016173AA7A207B62F390 +:105F400000002073EA7A520862F341016173A97A72 +:105F5000490861F34100207344E710B5FE4C30B1AD +:105F60000146102204F120001EF022F9012084F8DD +:105F7000300010BD10B5044600F0D9FDF6492046AA +:105F80001022BDE8104020311EF012B970B5F24D5C +:105F900006004FF0000413D00EF0C0F908B1102431 +:105FA0000CE00621304608F001F8411C05D02866B7 +:105FB0005FF0010085F85C0000E00724204670BD1A +:105FC0000020F7E7007810F00F0204D0012A05D076 +:105FD000022A0CD110E0000909D10AE000090128C9 +:105FE00007D0022805D0032803D0042801D00720B9 +:105FF00070470870002070470620704705282AD295 +:10600000DFE800F003070F171F00087820F0FF00FB +:106010001EE0087820F00F00401C20F0F000103047 +:1060200016E0087820F00F00401C20F0F00020302F +:106030000EE0087820F00F00401C20F0F000303017 +:1060400006E0087820F00F00401C20F0F0004030FF +:10605000087000207047072070472DE9F041804606 +:1060600088B00D46002708460EF0A5F9A8B94046AD +:10607000FDF7F1F9040003D02078222815D104E0BF +:1060800043F2020008B0BDE8F08145B9A07F4106A7 +:1060900003D500F00300022801D01020F2E7A07F12 +:1060A000C10601D4010702D50DB10820EAE7E17F5E +:1060B000090701D50D20E5E700F00300022805D10E +:1060C00025B12846FEF760FF0700DBD1A07F00F076 +:1060D0000300022808D0002080F0010140460AF0A9 +:1060E00067FC060002D00FE00120F5E7A07F00F07A +:1060F000030002280ED0002080F00101002240465B +:106100000AF04DFC060007D0A07F00F00300022833 +:1061100004D009E00120EFE70420B3E725B12A46C7 +:1061200031462046FEF754FF6946304600F00FFD29 +:10613000009800B9FFDF0099022006F1E0024870E4 +:10614000C1F824804A6100220A81A27F02F0030282 +:10615000022A1CD001200871287800F00102087E74 +:1061600062F3010008762A78520862F3820008760A +:106170002A78920862F3C30008762A78D20862F37C +:106180000410087624212046FCF7C4FF33E035B321 +:106190000871301D88613078400908777078C0F345 +:1061A00040004877287800F00102887F62F3010000 +:1061B0008877A27FD20962F382008877E27F62F358 +:1061C000C3008877727862F304108877A878C8775C +:1061D00001F1210228462031FEF71BFF03E00320D6 +:1061E00008710520087625212046FCF793FFA07F43 +:1061F00020F04000A07701A900980CF0CBF802280D +:1062000001D000B1FFDF38463CE72DE9FF4F534A8C +:106210000D4699B09A4607CA0BAB002783E80700E2 +:106220001998FDF718F9060006D03078262806D010 +:1062300008201DB0BDE8F08F43F20200F9E7B07FFF +:1062400000F00309B9F1020F03D00020284302D067 +:1062500006E00120FAE71B98FEF796FE0028E8D139 +:10626000B07F00F00300022801D11B9979BB0228FE +:1062700008D0002080F0010119980AF099FB040071 +:1062800003D101E00120F5E7FFDF852D28D007DCF1 +:10629000F5B1812D1ED0822D1ED0832D08D11DE099 +:1062A000862D1FD0882D1FD0892D1FD08A2D1FD05D +:1062B0000F2020710F281DD003F0ACF8E0B10120B1 +:1062C0008DF84000201D11902079B8B167E111E0F0 +:1062D0000020EEE70120ECE70220EAE70320E8E7F0 +:1062E0000520E6E70620E4E70820E2E70920E0E7EA +:1062F0000A20DEE707209CE711209AE7B9F1020F98 +:1063000003D0A56F03D1A06F02E0656FFAE7606F5D +:10631000804632D04FF0010000904FF00200019013 +:10632000214630461B9AFEF753FE1B98007800F07A +:106330000101A87861F30100A870B17FC90961F378 +:106340008200A870F17F61F3C300A870617861F3E7 +:106350000410A870207803E018020020A446020070 +:10636000400928706078C0F3400068701B988078FE +:10637000E87000206871287103E00220009001207D +:106380000190A87898F80210C0F3C000C1F3C001D2 +:1063900008405FEA000B2CD050460DF0BFFF90BBC9 +:1063A000DAF80C000DF0BAFF68BBDAF81C000DF04B +:1063B000B5FF40BBDAF80C00A060DAF81C00E06022 +:1063C00098F80100617800F0010041EA4000607037 +:1063D00098F80210C0B2C1F30011891E0840607025 +:1063E00000202077019906F1170002290CD0012125 +:1063F0000BE098F80110607801F00101FD2242EAFB +:1064000041010840E3E732E0002104EB81014861EB +:106410000099701C022901D0012100E0002104EB49 +:1064200081014861A87800F00300012858D198F84C +:10643000020000F00300012852D1B9F1020F04D08C +:106440002A1D691D1B98FEF7E4FD297998F80400C0 +:1064500001408DF83810687998F8052010408DF8C3 +:106460003C0001433CD050460DF058FF08B11020CD +:10647000DFE60AF110010491B9F1020F18D00846C5 +:106480005FF0000104F18C03CDE9000304F5AE7266 +:1064900002920EAB5A462046FEF704FE0028E7D1D2 +:1064A000B9F1020F08D0504608D14FF0010107E0C2 +:1064B00050464FF00101E5E70498F5E74FF0000181 +:1064C00004F1A403CDE9000304F5B072029281F057 +:1064D00001010FAB5A462046FEF7E4FD0028C7D164 +:1064E0006078800734D4A87898F80210C0F3800050 +:1064F000C1F3800108432BD0297898F800000BAA3B +:10650000B9F1020F06D032F811204300DA4002F050 +:1065100003070AE032F810204B00DA4012F00307BC +:1065200005D0012F0BD0022F0BD0032F07D0BBF1CA +:10653000000F0DD0012906D0042904D008E002275D +:10654000F5E70127F3E7012801D0042800D104274B +:10655000B07F40F08000B077F17F6BF30001F177FE +:10656000607881074FF003000CD5A071BBF1000FDC +:1065700015D100BF8DF85C0017AA3146199800F0BC +:10658000BFFA0CE00221022F18D0012F18D0042FDF +:1065900022D00020A071B07F20F08000B0772521AC +:1065A0003046FCF7B7FD10A904F1E0000BF0D7FE70 +:1065B00010B1022800D0FFDF00203AE6A171D9E730 +:1065C000A1710D2104F120001DF093FE207840F010 +:1065D000020020700420CDE70120A071DFE72DE943 +:1065E000F04387B09046894604460025FCF733FF08 +:1065F000060006D03078272806D0082007B0BDE86E +:10660000F08343F20200F9E7B07F00F003000228B4 +:1066100008D0002080F0010120460AF0C9F90400EA +:1066200003D101E00120F5E7FFDFA7795FEA090068 +:1066300005D0012821D0B9F1020F26D110E0B8F120 +:10664000000F22D1012F05D0022F05D0032F05D036 +:10665000FFDF2DE00C252BE0012529E0022527E0B6 +:1066600040460DF05BFEB0B9032F0ED1102241461B +:1066700004F11D001DF09CFD1AE0012F02D0022F35 +:1066800003D104E0B8F1000F12D00720B6E740466E +:106690000DF044FE08B11020B0E7102104F11D00F8 +:1066A0001DF005FE0621404607F080FCC4F81D00E1 +:1066B0002078252140F0020020703046FCF72AFDAA +:1066C0002078C10713D020F00100207002208DF83F +:1066D000000004F11D0002908DF804506946C3309B +:1066E0000BF03DFE022803D010B1FFDF00E025775C +:1066F000002083E730B587B00D460446FCF7ABFEBB +:10670000A0B1807F00F00300022812D05FF00000EB +:1067100080F0010120460AF04BF904000ED0284613 +:106720000DF0FCFD38B1102007B030BD43F202007F +:10673000FAE70120ECE72078400701D40820F3E7CE +:10674000294604F13D00202205461DF031FD207848 +:1067500040F01000207001070FD520F008002070D5 +:1067600007208DF80000694604F1E00001950BF068 +:10677000F6FD022801D000B1FFDF0020D4E770B59C +:106780000D460646FCF767FE18B10178272921D18E +:1067900002E043F2020070BD807F00F00300022897 +:1067A00008D0002080F0010130460AF001F9040011 +:1067B00003D101E00120F5E7FFDFA079022809D12C +:1067C0006078C00706D02A4621463046FEF7FAFC1C +:1067D00010B10FE0082070BDB4F860000E280BD295 +:1067E00004F1620102231022081F09F068FF012151 +:1067F00001704570002070BD112070BD70B5064657 +:1068000014460D4608460DF089FD18B920460DF0D6 +:10681000ABFD08B1102070BDA6F57F40FF380ED04B +:106820003046FCF718FE38B1417822464B08811CEF +:106830001846FCF7DFFD07E043F2020070BD20467A +:10684000FDF73EFE0028F9D11021E01D0DF041FAC0 +:10685000E21D294604F1170000F089F9002070BDFF +:106860002DE9F04104468AB01546884600270846BF +:106870000DF0A1FD18B928460DF09DFD18B11020AE +:106880000AB0BDE8F0812046FCF7E5FD060003D024 +:10689000307827281BD102E043F20200F0E7B07FF6 +:1068A00000F00300022809D05FF0000080F0010131 +:1068B00020460AF07DF8040003D101E00120F5E74D +:1068C000FFDF2078400702D56078800701D40820D8 +:1068D000D6E7B07F00F00300022803D0A06F03D1F9 +:1068E000A16F02E0606FFAE7616F407800B19DB17F +:1068F000487810B1B8F1000F0ED0ADB1EA1D06A86E +:10690000E16800F034F9102206A905F117001DF026 +:1069100023FC18B1042707E00720B1E71022E91D86 +:1069200004F12D001DF044FCB8F1000F06D0102238 +:1069300008F1070104F11D001DF03AFC2078252123 +:1069400040F0020020703046FCF7E4FB2078C107DD +:1069500015D020F00100207002208DF8000004F115 +:106960001D000290103003908DF804706946B3301A +:106970000BF0F5FC022803D010B1FFDF00E0277711 +:1069800000207DE7F8B515460E460746FCF763FD87 +:10699000040004D02078222804D00820F8BD43F257 +:1069A0000200F8BDA07F00F00300022802D043F2ED +:1069B0000500F8BD30460DF0B1FC18B928460DF0C1 +:1069C000ADFC08B11020F8BD00953288B31C2146FB +:1069D0003846FEF71AFC112815D00028F3D1297C7F +:1069E0004A08A17F62F3C711A177297CE27F61F396 +:1069F0000002E277297C890884F82010A17F21F029 +:106A00004001A177F8BDA17F0907FBD4D6F80200A9 +:106A1000C4F83600D6F80600C4F83A003088A086DC +:106A20001022294604F124001DF0C2FB287C4108F5 +:106A3000E07F61F34100E077297C61F38200E07739 +:106A4000287C800884F82100A07F40F00800A0770F +:106A50000020D3E770B50D4606460BB1072070BD88 +:106A6000FCF7F9FC040007D02078222802D3A07F8D +:106A7000800604D4082070BD43F2020070BDADB1A1 +:106A80002946304608F017FF02F0F0FA297C4A0840 +:106A9000A17F62F3C711A177297CE27F61F3000235 +:106AA000E277297C890884F8201004E0304608F059 +:106AB0002AFF02F0DBFAA17F21F02001A17770BD4F +:106AC00070B50D46FCF7C7FC040005D028460DF054 +:106AD0004BFC20B1102070BD43F2020070BD29466E +:106AE0002046FEF740FB002070BD04E010F8012BAB +:106AF0000AB100207047491E89B2F7D201207047C1 +:106B000070B51546064602F085FC040000D1FFDF93 +:106B1000207820F00F00801C20F0F0002030207042 +:106B200066802868A060BDE8704002F076BC10B5B1 +:106B3000134C94F83000002808D104F12001A1F191 +:106B400010000BF04EFC012084F8300010BD10B195 +:106B500090F8B9202AB10A4890F8350018B1002001 +:106B600003E0B83001E0064834300860704708B5EB +:106B70000023009313460A460AF015F908BD0000E9 +:106B80001802002018B18178012938D101E01020C5 +:106B90007047018842F60112881A914231D018DC00 +:106BA00042F60102A1EB020091422AD00CDC41B373 +:106BB000B1F5C05F25D06FF4C050081821D0A0F502 +:106BC0007060FF381BD11CE001281AD002280AD1BE +:106BD00017E0B0F5807F14D008DC012811D002281E +:106BE0000FD003280DD0FF2809D10AE0B0F5817F2E +:106BF00007D0A0F58070033803D0012801D0002011 +:106C000070470F2070470A281ED007DC18D2DFE833 +:106C100000F0191B1F1F171F231D1F21102815D03F +:106C200008DC0B2812D00C2810D00D2816D00F2805 +:106C300006D10DE011280BD084280BD087280FD067 +:106C400003207047002070470520704707207047D9 +:106C50000F20704704207047062070470C207047B3 +:106C600043F20200704738B50C46050041D0694632 +:106C7000FFF7A8F9002819D19DF80010607861F39A +:106C8000020060706946681CFFF79CF900280DD16E +:106C90009DF80010607861F3C5006070A978C1F3B9 +:106CA0004101012903D0022905D0072038BD2178F0 +:106CB00021F0200102E0217841F0200121704107FC +:106CC00004D0A978C90861F386106070607810F06C +:106CD000380F07D0A978090961F3C710607010F068 +:106CE000380F02D16078400603D5207840F040008C +:106CF0002070002038BD70B504460020088015467D +:106D00006068FFF7B0FF002816D12089A18988426A +:106D100011D860688078C0070AD0B1F5007F0AD822 +:106D200040F20120B1FBF0F200FB1210288007E0D6 +:106D3000B1F5FF7F01D90C2070BD01F2012129803E +:106D4000002070BD10B50478137864F3000313704D +:106D50000478640864F3410313700478A40864F3AE +:106D6000820313700478E40864F3C3031370047897 +:106D7000240964F3041313700478640964F345135D +:106D800013700078800960F38613137031B10878AE +:106D9000C10701D1800701D5012000E0002060F388 +:106DA000C713137010BD4278530702D002F00703D7 +:106DB00006E012F0380F02D0C2F3C20300E0012354 +:106DC0004A7863F302024A70407810F0380F02D01C +:106DD000C0F3C20005E0430702D000F0070000E066 +:106DE000012060F3C5024A7070472DE9F04F95B05D +:106DF0000D00824612D0122128461DF058FA4FF697 +:106E0000FF7B05AA0121584606F01BFF00242646F9 +:106E100037464FF420586FF4205972E0102015B017 +:106E2000BDE8F08F9DF81E0001280AD1BDF81C10A6 +:106E300041450BD011EB09000AD001280CD00228E3 +:106E40000CD0042C0ED0052C0FD10DE0012400E055 +:106E50000224BDF81A6008E0032406E00424BDF80B +:106E60001A7002E0052400E00624BDF81A1051450E +:106E700047D12C74BEB34FF0000810AA4FF0070A98 +:106E8000CDE90282CDE900A80DF13C091023CDF82F +:106E9000109042463146584606F086FF08BBBDF8C2 +:106EA0003C002A46C0B210A90BF004FBC8B9AE8161 +:106EB000CFB1CDE900A80DF1080C0AAE40468CE830 +:106EC0004102132300223946584606F06DFF40B9AF +:106ED000BDF83C00F11CC01EC0B22A1D0BF0EAFA3E +:106EE00010B103209BE70AE0BDF82900E881062CD9 +:106EF00005D19DF81E00A872BDF81C002881002055 +:106F00008DE705A806F0A9FE00288BD0FFF77BFED1 +:106F100085E72DE9F0471C46DDE90978DDF820908A +:106F200015460E00824600D1FFDF0CB1208818B153 +:106F3000D5B11120BDE8F087022D01D0012100E07C +:106F4000002106F1140005F06BFDA8F800000246D0 +:106F50003B462946504603F0BCF8C9F8000008B982 +:106F6000A41C3C600020E5E71320E3E7F0B41446DE +:106F7000DDE904528DB1002314B1022C09D101E0E6 +:106F8000012306E00D7CEE0703D025F00105012367 +:106F90000D742146F0BC03F025BF1A80F0BC704789 +:106FA0002DE9FE4F91461A881C468A468046FAB162 +:106FB00002AB494603F08DF8050019D04046A61CE7 +:106FC000278809F039FE3246072629463B460096B7 +:106FD00009F047FA20882346CDE900504A46514639 +:106FE0004046FFF7C3FF002020800120BDE8FE8F50 +:106FF0000020FBE72DE9F04786B09146DDE90E461B +:107000000F46824603AA05A904A8109D8DE8070033 +:107010009846324621465046FFF77BFF049909B156 +:10702000012200E000222A70002818D1F94A03AB9F +:107030001060059A009104F11400CDE901204A4640 +:107040003946504606F0A3F8A8B1092811D2DFE866 +:1070500000F005080510100A0C0C0E00002006B008 +:1070600068E71120FBE70720F9E70820F7E70D2084 +:10707000F5E70320F3E7BDF80C100498CDE9000113 +:107080004346324621465046FFF770FFE6E72DE9BA +:10709000F04389B00D46DDE9108781461C4616464F +:1070A000142103A81DF025F9012002218DF81010EC +:1070B0008DF80C008DF81170ADF8146064B1A278F1 +:1070C000D20709D08DF81600E088ADF81A00A08824 +:1070D000ADF81800A068079008A80095CDE9011048 +:1070E000424603A948466B68FFF784FF09B0BDE834 +:1070F000F083F0B58BB0002406460694079407276A +:10710000089405A80994019400970294CDE90340DE +:107110000D4610232246304606F046FE78B90AA8EE +:1071200006A9019400970294CDE90310BDF814302C +:1071300000222946304606F00DFC002801D0FFF75A +:1071400062FD0BB0F0BD06F0ADBA2DE9FC410C4676 +:107150008046002602F05EF9054620780D287DD293 +:10716000DFE800F0BC0713B325BD49496383AF9541 +:107170009B00A848006820B1417841F0100141709F +:10718000ADE0404602F076F9A9E00421404609F05E +:107190000FFC070000D1FFDF07F11401404605F0A6 +:1071A000D3FBA5BB13214046FDF748FC97E0042123 +:1071B000404609F0FDFB070000D1FFDFE088ADF895 +:1071C00000000020B8819DF80000010704D5C0062A +:1071D00002D5A088B88105E09DF8010040067ED563 +:1071E000A088F88105B9FFDF22462946404601F014 +:1071F00063FC022673E0E188ADF800109DF80110F1 +:1072000009060FD5072803D006280AD00AE024E093 +:107210000421404609F0CCFB060000D1FFDFA08826 +:10722000F0810226CDB9FFDF17E00421404609F0C6 +:10723000BFFB070000D1FFDF07F1140006F069FA79 +:1072400090F0010F02D1E079000648D5387C022683 +:1072500040F00200387405B9FFDF00E03EE022464E +:107260002946404601F028FC39E00421404609F057 +:107270009FFB017C002D01F00206C1F3400161710A +:10728000017C21F002010174E7D1FFDFE5E702266E +:107290000121404602F020F921E00421404609F096 +:1072A00087FB0546606800902089ADF80400012244 +:1072B0006946404602F031F9287C20F0020028742B +:1072C0000DE0002DC9D1FFDFC7E7022600214046AF +:1072D000FBF788F8002DC0D1FFDFBEE7FFDF3046A7 +:1072E000BDE8FC813EB50C0009D001466B4601AA01 +:1072F000002006F0DBFD20B1FFF785FC3EBD10202D +:107300003EBD00202080A0709DF8050002A900F07D +:107310000700FEF773FE50B99DF8080020709DF835 +:10732000050002A9C0F3C200FEF768FE08B1032001 +:107330003EBD9DF8080060709DF80500C109A07869 +:1073400061F30410A0709DF80510890961F3C30072 +:10735000A0709DF80410890601D5022100E00121EA +:1073600061F342009DF8001061F30000A07000205E +:107370003EBD70B5144606460D4651EA040005D0E0 +:1073800075B108460DF00EF878B901E0072070BD20 +:107390002946304606F0EBFD10B1BDE8704032E4FE +:1073A00054B120460CF0FEFF08B1102070BD2146FC +:1073B0003046BDE8704095E7002070BD2DE9FC5FC8 +:1073C0000C4690460546002701780822007A3E4682 +:1073D000B2EB111F7ED104F10A0100910A31821E25 +:1073E0004FF0020A04F1080B0191092A73D2DFE879 +:1073F00002F0ECDF05F427277AA9CD006888042184 +:1074000009F0D6FA060000D1FFDFB08920B152277B +:107410000726C2E07C02002051271026002C7DD0D8 +:107420006888A0800120A071A88900220099FFF738 +:10743000A0FF002873D1A8892081288AE081D1E0AB +:10744000B5F81290072824D1E87B000621D55127F2 +:1074500009F1140086B2002CE1D0A889002200991D +:10746000FFF787FF00285AD16888A08084F806A01B +:10747000A88920810120A073288A2082A4F8129074 +:10748000A88A009068884B46A969019A01F0F1FA30 +:10749000A8E0502709F1120086B2002C3ED0A8893E +:1074A00000225946FFF765FF002838D16888A08080 +:1074B000A889E080287A072813D002202073288A20 +:1074C000E081E87BC0096073A4F81090A88A00905E +:1074D000688801E083E080E04B4604F11202A9696C +:1074E000D4E70120EAE7B5F81290512709F114001A +:1074F00086B2002C66D06888042109F059FA8346C8 +:107500006888A080A88900220099FFF732FF002830 +:107510006ED184F806A0A889208101E052E067E0DE +:107520000420A073288A2082A4F81290A88A0090D0 +:1075300068884B46A969019A01F09BFAA989ABF8C2 +:107540000E104FE06888FBF786FF07466888042125 +:1075500009F02EFA064607B9FFDF06B9FFDF687BA0 +:10756000C00702D05127142601E0502712264CB341 +:107570006888A080502F06D084F806A0287B594642 +:1075800001F087FA2EE0287BA11DF9E7FE49A889C2 +:107590004989814205D1542706269CB16888A0807C +:1075A00020E053270BE06888A080A889E08019E0DC +:1075B0006888042109F0FCF900B9FFDF5527082687 +:1075C000002CF0D1A8F8006011E056270726002C07 +:1075D000F8D06888A080002013E0FFDF02E00128D7 +:1075E00008D0FFDFA8F800600CB12780668000207B +:1075F000BDE8FC9F57270726002CE3D06888A080B1 +:10760000687AA071EEE7401D20F0030009B1414304 +:10761000091D01EB4000704713B5DB4A00201071D3 +:10762000009848B10024684608F0DFFF002C02D122 +:10763000D64A009911601CBD01240020F4E770B502 +:107640000D46064686B014465C2128461CF051FEC5 +:1076500004B9FFDFA0786874A2782188284601F079 +:1076600042FA0020A881E881228805F11401304601 +:1076700005F04FF96A460121304606F0E2FA19E0BA +:107680009DF80300000715D5BDF806103046FFF73A +:1076900030FD9DF80300BDF8061040F010008DF895 +:1076A0000300BDF80300ADF81400FF233046059A2F +:1076B00006F028FC684606F0D0FA0028E0D006B0B4 +:1076C00070BD10B50C4601F1140005F059F90146E2 +:1076D000627C2046BDE8104001F03ABA70B505461C +:1076E000042109F065F9040000D1FFDF04F1140161 +:1076F0000C46284605F028F921462846BDE870408A +:1077000005F029B970B58AB00C460646FBF7A3FE12 +:10771000050014D02878222827D30CB1A08890B176 +:1077200001208DF80C0003208DF8100000208DF84A +:10773000110054B1A088ADF81800206807E043F2AA +:1077400002000AB070BD0920FBE7ADF818000590F3 +:107750000421304609F02CF9040000D1FFDF04F1C8 +:10776000140005F024F9000701D40820E9E701F02E +:1077700051FE60B108A802210094CDE9011095F8EE +:10778000232003A930466368FFF734FCD9E71120B2 +:10779000D7E72DE9F04FB2F802A0834689B015462D +:1077A00089465046FBF757FE07460421504609F02C +:1077B000FFF80026044605964FF002080696ADF83D +:1077C0001C6007B9FFDF04B9FFDF4146504603F0F4 +:1077D00070FE50B907AA06A905A88DE80700424621 +:1077E000214650466368FFF794FB674807AB066085 +:1077F000DDE9051204F11400CDF80090CDE9032075 +:10780000CDE9013197F82320594650466B6805F0C1 +:1078100017F906000AD0022E04D0032E14D0042E2D +:1078200000D0FFDF09B03046BDE8F08FBDF81C0086 +:107830000028F7D00599CDE9001042462146504670 +:107840006368FFF793FBEDE7687840F00800687025 +:10785000E8E72DE9F04F9BB004464FF000084A4896 +:10786000ADF85480ADF83080ADF85080A0F80880B5 +:10787000ADF81480ADF81880ADF82080ADF81C800C +:10788000007916460D464746012808D0022806D042 +:10789000032804D0042802D008201BB0C4E72046E7 +:1078A0000CF03CFDD0BB28460CF038FDB0BB606846 +:1078B0000CF081FD90BB606848B1608921898842E5 +:1078C00002D8B1F5007F01D90C20E6E780460BAA6B +:1078D00006A92846FFF70FFA0028DED168688078ED +:1078E000C0F34100022808D19DF8190010F0380FAC +:1078F00003D028690CF056FD80B905A92069FFF76F +:10790000B2F90028C9D1206950B1607880079DF88C +:10791000150000F0380002D5D0B301E011E0B8BB8B +:107920009DF8140080060ED59DF8150010F0380F54 +:1079300003D060680CF036FD18B960680CF03BFDB0 +:1079400008B11020A9E707A96069FFF78CF90028A2 +:10795000A3D1606940B19DF81D0000F00701012925 +:107960003FD110F0380F3CD008A9A069FFF77BF990 +:10797000002892D19DF81C00800632D49DF820008A +:1079800080062ED4A06904E07C02002014000020B0 +:1079900027E040B19DF8210000F00701012920D126 +:1079A00010F0380F1DD0E06818B10078C8B11C285D +:1079B00017D20EAA611C2046FFF7C4F90120B94670 +:1079C00060F30F27BA4607468DF84E0042F60300D3 +:1079D000ADF84C000DF13B0217A928680AF089FDAB +:1079E00008B1072059E79DF85C0016A9CDF8009072 +:1079F000C01CCDE9019100F0FF0B00230BF2012226 +:107A0000514613A806F060F8F0BBBDF85800099085 +:107A1000FE482A8929690092CDE901106B89BDF8D9 +:107A20002C202868069906F04FF801007ED12078B6 +:107A30004FF0020AC10601D480062BD5ADF80C9098 +:107A4000606950B907A906A8FFF7ADF99DF81D00B8 +:107A500020F00700401C8DF81D009DF81C008DF8DB +:107A60004E7040F0C8008DF81C0042F60210ADF8D0 +:107A70004C000CA903AACDF800A0CDE901210023F8 +:107A800040F2032213A800E01EE0079906F01CF85C +:107A900001004BD1DD484D4608385B460089ADF802 +:107AA00039000EA8CDE90290CDF80490CDF81090E1 +:107AB0004FF007090022CDF80090BDF858104FF69E +:107AC000FF7005F047FF10B1FFF79DF8E5E69DF860 +:107AD0003800000625D52946012060F30F218DF8D6 +:107AE0004E704FF42450ADF84C00ADF81050627851 +:107AF0009DF81000002362F300008DF810006278FA +:107B0000CDF800A0520862F341008DF8100004AADD +:107B1000CDE9012540F2032213A805F0D5FF0100AD +:107B200004D1606888B32069A8B900E086E005A99F +:107B300006A8FFF738F96078800706D49DF815008D +:107B400020F038008DF8150005E09DF8140040F095 +:107B500040008DF814008DF84E7042F60110ADF81B +:107B60004C00208940F20121B0FBF1F201FB12022E +:107B7000606814ABCDF80080CDE90103002313A8A1 +:107B8000059905F0A1FF010058D12078C00729D040 +:107B9000ADF80C50A06950B908A906A8FFF703F981 +:107BA0009DF8210020F00700401C8DF821009DF871 +:107BB00020008DF84E7040F040008DF8200042F615 +:107BC0000310ADF84C0015A903AACDF800A0CDE92B +:107BD0000121002340F2032213A8089905F074FF45 +:107BE00001002BD1E06868B32946012060F30F2122 +:107BF0008DF84E7042F60410ADF84C00E06800239A +:107C000002788DF8602040788DF86100E06818AA4D +:107C10004088ADF86200E06800798DF86400E068A3 +:107C2000C088ADF86500CDF80090CDE901254FF48E +:107C3000027213A805F048FF010003D0099800F074 +:107C4000B3FF2AE6714803210838017156B1008953 +:107C50003080BDF850007080BDF83000B080BDF8B5 +:107C60005400F080002018E670B501258AB0164651 +:107C70000B46012802D0022816D104E08DF80E50E0 +:107C80004FF4205003E08DF80E5042F60100ADF89D +:107C90000C005BB10024601C60F30F2404AA08A947 +:107CA00018460AF026FC18B107204AE5102048E5DE +:107CB00004A99DF820205548CDE90021801E02909E +:107CC0000023214603A802F2012205F0FDFE10B1B7 +:107CD000FEF799FF35E54D4808380EB1C18831806F +:107CE000057100202DE5F0B593B0074601268DF80B +:107CF0003E6041F60100ADF83C0012AA0FA93046E3 +:107D0000FFF7B2FF002848D1404C0025083CE7B3FC +:107D10001C2102A81CF0EDFA9DF808008DF83E60C9 +:107D200040F020008DF8080042F60520ADF83C0038 +:107D30000E959DF83A00119520F00600801C8DF8F4 +:107D40003A009DF838006A4620F0FF008DF83800B0 +:107D50009DF8390009A920F0FF008DF839000420B2 +:107D6000ADF82C00ADF830000EA80A9011A80D90C7 +:107D70000FA80990ADF82E5002A8FFF76AFD002861 +:107D80000BD1BDF80000608100E008E0BDF8040000 +:107D9000A081401CE0812571002013B0F0BD6581F9 +:107DA000A581BDF84800F4E72DE9F74F1749A0B0C9 +:107DB0000024083917940A79A146012A04D0022A1E +:107DC00002D0082023B02FE5CA88824201D00620C5 +:107DD000F8E721988A46824201D10720F2E7012084 +:107DE0002146ADF848004FF6FF7860F30F21ADF85B +:107DF0004A808DF86E0042F6020B06918DF87240B3 +:107E0000ADF86CB0ADF870401CA901E08402002010 +:107E10001391ADF8508012A805F043FF00252E46BF +:107E20002F460DAB072212A9404605F03DFF78B161 +:107E30000A285DD195B38EB3ADF86450ADF8666095 +:107E40009DF85E008DF8144019AC012864D06BE0F9 +:107E50009DF83A001FB3012859D1BDF83810594593 +:107E60001FD118A809A901940294CDE90310072095 +:107E70000090BDF8361010230022404605F094FF14 +:107E8000B0BBBDF86000042801D006284AD1BDF877 +:107E90002410219881423AD10F2093E73AE001283B +:107EA00035D1BDF83800B0F5205F03D042F60101AE +:107EB00088422CD1BAF80600BDF83610884201D1AC +:107EC000012700E0002705B19EB1219881421ED113 +:107ED00018A809AA01940294CDE903200720009074 +:107EE0000D4610230022404605F05EFF00B902E077 +:107EF0002DE04E460BE0BDF86000022801D01028AE +:107F000010D1C0B217AA09A90AF0D4FA50B9BDF825 +:107F1000369086E7052055E705A917A8221D0AF027 +:107F2000E8FA08B103204DE79DF814000023001D76 +:107F3000C2B28DF8142022980092CDE901401BA80E +:107F4000069905F0C1FD10B902228AF80420FEF757 +:107F50005AFE37E710B50B46401E88B084B205AA1A +:107F600000211846FEF7EEFE00200DF1080C06AACF +:107F700005A901908CE8070007200090012300224A +:107F800021464FF6FF7005F0E5FC0446BDF81800E9 +:107F9000012800D0FFDF2046FEF735FE08B010BDF7 +:107FA000F0B5FF4F044687B038790E46032804D059 +:107FB000042802D0082007B0F0BD04AA03A9204677 +:107FC000FEF799FE0500F6D160688078C0F34100A5 +:107FD00002280AD19DF80D0010F0380F05D0206955 +:107FE0000CF0E0F908B11020E5E7208905AA216925 +:107FF0008DE807006389BDF810202068039905F01B +:1080000063FD10B1FEF7FFFDD5E716B1BDF8140012 +:108010003080042038712846CDE7F8B50C000646BC +:108020000BD001464FF6FF7500236A46284605F03F +:108030003DFF20B1FEF7E7FDF8BD1020F8BD694611 +:108040002046FEF710FE0028F8D1A078314600F057 +:1080500001032846009A05F055FFEBE730B587B0DD +:10806000144600220DF1080C05AD01928CE82C009D +:10807000072200920A46014623884FF6FF7005F05A +:1080800069FCBDF814102180FEF7BDFD07B030BDBE +:1080900070B50D46042108F08BFC040000D1FFDF11 +:1080A000294604F11400BDE8704004F079BC70B5B5 +:1080B0000D46042108F07CFC040000D1FFDF2946B6 +:1080C00004F11400BDE8704004F08DBC70B50D469D +:1080D000042108F06DFC040000D1FFDF294604F103 +:1080E0001400BDE8704004F0A5BC70B5054604213D +:1080F00008F05EFC040000D1FFDF2146284623681B +:10810000BDE870400122FEF74BBF70B50646042162 +:1081100008F04EFC040000D1FFDF04F1140004F06D +:108120002FFC401D20F0030511E0011D00880022F6 +:10813000431821463046FEF733FF00280BD0607C01 +:10814000ABB2684382B2A068011D08F0EEFAA068E5 +:1081500041880029E9D170BD70B50546042108F0B9 +:1081600027FC040000D1FFDF214628466368BDE8F4 +:1081700070400222FEF714BF70B50E46054601F0AE +:1081800049F9040000D1FFDF01202072667265808A +:10819000207820F00F00001D20F0F000403020700B +:1081A000BDE8704001F039B910B50446012900D08E +:1081B000FFDF2046BDE810400121FAF713B92DE991 +:1081C000F04F97B04FF0000A0C008346ADF814A0B2 +:1081D000D04619D0E06830B1A068A8B10188ADF8E8 +:1081E0001410A0F800A05846FBF735F9070043F239 +:1081F000020961D0387822285CD30421584608F05F +:10820000D7FB050005D103E0102017B0BDE8F08FC3 +:10821000FFDF05F1140004F0B3FB401D20F003065E +:10822000A078012803D0022801D00720EDE721889B +:1082300007AA584605F005FD30BB07A805F00DFD5F +:1082400010BB07A805F009FD48B99DF826000128D4 +:1082500005D1BDF82400A0F52451023902D04FF415 +:108260005050D2E7E068B0B1CDE902A007200090FD +:1082700005AACDF804A00492A2882188BDF8143084 +:10828000584605F067FB10B1FEF7BDFCBDE7A168DD +:10829000BDF8140008809DF81F00C00602D543F207 +:1082A0000140B2E70B9838B1A1780078012905D0D8 +:1082B00080071AD40820A8E74846A6E7C007F9D0E7 +:1082C00002208DF83C00A8684FF00009A0B1697C3D +:1082D0004288714391420FD98AB2B3B2011D08F0AE +:1082E000DAF98046A0F800A006E003208DF83C00F3 +:1082F000D5F800804FF001099DF8200010F0380FEC +:1083000000D1FFDF9DF820002649C0F3C2000844D9 +:1083100097F8231010F8010C884201D90F2074E758 +:108320002088ADF8400014A90095CDE9019143469D +:1083300007220FA95846FEF75DFE002891D19DF84F +:10834000500050B9A078012807D1687CB3B27043BF +:1083500082B2A868011D08F0B2F9002055E770B597 +:10836000064615460C460846FEF70CFC002805D1CB +:108370002A4621463046BDE8704075E470BD13E5DD +:1083800070B51E4614460D000ED06CB1616859B12F +:1083900060B10349C988814208D0072070BD000040 +:1083A0007C020020FA2F00001020F7E72068FEF77B +:1083B000E9FB0028F2D1324621462846BDE870404C +:1083C000FFF747BA70B515460C0006D038B1FE4924 +:1083D0000989814203D00720E0E71020DEE720680A +:1083E000FEF7D0FB0028D9D129462046BDE87040D1 +:1083F000D6E570B5064686B00D46144610460BF01D +:10840000B3FFD0BB60680BF0D6FFB0BBA6F57F40D2 +:10841000FF3803D03046FBF71EF880B12846694686 +:10842000FEF7E3FC00280CD19DF810100F2008295E +:108430003CD2DFE801F008060606060A0A0843F205 +:10844000020006B0AAE70320FBE79DF8021001290D +:1084500008D1BDF80010B1F5C05FF2D06FF4C05282 +:10846000D142EED09DF8061001290DD1BDF80410BF +:10847000A1F52851062907D200E028E0DFE801F045 +:10848000030304030303DCE79DF80A1001290ED15E +:10849000BDF80810B1F5245FD3D0A1F524510239FD +:1084A000CFD00129CDD0022901D1CAE7FFDF606812 +:1084B00078B9002305AA2946304605F0F7FC10B12B +:1084C000FEF7A1FBBDE79DF81400800601D4102043 +:1084D000B7E76188224628466368FFF7BFFDB0E72B +:1084E0002DE9F043814687B08846144610460BF0CC +:1084F0003BFF18B1102007B0BDE8F083002306AAA7 +:108500004146484605F0D2FC18B100BFFEF77BFBA0 +:10851000F1E79DF81800C00602D543F20140EAE7F2 +:108520000025072705A8019500970295CDE903507E +:1085300062884FF6FF734146484605F035FC060059 +:1085400013D160680BF010FF60B960680195CDE948 +:10855000025000970495238862884146484605F0FA +:1085600023FC0646BDF8140020803046CEE739B122 +:10857000954B0A889B899A4202D843F203007047C0 +:108580001DE610B586B0904C0423ADF81430638915 +:1085900043B1A4898C4201D2914205D943F2030030 +:1085A00006B010BD0620FBE7ADF8101000210091C9 +:1085B0000191ADF8003002218DF8021005A9029159 +:1085C00004A90391ADF812206946FFF7F8FDE7E72B +:1085D0002DE9FC4781460E4608460BF09FFE88BBFE +:1085E0004846FAF738FF5FEA00080AD098F800001A +:1085F000222829D30421484608F0DAF9070005D1DA +:1086000003E043F20200BDE8FC87FFDF07F114003E +:1086100004F0CDF905463078012803D0022804D0B3 +:108620000720F0E7A8070FD502E015F01C0F0BD0CC +:10863000B079341DC00709D0E08838B1A0680BF0CC +:108640006DFE18B11020DEE70820DCE732782088C4 +:10865000002628B3A0F201130721112B18D20CD247 +:10866000DFE803F00B090D0B1D0B121D100B0B1D8A +:108670001D1D1D0B1D00022A11D10846C3E7012A4A +:10868000FBD00CE02A0700E0EA06002AF5DA06E053 +:10869000A0F5C0721F2A02D97D3A022AEDD8C6B2CF +:1086A00000F0B8FE50B198F82300CDE90006FA8931 +:1086B000234639464846FEF7EAFCA4E71120A2E724 +:1086C0002DE9F04F8BB01F4615460C468346002619 +:1086D000FAF7C1FE28B10078222805D208200BB095 +:1086E00094E543F20200FAE7B80801D00720F6E764 +:1086F000032F00D100274FF6FF79CCB1022D73D3A1 +:1087000020460BF058FE30B904EB0508A8F1010033 +:108710000BF051FE08B11020E1E7AD1EAAB22146D0 +:10872000484605F06DFC38F8021C88425CD1ADB2B9 +:108730002549B80702D58889401C00E001201FFAAE +:1087400080F8F80701D08F8900E04F4605AA41461E +:10875000584605F076FA4FF0070A4FF00009ACB31F +:10876000204608E0408810283ED8361D304486B2A6 +:10877000AE4239D2A01902884245F3D354E000BF7B +:108780009DF8170002074FD584B304EB0608361D89 +:10879000B8F80230B6B2102B26D89A19AA4223D8BC +:1087A000B8F8002091421FD1C00620D5CDE900A91C +:1087B0000DF1080C0AAAA11948468CE80700B8F880 +:1087C00000100022584603E07C0200202CE00BE061 +:1087D00005F0C0F810B1FEF716FA80E7B8F802000D +:1087E000BDF82810884202D00B2078E704E0B8F8E2 +:1087F0000200304486B206E0C00604D55846FEF7B3 +:1088000078FC002888D19DF81700BDF81A1020F0D8 +:1088100010008DF81700BDF81700ADF80000FF2319 +:108820005846009A05F06EFB05A805F016FA18B92F +:10883000BDF81A10B942A3D90421584608F0B8F877 +:10884000040000D1FFDFA2895AB1CDE900A94D464D +:10885000002321465846FEF71AFC0028BDD1A58109 +:108860003DE700203BE72DE9FF4F8BB01E46170088 +:108870000D464FF0000412D0B00802D007200FB010 +:10888000C4E4032E00D100265DB108460BF08AFD3A +:1088900028B93888691E08440BF084FD08B11020FF +:1088A000EDE7C74AB00701D5D18900E00121F00703 +:1088B0004FF6FF7802D0D089401E00E0404686B2D5 +:1088C00006AA0B9805F0BDF94FF000094FF0070B11 +:1088D0000DF1140A39E000BF9DF81B00000734D5E4 +:1088E000CDF80490CDF800B0CDF80890CDE9039A0A +:1088F000434600220B9805F057FA60BB05B3BDF85C +:1089000014103A8821442819091D8A4230D3BDF831 +:108910001E2020F8022BBDF8142020F8022BCDE9F0 +:1089200000B9CDE90290CDF810A0BDF81E10BDF839 +:10893000143000220B9805F037FA08B103209EE7A7 +:10894000BDF814002044001D84B206A805F085F986 +:1089500020B10A2806D0FEF756F990E7BDF81E10A0 +:10896000B142B9D934B17DB13888A11C884203D253 +:108970000C2084E7052082E722462946404605F080 +:108980003FFB014628190180A41C3C80002076E7AB +:1089900010B504460BF0E8FC08B1102010BD884863 +:1089A000C0892080002010BDF0B58BB00D46064672 +:1089B000142103A81BF09DFC01208DF80C008DF8FC +:1089C000100000208DF81100ADF814503046FAF771 +:1089D00042FD48B10078222812D30421304607F026 +:1089E000E7FF040005D103E043F202000BB0F0BD45 +:1089F000FFDF04F11400074603F0D9FF800601D41D +:108A00000820F3E7207C022140F00100207409A82F +:108A10000094CDE90110072203A930466368FEF7F0 +:108A2000E9FA20B1217C21F001012174DEE7294619 +:108A30003046F9F7C8FC08A9384603F0A7FF00B193 +:108A4000FFDFBDF82040172C01D2172000E02046A0 +:108A5000A84201D92C4602E0172C00D21724214647 +:108A60003046FFF724FB21463046F9F7D2F90020C3 +:108A7000BCE7F8B51C4615460E46069F08F0CAF836 +:108A80002346FF1DBCB231462A46009407F0B5FCD0 +:108A9000F8BD70B50C4605460E2120461BF007FCBC +:108AA000002020802DB1012D01D0FFDF76E40620CB +:108AB00000E00520A07171E410B5488008781346E5 +:108AC00020F00F00001D20F0F00080300C460870F0 +:108AD0001422194604F108001BF0AFFB00F09DFCC6 +:108AE0003748046010BD2DE9F047DFF8D890491DE4 +:108AF000064621F0030117460C46D9F8000007F09E +:108B000092FD050000D1FFDF4FF000083560A5F8A9 +:108B100000802146D9F8000007F085FD050000D14E +:108B2000FFDF7560A5F800807FB104FB07F1091D28 +:108B30000BD0D9F8000007F076FD040000D1FFDF6C +:108B4000B460C4F80080BDE8F087C6F80880FAE792 +:108B50002DE9F0411746491D21F00302194D064643 +:108B600001681446286807F089FD22467168286864 +:108B700007F084FD3FB104FB07F2121D03D0B1687A +:108B8000286807F07BFD042007F0BAFE04460420A5 +:108B900007F0BEFE201A012804D12868BDE8F04184 +:108BA00007F036BDBDE8F08110B50C4605F015F8AC +:108BB00000B1FFDF2046BDE81040FEF724B80000FA +:108BC0007C0200201400002038B50C468288817B8E +:108BD00019B14189914200D90A462280C188121DEB +:108BE00090B26A4606F092FFBDF80000032800D359 +:108BF0000320C1B2208800F0A3FF38BD38B50C4671 +:108C00008288817B19B10189914200D90A4622806C +:108C1000C188121D90B26A4606F078FFBDF80000C8 +:108C2000022800D30220C1B2208800F089FF401C36 +:108C3000C0B238BD2DE9FE4F0C46FD4981464022A9 +:108C4000D1E90201CDE9010109F1030020F003019E +:108C5000C91C21F0030100916846114607F0C5FCCC +:108C6000F44E002C02D1F44A00999160009901441D +:108C70000091357F05F1010504D1E8B209F0C0FB90 +:108C800000B1FFDF009800EB0510C01C20F00301CD +:108C900000915CB9707AB27A1044C2B200200870B8 +:108CA000308C80B204F021FE00B1FFDF0098316A01 +:108CB000084400902146684600F00DFF0098C01C53 +:108CC00020F003000090B37AF27A717A04B10020A8 +:108CD00007F081FD0099084400902146684600F0A5 +:108CE0003AFF00273D46B24696F801800CE0284640 +:108CF00000F0D4FE064681788088F9F721F9717872 +:108D00006D1C00FB0177EDB24545F0D10098C01C09 +:108D100020F00300009004B100203946F9F71BF958 +:108D200000990027084400903D469AF801800CE025 +:108D3000284600F0B3FE0646C1788088FEF763FC43 +:108D400071786D1C00FB0177EDB24545F0D10098BC +:108D5000C01C20F00300009004B100203946FEF74B +:108D60005BFC00994FF000080844009045469AF8D3 +:108D700001700EE0284600F091FE0646807B30B17F +:108D800006F1080001F0DDFE727800FB02886D1C20 +:108D9000EDB2BD42EED10098C01C20F0030000905F +:108DA00004B10020414601F0D0FE00990844009033 +:108DB0002146684600F049FE0098C01D20F00702D9 +:108DC00000922CBB9D490020FAF747F8FBF715FBF2 +:108DD000984801AA00211030F8F7CEFA00B1FFDF61 +:108DE0009AF81D00FEF77FFF00B1FFDF91484FF4B6 +:108DF000F67144301BF07DFA8E480421443080F82F +:108E0000E91180F8EA11062180F8EB1103210171C4 +:108E10000099A1EB0900BDE8FE8F70B5854C0646B0 +:108E20004434207804EB4015E078083590B9A01957 +:108E300090F8E80100280ED0A0780F2800D3FFDFBB +:108E4000202128461BF055FA687866F30200687006 +:108E50000120E070284670BD2DE9F04105460C4622 +:108E600000270078052190463E46B1EB101F00D048 +:108E7000FFDF287A50B101280ED0FFDFA8F800608C +:108E80000CB1278066800020BDE8F081012709260B +:108E900074B16888A08008E00227142644B168886D +:108EA000A0802869E060A88A2082287B2072E5E7FC +:108EB000A8F80060E7E710B55F4C6068C11D21F0BD +:108EC0000701814200D0FFDF5A48012100220170D2 +:108ED00042700172417203238372C1720273027481 +:108EE000052202831F224283417455A242610A2255 +:108EF000027741774FF4B06101626168416010BD53 +:108F000030B54D4C1568636810339D4202D2042081 +:108F1000136030BD474B5D785A6802EB0512107044 +:108F200051700320D080172090800120D070907065 +:108F3000002090735878401C587060681030606052 +:108F4000002030BD70B506463A480024457807E059 +:108F5000204600F0A3FD0178B14204D0641CE4B2C5 +:108F6000AC42F5D1002070BDF7B5074608780C4635 +:108F700010B3FFF7E7FF0546A7F12006202F06D024 +:108F8000052E19D2DFE806F00F2B2B151A0000F082 +:108F900090FD0DB1697800E00021401AA17880B2FF +:108FA0000844FF2808D8A07830B1A088022824D22D +:108FB00002E06088172820D20720FEBD207AE0B1A9 +:108FC00061881729F8D3A1881729F5D3A179002939 +:108FD000F2D0E1790029EFD0402804D9ECE7242F22 +:108FE0000BD1207A48B161884FF6FB70814202D8DC +:108FF000A188814201D90420FEBD65B9207802AA6A +:109000000121FFF77DFF0028F6D12078FFF79AFFB6 +:10901000050000D1FFDF052E25D2DFE806F003189A +:109020001B151E00A0786870A088E8801CE0000076 +:10903000B0460200980300201C0000200000002021 +:109040006E524635780000006088A8800CE0A07859 +:10905000A87009E0A078E87006E054F8020FA86054 +:109060006068E86000E0FFDF0020FEBD1A2835D010 +:109070000DDC132832D2DFE800F01B31203131271C +:109080002723252D313129313131312F0F0030285F +:1090900002D003DC1E2821D1072070473A38092866 +:1090A0001CD2DFE800F0151B0F1B1B1B1B1B07004E +:1090B0000020704743F20400704743F202007047FB +:1090C000042070470D2070470F207047082070471C +:1090D0001120704713207047062070470320704707 +:1090E00010B5007800F0010006F001FDBDE8104069 +:1090F000BCE70EB5017801F001018DF80010417850 +:1091000001F001018DF801100178C1F340018DF8E3 +:1091100002104178C1F340018DF8031001788908ED +:109120008DF80410417889088DF8051081788DF844 +:109130000610C1788DF8071000798DF80800684690 +:1091400005F0ACFAFFF792FF0EBD2DE9F84FDFF8FE +:10915000F883FE4C00261FE0012000F03FFD0120B7 +:10916000FFF75BFE054640214746D8F8080007F0A8 +:109170005AFA686000B9FFDF686805F03EF8A8B1E8 +:109180002846FAF75AFC284600F02EFD20B9402266 +:109190006968B86807F072FA94F9E9010428DBDA23 +:1091A000022007F0ADFB07460025A6E040226968D3 +:1091B000D8F8080007F062FAF2E7B8F80210404663 +:1091C000491C89B2A8F80210B94201D3002141809C +:1091D0000221B8F8020007F0EBFB002865D0B8F8D0 +:1091E0000200694606F0F1FBFFF740FF00B1FFDF28 +:1091F0009DF8000078B1B8F8020007F01DFD5FEAA5 +:10920000000900D1FFDF484606F08BFF18B1B8F81F +:10921000020002F03DF9B8F8020007F0FBFC5FEA3B +:10922000000900D1FFDF484606F073FFE8BB0321C9 +:10923000B8F8020007F0BCFB5FEA000B48D1FFDF83 +:1092400046E000BFDBF8100010B10078FF2849D0DD +:10925000022000F0C3FC0220FFF7DFFD82464846F3 +:1092600007F063F8CAF8040000B9FFDFDAF8040079 +:1092700007F02BF9002100900170B8F80210504659 +:10928000AAF8021001F00AFE484607F020F900B9DA +:10929000FFDF504600F0A8FC18B99AF8010000075B +:1092A00004D50099CBF8101012E024E0DBF8100090 +:1092B00038B10178491C11F0FF01017008D1FFDFBE +:1092C00006E000221146484600F0BDFB00B9FFDF72 +:1092D00094F9EA01022805DBB8F8020001F0A3FDC9 +:1092E0000028AFD194F9E901042804DB484607F0CF +:1092F00052F900B101266D1CEDB2BD4204D294F9C1 +:10930000EA010228BFF659AF002E7FF423AFBDE873 +:10931000F84F032000F062BC10B58B4CE060086889 +:109320002061AFF2D91002F012FD607010BD8748C5 +:1093300000214438017084480170854941607047BC +:1093400070B505464FF080500C46D0F8A410491C6B +:1093500005D1D0F8A810C9430904090C0BD050F866 +:10936000A01F01F001012970416821608068A08080 +:10937000287830B970BD062120460AF0AAFC0120E9 +:109380002870607940F0C000607170BD70B54FF01A +:1093900080540D46D4F88010491C0BD1D4F88410A9 +:1093A000491C07D1D4F88810491C03D1D4F88C107B +:1093B000491C0CD0D4F880100160D4F884104160AE +:1093C000D4F888108160D4F88C10C16002E01021BC +:1093D0000AF07FFCD4F89000401C0BD1D4F8940024 +:1093E000401C07D1D4F89800401C03D1D4F89C004D +:1093F000401C09D054F8900F286060686860A0682D +:10940000A860E068E86070BD2846BDE870401021A3 +:109410000AF05FBC4D480079FFE470B54B4CE07832 +:1094200030B3207804EB4010407A00F0070020446D +:1094300090F9E801002800DCFFDF2078002504EB2C +:109440004010407A00F00700011991F8E801401E31 +:1094500081F8E8012078401CC0B220700F2800D1AC +:109460002570A078401CA0700AF096FBE57070BDD6 +:10947000FFDF70BD3EB50546032107F099FA0446AB +:10948000284607F0C7FB054604B9FFDF206918B17D +:109490000078FF2800D1FFDF01AA6946284600F0C6 +:1094A000D2FA60B9FFDF0AE0002202A9284600F0E4 +:1094B000CAFA00B9FFDF9DF8080000B1FFDF9DF890 +:1094C0000000411E8DF80010EED2206901998842FB +:1094D00001D1002020613EBD70B50546A0F57F405A +:1094E0000C46FF3800D1FFDF012C01D0FFDF70BD3B +:1094F000FFF790FF040000D1FFDF207820F00F007D +:10950000401D20F0F0005030207065800020207257 +:1095100001202073BDE870407FE72DE9F041164639 +:109520000D460746FFF776FF040000D1FFDF2078E5 +:1095300020F00F00401D20F0F000503020706780B8 +:1095400001202072286805E01C000020DC030020B8 +:10955000C81400202061A888A0822673BDE8F041CD +:109560005BE77FB5FFF7EEFC040000D1FFDF02A947 +:109570002046FFF729FB054603A92046FFF73EFBDF +:109580008DF800508DF80100BDF80800001DADF801 +:109590000200BDF80C00001DADF80400E088ADF835 +:1095A0000600684606F08CFA002800D0FFDF7FBD79 +:1095B0002DE9F047DFF8FC930546002799F80000F5 +:1095C00010B10820BDE8F08728460AF0CDFE08B1AA +:1095D0001020F7E7F84C207808B9FFF76CFCA07A68 +:1095E000617A0844C6B200F064FAB04207D2301A79 +:1095F000C1B22A460020FFF783FC0700E2D1D9F868 +:1096000004004E46C01C20F00300C9F8040000F01E +:1096100040FB716800EB010801214046FFF70AFB9F +:10962000064629684044884202D8B6F5803F15D3E3 +:1096300028600020FFF786FC05000DD005F113001F +:10964000D9F8041020F003004E46884200D0FFDF16 +:109650006078401E607075600420B3E700214046CA +:10966000FFF7E8FA0446A64200D0FFDF04EB08014A +:10967000C9F8041029604FF6FF71A9F80210012102 +:1096800089F8001038469DE72DE9F0410446C948A5 +:1096900017460E46007810B10820BDE8F081084654 +:1096A0000AF03CFE08B11020F7E7C34D287808B94E +:1096B000FFF701FC601E1E2807D8012C22D130784C +:1096C000FE281FD828770020E7E7A4F120001F28F4 +:1096D00005D8E0B23A463146BDE8F04144E4A4F191 +:1096E00040001F2805D831462046BDE8F04100F073 +:1096F000A3BAA4F1A0001F2804D80020A02C03D0F6 +:10970000A12C06D00720C8E7317801F00101697764 +:10971000C3E731680922F82901D38B0701D010462D +:10972000BBE76B7C03F00303012B04D16B8BD733B6 +:109730009CB28C42F3D82962AFE72DE9F04781460D +:109740000E4608460AF010FE48B948460AF02AFEBE +:1097500028B909F1030020F00301494501D0102088 +:1097600030E795484FF0000A4430817869B141787C +:10977000804600EB411408343788324600212046E9 +:1097800000F040FA050004D027E0A6F800A005206C +:1097900018E7B9F1000F24D03088B84201D90C2560 +:1097A0001FE0607800F00705284600F017FA08EB84 +:1097B0000507324697F8E8014946401C87F8E8015A +:1097C000204607F5F47700F01DFA05463878401E6C +:1097D0003870032000F002FA2DB10C2D01D0A6F84C +:1097E00000A02846EEE66078724E00F007010129DD +:1097F00023D002290CD0032933D0FFDF98F80110C1 +:109800004046491CC9B288F801100F2934D035E010 +:10981000616821B1000702D46088FFF72BFE98F839 +:10982000EA014746012802D1707802F0AFFA97F9B1 +:10983000EA010428E2DBFFDFE0E7616819B14022BA +:10984000B06806F01BFF98F8E9014746032802D1EB +:10985000707802F09BFA97F9E9010428CEDBFFDF6C +:10986000CCE7C00602D56088FFF704FE98F9EB014B +:109870000628C3DBFFDFC1E780F801A08178491E1D +:109880008170617801F0070101EB080090F8E811A0 +:10989000491C80F8E811A4E770B50D4604460AF0AB +:1098A0003DFD18B928460AF05FFD08B1102070BDD3 +:1098B00029462046BDE8704008F0D9BD70B5044681 +:1098C00015460E4608460AF029FD18B928460AF042 +:1098D0004BFD08B1102070BD022C03D0102C01D01C +:1098E000092070BD2A463146204608F0E3FD0028D5 +:1098F000F7D0052070BD70B514460D4606460AF037 +:109900000DFD38B928460AF02FFD18B920460AF097 +:1099100049FD08B1102070BD22462946304608F0A6 +:10992000E8FD0028F7D0072070BD3EB504460AF0D8 +:109930001BFD08B110203EBD684604F00FFEFFF786 +:1099400095FB0028F7D19DF806002070BDF80800AF +:109950006080BDF80A00A08000203EBD70B50546BD +:109960000C4608460AF01EFD20B93CB120680AF0FA +:10997000FBFC08B1102070BDA08828B12146284604 +:10998000BDE87040FDF7BEBE092070BD70B504464D +:109990000D4608460AF0C2FC30B9601E1E2818D8D1 +:1099A00028460AF0BBFC08B1102070BD022C05D976 +:1099B000072070BD1C0000209803002004B9FFDFC1 +:1099C000F94800EB840050F8041C2846BDE87040BC +:1099D0000847A4F120001F2805D829462046BDE8E5 +:1099E0007040FAF792BCF02CE2D1A8680AF096FC1D +:1099F0000028D9D1284606F0CBF8BDE87040FFF723 +:109A000035BB70B504460D4608460AF0ADFC30B9CA +:109A1000601E1E280DD828460AF080FC08B11020D0 +:109A2000C7E7012C01D0022C01D10620C1E7072095 +:109A3000BFE7A4F120001F28F9D829462046BDE839 +:109A40007040FAF7BABC06F033BB38B50446D748C5 +:109A5000007B00F00105D9B9F9F78BFA0DB1226846 +:109A600000E00022D2484178C06804F06EFBD04884 +:109A70001030C0788DF8000010B1012802D004E049 +:109A8000012000E000208DF80000684604F0DFFDB2 +:109A9000002D02D020682830206038BD30B5C34D7D +:109AA00004466878A04200D8FFDF686800EB041025 +:109AB00030BD70B5BD4800252C46467807E02046ED +:109AC000FFF7ECFF4078641C2844C5B2E4B2B4420E +:109AD000F5D128466DE72DE9F0410C46064600F029 +:109AE00006F907463068C01C20F00302326014BB40 +:109AF000AE483B46082124300AF0EAFA002409E087 +:109B0000082C10D2DFE804F0060408080A04040652 +:109B1000A84804E0A84802E0A84800E0A8480AF0E5 +:109B2000F7FA054600E0FFDFA54200D0FFDF641C26 +:109B3000E4B2082CE4D3306800EB07103060ACE5E9 +:109B4000021D5143452900D245210844C01CB0FBE9 +:109B5000F2F0C0B270472DE9FC5F064693484FF023 +:109B600000088B464746444690F8019022E0204684 +:109B7000FFF794FF050000D1FFDF6878694638449D +:109B8000C7B22846FFF720F8824601A92846FFF70A +:109B900035F80346BDF804005246001D81B2BDF8F9 +:109BA0000000001D80B206F081FF6A78641C00FB93 +:109BB0000288E4B24C45DAD13068C01C20F00300C2 +:109BC0003060BBF1000F00D000204246394606F05D +:109BD0007BFF316808443060BDE8FC9F7349443125 +:109BE00008710020C870704770494431CA782AB1A2 +:109BF0000A7801EB42110831814201D001207047FF +:109C0000002070472DE9F04106460078154600F027 +:109C10000F0400201080601E0F46052800D3FFDFD0 +:109C200061482A46103000EB8400394650F8043C65 +:109C30003046BDE8F041184770B50C46402802D0C8 +:109C4000412806D120E0A07861780D18E1788142A2 +:109C500001D90720ADE62078012801D91320A8E614 +:109C6000FF2D08D808F0B0FD064609F04CFF301A69 +:109C7000801EA84201DA12209BE64C4821688160D0 +:109C800021790173002094E6BDE87040084600F099 +:109C90005EB82DE9F0470027DFF810A13E463D46AB +:109CA000B9463C469AF801800AE02046FFF7F6FEE6 +:109CB0004178807B0E4410FB0155641CE4B27F1C8C +:109CC0004445F2D109EB8700C6EBC60100EB8100E9 +:109CD0009AF8092000EB850101EBC2019AF80A20ED +:109CE0009AF80B0001EBC20101EB80006AE42DE958 +:109CF000F047DFF8B8900026344699F8090099F843 +:109D00000A2099F801700244D5B299F80B2010444A +:109D100000F0FF0808E02046FFF7C0FE817B407896 +:109D200011FB0066641CE4B2BC42F4D199F809004E +:109D300099F80A10284428444044401C01B10121EC +:109D400008448419FF2C00D9FFDFE0B23AE438B5AB +:109D50000446407800F00300012803D002280BD00D +:109D6000072038BD606858B10AF025FBD0B960689B +:109D70000AF018FB20B915E060680AF0CFFA88B93C +:109D800069462046FCF71EF90028EAD1607800F009 +:109D90000300022816D19DF8000098B160680AF00F +:109DA00001FB78B1102038BDB046020098030020B6 +:109DB0001C000020B941000017AC00005D2F00001E +:109DC000F32101006189F8290DD8208988420AD839 +:109DD000607800F003020A48012A06D1D731026AEE +:109DE00089B28A4201D20920DDE794E80E0000F131 +:109DF000100585E80E000AB9002101830020D2E792 +:109E0000980300202DE9F04107461446884608468D +:109E100001F01CFD064608EB88001C22796802EB65 +:109E2000C0000D18688C58B14146384601F016FD47 +:109E3000014678680078C200082305F120000CE094 +:109E4000E88CA8B14146384601F00FFD014678681C +:109E500008234078C20005F1240006F066FC38B102 +:109E6000062121726681D0E90010C4E9031009E0DF +:109E7000287809280BD00520207266816868E06088 +:109E8000002028702046BDE8F04101F0D5BC072035 +:109E900020726681F4E72DE9F04116460D4607462B +:109EA000406801EB85011C2202EBC10144182046E9 +:109EB00001F0FDFC40B10021708865F30F2160F3D3 +:109EC0001F4107200AF0DEF909202070324629469A +:109ED0003846BDE8F04195E72DE9F0410E460746CA +:109EE00000241C21F07816E004EB8403726801EB77 +:109EF000C303D25C6AB1FFF78DFA050000D1FFDF22 +:109F00006F802A4621463046FFF7C5FF0120BDE895 +:109F1000F081641CE4B2A042E6D80020F7E770B5F7 +:109F2000064600241C21C0780AE000BF04EB84032D +:109F3000726801EBC303D5182A782AB1641CE4B215 +:109F4000A042F3D8402070BD282128461AF0AFF96E +:109F5000706880892881204670BD70B50346002056 +:109F60001C25DC780DE000BF00EB80065A6805EB8D +:109F7000C6063244167816B1128A8A4204D0401CB2 +:109F8000C0B28442F0D8402070BDF0B50446002035 +:109F90001C26E5780EE000BF00EB8007636806EB47 +:109FA000C7073B441F788F4202D15B78934204D0AD +:109FB000401CC0B28542EFD84020F0BD0078032895 +:109FC00001D000207047012070470078022801D09E +:109FD00000207047012070470078072801D000203A +:109FE0007047012070472DE9F041064688461078F9 +:109FF000F1781546884200D3FFDF2C781C27641CBB +:10A00000F078E4B2A04201D8201AC4B204EB840173 +:10A01000706807EBC1010844017821B141468847C7 +:10A0200008B12C7073E72878A042E8D1402028704E +:10A030006DE770B514460B880122A240134207D188 +:10A0400013430B8001230A22011D06F038FB047024 +:10A0500070BD2DE9FF4F81B00878DDE90E7B9A468F +:10A0600091460E4640072CD4019806F0E5FD040009 +:10A0700000D1FFDF07F1040820461FFA88F105F040 +:10A0800024FF050000D1FFDF204629466A4606F07E +:10A090006EF90098A0F80370A0F805A0284606F015 +:10A0A00014FA017869F306016BF3C71101702046B9 +:10A0B0001FFA88F105F04CFF00B9FFDF019803F0AB +:10A0C000B9FF06EB0900017F491C017705B0BDE827 +:10A0D000F08F2DE9F84F0E469A4691460746032128 +:10A0E00006F066FC0446008DDFF8B485002518B143 +:10A0F00098F80000B0421ED1384606F09DFD0700DA +:10A1000000D1FFDF09F10401384689B205F0DDFE18 +:10A11000050010D0384629466A4606F028F900980E +:10A1200000210A460180817004F054F80098C01D97 +:10A13000CAF8000021E098F80000B04216D104F1FE +:10A14000260734F8341F012000FA06F911EA090F36 +:10A1500000D0FFDF2088012340EA090020800A2286 +:10A16000391D384606F0C6FA067006E0324604F19C +:10A17000340104F12600FFF75CFF0A2188F8001083 +:10A180002846BDE8F88FFEB514460D46064602ABDC +:10A190000C220621FFF79DFF002826D0029968783F +:10A1A00012220A70801C487008224A80A8702088F9 +:10A1B00088806088C880A0880881E0884881002461 +:10A1C0000C20CDE900040523062229463046FFF77E +:10A1D00040FF2146002266F31F41F023104609F09C +:10A1E000A7FF6878801C68700120FEBDFEB514468C +:10A1F0000D460622064602AB1146FFF76AFF00280D +:10A2000012D0029B132000211870A87858700220E9 +:10A2100058809C800620CDE900010246052329468E +:10A220003046FFF716FF0120FEBD2DE9FE430C4628 +:10A23000804644E002AB0E2207214046FFF749FF6B +:10A24000002841D060681C2267788678BF1C06EB26 +:10A25000860102EBC1014518029814210170477074 +:10A260000A214180698A0181E98A4181A988818026 +:10A27000A9898181304601F0E9FA02990523072274 +:10A28000C8806F700420287000250E20CDE90005DD +:10A2900021464046FFF7DDFE294666F30F2168F3AD +:10A2A0001F41F0230022072009F042FF6078FD499A +:10A2B000801C607062682046921CFFF794FE606804 +:10A2C00080784028B6D10120BDE8FE83FEB50D465A +:10A2D000064638E002AB0E2207213046FFF7F9FEB2 +:10A2E000002835D068681C23C17801EB810203EB9C +:10A2F000C2028418029815220270627842700A2203 +:10A300004280A2894281A2888281084601F09EFA99 +:10A31000014602988180618AC180E18A0181A0881A +:10A32000B8B10020207000210E20CDE900010523E6 +:10A33000072229463046FFF78CFE6A68DA4928462C +:10A34000D21CFFF750FE6868C0784028C2D10120B7 +:10A35000FEBD0620E6E72DE9FE430C46814644E0BB +:10A36000204601F08EFAD0B302AB082207214846FE +:10A37000FFF7AFFE0028A7D060681C226578067939 +:10A38000AD1C06EB860102EBC10147180298B7F835 +:10A39000108006210170457004214180304601F093 +:10A3A00055FA0146029805230722C180A0F80480CF +:10A3B0007D70082038700025CDE90005214648460B +:10A3C000FFF747FE294666F30F2169F31F41F0238B +:10A3D0000022072009F0ACFE6078801C6070626883 +:10A3E000B2492046121DFFF7FEFD60680179402941 +:10A3F000B6D1012068E72DE9F34F83B00E4680E027 +:10A40000304601F03EFA002875D071681C2091F8A2 +:10A41000068008EB880200EBC2000C18414630466B +:10A4200001F023FA0146A078C30070684078C200AA +:10A4300004F1240006F095F907468088E18B401A64 +:10A4400080B2002581B3AA46218B814200D80846FC +:10A450008146024602AB07210398FFF73AFE01004E +:10A4600028D0BAF1000F03D0029AB88802251080D4 +:10A470008B46E28B3968A9EB05001FFA80FA0A4483 +:10A480000398009206F0D8FBED1D009A59465346FA +:10A49000009505F0E6FFE08B504480B2E083B98878 +:10A4A000884209D1012508E0FFE7801C4FF0010A2E +:10A4B00080B2C9E7002009E60025CDE90095238A8E +:10A4C000072231460398FFF7C4FDE089401EE08172 +:10A4D0008DB1A078401CA0707068F178427811FBB3 +:10A4E00002F1CAB2816901230E3006F0E8F880F863 +:10A4F00000800020E08372686D493046921DFFF7AE +:10A5000072FD7068817940297FF47AAF0120DDE522 +:10A5100070B5064648680D4614468179402910D129 +:10A5200004EB84011C2202EBC101084401F0E0F9B4 +:10A53000002806D06868294684713046BDE870401E +:10A5400059E770BDFEB50C460746002645E020469B +:10A5500001F097F9D8B360681C22417901EB8101C1 +:10A5600002EBC1014518688900B9FFDF02AB082280 +:10A5700007213846FFF7ADFD002833D002996078F7 +:10A5800016220A70801C4870042048806068407958 +:10A5900001F05CF901460298052307228180698950 +:10A5A000C1800820CDE9000621463846FFF751FD5D +:10A5B0006078801C6070A88969890844B0F5803F84 +:10A5C00000D3FFDFA88969890844A8816E81626889 +:10A5D00038492046521DFFF706FD60684179402941 +:10A5E000B5D10120FEBD30B5438C458BC3F3C70404 +:10A5F000002345B1838B641EED1AC38A6D1E1D4472 +:10A6000095FBF3F3E4B22CB1008918B1A04200D855 +:10A61000204603444FF6FF70834200D30346138065 +:10A620000C7030BD2DE9FC41074616460D464868C2 +:10A6300002EB86011C2202EBC10144186A4601A903 +:10A640002046FFF7D0FFA089618901448AB2BDF896 +:10A650000010914212D0081A00D50020608168686D +:10A66000407940280AD1204601F038F9002805D069 +:10A670006868294646713846FFF764FFBDE8FC81EB +:10A680002DE9FE4F8946804615465088032106F085 +:10A690008FF98346B8F8020040280DD240200CE024 +:10A6A00030000020BD9F0000CB9F0000D99F00001C +:10A6B000F1B80000DDB80000403880B282460146A3 +:10A6C000584601F0DEF800287ED00AEB8A001C22F2 +:10A6D000DBF8041002EBC0000C18204601F0E7F88C +:10A6E000002877D1B8F80000E18A88423CD8A189D7 +:10A6F000D1B348456ED100265146584601F0AEF818 +:10A70000218C0F18608B48B9B9F1020F62D3B8F8E9 +:10A7100004006083618A884226D80226A9EB0600DD +:10A720001FFA80F9B888A28B801A002814DD4946E8 +:10A73000814500DA084683B2688869680291396801 +:10A740000A44CDE9003206F065FADDE90121F61D83 +:10A75000009B009605F051FEA18B01EB090080B231 +:10A76000A083618B884207D9688803B05246594656 +:10A77000BDE8F04F01F0D9B81FD14FF009002872A1 +:10A78000B8F802006881D7E90001C5E90401608BCF +:10A79000A881284601F050F85146584601F05EF86D +:10A7A0000146DBF8040008230078C20004F1200011 +:10A7B00005F0BBFF0020A0836083A0890AF0FF02A0 +:10A7C000401EA081688800E004E003B05946BDE85F +:10A7D000F04F27E7BDE8FE8F2DE9F041064615460C +:10A7E0000F461C46184609F099FD18B9206809F073 +:10A7F000BBFD08B1102015E47168688C0978B0EBD6 +:10A80000C10F01D313200DE43946304601F026F87C +:10A810000146706808230078C20005F1200005F0A9 +:10A820004EFFD4E90012C0E900120020E3E710B5A2 +:10A830000446032106F0BCF80146007800F003004E +:10A84000022805D02046BDE8104001F114029AE428 +:10A850008A8A2046BDE81040C8E470B5044603214A +:10A8600006F0A6F8054601462046FFF774FD0028CD +:10A8700016D029462046FFF765FE002810D029464D +:10A880002046FFF723FD00280AD029462046FFF77F +:10A89000CCFC002804D029462046BDE87040AAE53B +:10A8A00070BD2DE9F0410C4680461EE0E17842780B +:10A8B00011FB02F1CAB2816901230E3005F035FFA8 +:10A8C000077860681C22C179491EC17107EB8701B6 +:10A8D000606802EBC10146183946204600F0D1FFFE +:10A8E00018B1304600F0DCFF20B16068C179002962 +:10A8F000DCD180E7FEF78EFD050000D1FFDF0A20E6 +:10A900002872384600F0A2FF68813946204600F0E0 +:10A91000ACFF0146606808234078C20006F12400BD +:10A9200005F003FFD0E90010C5E90310A5F8028087 +:10A93000284600F081FFB07800B9FFDFB078401EF4 +:10A94000B07058E770B50C460546032106F030F8A4 +:10A9500001464068C2792244C2712846BDE8704071 +:10A960009FE72DE9FE4F8246507814460F464FF080 +:10A97000000800284FD0012807D0022822D0FFDF8E +:10A980002068B8606068F86024E702AB0E220821F6 +:10A990005046FFF79EFB0028F2D0029815210523B0 +:10A9A0000170217841700A214180C0F80480C0F80C +:10A9B0000880A0F80C80628882810E20CDE9000812 +:10A9C000082221E0A678304600F040FF054606EB5D +:10A9D00086012C22786802EBC1010822465A02AB9C +:10A9E00011465046FFF775FB0028C9D00298072191 +:10A9F0000170217841700421418008218580C68042 +:10AA0000CDE9001805230A4639465046FFF721FBD9 +:10AA100087F80880DEE6A678022516B1022E13D04C +:10AA2000FFDF2A1D914602AB08215046FFF751FB7C +:10AA30000028A5D002980121022E017021784170D2 +:10AA40004580868002D005E00625EAE7A188C1801E +:10AA5000E1880181CDE90098052308223946504656 +:10AA6000D4E710B50446032105F0A2FF014600F12A +:10AA700008022046BDE8104073E72DE9F05F0C4660 +:10AA800001281DD0957992F80480567905EB85014F +:10AA90001F2202EBC10121F0030B08EB060111FBA1 +:10AAA00005F14FF6FF7202EAC10909F1030115FB36 +:10AAB0000611F94F21F0031A40B101283DD124E0DD +:10AAC0006168E57891F800804E78DFE7594678684C +:10AAD00005F0A9FD606000B9FFDF5946606819F014 +:10AAE00008FCE5705146786805F09DFD6168486195 +:10AAF00000B9FFDF6068426902EB090181616068AB +:10AB000080F800806068467017E0606852464169CE +:10AB1000786805F0B3FD5A466168786805F0AEFDC7 +:10AB2000032005F0EDFE0446032005F0F1FE201A97 +:10AB3000012802D1786805F06BFD0BEB0A00BDE837 +:10AB4000F09F02460021022097E773B5D24D0A20FC +:10AB50002870009848B100244FEA0D0005F045FD2B +:10AB6000002C01D1009969607CBD01240020F5E72B +:10AB700070B50C4615463821204619F0BAFB01265F +:10AB800066700A2104F11C0019F0B3FB05B9FFDF60 +:10AB9000297A207861F301002070A879002817D065 +:10ABA0002A4621460020FFF768FF61684020887030 +:10ABB0006168C8706168087161684871616888710E +:10ABC0006168288808816168688848816068868132 +:10ABD00070BDC878002802D0002201204DE77047E0 +:10ABE00070B50546002165F31F41002009F04AFBBE +:10ABF0000321284605F0DCFE040000D1FFDF2146DA +:10AC00002846FFF769F9002804D0207840F01000AA +:10AC10002070012070BD2DE9FF4180460E460F0CCB +:10AC2000FEF7F8FB050007D06F800321384605F0DA +:10AC3000BFFE040008D106E004B03846BDE8F0418C +:10AC40001321F9F7FBBEFFDF5FEA080005D0B8F17A +:10AC5000070F18D0FFDFBDE8FF8120782A4620F0DB +:10AC6000080020700020ADF8020002208DF80000DE +:10AC70004FF6FF70ADF80400ADF80600694638469F +:10AC8000F9F7EFFAE7E7C6F3072101EB81021C238E +:10AC9000606803EBC202805C042803D008280AD055 +:10ACA000FFDFD8E7012000904FF440432A462046BA +:10ACB00000F004FECFE704B02A462046BDE8F0418C +:10ACC000FFF7E9B82DE9F05F0027B0F80A90904649 +:10ACD0000C4605463E46B9F1400F01D2402001E046 +:10ACE000A9F140001FFA80FA287AC01E08286BD20A +:10ACF000DFE800F00D04192058363C477227102673 +:10AD0000002C6CD0D5E90301C4E902015CE0702796 +:10AD10001226002C63D00A2205F10C0104F1080070 +:10AD200019F08BFA50E071270C26002C57D0E868F8 +:10AD3000A06049E0742710269CB3D5E90301C4E95B +:10AD400002016888032105F033FE8346FEF762FBAB +:10AD500002466888508051465846FFF753F833E062 +:10AD600075270A26ECB1A88920812DE076271426C4 +:10AD7000BCB105F10C0004F1080307C883E8070023 +:10AD800022E07727102664B1D5E90301C4E9020166 +:10AD90006888032105F00CFE01466888FFF781FDF5 +:10ADA00012E01CE073270826CCB16888032105F067 +:10ADB000FFFD01460078C00606D56888FFF78CF8CD +:10ADC00010B96888F8F71DFEA8F800602CB127803C +:10ADD000A4F8069066806888A0800020AFE6A8F8F6 +:10ADE0000060FAE72DE9FC410C461E4617468046F6 +:10ADF000032105F0DDFD05460A2C0AD2DFE804F048 +:10AE000005050505050509090907042303E00623CF +:10AE100001E0FFDF0023CDE90076224629464046C7 +:10AE2000FFF717F92AE438B50546A0F57F40FF384B +:10AE300030D0284605F0EEFE040000D1FFDF2046AA +:10AE400005F073FA002815D001466A46204605F041 +:10AE50008EFA00980321B0F80540284605F0A8FDB9 +:10AE60000546052C03D0402C05D2402404E0007A8E +:10AE700080B1002038BD403CA4B2214600F001FD65 +:10AE800040B1686804EB84013E2202EBC101405AE4 +:10AE90000028EFD0012038BD300000202DE9F04F10 +:10AEA000044689B0408805F0B5FE050000D1FFDFFB +:10AEB00006AA2846616800F0BDFC069D001F81B20D +:10AEC00035F8032F6B888A4205D1042B0AD0052B55 +:10AED0001DD0062B15D022462846FFF7D1FB09B01E +:10AEE000BDE8F08F16462D1D224629463046F7F75D +:10AEF00054FA0828F3D1224629463046FCF749FC8B +:10AF0000EDE76088291D6368FAF7C8FCE7E7174694 +:10AF10006088032105F04CFD4FF000088DF8048097 +:10AF20000646ADF80680042FD9D36A79002AD6D018 +:10AF300028794FF6FF794FF01C0A13282CD008DC33 +:10AF4000012878D0062847D0072875D0122874D158 +:10AF500006E0142872D0152871D016286DD1ACE106 +:10AF60000C2F6AD1307800F00301022965D140F03E +:10AF7000080030706879B07001208DF804002889CD +:10AF8000ADF808006889ADF80A00A889ADF80C0092 +:10AF9000E889ADF80E0019E0B07890429FD1307882 +:10AFA00001079CD5062F9AD120F0080030706088E8 +:10AFB000414660F31F41002009F064F902208DF83A +:10AFC0000400ADF808902889ADF80A006088224690 +:10AFD00001A9F9F746F982E7082F80D12F89B5F842 +:10AFE0000A90402F01D2402001E0A7F1400080B23A +:10AFF00080460146304600F044FC08B3716808EB17 +:10B0000088002C2202EBC000095A4945E3D1FE48D2 +:10B0100007AAD0E90210CDE9071068798DF81C0065 +:10B0200008F0FF058DF81E5060883146FFF799FC47 +:10B030002246294639E0B6E014E03CE039E0E6E09B +:10B04000F148D0E90010CDE907106879ADF820701B +:10B050008DF81C00ADF82290608807AA3146FFF7F2 +:10B0600080FC3CE7082FB6D16889B5F808804028F5 +:10B0700001D2402000E0403887B23946304600F027 +:10B0800000FC0028A7D007EB870271680AEBC2001A +:10B090000844028A42459ED1017808299BD1407814 +:10B0A0006979884297D1F9B222463046FEF7F3FE1D +:10B0B00015E70E2F07D0CDF81C80CDF820806879D9 +:10B0C0008DF81C00C8E76989EF898B46B5F80C90AC +:10B0D0003046FEF742FFABF14001402901D3092081 +:10B0E0004AE0B9F1170F01D3172F01D20B2043E02B +:10B0F00040280ED000EB800271680AEBC2000844C1 +:10B100000178012903D1407869798842A9D00A20C1 +:10B1100032E03046FEF703FF014640282BD001EB1A +:10B12000810372680AEBC30002EB0008012288F871 +:10B1300000206A7988F8012070682A894089B8421D +:10B1400000D938462D8A03232372A282E781208208 +:10B15000A4F80C906582084600F078FB6081A8F89E +:10B160001490A8F81870A8F80E50A8F810B020464F +:10B1700000F062FBB3E6042005212172A4F80A80E6 +:10B18000E08101212173A049D1E90421CDE9072102 +:10B1900069798DF81C10ADF81E00608807AA314649 +:10B1A000FFF7DFFBE3E7062FE4D3B078904215D139 +:10B1B0003078010712D520F00800307060884146D1 +:10B1C00060F31F41002009F05DF802208DF80400B3 +:10B1D0002889ADF80800ADF80A90F7E6042130465A +:10B1E000FEF7D3FE05464028C4D00220830300901A +:10B1F00022462946304600F061FB4146608865F3EF +:10B200000F2160F31F41072009F03CF867E60E2F7D +:10B21000B0D104213046FEF7B8FE81464028A9D0BF +:10B220004146608869F30F2160F31F41072009F050 +:10B2300029F8288A0790E88900907068AF894089CA +:10B24000B84200D938468346B5F80A802889059067 +:10B25000484600F0FBFA6081079840B10220079B46 +:10B26000009022464946304600F028FB37E6B8F108 +:10B27000170F1ED3172F1CD3042020720098608252 +:10B28000E781A4F810B0A4F80C8009EB890271687A +:10B290000AEBC2000D1800990598A5F81480A5F8CE +:10B2A00018B0E9812882204600F0C6FA06202870EE +:10B2B00015E601200B230090D3E7082FA6D129899A +:10B2C0003046FEF74AFE074640289FD007EB87022C +:10B2D00071680AEBC2000844804600F0E8FA0028D2 +:10B2E00094D16D89B8F80E002844B0F5803F05D39D +:10B2F00060883A46314600F018FBF0E5002D85D015 +:10B30000A8F80E0060883A463146FFF701F9082098 +:10B310002072384600F09AFA6081A58127E770B55F +:10B320000D460646032105F043FB040004D02078B7 +:10B33000000704D5112070BD43F2020070BD2A46FB +:10B3400021463046FEF71FFF18B92868606168681B +:10B35000A061207840F008002070002070BD70B51A +:10B360000D460646032105F023FB040004D0207897 +:10B37000000704D4082070BD43F2020070BD2A46C5 +:10B3800021463046FEF732FF00B9A582207820F032 +:10B3900008002070002070BD2DE9F04F0E4691B0DE +:10B3A0008046032105F004FB0446404605F044FCBA +:10B3B00007460020079008900990ADF830000A90E9 +:10B3C00002900390049004B9FFDF0DF1080917BB48 +:10B3D000FFDF20E038460BA9002204F069FE9DF84B +:10B3E0002C0000F07F050A2D00D3FFDF6019017FDC +:10B3F000491E01779DF82C0000060CD52A460CA9A1 +:10B4000007A8FEF716FE01E0D846020019F805105D +:10B41000491C09F80510761EF6B2DBD204F134009F +:10B42000FA4D04F1260BDFF8E8A304F12A07069091 +:10B4300010E05846069900F06AFA064628700A2875 +:10B4400000D3FFDF5AF8261040468847E08CC05DE5 +:10B45000B04202D0208D0028EBD10A202870EC4D9C +:10B460004E4628350EE00CA907A800F050FA044615 +:10B47000375D55F8240000B9FFDF55F82420394620 +:10B4800040469047BDF81E000028ECD111B027E5DA +:10B4900010B5032105F08CFA040000D1FFDF0A216A +:10B4A00004F11C0018F025FF207840F00400207003 +:10B4B00010BD10B50C46032105F07AFA2044007F38 +:10B4C000002800D0012010BD2DE9F84F894615460F +:10B4D0008246032105F06CFA070004D0284608F0E4 +:10B4E0001DFF40B903E043F20200BDE8F88F484673 +:10B4F00008F03AFF08B11020F7E7786828B16988AA +:10B500000089814201D90920EFE7B9F800001C2425 +:10B5100018B1402809D2402008E03846FEF7FFFC69 +:10B520008046402819D11320DFE7403880B280469A +:10B530000146384600F0A5F948B108EB8800796863 +:10B5400004EBC000085C012803D00820CDE70520EB +:10B55000CBE7FDF75FFF06000BD008EB88007968AA +:10B5600004EBC0000C18B9F8000020B1E88910B154 +:10B5700013E01120B9E72888172802D36888172814 +:10B5800001D20720B1E7686838B12B1D2246414639 +:10B590003846FFF721F90028A7D104F10C026946CB +:10B5A0002046FFF720F8288860826888E082B9F892 +:10B5B000000030B102202070E889A080E889A0B1A5 +:10B5C0002BE003202070A889A0807868817840292A +:10B5D00005D180F8028039465046FEF726FE4046E7 +:10B5E00000F034F9A9F8000021E07868218B408947 +:10B5F000884200D908462083A6F802A004203072B1 +:10B60000B9F800007081E0897082F181208B30826E +:10B61000A08AB081304600F00FF97868C1784029DF +:10B6200005D180F8038039465046FEF74FFE0020D2 +:10B630005BE770B50D460646032105F0B9F9040035 +:10B6400003D0402D04D2402503E043F2020070BD38 +:10B65000403DADB2294600F014F958B105EB850123 +:10B660001C22606802EBC101084400F020F918B107 +:10B67000082070BD052070BD2A462146304600F0E6 +:10B6800054F9002070BD2DE9F0410D461646804664 +:10B69000032105F08DF90446402D01D2402500E03C +:10B6A000403DADB28CB1294600F0EBF880B105EB1E +:10B6B00085011C22606802EBC1014718384600F082 +:10B6C000F6F838B10820BDE8F08143F20200FAE74D +:10B6D0000520F8E733463A4629462046FFF77CF82E +:10B6E0000028F0D1EAB221464046FEF79BFF002039 +:10B6F000E9E72DE9F0410D4616468046032105F0A5 +:10B7000057F90446402D01D2402500E0403DAFB23C +:10B7100024B1304608F002FE38B902E043F20200DC +:10B72000D1E7306808F0FAFD08B11020CBE73946C0 +:10B73000204600F0A6F860B107EB87011C22606884 +:10B7400002EBC1014518284600F0B1F818B10820F5 +:10B75000B9E70520B7E7B088A98A884201D90C204B +:10B76000B1E76168E88C4978B0EBC10F01D31320D1 +:10B77000A9E73946204600F078F8014660680823BA +:10B780004078C20005F1240004F099FFD6E90012C8 +:10B79000C0E90012FAB221464046FEF7B9FE002089 +:10B7A00091E72DE9F0470D461F469046814603215B +:10B7B00005F0FEF80446402D01D2402001E0A5F13D +:10B7C000400086B23CB14DB1384608F0EBFD50B1B7 +:10B7D0001020BDE8F08743F20200FAE76068C8B1C4 +:10B7E000A0F80C8024E03146204600F04AF888B1E9 +:10B7F00006EB86011C22606802EBC1014518284651 +:10B8000000F055F840B10820E3E7000030000020C8 +:10B81000F04602000520DCE7A5F80880F2B22146D8 +:10B820004846FEF7FFFE1FB1A889698908443880A1 +:10B830000020CEE704F09BBD017821F00F01491CE8 +:10B8400021F0F00110310170FDF7E7BD10B504469D +:10B85000402800D9FFDF4034A0B210BD40684269E3 +:10B860000078484302EBC0007047C2784068037814 +:10B8700012FB03F24378406901FB032100EBC10096 +:10B880007047C2788A4209D9406801EB81011C22C5 +:10B8900002EBC101405C08B10120704700207047F5 +:10B8A0000078062801D901207047002070470078F1 +:10B8B000062801D00120704700207047F0B401EB4A +:10B8C00081061C27446807EBC6063444049D052600 +:10B8D0002670E3802571F0BCFEF794BA10B541895B +:10B8E00011B1FFF7DDFF08B1002010BD012010BD30 +:10B8F00010B5C18C8278B1EBC20F04D9C18911B1E6 +:10B90000FFF7CEFF08B1002010BD012010BD10B51B +:10B910000C4601230A22011D04F007FF007821884C +:10B92000012282409143218010BDF0B402EB8205D8 +:10B930001C264C6806EBC505072363554B681C792C +:10B94000402C03D11A71F0BCFEF705BDF0BC704766 +:10B9500010B5EFF3108000F0010472B6EE484178A4 +:10B96000491C41704078012801D1F7F70DFB002CEC +:10B9700000D162B610BD70B5E74CE07848B901253A +:10B98000E570FFF7E5FFF7F707FB20B1002008F0AF +:10B990000AF9002070BD4FF080406571C0F8045373 +:10B9A000F7E770B5EFF3108000F0010572B6DA4CDE +:10B9B000607800B9FFDF6078401E6070607808B979 +:10B9C000F7F7E6FA002D00D162B670BDD24810B587 +:10B9D000C17821B100214171C170FFF7E2FF002061 +:10B9E00010BD10B50446F7F7D7FACB49C97808401F +:10B9F00000D001202060002010BD2DE9F05FDFF8AD +:10BA000018934278817889F80620002589F8071074 +:10BA1000064689F8085000782F4620B101280FD03B +:10BA200002280FD0FFDFF7F7C4FA98B1F7F7C8FA8A +:10BA3000A8420FD12846F7F7C7FA0028FAD047E006 +:10BA40000125F0E7FFF784FFF7F7A6FA0028FBD0FF +:10BA50000225E8E701208407E060C4F80471AF49DB +:10BA60000D600107D1F84412AC4AC1F342312432CF +:10BA70001160AA49343108604FF0020BC4F804B3D6 +:10BA8000A060DFF89CA2DAF80010C94341F300116E +:10BA900001F10108DAF8001041F01001CAF80010B5 +:10BAA00000E020BFD4F804010028FAD02846F7F7B8 +:10BAB0008BFA0028FAD0B8F1000F05D1DAF800109F +:10BAC00021F01001CAF80010C4F808B3C4F80471DA +:10BAD00099F807004C4670B1307860B9F7F75CFA16 +:10BAE000064608F0BDF96FF0004116B1C4E9031035 +:10BAF00001E0C4E9030115B12771BDE8F09F012001 +:10BB00002071BDE8F05F00F0ABB870B5050000D162 +:10BB1000FFDF4FF080424FF0FF30C2F808030021F2 +:10BB2000C2F80011C2F80411C2F80C11C2F81011C9 +:10BB3000794C6170F7F736FA10B10120E07060704F +:10BB40002846BDE8704058E72DE9F05F7548D0F809 +:10BB500000B0744A7449083211608406D4F80801B0 +:10BB600008B1012600E00026D4F8000110B14FF022 +:10BB7000010801E04FF00008D4F8040108B10127E2 +:10BB800000E00027D4F80C0100B101208246D4F86F +:10BB9000100108B1012100E00021894646EA0801B0 +:10BBA00027EA010020EA0A0030EA090000D0FFDF9E +:10BBB000002526B1C4F80851012007F0F4FF564EC5 +:10BBC000B8F1000F10D0C4F80051707918B1757138 +:10BBD000002007F0E8FF307830B10120534935707C +:10BBE000B07002220A6020610FB1C4F80451BAF1AA +:10BBF000000F0BD0C4F80C51B07800B9FFDF4B48F0 +:10BC00000560B57001206061FFF7CBFEB9F1000F50 +:10BC100005D0C4F81051307908B100F045F8414919 +:10BC2000091DC1F800B068E770B53B4DE87808B968 +:10BC3000F7F7AEF901208407A061A87858B100BFDA +:10BC4000D4F80C0120B90020F7F7BEF90028F7D18D +:10BC50000020C4F80C014FF0FF30C4F8080370BD99 +:10BC60002DE9F0411926B407C4F808630125A56140 +:10BC70000020C4F80001C4F80C01C4F81001F7F763 +:10BC80008BF9254F28B12949BD7002200860256134 +:10BC900000E03D70FFF75CFE2049B8792031086074 +:10BCA000C4F80463BDE8F0812DE9F0411A4C4FF06F +:10BCB00080470125E079F0B1012803D0217A401EA8 +:10BCC000814218DAF7F768F9064608F0C9F8E17911 +:10BCD000012902D9217A491C21720EB1216900E0A3 +:10BCE000E168411A022902DA11F1020F0EDC0EB1ED +:10BCF000206100E0E060FFF72BFEF7F74DF938B167 +:10BD00000A49022008603D61A57002E07D61C9E733 +:10BD1000257000202072C5E73C0000201805004077 +:10BD200010ED00E01005024001000001340C00405D +:10BD30004FF0E0214FF00070C1F88001C1F880029F +:10BD4000384B802283F80024C1F80001704700B509 +:10BD500002460420344903E001EBC0031B792BB1F8 +:10BD6000401EC0B2F8D2FFDFFF2000BD41F83020F6 +:10BD700001EBC00100224A718A7101220A7100BDE3 +:10BD8000294A002102EBC0000171704710B504463A +:10BD9000042800D3FFDF244800EBC40420790128E5 +:10BDA00000D0FFDF6079A179401CC0B2814200D091 +:10BDB00060714FF0E0214FF00070C1F8000210BD3B +:10BDC0002DE9F041194805681849194808310860FB +:10BDD0001448042690F80004134F4009154C042819 +:10BDE00018D0FFDF16E0217807EBC1000279012AA5 +:10BDF00008D1427983799A4204D04279827157F806 +:10BE0000310080472078401CC0B22070042801D344 +:10BE100000202070761EF6B2E5D20448001D0560B1 +:10BE2000BDE8F08119E000E0C805002010050240DF +:10BE30000100000150000020F8B51D46DDE906476D +:10BE40000E000AD004F0F8FE2346FF1DBCB23146B6 +:10BE50002A46009404F005FBF8BDD0192246194685 +:10BE600018F0A6F92046F8BD70B50D46044610211D +:10BE700018F01DFA258117206081A07B40F00A0090 +:10BE8000A07370BD4FF6FF720A800146022008F0D1 +:10BE9000F9B9704700897047827BD30701D19207B7 +:10BEA00003D4808908800020704705207047827B7A +:10BEB000920700D58181704701460020098841F62C +:10BEC000FE52114200D00120704700B50346807B2E +:10BED000C00701D0052000BD59811846FFF7ECFFCF +:10BEE000C00703D0987B40F004009873987B40F023 +:10BEF00001009873002000BD827B520700D509B174 +:10BF00004089704717207047827B61F3C3028273B8 +:10BF100070472DE9FC5F0E460446017896460120E5 +:10BF200000FA01F14DF6FF5201EA020962684FF68C +:10BF3000FF7B1188594502D10920BDE8FC9FB9F16A +:10BF4000000F05D041F6FE55294201D00120F4E74B +:10BF500041EA090111801D0014D04FF0000C85F852 +:10BF600000C023780521032267464FF0020A0E2BFA +:10BF700074D2DFE803F0F809252F4762697447900F +:10BF800092B3D0D70420D8E7616820898B7B9B07C8 +:10BF90007DD5172848D30B89834245D38989172932 +:10BFA00001D3814240D185F800A0A5F8010032807C +:10BFB000616888816068817B21F002018173C5E03E +:10BFC000042028702089A5F801006089A5F80300E5 +:10BFD0003180BBE0208A3188C01D1FFA80F84145BE +:10BFE00022D3062028702089A5F801006089A5F8D1 +:10BFF0000300A089A5F805000721208ACDE90001EA +:10C0000063693EE0082B10D0082028702089A5F82D +:10C0100001006089A5F8030031806A1D694604F1BA +:10C020000C0006F066FA10B15FE01020EDE73088F2 +:10C030009DF800100844308088E00A20287020898C +:10C04000A5F80100328045E00C2028702089A5F871 +:10C0500001006089A5F8030031803BE083E021897D +:10C06000338800EB41021FFA82F843453DD3B8F113 +:10C07000050F3AD30E222A700BEA4101CDE90010D8 +:10C08000E36860882A467146FFF7D6FE00E04DE07F +:10C09000A6F800805AE04020287060893188C01CD2 +:10C0A0001FFA80F8414520D32878714620F03F00E0 +:10C0B000123028702089A5F801006089CDE90002BE +:10C0C00060882A46E368FFF7B7FEA6F80080287864 +:10C0D00040063BD461682089888037E0A089328897 +:10C0E000401D1FFA80F8424501D204273EE0162089 +:10C0F00028702089A5F801006089A5F80300A089AF +:10C10000CDE9000160882A4671462369FFF794FE55 +:10C11000A6F80080DEE718202870207A6870A6F85C +:10C1200000A013E061680A88920401D405271DE08D +:10C13000C9882289914201D0062717E01E21297063 +:10C1400030806068018821F400510180B9F1000F4E +:10C150000CD0618878230022022007F0E9FF616893 +:10C160002078887007E0A6F800C00327606801887F +:10C1700021EA090101803846DFE62DE9FF4F85B04D +:10C180001746129C0D001E461CD03078C10703D004 +:10C1900000F03F00192801D9012100E000212046CC +:10C1A000FFF7AAFEA8420DD32088A0F57F41FF39F2 +:10C1B00008D03078410601D4000605D5082009B022 +:10C1C000BDE8F08F0720FAE700208DF800008DF819 +:10C1D000010030786B1E00F03F0C0121A81E4FF0CB +:10C1E000050A4FF002094FF0030B9AB2BCF1200F81 +:10C1F00075D2DFE80CF08B10745E7468748C749CDC +:10C2000074B674BB74C974D574E2747474F274F047 +:10C2100074EF74EE748B052D78D18DF80090A078B2 +:10C220008DF804007088ADF8060030798DF80100B3 +:10C23000707800F03F000C2829D00ADCA0F1020041 +:10C24000092863D2DFE800F0126215621A621D62EB +:10C250002000122824D004DC0E281BD01028DBD1AB +:10C260001BE016281FD01828D6D11FE020788007A1 +:10C2700001E020784007002848DAEFE02078000746 +:10C28000F9E72078C006F6E720788006F3E7207803 +:10C290004006F0E720780006EDE72088C005EAE7D1 +:10C2A00020884005E7E720880005E4E72088C004EF +:10C2B000E1E72078800729D5032D27D18DF800B03C +:10C2C000B6F8010082E0217849071FD5062D1DD35D +:10C2D00081B27078012803D0022817D102E0CAE0A9 +:10C2E000022000E0102004228DF8002072788DF8E2 +:10C2F0000420801CB1FBF0F2ADF8062092B242435C +:10C300008A4203D10397ADF80890A7E07AE020783D +:10C31000000777D598B282088DF800A0ADF8042008 +:10C32000B0EB820F6ED10297ADF8061096E021783F +:10C33000C90667D5022D65D381B206208DF80000AD +:10C34000707802285ED300BFB1FBF0F28DF80400D4 +:10C35000ADF8062092B242438A4253D1ADF808901C +:10C360007BE0207880064DD5072003E0207840064A +:10C370007FD508208DF80000A088ADF80400ADF846 +:10C380000620ADF8081068E02078000671D5092075 +:10C39000ADF804208DF80000ADF8061002975DE0BE +:10C3A0002188C90565D5022D63D381B20A208DF895 +:10C3B0000000707804285CD3C6E72088400558D573 +:10C3C000012D56D10B208DF80000A088ADF8040097 +:10C3D00044E021E026E016E0FFE72088000548D58C +:10C3E000052D46D30C208DF80000A088ADF8040080 +:10C3F000B6F803006D1FADF80850ADF80600ADF8B3 +:10C400000AA02AE035E02088C00432D5012D30D1C1 +:10C410000D208DF8000021E02088800429D4B6F892 +:10C420000100E080A07B000723D5032D21D33078C5 +:10C4300000F03F001B2818D00F208DF80000208846 +:10C4400040F40050A4F80000B6F80100ADF8040074 +:10C45000ED1EADF80650ADF808B003976946059893 +:10C46000F5F7E6FC050008D016E00E208DF8000078 +:10C47000EAE7072510E008250EE0307800F03F00DD +:10C480001B2809D01D2807D00220059907F0FAFEC5 +:10C49000208800F400502080A07B400708D520466B +:10C4A000FFF70AFDC00703D1A07B20F00400A073B2 +:10C4B000284684E61FB5022806D101208DF8000029 +:10C4C00088B26946F5F7B4FC1FBD0000F8B51D46FB +:10C4D000DDE906470E000AD004F0AEFB2346FF1D3F +:10C4E000BCB231462A46009403F0BBFFF8BDD01918 +:10C4F0002246194617F05CFE2046F8BD2DE9FF4F95 +:10C500008DB09B46DDE91B57DDF87CA00C46082B5F +:10C5100005D0E06901F002F950B11020D2E028887E +:10C52000092140F0100028808AF80010022617E048 +:10C53000E16901208871E2694FF420519180E1693D +:10C540008872E06942F601010181E069002181738E +:10C550002888112140F0200028808AF80010042645 +:10C5600038780A900A2038704FF0020904F1180058 +:10C570004D460C9001F095FBB04681E0BBF1100FE9 +:10C580000ED1022D0CD0A9EB0800801C80B2022134 +:10C59000CDE9001005AB52461E990D98FFF796FFA6 +:10C5A000BDF816101A98814203D9F74800790F9008 +:10C5B00004E003D10A9808B138702FE04FF002016F +:10C5C000CDE900190DF1160352461E990D98FFF79B +:10C5D0007DFF1D980088401B801B83B2C6F1FF00C1 +:10C5E000984200D203461E990BA8D9B15FF0000211 +:10C5F000DDF878C0CDE9032009EB060189B2CDE969 +:10C6000001C10F980090BDF8161000220D9801F09E +:10C61000CBFB387070B1C0B2832807D0BDF81600CC +:10C6200020833AE00AEB09018A19E1E7022011B000 +:10C63000BDE8F08FBDF82C00811901F0FF08022D34 +:10C640000DD09AF80120424506D1BDF82010814254 +:10C6500007D0B8F1FF0F04D09AF801801FE08AF8E4 +:10C660000180C94800680178052902D1BDF816107B +:10C67000818009EB08001FFA80F905EB080085B2FC +:10C68000DDE90C1005AB0F9A01F00EFB28B91D98DF +:10C690000088411B4145BFF671AF022D13D0BBF19D +:10C6A000100F0CD1A9EB0800801C81B20220CDE94B +:10C6B000000105AB52461E990D98FFF707FF1D9824 +:10C6C0000580002038700020B1E72DE9F8439C4632 +:10C6D000089E13460027B26B9AB3491F8CB2F18FA4 +:10C6E000A1F57F45FF3D05D05518AD882944891D2A +:10C6F0008DB200E000252919B6F83C80083141458B +:10C7000020D82A44BCF8011022F8021BBCF8031000 +:10C7100022F8021B984622F8024B914604F07AFA5E +:10C720004FF00C0C41464A462346CDF800C003F0BA +:10C7300064FEF587B16B00202944A41D21440880C4 +:10C7400003E001E0092700E083273846BDE8F883CD +:10C7500010B50B88848F9C420CD9846BE018048838 +:10C7600044B1848824F40044A41D23440B80106049 +:10C77000002010BD0A2010BD2DE9F0478AB0002529 +:10C78000904689468246ADF8185007274BE0059839 +:10C7900006888088000446D4A8F8006007A80195A0 +:10C7A00000970295CDE903504FF400730022314603 +:10C7B000504601F0F9FA04003CD1BDF81800ADF87C +:10C7C0002000059804888188B44216D10A0414D444 +:10C7D00001950295039521F400410097049541F4D9 +:10C7E000804342882146504601F0B4F804000BD142 +:10C7F0000598818841F40041818005AA08A948462E +:10C80000FFF7A6FF0400DCD000970598029501957C +:10C81000039504950188BDF81C300022504601F0B4 +:10C8200099F80A2C06D105AA06A94846FFF790FFF9 +:10C830000400ACD0ADF8185004E00598818821F4CC +:10C840000041818005AA06A94846FFF781FF00281C +:10C85000F3D00A2C03D020460AB0BDE8F0870020B0 +:10C86000FAE710B50C46896B86B051B10C218DF8F2 +:10C870000010A18FADF80810A16B01916946FAF77D +:10C8800064FC00204FF6FF71A063E187A08706B02B +:10C8900010BD2DE9F0410D460746896B0020069E2C +:10C8A0001446002911D0012B0FD1324629463846B3 +:10C8B000FFF762FF002808D1002C06D03246294637 +:10C8C0003846BDE8F04100F038BFBDE8F0812DE901 +:10C8D000FC411446DDE9087C0E46DDE90A15521DCF +:10C8E000BCF800E092B2964502D20720BDE8FC8178 +:10C8F000ACF8002017222A70A5F80160A5F80330D3 +:10C900000522CDE900423B462A46FFF7DFFD002025 +:10C91000ECE770B50C4615464821204617F0E9FCB7 +:10C9200004F1080044F81C0F00204FF6FF71E0618D +:10C9300061842084A5841720E08494F82A0040F0C4 +:10C940000A0084F82A0070BD4FF6FF720A80014683 +:10C95000032007F097BC30B585B00C460546FFF7BD +:10C9600080FFA18E284629B101218DF8001069466B +:10C97000FAF7EBFB0020E0622063606305B030BD96 +:10C98000B0F84000704700005400002090F84620A6 +:10C99000920703D4408808800020F3E70620F1E7DF +:10C9A00090F846209207EDD5A0F84410EAE701463A +:10C9B000002009880A0700D5012011F0F00F01D0EE +:10C9C00040F00200CA0501D540F004008A0501D5F7 +:10C9D00040F008004A0501D540F010000905D1D506 +:10C9E00040F02000CEE700B5034690F84600C007AF +:10C9F00001D0062000BDA3F842101846FFF7D7FF6C +:10CA000010F03E0F05D093F8460040F0040083F884 +:10CA1000460013F8460F40F001001870002000BDDA +:10CA200090F84620520700D511B1B0F84200A9E7AE +:10CA30001720A7E710F8462F61F3C3020270A1E7A1 +:10CA40002DE9FF4F9BB00E00DDE92B34DDE929789D +:10CA5000289D24D02878C10703D000F03F00192872 +:10CA600001D9012100E000212046FFF7D9FFB042A3 +:10CA700015D32878410600F03F010CD41E290CD0B4 +:10CA8000218811F47F6F0AD13A8842B1A1F57F4223 +:10CA9000FF3A04D001E0122901D1000602D504209A +:10CAA0001FB0C5E5F9491D984FF0000A08718DF8CF +:10CAB00018A08DF83CA00FAA0A60ADF81CA0ADF834 +:10CAC00050A02978994601F03F02701F5B1C04F1C9 +:10CAD000180C4FF0060E4FF0040BCDF858C01F2A6B +:10CAE0007ED2DFE802F07D7D107D267DAC7DF47D79 +:10CAF000F37DF27DF17DF47DF07D7D7DEF7DEE7D3A +:10CB00007D7D7D7DED0094F84610B5F80100890724 +:10CB100001D5032E02D08DF818B022E34FF4006146 +:10CB2000ADF85010608003218DF83C10ADF8400046 +:10CB3000D8E2052EEFD1B5F801002083ADF81C0036 +:10CB4000B5F80310618308B1884201D901207FE163 +:10CB50000020A07220814FF6FF702084169801F00B +:10CB6000A0F8052089F800000220029083460AAB55 +:10CB70001D9A16991B9801F097F890BB9DF82E000E +:10CB8000012804D0022089F80100102003E00120D0 +:10CB900089F8010002200590002203A90BA805F0E6 +:10CBA000A8FCE8BB9DF80C00059981423DD13A886C +:10CBB000801CA2EB0B01814237DB02990220CDE9F8 +:10CBC00000010DF12A034A4641461B98FFF77EFCFF +:10CBD00002980BF1020B801C80B217AA03A901E096 +:10CBE000A0E228E002900BA805F083FC02999DF8D2 +:10CBF0000C00CDE9000117AB4A4641461B98FFF7F0 +:10CC000065FC9DF80C100AAB0BEB01001FFA80FBD2 +:10CC100002981D9A084480B2029016991B9800E071 +:10CC200003E001F041F80028B6D0BBF1020F02D0BA +:10CC3000A7F800B053E20A208DF818004FE2002157 +:10CC40000391072EFFF467AFB5F801002083ADF81C +:10CC50001C00B5F80320628300283FF477AF9042B0 +:10CC60003FF674AF0120A072B5F8050020810020C6 +:10CC7000A073E06900F052FD78B9E1690120887184 +:10CC8000E2694FF420519180E1698872E06942F6CF +:10CC900001010181E06900218173F01F20841E9849 +:10CCA000606207206084169800F0FBFF072089F877 +:10CCB00000000120049002900020ADF82A0028E036 +:10CCC0001DE2A3E13AE1EAE016E2AEE086E049E0E7 +:10CCD0000298012814D0E0698079012803D1BDF8B9 +:10CCE0002800ADF80E00049803ABCDE900B04A4629 +:10CCF00041461B98FFF7EAFB0498001D80B20490A0 +:10CD0000BDF82A00ADF80C00ADF80E00059880B211 +:10CD100002900AAB1D9A16991B9800F0C5FF28B91E +:10CD200002983988001D05908142D1D202980128CD +:10CD300081D0E0698079012805D0BDF82810A1F5DF +:10CD40007F40FF3803D1BDF82800ADF80E000498ED +:10CD500003ABCDE900B04A4641461B98FFF7B6FB4E +:10CD60000298BBE1072E02D0152E7FF4D4AEB5F8A1 +:10CD700001102183ADF81C10B5F80320628300294F +:10CD80003FF4E4AE91423FF6E1AE0121A1724FF0D3 +:10CD9000000BA4F808B084F80EB0052E07D0C0B27E +:10CDA000691DE26905F086FB00287FF444AF4FF669 +:10CDB000FF70208401A906AA14A8CDF800B081E86C +:10CDC00085032878214600F03F031D9A1B98FFF742 +:10CDD00095FB8246208BADF81C0080E10120032EDC +:10CDE000C3D14021ADF85010B5F801102183ADF842 +:10CDF0001C100AAAB8F1000F00D00023CDE90203ED +:10CE000004921D98CDF80480009038880022401EBE +:10CE100083B21B9800F0C8FF8DF8180090BB0B2060 +:10CE200089F80000BDF8280037E04FF0010C052E0E +:10CE30009BD18020ADF85000B5F801102183B5F8E2 +:10CE400003002084ADF81C10B0F5007F03D9072043 +:10CE50008DF8180085E140F47C4222840CA8B8F1DA +:10CE6000000F00D00023CDE90330CDE9018C1D98DF +:10CE700000903888401E83B21B9800F095FF8DF813 +:10CE8000180028B18328A8D10220BDE0540000205A +:10CE90000D2189F80010BDF83000401C1EE1032E62 +:10CEA00004D248067FF537AE002017E1B5F801102F +:10CEB000ADF81C102878400602D58DF83CE002E061 +:10CEC00007208DF83C004FF000080320CDE9020850 +:10CED0001E9BCDF810801D980193A6F1030B0090C6 +:10CEE0001FFA8BF342461B9800F034FD8DF81800B2 +:10CEF0008DF83C80297849060DD52088C00506D5D7 +:10CF0000208BBDF81C10884201D1C4F82480404613 +:10CF10008DF81880E2E0832801D14FF0020A4FF427 +:10CF20008070ADF85000BDF81C002083A4F820B03C +:10CF30001E986062032060841321CCE0052EFFF46C +:10CF4000EAADB5F80110ADF81C10A28F62B3A2F5DE +:10CF50007F43FE3B28D008228DF83C204FF0000B89 +:10CF60000523CDE9023BDDF878C0CDF810B01D9A5D +:10CF700080B2CDF804C040F400430092B5F803201D +:10CF80001B9800F0E7FC8DF83CB04FF400718DF871 +:10CF90001800ADF85010832810D0F8B1A18FA1F57A +:10CFA0007F40FE3807D0DCE00B228DF83C204FF6A6 +:10CFB000FE72A287D2E7A4F83CB0D2E000942B46E0 +:10CFC00031461E9A1B98FFF780FB8DF8180008B1B8 +:10CFD00083284BD1BDF81C00208355E700942B46D5 +:10CFE00031461E9A1B98FFF770FB8DF81800E8BBBE +:10CFF000E18FA06B0844811D8DE8820343888288FD +:10D0000001881B98FFF763FC824668E095F8018071 +:10D01000022E70D15FEA080002D0B8F1010F6AD188 +:10D0200009208DF83C0007A800908DF84080434609 +:10D03000002221461B98FFF72CFC8DF842004FF090 +:10D04000000B8DF843B050B9B8F1010F12D0B8F110 +:10D05000000F04D1A18FA1F57F40FF380AD0A08F27 +:10D0600040B18DF83CB04FF4806000E037E0ADF89F +:10D0700050000DE00FA91B98FAF767F882468DF86B +:10D080003CB04FF48060ADF85000BAF1020F06D00A +:10D09000FC480068C07928B18DF8180027E0A4F892 +:10D0A000188044E0BAF1000F03D081208DF81800F9 +:10D0B0003DE007A800904346012221461B98FFF758 +:10D0C000E8FB8DF8180021461B98FFF7CAFB9DF876 +:10D0D000180020B9192189F80010012038809DF826 +:10D0E0003C0020B10FA91B98FAF72FF88246BAF13D +:10D0F000000F33D01BE018E08DF818E031E0207805 +:10D10000000712D5012E10D10A208DF83C00E088CE +:10D11000ADF8400003201B9907F0B4F80820ADF8E3 +:10D120005000C1E648067FF5F6AC4FF0040A2088AF +:10D13000BDF8501008432080BDF8500080050BD585 +:10D14000A18FA1F57F40FE3806D11E98E062289895 +:10D150002063A6864FF0030A5046A1E49DF818000C +:10D1600078B1012089F80000297889F80110BDF80C +:10D170001C10A9F802109DF8181089F80410052059 +:10D1800038802088BDF8501088432080E4E72DE9DE +:10D19000FF4F8846087895B0012181404FF2090081 +:10D1A000249C0140ADF820102088DDF88890A0F57F +:10D1B0007F424FF0000AFF3A06D039B1000705D58B +:10D1C000012019B0BDE8F08F0820FAE7239E4FF048 +:10D1D000000B0EA886F800B018995D460988ADF8D6 +:10D1E0003410A8498DF81CB0179A0A718DF838B020 +:10D1F000086098F8000001283BD0022809D00328D5 +:10D200006FD1307820F03F001D303070B8F8040046 +:10D21000E08098F800100320022904D1317821F031 +:10D220003F011B31317094F84610090759D505AB01 +:10D23000B9F1000F13D0002102AA82E80B000720E9 +:10D24000CDE90009BDF83400B8F80410C01E83B25F +:10D250000022159800F0A8FD0028D1D101E0F11CB2 +:10D26000EAE7B8F80400A6F80100BDF81400C01CF5 +:10D2700004E198F805108DF81C1098F804000128B6 +:10D2800006D04FF4007A02282CD00328B8D16CE1E4 +:10D290002188B8F8080011F40061ADF8201020D002 +:10D2A00017281CD3B4F84010814218D3B4F84410A6 +:10D2B000172901D3814212D1317821F03F01C91CD5 +:10D2C0003170A6F801000321ADF83410A4F8440031 +:10D2D00094F8460020F0020084F8460065E1052538 +:10D2E0007EE177E1208808F1080700F4FE60ADF8E0 +:10D2F000200010F0F00F1BD010F0C00F03D03888C2 +:10D30000228B9042EBD199B9B878C00710D0B96898 +:10D310000720CDE902B1CDF804B00090CDF810B0EF +:10D32000FB88BA883988159800F014FB0028D6D1FC +:10D330002398BDF82010401C80294ED006DC10290F +:10D340000DD020290BD0402987D124E0B1F5807F72 +:10D350006ED051457ED0B1F5806F97D1DEE0C80622 +:10D3600001D5082000E0102082460DA907AA05205B +:10D37000CDE902218DF83800ADF83CB0CDE9049636 +:10D3800008A93888CDE9000153460722214615989F +:10D39000FFF7B4F8A8E09DF81C2001214FF00A0A1D +:10D3A000002A9BD105ABB9F1000F00D00020CDE9D8 +:10D3B00002100720CDE90009BDF834000493401E97 +:10D3C00083B2218B0022159800F0EEFC8DF81C0032 +:10D3D0000B203070BDF8140020E09DF81C200121C6 +:10D3E0004FF00C0A002A22D113ABB9F1000F00D084 +:10D3F0000020CDE902100720CDE900090493BDF813 +:10D400003400228C401E83B2218B159800F0CCFC96 +:10D410008DF81C000D203070BDF84C00401CADF89C +:10D42000340005208DF83800208BADF83C00BCE0BE +:10D430003888218B88427FF452AF9DF81C004FF052 +:10D44000120A00281CD1606AA8B1B878C0073FF45E +:10D4500046AF00E018E0BA680720CDE902B2CDF887 +:10D4600004B00090CDF810B0FB88BA88159800F091 +:10D4700071FA8DF81C00132030700120ADF83400D3 +:10D4800093E00000540000203988208B8142D2D1E3 +:10D490009DF81C004FF0160A0028A06B08D0E0B3DE +:10D4A0004FF6FF7000215F46ADF808B0019027E00D +:10D4B00068B1B978C907BED1E18F0DAB0844821DB0 +:10D4C00003968DE80C0243888288018809E0B878C9 +:10D4D000C007BCD0BA680DAB03968DE80C02BB88C0 +:10D4E000FA881598FFF7F3F905005ED0072D72D082 +:10D4F00076E0019005AA02A92046FFF729F9014626 +:10D50000E28FBDF80800824201D00029F1D0E08FFF +:10D51000A16B084407800198E08746E09DF81C0055 +:10D520004FF0180A40B1208BC8B1388820832146BB +:10D530001598FFF796F938E004F118000090237E63 +:10D54000012221461598FFF7A4F98DF81C00002848 +:10D55000EDD1192030700120ADF83400E7E7052542 +:10D5600021461598FFF77DF93AE0208800F4007015 +:10D57000ADF8200050452DD1A08FA0F57F41FE3998 +:10D5800001D006252CE0D8F808004FF0160A48B163 +:10D59000A063B8F80C10A1874FF6FF71E187A0F8DF +:10D5A00000B002E04FF6FF70A087BDF8200030F415 +:10D5B0007F611AD0782300220320159906F0B8FD68 +:10D5C00098F8000020712088BDF8201008432080C2 +:10D5D0000EE000E007252088BDF820108843208059 +:10D5E000208810F47F6F1CD03AE02188814321808D +:10D5F0009DF8380020B10EA91598F9F7A6FD05464B +:10D600009DF81C000028EBD086F801A001203070A6 +:10D61000208B70809DF81C0030710520ADF834001F +:10D62000DEE7A18EE1B118980DAB0088ADF83400AB +:10D630002398CDE90304CDE90139206B0090E36A1A +:10D64000179A1598FFF7FCF9054601208DF8380068 +:10D650000EA91598F9F779FD00B10546A4F834B084 +:10D6600094F8460040070AD52046FFF7A0F910F0CD +:10D670003E0F04D114F8460F20F0040020701898D3 +:10D68000BDF83410018028469BE500B585B003281D +:10D6900006D102208DF8000088B26946F9F755FDE1 +:10D6A00005B000BD10B5384C0B782268012B02D0B4 +:10D6B000022B2AD111E013780BB1052B01D10423E1 +:10D6C000137023688A889A802268CB88D380226866 +:10D6D0000B891381498951810DE08B8893802268E1 +:10D6E000CB88D38022680B8913814B8953818B8926 +:10D6F0009381096911612168F9F727FD22680021EA +:10D700000228117003D0002800D0812010BD832092 +:10D7100010BD806B002800D001207047817801295E +:10D7200009D10088B0F5205F03D042F6010188429C +:10D7300001D10020704707207047F0B587B0002462 +:10D7400015460E460746ADF8144010E006980188CD +:10D750002980811DCDE902410721019404940091A3 +:10D76000838842880188384600F0F4F830B906AA68 +:10D7700005A93046FEF7ECFF0028E7D00A2800D1C3 +:10D78000002007B0F0BD00005400002010B58B78D9 +:10D7900083B102789A4205D10B885BB102E08B79A4 +:10D7A000091D4BB18B789A42F9D1B0F801300C8841 +:10D7B000A342F4D1002010BD812010BD072826D03F +:10D7C00012B1012A27D103E0497801F0070102E0F4 +:10D7D0004978C1F3C20105291DD2DFE801F0031821 +:10D7E000080C12000AB10320704702207047042879 +:10D7F0000DD250B10DE0052809D2801E022808D3B1 +:10D8000003E0062803D0032803D00520704700203A +:10D8100070470F20704781207047C0B282060BD43A +:10D82000000607D5FE48807A4143C01D01EBD000B9 +:10D8300080B27047084670470020704770B5138863 +:10D840000B800B781C0625D5F54CA47A844204D8AD +:10D8500043F010000870002070BD956800F00706C6 +:10D8600005EBD0052D78F54065F304130B701378A4 +:10D87000D17803F0030341EA032140F20123B1FB15 +:10D88000F3F503FB15119268E41D00FB012000EB8A +:10D89000D40070BD906870BD37B51446BDF8041053 +:10D8A00011809DF804100A061ED5C1F30013DC494F +:10D8B000A568897A814208D8FE2811D1C91DC908F6 +:10D8C0005A42284616F0EBFC0AE005EBD00100F0C6 +:10D8D0000702012508789540A84393401843087033 +:10D8E000207820F0100020703EBD2DE9F041074661 +:10D8F000C81C0E4620F00300B04202D08620BDE8CE +:10D90000F081C74D002034462E60AF802881AA7276 +:10D91000E8801AE0E988491CE980810614D4E1789E +:10D9200000F0030041EA002040F20121B0FBF1F2D7 +:10D9300001FB12012068FFF770FF2989084480B2BB +:10D940002881381A3044A0600C3420784107E1D493 +:10D950000020D4E72DE9FF4F89B01646DDE9168A8D +:10D960000F46994623F44045084600F00DFB04009D +:10D970000FD0099802F0E2FF0290207800060AD545 +:10D98000A748817A0298814205D887200DB0BDE86A +:10D99000F08F0120FAE7224601A90298FFF74EFF17 +:10D9A000834600208DF80C004046B8F1070F1AD0CE +:10D9B00001222146FFF702FF0028E7D12078400628 +:10D9C00011D502208DF80C00ADF81070BDF80400E0 +:10D9D000ADF81200ADF814601898ADF81650CDF8F7 +:10D9E0001CA0ADF818005FEA094004D500252E46BA +:10D9F000A84601270CE02178E07801F0030140EA15 +:10DA0000012040F20121B0FBF1F2804601FB1287B8 +:10DA10005FEA494009D5B84507D1A178207901F0DE +:10DA2000030140EA0120B04201D3BE4201D90720E0 +:10DA3000ACE7A8191FFA80F9B94501D90D20A5E76F +:10DA40009DF80C0028B103A90998F9F77CFB002880 +:10DA50009CD1B84507D1A0784FEA192161F30100A4 +:10DA6000A07084F804901A9800B10580199850EAC3 +:10DA70000A0027D0199830B10BEB06002A461999F5 +:10DA800016F096FB0EE00BEB06085746189E099819 +:10DA900003F0C0F82B46F61DB5B239464246009554 +:10DAA00002F0ABFC224601A90298FFF7C7FE9DF8E1 +:10DAB0000400224620F010008DF80400DDE901107A +:10DAC000FFF7EAFE002061E72DE9FF4FDFF85091F4 +:10DAD00082461746B9F80610D9F8000001EB41015B +:10DAE00000EB810440F20120B2FBF0F185B000FBB5 +:10DAF00011764D46DDF84C8031460698FFF78DFED5 +:10DB000029682A898B46611A0C3101441144AB887B +:10DB100089B28B4202D8842009B038E70699CDB289 +:10DB2000290603D5A90601D50620F5E7B9F806C0F0 +:10DB30000CF1010C1FFA8CFCA9F806C0149909B16C +:10DB4000A1F800C0A90602D5C4F8088007E0104477 +:10DB500080B2A9F80800191A01EB0B00A060224658 +:10DB6000FE200699FFF798FEE77026712078390AA3 +:10DB700061F30100320AA17840F0040062F3010170 +:10DB8000A17020709AF802006071BAF80000E0807D +:10DB900000262673280602D599F80A7000E00127AE +:10DBA000A80601D54FF000084D4600244FF00709A4 +:10DBB0000FE0CDE902680196CDF800900496E9885F +:10DBC0002046129B089AFFF7C5FE0028A4D1641CCA +:10DBD000E4B2BC42EDD300209EE72DE9F047804639 +:10DBE00000F0D2F9070005D0002644460C4D40F263 +:10DBF000012919E00120BDE8F087204600F0C4F9B2 +:10DC00000278C17802F0030241EA0222B2FBF9F382 +:10DC100009FB13210068FFF700FE304486B201E0E3 +:10DC2000E8050020641CA4B2E988601E8142E4DC9F +:10DC3000A8F10100E8802889801B28810020387025 +:10DC4000D9E710B5144631B1491E218002F076FEA5 +:10DC5000A070002010BD012010BD10B5D2490446AF +:10DC60000088CA88904201D30A2010BD096800EBE1 +:10DC7000400001EB80025079A072D0882081917819 +:10DC8000107901F0030140EA0120A081A078E11C95 +:10DC9000FFF7D4FD20612088401C2080E080002018 +:10DCA00010BD0121018270472DE9FF4F85B04FF66D +:10DCB000FF788246A3F8008048681F460D468078AA +:10DCC0008DF8060048680088ADF8040000208DF843 +:10DCD0000A00088A0C88A04200D304462C8241E046 +:10DCE000288A401C2882701D6968FFF74FFDB8BB69 +:10DCF0003988414501D1601E38806888A04236D3FA +:10DD0000B178307901F0030140EA012901A9701DC1 +:10DD1000FFF73CFD20BB298941452CD0002231462C +:10DD20000798FFF74BFDD8B92989494518D1E9680B +:10DD30000391B5F80AC0D6F808B05046CDF800C037 +:10DD400002F068FFDDF800C05A460CF1070C1FFA1C +:10DD50008CFC4B460399CDF800C002F018FB50B183 +:10DD6000641CA4B2204600F00FF90600B8D1641E6E +:10DD70002C820A20D0E67C807079B871F088B88057 +:10DD80003178F07801F0030140EA01207881A7F8AA +:10DD90000C90504602F0D2FD324607F10801FFF721 +:10DDA0004DFD38610020B7E62DE9FF4F87B0814671 +:10DDB0001C469246DDF860B0DDF85480089800F00B +:10DDC000E3F805000CD0484602F0B8FD29780906B2 +:10DDD00008D57549897A814204D887200BB0D6E5E9 +:10DDE0000120FBE7CAF309062A4601A9FFF726FD31 +:10DDF0000746149807281CD000222946FFF7DEFCAE +:10DE00000028EBD12878400613D501208DF80800B2 +:10DE10000898ADF80C00BDF80400ADF80E00ADF8A0 +:10DE20001060ADF8124002A94846F9F78CF90028B5 +:10DE3000D4D12978E87801F0030140EA0121AA78D9 +:10DE4000287902F0030240EA0220564507D0B1F5D6 +:10DE5000007F04D9611E814201DD0B20BEE78642AE +:10DE600001D90720BAE7801B85B2A54200D9254613 +:10DE7000BBF1000F01D0ABF80050179818B1B919D9 +:10DE80002A4616F095F9B8F1000F0DD03E444846E9 +:10DE90004446169F02F0D0FE2146FF1DBCB232461A +:10DEA0002B46009402F0DDFA002097E72DE9F041BF +:10DEB00007461D461646084600F066F804000BD0DB +:10DEC000384602F03BFD2178090607D53649897AA4 +:10DED000814203D8872012E5012010E52246314611 +:10DEE000FFF7ACFC65B12178E07801F0030140EA6E +:10DEF0000120B0F5007F01D8012000E0002028704B +:10DF00000020FCE42DE9F04107461D461646084670 +:10DF100000F03AF804000BD0384602F00FFD2178EB +:10DF2000090607D52049897A814203D88720E6E48B +:10DF30000120E4E422463146FFF7AEFCFF2D14D069 +:10DF40002178E07801F0030240EA022040F2012249 +:10DF5000B0FBF2F302FB130015B900F2012080B20E +:10DF6000E070000A60F3010121700020C7E410B5E1 +:10DF70000C4600F009F828B1C18821804079A070D2 +:10DF8000002010BD012010BD0749CA88824209D374 +:10DF900040B1096800EB40006FF00B0202EB80001B +:10DFA0000844704700207047E805002070B503461C +:10DFB000002002466FF02F050EE09C5CA4F13006B5 +:10DFC0000A2E02D34FF0FF3070BD00EB800005EB4E +:10DFD0004000521C2044D2B28A42EED370BD30B50C +:10DFE0000A240AE0B0FBF4F304FB13008D18303070 +:10DFF00005F8010C521E1846D2B2002AF2D130BDEB +:10E0000030B500234FF6FF7510E0040A44EA002003 +:10E0100084B2C85C6040C0F30314604005EA003479 +:10E020004440E0B25B1C84EA40109BB29342ECD3C4 +:10E0300030BD000010B582B0694601F0D1FD002866 +:10E0400018BFFFDF9DF80000002448B1019890F848 +:10E05000DD0028B1019880F8DD4001980AF0AFF9A1 +:10E06000F8488068A0F8D24002B010BD2DE9F04712 +:10E0700004460D46062002F043FC0646072002F047 +:10E080003FFC304400F0FF08002718EB050618BFDE +:10E090004FF000091DD02088401C80B22080B04283 +:10E0A00028BFA4F800902588454501D3B54209D37F +:10E0B0000621284602F07CFC20B90721284602F000 +:10E0C00077FC10B10020BDE8F087781CC7B2BE42D3 +:10E0D000E1D84FF6FF7020801220BDE8F08770B5C0 +:10E0E00082B007F073FB0DF0AFF9D74C4FF6FF7617 +:10E0F00000256683A683D5A12570D1E90001CDE96D +:10E10000000165706946A01C16F008FAA11C601C8D +:10E1100014F04CF825721B2060814FF4A471A1818A +:10E12000E08121820321A1740422E274A082E082B2 +:10E13000A4F13E00218305704680C6480570A4F115 +:10E1400010000570468002B070BDF8B5BD4D174691 +:10E150000E466860297007F0B3FA4FF6FF70ADF80D +:10E16000000000216846FFF781FFA0B90621BDF835 +:10E17000000002F02FFC04460721BDF8000002F069 +:10E1800029FC002C1CBF0028FFDF00216846FFF798 +:10E190006DFF0028EAD0FFF7A2FF287812F07CF884 +:10E1A0000FF0A0FC2978686813F013FF28780CF0B2 +:10E1B000ABFB30460AF00FF807F020FC29786868BE +:10E1C0000BF048FA3946287814F0ADFDBDE8F84068 +:10E1D0000DF03AB910B50124002A1CBF002010BD73 +:10E1E000002908BF022105D0012918BF002401D051 +:10E1F000204610BD0EF088FEFAE72DE9F04F8BB0F7 +:10E20000040008BFFFDF02218F4E06F11C00FFF75C +:10E210002DFF002818BFFFDFB6F81CA0062002F073 +:10E220006FFB0546072002F06BFB284400F0FF0857 +:10E2300008F1010000F0FF094FF0000BB78B4745D4 +:10E2400025D120460FF022F8002840F0CE8030780B +:10E25000002800F0CE8084F801B014202070C4F8AB +:10E2600004B0C4F808B0C4F80CB0C4F810B0C4F8D6 +:10E2700014B0C4F818B0C4F81CB00220C4F820B020 +:10E28000207186F800B00BB00120BDE8F08F4F453B +:10E2900020D1204607F04CFB00287DD007F02AFF54 +:10E2A000002859D02078172856D12079002853D03B +:10E2B000E088072102F07CFB050008BFFFDF28880B +:10E2C00007F017FAE088072102F084FB002818BF46 +:10E2D000FFDF8AE004A9384601F082FC00285BD108 +:10E2E0009DF8100048B107F07EFBB84254D021469B +:10E2F00038460BF0B8F880B377E00FF05AF8B84220 +:10E3000077D02146384613F085FD00286DD1059859 +:10E3100000F1580590F8D00018B9E87E08B1012046 +:10E3200000E00020079095F8370000281CBF95F802 +:10E33000380010F0020F1CD084F801B001202070CA +:10E3400084F804B0E78095F839002072688F608106 +:10E35000A88FA08185F837B047E0FFE7059800F166 +:10E36000580590F80C010028DBD1E87E0028D8D0B1 +:10E37000D5E7384602F060FC0290002808BFFFDFB6 +:10E38000029801F06FFE50B184F801B00F212170A6 +:10E39000E7802081012000E02BE0207125E0384655 +:10E3A00002F038FC0290002808BFFFDF079800B396 +:10E3B000029801F0AEFEE0B19DF8100038B9059862 +:10E3C000D0F8F8004188B94208BF80F800B038465C +:10E3D00007F08FF984F801B00C20207084F804B0A5 +:10E3E000E780287F207285F81BB00BB00120BDE8C4 +:10E3F000F08F022106F11C00FFF738FE18B9B08B30 +:10E4000050457FF41BAF0BB02046BDE8F04F14F031 +:10E41000D0BC10B512F08AFC042803D012F086FCA0 +:10E42000052802D10FF078FD28B90AF0A9F920B12A +:10E4300007F08AFC08B10C2010BD0DF051F8002047 +:10E4400010BD00005C00002032060020FFFFFFFF2F +:10E450001F0000006800002010B504460078002866 +:10E460001EBF0128122010BD12F060FC042806D047 +:10E4700012F05CFC052802D00AF082F928B10DF0F8 +:10E480007EF900281CBF0C2010BD2078002816BF84 +:10E4900002280020012004F11703E21D611CBDE8E1 +:10E4A00010400DF075B810B50446007800281EBF66 +:10E4B0000128122010BD12F039FC042803D012F0FC +:10E4C00035FC052802D10FF027FD28B90AF058F9CC +:10E4D00020B107F039FC08B10C2010BD20780028CD +:10E4E00016BF022800200120611C0CF0BFFF00288D +:10E4F00014BF0020072010BD10B50DF043F900280F +:10E5000014BF0020302010BD10B5044612F00EFCE0 +:10E51000042806D012F00AFC052802D00AF030F9CF +:10E5200008B10C2010BD20460DF026F9002010BDCA +:10E5300010B512F0FBFB042806D012F0F7FB0528FB +:10E5400002D00AF01DF928B10DF019F900281CBFFE +:10E550000C2010BD0DF075F8002010BDFF2181705A +:10E560004FF6FF718180FE4949680A7882718A8876 +:10E57000028149884181012141700020704710B516 +:10E58000002482B012F1080F16D00CDC12F1280F13 +:10E5900018BF12F1140F0FD012F1100F18BF12F1A3 +:10E5A0000C0F09D00EE012F1040F18BF002A03D09F +:10E5B000032A18BF042A05D1012807D0022809D050 +:10E5C00003280BD0122402B0204610BD104607F0DD +:10E5D0008CFDF8E710460FF03AFAF4E708461446C7 +:10E5E000694601F0FDFA002818BF0224EBD19DF81E +:10E5F0000000019880F857400024E4E710B5134666 +:10E6000001220DF0A6FF002010BD10B5044612F047 +:10E610008DFB052804BF0C2010BD204611F02AFEFA +:10E62000002010BD10B5044612F080FB042806D06F +:10E6300012F07CFB052802D00AF0A2F808B10C20E9 +:10E6400010BD2146002007F0C2F8002010BD10B513 +:10E65000044611F0B9FE50B10AF085F838B12078BF +:10E6600009F0DDFD20780FF090FC002010BD0C209B +:10E6700010BD10B5044612F059FB042806D012F064 +:10E6800055FB052802D00AF07BF808B10C2010BD1C +:10E690002146012007F09BF8002010BD38B5044644 +:10E6A0004FF6FF70ADF80000A079E179884213D0F1 +:10E6B00021791F299CBF61791F290DD8002211469D +:10E6C00014F030FF40B90022E079114614F02AFF1F +:10E6D00010B9207A072801D9122038BD0AF050F865 +:10E6E00060B912F023FB48B900216846FFF7BEFC71 +:10E6F00020B1204606F031F8002038BD0C2038BD8E +:10E7000070B504468078002582B01A2825D00EDC2A +:10E71000162844D2DFE800F04343434343214343F8 +:10E7200043434343434343434343432121212A2853 +:10E7300035D00BDCA0F11E000C2830D2DFE800F051 +:10E740002F2F2F2F2F2F2F2F2F2F2F0D3A38042819 +:10E7500025D2DFE800F0240224022088B0F5706F93 +:10E760001DD20126694601F03BFA00281EBF022097 +:10E7700002B070BD9DF80000002801980BBF00F1A9 +:10E78000F40100F5B87100F1F50300F271130246CF +:10E7900012D192F8D00092F8732052B903E002B07F +:10E7A0004FF0120070BD002818BF042801D008786F +:10E7B00068B102B00C2070BD92F80C0192F8732081 +:10E7C000002AF6D1002818BF0428F0D1F1E70E7016 +:10E7D000A07818709DF8000048B1019890F8DD000D +:10E7E00028B1019880F8DD50019809F0E8FD02B0E9 +:10E7F000002070BDF0B583B00C46694601F0F0F919 +:10E8000028B1204615F074FE03B00220F0BD019837 +:10E81000002700F1580500F1080600BF85F8407098 +:10E820003146204615F07AFE95F840000028F5D1D3 +:10E8300003B0F0BD2DE9F0410D4604460189808802 +:10E8400000230DF0BCFF696A814228BFBDE8F0815A +:10E85000401A401C4108A0884FF0000C401A80B2BA +:10E86000A08022896FF00E07511A8AB2228195F892 +:10E870005460618816F00C0F6FF00D0328D0B0F5CE +:10E88000747F38BF604606D35038C61700EB9660D9 +:10E8900003EBA01080B2814238BF0846608095F833 +:10E8A0005510E08811F00C0F1BD0B2F5747F09D31E +:10E8B000A2F15001CA1701EB926103EBA11100BF55 +:10E8C0001FFA81FC604528BF6046E080BDE8F0810A +:10E8D000022E1ABF03EBD00080B207EB9000DAD112 +:10E8E000D8E702291ABF03EBD2011FFA81FC07EB1C +:10E8F0009201E7D1E4E7F0B587B00C46054604A9DC +:10E9000001F06EF900281CBF07B0F0BD9DF81000A3 +:10E91000002814BF002201220599B1F84A30FB2BD0 +:10E9200028BFFB23B1F84CC0BCF1FB0F28BF4FF050 +:10E93000FB0C0C4FD7E90006BF68009001960297C8 +:10E94000ADF80230ADF806C06846FFF773FF65808A +:10E95000BDF80400E080BDF80800608104E000001C +:10E960005C00002040470200BDF80200A080BDF816 +:10E970000600208107B00020F0BD2DE9F04F89B0DE +:10E9800004460088694601F02BF95FEA00081CBFC5 +:10E9900009B0BDE8F08FB4F806C02289ACF11B01C4 +:10E9A0001220E12924BF09B0BDE8F08FB2F5A47FA1 +:10E9B0003CBF09B0BDE8F08F44F29025AA4284BF65 +:10E9C00009B0BDE8F08F00276388A188A3F11B067A +:10E9D000E12E24BF09B0BDE8F08FB1F5A47F2EBFB2 +:10E9E0008D4209B0BDE8F08F1120BCF1FB0F99BF3B +:10E9F00040F64806B24209B0BDE8F08FFB2B92BF4B +:10EA0000B14209B0BDE8F08F208806A901F0E8F80E +:10EA1000002818BFFFDF35D19DF8180000280CBF73 +:10EA2000012200220799B1F84A00FB2828BFFB20E9 +:10EA3000B1F84C30FB2B28BFFB23DFF858B7DBF8CD +:10EA400000C0DBF804A0DBF808B0CDF808C0CDF8B2 +:10EA50000CA0CDF810B0ADF80A00ADF80E3002A849 +:10EA6000FFF7E8FEBDF80C0060F31F45BDF810008D +:10EA700060F31F49BDF80A0060F30F05BDF80E00F2 +:10EA800060F30F0962881FFA89F1092091423CBFA7 +:10EA900009B0BDE8F08FA9B2E28891423CBF09B04D +:10EAA000BDE8F08F4FEA1941A288238901EB154197 +:10EAB0001A4491423CBF09B0BDE8F08F9DF80000B8 +:10EAC0004FF001090028019808D000F5CD7580F8B5 +:10EAD0009B91019890F8DE0148B307E000F582753C +:10EAE00080F80591019890F8280110B14FF03A088C +:10EAF00018E0E08868806088E8802089A880A08885 +:10EB00002881012228460199FFF794FEA888B04287 +:10EB100028BF40F64800A8802889B0421DD228812D +:10EB200085F800906F7009B04046BDE8F08FE0882E +:10EB300068806088E8802089A880A08828810022D9 +:10EB400028460199FFF776FEA888B04228BF40F614 +:10EB50004800A8802889B042E1D340F64800DEE7AB +:10EB60000BE710B5044612F0E1F8042806D012F0C5 +:10EB7000DDF8052802D009F003FE28B10CF0FFFDF6 +:10EB800000281CBF0C2010BD2078002816BF0228CA +:10EB900000200120E279611C0CF075FF002814BFF1 +:10EBA0000020022010BD817831F0070207BFC27833 +:10EBB00032F007031220704711F0040F0EBF12F05D +:10EBC000040F1120704701F023B810B504460178F6 +:10EBD000122084B0012918BF002904D002291EBFC9 +:10EBE000032904B010BD6178002918BF012904D0A1 +:10EBF00002291EBF032904B010BDE17B21B9A17811 +:10EC000001291CBF04B010BDA17831F005021CBF62 +:10EC100004B010BD11F0050F04BF04B010BD11F019 +:10EC2000040F1EBF112004B010BDE178E388628993 +:10EC300000291EBF012904B010BD042B2EBF042AD9 +:10EC400004B010BDA17B002904BF04B010BD07298A +:10EC500084BF04B010BD12F069F8042837D012F058 +:10EC600065F8052833D0A0788DF80800A0788DF8D5 +:10EC7000000060788DF8040020788DF80300A07BF8 +:10EC80008DF80500E07B002818BF01208DF80600F4 +:10EC9000A07810F0010F10D0E078012808BF022002 +:10ECA00003D000280CBF012000208DF80100E0886F +:10ECB000ADF80A006089ADF80C0002A811F091FBD4 +:10ECC000002804BF68460FF065F904B010BD04B019 +:10ECD0000C2010BD10B5044602781220012A0FD076 +:10ECE000002A18BF10BD012A26D012F01FF80528EF +:10ECF00004D011F0F6F9002808BF10BD0C2010BD9B +:10ED00006178002918BF012906D0022918BF10BD5B +:10ED1000A188002908BF10BD6388002B1CBFA188F3 +:10ED20000029E0D003EB83035B0001EB8101B3EB2F +:10ED3000012F28BF10BDD6E70FF01DF8002804BF33 +:10ED4000122010BD0FF02CF800200FF0D3F800288F +:10ED500018BF10BD60780FF0B1F8002818BF10BDC3 +:10ED6000A1886088BDE8104011F064BB002100F06C +:10ED7000B1BF017811F0010F02D0406813F0ECBF71 +:10ED800013F0B9BF2DE9F04F8FB00D460246AFF634 +:10ED90004411D1E90001CDE90B011146284600F0EC +:10EDA00099FF00281CBF0FB0BDE8F08F11F0BEFF27 +:10EDB00004280CD011F0BAFF052808D0F64F387897 +:10EDC00028B90EF0F6FAA0F57F41FF3903D00FB055 +:10EDD0000C20BDE8F08FF1480890F1480990F14807 +:10EDE0000A9008AA06210DA801F0B0FD040002BF98 +:10EDF00009200FB0BDE8F08F03210DF052F9B98A58 +:10EE0000A4F84A10FA8AA4F84C20F87C0090BB7C45 +:10EE1000208801F088FE002818BFFFDF208806F058 +:10EE200067FC268804F10E094FF0000B4FF00A0A28 +:10EE30000421484604F04DFF48460DF001FB062032 +:10EE400001F05EFD80461CE005A9062001F039FDB9 +:10EE500005A801F014FD5FEA000B10D1BDF8180001 +:10EE6000B04206D00798042249460E3015F074F9D6 +:10EE700070B105A801F003FD5FEA000BEED0A8F128 +:10EE80000108B8F1000F07DDBBF1000FDCD007E08F +:10EE900048460DF0DEFAF2E7BBF1000F08BFFFDFD6 +:10EEA000D9F800000CF07AFFBAF1010A01D000286D +:10EEB000BED0BDA004F1120600680190032101A894 +:10EEC00004F0DEFE002001A90A5C3254401CC0B2EE +:10EED0000328F9D3A88B6080688CA080288DE080FF +:10EEE000687A10F0010F18BF01217CD0388B0A46D8 +:10EEF00011F009FB0146A062204611F030FB4FF0F3 +:10EF0000000884F85E8084F85F80A878002816BF27 +:10EF10000228002001206076D5F80300C4F81A000A +:10EF2000B5F80700E0830BA904F1080015F0F6FA24 +:10EF30004FF0010984F80091B4F84C0004F5827692 +:10EF40004A46FB2828BFFB207989814238BF084602 +:10EF500094F855104FF4747A11F00C0F1CBF0AEBA3 +:10EF600080111FFA81FC72D0B989614538BF8C4687 +:10EF7000B4F84A10FB2928BFFB21FB898B4238BF1C +:10EF8000194694F854B01BF00C0F1CBF0AEB811308 +:10EF90009BB265D03F8A9F4238BF3B461B2918BFB2 +:10EFA000B3F5A47F65D0F080A6F808C07180B38067 +:10EFB00021463046FFF73EFCB08840F648018842C3 +:10EFC00028BF40F64800B0803089884228BF40F60C +:10EFD0004800308186F800908DF800800121684655 +:10EFE00004F04EFE00E02BE09DF8000000F0070169 +:10EFF000C0F3C1021144C0F3401008448DF8000072 +:10F00000401D207609283CBF08302076002120468C +:10F010000DF047F868780EF0B9FEA9782878EA1C58 +:10F020000EF087FE002808BF122650D00EF0B8FE62 +:10F03000A9782878EA1C0EF01BFF06001FD046E0D6 +:10F0400010F0020F14BF022100214FE7FFE7022951 +:10F0500007BF81003C31C10070311FFA81FC83E79A +:10F06000BBF1020F07BF8B003C33CB0070339BB268 +:10F0700090E71B2818BFBCF5A47F94D1ACE7012012 +:10F080000EF04CFE060022D1214603200EF028FF90 +:10F0900006001CD1687A8DF8000010F0010F05D031 +:10F0A0006889ADF80200288AADF80400684611F0BE +:10F0B00098F9064695F83A00002818BF01200EF08E +:10F0C00033FE26B9204611F026F9060009D0208823 +:10F0D00006F00FFB2088062101F07CFC002818BFF9 +:10F0E000FFDF30460FB0BDE8F08F0146002049E653 +:10F0F00038B5294C207870B911F018FE052805D0D4 +:10F100000EF057F9A0F57F41FF3904D0684611F0A1 +:10F11000CCF910B113E00C2038BD0098008806F03F +:10F12000E8FA00980621008801F054FC002818BF76 +:10F13000FFDF012020701D480078FCF727FE00202B +:10F1400038BD70B4B0F802C08188C3880289448990 +:10F150008089ACF1060640F67B45AE423CBF8E1F6F +:10F16000AE4214D28C4598BFB3F5FA7F3EBFA2F1F0 +:10F170000A0C0F4D15EB0C0509D25B1C5943B1EB82 +:10F18000820F04DA84429EBF002070BC704730209A +:10F1900070BC70474047020032060020F405002092 +:10F1A0006800002022060020112233005C000020AD +:10F1B00089F3FFFF2DE9F047B0F802C004468188CB +:10F1C000C388028947898689ACF1060940F67B48E5 +:10F1D00030200025C1453ABFA1F10609C145BDE86F +:10F1E000F0878C4598BFB3F5FA7F3DBFA2F10A0CBA +:10F1F000DFF8B48418EB0C08BDE8F0875B1C5943BA +:10F20000B1EB820FA8BFBDE8F087B74288BFBDE869 +:10F21000F0872088062101F0CBFB68B190F8D01070 +:10F2200090F8732042B9002918BF042904D0D0F8FF +:10F23000F8100A781AB106E00220BDE8F087D0F88D +:10F240004421127812B13A20BDE8F08705228A7174 +:10F25000D0F8F8100D81D0F8F820A1885181D0F8AD +:10F26000F820E1889181D0F8F8202189D181D0F867 +:10F27000F8100A894B899A429EBF8A79082A9A42D5 +:10F2800024BF1220BDE8F08722884A80D0F8F80019 +:10F29000022101700020BDE8F087F0B583B005467B +:10F2A0000DF0F2F8002802BF122003B0F0BD0026D6 +:10F2B000FE4F012429467C70B81C15F02FF97E7092 +:10F2C0006946062001F0FDFA002818BFFFDF6846F6 +:10F2D00001F0D5FA002808BFBDF804500AD1029801 +:10F2E00080F80041684601F0CAFA18B9BDF8040078 +:10F2F000A842F4D103B00020F0BD10B50446008848 +:10F30000062101F055FB68B190F8D01090F87320F9 +:10F3100042B9002918BF042904D0D0F8F8100A789F +:10F3200012B105E0022010BDD0F8442112780AB1D4 +:10F330003A2010BD90F8962012F0010F04BF0C2067 +:10F3400010BDD4F80220D4F806304A608B60D0F8A3 +:10F35000F81062898A81D0F8F810E268C1F80E20AE +:10F360002269C1F812206269C1F81620A269C1F8A9 +:10F370001A20D0F8F82003211170D0F8F800218865 +:10F380004180002010BDF8B515460E46044609F030 +:10F39000F7F900281CBF0C20F8BD20781223EF28B5 +:10F3A00073D86088ADF8000010F0100F4FF0000126 +:10F3B0000CD010F0010F00F002021BD0B2B110F01F +:10F3C000080F08BF10F0040F1ED01AE010F0080F4D +:10F3D0007ED110F0200F18BF10F0030F78D110F07D +:10F3E000010F18BF10F0020F72D10DE010F0040FE2 +:10F3F0000AD106E02AB110F0080F08BF10F0040F80 +:10F4000002D010F00F0F63D1608810F0080F09D1FF +:10F41000D4E901C2624528BFBCF1200F58D3B2F134 +:10F42000807F55D2227B002A52D0072A50D894F8E8 +:10F430000DC0BCF1000F18BFBCF1010F05D0BCF12D +:10F44000020F18BFBCF1030F42D110F0040F05D119 +:10F45000BCF1020F18BFBCF1030F07D1A27B002A39 +:10F4600018BF012A34D110F0040F08D1627D002AA0 +:10F4700018BF012A03D0022A18BF032A28D1E27D2F +:10F4800010F0100F02D0012A10D021E0012A18BF7D +:10F49000032A1DD110F0100F08D1627E012A1CBF73 +:10F4A000022A032A14D1A27E0F2A11D8E27E002A52 +:10F4B00018BF012A0CD1E27D1123032A08D010F0D5 +:10F4C000100F04BF627E032A02D010F0400F01D05B +:10F4D0001846F8BD3170A17555B9FF208DF80000B0 +:10F4E0006946002006F0EDFD6946002006F0D4FDD7 +:10F4F0002046BDE8F84006F004BD002243E72DE9B0 +:10F50000F0470446C0780F46122510B106F063FD9F +:10F5100050B1607804280AD094F8038094F80090E1 +:10F520006678B8F1FB0F12D92846BDE8F08709F0DC +:10F5300027F90028F8D006F0A6FD0028F4D106F03F +:10F540009AFA002804BFE0780028EDD1E4E71FB163 +:10F55000B8F11F0F23D9E7E706F08DFA28B1B8F10B +:10F560001F0F98BF032E07D0DEE7032E18BF042E0F +:10F5700002D0B8F1000FD7D009F002F9002818BF67 +:10F58000032E04D0042E1CBF0C20BDE8F087484693 +:10F5900006F069FA002804BF4220BDE8F087E07851 +:10F5A00061781F2898BF03291CBF1120BDE8F08790 +:10F5B000211D06F086FD0020BDE8F08700219EE7B2 +:10F5C0002DE9F0470446C0788846122710B106F0AE +:10F5D00098FD38B16578042D04D0E67894F8009051 +:10F5E000FB2E02D93846BDE8F087B8F1000F02D0F3 +:10F5F0001F2E21D9F6E706F03EFA20B11F2E98BF44 +:10F60000032D06D0EEE7032D18BF042D01D0002EE8 +:10F61000E8D009F0B5F8002818BF032D04D0042D58 +:10F620001CBF0C20BDE8F087484606F01CFA0028F5 +:10F6300004BF4220BDE8F087E07861781F2898BFBA +:10F6400003291CBF1120BDE8F087211D06F024FD11 +:10F650000020BDE8F0870021B2E72DE9F041044623 +:10F660004078422582B0012808D8A07806F0FBF93E +:10F6700020B120781225012804D0A0B102B028467C +:10F68000BDE8F08106F04BFD20B1A0880028F5D040 +:10F690008028F3D806F050FD90B160780028EDD0B6 +:10F6A0002078012810D003E089F3FFFF3206002004 +:10F6B00007F0EAFE044608F0DBFC002800F0EA80D0 +:10F6C00002B00C20BDE8F08106F046FB38B906F028 +:10F6D0001FFD002802BF122002B0BDE8F08109F032 +:10F6E0004FF80028ECD106F07EF9A0F57F41FF39F4 +:10F6F000E6D106F050FBA08842F2107100FB01F643 +:10F70000A079314606F078FC06F0F4FC18B300222C +:10F71000072101A801F01AF9040002BF092002B074 +:10F72000BDE8F081F6480321846020460CF072FBAE +:10F73000204607F0EBF8F34DA88AA4F84A00E88ABF +:10F74000A4F84C0006F097F968B1288B012108F065 +:10F7500013FEA0620FE03146002008F063FD002890 +:10F7600018BFFFDFA1E006F0E9FC2A8B0146104636 +:10F7700008F002FEA06201460022204607F087FE44 +:10F7800006F079F9002808BF06F0D8FCE87C009064 +:10F79000AB7CEA8AA98A208801F0C5F9002818BF45 +:10F7A000FFDF208805F0A4FF3146204608F03AFD2F +:10F7B000002818BFFFDF2146B4F84C00002204F5F2 +:10F7C000CD76FB2828BFFB206B89834238BF1846C3 +:10F7D00091F855304FF4747413F00C0F1CBF04EB08 +:10F7E00080131FFA83FC38D0AF89674528BF67466E +:10F7F000B1F84A30FB2B28BFFB23B5F80EC09C455F +:10F8000038BF634691F854C01CF00C0F1CBF04EBCA +:10F81000831C1FFA8CF829D02C8A444528BF444603 +:10F820001B2B18BFB4F5A47F2ED0F08037817380D6 +:10F83000B4803046FEF7FEFFB08840F648018842AB +:10F8400028BF40F64800B0803089884228BF40F683 +:10F85000480030810120307027E0022B07BF830071 +:10F860003C33C30070331FFA83FCBDE7BCF1020FC9 +:10F8700007BF4FEA830C0CF13C0C4FEAC30C0CF1B0 +:10F88000700C1FFA8CF8C7E71B2818BFB7F5A47FC8 +:10F89000CBD10AE04CB1208805F02BFF208807214E +:10F8A00001F098F8002818BFFFDF002002B0BDE883 +:10F8B000F0810021D1E610B50C46072101F078F85F +:10F8C000002804BF022010BD90F8731109B10C206C +:10F8D00010BD90F86510142912BF152990F8C011B9 +:10F8E0000029F4D12168C0F874116168C0F878115A +:10F8F000A168C0F87C11E168C0F88011012180F88E +:10F900007311002010BD10B5072101F051F8002837 +:10F9100004BF022010BD90F8731109B10C2010BD76 +:10F9200090F86510142918BF1529F7D1022180F825 +:10F930007311002010BDF0B50E464BF68032122137 +:10F9400083B0964217D8B6B1694600F049F900284D +:10F950001CBF03B0F0BD019800F15807841C258836 +:10F960003246294638460CF00FFA2088A842F6D1D4 +:10F9700003B00020F0BD03B00846F0BD10B582B062 +:10F9800004460088694600F02BF900281CBF02B02D +:10F9900010BD0198A37800F1580190F82C209A42EC +:10F9A00002BF0C2002B010BD7F220A728A720022B0 +:10F9B000CA72E17880F82D10217980F82E10A17894 +:10F9C00080F82C1002B0104610BD10B582B00C4665 +:10F9D000694600F005F900281CBF02B010BD01986F +:10F9E00090F87300002818BF0120207002B000209A +:10F9F00010BD30B583B00D461446694600F0F0F8EE +:10FA000000281CBF03B030BD019890F82C000128DD +:10FA10001EBF0C2003B030BD019890F86010297013 +:10FA200090F86100207003B0002030BD70B50D4625 +:10FA30001646072100F0BCFF002804BF022070BD5D +:10FA400083884FF0010CC28841880CEB430C65455C +:10FA50001AD342F2107C02FB0CF240F6C41C01FBEC +:10FA60000CF1B2FBF1F1491E8CB2B4F5FA7F88BFFC +:10FA70004FF4FA74A54238BF2C46621C591CB2FBE5 +:10FA8000F1F25143491E8BB290F8AC11002908BF26 +:10FA900003843380002070BD10B50C46072100F0B0 +:10FAA00087FF002804BF022010BD80F8DF40002C33 +:10FAB0001EBF90F8DD10002908F081FC002010BD69 +:10FAC000017800291CBF417800290ED041881B29EC +:10FAD00021BF81881B29C188022906D30A490268EF +:10FAE00040680A654865002070471220704710B5CD +:10FAF000044610F005FD204608F009FC002010BD6A +:10FB00005C00002032060020F40500202DE9F041C1 +:10FB100016460F46044601221146384610F0F3FC03 +:10FB200005460121384608F027FC854228BF2846B3 +:10FB30000123E100503189B2E631884206D901F152 +:10FB40009602401AB0FBF2F0401C83B233800020D2 +:10FB5000BDE8F08110B5044611F0E8F8042806D09D +:10FB600011F0E4F8052802D008F00AFE08B10C20D4 +:10FB700010BD601C0BF05DFF207800F0010006F066 +:10FB800005F9207800F001000EF005F9002010BD05 +:10FB900010B50446072000F0A5FE00281CBF0C206D +:10FBA00010BD207810F0010F11D0002260781146AE +:10FBB00013F0B8FC00281CBF122010BDA0680AF08A +:10FBC00048FA607861680AF04DFA002010BD002004 +:10FBD0000AF03FFA002108460AF044FA002010BD5E +:10FBE00070B50C460546062100F0E2FE606010B1DB +:10FBF0000020207070BD0721284600F0D9FE60600B +:10FC0000002804BF022070BD01202070002070BDBC +:10FC100010B582B0044600886946FFF7E1FF020094 +:10FC20001CBF02B010BDA088002818BF012804D056 +:10FC300002281EBF122002B010BDA178002908BF03 +:10FC40000321E078002808BF03204FF0000C9DF846 +:10FC500000400123002C019C06D084F8A531019CB2 +:10FC600094F8F241ECB124E084F80F31019C94F84F +:10FC700034413CB9019C94F80E411CB9019C94F8A4 +:10FC80007D400CB13A2208E0019C84F80E31019BC2 +:10FC900083F81011019981F81101019880F80FC1C2 +:10FCA00015E0019C94F8A4411CB9019C94F87D4096 +:10FCB0000CB13A2208E0019C84F8A431019B83F83E +:10FCC000A611019981F8A701019880F8A5C102B099 +:10FCD000104610BD427A12F0070F10D032F0070321 +:10FCE0000DD112F0040F01D011207047012A18BF66 +:10FCF000022AF9D190F83A301BB9012A01D012201A +:10FD000070472DE9F0074FF0000C12F0010F40F69C +:10FD1000774740F67B4337D069B14489B0F810C0CB +:10FD2000261F43F6FD75AE423CBFACF10406AE4261 +:10FD300026D2644524D3C68AB0F81CC0448C058DF5 +:10FD4000B0F82E90B0F83480A6F1060A9A453CBF70 +:10FD5000ACF1060A9A4513D2664598BFB4F5FA7F0E +:10FD60003CBFA5F10A06BE420AD2641C04FB0CFC8F +:10FD7000BCEB850F04DAC14598BF4FF0010C03D9E5 +:10FD8000BDE8F0073020704712F0020F22D000EBE0 +:10FD90004C02D68AB2F81CC0558C148DB2F82E8055 +:10FDA000928EA6F106094B4584BFACF106094B457E +:10FDB000E6D9664598BFB5F5FA7F3CBFA4F10A03C2 +:10FDC000BB42DDD26B1C03FB0CF3B3EB840FD7DA21 +:10FDD0009045D5D802782AB1012A13D0BDE8F007A2 +:10FDE000122070470029817808D0002918BF012906 +:10FDF00008D0022918BF032904D0EFE7002918BF53 +:10FE00000129EBD14078002818BF012803D002282F +:10FE100018BF0328E2D1BDE8F007002070470000BA +:10FE200030B5058825F4004421448CB24FF40041DC +:10FE300094420AD2121B92B21B339A4201D2A943B6 +:10FE400007E005F40041214303E0A21A92B2A9435E +:10FE50001143018030BD0844083050434A31084402 +:10FE600080B2704770B51D4616460B4604462946BB +:10FE70003046049AFFF7EFFF0646B34200D2FFDF99 +:10FE80002821204614F035FA4FF6FF70A082283E54 +:10FE9000B0B265776080B0F5004F00D9FFDF6188B0 +:10FEA00005F13C00814200D2FFDF60880835401B2D +:10FEB000343880B220801B2800D21B2020800020F4 +:10FEC000A07770BD8161886170472DE9F05F0D46B4 +:10FED000C188044600F12809008921F4004620F475 +:10FEE000004800F062FB10B10020BDE8F09F4FF029 +:10FEF000000A4FF0010BB0450CD9617FA8EB06005A +:10FF0000401A0838854219DC09EB060000210580FB +:10FF100041801AE06088617F801B471A083F0DD43A +:10FF20001B2F00DAFFDFBD4201DC294600E0B9B239 +:10FF3000681A0204120C04D0424502DD84F817A0AE +:10FF4000D2E709EB06000180428084F817B0CCE7C5 +:10FF500070B5044600F12802C088E37D20F400401B +:10FF60002BB110440288438813448B4201D20020F5 +:10FF700070BD00258A4202D30180458008E0891ABD +:10FF80000904090C418003D0A01D00F01EFB08E00D +:10FF9000637F00880833184481B26288A01DFFF790 +:10FFA0003FFFE575012070BD70B5034600F12804E0 +:10FFB000C588808820F400462644A84202D100204B +:10FFC000188270BD98893588A84206D3401B758871 +:10FFD0002D1A2044ADB2C01E05E02C1AA5B25C7FDC +:10FFE00020443044401D0C88AC4200D90D809C89CF +:10FFF00024B1002414700988198270BD0124F9E726 +:020000040001F9 +:1000000070B5044600F12801808820F400404518AE +:10001000208A002825D0A189084480B2A08129889F +:100020006A881144814200D2FFDF2888698800264F +:100030000844A189884212D1A069807F287169880B +:1000400019B1201D00F0C1FA08E0637F2888083349 +:10005000184481B26288201DFFF7E2FEA681268245 +:10006000012070BD2DE9F0414189878800260446B2 +:1000700000F12805B94218D004F10A0821F4004023 +:100080002844418819B1404600F09FFA08E0637F98 +:1000900000880833184481B262884046FFF7C0FEEA +:1000A000761C6189B6B2B942E8D13046BDE8F0812C +:1000B0002DE9F04104460B4627892830A68827F40D +:1000C0000041B4F80A8001440D46B74201D1002036 +:1000D000ECE70AB1481D106023B1627F691D184624 +:1000E00014F066F82E88698804F1080021B18A1995 +:1000F00096B200F06AFA06E0637F628808339919C5 +:1001000089B2FFF78DFE474501D1208960813046D5 +:10011000CCE78188C088814201D10120704700204E +:10012000704701898088814201D1012070470020F9 +:10013000704770B58588C38800F1280425F4004213 +:1001400023F4004114449D421AD08389058A5E1924 +:1001500025886388EC18A64214D313B18B4211D3BF +:100160000EE0437F08325C192244408892B2801A24 +:1001700080B22333984201D211B103E08A4201D107 +:10018000002070BD012070BD2DE9F0478846C18870 +:100190000446008921F4004604F1280720F40045B4 +:1001A00007EB060900F001FA002178BBB54204D93B +:1001B000627FA81B801A002503E06088627F801B95 +:1001C000801A083823D4E28962B1B9F80020B9F85E +:1001D00002303BB1E81A2177404518DBE08938440A +:1001E000801A09E0801A217740450ADB607FE189A7 +:1001F0000830304439440844C01EA4F81280BDE8D9 +:10020000F087454503DB01202077E7E7FFE76182C0 +:100210000020F4E72DE9F74F044600F12805C088D7 +:10022000884620F4004A608A05EB0A0608B140457A +:1002300002D20020BDE8FE8FE08978B13788B6F899 +:10024000029007EB0901884200D0FFDF207F4FF0CA +:10025000000B50EA090106D088B33BE00027A07FDD +:10026000B9463071F2E7E18959B1607F294408301D +:1002700050440844B4F81F1020F8031D94F82110CE +:100280008170E28907EB080002EB0801E181308010 +:10029000A6F802B002985F4650B1637F30880833F9 +:1002A000184481B26288A01DFFF7BAFDE78121E002 +:1002B000607FE18908305044294408442DE0FFE77D +:1002C000E089B4F81F102844C01B20F8031D94F8DF +:1002D0002110817009EB0800E28981B202EB08006D +:1002E000E081378071800298A0B1A01D00F06DF907 +:1002F000A4F80EB0A07F401CA077A07D08B1E088D4 +:10030000A08284F816B000BFA4F812B084F817B029 +:1003100001208FE7E0892844C01B30F8031DA4F8B2 +:100320001F10807884F82100EEE710B5818800F175 +:10033000280321F400442344848AC288A14212D0B5 +:10034000914210D0818971B9826972B11046FFF76C +:10035000E8FE50B91089283220F400401044197981 +:100360000079884201D1002010BD184610BD00F16F +:100370002803407F08300844C01E1060088808B970 +:10038000DB1E136008884988084480B270472DE955 +:10039000F04100F12806407F1C4608309046431883 +:1003A00008884D88069ADB1EA0B1C01C80B290421E +:1003B00014D9801AA04200DB204687B298183A462A +:1003C000414613F0C9FE002816D1E01B84B2B844A0 +:1003D000002005E0ED1CADB2F61EE8E7101A80B271 +:1003E0000119A94206D8304422464146BDE8F041F1 +:1003F00013F0B2BE4FF0FF3058E62DE9F04100F1A6 +:100400002804407F1E46083090464318002508887F +:100410004F88069ADB1E90B1C01C80B2904212D960 +:10042000801AB04200DB304685B299182A46404611 +:1004300013F0BEFE701B86B2A844002005E0FF1C2E +:10044000BFB2E41EEAE7101A80B28119B94206D899 +:1004500021183246404613F0ABFEA81985B2284653 +:1004600024E62DE9F04100F12804407F1E460830C3 +:1004700090464318002508884F88069ADB1E90B1E5 +:10048000C01C80B2904212D9801AB04200DB3046C4 +:1004900085B298182A46414613F08AFE701B86B230 +:1004A000A844002005E0FF1CBFB2E41EEAE7101AD2 +:1004B00080B28119B94206D820443246414613F031 +:1004C00077FEA81985B22846F0E5401D704710B5A3 +:1004D000044600F12801C288808820F400431944B2 +:1004E000904206D0A28922B9228A12B9A28A9042E9 +:1004F00001D1002010BD0888498831B1201D00F0CD +:1005000064F800202082012010BD637F62880833D8 +:10051000184481B2201DFFF783FCF2E70021C1815E +:1005200001774182C1758175704703881380C28944 +:1005300042B1C28822F4004300F128021A440A6042 +:10054000C08970470020704710B50446808AA0F526 +:100550007F41FF3900D0FFDFE088A082E08900B151 +:100560000120A07510BD4FF6FF71818200218175B9 +:10057000704710B50446808AA0F57F41FF3900D14D +:10058000FFDFA07D28B9A088A18A884201D1002080 +:1005900010BD012010BD8188828A914201D1807DE9 +:1005A00008B1002070470120704720F4004221F478 +:1005B00000439A4207D100F4004001F40041884210 +:1005C00001D0012070470020704730B504460088F4 +:1005D0000D4620F40040A84200D2FFDF21884FF4EE +:1005E000004088432843208030BD70B50C0005468C +:1005F00009D0082C00D2FFDF1DB1A1B2286800F09D +:1006000044F8201D70BD0DB100202860002070BD91 +:100610000021026803E093881268194489B2002A15 +:10062000F9D100F032B870B500260D46044608290D +:1006300000D2FFDF206808B91EE0044620688188E8 +:10064000A94202D001680029F7D181880646A94253 +:1006500001D100680DE005F1080293B20022994231 +:1006600009D32844491B0260818021680968216000 +:100670000160206000E00026304670BD00230B6062 +:100680008A8002680A600160704700234360021D8F +:10069000018102607047F0B50F4601884088154619 +:1006A0000C181E46AC4200D3641B3044A84200D94B +:1006B000FFDFA019A84200D9FFDF3819F0BD2DE9EE +:1006C000F041884606460188408815460C181F46AA +:1006D000AC4200D3641B3844A84200D9FFDFE019C4 +:1006E000A84200D9FFDF70883844708008EB04000E +:1006F000BDE8F0812DE9F041054600881E46174609 +:10070000841B8846BC4200D33C442C80688830441B +:10071000B84200D9FFDFA019B84200D9FFDF6888CE +:100720003044688008EB0400E2E72DE9F0410688D8 +:100730001D460446701980B2174688462080B8428C +:1007400001D3C01B20806088A84200D2FFDF70194F +:10075000B84200D9FFDF6088401B608008EB0600CC +:10076000C6E730B50D460188CC18944200D3A41AD0 +:100770004088984200D8FFDF281930BD2DE9F041AC +:10078000C84D04469046A8780E46A04200D8FFDF28 +:1007900005EB8607B86A50F8240000B1FFDFB8689F +:1007A000002816D0304600F044F90146B868FFF73B +:1007B0003AFF05000CD0B86A082E40F8245000D348 +:1007C000FFDFB9484246294650F826302046984770 +:1007D0002846BDE8F0812DE9F8431E468C19914664 +:1007E0000F460546FF2C00D9FFDFB14500D9FFDFDA +:1007F000E4B200954DB300208046E81C20F00300D1 +:10080000A84200D0FFDF4946DFF89892684689F891 +:10081000001089F8017089F8024089F8034089F8CE +:10082000044089F8054089F8066089F80770414658 +:1008300000F008F9002142460F464B460098C01CC4 +:1008400020F00300009012B10EE00120D4E703EB8A +:100850008106B062002005E0D6F828C04CF8207070 +:10086000401CC0B2A042F7D30098491C00EB8400A2 +:10087000C9B200900829E1D3401BBDE8F88310B548 +:10088000044603F071FD08B1102010BD2078854AA0 +:10089000618802EB800092780EE0836A53F8213081 +:1008A00043B14A1C6280A180806A50F82100A06098 +:1008B000002010BD491C89B28A42EED86180052013 +:1008C00010BD70B505460C46084603F04DFD08B155 +:1008D000102070BD082D01D3072070BD25700020A9 +:1008E000608070BD0EB56946FFF7EBFF00B1FFDF1A +:1008F0006846FFF7C4FF08B100200EBD01200EBD01 +:1009000010B50446082800D3FFDF6648005D10BD1F +:100910003EB5054600246946FFF7D3FF18B1FFDF57 +:1009200001E0641CE4B26846FFF7A9FF0028F8D094 +:100930002846FFF7E5FF001BC0B23EBD5949897844 +:10094000814201D9C0B27047FF2070472DE9F041C4 +:10095000544B062903D007291CD19D7900E00025BE +:1009600000244FF6FF7603EB810713F801C00AE07D +:100970006319D7F828E09BB25EF823E0BEF1000FC0 +:1009800004D0641CA4B2A445F2D8334603801846B0 +:10099000B34201D100201CE7BDE8F041EEE6A0F52E +:1009A0007F43FF3B01D0082901D300207047E5E6D3 +:1009B000A0F57F42FF3A0BD0082909D2394A937833 +:1009C000834205D902EB8101896A51F82000704702 +:1009D000002070472DE9F04104460D46A4F57F4103 +:1009E00043F20200FF3902D0082D01D30720F0E6C0 +:1009F0002C494FF000088A78A242F8D901EB85060D +:100A0000B26A52F82470002FF1D0274839462030BE +:100A100050F8252020469047B16A284641F82480A6 +:100A200000F007F802463946B068FFF727FE0020BD +:100A3000CFE61D49403131F810004FF6FC71C01C63 +:100A4000084070472DE9F843164E884605460024B5 +:100A50002868C01C20F0030028602046FFF7E9FF4B +:100A6000315D4843B8F1000F01D0002200E02A6850 +:100A70000146009232B100274FEA0D00FFF7B5FDA5 +:100A80001FB106E001270020F8E706EB8401009A79 +:100A90008A602968641C0844E4B22860082CD7D313 +:100AA000EBE60000500600204C47020070B50E46F1 +:100AB0001D46114600F0D4F804462946304600F0A1 +:100AC000D8F82044001D70BD2DE9F04190460D4638 +:100AD00004004FF0000610D00027E01C20F00300B7 +:100AE000A04200D0FFDFDDB141460020FFF77DFDD1 +:100AF0000C3000EB850617B112E00127EDE7614FDE +:100B000004F10C00A9003C602572606000EB8500D8 +:100B10002060606813F0EDFB41463868FFF765FD23 +:100B20003046BDE8F0812DE9FF4F564C804681B03C +:100B300020689A46934600B9FFDF2068027A424552 +:100B400003D9416851F8280020B143F2020005B0F2 +:100B5000BDE8F08F5146029800F082F886B2584600 +:100B60000E9900F086F885B27019001D87B22068D2 +:100B7000A14639460068FFF756FD04001FD0678084 +:100B800025802946201D0E9D07465A4601230095C3 +:100B9000FFF768F92088314638440123029ACDF8DE +:100BA00000A0FFF75FF92088C1193846FFF78AF9DE +:100BB000D9F800004168002041F82840C7E7042028 +:100BC000C5E770B52F4C0546206800B9FFDF2068E7 +:100BD000017AA9420ED9426852F8251051B100237A +:100BE00042F825304A880068FFF748FD2168002058 +:100BF0000A7A08E043F2020070BD4B6853F82030D7 +:100C000033B9401CC0B28242F7D80868FFF700FD34 +:100C1000002070BD70B51B4E05460024306800B939 +:100C2000FFDF3068017AA94204D9406850F82500F6 +:100C300000B1041D204670BD70B5124E054600245B +:100C4000306800B9FFDF3068017AA94206D94068F0 +:100C500050F8251011B131F8040B4418204670BD2E +:100C600010B50A460121FFF7F6F8C01C20F003007A +:100C700010BD10B50A460121FFF7EDF8C01C20F0A9 +:100C8000030010BD7000002070B50446C2F11005CD +:100C9000281913F08DFA15F0FF0108D0491EC9B2CA +:100CA000802060542046BDE8704013F000BB70BD4A +:100CB00030B505E05B1EDBB2CC5CD55C6C40C45447 +:100CC000002BF7D130BD10B5002409E00B78521E7F +:100CD00044EA430300F8013B11F8013BD2B2DC09BE +:100CE000002AF3D110BD2DE9F04389B01E46DDE99D +:100CF000107990460D00044622D002460846F94974 +:100D0000FDF77CFC102221463846FFF7DCFFE07B34 +:100D1000000606D5F34A3946102310320846FFF77D +:100D2000C7FF102239464846FFF7CDFFF87B000683 +:100D300006D5EC4A4946102310320846FFF7B8FFA3 +:100D40001021204613F0B3FA0DE0103EB6B208EBC6 +:100D50000601102322466846FFF7AAFF22462846CE +:100D60006946FDF74BFC102EEFD818D0F2B2414681 +:100D70006846FFF789FF10234A46694604A8FFF733 +:100D800097FF1023224604A96846FFF791FF2246E9 +:100D900028466946FDF732FC09B0BDE8F083102310 +:100DA0003A464146EAE770B59CB01E4605461346F2 +:100DB00020980C468DF80800202219460DF10900F4 +:100DC00013F0F6F9202221460DF1290013F0F0F975 +:100DD00017A913A8CDE90001412302AA31462846EC +:100DE000FFF781FF1CB070BD2DE9FF4F9FB014AE1F +:100DF000DDE92D5410AFBB49CDE900762023203129 +:100E00001AA8FFF770FF4FF000088DF808804FF028 +:100E100001098DF8099054F8010FCDF80A00A08857 +:100E2000ADF80E0014F8010C1022C0F340008DF84C +:100E3000100055F8010FCDF81100A888ADF8150085 +:100E400015F8010C2C99C0F340008DF8170006A886 +:100E5000824613F0ADF90AA883461022229913F0B6 +:100E6000A7F9A0483523083802AA40688DF83C80CD +:100E7000CDE900760E901AA91F98FFF734FF8DF880 +:100E800008808DF809902068CDF80A00A088ADF898 +:100E90000E0014F8010C1022C0F340008DF8100071 +:100EA0002868CDF81100A888ADF8150015F8010CD8 +:100EB0002C99C0F340008DF81700504613F078F9D4 +:100EC00058461022229913F073F9864835230838C2 +:100ED00002AA40688DF83C90CDE900760E901AA9E0 +:100EE0002098FFF700FF23B0BDE8F08FF0B59BB06E +:100EF0000C460546DDE922101E461746DDE9203284 +:100F0000D0F801C0CDF808C0B0F805C0ADF80CC0ED +:100F10000078C0F340008DF80E00D1F80100CDF844 +:100F20000F00B1F80500ADF8130008781946C0F3BA +:100F300040008DF815001088ADF8160090788DF8F7 +:100F400018000DF11900102213F032F90DF12900EB +:100F50001022314613F02CF90DF1390010223946D8 +:100F600013F026F917A913A8CDE90001412302AA1D +:100F700021462846FFF7B7FE1BB0F0BDF0B5A3B081 +:100F800017460D4604461E46102202A8289913F063 +:100F90000FF906A82022394613F00AF90EA82022DC +:100FA000294613F005F91EA91AA8CDE9000150231E +:100FB00002AA314616A8FFF796FE1698206023B0C5 +:100FC000F0BDF0B589B00446DDE90E070D4639786D +:100FD000109EC1F340018DF8001031789446C1F3A2 +:100FE00040018DF801101968CDF802109988ADF80C +:100FF000061099798DF808100168CDF809108188DC +:10100000ADF80D1080798DF80F0010236A46614607 +:1010100004A8FFF74DFE2246284604A9FDF7EEFA84 +:10102000D6F801000090B6F80500ADF80400D7F836 +:101030000100CDF80600B7F80500ADF80A00002061 +:10104000039010236A46214604A8FFF731FE22468A +:10105000284604A9FDF7D2FA09B0F0BD1FB51C68F7 +:1010600000945B68019313680293526803920246EE +:1010700008466946FDF7C2FA1FBD10B588B00446A0 +:10108000106804905068059000200690079008466C +:101090006A4604A9FDF7B2FABDF80000208008B046 +:1010A00010BD1FB51288ADF800201A88ADF80220D7 +:1010B0000022019202920392024608466946FDF719 +:1010C0009DFA1FBD7FB5074B14460546083B9A1C89 +:1010D0006846FFF7E6FF224669462846FFF7CDFF40 +:1010E0007FBD0000A447020070B5044600780E469C +:1010F000012813D0052802D0092813D10EE0A068DA +:1011000061690578042003F0BDF8052D0AD0782325 +:1011100000220420616903F00BF803E004206169F8 +:1011200003F0B0F831462046BDE8704001F086B8C3 +:1011300010B500F12D02C3799478411D64F00304C9 +:101140002340C371DB070DD04B79547923404B7199 +:101150000B79127913400B718278C9788A4200D9D1 +:10116000817010BD00224A710A71F5E741780129AA +:1011700000D00C21017070472DE9F04F93B04FF073 +:10118000000B0C690D468DF820B0097801260C2063 +:1011900017464FF00D084FF0110A4FF008091B29B0 +:1011A00075D2DFE811F01B00C30206031E035D03C6 +:1011B0007003A203B703F803190461049304A004A5 +:1011C000EC042A05340552055D05EE0531063406AA +:1011D00063067F06F9061D07E606EB0614B12078C4 +:1011E0001D282AD0D5F808805FEA08004FD00120DA +:1011F0008DF82000686A02220D908DF824200A20C4 +:101200008DF82500A8690A90A8880028EED098F8E3 +:10121000001091B10F2910D27ED2DFE801F07D13CA +:1012200049DEFEFDFCFBFAF938089CF8F7000228BD +:101230002DD124B120780C2801D00026EFE38DF8C1 +:101240002020CBE10420696A03F01CF8A888072855 +:10125000EED1204600F0EDFF022809D0204600F034 +:10126000E8FF032807D9204600F0E3FF072802D251 +:101270000120207004E0002CB8D020780128D7D1BC +:1012800098F80400C11F0A2902D30A2061E0C4E1D2 +:10129000A070D8F80010E162B8F80410218698F820 +:1012A000060084F83200012028700320207044E0FA +:1012B0000728BDD1002C99D020780D28B8D198F8F6 +:1012C000031094F82F20C1F3C000C2F3C0021042F3 +:1012D00001D0062000E00720890707D198F8051003 +:1012E0000142D2D198F806100142CED194F83120B3 +:1012F00098F8051020EA02021142C6D194F8322073 +:1013000098F8061090430142BFD198F80400C11F1D +:101310000A29BAD2617D00E006E281427ED8D8F87F +:1013200000106160B8F80410218198F80600A072DE +:10133000012028700E20207003208DF82000686A9C +:101340000D9004F12D000990601D0A900F300B9054 +:1013500022E12875FDE3412891D1204600F069FF84 +:10136000042802D1E078C00704D1204600F061FFD4 +:101370000F2884D1A88CD5F80C8080B24FF0400B98 +:10138000E669FFF747FC324641465B464E46CDF8DC +:101390000090FFF732F80B208DF82000686A0D905E +:1013A000E0690990002108A8FFF79EFE2078042834 +:1013B00006D0A07D58B1012809D003280AD049E3FE +:1013C00005202070032028708DF82060CDE184F87E +:1013D00000A032E712202070E9E11128BCD120469C +:1013E00000F027FF042802D1E078C00719D020467A +:1013F00000F01FFF062805D1E078C00711D1A07DBD +:1014000002280ED0204600F014FF08E0CAE081E078 +:101410006FE14EE121E101E1E7E017E0ADE11128E4 +:101420009AD1102208F1010104F13C0012F0C0FE33 +:10143000607801287ED012202070E078C00760D04C +:10144000A07D0028C8D00128C6D05AE0112890D12C +:10145000204600F0EEFE082804D0204600F0E9FE09 +:10146000132886D104F16C00102208F10101064610 +:1014700012F09EFE207808280DD014202070E1780C +:10148000C8070DD0A07D02280AD06278022A04D0B5 +:101490000328A1D035E00920F0E708B1012837D1B1 +:1014A000C80713D0A07D02281DD000200090D4E9E9 +:1014B000062133460EA8FFF776FC10220EA904F190 +:1014C0003C0012F049FEC8B1042042E7D4E90912F9 +:1014D000201D8DE8070004F12C0332460EA8616B35 +:1014E000FFF76FFDE9E7606BC1F34401491E006837 +:1014F000C84000F0010040F08000D7E720780928BC +:1015000006D185F800908DF8209033E32870ECE345 +:101510000920FBE711289AD1204600F08AFE0A280C +:1015200002D1E078C00704D1204600F082FE1528E1 +:101530008DD100E08DE104F13C00102208F10101A1 +:10154000064612F035FE20780A2816D016202070A4 +:10155000D4E90932606B611D8DE80F0004F15C0372 +:1015600004F16C0247310EA8FFF7C0FC10220EA94F +:10157000304612F0F1FD18B1F5E20B20207071E257 +:101580002046FFF7D5FDA078216A0A18C0F11001A6 +:10159000104612F08CFE23E3394608A8FFF7A4FD9D +:1015A00006463BE20228B6D1204600F042FE04285F +:1015B00004D3204600F03DFE082809D3204600F061 +:1015C00038FE0E2829D3204600F033FE122824D2FC +:1015D000A07D02289FD10E208DF82000686A0D9012 +:1015E00098F801008DF82400F0E3022893D12046FA +:1015F00000F01FFE002810D0204600F01AFE01283F +:10160000F9D0204600F015FE0C28F4D004208DF807 +:10161000240098F801008DF825005EE21128FCD125 +:10162000002CFAD020781728F7D16178606A022957 +:1016300011D0002101EB4101182606EBC101102257 +:10164000405808F1010112F0B3FD0420696A00F06E +:10165000E3FD2670F1E50121ECE70B28DDD1002C3C +:10166000DBD020781828D8D16078616A02281CD095 +:101670005FF0000000EB4002102000EBC2000958B0 +:10168000B8F8010008806078616A02280FD0002055 +:1016900000EB4002142000EBC2000958404650F80D +:1016A000032F0A604068486039E00120E2E701202A +:1016B000EEE71128B1D1002CAFD020781928ACD199 +:1016C0006178606A022912D05FF0000101EB4101EC +:1016D0001C2202EBC1011022405808F1010112F056 +:1016E00067FD0420696A00F097FD1A20B6E0012129 +:1016F000ECE7082891D1002C8FD020781A288CD1C3 +:10170000606A98F80120017862F347010170616A0C +:10171000D8F8022041F8012FB8F80600888004208C +:10172000696A00F079FD8EE2072012E63878012818 +:1017300094D1182204F11400796812F07EFDE0794A +:10174000C10894F82F0001EAD001E07861F30000AD +:10175000E070217D002974D12178032909D0C007C8 +:1017600025D0032028708DF82090686A0D904120C4 +:1017700004E3607DA178884201D90620E9E50226CC +:101780002671E179204621F0E001E171617A21F0D2 +:10179000F0016172A17A21F0F001A172FFF7C8FC9B +:1017A0002E708DF82090686A0D900720E6E20420E4 +:1017B000ACE6387805289DD18DF82000686A0D9038 +:1017C000B8680A900720ADF824000A988DF830B068 +:1017D0006168016021898180A17A81710420207073 +:1017E000F4E23978052985D18DF82010696A0D91C8 +:1017F000391D09AE0EC986E80E004121ADF824104E +:101800008DF830B01070A88CD7F80C8080B24026CC +:10181000A769FFF711FA41463A463346C846CDF864 +:101820000090FEF71EFE002108A8FFF75DFCE0789F +:1018300020F03E00801CE0702078052802D00F20A8 +:101840000CE049E1A07D20B1012802D0032802D09C +:1018500002E10720BFE584F80080EEE42070ECE4AC +:10186000102104F15C0002F034FA606BB0BBA07D83 +:1018700018B1012801D00520FDE006202870F748A6 +:101880006063A063BEE23878022894D1387908B149 +:101890002875B3E3A07D022802D0032805D022E0FA +:1018A000B8680028F5D060631CE06078012806D095 +:1018B000A07994F82E10012805D0E84806E0A17917 +:1018C00094F82E00F7E7B8680028E2D06063E0786B +:1018D000C00701D0012902D0E04803E003E0F86826 +:1018E0000028D6D0A063062010E68DF82090696A03 +:1018F0000D91E1784846C90709D06178022903D1E2 +:10190000A17D29B1012903D0A17D032900D00720A1 +:10191000287031E138780528BBD1207807281ED0FF +:1019200084F800A005208DF82000686A0D90B86842 +:101930000A90ADF824A08DF830B003210170E17851 +:10194000CA070FD0A27D022A1AD000210091D4E943 +:10195000061204F15C03401CFFF725FA67E384F8E4 +:101960000090DFE7D4E90923211D8DE80E0004F182 +:101970002C0304F15C02401C616BFFF722FB56E371 +:10198000626BC1F34401491E1268CA4002F00101B2 +:1019900041F08001DAE738780528BDD18DF82000C4 +:1019A000686A0D90B8680A90ADF824A08DF830B040 +:1019B000042100F8011B102204F15C0112F0F8FB75 +:1019C000002108A8FFF790FB2078092801D01320F8 +:1019D00044E70A2020709BE5E078C10742D0A17D52 +:1019E000012902D0022927D038E0617808A801290E +:1019F00016D004F16C010091D4E9061204F15C03E5 +:101A0000001DFFF7BBFA0A20287003268DF82080FE +:101A1000686A0D90002108A8FFF766FBDDE2C3E2CB +:101A200004F15C010091D4E9062104F16C03001D6E +:101A3000FFF7A4FA0026E9E7C0F3440114290DD208 +:101A40004FF0006101EBB0104FEAB060E0706078D9 +:101A5000012801D01020BEE40620FFE660780128AE +:101A60003FF4B7AC0A2051E5E178C90708D0A17D61 +:101A7000012903D10B20287004202FE028702DE0CD +:101A80000E2028706078616B012817D004F15C0388 +:101A900004F16C020EA8FFF7E1FA2046FFF748FBBD +:101AA000A0780EAEC0F11001304412F000FC062008 +:101AB0008DF82000686A09960D909AE004F16C0395 +:101AC00004F15C020EA8FFF7C9FAE9E739780229A8 +:101AD00003D139790029D1D029758FE28DF8200002 +:101AE000686A0D9058E538780728F6D1D4E90921BD +:101AF0006078012808D004F16C00CDE90002029161 +:101B000005D104F16C0304E004F15C00F5E704F195 +:101B10005C0304F14C007A680646216AFFF764F919 +:101B20006078012821D1A078216A0A18C0F110013B +:101B3000104612F0BCFBD4E90923606B04F12D01BF +:101B40008DE80F0004F15C0304F16C0231460EA82D +:101B500000E055E2FFF7CAF910220EA904F13C009B +:101B600012F0FAFA08B10B20AFE485F8008000BF4C +:101B70008DF82090686A0D908DF824A00CE53878D7 +:101B80000528AAD18DF82000686A0D90B8680A90DF +:101B9000ADF824A08DF830B080F80080617801297C +:101BA0001AD0D4E9093204F12D01A66B03920096F4 +:101BB000CDE9011304F16C0304F15C0204F14C0162 +:101BC000401CFFF793F9002108A8FFF78DFA607811 +:101BD000012805D0152041E6D4E90923611DE4E779 +:101BE0000E20287006208DF82000686ACDF824B0F9 +:101BF0000D90A0788DF82800CEE438780328C0D165 +:101C0000E079C00770D00F202870072066E7387889 +:101C100004286BD11422391D04F1140012F00DFBBD +:101C2000616A208CA1F80900616AA078C871E17925 +:101C3000626A01F003011172616A627A0A73616A71 +:101C4000A07A81F82400162060E485F800A08DF8C1 +:101C50002090696A50460D9190E00000A447020070 +:101C60003878052842D1B868A8616178606A02298D +:101C700001D0012100E0002101EB4101142606EB17 +:101C8000C1014058082102F024F86178606A0229F5 +:101C900001D0012100E0002101EB410106EBC1016F +:101CA000425802A8E169FFF70DFA6078626A0228DB +:101CB00001D0012000E0002000EB4001102000EBEB +:101CC000C1000223105802A90932FEF7F1FF626A2F +:101CD000FD4B0EA80932A169FFF7E3F96178606A4C +:101CE000022904D0012103E042E18BE0BDE00021A4 +:101CF00001EB4101182606EBC101A27840580EA95C +:101D000012F056FA6178606A022901D0012100E0E0 +:101D1000002101EB410106EBC1014058A1780844C4 +:101D2000C1F1100112F0C3FA05208DF82000686A95 +:101D30000D90A8690A90ADF824A08DF830B0062166 +:101D400001706278616A022A01D0012200E000225B +:101D500002EB420206EBC202401C8958102212F02C +:101D600027FA002108A8FFF7BFF91220C5F818B01C +:101D700028708DF82090686A0D900B208DF8240053 +:101D80000AE43878052870D18DF82000686A0D9033 +:101D9000B8680A900B20ADF824000A98072101705A +:101DA0006178626A022901D0012100E0002101EB83 +:101DB0004103102101EBC30151580988A0F801101B +:101DC0006178626A022902D0012101E02FE100213D +:101DD00001EB4103142101EBC30151580A6840F89B +:101DE000032F4968416059E01920287001208DF8BF +:101DF000300077E6162028708DF830B0002108A852 +:101E0000FFF772F9032617E114202870B0E638783E +:101E100005282AD18DF82000686A0D90B8680A90CC +:101E2000ADF824A08DF830B080F800906278616A37 +:101E30004E46022A01D0012200E0002202EB4202BB +:101E40001C2303EBC202401C8958102212F0B0F987 +:101E5000002108A8FFF748F9152028708DF82060A8 +:101E6000686A0D908DF824603CE680E0387805289B +:101E70007DD18DF82000686A0D90B8680A90ADF8A1 +:101E800024900921017061690978490841706169EC +:101E900051F8012FC0F802208988C18020781C28C1 +:101EA000A8D1A1E7E078C00702D04FF0060C01E00E +:101EB0004FF0070C607802280AD04FF0000000BFF6 +:101EC00000EB040101F1090105D04FF0010004E02D +:101ED0004FF00100F4E74FF000000B78204413EAC4 +:101EE0000C030B7010F8092F02EA0C02027004D1E7 +:101EF0004FF01B0C84F800C0D2B394F801C0BCF1C1 +:101F0000010F00D09BB990F800C0E0465FEACC7C9E +:101F100004D028F001060670102606E05FEA887CEF +:101F200005D528F00206067013262E70032694F8B5 +:101F300001C0BCF1020F00D092B991F800C05FEA75 +:101F4000CC7804D02CF001060E70172106E05FEA71 +:101F50008C7805D52CF002060E7019212170002610 +:101F60000078D0BBCAB3C3BB1C20207035E012E0A0 +:101F700002E03878062841D11A2019E42078012897 +:101F80003CD00C283AD02046FFF7F0F809208DF815 +:101F90002000686A0D9031E03878052805D00620C9 +:101FA000387003261820287046E005218DF820108F +:101FB000686A0D90B8680A900220ADF824000120EC +:101FC0008DF830000A980170297D4170394608A8C3 +:101FD000FFF78AF8064618202870012E0ED02BE055 +:101FE00001208DF82000686A0D9003208DF82400F0 +:101FF000287D8DF8250085F814B012E0287D80B189 +:102000001D202070172028708DF82090686A0D9090 +:1020100002208DF82400394608A8FFF765F8064627 +:102020000AE00CB1FE2020709DF8200020B10021B4 +:1020300008A8FFF759F810E413B03046BDE8F08F58 +:102040002DE9F04387B00C464E6900218DF804104D +:1020500001202578034602274FF007094FF0050CB1 +:1020600085B1012D53D0022D39D1FE2030708DF86D +:102070000030606A059003208DF80400207E8DF802 +:10208000050063E02179012925D002292DD00329FB +:1020900028D0042923D1B17D022920D131780D1F08 +:1020A000042D04D30A3D032D01D31D2917D1218905 +:1020B000022914D38DF80470237020899DF8041030 +:1020C00088421BD2082001E09C4702008DF80000E6 +:1020D000606A059057E070780128EBD0052007B0C2 +:1020E000BDE8F0831D203070E4E771780229F5D156 +:1020F00031780C29F3D18DF80490DDE7083402F82B +:1021000004CB94E80B0082E80B000320E7E7157886 +:10211000052DE4D18DF800C0656A05959568029596 +:102120008DF8101094F80480B8F1010F13D0B8F1B5 +:10213000020F2DD0B8F1030F1CD0B8F1040FCED18F +:10214000ADF804700E202870207E6870002168466B +:10215000FEF7CAFF0CE0ADF804700B202870207E5B +:10216000002100F01F0068706846FEF7BDFF377061 +:102170000020B4E7ADF804708DF8103085F800C089 +:10218000207E6870277011466846FEF7ADFFA6E70F +:10219000ADF804902B70207F6870607F00F0010024 +:1021A000A870A07F00F01F00E870E27F2A71C007CE +:1021B0001CD094F8200000F00700687194F821000A +:1021C00000F00700A87100216846FEF78DFF28681F +:1021D000F062A8883086A87986F83200A069407835 +:1021E00070752879B0700D203070C1E7A9716971E0 +:1021F000E9E700B587B004280CD101208DF8000074 +:102200008DF80400002005918DF805000146684610 +:10221000FEF76AFF07B000BD70B50C46054602F038 +:1022200031F821462846BDE870407823002201F0AD +:102230007FBF08B1007870470C20704770B50C0064 +:1022400005784FF000010CD021702146F3F701F81A +:1022500069482178405D884201D1032070BD022089 +:1022600070BDF2F7F6FF002070BD0279012A05D09B +:1022700000220A704B78012B02D003E00420704743 +:102280000A758A6102799300521C0271C1500320C1 +:102290007047F0B587B00F4605460124287905EB55 +:1022A000800050F8046C7078411E02290AD252490D +:1022B0003A46083901EB8000314650F8043C284684 +:1022C000984704460CB1012C11D12879401E10F01A +:1022D000FF00287101D00324E0E70A208DF80000F8 +:1022E000706A0590002101966846FFF7A7FF032C4E +:1022F000D4D007B02046F0BD70B515460A46044656 +:1023000029461046FFF7C5FF064674B12078FE281F +:102310000BD1207C30B100202870294604F10C003C +:10232000FFF7B7FF2046FEF721FF304670BD70472C +:1023300070B50E4604467C2111F0DBFF0225012E0C +:1023400003D0022E04D0052070BD0120607000E093 +:1023500065702046FEF70AFFA575002070BD28B104 +:10236000027C1AB10A4600F10C01C5E70120704752 +:1023700010B5044686B0042001F084FF2078FE28C2 +:1023800006D000208DF8000069462046FFF7E7FFE1 +:1023900006B010BD7CB50E4600218DF804104178C2 +:1023A000012903D0022903D0002405E0046900E0DC +:1023B00044690CB1217C89B16D4601462846FFF77E +:1023C00054FF032809D1324629462046FFF794FFDF +:1023D0009DF80410002900D004207CBD04F10C05F8 +:1023E000EBE730B40C460146034A204630BC034BB1 +:1023F0000C3AFEF756BE0000E04702009C47020080 +:1024000070B50D46040011D085B12101284611F0A8 +:102410004EFF10224E49284611F0CAFE4C480121B9 +:102420000838018044804560002070BD012070BDE7 +:1024300070B5474E00240546083E10E07068AA7B40 +:1024400000EB0410817B914208D1C17BEA7B914271 +:1024500004D10C22294611F07FFE30B1641C308873 +:102460008442EBDB4FF0FF3070BD204670BD70B58D +:102470000D46060006D02DB1FFF7DAFF002803DB7A +:10248000401C14E0102070BD314C083C208862884C +:10249000411C914201D9042070BD6168102201EBFA +:1024A0000010314611F084FE2088401C20802870E6 +:1024B000002070BD70B514460D0018D0BCB10021CD +:1024C000A170022802D0102811D105E0288870B12F +:1024D0000121A170108008E02846FFF7A9FF00281D +:1024E00005DB401CA070A8892080002070BD012061 +:1024F00070BD70B5054614460E000BD0002030703C +:10250000A878012808D005D91149A1F108010A8845 +:1025100090420AD9012070BD24B128782070288803 +:10252000000A5070022008700FE064B14968102260 +:1025300001EB00112046103911F03AFE2878207383 +:102540002888000A607310203070002070BD0000E1 +:102550007C0000202DE9F04190460C4607460025FE +:10256000FE48072F00EB881607D2DFE807F00707C1 +:10257000070704040400012500E0FFDF06F81470DB +:10258000002D13D0F548803000EB880191F827002A +:10259000202803D006EB4000447001E081F826407B +:1025A00006EB44022020507081F82740BDE8F081FE +:1025B000F0B51F4614460E460546202A00D1FFDF1F +:1025C000E649E648803100EB871C0CEB440001EB48 +:1025D0008702202E07D00CEB460140784B784870DC +:1025E000184620210AE092F82530407882F825002C +:1025F000F6E701460CEB410005704078A142F8D1A6 +:1026000092F82740202C03D00CEB4404637001E0C7 +:1026100082F826300CEB41042023637082F82710E7 +:10262000F0BD30B50D46CE4B44190022181A72EB9E +:10263000020100D2FFDFCB48854200DDFFDFC94841 +:102640004042854200DAFFDFC548401C844207DA79 +:10265000002C01DB204630BDC148401C201830BD95 +:10266000BF48C043FAE710B504460168407ABE4A45 +:1026700052F82020114450B10220084420F07F403D +:10268000F0F779FA94F90810BDE81040C9E7042082 +:10269000F3E72DE9F047B14E803696F82D50DFF87C +:1026A000BC9206EB850090F8264034E009EB8517D4 +:1026B0004FF0070817F81400012806D004282ED080 +:1026C00005282ED0062800D0FFDF01F0E3F80146F0 +:1026D00007EB4400427806EB850080F8262090F84E +:1026E0002720A24202D1202280F82720084601F0AC +:1026F000DCF82A4621460120FFF72CFF9B48414683 +:1027000000EB041002682046904796F82D5006EB27 +:10271000850090F82640202CC8D1BDE8F087022023 +:1027200000E003208046D0E710B58C4C2021803497 +:1027300084F8251084F8261084F82710002084F8E7 +:10274000280084F82D0084F82E10411EA16044F862 +:10275000100B2074607420736073A0738449E07759 +:1027600020750870487000217C4A103C02F8110066 +:10277000491CC9B22029F9D30120F0F7EAF800205A +:10278000F0F7E7F8012084F82200F9F7D1FA794848 +:10279000F9F7DDFA764CA41E20707748F9F7D7FADE +:1027A0006070BDE81040F0F761B810B5F0F783F83D +:1027B0006F4CA41E2078F9F7E3FA6078F9F7E0FA95 +:1027C000BDE8104001F09EB8202070472DE9F34F7E +:1027D000624E0025803606EB810A89B09AF8250002 +:1027E000202822D0691E02916049009501EB00105B +:1027F0008146D0E90112C0680391CDE90420B08B75 +:10280000ADF81C00B07F8DF81E009DF81500C8B112 +:102810000227554951F820400399E219114421F04B +:102820007F41019184B102210FE00120F0F791F87E +:102830000020F0F78EF8F0F75CF801F063F886F806 +:102840002F50A0E00427E4E700218DF8181002289B +:1028500001D0012820D10398391901440998081A98 +:102860009DF81C1020F07F4001B1022133318142DC +:102870000BD203208DF815000398C4F13201401AE1 +:1028800020F07F40322403900CE096F8240018B921 +:10289000F0F782FB00284CD0322C03D214B101F0A7 +:1028A00025F801E001F02EF8314A107818B393466C +:1028B0005278039B121B00219DF81840984601286E +:1028C0001AD0032818D000208DF81E00002A04DD3D +:1028D000981A039001208DF818009DF81C0000B193 +:1028E00002210398254A20F07F40039003AB09980A +:1028F00001F014F810B110E00120E5E79DF81D008B +:1029000018B99BF80000032812D08DF81C50CDF8A0 +:102910000C808DF818408DF81E509DF8180058B1A5 +:1029200003980123C11900221846F0F765F806E064 +:1029300000200BB0BDE8F08F0120F0F70AF899F9FC +:102940000C20012300200199F0F756F8012086F8A9 +:102950002F008AF828502022694611E098080020AC +:10296000FF7F841E0020A107F04702009806002088 +:102970008E000020DF3F010093260100FFFF3F0093 +:10298000F94811F05AFC0120D3E72DE9F05FDFF898 +:10299000D883064608EB860090F82550202D1FD0DE +:1029A000A8F180002C4600EB8617A0F50079DFF82F +:1029B000BCB305E0A24607EB4A004478202C0AD0BD +:1029C000F0F766F809EB04135A4601211B1D00F0CD +:1029D000A5FF0028EED0AC4202D0334652461EE09E +:1029E000E34808B1AFF30080F0F752F898F82F20D1 +:1029F0006AB1D8F80C20411C891A0902CA1701EBE8 +:102A000012610912002902DD0020BDE8F09F314665 +:102A1000FFF7DCFE08B10120F7E733462A46202104 +:102A20000420FFF7C5FDEFE72DE9F041CE4C256905 +:102A3000F0F72EF8401B0002C11700EB11600012E6 +:102A400000D4FFDF94F8220000B1FFDF012784F8F3 +:102A5000227094F82E00202800D1FFDF94F82E6019 +:102A6000202084F82E00002584F82F5084F8205070 +:102A700084F82150BF4825600078022833D003280D +:102A800031D000202077A068401C05D04FF0FF30E7 +:102A9000A0600120EFF75DFF0020EFF75AFFF0F78D +:102AA00058F8F0F750F8EFF724FF10F0D7FDB248D0 +:102AB000056005604FF0E0214FF40040B846C1F8D2 +:102AC0008002F0F7E0F894F82D703846FFF75DFFCC +:102AD0000028FAD0A448803800EB871010F81600C0 +:102AE000022802D006E00120CCE73A463146062013 +:102AF000FFF730FD84F8238004EB870090F8260070 +:102B0000202804D09B48801E4078F9F73FF9207FA9 +:102B1000002803D0F0F70DF82577657746E50146E4 +:102B2000914810B590F82D200024803800EB8210D9 +:102B300010F814302BB1641CE4B2202CF8D3202000 +:102B400010BD8E4800EB0410016021460120FFF704 +:102B500001FD204610BD10B5012801D0032800D189 +:102B600071B3814A92F82D307F4C0022803C04EBF7 +:102B7000831300BF13F812400CB1082010BD521C83 +:102B8000D2B2202AF6D37B4A48B1022807D00729BF +:102B900016D2DFE801F01506080A0C0E100000211D +:102BA0000AE01B2108E03A2106E0582104E07721E1 +:102BB00002E0962100E0B52151701070002010BD98 +:102BC000072010BD6B4810B54078EFF7D4FF80B2F6 +:102BD00010BD10B5202811D2634991F82D30A1F114 +:102BE000800202EB831414F810303BB191F82D30C1 +:102BF00002EB831212F81020012A01D0002010BD30 +:102C000091F82D2001460020FFF7A4FC012010BD03 +:102C100010B5EFF73DFFBDE81040EFF7ACBF2DE971 +:102C2000F0410E46504F01782025803F0C4607EBBF +:102C3000831303E0254603EB45046478944202D0F5 +:102C4000202CF7D108E0202C06D0A14206D103EBBE +:102C500041014978017007E00020A7E403EB44003C +:102C600003EB450140784870454F7EB127B1002104 +:102C700040F2DA30AFF300803078A04206D127B1BD +:102C8000002140F2DD30AFF30080357027B1002124 +:102C900040F2E230AFF30080012087E410B54268D3 +:102CA0000B689A1A1202D41702EB1462121216D48D +:102CB000497A91B1427A82B9324A006852F82110B9 +:102CC000126819441044001D891C081A0002C1171B +:102CD00000EB11600012322801DB012010BD002042 +:102CE00010BD2DE9F04781461F48244E00EB8100BE +:102CF000984690F825402020107006F50070154683 +:102D000000EB81170BE000BF06EB04104946001DE5 +:102D1000FFF7C4FF28B107EB44002C704478202C47 +:102D2000F2D1297888F8001013E000BF06EB0415F3 +:102D3000291D4846FFF7B2FF68B988F80040A97B13 +:102D400099F80A00814201D80020E6E407EB44002C +:102D50004478202CEAD10120DFE42DE9FC410E4625 +:102D600007460024054D18E018090020FFFF3F002A +:102D7000000000008E00002000F5004098060020B2 +:102D800000000000F04702009DF8000005EB001075 +:102D90008168384600F0D6FD01246B4601AA314611 +:102DA0003846FFF79EFF0028EED02046BDE8FC81A4 +:102DB00070B50446FF480125A54300EB841100EBE4 +:102DC0008510402211F0F4F9FB4E26B1002140F2AB +:102DD0005C40AFF30080F748803000EB850100EBEA +:102DE0008400D0F82500C1F8250026B100214FF459 +:102DF0008C60AFF30080284670BD2DE9FC4184460D +:102E0000EC481546089C00EB85170E4617F8140091 +:102E1000012803D0022801D00020C7E70B46E74A6B +:102E20000121604600F07AFDA8B101AB6A4629464F +:102E30003046FFF756FF70B1DE489DF804209DF83C +:102E40000010803000EB85068A4208D02B46052012 +:102E5000FFF7AEFB0BE02A462146042014E02029B0 +:102E600003D007EB4100407801E096F8250007EB1E +:102E7000440148709DF80000202809D007EB40006D +:102E800044702A4621460320FFF764FB01208DE7AA +:102E900006F8254F0120F070F3E7C94901EB001057 +:102EA000001DFFF7E0BB7CB51D46134604460E46E9 +:102EB00000F1080221461846EFF76AFE94F908006F +:102EC0000F2804DD1F3820722068401C206096B156 +:102ED0000220BC4951F82610461820686946801B1C +:102EE00020F07F40206094F908002844C01C1F286F +:102EF00003DA012009E00420EBE701AAEFF748FE1E +:102F00009DF8040010B10098401C009000992068C2 +:102F100031440844C01C20F07F4060607CBD2DE936 +:102F2000FE430C46064609786079907220799846EF +:102F30001546507241B19F48803090F82E102029DC +:102F40000AD00069401D0BE0D4E90223217903B0C7 +:102F50002846BDE8F043A6E79B484178701D084429 +:102F600020F07F47217900222846A368FFF79BFFC6 +:102F70003946284600F0E6FCD4E902322179684659 +:102F8000FFF791FF41462846019CFFF7E6FE2B46DE +:102F900022460021304600F0C1FC002803D1314612 +:102FA000284600F0CFFCBDE8FE832DE9FE4F8146A8 +:102FB00000F084FC30B1002799F8000020B1002017 +:102FC000BDE8FE8F0127F7E77A4D7B4C4FF0000AF2 +:102FD000803524B1002140F2D340AFF3008095F852 +:102FE0002D8085F823A0002624B100214FF49B609A +:102FF000AFF300801FB94046FFF7DAFE804624B1E8 +:1030000000214FF49C60AFF30080EFF741FD434691 +:103010006A464946FFF783FF24B1002140F2E640AB +:10302000AFF3008095F82E0020280CD02969009875 +:10303000401A0002C21700EB1260001203D5684666 +:1030400000F080FC012624B100214FF49E60AFF314 +:10305000008095F823000028BBD124B1002140F264 +:10306000F640AFF30080EFF713FD6B46534A0021A3 +:1030700000F054FC0028A3D027B941466846FFF76A +:103080006CFE064326B16846FFF7EDFAC9F8080062 +:1030900024B1002140F20950AFF3008001208FE7F6 +:1030A0002DE9FF5F8A46814600F008FC414C8034E0 +:1030B00010B39AF80000002710B1012800D0FFDFFC +:1030C0003D4D25B1002140F27F50AFF3008001203B +:1030D000A84600905FEA080604D0002140F287501D +:1030E000AFF30080009800F0E0FB94F82D50002032 +:1030F00084F8230067B119E094F82E0001272028F6 +:1031000000D1FFDF9AF800000028D9D0FFDFD7E711 +:103110002846FFF74DFE054626B1002140F29150AA +:10312000AFF3008094F823000028D3D126B100210A +:1031300040F29B50AFF30080EFF7AAFC83462B468A +:1031400001AA5146FFF7EBFE5FEA060804D0002112 +:1031500040F2A250AFF300803B462A4601A95846F0 +:10316000CDF80090FFF749FE064604EB850090F885 +:1031700028B0B8F1000F04D0002140F2A950AFF3FD +:10318000008000F087FB0090B8F1000F04D0002110 +:1031900040F2AF50AFF3008094F82300002899D19B +:1031A000B8F1000F04D0002140F2B750AFF3008017 +:1031B00003490BE09808002000000000FFFF3F00DB +:1031C00098060020F04702008E00002001EB091055 +:1031D0000DF1040C00F104009CE80E0080E80E00E4 +:1031E0004EB35FEA080604D0002140F2C450AFF3AA +:1031F00000803BEA070012D094F82E0020280ED160 +:1032000026B1002140F2C950AFF300802846FFF7F5 +:10321000BCFB20B99AF80000D8B3012849D0B8F116 +:10322000000F04D0002140F2E650AFF300802846A2 +:1032300000F029FB01265FEA080504D0002140F2D6 +:10324000EF50AFF30080009800F02FFB25B1002174 +:1032500040F2F350AFF300808EB194F82D0004EBF0 +:10326000800090F82600202809D025B1002140F2E6 +:10327000FA50AFF30080F9484078F8F787FD25B1A0 +:10328000002140F2FF50AFF3008004B03046BDE8AB +:10329000F09FFFE7B8F1000F04D0002140F2D150B9 +:1032A000AFF3008094F82D2049460420FFF752F92F +:1032B000C0E7002E3FF40EAF002140F2DC50AFF328 +:1032C000008007E72DE9F84FE54D814695F82D0080 +:1032D0004FF00008E34C4FF0010B474624B10021AA +:1032E00040F20D60AFF30080584600F0DEFA85F83A +:1032F000237024B1002140F21260AFF3008095F8F2 +:103300002D00FFF755FD064695F8230028B1002C47 +:10331000E4D000214FF4C3604BE024B1002140F21F +:103320001C60AFF30080CE48803800EB861111F8A6 +:103330001900032856D1334605EB830A4A469AF80A +:103340002500904201D1012000E0002000900AF108 +:1033500025000021FFF763FC01460098014203D0DD +:1033600001228AF82820AF77E1B324B1002140F28E +:103370002160AFF30080324649460120FFF7EAF8AA +:103380009AF828A024B1002140F22C60AFF300800D +:1033900000F080FA834624B1002140F23160AFF39F +:1033A000008095F8230038B1002C97D0002140F21E +:1033B0003560AFF3008091E7BAF1000F07D095F8C0 +:1033C0002E00202803D13046FFF7DFFAE0B124B108 +:1033D000002140F24960AFF30080304600F053FA1C +:1033E0004FF0010824B1002140F25260AFF3008099 +:1033F000584600F05AFA24B1002140F25660AFF36B +:1034000000804046BDE8F88F002CF1D0002140F24A +:103410004460AFF30080E6E70020EFF773BA0120C5 +:10342000EFF770BA8D48007870472DE9F0418C4C69 +:1034300094F82E0020281FD194F82D6004EB860705 +:1034400097F82550202D00D1FFDF8549803901EB09 +:10345000861000EB4500407807F8250F0120F87032 +:1034600084F82300294684F82E5032460220223464 +:10347000FFF770F8002020700FE42DE9F0417A4E3C +:10348000774C012538B1012821D0022879D00328B2 +:103490007DD0FFDFF0E700F029FAFFF7C6FF207EBE +:1034A00000B1FFDF84F821500020EFF752FAA16845 +:1034B000481C04D0012300221846EFF79DFA14F8A7 +:1034C0002E0F217806EB01110A68012154E0FFF765 +:1034D000ACFF0120EFF73DFA94F8210050B1A0684D +:1034E000401C07D014F82E0F217806EB01110A6852 +:1034F000062141E0207EDFF86481002708F1020800 +:10350000012803D002281ED0FFDFB5E7A777EFF729 +:1035100010FB98F80000032801D165772577607DBE +:10352000524951F8200094F8201051B948B161680F +:103530000123091A00221846EFF75EFA02202076CE +:103540009AE7277698E784F8205000F0CFF9A07F1B +:1035500050B198F8010061680123091A0022184649 +:10356000EFF74AFA257600E0277614F82E0F217837 +:1035700006EB01110A680021BDE8F041104700E0A8 +:1035800005E036480078BDE8F041F8F7FFBBFFF7EB +:103590004CFF14F82E0F217806EB01110A68052163 +:1035A000EAE710B52E4C94F82E00202800D1FFDF5A +:1035B00014F82E0F21782C4A02EB01110A68BDE89D +:1035C0001040042110477CB5254C054694F82E0088 +:1035D000202800D1FFDFA068401C00D0FFDF94F856 +:1035E0002E00214901AA01EB0010694690F90C0058 +:1035F0002844EFF7CDFA9DF904000F2801DD0120E2 +:1036000000E00020009908446168084420F07F41F0 +:10361000A16094F82100002807D002B00123BDE882 +:10362000704000221846EFF7E7B97CBD30B5104A6C +:103630000B1A541CB3EB940F1ED3451AB5EB940F21 +:103640001AD3934203D9101A43185B1C14E0954215 +:1036500010D9511A0844401C43420DE08C00002050 +:10366000180900200000000098060020F047020022 +:10367000FF7F841EFFDF0023184630BD0123002298 +:1036800001460220EFF7B8B90220EFF762B9EFF771 +:10369000FFB92DE9FC47B14C054694F82E002028CF +:1036A00000D1FFDF642D58D3AD4A0021521B71EBCE +:1036B000010052D394F82E20A0462046DFF8A492B1 +:1036C00090F82D7009EB0214D8F8000001AA2844E4 +:1036D0006946EFF75DFA9DF90400002802DD0098C5 +:1036E000401C0090A068009962684618B21A22F047 +:1036F0007F42B2F5800F30D208EB8702444692F841 +:103700002520202A0AD009EB02125268101A000262 +:10371000C21700EB1260001288421EDBA068401C3A +:1037200010D0EFF7B5F9A168081A0002C11700EB35 +:1037300011600012022810DD0120EFF70AF94FF0A6 +:10374000FF30A06020682844206026F07F40206180 +:10375000012084F82300BDE8FC870020FBE72DE969 +:10376000F0477E4C074694F82D00A4F1800606EB46 +:10377000801010F8170000B9FFDF94F82D50A04614 +:10378000794C24B1002140F66500AFF3008040F68B +:10379000710940F67A0A06EB851600BF16F8170085 +:1037A000012818D0042810D005280ED006280CD0E7 +:1037B0001CB100214846AFF3008020BF002CEDD0A3 +:1037C00000215046AFF30080E8E72A463946012041 +:1037D000FEF7C0FEF2E74FF0010A4FF00009454640 +:1037E00024B1002140F68100AFF30080504600F084 +:1037F0005CF885F8239024B1002140F68600AFF3F1 +:10380000008095F82D00FFF7D3FA064695F82300BF +:1038100028B1002CE4D0002140F68C001FE024B138 +:1038200000214FF40960AFF3008005EB860000F142 +:10383000270133463A462630FFF7F1F924B100213B +:1038400040F69400AFF3008000F024F8824695F82B +:10385000230038B1002CC3D0002140F69A00AFF30A +:103860000080BDE785F82D60012085F823005046D3 +:1038700000F01BF8002C04D0002140F6A700AFF3A5 +:103880000080BDE8F087354981F82D00012081F8DE +:103890002300704710B5354808B1AFF30080EFF34F +:1038A000108000F0010072B610BD10B5002804D1E0 +:1038B0002F4808B1AFF3008062B610BD2D480068F4 +:1038C000C005C00D10D0103840B2002806DA00F054 +:1038D0000F0000F1E02090F8140D03E000F1E0206B +:1038E00090F80004400970470820704710B51B4C41 +:1038F00094F82400002804D1F8F72AF8012084F86D +:10390000240010BD10B5154C94F82400002804D0F4 +:10391000F8F747F8002084F8240010BD10B51C68A3 +:103920005B68241A181A24F07F4420F07F40A142DB +:1039300006D8B4F5800F03D2904201D8012010BD03 +:10394000002010BDD0E90032D21A21F07F4311448B +:1039500021F07F41C0E900317047000018090020C4 +:10396000FF1FA107980600200000000000000000D3 +:103970000000000004ED00E02DE9F041044680075E +:103980004FF000054FF001060CD560480560066059 +:103990000FF0C6FC20B15E48016841F4806101600F +:1039A00024F00204E0044FF0FF3705D55948466083 +:1039B000C0F8087324F48054600003D556480560AD +:1039C00024F08044E0050FD55448C0F80052C0F8F8 +:1039D000087353490D60091D0D60514A04210C32D2 +:1039E0001160066124F48074A00409D54D48466036 +:1039F000C0F80052C0F808734B48056024F4005426 +:103A0000C4F38030C4F3C031884200D0FFDF14F427 +:103A1000404F14D045484660C0F80873444886605B +:103A2000C0F80052C0F8087342490D600A1D1660C4 +:103A30008660C0F808730D60166024F440442005C9 +:103A40000AD53D4846608660C0F80873C0F84873E0 +:103A50003A48056024F400640FF0DAFD3848044267 +:103A600000D0FFDFBDE8F08170B5202500221346AD +:103A700020FA02F1C90719D051B201F01F06012442 +:103A8000B4404E09B60006F1E026C6F88041C6F8FB +:103A90008042002906DA01F00F0101F1E02181F8EE +:103AA000143D03E001F1E02181F80034521CAA42E8 +:103AB000DED370BD70B5234C0D462060FFF75CFF70 +:103AC0002068FFF7D1FF2846F8F71FF80FF0FAF942 +:103AD00000F0AFF80FF09CFD0FF0E7FCF8F728F9C5 +:103AE000BDE870400FF09CBA10B5164C2068FFF787 +:103AF00043FF2068FFF7B8FF0FF08AFDF8F794F84E +:103B00000020206010BD0A2070470000FC1F00400C +:103B10003C17004000C0004004E501400080004028 +:103B20000485004000D0004004D5004000E0004083 +:103B300000F0004000F5004000B0004008B5004033 +:103B4000FEFF0FFD9000002070B526490A680AB3F9 +:103B50000022154601244B685B1C4B60092B00D3E7 +:103B60004D600E7904FA06F30E681E420FD0EFF393 +:103B7000108212F0010272B600D001220C689C4340 +:103B80000C6002B962B649680160002070BD521C29 +:103B9000092AE0D3052070BD4FF0E0214FF48000EA +:103BA000C1F800027047EFF3108111F0010F72B6F7 +:103BB0004FF0010202FA00F20A48036842EA0302E7 +:103BC000026000D162B6E7E706480021016041606B +:103BD00070470121814003480068084000D001205F +:103BE00070470000940000202DE9F04115460E4674 +:103BF0000446002700F0E7F8A84215D3002341202F +:103C00000FE000BF94F84220A25CF25494F84210F6 +:103C1000491CB1FBF0F200FB12115B1C84F842104E +:103C2000DBB2AB42EED3012700F0D9F83846BDE84D +:103C3000F081704910B5802081F800046E490020A1 +:103C400081F8420081F84100433181F8420081F857 +:103C50004100433181F8420081F8410067480FF08C +:103C60006DFB6648401C0FF069FBEFF71BF8BDE8E1 +:103C7000104000F0B4B8402070475F4800F0A3B88F +:103C80000A4601465C48AFE7402070475A48433037 +:103C900000F099B80A46014657484330A4E740214E +:103CA00001700020704710B504465348863000F07C +:103CB0008AF82070002010BD0A4601464E4810B513 +:103CC0008630FFF791FF08B1002010BD42F20700D7 +:103CD00010BD70B50C460546412900D9FFDF4848A4 +:103CE0000068103840B200F050F8C6B20D2000F065 +:103CF0004CF8C0B2864203D2FFDF01E0EFF722F8B2 +:103D0000224629463C48FFF76FFF0028F6D070BDD9 +:103D10002DE9F041394F002506463F1D57F8254053 +:103D2000204600F041F810B36D1CEDB2032DF5D321 +:103D30003148433000F038F8002825D02E4800F0F4 +:103D400033F8002820D02C48863000F02DF80028C9 +:103D50001AD0EEF7CDFF29480FF0F8FAB0F5005F62 +:103D600000D0FFDFBDE8F04124480FF005BB94F818 +:103D700041004121265414F8410F401CB0FBF1F2E0 +:103D800001FB12002070D3E751E7002806DA00F0AB +:103D90000F0000F1E02090F8140D03E000F1E020A6 +:103DA00090F800044009704710F8411F4122491C57 +:103DB000B1FBF2F302FB13114078814201D10120E3 +:103DC00070470020704710F8411F4078814201D3AE +:103DD000081A02E0C0F141000844C0B2704710B5B3 +:103DE00006480FF0B3FA002803D1BDE81040EEF703 +:103DF0006ABF10BD0DE000E0480900209C000020D3 +:103E000004ED00E070B5154D2878401CC4B2687808 +:103E1000844202D0EFF727F82C7070BD2DE9F041F5 +:103E20000E4C4FF0E02600BFEFF712F820BF40BF66 +:103E300020BF677820786070D6F80052EDF76EFAF0 +:103E4000854305D1D6F8040210B92078B842EBD0EA +:103E5000EEF7F9FF0020BDE8F0810000AC00002083 +:103E60002DE9F041012528034FF0E0210026C1F89B +:103E700080011E4CC4F800610C2000F02CF81C4896 +:103E800001680268C94341F3001142F01002026068 +:103E9000C4F804532560491C00E020BFD4F8002179 +:103EA000002AFAD019B9016821F010010160114807 +:103EB00007686560C4F80853C4F800610C2000F07E +:103EC0000AF83846BDE8F08110B50446FFF7C8FF90 +:103ED0002060002010BD00F01F0201219140400928 +:103EE000800000F1E020C0F88012704700C0004060 +:103EF00010ED00E008C500402DE9F047FF4C0646F4 +:103F0000FF21A06800EB061211702178FF2910D064 +:103F10004FF0080909EB011109EB06174158C05988 +:103F200000F0F4F9002807DDA168207801EB061104 +:103F300008702670BDE8F08794F8008045460DE0D3 +:103F4000A06809EB05114158C05900F0DFF90028BD +:103F500006DCA068A84600EB08100578FF2DEFD11D +:103F6000A06800EB061100EB08100D700670E1E789 +:103F7000F0B5E24B0446002001259A680C269B7898 +:103F80000CE000BF05EB0017D75DA74204D106EB9C +:103F90000017D7598F4204D0401CC0B28342F1D8D9 +:103FA000FF20F0BD70B5FFF772FBD44C08252278D6 +:103FB000A16805EB0212895800F0A8F9012808DD74 +:103FC0002178A06805EB01114058BDE87040FFF76B +:103FD00055BBFFF727FABDE87040F7F7D7BE2DE9CC +:103FE000F041C64C2578FFF752FBFF2D6ED04FF005 +:103FF0000808A26808EB0516915900F087F9022815 +:10400000A06801DD80595DE000EB051109782170A1 +:10401000022101EB0511425C5AB1521E42548159F2 +:1040200001F5800121F07F4181512846FFF764FFAF +:1040300034E00423012203EB051302EB051250F8D0 +:1040400003C0875CBCF1000F10D0BCF5007F10D915 +:10405000CCF3080250F806C00CEB423C2CF07F4C2D +:1040600040F806C0C3589A1A520A09E0FF21815449 +:104070000AE0825902EB4C3222F07F428251002248 +:1040800042542846FFF738FF0C21A06801EB0511C8 +:104090004158E06850F82720384690472078FF289C +:1040A00014D0FFF7F4FA2278A16808EB0212454613 +:1040B000895800F02BF9012893DD2178A06805EBE1 +:1040C00001114058BDE8F041FFF7D8BABDE8F081D2 +:1040D000F0B51D4614460E460746FF2B00D3FFDF02 +:1040E000A00700D0FFDF8548FF210022C0E902477A +:1040F000C57006710170427082701046012204E0A2 +:1041000002EB0013401CE154C0B2A842F8D3F0BD4A +:1041100070B57A4C064665782079854200D3FFDF7A +:10412000E06840F825606078401C6070284670BDEB +:104130002DE9FF5F1D468B460746FF24FFF7A7FAD0 +:10414000DFF8B891064699F80100B84200D8FFDFC1 +:1041500000214FF001084FF00C0A99F80220D9F81D +:1041600008000EE008EB0113C35CFF2B0ED0BB422E +:1041700005D10AEB011350F803C0DC450CD0491CF3 +:10418000C9B28A42EED8FF2C02D00DE00C46F6E709 +:1041900099F803108A4203D1FF2004B0BDE8F09FD4 +:1041A0001446521C89F8022008EB04110AEB041291 +:1041B000475440F802B00421029B0022012B01EB7E +:1041C00004110CD040F801204FF4007808234FF080 +:1041D000020C454513D9E905C90D02D002E045504E +:1041E000F2E7414606EB413203EB041322F07F4233 +:1041F000C250691A0CEB0412490A81540BE005B94C +:10420000012506EB453103EB041321F07F41C1503A +:104210000CEB0411425499F800502046FFF76CFE55 +:1042200099F80000A84201D0FFF7BCFE3846B4E779 +:1042300070B50C460546FFF72AFA06462146284681 +:10424000FFF796FE0446FF281AD02C4D082101EBFB +:104250000411A8684158304600F058F800F5805025 +:10426000C11700EBD14040130221AA6801EB0411F1 +:10427000515C09B100EB4120002800DC012070BD39 +:10428000002070BD2DE9F04788468146FFF770FE9B +:104290000746FF281BD0194D2E78A86831463446B2 +:1042A00005E0BC4206D0264600EB06121478FF2C2F +:1042B000F7D10CE0FF2C0AD0A6420CD100EB011084 +:1042C00000782870FF2804D0FFF76CFE03E0002080 +:1042D00030E6FFF7D9F941464846FFF7A9FF012329 +:1042E000A968024603EB0413FF20C854A878401EB7 +:1042F000B84200D1A87001EB041001E0140A0020BC +:1043000001EB061100780870104613E6081A000247 +:10431000C11700EB116000127047000070B5044631 +:10432000A0F500002D4EB0F1786F02D23444A4F510 +:1043300000042B48844201D2012500E0002500F052 +:1043400043F848B125B9B44204D32648006808E0D0 +:10435000012070BD002070BD002DF9D1B442F9D309 +:1043600021488442F6D2F3E710B50446A0F50000D8 +:10437000B0F1786F03D219480444A4F5000400F0AA +:1043800023F84FF0804130B11648006804E08C42B9 +:1043900004D2012003E014488442F8D2002080F0C7 +:1043A000010010BD10B520B1FFF7DEFF08B10120FC +:1043B00010BD002010BD10B520B1FFF7AFFF08B150 +:1043C000012010BD002010BD08480949006888423E +:1043D00001D101207047002070470000000000203C +:1043E000006002002000002008000020B000002033 +:1043F000BEBAFECA0548064A0168914201D10021B1 +:10440000016004490120086070470000B0000020EE +:10441000BEBAFECA40E50140534800210170417018 +:1044200010218170704770B5054616460C46022073 +:10443000EEF7D7F94C49012008704C49F01E08608E +:104440004B480560001F046070BD10B50220EEF7F8 +:10445000C8F945490120087046480021C0F80011FC +:10446000C0F80411C0F8081143494FF40000086077 +:1044700010BD3D480178C9B1404A4FF400011160B8 +:104480003C49D1F800310022002B1CBFD1F8043187 +:10449000002B02D0D1F8081111B14270102103E0B5 +:1044A0000121417036490968817002700020EEF7E1 +:1044B00098B92D480178002904BF407870472D48ED +:1044C000D0F80011002904BF02207047D0F8001175 +:1044D00000291CBFD0F80411002905D0D0F808012C +:1044E000002804BF01207047002070471E4800B517 +:1044F0000278204B4078C821491EC9B282B1D3F856 +:1045000000C1BCF1000F10D0D3F8000100281CBF7F +:10451000D3F8040100280BD0D3F8080150B107E00C +:10452000022802D0012805D002E00029E4D1FFDFF3 +:10453000002000BD012000BD0B480178002904BF08 +:10454000807870470B48D0F8001100291CBFD0F8C4 +:104550000411002902D0D0F8080108B110207047DA +:1045600007480068C0B27047B400002010F5004052 +:1045700008F5004000F0004004F5014008F5014056 +:1045800000F400404C48002101704170704770B544 +:10459000064614460D460120EEF723F9474806600B +:1045A000001D0460001D056070BD70B54249012505 +:1045B0000D7040EA0241424A41F080711160414C65 +:1045C0000026C4F80461404A4FF040711160002891 +:1045D00002BFC4F80052256070BD012818BFFFDF7C +:1045E000C4F8006225604FF000703849086070BD63 +:1045F0003148017879B1344A4FF040711160314946 +:10460000D1F804210021002A08BF417002D0304AAD +:104610001268427001700020EEF7E3B82648017876 +:10462000002904BF407870472648D0F804010028CC +:1046300008BF704726480068C0B27047002808BF0E +:10464000704730B51C480078002808BFFFDF1D48C0 +:10465000D0F80411002918BF30BD0224C0F804436B +:10466000DFF870C0DCF80010C1F30015DCF80010B2 +:1046700041F01001CCF80010D0F80411002904BF5B +:104680004FF400414FF0E02207D100BFC2F8801282 +:1046900020BFD0F80431002BF8D02DB9DCF8001081 +:1046A00021F01001CCF80010C0F8084330BD0549D6 +:1046B0000120886070470000B700002008F5004026 +:1046C00004F5004000F0004008F5014004F5014009 +:1046D00000F4004010ED00E010B5FF480024012177 +:1046E0004470047044728472C17280F82140846204 +:1046F000446314300FF004FFF849601E0860091D80 +:104700000860091D0C60091D0860091D0C60091D69 +:104710000860091D0860091D0860091D0860091D61 +:104720000860091D0860091D0860091D0860091D51 +:10473000086010BDEA48016801F00F01032904BFB9 +:1047400001207047006800F00F00042804BF022019 +:10475000704700B5FFDF012000BD30B4DE490268BC +:10476000DFF884C34A6142688A61007A08770A7D6B +:10477000DC4BACF1040401204AB10A7E00FA02F2DB +:104780001A608D7D002D0CBF2260CCF800204A7D80 +:10479000002A04BF30BC70474A7E90401860C97D33 +:1047A00000290CBF2060CCF8000030BC704730B549 +:1047B00000250446012904D002290CBF4FF0807562 +:1047C000FFDF45F4847040F48010C849086044F469 +:1047D0004030091D40F00070086030BD30B5002544 +:1047E0000446012904D002290CBF4FF08075FFDF79 +:1047F00045F4847040F48010BC49086044F44030B3 +:10480000091D40F000700860B948D0F80001002888 +:1048100018BFFFDF30BD2DE9F04102264FF0E02741 +:1048200001240025C7F88061B248056004600EF0DD +:1048300077FDB14918B1086840F4806008600868E5 +:1048400020F0770040F0880040F0004008600EF053 +:1048500051FD30B1A948016821F47F4141F4B051C4 +:1048600001600EF047FD9C4940B1A5484E770660B7 +:10487000A54AA4481060121FA4481060A44A40F240 +:104880005B601060121F40F203101060101F046084 +:10489000934A032010609F4A96201060487F0028AA +:1048A00014BF4FF4C0209C4840F440209B4A106045 +:1048B0009C4A9B481060121F9B481060C7F880629A +:1048C0008B4A1020C2F8040381F82D50BDE8F08116 +:1048D0009648016821F0010141F080710160704744 +:1048E0007D4A0368C2F802308088D0801172704718 +:1048F000794B10B51A7A8A4208D101460622981CD3 +:104900000FF02AFC002804BF012010BD002010BDBC +:10491000714890F8210070476F4A517010707047CD +:10492000F0B50546800000F1804000F580508B888E +:10493000C0F820360B78D1F8011043EA0121C0F805 +:10494000001605F10800012707FA00F6784C002A46 +:1049500004BF2068B04304D0012A18BFFFDF2068DD +:1049600030432060206807FA05F108432060F0BD5D +:104970000EF096BF584890F82E007047564890F8B1 +:10498000300070476B4AC178116000686A490002C4 +:1049900008607047252808BF02210ED0262808BFCE +:1049A0001A210AD0272808BF502106D00A2894BF10 +:1049B0000422062202EB4001C9B2604A116060493C +:1049C00008607047F0B4444B9D7A012D61D0022DF0 +:1049D0001CBFF0BC704793F815C0BCF1000F04BFBA +:1049E000F0BC70474FF47A7C012D564C564F57D08F +:1049F000DE7D5D7E002E18BF0126012908BF29211A +:104A00000CD0022A0CBF514C012A03D0042A0CBF3F +:104A10003C464F4C04F2E141B1FBFCF1491F084414 +:104A20004C4908604C490020C1F84C01280286F02E +:104A3000010140EA015040F00311187F820002F1A9 +:104A4000804202F5C042C2F81015444901EB8002D1 +:104A5000997EC80000F1804000F5F830C0F81425B8 +:104A6000DFF8FCC0C0F810C5D87EC30003F1804356 +:104A700003F5F833C3F814252B4AC3F81025012297 +:104A800002FA01F102FA00F0084336490860F0BC6E +:104A9000704793F814C0BCF1000FA3D1F0BC70476D +:104AA0009E7D1D7E002E18BF0126012965D0022A99 +:104AB00004BF2D4C4FF47A710CD0012A08BF4FF47B +:104AC000C86107D0042A07BF3C4640F69801274C2E +:104AD00040F6E44121444BE0240A0020000E00404F +:104AE00010150040180500500C050050141500402A +:104AF00000100040FC1F00403C17004040170040E1 +:104B000060150040448000409CF5014028110040A1 +:104B100038150040441500400000040408F5014029 +:104B200040800040A4F5014010110040741700407F +:104B300040160040241500401C1500400815004098 +:104B400054150040A2240200D0FB010004360200EC +:104B5000C0D401004C85004000800040006000404F +:104B60004C81004004F501406836020030D301005A +:104B700001F5FA71B1FBFCF150E7022A08BF4FF4CE +:104B80007A710AD0012A08BF4FF4C86105D0042AFF +:104B90000CBF40F6980140F6E44149F6FC6211442E +:104BA000E8E72DE9F047FC4E80460320154689468C +:104BB000C6F80002F94F787F002814BF4FF4C020D8 +:104BC000F748F849086048460EF0A5FE28460EF062 +:104BD00095FE0124B8F1000F03D0B8F1010F16D0F3 +:104BE00018E00EF087FB78B1EF490A684806022DFD +:104BF000D0F820030CBFC0F30660C0F3062022F4F7 +:104C0000FE4242EA00200860BC72346002E00220EA +:104C1000B8727460E548C464E54800682A464946AD +:104C2000BDE8F047CEE62DE9F0418846DA4907466F +:104C300003201546C1F80002D84C607F002814BF3D +:104C40004FF4C020D648D74E306040460EF063FE89 +:104C500028460EF053FE17B1012F1CD024E00EF0B1 +:104C600049FB78B1D04A11685006022DD0F82003D4 +:104C70000CBFC0F30660C0F3062021F4FE4141EAF8 +:104C8000002010600120A072606B40F4801060630F +:104C90004FF4801007E00220A072606B40F4001017 +:104CA00060634FF4001030602A464146BDE8F04191 +:104CB000002087E62DE9FF4FB74C8346002581B0E1 +:104CC00003208946C4F80002B44E707F002814BF48 +:104CD0004FF4C020B248B34F386003980EF01BFE6B +:104CE00004980EF00BFEDFF8CCA24FF00108BBF1E8 +:104CF000000F03D0BBF1010F35D046E00EF0FAFAF9 +:104D000080B1A94A0498116853060228D3F82003F9 +:104D10000CBFC0F30660C0F3062021F4FE4141EA57 +:104D200000201060CAF8004096F82D00012806D037 +:104D3000022818BFFFDF0CD086F80A8025E0DDE9E5 +:104D4000031396F82C2048460EF066FEB16A45180B +:104D5000F2E7DDE9031296F82C3048460EF0EAFD42 +:104D6000B16A4518E8E79448CAF8000096F82D00A3 +:104D7000DDE90313012896F82C20484624D00EF0D4 +:104D800095FEB16A45180220B0728C4805608D49C5 +:104D90008B480860706B40F400207063D4F8009278 +:104DA0004FF0100AC4F808A30026C4F80062864831 +:104DB0004FF4802BC0F800B0FF208DF80000C4F83D +:104DC0001061C4F810800AE00EF0F2FDB16A4518D7 +:104DD000D9E700BF9DF80000401E8DF800009DF847 +:104DE000000018B1D4F810010028F3D09DF800009D +:104DF000002808BFFFDFC4F80061C4F80C61C4F8E4 +:104E00001061C4F80461C4F81461C4F818610EF0AC +:104E100071FA002818BFC4F828616C480068009037 +:104E2000C4F80092C7F800B0C4F804A34FF40020FF +:104E300038605E48C0F84C805D480068A84228BFD2 +:104E4000FFDF2846DDE9031205B0BDE8F04FB9E504 +:104E50002DE9F84F504CD4F8000220F00B09D4F89B +:104E600004034FF0100AC0F30018C4F808A300268A +:104E7000C4F80062494D687F002814BF4FF4C02079 +:104E8000474840F4402150480160A97A0127012990 +:104E900002D0022903D014E0297D11B911E0697D07 +:104EA00079B1A97EEA7E07FA01F107FA02F211430D +:104EB0000160287F800000F1804000F5C040C0F80C +:104EC0001065FF208DF80000C4F81061276104E030 +:104ED0009DF80000401E8DF800009DF8000018B1FC +:104EE000D4F810010028F3D09DF80000002808BF76 +:104EF000FFDFC4F810610EF0FDF9002818BFC4F8F8 +:104F000028616E72AE72EF72C4F80092B8F1000FB1 +:104F100018BFC4F804A3BDE8F88F00682C4920F03E +:104F20007F40086070474FF0E0200221C0F88011F8 +:104F3000C0F8801270474FF0E0210220C1F8000154 +:104F4000704724490870704723490860704730B59E +:104F5000124C0546A06AA84228BFFFDF012020733B +:104F60002561607F40B1284420610B48D0F80012D1 +:104F700041F04001C0F800120C490020C1F8440182 +:104F8000164920690860606B064940F48000606340 +:104F90004FF48000086030BD00100040240A00205B +:104FA0000000040404F50140881500400080004022 +:104FB0004C850040ACF5014004100040488500409D +:104FC00048810040A8F5014008F501401811004053 +:104FD0003C150040B9000020041500404485004005 +:104FE00070B505460E460220FE4C2073FE4801684F +:104FF00001F00F01032908BF012207D0006800F06B +:105000000F0004280EBF0222FFDF012294F82D00BA +:1050100094F82C10012819D028460EF0A5FD206127 +:10502000607F48B1216908442061F048D0F800123F +:1050300041F04001C0F80012ED490020C1F84401E0 +:105040002169A06A0844EB49086070BD33462846D0 +:105050000EF053FDE3E7E8494FF480000860E148B3 +:10506000416B21F480014163002101737047C2004C +:1050700002F1804202F5F832E04BC2F81035C2F876 +:10508000141501218140DE480160D648426B11436E +:1050900041637047D64801214160C1600021C0F8DA +:1050A0004411D4480160CF488162704710B504466E +:1050B0000EF020F900281CBFCA484477D14804608C +:1050C000CA48D0F8001241F04001C0F8001210BDEB +:1050D000C64810B5D0F8001221F04001C0F8001207 +:1050E0000EF008F9C749002818BF0220086010BD5B +:1050F000BE48D0F8001221F01001C0F800120121C2 +:1051000081617047B9480021C0F81C11D0F8001225 +:1051100041F01001C0F800127047B44981B0D1F8D5 +:105120001C21012A1EBF002001B07047B64A126838 +:1051300002F07F02524202700020C1F81C01B34805 +:1051400000680090012001B0704730B50C000546A2 +:1051500008BFFFDF14F0010F1CBF012CFFDF002D83 +:105160000CBF012002209F4901284872CC729F4940 +:1051700004BFD1F8000240F0040007D0022807BFA6 +:10518000D1F8000240F00800FFDF30BDC1F8000296 +:1051900030BD2DE9F84FDFF8789299F80000042827 +:1051A00028BFFFDFDFF848A2DAF84C1192488D4C97 +:1051B00000274FF00108D1B1A17A012902D00229BC +:1051C00003D014E0217D11B911E0617D79B1A17E98 +:1051D000E27E08FA01F108FA02F211430160217F30 +:1051E000890001F1804101F5C041C1F81075824884 +:1051F000616B01606763217B002019B1DAF844110B +:10520000012900D00021A27A784E012A6ED0022A0C +:1052100074D000BFD6F8101101290CBF1021002155 +:1052200041EA00057B48016811F0FF0F03D0D6F872 +:105230001411012900D0002184F82E10006810F00C +:10524000FF0F03D0D6F81801012800D0002084F801 +:105250002F007148006884F83000FFF72AF9012810 +:1052600018BF002084F83100C6F80071C6F80C7130 +:10527000C6F81071C6F80471C6F81471C6F8187132 +:105280000EF038F8002818BFC6F828716348006887 +:1052900000905748C0F8447161480068DFF854A195 +:1052A0000090DAF800006062617F00291CBF401A9C +:1052B00060625C480068A0624B48016801F00F0121 +:1052C000032908BF012007D0006800F00F00042860 +:1052D0000EBF0220FFDF012084F82C00A07ADFF847 +:1052E00048B184F82D00022824D116E0D6F80C012C +:1052F000012814BF002008208CE7FFE7D6F80C0136 +:10530000012814BF00200220484A1268012A14BF55 +:1053100004220022104308437CE7607850B1DBF898 +:10532000001009780840217831EA000008BF84F8AD +:10533000208001D084F8207015F0020F07D099F872 +:1053400000103B4A4908606A52F82110884715F05E +:10535000010F18BF00210DD0364A99F80030A06A1D +:1053600052F82320904700BF99F8000010F0010F79 +:105370002AD10AE015F0020F18BF0121ECD115F077 +:10538000080F18BF0221E7D1EEE7DBF80000007834 +:1053900000F00F00072828BF84F8217014D2DBF832 +:1053A0000000062200F10901A01C0EF0D5FE40B954 +:1053B000207ADBF800100978B0EBD11F08BF01207C +:1053C00000D0002084F82100E17A002011F0020FC3 +:1053D0001CBF15F0020F15F0040F45D111F0100F8E +:1053E0002AE00000240A00201015004000100040B0 +:1053F000008000404485004008F501400411004051 +:1054000004F5014060150040481500401C110040A3 +:10541000B900002040160040101400401811004050 +:1054200044810040408500400415004000140040C5 +:1054300008480200504802001CBF94F82F20002AA0 +:1054400002D094F831207AB111F0080F1CBF94F803 +:105450002020002A08D111F0040F02D094F8211066 +:1054600011B115F0010F00D00120617A19B198B186 +:10547000FFF7EEFC1EE0607F002814BF4FF4C02150 +:105480007F4980480160D6F8000220F00300C6F88A +:10549000000284F80B800DE04FF0000B012913D0BF +:1054A000022918BFFFDF21D0A06A01225844002141 +:1054B000FFF788FA15F0010F2BD0734899F8001008 +:1054C00050F82100804745E0D6F8000220F00400A3 +:1054D000C6F80002677284F80B80012384F80A8002 +:1054E0001A46002196200EF025FA10E0D6F80002A8 +:1054F00020F00800C6F80002677284F80B800220D2 +:10550000A07201231A46002196200EF051FA83461C +:10551000CAE715F0020F08D05C4999F8002028EA84 +:10552000950051F82210884714E015F0080F06D0B6 +:10553000574899F8001050F8210080470AE015F00C +:10554000100F08BFFFDF05D0524899F8001050F83F +:1055500021008047A07A022818BFBDE8F88F207B81 +:10556000002808BFBDE8F88F4B49C1F844710228F4 +:1055700014D0012818BFFFDFA16A2069884298BFB4 +:10558000FFDF2069CAF80000606B444940F48000E6 +:1055900060634FF480000860BDE8F88F2169A06A5D +:1055A0000844EFE738B500253D4C002818BFC4F883 +:1055B0000052C4F80051C4F80C51C4F81051C4F89A +:1055C0000451C4F81451C4F818510DF093FE00288A +:1055D00018BFC4F8285133480068009038BD01282E +:1055E00004BF28207047022804BF1820704700B568 +:1055F000FFDF282000BD012804BF41F6A4707047DA +:10560000022804BF41F28830704700B5FFDF41F641 +:10561000A47000BD012804BF41F2D4707047022875 +:1056200004BF41F20400704700B5FFDF41F2D470BF +:1056300000BD012812BF02280020704700B5FFDF1F +:10564000002000BD16490820C1F800021648407F1E +:10565000002814BF4FF4C02009480A4908601449C3 +:1056600012480860091D13480860091D12480860A7 +:10567000091D1248086009494FF44020086070472E +:105680000000040408F50140104802002048020010 +:1056900030480200404802000080004004F501400C +:1056A0000010004018110040240A002000110040A2 +:1056B000A0F50140141000401C11004010100040E3 +:1056C00010B53F4822210EF0F2FD3D48017821F04F +:1056D00010010170012107F017FC3A49002081F800 +:1056E00022004FF6FF70888437490880488010BD3B +:1056F000704734498A8C824218BF7047002081F875 +:1057000022004FF6FF70888470472D490160704772 +:105710002D49088070472B498A8CA2F57F43FF3BB7 +:1057200003D0002101600846704791F822202549E6 +:10573000012A1ABF0160012000207047214901F1B0 +:10574000220091F82220012A04BF00207047012284 +:1057500002701D4800888884104670471A494880A6 +:1057600070471849184B8A8C5B889A4206D191F889 +:105770002220002A1EBF01600120704700207047D0 +:105780001048114A818C5288914209D14FF6FF711D +:10579000818410F8221F19B1002101700120704787 +:1057A000002070470748084A818C5288914205D1F1 +:1057B00090F8220000281CBF00207047012070478D +:1057C000820A00205C0A0020BA0000207047574A75 +:1057D000012340B1012818BF70471370086890601A +:1057E00088889081704753700868C2F802008888E2 +:1057F000D08070474D4A10B1012807D00EE0507894 +:1058000060B1D2F802000860D08804E0107828B1B6 +:105810009068086090898880012070470020704758 +:10582000424910B1012803D006E0487810B903E0DE +:10583000087808B1012070470020704730B58DB05E +:105840000C4605460D2104A80EF053FDE0788DF8B6 +:105850001F0020798DF81E0060798DF81D002868E2 +:10586000009068680190A8680290E8680390684614 +:105870000DF0C2FB20789DF82F1088420CD1607883 +:105880009DF82E10884207D1A0789DF82D108842EF +:1058900002BF01200DB030BD00200DB030BD30B5CD +:1058A0000C4605468DB04FF0030104F1030012B120 +:1058B000FEF7F0F901E0FEF70CFA60790D2120F017 +:1058C000C00040F04000607104A80EF012FDE078C6 +:1058D0008DF81F0020798DF81E0060798DF81D006D +:1058E0002868009068680190A8680290E8680390B2 +:1058F00068460DF081FB9DF82F0020709DF82E006A +:1059000060709DF82D00A0700DB030BD10B500295D +:1059100004464FF0060102D0FEF7BCF901E0FEF7A5 +:10592000D8F9607920F0C000607110BDBE00002081 +:1059300070B5F84E0446306890F800110025012932 +:1059400019D090F8FA10012924D090F8D01001292C +:105950002AD090F8F21001291CBF002070BD65709C +:1059600017212170D0F8F4106160B0F8F81021818F +:1059700080F8F25016E065701C212170D0F80111FA +:105980006160D0F80511A16090F80911217380F8C9 +:10599000005107E0657007212170D0F8FC106160AC +:1059A00080F8FA50012070BD65701421217000F15B +:1059B000D2012022201D0EF0FBFB01212172306854 +:1059C00080F8D050D448B0F8D420A0F8FC207268F9 +:1059D000537B80F8FE3080F8FA101088FBF71AF934 +:1059E000FAF7C1FDDEE7CB48006890F8D010002937 +:1059F00014BFB0F8D4004FF6FF70704770B5C54CB7 +:105A00002068002808BFFFDF0025206845700028B7 +:105A100008BFFFDF2068417800291CBFFFDF70BD91 +:105A20004FF486710EF065FC2068FF2101707F2124 +:105A300080F8361013214184282180F8CC100121F0 +:105A400080F8B81080F8BD50FFF742FBFEF711FD5B +:105A5000B24806F0E5FFB24806F0E2FFBDE870404C +:105A6000B04806F0DDBFAB490968097881420CBF38 +:105A7000012000207047A748006890F82200C0F37A +:105A8000001070472DE9F04FA248016891F82400FA +:105A9000B1F822C0C0F38002C0F340031A4400F002 +:105AA00001001044CCF300121AB3BCF1130F1BD049 +:105AB0000BDCBCF1100F02BF9B4931F81000BDE8B0 +:105AC000F08FBCF1120F0FD00AE0BCF1150F08BF28 +:105AD00096490AD0BCF11D0F04BF9548BDE8F08F70 +:105AE000FFDF0020BDE8F08F924931F81000BDE8DB +:105AF000F08F002491F8BA2091F8BB108E4E8F4F92 +:105B00001CF0030F4FF47A7B4FF0190A25464FF42F +:105B1000C8784FF4BF794FF018037DD01CF0010F07 +:105B20001BD0082904BF44464FF0400C0FD0042975 +:105B300004BF4C464FF0100C09D0022907BF05F1F5 +:105B400018044FF0040C05F128044FF0080C0CEB7E +:105B50004C0E0EEB0C1CA44417E0082904BFC446ED +:105B600040240CD0042904BFCC46102407D00229BD +:105B700007BF05F1180C042405F1280C082404EBD8 +:105B8000C40404EB44040CEB440C022A04BF6C4E26 +:105B90004FF47A740CD0012A08BF4FF4C86407D0C0 +:105BA000042A07BF674E40F698043E4640F6E44498 +:105BB000344404F2E734B4FBFBF4C0EB001606EB0C +:105BC000860604EB8604082A30D0042A29D0022A4B +:105BD00007BF05F11802042505F128024FF0190A44 +:105BE00018BF08251AFB052212FB0040082922D005 +:105BF000042925D0022904BF0421C03004D0282361 +:105C000003F5A87108440821C1EBC10101EB410172 +:105C100003EB4101084400E017E0604400F52674FE +:105C200018E04A464FF0140A1025DBE742464FF0D1 +:105C3000140A4025D6E74346402100F53D60E3E7DE +:105C40004B46102100F57C70DEE71CF0020F18BFF8 +:105C5000FFDF02D02046BDE8F08F022A04BF384E95 +:105C60004FF47A7C0CD0012A08BF4FF4C86C07D0DF +:105C7000042A07BF334E40F6980C3E4640F6E44CEB +:105C8000B4440CF2E73CBCFBFBFCC0EB001404EB9F +:105C900084040CEB840C082A04BF4FF0140A402241 +:105CA0000CD0042A29D0022A07BF05F118080422C3 +:105CB00005F128084FF0190A18BF08221AFB0282C2 +:105CC00012FB00C0082904BF4FF4A87340210AD07A +:105CD000042904BF4FF4A873102104D002290EBF79 +:105CE000042128230821C1EBC10101EB410103EB91 +:105CF0004101084400F5B274ACE7C8464FF0140AFD +:105D00001022DBE7034840F271210068806A4843B3 +:105D100070470000CC000020A40A0020B00B002037 +:105D2000D80B0020000C0020744802007C480200C0 +:105D3000F18913006C480200A224020030D3010054 +:105D400068360200D0FB0100F848006890F8350082 +:105D5000002818BF0120704710B5F54C207B0228A1 +:105D600018BF032808D1207D04F1150105F018FDA6 +:105D700008281CBF012010BD207B002816BF022868 +:105D800000200120BDE81040FFF74ABDE74909683F +:105D900081F8300070472DE9F047E44D2968087B11 +:105DA000002816BF02280020012048730E31FFF79B +:105DB00021FD2968087B022816BF03280122002242 +:105DC00081F82F20082081F82D00487B012600272C +:105DD00001F10E03012804BF5B7913F0C00F0AD054 +:105DE00001F10E03012804D1587900F0C0004028C9 +:105DF00001D0002000E0012081F82E00002A04BF1D +:105E000091F8220010F0040F06D0087D153105F03E +:105E1000C7FC296881F82D0028684760FCF7F8FE68 +:105E20002968C34C4FF00009886094F82D0005F0F4 +:105E3000D3FC804694F82F00002818BFB8F1000F5B +:105E400004D01021404606F050FB68B194F83000B1 +:105E500000281CBF94F82E0000281DD0607B04F1A0 +:105E60000E0101280ED012E066734A4604F10E01BD +:105E70004046FFF714FD94F82D1004F10E0005F0D4 +:105E8000A4FD09E0487900F0C000402831D039462F +:105E900004F10E00FFF73AFD2868C77690F822005B +:105EA00010F0040F08BFBDE8F087002794F82D001C +:105EB00005F09BFC040008BFBDE8F087102106F048 +:105EC00014FB002818BFBDE8F08728683A4600F1A7 +:105ED0001C01C6762046FFF7E2FC286800F11C0191 +:105EE000944806F0D4FDBDE8F0470121914806F042 +:105EF000E9BD05F0A3FD4A4604F10E01FFF7CFFC12 +:105F0000CAE778B58A490446884D407B08732968FA +:105F1000207808706088ADF8000080B200F00102BF +:105F2000C0F3400342EA4302C0F3800342EA830223 +:105F3000C0F3C00342EAC302C0F3001342EA0312F3 +:105F4000C0F3401342EA4312C0F3801042EA8010CB +:105F50004884E07D012808BF012603D0022814BF31 +:105F6000FFDF0226286880F8BA60607E012808BF3B +:105F7000012603D0022814BFFFDF0226286880F81C +:105F8000BB60217B80F82410418C1D290CBF0021AF +:105F900061688162617D80F83510A17B002916BFA0 +:105FA0000229002101210175D4F80F10C0F8151045 +:105FB000B4F81310A0F81910A17EB0F8CE2061F348 +:105FC0000302A0F8CE20E17E012918BF002180F84D +:105FD0003410002078BD55480068408CC0F3001193 +:105FE00019B110F0040F05D002E010F0020F01D03B +:105FF00000207047012070474C4A00231268C2F805 +:10600000C030B2F822C0BCF11D0F02BFC2F8C830C8 +:1060100082F8C4307047002908BFC2F8C8300AD0DF +:10602000936A40F2712C03FB0CF31944491EB1FB37 +:10603000F3F1C2F8C81082F8C400704703463B4829 +:1060400010B50168D1F8C820002A1ABFD1F8C0C025 +:10605000BCF1000F012405D09A4205D90124D01AC1 +:10606000C1F8C800204610BD91F82210002411F09C +:10607000010F1CBF406800884FF0430108BF00209B +:1060800001F009F9EEE72948006890F8B700002808 +:106090000CBF01200020704770B51F2834BF044694 +:1060A0001F240022214D286880F8B920224678302C +:1060B0000EF07EF82868012180F8974080F8B9102A +:1060C00070BD10B51F2828BF1F20C2B2174C002377 +:1060D000206880F8B83080F8B72098300EF068F863 +:1060E0002168012081F8B80010BD1049096881F8C5 +:1060F000BD0070470D48006890F8220000F00100D4 +:1061000070470A48006890F82200C0F340007047CA +:106110000648006890F82200C0F34010704703481A +:10612000006890F82200C0F3C0007047CC00002047 +:10613000A40A0020B00B002001207047F748006837 +:1061400090F8BB00704770B5FEF7A4FFFEF783FF21 +:10615000FEF77EFEFEF7E7FEF04C2068D0F8C01098 +:10616000491CC0F8C01090F83300002530B1FEF78C +:10617000AFFFFEF77EF9206880F833502068457045 +:1061800090F8C410F9B1D0F8C02091421BD8042077 +:1061900002F050FA206890F8220010F0010F0CD0A5 +:1061A00060684321008801F076F860680088FAF79B +:1061B00031FDBDE87040FAF7C7B9BDE87040432132 +:1061C000002001F068B8D0F8C81019B1D0F8C0208C +:1061D000914202D990F83700D8B1042002F02AFA8F +:1061E000206890F8220010F0010F0CD060683C216C +:1061F000008801F050F860680088FAF70BFDBDE8F0 +:106200007040FAF7A1B9BDE870403C21002001F0D0 +:1062100042B8BDE87040002002F00CBA2DE9F84FFA +:10622000BE4E8046174630688B464FF0000A458CBC +:1062300015F0030F10D015F0010F05F0020005D086 +:10624000002808BF4FF0010A06D004E0002818BF5C +:106250004FF0020A00D1FFDF4FF000094C4615F065 +:10626000010F05F002000BD070B915F0040F0BD030 +:1062700049F00800002F18BF40F0030440D090E020 +:1062800010B115F0040F0DD015F0070F10D015F058 +:10629000010F05F0020036D0002808BF15F0040FEA +:1062A00027D03DE0002F18BF49F0090479D134E030 +:1062B0002FB149F0080415F0200F14D071E03168B7 +:1062C00005F0200291F87700104308BF49F001045F +:1062D00067D049F0180415F0200F62D191F8BA1078 +:1062E00008295AD156E0316891F8BA10082951D1DD +:1062F00053E049F00800002F18BF40F0010450D1CE +:1063000040F010044DE0002818BF15F0040F07D02E +:10631000002F18BF49F00B0443D149F0180440E0A6 +:1063200015F0030F3CD115F0040F39D077B1316867 +:1063300049F0080091F8BA1008290CBF40F0020497 +:1063400020F0020415F0200F22D02AE0316805F079 +:10635000200291F87700104308BF49F0030420D0D1 +:1063600049F0180015F0200F09D000BF91F8BA10BD +:10637000082914BF40F0020420F0020411E091F853 +:10638000BA20082A14BF40F0010020F00100EDE718 +:10639000082902D024F0010403E044F0010400E0E5 +:1063A000FFDF15F0400F18BFFFDFA8F8009098F846 +:1063B0000000072120F0200088F80000404606F089 +:1063C00034FB5146404606F033FD2146404606F078 +:1063D00038FD14F0010F0CD03068062300F10E01D7 +:1063E0000022404606F00AFD3068417B404606F038 +:1063F0005CFB14F0020F1BD03068BBF1000F0BD018 +:1064000000F11C0106230122404606F0F7FC0121A1 +:10641000404606F057FB0BE000F115010623012270 +:10642000404606F0EBFC3068017D404606F04AFB32 +:1064300014F0040F18BFFFDF14F0080F17D0CDF8C9 +:1064400000903068BDF800100223B0F8CE000209B9 +:1064500062F30B01ADF800109DF80110032260F308 +:1064600007118DF801106946404606F0C7FC012F60 +:1064700016D1306890F8770090B1404606F0D4FC11 +:106480003368401CC0B293F87710C0F125008142F8 +:10649000B8BF084682B203F15801404606F0FFFC3F +:1064A0000020002818BFFFDF0020002818BFFFDFF2 +:1064B0000020002818BFFFDFBDE8F88F2DE9F84362 +:1064C000164C2068002808BFFFDF2068417811BB08 +:1064D0000178FF291FD0002780F83170877080F87D +:1064E00037703846FEF72DFDFEF795F9206890F9D4 +:1064F000BD00FEF73DFA0A48FEF744FA0948FEF7E8 +:106500000CFD206890F8240010F0010F0CD025201D +:10651000FEF740FA10E00C20BDE8F883CC00002024 +:10652000684802006548020010F0020F18BF2620DC +:1065300068D000BFFEF72EFA206890F8BA10252028 +:10654000FEF735F9206880F82C70FEF7F4FC20681F +:10655000002190F8BA200846FEF765FB0F210520C0 +:10656000FEF7DAF92068FF4D012690F82E10002979 +:1065700001BF90F82F10002990F8220010F0040FAE +:1065800070D0FCF745FB8046206841468068FDF7E7 +:106590004DF8F54990FBF1F901FB190041424046E5 +:1065A000FCF73FF80146206881604168494441603A +:1065B00005F0F3F801462068426891426DD8C0E9C1 +:1065C00001784FF0010895F82D0005F005F9814696 +:1065D00095F82F00002818BFB9F1000F04D0102142 +:1065E000484605F082FFA0B195F8300000281CBF96 +:1065F00095F82E00002824D0687B05F10E010128B3 +:1066000015D019E010F0040F14BF2720FFDF91D13F +:1066100092E732466E7305F10E014846FFF73FF9E7 +:1066200095F82D1005F10E0005F0CFF909E0487935 +:1066300000F0C000402816D0414605F10E00FFF7DB +:1066400065F9206890F8220010F0040F25D095F825 +:106650002D0005F0CAF85FEA00081ED0102105F0F1 +:1066600044FF40B119E005F0E9F9324605F10E01A9 +:10667000FFF715F9E5E72068324600F11C01C67600 +:106680004046FFF70CF9206800F11C01B74806F0FE +:10669000FEF90121B54806F015FA2068417B0E305D +:1066A000FEF71EF9206890F8B81079B390F8B7207B +:1066B00080F8772000F1980158300DF0BEFD206879 +:1066C00090F82210C1F30011E9B9B0F8CE00022110 +:1066D0000609ADF800606846FDF7DCFA28B1BDF8A0 +:1066E0000000C0F30B00B04204D1BDF80000401C14 +:1066F000ADF800002168BDF80000B1F8CE2060F3CD +:106700000F12A1F8CE20206880F8B870206890F8A9 +:10671000B91059B190F8972080F8572000F178010E +:1067200038300DF08AFD206880F8B9702068B0F824 +:10673000CE10D0F8C020090951FA82F190F8BC209F +:10674000DFF82CC2114463460022E1FB0C3212092F +:106750006FF0240302FB031180F8BC1090F82210A4 +:10676000824E90F81B80C1F3001106F12809002920 +:106770005DD03780317821F020013170408C1328B2 +:1067800037D01CDC10284DD0122846D0FFDF00BFC8 +:1067900005F10E01754806F06CF9697B734806F047 +:1067A00084F92068418C1D2918BF15297ED090F8E6 +:1067B000772000F15801304606F0ADF97EE015284B +:1067C00018BF1D28E2D10121304606F02EF930789D +:1067D000B8F1000F40F020003070206812D000F1B6 +:1067E0001C01304606F053F90121304606F06AF9E3 +:1067F000CEE70021304606F018F9307840F020004E +:106800003070C5E700F11501304606F040F9206808 +:10681000017D304606F056F9BAE70621304606F00B +:1068200004F9B5E70221304606F0FFF8B0E7002290 +:1068300041463046FFF7F2FC206890F877100029B7 +:1068400004BF408C10F0010F05D110F0020F08BFFB +:1068500010F0200F04D0012241464846FFF7DEFC2D +:10686000F07810F03F0F1CBF307910F0100F25D0DA +:10687000304606F0D8F82268014692F82400C0F3AA +:106880008003C0F3400C634400F00100034492F81D +:106890002C00C0F38002C0F3400C624400F0010001 +:1068A0001044181AC0B200F00AFD00E006E00090A3 +:1068B000032304226946304606F0A0FA206890F8C7 +:1068C0002200C0F30010B0B12A4E042130463780B8 +:1068D00006F0ABF805F10E01304606F0CAF8697B08 +:1068E000304606F0E2F8206800F1380190F85720B1 +:1068F000304606F034F904F0C5FF03211E4805F0C8 +:1069000054F8216881F83300002005E61B494860EF +:1069100070472DE9F843194C8046206890F83120E3 +:1069200032B1408C1D2808BFFFDFBDE8F8430AE400 +:10693000012639B390F8BC00FEF72CF8206890F8D7 +:10694000BB102520FDF733FF206801224FF496711C +:1069500090F8BB300020FEF7ADF90948FEF7F4FAD5 +:10696000206810E0A40A002040420F00B00B002075 +:1069700053E4B36E000C0020280C0020CC00002053 +:10698000D80B002005E04670867080F83160BDE8C5 +:10699000F883FE48FEF7D8FA2068002590F8241006 +:1069A00090F82C0021EA000212F0010F18BF012517 +:1069B0000ED111F0020F04D010F0020F08BF022513 +:1069C00006D011F0040F03D010F0040F08BF042507 +:1069D0000027B8F1000F5CD0012D1CD0022D08BF9C +:1069E00026201CD0042D14BFFFDF272017D02068DD +:1069F00090F8BA102520FDF7DAFE206890F82210F2 +:106A0000C1F3001171B1002201234FF496711046B9 +:106A1000FEF750F93DE02520FDF7BCFFE7E7FDF765 +:106A2000B9FFE4E790F8BA3001224FF496710020E4 +:106A3000FEF740F9D548C17811F03F0F1CBF00792F +:106A400010F0100F25D0D14805F0EDFF2368014666 +:106A500093F82420C2F38000C2F3400C604402F09B +:106A6000010200EB020C93F82C20C2F38000C2F369 +:106A70004003184402F001020244ACEB0200C0B231 +:106A800000F01DFC0090032304226946BF4806F075 +:106A9000B5F9206890F82C10294380F82C1090F854 +:106AA000242032EA010112D04670408C132821D0F4 +:106AB0001CDC102808BFBDE8F88312281AD000BFDC +:106AC000C0F30010002818BFFFDFBDE8F883418C39 +:106AD0001D2908BF80F82C70E6D0C1F300110029F1 +:106AE00014BF80F8316080F83170DDE7152818BFD9 +:106AF0001D28E5D1BDE8F84301210846FEF725BB76 +:106B0000A34810B50068417841B90078FF2805D046 +:106B100000210846FFF7FDFE002010BDFEF7BAFA7F +:106B2000FEF799FAFEF794F9FEF7FDF90C2010BD77 +:106B300097490120096881F837007047944909682E +:106B400081F83200704770B5002501F0E3FB0028A2 +:106B50007CD08F4C2068417800260122012905D085 +:106B6000022901D003297DD0FFDF70BD8178022684 +:106B700039B390F8220010F0030F67D08548FEF774 +:106B8000E3F920680122962190F8BB301046FEF709 +:106B900091F800219620FEF723FA2068467090F8BD +:106BA000330020B1FDF751FC4020FEF77FFA20684A +:106BB00090F83400002808BF70BDBDE87040FEF7B3 +:106BC000A1BA418CC1F300129AB1102929D090F8D2 +:106BD000330020B1FDF739FC4020FEF767FA6D481D +:106BE000FEF7B2F9206890F8221011F0040F1DD0C2 +:106BF00027E090F8242090F82C309A4211D190F898 +:106C00007700002808BF11F0010F05D111F0020F25 +:106C100008BF11F0200F52D0BDE870400121084696 +:106C200077E6BDE870400021012072E690F835005B +:106C3000012814BF0328102545F00E010020FEF79F +:106C400084FA206890F83400002801E037E009E079 +:106C500018BFFEF757FA00219620FEF7C1F9206809 +:106C6000467070BD817801B3418C11F0010F21D0C5 +:106C700080F8D02090F8D210B0F8D40000F00BFBD0 +:106C800060680088F9F7C6FFF9F75EFC2068467077 +:106C9000FEF700FAFEF7DFF9FEF7DAF8FEF743F940 +:106CA000BDE87040032001F0C5BC8178BDE87040AC +:106CB00001202EE611F0020F04BFFFDF70BDBDE81A +:106CC0007040FFF740BAFFF73EBA10B5304C20686D +:106CD00090F8341049B13630FEF71FFA18B9216820 +:106CE0007F2081F83600FEF703FA206890F8330021 +:106CF00018B1FEF7EDF9FDF7BCFB01F00BFBA8B1F5 +:106D0000206890F82210C1F3001179B14078022870 +:106D100018BFFFDF00210120FFF7FBFD206841784D +:106D200000291EBF40780128FFDF10BDBDE81040DC +:106D3000FFF709BA2DE9F047154F0E4603283A68C8 +:106D4000518C0BD092F8320001F0010410F10009CF +:106D500018BF4FF001094FF0010805E0C1F34004EE +:106D60004FF000094FF00208FDF704FE054634EA33 +:106D7000090008BFBDE8F0873868064C90F833007A +:106D800098B104F064FD3070014605E0B00B0020BE +:106D9000CC000020280C0020FF2806D0E01C04F0C6 +:106DA0004BFD307804F05EFD05432078C0F3801180 +:106DB0003868027D914209D100F115010622E01CDC +:106DC0000DF0CAF9002808BF012000D0002031785A +:106DD000FF2906D0C0B9386890F82D00884215D137 +:106DE00012E098B12078E11CC0F3801004F0D8FCC8 +:106DF000064604F03BFE38B1304604F0F6FC18B10C +:106E0000102105F072FB08B1012000E00020396874 +:106E100091F8221011F0040F01D0F0B11AE0CDB9B1 +:106E2000FE4890F83500002818BF404515D114F8E9 +:106E3000030B2146C0F3801004F0B2FC044604F0BA +:106E400015FE38B1204604F0D0FC18B1102105F031 +:106E50004CFB10B10120BDE8F0870020BDE8F087B1 +:106E60002DE9F04FEE4D804683B02868002740782A +:106E7000022818BFFFDF28687F2490F8341049B13A +:106E80003630FEF74AF9002804BF286880F83640FB +:106E9000FEF72EF9E34805F0E8FD0646B8F1000FCD +:106EA00000F0A381DF4805F079FF002800F09D8104 +:106EB000FDF72EFD002800F098813046D94EFF21C5 +:106EC000DFF864A34FF000084FF0030B4FF0010907 +:106ED000062880F0B981DFE800F0FDFDFD03FD8F9D +:106EE0008DF8001069460320FFF724FF002828686A +:106EF0007CD090F8341011B190F8001159B1286885 +:106F0000807801283ED0C948FEF71EF8286880F82E +:106F100001B000F06EB99DF8003080F80091017862 +:106F200080F80111FF2B10D000F20312511E1846F9 +:106F300004F064FC002808BFFFDF286890F8021105 +:106F400041F0020180F802110DE03178C1F38011A7 +:106F500080F80211B149D1F88721C0F80321B1F8B6 +:106F60008B11A0F80711286800F2091690F8360076 +:106F70007F2808BFFFDF286890F83610317080F84E +:106F80003640BCE7A94CDAF8049004F12806A4F8CE +:106F900000800721204605F048FD0021204605F02D +:106FA00047FF4946204605F04CFF0623002206F124 +:106FB0000901204605F022FF2868417B204605F0A4 +:106FC00074FD286800F1380190F85720204605F03C +:106FD00066FF2046FDF7B8FF28680122962190F849 +:106FE000BB300020FDF766FE90E7FFE780780028C1 +:106FF00040F0FD8000F0F9B88DF8081002A90520D6 +:10700000FFF798FE0028286800F0EA808278884917 +:10701000002A7DD0A1F11F066C6890F8BB90D6F8CD +:107020000F00C4F80E00B6F813006082707D207562 +:10703000B07D6075B6F81700E082B6F81900608080 +:10704000B6F81B00A080B6F81D00E08004F108002F +:107050000DF064FA96F8240000F01F00207696F8F0 +:107060002400400984F86C0184F8549084F8559009 +:10707000286890F8CC1084F8561090F8BD0084F879 +:1070800057009DF80810686800F079F9022001F0B7 +:10709000D1FAA6F12804DAF80090A4F800800821BB +:1070A000204605F0C2FC0021204605F0C1FE4946FD +:1070B000204605F0C6FE6946304605F0EFFC304636 +:1070C00005F009FD0146204605F0EFFC06230022ED +:1070D000694600E0B8E0204605F090FE694630467B +:1070E00005F0CEFC304605F0E9FC0146204605F0EF +:1070F000E9FC062301226946204605F07FFE204672 +:10710000FDF722FF28680122962190F8BB3000E0AD +:1071100006E00020FDF7CEFD286880F801B068E0A9 +:107120006C6832783F4E607BC2F34012104060734F +:10713000D6F80F00C4F80E00B6F813006082707D18 +:107140002075B07D6075B6F81700E082B6F81900BA +:107150006080B6F81B00A080B6F81D00E0804FF0FC +:10716000010A04F108000DF0D9F996F8240000F0A6 +:107170001F00207696F82400400984F86C0184F8FA +:1071800054A084F855A0286890F8CC1084F85610C4 +:1071900090F8BD0084F857009DF80810686800F06A +:1071A000EEF8286880F8D09090F8D210B0F8D400AB +:1071B00000F071F868680088F9F72CFDF9F7C4F958 +:1071C000286880F80180FDF765FFFDF744FFFDF7B3 +:1071D0003FFEFDF7A8FE012001F02CFA09E000BFF8 +:1071E00090F82200C0F3001008B1012701E0FEF77B +:1071F000AAFF286890F8330018B1FDF769FFFDF782 +:1072000038F91FB100210120FFF783FB286841787E +:1072100000291ABF4178012903B00BE0A40A00201D +:10722000CC000020280C002060480200000C002048 +:10723000470C002008BFBDE8F08F4078032818BF36 +:10724000FFDF03B0BDE8F08F286890F82200C0F39C +:1072500000100028CBD0C8E770B5864C06460D4616 +:107260002068807858B1FDF765FA216803463046FA +:1072700091F8BB202946BDE8704001F048BAFDF7FF +:1072800059FA21680346304691F8BA202946BDE8EC +:10729000704001F03CBA784A137882F8F530A2F8D1 +:1072A000F60082F8F410012082F8F20092F8C4008F +:1072B000002818BF92F8C00082F8F800704778B52F +:1072C00004466C4800230093006890F8BA20082A0E +:1072D00004BF4FF4C87240230DD0042A04BF4FF4FA +:1072E000BF72102307D0022A07BF03F1180204233C +:1072F00003F128020823491D01FB032690F8BC2056 +:107300009DF8001062F3050141F040058DF8005032 +:1073100090F8BB00012804BF9DF8020020F0E000B7 +:107320002AD0022818BFFFDF21D000BF25F080003F +:107330008DF80000C4EB041106FB04F001EB8101A1 +:1073400000EB81044D48844228BFFFDF4C48A0FB7E +:107350000410BDF80110000960F30C01ADF8011034 +:10736000BDF800009DF8021040EA014078BD9DF88C +:10737000020020F0E00020308DF80200D6E72DE971 +:10738000F0413C4D04460E46286890F8D000002895 +:1073900018BFFFDF0027286880F8D2702188A0F886 +:1073A000D4106188A0F8EA10A188A0F8EC10E18858 +:1073B000A0F8EE1094F86C1180F8F01090F82F10EF +:1073C00049B1427B00F10E01012A04D1497901F053 +:1073D000C001402935D090F8301041B1427B00F116 +:1073E0000E01012A04BF497911F0C00F29D0DE3007 +:1073F0000DF082F82348FF2E0078C0F380106076ED +:107400001D48D0F88711C4F81A10B0F88B01E0833A +:1074100028681ED0C0F8E410E18BA0F8E81000F155 +:10742000D802511E304604F0E9F9002808BFFFDFFA +:10743000286890F8D71041F0020180F8D710BDE815 +:10744000F081D0F80E10C0F8DE10418AA0F8E210EA +:10745000D0E7C0F8E470A0F8E870617E80F8D7103B +:10746000D4F81A10C0F8D810E18BA0F8DC10BDE8F1 +:10747000F0810000CC000020A40A0020C4BF03005B +:1074800089888888280C0020FE48406870472DE9CC +:10749000F0410F46064601461446012005F098F9D2 +:1074A000054696F85500FEF7A6F8014696F85500F1 +:1074B000022808BFF44807D0012808BFF34803D0CA +:1074C00004280CBFF248F34808444FF47A7100F2E4 +:1074D000E140B0FBF1F0718840F271225143C0EB02 +:1074E0004100001BA0F5597402F0B6FD002818BF3A +:1074F0001E3CAF4234BF28463846A04203D2AF42BA +:107500002CBF3C462C467462BDE8F0812DE9FF4F4C +:107510008FB0044690F855601C98994640EA0900DF +:10752000039094F86500002790460D280CBF0120B9 +:1075300000200990B9F1000F04BF94F80C01032852 +:107540002BD1099848B3B4F88E01404525D1D4F821 +:107550001401C4F80001608840F2E2414843C4F8D5 +:107560000401B4F85A01B4F8E6100844C4F808015C +:10757000204602F07BFDB4F89201E08294F890017D +:107580006075B4F894016080B4F89601A080B4F8F6 +:107590009801E080022084F80C01D4F864010C907A +:1075A000B4F8E6B0B4F85801D4F860A1D4F8541196 +:1075B0000691B9F1000F03D094F8201149B193E07E +:1075C00004F1E00107917431089104F5A075091DDB +:1075D00007E004F59A710791091D089104F5927569 +:1075E000091D0A91B4F85810A8EB0000A8EB01019E +:1075F00009B200B20091002805DAD4F850010690D3 +:1076000001200390084694F80C11002971D001293B +:1076100000F03782022900F05F81032918BFFFDFE5 +:1076200000F0728239460698FAF7FBFF08990126A6 +:1076300040F2712208600A98A0F8008000202870AB +:107640002E7108980068A8606188D4F8140151432D +:10765000C0EB41009049A0F54D70886149698142B5 +:1076600087BF07990860079801600798616A0068FA +:10767000084400F5D270E86002F0EEFC10B1E86852 +:107680001E30E8606E71B4F8D000A0EB080000B2C4 +:107690000028C4BF03206871099800281C9800F0D6 +:1076A000A682C0B1B4F8F81000290CBF0020B4F8CD +:1076B000FA00A4F8FA0094F8FC20401C50438842D9 +:1076C00009D26879401E002805DD6E71B4F8FA0011 +:1076D000401CA4F8FA00B9F1000F00F0AB8294F856 +:1076E0002001002800F0A28213B00220BDE8F08F34 +:1076F000FFE7BAF1000F08BFFFDF94F855106148AB +:1077000090F8280005F079F90C90E18A40F2712098 +:1077100041430C98002200EB41011098002806D04C +:1077200000FB01F15D48B1FBF0F000F10102C4F88B +:107730001021608840F2E24100FB01F210994FF005 +:10774000000006D0554801FB02F1B1FBF0F000F15A +:107750000100C4F8140186B221464FF00100D4F8AC +:1077600028B005F035F8074694F85500FDF743FFBB +:10777000014694F85500022808BF434807D0012865 +:1077800008BF424803D004280CBF41484148084480 +:1077900000F2E1414FF47A70B1FBF0F1608840F201 +:1077A00071225043C1EB4000801BA0F5597602F0D6 +:1077B00053FC002818BF1E3EBB4534BF3846584610 +:1077C000B04203D2BB452CBF5E463E46666294F88B +:1077D0005500FDF72EFF4FF47A7600F2E140B0FB42 +:1077E000F6F000EB0A0794F85500FDF722FF01467A +:1077F00094F85500022808BF234A07D0012808BF83 +:10780000224A03D004280CBF214A224A01EB020B72 +:10781000FDF7F1FE584400F2DB514FF47A70B1FBF2 +:10782000F0F1E08A40F2712242430C98D4F810B192 +:1078300000EB4200401AA0EB0B003844A0F12007F7 +:10784000607D40F2E24110FB01F0049094F8556035 +:107850003046FDF7D0FE0146022E08BF0A4807D089 +:10786000012E08BF094803D0042E0CBF0848094860 +:10787000084400F2E1414FF47A70B1FBF0F000EB04 +:107880004B010DE0500C002004360200A22402003F +:10789000D0FB0100C0D40100D400002040420F0002 +:1078A000049801EB000B3046FDF799FE584400F1B7 +:1078B0006201FD48416194F85500FDF7BAFE00F2FF +:1078C000E1414FF47A70B1FBF0F05044381AB0F552 +:1078D0003D7F38BFFFDFA5E6E08A40F27121D4F892 +:1078E0000421484302EB400210980021002806D0F2 +:1078F00000FB02F1ED48B1FBF0F000F10101C4F82A +:107900001011618840F2E24001FB00F210994FF043 +:10791000000006D0E54801FB02F1B1FBF0F000F1F8 +:107920000100C4F8140186B221464FF00100D4F8DA +:1079300028A004F04DFF074694F85500FDF75BFEC4 +:10794000014694F85500022808BFD94807D00128FD +:1079500008BFD84803D004280CBFD748D7480844EC +:1079600000F2E1414FF47A70B1FBF0F1608840F22F +:1079700071225043C1EB4000801BA0F5597602F004 +:107980006BFB002818BF1E3EBA4534BF3846504630 +:10799000B04203D2BA452CBF56463E466662BBF1A2 +:1079A000000F2ED11C9860B394F855603046FDF757 +:1079B00022FE022E08BFBE4907D0012E08BFBD49D6 +:1079C00003D0042E0CBFBC49BC49084400F2E1417D +:1079D0004FF47A70B1FBF0F0D4F81011E38A084448 +:1079E00040F27121D4F80421594302EB41010F1AEE +:1079F0003046FDF7F4FD0C99081A3844A0F1200731 +:107A00000AE0E18A40F27122D4F80401514300EB0C +:107A10004100D4F81011471AD4F80821D4F8001105 +:107A2000D4F8100101FB020B607D40F2E24110FB33 +:107A300001FA94F855603046FDF7DDFD0146022E4F +:107A400008BF9B4807D0012E08BF9A4803D0042ED8 +:107A50000CBF99489948084400F2E1414FF47A700C +:107A6000B1FBF0F000EB4B0082443046FDF7B7FD70 +:107A7000504400F160018C484161012084F80C0100 +:107A8000D0E5628840F27123D4F814115A43C1EB57 +:107A9000420202FB00F70098D4F800C10BEB000291 +:107AA000D4F80801D4F81031121A0CFB0030521E21 +:107AB00002FB010B607D40F2E24110FB01FA94F8F9 +:107AC00055000646FDF797FD0146022E08BF78488F +:107AD00007D0012E08BF774803D0042E0CBF76488C +:107AE0007648084400F2E1414FF47A70B1FBF0F0BF +:107AF00000EB4B0082443046FDF771FD504400F12D +:107B00006001694841618DE5628840F27123D4F8D3 +:107B100014115A43C1EB420101FB00F794F86400D1 +:107B200024281CBF94F8650024280BD1B4F88E01DA +:107B3000A8EB000000B2002804DB94F891010028B3 +:107B400018BF0646039850B3BBF1000F27D10C981D +:107B5000002814BFBAF1000FFFDF94F85500FDF7BD +:107B60004AFD022E08BF524907D0012E08BF5149D5 +:107B700003D0042E0CBF50495049084400F2E141A3 +:107B80004FF47A70B1FBF0F03F1A94F85500FDF70E +:107B900026FD01460C98401A3844A0F120070098B1 +:107BA000D4F81411584400FB01FA3046FDF723FDC8 +:107BB0000146022E08BF3E4807D0012E08BF3D48AF +:107BC00003D0042E0CBF3C483C48084400F2E1417D +:107BD0004FF47A70B1FBF0F000EB4A0A3046FDF743 +:107BE000FEFC504400F160012F4841611AE5002875 +:107BF0007FF458AD94F80C0100283FF46CAD618817 +:107C000040F27122D4F814015143C0EB41012846DF +:107C100004F08DFD0004000C3FF45DAD1D990029BA +:107C200018BF0880012013B0BDE8F08F94F85C0104 +:107C3000FBF748FB94F85C012946FBF731FA002872 +:107C40001CBF89F0010084F82101002013B0BDE8B9 +:107C5000F08F2DE9F04F1A4C074683B02078894603 +:107C6000114E00254FF00208032804BF207BB842C4 +:107C70007ED1606830612078032818BFFFDF0327BA +:107C8000B9F1080F7FD2DFE809F0041D2828237E10 +:107C90007E796562FEF712FC002818BFFFDFB7701F +:107CA00003B0BDE8F08F0000D400002040420F0078 +:107CB00004360200A2240200D0FB0100C0D401005F +:107CC000500C0020FEF71CFF002818BFFFDFE7E77D +:107CD00003B0BDE8F04FFDF75CBA2775257494F842 +:107CE0002C00012658B14FF47A71A069FAF799FC7B +:107CF000A061002104F1100004F019FD1AE0012137 +:107D00006846FBF7BDFF9DF8000042F210710002CB +:107D1000B0FBF1F201FB1205FDF7F4FF0544294623 +:107D2000A069FAF77EFCA061294604F1100004F076 +:107D3000FEFC461C208C411C0A293CBF3044208498 +:107D4000606830B1208C401C0A2828BF84F8158058 +:107D500000D267753046FEF771F90028A0D0607A2E +:107D600000289DD1207B04F11001FBF799F901E077 +:107D70000BE008E0002808BFFFDF91E7207BFAF75F +:107D800028FF25708CE7FFDF8AE7202F28BFFFDF61 +:107D9000DFF804A407213AF81700F8F709FE0400F9 +:107DA00008BFFFDF202F28BFFFDFFB48218830F806 +:107DB0001700884218BFFFDF01273461B9F1080FAF +:107DC00080F05481DFE809F0049EA6A6A1F0F0EF50 +:107DD000C4F86051F580C4F8645194F8210138B9B1 +:107DE000FAF716FFD4F82C11FBF720FC00281BDC57 +:107DF000B4F81E11B4F85800814206D1B4F8D4107A +:107E0000081AA4F8D600204605E0081AA4F8D600FF +:107E1000B4F81E112046A4F85810D4F84811C4F83C +:107E20002C11C0F850111DE0B4F81C11B4F8580022 +:107E3000091AA4F8D610B4F81C112046A4F858105A +:107E4000D4F82C11C4F84811C4F85011D4F83411E6 +:107E5000C4F8E010D4F83811C4F85411B4F83C1147 +:107E6000A4F8581101F0ACFFFAF7ACFE94F855A055 +:107E700081465046FDF7BFFBBAF1020F08BFC74964 +:107E800009D0BAF1010F08BFC54904D0BAF1040FF7 +:107E90000CBFC449C44908444FF47A7100F2E14070 +:107EA000B0FBF1F1D4F8140140F271220144608872 +:107EB0005043C1EB4000A0F1300AB9F1B70F98BFB1 +:107EC0004FF0B7092146012004F082FC4844AAEB98 +:107ED0000000A0F21939A2462146012004F078FCE6 +:107EE000DAF824109C30814288BF0D1AC6F80C9035 +:107EF0004D4538BFA946C6F8089084F8207186F829 +:107F00000280CDE602F0A3F801E0FDF742F984F823 +:107F10002071C5E6FAF77CFED4F8502101461046E0 +:107F2000FBF784FB48B1628840F27123D4F8141146 +:107F30005A43C1EB4201B0FBF1F094F865100D29F2 +:107F40000FD0B4F85820B4F81E1113189942AEBFE0 +:107F5000481C401C1044A4F81E0194F8220178B972 +:107F600005E0B4F81E01401CA4F81E0108E0B4F8B6 +:107F70001E01B4F8D410884204BF401CA4F81E01AE +:107F8000B4F85A01DFF82492401CA4F85A01B4F85E +:107F90008000B4F87E10401AB4F85810401E08440F +:107FA0001FFA80FB24E053E060E000BF96F80080F9 +:107FB000B8F10C0F28BFFFDF39F8188094F86CA1D6 +:107FC000BAF10C0F28BFFFDF39F81A000023404434 +:107FD00081B202A8CDE90050B4F81E212046FFF777 +:107FE00095FA00283FF45CAE012818BFFFDF27D0C8 +:107FF000B4F81E01ABEB000000B20028D6DA08206E +:1080000084F8740084F87370204601F02AFB84F829 +:108010000C5194F85C514FF6FF77202D00D3FFDF11 +:108020005D4820F8157094F85C01FAF7D2FD202025 +:1080300084F85C01307903B0BDE8F04FF3F7A6BED9 +:10804000B4F81E01BDF808100844A4F81E01CFE7DB +:1080500094F80C01042818BFFFDF84F80C5194F841 +:108060005C514FF6FF77202DDAD3D8E7FFDF17E614 +:1080700010B54F4C207850B101206072FEF75EFDC4 +:108080002078032805D0207A002808BF10BD0C20D6 +:1080900010BD207BFBF716F9207BFBF760FB207BF4 +:1080A000FAF797FD002808BFFFDF0020207010BD01 +:1080B0002DE9F04F3E4F83B0387801244FF000088F +:1080C00040B17C720120FEF739FD3878032818BFD3 +:1080D000387A0DD0DFF8DC9089F803406946072034 +:1080E000F8F7EFFB002818BFFFDF4FF6FF7440E002 +:1080F000387BFBF7E7F8387BFBF731FB387BFAF787 +:1081000068FD002808BFFFDF87F80080E2E70298DB +:1081100000281CBF90F80C1100292AD00088A0422A +:108120001CBFDFF874A04FF0200B4AD00721F8F7EE +:108130003FFC040008BFFFDF94F85C01FBF70FFB76 +:1081400084F80C8194F85C514FF6FF76202D28BFFF +:10815000FFDF2AF8156094F85C01FAF73AFD84F81D +:108160005CB169460720F8F7ACFB002818BFFFDFB9 +:1081700022E06846F8F783FB0028C8D021E0029887 +:1081800000281CBF90F80C11002915D00088A0F51C +:108190007F41FF39CAD114E0840C0020043602006C +:1081A000A2240200D0FB0100C0D4010084480200D8 +:1081B000500C0020D40000206846F8F760FB00282F +:1081C000DDD089F8038087F82C8087F80B8003B016 +:1081D0000020BDE8F08F70B50446FD4890F800041B +:1081E000FC4D400995F800144909884218BFFFDF8B +:1081F00095F8140D4009F84991F80014490988428E +:1082000018BFFFDFF549002001220C7188700A7049 +:108210004870C870F2490870BDE8704048E7EF49FF +:10822000087070472DE9F843ED4C064688462078E3 +:1082300000285CD1EB48FAF772FC2073202856D056 +:10824000032766602770002565722572AEB1012193 +:1082500006F1FC00FBF73DFD0620F8F751FB8146D7 +:108260000720F8F74DFB96F8FC104844B1FBF0F2FC +:1082700000FB1210401C86F8FC00FAF7A3FCDA4958 +:10828000091838BF40F2F65000F23D1086B2FDF7F3 +:10829000F9FBE061FDF736FD4FF0010950B384F8BA +:1082A0000A9001216846FBF7EBFC9DF8000042F2C2 +:1082B00010710002B0FBF1F201FB12000644FAF764 +:1082C000A7FC3146FAF7ADF9A061277567752574EB +:1082D000207B04F11001FAF7E3FE002808BFFFDF5E +:1082E00025840020FEF72AFC0020BDE8F8830C203E +:1082F000BDE8F883FAF78CFC3146FAF792F9A061F1 +:10830000A57284F82C90A8F226502063DDE7B349CB +:1083100048707047B24810B5417A0124002918BF4F +:10832000002409D190F82C1031B1416A006B8142D0 +:1083300084BF0024FEF7FCFB204610BD70B5A74C9F +:108340000546E088401CE080D4E902016278D5F857 +:108350006061002A1CBF324604F019FAA060864210 +:1083600008D895F80C01012804D0E078002804BF53 +:10837000012070BD002070BD70B50C4640F2E24196 +:1083800000FB01F52046FDF736F9022C08BF97499E +:1083900007D0012C08BF964903D0042C0CBF954987 +:1083A000954908444FF47A7100F2E140B0FBF1F0D6 +:1083B00000F54D7085428CBF281A002070BD2DE954 +:1083C000F04F83B04FF00009044680F8209190F8F8 +:1083D000DE00002807BF94F80C01032803B0BDE8B5 +:1083E000F08FFAF715FCD4F8502101461046FBF740 +:1083F0001DF90028DCBF03B0BDE8F08F628840F2B1 +:108400007123D4F814115A43C1EB4201B0FBF1F0CF +:10841000411CB4F858000144A4F81C11B4F8D4105D +:10842000B4F81C21891A09B20029DCBF03B0BDE8E9 +:10843000F08F012184F82211B4F88010B4F87E2066 +:108440006E4F891A491E084485B2DFF890A10DF1DC +:10845000080B25E09AF800600C2E28BFFFDF37F8E4 +:10846000166094F86C81B8F10C0F28BFFFDF37F865 +:108470001800CDE9009B3044B4F81C2181B20123DF +:108480002046FFF743F8002804BF03B0BDE8F08F93 +:1084900001280FD0022812BFFFDF03B0BDE8F08F24 +:1084A000B4F81C01281A00B20028BCBF03B0BDE814 +:1084B000F08FCFE7B4F81C01BDF808100844A4F809 +:1084C0001C01EDE72DE9F0430422002583B00629C5 +:1084D0007DD2DFE801F0074B03191951044680F8FB +:1084E0000C2107E004463D48C178002918BF84F8F4 +:1084F0000C210CD0FAF798FAA4F85A51B4F85800A5 +:10850000A4F81E0184F8225103B0BDE8F083067878 +:108510000C2E28BFFFDF394F94F80C0137F8166096 +:108520004FF00109032807D00128E3D194F86C81AA +:10853000B8F10C0F0AD308E0C4F80851C4F8005190 +:1085400094F86C81B8F10C0F00D3FFDF37F81800F6 +:10855000CDE90095304481B2B4F8D4200023204600 +:10856000FEF7D4FF002818BFFFDFC3E7032180F820 +:108570000C1103B0BDE8F0830546876AB0F814011A +:10858000294686B2012004F023F9044695F85500E7 +:10859000FDF731F895F85510022908BF134907D0A7 +:1085A000012908BF124903D004290CBF11491249FF +:1085B00008444FF47A7100F2E140B0FBF1F06988B1 +:1085C00040F271225143C0EB4100801B18E02DE0C6 +:1085D00001E000E00BE000E019E000E0D400002042 +:1085E000500C0020537C01000AFAFFFF0436020001 +:1085F000A2240200D0FB0100C0D401008448020084 +:10860000A0F5597601F028FD002818BF1E3EA742AC +:1086100034BF20463846B04228BF344602D2A74273 +:1086200028BF3C466C6203B0BDE8F083FFDF03B0B7 +:10863000BDE8F083F8B5894C0246874F0025616894 +:10864000606A052A48D2DFE802F0032F34373E0083 +:10865000A07A002660B101216846FBF71BFB9DF85C +:10866000000042F210710002B0FBF1F201FB1206B1 +:10867000FDF748FB8119A069F9F7D3FFA0612574C4 +:1086800003206075607A38B9207B04F11001FAF795 +:1086900007FD002808BFFFDF2584FAF7C5F9387900 +:1086A000BDE8F840F3F772BBBDE8F840002100F0E8 +:1086B0006DB8C1F86001F8BDD1F86001BDE8F840BF +:1086C000012100F063B884F82C50FAF7ADF938793D +:1086D000BDE8F840F3F75ABBFFDFF8BD70B55E4C5C +:1086E000A178022906BFE188002970BD2569C5F877 +:1086F000640195F85500FCF772FFD5F86411081A6B +:10870000A1680144A160E1680844E06070BD70B5F3 +:108710000546514890F802C0BCF1020F06BF00693F +:1087200000F5B0744E4C002904BF256070BD4FF4B5 +:108730007A7601290DD002291CBFFFDF70BD1046DB +:10874000FCF768FF00F2E140B0FBF6F0281A206069 +:1087500070BD1846FCF76DFF00F2E140B0FBF6F08B +:10876000281A206070BD3D48007800281CBF0020FA +:10877000704710B50720F8F7B5F880F0010010BD7C +:1087800036480078002818BF012070472DE9F047CF +:10879000324C82B0002584F82C50D4F8188084F82C +:1087A0002810E572814625700127277229466068E6 +:1087B00003F030FB6168C1F85081267B81F85C6171 +:1087C000C1F86091C1F85481B1F80080202E28BF13 +:1087D000FFDF244820F81680646884F80C51DFF825 +:1087E0007880A4F8585198F800600C2E28BFFFDF5D +:1087F000DFF8749039F816A094F86C610C2E28BF3D +:10880000FFDF39F816000023504481B200951A4664 +:1088100020460195FEF77AFE002818BFFFDFC4F856 +:108820000851C4F8005184F80C71A4F81E51A4F842 +:108830001C5184F82251B4F85800401EA4F8580086 +:10884000A4F85A51FAF7F0F898F8040002B0BDE81D +:10885000F047F3F79BBA0000D4000020500C002032 +:10886000740C0020840C00208448020070B5FE4C7B +:1088700021690A88A1F8FC2181F8FA0191F85400D5 +:10888000012808BF012503D0022814BFFFDF0225FD +:10889000206980F8FE5190F85500012808BF012595 +:1088A00003D0022814BFFFDF02252069012180F8D0 +:1088B000FF5180F8F811002180F8A4112079BDE85B +:1088C0007040F3F763BA2DE9F04FE74C83B0A0791D +:1088D00010F0010F04BF03B0BDE8F08FA0690123C1 +:1088E0000521C578206990F86520583003F0B5FE61 +:1088F00068B1A81E0A2806D2DFE800F009090505BC +:10890000090905050909A07840F00800A070A078C1 +:1089100000281CBF03B0BDE8F08FA06920274FF0EE +:10892000020890F80390B9F1000F1CBFB9F1010FD4 +:10893000B9F1160F1ED1206990F8640003F076FE9D +:10894000C0B1216991F864001F2813D0202808D0F5 +:10895000B9F1160F0CBFA77084F8028003B0BDE810 +:10896000F08F262081F86400B9F1160F1CBF2A2071 +:10897000FFF77CFF47F6FE7A012600254FF0280B13 +:10898000B9F10C0F00F049810BDCB9F10C0F80F04C +:108990005884DFE809F068412BD9F6F6F5F4F3F6D0 +:1089A000AAD0B9F1150F00F0518211DCB9F1110F05 +:1089B00000F0BE83B9F1120F00F0C981B9F1130FB5 +:1089C00000F0B881B9F1140F00F0D58100F039BC86 +:1089D000B9F1160F00F06C82B9F1180F00F0CE82D9 +:1089E000B9F1FF0F00F0268400F02BBC20690123B1 +:1089F000194690F86720583003F02FFE002840F009 +:108A00002284A06904F018FB216981F87201072013 +:108A100081F8670000F017BC20690123002190F85D +:108A20006520583003F019FE002800F0BA83A069D1 +:108A300004F0FFFA2169A1F88E01B1F85820801ADC +:108A400000B28245A8BF0028DCBF81F874B081F86D +:108A5000736040F3F88301F5C871A06904F0E4FA8B +:108A60000B2021693DE020690123002190F8652059 +:108A7000583003F0F2FD002800F09383A06904F061 +:108A8000AFFA002800F0DD83A0692269B0F80D106C +:108A9000A2F88E11B2F85830C91A09B28A45A8BF97 +:108AA0000029DCBF82F874B082F8736040F3CB8396 +:108AB000017982F89011B0F80510A2F8921104F033 +:108AC00082FA2169A1F89401A06904F07FFA216972 +:108AD000A1F89601A06904F080FA2169A1F8980133 +:108AE0000D2081F8650000F0AEBB20690123002154 +:108AF00090F86520583003F0B0FD002820690BD0B5 +:108B0000A0F88A5090F88C10491C80F88C10102125 +:108B100080F8651000F097BB90F8652001230521CF +:108B2000583003F09AFD00281CBF0820A07040F0C8 +:108B30008A8300F036BB206990F86510112908BFC0 +:108B4000122140F09C82E3E720690123002190F884 +:108B50006520583003F081FDA0B9206990F86520A8 +:108B6000122A0FD001230521583003F076FD00288A +:108B700018BF082000F0158300F097B9B7E0F6E2BF +:108B800036E05EE3206990F88E1031B9A0F88A5083 +:108B900090F88C10491C80F88C1000F1E801A06955 +:108BA00004F063FA206900F1C001A06904F068FADA +:108BB000206990F8C001002818BFFFDF20690188F4 +:108BC000A0F8C21100F5E271A06904F03CFA206936 +:108BD00000F5E671A06904F03EFA206980F8C061F2 +:108BE000142180F865102079F3F7D0F800F02BBB42 +:108BF000206990F86510172940F0418290F88C1098 +:108C0000491E49B280F88C100029B8BFFFDF1B2035 +:108C1000216981F8650000F016BB206990F86610A4 +:108C200011F0020F09D090F8642001230821583078 +:108C300003F013FD002800F0B482206990F8900042 +:108C400010F0020F18D1A06904F02EFA216981F802 +:108C50009100A069B0F80520A1F89220B0F80700B3 +:108C6000A1F8940002E00000F000002091F89000CC +:108C700040F0020081F89000206990F8901011F007 +:108C8000010F05D0206990F8641006291CD114E06A +:108C900090F8660010F0020F18BFFFDF206990F80F +:108CA000661041F0020180F86610A0F88A5090F832 +:108CB0008C10491C80F88C10E4E780F8645080F830 +:108CC00088502079F3F762F8206990F88C11042914 +:108CD00040F0B98280F88C512079F3F757F8206979 +:108CE00090F86410002940F0AE8200F01EBA2069AE +:108CF00090F8660010F0010F77D16946A06904F082 +:108D0000DAF99DF8000000F02501206980F896103E +:108D10009DF8011001F0410180F89710A0F88A50E9 +:108D200090F88C10491C80F88C1090F8661041F077 +:108D300001011CE020690123092190F864205830CA +:108D400003F08BFC002840F0248200F02ABA20694E +:108D500090F8661011F0040F40F02382A0F88A50BA +:108D600090F88C2041F00401521C80F88C2080F88F +:108D7000661000F068BA206990F8660010F0300FB5 +:108D800033D1A06904F0B4F9002800F05A822769B1 +:108D9000A06904F0A9F938872769A06904F0A0F94F +:108DA00078872769A06904F0A1F9B8872769A069C5 +:108DB00004F098F9F887A07910F0020F03D06069E9 +:108DC000C078142812D0206990F864101C290DD0A6 +:108DD00090F84E1001290CD090F89B11002904BF87 +:108DE00090F89A1100290CD003E05BE0206980F82C +:108DF0004E60206990F8661041F0100180F866100E +:108E00001AE090F8661041F0200180F866100288A0 +:108E1000A0F8E021028FA0F8E221428FA0F8E4211F +:108E2000828F00F5D671A0F8E621C08F888781F87F +:108E300032602079F2F7AAFF2069A0F88A5090F8F2 +:108E40008C10491C80F88C1000F0FDB920690123BA +:108E50000A2190F86420583003F0FFFB10B3A0699A +:108E600004F046F9A8B12669A06904F03DF93087FD +:108E70002669A06904F034F970872669A06904F0B6 +:108E800035F9B0872669A06904F02CF9F08701F064 +:108E9000EDFA206980F8885080F8645001F0B6FA45 +:108EA00000F0D1B9A07840F00100A07000F0CBB97B +:108EB000206901230B2190F86520583003F0CDFB89 +:108EC00010B1A77000F0BFB920690123002190F80C +:108ED0006520583003F0C1FB002800F06281206952 +:108EE00090F864002428ECD0A06904F01CF9002854 +:108EF00000F0A781206990F8961041F0040180F8F5 +:108F00009610A1694A7902F0070280F85120097988 +:108F100001F0070180F8501090F8A531002B04BF34 +:108F200090F8A431002B1CD190F855C000F15403E7 +:108F30008C4502BF1978914280F87D6011D000F510 +:108F4000D67180F8F2610288A0F8F42190F85020E0 +:108F500080F8F62190F8510081F84B002079F2F763 +:108F600015FF2069212180F86510A0F88A5090F83B +:108F70008C10491C80F88C1000F065B9206990F8BD +:108F80006410202914BF0027012790F865102229BA +:108F900008BF00F1650804D0002F18BF00F1640875 +:108FA0006DD090F8961041F0040180F89610A069F9 +:108FB00004F0DBF8F0B3D4F81890484604F0C9F890 +:108FC0000090484604F0C9F8814603F03CFC0100DB +:108FD00018D0206990F854208A4213D090F8A43118 +:108FE00023B190F8A63113EA090F4BD0002F04BF2C +:108FF00090F8513013EA090F01D18A4242D890F813 +:10900000A401B8B1DDF80090484603F01CFC78B12B +:10901000216991F8552082420AD091F8A40120B12B +:1090200091F8A70110EA090F2CD091F8A40108B11A +:109030006A4600E026E0A169206903F013FCE8B36A +:10904000A06904F090F82169A1F88E01B1F85820C8 +:10905000801A00B28245A8BF0028DCBF81F874B036 +:1090600081F8736052DD9DF8000081F890019DF851 +:10907000010081F89101242088F8000046E084F87E +:109080000280E0E0206990F8A40100281CBF1E20A7 +:10909000FFF7ECFBB7B1A0692169C07881F8CA007D +:1090A00006FA00F010F0807F08BFFFDF0A21206978 +:1090B00080F8641090F88800002800E014E008BFF1 +:1090C000FFDF0DE088F80050216991F88C00401E08 +:1090D00040B281F88C000028B8BFFFDF01F07BF9B7 +:1090E000206980F87D50AEE0206990F8A40120B19D +:1090F0000020FFF7BBFB88F80050206900F16501F4 +:1091000080F87D50884508BF80F86550206900F1DF +:109110006501884509D190F88C10491E49B280F844 +:109120008C100029B8BFFFDF8DE080F888508AE0FE +:10913000206990F8961041F0040180F89610A0691B +:1091400004F02FF816287ED1206990F864002028BA +:1091500002D0262805D076E0A06904F026F8FFF7B3 +:1091600085FB206980F8645080F888506BE02069A6 +:1091700090F864200E2A03D1A1690979122902D03E +:109180001C2A1AD10FE001230921583003F065FA97 +:1091900038B1206980F87C5080F8885080F864509D +:1091A00051E0A6704FE0A1690979142904BF80F845 +:1091B000645080F888503FF471AE202A03D1A16931 +:1091C0000979162914D0262A03D1A169097916290B +:1091D0000ED0A1690979172904BF90F86520222AC9 +:1091E00013D0E2691AB1FF2908BF80F886612AE02E +:1091F00080F8645080F8885090F86500212818BFE6 +:109200001A2020D0FFF732FB1DE080F8655090F85F +:109210008C10491E49B280F88C100029B8BFFFDFBE +:10922000206980F87D5090F8A401002818BF002024 +:1092300009D0E7E7E06900281CBF206980F8866153 +:1092400001D101F0C8F82069D0E92A12491C42F185 +:109250000002C0E92A1203B0BDE8F08F70B5FB4EE2 +:1092600005460C46306990F8CB00FE2818BFFFDF9A +:1092700032690020002C82F8CB501CBFA2F88A0073 +:1092800070BDA2F88400012082F8880070BD30B55E +:1092900085B005466846FCF73EFA002808BFFFDFA8 +:1092A000222100980BF003F80321009803F040FE00 +:1092B0000098017821F010010170294603F066FE44 +:1092C000E24C0D2D04BF0621009830D00BDCA5F137 +:1092D00002000B2819D2DFE800F0201863191926C4 +:1092E000187018192C00152D7BD008DC112D2DD0ED +:1092F000122D18BF132D09D0142D30D005E0162DD6 +:1093000046D0172D6BD0FF2D6AD0FFDFFCF716FA81 +:10931000002808BFFFDF05B030BD2069009990F834 +:10932000CC000871F2E72169009891F8CC10017126 +:10933000ECE7E26800981178017191884171090A9F +:1093400081715188C171090A0172DFE70321009818 +:1093500003F025FF0621009803F025FFD6E72069DA +:10936000B0F84410009803F0ABFE2069B0F8461046 +:10937000009803F0A9FE2069B0F84010009803F0AF +:10938000A7FE2069B0F84210009803F0A5FEBDE7E3 +:109390002069009A90F8A611117190F8A7014BE08E +:1093A000206900F1F001009803F06EFE206900F1E1 +:1093B000C401009803F072FEA8E7A549D1E90001B5 +:1093C000CDE90201206902A990F8960000F025007D +:1093D0008DF80800009803F09CFE97E701E019E083 +:1093E0002CE02069B0F84010009803F071FE20696D +:1093F000B0F84210009803F06FFE2069B0F84410F6 +:10940000009803F05DFE2069B0F84610009803F064 +:109410005BFE7BE7206990F8A41139B1009990F8C0 +:10942000A6210A7190F8A70148716FE7009A90F899 +:109430005410117190F85500507167E7206990F849 +:109440008721D0F88811009803F0AEFD5EE770B573 +:109450000C4605464FF4007120460AF04AFF25806D +:1094600070BDF7F7AEBB2DE9F0410D460746072169 +:10947000F7F79EFA040008BFBDE8F08194F8AC014C +:109480000026B8B16E700920287094F8AC0178B14C +:10949000268484F8AC61D4F8AE016860D4F8B201D7 +:1094A000A860B4F8B601A88194F8AC010028EFD107 +:1094B0002E7144E094F8B801002837D094F8B80130 +:1094C0000D2818D00E2818BFFFDF38D12088F7F7F5 +:1094D000A1FB0746F7F74DF8A0B96E700E20287073 +:1094E00094F8BA0128712088E88084F8B861384679 +:1094F000F7F739F823E02088F7F78CFB0746F7F7F2 +:1095000038F810B10020BDE8F0816E700D20287091 +:1095100094F8BA0128712088E88094F8BE01287276 +:1095200084F8B8613846F7F71EF808E094F8F001BF +:1095300040B16E701020287084F8F061AF80012077 +:10954000BDE8F08194F8C00190B16E700A202870D7 +:109550002088A880D4F8C401D4F8C811C5F8060042 +:10956000C5F80A10B4F8CC01E88184F8C061E6E7D8 +:1095700094F8CE0140B16E701A202870B4F8D00172 +:10958000A88084F8CE61DAE794F8EA0180B16E70C1 +:109590001B20287094F8EA010028D0D084F8EA61F2 +:1095A000D4F8EC01686094F8EA010028F6D1C6E727 +:1095B00094F8D2012F1DA0B16E701520287094F878 +:1095C000D201002818BF04F5EA75B8D084F8D2613A +:1095D000294638460AF099FF94F8D2010028F5D1BF +:1095E000ADE794F8DE0150B16E701D20287084F84C +:1095F000DE6104F5F07138460AF087FF9FE794F8C2 +:10960000F20138B11E20287084F8F261D4F8F40118 +:10961000686094E794F8F801002808BFBDE8F0817D +:109620006E701620287094F8F801002887D000BFCB +:1096300084F8F861D4F8FA016860B4F8FE01288172 +:1096400094F8F8010028F3D179E70000F000002039 +:109650009C480200FE4AD0600020D0611062117167 +:109660007047002180F8641080F8651080F8681059 +:1096700090F8DE1011B10221FEF724BF0321FEF79E +:1096800021BF2DE9F047F24C814686B020690D4696 +:109690000088F7F7D1FA070008BFFFDFA07828435A +:1096A000A070A0794FF0000510F0200F20691CBFBA +:1096B000A0F87E5080F8E45004D1B0F87E10491C28 +:1096C000A0F87E102069012690F86A1039B990F848 +:1096D000652001230621583002F0BFFF48B3E0881F +:1096E00010F4006F07D0206990F86A10002918BFA5 +:1096F000A0F876501DD12069B0F87610491C89B2C7 +:10970000A0F87610B0F878208A422CBF531A0023B4 +:10971000B4F808C00CF1050C634598BF80F87C6074 +:10972000914206D3A0F8765080F8F0612079F2F7E4 +:109730002DFBA0794FF0020A10F0600F11D02069C4 +:1097400090F8681011B1032906D00AE080F868602B +:109750000121FEF7B7FE04E080F868A00121FEF7C2 +:10976000B1FE206990F86810012905D1E18811F453 +:10977000807F18BF80F868A04FF00808B9F1000F8B +:1097800040F09981E28812F4007F18BFA0F8F850E9 +:1097900004D1B0F8F810491CA0F8F81012F0080F26 +:1097A00050D0A17800294DD190F8CB00FE2808BFF9 +:1097B000FFDFFE21206980F8CB1090F86510192991 +:1097C00007D0206990F864101F2911D027292AD0CA +:1097D0002FE080F88D5090F88C10491E49B280F827 +:1097E0008C100029B8BFFFDF206980F86550E8E7DA +:1097F00090F8650002F01AFF80B12069262101234C +:1098000080F8641090F865200B21583002F025FF95 +:10981000002804BF2A20FFF729F80AE02169202048 +:1098200081F8640005E080F8856180F8645080F874 +:109830008850206990F86710082904BF84F800A0B8 +:1098400080F8CBA0FFF73FF8A07910F0040F07D005 +:10985000A07828B9206990F86700072808BF26700B +:1098600000F038FCA07910F0100F09D0A07838B9BA +:10987000206990F865100B2904BF0C2180F8651051 +:10988000E07810F0080F11D020690123052190F82D +:109890006520583002F0E1FE28B184F8028020698A +:1098A00080F8B85102E0002001F0F2FAE0690028E7 +:1098B0005BD000950195029503950495206990F879 +:1098C0005500FBF798FE4FF47A7100F5FA70B0FB83 +:1098D000F1FA206990F85500FBF781FE5044ADF88D +:1098E000060020690188ADF80010B0F85810ADF8F6 +:1098F00004104188ADF8021090F8860130B1A069DB +:10990000C11C039103F0FEFA8DF81000206990F855 +:1099100085018DF80800E16968468847206980F86C +:10992000865180F885510399F9B190F88411E1B915 +:1099300090F86410272918D09DF81010039AA1B14F +:109940001378FF2B06D0072B02BF02295178FF297D +:1099500002D00AE01B2908D880F884610399C0F876 +:1099600088119DF8101080F8871100F0CCFD01F0EF +:1099700085FA0028206918BFA0F8D85004D1B0F8A3 +:10998000D810491CA0F8D81001F07BFA40B1216929 +:1099900091F8E40002289CBF401C81F8E40004D840 +:1099A000206990F8E400022806D92069A0F8D85070 +:1099B000A0F8DA5080F8E45020690123002190F8E3 +:1099C0006520583002F049FE20B9206990F8650002 +:1099D0000C285AD120690123002190F864205830C6 +:1099E00002F03BFEB0B320690123002190F867200C +:1099F000583002F032FE68B3206990F868100229EE +:109A000004BF90F8E40000283FD13846F6F781FB08 +:109A100000B3206990F8CB10FE2936D1B0F8D210EF +:109A2000012932D980F8DD60B0F88010B0F87E20CE +:109A30008B1E9A42AFBF0121891A491E89B2B0F824 +:109A4000D82023899A422EBF01229A1A521C02E082 +:109A5000F000002019E038BF92B2914288BF114651 +:109A6000012908BF80F8DD5090F869218AB1B0F86B +:109A7000DA20B0F86A0182422FBF0120801A401C10 +:109A800080B2814288BF014603E02069012180F84D +:109A9000DD502069B0F85820114489B2A0F8D410E4 +:109AA00090F86830002B18BF012B5DD0022B1CBF33 +:109AB000032BFFDF09D0E088C0F340200028206995 +:109AC00018BFA0F8E65059D151E090F86730082B44 +:109AD00021D0B0F87E10B0F8802000278B1C9A426D +:109AE00006D3511A891E0F043F0C1CBF791E8FB27A +:109AF00090F87C1051B190F864200123092158306E +:109B000002F0ABFD002808BF002729D0206990F89B +:109B10006A1089B908E0B0F87E30032B24D3B0F87E +:109B200080101144491C1FE090F865200123062194 +:109B3000583002F092FD78B121690020B1F8782008 +:109B4000B1F876108B1C9A4203D3501A801E18BFAE +:109B5000401EB84238BF87B2002F1CBF781E87B2A4 +:109B60002069B0F8D4103944A0F8D010A3E7B0F8B9 +:109B7000E610B0F8D6201144A0F8E610206990F85D +:109B8000701139B990F8672001231946583002F056 +:109B900064FD38B12069B0F88210B0F8D6201144C5 +:109BA000A0F88210206990F8883033B1B0F88410A2 +:109BB000B0F8D6201144A0F8841090F98C20002A27 +:109BC00006DDB0F88A10B0F8D6C06144A0F88A105B +:109BD0004FF03D0CB9F1000F18BF80F874C049D1A7 +:109BE0002178022911D0012908BF90F872113FD0C5 +:109BF000A17821B380F8736011F0140F18BF1E21F3 +:109C000009D000BF80F8741050E090F8CC100629FD +:109C100018BF16212CE011F0080F18BF80F874C08F +:109C200044D111F0200F18BF2321EBD111F0030F05 +:109C300008BFFFDF2A20216981F8740032E02BB1D0 +:109C4000B0F88410B0F88630994210D2002A05DDB1 +:109C5000B0F88A10B0F88620914208D2B0F882207D +:109C6000B0F880108A4208D390F870212AB12221DE +:109C700080F8741080F8736018E090F868203AB1AA +:109C8000B0F87E208A4228BF80F87480F2D209E0C2 +:109C9000B0F87E10062905D33E2180F8741080F8B4 +:109CA000736003E0206990F8731079B1206980F83F +:109CB000645080F8655080F8685090F8DE100029F4 +:109CC00014BF02210321FEF7FDFB02E00021FEF795 +:109CD000F9FB206980F8DE5006B0BDE8F047FBF7DD +:109CE0004FBDF84902468878CB78184313D108460F +:109CF00000694AB1897911F0080F03D090F8670024 +:109D0000082808D001207047B0F84810028E914210 +:109D100001D8FEF713BB0020704770B5E94C05462B +:109D20000E46E0882843E08015F0020F04D015F0BD +:109D3000010F18BFFFDF666115F0010F4FF0000241 +:109D40004FF001001AD0A661F178062902D00B2944 +:109D50000BD013E0216991F86530172B0ED1002349 +:109D6000C1E9283381F8690008E0216991F865307C +:109D7000112B04BF81F8692081F88E0015F0020FC5 +:109D800018D06169C978052902D00B290BD011E0E0 +:109D9000216991F86520152A0CD10022C1E92A22F7 +:109DA00081F86A0006E0206990F86510102908BF64 +:109DB00080F86A2015F0800F1CBF0820E07070BD8D +:109DC0002DE9F84FBF4C00254FF00108E580A57044 +:109DD000E5702570206168F30709074680F8DE808A +:109DE0000088F6F729FF5FEA000A08BFFFDF206955 +:109DF0000088FBF78DFC20690088FBF7AFFC206929 +:109E0000B0F8D21071B190F8CB10FE290FD190F8B4 +:109E1000701189B190F8672001231946583002F07B +:109E20001CFC88B1206990F8CB00FE2804D0206982 +:109E300090F8CB00FFF72BFA206990F8DF1000298B +:109E400018BF25811BD10FE02069A0F8825090F83F +:109E5000711180F8CC1000210220FFF7FFF9206972 +:109E600080F8DD500220E5E790F8AC1129B9018CAB +:109E70008288914288BF218101D881882181B0F8F0 +:109E8000D610491E8EB2B0F8D8103144A0F8D810C0 +:109E900090F8DC1000291CBFA0F8DA5080F8DC50E4 +:109EA00004D1B0F8DA103144A0F8DA10B0F87E101E +:109EB0003144A0F87E1090F86A1039B990F8652006 +:109EC00001230621583002F0C8FB28B12069B0F800 +:109ED00076103144A0F876102069B0F8D21001292C +:109EE0009CBF491CA0F8D210002E18BF80F8E45087 +:109EF00090F8DD10A1B1B0F8D800218988420FD2C6 +:109F00005046F6F706F958B1206990F8691139B151 +:109F1000B0F8DA10B0F86A01814228BF00F0B4FF4F +:109F2000206980F8DD5090F865100B2918BF0C29C6 +:109F300016D1B0F85820B0F88E31D21A12B2002AD9 +:109F40000EDBD0F89011816090F89411017302211A +:109F500001F060FF206980F8655080F898804AE041 +:109F6000242924D1B0F85810B0F88E21891A09B2EA +:109F700000291CDB90F8A42190F89011002908BF5B +:109F800090F8541080F8541090F89111002908BFEF +:109F900090F8551080F85510002A1CBF0020FEF7DD +:109FA00065FC206980F8655080F87D5023E090F8CA +:109FB0006410242918BF25291DD1B0F85810B0F815 +:109FC0008E21891A09B2002915DB90F89011002919 +:109FD00008BF90F8541080F8541090F8911100299F +:109FE00008BF90F8551080F855100020FEF73EFC91 +:109FF000206980F86450216901F15800B1F8D62039 +:10A0000002F02CF9206990F86911002918BFA0F816 +:10A01000DA502D4800902D4B2D4A3946484600F025 +:10A0200073FE216A00291CBF6078FBF720F82069C5 +:10A030000123052190F86520583002F00EFB00281E +:10A0400008BFBDE8F88FBDE8F84F00F066BC00F02F +:10A05000FBBE1C49C86170471A48C069002818BF78 +:10A0600001207047174A50701162704710B50446BE +:10A07000B0F894214388B0F89611B0F898019A424C +:10A0800001BFA3889942E38898420FD02388A4F89F +:10A09000B031A4F8B221A4F8B411A4F8B60101209B +:10A0A00084F8AC0107480079F1F770FE01212046E1 +:10A0B00001F0B0FE002084F86500032084F86800F9 +:10A0C00010BD0000F000002083960100E39C010019 +:10A0D0001B9D010070B5FE4CA07910F0020F08BF67 +:10A0E00070BDA078002818BF70BD6169F8482722AC +:10A0F000CB780E26002500690D2B78D00BDCA3F160 +:10A1000002030B2B1FD2DFE803F0201E808B9F2F52 +:10A110001E591E73D100152B00F02A810BDC112B68 +:10A1200065D0122B00F0F480132B00F0FF80142B6D +:10A1300000F00E8107E0162B00F03281172B00F0A3 +:10A140003F81FF2B35D0FFDF70BD90F867200123E2 +:10A150001946583002F081FA002818BF70BD082057 +:10A16000216981F8670070BD90F8643009790A2B85 +:10A1700001BF90F8CA308B4280F8645080F8885054 +:10A1800008BF70BD90F8663013F0080F0DD023F0B3 +:10A19000080180F8661090F88C10491E49B280F8CA +:10A1A0008C100029A8BF70BDCFE0FF291CBFFFDFC6 +:10A1B00070BD80F8642080F8845170BD90F866000E +:10A1C00010F0010F08BFFFDF216991F88C00401EDD +:10A1D00040B281F88C000028B8BFFFDF206990F8FA +:10A1E000661021F0010100BF80F8661070BD21E00B +:10A1F00090F86500102818BFFFDF0121206980F862 +:10A200008D10112180F8651070BD90F8650014283C +:10A2100018BFFFDF0121206980F88D101521F1E7BB +:10A2200090F86500152818BFFFDF1720216981F815 +:10A23000650070BD90F86500152818BFFFDF192074 +:10A24000216981F8650070BD90F865001B2818BF72 +:10A25000FFDF206980F88D5090F8B801002818BF02 +:10A26000FFDF206990F88E1049B180F88E50018888 +:10A27000A0F8BC1180F8BA5180F8B8610AE00188F2 +:10A28000A0F8BC1180F8BA51012180F8BE110D214F +:10A2900080F8B8110088F6F7BDFCF6F755F920797B +:10A2A000F1F774FD206980F8655070BD90F88C114D +:10A2B000042915D0206990F8661011F0020F08BF2C +:10A2C00070BD90F88C10491E49B280F88C1000299E +:10A2D000B8BFFFDF206990F8661021F0020183E724 +:10A2E00090F8642001230021583002F0B6F90028CC +:10A2F00008BFFFDF206990F8901011F0020F07BF30 +:10A30000062180F8641080F8885080F88C51D1E7DD +:10A3100090F8642001230021583002F09EF90028B3 +:10A3200008BFFFDF206980F8646070BD90F8661098 +:10A3300021F0040180F8661090F88C10491E49B293 +:10A3400080F88C100029A8BF70BDFFDF70BD00BF72 +:10A3500090F8642001230021583002F07EF9002893 +:10A3600008BFFFDF1C20216981F8640070BD00BFB9 +:10A3700090F8660000F03000102818BFFFDF206959 +:10A3800090F8661021F0100180F8661090F88C109B +:10A39000491E49B280F88C100029A8BF70BDD4E7CF +:10A3A00090F8642001230021583002F056F900286B +:10A3B00008BFFFDF1F20216981F8640070BD00BF66 +:10A3C00090F8650021281CBF0028FFDF22202169AA +:10A3D00081F8650070BD3E49086990F8662012F06A +:10A3E000080F1EBF01208870704742F0080280F8F5 +:10A3F00066208969C97880F8C9100021A0F88A1000 +:10A4000090F88C10491C80F88C10704710B5304CB7 +:10A4100005212069FEF756F8206990F84E100129B1 +:10A4200002BF022180F84E1010BD00F5D6710288DF +:10A43000A0F8D421028EA0F8D621828EA0F8D821CF +:10A44000028FB0F844309A4228BF1A46CA85828FDC +:10A45000B0F84600824238BF10460886012081F8D5 +:10A4600026002079BDE81040F1F790BC184830B4C0 +:10A47000006990F84E30B0F832C0C48EB0F8401089 +:10A48000428F022B28D08A4238BF11460186C28FE4 +:10A49000B0F842108A4238BF11468186028FB0F868 +:10A4A00044108A4238BF11464186828FB0F8461068 +:10A4B0008A4238BF1146C186418E614588BF8C46AD +:10A4C000A0F832C0C18EA14288BF0C46C48601E00C +:10A4D000F000002030BC7047038E9A4228BF1A4615 +:10A4E000C58F838E9D4238BF2B468A4238BF1146A6 +:10A4F0000186B0F842108B4228BF0B4683860021AC +:10A5000080F84E10CAE770B5FE4C206990F8CB1069 +:10A51000FE2906BFA178002970BD90F867200123AD +:10A520001946583002F099F8002818BF70BD20690C +:10A53000002590F8701159B1A0F8825090F871116F +:10A5400080F8CC10BDE8704000210220FEF786BEE6 +:10A5500090F8652001230421583002F07EF80600AF +:10A560000CD0D4F810C09CF86500102861D01428D5 +:10A5700065D015287BD01B287ED0BEE0216991F8DC +:10A58000660010F0010F05D0BDE8704001210920E0 +:10A59000FEF764BE10F0020F0BD001210C20FEF775 +:10A5A0005DFE206990F8901041F0010180F8901054 +:10A5B00070BD10F0040F05D0BDE8704001211320DC +:10A5C000FEF74CBE10F0080F09D091F8C90081F8D1 +:10A5D000CC00BDE8704001210720FEF73FBE10F01F +:10A5E000100F02D091F89B0120B191F8650021284D +:10A5F00073D179E091F89A0188B1B1F89C01A1F882 +:10A600004000B1F89E01A1F84200B1F8A001A1F804 +:10A610004400B1F8A201A1F8460081F89A51FFF771 +:10A6200025FFFFF7F3FEBDE8704001211520FEF77E +:10A6300015BEBDE8704001210B20FEF70FBEF9F7F3 +:10A6400025FB0C2838BF70BD08212069F030F9F7D0 +:10A6500021FB28B120690421C430F9F71BFB00B9A4 +:10A66000FFDFBDE8704001210420FEF7F7BD9CF834 +:10A67000730101280DD000E030E0022818BF70BD42 +:10A680009CF88E00D8B106208CF8CC000121022065 +:10A690001DE09CF8B801002818BF70BD0CF1B00394 +:10A6A00000220CF1E8010CF5BA7001F052FF012113 +:10A6B0000520FEF7D3FD206980F8735170BD9CF82A +:10A6C000960010F0040F14BF11200D200121FEF799 +:10A6D000C5FD206980F8735170BD0EE0BDE8704083 +:10A6E00001210620FEF7BABD91F87D00C0B991F8AE +:10A6F000A40110B191F8A50190B1206901230021B6 +:10A7000090F86420583001F0A8FFC8B120690123F7 +:10A71000042190F86520583001F09FFF30B10FE020 +:10A72000BDE8704001211720FEF798BD206990F820 +:10A730007C0028B1BDE8704000211220FEF78EBDDC +:10A74000206990F864200A2A2BD0002E18BF70BD13 +:10A7500001230021583001F080FF48B1206990F8B2 +:10A760008C11042904BF90F8900010F0030F22D040 +:10A7700020690123002190F86420583001F06DFF1A +:10A7800000287DD0206990F89A1111B190F89B11A2 +:10A79000E9B190F8A411002972D090F8A511E9B39D +:10A7A00092E090F8CA1080F8CC10BDE8704000210B +:10A7B0000720FEF753BD00210C20FEF74FFD206956 +:10A7C00090F8901041F0010180F8901070BDB0F841 +:10A7D0009C11A0F84010B0F89E11A0F84210B0F8FB +:10A7E000A011A0F84410B0F8A211A0F8461080F80B +:10A7F0009A5190F8660010F0200F13D0FFF736FE44 +:10A80000FFF704FE01211520FEF728FD206990F8CE +:10A81000661021F0200141F0100100E008E080F80E +:10A82000661070BDBDE8704000211420FEF716BD13 +:10A8300090F8652001230B21583001F00EFFF8B984 +:10A84000206990F85400012808BF012503D0022890 +:10A8500014BFFFDF0225206990F85500012808BFCA +:10A86000012603D0022814BFFFDF02262069012D34 +:10A8700090F8A61105D0022D08BF022903D00DE0E3 +:10A8800022E001290AD190F8A711012E04D0022E4E +:10A8900008BF02290BD001E0012908D090F86520FB +:10A8A00001230321583001F0D8FE68B903E00020ED +:10A8B000FDF7DCFF08E020690123022190F8652004 +:10A8C000583001F0CAFEB0B120690123002190F890 +:10A8D0006420583001F0C1FE002808BF70BD206917 +:10A8E00090F88401002808BF70BD0021BDE87040C9 +:10A8F000FF20FEF7B3BCBDE8704000211620FEF734 +:10A90000ADBC0000F000002030B5FB4C05462078BF +:10A91000002818BFFFDF657230BDF74901200872BB +:10A9200070472DE9F14FF54F39464E68304696F89D +:10A93000551001F042FF96F8551080B211F00C0F3F +:10A940006FF00D047FD0B0F5747F38BF002506D3BB +:10A950005038C11700EB916004EBA01085B2708EE7 +:10A96000A84238BF0546E648DFF88C93C9F82400B2 +:10A97000786800F15808834609F13400BBF832705A +:10A9800040689BF8551090F86AA0584601F015FFF2 +:10A990009BF8551080B211F00C0F5FD0B0F5747FAA +:10A9A00038BF002406D35038C21700EB926004EB86 +:10A9B000A01084B2A74238BF3C46BAF1000F1CBFBA +:10A9C000201D84B2E0B2F9F709FF98F812000028C0 +:10A9D0004FD008F15801CA4891E80E1000F50274F2 +:10A9E00084E80E10D8F86810C0F82112D8F86C105E +:10A9F000C0F8251200F58170FAF7A6FABF48007872 +:10AA000000280CBF0120002080F00101BD48017624 +:10AA1000D8E91412C0E90412A0F58372D9F8241001 +:10AA2000F9F7B5FD96F85500012808BF002204D0BB +:10AA300002281ABFFFDF00220122E9B20120F9F744 +:10AA4000B4FD1CE0FFE7022919BF04EBD00085B27A +:10AA50006FF00E0101EB900081D17FE7022919BF51 +:10AA600004EBD00084B26FF00E0202EB9000A1D193 +:10AA70009FE7D9F82400FAF767FAF9F7B9FD0098CB +:10AA800050B9012296F8553096211046FAF712F97E +:10AA900000219620FAF7A4FA96F82C00012808BFA6 +:10AAA000FAF730FB022089F80000BDE8F88F2DE9A5 +:10AAB000F04FDFF8488283B0414681464D68A1F1EE +:10AAC0001400009095F85D0005F158060127A1F1EA +:10AAD000340470B3012879D0022878D0032818BF35 +:10AAE000FFDF75D0206A0823017821F0080101708A +:10AAF000B27903EAC202114321F004010170F27934 +:10AB0000042303EA8202114321F01001017096F838 +:10AB100005B0E06AF5F70DFB8246FAF743FEBBF19C +:10AB2000020F7AD0BBF1010F78D0BBF1030F76D0C2 +:10AB30008AE0FFE700F0CAFB0146284601F03BFE31 +:10AB40001FFA80FB00F0C2FB10F00C0F6FF00D013C +:10AB50004FF0000A20D0BBF5747F38BF504607D3B2 +:10AB6000ABF15000C21700EB926001EBA01080B275 +:10AB7000298E814238BF0846ADF80800A5F8480084 +:10AB80000098FAF7EEFD90B1216AA77062694FF460 +:10AB90008060904703202CE0022819BF01EBDB0006 +:10ABA00080B26FF00E0000EB9B00E1D1DFE701AA5D +:10ABB00002A9E06AF5F7F8F9206210B196F83510AD +:10ABC00039B10098FAF7A1FD77718BE713E016E031 +:10ABD00026E09DF8041031B9A0F800A080F802A08A +:10ABE000012102F0A5F9BDF80810206A02F0DFFA91 +:10ABF0000220707176E70098FAF787FD72E7B5F8E2 +:10AC00004800ADF8000001AA6946E06AF5F7CCF902 +:10AC10002062002808BFFFDF64E708E00BE00EE0D9 +:10AC20000098FAF79EFD002808BFFFDF5AE730EAD8 +:10AC30000A0009D106E030EA0A0005D102E0BAF1C3 +:10AC4000000F01D0012100E00021206A027842EAD1 +:10AC500001110170717C00291CBF7179012933D069 +:10AC600006F15801264891E80E1000F5027A8AE8AC +:10AC70000E10B16EC0F82112F16EC0F8251200F569 +:10AC80008170FAF761F998F8000000280CBF0121E3 +:10AC900000211C480176D6E91212C0E90412A0F581 +:10ACA0008371226AF9F773FC95F85400012808BFF4 +:10ACB000002204D002281ABFFFDF00220122FB215C +:10ACC0000020F9F772FC03E0FAF73EF9F9F790FC7F +:10ACD000B9F1000F06D195F85430012296210020D9 +:10ACE000F9F7E8FF6771206A0188E18180782074B4 +:10ACF000277003B0BDE8F08F140100204801002048 +:10AD0000C80C0020D00E00202DE9F0471E46174643 +:10AD100081460C46FE4DDDF82080287828B9002FAA +:10AD20001CBF002EB8F1000F00D1FFDFC5F81C805A +:10AD3000C5E90576C5E90D9400272F72EF712F71D3 +:10AD4000EF706F71AF71AF70AF81F24E04F15808C0 +:10AD50002088F5F771FFE8622088F5F75BFF28632C +:10AD6000F9F759FD94F95700F9F702FE04F11200C2 +:10AD7000FAF7D3F804F10E00F9F704FE3078002852 +:10AD80000CBF03200120FAF7DCF898F81A00F9F755 +:10AD900001FEFAF7D0F83078002804BFFF2094F8BD +:10ADA000544023D098F81250B4F8328094F85510DB +:10ADB000204601F002FD94F8554080B214F00C0FCB +:10ADC0006FF00D012CD0B0F5747F06D35038C21748 +:10ADD00000EB926001EBA01087B24046B84528BF57 +:10ADE0003846002D1CBF001D80B2C0B22146F9F7C5 +:10ADF000F5FC3078F8B1706890F86801002818BF49 +:10AE0000F9F766FD224600210120F9F70CFF706872 +:10AE1000D0F8E000FAF79BF8BDE8F047012080E5A4 +:10AE2000022C19BF01EBD00087B26FF00E0101EBCD +:10AE30009000D2D1D0E7002122460846F9F7F3FE70 +:10AE4000BDE8F047012032E6B24800B50178343859 +:10AE5000007819B1022818BFFFDF00BD012818BF14 +:10AE6000FFDF00BDAA4810B50078022818BFFFDF39 +:10AE7000BDE8104000F080BA00F07EBAA4484079E6 +:10AE80007047A34800797047A14901208871704735 +:10AE90002DE9F04706009F489D4D406800F1580499 +:10AEA000686A90F8019018BF012E03D1296B08F051 +:10AEB00093FE6870687800274FF00108A0B1012860 +:10AEC0003CD0022860D003281CBFFFDFBDE8F0871C +:10AED000012E08BFBDE8F087286BF5F71FFB687AE5 +:10AEE000BDE8F047F0F752BF012E14D0A86A002841 +:10AEF00008BFFFDF6889C21CD5E9091009F058F9BD +:10AF0000A86A686201224946286BF5F783F9022E88 +:10AF100008BFBDE8F087D4E91401401C41F10001ED +:10AF2000C4E91401E079012801D1E77101E084F856 +:10AF30000780687ABDE8F047F0F728BF012E14D0EB +:10AF4000A86A002808BFFFDF6889C21CD5E909107C +:10AF500009F02EF9A86A686200224946286BF5F7C5 +:10AF600059F9022E08BFBDE8F087D4E91410491C36 +:10AF700040F10000C4E91410E07901280CBFE7712A +:10AF800084F80780BDE8F087012E06D0286BF5F71E +:10AF9000C5FA022E08BFBDE8F087D4E91410491C99 +:10AFA00040F10000C4E91410E0790128BFD1BCE7EA +:10AFB0002DE9F041574F3846A7F13404406800F1BD +:10AFC00058052078012818BFFFDFA878012648B16E +:10AFD0000021A970A6706269042090473878002883 +:10AFE00018BF2E71206A0321007831EA000004BFE7 +:10AFF000E878002805D1EE70216AA6706269022007 +:10B0000090470121002000F0D6F918B1BDE8F041C9 +:10B0100000F0B2B9BDE8F041002082E42DE9F14F23 +:10B020003C4E4FF000083046A6F1340540683178B8 +:10B0300000F1580A2878C146022818BFFFDFA88906 +:10B0400040F40070A88171683078FF2091F85410A6 +:10B05000F9F7C4FB009800289AF8120000F0FD8070 +:10B06000F9F7ECFAF9F7DAFA012788B99AF8120039 +:10B0700070B1686A417859B100789AF80710C0F346 +:10B08000C000884204D1EF70BDE8F84F00F074B9F9 +:10B09000686A41786981002908BFC5F8288003D013 +:10B0A000286BF5F771F8A862A88940F02000A88104 +:10B0B00085F804803078706800F1580B044690F8E9 +:10B0C0002C0001281AD1FAF713F85946204601F04E +:10B0D00080FA98B13078002870680CBF00F58A704B +:10B0E00000F5F570218841809BF8081001719BF8EC +:10B0F000091041710770687AF0F748FE686A9AF89B +:10B1000006100078C0F3800088423BD0307803E01E +:10B110001401002048010020706800F1580490F8E4 +:10B120005D0058B3022847D084F8058030780028A5 +:10B130001CBF2079002806D084F80480AF706A69AB +:10B14000414610209047E07890B184F80380FAF7E8 +:10B1500017FB002808BFFFDF0820AF706A690021D5 +:10B160009047D4E91202411C42F10000C4E91210D8 +:10B17000A07901280CBF84F80680A771A88940F443 +:10B180008070A881686A9AF807300178C1F3C0021C +:10B190009A424FD13278726801F0030102F15804EB +:10B1A000012918BF022932D003291CBFE87940F0D9 +:10B1B000040012D0E8713DE0E86AF4F721FF0028AE +:10B1C00008BFFFDFD4E91210491C40F10000C4E9B8 +:10B1D0001210687AF0F7DAFDA6E701F0C1FE90B12F +:10B1E000A770A989384641F40061A981696AAF70E6 +:10B1F0006A699047E079012803D100BF84F807808D +:10B2000018E0E77116E0E87940F01000D2E74078E6 +:10B21000F8B1A98941F40061A981A96A51B1FB285B +:10B22000F1D8287A002808BFB94603D080206A697F +:10B23000002190470120009900F0BDF8B0B1B9F1AC +:10B24000000F1CBF0020FFF723FEBDE8F84F00F001 +:10B2500093B8E0790128D4D1D0E7002818BFF9F7D6 +:10B2600026FAA88940F04000A881E3E7B9F1000F71 +:10B270001CBF0120FFF70CFE0020FFF718FCB9F1FE +:10B28000000F08BFBDE8F88F0220BDE8F84FFFE5CA +:10B2900070B50D4606466848674900784C6850B15D +:10B2A000F9F748FA034694F8542029463046BDE899 +:10B2B0007040FDF72CBAF9F73DFA034694F8542094 +:10B2C00029463046BDE8704005F00ABD5A4802786C +:10B2D0004168406801F1580C91F8643090F85400CE +:10B2E000242B1CBF9CF80DC0BCF1240F13D01F2BC6 +:10B2F00018BF202B24D0BCF1220F18BF7047002AA2 +:10B3000008BF704791F8A62191F85110114011F033 +:10B31000010F27D02EE04AB191F89011002908BF03 +:10B320007047012818BF012924D021E091F8F210BC +:10B33000002908BF7047012818BF01291AD017E05B +:10B34000BCF1220FDBD0002A08BF704791F8A6118C +:10B3500011F0010F0ED111F0020F08BF7047012844 +:10B3600008D005E011F0020F08BF7047012801D096 +:10B3700002207047012070472F4910B54C68F9F73B +:10B3800089FEF9F768FEF9F763FDF9F7CCFDF9F7E7 +:10B390002FF994F82C00012808BFF9F7A9FE274CD3 +:10B3A00000216269A0899047E269E179E0789047DD +:10B3B0000020207010BD70B5204C0546002908BF44 +:10B3C000012D05D12079401CC0B22071012831D84F +:10B3D000A1692846884700282CD0A179184839B19E +:10B3E000012D01BF41780029017811F0100F21D003 +:10B3F000E179F9B910490978002908BF012D05D074 +:10B4000000290CBF01210021294311D10D490978E0 +:10B4100011F0100F04BF007810F0100F0AD0A078C0 +:10B4200040B9A06A20B9608910B111F0100F01D0A5 +:10B43000002070BD012070BD4801002014010020D3 +:10B44000C80C00202201002010B540F2C311F748BB +:10B4500008F02DFFFF220821F54808F020FFF548ED +:10B46000002141704FF46171418010BD2DE9F04120 +:10B470000E46054600F046FBEC4C102816D004EBB7 +:10B48000C00191F84A0110F0010F1CBF0120BDE876 +:10B49000F081607808283CBF012081F84A011CD265 +:10B4A0006078401C60700120BDE8F0816078082859 +:10B4B00013D222780127501C207004EBC208306898 +:10B4C000C8F84401B088A8F84801102A28BFFFDF57 +:10B4D00088F8435188F84A71E2E70020BDE8F0811E +:10B4E000D2480178491E4BB2002BB8BF704770B4E8 +:10B4F0005FF0000500EBC30191F84A1111F0010F54 +:10B500003BD04278D9B2521E427000EBC10282F8A1 +:10B510004A5190F802C00022BCF1000F0BD98418E8 +:10B5200094F803618E4202D1102A26D103E0521C06 +:10B53000D2B29445F3D80278521ED2B202708A4237 +:10B540001BD000EBC20200EBC10CD2F84341CCF897 +:10B550004341D2F84721CCF84721847890F800C0C5 +:10B560000022002C09D9861896F8036166450AD195 +:10B57000102A1CBF024482F80311591E4BB2002B43 +:10B58000B8DA70BC7047521CD2B29442EBD8F4E7E0 +:10B590002DE9F05F1F4690460E46814600F0B2FA54 +:10B5A000A24D0446102830D0A878002100280ED9DA +:10B5B0006A1892F80331A34205D110291CBF12204A +:10B5C000BDE8F09F03E0491CC9B28842F0D80828C2 +:10B5D00034D2102C1CD0AE781022701CA87005EB51 +:10B5E000061909F10300414600F0A2FF09F18300AA +:10B5F0001022394600F09CFFA819002180F8034171 +:10B6000080F83B110846BDE8F09FA878082815D2BD +:10B610002C78CA46601C287005EBC4093068C9F84C +:10B620004401B0884FF0000BA9F84801102C28BF46 +:10B63000FFDF89F843A189F84AB1CCE70720BDE8CC +:10B64000F09F70B479488178491E4BB2002BBCBF83 +:10B6500070BC704703F0FF0C8178491ECAB282703B +:10B6600050FA83F191F8031194453ED000EB021596 +:10B6700000EB0C14D5F80360C4F80360D5F807603C +:10B68000C4F80760D5F80B60C4F80B60D5F80F60FC +:10B69000C4F80F60D5F88360C4F88360D5F887607C +:10B6A000C4F88760D5F88B60C4F88B60D5F88F50EC +:10B6B000C4F88F50851800EB0C0402EB420295F899 +:10B6C00003610CEB4C0C00EB420284F8036100EBCD +:10B6D0004C0CD2F80B61CCF80B61B2F80F21ACF82E +:10B6E0000F2195F83B2184F83B2100EBC10292F831 +:10B6F0004A2112F0010F33D190F802C00022BCF1B0 +:10B70000000F0BD9841894F803518D4202D1102AEE +:10B7100026D103E0521CD2B29445F3D80278521ECF +:10B72000D2B202708A421BD000EBC20200EBC10C05 +:10B73000D2F84341CCF84341D2F84721CCF8472115 +:10B74000847890F800C00022002C09D9851895F85B +:10B75000035165450BD1102A1CBF024482F8031126 +:10B76000591E4BB2002BBFF675AF70BC7047521C10 +:10B77000D2B29442EAD8F3E72E49487070472D4878 +:10B780004078704738B14AF2B811884203D8294945 +:10B790004880012070470020704726484088704745 +:10B7A00010B500F0AFF9102814D0204A014600204F +:10B7B00092F802C0BCF1000F0CD9131893F80331B2 +:10B7C0008B4203D1102818BF10BD03E0401CC0B24B +:10B7D0008445F2D8082010BD14498A78824286BF79 +:10B7E00001EB001083300020704710498A788242B4 +:10B7F00086BF01EB0010C01C002070470B4B93F874 +:10B8000002C084459CBF00207047184490F8030193 +:10B8100003EBC00090F843310B70D0F84411116075 +:10B82000B0F848019080012070470000F80E002019 +:10B830005A01002050010020FE4A114491F80321D2 +:10B84000FD490A7002684A6080880881704710B517 +:10B85000F8F74CFE002804BFFF2010BDBDE81040E3 +:10B86000F8F76ABEF3498A7882429CBF002070478D +:10B87000084490F8030101EBC00090F84A0100F081 +:10B88000010070472DE9F047EA4F0026B0463878AE +:10B89000002886BF4FF0080ADFF8A093BDE8F087C4 +:10B8A00007EBC80505F5A27195F8430100F02AF9E8 +:10B8B000102808BF544610D0B978002400290BD9AD +:10B8C0003A1992F80321824202D1102C05D103E0EB +:10B8D000621CD4B2A142F3D80824B878A04286BF33 +:10B8E00007EB0410C01C002095F84A1111F0010F5D +:10B8F00016D050B1082C04D2391991F83B11012906 +:10B9000003D0102100F0F1FD50B109F80640304697 +:10B91000731C95F8432105F5A271DEB2F9F700F822 +:10B9200008F1010000F0FF0838784045B8D8BDE8BC +:10B93000F0872DE9F041BF4C00263546A07800285D +:10B940008CBFBE4FBDE8F0816119C0B291F8038190 +:10B95000A84286BF04EB0510C01C002091F83B11E3 +:10B96000012903D0102100F0C0FD58B104EBC8003C +:10B97000BD5590F8432100F5A2713046731CDEB22C +:10B98000F8F7CEFF681CC5B2A078A842DCD8BDE8A5 +:10B99000F08110B5F8F7EEFF002804BF082010BDB5 +:10B9A000F8F7ECFFA549085C10BD0A46A24910B59E +:10B9B000497841B19F4B997829B10244D81CF8F7D6 +:10B9C00032FD012010BD002010BD9A4A01EB41015B +:10B9D00002EB41010268C1F80B218088A1F80F0138 +:10B9E00070472DE9F041934D07460024A8780028C0 +:10B9F00098BFBDE8F081C0B2A04213D905EB041096 +:10BA000010F183060ED01021304600F06EFD48B9CB +:10BA100004EB440005EB400000F20B113A463046BF +:10BA2000F9F73DFF601CC4B2A878A042E3D8BDE896 +:10BA3000F08101461022824800F07ABD80487047AC +:10BA400070B57C4D0446A878A04206D905EB0410D9 +:10BA50001021833000F049FD08B1002070BD04EBD7 +:10BA6000440005EB400000F20B1070BD71498A786C +:10BA7000824206D9084490F83B01002804BF012007 +:10BA80007047002070472DE9F0410E4607461546E5 +:10BA90000621304600F029FD664C98B1A17871B1BD +:10BAA00004F59D7011F0010F18BF00F8015FA17837 +:10BAB000490804D0457000F8025F491EFAD1012000 +:10BAC000BDE8F0813846314600F01CF8102816D049 +:10BAD000A3780021002B12D9621892F80321824228 +:10BAE00009D1102918BF082909D0601880F83B51E6 +:10BAF0000120BDE8F081491CC9B28B42ECD800207E +:10BB0000BDE8F0812DE9F0414A4D06460024287831 +:10BB10000F46002812D900BF05EBC40090F843116E +:10BB2000B14206D10622394600F5A27008F014FB96 +:10BB300038B1601CC4B22878A042EDD81020BDE80E +:10BB4000F0812046BDE8F0813A4910B44A7801EB13 +:10BB5000C003521E4A70002283F84A2191F802C0A5 +:10BB6000BCF1000F0DD98B1893F80341844204D126 +:10BB7000102A1CBF10BC704703E0521CD2B294457F +:10BB8000F1D80A78521ED2B20A70824204BF10BCA9 +:10BB9000704701EBC00301EBC202D2F843C1C3F806 +:10BBA00043C1D2F84721C3F847218C7891F800C0EF +:10BBB0000022002C9CBF10BC70478B1893F80331F7 +:10BBC000634506D1102A1CBF114481F8030110BC43 +:10BBD0007047521CD2B29442EFD810BC704770B478 +:10BBE00014490D188A78521ED3B28B7095F8032130 +:10BBF000984247D001EB031C01EB0014DCF8036012 +:10BC0000C4F80360DCF80760C4F80760DCF80B6078 +:10BC1000C4F80B60DCF80F60C4F80F60DCF88360D8 +:10BC2000C4F88360DCF88760C4F88760DCF88B6058 +:10BC300008E00000F80E0020500100205A0100200A +:10BC4000BB100020C4F88B60DCF88FC0C4F88FC034 +:10BC500001EB030C03EB43039CF8034100EB4000B2 +:10BC600001EB430385F8034101EB4000D3F80B419E +:10BC7000C0F80B41B3F80F31A0F80F319CF83B012D +:10BC800085F83B0101EBC20090F84A0110F0010F6A +:10BC90001CBF70BC704700208C78002C0DD90B188D +:10BCA00093F803C1944504D110281CBF70BC7047A1 +:10BCB00003E0401CC0B28442F1D80878401EC0B2F4 +:10BCC0000870904204BF70BC704701EBC20301EBE7 +:10BCD000C000D0F843C1C3F843C1D0F84701C3F84E +:10BCE00047018C780B780020002C9CBF70BC7047FB +:10BCF00001EB000C9CF803C19C4506D110281CBF29 +:10BD0000084480F8032170BC7047401CC0B28442D4 +:10BD1000EED870BC7047000010B50A7B02F01F021D +:10BD20000A73002202768B181B7A03F0010C5B0861 +:10BD300003F00104A4445B0803F00104A4445B087D +:10BD400003F00104A4445B0803F0010464444FEAD7 +:10BD5000530C0CF0010323444FEA5C0C0CF001047B +:10BD6000234403EB5C0300EB020C521C8CF81330F1 +:10BD700090F818C0D2B263440376052AD3D3D8B260 +:10BD8000252888BFFFDF10BD0023C383428401EB59 +:10BD9000C202521EB2FBF1F10184704770B46FF021 +:10BDA0001F02010C02EA90251F23A1F5AA40543876 +:10BDB0001CBFA1F5AA40B0F1550009D0A1F528504B +:10BDC000AA381EBFA1F52A40B0F1AA00012000D177 +:10BDD00000204FF0000C62464FEA0C048CEA01068A +:10BDE000F6431643B6F1FF3F11D005F001064FEAC6 +:10BDF0005C0C4CEAC63C03F0010652086D085B0877 +:10BE0000641C42EAC632162CE8D370BC704770BC82 +:10BE1000002070472DE9F04701270025044603293B +:10BE20000FD04FF4FA4200297CD0012900F006819E +:10BE3000022918BFBDE8F0870146BDE8F047583039 +:10BE40006AE704F158067821304608F052FAB571D5 +:10BE5000F57135737573F573357475717576B576DF +:10BE6000212086F83E00412086F83F00FE2086F81B +:10BE7000730084F82C50258484F8547084F855702D +:10BE8000282084F856001B20208760874FF4A47078 +:10BE9000E087A0871B20208660864FF4A470E08690 +:10BEA000A0861B20A4F84000A4F844004FF4A4701E +:10BEB000A4F84600A4F842001B20A4F84A00A4F805 +:10BEC0004C00A4F8480067734FF448606080A4F801 +:10BED000D050A4F8D250A4F8D450A4F8D650A4F866 +:10BEE000D850A4F8DA5084F8DD5084F8DF50A4F874 +:10BEF000E65084F8E450A4F8F850A4F8FA5084F816 +:10BF00009A5184F89B5184F8A45184F8A55184F87F +:10BF1000695184F8705184F8735184F88C51BDE8EC +:10BF2000F087FFE7A4F8E65084F8DE506088FE4909 +:10BF30000144B1FBF0F1A4F878104BF68031A4F87D +:10BF40007A10E388A4F87E50B4F882C0DB000CFBC2 +:10BF500000FCB3FBF0F39CFBF0FC5B1CA4F882C07C +:10BF60009BB203FB00FC04F15801A4F88030BCF53F +:10BF7000C84FC4BF5B1E0B85B2FBF0F2521CCA85D2 +:10BF800000F5802202F5EE32531EB3FBF0F20A8474 +:10BF9000CB8B03FB00F2B2FBF0F0C883214604F127 +:10BFA0005800FFF7B9FE07F0A5F9E8B3D4F80E1072 +:10BFB0006FF01F02080C02EA91281F26A0F5AA4183 +:10BFC00054391CBFA0F5AA41B1F155010AD0A0F522 +:10BFD0002851AA391EBFA0F52A41B1F1AA014FF09C +:10BFE000010901D14FF00009002211464FEA020C6D +:10BFF00082EA0003DB430B43B3F1FF3F1AD008F0A2 +:10C000000103520842EAC33206F0010349087608E8 +:10C010000CF1010C41EAC3314FEA5808BCF1160F8C +:10C02000E6D3B9F1000F00E000E003D084F86851D6 +:10C03000BDE8F08784F86871BDE8F087A4F8E650A1 +:10C04000B4F89401B4F89831B4F802C004F158017E +:10C05000A4F87E50B4F88240DB0004FB0CF4B3FB80 +:10C06000F0F394FBF0F45B1C4C859BB203FB00F4F3 +:10C070000B85B4F5C84FC4BF5B1E0B85B2FBF0F255 +:10C08000521CCA854A8C00EBC202521EB2FBF0F26F +:10C090000A84CA8B02FB0CF2B2FBF0F0C883BDE845 +:10C0A000F08770B50025044603290DD04FF4FA42FD +:10C0B000002963D001297DD0022918BF70BD014637 +:10C0C000BDE87040583027E604F158067821304624 +:10C0D00008F00FF9B571F57135737573F573357433 +:10C0E00075717576B576212086F83E00412086F878 +:10C0F0003F00FE2086F8730084F82C502584012030 +:10C1000084F8540084F85500282184F856101B2127 +:10C11000218761874FF4A471E187A1871B212186C4 +:10C1200061864FF4A471E186A1861B21A4F840101A +:10C13000A4F844104FF4A471A4F84610A4F84210D7 +:10C140001B21A4F84A10A4F84C10A4F848106073FE +:10C15000A4F8D850202084F8DA0084F8D050C4F82D +:10C16000D45084F8045184F8055184F80E5184F8B1 +:10C170000F5184F8F45084F8005170BD60886A490A +:10C180000144B1FBF0F1A4F878104BF68031A4F82B +:10C190007A10E388A4F87E50B4F882C0DB000CFB70 +:10C1A00000FC9CFBF0FCB3FBF0F304F15801A4F895 +:10C1B00082C000E022E05B1C9BB203FB00FCA4F801 +:10C1C0008030BCF5C84FC4BF5B1E0B85B2FBF0F2DC +:10C1D000521CCA8500F5802202F5EE32531EB3FBD5 +:10C1E000F0F20A84CB8B03FB00F2B2FBF0F0C883C1 +:10C1F000214604F15800BDE870408DE5D4F8F830D0 +:10C20000B4F802C004F158005989DB89A4F87E50C3 +:10C21000B4F88240DB0004FB0CF4B3FBF1F394FBB5 +:10C22000F1F45B1C44859BB203FB01F40385B4F578 +:10C23000C84FC4BF5B1E0385B2FBF1F2521CC2851E +:10C24000428C01EBC202521EB2FBF1F20284C28B9D +:10C2500002FB0CF2B2FBF1F1C18370BD2DE9F003DA +:10C26000047E0CB1252C03D9BDE8F00312207047E1 +:10C27000002A02BF0020BDE8F003704791F80DC00E +:10C280001F260123294D4FF00008BCF1000F77D085 +:10C29000BCF1010F1EBF1F20BDE8F0037047B0F8CE +:10C2A00000C00A7C8F7B91F80F907A404F7C87EA20 +:10C2B000090742EA072282EA0C0C00270CF0FF096A +:10C2C0004FEA1C2C99FAA9F99CFAACFC4FEA1969BF +:10C2D0004FEA1C6C49EA0C2C0CEB0C1C7F1C9444A0 +:10C2E000FFB21FFA8CFC032FE8D38CEA020C0F4F2D +:10C2F0000022ECFB057212096FF0240502FB05C257 +:10C30000D2B201EBD207427602F007053F7A03FA78 +:10C3100005F52F4218BF82767ED104FB0CF2120C79 +:10C32000521CD2B2002403E0FFDB050053E4B36EDD +:10C3300000EB040C9CF813C094453CBFA2EB0C022C +:10C34000D2B212D30D194FF0000C2D7A03FA0CF76C +:10C350003D421CBF521ED2B2002A6AD00CF1010C21 +:10C360000CF0FF0CBCF1080FF0D304F1010C0CF041 +:10C37000FF04052CD7D33046BDE8F0037047FFE734 +:10C3800090F819C00C7E474604FB02C2FA4C4FF0ED +:10C39000000CE2FB054C4FEA1C1C6FF024040CFB64 +:10C3A0000422D2B201EBD204427602F0070C247AC6 +:10C3B00003FA0CFC14EA0C0F1FBF82764046BDE85E +:10C3C000F003704790F818C0B2FBFCF40CFB142289 +:10C3D000521CD2B25FF0000400EB040C9CF813C0B6 +:10C3E00094453CBFA2EB0C02D2B212D30D194FF010 +:10C3F000000C2D7A03FA0CF815EA080F1CBF521E28 +:10C40000D2B27AB10CF1010C0CF0FF0CBCF1080FA8 +:10C41000F0D304F1010C00E00EE00CF0FF04052C59 +:10C42000DAD3A8E70CEBC40181763846BDE8F00307 +:10C4300070470CEBC40181764046BDE8F0037047BD +:10C44000CE4A016812681140CD4A1268114301605A +:10C45000704730B4CB49C94B00244FF0010C0A7827 +:10C46000521CD2B20A70202A08BF0C700D781A68CC +:10C470000CFA05F52A42F2D0097802680CFA01F1AB +:10C480005140016030BC7047017931F01F0113BF8A +:10C49000002000221146704710B4435C491C03F091 +:10C4A000010C5B0803F00104A4445B0803F00104E1 +:10C4B000A4445B0803F00104A4445B0803F00104F6 +:10C4C000A4445B0803F001045B08A44403F00104E6 +:10C4D000A4440CEB53031A44D2B20529DDDB012A34 +:10C4E0008CBF0120002010BC704730B40022A1F1A5 +:10C4F000010CBCF1000F11DD431E11F0010F08BF4C +:10C5000013F8012F5C785FEA6C0C07D013F8025F18 +:10C5100022435C782A43BCF1010CF7D1491E5CBF71 +:10C52000405C0243002A0CBF0120002030BC704751 +:10C53000130008BF704710B401EB030CD41A1CF8A9 +:10C5400001CC5B1E00F804C013F0FF03F4D110BC53 +:10C550007047F0B58DB0164610251C466A46AC46AD +:10C5600000EB0C03A5EB0C0713F8013CD355ACF121 +:10C57000010313F0FF0CF3D115461032102084464E +:10C580000B18ACEB000713F8013C401ED35510F01C +:10C59000FF00F5D1284606F02FFD86B1102005F1E9 +:10C5A000200201461318A1EB000C13F8013C401EB9 +:10C5B00004F80C3010F0FF00F4D10DB0F0BD089875 +:10C5C0002060099860600A98A0600B98E0600DB048 +:10C5D000F0BD38B505460C466846F8F79EFD0028C4 +:10C5E00008BF38BD9DF900202272A07E607294F9C8 +:10C5F0000A100020511A48BF494295F82D308B424D +:10C60000C8BF38BDFF2B08BF38BDE17A491CC9B28D +:10C61000E17295F82E30994203D8A17A7F2918BF8C +:10C6200038BDA2720020E072012038BD0C2818BF6E +:10C630000B2810D00D2818BF1F280CD0202818BF99 +:10C64000212808D0222818BF232804D024281EBF60 +:10C65000262800207047012070470C2963D2DFE8AC +:10C6600001F006090E13161B323C415C484E002AAD +:10C670005BD058E0072A18BF082A56D053E00C2A8E +:10C6800018BF0B2A51D04EE00D2A4ED04BE0A2F13C +:10C690000F000C2849D946E023B1A2F110000B2865 +:10C6A00043D940E0122A18BF112A3ED090F8360034 +:10C6B00020B1122A37D31A2A37D934E0162A32D3B6 +:10C6C0001A2A32D92FE0A2F10F0103292DD990F8AF +:10C6D000360008B31B2A28D925E0002B08BF042AFE +:10C6E00021D122E013B1062A1FD01CE0012A1AD161 +:10C6F0001BE01C2A1CBF1D2A1E2A16D013E01F2A6D +:10C7000018BF202A11D0212A18BF222A0DD0232A8F +:10C710001CBF242A262A08D005E013B10E2A04D013 +:10C7200001E0052A01D000207047012070472DE963 +:10C73000F04187680D4604462046F6F736FC98B16E +:10C7400015B33846A168F6F771FF00281CDD2844B0 +:10C75000401EB0FBF5F606FB05F13846F5F761FF24 +:10C76000A0603046BDE8F081F6F752FA40F233712E +:10C77000F5F757FFA060DFE753E4B36EA44802006B +:10C78000A8480200620100200020BDE8F08190422C +:10C7900028BF704770B50446101B642838BF64205A +:10C7A00025188D4205D8F6F774FF00281CBF2846CF +:10C7B00070BD204670BD808E7047C08E70470844A3 +:10C7C00018449830002A14BF0421002108447047FF +:10C7D00030B491F854300A8E13F00C0F4FF4747C7F +:10C7E0001CBF0CEB821292B21DD08B8E934238BFCD +:10C7F0001A464B8E91F8554014F00C0F1CBF0CEBF1 +:10C8000083139BB217D0C98E994238BF0B460028BC +:10C810000CBF01200020D1189831002818BF042037 +:10C82000084430BC7047022B07BF92003C32D20054 +:10C83000703292B2D9E7022C07BF9B003C33DB0079 +:10C8400070339BB2DFE710F0010F1CBF012070476F +:10C8500010F0020F1CBF0220704710F0040018BF38 +:10C86000082070472DE9F041054617468846012605 +:10C87000084600F06EFC0446404600F06EFC03469D +:10C8800010F0010F18BF012008D113F0020F18BFDC +:10C89000022003D113F0040018BF082014F0010F88 +:10C8A00018BF4FF0010C20D050EA0C0108BF002641 +:10C8B00013F0030F08BF002014F0030F08BF4FF060 +:10C8C000000C95F85410814208BF0020387095F88C +:10C8D0005510614508BF4FF0000C87F801C00028D3 +:10C8E00008BFBCF1000F1CD10DE014F0020F18BFFF +:10C8F0004FF0020CD8D114F0040F14BF4FF0080C05 +:10C900004FF0000CD0E7404600F02DFCB5F8581071 +:10C91000401A00B247F6FE71884201DC002800DCB4 +:10C9200000263046BDE8F08101281CBF0228002007 +:10C93000704718B4CBB2C1F3072CC1B2C0F30720C3 +:10C94000012B05D0022B08BFBCF1020F1BD002E067 +:10C95000BCF1010F17D0012904D0022908BF022819 +:10C9600011D001E001280ED001EA0C0161F30702A9 +:10C9700010EA030060F30F22D0B210F0020F18BFCC +:10C9800002200BD106E0084003EA0C01084060F3E6 +:10C990000702EFE710F0010018BF01208DF800003A +:10C9A000C2F3072010F0020F18BF022003D110F0CD +:10C9B000010018BF01208DF80100BDF8000018BC6F +:10C9C0007047162A10D12A220C2818BF0D280FD024 +:10C9D0004FF0230C1F280DD031B10878012818BF63 +:10C9E000002805D0162805D0002070470120704788 +:10C9F0001A70FBE783F800C0F8E7012902D002298A +:10CA000005D007E0002804BF40F2E240704740F63E +:10CA1000C410704700B5FFDF40F2E24000BD0000E7 +:10CA2000282107F044BC4078704730B505460078AF +:10CA300001F00F0220F00F0010432870092910D2D6 +:10CA4000DFE801F0050705070509050B0D000624C1 +:10CA500009E00C2407E0222405E0012403E00E2471 +:10CA600001E00024FFDF6C7030BD007800F00F00A3 +:10CA700070470A68C0F803208988A0F8071070473B +:10CA8000D0F803200A60B0F80700888070470A6871 +:10CA9000C0F809208988A0F80D107047D0F8092047 +:10CAA0000A60B0F80D00888070470278402322F0B9 +:10CAB000400203EA81111143017070470078C0F30E +:10CAC000801070470278802322F0800203EAC111AF +:10CAD0001143017070470078C0097047027802F076 +:10CAE0000F02072A16BF082AD0F80520D0F8032025 +:10CAF000C1F809200CBFB0F80920B0F80720A1F850 +:10CB00000D200A7822F080020A700078800942EA3B +:10CB1000C0100870704770B514460E4605461F2AAF +:10CB200088BFFFDF2246314605F1090007F040FBD0 +:10CB3000A01D687070BD70B544780E460546062C81 +:10CB400038BFFFDFA01F84B21F2C88BF1F242246DE +:10CB500005F10901304607F02BFB204670BD70B58A +:10CB600014460E4605461F2A88BFFFDF224631467F +:10CB700005F1090007F01CFBA01D687070BD70B5C1 +:10CB800044780E460546062C38BFFFDFA01F84B24E +:10CB90001F2C88BFFFDF224605F10901304607F050 +:10CBA00007FB204670BD0968C0F80F1070470A885F +:10CBB000A0F8132089784175704790F8242001F07F +:10CBC0001F0122F01F02114380F82410704707292B +:10CBD00088BF072190F82420E02322F0E00203EA36 +:10CBE0004111114380F8241070471F3007F096BCA4 +:10CBF00010B5044600F0E3FA002818BF204410BD29 +:10CC0000C17811F03F0F1BBF027912F0010F002213 +:10CC1000012211F03F0F1BBF037913F0020F002315 +:10CC200001231A4402EB4202530011F03F0F1BBFD5 +:10CC3000027912F0080F0022012203EB420311F0E7 +:10CC40003F0F1BBF027912F0040F00220122134490 +:10CC500011F03F0F1BBF027912F0200F00220122BA +:10CC600002EBC20203EB420311F03F0F1BBF02793C +:10CC700012F0100F0022012202EB42021A4411F0BE +:10CC80003F0F1BBF007910F0400F0020012010441F +:10CC900010F0FF0014BF012100210844C0B270470A +:10CCA00070B50278417802F00F02082A4DD2DFE811 +:10CCB00002F004080B4C4C4C0F14881F1F280AD993 +:10CCC00043E00C2907D040E0881F1F2803D93CE02F +:10CCD000881F1F2839D8012070BD4A1E242A34D845 +:10CCE0008446C07800258209032A09D000F03F0459 +:10CCF000601C884204D86046FFF782FFA04201D939 +:10CD0000284670BD9CF803004FF0010610F03F0F5D +:10CD10001EBF1CF10400007810F0100F13D0644601 +:10CD20000421604600F04BFA002818BF14EB000005 +:10CD3000E6D0017801F03F012529E1D28078022177 +:10CD4000B1EB501FDCD3304670BD002070BDC07801 +:10CD5000800970470178002201F00F030121042BA4 +:10CD60000BD0082B1CBF0020704743780E2B04BF4C +:10CD7000C3785FEA931C04D106E04078801F1F2827 +:10CD800000D911460846704713F03F0F1EBF0079C7 +:10CD900010F0010F10F0020FF4D1F2E710B4017897 +:10CDA00001F00F01032920D0052921D14478B0F8E2 +:10CDB0001910B0F81BC0B0F81730827D222C17D1A3 +:10CDC000062915D3B1F5486F98BFBCF5FA7F0FD28D +:10CDD00072B1082A98BF8A420AD28B429CBFB0F82F +:10CDE0001D00B0F5486F03D805E040780C2802D04C +:10CDF00010BC0020704710BC012070472DE9F041A5 +:10CE00001F4614460D00064608BFFFDF2146304688 +:10CE100000F0D5F9040008BFFFDF30193A46294673 +:10CE2000BDE8F04107F0C4B9C07800F03F0070479A +:10CE3000C02202EA8111C27802F03F021143C170A0 +:10CE40007047C9B201F00102C1F340031A4402EB7A +:10CE50004202C1F3800303EB4202C1F3C00302EBC1 +:10CE60004302C1F3001303EB43031A44C1F340131D +:10CE700003EBC30302EB4302C1F380131A4412F025 +:10CE8000FF0202D0521CD2B20171C37802F03F01FE +:10CE900003F0C0031943C170511C417070472DE964 +:10CEA000F0410546C078164600F03F04C4F1240066 +:10CEB0000F46B042B8BFFFDF281932463946001D81 +:10CEC00007F076F9A019401C6870BDE8F0812DE9E3 +:10CED000F04105464478C0780F4600F03F06002C2C +:10CEE00008BFFFDFA01B401E84B21F2C88BF1F2479 +:10CEF0002FB1A819011D2246384607F059F92046DE +:10CF0000BDE8F0814078704700B5027801F0030376 +:10CF100022F003021A430270012914BF02290021E2 +:10CF200004D0032916BFFFDF012100BD417000BD01 +:10CF300000B5027801F0030322F003021A430270E5 +:10CF4000012914BF0229002104D0032916BFFFDFE5 +:10CF5000012100BD417000BD007800F00300704762 +:10CF6000417889B1C0780E2818BF0F2803D0102847 +:10CF700018BF192802D3FB2904D905E0BF4A105C69 +:10CF8000884201D1012070470020704730B501244C +:10CF90000546C17019293CBFB848445C02D3FF293B +:10CFA00018BFFFDF6C7030BD70B515460E460446E5 +:10CFB0001B2A88BFFFDF65702A463146E01CBDE8AA +:10CFC000704007F0F5B8B0F807007047B0F80900F6 +:10CFD0007047C172090A01737047B0F80B007047BF +:10CFE00030B4B0F80720A64DB0F809C0B0F805304D +:10CFF0000179941F2D1998BFBCF5FA7F0ED269B143 +:10D00000082998BF914209D293429FBFB0F80B0004 +:10D01000B0F5486F012030BC98BF7047002030BC8D +:10D020007047001D07F07ABA021D0846114607F046 +:10D0300075BAB0F809007047007970470A68426015 +:10D0400049688160704742680A608068486070473C +:10D050000988818170478089088070470A68C0F814 +:10D060000E204968C0F812107047D0F80E200A60F0 +:10D07000D0F81200486070470968C0F81610704771 +:10D08000D0F81600086070470A68426049688160FD +:10D09000704742680A608068486070470968C160EC +:10D0A0007047C06808607047007970470A6842603E +:10D0B00049688160704742680A60806848607047CC +:10D0C0000171090A417170478171090AC171704784 +:10D0D0000172090A417270478172090AC172704770 +:10D0E00080887047C08870470089704740897047C2 +:10D0F00001891B2924BF4189B1F5A47F07D3818809 +:10D100001B2921BFC088B0F5A47F012070470020F3 +:10D1100070470A68426049688160704742680A60E7 +:10D12000806848607047017911F0070F1BBF407994 +:10D1300010F0070F002001207047017911F0070F50 +:10D140001BBF407910F0070F0020012070470171CC +:10D15000704700797047417170474079704781711D +:10D16000090AC1717047C088704746A282B0D2E9EF +:10D170000012CDE900120179407901F007026946F9 +:10D180001DF80220012A07D800F00700085C0128DA +:10D190009EBF012002B07047002002B070470171AD +:10D1A000704700797047417170474079704730B5DA +:10D1B0000C460546FB2988BFFFDF6C7030BDC37885 +:10D1C000024613F03F0008BF70470520127903F0B4 +:10D1D0003F0312F0010F36D0002914BF0B20704717 +:10D1E00012F0020F32D0012914BF801D704700BF1A +:10D1F00012F0040F2DD0022914BF401C704700BF4D +:10D2000012F0080F28D0032914BF801C704700BFFC +:10D2100012F0100F23D0042914BFC01C704700BFA8 +:10D2200012F0200F1ED005291ABF1230C0B270476D +:10D2300012F0400F19D006291ABF401CC0B2704727 +:10D24000072918D114E00029CAD114E00129CFD14F +:10D2500011E00229D4D10EE00329D9D10BE0042931 +:10D26000DED108E00529E3D105E00629E8D102E096 +:10D27000834288BF7047002070470000AC4802001E +:10D2800086F3FFFF00010102010202032DE9F041D4 +:10D29000FA4D0446284600216A78806801270E4628 +:10D2A00012B1012A1ED006E090F86620002A18BFAD +:10D2B0006F7000D001216A78C2EB421200EB42028B +:10D2C00092F82830194324D0667090F8D90002F102 +:10D2D0002A0170B12A22201D06F06AFF0420207066 +:10D2E00027710DE090F82820002A18BF6E70E1D158 +:10D2F000E1E73C22201D06F05BFF0520207027712E +:10D300006878A968C0EB401001EB400080F8286005 +:10D310001DE090F8A410E9B190F8D900012818BFD9 +:10D32000FFDFA868D0F8A5106160D0F8A910A1604F +:10D33000D0F8AD10E160D0F8B110216190F8B510CF +:10D340002175667013212170277180F8A460012077 +:10D35000BDE8F08190F82210012922D0017801293E +:10D360001CBF0020BDE8F081667014212170811C73 +:10D370002022201D06F01CFF2672A9680E70C048EE +:10D3800082888284D0F8C420527B80F8262080F8DE +:10D390002270D1F8C4000088F3F73CFCF3F7E3F8FF +:10D3A000D5E7667007212170416A616080F82260CC +:10D3B000CDE7B24880680178002914BF80884FF615 +:10D3C000FF7070472DE9F84F4FF000088946064678 +:10D3D0000127CDF80080FFF748FBBDF80010A74DEE +:10D3E00021F06004ADF8004008284FD2DFE800F0DB +:10D3F00004070D4E184E132C44F003000DE044F0CA +:10D400001500ADF80000474641E044F0100000BFB1 +:10D41000ADF800003BE044F0020040F01000F7E7F8 +:10D42000A86890F8E000052818BFFFDF44F01A0054 +:10D43000ADF80000A96891F8E710002914BF40F08A +:10D44000010020F00100E3E7A86890F8E01003294C +:10D450000AD090F8E010062958D090F8E00004288F +:10D4600018BFFFDF5FD012E03046FFF770FC0028E6 +:10D4700018BFFFDF0AD1F07810F03F0F1FBF3079DF +:10D4800010F0020F44F00400ADF800004746BDF86C +:10D4900000000090BDF80000C0F3C00BA868CBEB03 +:10D4A0004B1A00EB4A0090F82800002818BFBDE88E +:10D4B000F88F3046FFF7D9FA80467048806800EB55 +:10D4C0004A0190F8C90001F12A04012808BF01258A +:10D4D00003D0022814BFFFDF0225257300206073EC +:10D4E0006648806890F8E11084F83B10FF21A17332 +:10D4F0007F21E176BDF80010618190F8E0100429E9 +:10D500001CBF90F8E01006293AD044E044F00A012C +:10D51000ADF8001090F8FA00002814BF41F00400A4 +:10D5200021F0040074E73046FFF711FCD8B1012860 +:10D5300004BF44F00100ADF8000014D0022818BF69 +:10D54000FFDFA4D144F00200ADF80000A96891F813 +:10D55000FA10002914BF40F0040020F00400ADF8D8 +:10D560000000474693E7F07810F03F0F1FBF307977 +:10D5700010F0020FBDF8000040F0040087D047E72C +:10D5800090F8E200012808BF012503D0022814BF4B +:10D59000FFDF0225657304F10900384D00902878FB +:10D5A0007F2808BFFFDF2978009801707F2028704E +:10D5B0006FB1B8F1070F04F11C01304603D2FFF739 +:10D5C000BAFA207239E0FFF782FC207204E00020F2 +:10D5D0002072B8F1070F30D3B8F1070F0DD1A8684A +:10D5E00090F8F91001B3D0F8EA10C4F80210B0F8BE +:10D5F000EE10E18090F8F0006070A07A10F0040F57 +:10D600000ED0A86890F8FA10E9B190F8F7102175DB +:10D61000D0F8F110C4F81510B0F8F500A4F819000E +:10D62000B8F1070F38D098E0F07810F03F0F1ABF2C +:10D63000307910F0010FFF20DED0621CA11C3046B3 +:10D6400001F071FDD9E7B8F1070F1CBFB8F1010F68 +:10D65000FFDFB9F1000F08BFFFDF99F80000207568 +:10D66000B8F1010F03D0B8F1070F0BD075E004F14A +:10D6700015013046FFF712FA6FE000006401002048 +:10D68000CC10002001213046FFF7B2FA0168C4F83F +:10D6900015108088A4F81900F07810F03F0F1CBF17 +:10D6A000317911F0080F1AD0A86890F8E020042A08 +:10D6B00006D090F8E000032811D111F0100F0ED021 +:10D6C00003213046FFF794FA407803210009A07344 +:10D6D0003046FFF78DFA0088C0F30B002082F07807 +:10D6E00010F03F0F1CBF307910F0400F13D0FA48F4 +:10D6F000FFF72DFBA96891F8E020032A14D006213A +:10D700003046FFF775FA0078E076A86890F8E010E8 +:10D71000062922D118E0A86890F8FB10002918BF4C +:10D7200090F8F800F0D1F0E791F8C910042914BF7F +:10D7300008290028E3D1F07810F03F0F1CBF3079A2 +:10D7400010F0080FDBD1E0E790F8E9100909A173A8 +:10D75000B0F8E800C0F30B002082A968012001EBBB +:10D760004A0181F82800BBF1000F14BF06200520F4 +:10D77000BDE8F84F03F0F4B82DE9F041D74DAA68A1 +:10D7800092F8D930002B6ED07F27012611B109788D +:10D79000FE2914D0804692F82800002818BFBDE862 +:10D7A000F08102F12A044046FFF75FF900210828C2 +:10D7B00079D2DFE800F0515356787878595CC64C3E +:10D7C00092F8A400002818BFBDE8F08182F8A66096 +:10D7D00092F8DD0018B1F6F76CFE012829D020463A +:10D7E000FFF76CF90146A86880F8A71000F1A801BE +:10D7F0002046FFF745F92046FFF76DF90146A86876 +:10D8000080F8AE1000F1AF012046FFF747F9A86895 +:10D8100000F1B50428787F2808BFFFDF2878207042 +:10D820002F70A86880F8A460BDE8F041052003F0DF +:10D8300097B8F6F781FEA96801F1A802A731FDF7B4 +:10D84000DDFF002808BFFFDFA86890F8A71041F0AF +:10D85000020180F8A710CEE7A17209E0A67221723A +:10D860000CE0032001E021E00220A07200E0FFDFD5 +:10D8700004F10B014046FFF75EF92072621CA11C07 +:10D88000404601F050FC287809347F2808BFFFDFAC +:10D89000287820702F70A86880F82860BDE8F041D3 +:10D8A000052003F05DB82172BDE8F081BDE8F041CC +:10D8B00088E570B5894C0022A06890F8C910104620 +:10D8C00002F0A8FE002831D0F7F735FBA0688449A4 +:10D8D00090F8DF000D5C2846F7F75CF8A06880F848 +:10D8E000E15090F8C910082916BF04290F202520FF +:10D8F000F6F75DFFA068002190F8C9200120F7F736 +:10D9000050F97548F7F720FBA068D0F80001F7F749 +:10D910001EFBA06890F8C91080F8E21090F8C800CB +:10D92000032814BF0228012908D103E0BDE8704094 +:10D9300001F032BC08210020F7F707FCA06890F83E +:10D94000C91080F8E210F7F7DDFBA06890F8DD0061 +:10D9500020B1F6F77AFD4020F7F7A8FBA168032075 +:10D9600081F8E00070BD2DE9F0410F469046054674 +:10D970000321FFF73DF94078584C0209A06890F860 +:10D98000E91062F3071180F8E91003212846FFF738 +:10D990002FF90188A068B0F8E82061F30B02A0F825 +:10D9A000E82080F8E77090F8C910012905D090F8B8 +:10D9B000E000032808BFBDE8F081E8784FF00106D9 +:10D9C00010F03F0F1CBF287910F0400F09D006213E +:10D9D0002846FFF70DF90178A06880F8F81080F864 +:10D9E000FB60A06890F8E01003292AD0E97811F0D4 +:10D9F0003F0F1CBF297911F0010F08D000F1F00290 +:10DA0000911F284601F08FFBA06880F8F960E87844 +:10DA100010F03F0F1ABF287910F0020FBDE8F08117 +:10DA200001212846FFF7E4F8A1680268C1F8F12057 +:10DA30008088A1F8F50081F8F78081F8FA60BDE8E8 +:10DA4000F081022F18BF012FD0D1BDE8F08123490A +:10DA5000896881F80A01704770B5204DA86890F870 +:10DA6000E010022919BF90F8E010012900210C46AE +:10DA70001CBF0C2070BD00BFC1EB411200EB420285 +:10DA8000034682F82840491CC9B20229F4D3047025 +:10DA900080F8224093F8DD0030B1F7F719FBF6F774 +:10DAA000E8FCA86880F8DD40A868012180F8DC4027 +:10DAB00080F8C11080F8C84080F8DF40282180F845 +:10DAC0000B1180F80A41A0F8E34080F8E5400721F7 +:10DAD00080F8C010002070BDD81100206401002023 +:10DAE000D4480200F74810B58068002180F8E010A3 +:10DAF000012180F8E010FFF7AFFF002818BFFFDF1B +:10DB000010BD2DE9F047EF4C07460C26A06890F8B1 +:10DB1000E01001291FBF90F8E00002280C20BDE8AA +:10DB2000F087F6F778FEA06890F90A01F6F720FF73 +:10DB3000A06890F8C91080F8E21090F8C010012594 +:10DB4000002978D090F8C8004FF00009032802D0CF +:10DB5000022805D008E00521DB4801F0ADFB03E019 +:10DB60000321D94801F0A8FBA06890F8D81000293B +:10DB700004BF90F8DB00002843D0F5F749F80646CB +:10DB8000A0683146D0F8D400F5F750FDCF4990FB9E +:10DB9000F1F801FB180041423046F4F742FD01461E +:10DBA000A068C0F8D410D0F8D0104144C0F8D0100C +:10DBB000FDF7F3FD0146A068D0F8D020914220D8AF +:10DBC000C0E9349690F8DB0000281CBF0120FDF767 +:10DBD00008FF0121A06890F8DC20002A1CBF90F803 +:10DBE000D820002A0DD090F8B93000F1BA02012BEC +:10DBF00004D1527902F0C002402A14D0BA30F7F7AB +:10DC000085FEA06890F8B910BA30F6F769FE0F21CA +:10DC10000720F6F781FEA068002690F8E0100129A1 +:10DC200018D112E007E0FDF709FFA1682A46BA31D2 +:10DC3000F7F735FEE5E790F8E010022904BF80F819 +:10DC4000E0500C2006D1BDE8F08780F80451022195 +:10DC500080F8E010A06890F8C10088B1FDF769FE77 +:10DC600003219B48FDF7A1FE0146A06880F8DD1066 +:10DC7000C0F800719748F7F750F93046BDE8F087D3 +:10DC8000FDF700FEECE738B58E4CA06890F8E01088 +:10DC900002291CBF0C2038BD012180F80511A0F815 +:10DCA000081129208DF800006846F5F7F3FF30B120 +:10DCB000A0689DF8001090F80601884205D1A06880 +:10DCC00090F80601401C8DF80000A1689DF8000046 +:10DCD00081F806010220F7F734F97F48F6F752FE83 +:10DCE000A168DFF8F8C1002091F8C03091F8DF207A +:10DCF000521CACFB02546408A4EB8404224481F857 +:10DD0000DF2023FA02F212F0010F03D1401CC0B24F +:10DD10000328EBD3FFF7CDFD002038BD69498968A2 +:10DD200081F8C900002070476649896881F8DA00E7 +:10DD3000704710B5634CA36893F8B830022B14BF3A +:10DD4000032B00280BD100291ABF02290120002033 +:10DD50001146FDF725FD08281CBF012010BDA06855 +:10DD600090F8B800002816BF022800200120BDE866 +:10DD70001040F7F755BD5348806890F8B800002868 +:10DD800016BF022800200120F7F74ABD4D498968D7 +:10DD900081F8B80070474B49896881F8DC0070470A +:10DDA00070B5484CA16891F8B800002816BF022849 +:10DDB0000020012081F8B900BA31F7F71BFDA068F7 +:10DDC00090F8B810022916BF03290121002180F81C +:10DDD000DB1090F8B920002500F1BA03012A04BF36 +:10DDE0005B7913F0C00F0AD000F1BA03012A04D105 +:10DDF0005A7902F0C002402A01D0002200E001223C +:10DE000080F8D820002A04BF002970BDC0F8D05087 +:10DE1000F4F7FEFEA168C1F8D40091F8DB000028F9 +:10DE20001CBF0020FDF7DDFD0026A06890F8DC1087 +:10DE300000291ABF90F8D810002970BD90F8B920B9 +:10DE400000F1BA01012A04D1497901F0C001402949 +:10DE500005D02946BDE87040BA30F7F757BDFDF749 +:10DE6000EDFDA1683246BDE87040BA31F7F717BD45 +:10DE700070B5144D0C4600280CBF01230023A9687F +:10DE800081F8C13081F8CB004FF0080081F8CC0058 +:10DE90000CD1002C1ABF022C012000201146FDF7E6 +:10DEA0007FFCA968082881F8CC0001D0002070BD53 +:10DEB000022C14BF032C1220F8D170BD002818BF0B +:10DEC00011207047640100200012002040420F0022 +:10DED000D8110020D1480200D7480200ABAAAAAA54 +:10DEE0000328FE4A926808BFC2F8C41082F8C8002E +:10DEF0000020704710B5044602F018FF052809D02D +:10DF000002F014FF042805D0F448806880F8D94056 +:10DF1000002010BD0C2010BDF048816891F8C800A9 +:10DF2000032804D0012818BF022807D004E091F884 +:10DF3000CB00012808BF70470020704791F8CA0045 +:10DF4000012814BF03280120F6D1704710B5F7F758 +:10DF5000A1F8F7F780F8F6F77BFFF6F7E4FFDF4C60 +:10DF6000A06890F8DD0038B1F7F7B2F8F6F781FA5B +:10DF7000A168002081F8DD00A068012180F804116B +:10DF8000022180F8E010002010BDD449896881F892 +:10DF9000FC007047017801291CBF122070474278AD +:10DFA0000023032ACD49896808BFC1F8C43081F82D +:10DFB000C820012281F8C920C27881F8B8200279EE +:10DFC000002A16BF022A0123002381F8C13081F8FC +:10DFD000CA20427981F8C020807981F8DA000020D7 +:10DFE0007047BE488068704701F0D6B82DE9F84FF9 +:10DFF0004FF00008B948F7F790F8B84C4FF07F0A97 +:10E00000002808BF84F800A0F7F772F8B448FEF7BC +:10E010002CFDA070A16891F8E220012A18BFFFDF53 +:10E020000AD0A06890F8DD0018B1F7F751F8F6F7BC +:10E0300020FA4046BDE8F88FA94D0026A5F5867761 +:10E04000072836D291F8C10028B9F6F793FC0028CA +:10E0500008BF002600D00126A06890F8DD0080B13E +:10E06000FDF7F5FBA168FF2881F8DE000ED0014620 +:10E07000E81CFDF7E1FBA06890F8DE00FDF7F2FB7D +:10E080000643A06890F8DE00FF2817D1FDF781FC59 +:10E0900087F8DE0097F8C11081B108280ED12878E2 +:10E0A000E91CC0F38010FDF77BFB082818BF002691 +:10E0B00004E002BF91F8D90000280126A0784FF0B3 +:10E0C00000094FF0010B08281BD2DFE800F035AF44 +:10E0D000041A1A1A12F9002E00F06581A06890F84F +:10E0E000C800012818BF022840F05D81F6F7B0FE95 +:10E0F0007AE036B1A06890F8C800022806D001285E +:10E1000072D0F6F7A5FE4FF003088AE700217448A5 +:10E11000FFF732FBA0684FF00808C0F8E790C0F89E +:10E12000EB90C0F8EF90C0F8F390C0F8F79080F84B +:10E13000FB9080F8E79074E74FF00008002E00F0A5 +:10E140003281A26892F8C80002282DD001284BD055 +:10E1500003287FF466AFD2F8C400E978837E994241 +:10E160001BD12979C37E994217D16979037F9942DE +:10E1700013D1A979437F99420FD1E979837F9942DD +:10E180000BD1297AC37F994207D12978437EC1F305 +:10E190008011994208BF012100D0002192F8CB20C4 +:10E1A000012A26D0A9B3FBE000214D48FFF7E4FA8D +:10E1B000A06890F8051129B1491E11F0FF0180F8FF +:10E1C00005117CD1C0F8E790C0F8EB90C0F8EF9053 +:10E1D000C0F8F390C0F8F79080F8FB904FF0080873 +:10E1E00080F8E7B01DE7FFE700213D48FFF7C4FADC +:10E1F00019E0002965D100BF00F11A013848FEF787 +:10E200003FFC3748FEF75AFCA168D1F8C4104876A5 +:10E21000C6E0FFE797F8CC00082850D097F8DE104A +:10E2200081424ED0BFE04FF00308FAE6A06890F8B4 +:10E23000DB1000290CBF4FF0010B4FF0000B4FF02B +:10E240000008297805F10902C90907D0517901F0C0 +:10E25000C001402908BF4FF0010901D04FF000096B +:10E2600090F8C810032906D190F8C110002918BFF2 +:10E2700090F8CC0001D190F8DE00FDF7ADFA5FEA2E +:10E28000000A13D01021FEF730F9002818BF4FF014 +:10E29000010BB9F1000F04BFA06890F8B9A00DD030 +:10E2A00005F109015046F7F7C9FA8046A068B9F1AF +:10E2B000000F90F8B9A018BF4AF0020A02E072E01D +:10E2C0008CE06DE090F8C810032913D0F6F7C0FD7C +:10E2D000DEB3F6F71DFB50EA080003E064010020FE +:10E2E000D811002062D08DF800A06946FD48FFF7E4 +:10E2F00043FA98E7D0F8C400E978827E91421BD1B6 +:10E300002979C27E914217D16979027F914213D156 +:10E31000A979427F91420FD1E979827F91420BD155 +:10E32000297AC27F914207D12978407EC1F38011BA +:10E33000814208BF012500D0002597F8DE0008289B +:10E3400008D097F8CC10884200E02FE008BF4FF0CB +:10E35000010901D04FF00009B8F1000F05D1BBF160 +:10E36000000F04D0F6F7D4FA08B1012000E0002035 +:10E370004EB197F8CB10012903D021B955EA090114 +:10E3800001D0012100E0002108420CD0A06890F8E3 +:10E39000CB10012904BF002DD0F8C4003FF42CAFEE +:10E3A0004FF00A083DE6F6F753FD3CE7A06890F809 +:10E3B000CA00032818BF02287FF435AFB9F1000F57 +:10E3C0003FF431AFB8F1000F7FF42DAFC648694676 +:10E3D00040680090C348FFF7CFF924E7A06890F8A1 +:10E3E000DA0000283FF48DAEF6F732FDA06890F811 +:10E3F000D91000297FF417AFC0F8E790C0F8EB9070 +:10E40000C0F8EF90C0F8F390C0F8F79080F8FB9058 +:10E4100080F8F8A0B348FEF79AFCE8B301287CD056 +:10E4200002287FF400AFA0684FF0030890F8C800FE +:10E43000032814BF0020012036EA00003FF4F1ADAC +:10E44000A84D1820E97811F03F0F3FF4EAAD297983 +:10E4500088437FF4E6AD04212846FEF7C9FB064653 +:10E46000A06890F8E20002F0CCF80146304600F0D7 +:10E47000B5FE00283FF4D5AD002202212846FFF763 +:10E4800072FA2846FEF763FC0146A06880F8E610A1 +:10E490003188A0F8E31000E005E0B17880F8E510DD +:10E4A0004FF00408BDE5002E3FF4BDAEA06890F823 +:10E4B000C810012918BF02297FF4B5AE894DE9784B +:10E4C00011F03F0F1CBF297911F0020F05D011F098 +:10E4D000010F18BF4FF0010901D14FF000094FF0B3 +:10E4E0000008B9F1000F52D028780027C609012191 +:10E4F0002846FEF77DFB36B1407900F0C000402889 +:10E5000008BF012600D00026A06890F8C810032993 +:10E5100008D190F8C110002900E0AEE018BF90F8D3 +:10E52000CC0001D190F8DE00FDF756F95FEA000853 +:10E530000CD01021FDF7D9FF46B101212846FEF786 +:10E5400057FB01464046F7F779F90746A068002EC9 +:10E5500090F8B98018BF48F00208E87810F03F0F33 +:10E560001CBF287910F0020F0ED02846FEF7B3FA30 +:10E57000824601212846FEF73BFB5146F6F7B8F9E3 +:10E58000002818BF012000D1002038435FD0E87870 +:10E5900010F03F0F1EBF297911F0100F11F0080F76 +:10E5A00041D004212846FEF723FB0646A06890F8D8 +:10E5B000E20002F026F80146304600F00FFEA0B15E +:10E5C000424600212846FFF7CEF94648FEF7BFFB3A +:10E5D0000146A06880F8E6103188A0F8E310B17811 +:10E5E00080F8E5104FF004081BE5A06890F8E20001 +:10E5F00001287FF418AEE87810F03F0F1CBF28798F +:10E6000010F0010F3FF40FAEB9F1000F04D100215B +:10E610002846FEF7D7FE06E68DF8008069462846B4 +:10E62000FEF7D0FEFFE510F03F0F1CBF297911F077 +:10E63000100F7FF4F8AD10F03F0F1CBF287910F0D9 +:10E64000010F3FF4F0ADB9F1000FE5D1DFE7A068AD +:10E6500090F8CA00032818BF02287FF4E4AD002E0A +:10E660003FF4E1AD002F7FF4DEAD1F48694600683E +:10E6700000902846FEF7A6FED5E5002E3FF4D3AD68 +:10E68000184D1820E97811F03F0F3FF4CCAD2979EF +:10E6900088437FF4C8AD04212846FEF7A9FA064650 +:10E6A000A06890F8E20001F0ACFF0146304600F0AF +:10E6B00095FD00283FF4B7AD002201212846FFF761 +:10E6C00052F92846FEF743FB0146A06880F8E610A1 +:10E6D0003188A0F8E310B17880F8E5104FF0040815 +:10E6E0009FE40000D8110020C84802002DE9F04145 +:10E6F000FD4CA0680078002818BFFFDF0025A06847 +:10E7000001278570D0F8C4100A8882804A88428325 +:10E710008A888283C988C18380F82050F34990F8A1 +:10E72000DB20A1F59A764AB10A78C2F38013CA1C9D +:10E7300023B1527902F0C002402A33D090F8DC2095 +:10E7400042B111F8032BC2F380121AB1497911F0CA +:10E75000C00F27D00E3005F0CFFEA06890F8DD0086 +:10E7600018B1F5F7A6FE012824D0A068D0F8C4108F +:10E770004A7EC271D1F81A208260C98B81814561BD +:10E780000583A0680770D0F8C42090F80A1182F8B9 +:10E790005710D0F8C4000088F2F73CFABDE8F04109 +:10E7A000F1F7D2BED6F83711C0F80E10B6F83B110B +:10E7B0004182D2E7F5F7C0FEA16801F10802C91D48 +:10E7C000FDF71CF8002808BFFFDFA068C17941F001 +:10E7D0000201C171D6F80F114161B6F8131101831E +:10E7E000CFE72DE9F84FC04C0546FF21A068002770 +:10E7F0004FF0010980F8DE1090F8C800BA460128F1 +:10E8000018BF022802D0032818BFFFDF28004FF0EE +:10E81000040B4FF07F08B54EA6F1280500F04B81A0 +:10E820002846FEF73DFA28B92846FEF793FA002855 +:10E8300000F04181A06890F8E000082880F038815D +:10E84000DFE800F0FEFEFE04080CCF7BFFF7CEFBF6 +:10E8500000F0C5B800F093FD00F0C1B8A448FEF781 +:10E8600004F92071E878717A88421CD12879B17A4C +:10E87000884218D16879F17A884214D1A879317B1D +:10E88000884210D1E879717B88420CD1287AB17B1B +:10E89000884208D128783178C0F38010B0EBD11FBE +:10E8A00008BF012500D00025F6F7D2FA8E48F6F70A +:10E8B00034FC002808BF84F80080F6F719FC2079A2 +:10E8C000042840F04D81002D00F04A81CDF800A0D1 +:10E8D000A2688748694692F8D93053B3064692F841 +:10E8E0006600002840F03C8102F1680582F872B0B1 +:10E8F0006932A91C304600F016FC05F10B013046C8 +:10E90000FEF73DF9C0B228721F2884BF1F2028726D +:10E91000207809357F2808BFFFDF2078287084F829 +:10E920000080A06880F86690062002F019F800F0D8 +:10E9300017B9FEF747FD00F013B903276A48F6F749 +:10E94000ECFB002808BF84F80080F6F7D1FB68488C +:10E95000FEF78BF880466648FEF7F9F9B8F1080F24 +:10E9600008BF00283AD1E978032011F03F0F35D0D5 +:10E970002979884332D100215D48FEF739F9062212 +:10E9800006F1090105F0E8FB40BB5948FEF796F88F +:10E9900080465648FEF79FF880451FD10121544814 +:10E9A000FEF726F90622F11C05F0D6FBB0B9504857 +:10E9B000FEF791F880464D48FEF780F880450DD16E +:10E9C000F6F768FBF6F747FBF6F742FAF6F7ABFA0D +:10E9D0000227FFF78BFE042001F0C2FF38460746EE +:10E9E000B2E0F6F735FA4048F6F797FB002808BF83 +:10E9F00084F80080F6F77CFB3D48FEF736F80746C2 +:10EA00003B48FEF7A4F9072F08BF00284FD1E9784B +:10EA1000012011F03F0F4AD02979884347D10021C6 +:10EA20003348FEF7E5F8062206F1090105F094FBEC +:10EA300000283CD12E48FEF741F805462B4800E05F +:10EA400036E0FEF748F8854231D1A06890F804110D +:10EA500029B3B0F8082190F80611012A05D9520807 +:10EA6000A0F8082108BFA0F80891012914BF0029C7 +:10EA70000D21C943C1EBC10202EB011190F8052140 +:10EA8000D24302EB8203C3EB82121144B0F8082197 +:10EA9000890CB1FBF2F302FB131180F8051180F829 +:10EAA000049169461248CDF800A0FEF78BFC57E0B0 +:10EAB000FFDFBDE8F88FA06890F8E000082843D297 +:10EAC000DFE800F0424242041F2E3F350648F6F7C9 +:10EAD00024FB002808BF84F80080F6F709FBA06833 +:10EAE00090F8DD0050B105E0640100200012002024 +:10EAF000D8110020F6F7ECFAF5F7BBFCF6F7A8F909 +:10EB00002EE0FE48F6F709FB002808BF84F80080D5 +:10EB1000F6F7EEFAA06890F8DD000028EED0E2E704 +:10EB2000F648F6F7FAFA38B984F8008004E0F348BA +:10EB3000F6F7F3FA0028F7D0F6F7DAFAF6F788F9DD +:10EB40000EE000F02FFE0BE00C2F80F01982DFE8C2 +:10EB500007F006FDFC07FBFAFAFA0BF94FBBA8E732 +:10EB6000BDE8F84FFEF7A5BE00220121022001F00A +:10EB700051FD002800F04181E149A1F12800FDF795 +:10EB8000ADFFA068DE4E90F8B9103046FDF78DFF5E +:10EB9000A06800F1BA013046FDF76BFFA06890F85D +:10EBA000DB10C1B190F8C810032906D190F8C1104C +:10EBB000002918BF90F8CC0001D190F8DE00FCF7D6 +:10EBC0003FFF050007D001213046FDF76EFF2946C3 +:10EBD0003046FDF74EFFCA48F6F7B6F90121084660 +:10EBE000F6F7B3FAA168082081F8E000BDE8F88FD5 +:10EBF000A06890F8E21090F8E2100022032001F0E3 +:10EC000009FD00287ED0BF4F0A2087F8E0000120D0 +:10EC100001F0A6FE07F59A71A1F12800FDF75EFF4D +:10EC2000A06807F59A7890F8B9104046FDF73DFFC7 +:10EC3000A06800F1BA014046FDF71BFFA06890F8FC +:10EC4000DB10C9B190F8C810032906D190F8C110A3 +:10EC5000002918BF90F8CC0001D190F8DE00FCF735 +:10EC6000EFFE5FEA000907D001214046FDF71DFFD6 +:10EC700049464046FDF7FDFEA268A149D2F8C4000E +:10EC8000C08AC875000A0876D2F8C400407DB07505 +:10EC90000846F6F759F99A48D7F8C41020230278A5 +:10ECA000497B22F0200203EA411111430170D7F899 +:10ECB000C4002A78417BC2F340121140417397F897 +:10ECC0000B01D7F8C4106FE0A06890F8E21090F83C +:10ECD000E2100022052001F09DFC98B1894D0B2027 +:10ECE00085F8E000022001F03BFE05F59A71A1F1E4 +:10ECF0002800FDF7F3FEA06805F59A7790F8B910A3 +:10ED0000384600E079E0FDF7D0FEA06800F1BA01D6 +:10ED10003846FDF7AEFEA06890F8DB10F9B190F828 +:10ED2000C810032906D190F8C110002918BF90F827 +:10ED3000CC0001D190F8DE00FCF782FE5FEA00080B +:10ED40000DD004E034E01BE18EE085E07FE001219E +:10ED50003846FDF7AAFE41463846FDF78AFEA2680E +:10ED60006749D2F8C400C08AC875000A0876D2F88C +:10ED7000C400407DB0750846F6F7E6F8D5F8C40043 +:10ED800080F80D90A06890F8E230012296210020D2 +:10ED9000F5F790FF5A48017821F020010170A06832 +:10EDA000D5F8C41090F80B0181F85600BDE8F88F33 +:10EDB000A06890F8E21090F8E2100022042001F020 +:10EDC00029FCD0B14E49A1F12800FDF787FEA068CB +:10EDD0004B4E90F8B9103046FDF767FEA06800F181 +:10EDE000BA013046FDF745FEA06890F8DB10E9B1A6 +:10EDF00090F8C810032904D00AE0BDE8F84F00F0ED +:10EE0000CBB990F8C110002918BF90F8CC0001D1FF +:10EE100090F8DE00FCF714FE050007D00121304613 +:10EE2000FDF743FE29463046FDF723FE3448F6F74A +:10EE30008BF8A06890F8E230012296210020F5F7C7 +:10EE400039FFA168092081F8E000BDE8F88FA068CB +:10EE500080F8E090BDE8F88FA068022180F8049166 +:10EE600080F8E010BDE8F88FA56815F8E31F11F0F1 +:10EE7000800F0CBF1E204FF49670B5F80120C2F32E +:10EE80000C0212FB00F6C80908BF4FF01E0906D09D +:10EE9000002806BFFFDF4FF000094FF49679A878ED +:10EEA000400908BF012703D0012814BF002702270B +:10EEB000A06890F8E20001F0A4FBA6EB0008287817 +:10EEC00008EB0906C0F38010002808BF4FF4FA7A57 +:10EED00005D006BFFFDF4FF0000A4FF0320A0948A5 +:10EEE00090F8FC90B9F10C0F28BFFFDF0648074AE5 +:10EEF00030F819000AEB00010AE00000640100206C +:10EF000000120020CC100020DC4802003F420F001D +:10EF100001FB0620511CB0FBF1F000F120094E442A +:10EF2000F6F709F8287800F03F052846F5F732FD96 +:10EF3000A06880F8E15039462520F5F738FC012219 +:10EF4000A8EB09013B461046F5F7B4FEFE48F5F77D +:10EF5000FBFF00213046F6F743F8A06880F8E27026 +:10EF6000F6F7D0F8A06890F8DD0020B1F5F76DFA5B +:10EF70005020F6F79BF8A06880F8E0B0BDE8F88F65 +:10EF8000FFDFBDE8F88FF14810B5806890F8E00029 +:10EF90000C285FD2DFE800F05E5E5E5E5E5E5E5E65 +:10EFA0000613472DE848F5F7CFFFF6F7ABF8002139 +:10EFB0009620F6F715F8E5490520896830E0E24823 +:10EFC000F5F7C2FFE14CA06890F8E23001229621EB +:10EFD0001046F5F76FFEA06890F8E2000021962039 +:10EFE000F5F7FEFFF6F78EF8A168062081F8E0003D +:10EFF00010BDD548F5F7A8FFD44CA06890F8E230D2 +:10F00000012296211046F5F755FEA06890F8E2001F +:10F0100000219620F5F7E4FFF6F774F8A1680720C1 +:10F0200081F8E00010BDF6F735F8F6F714F8F5F7BB +:10F030000FFFF5F778FFC5480121806880F80411BB +:10F04000022180F8E010FFF751FBBDE810400320DB +:10F0500001F086BCFFDF10BD70B5BC4CA06890F815 +:10F06000E0007F25082828BF70BDDFE800F03F3FA3 +:10F070003F172304390AB548F6F74FF830B9257021 +:10F0800004E0B248F6F749F80028F8D0F6F730F86F +:10F09000F5F7DEFEBDE87040FEF70BBCAB48F6F7B7 +:10F0A0003CF8002808BF2570F6F722F8BDE870404C +:10F0B00000F072B8A548F6F730F8002808BF2570B0 +:10F0C000F6F716F8A06890F8DD0018B1F6F700F82A +:10F0D000F5F7CFF9F5F7BCFEBDE87040FEF7E9BBE8 +:10F0E00000F060FBBDE87040FEF7E3BB70BD70B59B +:10F0F000964C06460D46012909D0A06890F8E230EA +:10F1000090F8E2203046BDE8704001F0E9BDF5F727 +:10F1100011FBA16891F8E220034629463046BDE87C +:10F12000704001F0DDBD70B50646884814460D46B6 +:10F13000806890F8DD0018B1F5F7BBF901280ED012 +:10F140003046FDF7BBFC20703046FDF78EFC0728EB +:10F1500013D229463046BDE87040FDF791BCF5F763 +:10F16000EBF92A462146FCF749FB002808BFFFDFE0 +:10F17000207840F00200207070BD3046FDF775FC2D +:10F18000072818BF70BD00213046FDF731FD01682A +:10F1900029608088A88070BD10B5F5F77BFFF5F772 +:10F1A0005AFFF5F755FEF5F7BEFE684CA06890F8DB +:10F1B000DD0038B1F5F78CFFF5F75BF9A1680020A9 +:10F1C00081F8DD00A068012180F80411022180F897 +:10F1D000E010BDE81040002001F0C2BB2DE9F04175 +:10F1E000044680780222B2EB501F26D00D462178CB +:10F1F00011F0800F0CBF1E204FF49670B4F8012060 +:10F20000C2F30C0212FB00F6C80908BF1E2105D08C +:10F21000002806BFFFDF00214FF49671701BA27813 +:10F22000520908BF012703D0012A14BF0027022773 +:10F23000B0F5877F28BFAE4202D20020BDE8F08142 +:10F2400045182078C0F38010002808BF4FF4FA76E4 +:10F2500003D006BFFFDF002632263D4890F8FC4071 +:10F260000C2C28BFFFDF3B483B4A30F81400311814 +:10F2700001FB0520511CB0FBF1F020300544334860 +:10F28000806890F8E200F6F7B6F904463846F6F7DB +:10F29000B2F94FF47A7184423ABF001B00F2E730B2 +:10F2A000201AB0FBF1F034BF42192A1A3946BDE8E2 +:10F2B000F041012001F0AEB970B50D460446FDF7EE +:10F2C000AFFB032D55D0052D18BF70BD052120467D +:10F2D000FDF7ABFB1D4DA868D0F8C40000F10E018E +:10F2E0002046FDF760FCA868D0F8C40000F11201C8 +:10F2F0002046FDF75CFCA868D0F8C410497DA175D4 +:10F30000D0F8C410C98AE175090A2176D0F8C41072 +:10F3100049886176090AA176D0F8C4108988E17617 +:10F32000090A2177D0F8C410C9886177090AA17742 +:10F33000D0F8C40000F108012046FDF756FCA8688B +:10F34000D0F8C400017E09E0D8110020640100203B +:10F35000CC100020DC4802003F420F002046FDF7A1 +:10F360002CFCA86890F8FC102046BDE87040FDF722 +:10F370002EBC2046BDE870400321FDF756BB2DE9A9 +:10F38000F84FFD48F5F7C9FEFB4C002804BF7F206D +:10F390002070F5F7ADFEA06890F8D900002818BFDE +:10F3A000FFDFF648FDF761FBDFF8D083E0704FF038 +:10F3B000000998F803004D4610F03F0F1CBF98F865 +:10F3C000040010F0080F14D0EC48FDF7C0FC70B139 +:10F3D000012802D002280AD00BE098F8030010F0B0 +:10F3E0003F0F1CBF98F8040010F0010F01D04FF040 +:10F3F0000109A06890F8DD0018B1F5F769FEF5F78E +:10F4000038F898F803002E4637464FF0000A10F0FF +:10F410003F0F1CBF98F8040010F0020F43D0A06803 +:10F42000DFF858A3002690F8DB0000280CBF012766 +:10F4300000279AF800000121C5095046FDF7D8FBC6 +:10F4400035B1407900F0C000402808BF012500D048 +:10F450000025A06890F8C810032906D190F8C110C3 +:10F46000002918BF90F8CC0001D190F8DE00FCF71D +:10F47000B3F95FEA000B0FD01021FDF736F8002832 +:10F4800018BF012745B101215046FDF7B1FB0146E8 +:10F490005846F6F7D3F90646A068002D90F8B9A0B3 +:10F4A00018BF4AF0020AE0784FF0030B072875D125 +:10F4B000B248FDF74CFC002800F0F280012803D090 +:10F4C000022800F031819FE0009700270321AB481C +:10F4D000FDF78EFBB9F1000F7ED0A16891F8E7200F +:10F4E000012A79D1427891F8E9301209B2EB131F61 +:10F4F00072D10088B1F8E810C0F30B00C1F30B0122 +:10F50000884269D19D48FDF722FCA16891F8E62068 +:10F51000904261D191F8C800012818BF022802D09A +:10F5200003283CD0B9E0F5F793FC98F8030010F0FD +:10F530003F0F1CBF98F8040010F0020F17D08F4F38 +:10F540003846FDF7C8FA804601213846FDF750FBE2 +:10F550004146F5F7CDF9002818BF012030430BD004 +:10F560008DF800A069468548FDF72CFF14E00021C6 +:10F570008248FDF727FF0FE0A06890F8CA00032833 +:10F5800018BF022808D13DB136B97D486946806868 +:10F5900000907A48FDF716FF03277EE034E0002153 +:10F5A0007648FDF725FBA1680622D1F8C4101A3170 +:10F5B00004F0D2FD50B97148FDF780FAA168D1F886 +:10F5C000C410497E884208BF012500D0002598F864 +:10F5D000030010F03F0F00E05CE01CBF98F804004F +:10F5E00010F0020F01D0CEB127E0A06890F8CB1048 +:10F5F000012901D015B10CE05DB937E090F8DE10BB +:10F6000090F8CC00814204D0F5F722FC5846BDE8C2 +:10F61000F88FA06890F8E2000B273EE0009870B1E8 +:10F62000564E3046FDF757FA074601213046FDF7A2 +:10F63000DFFA3946F5F75CF908B1012200E0002253 +:10F64000A06890F8CB10012907D041B92DB990F8E6 +:10F65000DE3090F8CC00834201D1012000E0002090 +:10F66000024217D0012908BF002DD2D10021434802 +:10F67000FDF7BEFAA1680268D1F8C410C1F81A20DB +:10F680008088C8833D48FDF719FAA168D1F8C410F5 +:10F690004876BEE7F5F7DCFB03273846BDE8F88F70 +:10F6A000F5F7D6FB03213548FDF7A2FAB9F1000FB3 +:10F6B00036D0A16891F8E7206ABB427891F8E9302A +:10F6C0001209B2EB131F2BD10088B1F8E810C0F378 +:10F6D0000B00C1F30B01884222D12848FDF737FB0C +:10F6E000A16891F8E62090421AD191F8C80001284B +:10F6F00018BF022814D198F8030010F03F0F1CBF68 +:10F7000098F8040010F0020F06D08DF800A06946AA +:10F710001A48FDF757FE03E000211848FDF752FE96 +:10F720005846BDE8F88F00BFF5F792FBA06890F847 +:10F73000C80003281CD01148FDF709FBA16891F807 +:10F74000E620904214D198F80320092012F03F0FD0 +:10F750000ED098F8042090430AD1B9F1000F07D0D9 +:10F7600091F8C80002280DD000210448FDF72AFEB8 +:10F770000320BDE8F88F000064010020D8110020AC +:10F78000C848020091F8050128B1401E10F0FF00A2 +:10F7900081F80501ECD1524601212348FEF7E3F838 +:10F7A0000920E6E710B5F5F753FB2048F5F7B5FC5F +:10F7B0001E4C002804BF7F202070F5F799FCA0683C +:10F7C00090F8041119B1002180F8041110BDB0F8AF +:10F7D000082190F80611FF2A0AD24FF6FF7303EAB8 +:10F7E0004202A0F80821FF2A84BFFF22A0F80821C6 +:10F7F000012914BF00290D21C943C1EBC10202EB4D +:10F80000011290F80511C94301EB8103C3EB81118B +:10F810001144B0F80821890CB1FBF2F302FB13117B +:10F8200080F80511CFE70000D81100206401002006 +:10F830002DE9FF4F07460C46488881B040F2E2416F +:10F8400048430090E08A002600FB01FB94F8640026 +:10F8500091460D2818BF0C281FD024281EBF94F8ED +:10F86000650024284FF0000A17D0049818B1012130 +:10F87000204602F0B2FB94F8540094F8558094F8B6 +:10F88000D010054661B101296DD0022952D003295B +:10F8900018BFFFDF67D000F0D5B84FF0010AE4E7EA +:10F8A000B9F1000F08BFFFDFFD4EB068002808BFA8 +:10F8B000FFDF94F85410FB4890F82400FDF79DF802 +:10F8C000009094F85400F5F7A5FE00F2E7314FF4EC +:10F8D0007A79B1FBF9F1F24880680E1894F8540077 +:10F8E000F5F798FE014694F85400022804BFEE484C +:10F8F0004FF47A720DD0012804BFEC484FF4C8626F +:10F9000007D0042807BFEA4840F69802E94840F6C5 +:10F91000E4421044084400F2E731B1FBF9F10098E9 +:10F92000401A00EB0B01DE48406930440844061DD4 +:10F93000012015E0DA48A9F101018068084308BFF9 +:10F94000FFDFDD48B9F1000F006800EB0B0606D0C1 +:10F95000D348806800F22230B04288BFFFDF032026 +:10F9600084F8D0006DE094F86410009E24291EBF36 +:10F9700094F86520242A25294FD1B4F85810B4F8FA +:10F98000F020891A491C09B2002946DB94F8F210CC +:10F99000002942D00D4694F8F310002918BF88467C +:10F9A000022804BFC0494FF47A700DD0012804BF6B +:10F9B000BE494FF4C86007D0042807BFBC4940F6D1 +:10F9C0009800BC4940F6E4400144022D04BFB6480B +:10F9D0004FF47A720DD0012D04BFB4484FF4C862C1 +:10F9E00007D0042D07BFB24840F69802B14840F650 +:10F9F000E4421044814208D9081A00F5FA714FF424 +:10FA00007A70B1FBF0F0064407E0401A00F5FA7195 +:10FA10004FF47A70B1FBF0F0361AB9F1000F10D044 +:10FA2000DFF87C92D9F8080020B9B9F80200002864 +:10FA300018BFFFDFD9F8080000F22230B04288BFBB +:10FA4000FFDF06B9FFDF3146D4F8D400F2F7E9FD55 +:10FA5000C4F8D400B860002038704FF0010987F86E +:10FA60000490204602F0A6FBAAF10101084208BF5B +:10FA700087F8059006D094F8D00001280CBF02202A +:10FA8000032078714046D4F824B0F5F7B4FD014660 +:10FA9000022D04BF84484FF47A720DD0012D04BFAB +:10FAA00082484FF4C86207D0042D07BF804840F653 +:10FAB0009802804840F6E4421044084400F23F6156 +:10FAC0004FF47A70B1FBF0F0584400F5C970F8605B +:10FAD000049830EA0A0004BF05B0BDE8F08F314653 +:10FAE0003846FCF724FE85B2204602F063FBA842AC +:10FAF0000FD8054687F8059006FB05F1D4F8D40029 +:10FB0000F2F78FFDB86031463846FCF710FE284406 +:10FB100085B22946204602F060FAB868C4F8D400DD +:10FB200005B0BDE8F08F2DE9F0430446634885B089 +:10FB30000D4690F80004DFF88891400999F8001408 +:10FB40004909884218BFFFDFDFF85481002708F118 +:10FB50004406082D80F00E81DFE805F0046872721B +:10FB60006DFEFEB6202C28BFFFDF36F814000621FC +:10FB7000F0F71EFF050008BFFFDF202C28BFFFDFC6 +:10FB800036F814002988884218BFFFDF95F8D000A6 +:10FB9000002808BFFFDF284601F02EFFC8F80870D4 +:10FBA000A8F8027029460020C8F81470FCF710FE6F +:10FBB00000F19804686AA04225D995F85500F5F738 +:10FBC0001AFD014695F85400022804BF36484FF448 +:10FBD0007A720DD0012804BF34484FF4C86207D0B0 +:10FBE000042807BF324840F69802324840F6E44203 +:10FBF000104408444FF47A7100F23F60B0FBF1F119 +:10FC0000686A0844071B29460020C8F80C70FCF7F6 +:10FC1000DFFD698840F2E24251439830081AA0F2B1 +:10FC20002230C8F8100005B0BDE8F08305B0BDE88B +:10FC3000F04302F0ADB805B0BDE8F043F5F7A9BA5E +:10FC400099F8140D1F49400991F800144909884298 +:10FC500018BFFFDF202C28BFFFDF36F81400062175 +:10FC6000F0F7A6FE050008BFFFDF202C28BFFFDF4E +:10FC700036F814002988884218BFFFDF00220123CC +:10FC800029466846FFF7D4FD95F8DA006946F3F790 +:10FC900007FA002808BFFFDF05B0BDE8F0830000C9 +:10FCA000281200204412002068360200A22402001C +:10FCB000D0FB010030D301007401002001E000E01E +:10FCC0000BE000E019E000E0202C28BFFFDF36F851 +:10FCD00014000621F0F76CFE050008BFFFDF202CA2 +:10FCE00028BFFFDF36F814002988884218BFFFDFDD +:10FCF00095F8D000042818BFFFDF85F8D07095F87C +:10FD0000DA404FF6FF79202C28BFFFDF26F8149049 +:10FD100095F8DA00F2F75DFF002808BFFFDF20202A +:10FD200085F8DA00D5F8E000002804BFD5F8DC003B +:10FD3000C8F8180008D0D5E9391211448269114475 +:10FD40008161D5E93701C860D5F8DC0000281CBF07 +:10FD5000D5F8E010016100E00CE004D1D5F8E00036 +:10FD6000002818BF8761FE48007805B0BDE8F04361 +:10FD7000ECF70CB8FFDF05B0BDE8F0832DE9F05FCC +:10FD8000F84E07468B46F08B7568401CF083307840 +:10FD90004FF00008002808BFFFDF07D0DFF8C89346 +:10FDA00004282ED0052818BFFFDF5BD05846FEF789 +:10FDB00018F9040008BFFFDF29463069F2F731FC6B +:10FDC000B86087F800800120387194F8C9000228D3 +:10FDD00008BFE64807D0012808BFE54803D004283B +:10FDE0000CBFE448E4484FF47A7100F2E140B0FB04 +:10FDF000F1F0B168FA300844F860307804287DD119 +:10FE000083E0002AD2D0D6F810A0D9F8184034B335 +:10FE1000A146E468002CFBD1B9F1000F1FD099F87E +:10FE20000000002808BFFFDFD9F81410D9F804003B +:10FE300001445046F3F7FAFB002807DA291A491E55 +:10FE400091FBF5F101FB05042A4604E090FBF5F176 +:10FE500001FB15042A46944288BFFFDF00E04446B8 +:10FE60002546A3E7002AA1D0B569002D08BFFFDF12 +:10FE70000024D5F8E420D9F818002346611E58B1B3 +:10FE80008369934228BF994284BF194604460346BA +:10FE9000C0680028F4D104B91C46C5F8E040D0354C +:10FEA000002C04BFC5F80C80C9F8185005D0E068D4 +:10FEB000E560E860002818BF0561D5F81090C5F826 +:10FEC0001880B9F1000F0ED0D9F8180048B1D5F854 +:10FED00014A0504538BFFFDFD9F81800A0EB0A0086 +:10FEE000A861C9F81880002C08BFC6F8208009D086 +:10FEF0002078002808BFFFDF616900E00AE0606841 +:10FF00000844306240F6B83550E7F08B0A2838BF15 +:10FF1000032000D302207871F08B012807D93846DE +:10FF20007168FCF704FC0146F08B0844F083B86864 +:10FF30003061BDE8F09F2DE9F04107468F4884B05D +:10FF40000D4690F80004DFF83882400998F8001454 +:10FF50004909884218BFFFDF01200026082D814C87 +:10FF600080F0BB80DFE805F004718C8C87B9B9A5FF +:10FF700060732073607800281CBF04B0BDE8F08176 +:10FF800079488660466126733846FEF72AF80500F0 +:10FF900008BFFFDF95F8C900022804BF79494FF474 +:10FFA0007A720DD0012804BF71494FF4C86207D09E +:10FFB000042807BF6F4940F69802734940F6E442AF +:10FFC00011444FF47A7201F2E731B1FBF2F1A26809 +:10FFD0008C18F5F704FB024695F8C900082808BFFD +:10FFE000082127D004280CBF0221002322D0022898 +:10FFF0000CBF182128211944042816BF08280F23F4 +:020000040002F8 +:1000000025235B1D082808BF402007D0042808BF0F +:10001000102003D002280CBF0420082013FB00107E +:10002000801A201AFDF76DFD002818BFFFDF04B00D +:10003000BDE8F08101EB410101F12803082814BF5C +:1000400004284FF4A871D6D0D1E7617851B1207B54 +:10005000002808BFFDF77AFF667304B0BDE8F041E1 +:10006000F2F7E2BCA073FDF70EFE002818BFFFDF19 +:1000700004B0BDE8F08104B0BDE8F041F5F789B8FF +:1000800098F8140D4149400991F800144909884233 +:1000900018BFFFDF002239466846FFF76FFE69464A +:1000A0003846F2F7FDFF002808BFFFDF04B0BDE8C7 +:1000B000F0812078052818BFFFDF207F002808BFC7 +:1000C000FFDF26772670207DF2F783FD002808BF2A +:1000D000FFDF267504B0BDE8F081FFDF04B0BDE8A6 +:1000E000F0812DE9F0411F4C0026207804281FBF25 +:1000F000207805280C20BDE8F08101206070607B2D +:100100000025A8B1EFF3108010F0010F72B60CBFFC +:1001100000270127607B00281CBFA07B002805D09A +:10012000FDF714FF6573A573F2F77EFC2FB903E0AA +:10013000207DF3F7C7F800E062B6207DF3F70FFBF0 +:10014000207F28B125772078052818BFFFDF0C26EF +:1001500065702570207DF2F73CFD002818E0000056 +:1001600070010020441200202812002004360200F2 +:10017000A2240200D0FB0100C0D4010001E000E095 +:100180000BE000E06836020030D3010019E000E027 +:1001900008BFFFDF25753046BDE8F0812DE9F04F3F +:1001A000FD4883B00078002818BFFFF79AFF0120B0 +:1001B000DFF8E88388F8000069460620F0F781FB45 +:1001C000002818BFFFDF00274FF6FF7934E00298C0 +:1001D00000281CBF90F8D01000292DD00088484579 +:1001E0001CBFDFF8BCA34FF0200B3BD00621F0F77B +:1001F000DFFB040008BFFFDF94F8DA00F3F7AFFA83 +:1002000084F8D07094F8DA504FF6FF76202D28BF8E +:10021000FFDF2AF8156094F8DA00F2F7DAFC00281C +:1002200008BFFFDF84F8DAB069460620F0F749FB23 +:10023000002818BFFFDF10E06846F0F720FB002819 +:10024000C5D00FE0029800281CBF90F8D0100029FC +:1002500003D000884845C9D104E06846F0F70FFB99 +:100260000028EFD088F80070C8F8187003B000209C +:10027000BDE8F08F10B5CB4C60B101280CBF40F643 +:10028000C410FFDF06D0A06841F66A01884228BF8B +:10029000FFDF10BDA060F6E710B5DFF808C3BE4C65 +:1002A00000238CF80000237063702377237363733B +:1002B000A3732020A3612075A4F11C004370423079 +:1002C00010214FF6FF72428020F8042F491EFAD108 +:1002D000CCF80830DCF8080041F66A01884228BFF3 +:1002E000FFDFFFF75BFF40F6C41101206160F5F707 +:1002F00082F900F2E7314FF47A70B1FBF0F042F28C +:1003000010710844A0606168A1F21731884298BF5B +:100310000146A16010BDF0B59F4C054685B0207820 +:1003200000281EBF0C2005B0F0BD95F8546095F86C +:1003300055006F6AF5F75FF9022E04BF9A494FF432 +:100340007A720DD0012E04BF98494FF4C86207D0CD +:10035000042E07BF964940F69802964940F6E442BB +:10036000114408444FF47A7100F23F60B0FBF1F0A1 +:10037000384400F22230C5F8E400A56195F8D000B9 +:10038000002818BFFFDF0020844948610521217043 +:1003900060702077E0838848F2F7C1FB2075202841 +:1003A00008BFFFDFF2F734FC2061217D012268469F +:1003B000FFF7E4FC207D6946F2F772FE002808BFD3 +:1003C000FFDF002005B0F0BD7348007800281CBF97 +:1003D0000020704710B50620F0F784FA80F0010085 +:1003E00010BD70B56C4C05462078002818BFFFDFA3 +:1003F000287801281CBF112070BD698840F2712245 +:10040000AD88514301206160F5F7F5F800F2E7315E +:100410004FF47A70B1FBF0F040F2712105FB01005E +:10042000A0606168A1F21731884298BF01460020A0 +:10043000A16070BD10B584B008431EBF112004B088 +:1004400010BD554C207800281EBF0C2004B010BDF4 +:100450000020607004212170E0835748F2F75FFBB1 +:100460002075202808BFFFDF4C48806938B101465D +:10047000C0680028FBD111B1F2F7CAFB05E0F2F722 +:10048000C7FB40F6B831F2F7CCF82061217D01229C +:100490006846FFF773FC207D6946F2F701FE0028ED +:1004A00008BFFFDF002004B010BD70B53A4CA16951 +:1004B0000160FFF716FE002300BBA169D1F8E02020 +:1004C0005AB1D1E939C5AC449569AC44C2F818C0F9 +:1004D000D1E9372CCCF80C2005E0DFF8C0C0D1F80A +:1004E000DC20CCF81820D1F8DC20D1F8E010002A6C +:1004F00018BF116102D1002918BF8B61A36170BDC3 +:1005000026494870704770B540F2E24300FB03F59E +:1005100010460C46F5F76FF8022C04BF22494FF441 +:100520007A720DD0012C04BF20494FF4C86207D065 +:10053000042C07BF1E4940F698021E4940F6E442CB +:10054000114408444FF47A7100F23F60B0FBF1F0BF +:1005500000F2223085428CBF281A002070BD70B591 +:100560000D46064601460020FCF732F9044696F88F +:100570005500F5F740F8014696F85400022804BFEC +:10058000094A4FF47A7020D0012804BF074A4FF47B +:10059000C8601AD0042811E044120020281200205C +:1005A0006C1200207001002068360200A2240200B4 +:1005B000D0FB010030D3010037FF010007BFFC4A28 +:1005C00040F69800FB4A40F6E440104408444FF4DB +:1005D0007A7100F23F60B0FBF1F0718840F2712255 +:1005E0005143C0EB4100A0F22230A54234BF214666 +:1005F0002946814203D2A5422CBF2846204670627C +:1006000070BD10B5F4F7EBFFEB498A684968511AE1 +:10061000084410BD2DE9F74FE74A00231826D2F809 +:1006200008B028270BF198044FF004084FF0100988 +:100630004FF0080A4FF4C8724FF4BF754FF0400CEA +:1006400006287CD2DFE800F0034A21472465142005 +:10065000042912D0082909D02A20022911D010FB20 +:100660000A40002328211944441877E010FB0C406D +:100670004FEA0C034FF4A871F5E710FB09402E2355 +:10068000F8E710FB08401821EDE704F5317465E048 +:10069000082904BF4FF4BA6140200CD0042915D0BA +:1006A000022903BF03F15C01324604203A461CBF15 +:1006B00003F1B001082000EBC00000EB400002EBAA +:1006C00040000844204400F19C0447E02A4640F2E0 +:1006D0008E211020EFE704F5B0743FE0082908BF31 +:1006E00040200CD0042904BF2A46102007D002293C +:1006F00007BF03F11802042003F128020820C0EB11 +:10070000C00000EB400002EB4001029858440C1876 +:1007100024E0082904BF4FF4356140200CD004299F +:1007200016D0022903BF324603F1B401042003F5B9 +:10073000B0711CBF3A46082000EB400300E00CE01B +:1007400003EB001010440844204400F19C0405E031 +:100750002A4640F2EE311020EEE7FFDF974880682E +:10076000A0428CBF0120002003B0BDE8F08F10B57F +:10077000914C607828B1D4E90301A268FCF707F82E +:10078000E060D4E9020188429CBF2078002814BFB1 +:100790000020012010BD04222DE9F04F884E894F22 +:1007A000DFF80C82DFF80C9285B04FF47A7A0529D5 +:1007B00080F0D280DFE801F00A2B0331920080F84C +:1007C000D02005B0BDE8F04FF2F72EB904467A48C4 +:1007D0000078002818BF84F8D02004D005B0BDE808 +:1007E000F04FF2F721B90122002321466846FFF7B6 +:1007F0001FF894F8DA006946F2F752FC002808BFA7 +:10080000FFDFB4F85800401CA4F85800E6E70321C5 +:1008100080F8D01005B0BDE8F08F8346408840F2E4 +:10082000E241484368490860DBF8F800594600890E +:10083000ABF81600DBF8F80080798BF81500DBF8D0 +:10084000F8004089ABF80200DBF8F8008089ABF8CB +:100850000400DBF8F800C089ABF806000020DBF8E4 +:100860002850FBF7B5FF04469BF85500F4F7C3FE8C +:100870009BF85410022908BF4FF47A710DD001295A +:1008800004BF3E464FF4C86107D0042907BF46465F +:1008900040F698014E4640F6E4413144084400F2E7 +:1008A0003F60B0FBFAF1BBF8020040F27122504306 +:1008B000C1EB4000A0F22230A54234BF21462946B8 +:1008C000814203D2A5422CBF28462046CBF8240003 +:1008D00002208BF8D00005B0BDE8F08F83460146BA +:1008E000856A0020FBF774FF04469BF85500F4F777 +:1008F00082FE9BF85410022908BF4FF47A710DD084 +:10090000012904BF3E464FF4C86107D0042907BF40 +:10091000464640F698014E4640F6E44131440844CC +:1009200000F23F60B0FBFAF0BBF8021040F2712217 +:100930005143C0EB4100A0F22230A54234BF214612 +:100940002946814203D2A5422CBF28462046CBF837 +:10095000240005B0BDE8F08FFFDF05B0BDE8F08FE3 +:100960002DE9F043DFF864800024144D98F800105E +:1009700085B0072880F0AD81DFE800F0042A2AFC6A +:10098000FCFBFB00EC830846EBF700FA68780028D4 +:1009900040F05E81297D00226846FFF7EFF9287D4F +:1009A0006946F2F77DFB002808BFFFDF00F050B971 +:1009B000D0FB010030D30100281200204412002097 +:1009C00068360200A2240200740100207001002099 +:1009D00002280CBF01260026287DFDF702FB04003B +:1009E00008BFFFDF94F8E2103046FCF706F8DFF8A6 +:1009F000449301462869D9F80820002E024408BF14 +:100A00004FF4FC706ED094F8E20094F8E2000828ED +:100A10001EBF94F8E2000428002000F0B98000BF57 +:100A200094F8E230082B1ABF94F8E230042B4FF40C +:100A3000A87305D094F8E230022B0CBF18232823AA +:100A4000034494F8E200082808BF40200BD094F833 +:100A5000E200042808BF102005D094F8E200022824 +:100A60000CBF04200820C0EBC00C0CEB401003446A +:100A700094F8E20008281EBF94F8E2000428002041 +:100A800079D000BF94F8E2C0BCF1080F1ABF94F807 +:100A9000E2C0BCF1040F4FF4A87C08D094F8E2C087 +:100AA000BCF1020F0CBF4FF0180C4FF0280C84441F +:100AB00094F8E200082808BF40200BD094F8E20028 +:100AC000042808BF102005D094F8E20002280CBFCB +:100AD0000420082000EB400606EB00106044184498 +:100AE00000F59A7010440844061D94F8E200F4F7EB +:100AF00082FD94F8E210022908BF8F490BD094F8C8 +:100B0000E210012908BF8D4905D094F8E2100429AC +:100B10000CBF8B498B4994F8E220022A08BF4FF49E +:100B20007A720ED094F8E220012A08BF4FF4C8620E +:100B300007D094F8E220042A0CBF40F6980240F651 +:100B4000E442114408444FF47A7100F2E730B0FBFC +:100B5000F1F0A969301A40F2E2434A88D03102FB31 +:100B600003F6D9F818208A4208BF00272AD0296A3C +:100B700002E0A8E055E014E0F2F758FD002819DA89 +:100B8000311A4A1E92FBF6F202FB0607314616E0C6 +:100B900094F8E200082818BF022000EB400028303B +:100BA0003EE794F8E200082818BF022000EB40005E +:100BB000283067E790FBF6F202FB160731468F42BA +:100BC00088BFFFDFD8F80800874208D2A86940F242 +:100BD00071224188C1824A4307EB420705E040F297 +:100BE000E240B7FBF0F0A969C88294F8E210A86966 +:100BF00080F8541094F8E21080F8551005214175E2 +:100C0000C08A6FF41C71484307EB400040F6354141 +:100C1000C9F81400B0EB410F28BFFFDF05B0BDE8F5 +:100C2000F08304280CBF01260026EC830846EBF76E +:100C3000ADF80120287785F82460A8692969C0F8F3 +:100C4000D41080F8D0402978052918BFFFDF06D0DE +:100C5000F1F7EAFE6C73AC7305B0BDE8F0830028D1 +:100C600008BFFFDFA86990F8D000002818BFFFDF99 +:100C7000A86990F8DA00202818BFFFDF3248F1F7A2 +:100C80004EFFA9690646202881F8DA000F8828BFA0 +:100C9000FFDF2E4820F81670A86990F8DA002028A7 +:100CA00008BFFFDF002301226846A969FEF7C0FDE7 +:100CB000A869694690F8DA00F2F7F2F9002808BF4F +:100CC000FFDFAC61C4E705B00846BDE8F043EBF7D1 +:100CD0005DB8FFDF05B0BDE8F08316494860704796 +:100CE00070B5144D0446002904BFA86070BD4FF4D0 +:100CF0007A76012910D002291CBFFFDF70BD6888F9 +:100D0000401C68801046F4F785FC00F2E730B0FB29 +:100D1000F6F0201AA86070BD1846F4F78AFC00F2BD +:100D2000E730B0FBF6F0201AA86070BD08480078E4 +:100D3000704700002812002068360200A22402003A +:100D4000D0FB010030D3010027FB01006C12002012 +:100D500044120020F7490C28896881F8CB001ABF9B +:100D6000132818287047002211280FD0072808BF21 +:100D7000704715280AD001281ABF0028022870479A +:100D8000A1F88420012081F888007047A1F88A200A +:100D9000704770B5E74CA1680A88A1F83E2181F838 +:100DA0003C0191F85400012808BF012503D0022816 +:100DB00014BFFFDF0225A06880F8405190F855006D +:100DC000012808BF012503D0022814BFFFDF022538 +:100DD000A068012180F8415180F83A11002180F883 +:100DE0000E11E078BDE87040EAF7D0BFD14A012982 +:100DF00092681BD0002302290FD0032922D030B3E0 +:100E000001282FD0032818BF704792F864001328D8 +:100E10001CBF1628182805D1704792F8CB0000286F +:100E200008BF7047D2F8F8000370704792F8CB0003 +:100E3000012808BF704700BFD2F8FC000178491EA6 +:100E40000170704792F8CB000328EBD17047D2F8BD +:100E5000F800B2F858108288891A09B20029A8BF90 +:100E600003707047B2F85800B2F80211401A00B28D +:100E70000028E1DA70472DE9F041AE4C0026032747 +:100E8000D4F808C0012590B12069C0788CF8CA0058 +:100E900005FA00F010F4000F08BFFFDFA06880F82B +:100EA0006470A0F8846080F88850BDE8F081002369 +:100EB0009CF8652019460CF15800FBF7CEFB002882 +:100EC00004BF6570BDE8F0816078002818BFBDE8F8 +:100ED000F0812069C178A06880F8C91080F8657039 +:100EE000A0F88A6080F88C50BDE8F08170B5914C14 +:100EF00084B0207910F0010F04BF04B070BD2069E8 +:100F000000230521C578A06890F864205830FBF7CD +:100F1000A4FB002818BF062D09D020DC022D1CBF21 +:100F2000042D052D03D0607840F0080060706078D3 +:100F300000281CBF04B070BD2069C078801E162830 +:100F400080F00783DFE800F011FF89A7D52CFFFEB2 +:100F5000FF7FFDD2FFFFFFC5FCFBFAF9F8F50B2D73 +:100F60001CBF0D2D112DDED1E1E7A068002301216A +:100F700090F867205830FBF770FB002840F05C8346 +:100F80002069FCF759F8A16881F8F600072081F87C +:100F90006700002081F88C0081F8880000F04CBBCD +:100FA000A0680921002390F864205830FBF755FB16 +:100FB00018B120690079122812D0A0680A210023F4 +:100FC00090F864205830FBF748FB18B1206900798D +:100FD000142820D020690079162840F02D8324E0C1 +:100FE000A0680125002390F8642009215830FBF700 +:100FF00034FB002808BF657000F01E83607800286D +:1010000040F01A83A16881F87C0081F8880081F89B +:10101000640000F011BBA168002081F86400A1F811 +:10102000840081F8880000F035BAA06890F8641058 +:101030001F2940F00183002180F8641080F8881097 +:101040001A2000F0F7BAA06890F864100F2927D191 +:10105000002180F86910122137E0A06890F8641030 +:1010600013291DD1D0F8F81000884988814218BF93 +:10107000FFDFA068D0F8F80000F126012069FCF736 +:1010800008F8A06800F1C4012069FCF70AF81620EE +:10109000A16800F05BB9A26892F86400162802D03B +:1010A000022000F03BBAD2F8F80002F1B00300F1E0 +:1010B0001E0100220E30FBF74CFAA0680021C0E9A7 +:1010C0002811012180F86910182180F8641000F0BF +:1010D000B3BA2069FCF765F8032840F0AD822069B7 +:1010E000FCF763F801F0D0FB00F0A6BA20690079A4 +:1010F000F8E7A06890F864101A29D1D1002580F88B +:101100008D5080F88850D0F8F810008849888142C6 +:1011100018BFFFDFA068D0F8F8100D70D0F84411A8 +:101120000A78002A18BFFFDF7ED190F88E20DAB14E +:101130000AE03CE27C010020B6E181E125E1F1E03A +:1011400008E12BE09EE0A9E180F88E500288CA8079 +:10115000D0F844110D71D0F844210E211170D0F84F +:1011600044210188518010E00288CA80D0F84411DF +:101170000D71D0F8442101211172D0F844210D21C4 +:101180001170D0F84421018851800088EFF742FDAA +:10119000EFF7DAF9E078EAF7F9FDBEE0A06800239E +:1011A000194690F865205830FBF757FA50B9A068F7 +:1011B0000023082190F864205830FBF74EFA0028ED +:1011C00000F0FA816078002840F03682A06890F83C +:1011D000900010F0020F14D12069FBF765FFA168A1 +:1011E00081F891002069B0F80520A1F89220B0F8AC +:1011F0000700A1F8940091F8900040F0020081F8F7 +:101200009000A06890F8901011F0010F14D190F8A0 +:101210006520002319465830FBF71FFA002808BF45 +:10122000FFDF0121A06800E077E080F8651080F81A +:101230008C100021A0F88A10A06890F86410012991 +:1012400007D1002180F8641080F88810E078EAF770 +:101250009DFDA168D1F8F800098842888A4204BF40 +:101260000178042940F0E88100250570E078EAF76C +:101270008DFDA06890F86410002908BF80F88850A0 +:1012800000F0DAB9A0680023072190F864205830F4 +:10129000FBF7E3F9002800F08F816078002840F028 +:1012A000CB8102A92069FBF739FF9DF808000025D2 +:1012B00000F02501A06880F896109DF8091001F053 +:1012C000410180F8971080F88850D0F8F810008815 +:1012D0004988814218BFFFDFA068D0F8F8100D7070 +:1012E000D0F844110A78002A18BFFFDF15D1028810 +:1012F000CA80D0F844110D71D0F84411029A8A6066 +:10130000039ACA60D0F84421082111700188D0F8EE +:1013100044014180E078EAF739FDA06880F8645024 +:1013200000F08AB9A0680023092190F864205830A1 +:10133000FBF793F9002800F03F816078002840F027 +:101340007B81A16881F87C0081F8880081F86400C5 +:1013500000F072B9A0680023194690F86520583053 +:10136000FBF77BF9002800F027816078002840F027 +:101370006381A0680021A0F88A10012180F88C10F8 +:10138000022180F8651000F057B9A06800231946C3 +:1013900090F865205830FBF760F900287FD020696D +:1013A000FBF7A6FE002879D0A5682069FBF79CFE14 +:1013B0002887A5682069FBF793FE6887A5682069E0 +:1013C000FBF794FEA887A5682069FBF78BFEE887EA +:1013D000A06890F864101C2913BF90F84E100121EA +:1013E00080F84E10012907D090F80511002904BF9C +:1013F00090F80411002903D01E2180F8651017E031 +:101400001D2180F865100288A0F82A21028FA0F81B +:101410002C21428FA0F82E21828F00F58A71A0F82E +:101420003021C08FC88301200875E078EAF7AEFC50 +:10143000A0680021A0F88A10012180F88C10FBE040 +:10144000A06800230A2190F864205830FBF705F9C2 +:1014500018B32069FBF74CFEA8B1A5682069FBF71B +:1014600043FE2887A5682069FBF73AFE6887A568D0 +:101470002069FBF73BFEA887A5682069FBF732FED1 +:10148000E88700F0FEFEA168002081F8880081F85E +:10149000640000BF00F0C6FECEE000E059E06078D6 +:1014A00040F001006070C7E0A0680023194690F882 +:1014B00065205830FBF7D1F878B3A06890F8640045 +:1014C000232812BF2428607840F0200026D06846E8 +:1014D000F4F747F9002808BF002104D0009802A9BA +:1014E000C0788DF80800A06801AB162290F864005F +:1014F000FBF767FAA0B1A0689DF80420162180F8D8 +:10150000EC2080F8ED10192180F86510012180F899 +:101510008C100021A0F88A108EE04DE060708BE006 +:101520002069FBF700FEA0B12269107900F00701E5 +:10153000A06880F85010527902F0070280F851201C +:1015400090F80F31002B04BF90F80E31002B04D01F +:1015500022E00020FFF78FFC6EE090F855C000F10C +:1015600054038C4501BF19789142012180F87D1008 +:1015700012D00288A0F8362190F8502000F58A7128 +:1015800080F8382190F8510081F82500012081F879 +:101590002000E078EAF7FAFBA068212180F86510C6 +:1015A000012180F88C100021A0F88A1044E0A06886 +:1015B00090F864001F2801D00120AFE72069FBF7F5 +:1015C000BCFD88B32069A2680179407901F0070168 +:1015D00061F30705294600F0070060F30F210120A1 +:1015E00082F888000025A2F88450232082F8640045 +:1015F000566DD2F81001FBF79CF9F2B2C1B28A42E3 +:1016000007BFA16881F8F250A26882F8F210C6F311 +:101610000721C0F30720814219BFA16881F8F300B8 +:10162000A06880F8F35007E0FFE70120FFF723FCF4 +:101630005FF01E00FFF7ADFBA068D0E92A12491C3D +:1016400042F10002C0E92A1204B070BD2DE9F04752 +:10165000FE4D04464FF0000768780843687028790B +:1016600010F0200F2846806818BFA0F87E7004D1C3 +:10167000B0F87E10491CA0F87E1090F86A10012680 +:1016800039B990F86420002306215830FAF7E5FFB5 +:1016900058B3A88810F4006F07D0A86890F86A10B3 +:1016A000002918BFA0F876701FD1A868B0F876108E +:1016B000491C89B2A0F87610B0F878208A422CBF75 +:1016C000511A00218288521D8A4228BF80F87C600E +:1016D000B0F87610B0F87820914206D3A0F8767072 +:1016E00080F81A61E878EAF751FB287910F0600F6A +:1016F00008D0A86890F8681021B980F868600121C6 +:10170000FFF749F84FF00808002C56D168780028F8 +:1017100051D1287910F0040F0DD0A86890F864001A +:10172000032808BFFFDFA86890F86710072904BFE7 +:101730002E7080F8677001F0F7F8287910F0080F24 +:1017400019D06878B8B9A868002190F8CB00FFF7E5 +:101750004DFBA86890F8CB00FE2808BFFFDFFE21F4 +:10176000A86880F8CB1090F86710082903D10221EF +:10177000297080F86770FFF7B9FBA87810F0080FA0 +:1017800016D0A8680023052190F864205830FAF795 +:1017900064FF50B185F80180A868D0F8441108783A +:1017A0000D2808BF0020087002E00020F9F770FB48 +:1017B000A86800F0F2FF00F0AEFDA868A14600F1B5 +:1017C000580490F8F40030B9E27B00230121204650 +:1017D000FAF743FF10B1608D401C60853D21B9F1DF +:1017E000000F18D12878022808BF16200ED0012833 +:1017F00004BFA86890F8F60008D06878E8B110F047 +:10180000140F1CBF1E20207702D005E0207703E0D4 +:1018100010F0080F02D02177E67641E010F0030FB8 +:1018200003D02A202077E6763AE010F0200F08BF98 +:10183000FFDF23202077E67632E094F8300028B1ED +:10184000A08D411CA185E18D884213D294F834000B +:1018500028B1608E411C6186E18D88420AD2618D7B +:10186000208D814203D3AA6892F8F42012B9E28D48 +:10187000914203D322202077E67611E0217C31B11A +:10188000E18C814228BF84F81C80C5D206E0E08C40 +:10189000062803D33E202077E67601E0E07EA0B163 +:1018A0002773677327740221A868FEF774FFA8687E +:1018B00090F8CB10012904D1D0F8FC000178491E22 +:1018C0000170E878EAF762FA03E00021A868FEF701 +:1018D00062FFBDE8F047F3F753BF5C4A5178937855 +:1018E000194314D111460128896809D0107910F0E4 +:1018F000040F03D091F86700072808D00120704733 +:10190000B1F84800098E884201D8FEF730BF0020A8 +:10191000704770B54D4C06460D46A0883043A080F8 +:1019200016F0020F04D016F0010F18BFFFDFE560BC +:1019300016F0010F18BF256116F0020F10D0E878DD +:10194000062802D00B2837D00AE0A06890F864106F +:10195000182905D10021C0E92A11012180F86A1057 +:1019600016F0800F1CBF0820A07016F4806F08BF0F +:1019700070BDA268B2F8580091880844801DE978CB +:1019800080B2012908BFA2F8020107D0002904BFD4 +:10199000D2F8F810888001D0182915D0E9782846A7 +:1019A00001291CD009B3182918BF70BDB2F8F01076 +:1019B000BDE87040FBF7D3BBA06890F86410122913 +:1019C00008BF0021CCD1C9E792F8F210002902BF6C +:1019D00092F8F31000290020A2F8F000DEE7B2F838 +:1019E00002114172090AA97270BDD2F8F8108988F3 +:1019F0004173090AA97370BDF0B5144C85B0002677 +:101A0000A060A6806670A670054626700088F3F771 +:101A10007FFEA0680088F3F7A1FEB5F8D800A168A2 +:101A2000401C82B201F15800FAF718FC002818BFD8 +:101A3000FFDF95F8650024280ED1B5F85810B5F8E9 +:101A4000F000081A00B2002802E000007C0100202B +:101A5000A4BF6078002806D095F86400242818BF39 +:101A600025283BD119E0A06890F8F210002908BFA2 +:101A700090F8541080F8541090F8F310002908BF23 +:101A800090F8551080F855100020FFF782F985F87E +:101A90006560A16881F87D6020E0B5F85810B5F860 +:101AA000F000081A00B20028A4BF6078002815D101 +:101AB000A06890F8F210002908BF90F8541080F840 +:101AC000541090F8F310002908BF90F8551080F8D2 +:101AD00055100020FFF75DF985F86460A5F8D8601F +:101AE000A06890F8881039B1B0F88410B0F886205A +:101AF000914224BF05B0F0BD90F88C1039B1B0F818 +:101B00008A10B0F88620914224BF05B0F0BDB0F82D +:101B10008220B0F880108A4224BF05B0F0BD90F852 +:101B200068208AB3B0F87E208A4224BF05B0F0BD99 +:101B300090F8CB70FE2F00F012816846F3F7EBFDB2 +:101B4000002808BFFFDF2221009802F0B0FB03212C +:101B50000098FBF7EDF90098017821F01001017071 +:101B60003946FBF713FA192F71D2DFE807F0271F68 +:101B70001445D6D6D71971D6D7D763D6D6D6D6C9F7 +:101B8000D7D77B94ADD6B600B0F87E10062924BF17 +:101B900005B0F0BDCCE7A168009891F8F51003E01E +:101BA000A168009891F8CC100171B7E0A068D0F856 +:101BB000FC00411C0098FBF734FAAFE0A1680098E4 +:101BC000D1F8F82092790271D1F8F8201289427187 +:101BD000120A8271D1F8F8205289C271120A027277 +:101BE000D1F8F82092894272120A8272D1F8F81064 +:101BF000C989FBF7EEF991E0A068D0F8F800011D63 +:101C00000098FBF71BFAA068D0F8F80000F10C016F +:101C10000098FBF71DFAA068D0F8F80000F11E014B +:101C20000098FBF71BFAA06800F1C0010098FBF7D1 +:101C300023FA73E06269009811780171918841710B +:101C4000090A81715188C171090A017266E064E074 +:101C5000FD49D1E90001CDE9020102A90098FBF795 +:101C600025FA5BE0A068B0F844100098FBF728FA6A +:101C7000A068B0F846100098FBF726FAA068B0F804 +:101C800040100098FBF724FAA068B0F842100098C2 +:101C9000FBF722FA42E0A068B0F840100098FBF78A +:101CA00017FAA068B0F842100098FBF715FAA06880 +:101CB000B0F844100098FBF703FAA068B0F846109B +:101CC0000098FBF701FA29E0A168009891F810212B +:101CD000027191F81111417120E0A06890F8F300B1 +:101CE000FAF722FE01460098FBF735FAA06890F853 +:101CF000F200FAF719FE01460098FBF728FA0DE00A +:101D0000A06890F8ED100098FBF749FAA06890F8E9 +:101D1000EC100098FBF747FA00E0FFDFF3F70EFD49 +:101D2000002808BFFFDF0098C178012903D049B11E +:101D300018290FD013E0A168B1F802114172090A05 +:101D400081720CE0A168D1F8F81089884173090A02 +:101D5000817304E0A168B1F8F010FBF700FABB480A +:101D60000090BB4BBB4A29463046F8F7CDFFA06830 +:101D70000023052190F864205830FAF76EFC002803 +:101D800004BF05B0F0BD05B0BDE8F040F8F7C5BD33 +:101D9000B148806890F8881029B1B0F88410B0F884 +:101DA000862091421AD290F88C1029B1B0F88A108E +:101DB000B0F88620914211D2B0F88220B0F880109D +:101DC0008A420BD290F86820B0F87E0022B1884297 +:101DD00004D200BFF9F738B80628FBD3002001462B +:101DE00034E470B50C46064615464FF4A4712046FF +:101DF00002F07FFA2680002D08BFFFDF2868C4F8B4 +:101E0000F8006868C4F8FC00A868C4F8440170BD14 +:101E1000EEF7D7BE2DE9F0410D4607460621EEF755 +:101E2000C7FD040008BFBDE8F081D4F844110026C6 +:101E3000087858B14A8821888A4207D1092810D0E9 +:101E40000E281DD00D2832D008284CD094F81A0145 +:101E5000002857D06E701020287084F81A61AF8067 +:101E60003EE06E7009202870D4F844014168696032 +:101E70008168A9608089A881D4F8440106702FE0A8 +:101E80000846EEF7C7FE0746EEF773FBB0B96E7073 +:101E90000E202870D4F8440140686860D4F84401EA +:101EA00006703846EEF75FFB0120BDE8F08108467A +:101EB000EEF7B0FE0746EEF75CFB10B10020BDE880 +:101EC000F0816E700D202870D4F84401416869607B +:101ED00000892881D4F8440106703846EEF743FBA8 +:101EE0000120BDE8F0816E7008202870D4F844010C +:101EF00041688268C0686960AA60E860D4F84401FB +:101F00000670EDE794F81C01B0B16E7015202870D2 +:101F100094F81C010028E3D084F81C61D4F81E0159 +:101F20006860D4F82201A860B4F82601A88194F86A +:101F30001C010028F0D1D3E794F8280170B16E702D +:101F40001D20287084F82861D4F82A016860D4F82C +:101F50002E01A860B4F83201A881C1E794F83401D9 +:101F600040B16E701E20287084F83461D4F83601B8 +:101F70006860B5E794F8140180B16E701B2028707A +:101F800094F814010028ABD084F81461D4F8160139 +:101F9000686094F814010028F6D1A1E794F83A019A +:101FA000002808BFBDE8F0816E701620287094F8F4 +:101FB0003A01002894D000BF84F83A61D4F83C017B +:101FC0006860B4F84001288194F83A010028F3D100 +:101FD00086E7214A5061D17070472DE9F0470446E9 +:101FE000481E85B238BFBDE8F08704F10808012615 +:101FF000DFF864904FF0090A5FF00007B4F8D800EA +:10200000401CA4F8D800B4F87E00401CA4F87E0060 +:1020100094F86A0040B994F864200023062104F182 +:102020005800FAF71AFB30B3B4F87600401C80B2BF +:10203000A4F87600B4F8781081422CBF0A1A002266 +:10204000A3885B1D934209E0F44802004D1602008C +:10205000DB180200131902007C01002028BF84F85D +:102060007C60884207D3A4F8767084F81A6199F8E6 +:102070000300E9F78BFE94F8880020B1B4F88400DF +:10208000401CA4F8840094F88C0020B1B4F88A00B5 +:10209000401CA4F88A0094F8F40040B994F8672032 +:1020A0000023012104F15800FAF7D7FA20B1B4F85F +:1020B0008200401CA4F8820094F864000C2802D02E +:1020C0000D2820D067E0B4F85800411CB4F8020194 +:1020D000814260D1D4F8FC00411C404602F01EFA57 +:1020E00002212046F9F7DDFFD4F8FC000078002833 +:1020F00008BFFFDF0121FE20FEF778FE84F8647040 +:1021000084F8986047E0B4F85800411CD4F8F8000F +:10211000808881423FD1D4F844010178002918BF5A +:10212000FFDF22D12188C180D4F8F8004189D4F89A +:1021300044010181D4F8F8008189D4F84401418137 +:10214000D4F8F800C189D4F844018181D4F844015D +:102150000771D4F8440180F800A0D4F84401218824 +:10216000418099F80300E9F711FE01212046F9F7B3 +:1021700098FF03212046FEF70EFBD9F80800D0F89F +:10218000F8000078022818BFFFDF0221FE20FEF7CA +:102190002DFE84F86470B4F85800401C691EA4F841 +:1021A00058008DB2BFF42AAFBDE8F087F84AC2E903 +:1021B0000601704770B50446B0F87E0094F86810C8 +:1021C000002908BFC0F1020503D0B4F88010081A36 +:1021D000051F94F87C0040B194F864200023092185 +:1021E00004F15800FAF739FAA0B1B4F8766094F81F +:1021F0006A0058B994F864200023062104F15800BD +:10220000FAF72BFA002808BF284603D0B4F8780064 +:10221000801B001F8542C8BF0546002DD4BF00208B +:10222000A8B270BD042110B5D94CA068FEF7B3FA6E +:10223000A06890F84E10012902BF022180F84E10CC +:1022400010BD00F58A710288A0F81E21028EA0F848 +:102250002021828EA0F82221028FB0F844309A42C9 +:1022600028BF1A460A82828FB0F84600824238BFE1 +:102270001046488201200872E078BDE81040E9F776 +:1022800085BDC34830B4806890F84E30B0F832C095 +:10229000C48EB0F84010428F022B25D08A4238BF3E +:1022A00011460186C28FB0F842108A4238BF1146EB +:1022B0008186028FB0F844108A4238BF11464186A9 +:1022C000828FB0F846108A4238BF1146C186418ECF +:1022D000614588BF8C46A0F832C0C18EA14288BF3C +:1022E0000C46C48630BC7047038E9A4228BF1A46FB +:1022F000C58F838E9D4238BF2B468A4238BF114618 +:102300000186B0F842108B4228BF0B46838600211D +:1023100080F84E10CDE770B59D4CA06890F8CB10BA +:10232000FE2906BF6178002970BD90F86720002360 +:1023300001215830FAF791F9002818BF70BDA06844 +:1023400090F8F41021B1BDE870400220FEF702BD04 +:1023500090F86420002319465830FAF77EF940B10E +:10236000A06890F87C0020B1BDE870401220FEF714 +:10237000F1BCA068002590F86420122A1FD004DC6C +:10238000032A3FD0112A1FD003E0182A35D0232A70 +:1023900043D0002304215830FAF75FF9002818BF12 +:1023A00070BDD4F808C09CF8650019287CD03BDCCF +:1023B00001286BD0022879D003285DD038E0BDE831 +:1023C00070400B20FEF7C6BCF1F760FC0C2838BF4C +:1023D00070BDA0680821D0F8F8001E30F1F75AFC53 +:1023E00028B1A0680421C030F1F754FC00B9FFDF28 +:1023F000BDE870400320FEF7ADBCBDE8704006208C +:10240000FEF7A8BC90F8CA1080F8CC100720FEF7A1 +:10241000A1FCA06880F8645070BD1820FEF79AFCFB +:10242000A068A0F8845070BD1E2847D021286BD02A +:10243000DCF8F80001260178002973D04088BCF848 +:10244000001088426ED100239CF8642019460CF1DC +:102450005800FAF702F9002864D0A068D0F8F81004 +:10246000097802297ED003297DD004297CD0052952 +:1024700008BF082079D0C7E09CF8C9008CF8CC00D0 +:102480000720FEF767FCA06800F06DB90C20FEF78E +:1024900061FCA068A0F88A5090F8901041F001010A +:1024A00080F8901000F05FB96DE0FFE71320FEF7B1 +:1024B00051FCA068A0F88A5000F055B99CF80501BD +:1024C000002818BF70BD9CF8040188B1BCF8060153 +:1024D000ACF84000BCF80801ACF84200BCF80A01B6 +:1024E000ACF84400BCF80C01ACF846008CF8045180 +:1024F000FFF7C7FEFFF796FE1520FEF72BFCA0683E +:10250000A0F88A5000F02FB99CF87D0058B18CF8E3 +:10251000F2508CF8F3501820FEF71CFCA068A0F8CD +:102520008A5070BD70E09CF80F01002818BF70BD84 +:102530009CF80E01002808BF70BDDCE91416DCF819 +:102540001001FAF7F6F9F2B2C1B28A4207BFA168E8 +:1025500081F8F250A26882F8F210C6F30721C0F3A6 +:10256000072003E016E01BE03BE022E0814219BFB8 +:10257000A16881F8F300A06880F8F3501820BDE846 +:102580007040FEF7E7BB1120FEF7E4FBA068EAE02D +:102590007C01002090F86500FAF748F8A0BB08E03D +:1025A00090F8691041B190F86A00002808BFFFDF79 +:1025B0000A20FEF7CFFB27E0F1F768FB0C2823D3B6 +:1025C000A0680821D0F8F8001E30F1F763FB28B1AD +:1025D000A0680421C030F1F75DFB00B9FFDF0320E4 +:1025E000E7E790F8900010F0030F0DD10C20FEF7F4 +:1025F000B1FBA068A0F8845080F8886090F8901033 +:1026000041F0010180F89010A06890F8CB10FE29ED +:1026100018BF70BD90F86420002319465830FAF7AF +:102620001CF8002808BF70BDA06890F80011E9B33D +:10263000A1690978D1BB90F86500F9F7F7FFA8BB4D +:10264000A068B0F858100A2931D900F10801052214 +:10265000E06901F081FD0028A06804BF80F8005106 +:1026600070BDD0F8FC00017861B1411C0522E06921 +:1026700001F072FD002818BF70BDA068D0F8FC0002 +:10268000007830B9A068E169D0F8FC00401C01F086 +:1026900045FFA068D0F8FC000178491C01700120BA +:1026A000FEF758FBA06880F8005170BDFFE7A068F6 +:1026B00090F8041111B190F8051181B390F80E1142 +:1026C000002908BF70BD90F80F11002918BF70BD18 +:1026D00090F86500F9F7AAFF002818BF70BDA06840 +:1026E00090F85400012808BF012503D0022814BF28 +:1026F000FFDF0225A06890F85500012808BF0126D9 +:1027000003D0022814BFFFDF0226A168012D91F833 +:1027100010012BD0022D08BF022829D033E0FFE79B +:10272000B0F80611A0F84010B0F80811A0F8421057 +:10273000B0F80A11A0F84410B0F80C11A0F8461037 +:1027400080F8045190F865001D2804D0BDE8704061 +:102750001420FEF7FFBAFFF794FDFFF763FD152085 +:10276000FEF7F8FAA06880F8655070BD01280AD11C +:1027700091F81101012E04D0022E08BF022807D0C3 +:1027800001E0012804D0BDE870401620FEF7E2BA4F +:10279000BDE870400020FEF7FCBA70B5044690F822 +:1027A000640000250C2814D00D2818BF70BDB4F8A3 +:1027B0005800D4F8F810401C8988884218BF70BDB2 +:1027C000D4F84401FE4E0178002918BFFFDF45D13F +:1027D00022E0B4F85800B4F80211401C884218BF37 +:1027E00070BDD4F8FC00411C04F1080001F096FE15 +:1027F00002212046F9F755FCD4F8FC0000780028A7 +:1028000008BFFFDF0121FE20FEF7F0FA84F86450D4 +:10281000012084F8980070BD2188C180D4F8F800A8 +:10282000D4F8441140890881D4F8F800D4F8441150 +:1028300080894881D4F8F800D4F84411C08988818F +:10284000D4F844010571D4F8441109200870D4F873 +:10285000441120884880F078E9F798FA0121204651 +:10286000F9F71FFC03212046FDF795FFB068D0F86B +:10287000F8000078022818BFFFDF0221FE20FEF7D3 +:10288000B5FA84F8645070BD70B5CD4CA16891F86C +:102890006420162A11BF132A91F88E20002A62782C +:1028A0001BBF02206070002A70BD81F8C80000259F +:1028B00081F88D5081F88850D1F8F8000988408857 +:1028C000884218BFFFDFA068D0F8F800007803281E +:1028D00018BFFFDF0321FE20FEF788FAA068D0F8BA +:1028E00044110A78002A18BFFFDF19D10288CA8074 +:1028F000D0F8442190F8C8101171D0F844110D722D +:10290000D0F844210D211170D0F844210188518064 +:102910000088EEF77FF9EDF717FEE078E9F736FA71 +:10292000A06880F8645070BD10B5A54C207910F0F7 +:10293000020F08BF10BD6078002818BF10BDE06806 +:10294000C078192880F06981DFE800F05F4F0D8FB3 +:10295000F8F8A6223FF86F83B1F8F8F8F8F7E3E04B +:10296000F9F5F4F8F300A0680023012190F867203E +:102970005830F9F772FE002818BF10BD0821A06872 +:1029800080F86710002180F8881080F88C1010BD46 +:10299000A0680023194690F865205830F9F75DFECD +:1029A00018B1A168002081F88C00A06800231946A6 +:1029B00090F864205830F9F750FE002808BF10BD89 +:1029C0000020A16881F8880010BDA0680023194686 +:1029D00090F864205830F9F740FE002808BFFFDF68 +:1029E0000420A16881F8640010BDA0680023194686 +:1029F00090F864205830F9F730FE002808BFFFDF58 +:102A00000C20A16881F8640010BDA068002319465D +:102A100090F864205830F9F720FE002808BFFFDF47 +:102A20000D20A16881F8640010BDA068002319463C +:102A300090F864205830F9F710FE002808BFFFDF37 +:102A40000121A06880F88D105FF00F0180F86410FC +:102A500010BDA06890F86400122818BFFFDF0121A4 +:102A6000A06880F88E101121F0E7A06800231946B5 +:102A700090F864205830F9F7F0FD28B9A06890F874 +:102A80008E00002808BFFFDF0121A06880F88D10AC +:102A9000132180F8641010BDA06890F86400182815 +:102AA00018BFFFDF1A20A16881F8640010BDA0687C +:102AB000D0F8F81003884A889A4204BF097804299C +:102AC00019D190F86420002319465830F9F7C5FD54 +:102AD000002808BFFFDFA06890F8901011F0020FE7 +:102AE00004BF012180F8641005D0002180F888100F +:102AF000D0F8F8000170A0680023194690F865200E +:102B00005830F9F7AAFD002808BF10BD0020A168C1 +:102B100080E0A0680023194690F864205830F9F747 +:102B20009CFD002808BFFFDF0520A16881F8640034 +:102B300010BD30E01FE012E001E067E06DE0A0684A +:102B40000023194690F864205830F9F786FD0028D4 +:102B500008BFFFDF1C20A16881F86400E8E7A068D7 +:102B60000023194690F865205830F9F776FD0028C3 +:102B700008BFFFDFCAE7A0680023194690F8642069 +:102B80005830F9F76AFD002808BFFFDF1F20A16851 +:102B900081F86400CCE7A06890F8651021291DD069 +:102BA00090F86410232918BFFFDFC1D190F8F2100C +:102BB000002906BF90F8F3100029242102E000004C +:102BC0007C01002018BF80F864107FF4F9AE00216A +:102BD00080F864100846FEF7DCF8F1E690F8F21091 +:102BE000002907BF90F8F3100029242180F8651010 +:102BF0008CD1002180F8651080F87D1090F80E01CE +:102C000000281CBF0020FEF7C4F87FE7A168002061 +:102C100081F8650081F88C008AE7FFDF88E7000013 +:102C200070B58D4C0829207A63D2DFE801F0041AD0 +:102C30005A5A2662625A80B1F1F7EDFD012211461F +:102C40001046F1F7F0FFF2F7FDFC0020A072F1F75B +:102C5000A1FEBDE87040F2F76EB9BDE87040EFF735 +:102C6000E3BED4E90001EFF7DCFC2060A07A401C51 +:102C7000C0B2A07228281CD370BDA07A0025401EC7 +:102C8000C6B2E0683044F2F748FA10B9E1687F2034 +:102C90008855A07A272828BF01252846F2F782FC0C +:102CA000A07A282809D2401CC0B2A072282828BFC8 +:102CB00070BDBDE87040F1F76DBE207A00281CBFE2 +:102CC000012000F085F8F2F7C3F8F2F72CF90120A3 +:102CD000E07262480078E9F759F8BDE87040EFF714 +:102CE000A3BE002808BF70BD0020BDE8704000F002 +:102CF0006FB8FFDF70BD10B5574C207A002804BFB5 +:102D00000C2010BD00202072E072607AF0F7DAFA31 +:102D1000607AF0F724FD607AEFF75BFF00280CBFC4 +:102D20001F20002010BD002270B54B4C06460D46FA +:102D3000207A68B12272E272607AF0F7C3FA607AA0 +:102D4000F0F70DFD607AEFF744FF002808BFFFDFC2 +:102D50004248E560067070BD70B5050007D0A5F566 +:102D6000E8503F494C3881429CBF122070BD3A4C1C +:102D7000E068002804BF092070BD207A00281CBF2D +:102D80000C2070BD3748EFF7CAFE6072202804BFE0 +:102D90001F2070BDEFF73CFF2060002D1CBF2844B2 +:102DA0002060012065602072002000F011F80020F2 +:102DB00070BD2949CA7A002A04BF002070471F222B +:102DC000027000224270CB684360CA7201207047D3 +:102DD0002DE9F04184B00746EFF71AFF1E4D8046FB +:102DE000414668682C6800EB800046002046F0F7FA +:102DF0001DFCB04206DB6868811B4046EFF711FC02 +:102E00000446286040F2337621464046F0F70EFC37 +:102E1000B04204DA31464046EFF703FC0446002096 +:102E20008DF8000040F2E760039004208DF8050063 +:102E3000002F14BF012003208DF80400684602947F +:102E4000F0F7B3F8687A6946F0F72AF9002808BF66 +:102E5000FFDF04B0BDE8F081AC1200209C0100202F +:102E6000B5EB3C00212C02002DE9F0410C46124943 +:102E70000D68114A114908321160A0F12001312971 +:102E800001D301200CE0412810D040CC0C4F94E835 +:102E90000E0007EB8000241F50F8807C3046B847B6 +:102EA00020600548001D0560BDE8F0812046DEF782 +:102EB00097F9F5E706207047100502400100000170 +:102EC000FC48020010B5524800F038FA00B1FFDFAC +:102ED0004F48401C00F032FA002800D0FFDF10BD40 +:102EE0002DE9F14F4B4ED6F800B00127484800F0CD +:102EF0002DFADFF81C8128B95FF0000708F1010006 +:102F000000F03AFA444C00254FF0030901206060BC +:102F1000C4F80051C4F80451009931602060DFF812 +:102F2000FCA018E0DAF80000C00614D50E2000F06E +:102F300064F8EFF3108010F0010072B600D00120A9 +:102F4000C4F80493D4F8001119B9D4F8041101B9E4 +:102F500020BF00B962B6D4F8000118B9D4F8040152 +:102F60000028DFD0D4F804010028CFD137B1C6F84B +:102F700000B008F1010000F0E9F911E008F10100EA +:102F800000F0E4F90028B9D1C4F80893C4F804515A +:102F9000C4F800510E2000F030F81D4800F0ECF9A4 +:102FA0000020BDE8F88F2DE9F0438DB00D460646B0 +:102FB00000240DF110090DF1200817E004EB44077F +:102FC000102255F82710684601F0F2F805EB870744 +:102FD00010224846796801F0EBF86846FFF780FF59 +:102FE00010224146B86801F0E3F8641CB442E5DB06 +:102FF0000DB00020BDE8F08372E700F01F02012150 +:1030000091404009800000F1E020C0F88012704734 +:103010009D01002004E5004000E0004010ED00E0CC +:10302000AA4900200870704770B5A94D01232B6094 +:10303000A84B1C68002CFCD0002407E00E6806603A +:103040001E68002EFCD0001D091D641C9442F5D39F +:103050000020286018680028FCD070BD70B59B4E19 +:1030600004469D4D3078022800D0FFDFAC4200D3EB +:10307000FFDF71699948012903D847F23052944221 +:1030800001DD03224271491C7161291BC160934912 +:103090007078F0F705F8002800D1FFDF70BD70B53B +:1030A0008A4C0D466178884200D0FFDF8A4E082D99 +:1030B0004BD2DFE805F04A041E2D4A4A4A382078F0 +:1030C000022800D0FFDF03202070A078012801D063 +:1030D00020B108E0A06800F0B7FD04E004F10800AA +:1030E00007C8FFF7A1FF05202070BDE87040EFF78B +:1030F0009BBCEFF78DFD01466068F0F797FAB04290 +:1031000002D2616902290BD30320F0F74CFD12E0D3 +:10311000EFF77EFD01466068F0F788FAB042F3D21F +:10312000BDE870409AE7207802280AD0052806D02A +:10313000FFDF04202070BDE8704000F0BDB8022021 +:1031400000E00320F0F72FFDF3E7FFDF70BD70B55F +:103150000546EFF75DFD5D4C60602078012800D0EA +:10316000FFDF5E49012008700020087104208D6097 +:1031700048715948C860022020706078EFF790FFCE +:10318000002800D1FFDF70BD10B5504C207838B951 +:103190000220F0F71EFD18B90320F0F71AFD08B160 +:1031A000112010BD4E48EFF7BAFC6070202804D003 +:1031B000012020700020606110BD032010BD2DE9AA +:1031C000F041144600EB84070E4605463F1F00F011 +:1031D0004EFD4FF080521169484306EB8401091FF0 +:1031E000B14201D2012100E000211CB11269B4EB0F +:1031F000920F02D90920BDE8F0813A4A95420ED3D8 +:10320000AF420CD3854205D2874203D245EA06007D +:10321000800701D01020EEE7964200D309B10F20BD +:10322000E9E7314831490068884205D022463146F5 +:103230002846FFF7F9FE10E0FFF7A6FF0028DAD1D5 +:10324000224800218560C0E9036481704FF4A971B0 +:1032500004FB01F01830FFF77AFF0020CBE770B5D0 +:103260004FF08055044628691E49B1FBF0F08442B6 +:1032700001D20F2070BD00F0FAFCA04201D810204E +:1032800070BD194819490068884204D02869604314 +:1032900000F0DAFC0CE0FFF777FF0028F0D1296995 +:1032A0000A4861438160012181701148FFF74FFF97 +:1032B000002070BD00F024BF10B5044C6078EFF71B +:1032C00088FC00B9FFDF0020207010BDA0010020A5 +:1032D00004E5014000E40140105C0C00BC12002039 +:1032E0009F30020000600200B0000020BEBAFECA9B +:1032F0007C5E01004FF08050D0F83011062903D0D9 +:10330000D0F83011491C07D1D0F83411062905D363 +:10331000D0F83401401C01D00020704701207047D4 +:103320004FF08050D0F83011062905D1D0F8340183 +:10333000062801D30120704700207047002101704A +:10334000084670470146002008707047EFF310816F +:1033500001F0010172B60278012A01D0012200E0D9 +:1033600000220123037001B962B60AB10020704740 +:103370004FF400507047E9E7EFF3108111F0010FAF +:1033800072B64FF00002027000D162B600207047A2 +:10339000F2E700004C4909680160002070474A4983 +:1033A00008600020704701218A0720B1012804D05D +:1033B00042F204007047916700E0D1670020704737 +:1033C00042490120086042F20600704708B5042314 +:1033D0003E4A1907103230B1C1F80433106840F08A +:1033E000010010600BE0106820F001001060C1F8CF +:1033F00008330020C1F8080135480068009000201B +:1034000008BD011F0B2909D8304910310A6822F084 +:103410001E0242EA400008600020704742F20500A8 +:103420007047000100F18040C0F804190020704787 +:10343000000100F18040C0F8081900207047000129 +:1034400000F18040D0F80009086000207047012892 +:1034500001D9072070471F4A52F8200002680A432A +:10346000026000207047012801D907207047194ADF +:1034700052F8200002688A43026000207047012849 +:1034800001D907207047134A52F8200000680860ED +:1034900000207047020010494FF0000003D0012ABD +:1034A00001D0072070470A6070474FF0804100202C +:1034B000C1F808014FF0E020802180F800140121BC +:1034C000C0F80011704700000004004000050040F3 +:1034D00008010040C0490200780500406249634B82 +:1034E0000A6863499A42096801D1C1F31001016079 +:1034F000002070475C495D4B0A685D49091D9A428E +:1035000001D1C0F310000860002070475649574BA6 +:103510000A68574908319A4201D1C0F31000086087 +:103520000020704730B5504B504D1C6842F20803E4 +:10353000AC4202D0142802D203E0112801D318466D +:1035400030BDC3004B481844C0F81015C0F814250E +:10355000002030BD4449454B0A6842F209019A42B5 +:1035600002D0062802D203E0042801D3084670479F +:10357000404A012142F83010002070473A493B4B45 +:103580000A6842F209019A4202D0062802D203E0F8 +:10359000042801D308467047364A012102EBC000D7 +:1035A00041600020704770B52F4A304E314C15688D +:1035B00042F2090304EB8002B54204D0062804D28B +:1035C000C2F8001807E0042801D3184670BDC1F303 +:1035D0001000C2F80008002070BD70B5224A234ECA +:1035E000244C156842F2090304EB8002B54204D072 +:1035F000062804D2D2F8000807E0042801D31846B0 +:1036000070BDD2F80008C0F310000860002070BD43 +:10361000174910B50831184808601120154A0021D3 +:1036200002EBC003C3F81015C3F81415401C14288E +:10363000F6D3002006E0042804D302EB8003C3F88D +:10364000001807E002EB8003D3F80048C4F310042D +:10365000C3F80048401C0628EDD310BD04490648B5 +:103660000831086070470000B0000020BEBAFECAF2 +:1036700000F5014000F001400000FEFF7E4B1B689A +:1036800003B19847BFF34F8F7C4801687C4A01F42F +:10369000E06111430160BFF34F8FFEE710B5EFF318 +:1036A000108010F0010F72B601D0012400E0002458 +:1036B00000F0D9F850B1DDF72DFEEFF776F8F0F70E +:1036C00013FADFF7A2FB6F490020086004B962B665 +:1036D000002010BD70B50C460546EFF3108010F0C9 +:1036E000010F72B601D0012600E0002600F0BBF801 +:1036F00018B106B962B6082070BDDDF787FDDDF7A9 +:103700000DFE0246002043099B0003F1E02300F078 +:103710001F01D3F80031CB40D9071BD0202803D29A +:1037200022FA00F1C90722D141B2002906DA01F0DC +:103730000F0101F1E02191F8141D03E001F1E021F6 +:1037400091F800144909082911D281B101290ED03C +:1037500004290CD0401C6428D5D3DFF72DFB494940 +:10376000494808602046F0F7D9FD60B904E006B981 +:1037700062B641F2010070BD3F4804602DB1284699 +:10378000F0F719FE18B110242CE0404D19E028780C +:10379000022802D94FF4805424E0072400286878D6 +:1037A00001D0F8B908E0E8B120281BD8A878212872 +:1037B00018D8012816D001E0A87898B9E8780B2825 +:1037C00010D83349802081F8140DDDF7A7FD294674 +:1037D000F0F770F9EEF7A8FF00F07CFA2846DDF765 +:1037E0006BFD044606B962B61CB1FFF757FF2046D1 +:1037F00070BD002070BD10B5044600F034F800B173 +:1038000001202070002010BD224908600020704770 +:1038100070B50C4620490D681F49204E08310E60D6 +:10382000102807D011280CD012280FD0132811D03F +:10383000012013E0D4E90001FFF74CFF354620607A +:103840000DE0FFF72BFF0025206008E02068FFF760 +:10385000D2FF03E00F4920680860002020600E4876 +:10386000001D056070BD074807490068884201D106 +:103870000120704700207047B80100200CED00E0E7 +:103880000400FA05B0000020BEBAFECAC849020012 +:103890000BE000E0040000201005024001000001E0 +:1038A00000B5C44910F1080F08BFF82024D014DC7B +:1038B00010F1280F08BFD8201ED010F1140F08BF38 +:1038C000EC2019D010F1100F08BFF02014D010F127 +:1038D0000C0F08BFF4200FD00CE010F1040F08BF4C +:1038E000FC2009D0002818BF032805D0042804BFF5 +:1038F000086000BDFFDF00BD086000BD00B5AE4937 +:10390000012808BF032004D0022816BFFFDF0420CF +:1039100000BD086000BDA949002804BF086820F068 +:10392000010005D0012806BF086840F0010070477B +:103930000860704770B51E460546012924D0022A4A +:1039400004BF9F484FF47A710DD0012A04BF9D48EF +:103950004FF4C86107D0042A07BF9B4840F698017E +:103960009A4840F6E44144181846F1F744FE0444EE +:103970003046F1F75EFE20444FF47A7100F2712078 +:10398000B0FBF1F0281A70BD022A08BF4FF47A701C +:103990000AD0012A08BF4FF4C86005D0042A0CBF22 +:1039A00040F6980040F6E44049F608514418DBE739 +:1039B00070B514460546012908BF49F6CA660DD000 +:1039C000022B08BF824807D0012B08BF7D4803D0D7 +:1039D000042B0CBF7C487F4800F1FA061046F1F733 +:1039E00019FE012C08BF4FF47A710AD0022C08BFCF +:1039F0004FF4FA7105D0042C0CBF4FF4FA614FF468 +:103A0000FA51711A08444FF47A7100F28920B0FB20 +:103A1000F1F0281A801E70BD70B5144606460129C3 +:103A200030D0022B04BF66494FF47A700DD0012BC1 +:103A300004BF64494FF4C86007D0042B07BF624934 +:103A400040F69800614940F6E4400D181046F1F741 +:103A5000E1FD012C08BF4FF47A710AD0022C08BF97 +:103A60004FF4FA7105D0042C0CBF4FF4FA614FF4F7 +:103A7000FA51691A08444FF47A716438B0FBF1F0D6 +:103A8000301A70BD022B08BF4FF47A700AD0012B98 +:103A900008BF4FF4C86005D0042B0CBF40F6980057 +:103AA00040F6E44049F608514518CFE770B5164690 +:103AB0000446012908BF49F6CA650DD0022B08BF8C +:103AC000434807D0012B08BF3E4803D0042B0CBF4E +:103AD0003D48404800F1FA051046F1F78CFD0544D9 +:103AE0003046F1F7A6FD28444FF47A7100F2E14028 +:103AF000B0FBF1F0201A801E70BD2DE9F0410746A1 +:103B00001E460C4615461046082A16BF04284DF6D8 +:103B10008830F1F770FD07EB4701C1EBC71100EBEF +:103B2000C100012C08BF4FF47A710AD0022C08BFE3 +:103B30004FF4FA7105D0042C0CBF4FF4FA614FF426 +:103B4000FA5147182046F1F765FD381A4FF47A719B +:103B500000F60F60B0FBF1F42846F1F740FD204479 +:103B60003044401DBDE8F08170B5054614460E4650 +:103B70000846F1F740FD05EB4502C2EBC512C0EB6C +:103B8000C2053046F1F755FD2D1A2046082C16BF08 +:103B900004284DF68830F1F72EFD28444FF47A7151 +:103BA00000F6B730B0FBF1F52046F1F718FD2844D8 +:103BB000401D70BD0C15004010150040501600400F +:103BC00068360200A2240200D0FB010030D30100BD +:103BD00004360200C0D401002DE9FE430C468046A5 +:103BE000F9F7BAF9074698F80160204601A96A4634 +:103BF000ECF79BFC05000DD0012F02D00320BDE89F +:103C0000FE83204602AA0199ECF7B1FB0298B0F8B6 +:103C100003000AE0022F14D1042E12D3B8F80300D7 +:103C2000BDF80020011D914204D8001D80B2A919E1 +:103C3000814202D14FF00000E1E702D24FF00100D3 +:103C4000DDE74FF00200DAE70B4A022111600B4971 +:103C50000B68002BFCD0084B1B1D1860086800285F +:103C6000FCD00020106008680028FCD070474FF09E +:103C7000805040697047000004E5014000E40140C5 +:103C800002000B464FF00000014620D0012A04D06C +:103C9000022A04D0032A0DD103E0012002E0022011 +:103CA00015E00320072B05D2DFE803F00406080A1D +:103CB0000C0E100007207047012108E0022106E0E9 +:103CC000032104E0042102E0052100E00621EEF7D3 +:103CD00042BF0000F9480521817000210170417048 +:103CE0007047F7490A78012A05D0CA681044C860AD +:103CF0004038EFF768BC8A6810448860F8E700280D +:103D000019D00378EF49F04A13B1012B0ED011E01E +:103D10000379012B00D06BB943790BB1012B09D189 +:103D20008368643B8B4205D2C0680EE00379012BA7 +:103D300002D00BB10020704743790BB1012BF9D1B0 +:103D4000C368643B8B42F5D280689042F2D8012070 +:103D50007047DB4910B501220A700279A2B1002236 +:103D60000A71427992B104224A718268D34C52326C +:103D70008A60C0681434C8606060EEF749FFCF49BC +:103D800020600220887010BD0322E9E70322EBE7E0 +:103D900070B5044609B1012000E00320C84D0021A0 +:103DA0002970217901B100202871607968B104205F +:103DB000C24E6871A168F068EEF733FCA860E06855 +:103DC0005230E8600320B07070BD0320F0E72DE9A9 +:103DD000F04105460226EFF722FB006800B1FFDF45 +:103DE000B64C01273DB12878B0B1012805D0022892 +:103DF00010D0032813D027710CE06868C82807D3B7 +:103E0000EFF747FC20B16868FFF76BFF012603E07E +:103E1000002601E000F05CF93046BDE8F081207832 +:103E20000028F7D16868FFF76AFF0028E3D06868C8 +:103E3000017879B1A078042800D0FFDF01216868FB +:103E4000FFF7A6FF9E49E078EFF72AF90028E1D1B5 +:103E5000FFDFDFE7FFF77DFF6770DBE72DE9F04766 +:103E6000964C8846E178884200D0FFDFDFF84C921C +:103E700000250127924E09F11409B8F1080F75D2F7 +:103E8000DFE808F0040C28527A808D95A07803288A +:103E900002D0022800D0FFDFBDE8F087A078032819 +:103EA00002D0022800D0FFDF0420A0702571207806 +:103EB000002878D1FFF715FF3078012806D0B068C8 +:103EC000E06000F031F92061002060E0E078EEF77A +:103ED000E4FFF5E7A078032802D0022800D0FFDF36 +:103EE000207800286DD1A078032816D0EEF790FE38 +:103EF00001464F46D9F80000EFF798FB00280EDB8B +:103F0000796881420BDB081AF0606D49E078EFF7C1 +:103F1000C7F80028C0D1FFDFBEE7042028E0042056 +:103F2000EFF741FEA570B7E7A078032802D002287A +:103F300000D0FFDF207888BBA078032817D0EEF7E9 +:103F400067FE01464F46D9F80000EFF76FFB0028E7 +:103F5000E5DB79688142E2DB081AF0605849E078D5 +:103F6000EFF79EF8002897D1FFDF95E740E00520A6 +:103F7000EFF719FEA7708FE7A078042800D0FFDFC5 +:103F8000022004E0A078042800D0FFDF0120A1680F +:103F90008847FFF71CFF054630E004E011E0A078F9 +:103FA000042800D0FFDFBDE8F04700F091B8A0780A +:103FB000042804D0617809B1022800D0FFDF2078FE +:103FC00018B1BDE8F04700F08CB8207920B1062088 +:103FD000EFF7E9FD2571CDE7607838B13849E07831 +:103FE000EFF75EF800B9FFDF657055E70720BFE720 +:103FF000FFDF51E73DB1012D03D0FFDF022DF9D1E5 +:104000004AE70420C3E70320C1E770B5050004D0E8 +:104010002A4CA078052806D101E0102070BD0820A8 +:10402000EFF7D7FD08B1112070BD2848EEF777FDF6 +:10403000E070202803D00020A560A07070BD032090 +:1040400070BD1E4810B5017809B1112010BD8178EE +:10405000052906D0012906D029B1012101700020CF +:1040600010BD0F2010BD00F03CF8F8E770B5134C00 +:104070000546A07808B1012809D155B12846FFF7B7 +:104080003EFE40B1287840B1A078012809D00F2029 +:1040900070BD102070BD072070BD2846FFF759FE87 +:1040A00003E000212846FFF773FE0549E078EEF7AC +:1040B000F7FF00B9FFDF002070BD0000BC01002049 +:1040C000CC1200203D860100FF1FA1075D3E0200CB +:1040D0000A4810B5006900F01FF8BDE81040EEF77F +:1040E000A3BC064810B5C078EEF773FD00B9FFDF3A +:1040F0000820EFF758FDBDE81040EBE5BC010020BB +:1041000010B5134C2060201D016011481030026072 +:10411000001D0360002010BD0E490A6848F202131A +:104120009A4302430A6070470A4A116848F2021330 +:1041300001EA0300994311607047054B02465B4258 +:1041400010201344FC2B01D81160002070470000A0 +:1041500000060040C806024040EA010310B59B0774 +:104160000FD1042A0DD310C808C9121F9C42F8D0E1 +:1041700020BA19BA884201D9012010BD4FF0FF3092 +:1041800010BD1AB1D30703D0521C07E0002010BDA8 +:1041900010F8013B11F8014B1B1B07D110F8013B34 +:1041A00011F8014B1B1B01D1921EF1D1184610BD15 +:1041B000032A40F2308010F0030C00F0158011F853 +:1041C000013BBCF1020F624498BF11F801CB00F82B +:1041D000013B38BF11F8013BA2F1040298BF00F87F +:1041E00001CB38BF00F8013B11F0030300F025803C +:1041F000083AC0F0088051F8043B083A51F804CB63 +:10420000A0E80810F5E7121D5CBF51F8043B40F828 +:10421000043BAFF30080D20724BF11F8013B11F833 +:1042200001CB48BF11F8012B24BF00F8013B00F877 +:1042300001CB48BF00F8012B704710B5203AC0F001 +:104240000B80B1E81850203AA0E81850B1E8185097 +:10425000A0E81850BFF4F5AF5FEA027C24BFB1E8D4 +:104260001850A0E8185044BF18C918C0BDE8104045 +:104270005FEA827C24BF51F8043B40F8043B08BF4E +:104280007047D20728BF31F8023B48BF11F8012B15 +:1042900028BF20F8023B48BF00F8012B704702F00E +:1042A000FF0343EA032242EA024200F002B84FF061 +:1042B00000020429C0F0128010F0030C00F01B80F3 +:1042C000CCF1040CBCF1020F18BF00F8012BA8BF01 +:1042D00020F8022BA1EB0C0100F00DB85FEAC17CC5 +:1042E00024BF00F8012B00F8012B48BF00F8012B78 +:1042F00070474FF0000200B51346944696462039A9 +:1043000022BFA0E80C50A0E80C50B1F12001BFF48E +:10431000F7AF090728BFA0E80C5048BF0CC05DF8F4 +:1043200004EB890028BF40F8042B08BF704748BF42 +:1043300020F8022B11F0804F18BF00F8012B7047B6 +:10434000FEDF04207146084219D10699124A9142B3 +:1043500015DC069902394878DF2810D10878FE2844 +:1043600007D0FF280BD14FF001004FF000020B4B9C +:10437000184741F201000099019A084B1847084B71 +:10438000002B02D01B68DB6818474FF0FF307146E6 +:104390004FF00002014B1847006002007D3602001A +:1043A00004000020184819497047FFF7FBFFDCF7AD +:1043B00005FF00BD4FF4805015490968884203D1BC +:1043C000144A13605B68184700BD000020BFFDE77A +:1043D0004FF480500E490968884210D10E4B18687E +:1043E0004FF0FF318842F1D080F308884FF0202150 +:1043F000884204DD0948026803210A430260084834 +:10440000804708488047FFDFE0120020E0120020CC +:104410000000002004000020006002001409004099 +:10442000F5430100B543020004207146084202D062 +:10443000EFF3098101E0EFF3088188690238007821 +:10444000102813DB20280FDB2C280BDB0A4A12680C +:104450000A4B9A4203D1602804DB094A1047022024 +:1044600008607047074A1047074A1047074A126812 +:104470002C32126810470000B0000020BEBAFECAFD +:1044800021130000692E02001138020004000020F0 +:104490000D4B0E4908470E4B0C4908470D4B0B4975 +:1044A00008470D4B094908470C4B084908470C4B76 +:1044B000064908470B4B054908470B4B034908477A +:1044C0000A4B02490847000049BB00000D2F0000BD +:1044D0006D2C0000092B0000972A00000F2D000012 +:1044E0003D13000053280000C1BD0000C9110000A9 +:1044F00000210160017170470021016081807047D7 +:10450000002101604160017270470A684B680260D7 +:104510004360B1F808C0A0F808C070470A6802609C +:104520000B79037170470000B19500003B970000C4 +:1045300099980000BD980000F79800002B990000A2 +:104540005D9900008D990000039A00008996000093 +:10455000A7120000A712000075440000C14400002B +:10456000E5440000794500009546000057470000EB +:1045700089470000714800000349000057490000C6 +:104580003D4A00005D4A0000DF15000003160000F0 +:10459000331500008715000035160000C91600000D +:1045A0005B6000000B620000DF650000F566000044 +:1045B0007F670000FD6700006168000085690000FA +:1045C000556A0000C16A00007F4A0000854A000069 +:1045D0008F4A000085410000F74A00005941000061 +:1045E0007B4C0000B34C0000294D00000F4E000032 +:1045F000254E0000A7120000A7120000A71200001D +:10460000A7120000A7120000A7120000A7120000C6 +:10461000A7120000BF24000045250000612500000E +:104620007D2500000B270000A7250000B125000014 +:10463000F325000015260000F126000033270000B6 +:10464000A7120000A71200005F8300007F83000014 +:1046500081830000C5830000F3830000E184000033 +:104660006F85000083850000D1850000C1860000B1 +:10467000678800009189000073730000A989000019 +:10468000A7120000A7120000C9B4000033B6000052 +:1046900087B60000F3B60000A3B7000001000000D9 +:1046A00000000000100110013A0200001A02000090 +:1046B000F3900000E1900000FFFFFFFF0000FFFF0C +:1046C000C5AC0000253D000065200000BD73000062 +:1046D000598E0000000000000000020000000000F1 +:1046E00000020000000000000001000000000000C7 +:1046F0000B810000EB800000598100004124000084 +:1047000003240000232400002FA800005BA8000061 +:1047100063AA0000515900007981000000000000E8 +:10472000A98100008F2400000000000000000000AC +:104730000000000045A9000000000000E55900004D +:10474000000000004808000048080000D3560000A0 +:10475000D35600005144000071AB00003F760000CA +:10476000771F0000E31D02004F9401001157000065 +:104770001157000073440000D3AB0000C376000063 +:10478000E91F0000111E0200639401007001700116 +:10479000400038005C0024004801000200000300D3 +:1047A000656C746200000000000000000000000062 +:1047B0000000000087000000000000000000000072 +:1047C00000000000BE83605ADB0B376038A5F5AAF5 +:1047D0009183886C010000007911010041200100E3 +:1047E00000000001020603040500000007000000AD +:1047F00000000000060000000A0000003200000077 +:1048000073000000B4000000DD860100DB0C020034 +:10481000CB6C010065AE010059F0010065AE0100EE +:10482000616E01001DB00100E3E701001DB0010051 +:10483000476B0100B1AF010087EF0100B1AF01008C +:10484000C76C010079AE0100E9DF010079AE01001B +:104850005972010091B20100EFF0010091B2010024 +:104860000300000001555555D6BE898E0000C706CD +:10487000C70CC71200006B030F06B3080000B70493 +:10488000A708970CF401FA00960064004B00320070 +:104890001E0014000A000500020001000041000093 +:1048A00000000000AAAED7AB154120100C0802177B +:1048B0000D0101020909010106020918180301018D +:1048C0000909030305000000FE000000FE000000CF +:1048D000FE555555252627D6BE898E00F401FA00CF +:1048E000960064004B0032001E0014000A00050010 +:1048F000020001002541000000000000DD3402003C +:10490000F53402000D350200253502005535020050 +:104910007D350200A7350200DB3502005F32020060 +:10492000BF310200B53202003B4102003D330200BC +:104930004D330200793302009F3C0100A73C010087 +:10494000B93C0100A7330200C133020095330200D5 +:104950009F330200CD33020003340200B52E020063 +:1049600023340200313402003F3402004F3402008D +:10497000673402007F34020095340200B52E020035 +:104980000000000077B90000CDB90000E3B90000D5 +:10499000813C0200E12E0200A72F02000B40020022 +:1049A000434002006D400200493B0100C93E010046 +:1049B000B52E0200B52E0200B52E0200B52E020063 +:1049C0001C0500402005004000100200EC490200D8 +:1049D00008000020D001000044110000244A020019 +:1049E000D801002008110000A0110000011813C810 +:1049F000140250201A0102227C2720FB349B5F8086 +:104A00001280021A10138B091B2048041ACE0401CD +:104A1000200B50A40AAC01300912CB637F010B6854 +:044A2000CC10A00016 +:00000001FF diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble.h new file mode 100644 index 0000000..9ebb41f --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble.h @@ -0,0 +1,622 @@ +/* + * Copyright (c) 2012 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON BLE SoftDevice Common + @{ + @defgroup ble_api Events, type definitions and API calls + @{ + + @brief Module independent events, type definitions and API calls for the BLE SoftDevice. + + */ + +#ifndef BLE_H__ +#define BLE_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_err.h" +#include "ble_gap.h" +#include "ble_l2cap.h" +#include "ble_gatt.h" +#include "ble_gattc.h" +#include "ble_gatts.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_COMMON_ENUMERATIONS Enumerations + * @{ */ + +/** + * @brief Common API SVC numbers. + */ +enum BLE_COMMON_SVCS +{ + SD_BLE_ENABLE = BLE_SVC_BASE, /**< Enable and initialize the BLE stack */ + SD_BLE_EVT_GET, /**< Get an event from the pending events queue. */ + SD_BLE_UUID_VS_ADD, /**< Add a Vendor Specific UUID. */ + SD_BLE_UUID_DECODE, /**< Decode UUID bytes. */ + SD_BLE_UUID_ENCODE, /**< Encode UUID bytes. */ + SD_BLE_VERSION_GET, /**< Get the local version information (company ID, Link Layer Version, Link Layer Subversion). */ + SD_BLE_USER_MEM_REPLY, /**< User Memory Reply. */ + SD_BLE_OPT_SET, /**< Set a BLE option. */ + SD_BLE_OPT_GET, /**< Get a BLE option. */ + SD_BLE_CFG_SET, /**< Add a configuration to the BLE stack. */ +}; + +/** + * @brief BLE Module Independent Event IDs. + */ +enum BLE_COMMON_EVTS +{ + BLE_EVT_USER_MEM_REQUEST = BLE_EVT_BASE + 0, /**< User Memory request. @ref ble_evt_user_mem_request_t */ + BLE_EVT_USER_MEM_RELEASE = BLE_EVT_BASE + 1, /**< User Memory release. @ref ble_evt_user_mem_release_t */ +}; + +/**@brief BLE Connection Configuration IDs. + * + * IDs that uniquely identify a connection configuration. + */ +enum BLE_CONN_CFGS +{ + BLE_CONN_CFG_GAP = BLE_CONN_CFG_BASE + 0, /**< BLE GAP specific connection configuration. */ + BLE_CONN_CFG_GATTC = BLE_CONN_CFG_BASE + 1, /**< BLE GATTC specific connection configuration. */ + BLE_CONN_CFG_GATTS = BLE_CONN_CFG_BASE + 2, /**< BLE GATTS specific connection configuration. */ + BLE_CONN_CFG_GATT = BLE_CONN_CFG_BASE + 3, /**< BLE GATT specific connection configuration. */ + BLE_CONN_CFG_L2CAP = BLE_CONN_CFG_BASE + 4, /**< BLE L2CAP specific connection configuration. */ +}; + +/**@brief BLE Common Configuration IDs. + * + * IDs that uniquely identify a common configuration. + */ +enum BLE_COMMON_CFGS +{ + BLE_COMMON_CFG_VS_UUID = BLE_CFG_BASE, /**< Vendor specific UUID configuration */ +}; + +/**@brief Common Option IDs. + * IDs that uniquely identify a common option. + */ +enum BLE_COMMON_OPTS +{ + BLE_COMMON_OPT_PA_LNA = BLE_OPT_BASE + 0, /**< PA and LNA options */ + BLE_COMMON_OPT_CONN_EVT_EXT = BLE_OPT_BASE + 1, /**< Extended connection events option */ +}; + +/** @} */ + +/** @addtogroup BLE_COMMON_DEFINES Defines + * @{ */ + +/** @brief Required pointer alignment for BLE Events. +*/ +#define BLE_EVT_PTR_ALIGNMENT 4 + +/** @brief Leaves the maximum of the two arguments. +*/ +#define BLE_MAX(a, b) ((a) < (b) ? (b) : (a)) + +/** @brief Maximum possible length for BLE Events. + * @note The highest value used for @ref ble_gatt_conn_cfg_t::att_mtu in any connection configuration shall be used as a parameter. + * If that value has not been configured for any connections then @ref BLE_GATT_ATT_MTU_DEFAULT must be used instead. +*/ +#define BLE_EVT_LEN_MAX(ATT_MTU) ( \ + offsetof(ble_evt_t, evt.gattc_evt.params.prim_srvc_disc_rsp.services) + ((ATT_MTU) - 1) / 4 * sizeof(ble_gattc_service_t) \ +) + +/** @defgroup BLE_USER_MEM_TYPES User Memory Types + * @{ */ +#define BLE_USER_MEM_TYPE_INVALID 0x00 /**< Invalid User Memory Types. */ +#define BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES 0x01 /**< User Memory for GATTS queued writes. */ +/** @} */ + +/** @defgroup BLE_UUID_VS_COUNTS Vendor Specific UUID counts + * @{ + */ +#define BLE_UUID_VS_COUNT_DEFAULT 10 /**< Default VS UUID count. */ +#define BLE_UUID_VS_COUNT_MAX 254 /**< Maximum VS UUID count. */ +/** @} */ + +/** @defgroup BLE_COMMON_CFG_DEFAULTS Configuration defaults. + * @{ + */ +#define BLE_CONN_CFG_TAG_DEFAULT 0 /**< Default configuration tag, SoftDevice default connection configuration. */ + +/** @} */ + +/** @} */ + +/** @addtogroup BLE_COMMON_STRUCTURES Structures + * @{ */ + +/**@brief User Memory Block. */ +typedef struct +{ + uint8_t *p_mem; /**< Pointer to the start of the user memory block. */ + uint16_t len; /**< Length in bytes of the user memory block. */ +} ble_user_mem_block_t; + +/**@brief Event structure for @ref BLE_EVT_USER_MEM_REQUEST. */ +typedef struct +{ + uint8_t type; /**< User memory type, see @ref BLE_USER_MEM_TYPES. */ +} ble_evt_user_mem_request_t; + +/**@brief Event structure for @ref BLE_EVT_USER_MEM_RELEASE. */ +typedef struct +{ + uint8_t type; /**< User memory type, see @ref BLE_USER_MEM_TYPES. */ + ble_user_mem_block_t mem_block; /**< User memory block */ +} ble_evt_user_mem_release_t; + +/**@brief Event structure for events not associated with a specific function module. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which this event occurred. */ + union + { + ble_evt_user_mem_request_t user_mem_request; /**< User Memory Request Event Parameters. */ + ble_evt_user_mem_release_t user_mem_release; /**< User Memory Release Event Parameters. */ + } params; /**< Event parameter union. */ +} ble_common_evt_t; + +/**@brief BLE Event header. */ +typedef struct +{ + uint16_t evt_id; /**< Value from a BLE__EVT series. */ + uint16_t evt_len; /**< Length in octets including this header. */ +} ble_evt_hdr_t; + +/**@brief Common BLE Event type, wrapping the module specific event reports. */ +typedef struct +{ + ble_evt_hdr_t header; /**< Event header. */ + union + { + ble_common_evt_t common_evt; /**< Common Event, evt_id in BLE_EVT_* series. */ + ble_gap_evt_t gap_evt; /**< GAP originated event, evt_id in BLE_GAP_EVT_* series. */ + ble_gattc_evt_t gattc_evt; /**< GATT client originated event, evt_id in BLE_GATTC_EVT* series. */ + ble_gatts_evt_t gatts_evt; /**< GATT server originated event, evt_id in BLE_GATTS_EVT* series. */ + ble_l2cap_evt_t l2cap_evt; /**< L2CAP originated event, evt_id in BLE_L2CAP_EVT* series. */ + } evt; /**< Event union. */ +} ble_evt_t; + + +/** + * @brief Version Information. + */ +typedef struct +{ + uint8_t version_number; /**< Link Layer Version number. See https://www.bluetooth.org/en-us/specification/assigned-numbers/link-layer for assigned values. */ + uint16_t company_id; /**< Company ID, Nordic Semiconductor's company ID is 89 (0x0059) (https://www.bluetooth.org/apps/content/Default.aspx?doc_id=49708). */ + uint16_t subversion_number; /**< Link Layer Sub Version number, corresponds to the SoftDevice Config ID or Firmware ID (FWID). */ +} ble_version_t; + +/** + * @brief Configuration parameters for the PA and LNA. + */ +typedef struct +{ + uint8_t enable :1; /**< Enable toggling for this amplifier */ + uint8_t active_high :1; /**< Set the pin to be active high */ + uint8_t gpio_pin :6; /**< The GPIO pin to toggle for this amplifier */ +} ble_pa_lna_cfg_t; + +/** + * @brief PA & LNA GPIO toggle configuration + * + * This option configures the SoftDevice to toggle pins when the radio is active for use with a power amplifier and/or + * a low noise amplifier. + * + * Toggling the pins is achieved by using two PPI channels and a GPIOTE channel. The hardware channel IDs are provided + * by the application and should be regarded as reserved as long as any PA/LNA toggling is enabled. + * + * @note @ref sd_ble_opt_get is not supported for this option. + * @note Setting this option while the radio is in use (i.e. any of the roles are active) may have undefined consequences + * and must be avoided by the application. + */ +typedef struct +{ + ble_pa_lna_cfg_t pa_cfg; /**< Power Amplifier configuration */ + ble_pa_lna_cfg_t lna_cfg; /**< Low Noise Amplifier configuration */ + + uint8_t ppi_ch_id_set; /**< PPI channel used for radio pin setting */ + uint8_t ppi_ch_id_clr; /**< PPI channel used for radio pin clearing */ + uint8_t gpiote_ch_id; /**< GPIOTE channel used for radio pin toggling */ +} ble_common_opt_pa_lna_t; + +/** + * @brief Configuration of extended BLE connection events. + * + * When enabled the SoftDevice will dynamically extend the connection event when possible. + * + * The connection event length is controlled by the connection configuration as set by @ref ble_gap_conn_cfg_t::event_length. + * The connection event can be extended if there is time to send another packet pair before the start of the next connection interval, + * and if there are no conflicts with other BLE roles requesting radio time. + * + * @note @ref sd_ble_opt_get is not supported for this option. + */ +typedef struct +{ + uint8_t enable : 1; /**< Enable extended BLE connection events, disabled by default. */ +} ble_common_opt_conn_evt_ext_t; + +/**@brief Option structure for common options. */ +typedef union +{ + ble_common_opt_pa_lna_t pa_lna; /**< Parameters for controlling PA and LNA pin toggling. */ + ble_common_opt_conn_evt_ext_t conn_evt_ext; /**< Parameters for enabling extended connection events. */ +} ble_common_opt_t; + +/**@brief Common BLE Option type, wrapping the module specific options. */ +typedef union +{ + ble_common_opt_t common_opt; /**< COMMON options, opt_id in @ref BLE_COMMON_OPTS series. */ + ble_gap_opt_t gap_opt; /**< GAP option, opt_id in @ref BLE_GAP_OPTS series. */ +} ble_opt_t; + +/**@brief BLE connection configuration type, wrapping the module specific configurations, set with + * @ref sd_ble_cfg_set. + * + * @note Connection configurations don't have to be set. + * In the case that no configurations has been set, or fewer connection configurations has been set than enabled connections, + * the default connection configuration will be automatically added for the remaining connections. + * When creating connections with the default configuration, @ref BLE_CONN_CFG_TAG_DEFAULT should be used in + * place of @ref ble_conn_cfg_t::conn_cfg_tag. + * + * @sa sd_ble_gap_adv_start() + * @sa sd_ble_gap_connect() + * + * @mscs + * @mmsc{@ref BLE_CONN_CFG} + * @endmscs + + */ +typedef struct +{ + uint8_t conn_cfg_tag; /**< The application chosen tag it can use with the + @ref sd_ble_gap_adv_start() and @ref sd_ble_gap_connect() calls + to select this configuration when creating a connection. + Must be different for all connection configurations added and not @ref BLE_CONN_CFG_TAG_DEFAULT. */ + union { + ble_gap_conn_cfg_t gap_conn_cfg; /**< GAP connection configuration, cfg_id is @ref BLE_CONN_CFG_GAP. */ + ble_gattc_conn_cfg_t gattc_conn_cfg; /**< GATTC connection configuration, cfg_id is @ref BLE_CONN_CFG_GATTC. */ + ble_gatts_conn_cfg_t gatts_conn_cfg; /**< GATTS connection configuration, cfg_id is @ref BLE_CONN_CFG_GATTS. */ + ble_gatt_conn_cfg_t gatt_conn_cfg; /**< GATT connection configuration, cfg_id is @ref BLE_CONN_CFG_GATT. */ + ble_l2cap_conn_cfg_t l2cap_conn_cfg; /**< L2CAP connection configuration, cfg_id is @ref BLE_CONN_CFG_L2CAP. */ + } params; /**< Connection configuration union. */ +} ble_conn_cfg_t; + +/** + * @brief Configuration of Vendor Specific UUIDs, set with @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_INVALID_PARAM Too many UUIDs configured. + */ +typedef struct +{ + uint8_t vs_uuid_count; /**< Number of 128-bit Vendor Specific UUID bases to allocate memory for. + Default value is @ref BLE_UUID_VS_COUNT_DEFAULT. Maximum value is + @ref BLE_UUID_VS_COUNT_MAX. */ +} ble_common_cfg_vs_uuid_t; + +/**@brief Common BLE Configuration type, wrapping the common configurations. */ +typedef union +{ + ble_common_cfg_vs_uuid_t vs_uuid_cfg; /**< Vendor specific UUID configuration, cfg_id is @ref BLE_COMMON_CFG_VS_UUID. */ +} ble_common_cfg_t; + +/**@brief BLE Configuration type, wrapping the module specific configurations. */ +typedef union +{ + ble_conn_cfg_t conn_cfg; /**< Connection specific configurations, cfg_id in @ref BLE_CONN_CFGS series. */ + ble_common_cfg_t common_cfg; /**< Global common configurations, cfg_id in @ref BLE_COMMON_CFGS series. */ + ble_gap_cfg_t gap_cfg; /**< Global GAP configurations, cfg_id in @ref BLE_GAP_CFGS series. */ + ble_gatts_cfg_t gatts_cfg; /**< Global GATTS configuration, cfg_id in @ref BLE_GATTS_CFGS series. */ +} ble_cfg_t; + +/** @} */ + +/** @addtogroup BLE_COMMON_FUNCTIONS Functions + * @{ */ + +/**@brief Enable the BLE stack + * + * @param[in, out] p_app_ram_base Pointer to a variable containing the start address of the + * application RAM region (APP_RAM_BASE). On return, this will + * contain the minimum start address of the application RAM region + * required by the SoftDevice for this configuration. + * + * @note The memory requirement for a specific configuration will not increase between SoftDevices + * with the same major version number. + * + * @note The value of *p_app_ram_base when the app has done no custom configuration of the + * SoftDevice, i.e. the app has not called @ref sd_ble_cfg_set before @ref sd_ble_enable, can + * be found in the release notes. + * + * @note At runtime the IC's RAM is split into 2 regions: The SoftDevice RAM region is located + * between 0x20000000 and APP_RAM_BASE-1 and the application's RAM region is located between + * APP_RAM_BASE and the start of the call stack. + * + * @details This call initializes the BLE stack, no BLE related function other than @ref + * sd_ble_cfg_set can be called before this one. + * + * @mscs + * @mmsc{@ref BLE_COMMON_ENABLE} + * @endmscs + * + * @retval ::NRF_SUCCESS The BLE stack has been initialized successfully. + * @retval ::NRF_ERROR_INVALID_STATE The BLE stack had already been initialized and cannot be reinitialized. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied. + * @retval ::NRF_ERROR_NO_MEM The amount of memory assigned to the SoftDevice by *p_app_ram_base is not + * large enough to fit this configuration's memory requirement. Check *p_app_ram_base + * and set the start address of the application RAM region accordingly. + */ +SVCALL(SD_BLE_ENABLE, uint32_t, sd_ble_enable(uint32_t * p_app_ram_base)); + +/**@brief Add configurations for the BLE stack + * + * @param[in] cfg_id Config ID, see @ref BLE_CONN_CFGS, @ref BLE_COMMON_CFGS, @ref + * BLE_GAP_CFGS or @ref BLE_GATTS_CFGS. + * @param[in] p_cfg Pointer to a ble_cfg_t structure containing the configuration value. + * @param[in] app_ram_base The start address of the application RAM region (APP_RAM_BASE). + * See @ref sd_ble_enable for details about APP_RAM_BASE. + * + * @note The memory requirement for a specific configuration will not increase between SoftDevices + * with the same major version number. + * + * @note If a configuration is set more than once, the last one set is the one that takes effect on + * @ref sd_ble_enable. + * + * @note Any part of the BLE stack that is NOT configured with @ref sd_ble_cfg_set will have default + * configuration. + * + * @note @ref sd_ble_cfg_set may be called at any time when the SoftDevice is enabled (see @ref + * sd_softdevice_enable) while the BLE part of the SoftDevice is not enabled (see @ref + * sd_ble_enable). + * + * @note Error codes for the configurations are described in the configuration structs. + * + * @mscs + * @mmsc{@ref BLE_COMMON_ENABLE} + * @endmscs + * + * @retval ::NRF_SUCCESS The configuration has been added successfully. + * @retval ::NRF_ERROR_INVALID_STATE The BLE stack had already been initialized. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid cfg_id supplied. + * @retval ::NRF_ERROR_NO_MEM The amount of memory assigned to the SoftDevice by app_ram_base is not + * large enough to fit this configuration's memory requirement. + */ +SVCALL(SD_BLE_CFG_SET, uint32_t, sd_ble_cfg_set(uint32_t cfg_id, ble_cfg_t const * p_cfg, uint32_t app_ram_base)); + +/**@brief Get an event from the pending events queue. + * + * @param[out] p_dest Pointer to buffer to be filled in with an event, or NULL to retrieve the event length. + * This buffer must be aligned to the extend defined by @ref BLE_EVT_PTR_ALIGNMENT. + * The buffer should be interpreted as a @ref ble_evt_t struct. + * @param[in, out] p_len Pointer the length of the buffer, on return it is filled with the event length. + * + * @details This call allows the application to pull a BLE event from the BLE stack. The application is signaled that + * an event is available from the BLE stack by the triggering of the SD_EVT_IRQn interrupt. + * The application is free to choose whether to call this function from thread mode (main context) or directly from the + * Interrupt Service Routine that maps to SD_EVT_IRQn. In any case however, and because the BLE stack runs at a higher + * priority than the application, this function should be called in a loop (until @ref NRF_ERROR_NOT_FOUND is returned) + * every time SD_EVT_IRQn is raised to ensure that all available events are pulled from the BLE stack. Failure to do so + * could potentially leave events in the internal queue without the application being aware of this fact. + * + * Sizing the p_dest buffer is equally important, since the application needs to provide all the memory necessary for the event to + * be copied into application memory. If the buffer provided is not large enough to fit the entire contents of the event, + * @ref NRF_ERROR_DATA_SIZE will be returned and the application can then call again with a larger buffer size. + * The maximum possible event length is defined by @ref BLE_EVT_LEN_MAX. The application may also "peek" the event length + * by providing p_dest as a NULL pointer and inspecting the value of *p_len upon return: + * + * \code + * uint16_t len; + * errcode = sd_ble_evt_get(NULL, &len); + * \endcode + * + * @mscs + * @mmsc{@ref BLE_COMMON_IRQ_EVT_MSC} + * @mmsc{@ref BLE_COMMON_THREAD_EVT_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Event pulled and stored into the supplied buffer. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied. + * @retval ::NRF_ERROR_NOT_FOUND No events ready to be pulled. + * @retval ::NRF_ERROR_DATA_SIZE Event ready but could not fit into the supplied buffer. + */ +SVCALL(SD_BLE_EVT_GET, uint32_t, sd_ble_evt_get(uint8_t *p_dest, uint16_t *p_len)); + + +/**@brief Add a Vendor Specific base UUID. + * + * @details This call enables the application to add a vendor specific base UUID to the BLE stack's table, for later + * use with all other modules and APIs. This then allows the application to use the shorter, 24-bit @ref ble_uuid_t + * format when dealing with both 16-bit and 128-bit UUIDs without having to check for lengths and having split code + * paths. This is accomplished by extending the grouping mechanism that the Bluetooth SIG standard base UUID uses + * for all other 128-bit UUIDs. The type field in the @ref ble_uuid_t structure is an index (relative to + * @ref BLE_UUID_TYPE_VENDOR_BEGIN) to the table populated by multiple calls to this function, and the UUID field + * in the same structure contains the 2 bytes at indexes 12 and 13. The number of possible 128-bit UUIDs available to + * the application is therefore the number of Vendor Specific UUIDs added with the help of this function times 65536, + * although restricted to modifying bytes 12 and 13 for each of the entries in the supplied array. + * + * @note Bytes 12 and 13 of the provided UUID will not be used internally, since those are always replaced by + * the 16-bit uuid field in @ref ble_uuid_t. + * + * @note If a UUID is already present in the BLE stack's internal table, the corresponding index will be returned in + * p_uuid_type along with an @ref NRF_SUCCESS error code. + * + * @param[in] p_vs_uuid Pointer to a 16-octet (128-bit) little endian Vendor Specific UUID disregarding + * bytes 12 and 13. + * @param[out] p_uuid_type Pointer to a uint8_t where the type field in @ref ble_uuid_t corresponding to this UUID will be stored. + * + * @retval ::NRF_SUCCESS Successfully added the Vendor Specific UUID. + * @retval ::NRF_ERROR_INVALID_ADDR If p_vs_uuid or p_uuid_type is NULL or invalid. + * @retval ::NRF_ERROR_NO_MEM If there are no more free slots for VS UUIDs. + */ +SVCALL(SD_BLE_UUID_VS_ADD, uint32_t, sd_ble_uuid_vs_add(ble_uuid128_t const *p_vs_uuid, uint8_t *p_uuid_type)); + + +/** @brief Decode little endian raw UUID bytes (16-bit or 128-bit) into a 24 bit @ref ble_uuid_t structure. + * + * @details The raw UUID bytes excluding bytes 12 and 13 (i.e. bytes 0-11 and 14-15) of p_uuid_le are compared + * to the corresponding ones in each entry of the table of vendor specific UUIDs populated with @ref sd_ble_uuid_vs_add + * to look for a match. If there is such a match, bytes 12 and 13 are returned as p_uuid->uuid and the index + * relative to @ref BLE_UUID_TYPE_VENDOR_BEGIN as p_uuid->type. + * + * @note If the UUID length supplied is 2, then the type set by this call will always be @ref BLE_UUID_TYPE_BLE. + * + * @param[in] uuid_le_len Length in bytes of the buffer pointed to by p_uuid_le (must be 2 or 16 bytes). + * @param[in] p_uuid_le Pointer pointing to little endian raw UUID bytes. + * @param[out] p_uuid Pointer to a @ref ble_uuid_t structure to be filled in. + * + * @retval ::NRF_SUCCESS Successfully decoded into the @ref ble_uuid_t structure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_LENGTH Invalid UUID length. + * @retval ::NRF_ERROR_NOT_FOUND For a 128-bit UUID, no match in the populated table of UUIDs. + */ +SVCALL(SD_BLE_UUID_DECODE, uint32_t, sd_ble_uuid_decode(uint8_t uuid_le_len, uint8_t const *p_uuid_le, ble_uuid_t *p_uuid)); + + +/** @brief Encode a @ref ble_uuid_t structure into little endian raw UUID bytes (16-bit or 128-bit). + * + * @note The pointer to the destination buffer p_uuid_le may be NULL, in which case only the validity and size of p_uuid is computed. + * + * @param[in] p_uuid Pointer to a @ref ble_uuid_t structure that will be encoded into bytes. + * @param[out] p_uuid_le_len Pointer to a uint8_t that will be filled with the encoded length (2 or 16 bytes). + * @param[out] p_uuid_le Pointer to a buffer where the little endian raw UUID bytes (2 or 16) will be stored. + * + * @retval ::NRF_SUCCESS Successfully encoded into the buffer. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid UUID type. + */ +SVCALL(SD_BLE_UUID_ENCODE, uint32_t, sd_ble_uuid_encode(ble_uuid_t const *p_uuid, uint8_t *p_uuid_le_len, uint8_t *p_uuid_le)); + + +/**@brief Get Version Information. + * + * @details This call allows the application to get the BLE stack version information. + * + * @param[out] p_version Pointer to a ble_version_t structure to be filled in. + * + * @retval ::NRF_SUCCESS Version information stored successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY The BLE stack is busy (typically doing a locally-initiated disconnection procedure). + */ +SVCALL(SD_BLE_VERSION_GET, uint32_t, sd_ble_version_get(ble_version_t *p_version)); + + +/**@brief Provide a user memory block. + * + * @note This call can only be used as a response to a @ref BLE_EVT_USER_MEM_REQUEST event issued to the application. + * + * @param[in] conn_handle Connection handle. + * @param[in] p_block Pointer to a user memory block structure or NULL if memory is managed by the application. + * + * @mscs + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_PEER_CANCEL_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_NOAUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Successfully queued a response to the peer. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_LENGTH Invalid user memory block length supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection state or no user memory request pending. + */ +SVCALL(SD_BLE_USER_MEM_REPLY, uint32_t, sd_ble_user_mem_reply(uint16_t conn_handle, ble_user_mem_block_t const *p_block)); + +/**@brief Set a BLE option. + * + * @details This call allows the application to set the value of an option. + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC} + * @endmscs + * + * @param[in] opt_id Option ID, see @ref BLE_COMMON_OPTS and @ref BLE_GAP_OPTS. + * @param[in] p_opt Pointer to a ble_opt_t structure containing the option value. + * + * @retval ::NRF_SUCCESS Option set successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints. + * @retval ::NRF_ERROR_INVALID_STATE Unable to set the parameter at this time. + * @retval ::NRF_ERROR_BUSY The BLE stack is busy or the previous procedure has not completed. + */ +SVCALL(SD_BLE_OPT_SET, uint32_t, sd_ble_opt_set(uint32_t opt_id, ble_opt_t const *p_opt)); + + +/**@brief Get a BLE option. + * + * @details This call allows the application to retrieve the value of an option. + * + * @param[in] opt_id Option ID, see @ref BLE_COMMON_OPTS and @ref BLE_GAP_OPTS. + * @param[out] p_opt Pointer to a ble_opt_t structure to be filled in. + * + * @retval ::NRF_SUCCESS Option retrieved successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints. + * @retval ::NRF_ERROR_INVALID_STATE Unable to retrieve the parameter at this time. + * @retval ::NRF_ERROR_BUSY The BLE stack is busy or the previous procedure has not completed. + * @retval ::NRF_ERROR_NOT_SUPPORTED This option is not supported. + * + */ +SVCALL(SD_BLE_OPT_GET, uint32_t, sd_ble_opt_get(uint32_t opt_id, ble_opt_t *p_opt)); + +/** @} */ +#ifdef __cplusplus +} +#endif +#endif /* BLE_H__ */ + +/** + @} + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_err.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_err.h new file mode 100644 index 0000000..1b4820d --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_err.h @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2012 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON + @{ + @addtogroup nrf_error + @{ + @ingroup BLE_COMMON + @} + + @defgroup ble_err General error codes + @{ + + @brief General error code definitions for the BLE API. + + @ingroup BLE_COMMON +*/ +#ifndef NRF_BLE_ERR_H__ +#define NRF_BLE_ERR_H__ + +#include "nrf_error.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* @defgroup BLE_ERRORS Error Codes + * @{ */ +#define BLE_ERROR_NOT_ENABLED (NRF_ERROR_STK_BASE_NUM+0x001) /**< @ref sd_ble_enable has not been called. */ +#define BLE_ERROR_INVALID_CONN_HANDLE (NRF_ERROR_STK_BASE_NUM+0x002) /**< Invalid connection handle. */ +#define BLE_ERROR_INVALID_ATTR_HANDLE (NRF_ERROR_STK_BASE_NUM+0x003) /**< Invalid attribute handle. */ +#define BLE_ERROR_INVALID_ADV_HANDLE (NRF_ERROR_STK_BASE_NUM+0x004) /**< Invalid advertising handle. */ +#define BLE_ERROR_INVALID_ROLE (NRF_ERROR_STK_BASE_NUM+0x005) /**< Invalid role. */ +#define BLE_ERROR_BLOCKED_BY_OTHER_LINKS (NRF_ERROR_STK_BASE_NUM+0x006) /**< The attempt to change link settings failed due to the scheduling of other links. */ +/** @} */ + + +/** @defgroup BLE_ERROR_SUBRANGES Module specific error code subranges + * @brief Assignment of subranges for module specific error codes. + * @note For specific error codes, see ble_.h or ble_error_.h. + * @{ */ +#define NRF_L2CAP_ERR_BASE (NRF_ERROR_STK_BASE_NUM+0x100) /**< L2CAP specific errors. */ +#define NRF_GAP_ERR_BASE (NRF_ERROR_STK_BASE_NUM+0x200) /**< GAP specific errors. */ +#define NRF_GATTC_ERR_BASE (NRF_ERROR_STK_BASE_NUM+0x300) /**< GATT client specific errors. */ +#define NRF_GATTS_ERR_BASE (NRF_ERROR_STK_BASE_NUM+0x400) /**< GATT server specific errors. */ +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif + + +/** + @} + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gap.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gap.h new file mode 100644 index 0000000..6e6cae2 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gap.h @@ -0,0 +1,2669 @@ +/* + * Copyright (c) 2011 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_GAP Generic Access Profile (GAP) + @{ + @brief Definitions and prototypes for the GAP interface. + */ + +#ifndef BLE_GAP_H__ +#define BLE_GAP_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_hci.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@addtogroup BLE_GAP_ENUMERATIONS Enumerations + * @{ */ + +/**@brief GAP API SVC numbers. + */ +enum BLE_GAP_SVCS +{ + SD_BLE_GAP_ADDR_SET = BLE_GAP_SVC_BASE, /**< Set own Bluetooth Address. */ + SD_BLE_GAP_ADDR_GET = BLE_GAP_SVC_BASE + 1, /**< Get own Bluetooth Address. */ + SD_BLE_GAP_WHITELIST_SET = BLE_GAP_SVC_BASE + 2, /**< Set active whitelist. */ + SD_BLE_GAP_DEVICE_IDENTITIES_SET = BLE_GAP_SVC_BASE + 3, /**< Set device identity list. */ + SD_BLE_GAP_PRIVACY_SET = BLE_GAP_SVC_BASE + 4, /**< Set Privacy settings*/ + SD_BLE_GAP_PRIVACY_GET = BLE_GAP_SVC_BASE + 5, /**< Get Privacy settings*/ + SD_BLE_GAP_ADV_SET_CONFIGURE = BLE_GAP_SVC_BASE + 6, /**< Configure an advertising set. */ + SD_BLE_GAP_ADV_START = BLE_GAP_SVC_BASE + 7, /**< Start Advertising. */ + SD_BLE_GAP_ADV_STOP = BLE_GAP_SVC_BASE + 8, /**< Stop Advertising. */ + SD_BLE_GAP_CONN_PARAM_UPDATE = BLE_GAP_SVC_BASE + 9, /**< Connection Parameter Update. */ + SD_BLE_GAP_DISCONNECT = BLE_GAP_SVC_BASE + 10, /**< Disconnect. */ + SD_BLE_GAP_TX_POWER_SET = BLE_GAP_SVC_BASE + 11, /**< Set TX Power. */ + SD_BLE_GAP_APPEARANCE_SET = BLE_GAP_SVC_BASE + 12, /**< Set Appearance. */ + SD_BLE_GAP_APPEARANCE_GET = BLE_GAP_SVC_BASE + 13, /**< Get Appearance. */ + SD_BLE_GAP_PPCP_SET = BLE_GAP_SVC_BASE + 14, /**< Set PPCP. */ + SD_BLE_GAP_PPCP_GET = BLE_GAP_SVC_BASE + 15, /**< Get PPCP. */ + SD_BLE_GAP_DEVICE_NAME_SET = BLE_GAP_SVC_BASE + 16, /**< Set Device Name. */ + SD_BLE_GAP_DEVICE_NAME_GET = BLE_GAP_SVC_BASE + 17, /**< Get Device Name. */ + SD_BLE_GAP_AUTHENTICATE = BLE_GAP_SVC_BASE + 18, /**< Initiate Pairing/Bonding. */ + SD_BLE_GAP_SEC_PARAMS_REPLY = BLE_GAP_SVC_BASE + 19, /**< Reply with Security Parameters. */ + SD_BLE_GAP_AUTH_KEY_REPLY = BLE_GAP_SVC_BASE + 20, /**< Reply with an authentication key. */ + SD_BLE_GAP_LESC_DHKEY_REPLY = BLE_GAP_SVC_BASE + 21, /**< Reply with an LE Secure Connections DHKey. */ + SD_BLE_GAP_KEYPRESS_NOTIFY = BLE_GAP_SVC_BASE + 22, /**< Notify of a keypress during an authentication procedure. */ + SD_BLE_GAP_LESC_OOB_DATA_GET = BLE_GAP_SVC_BASE + 23, /**< Get the local LE Secure Connections OOB data. */ + SD_BLE_GAP_LESC_OOB_DATA_SET = BLE_GAP_SVC_BASE + 24, /**< Set the remote LE Secure Connections OOB data. */ + SD_BLE_GAP_ENCRYPT = BLE_GAP_SVC_BASE + 25, /**< Initiate encryption procedure. */ + SD_BLE_GAP_SEC_INFO_REPLY = BLE_GAP_SVC_BASE + 26, /**< Reply with Security Information. */ + SD_BLE_GAP_CONN_SEC_GET = BLE_GAP_SVC_BASE + 27, /**< Obtain connection security level. */ + SD_BLE_GAP_RSSI_START = BLE_GAP_SVC_BASE + 28, /**< Start reporting of changes in RSSI. */ + SD_BLE_GAP_RSSI_STOP = BLE_GAP_SVC_BASE + 29, /**< Stop reporting of changes in RSSI. */ + SD_BLE_GAP_SCAN_START = BLE_GAP_SVC_BASE + 30, /**< Start Scanning. */ + SD_BLE_GAP_SCAN_STOP = BLE_GAP_SVC_BASE + 31, /**< Stop Scanning. */ + SD_BLE_GAP_CONNECT = BLE_GAP_SVC_BASE + 32, /**< Connect. */ + SD_BLE_GAP_CONNECT_CANCEL = BLE_GAP_SVC_BASE + 33, /**< Cancel ongoing connection procedure. */ + SD_BLE_GAP_RSSI_GET = BLE_GAP_SVC_BASE + 34, /**< Get the last RSSI sample. */ + SD_BLE_GAP_PHY_UPDATE = BLE_GAP_SVC_BASE + 35, /**< Initiate or respond to a PHY Update Procedure. */ + SD_BLE_GAP_DATA_LENGTH_UPDATE = BLE_GAP_SVC_BASE + 36, /**< Initiate or respond to a Data Length Update Procedure. */ + SD_BLE_GAP_QOS_CHANNEL_SURVEY_START = BLE_GAP_SVC_BASE + 37, /**< Start Quality of Service (QoS) channel survey module. */ + SD_BLE_GAP_QOS_CHANNEL_SURVEY_STOP = BLE_GAP_SVC_BASE + 38, /**< Stop Quality of Service (QoS) channel survey module. */ +}; + +/**@brief GAP Event IDs. + * IDs that uniquely identify an event coming from the stack to the application. + */ +enum BLE_GAP_EVTS +{ + BLE_GAP_EVT_CONNECTED = BLE_GAP_EVT_BASE, + BLE_GAP_EVT_DISCONNECTED = BLE_GAP_EVT_BASE + 1, /**< Disconnected from peer. \n See @ref ble_gap_evt_disconnected_t. */ + BLE_GAP_EVT_CONN_PARAM_UPDATE = BLE_GAP_EVT_BASE + 2, /**< Connection Parameters updated. \n See @ref ble_gap_evt_conn_param_update_t. */ + BLE_GAP_EVT_SEC_PARAMS_REQUEST = BLE_GAP_EVT_BASE + 3, /**< Request to provide security parameters. \n Reply with @ref sd_ble_gap_sec_params_reply. \n See @ref ble_gap_evt_sec_params_request_t. */ + BLE_GAP_EVT_SEC_INFO_REQUEST = BLE_GAP_EVT_BASE + 4, /**< Request to provide security information. \n Reply with @ref sd_ble_gap_sec_info_reply. \n See @ref ble_gap_evt_sec_info_request_t. */ + BLE_GAP_EVT_PASSKEY_DISPLAY = BLE_GAP_EVT_BASE + 5, /**< Request to display a passkey to the user. \n In LESC Numeric Comparison, reply with @ref sd_ble_gap_auth_key_reply. \n See @ref ble_gap_evt_passkey_display_t. */ + BLE_GAP_EVT_KEY_PRESSED = BLE_GAP_EVT_BASE + 6, /**< Notification of a keypress on the remote device.\n See @ref ble_gap_evt_key_pressed_t */ + BLE_GAP_EVT_AUTH_KEY_REQUEST = BLE_GAP_EVT_BASE + 7, /**< Request to provide an authentication key. \n Reply with @ref sd_ble_gap_auth_key_reply. \n See @ref ble_gap_evt_auth_key_request_t. */ + BLE_GAP_EVT_LESC_DHKEY_REQUEST = BLE_GAP_EVT_BASE + 8, /**< Request to calculate an LE Secure Connections DHKey. \n Reply with @ref sd_ble_gap_lesc_dhkey_reply. \n See @ref ble_gap_evt_lesc_dhkey_request_t */ + BLE_GAP_EVT_AUTH_STATUS = BLE_GAP_EVT_BASE + 9, /**< Authentication procedure completed with status. \n See @ref ble_gap_evt_auth_status_t. */ + BLE_GAP_EVT_CONN_SEC_UPDATE = BLE_GAP_EVT_BASE + 10, /**< Connection security updated. \n See @ref ble_gap_evt_conn_sec_update_t. */ + BLE_GAP_EVT_TIMEOUT = BLE_GAP_EVT_BASE + 11, /**< Timeout expired. \n See @ref ble_gap_evt_timeout_t. */ + BLE_GAP_EVT_RSSI_CHANGED = BLE_GAP_EVT_BASE + 12, /**< RSSI report. \n See @ref ble_gap_evt_rssi_changed_t. */ + BLE_GAP_EVT_ADV_REPORT = BLE_GAP_EVT_BASE + 13, /**< Advertising report. \n See @ref ble_gap_evt_adv_report_t. */ + BLE_GAP_EVT_SEC_REQUEST = BLE_GAP_EVT_BASE + 14, /**< Security Request. \n See @ref ble_gap_evt_sec_request_t. */ + BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST = BLE_GAP_EVT_BASE + 15, /**< Connection Parameter Update Request. \n Reply with @ref sd_ble_gap_conn_param_update. \n See @ref ble_gap_evt_conn_param_update_request_t. */ + BLE_GAP_EVT_SCAN_REQ_REPORT = BLE_GAP_EVT_BASE + 16, /**< Scan request report. \n See @ref ble_gap_evt_scan_req_report_t. */ + BLE_GAP_EVT_PHY_UPDATE_REQUEST = BLE_GAP_EVT_BASE + 17, /**< PHY Update Request. \n Reply with @ref sd_ble_gap_phy_update. \n See @ref ble_gap_evt_phy_update_request_t. */ + BLE_GAP_EVT_PHY_UPDATE = BLE_GAP_EVT_BASE + 18, /**< PHY Update Procedure is complete. \n See @ref ble_gap_evt_phy_update_t. */ + BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST = BLE_GAP_EVT_BASE + 19, /**< Data Length Update Request. \n Reply with @ref sd_ble_gap_data_length_update.\n See @ref ble_gap_evt_data_length_update_request_t. */ + BLE_GAP_EVT_DATA_LENGTH_UPDATE = BLE_GAP_EVT_BASE + 20, /**< LL Data Channel PDU payload length updated. \n See @ref ble_gap_evt_data_length_update_t. */ + BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT = BLE_GAP_EVT_BASE + 21, /**< Channel survey report. \n See @ref ble_gap_evt_qos_channel_survey_report_t. */ + BLE_GAP_EVT_ADV_SET_TERMINATED = BLE_GAP_EVT_BASE + 22, /**< Advertising set terminated. \n See @ref ble_gap_evt_adv_set_terminated_t. */ +}; + +/**@brief GAP Option IDs. + * IDs that uniquely identify a GAP option. + */ +enum BLE_GAP_OPTS +{ + BLE_GAP_OPT_CH_MAP = BLE_GAP_OPT_BASE, /**< Channel Map. @ref ble_gap_opt_ch_map_t */ + BLE_GAP_OPT_LOCAL_CONN_LATENCY = BLE_GAP_OPT_BASE + 1, /**< Local connection latency. @ref ble_gap_opt_local_conn_latency_t */ + BLE_GAP_OPT_PASSKEY = BLE_GAP_OPT_BASE + 2, /**< Set passkey. @ref ble_gap_opt_passkey_t */ + BLE_GAP_OPT_COMPAT_MODE_1 = BLE_GAP_OPT_BASE + 3, /**< Compatibility mode. @ref ble_gap_opt_compat_mode_1_t */ + BLE_GAP_OPT_AUTH_PAYLOAD_TIMEOUT = BLE_GAP_OPT_BASE + 4, /**< Set Authenticated payload timeout. @ref ble_gap_opt_auth_payload_timeout_t */ + BLE_GAP_OPT_SLAVE_LATENCY_DISABLE = BLE_GAP_OPT_BASE + 5, /**< Disable slave latency. @ref ble_gap_opt_slave_latency_disable_t */ +}; + +/**@brief GAP Configuration IDs. + * + * IDs that uniquely identify a GAP configuration. + */ +enum BLE_GAP_CFGS +{ + BLE_GAP_CFG_ROLE_COUNT = BLE_GAP_CFG_BASE, /**< Role count configuration. */ + BLE_GAP_CFG_DEVICE_NAME = BLE_GAP_CFG_BASE + 1, /**< Device name configuration. */ +}; + +/**@brief GAP TX Power roles. + */ +enum BLE_GAP_TX_POWER_ROLES +{ + BLE_GAP_TX_POWER_ROLE_ADV = 1, /**< Advertiser role. */ + BLE_GAP_TX_POWER_ROLE_SCAN_INIT = 2, /**< Scanner and initiator role. */ + BLE_GAP_TX_POWER_ROLE_CONN = 3, /**< Connection role. */ +}; + +/** @} */ + +/**@addtogroup BLE_GAP_DEFINES Defines + * @{ */ + +/**@defgroup BLE_ERRORS_GAP SVC return values specific to GAP + * @{ */ +#define BLE_ERROR_GAP_UUID_LIST_MISMATCH (NRF_GAP_ERR_BASE + 0x000) /**< UUID list does not contain an integral number of UUIDs. */ +#define BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST (NRF_GAP_ERR_BASE + 0x001) /**< Use of Whitelist not permitted with discoverable advertising. */ +#define BLE_ERROR_GAP_INVALID_BLE_ADDR (NRF_GAP_ERR_BASE + 0x002) /**< The upper two bits of the address do not correspond to the specified address type. */ +#define BLE_ERROR_GAP_WHITELIST_IN_USE (NRF_GAP_ERR_BASE + 0x003) /**< Attempt to modify the whitelist while already in use by another operation. */ +#define BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE (NRF_GAP_ERR_BASE + 0x004) /**< Attempt to modify the device identity list while already in use by another operation. */ +#define BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE (NRF_GAP_ERR_BASE + 0x005) /**< The device identity list contains entries with duplicate identity addresses. */ +/**@} */ + + +/**@defgroup BLE_GAP_ROLES GAP Roles + * @{ */ +#define BLE_GAP_ROLE_INVALID 0x0 /**< Invalid Role. */ +#define BLE_GAP_ROLE_PERIPH 0x1 /**< Peripheral Role. */ +#define BLE_GAP_ROLE_CENTRAL 0x2 /**< Central Role. */ +/**@} */ + + +/**@defgroup BLE_GAP_TIMEOUT_SOURCES GAP Timeout sources + * @{ */ +#define BLE_GAP_TIMEOUT_SRC_SCAN 0x01 /**< Scanning timeout. */ +#define BLE_GAP_TIMEOUT_SRC_CONN 0x02 /**< Connection timeout. */ +#define BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD 0x03 /**< Authenticated payload timeout. */ +/**@} */ + + +/**@defgroup BLE_GAP_ADDR_TYPES GAP Address types + * @{ */ +#define BLE_GAP_ADDR_TYPE_PUBLIC 0x00 /**< Public (identity) address.*/ +#define BLE_GAP_ADDR_TYPE_RANDOM_STATIC 0x01 /**< Random static (identity) address. */ +#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE 0x02 /**< Random private resolvable address. */ +#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE 0x03 /**< Random private non-resolvable address. */ +#define BLE_GAP_ADDR_TYPE_ANONYMOUS 0x7F /**< An advertiser may advertise without its address. + This type of advertising is called anonymous. */ +/**@} */ + + +/**@brief The default interval in seconds at which a private address is refreshed. */ +#define BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S (900) /* 15 minutes. */ +/**@brief The maximum interval in seconds at which a private address can be refreshed. */ +#define BLE_GAP_MAX_PRIVATE_ADDR_CYCLE_INTERVAL_S (41400) /* 11 hours 30 minutes. */ + + +/** @brief BLE address length. */ +#define BLE_GAP_ADDR_LEN (6) + +/**@defgroup BLE_GAP_PRIVACY_MODES Privacy modes + * @{ */ +#define BLE_GAP_PRIVACY_MODE_OFF 0x00 /**< Device will send and accept its identity address for its own address. */ +#define BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY 0x01 /**< Device will send and accept only private addresses for its own address. */ +#define BLE_GAP_PRIVACY_MODE_NETWORK_PRIVACY 0x02 /**< Device will send and accept only private addresses for its own address, + and will not accept a peer using identity address as sender address when + the peer IRK is exchanged, non-zero and added to the identity list. */ +/**@} */ + +/** @brief Invalid power level. */ +#define BLE_GAP_POWER_LEVEL_INVALID 127 + +/** @brief Advertising set handle not set. */ +#define BLE_GAP_ADV_SET_HANDLE_NOT_SET (0xFF) + +/** @brief The default number of advertising sets. */ +#define BLE_GAP_ADV_SET_COUNT_DEFAULT (1) + +/** @brief The maximum number of advertising sets supported by this SoftDevice. */ +#define BLE_GAP_ADV_SET_COUNT_MAX (1) + +/**@defgroup BLE_GAP_ADV_SET_DATA_SIZES Advertising data sizes. + * @{ */ +#define BLE_GAP_ADV_SET_DATA_SIZE_MAX (31) /**< Maximum data length for an advertising set. */ +/**@}. */ + +/** @brief Set ID not available in advertising report. */ +#define BLE_GAP_ADV_REPORT_SET_ID_NOT_AVAILABLE 0xFF + +/**@defgroup BLE_GAP_EVT_ADV_SET_TERMINATED_REASON GAP Advertising Set Terminated reasons + * @{ */ +#define BLE_GAP_EVT_ADV_SET_TERMINATED_REASON_TIMEOUT 0x01 /**< Timeout value reached. */ +#define BLE_GAP_EVT_ADV_SET_TERMINATED_REASON_LIMIT_REACHED 0x02 /**< @ref ble_gap_adv_params_t::max_adv_evts was reached. */ +/**@} */ + +/**@defgroup BLE_GAP_AD_TYPE_DEFINITIONS GAP Advertising and Scan Response Data format + * @note Found at https://www.bluetooth.org/Technical/AssignedNumbers/generic_access_profile.htm + * @{ */ +#define BLE_GAP_AD_TYPE_FLAGS 0x01 /**< Flags for discoverability. */ +#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE 0x02 /**< Partial list of 16 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE 0x03 /**< Complete list of 16 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE 0x04 /**< Partial list of 32 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE 0x05 /**< Complete list of 32 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE 0x06 /**< Partial list of 128 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE 0x07 /**< Complete list of 128 bit service UUIDs. */ +#define BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME 0x08 /**< Short local device name. */ +#define BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME 0x09 /**< Complete local device name. */ +#define BLE_GAP_AD_TYPE_TX_POWER_LEVEL 0x0A /**< Transmit power level. */ +#define BLE_GAP_AD_TYPE_CLASS_OF_DEVICE 0x0D /**< Class of device. */ +#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C 0x0E /**< Simple Pairing Hash C. */ +#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R 0x0F /**< Simple Pairing Randomizer R. */ +#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE 0x10 /**< Security Manager TK Value. */ +#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS 0x11 /**< Security Manager Out Of Band Flags. */ +#define BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE 0x12 /**< Slave Connection Interval Range. */ +#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT 0x14 /**< List of 16-bit Service Solicitation UUIDs. */ +#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT 0x15 /**< List of 128-bit Service Solicitation UUIDs. */ +#define BLE_GAP_AD_TYPE_SERVICE_DATA 0x16 /**< Service Data - 16-bit UUID. */ +#define BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS 0x17 /**< Public Target Address. */ +#define BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS 0x18 /**< Random Target Address. */ +#define BLE_GAP_AD_TYPE_APPEARANCE 0x19 /**< Appearance. */ +#define BLE_GAP_AD_TYPE_ADVERTISING_INTERVAL 0x1A /**< Advertising Interval. */ +#define BLE_GAP_AD_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS 0x1B /**< LE Bluetooth Device Address. */ +#define BLE_GAP_AD_TYPE_LE_ROLE 0x1C /**< LE Role. */ +#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C256 0x1D /**< Simple Pairing Hash C-256. */ +#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R256 0x1E /**< Simple Pairing Randomizer R-256. */ +#define BLE_GAP_AD_TYPE_SERVICE_DATA_32BIT_UUID 0x20 /**< Service Data - 32-bit UUID. */ +#define BLE_GAP_AD_TYPE_SERVICE_DATA_128BIT_UUID 0x21 /**< Service Data - 128-bit UUID. */ +#define BLE_GAP_AD_TYPE_LESC_CONFIRMATION_VALUE 0x22 /**< LE Secure Connections Confirmation Value */ +#define BLE_GAP_AD_TYPE_LESC_RANDOM_VALUE 0x23 /**< LE Secure Connections Random Value */ +#define BLE_GAP_AD_TYPE_URI 0x24 /**< URI */ +#define BLE_GAP_AD_TYPE_3D_INFORMATION_DATA 0x3D /**< 3D Information Data. */ +#define BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA 0xFF /**< Manufacturer Specific Data. */ +/**@} */ + + +/**@defgroup BLE_GAP_ADV_FLAGS GAP Advertisement Flags + * @{ */ +#define BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE (0x01) /**< LE Limited Discoverable Mode. */ +#define BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE (0x02) /**< LE General Discoverable Mode. */ +#define BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED (0x04) /**< BR/EDR not supported. */ +#define BLE_GAP_ADV_FLAG_LE_BR_EDR_CONTROLLER (0x08) /**< Simultaneous LE and BR/EDR, Controller. */ +#define BLE_GAP_ADV_FLAG_LE_BR_EDR_HOST (0x10) /**< Simultaneous LE and BR/EDR, Host. */ +#define BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE (BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED) /**< LE Limited Discoverable Mode, BR/EDR not supported. */ +#define BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE (BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED) /**< LE General Discoverable Mode, BR/EDR not supported. */ +/**@} */ + + +/**@defgroup BLE_GAP_ADV_INTERVALS GAP Advertising interval max and min + * @{ */ +#define BLE_GAP_ADV_INTERVAL_MIN 0x000020 /**< Minimum Advertising interval in 625 us units, i.e. 20 ms. */ +#define BLE_GAP_ADV_INTERVAL_MAX 0x004000 /**< Maximum Advertising interval in 625 us units, i.e. 10.24 s. + @note Support for values above @ref BLE_GAP_ADV_INTERVAL_MAX + is experimental. Values above 0xFFFFFF, i.e 10,485.759375 s + are not supported. */ + /**@} */ + + +/**@defgroup BLE_GAP_SCAN_INTERVALS GAP Scan interval max and min + * @{ */ +#define BLE_GAP_SCAN_INTERVAL_MIN 0x0004 /**< Minimum Scan interval in 625 us units, i.e. 2.5 ms. */ +#define BLE_GAP_SCAN_INTERVAL_MAX 0xFFFF /**< Maximum Scan interval in 625 us units, i.e. 40,959.375 s. */ + /** @} */ + + +/**@defgroup BLE_GAP_SCAN_WINDOW GAP Scan window max and min + * @{ */ +#define BLE_GAP_SCAN_WINDOW_MIN 0x0004 /**< Minimum Scan window in 625 us units, i.e. 2.5 ms. */ +#define BLE_GAP_SCAN_WINDOW_MAX 0xFFFF /**< Maximum Scan window in 625 us units, i.e. 40,959.375 s. */ + /** @} */ + + +/**@defgroup BLE_GAP_SCAN_TIMEOUT GAP Scan timeout max and min + * @{ */ +#define BLE_GAP_SCAN_TIMEOUT_MIN 0x0001 /**< Minimum Scan timeout in 10 ms units, i.e 10 ms. */ +#define BLE_GAP_SCAN_TIMEOUT_UNLIMITED 0x0000 /**< Continue to scan forever. */ + /** @} */ + +/**@defgroup BLE_GAP_SCAN_BUFFER_SIZE GAP Minimum scanner buffer size + * + * Scan buffers are used for storing advertising data received from an advertiser. + * If ble_gap_scan_params_t::extended is set to 0, @ref BLE_GAP_SCAN_BUFFER_MIN is the minimum scan buffer length. + * else the minimum scan buffer size is @ref BLE_GAP_SCAN_BUFFER_EXTENDED_MIN. + * @{ */ +#define BLE_GAP_SCAN_BUFFER_MIN (31) /**< Minimum data length for an + advertising set. */ +#define BLE_GAP_SCAN_BUFFER_MAX (31) /**< Maximum data length for an + advertising set. */ +#define BLE_GAP_SCAN_BUFFER_EXTENDED_MIN (255) /**< Minimum data length for an + extended advertising set. */ +#define BLE_GAP_SCAN_BUFFER_EXTENDED_MAX (1650) /**< Maximum data length for an + extended advertising set. + @note Extended scanning is only + supported as an experimental + feature in this SoftDevice. + The scanner will only receive + advertising data up to 31 bytes. */ +/** @} */ + +/**@defgroup BLE_GAP_ADV_TYPES GAP Advertising types + * + * Advertising types defined in Bluetooth Core Specification v5.0, Vol 6, Part B, Section 4.4.2. + * + * The maximum advertising data length is defined by @ref BLE_GAP_ADV_SET_DATA_SIZE_MAX. + * Note that some of the advertising types do not support advertising data. Non-scannable types do not support + * scan response data. + * + * @{ */ +#define BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED 0x01 /**< Connectable and scannable undirected + advertising events. */ +#define BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED_HIGH_DUTY_CYCLE 0x02 /**< Connectable non-scannable directed advertising + events. Advertising interval is less that 3.75 ms. + Use this type for fast reconnections. + @note Advertising data is not supported. */ +#define BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED 0x03 /**< Connectable non-scannable directed advertising + events. + @note Advertising data is not supported. */ +#define BLE_GAP_ADV_TYPE_NONCONNECTABLE_SCANNABLE_UNDIRECTED 0x04 /**< Non-connectable scannable undirected + advertising events. */ +#define BLE_GAP_ADV_TYPE_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED 0x05 /**< Non-connectable non-scannable undirected + advertising events. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_UNDIRECTED 0x06 /**< Connectable non-scannable undirected advertising + events using extended advertising PDUs. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_DIRECTED 0x07 /**< Connectable non-scannable directed advertising + events using extended advertising PDUs. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_SCANNABLE_UNDIRECTED 0x08 /**< Non-connectable scannable undirected advertising + events using extended advertising PDUs. + @note Only scan response data is supported. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_SCANNABLE_DIRECTED 0x09 /**< Non-connectable scannable directed advertising + events using extended advertising PDUs. + @note Only scan response data is supported. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED 0x0A /**< Non-connectable non-scannable undirected advertising + events using extended advertising PDUs. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +#define BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_DIRECTED 0x0B /**< Non-connectable non-scannable directed advertising + events using extended advertising PDUs. + @note Extended advertising types are only + supported as experimental features in this + SoftDevice. */ +/**@} */ + +/**@defgroup BLE_GAP_ADV_FILTER_POLICIES GAP Advertising filter policies + * @{ */ +#define BLE_GAP_ADV_FP_ANY 0x00 /**< Allow scan requests and connect requests from any device. */ +#define BLE_GAP_ADV_FP_FILTER_SCANREQ 0x01 /**< Filter scan requests with whitelist. */ +#define BLE_GAP_ADV_FP_FILTER_CONNREQ 0x02 /**< Filter connect requests with whitelist. */ +#define BLE_GAP_ADV_FP_FILTER_BOTH 0x03 /**< Filter both scan and connect requests with whitelist. */ +/**@} */ + +/**@defgroup BLE_GAP_ADV_DATA_STATUS GAP Advertising data status + * @{ */ +#define BLE_GAP_ADV_DATA_STATUS_COMPLETE 0x00 /**< All data in the advertising event have been received. */ +#define BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA 0x01 /**< More data to be received. */ +#define BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_TRUNCATED 0x02 /**< Incomplete data. Buffer size insufficient to receive more. */ +#define BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MISSED 0x03 /**< Failed to receive the remaining data. */ +/**@} */ + +/**@defgroup BLE_GAP_SCAN_FILTER_POLICIES GAP Scanner filter policies + * @{ */ +#define BLE_GAP_SCAN_FP_ACCEPT_ALL 0x00 /**< Accept all advertising packets except directed advertising packets + not addressed to this device. */ +#define BLE_GAP_SCAN_FP_WHITELIST 0x01 /**< Accept advertising packets from devices in the whitelist except directed + packets not addressed to this device. */ +#define BLE_GAP_SCAN_FP_ALL_NOT_RESOLVED_DIRECTED 0x02 /**< Accept all advertising packets specified in @ref BLE_GAP_SCAN_FP_ACCEPT_ALL. + In addition, accept directed advertising packets, where the advertiser's + address is a resolvable private address that cannot be resolved. */ +#define BLE_GAP_SCAN_FP_WHITELIST_NOT_RESOLVED_DIRECTED 0x03 /**< Accept all advertising packets specified in @ref BLE_GAP_SCAN_FP_WHITELIST. + In addition, accept directed advertising packets, where the advertiser's + address is a resolvable private address that cannot be resolved. */ +/**@} */ + +/**@defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values in 10 ms units + * @{ */ +#define BLE_GAP_ADV_TIMEOUT_HIGH_DUTY_MAX (128) /**< Maximum high duty advertising time in 10 ms units. Corresponds to 1.28 s. */ +#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX (18000) /**< Maximum advertising time in 10 ms units corresponding to TGAP(lim_adv_timeout) = 180 s in limited discoverable mode. */ +#define BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED (0) /**< Unlimited advertising in general discoverable mode. + For high duty cycle advertising, this corresponds to @ref BLE_GAP_ADV_TIMEOUT_HIGH_DUTY_MAX. */ +/**@} */ + + +/**@defgroup BLE_GAP_DISC_MODES GAP Discovery modes + * @{ */ +#define BLE_GAP_DISC_MODE_NOT_DISCOVERABLE 0x00 /**< Not discoverable discovery Mode. */ +#define BLE_GAP_DISC_MODE_LIMITED 0x01 /**< Limited Discovery Mode. */ +#define BLE_GAP_DISC_MODE_GENERAL 0x02 /**< General Discovery Mode. */ +/**@} */ + + +/**@defgroup BLE_GAP_IO_CAPS GAP IO Capabilities + * @{ */ +#define BLE_GAP_IO_CAPS_DISPLAY_ONLY 0x00 /**< Display Only. */ +#define BLE_GAP_IO_CAPS_DISPLAY_YESNO 0x01 /**< Display and Yes/No entry. */ +#define BLE_GAP_IO_CAPS_KEYBOARD_ONLY 0x02 /**< Keyboard Only. */ +#define BLE_GAP_IO_CAPS_NONE 0x03 /**< No I/O capabilities. */ +#define BLE_GAP_IO_CAPS_KEYBOARD_DISPLAY 0x04 /**< Keyboard and Display. */ +/**@} */ + + +/**@defgroup BLE_GAP_AUTH_KEY_TYPES GAP Authentication Key Types + * @{ */ +#define BLE_GAP_AUTH_KEY_TYPE_NONE 0x00 /**< No key (may be used to reject). */ +#define BLE_GAP_AUTH_KEY_TYPE_PASSKEY 0x01 /**< 6-digit Passkey. */ +#define BLE_GAP_AUTH_KEY_TYPE_OOB 0x02 /**< Out Of Band data. */ +/**@} */ + + +/**@defgroup BLE_GAP_KP_NOT_TYPES GAP Keypress Notification Types + * @{ */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_START 0x00 /**< Passkey entry started. */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_IN 0x01 /**< Passkey digit entered. */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_OUT 0x02 /**< Passkey digit erased. */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_CLEAR 0x03 /**< Passkey cleared. */ +#define BLE_GAP_KP_NOT_TYPE_PASSKEY_END 0x04 /**< Passkey entry completed. */ +/**@} */ + + +/**@defgroup BLE_GAP_SEC_STATUS GAP Security status + * @{ */ +#define BLE_GAP_SEC_STATUS_SUCCESS 0x00 /**< Procedure completed with success. */ +#define BLE_GAP_SEC_STATUS_TIMEOUT 0x01 /**< Procedure timed out. */ +#define BLE_GAP_SEC_STATUS_PDU_INVALID 0x02 /**< Invalid PDU received. */ +#define BLE_GAP_SEC_STATUS_RFU_RANGE1_BEGIN 0x03 /**< Reserved for Future Use range #1 begin. */ +#define BLE_GAP_SEC_STATUS_RFU_RANGE1_END 0x80 /**< Reserved for Future Use range #1 end. */ +#define BLE_GAP_SEC_STATUS_PASSKEY_ENTRY_FAILED 0x81 /**< Passkey entry failed (user canceled or other). */ +#define BLE_GAP_SEC_STATUS_OOB_NOT_AVAILABLE 0x82 /**< Out of Band Key not available. */ +#define BLE_GAP_SEC_STATUS_AUTH_REQ 0x83 /**< Authentication requirements not met. */ +#define BLE_GAP_SEC_STATUS_CONFIRM_VALUE 0x84 /**< Confirm value failed. */ +#define BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP 0x85 /**< Pairing not supported. */ +#define BLE_GAP_SEC_STATUS_ENC_KEY_SIZE 0x86 /**< Encryption key size. */ +#define BLE_GAP_SEC_STATUS_SMP_CMD_UNSUPPORTED 0x87 /**< Unsupported SMP command. */ +#define BLE_GAP_SEC_STATUS_UNSPECIFIED 0x88 /**< Unspecified reason. */ +#define BLE_GAP_SEC_STATUS_REPEATED_ATTEMPTS 0x89 /**< Too little time elapsed since last attempt. */ +#define BLE_GAP_SEC_STATUS_INVALID_PARAMS 0x8A /**< Invalid parameters. */ +#define BLE_GAP_SEC_STATUS_DHKEY_FAILURE 0x8B /**< DHKey check failure. */ +#define BLE_GAP_SEC_STATUS_NUM_COMP_FAILURE 0x8C /**< Numeric Comparison failure. */ +#define BLE_GAP_SEC_STATUS_BR_EDR_IN_PROG 0x8D /**< BR/EDR pairing in progress. */ +#define BLE_GAP_SEC_STATUS_X_TRANS_KEY_DISALLOWED 0x8E /**< BR/EDR Link Key cannot be used for LE keys. */ +#define BLE_GAP_SEC_STATUS_RFU_RANGE2_BEGIN 0x8F /**< Reserved for Future Use range #2 begin. */ +#define BLE_GAP_SEC_STATUS_RFU_RANGE2_END 0xFF /**< Reserved for Future Use range #2 end. */ +/**@} */ + + +/**@defgroup BLE_GAP_SEC_STATUS_SOURCES GAP Security status sources + * @{ */ +#define BLE_GAP_SEC_STATUS_SOURCE_LOCAL 0x00 /**< Local failure. */ +#define BLE_GAP_SEC_STATUS_SOURCE_REMOTE 0x01 /**< Remote failure. */ +/**@} */ + + +/**@defgroup BLE_GAP_CP_LIMITS GAP Connection Parameters Limits + * @{ */ +#define BLE_GAP_CP_MIN_CONN_INTVL_NONE 0xFFFF /**< No new minimum connection interval specified in connect parameters. */ +#define BLE_GAP_CP_MIN_CONN_INTVL_MIN 0x0006 /**< Lowest minimum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */ +#define BLE_GAP_CP_MIN_CONN_INTVL_MAX 0x0C80 /**< Highest minimum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */ +#define BLE_GAP_CP_MAX_CONN_INTVL_NONE 0xFFFF /**< No new maximum connection interval specified in connect parameters. */ +#define BLE_GAP_CP_MAX_CONN_INTVL_MIN 0x0006 /**< Lowest maximum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */ +#define BLE_GAP_CP_MAX_CONN_INTVL_MAX 0x0C80 /**< Highest maximum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */ +#define BLE_GAP_CP_SLAVE_LATENCY_MAX 0x01F3 /**< Highest slave latency permitted, in connection events. */ +#define BLE_GAP_CP_CONN_SUP_TIMEOUT_NONE 0xFFFF /**< No new supervision timeout specified in connect parameters. */ +#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MIN 0x000A /**< Lowest supervision timeout permitted, in units of 10 ms, i.e. 100 ms. */ +#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MAX 0x0C80 /**< Highest supervision timeout permitted, in units of 10 ms, i.e. 32 s. */ +/**@} */ + + +/**@defgroup BLE_GAP_DEVNAME GAP device name defines. + * @{ */ +#define BLE_GAP_DEVNAME_DEFAULT "nRF5x" /**< Default device name value. */ +#define BLE_GAP_DEVNAME_DEFAULT_LEN 31 /**< Default number of octets in device name. */ +#define BLE_GAP_DEVNAME_MAX_LEN 248 /**< Maximum number of octets in device name. */ +/**@} */ + + +/**@brief Disable RSSI events for connections */ +#define BLE_GAP_RSSI_THRESHOLD_INVALID 0xFF + +/**@defgroup BLE_GAP_PHYS GAP PHYs + * @{ */ +#define BLE_GAP_PHY_AUTO 0x00 /**< Automatic PHY selection. Refer @ref sd_ble_gap_phy_update for more information.*/ +#define BLE_GAP_PHY_1MBPS 0x01 /**< 1 Mbps PHY. */ +#define BLE_GAP_PHY_2MBPS 0x02 /**< 2 Mbps PHY. */ +#define BLE_GAP_PHY_CODED 0x04 /**< Coded PHY. */ +#define BLE_GAP_PHY_NOT_SET 0xFF /**< PHY is not configured. */ + +/**@brief Supported PHYs in connections, for scanning, and for advertising. */ +#define BLE_GAP_PHYS_SUPPORTED (BLE_GAP_PHY_1MBPS | BLE_GAP_PHY_2MBPS | BLE_GAP_PHY_CODED) /**< All PHYs are supported. + @note Coded PHY is only supported + as an experimental feature + in this SoftDevice. */ + +/**@} */ + +/**@defgroup BLE_GAP_CONN_SEC_MODE_SET_MACROS GAP attribute security requirement setters + * + * See @ref ble_gap_conn_sec_mode_t. + * @{ */ +/**@brief Set sec_mode pointed to by ptr to have no access rights.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(ptr) do {(ptr)->sm = 0; (ptr)->lv = 0;} while(0) +/**@brief Set sec_mode pointed to by ptr to require no protection, open link.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_OPEN(ptr) do {(ptr)->sm = 1; (ptr)->lv = 1;} while(0) +/**@brief Set sec_mode pointed to by ptr to require encryption, but no MITM protection.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 2;} while(0) +/**@brief Set sec_mode pointed to by ptr to require encryption and MITM protection.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 3;} while(0) +/**@brief Set sec_mode pointed to by ptr to require LESC encryption and MITM protection.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_LESC_ENC_WITH_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 4;} while(0) +/**@brief Set sec_mode pointed to by ptr to require signing or encryption, no MITM protection needed.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(ptr) do {(ptr)->sm = 2; (ptr)->lv = 1;} while(0) +/**@brief Set sec_mode pointed to by ptr to require signing or encryption with MITM protection.*/ +#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(ptr) do {(ptr)->sm = 2; (ptr)->lv = 2;} while(0) +/**@} */ + + +/**@brief GAP Security Random Number Length. */ +#define BLE_GAP_SEC_RAND_LEN 8 + + +/**@brief GAP Security Key Length. */ +#define BLE_GAP_SEC_KEY_LEN 16 + + +/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key Length. */ +#define BLE_GAP_LESC_P256_PK_LEN 64 + + +/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman DHKey Length. */ +#define BLE_GAP_LESC_DHKEY_LEN 32 + + +/**@brief GAP Passkey Length. */ +#define BLE_GAP_PASSKEY_LEN 6 + + +/**@brief Maximum amount of addresses in the whitelist. */ +#define BLE_GAP_WHITELIST_ADDR_MAX_COUNT (8) + + +/**@brief Maximum amount of identities in the device identities list. */ +#define BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT (8) + + +/**@brief Default connection count for a configuration. */ +#define BLE_GAP_CONN_COUNT_DEFAULT (1) + + +/**@defgroup BLE_GAP_EVENT_LENGTH GAP event length defines. + * @{ */ +#define BLE_GAP_EVENT_LENGTH_MIN (2) /**< Minimum event length, in 1.25 ms units. */ +#define BLE_GAP_EVENT_LENGTH_CODED_PHY_MIN (6) /**< The shortest event length in 1.25 ms units supporting LE Coded PHY. */ +#define BLE_GAP_EVENT_LENGTH_DEFAULT (3) /**< Default event length, in 1.25 ms units. */ +/**@} */ + + +/**@defgroup BLE_GAP_ROLE_COUNT GAP concurrent connection count defines. + * @{ */ +#define BLE_GAP_ROLE_COUNT_PERIPH_DEFAULT (1) /**< Default maximum number of connections concurrently acting as peripherals. */ +#define BLE_GAP_ROLE_COUNT_CENTRAL_DEFAULT (3) /**< Default maximum number of connections concurrently acting as centrals. */ +#define BLE_GAP_ROLE_COUNT_CENTRAL_SEC_DEFAULT (1) /**< Default number of SMP instances shared between all connections acting as centrals. */ +#define BLE_GAP_ROLE_COUNT_COMBINED_MAX (20) /**< Maximum supported number of concurrent connections in the peripheral and central roles combined. */ + +/**@} */ + +/**@brief Automatic data length parameter. */ +#define BLE_GAP_DATA_LENGTH_AUTO 0 + +/**@defgroup BLE_GAP_AUTH_PAYLOAD_TIMEOUT Authenticated payload timeout defines. + * @{ */ +#define BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MAX (48000) /**< Maximum authenticated payload timeout in 10 ms units, i.e. 8 minutes. */ +#define BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MIN (1) /**< Minimum authenticated payload timeout in 10 ms units, i.e. 10 ms. */ +/**@} */ + +/**@defgroup GAP_SEC_MODES GAP Security Modes + * @{ */ +#define BLE_GAP_SEC_MODE 0x00 /**< No key (may be used to reject). */ +/**@} */ + +/**@brief The total number of channels in Bluetooth Low Energy. */ +#define BLE_GAP_CHANNEL_COUNT (40) + +/**@defgroup BLE_GAP_QOS_CHANNEL_SURVEY_INTERVALS Quality of Service (QoS) Channel survey interval defines + * @{ */ +#define BLE_GAP_QOS_CHANNEL_SURVEY_INTERVAL_CONTINUOUS (0) /**< Continuous channel survey. */ +#define BLE_GAP_QOS_CHANNEL_SURVEY_INTERVAL_MIN_US (7500) /**< Minimum channel survey interval in microseconds (7.5 ms). */ +#define BLE_GAP_QOS_CHANNEL_SURVEY_INTERVAL_MAX_US (4000000) /**< Maximum channel survey interval in microseconds (4 s). */ + /**@} */ + +/** @} */ + + +/**@addtogroup BLE_GAP_STRUCTURES Structures + * @{ */ + +/**@brief Advertising event properties. */ +typedef struct +{ + uint8_t type; /**< Advertising type. See @ref BLE_GAP_ADV_TYPES. */ + uint8_t anonymous : 1; /**< Omit advertiser's address from all PDUs. + @note Anonymous advertising is only available for + @ref BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED and + @ref BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_DIRECTED. */ + uint8_t include_tx_power : 1; /**< Include TxPower set by @ref sd_ble_gap_tx_power_set in the extended header + of the advertising PDU. + @note TxPower can only be added to the extended header when @ref type is an extended advertising type. */ +} ble_gap_adv_properties_t; + + +/**@brief Advertising report type. */ +typedef struct +{ + uint16_t connectable : 1; /**< Connectable advertising event type. */ + uint16_t scannable : 1; /**< Scannable advertising event type. */ + uint16_t directed : 1; /**< Directed advertising event type. */ + uint16_t scan_response : 1; /**< Received a scan response. */ + uint16_t extended_pdu : 1; /**< Received an extended advertising set. */ + uint16_t status : 2; /**< Data status. See @ref BLE_GAP_ADV_DATA_STATUS. */ + uint16_t reserved : 9; /**< Reserved for future use. */ +} ble_gap_adv_report_type_t; + +/**@brief Advertising Auxiliary Pointer. */ +typedef struct +{ + uint16_t aux_offset; /**< Time offset from the beginning of advertising packet to the auxiliary packet in 100 us units. */ + uint8_t aux_phy; /**< Indicates the PHY on which the auxiliary advertising packet is sent. See @ref BLE_GAP_PHYS. */ +} ble_gap_aux_pointer_t; + +/**@brief Bluetooth Low Energy address. */ +typedef struct +{ + uint8_t addr_id_peer : 1; /**< Only valid for peer addresses. + Reference to peer in device identities list (as set with @ref sd_ble_gap_device_identities_set) when peer is using privacy. */ + uint8_t addr_type : 7; /**< See @ref BLE_GAP_ADDR_TYPES. */ + uint8_t addr[BLE_GAP_ADDR_LEN]; /**< 48-bit address, LSB format. + addr is not used if addr_type is @ref BLE_GAP_ADDR_TYPE_ANONYMOUS. */ +} ble_gap_addr_t; + + +/**@brief GAP connection parameters. + * + * @note When ble_conn_params_t is received in an event, both min_conn_interval and + * max_conn_interval will be equal to the connection interval set by the central. + * + * @note If both conn_sup_timeout and max_conn_interval are specified, then the following constraint applies: + * conn_sup_timeout * 4 > (1 + slave_latency) * max_conn_interval + * that corresponds to the following Bluetooth Spec requirement: + * The Supervision_Timeout in milliseconds shall be larger than + * (1 + Conn_Latency) * Conn_Interval_Max * 2, where Conn_Interval_Max is given in milliseconds. + */ +typedef struct +{ + uint16_t min_conn_interval; /**< Minimum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/ + uint16_t max_conn_interval; /**< Maximum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/ + uint16_t slave_latency; /**< Slave Latency in number of connection events, see @ref BLE_GAP_CP_LIMITS.*/ + uint16_t conn_sup_timeout; /**< Connection Supervision Timeout in 10 ms units, see @ref BLE_GAP_CP_LIMITS.*/ +} ble_gap_conn_params_t; + + +/**@brief GAP connection security modes. + * + * Security Mode 0 Level 0: No access permissions at all (this level is not defined by the Bluetooth Core specification).\n + * Security Mode 1 Level 1: No security is needed (aka open link).\n + * Security Mode 1 Level 2: Encrypted link required, MITM protection not necessary.\n + * Security Mode 1 Level 3: MITM protected encrypted link required.\n + * Security Mode 1 Level 4: LESC MITM protected encrypted link using a 128-bit strength encryption key required.\n + * Security Mode 2 Level 1: Signing or encryption required, MITM protection not necessary.\n + * Security Mode 2 Level 2: MITM protected signing required, unless link is MITM protected encrypted.\n + */ +typedef struct +{ + uint8_t sm : 4; /**< Security Mode (1 or 2), 0 for no permissions at all. */ + uint8_t lv : 4; /**< Level (1, 2, 3 or 4), 0 for no permissions at all. */ + +} ble_gap_conn_sec_mode_t; + + +/**@brief GAP connection security status.*/ +typedef struct +{ + ble_gap_conn_sec_mode_t sec_mode; /**< Currently active security mode for this connection.*/ + uint8_t encr_key_size; /**< Length of currently active encryption key, 7 to 16 octets (only applicable for bonding procedures). */ +} ble_gap_conn_sec_t; + +/**@brief Identity Resolving Key. */ +typedef struct +{ + uint8_t irk[BLE_GAP_SEC_KEY_LEN]; /**< Array containing IRK. */ +} ble_gap_irk_t; + + +/**@brief Channel mask (40 bits). + * Every channel is represented with a bit positioned as per channel index defined in Bluetooth Core Specification v5.0, + * Vol 6, Part B, Section 1.4.1. The LSB contained in array element 0 represents channel index 0, and bit 39 represents + * channel index 39. If a bit is set to 1, the channel is not used. + */ +typedef uint8_t ble_gap_ch_mask_t[5]; + + +/**@brief GAP advertising parameters. */ +typedef struct +{ + ble_gap_adv_properties_t properties; /**< The properties of the advertising events. */ + ble_gap_addr_t const *p_peer_addr; /**< Address of a known peer. + @note ble_gap_addr_t::addr_type cannot be + @ref BLE_GAP_ADDR_TYPE_ANONYMOUS. + - When privacy is enabled and the local device uses + @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE addresses, + the device identity list is searched for a matching entry. If + the local IRK for that device identity is set, the local IRK + for that device will be used to generate the advertiser address + field in the advertising packet. + - If @ref ble_gap_adv_properties_t::type is directed, this must be + set to the targeted scanner or initiator. If the peer address is + in the device identity list, the peer IRK for that device will be + used to generate @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE + target addresses used in the advertising event PDUs. */ + uint32_t interval; /**< Advertising interval in 625 us units. @sa BLE_GAP_ADV_INTERVALS. + @note If @ref ble_gap_adv_properties_t::type is set to + @ref BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED_HIGH_DUTY_CYCLE + advertising, this parameter is ignored. */ + uint16_t duration; /**< Advertising duration in 10 ms units. When timeout is reached, + an event of type @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised. + @sa BLE_GAP_ADV_TIMEOUT_VALUES. */ + uint8_t max_adv_evts; /**< Maximum advertising events that shall be sent prior to disabling + advertising. Setting the value to 0 disables the limitation. When + the count of advertising events specified by this parameter + (if not 0) is reached, advertising will be automatically stopped + and an event of type @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised + @note If @ref ble_gap_adv_properties_t::type is set to + @ref BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED_HIGH_DUTY_CYCLE, + this parameter is ignored. + @note Setting max_adv_evts to a values not equal to 0 is only supported + as an experimental feature in this SoftDevice. */ + ble_gap_ch_mask_t channel_mask; /**< Channel mask for primary and secondary advertising channels. + At least one of the primary channels, that is channel index 37-39, must be used. + Masking away secondary advertising channels is not supported. */ + uint8_t filter_policy; /**< Filter Policy. @sa BLE_GAP_ADV_FILTER_POLICIES. */ + uint8_t primary_phy; /**< Indicates the PHY on which the primary advertising channel packets + are transmitted. If set to @ref BLE_GAP_PHY_AUTO, @ref BLE_GAP_PHY_1MBPS + will be used. + Valid values are @ref BLE_GAP_PHY_1MBPS and @ref BLE_GAP_PHY_CODED. + @note The primary_phy shall indicate @ref BLE_GAP_PHY_1MBPS if + @ref ble_gap_adv_properties_t::type is not an extended advertising type. */ + uint8_t secondary_phy; /**< Indicates the PHY on which the secondary advertising channel packets + are transmitted. + If set to @ref BLE_GAP_PHY_AUTO, @ref BLE_GAP_PHY_1MBPS will be used. + Valid values are + @ref BLE_GAP_PHY_1MBPS, @ref BLE_GAP_PHY_2MBPS, and @ref BLE_GAP_PHY_CODED. + If @ref ble_gap_adv_properties_t::type is an extended advertising type + and connectable, this is the PHY that will be used to establish a + connection and send AUX_ADV_IND packets on. + @note This parameter will be ignored when + @ref ble_gap_adv_properties_t::type is not an extended advertising type. */ + uint8_t set_id:4; /**< The advertising set identifier distinguishes this advertising set from other + advertising sets transmitted by this and other devices. + @note This parameter will be ignored when + @ref ble_gap_adv_properties_t::type is not an extended advertising type. */ + uint8_t scan_req_notification:1; /**< Enable scan request notifications for this advertising set. When a + scan request is received and the scanner address is allowed + by the filter policy, @ref BLE_GAP_EVT_SCAN_REQ_REPORT is raised. + @note This parameter will be ignored when + @ref ble_gap_adv_properties_t::type is a non-scannable + advertising type. */ +} ble_gap_adv_params_t; + + +/**@brief GAP advertising data buffers. + * + * The application must provide the buffers for advertisement. The memory shall reside in application RAM, and + * shall never be modified while advertising. The data shall be kept alive until either: + * - @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised. + * - @ref BLE_GAP_EVT_CONNECTED is raised with @ref ble_gap_evt_connected_t::adv_handle set to the corresponding + * advertising handle. + * - Advertising is stopped. + * - Advertising data is changed. + * To update advertising data while advertising, provide new buffers to @ref sd_ble_gap_adv_set_configure. */ +typedef struct +{ + ble_data_t adv_data; /**< Advertising data. + @note + Advertising data can only be specified for a @ref ble_gap_adv_properties_t::type + that is allowed to contain advertising data. */ + ble_data_t scan_rsp_data; /**< Scan response data. + @note + Scan response data can only be specified for a @ref ble_gap_adv_properties_t::type + that is scannable. */ +} ble_gap_adv_data_t; + + +/**@brief GAP scanning parameters. */ +typedef struct +{ + uint8_t extended : 1; /**< If 1, the scanner will accept extended advertising packets. + If set to 0, the scanner will not receive advertising packets + on secondary advertising channels, and will not be able + to receive long advertising PDUs. + @note Extended scanning is only supported as an experimental feature in this + SoftDevice. */ + uint8_t report_incomplete_evts : 1; /**< If 1, events of type @ref ble_gap_evt_adv_report_t may have + @ref ble_gap_adv_report_type_t::status set to + @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA. + This parameter is ignored when used with @ref sd_ble_gap_connect + @note This may be used to abort receiving more packets from an extended + advertising event, and is only available for extended + scanning, see @ref sd_ble_gap_scan_start. + @note This feature is not supported by this SoftDevice. */ + uint8_t active : 1; /**< If 1, perform active scanning by sending scan requests. + This parameter is ignored when used with @ref sd_ble_gap_connect. */ + uint8_t filter_policy : 2; /**< Scanning filter policy. @sa BLE_GAP_SCAN_FILTER_POLICIES. + @note Only @ref BLE_GAP_SCAN_FP_ACCEPT_ALL and + @ref BLE_GAP_SCAN_FP_WHITELIST are valid when used with + @ref sd_ble_gap_connect */ + uint8_t scan_phys; /**< Bitfield of PHYs to scan on. If set to @ref BLE_GAP_PHY_AUTO, + scan_phys will default to @ref BLE_GAP_PHY_1MBPS. + - If @ref ble_gap_scan_params_t::extended is set to 0, the only + supported PHY is @ref BLE_GAP_PHY_1MBPS. + - When used with @ref sd_ble_gap_scan_start, + the bitfield indicates the PHYs the scanner will use for scanning + on primary advertising channels. The scanner will accept + @ref BLE_GAP_PHYS_SUPPORTED as secondary advertising channel PHYs. + - When used with @ref sd_ble_gap_connect, the + bitfield indicates the PHYs on where a connection may be initiated. + If scan_phys contains @ref BLE_GAP_PHY_1MBPS and/or @ref BLE_GAP_PHY_2MBPS, + the primary scan PHY is @ref BLE_GAP_PHY_1MBPS. + If scan_phys also contains @ref BLE_GAP_PHY_CODED, the primary scan + PHY will also contain @ref BLE_GAP_PHY_CODED. If the only scan PHY is + @ref BLE_GAP_PHY_CODED, the primary scan PHY is + @ref BLE_GAP_PHY_CODED only. */ + uint16_t interval; /**< Scan interval in 625 us units. @sa BLE_GAP_SCAN_INTERVALS. */ + uint16_t window; /**< Scan window in 625 us units. @sa BLE_GAP_SCAN_WINDOW. */ + uint16_t timeout; /**< Scan timeout in 10 ms units. @sa BLE_GAP_SCAN_TIMEOUT. */ + ble_gap_ch_mask_t channel_mask; /**< Channel mask for primary and secondary advertising channels. + At least one of the primary channels, that is channel index 37-39, must be + set to 0. + Masking away secondary channels is not supported. */ +} ble_gap_scan_params_t; + + +/**@brief Privacy. + * + * The privacy feature provides a way for the device to avoid being tracked over a period of time. + * The privacy feature, when enabled, hides the local device identity and replaces it with a private address + * that is automatically refreshed at a specified interval. + * + * If a device still wants to be recognized by other peers, it needs to share it's Identity Resolving Key (IRK). + * With this key, a device can generate a random private address that can only be recognized by peers in possession of that key, + * and devices can establish connections without revealing their real identities. + * + * Both network privacy (@ref BLE_GAP_PRIVACY_MODE_NETWORK_PRIVACY) and device privacy (@ref BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY) + * are supported. + * + * @note If the device IRK is updated, the new IRK becomes the one to be distributed in all + * bonding procedures performed after @ref sd_ble_gap_privacy_set returns. + * The IRK distributed during bonding procedure is the device IRK that is active when @ref sd_ble_gap_sec_params_reply is called. + */ +typedef struct +{ + uint8_t privacy_mode; /**< Privacy mode, see @ref BLE_GAP_PRIVACY_MODES. Default is @ref BLE_GAP_PRIVACY_MODE_OFF. */ + uint8_t private_addr_type; /**< The private address type must be either @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE or @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE. */ + uint16_t private_addr_cycle_s; /**< Private address cycle interval in seconds. Providing an address cycle value of 0 will use the default value defined by @ref BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S. */ + ble_gap_irk_t *p_device_irk; /**< When used as input, pointer to IRK structure that will be used as the default IRK. If NULL, the device default IRK will be used. + When used as output, pointer to IRK structure where the current default IRK will be written to. If NULL, this argument is ignored. + By default, the default IRK is used to generate random private resolvable addresses for the local device unless instructed otherwise. */ +} ble_gap_privacy_params_t; + + +/**@brief PHY preferences for TX and RX + * @note tx_phys and rx_phys are bit fields. Multiple bits can be set in them to indicate multiple preferred PHYs for each direction. + * @code + * p_gap_phys->tx_phys = BLE_GAP_PHY_1MBPS | BLE_GAP_PHY_2MBPS; + * p_gap_phys->rx_phys = BLE_GAP_PHY_1MBPS | BLE_GAP_PHY_2MBPS; + * @endcode + * + */ +typedef struct +{ + uint8_t tx_phys; /**< Preferred transmit PHYs, see @ref BLE_GAP_PHYS. */ + uint8_t rx_phys; /**< Preferred receive PHYs, see @ref BLE_GAP_PHYS. */ +} ble_gap_phys_t; + +/** @brief Keys that can be exchanged during a bonding procedure. */ +typedef struct +{ + uint8_t enc : 1; /**< Long Term Key and Master Identification. */ + uint8_t id : 1; /**< Identity Resolving Key and Identity Address Information. */ + uint8_t sign : 1; /**< Connection Signature Resolving Key. */ + uint8_t link : 1; /**< Derive the Link Key from the LTK. */ +} ble_gap_sec_kdist_t; + + +/**@brief GAP security parameters. */ +typedef struct +{ + uint8_t bond : 1; /**< Perform bonding. */ + uint8_t mitm : 1; /**< Enable Man In The Middle protection. */ + uint8_t lesc : 1; /**< Enable LE Secure Connection pairing. */ + uint8_t keypress : 1; /**< Enable generation of keypress notifications. */ + uint8_t io_caps : 3; /**< IO capabilities, see @ref BLE_GAP_IO_CAPS. */ + uint8_t oob : 1; /**< The OOB data flag. + - In LE legacy pairing, this flag is set if a device has out of band authentication data. + The OOB method is used if both of the devices have out of band authentication data. + - In LE Secure Connections pairing, this flag is set if a device has the peer device's out of band authentication data. + The OOB method is used if at least one device has the peer device's OOB data available. */ + uint8_t min_key_size; /**< Minimum encryption key size in octets between 7 and 16. If 0 then not applicable in this instance. */ + uint8_t max_key_size; /**< Maximum encryption key size in octets between min_key_size and 16. */ + ble_gap_sec_kdist_t kdist_own; /**< Key distribution bitmap: keys that the local device will distribute. */ + ble_gap_sec_kdist_t kdist_peer; /**< Key distribution bitmap: keys that the remote device will distribute. */ +} ble_gap_sec_params_t; + + +/**@brief GAP Encryption Information. */ +typedef struct +{ + uint8_t ltk[BLE_GAP_SEC_KEY_LEN]; /**< Long Term Key. */ + uint8_t lesc : 1; /**< Key generated using LE Secure Connections. */ + uint8_t auth : 1; /**< Authenticated Key. */ + uint8_t ltk_len : 6; /**< LTK length in octets. */ +} ble_gap_enc_info_t; + + +/**@brief GAP Master Identification. */ +typedef struct +{ + uint16_t ediv; /**< Encrypted Diversifier. */ + uint8_t rand[BLE_GAP_SEC_RAND_LEN]; /**< Random Number. */ +} ble_gap_master_id_t; + + +/**@brief GAP Signing Information. */ +typedef struct +{ + uint8_t csrk[BLE_GAP_SEC_KEY_LEN]; /**< Connection Signature Resolving Key. */ +} ble_gap_sign_info_t; + + +/**@brief GAP LE Secure Connections P-256 Public Key. */ +typedef struct +{ + uint8_t pk[BLE_GAP_LESC_P256_PK_LEN]; /**< LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key. Stored in the standard SMP protocol format: {X,Y} both in little-endian. */ +} ble_gap_lesc_p256_pk_t; + + +/**@brief GAP LE Secure Connections DHKey. */ +typedef struct +{ + uint8_t key[BLE_GAP_LESC_DHKEY_LEN]; /**< LE Secure Connections Elliptic Curve Diffie-Hellman Key. Stored in little-endian. */ +} ble_gap_lesc_dhkey_t; + + +/**@brief GAP LE Secure Connections OOB data. */ +typedef struct +{ + ble_gap_addr_t addr; /**< Bluetooth address of the device. */ + uint8_t r[BLE_GAP_SEC_KEY_LEN]; /**< Random Number. */ + uint8_t c[BLE_GAP_SEC_KEY_LEN]; /**< Confirm Value. */ +} ble_gap_lesc_oob_data_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_CONNECTED. */ +typedef struct +{ + ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1 + and the address is the device's identity address. */ + uint8_t role; /**< BLE role for this connection, see @ref BLE_GAP_ROLES */ + ble_gap_conn_params_t conn_params; /**< GAP Connection Parameters. */ + uint8_t adv_handle; /**< Advertising handle in which advertising has ended. + This variable is only set if role is set to @ref BLE_GAP_ROLE_PERIPH. */ + ble_gap_adv_data_t adv_data; /**< Advertising buffers corresponding to the terminated + advertising set. The advertising buffers provided in + @ref sd_ble_gap_adv_set_configure are now released. + This variable is only set if role is set to @ref BLE_GAP_ROLE_PERIPH. */ +} ble_gap_evt_connected_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_DISCONNECTED. */ +typedef struct +{ + uint8_t reason; /**< HCI error code, see @ref BLE_HCI_STATUS_CODES. */ +} ble_gap_evt_disconnected_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE. */ +typedef struct +{ + ble_gap_conn_params_t conn_params; /**< GAP Connection Parameters. */ +} ble_gap_evt_conn_param_update_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_PHY_UPDATE_REQUEST. */ +typedef struct +{ + ble_gap_phys_t peer_preferred_phys; /**< The PHYs the peer prefers to use. */ +} ble_gap_evt_phy_update_request_t; + +/**@brief Event Structure for @ref BLE_GAP_EVT_PHY_UPDATE. */ +typedef struct +{ + uint8_t status; /**< Status of the procedure, see @ref BLE_HCI_STATUS_CODES.*/ + uint8_t tx_phy; /**< TX PHY for this connection, see @ref BLE_GAP_PHYS. */ + uint8_t rx_phy; /**< RX PHY for this connection, see @ref BLE_GAP_PHYS. */ +} ble_gap_evt_phy_update_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST. */ +typedef struct +{ + ble_gap_sec_params_t peer_params; /**< Initiator Security Parameters. */ +} ble_gap_evt_sec_params_request_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_SEC_INFO_REQUEST. */ +typedef struct +{ + ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. */ + ble_gap_master_id_t master_id; /**< Master Identification for LTK lookup. */ + uint8_t enc_info : 1; /**< If 1, Encryption Information required. */ + uint8_t id_info : 1; /**< If 1, Identity Information required. */ + uint8_t sign_info : 1; /**< If 1, Signing Information required. */ +} ble_gap_evt_sec_info_request_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_PASSKEY_DISPLAY. */ +typedef struct +{ + uint8_t passkey[BLE_GAP_PASSKEY_LEN]; /**< 6-digit passkey in ASCII ('0'-'9' digits only). */ + uint8_t match_request : 1; /**< If 1 requires the application to report the match using @ref sd_ble_gap_auth_key_reply + with either @ref BLE_GAP_AUTH_KEY_TYPE_NONE if there is no match or + @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY if there is a match. */ +} ble_gap_evt_passkey_display_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_KEY_PRESSED. */ +typedef struct +{ + uint8_t kp_not; /**< Keypress notification type, see @ref BLE_GAP_KP_NOT_TYPES. */ +} ble_gap_evt_key_pressed_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_KEY_REQUEST. */ +typedef struct +{ + uint8_t key_type; /**< See @ref BLE_GAP_AUTH_KEY_TYPES. */ +} ble_gap_evt_auth_key_request_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST. */ +typedef struct +{ + ble_gap_lesc_p256_pk_t *p_pk_peer; /**< LE Secure Connections remote P-256 Public Key. This will point to the application-supplied memory + inside the keyset during the call to @ref sd_ble_gap_sec_params_reply. */ + uint8_t oobd_req :1; /**< LESC OOB data required. A call to @ref sd_ble_gap_lesc_oob_data_set is required to complete the procedure. */ +} ble_gap_evt_lesc_dhkey_request_t; + + +/**@brief Security levels supported. + * @note See Bluetooth Specification Version 4.2 Volume 3, Part C, Chapter 10, Section 10.2.1. +*/ +typedef struct +{ + uint8_t lv1 : 1; /**< If 1: Level 1 is supported. */ + uint8_t lv2 : 1; /**< If 1: Level 2 is supported. */ + uint8_t lv3 : 1; /**< If 1: Level 3 is supported. */ + uint8_t lv4 : 1; /**< If 1: Level 4 is supported. */ +} ble_gap_sec_levels_t; + + +/**@brief Encryption Key. */ +typedef struct +{ + ble_gap_enc_info_t enc_info; /**< Encryption Information. */ + ble_gap_master_id_t master_id; /**< Master Identification. */ +} ble_gap_enc_key_t; + + +/**@brief Identity Key. */ +typedef struct +{ + ble_gap_irk_t id_info; /**< Identity Resolving Key. */ + ble_gap_addr_t id_addr_info; /**< Identity Address. */ +} ble_gap_id_key_t; + + +/**@brief Security Keys. */ +typedef struct +{ + ble_gap_enc_key_t *p_enc_key; /**< Encryption Key, or NULL. */ + ble_gap_id_key_t *p_id_key; /**< Identity Key, or NULL. */ + ble_gap_sign_info_t *p_sign_key; /**< Signing Key, or NULL. */ + ble_gap_lesc_p256_pk_t *p_pk; /**< LE Secure Connections P-256 Public Key. When in debug mode the application must use the value defined + in the Core Bluetooth Specification v4.2 Vol.3, Part H, Section 2.3.5.6.1 */ +} ble_gap_sec_keys_t; + + +/**@brief Security key set for both local and peer keys. */ +typedef struct +{ + ble_gap_sec_keys_t keys_own; /**< Keys distributed by the local device. For LE Secure Connections the encryption key will be generated locally and will always be stored if bonding. */ + ble_gap_sec_keys_t keys_peer; /**< Keys distributed by the remote device. For LE Secure Connections, p_enc_key must always be NULL. */ +} ble_gap_sec_keyset_t; + + +/**@brief Data Length Update Procedure parameters. */ +typedef struct +{ + uint16_t max_tx_octets; /**< Maximum number of payload octets that a Controller supports for transmission of a single Link Layer Data Channel PDU. */ + uint16_t max_rx_octets; /**< Maximum number of payload octets that a Controller supports for reception of a single Link Layer Data Channel PDU. */ + uint16_t max_tx_time_us; /**< Maximum time, in microseconds, that a Controller supports for transmission of a single Link Layer Data Channel PDU. */ + uint16_t max_rx_time_us; /**< Maximum time, in microseconds, that a Controller supports for reception of a single Link Layer Data Channel PDU. */ +} ble_gap_data_length_params_t; + + +/**@brief Data Length Update Procedure local limitation. */ +typedef struct +{ + uint16_t tx_payload_limited_octets; /**< If > 0, the requested TX packet length is too long by this many octets. */ + uint16_t rx_payload_limited_octets; /**< If > 0, the requested RX packet length is too long by this many octets. */ + uint16_t tx_rx_time_limited_us; /**< If > 0, the requested combination of TX and RX packet lengths is too long by this many microseconds. */ +} ble_gap_data_length_limitation_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_STATUS. */ +typedef struct +{ + uint8_t auth_status; /**< Authentication status, see @ref BLE_GAP_SEC_STATUS. */ + uint8_t error_src : 2; /**< On error, source that caused the failure, see @ref BLE_GAP_SEC_STATUS_SOURCES. */ + uint8_t bonded : 1; /**< Procedure resulted in a bond. */ + uint8_t lesc : 1; /**< Procedure resulted in a LE Secure Connection. */ + ble_gap_sec_levels_t sm1_levels; /**< Levels supported in Security Mode 1. */ + ble_gap_sec_levels_t sm2_levels; /**< Levels supported in Security Mode 2. */ + ble_gap_sec_kdist_t kdist_own; /**< Bitmap stating which keys were exchanged (distributed) by the local device. If bonding with LE Secure Connections, the enc bit will be always set. */ + ble_gap_sec_kdist_t kdist_peer; /**< Bitmap stating which keys were exchanged (distributed) by the remote device. If bonding with LE Secure Connections, the enc bit will never be set. */ +} ble_gap_evt_auth_status_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_CONN_SEC_UPDATE. */ +typedef struct +{ + ble_gap_conn_sec_t conn_sec; /**< Connection security level. */ +} ble_gap_evt_conn_sec_update_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_TIMEOUT. */ +typedef struct +{ + uint8_t src; /**< Source of timeout event, see @ref BLE_GAP_TIMEOUT_SOURCES. */ + union + { + ble_data_t adv_report_buffer; /**< If source is set to @ref BLE_GAP_TIMEOUT_SRC_SCAN, the released + scan buffer is contained in this field. */ + } params; /**< Event Parameters. */ +} ble_gap_evt_timeout_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_RSSI_CHANGED. */ +typedef struct +{ + int8_t rssi; /**< Received Signal Strength Indication in dBm. + @note ERRATA-153 requires the rssi sample to be compensated based on a temperature measurement. */ + uint8_t ch_index; /**< Data Channel Index on which the Signal Strength is measured (0-36). */ +} ble_gap_evt_rssi_changed_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_ADV_SET_TERMINATED */ +typedef struct +{ + uint8_t reason; /**< Reason for why the advertising set terminated. See + @ref BLE_GAP_EVT_ADV_SET_TERMINATED_REASON. */ + uint8_t adv_handle; /**< Advertising handle in which advertising has ended. */ + uint8_t num_completed_adv_events; /**< If @ref ble_gap_adv_params_t::max_adv_evts was not set to 0, + this field indicates the number of completed advertising events. */ + ble_gap_adv_data_t adv_data; /**< Advertising buffers corresponding to the terminated + advertising set. The advertising buffers provided in + @ref sd_ble_gap_adv_set_configure are now released. */ +} ble_gap_evt_adv_set_terminated_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_ADV_REPORT. + * + * @note If @ref ble_gap_adv_report_type_t::status is set to @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, + * not all fields in the advertising report may be available. + * + * @note When ble_gap_adv_report_type_t::status is not set to @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, + * scanning will be paused. To continue scanning, call @ref sd_ble_gap_scan_start. + */ +typedef struct +{ + ble_gap_adv_report_type_t type; /**< Advertising report type. See @ref ble_gap_adv_report_type_t. */ + ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. If the peer_addr is resolved: + @ref ble_gap_addr_t::addr_id_peer is set to 1 and the address is the + peer's identity address. */ + ble_gap_addr_t direct_addr; /**< Contains the target address of the advertising event if + @ref ble_gap_adv_report_type_t::directed is set to 1. If the + SoftDevice was able to resolve the address, + @ref ble_gap_addr_t::addr_id_peer is set to 1 and the direct_addr + contains the local identity address. If the target address of the + advertising event is @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE, + and the SoftDevice was unable to resolve it, the application may try + to resolve this address to find out if the advertising event was + directed to us. */ + uint8_t primary_phy; /**< Indicates the PHY on which the primary advertising packet was received on. + See @ref BLE_GAP_PHYS. */ + uint8_t secondary_phy; /**< Indicates the PHY on which the secondary advertising packet was received on. + See @ref BLE_GAP_PHYS. This field is to 0 if no packets where received on + a secondary advertising channel. */ + int8_t tx_power; /**< TX Power reported by the advertiser in the last packet header received. + This field is set to @ref BLE_GAP_POWER_LEVEL_INVALID if the + last received packet did not contain the Tx Power field. + @note TX Power is only included in extended advertising packets. */ + int8_t rssi; /**< Received Signal Strength Indication in dBm of the last packet received. + @note ERRATA-153 requires the rssi sample to be compensated based on a temperature measurement. */ + uint8_t ch_index; /**< Channel Index on which the last advertising packet is received (0-39). */ + uint8_t set_id; /**< Set ID of the received advertising data. Set ID is not present + if set to @ref BLE_GAP_ADV_REPORT_SET_ID_NOT_AVAILABLE. */ + uint16_t data_id:12; /**< The advertising data ID of the received advertising data. Data ID + is not present if @ref ble_gap_evt_adv_report_t::set_id is set to + @ref BLE_GAP_ADV_REPORT_SET_ID_NOT_AVAILABLE. */ + ble_data_t data; /**< Received advertising or scan response data. If + @ref ble_gap_adv_report_type_t::status is not set to + @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, the data buffer provided + in @ref sd_ble_gap_scan_start is now released. */ + ble_gap_aux_pointer_t aux_pointer; /**< The offset and PHY of the next advertising packet in this extended advertising + event. @note This field is only set if @ref ble_gap_adv_report_type_t::status + is set to @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA. */ +} ble_gap_evt_adv_report_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_SEC_REQUEST. */ +typedef struct +{ + uint8_t bond : 1; /**< Perform bonding. */ + uint8_t mitm : 1; /**< Man In The Middle protection requested. */ + uint8_t lesc : 1; /**< LE Secure Connections requested. */ + uint8_t keypress : 1; /**< Generation of keypress notifications requested. */ +} ble_gap_evt_sec_request_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST. */ +typedef struct +{ + ble_gap_conn_params_t conn_params; /**< GAP Connection Parameters. */ +} ble_gap_evt_conn_param_update_request_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_SCAN_REQ_REPORT. */ +typedef struct +{ + uint8_t adv_handle; /**< Advertising handle for the advertising set which received the Scan Request */ + int8_t rssi; /**< Received Signal Strength Indication in dBm. + @note ERRATA-153 requires the rssi sample to be compensated based on a temperature measurement. */ + ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1 + and the address is the device's identity address. */ +} ble_gap_evt_scan_req_report_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST. */ +typedef struct +{ + ble_gap_data_length_params_t peer_params; /**< Peer data length parameters. */ +} ble_gap_evt_data_length_update_request_t; + +/**@brief Event structure for @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE. */ +typedef struct +{ + ble_gap_data_length_params_t effective_params; /**< The effective data length parameters. */ +} ble_gap_evt_data_length_update_t; + + +/**@brief Event structure for @ref BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT. */ +typedef struct +{ + int8_t channel_energy[BLE_GAP_CHANNEL_COUNT]; /**< The measured energy on the Bluetooth Low Energy + channels, in dBm, indexed by Channel Index. + If no measurement is available for the given channel, channel_energy is set to + @ref BLE_GAP_POWER_LEVEL_INVALID. */ +} ble_gap_evt_qos_channel_survey_report_t; + +/**@brief GAP event structure. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which event occurred. */ + union /**< union alternative identified by evt_id in enclosing struct. */ + { + ble_gap_evt_connected_t connected; /**< Connected Event Parameters. */ + ble_gap_evt_disconnected_t disconnected; /**< Disconnected Event Parameters. */ + ble_gap_evt_conn_param_update_t conn_param_update; /**< Connection Parameter Update Parameters. */ + ble_gap_evt_sec_params_request_t sec_params_request; /**< Security Parameters Request Event Parameters. */ + ble_gap_evt_sec_info_request_t sec_info_request; /**< Security Information Request Event Parameters. */ + ble_gap_evt_passkey_display_t passkey_display; /**< Passkey Display Event Parameters. */ + ble_gap_evt_key_pressed_t key_pressed; /**< Key Pressed Event Parameters. */ + ble_gap_evt_auth_key_request_t auth_key_request; /**< Authentication Key Request Event Parameters. */ + ble_gap_evt_lesc_dhkey_request_t lesc_dhkey_request; /**< LE Secure Connections DHKey calculation request. */ + ble_gap_evt_auth_status_t auth_status; /**< Authentication Status Event Parameters. */ + ble_gap_evt_conn_sec_update_t conn_sec_update; /**< Connection Security Update Event Parameters. */ + ble_gap_evt_timeout_t timeout; /**< Timeout Event Parameters. */ + ble_gap_evt_rssi_changed_t rssi_changed; /**< RSSI Event Parameters. */ + ble_gap_evt_adv_report_t adv_report; /**< Advertising Report Event Parameters. */ + ble_gap_evt_adv_set_terminated_t adv_set_terminated; /**< Advertising Set Terminated Event Parameters. */ + ble_gap_evt_sec_request_t sec_request; /**< Security Request Event Parameters. */ + ble_gap_evt_conn_param_update_request_t conn_param_update_request; /**< Connection Parameter Update Parameters. */ + ble_gap_evt_scan_req_report_t scan_req_report; /**< Scan Request Report Parameters. */ + ble_gap_evt_phy_update_request_t phy_update_request; /**< PHY Update Request Event Parameters. */ + ble_gap_evt_phy_update_t phy_update; /**< PHY Update Parameters. */ + ble_gap_evt_data_length_update_request_t data_length_update_request; /**< Data Length Update Request Event Parameters. */ + ble_gap_evt_data_length_update_t data_length_update; /**< Data Length Update Event Parameters. */ + ble_gap_evt_qos_channel_survey_report_t qos_channel_survey_report; /**< Quality of Service (QoS) Channel Survey Report Parameters. */ + } params; /**< Event Parameters. */ +} ble_gap_evt_t; + + +/** + * @brief BLE GAP connection configuration parameters, set with @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_CONN_COUNT The connection count for the connection configurations is zero. + * @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true: + * - The sum of conn_count for all connection configurations combined exceeds UINT8_MAX. + * - The event length is smaller than @ref BLE_GAP_EVENT_LENGTH_MIN. + */ +typedef struct +{ + uint8_t conn_count; /**< The number of concurrent connections the application can create with this configuration. + The default and minimum value is @ref BLE_GAP_CONN_COUNT_DEFAULT. */ + uint16_t event_length; /**< The time set aside for this connection on every connection interval in 1.25 ms units. + The default value is @ref BLE_GAP_EVENT_LENGTH_DEFAULT, the minimum value is @ref BLE_GAP_EVENT_LENGTH_MIN. + The event length and the connection interval are the primary parameters + for setting the throughput of a connection. + See the SoftDevice Specification for details on throughput. */ +} ble_gap_conn_cfg_t; + + +/** + * @brief Configuration of maximum concurrent connections in the different connected roles, set with + * @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_CONN_COUNT The sum of periph_role_count and central_role_count is too + * large. The maximum supported sum of concurrent connections is + * @ref BLE_GAP_ROLE_COUNT_COMBINED_MAX. + * @retval ::NRF_ERROR_INVALID_PARAM central_sec_count is larger than central_role_count. + * @retval ::NRF_ERROR_RESOURCES The adv_set_count is too large. The maximum + * supported advertising handles is + * @ref BLE_GAP_ADV_SET_COUNT_MAX. + */ +typedef struct +{ + uint8_t adv_set_count; /**< Maximum number of advertising sets. Default value is @ref BLE_GAP_ADV_SET_COUNT_DEFAULT. */ + uint8_t periph_role_count; /**< Maximum number of connections concurrently acting as a peripheral. Default value is @ref BLE_GAP_ROLE_COUNT_PERIPH_DEFAULT. */ + uint8_t central_role_count; /**< Maximum number of connections concurrently acting as a central. Default value is @ref BLE_GAP_ROLE_COUNT_CENTRAL_DEFAULT. */ + uint8_t central_sec_count; /**< Number of SMP instances shared between all connections acting as a central. Default value is @ref BLE_GAP_ROLE_COUNT_CENTRAL_SEC_DEFAULT. */ + uint8_t qos_channel_survey_role_available:1; /**< If set, the Quality of Service (QoS) channel survey module is available to the + application using @ref sd_ble_gap_qos_channel_survey_start. */ +} ble_gap_cfg_role_count_t; + + +/** + * @brief Device name and its properties, set with @ref sd_ble_cfg_set. + * + * @note If the device name is not configured, the default device name will be + * @ref BLE_GAP_DEVNAME_DEFAULT, the maximum device name length will be + * @ref BLE_GAP_DEVNAME_DEFAULT_LEN, vloc will be set to @ref BLE_GATTS_VLOC_STACK and the device name + * will have no write access. + * + * @note If @ref max_len is more than @ref BLE_GAP_DEVNAME_DEFAULT_LEN and vloc is set to @ref BLE_GATTS_VLOC_STACK, + * the attribute table size must be increased to have room for the longer device name (see + * @ref sd_ble_cfg_set and @ref ble_gatts_cfg_attr_tab_size_t). + * + * @note If vloc is @ref BLE_GATTS_VLOC_STACK : + * - p_value must point to non-volatile memory (flash) or be NULL. + * - If p_value is NULL, the device name will initially be empty. + * + * @note If vloc is @ref BLE_GATTS_VLOC_USER : + * - p_value cannot be NULL. + * - If the device name is writable, p_value must point to volatile memory (RAM). + * + * @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true: + * - Invalid device name location (vloc). + * - Invalid device name security mode. + * @retval ::NRF_ERROR_INVALID_LENGTH One or more of the following is true: + * - The device name length is invalid (must be between 0 and @ref BLE_GAP_DEVNAME_MAX_LEN). + * - The device name length is too long for the given Attribute Table. + * @retval ::NRF_ERROR_NOT_SUPPORTED Device name security mode is not supported. + */ +typedef struct +{ + ble_gap_conn_sec_mode_t write_perm; /**< Write permissions. */ + uint8_t vloc:2; /**< Value location, see @ref BLE_GATTS_VLOCS.*/ + uint8_t *p_value; /**< Pointer to where the value (device name) is stored or will be stored. */ + uint16_t current_len; /**< Current length in bytes of the memory pointed to by p_value.*/ + uint16_t max_len; /**< Maximum length in bytes of the memory pointed to by p_value.*/ +} ble_gap_cfg_device_name_t; + + +/**@brief Configuration structure for GAP configurations. */ +typedef union +{ + ble_gap_cfg_role_count_t role_count_cfg; /**< Role count configuration, cfg_id is @ref BLE_GAP_CFG_ROLE_COUNT. */ + ble_gap_cfg_device_name_t device_name_cfg; /**< Device name configuration, cfg_id is @ref BLE_GAP_CFG_DEVICE_NAME. */ +} ble_gap_cfg_t; + + +/**@brief Channel Map option. + * + * @details Used with @ref sd_ble_opt_get to get the current channel map + * or @ref sd_ble_opt_set to set a new channel map. When setting the + * channel map, it applies to all current and future connections. When getting the + * current channel map, it applies to a single connection and the connection handle + * must be supplied. + * + * @note Setting the channel map may take some time, depending on connection parameters. + * The time taken may be different for each connection and the get operation will + * return the previous channel map until the new one has taken effect. + * + * @note After setting the channel map, by spec it can not be set again until at least 1 s has passed. + * See Bluetooth Specification Version 4.1 Volume 2, Part E, Section 7.3.46. + * + * @retval ::NRF_SUCCESS Get or set successful. + * @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true: + * - Less then two bits in @ref ch_map are set. + * - Bits for primary advertising channels (37-39) are set. + * @retval ::NRF_ERROR_BUSY Channel map was set again before enough time had passed. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied for get. + * + */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle (only applicable for get) */ + uint8_t ch_map[5]; /**< Channel Map (37-bit). */ +} ble_gap_opt_ch_map_t; + + +/**@brief Local connection latency option. + * + * @details Local connection latency is a feature which enables the slave to improve + * current consumption by ignoring the slave latency set by the peer. The + * local connection latency can only be set to a multiple of the slave latency, + * and cannot be longer than half of the supervision timeout. + * + * @details Used with @ref sd_ble_opt_set to set the local connection latency. The + * @ref sd_ble_opt_get is not supported for this option, but the actual + * local connection latency (unless set to NULL) is set as a return parameter + * when setting the option. + * + * @note The latency set will be truncated down to the closest slave latency event + * multiple, or the nearest multiple before half of the supervision timeout. + * + * @note The local connection latency is disabled by default, and needs to be enabled for new + * connections and whenever the connection is updated. + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_NOT_SUPPORTED Get is not supported. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter. + */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle */ + uint16_t requested_latency; /**< Requested local connection latency. */ + uint16_t * p_actual_latency; /**< Pointer to storage for the actual local connection latency (can be set to NULL to skip return value). */ +} ble_gap_opt_local_conn_latency_t; + +/**@brief Disable slave latency + * + * @details Used with @ref sd_ble_opt_set to temporarily disable slave latency of a peripheral connection + * (see @ref ble_gap_conn_params_t::slave_latency). And to re-enable it again. When disabled, the + * peripheral will ignore the slave_latency set by the central. + * + * @note Shall only be called on peripheral links. + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_NOT_SUPPORTED Get is not supported. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter. + */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle */ + uint8_t disable : 1; /**< Set to 1 to disable slave latency. Set to 0 enable it again.*/ +} ble_gap_opt_slave_latency_disable_t; + +/**@brief Passkey Option. + * + * @details Structure containing the passkey to be used during pairing. This can be used with @ref + * sd_ble_opt_set to make the SoftDevice use a preprogrammed passkey for authentication + * instead of generating a random one. + * + * @note Repeated pairing attempts using the same preprogrammed passkey makes pairing vulnerable to MITM attacks. + * + * @note @ref sd_ble_opt_get is not supported for this option. + * + */ +typedef struct +{ + uint8_t const * p_passkey; /**< Pointer to 6-digit ASCII string (digit 0..9 only, no NULL termination) passkey to be used during pairing. If this is NULL, the SoftDevice will generate a random passkey if required.*/ +} ble_gap_opt_passkey_t; + + +/**@brief Compatibility mode 1 option. + * + * @details This can be used with @ref sd_ble_opt_set to enable and disable + * compatibility mode 1. Compatibility mode 1 is disabled by default. + * + * @note Compatibility mode 1 enables interoperability with devices that do not support a value of + * 0 for the WinOffset parameter in the Link Layer CONNECT_IND packet. This applies to a + * limited set of legacy peripheral devices from another vendor. Enabling this compatibility + * mode will only have an effect if the local device will act as a central device and + * initiate a connection to a peripheral device. In that case it may lead to the connection + * creation taking up to one connection interval longer to complete for all connections. + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_INVALID_STATE When connection creation is ongoing while mode 1 is set. + */ +typedef struct +{ + uint8_t enable : 1; /**< Enable compatibility mode 1.*/ +} ble_gap_opt_compat_mode_1_t; + + +/**@brief Authenticated payload timeout option. + * + * @details This can be used with @ref sd_ble_opt_set to change the Authenticated payload timeout to a value other + * than the default of @ref BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MAX. + * + * @note The authenticated payload timeout event ::BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD will be generated + * if auth_payload_timeout time has elapsed without receiving a packet with a valid MIC on an encrypted + * link. + * + * @note The LE ping procedure will be initiated before the timer expires to give the peer a chance + * to reset the timer. In addition the stack will try to prioritize running of LE ping over other + * activities to increase chances of finishing LE ping before timer expires. To avoid side-effects + * on other activities, it is recommended to use high timeout values. + * Recommended timeout > 2*(connInterval * (6 + connSlaveLatency)). + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. auth_payload_timeout was outside of allowed range. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter. + */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle */ + uint16_t auth_payload_timeout; /**< Requested timeout in 10 ms unit, see @ref BLE_GAP_AUTH_PAYLOAD_TIMEOUT. */ +} ble_gap_opt_auth_payload_timeout_t; + +/**@brief Option structure for GAP options. */ +typedef union +{ + ble_gap_opt_ch_map_t ch_map; /**< Parameters for the Channel Map option. */ + ble_gap_opt_local_conn_latency_t local_conn_latency; /**< Parameters for the Local connection latency option */ + ble_gap_opt_passkey_t passkey; /**< Parameters for the Passkey option.*/ + ble_gap_opt_compat_mode_1_t compat_mode_1; /**< Parameters for the compatibility mode 1 option.*/ + ble_gap_opt_auth_payload_timeout_t auth_payload_timeout; /**< Parameters for the authenticated payload timeout option.*/ + ble_gap_opt_slave_latency_disable_t slave_latency_disable; /**< Parameters for the Disable slave latency option */ +} ble_gap_opt_t; +/**@} */ + + +/**@addtogroup BLE_GAP_FUNCTIONS Functions + * @{ */ + +/**@brief Set the local Bluetooth identity address. + * + * The local Bluetooth identity address is the address that identifies this device to other peers. + * The address type must be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC. + * + * @note The identity address cannot be changed while advertising, scanning or creating a connection. + * + * @note This address will be distributed to the peer during bonding. + * If the address changes, the address stored in the peer device will not be valid and the ability to + * reconnect using the old address will be lost. + * + * @note By default the SoftDevice will set an address of type @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC upon being + * enabled. The address is a random number populated during the IC manufacturing process and remains unchanged + * for the lifetime of each IC. + * + * @mscs + * @mmsc{@ref BLE_GAP_ADV_MSC} + * @endmscs + * + * @param[in] p_addr Pointer to address structure. + * + * @retval ::NRF_SUCCESS Address successfully set. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::NRF_ERROR_INVALID_STATE The identity address cannot be changed while advertising, + * scanning or creating a connection. + */ +SVCALL(SD_BLE_GAP_ADDR_SET, uint32_t, sd_ble_gap_addr_set(ble_gap_addr_t const *p_addr)); + + +/**@brief Get local Bluetooth identity address. + * + * @note This will always return the identity address irrespective of the privacy settings, + * i.e. the address type will always be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC. + * + * @param[out] p_addr Pointer to address structure to be filled in. + * + * @retval ::NRF_SUCCESS Address successfully retrieved. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or NULL pointer supplied. + */ +SVCALL(SD_BLE_GAP_ADDR_GET, uint32_t, sd_ble_gap_addr_get(ble_gap_addr_t *p_addr)); + + +/**@brief Set the active whitelist in the SoftDevice. + * + * @note Only one whitelist can be used at a time and the whitelist is shared between the BLE roles. + * The whitelist cannot be set if a BLE role is using the whitelist. + * + * @note If an address is resolved using the information in the device identity list, then the whitelist + * filter policy applies to the peer identity address and not the resolvable address sent on air. + * + * @mscs + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC} + * @endmscs + * + * @param[in] pp_wl_addrs Pointer to a whitelist of peer addresses, if NULL the whitelist will be cleared. + * @param[in] len Length of the whitelist, maximum @ref BLE_GAP_WHITELIST_ADDR_MAX_COUNT. + * + * @retval ::NRF_SUCCESS The whitelist is successfully set/cleared. + * @retval ::NRF_ERROR_INVALID_ADDR The whitelist (or one of its entries) provided is invalid. + * @retval ::BLE_ERROR_GAP_WHITELIST_IN_USE The whitelist is in use by a BLE role and cannot be set or cleared. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied. + * @retval ::NRF_ERROR_DATA_SIZE The given whitelist size is invalid (zero or too large); this can only return when + * pp_wl_addrs is not NULL. + */ +SVCALL(SD_BLE_GAP_WHITELIST_SET, uint32_t, sd_ble_gap_whitelist_set(ble_gap_addr_t const * const * pp_wl_addrs, uint8_t len)); + + +/**@brief Set device identity list. + * + * @note Only one device identity list can be used at a time and the list is shared between the BLE roles. + * The device identity list cannot be set if a BLE role is using the list. + * + * @param[in] pp_id_keys Pointer to an array of peer identity addresses and peer IRKs, if NULL the device identity list will be cleared. + * @param[in] pp_local_irks Pointer to an array of local IRKs. Each entry in the array maps to the entry in pp_id_keys at the same index. + * To fill in the list with the currently set device IRK for all peers, set to NULL. + * @param[in] len Length of the device identity list, maximum @ref BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT. + * + * @mscs + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS The device identity list successfully set/cleared. + * @retval ::NRF_ERROR_INVALID_ADDR The device identity list (or one of its entries) provided is invalid. + * This code may be returned if the local IRK list also has an invalid entry. + * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE The device identity list is in use and cannot be set or cleared. + * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE The device identity list contains multiple entries with the same identity address. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied. + * @retval ::NRF_ERROR_DATA_SIZE The given device identity list size invalid (zero or too large); this can + * only return when pp_id_keys is not NULL. + */ +SVCALL(SD_BLE_GAP_DEVICE_IDENTITIES_SET, uint32_t, sd_ble_gap_device_identities_set(ble_gap_id_key_t const * const * pp_id_keys, ble_gap_irk_t const * const * pp_local_irks, uint8_t len)); + + +/**@brief Set privacy settings. + * + * @note Privacy settings cannot be changed while advertising, scanning or creating a connection. + * + * @param[in] p_privacy_params Privacy settings. + * + * @mscs + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Set successfully. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied. + * @retval ::NRF_ERROR_INVALID_ADDR The pointer to privacy settings is NULL or invalid. + * Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer. + * @retval ::NRF_ERROR_INVALID_PARAM Out of range parameters are provided. + * @retval ::NRF_ERROR_INVALID_STATE Privacy settings cannot be changed while advertising, scanning + * or creating a connection. + */ +SVCALL(SD_BLE_GAP_PRIVACY_SET, uint32_t, sd_ble_gap_privacy_set(ble_gap_privacy_params_t const *p_privacy_params)); + + +/**@brief Get privacy settings. + * + * @note ::ble_gap_privacy_params_t::p_device_irk must be initialized to NULL or a valid address before this function is called. + * If it is initialized to a valid address, the address pointed to will contain the current device IRK on return. + * + * @param[in,out] p_privacy_params Privacy settings. + * + * @retval ::NRF_SUCCESS Privacy settings read. + * @retval ::NRF_ERROR_INVALID_ADDR The pointer given for returning the privacy settings may be NULL or invalid. + * Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer. + */ +SVCALL(SD_BLE_GAP_PRIVACY_GET, uint32_t, sd_ble_gap_privacy_get(ble_gap_privacy_params_t *p_privacy_params)); + + +/**@brief Configure an advertising set. Set, clear or update advertising and scan response data. + * + * @note The format of the advertising data will be checked by this call to ensure interoperability. + * Limitations imposed by this API call to the data provided include having a flags data type in the scan response data and + * duplicating the local name in the advertising data and scan response data. + * + * @note In order to update advertising data while advertising, new advertising buffers must be provided. + * + * @mscs + * @mmsc{@ref BLE_GAP_ADV_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @param[in,out] p_adv_handle Provide a pointer to a handle containing @ref BLE_GAP_ADV_SET_HANDLE_NOT_SET to configure + * a new advertising set. On success, a new handle is then returned through the pointer. + * Provide a pointer to an existing advertising handle to configure an existing advertising set. + * @param[in] p_adv_data Advertising data. If set to NULL, no advertising data will be used. See @ref ble_gap_adv_data_t. + * @param[in] p_adv_params Advertising parameters. When this function is used to update advertising data while advertising, + * this parameter must be NULL. See @ref ble_gap_adv_params_t. + * + * @retval ::NRF_SUCCESS Advertising set successfully configured. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied: + * - Invalid advertising data configuration specified. See @ref ble_gap_adv_data_t. + * - Invalid configuration of p_adv_params. See @ref ble_gap_adv_params_t. + * - Use of whitelist requested but whitelist has not been set, + * see @ref sd_ble_gap_whitelist_set. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR ble_gap_adv_params_t::p_peer_addr is invalid. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * - It is invalid to provide non-NULL advertising set parameters while advertising. + * - It is invalid to provide the same data buffers while advertising. To update + * advertising data, provide new advertising buffers. + * @retval ::BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST Discoverable mode and whitelist incompatible. + * @retval ::BLE_ERROR_INVALID_ADV_HANDLE The provided advertising handle was not found. Use @ref BLE_GAP_ADV_SET_HANDLE_NOT_SET to + * configure a new advertising handle. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_FLAGS Invalid combination of advertising flags supplied. + * @retval ::NRF_ERROR_INVALID_DATA Invalid data type(s) supplied. Check the advertising data format specification + * given in Bluetooth Specification Version 5.0, Volume 3, Part C, Chapter 11. + * @retval ::NRF_ERROR_INVALID_LENGTH Invalid data length(s) supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported data length or advertising parameter configuration. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to configure a new advertising handle. Update an + * existing advertising handle instead. + * @retval ::BLE_ERROR_GAP_UUID_LIST_MISMATCH Invalid UUID list supplied. + */ +SVCALL(SD_BLE_GAP_ADV_SET_CONFIGURE, uint32_t, sd_ble_gap_adv_set_configure(uint8_t *p_adv_handle, ble_gap_adv_data_t const *p_adv_data, ble_gap_adv_params_t const *p_adv_params)); + + +/**@brief Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure). + * + * @note Only one advertiser may be active at any time. + * + * @events + * @event{@ref BLE_GAP_EVT_CONNECTED, Generated after connection has been established through connectable advertising.} + * @event{@ref BLE_GAP_EVT_ADV_SET_TERMINATED, Advertising set has terminated.} + * @event{@ref BLE_GAP_EVT_SCAN_REQ_REPORT, A scan request was received.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_ADV_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC} + * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @param[in] adv_handle Advertising handle to advertise on, received from @ref sd_ble_gap_adv_set_configure. + * @param[in] conn_cfg_tag Tag identifying a configuration set by @ref sd_ble_cfg_set or + * @ref BLE_CONN_CFG_TAG_DEFAULT to use the default connection configuration. For non-connectable + * advertising, this is ignored. + * + * @retval ::NRF_SUCCESS The BLE stack has started advertising. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. adv_handle is not configured or already advertising. + * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached; connectable advertiser cannot be started. + * @retval ::BLE_ERROR_INVALID_ADV_HANDLE Advertising handle not found. Configure a new adveriting handle with @ref sd_ble_gap_adv_set_configure. + * @retval ::NRF_ERROR_NOT_FOUND conn_cfg_tag not found. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied: + * - Invalid configuration of p_adv_params. See @ref ble_gap_adv_params_t. + * - Use of whitelist requested but whitelist has not been set, see @ref sd_ble_gap_whitelist_set. + * @retval ::NRF_ERROR_RESOURCES Either: + * - adv_handle is configured with connectable advertising, but the event_length parameter + * associated with conn_cfg_tag is too small to be able to establish a connection on + * the selected advertising phys. Use @ref sd_ble_cfg_set to increase the event length. + * - Not enough BLE role slots available. + Stop one or more currently active roles (Central, Peripheral, Broadcaster or Observer) and try again. + * - p_adv_params is configured with connectable advertising, but the event_length parameter + * associated with conn_cfg_tag is too small to be able to establish a connection on + * the selected advertising phys. Use @ref sd_ble_cfg_set to increase the event length. + */ +SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start(uint8_t adv_handle, uint8_t conn_cfg_tag)); + + +/**@brief Stop advertising (GAP Discoverable, Connectable modes, Broadcast Procedure). + * + * @mscs + * @mmsc{@ref BLE_GAP_ADV_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @param[in] adv_handle The advertising handle that should stop advertising. + * + * @retval ::NRF_SUCCESS The BLE stack has stopped advertising. + * @retval ::BLE_ERROR_INVALID_ADV_HANDLE Invalid advertising handle. + * @retval ::NRF_ERROR_INVALID_STATE The advertising handle is not advertising. + */ +SVCALL(SD_BLE_GAP_ADV_STOP, uint32_t, sd_ble_gap_adv_stop(uint8_t adv_handle)); + + + +/**@brief Update connection parameters. + * + * @details In the central role this will initiate a Link Layer connection parameter update procedure, + * otherwise in the peripheral role, this will send the corresponding L2CAP request and wait for + * the central to perform the procedure. In both cases, and regardless of success or failure, the application + * will be informed of the result with a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE event. + * + * @details This function can be used as a central both to reply to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST or to start the procedure unrequested. + * + * @events + * @event{@ref BLE_GAP_EVT_CONN_PARAM_UPDATE, Result of the connection parameter update procedure.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CPU_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC} + * @mmsc{@ref BLE_GAP_MULTILINK_CPU_MSC} + * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_CPU_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_conn_params Pointer to desired connection parameters. If NULL is provided on a peripheral role, + * the parameters in the PPCP characteristic of the GAP service will be used instead. + * If NULL is provided on a central role and in response to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST, the peripheral request will be rejected + * + * @retval ::NRF_SUCCESS The Connection Update procedure has been started successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_BUSY Procedure already in progress, wait for pending procedures to complete and retry. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + */ +SVCALL(SD_BLE_GAP_CONN_PARAM_UPDATE, uint32_t, sd_ble_gap_conn_param_update(uint16_t conn_handle, ble_gap_conn_params_t const *p_conn_params)); + + +/**@brief Disconnect (GAP Link Termination). + * + * @details This call initiates the disconnection procedure, and its completion will be communicated to the application + * with a @ref BLE_GAP_EVT_DISCONNECTED event. + * + * @events + * @event{@ref BLE_GAP_EVT_DISCONNECTED, Generated when disconnection procedure is complete.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CONN_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] hci_status_code HCI status code, see @ref BLE_HCI_STATUS_CODES (accepted values are @ref BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION and @ref BLE_HCI_CONN_INTERVAL_UNACCEPTABLE). + * + * @retval ::NRF_SUCCESS The disconnection procedure has been started successfully. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (disconnection is already in progress). + */ +SVCALL(SD_BLE_GAP_DISCONNECT, uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code)); + + +/**@brief Set the radio's transmit power. + * + * @param[in] role The role to set the transmit power for, see @ref BLE_GAP_TX_POWER_ROLES for + * possible roles. + * @param[in] handle The handle parameter is interpreted depending on role: + * - If role is @ref BLE_GAP_TX_POWER_ROLE_CONN, this value is the specific connection handle. + * - If role is @ref BLE_GAP_TX_POWER_ROLE_ADV, the advertising set identified with the advertising handle, + * will use the specified transmit power, and include it in the advertising packet headers if + * @ref ble_gap_adv_properties_t::include_tx_power set. + * - For all other roles handle is ignored. + * @param[in] tx_power Radio transmit power in dBm (see note for accepted values). + * + * @note Supported tx_power values: -40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +2dBm, +3dBm, +4dBm, +5dBm, +6dBm, +7dBm and +8dBm. + * @note The initiator will have the same transmit power as the scanner. + * @note When a connection is created it will inherit the transmit power from the initiator or + * advertiser leading to the connection. + * + * @retval ::NRF_SUCCESS Successfully changed the transmit power. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::BLE_ERROR_INVALID_ADV_HANDLE Advertising handle not found. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(uint8_t role, uint16_t handle, int8_t tx_power)); + + +/**@brief Set GAP Appearance value. + * + * @param[in] appearance Appearance (16-bit), see @ref BLE_APPEARANCES. + * + * @retval ::NRF_SUCCESS Appearance value set successfully. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + */ +SVCALL(SD_BLE_GAP_APPEARANCE_SET, uint32_t, sd_ble_gap_appearance_set(uint16_t appearance)); + + +/**@brief Get GAP Appearance value. + * + * @param[out] p_appearance Pointer to appearance (16-bit) to be filled in, see @ref BLE_APPEARANCES. + * + * @retval ::NRF_SUCCESS Appearance value retrieved successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + */ +SVCALL(SD_BLE_GAP_APPEARANCE_GET, uint32_t, sd_ble_gap_appearance_get(uint16_t *p_appearance)); + + +/**@brief Set GAP Peripheral Preferred Connection Parameters. + * + * @param[in] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure with the desired parameters. + * + * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters set successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + */ +SVCALL(SD_BLE_GAP_PPCP_SET, uint32_t, sd_ble_gap_ppcp_set(ble_gap_conn_params_t const *p_conn_params)); + + +/**@brief Get GAP Peripheral Preferred Connection Parameters. + * + * @param[out] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure where the parameters will be stored. + * + * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters retrieved successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + */ +SVCALL(SD_BLE_GAP_PPCP_GET, uint32_t, sd_ble_gap_ppcp_get(ble_gap_conn_params_t *p_conn_params)); + + +/**@brief Set GAP device name. + * + * @note If the device name is located in application flash memory (see @ref ble_gap_cfg_device_name_t), + * it cannot be changed. Then @ref NRF_ERROR_FORBIDDEN will be returned. + * + * @param[in] p_write_perm Write permissions for the Device Name characteristic, see @ref ble_gap_conn_sec_mode_t. + * @param[in] p_dev_name Pointer to a UTF-8 encoded, non NULL-terminated string. + * @param[in] len Length of the UTF-8, non NULL-terminated string pointed to by p_dev_name in octets (must be smaller or equal than @ref BLE_GAP_DEVNAME_MAX_LEN). + * + * @retval ::NRF_SUCCESS GAP device name and permissions set successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied. + * @retval ::NRF_ERROR_FORBIDDEN Device name is not writable. + */ +SVCALL(SD_BLE_GAP_DEVICE_NAME_SET, uint32_t, sd_ble_gap_device_name_set(ble_gap_conn_sec_mode_t const *p_write_perm, uint8_t const *p_dev_name, uint16_t len)); + + +/**@brief Get GAP device name. + * + * @note If the device name is longer than the size of the supplied buffer, + * p_len will return the complete device name length, + * and not the number of bytes actually returned in p_dev_name. + * The application may use this information to allocate a suitable buffer size. + * + * @param[out] p_dev_name Pointer to an empty buffer where the UTF-8 non NULL-terminated string will be placed. Set to NULL to obtain the complete device name length. + * @param[in,out] p_len Length of the buffer pointed by p_dev_name, complete device name length on output. + * + * @retval ::NRF_SUCCESS GAP device name retrieved successfully. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied. + */ +SVCALL(SD_BLE_GAP_DEVICE_NAME_GET, uint32_t, sd_ble_gap_device_name_get(uint8_t *p_dev_name, uint16_t *p_len)); + + +/**@brief Initiate the GAP Authentication procedure. + * + * @details In the central role, this function will send an SMP Pairing Request (or an SMP Pairing Failed if rejected), + * otherwise in the peripheral role, an SMP Security Request will be sent. + * + * @events + * @event{Depending on the security parameters set and the packet exchanges with the peer\, the following events may be generated:} + * @event{@ref BLE_GAP_EVT_SEC_PARAMS_REQUEST} + * @event{@ref BLE_GAP_EVT_SEC_INFO_REQUEST} + * @event{@ref BLE_GAP_EVT_PASSKEY_DISPLAY} + * @event{@ref BLE_GAP_EVT_KEY_PRESSED} + * @event{@ref BLE_GAP_EVT_AUTH_KEY_REQUEST} + * @event{@ref BLE_GAP_EVT_LESC_DHKEY_REQUEST} + * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE} + * @event{@ref BLE_GAP_EVT_AUTH_STATUS} + * @event{@ref BLE_GAP_EVT_TIMEOUT} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_SEC_REQ_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_sec_params Pointer to the @ref ble_gap_sec_params_t structure with the security parameters to be used during the pairing or bonding procedure. + * In the peripheral role, only the bond, mitm, lesc and keypress fields of this structure are used. + * In the central role, this pointer may be NULL to reject a Security Request. + * + * @retval ::NRF_SUCCESS Successfully initiated authentication procedure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_NO_MEM The maximum number of authentication procedures that can run in parallel for the given role is reached. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported. + * @retval ::NRF_ERROR_TIMEOUT A SMP timeout has occurred, and further SMP operations on this link is prohibited. + */ +SVCALL(SD_BLE_GAP_AUTHENTICATE, uint32_t, sd_ble_gap_authenticate(uint16_t conn_handle, ble_gap_sec_params_t const *p_sec_params)); + + +/**@brief Reply with GAP security parameters. + * + * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE. + * @note If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters. + * + * @events + * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_JW_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_PERIPH_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_CONFIRM_FAIL_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_KS_TOO_SMALL_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_APP_ERROR_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_REMOTE_PAIRING_FAIL_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_TIMEOUT_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] sec_status Security status, see @ref BLE_GAP_SEC_STATUS. + * @param[in] p_sec_params Pointer to a @ref ble_gap_sec_params_t security parameters structure. In the central role this must be set to NULL, as the parameters have + * already been provided during a previous call to @ref sd_ble_gap_authenticate. + * @param[in,out] p_sec_keyset Pointer to a @ref ble_gap_sec_keyset_t security keyset structure. Any keys generated and/or distributed as a result of the ongoing security procedure + * will be stored into the memory referenced by the pointers inside this structure. The keys will be stored and available to the application + * upon reception of a @ref BLE_GAP_EVT_AUTH_STATUS event. + * Note that the SoftDevice expects the application to provide memory for storing the + * peer's keys. So it must be ensured that the relevant pointers inside this structure are not NULL. The pointers to the local key + * can, however, be NULL, in which case, the local key data will not be available to the application upon reception of the + * @ref BLE_GAP_EVT_AUTH_STATUS event. + * + * @retval ::NRF_SUCCESS Successfully accepted security parameter from the application. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported. + */ +SVCALL(SD_BLE_GAP_SEC_PARAMS_REPLY, uint32_t, sd_ble_gap_sec_params_reply(uint16_t conn_handle, uint8_t sec_status, ble_gap_sec_params_t const *p_sec_params, ble_gap_sec_keyset_t const *p_sec_keyset)); + + +/**@brief Reply with an authentication key. + * + * @details This function is only used to reply to a @ref BLE_GAP_EVT_AUTH_KEY_REQUEST or a @ref BLE_GAP_EVT_PASSKEY_DISPLAY, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE. + * @note If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters. + * + * @events + * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] key_type See @ref BLE_GAP_AUTH_KEY_TYPES. + * @param[in] p_key If key type is @ref BLE_GAP_AUTH_KEY_TYPE_NONE, then NULL. + * If key type is @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY, then a 6-byte ASCII string (digit 0..9 only, no NULL termination) + * or NULL when confirming LE Secure Connections Numeric Comparison. + * If key type is @ref BLE_GAP_AUTH_KEY_TYPE_OOB, then a 16-byte OOB key value in little-endian format. + * + * @retval ::NRF_SUCCESS Authentication key successfully set. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_AUTH_KEY_REPLY, uint32_t, sd_ble_gap_auth_key_reply(uint16_t conn_handle, uint8_t key_type, uint8_t const *p_key)); + + +/**@brief Reply with an LE Secure connections DHKey. + * + * @details This function is only used to reply to a @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE. + * @note If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters. + * + * @events + * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_dhkey LE Secure Connections DHKey. + * + * @retval ::NRF_SUCCESS DHKey successfully set. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_LESC_DHKEY_REPLY, uint32_t, sd_ble_gap_lesc_dhkey_reply(uint16_t conn_handle, ble_gap_lesc_dhkey_t const *p_dhkey)); + + +/**@brief Notify the peer of a local keypress. + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] kp_not See @ref BLE_GAP_KP_NOT_TYPES. + * + * @retval ::NRF_SUCCESS Keypress notification successfully queued for transmission. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Either not entering a passkey or keypresses have not been enabled by both peers. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_BUSY The BLE stack is busy. Retry at later time. + */ +SVCALL(SD_BLE_GAP_KEYPRESS_NOTIFY, uint32_t, sd_ble_gap_keypress_notify(uint16_t conn_handle, uint8_t kp_not)); + + +/**@brief Generate a set of OOB data to send to a peer out of band. + * + * @note The @ref ble_gap_addr_t included in the OOB data returned will be the currently active one (or, if a connection has already been established, + * the one used during connection setup). The application may manually overwrite it with an updated value. + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. Can be @ref BLE_CONN_HANDLE_INVALID if a BLE connection has not been established yet. + * @param[in] p_pk_own LE Secure Connections local P-256 Public Key. + * @param[out] p_oobd_own The OOB data to be sent out of band to a peer. + * + * @retval ::NRF_SUCCESS OOB data successfully generated. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_LESC_OOB_DATA_GET, uint32_t, sd_ble_gap_lesc_oob_data_get(uint16_t conn_handle, ble_gap_lesc_p256_pk_t const *p_pk_own, ble_gap_lesc_oob_data_t *p_oobd_own)); + +/**@brief Provide the OOB data sent/received out of band. + * + * @note An authentication procedure with OOB selected as an algorithm must be in progress when calling this function. + * @note A @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST event with the oobd_req set to 1 must have been received prior to calling this function. + * + * @events + * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_oobd_own The OOB data sent out of band to a peer or NULL if the peer has not received OOB data. + * Must correspond to @ref ble_gap_sec_params_t::oob flag in @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST. + * @param[in] p_oobd_peer The OOB data received out of band from a peer or NULL if none received. + * Must correspond to @ref ble_gap_sec_params_t::oob flag in @ref sd_ble_gap_authenticate in the central role + * or @ref sd_ble_gap_sec_params_reply in the peripheral role. + * + * @retval ::NRF_SUCCESS OOB data accepted. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_LESC_OOB_DATA_SET, uint32_t, sd_ble_gap_lesc_oob_data_set(uint16_t conn_handle, ble_gap_lesc_oob_data_t const *p_oobd_own, ble_gap_lesc_oob_data_t const *p_oobd_peer)); + + +/**@brief Initiate GAP Encryption procedure. + * + * @details In the central role, this function will initiate the encryption procedure using the encryption information provided. + * + * @events + * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE, The connection security has been updated.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_ENC_MSC} + * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_master_id Pointer to a @ref ble_gap_master_id_t master identification structure. + * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. + * + * @retval ::NRF_SUCCESS Successfully initiated authentication procedure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::BLE_ERROR_INVALID_ROLE Operation is not supported in the Peripheral role. + * @retval ::NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, wait for pending procedures to complete and retry. + */ +SVCALL(SD_BLE_GAP_ENCRYPT, uint32_t, sd_ble_gap_encrypt(uint16_t conn_handle, ble_gap_master_id_t const *p_master_id, ble_gap_enc_info_t const *p_enc_info)); + + +/**@brief Reply with GAP security information. + * + * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_INFO_REQUEST, calling it at other times will result in @ref NRF_ERROR_INVALID_STATE. + * @note If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters. + * @note Data signing is not yet supported, and p_sign_info must therefore be NULL. + * + * @mscs + * @mmsc{@ref BLE_GAP_PERIPH_ENC_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. May be NULL to signal none is available. + * @param[in] p_id_info Pointer to a @ref ble_gap_irk_t identity information structure. May be NULL to signal none is available. + * @param[in] p_sign_info Pointer to a @ref ble_gap_sign_info_t signing information structure. May be NULL to signal none is available. + * + * @retval ::NRF_SUCCESS Successfully accepted security information. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const *p_enc_info, ble_gap_irk_t const *p_id_info, ble_gap_sign_info_t const *p_sign_info)); + + +/**@brief Get the current connection security. + * + * @param[in] conn_handle Connection handle. + * @param[out] p_conn_sec Pointer to a @ref ble_gap_conn_sec_t structure to be filled in. + * + * @retval ::NRF_SUCCESS Current connection security successfully retrieved. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_CONN_SEC_GET, uint32_t, sd_ble_gap_conn_sec_get(uint16_t conn_handle, ble_gap_conn_sec_t *p_conn_sec)); + + +/**@brief Start reporting the received signal strength to the application. + * + * A new event is reported whenever the RSSI value changes, until @ref sd_ble_gap_rssi_stop is called. + * + * @events + * @event{@ref BLE_GAP_EVT_RSSI_CHANGED, New RSSI data available. How often the event is generated is + * dependent on the settings of the threshold_dbm + * and skip_count input parameters.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC} + * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] threshold_dbm Minimum change in dBm before triggering the @ref BLE_GAP_EVT_RSSI_CHANGED event. Events are disabled if threshold_dbm equals @ref BLE_GAP_RSSI_THRESHOLD_INVALID. + * @param[in] skip_count Number of RSSI samples with a change of threshold_dbm or more before sending a new @ref BLE_GAP_EVT_RSSI_CHANGED event. + * + * @retval ::NRF_SUCCESS Successfully activated RSSI reporting. + * @retval ::NRF_ERROR_INVALID_STATE RSSI reporting is already ongoing. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_RSSI_START, uint32_t, sd_ble_gap_rssi_start(uint16_t conn_handle, uint8_t threshold_dbm, uint8_t skip_count)); + + +/**@brief Stop reporting the received signal strength. + * + * @note An RSSI change detected before the call but not yet received by the application + * may be reported after @ref sd_ble_gap_rssi_stop has been called. + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC} + * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * + * @retval ::NRF_SUCCESS Successfully deactivated RSSI reporting. + * @retval ::NRF_ERROR_INVALID_STATE RSSI reporting is not ongoing. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + */ +SVCALL(SD_BLE_GAP_RSSI_STOP, uint32_t, sd_ble_gap_rssi_stop(uint16_t conn_handle)); + + +/**@brief Get the received signal strength for the last connection event. + * + * @ref sd_ble_gap_rssi_start must be called to start reporting RSSI before using this function. @ref NRF_ERROR_NOT_FOUND + * will be returned until RSSI was sampled for the first time after calling @ref sd_ble_gap_rssi_start. + * @note ERRATA-153 requires the rssi sample to be compensated based on a temperature measurement. + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[out] p_rssi Pointer to the location where the RSSI measurement shall be stored. + * @param[out] p_ch_index Pointer to the location where Channel Index for the RSSI measurement shall be stored. + * + * @retval ::NRF_SUCCESS Successfully read the RSSI. + * @retval ::NRF_ERROR_NOT_FOUND No sample is available. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_INVALID_STATE RSSI reporting is not ongoing. + */ +SVCALL(SD_BLE_GAP_RSSI_GET, uint32_t, sd_ble_gap_rssi_get(uint16_t conn_handle, int8_t *p_rssi, uint8_t *p_ch_index)); + + +/**@brief Start or continue scanning (GAP Discovery procedure, Observer Procedure). + * + * @note A call to this function will require the application to keep the memory pointed by + * p_adv_report_buffer alive until the buffer is released. The buffer is released when the scanner is stopped + * or when this function is called with another buffer. + * + * @note The scanner will automatically stop in the following cases: + * - @ref sd_ble_gap_scan_stop is called. + * - @ref sd_ble_gap_connect is called. + * - A @ref BLE_GAP_EVT_TIMEOUT with source set to @ref BLE_GAP_TIMEOUT_SRC_SCAN is received. + * - When a @ref BLE_GAP_EVT_ADV_REPORT event is received and @ref ble_gap_adv_report_type_t::status is not set to + * @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA. In this case scanning is only paused to let the application + * access received data. The application must call this function to continue scanning, or call @ref sd_ble_gap_scan_stop + * to stop scanning. + * + * @note If a @ref BLE_GAP_EVT_ADV_REPORT event is received with @ref ble_gap_adv_report_type_t::status set to + * @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, the scanner will continue scanning, and the application will + * receive more reports from this advertising event. The following reports will include the old and new received data. + * The application can stop the scanner from receiving more packets from this advertising event by calling this function. + * This might be useful when receiving data from extended advertising events where @ref ble_gap_evt_adv_report_t::aux_pointer + * is large. + * + * @events + * @event{@ref BLE_GAP_EVT_ADV_REPORT, An advertising or scan response packet has been received.} + * @event{@ref BLE_GAP_EVT_TIMEOUT, Scanner has timed out.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_SCAN_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @param[in] p_scan_params Pointer to scan parameters structure. When this function is used to continue + * scanning, this parameter must be NULL. + * @param[in] p_adv_report_buffer Pointer to buffer used to store incoming advertising data. + * The memory pointed to should be kept alive until the scanning is stopped. + * See @ref BLE_GAP_SCAN_BUFFER_SIZE for minimum and maximum buffer size. + * If the scanner receives advertising data larger than can be stored in the buffer, + * a @ref BLE_GAP_EVT_ADV_REPORT will be raised with @ref ble_gap_adv_report_type_t::status + * set to @ref BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_TRUNCATED. + * + * @retval ::NRF_SUCCESS Successfully initiated scanning procedure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Either: + * - Scanning is already ongoing and p_scan_params was not NULL + * - Scanning is not running and p_scan_params was NULL. + * - The scanner has timed out when this function is called to continue scanning. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. See @ref ble_gap_scan_params_t. + * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported parameters supplied. See @ref ble_gap_scan_params_t. + * @retval ::NRF_ERROR_INVALID_LENGTH The provided buffer length is invalid. See @ref BLE_GAP_SCAN_BUFFER_MIN. + * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available. + * Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again + */ +SVCALL(SD_BLE_GAP_SCAN_START, uint32_t, sd_ble_gap_scan_start(ble_gap_scan_params_t const *p_scan_params, ble_data_t const * p_adv_report_buffer)); + + +/**@brief Stop scanning (GAP Discovery procedure, Observer Procedure). + * + * @note The buffer provided in @ref sd_ble_gap_scan_start is released. + * + * @mscs + * @mmsc{@ref BLE_GAP_SCAN_MSC} + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Successfully stopped scanning procedure. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Not in the scanning state. + */ +SVCALL(SD_BLE_GAP_SCAN_STOP, uint32_t, sd_ble_gap_scan_stop(void)); + + +/**@brief Create a connection (GAP Link Establishment). + * + * @note If a scanning procedure is currently in progress it will be automatically stopped when calling this function. + * The scanning procedure will be stopped even if the function returns an error. + * + * @mscs + * @mmsc{@ref BLE_GAP_WL_SHARE_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC} + * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC} + * @endmscs + * + * @param[in] p_peer_addr Pointer to peer identity address. If @ref ble_gap_scan_params_t::filter_policy is set to use + * whitelist, then p_peer_addr is ignored. + * @param[in] p_scan_params Pointer to scan parameters structure. + * @param[in] p_conn_params Pointer to desired connection parameters. + * @param[in] conn_cfg_tag Tag identifying a configuration set by @ref sd_ble_cfg_set or + * @ref BLE_CONN_CFG_TAG_DEFAULT to use the default connection configuration. + * + * @retval ::NRF_SUCCESS Successfully initiated connection procedure. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid parameter(s) pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * - Invalid parameter(s) in p_scan_params or p_conn_params. + * - Use of whitelist requested but whitelist has not been set, see @ref sd_ble_gap_whitelist_set. + * - Peer address was not present in the device identity list, see @ref sd_ble_gap_device_identities_set. + * @retval ::NRF_ERROR_NOT_FOUND conn_cfg_tag not found. + * @retval ::NRF_ERROR_INVALID_STATE The SoftDevice is in an invalid state to perform this operation. This may be due to an + * existing locally initiated connect procedure, which must complete before initiating again. + * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Peer address. + * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached. + * @retval ::NRF_ERROR_RESOURCES Either: + * - Not enough BLE role slots available. + * Stop one or more currently active roles (Central, Peripheral or Observer) and try again. + * - The event_length parameter associated with conn_cfg_tag is too small to be able to + * establish a connection on the selected @ref ble_gap_scan_params_t::scan_phys. + * Use @ref sd_ble_cfg_set to increase the event length. + */ +SVCALL(SD_BLE_GAP_CONNECT, uint32_t, sd_ble_gap_connect(ble_gap_addr_t const *p_peer_addr, ble_gap_scan_params_t const *p_scan_params, ble_gap_conn_params_t const *p_conn_params, uint8_t conn_cfg_tag)); + + +/**@brief Cancel a connection establishment. + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Successfully canceled an ongoing connection procedure. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + */ +SVCALL(SD_BLE_GAP_CONNECT_CANCEL, uint32_t, sd_ble_gap_connect_cancel(void)); + + +/**@brief Initiate or respond to a PHY Update Procedure + * + * @details This function is used to initiate or respond to a PHY Update Procedure. It will always + * generate a @ref BLE_GAP_EVT_PHY_UPDATE event if successfully executed. + * If this function is used to initiate a PHY Update procedure and the only option + * provided in @ref ble_gap_phys_t::tx_phys and @ref ble_gap_phys_t::rx_phys is the + * currently active PHYs in the respective directions, the SoftDevice will generate a + * @ref BLE_GAP_EVT_PHY_UPDATE with the current PHYs set and will not initiate the + * procedure in the Link Layer. + * + * If @ref ble_gap_phys_t::tx_phys or @ref ble_gap_phys_t::rx_phys is @ref BLE_GAP_PHY_AUTO, + * then the stack will select PHYs based on the peer's PHY preferences and the local link + * configuration. The PHY Update procedure will for this case result in a PHY combination + * that respects the time constraints configured with @ref sd_ble_cfg_set and the current + * link layer data length. + * + * When acting as a central, the SoftDevice will select the fastest common PHY in each direction. + * + * If the peer does not support the PHY Update Procedure, then the resulting + * @ref BLE_GAP_EVT_PHY_UPDATE event will have a status set to + * @ref BLE_HCI_UNSUPPORTED_REMOTE_FEATURE. + * + * If the PHY procedure was rejected by the peer due to a procedure collision, the status + * will be @ref BLE_HCI_STATUS_CODE_LMP_ERROR_TRANSACTION_COLLISION or + * @ref BLE_HCI_DIFFERENT_TRANSACTION_COLLISION. + * If the peer responds to the PHY Update procedure with invalid parameters, the status + * will be @ref BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS. + * If the PHY procedure was rejected by the peer for a different reason, the status will + * contain the reason as specified by the peer. + * + * @note @ref BLE_GAP_PHY_CODED is only supported as an experimental feature in this SoftDevice. + * When this function is used to reply to a PHY Update, depending on the peers preferences, + * @ref BLE_GAP_PHY_AUTO might result in the PHY to be changed to @ref BLE_GAP_PHY_CODED. + * + * @events + * @event{@ref BLE_GAP_EVT_PHY_UPDATE, Result of the PHY Update Procedure.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GAP_CENTRAL_PHY_UPDATE} + * @mmsc{@ref BLE_GAP_PERIPHERAL_PHY_UPDATE} + * @endmscs + * + * @param[in] conn_handle Connection handle to indicate the connection for which the PHY Update is requested. + * @param[in] p_gap_phys Pointer to PHY structure. + * + * @retval ::NRF_SUCCESS Successfully requested a PHY Update. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_RESOURCES The connection event length configured for this link is not sufficient for the combination of + * @ref ble_gap_phys_t::tx_phys, @ref ble_gap_phys_t::rx_phys, and @ref ble_gap_data_length_params_t. + * The connection event length is configured with @ref BLE_CONN_CFG_GAP using @ref sd_ble_cfg_set. + * @retval ::NRF_ERROR_BUSY Procedure is already in progress or not allowed at this time. Process pending events and wait for the pending procedure to complete and retry. + * + */ +SVCALL(SD_BLE_GAP_PHY_UPDATE, uint32_t, sd_ble_gap_phy_update(uint16_t conn_handle, ble_gap_phys_t const *p_gap_phys)); + + +/**@brief Initiate or respond to a Data Length Update Procedure. + * + * @note If the application uses @ref BLE_GAP_DATA_LENGTH_AUTO for one or more members of + * p_dl_params, the SoftDevice will choose the highest value supported in current + * configuration and connection parameters. + * + * @param[in] conn_handle Connection handle. + * @param[in] p_dl_params Pointer to local parameters to be used in Data Length Update + * Procedure. Set any member to @ref BLE_GAP_DATA_LENGTH_AUTO to let + * the SoftDevice automatically decide the value for that member. + * Set to NULL to use automatic values for all members. + * @param[out] p_dl_limitation Pointer to limitation to be written when local device does not + * have enough resources or does not support the requested Data Length + * Update parameters. Ignored if NULL. + * + * @mscs + * @mmsc{@ref BLE_GAP_DATA_LENGTH_UPDATE_PROCEDURE_MSC} + * @endmscs + * + * @retval ::NRF_SUCCESS Successfully set Data Length Extension initiation/response parameters. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameters supplied. + * @retval ::NRF_ERROR_NOT_SUPPORTED The requested parameters are not supported by the SoftDevice. Inspect + * p_dl_limitation to see which parameter is not supported. + * @retval ::NRF_ERROR_RESOURCES The connection event length configured for this link is not sufficient for the requested parameters. + * Use @ref sd_ble_cfg_set with @ref BLE_CONN_CFG_GAP to increase the connection event length. + * Inspect p_dl_limitation to see where the limitation is. + * @retval ::NRF_ERROR_BUSY Peer has already initiated a Data Length Update Procedure. Process the + * pending @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST event to respond. + */ +SVCALL(SD_BLE_GAP_DATA_LENGTH_UPDATE, uint32_t, sd_ble_gap_data_length_update(uint16_t conn_handle, ble_gap_data_length_params_t const *p_dl_params, ble_gap_data_length_limitation_t *p_dl_limitation)); + +/**@brief Start the Quality of Service (QoS) channel survey module. + * + * @details The channel survey module provides measurements of the energy levels on + * the Bluetooth Low Energy channels. When the module is enabled, @ref BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT + * events will periodically report the measured energy levels for each channel. + * + * @note The measurements are scheduled with lower priority than other Bluetooth Low Energy roles, + * Radio Timeslot API events and Flash API events. + * + * @note The channel survey module will attempt to do measurements so that the average interval + * between measurements will be interval_us. However due to the channel survey module + * having the lowest priority of all roles and modules, this may not be possible. In that + * case fewer than expected channel survey reports may be given. + * + * @note In order to use the channel survey module, @ref ble_gap_cfg_role_count_t::qos_channel_survey_role_available + * must be set. This is done using @ref sd_ble_cfg_set. + * + * @param[in] interval_us Requested average interval for the measurements and reports. See + * @ref BLE_GAP_QOS_CHANNEL_SURVEY_INTERVALS for valid ranges. If set + * to @ref BLE_GAP_QOS_CHANNEL_SURVEY_INTERVAL_CONTINUOUS, the channel + * survey role will be scheduled at every available opportunity. + * + * @retval ::NRF_SUCCESS The module is successfully started. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter supplied. interval_us is out of the + * allowed range. + * @retval ::NRF_ERROR_INVALID_STATE Trying to start the module when already running. + * @retval ::NRF_ERROR_RESOURCES The channel survey module is not available to the application. + * Set @ref ble_gap_cfg_role_count_t::qos_channel_survey_role_available using + * @ref sd_ble_cfg_set. + */ +SVCALL(SD_BLE_GAP_QOS_CHANNEL_SURVEY_START, uint32_t, sd_ble_gap_qos_channel_survey_start(uint32_t interval_us)); + +/**@brief Stop the Quality of Service (QoS) channel survey module. + * + * @retval ::NRF_SUCCESS The module is successfully stopped. + * @retval ::NRF_ERROR_INVALID_STATE Trying to stop the module when it is not running. + */ +SVCALL(SD_BLE_GAP_QOS_CHANNEL_SURVEY_STOP, uint32_t, sd_ble_gap_qos_channel_survey_stop(void)); + + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // BLE_GAP_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gatt.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gatt.h new file mode 100644 index 0000000..98a7a15 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gatt.h @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2013 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_GATT Generic Attribute Profile (GATT) Common + @{ + @brief Common definitions and prototypes for the GATT interfaces. + */ + +#ifndef BLE_GATT_H__ +#define BLE_GATT_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_hci.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_GATT_DEFINES Defines + * @{ */ + +/** @brief Default ATT MTU, in bytes. */ +#define BLE_GATT_ATT_MTU_DEFAULT 23 + +/**@brief Invalid Attribute Handle. */ +#define BLE_GATT_HANDLE_INVALID 0x0000 + +/**@brief First Attribute Handle. */ +#define BLE_GATT_HANDLE_START 0x0001 + +/**@brief Last Attribute Handle. */ +#define BLE_GATT_HANDLE_END 0xFFFF + +/** @defgroup BLE_GATT_TIMEOUT_SOURCES GATT Timeout sources + * @{ */ +#define BLE_GATT_TIMEOUT_SRC_PROTOCOL 0x00 /**< ATT Protocol timeout. */ +/** @} */ + +/** @defgroup BLE_GATT_WRITE_OPS GATT Write operations + * @{ */ +#define BLE_GATT_OP_INVALID 0x00 /**< Invalid Operation. */ +#define BLE_GATT_OP_WRITE_REQ 0x01 /**< Write Request. */ +#define BLE_GATT_OP_WRITE_CMD 0x02 /**< Write Command. */ +#define BLE_GATT_OP_SIGN_WRITE_CMD 0x03 /**< Signed Write Command. */ +#define BLE_GATT_OP_PREP_WRITE_REQ 0x04 /**< Prepare Write Request. */ +#define BLE_GATT_OP_EXEC_WRITE_REQ 0x05 /**< Execute Write Request. */ +/** @} */ + +/** @defgroup BLE_GATT_EXEC_WRITE_FLAGS GATT Execute Write flags + * @{ */ +#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_CANCEL 0x00 /**< Cancel prepared write. */ +#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE 0x01 /**< Execute prepared write. */ +/** @} */ + +/** @defgroup BLE_GATT_HVX_TYPES GATT Handle Value operations + * @{ */ +#define BLE_GATT_HVX_INVALID 0x00 /**< Invalid Operation. */ +#define BLE_GATT_HVX_NOTIFICATION 0x01 /**< Handle Value Notification. */ +#define BLE_GATT_HVX_INDICATION 0x02 /**< Handle Value Indication. */ +/** @} */ + +/** @defgroup BLE_GATT_STATUS_CODES GATT Status Codes + * @{ */ +#define BLE_GATT_STATUS_SUCCESS 0x0000 /**< Success. */ +#define BLE_GATT_STATUS_UNKNOWN 0x0001 /**< Unknown or not applicable status. */ +#define BLE_GATT_STATUS_ATTERR_INVALID 0x0100 /**< ATT Error: Invalid Error Code. */ +#define BLE_GATT_STATUS_ATTERR_INVALID_HANDLE 0x0101 /**< ATT Error: Invalid Attribute Handle. */ +#define BLE_GATT_STATUS_ATTERR_READ_NOT_PERMITTED 0x0102 /**< ATT Error: Read not permitted. */ +#define BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED 0x0103 /**< ATT Error: Write not permitted. */ +#define BLE_GATT_STATUS_ATTERR_INVALID_PDU 0x0104 /**< ATT Error: Used in ATT as Invalid PDU. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION 0x0105 /**< ATT Error: Authenticated link required. */ +#define BLE_GATT_STATUS_ATTERR_REQUEST_NOT_SUPPORTED 0x0106 /**< ATT Error: Used in ATT as Request Not Supported. */ +#define BLE_GATT_STATUS_ATTERR_INVALID_OFFSET 0x0107 /**< ATT Error: Offset specified was past the end of the attribute. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHORIZATION 0x0108 /**< ATT Error: Used in ATT as Insufficient Authorization. */ +#define BLE_GATT_STATUS_ATTERR_PREPARE_QUEUE_FULL 0x0109 /**< ATT Error: Used in ATT as Prepare Queue Full. */ +#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND 0x010A /**< ATT Error: Used in ATT as Attribute not found. */ +#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_LONG 0x010B /**< ATT Error: Attribute cannot be read or written using read/write blob requests. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_ENC_KEY_SIZE 0x010C /**< ATT Error: Encryption key size used is insufficient. */ +#define BLE_GATT_STATUS_ATTERR_INVALID_ATT_VAL_LENGTH 0x010D /**< ATT Error: Invalid value size. */ +#define BLE_GATT_STATUS_ATTERR_UNLIKELY_ERROR 0x010E /**< ATT Error: Very unlikely error. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_ENCRYPTION 0x010F /**< ATT Error: Encrypted link required. */ +#define BLE_GATT_STATUS_ATTERR_UNSUPPORTED_GROUP_TYPE 0x0110 /**< ATT Error: Attribute type is not a supported grouping attribute. */ +#define BLE_GATT_STATUS_ATTERR_INSUF_RESOURCES 0x0111 /**< ATT Error: Encrypted link required. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_BEGIN 0x0112 /**< ATT Error: Reserved for Future Use range #1 begin. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_END 0x017F /**< ATT Error: Reserved for Future Use range #1 end. */ +#define BLE_GATT_STATUS_ATTERR_APP_BEGIN 0x0180 /**< ATT Error: Application range begin. */ +#define BLE_GATT_STATUS_ATTERR_APP_END 0x019F /**< ATT Error: Application range end. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_BEGIN 0x01A0 /**< ATT Error: Reserved for Future Use range #2 begin. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_END 0x01DF /**< ATT Error: Reserved for Future Use range #2 end. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_BEGIN 0x01E0 /**< ATT Error: Reserved for Future Use range #3 begin. */ +#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_END 0x01FC /**< ATT Error: Reserved for Future Use range #3 end. */ +#define BLE_GATT_STATUS_ATTERR_CPS_CCCD_CONFIG_ERROR 0x01FD /**< ATT Common Profile and Service Error: Client Characteristic Configuration Descriptor improperly configured. */ +#define BLE_GATT_STATUS_ATTERR_CPS_PROC_ALR_IN_PROG 0x01FE /**< ATT Common Profile and Service Error: Procedure Already in Progress. */ +#define BLE_GATT_STATUS_ATTERR_CPS_OUT_OF_RANGE 0x01FF /**< ATT Common Profile and Service Error: Out Of Range. */ +/** @} */ + + +/** @defgroup BLE_GATT_CPF_FORMATS Characteristic Presentation Formats + * @note Found at http://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml + * @{ */ +#define BLE_GATT_CPF_FORMAT_RFU 0x00 /**< Reserved For Future Use. */ +#define BLE_GATT_CPF_FORMAT_BOOLEAN 0x01 /**< Boolean. */ +#define BLE_GATT_CPF_FORMAT_2BIT 0x02 /**< Unsigned 2-bit integer. */ +#define BLE_GATT_CPF_FORMAT_NIBBLE 0x03 /**< Unsigned 4-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT8 0x04 /**< Unsigned 8-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT12 0x05 /**< Unsigned 12-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT16 0x06 /**< Unsigned 16-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT24 0x07 /**< Unsigned 24-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT32 0x08 /**< Unsigned 32-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT48 0x09 /**< Unsigned 48-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT64 0x0A /**< Unsigned 64-bit integer. */ +#define BLE_GATT_CPF_FORMAT_UINT128 0x0B /**< Unsigned 128-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT8 0x0C /**< Signed 2-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT12 0x0D /**< Signed 12-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT16 0x0E /**< Signed 16-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT24 0x0F /**< Signed 24-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT32 0x10 /**< Signed 32-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT48 0x11 /**< Signed 48-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT64 0x12 /**< Signed 64-bit integer. */ +#define BLE_GATT_CPF_FORMAT_SINT128 0x13 /**< Signed 128-bit integer. */ +#define BLE_GATT_CPF_FORMAT_FLOAT32 0x14 /**< IEEE-754 32-bit floating point. */ +#define BLE_GATT_CPF_FORMAT_FLOAT64 0x15 /**< IEEE-754 64-bit floating point. */ +#define BLE_GATT_CPF_FORMAT_SFLOAT 0x16 /**< IEEE-11073 16-bit SFLOAT. */ +#define BLE_GATT_CPF_FORMAT_FLOAT 0x17 /**< IEEE-11073 32-bit FLOAT. */ +#define BLE_GATT_CPF_FORMAT_DUINT16 0x18 /**< IEEE-20601 format. */ +#define BLE_GATT_CPF_FORMAT_UTF8S 0x19 /**< UTF-8 string. */ +#define BLE_GATT_CPF_FORMAT_UTF16S 0x1A /**< UTF-16 string. */ +#define BLE_GATT_CPF_FORMAT_STRUCT 0x1B /**< Opaque Structure. */ +/** @} */ + +/** @defgroup BLE_GATT_CPF_NAMESPACES GATT Bluetooth Namespaces + * @{ + */ +#define BLE_GATT_CPF_NAMESPACE_BTSIG 0x01 /**< Bluetooth SIG defined Namespace. */ +#define BLE_GATT_CPF_NAMESPACE_DESCRIPTION_UNKNOWN 0x0000 /**< Namespace Description Unknown. */ +/** @} */ + +/** @} */ + +/** @addtogroup BLE_GATT_STRUCTURES Structures + * @{ */ + +/** + * @brief BLE GATT connection configuration parameters, set with @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_INVALID_PARAM att_mtu is smaller than @ref BLE_GATT_ATT_MTU_DEFAULT. + */ +typedef struct +{ + uint16_t att_mtu; /**< Maximum size of ATT packet the SoftDevice can send or receive. + The default and minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT. + @mscs + @mmsc{@ref BLE_GATTC_MTU_EXCHANGE} + @mmsc{@ref BLE_GATTS_MTU_EXCHANGE} + @endmscs + */ +} ble_gatt_conn_cfg_t; + +/**@brief GATT Characteristic Properties. */ +typedef struct +{ + /* Standard properties */ + uint8_t broadcast :1; /**< Broadcasting of the value permitted. */ + uint8_t read :1; /**< Reading the value permitted. */ + uint8_t write_wo_resp :1; /**< Writing the value with Write Command permitted. */ + uint8_t write :1; /**< Writing the value with Write Request permitted. */ + uint8_t notify :1; /**< Notification of the value permitted. */ + uint8_t indicate :1; /**< Indications of the value permitted. */ + uint8_t auth_signed_wr :1; /**< Writing the value with Signed Write Command permitted. */ +} ble_gatt_char_props_t; + +/**@brief GATT Characteristic Extended Properties. */ +typedef struct +{ + /* Extended properties */ + uint8_t reliable_wr :1; /**< Writing the value with Queued Write operations permitted. */ + uint8_t wr_aux :1; /**< Writing the Characteristic User Description descriptor permitted. */ +} ble_gatt_char_ext_props_t; + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // BLE_GATT_H__ + +/** @} */ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gattc.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gattc.h new file mode 100644 index 0000000..7fb3920 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gattc.h @@ -0,0 +1,715 @@ +/* + * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_GATTC Generic Attribute Profile (GATT) Client + @{ + @brief Definitions and prototypes for the GATT Client interface. + */ + +#ifndef BLE_GATTC_H__ +#define BLE_GATTC_H__ + +#include +#include "nrf.h" +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" +#include "ble_gatt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_GATTC_ENUMERATIONS Enumerations + * @{ */ + +/**@brief GATTC API SVC numbers. */ +enum BLE_GATTC_SVCS +{ + SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER = BLE_GATTC_SVC_BASE, /**< Primary Service Discovery. */ + SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, /**< Relationship Discovery. */ + SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, /**< Characteristic Discovery. */ + SD_BLE_GATTC_DESCRIPTORS_DISCOVER, /**< Characteristic Descriptor Discovery. */ + SD_BLE_GATTC_ATTR_INFO_DISCOVER, /**< Attribute Information Discovery. */ + SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, /**< Read Characteristic Value by UUID. */ + SD_BLE_GATTC_READ, /**< Generic read. */ + SD_BLE_GATTC_CHAR_VALUES_READ, /**< Read multiple Characteristic Values. */ + SD_BLE_GATTC_WRITE, /**< Generic write. */ + SD_BLE_GATTC_HV_CONFIRM, /**< Handle Value Confirmation. */ + SD_BLE_GATTC_EXCHANGE_MTU_REQUEST, /**< Exchange MTU Request. */ +}; + +/** + * @brief GATT Client Event IDs. + */ +enum BLE_GATTC_EVTS +{ + BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP = BLE_GATTC_EVT_BASE, /**< Primary Service Discovery Response event. \n See @ref ble_gattc_evt_prim_srvc_disc_rsp_t. */ + BLE_GATTC_EVT_REL_DISC_RSP, /**< Relationship Discovery Response event. \n See @ref ble_gattc_evt_rel_disc_rsp_t. */ + BLE_GATTC_EVT_CHAR_DISC_RSP, /**< Characteristic Discovery Response event. \n See @ref ble_gattc_evt_char_disc_rsp_t. */ + BLE_GATTC_EVT_DESC_DISC_RSP, /**< Descriptor Discovery Response event. \n See @ref ble_gattc_evt_desc_disc_rsp_t. */ + BLE_GATTC_EVT_ATTR_INFO_DISC_RSP, /**< Attribute Information Response event. \n See @ref ble_gattc_evt_attr_info_disc_rsp_t. */ + BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP, /**< Read By UUID Response event. \n See @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t. */ + BLE_GATTC_EVT_READ_RSP, /**< Read Response event. \n See @ref ble_gattc_evt_read_rsp_t. */ + BLE_GATTC_EVT_CHAR_VALS_READ_RSP, /**< Read multiple Response event. \n See @ref ble_gattc_evt_char_vals_read_rsp_t. */ + BLE_GATTC_EVT_WRITE_RSP, /**< Write Response event. \n See @ref ble_gattc_evt_write_rsp_t. */ + BLE_GATTC_EVT_HVX, /**< Handle Value Notification or Indication event. \n Confirm indication with @ref sd_ble_gattc_hv_confirm. \n See @ref ble_gattc_evt_hvx_t. */ + BLE_GATTC_EVT_EXCHANGE_MTU_RSP, /**< Exchange MTU Response event. \n See @ref ble_gattc_evt_exchange_mtu_rsp_t. */ + BLE_GATTC_EVT_TIMEOUT, /**< Timeout event. \n See @ref ble_gattc_evt_timeout_t. */ + BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE /**< Write without Response transmission complete. \n See @ref ble_gattc_evt_write_cmd_tx_complete_t. */ +}; + +/** @} */ + +/** @addtogroup BLE_GATTC_DEFINES Defines + * @{ */ + +/** @defgroup BLE_ERRORS_GATTC SVC return values specific to GATTC + * @{ */ +#define BLE_ERROR_GATTC_PROC_NOT_PERMITTED (NRF_GATTC_ERR_BASE + 0x000) /**< Procedure not Permitted. */ +/** @} */ + +/** @defgroup BLE_GATTC_ATTR_INFO_FORMAT Attribute Information Formats + * @{ */ +#define BLE_GATTC_ATTR_INFO_FORMAT_16BIT 1 /**< 16-bit Attribute Information Format. */ +#define BLE_GATTC_ATTR_INFO_FORMAT_128BIT 2 /**< 128-bit Attribute Information Format. */ +/** @} */ + +/** @defgroup BLE_GATTC_DEFAULTS GATT Client defaults + * @{ */ +#define BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT 1 /**< Default number of Write without Response that can be queued for transmission. */ +/** @} */ + +/** @} */ + +/** @addtogroup BLE_GATTC_STRUCTURES Structures + * @{ */ + +/** + * @brief BLE GATTC connection configuration parameters, set with @ref sd_ble_cfg_set. + */ +typedef struct +{ + uint8_t write_cmd_tx_queue_size; /**< The guaranteed minimum number of Write without Response that can be queued for transmission. + The default value is @ref BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT */ +} ble_gattc_conn_cfg_t; + +/**@brief Operation Handle Range. */ +typedef struct +{ + uint16_t start_handle; /**< Start Handle. */ + uint16_t end_handle; /**< End Handle. */ +} ble_gattc_handle_range_t; + + +/**@brief GATT service. */ +typedef struct +{ + ble_uuid_t uuid; /**< Service UUID. */ + ble_gattc_handle_range_t handle_range; /**< Service Handle Range. */ +} ble_gattc_service_t; + + +/**@brief GATT include. */ +typedef struct +{ + uint16_t handle; /**< Include Handle. */ + ble_gattc_service_t included_srvc; /**< Handle of the included service. */ +} ble_gattc_include_t; + + +/**@brief GATT characteristic. */ +typedef struct +{ + ble_uuid_t uuid; /**< Characteristic UUID. */ + ble_gatt_char_props_t char_props; /**< Characteristic Properties. */ + uint8_t char_ext_props : 1; /**< Extended properties present. */ + uint16_t handle_decl; /**< Handle of the Characteristic Declaration. */ + uint16_t handle_value; /**< Handle of the Characteristic Value. */ +} ble_gattc_char_t; + + +/**@brief GATT descriptor. */ +typedef struct +{ + uint16_t handle; /**< Descriptor Handle. */ + ble_uuid_t uuid; /**< Descriptor UUID. */ +} ble_gattc_desc_t; + + +/**@brief Write Parameters. */ +typedef struct +{ + uint8_t write_op; /**< Write Operation to be performed, see @ref BLE_GATT_WRITE_OPS. */ + uint8_t flags; /**< Flags, see @ref BLE_GATT_EXEC_WRITE_FLAGS. */ + uint16_t handle; /**< Handle to the attribute to be written. */ + uint16_t offset; /**< Offset in bytes. @note For WRITE_CMD and WRITE_REQ, offset must be 0. */ + uint16_t len; /**< Length of data in bytes. */ + uint8_t const *p_value; /**< Pointer to the value data. */ +} ble_gattc_write_params_t; + +/**@brief Attribute Information for 16-bit Attribute UUID. */ +typedef struct +{ + uint16_t handle; /**< Attribute handle. */ + ble_uuid_t uuid; /**< 16-bit Attribute UUID. */ +} ble_gattc_attr_info16_t; + +/**@brief Attribute Information for 128-bit Attribute UUID. */ +typedef struct +{ + uint16_t handle; /**< Attribute handle. */ + ble_uuid128_t uuid; /**< 128-bit Attribute UUID. */ +} ble_gattc_attr_info128_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Service count. */ + ble_gattc_service_t services[1]; /**< Service data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_prim_srvc_disc_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_REL_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Include count. */ + ble_gattc_include_t includes[1]; /**< Include data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_rel_disc_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Characteristic count. */ + ble_gattc_char_t chars[1]; /**< Characteristic data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_char_disc_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_DESC_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Descriptor count. */ + ble_gattc_desc_t descs[1]; /**< Descriptor data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_desc_disc_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP. */ +typedef struct +{ + uint16_t count; /**< Attribute count. */ + uint8_t format; /**< Attribute information format, see @ref BLE_GATTC_ATTR_INFO_FORMAT. */ + union { + ble_gattc_attr_info16_t attr_info16[1]; /**< Attribute information for 16-bit Attribute UUID. + @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ + ble_gattc_attr_info128_t attr_info128[1]; /**< Attribute information for 128-bit Attribute UUID. + @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ + } info; /**< Attribute information union. */ +} ble_gattc_evt_attr_info_disc_rsp_t; + +/**@brief GATT read by UUID handle value pair. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + uint8_t *p_value; /**< Pointer to the Attribute Value, length is available in @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t::value_len. */ +} ble_gattc_handle_value_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP. */ +typedef struct +{ + uint16_t count; /**< Handle-Value Pair Count. */ + uint16_t value_len; /**< Length of the value in Handle-Value(s) list. */ + uint8_t handle_value[1]; /**< Handle-Value(s) list. To iterate through the list use @ref sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter. + @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_char_val_by_uuid_read_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_READ_RSP. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + uint16_t offset; /**< Offset of the attribute data. */ + uint16_t len; /**< Attribute data length. */ + uint8_t data[1]; /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_read_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP. */ +typedef struct +{ + uint16_t len; /**< Concatenated Attribute values length. */ + uint8_t values[1]; /**< Attribute values. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_char_vals_read_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_WRITE_RSP. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + uint8_t write_op; /**< Type of write operation, see @ref BLE_GATT_WRITE_OPS. */ + uint16_t offset; /**< Data offset. */ + uint16_t len; /**< Data length. */ + uint8_t data[1]; /**< Data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_write_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_HVX. */ +typedef struct +{ + uint16_t handle; /**< Handle to which the HVx operation applies. */ + uint8_t type; /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */ + uint16_t len; /**< Attribute data length. */ + uint8_t data[1]; /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gattc_evt_hvx_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP. */ +typedef struct +{ + uint16_t server_rx_mtu; /**< Server RX MTU size. */ +} ble_gattc_evt_exchange_mtu_rsp_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_TIMEOUT. */ +typedef struct +{ + uint8_t src; /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */ +} ble_gattc_evt_timeout_t; + +/**@brief Event structure for @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE. */ +typedef struct +{ + uint8_t count; /**< Number of write without response transmissions completed. */ +} ble_gattc_evt_write_cmd_tx_complete_t; + +/**@brief GATTC event structure. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which event occurred. */ + uint16_t gatt_status; /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */ + uint16_t error_handle; /**< In case of error: The handle causing the error. In all other cases @ref BLE_GATT_HANDLE_INVALID. */ + union + { + ble_gattc_evt_prim_srvc_disc_rsp_t prim_srvc_disc_rsp; /**< Primary Service Discovery Response Event Parameters. */ + ble_gattc_evt_rel_disc_rsp_t rel_disc_rsp; /**< Relationship Discovery Response Event Parameters. */ + ble_gattc_evt_char_disc_rsp_t char_disc_rsp; /**< Characteristic Discovery Response Event Parameters. */ + ble_gattc_evt_desc_disc_rsp_t desc_disc_rsp; /**< Descriptor Discovery Response Event Parameters. */ + ble_gattc_evt_char_val_by_uuid_read_rsp_t char_val_by_uuid_read_rsp; /**< Characteristic Value Read by UUID Response Event Parameters. */ + ble_gattc_evt_read_rsp_t read_rsp; /**< Read Response Event Parameters. */ + ble_gattc_evt_char_vals_read_rsp_t char_vals_read_rsp; /**< Characteristic Values Read Response Event Parameters. */ + ble_gattc_evt_write_rsp_t write_rsp; /**< Write Response Event Parameters. */ + ble_gattc_evt_hvx_t hvx; /**< Handle Value Notification/Indication Event Parameters. */ + ble_gattc_evt_exchange_mtu_rsp_t exchange_mtu_rsp; /**< Exchange MTU Response Event Parameters. */ + ble_gattc_evt_timeout_t timeout; /**< Timeout Event Parameters. */ + ble_gattc_evt_attr_info_disc_rsp_t attr_info_disc_rsp; /**< Attribute Information Discovery Event Parameters. */ + ble_gattc_evt_write_cmd_tx_complete_t write_cmd_tx_complete; /**< Write without Response transmission complete Event Parameters. */ + } params; /**< Event Parameters. @note Only valid if @ref gatt_status == @ref BLE_GATT_STATUS_SUCCESS. */ +} ble_gattc_evt_t; +/** @} */ + +/** @addtogroup BLE_GATTC_FUNCTIONS Functions + * @{ */ + +/**@brief Initiate or continue a GATT Primary Service Discovery procedure. + * + * @details This function initiates or resumes a Primary Service discovery procedure, starting from the supplied handle. + * If the last service has not been reached, this function must be called again with an updated start handle value to continue the search. + * + * @note If any of the discovered services have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with + * type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event. + * + * @events + * @event{@ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_PRIM_SRVC_DISC_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] start_handle Handle to start searching from. + * @param[in] p_srvc_uuid Pointer to the service UUID to be found. If it is NULL, all primary services will be returned. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Primary Service Discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER, uint32_t, sd_ble_gattc_primary_services_discover(uint16_t conn_handle, uint16_t start_handle, ble_uuid_t const *p_srvc_uuid)); + + +/**@brief Initiate or continue a GATT Relationship Discovery procedure. + * + * @details This function initiates or resumes the Find Included Services sub-procedure. If the last included service has not been reached, + * this must be called again with an updated handle range to continue the search. + * + * @events + * @event{@ref BLE_GATTC_EVT_REL_DISC_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_REL_DISC_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Relationship Discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, uint32_t, sd_ble_gattc_relationships_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range)); + + +/**@brief Initiate or continue a GATT Characteristic Discovery procedure. + * + * @details This function initiates or resumes a Characteristic discovery procedure. If the last Characteristic has not been reached, + * this must be called again with an updated handle range to continue the discovery. + * + * @note If any of the discovered characteristics have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with + * type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event. + * + * @events + * @event{@ref BLE_GATTC_EVT_CHAR_DISC_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_CHAR_DISC_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Characteristic Discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, uint32_t, sd_ble_gattc_characteristics_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range)); + + +/**@brief Initiate or continue a GATT Characteristic Descriptor Discovery procedure. + * + * @details This function initiates or resumes a Characteristic Descriptor discovery procedure. If the last Descriptor has not been reached, + * this must be called again with an updated handle range to continue the discovery. + * + * @events + * @event{@ref BLE_GATTC_EVT_DESC_DISC_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_DESC_DISC_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handle_range A pointer to the range of handles of the Characteristic to perform this procedure on. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Descriptor Discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_DESCRIPTORS_DISCOVER, uint32_t, sd_ble_gattc_descriptors_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range)); + + +/**@brief Initiate or continue a GATT Read using Characteristic UUID procedure. + * + * @details This function initiates or resumes a Read using Characteristic UUID procedure. If the last Characteristic has not been reached, + * this must be called again with an updated handle range to continue the discovery. + * + * @events + * @event{@ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_READ_UUID_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_uuid Pointer to a Characteristic value UUID to read. + * @param[in] p_handle_range A pointer to the range of handles to perform this procedure on. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Read using Characteristic UUID procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, uint32_t, sd_ble_gattc_char_value_by_uuid_read(uint16_t conn_handle, ble_uuid_t const *p_uuid, ble_gattc_handle_range_t const *p_handle_range)); + + +/**@brief Initiate or continue a GATT Read (Long) Characteristic or Descriptor procedure. + * + * @details This function initiates or resumes a GATT Read (Long) Characteristic or Descriptor procedure. If the Characteristic or Descriptor + * to be read is longer than ATT_MTU - 1, this function must be called multiple times with appropriate offset to read the + * complete value. + * + * @events + * @event{@ref BLE_GATTC_EVT_READ_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_VALUE_READ_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] handle The handle of the attribute to be read. + * @param[in] offset Offset into the attribute value to be read. + * + * @retval ::NRF_SUCCESS Successfully started or resumed the Read (Long) procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_READ, uint32_t, sd_ble_gattc_read(uint16_t conn_handle, uint16_t handle, uint16_t offset)); + + +/**@brief Initiate a GATT Read Multiple Characteristic Values procedure. + * + * @details This function initiates a GATT Read Multiple Characteristic Values procedure. + * + * @events + * @event{@ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_READ_MULT_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handles A pointer to the handle(s) of the attribute(s) to be read. + * @param[in] handle_count The number of handles in p_handles. + * + * @retval ::NRF_SUCCESS Successfully started the Read Multiple Characteristic Values procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_CHAR_VALUES_READ, uint32_t, sd_ble_gattc_char_values_read(uint16_t conn_handle, uint16_t const *p_handles, uint16_t handle_count)); + + +/**@brief Perform a Write (Characteristic Value or Descriptor, with or without response, signed or not, long or reliable) procedure. + * + * @details This function can perform all write procedures described in GATT. + * + * @note Only one write with response procedure can be ongoing per connection at a time. + * If the application tries to write with response while another write with response procedure is ongoing, + * the function call will return @ref NRF_ERROR_BUSY. + * A @ref BLE_GATTC_EVT_WRITE_RSP event will be issued as soon as the write response arrives from the peer. + * + * @note The number of Write without Response that can be queued is configured by @ref ble_gattc_conn_cfg_t::write_cmd_tx_queue_size + * When the queue is full, the function call will return @ref NRF_ERROR_RESOURCES. + * A @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event will be issued as soon as the transmission of the write without response is complete. + * + * @note The application can keep track of the available queue element count for writes without responses by following the procedure below: + * - Store initial queue element count in a variable. + * - Decrement the variable, which stores the currently available queue element count, by one when a call to this function returns @ref NRF_SUCCESS. + * - Increment the variable, which stores the current available queue element count, by the count variable in @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event. + * + * @events + * @event{@ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE, Write without response transmission complete.} + * @event{@ref BLE_GATTC_EVT_WRITE_RSP, Write response received from the peer.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_VALUE_WRITE_WITHOUT_RESP_MSC} + * @mmsc{@ref BLE_GATTC_VALUE_WRITE_MSC} + * @mmsc{@ref BLE_GATTC_VALUE_LONG_WRITE_MSC} + * @mmsc{@ref BLE_GATTC_VALUE_RELIABLE_WRITE_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_write_params A pointer to a write parameters structure. + * + * @retval ::NRF_SUCCESS Successfully started the Write procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied. + * @retval ::NRF_ERROR_BUSY For write with response, procedure already in progress. Wait for a @ref BLE_GATTC_EVT_WRITE_RSP event and retry. + * @retval ::NRF_ERROR_RESOURCES Too many writes without responses queued. + * Wait for a @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event and retry. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_WRITE, uint32_t, sd_ble_gattc_write(uint16_t conn_handle, ble_gattc_write_params_t const *p_write_params)); + + +/**@brief Send a Handle Value Confirmation to the GATT Server. + * + * @mscs + * @mmsc{@ref BLE_GATTC_HVI_MSC} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] handle The handle of the attribute in the indication. + * + * @retval ::NRF_SUCCESS Successfully queued the Handle Value Confirmation for transmission. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no Indication pending to be confirmed. + * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_HV_CONFIRM, uint32_t, sd_ble_gattc_hv_confirm(uint16_t conn_handle, uint16_t handle)); + +/**@brief Discovers information about a range of attributes on a GATT server. + * + * @events + * @event{@ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP, Generated when information about a range of attributes has been received.} + * @endevents + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] p_handle_range The range of handles to request information about. + * + * @retval ::NRF_SUCCESS Successfully started an attribute information discovery procedure. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_ATTR_INFO_DISCOVER, uint32_t, sd_ble_gattc_attr_info_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * p_handle_range)); + +/**@brief Start an ATT_MTU exchange by sending an Exchange MTU Request to the server. + * + * @details The SoftDevice sets ATT_MTU to the minimum of: + * - The Client RX MTU value, and + * - The Server RX MTU value from @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP. + * + * However, the SoftDevice never sets ATT_MTU lower than @ref BLE_GATT_ATT_MTU_DEFAULT. + * + * @events + * @event{@ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTC_MTU_EXCHANGE} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] client_rx_mtu Client RX MTU size. + * - The minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT. + * - The maximum value is @ref ble_gatt_conn_cfg_t::att_mtu in the connection configuration + used for this connection. + * - The value must be equal to Server RX MTU size given in @ref sd_ble_gatts_exchange_mtu_reply + * if an ATT_MTU exchange has already been performed in the other direction. + * + * @retval ::NRF_SUCCESS Successfully sent request to the server. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state or an ATT_MTU exchange was already requested once. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid Client RX MTU size supplied. + * @retval ::NRF_ERROR_BUSY Client procedure already in progress. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTC_EXCHANGE_MTU_REQUEST, uint32_t, sd_ble_gattc_exchange_mtu_request(uint16_t conn_handle, uint16_t client_rx_mtu)); + +/**@brief Iterate through Handle-Value(s) list in @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event. + * + * @param[in] p_gattc_evt Pointer to event buffer containing @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event. + * @note If the buffer contains different event, behavior is undefined. + * @param[in,out] p_iter Iterator, points to @ref ble_gattc_handle_value_t structure that will be filled in with + * the next Handle-Value pair in each iteration. If the function returns other than + * @ref NRF_SUCCESS, it will not be changed. + * - To start iteration, initialize the structure to zero. + * - To continue, pass the value from previous iteration. + * + * \code + * ble_gattc_handle_value_t iter; + * memset(&iter, 0, sizeof(ble_gattc_handle_value_t)); + * while (sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(&ble_evt.evt.gattc_evt, &iter) == NRF_SUCCESS) + * { + * app_handle = iter.handle; + * memcpy(app_value, iter.p_value, ble_evt.evt.gattc_evt.params.char_val_by_uuid_read_rsp.value_len); + * } + * \endcode + * + * @retval ::NRF_SUCCESS Successfully retrieved the next Handle-Value pair. + * @retval ::NRF_ERROR_NOT_FOUND No more Handle-Value pairs available in the list. + */ +__STATIC_INLINE uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter); + +/** @} */ + +#ifndef SUPPRESS_INLINE_IMPLEMENTATION + +__STATIC_INLINE uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter) +{ + uint32_t value_len = p_gattc_evt->params.char_val_by_uuid_read_rsp.value_len; + uint8_t *p_first = p_gattc_evt->params.char_val_by_uuid_read_rsp.handle_value; + uint8_t *p_next = p_iter->p_value ? p_iter->p_value + value_len : p_first; + + if ((p_next - p_first) / (sizeof(uint16_t) + value_len) < p_gattc_evt->params.char_val_by_uuid_read_rsp.count) + { + p_iter->handle = (uint16_t)p_next[1] << 8 | p_next[0]; + p_iter->p_value = p_next + sizeof(uint16_t); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_NOT_FOUND; + } +} + +#endif /* SUPPRESS_INLINE_IMPLEMENTATION */ + +#ifdef __cplusplus +} +#endif +#endif /* BLE_GATTC_H__ */ + +/** + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gatts.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gatts.h new file mode 100644 index 0000000..e437b6e --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_gatts.h @@ -0,0 +1,845 @@ +/* + * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_GATTS Generic Attribute Profile (GATT) Server + @{ + @brief Definitions and prototypes for the GATTS interface. + */ + +#ifndef BLE_GATTS_H__ +#define BLE_GATTS_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_hci.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" +#include "ble_gatt.h" +#include "ble_gap.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_GATTS_ENUMERATIONS Enumerations + * @{ */ + +/** + * @brief GATTS API SVC numbers. + */ +enum BLE_GATTS_SVCS +{ + SD_BLE_GATTS_SERVICE_ADD = BLE_GATTS_SVC_BASE, /**< Add a service. */ + SD_BLE_GATTS_INCLUDE_ADD, /**< Add an included service. */ + SD_BLE_GATTS_CHARACTERISTIC_ADD, /**< Add a characteristic. */ + SD_BLE_GATTS_DESCRIPTOR_ADD, /**< Add a generic attribute. */ + SD_BLE_GATTS_VALUE_SET, /**< Set an attribute value. */ + SD_BLE_GATTS_VALUE_GET, /**< Get an attribute value. */ + SD_BLE_GATTS_HVX, /**< Handle Value Notification or Indication. */ + SD_BLE_GATTS_SERVICE_CHANGED, /**< Perform a Service Changed Indication to one or more peers. */ + SD_BLE_GATTS_RW_AUTHORIZE_REPLY, /**< Reply to an authorization request for a read or write operation on one or more attributes. */ + SD_BLE_GATTS_SYS_ATTR_SET, /**< Set the persistent system attributes for a connection. */ + SD_BLE_GATTS_SYS_ATTR_GET, /**< Retrieve the persistent system attributes. */ + SD_BLE_GATTS_INITIAL_USER_HANDLE_GET, /**< Retrieve the first valid user handle. */ + SD_BLE_GATTS_ATTR_GET, /**< Retrieve the UUID and/or metadata of an attribute. */ + SD_BLE_GATTS_EXCHANGE_MTU_REPLY /**< Reply to Exchange MTU Request. */ +}; + +/** + * @brief GATT Server Event IDs. + */ +enum BLE_GATTS_EVTS +{ + BLE_GATTS_EVT_WRITE = BLE_GATTS_EVT_BASE, /**< Write operation performed. \n See @ref ble_gatts_evt_write_t. */ + BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST, /**< Read/Write Authorization request. \n Reply with @ref sd_ble_gatts_rw_authorize_reply. \n See @ref ble_gatts_evt_rw_authorize_request_t. */ + BLE_GATTS_EVT_SYS_ATTR_MISSING, /**< A persistent system attribute access is pending. \n Respond with @ref sd_ble_gatts_sys_attr_set. \n See @ref ble_gatts_evt_sys_attr_missing_t. */ + BLE_GATTS_EVT_HVC, /**< Handle Value Confirmation. \n See @ref ble_gatts_evt_hvc_t. */ + BLE_GATTS_EVT_SC_CONFIRM, /**< Service Changed Confirmation. \n No additional event structure applies. */ + BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST, /**< Exchange MTU Request. \n Reply with @ref sd_ble_gatts_exchange_mtu_reply. \n See @ref ble_gatts_evt_exchange_mtu_request_t. */ + BLE_GATTS_EVT_TIMEOUT, /**< Peer failed to respond to an ATT request in time. \n See @ref ble_gatts_evt_timeout_t. */ + BLE_GATTS_EVT_HVN_TX_COMPLETE /**< Handle Value Notification transmission complete. \n See @ref ble_gatts_evt_hvn_tx_complete_t. */ +}; + +/**@brief GATTS Configuration IDs. + * + * IDs that uniquely identify a GATTS configuration. + */ +enum BLE_GATTS_CFGS +{ + BLE_GATTS_CFG_SERVICE_CHANGED = BLE_GATTS_CFG_BASE, /**< Service changed configuration. */ + BLE_GATTS_CFG_ATTR_TAB_SIZE, /**< Attribute table size configuration. */ +}; + +/** @} */ + +/** @addtogroup BLE_GATTS_DEFINES Defines + * @{ */ + +/** @defgroup BLE_ERRORS_GATTS SVC return values specific to GATTS + * @{ */ +#define BLE_ERROR_GATTS_INVALID_ATTR_TYPE (NRF_GATTS_ERR_BASE + 0x000) /**< Invalid attribute type. */ +#define BLE_ERROR_GATTS_SYS_ATTR_MISSING (NRF_GATTS_ERR_BASE + 0x001) /**< System Attributes missing. */ +/** @} */ + +/** @defgroup BLE_GATTS_ATTR_LENS_MAX Maximum attribute lengths + * @{ */ +#define BLE_GATTS_FIX_ATTR_LEN_MAX (510) /**< Maximum length for fixed length Attribute Values. */ +#define BLE_GATTS_VAR_ATTR_LEN_MAX (512) /**< Maximum length for variable length Attribute Values. */ +/** @} */ + +/** @defgroup BLE_GATTS_SRVC_TYPES GATT Server Service Types + * @{ */ +#define BLE_GATTS_SRVC_TYPE_INVALID 0x00 /**< Invalid Service Type. */ +#define BLE_GATTS_SRVC_TYPE_PRIMARY 0x01 /**< Primary Service. */ +#define BLE_GATTS_SRVC_TYPE_SECONDARY 0x02 /**< Secondary Type. */ +/** @} */ + + +/** @defgroup BLE_GATTS_ATTR_TYPES GATT Server Attribute Types + * @{ */ +#define BLE_GATTS_ATTR_TYPE_INVALID 0x00 /**< Invalid Attribute Type. */ +#define BLE_GATTS_ATTR_TYPE_PRIM_SRVC_DECL 0x01 /**< Primary Service Declaration. */ +#define BLE_GATTS_ATTR_TYPE_SEC_SRVC_DECL 0x02 /**< Secondary Service Declaration. */ +#define BLE_GATTS_ATTR_TYPE_INC_DECL 0x03 /**< Include Declaration. */ +#define BLE_GATTS_ATTR_TYPE_CHAR_DECL 0x04 /**< Characteristic Declaration. */ +#define BLE_GATTS_ATTR_TYPE_CHAR_VAL 0x05 /**< Characteristic Value. */ +#define BLE_GATTS_ATTR_TYPE_DESC 0x06 /**< Descriptor. */ +#define BLE_GATTS_ATTR_TYPE_OTHER 0x07 /**< Other, non-GATT specific type. */ +/** @} */ + + +/** @defgroup BLE_GATTS_OPS GATT Server Operations + * @{ */ +#define BLE_GATTS_OP_INVALID 0x00 /**< Invalid Operation. */ +#define BLE_GATTS_OP_WRITE_REQ 0x01 /**< Write Request. */ +#define BLE_GATTS_OP_WRITE_CMD 0x02 /**< Write Command. */ +#define BLE_GATTS_OP_SIGN_WRITE_CMD 0x03 /**< Signed Write Command. */ +#define BLE_GATTS_OP_PREP_WRITE_REQ 0x04 /**< Prepare Write Request. */ +#define BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL 0x05 /**< Execute Write Request: Cancel all prepared writes. */ +#define BLE_GATTS_OP_EXEC_WRITE_REQ_NOW 0x06 /**< Execute Write Request: Immediately execute all prepared writes. */ +/** @} */ + +/** @defgroup BLE_GATTS_VLOCS GATT Value Locations + * @{ */ +#define BLE_GATTS_VLOC_INVALID 0x00 /**< Invalid Location. */ +#define BLE_GATTS_VLOC_STACK 0x01 /**< Attribute Value is located in stack memory, no user memory is required. */ +#define BLE_GATTS_VLOC_USER 0x02 /**< Attribute Value is located in user memory. This requires the user to maintain a valid buffer through the lifetime of the attribute, since the stack + will read and write directly to the memory using the pointer provided in the APIs. There are no alignment requirements for the buffer. */ +/** @} */ + +/** @defgroup BLE_GATTS_AUTHORIZE_TYPES GATT Server Authorization Types + * @{ */ +#define BLE_GATTS_AUTHORIZE_TYPE_INVALID 0x00 /**< Invalid Type. */ +#define BLE_GATTS_AUTHORIZE_TYPE_READ 0x01 /**< Authorize a Read Operation. */ +#define BLE_GATTS_AUTHORIZE_TYPE_WRITE 0x02 /**< Authorize a Write Request Operation. */ +/** @} */ + +/** @defgroup BLE_GATTS_SYS_ATTR_FLAGS System Attribute Flags + * @{ */ +#define BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS (1 << 0) /**< Restrict system attributes to system services only. */ +#define BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS (1 << 1) /**< Restrict system attributes to user services only. */ +/** @} */ + +/** @defgroup BLE_GATTS_SERVICE_CHANGED Service Changed Inclusion Values + * @{ + */ +#define BLE_GATTS_SERVICE_CHANGED_DEFAULT (1) /**< Default is to include the Service Changed characteristic in the Attribute Table. */ +/** @} */ + +/** @defgroup BLE_GATTS_ATTR_TAB_SIZE Attribute Table size + * @{ + */ +#define BLE_GATTS_ATTR_TAB_SIZE_MIN (248) /**< Minimum Attribute Table size */ +#define BLE_GATTS_ATTR_TAB_SIZE_DEFAULT (1408) /**< Default Attribute Table size. */ +/** @} */ + +/** @defgroup BLE_GATTS_DEFAULTS GATT Server defaults + * @{ + */ +#define BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT 1 /**< Default number of Handle Value Notifications that can be queued for transmission. */ +/** @} */ + +/** @} */ + +/** @addtogroup BLE_GATTS_STRUCTURES Structures + * @{ */ + +/** + * @brief BLE GATTS connection configuration parameters, set with @ref sd_ble_cfg_set. + */ +typedef struct +{ + uint8_t hvn_tx_queue_size; /**< Minimum guaranteed number of Handle Value Notifications that can be queued for transmission. + The default value is @ref BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT */ +} ble_gatts_conn_cfg_t; + +/**@brief Attribute metadata. */ +typedef struct +{ + ble_gap_conn_sec_mode_t read_perm; /**< Read permissions. */ + ble_gap_conn_sec_mode_t write_perm; /**< Write permissions. */ + uint8_t vlen :1; /**< Variable length attribute. */ + uint8_t vloc :2; /**< Value location, see @ref BLE_GATTS_VLOCS.*/ + uint8_t rd_auth :1; /**< Read authorization and value will be requested from the application on every read operation. */ + uint8_t wr_auth :1; /**< Write authorization will be requested from the application on every Write Request operation (but not Write Command). */ +} ble_gatts_attr_md_t; + + +/**@brief GATT Attribute. */ +typedef struct +{ + ble_uuid_t const *p_uuid; /**< Pointer to the attribute UUID. */ + ble_gatts_attr_md_t const *p_attr_md; /**< Pointer to the attribute metadata structure. */ + uint16_t init_len; /**< Initial attribute value length in bytes. */ + uint16_t init_offs; /**< Initial attribute value offset in bytes. If different from zero, the first init_offs bytes of the attribute value will be left uninitialized. */ + uint16_t max_len; /**< Maximum attribute value length in bytes, see @ref BLE_GATTS_ATTR_LENS_MAX for maximum values. */ + uint8_t *p_value; /**< Pointer to the attribute data. Please note that if the @ref BLE_GATTS_VLOC_USER value location is selected in the attribute metadata, this will have to point to a buffer + that remains valid through the lifetime of the attribute. This excludes usage of automatic variables that may go out of scope or any other temporary location. + The stack may access that memory directly without the application's knowledge. For writable characteristics, this value must not be a location in flash memory.*/ +} ble_gatts_attr_t; + +/**@brief GATT Attribute Value. */ +typedef struct +{ + uint16_t len; /**< Length in bytes to be written or read. Length in bytes written or read after successful return.*/ + uint16_t offset; /**< Attribute value offset. */ + uint8_t *p_value; /**< Pointer to where value is stored or will be stored. + If value is stored in user memory, only the attribute length is updated when p_value == NULL. + Set to NULL when reading to obtain the complete length of the attribute value */ +} ble_gatts_value_t; + + +/**@brief GATT Characteristic Presentation Format. */ +typedef struct +{ + uint8_t format; /**< Format of the value, see @ref BLE_GATT_CPF_FORMATS. */ + int8_t exponent; /**< Exponent for integer data types. */ + uint16_t unit; /**< Unit from Bluetooth Assigned Numbers. */ + uint8_t name_space; /**< Namespace from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */ + uint16_t desc; /**< Namespace description from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */ +} ble_gatts_char_pf_t; + + +/**@brief GATT Characteristic metadata. */ +typedef struct +{ + ble_gatt_char_props_t char_props; /**< Characteristic Properties. */ + ble_gatt_char_ext_props_t char_ext_props; /**< Characteristic Extended Properties. */ + uint8_t const *p_char_user_desc; /**< Pointer to a UTF-8 encoded string (non-NULL terminated), NULL if the descriptor is not required. */ + uint16_t char_user_desc_max_size; /**< The maximum size in bytes of the user description descriptor. */ + uint16_t char_user_desc_size; /**< The size of the user description, must be smaller or equal to char_user_desc_max_size. */ + ble_gatts_char_pf_t const *p_char_pf; /**< Pointer to a presentation format structure or NULL if the CPF descriptor is not required. */ + ble_gatts_attr_md_t const *p_user_desc_md; /**< Attribute metadata for the User Description descriptor, or NULL for default values. */ + ble_gatts_attr_md_t const *p_cccd_md; /**< Attribute metadata for the Client Characteristic Configuration Descriptor, or NULL for default values. */ + ble_gatts_attr_md_t const *p_sccd_md; /**< Attribute metadata for the Server Characteristic Configuration Descriptor, or NULL for default values. */ +} ble_gatts_char_md_t; + + +/**@brief GATT Characteristic Definition Handles. */ +typedef struct +{ + uint16_t value_handle; /**< Handle to the characteristic value. */ + uint16_t user_desc_handle; /**< Handle to the User Description descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */ + uint16_t cccd_handle; /**< Handle to the Client Characteristic Configuration Descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */ + uint16_t sccd_handle; /**< Handle to the Server Characteristic Configuration Descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */ +} ble_gatts_char_handles_t; + + +/**@brief GATT HVx parameters. */ +typedef struct +{ + uint16_t handle; /**< Characteristic Value Handle. */ + uint8_t type; /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */ + uint16_t offset; /**< Offset within the attribute value. */ + uint16_t *p_len; /**< Length in bytes to be written, length in bytes written after return. */ + uint8_t const *p_data; /**< Actual data content, use NULL to use the current attribute value. */ +} ble_gatts_hvx_params_t; + +/**@brief GATT Authorization parameters. */ +typedef struct +{ + uint16_t gatt_status; /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */ + uint8_t update : 1; /**< If set, data supplied in p_data will be used to update the attribute value. + Please note that for @ref BLE_GATTS_AUTHORIZE_TYPE_WRITE operations this bit must always be set, + as the data to be written needs to be stored and later provided by the application. */ + uint16_t offset; /**< Offset of the attribute value being updated. */ + uint16_t len; /**< Length in bytes of the value in p_data pointer, see @ref BLE_GATTS_ATTR_LENS_MAX. */ + uint8_t const *p_data; /**< Pointer to new value used to update the attribute value. */ +} ble_gatts_authorize_params_t; + +/**@brief GATT Read or Write Authorize Reply parameters. */ +typedef struct +{ + uint8_t type; /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */ + union { + ble_gatts_authorize_params_t read; /**< Read authorization parameters. */ + ble_gatts_authorize_params_t write; /**< Write authorization parameters. */ + } params; /**< Reply Parameters. */ +} ble_gatts_rw_authorize_reply_params_t; + +/**@brief Service Changed Inclusion configuration parameters, set with @ref sd_ble_cfg_set. */ +typedef struct +{ + uint8_t service_changed : 1; /**< If 1, include the Service Changed characteristic in the Attribute Table. Default is @ref BLE_GATTS_SERVICE_CHANGED_DEFAULT. */ +} ble_gatts_cfg_service_changed_t; + +/**@brief Attribute table size configuration parameters, set with @ref sd_ble_cfg_set. + * + * @retval ::NRF_ERROR_INVALID_LENGTH One or more of the following is true: + * - The specified Attribute Table size is too small. + * The minimum acceptable size is defined by @ref BLE_GATTS_ATTR_TAB_SIZE_MIN. + * - The specified Attribute Table size is not a multiple of 4. + */ +typedef struct +{ + uint32_t attr_tab_size; /**< Attribute table size. Default is @ref BLE_GATTS_ATTR_TAB_SIZE_DEFAULT, minimum is @ref BLE_GATTS_ATTR_TAB_SIZE_MIN. */ +} ble_gatts_cfg_attr_tab_size_t; + +/**@brief Config structure for GATTS configurations. */ +typedef union +{ + ble_gatts_cfg_service_changed_t service_changed; /**< Include service changed characteristic, cfg_id is @ref BLE_GATTS_CFG_SERVICE_CHANGED. */ + ble_gatts_cfg_attr_tab_size_t attr_tab_size; /**< Attribute table size, cfg_id is @ref BLE_GATTS_CFG_ATTR_TAB_SIZE. */ +} ble_gatts_cfg_t; + + +/**@brief Event structure for @ref BLE_GATTS_EVT_WRITE. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + ble_uuid_t uuid; /**< Attribute UUID. */ + uint8_t op; /**< Type of write operation, see @ref BLE_GATTS_OPS. */ + uint8_t auth_required; /**< Writing operation deferred due to authorization requirement. Application may use @ref sd_ble_gatts_value_set to finalize the writing operation. */ + uint16_t offset; /**< Offset for the write operation. */ + uint16_t len; /**< Length of the received data. */ + uint8_t data[1]; /**< Received data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation. + See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */ +} ble_gatts_evt_write_t; + +/**@brief Event substructure for authorized read requests, see @ref ble_gatts_evt_rw_authorize_request_t. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ + ble_uuid_t uuid; /**< Attribute UUID. */ + uint16_t offset; /**< Offset for the read operation. */ +} ble_gatts_evt_read_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST. */ +typedef struct +{ + uint8_t type; /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */ + union { + ble_gatts_evt_read_t read; /**< Attribute Read Parameters. */ + ble_gatts_evt_write_t write; /**< Attribute Write Parameters. */ + } request; /**< Request Parameters. */ +} ble_gatts_evt_rw_authorize_request_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_SYS_ATTR_MISSING. */ +typedef struct +{ + uint8_t hint; /**< Hint (currently unused). */ +} ble_gatts_evt_sys_attr_missing_t; + + +/**@brief Event structure for @ref BLE_GATTS_EVT_HVC. */ +typedef struct +{ + uint16_t handle; /**< Attribute Handle. */ +} ble_gatts_evt_hvc_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST. */ +typedef struct +{ + uint16_t client_rx_mtu; /**< Client RX MTU size. */ +} ble_gatts_evt_exchange_mtu_request_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_TIMEOUT. */ +typedef struct +{ + uint8_t src; /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */ +} ble_gatts_evt_timeout_t; + +/**@brief Event structure for @ref BLE_GATTS_EVT_HVN_TX_COMPLETE. */ +typedef struct +{ + uint8_t count; /**< Number of notification transmissions completed. */ +} ble_gatts_evt_hvn_tx_complete_t; + +/**@brief GATTS event structure. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which the event occurred. */ + union + { + ble_gatts_evt_write_t write; /**< Write Event Parameters. */ + ble_gatts_evt_rw_authorize_request_t authorize_request; /**< Read or Write Authorize Request Parameters. */ + ble_gatts_evt_sys_attr_missing_t sys_attr_missing; /**< System attributes missing. */ + ble_gatts_evt_hvc_t hvc; /**< Handle Value Confirmation Event Parameters. */ + ble_gatts_evt_exchange_mtu_request_t exchange_mtu_request; /**< Exchange MTU Request Event Parameters. */ + ble_gatts_evt_timeout_t timeout; /**< Timeout Event. */ + ble_gatts_evt_hvn_tx_complete_t hvn_tx_complete; /**< Handle Value Notification transmission complete Event Parameters. */ + } params; /**< Event Parameters. */ +} ble_gatts_evt_t; + +/** @} */ + +/** @addtogroup BLE_GATTS_FUNCTIONS Functions + * @{ */ + +/**@brief Add a service declaration to the Attribute Table. + * + * @note Secondary Services are only relevant in the context of the entity that references them, it is therefore forbidden to + * add a secondary service declaration that is not referenced by another service later in the Attribute Table. + * + * @mscs + * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC} + * @endmscs + * + * @param[in] type Toggles between primary and secondary services, see @ref BLE_GATTS_SRVC_TYPES. + * @param[in] p_uuid Pointer to service UUID. + * @param[out] p_handle Pointer to a 16-bit word where the assigned handle will be stored. + * + * @retval ::NRF_SUCCESS Successfully added a service declaration. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, Vendor Specific UUIDs need to be present in the table. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + */ +SVCALL(SD_BLE_GATTS_SERVICE_ADD, uint32_t, sd_ble_gatts_service_add(uint8_t type, ble_uuid_t const *p_uuid, uint16_t *p_handle)); + + +/**@brief Add an include declaration to the Attribute Table. + * + * @note It is currently only possible to add an include declaration to the last added service (i.e. only sequential population is supported at this time). + * + * @note The included service must already be present in the Attribute Table prior to this call. + * + * @mscs + * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC} + * @endmscs + * + * @param[in] service_handle Handle of the service where the included service is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially. + * @param[in] inc_srvc_handle Handle of the included service. + * @param[out] p_include_handle Pointer to a 16-bit word where the assigned handle will be stored. + * + * @retval ::NRF_SUCCESS Successfully added an include declaration. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, handle values need to match previously added services. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. + * @retval ::NRF_ERROR_NOT_SUPPORTED Feature is not supported, service_handle must be that of the last added service. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, self inclusions are not allowed. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + * @retval ::NRF_ERROR_NOT_FOUND Attribute not found. + */ +SVCALL(SD_BLE_GATTS_INCLUDE_ADD, uint32_t, sd_ble_gatts_include_add(uint16_t service_handle, uint16_t inc_srvc_handle, uint16_t *p_include_handle)); + + +/**@brief Add a characteristic declaration, a characteristic value declaration and optional characteristic descriptor declarations to the Attribute Table. + * + * @note It is currently only possible to add a characteristic to the last added service (i.e. only sequential population is supported at this time). + * + * @note Several restrictions apply to the parameters, such as matching permissions between the user description descriptor and the writable auxiliaries bits, + * readable (no security) and writable (selectable) CCCDs and SCCDs and valid presentation format values. + * + * @note If no metadata is provided for the optional descriptors, their permissions will be derived from the characteristic permissions. + * + * @mscs + * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC} + * @endmscs + * + * @param[in] service_handle Handle of the service where the characteristic is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially. + * @param[in] p_char_md Characteristic metadata. + * @param[in] p_attr_char_value Pointer to the attribute structure corresponding to the characteristic value. + * @param[out] p_handles Pointer to the structure where the assigned handles will be stored. + * + * @retval ::NRF_SUCCESS Successfully added a characteristic. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, service handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation, a service context is required. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX. + */ +SVCALL(SD_BLE_GATTS_CHARACTERISTIC_ADD, uint32_t, sd_ble_gatts_characteristic_add(uint16_t service_handle, ble_gatts_char_md_t const *p_char_md, ble_gatts_attr_t const *p_attr_char_value, ble_gatts_char_handles_t *p_handles)); + + +/**@brief Add a descriptor to the Attribute Table. + * + * @note It is currently only possible to add a descriptor to the last added characteristic (i.e. only sequential population is supported at this time). + * + * @mscs + * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC} + * @endmscs + * + * @param[in] char_handle Handle of the characteristic where the descriptor is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially. + * @param[in] p_attr Pointer to the attribute structure. + * @param[out] p_handle Pointer to a 16-bit word where the assigned handle will be stored. + * + * @retval ::NRF_SUCCESS Successfully added a descriptor. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, characteristic handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints. + * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation, a characteristic context is required. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX. + */ +SVCALL(SD_BLE_GATTS_DESCRIPTOR_ADD, uint32_t, sd_ble_gatts_descriptor_add(uint16_t char_handle, ble_gatts_attr_t const *p_attr, uint16_t *p_handle)); + +/**@brief Set the value of a given attribute. + * + * @note Values other than system attributes can be set at any time, regardless of whether any active connections exist. + * + * @mscs + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. Ignored if the value does not belong to a system attribute. + * @param[in] handle Attribute handle. + * @param[in,out] p_value Attribute value information. + * + * @retval ::NRF_SUCCESS Successfully set the value of the attribute. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_NOT_FOUND Attribute not found. + * @retval ::NRF_ERROR_FORBIDDEN Forbidden handle supplied, certain attributes are not modifiable by the application. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied on a system attribute. + */ +SVCALL(SD_BLE_GATTS_VALUE_SET, uint32_t, sd_ble_gatts_value_set(uint16_t conn_handle, uint16_t handle, ble_gatts_value_t *p_value)); + +/**@brief Get the value of a given attribute. + * + * @note If the attribute value is longer than the size of the supplied buffer, + * @ref ble_gatts_value_t::len will return the total attribute value length (excluding offset), + * and not the number of bytes actually returned in @ref ble_gatts_value_t::p_value. + * The application may use this information to allocate a suitable buffer size. + * + * @note When retrieving system attribute values with this function, the connection handle + * may refer to an already disconnected connection. Refer to the documentation of + * @ref sd_ble_gatts_sys_attr_get for further information. + * + * @param[in] conn_handle Connection handle. Ignored if the value does not belong to a system attribute. + * @param[in] handle Attribute handle. + * @param[in,out] p_value Attribute value information. + * + * @retval ::NRF_SUCCESS Successfully retrieved the value of the attribute. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_NOT_FOUND Attribute not found. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid attribute offset supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied on a system attribute. + * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value. + */ +SVCALL(SD_BLE_GATTS_VALUE_GET, uint32_t, sd_ble_gatts_value_get(uint16_t conn_handle, uint16_t handle, ble_gatts_value_t *p_value)); + +/**@brief Notify or Indicate an attribute value. + * + * @details This function checks for the relevant Client Characteristic Configuration descriptor value to verify that the relevant operation + * (notification or indication) has been enabled by the client. It is also able to update the attribute value before issuing the PDU, so that + * the application can atomically perform a value update and a server initiated transaction with a single API call. + * + * @note The local attribute value may be updated even if an outgoing packet is not sent to the peer due to an error during execution. + * The Attribute Table has been updated if one of the following error codes is returned: @ref NRF_ERROR_INVALID_STATE, @ref NRF_ERROR_BUSY, + * @ref NRF_ERROR_FORBIDDEN, @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING and @ref NRF_ERROR_RESOURCES. + * The caller can check whether the value has been updated by looking at the contents of *(@ref ble_gatts_hvx_params_t::p_len). + * + * @note Only one indication procedure can be ongoing per connection at a time. + * If the application tries to indicate an attribute value while another indication procedure is ongoing, + * the function call will return @ref NRF_ERROR_BUSY. + * A @ref BLE_GATTS_EVT_HVC event will be issued as soon as the confirmation arrives from the peer. + * + * @note The number of Handle Value Notifications that can be queued is configured by @ref ble_gatts_conn_cfg_t::hvn_tx_queue_size + * When the queue is full, the function call will return @ref NRF_ERROR_RESOURCES. + * A @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event will be issued as soon as the transmission of the notification is complete. + * + * @note The application can keep track of the available queue element count for notifications by following the procedure below: + * - Store initial queue element count in a variable. + * - Decrement the variable, which stores the currently available queue element count, by one when a call to this function returns @ref NRF_SUCCESS. + * - Increment the variable, which stores the current available queue element count, by the count variable in @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event. + * + * @events + * @event{@ref BLE_GATTS_EVT_HVN_TX_COMPLETE, Notification transmission complete.} + * @event{@ref BLE_GATTS_EVT_HVC, Confirmation received from the peer.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC} + * @mmsc{@ref BLE_GATTS_HVN_MSC} + * @mmsc{@ref BLE_GATTS_HVI_MSC} + * @mmsc{@ref BLE_GATTS_HVX_DISABLED_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in,out] p_hvx_params Pointer to an HVx parameters structure. If @ref ble_gatts_hvx_params_t::p_data + * contains a non-NULL pointer the attribute value will be updated with the contents + * pointed by it before sending the notification or indication. If the attribute value + * is updated, @ref ble_gatts_hvx_params_t::p_len is updated by the SoftDevice to + * contain the number of actual bytes written, else it will be set to 0. + * + * @retval ::NRF_SUCCESS Successfully queued a notification or indication for transmission, and optionally updated the attribute value. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE One or more of the following is true: + * - Invalid Connection State + * - Notifications and/or indications not enabled in the CCCD + * - An ATT_MTU exchange is ongoing + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied. Only attributes added directly by the application are available to notify and indicate. + * @retval ::BLE_ERROR_GATTS_INVALID_ATTR_TYPE Invalid attribute type(s) supplied, only characteristic values may be notified and indicated. + * @retval ::NRF_ERROR_NOT_FOUND Attribute not found. + * @retval ::NRF_ERROR_FORBIDDEN The connection's current security level is lower than the one required by the write permissions of the CCCD associated with this characteristic. + * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied. + * @retval ::NRF_ERROR_BUSY For @ref BLE_GATT_HVX_INDICATION Procedure already in progress. Wait for a @ref BLE_GATTS_EVT_HVC event and retry. + * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value. + * @retval ::NRF_ERROR_RESOURCES Too many notifications queued. + * Wait for a @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event and retry. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTS_HVX, uint32_t, sd_ble_gatts_hvx(uint16_t conn_handle, ble_gatts_hvx_params_t const *p_hvx_params)); + +/**@brief Indicate the Service Changed attribute value. + * + * @details This call will send a Handle Value Indication to one or more peers connected to inform them that the Attribute + * Table layout has changed. As soon as the peer has confirmed the indication, a @ref BLE_GATTS_EVT_SC_CONFIRM event will + * be issued. + * + * @note Some of the restrictions and limitations that apply to @ref sd_ble_gatts_hvx also apply here. + * + * @events + * @event{@ref BLE_GATTS_EVT_SC_CONFIRM, Confirmation of attribute table change received from peer.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_GATTS_SC_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] start_handle Start of affected attribute handle range. + * @param[in] end_handle End of affected attribute handle range. + * + * @retval ::NRF_SUCCESS Successfully queued the Service Changed indication for transmission. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_NOT_SUPPORTED Service Changed not enabled at initialization. See @ref + * sd_ble_cfg_set and @ref ble_gatts_cfg_service_changed_t. + * @retval ::NRF_ERROR_INVALID_STATE One or more of the following is true: + * - Invalid Connection State + * - Notifications and/or indications not enabled in the CCCD + * - An ATT_MTU exchange is ongoing + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied, handles must be in the range populated by the application. + * @retval ::NRF_ERROR_BUSY Procedure already in progress. + * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTS_SERVICE_CHANGED, uint32_t, sd_ble_gatts_service_changed(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle)); + +/**@brief Respond to a Read/Write authorization request. + * + * @note This call should only be used as a response to a @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST event issued to the application. + * + * @mscs + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC} + * @mmsc{@ref BLE_GATTS_READ_REQ_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_WRITE_REQ_AUTH_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC} + * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_PEER_CANCEL_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_rw_authorize_reply_params Pointer to a structure with the attribute provided by the application. + * + * @note @ref ble_gatts_authorize_params_t::p_data is ignored when this function is used to respond + * to a @ref BLE_GATTS_AUTHORIZE_TYPE_READ event if @ref ble_gatts_authorize_params_t::update + * is set to 0. + * + * @retval ::NRF_SUCCESS Successfully queued a response to the peer, and in the case of a write operation, Attribute Table updated. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no authorization request pending. + * @retval ::NRF_ERROR_INVALID_PARAM Authorization op invalid, + * handle supplied does not match requested handle, + * or invalid data to be written provided by the application. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTS_RW_AUTHORIZE_REPLY, uint32_t, sd_ble_gatts_rw_authorize_reply(uint16_t conn_handle, ble_gatts_rw_authorize_reply_params_t const *p_rw_authorize_reply_params)); + + +/**@brief Update persistent system attribute information. + * + * @details Supply information about persistent system attributes to the stack, + * previously obtained using @ref sd_ble_gatts_sys_attr_get. + * This call is only allowed for active connections, and is usually + * made immediately after a connection is established with an known bonded device, + * often as a response to a @ref BLE_GATTS_EVT_SYS_ATTR_MISSING. + * + * p_sysattrs may point directly to the application's stored copy of the system attributes + * obtained using @ref sd_ble_gatts_sys_attr_get. + * If the pointer is NULL, the system attribute info is initialized, assuming that + * the application does not have any previously saved system attribute data for this device. + * + * @note The state of persistent system attributes is reset upon connection establishment and then remembered for its duration. + * + * @note If this call returns with an error code different from @ref NRF_SUCCESS, the storage of persistent system attributes may have been completed only partially. + * This means that the state of the attribute table is undefined, and the application should either provide a new set of attributes using this same call or + * reset the SoftDevice to return to a known state. + * + * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS is used with this function, only the system attributes included in system services will be modified. + * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS is used with this function, only the system attributes included in user services will be modified. + * + * @mscs + * @mmsc{@ref BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC} + * @mmsc{@ref BLE_GATTS_SYS_ATTRS_UNK_PEER_MSC} + * @mmsc{@ref BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle. + * @param[in] p_sys_attr_data Pointer to a saved copy of system attributes supplied to the stack, or NULL. + * @param[in] len Size of data pointed by p_sys_attr_data, in octets. + * @param[in] flags Optional additional flags, see @ref BLE_GATTS_SYS_ATTR_FLAGS + * + * @retval ::NRF_SUCCESS Successfully set the system attribute information. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid flags supplied. + * @retval ::NRF_ERROR_INVALID_DATA Invalid data supplied, the data should be exactly the same as retrieved with @ref sd_ble_gatts_sys_attr_get. + * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation. + */ +SVCALL(SD_BLE_GATTS_SYS_ATTR_SET, uint32_t, sd_ble_gatts_sys_attr_set(uint16_t conn_handle, uint8_t const *p_sys_attr_data, uint16_t len, uint32_t flags)); + + +/**@brief Retrieve persistent system attribute information from the stack. + * + * @details This call is used to retrieve information about values to be stored persistently by the application + * during the lifetime of a connection or after it has been terminated. When a new connection is established with the same bonded device, + * the system attribute information retrieved with this function should be restored using using @ref sd_ble_gatts_sys_attr_set. + * If retrieved after disconnection, the data should be read before a new connection established. The connection handle for + * the previous, now disconnected, connection will remain valid until a new one is created to allow this API call to refer to it. + * Connection handles belonging to active connections can be used as well, but care should be taken since the system attributes + * may be written to at any time by the peer during a connection's lifetime. + * + * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS is used with this function, only the system attributes included in system services will be returned. + * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS is used with this function, only the system attributes included in user services will be returned. + * + * @mscs + * @mmsc{@ref BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC} + * @endmscs + * + * @param[in] conn_handle Connection handle of the recently terminated connection. + * @param[out] p_sys_attr_data Pointer to a buffer where updated information about system attributes will be filled in. The format of the data is described + * in @ref BLE_GATTS_SYS_ATTRS_FORMAT. NULL can be provided to obtain the length of the data. + * @param[in,out] p_len Size of application buffer if p_sys_attr_data is not NULL. Unconditionally updated to actual length of system attribute data. + * @param[in] flags Optional additional flags, see @ref BLE_GATTS_SYS_ATTR_FLAGS + * + * @retval ::NRF_SUCCESS Successfully retrieved the system attribute information. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid flags supplied. + * @retval ::NRF_ERROR_DATA_SIZE The system attribute information did not fit into the provided buffer. + * @retval ::NRF_ERROR_NOT_FOUND No system attributes found. + */ +SVCALL(SD_BLE_GATTS_SYS_ATTR_GET, uint32_t, sd_ble_gatts_sys_attr_get(uint16_t conn_handle, uint8_t *p_sys_attr_data, uint16_t *p_len, uint32_t flags)); + + +/**@brief Retrieve the first valid user attribute handle. + * + * @param[out] p_handle Pointer to an integer where the handle will be stored. + * + * @retval ::NRF_SUCCESS Successfully retrieved the handle. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + */ +SVCALL(SD_BLE_GATTS_INITIAL_USER_HANDLE_GET, uint32_t, sd_ble_gatts_initial_user_handle_get(uint16_t *p_handle)); + +/**@brief Retrieve the attribute UUID and/or metadata. + * + * @param[in] handle Attribute handle + * @param[out] p_uuid UUID of the attribute. Use NULL to omit this field. + * @param[out] p_md Metadata of the attribute. Use NULL to omit this field. + * + * @retval ::NRF_SUCCESS Successfully retrieved the attribute metadata, + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameters supplied. Returned when both @c p_uuid and @c p_md are NULL. + * @retval ::NRF_ERROR_NOT_FOUND Attribute was not found. + */ +SVCALL(SD_BLE_GATTS_ATTR_GET, uint32_t, sd_ble_gatts_attr_get(uint16_t handle, ble_uuid_t * p_uuid, ble_gatts_attr_md_t * p_md)); + +/**@brief Reply to an ATT_MTU exchange request by sending an Exchange MTU Response to the client. + * + * @details This function is only used to reply to a @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST event. + * + * @details The SoftDevice sets ATT_MTU to the minimum of: + * - The Client RX MTU value from @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST, and + * - The Server RX MTU value. + * + * However, the SoftDevice never sets ATT_MTU lower than @ref BLE_GATT_ATT_MTU_DEFAULT. + * + * @mscs + * @mmsc{@ref BLE_GATTS_MTU_EXCHANGE} + * @endmscs + * + * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on. + * @param[in] server_rx_mtu Server RX MTU size. + * - The minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT. + * - The maximum value is @ref ble_gatt_conn_cfg_t::att_mtu in the connection configuration + * used for this connection. + * - The value must be equal to Client RX MTU size given in @ref sd_ble_gattc_exchange_mtu_request + * if an ATT_MTU exchange has already been performed in the other direction. + * + * @retval ::NRF_SUCCESS Successfully sent response to the client. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no ATT_MTU exchange request pending. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid Server RX MTU size supplied. + * @retval ::NRF_ERROR_TIMEOUT There has been a GATT procedure timeout. No new GATT procedure can be performed without reestablishing the connection. + */ +SVCALL(SD_BLE_GATTS_EXCHANGE_MTU_REPLY, uint32_t, sd_ble_gatts_exchange_mtu_reply(uint16_t conn_handle, uint16_t server_rx_mtu)); +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // BLE_GATTS_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_hci.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_hci.h new file mode 100644 index 0000000..f0dde9a --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_hci.h @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON + @{ +*/ + + +#ifndef BLE_HCI_H__ +#define BLE_HCI_H__ +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup BLE_HCI_STATUS_CODES Bluetooth status codes + * @{ */ + +#define BLE_HCI_STATUS_CODE_SUCCESS 0x00 /**< Success. */ +#define BLE_HCI_STATUS_CODE_UNKNOWN_BTLE_COMMAND 0x01 /**< Unknown BLE Command. */ +#define BLE_HCI_STATUS_CODE_UNKNOWN_CONNECTION_IDENTIFIER 0x02 /**< Unknown Connection Identifier. */ +/*0x03 Hardware Failure +0x04 Page Timeout +*/ +#define BLE_HCI_AUTHENTICATION_FAILURE 0x05 /**< Authentication Failure. */ +#define BLE_HCI_STATUS_CODE_PIN_OR_KEY_MISSING 0x06 /**< Pin or Key missing. */ +#define BLE_HCI_MEMORY_CAPACITY_EXCEEDED 0x07 /**< Memory Capacity Exceeded. */ +#define BLE_HCI_CONNECTION_TIMEOUT 0x08 /**< Connection Timeout. */ +/*0x09 Connection Limit Exceeded +0x0A Synchronous Connection Limit To A Device Exceeded +0x0B ACL Connection Already Exists*/ +#define BLE_HCI_STATUS_CODE_COMMAND_DISALLOWED 0x0C /**< Command Disallowed. */ +/*0x0D Connection Rejected due to Limited Resources +0x0E Connection Rejected Due To Security Reasons +0x0F Connection Rejected due to Unacceptable BD_ADDR +0x10 Connection Accept Timeout Exceeded +0x11 Unsupported Feature or Parameter Value*/ +#define BLE_HCI_STATUS_CODE_INVALID_BTLE_COMMAND_PARAMETERS 0x12 /**< Invalid BLE Command Parameters. */ +#define BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION 0x13 /**< Remote User Terminated Connection. */ +#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES 0x14 /**< Remote Device Terminated Connection due to low resources.*/ +#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF 0x15 /**< Remote Device Terminated Connection due to power off. */ +#define BLE_HCI_LOCAL_HOST_TERMINATED_CONNECTION 0x16 /**< Local Host Terminated Connection. */ +/* +0x17 Repeated Attempts +0x18 Pairing Not Allowed +0x19 Unknown LMP PDU +*/ +#define BLE_HCI_UNSUPPORTED_REMOTE_FEATURE 0x1A /**< Unsupported Remote Feature. */ +/* +0x1B SCO Offset Rejected +0x1C SCO Interval Rejected +0x1D SCO Air Mode Rejected*/ +#define BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS 0x1E /**< Invalid LMP Parameters. */ +#define BLE_HCI_STATUS_CODE_UNSPECIFIED_ERROR 0x1F /**< Unspecified Error. */ +/*0x20 Unsupported LMP Parameter Value +0x21 Role Change Not Allowed +*/ +#define BLE_HCI_STATUS_CODE_LMP_RESPONSE_TIMEOUT 0x22 /**< LMP Response Timeout. */ +#define BLE_HCI_STATUS_CODE_LMP_ERROR_TRANSACTION_COLLISION 0x23 /**< LMP Error Transaction Collision/LL Procedure Collision. */ +#define BLE_HCI_STATUS_CODE_LMP_PDU_NOT_ALLOWED 0x24 /**< LMP PDU Not Allowed. */ +/*0x25 Encryption Mode Not Acceptable +0x26 Link Key Can Not be Changed +0x27 Requested QoS Not Supported +*/ +#define BLE_HCI_INSTANT_PASSED 0x28 /**< Instant Passed. */ +#define BLE_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED 0x29 /**< Pairing with Unit Key Unsupported. */ +#define BLE_HCI_DIFFERENT_TRANSACTION_COLLISION 0x2A /**< Different Transaction Collision. */ +/* +0x2B Reserved +0x2C QoS Unacceptable Parameter +0x2D QoS Rejected +0x2E Channel Classification Not Supported +0x2F Insufficient Security +*/ +#define BLE_HCI_PARAMETER_OUT_OF_MANDATORY_RANGE 0x30 /**< Parameter Out Of Mandatory Range. */ +/* +0x31 Reserved +0x32 Role Switch Pending +0x33 Reserved +0x34 Reserved Slot Violation +0x35 Role Switch Failed +0x36 Extended Inquiry Response Too Large +0x37 Secure Simple Pairing Not Supported By Host. +0x38 Host Busy - Pairing +0x39 Connection Rejected due to No Suitable Channel Found*/ +#define BLE_HCI_CONTROLLER_BUSY 0x3A /**< Controller Busy. */ +#define BLE_HCI_CONN_INTERVAL_UNACCEPTABLE 0x3B /**< Connection Interval Unacceptable. */ +#define BLE_HCI_DIRECTED_ADVERTISER_TIMEOUT 0x3C /**< Directed Advertisement Timeout. */ +#define BLE_HCI_CONN_TERMINATED_DUE_TO_MIC_FAILURE 0x3D /**< Connection Terminated due to MIC Failure. */ +#define BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED 0x3E /**< Connection Failed to be Established. */ + +/** @} */ + + +#ifdef __cplusplus +} +#endif +#endif // BLE_HCI_H__ + +/** @} */ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_l2cap.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_l2cap.h new file mode 100644 index 0000000..eaeb4b7 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_l2cap.h @@ -0,0 +1,506 @@ +/* + * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_L2CAP Logical Link Control and Adaptation Protocol (L2CAP) + @{ + @brief Definitions and prototypes for the L2CAP interface. + */ + +#ifndef BLE_L2CAP_H__ +#define BLE_L2CAP_H__ + +#include +#include "nrf_svc.h" +#include "nrf_error.h" +#include "ble_ranges.h" +#include "ble_types.h" +#include "ble_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@addtogroup BLE_L2CAP_TERMINOLOGY Terminology + * @{ + * @details + * + * L2CAP SDU + * - A data unit that the application can send/receive to/from a peer. + * + * L2CAP PDU + * - A data unit that is exchanged between local and remote L2CAP entities. + * It consists of L2CAP protocol control information and payload fields. + * The payload field can contain an L2CAP SDU or a part of an L2CAP SDU. + * + * L2CAP MTU + * - The maximum length of an L2CAP SDU. + * + * L2CAP MPS + * - The maximum length of an L2CAP PDU payload field. + * + * Credits + * - A value indicating the number of L2CAP PDUs that the receiver of the credit can send to the peer. + * @} */ + +/**@addtogroup BLE_L2CAP_ENUMERATIONS Enumerations + * @{ */ + +/**@brief L2CAP API SVC numbers. */ +enum BLE_L2CAP_SVCS +{ + SD_BLE_L2CAP_CH_SETUP = BLE_L2CAP_SVC_BASE + 0, /**< Set up an L2CAP channel. */ + SD_BLE_L2CAP_CH_RELEASE = BLE_L2CAP_SVC_BASE + 1, /**< Release an L2CAP channel. */ + SD_BLE_L2CAP_CH_RX = BLE_L2CAP_SVC_BASE + 2, /**< Receive an SDU on an L2CAP channel. */ + SD_BLE_L2CAP_CH_TX = BLE_L2CAP_SVC_BASE + 3, /**< Transmit an SDU on an L2CAP channel. */ + SD_BLE_L2CAP_CH_FLOW_CONTROL = BLE_L2CAP_SVC_BASE + 4, /**< Advanced SDU reception flow control. */ +}; + +/**@brief L2CAP Event IDs. */ +enum BLE_L2CAP_EVTS +{ + BLE_L2CAP_EVT_CH_SETUP_REQUEST = BLE_L2CAP_EVT_BASE + 0, /**< L2CAP Channel Setup Request event. + \n See @ref ble_l2cap_evt_ch_setup_request_t. */ + BLE_L2CAP_EVT_CH_SETUP_REFUSED = BLE_L2CAP_EVT_BASE + 1, /**< L2CAP Channel Setup Refused event. + \n See @ref ble_l2cap_evt_ch_setup_refused_t. */ + BLE_L2CAP_EVT_CH_SETUP = BLE_L2CAP_EVT_BASE + 2, /**< L2CAP Channel Setup Completed event. + \n See @ref ble_l2cap_evt_ch_setup_t. */ + BLE_L2CAP_EVT_CH_RELEASED = BLE_L2CAP_EVT_BASE + 3, /**< L2CAP Channel Released event. + \n No additional event structure applies. */ + BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED = BLE_L2CAP_EVT_BASE + 4, /**< L2CAP Channel SDU data buffer released event. + \n See @ref ble_l2cap_evt_ch_sdu_buf_released_t. */ + BLE_L2CAP_EVT_CH_CREDIT = BLE_L2CAP_EVT_BASE + 5, /**< L2CAP Channel Credit received. + \n See @ref ble_l2cap_evt_ch_credit_t. */ + BLE_L2CAP_EVT_CH_RX = BLE_L2CAP_EVT_BASE + 6, /**< L2CAP Channel SDU received. + \n See @ref ble_l2cap_evt_ch_rx_t. */ + BLE_L2CAP_EVT_CH_TX = BLE_L2CAP_EVT_BASE + 7, /**< L2CAP Channel SDU transmitted. + \n See @ref ble_l2cap_evt_ch_tx_t. */ +}; + +/** @} */ + +/**@addtogroup BLE_L2CAP_DEFINES Defines + * @{ */ + +/**@brief Maximum number of L2CAP channels per connection. */ +#define BLE_L2CAP_CH_COUNT_MAX (64) + +/**@brief Minimum L2CAP MTU, in bytes. */ +#define BLE_L2CAP_MTU_MIN (23) + +/**@brief Minimum L2CAP MPS, in bytes. */ +#define BLE_L2CAP_MPS_MIN (23) + +/**@brief Invalid CID. */ +#define BLE_L2CAP_CID_INVALID (0x0000) + +/**@brief Default number of credits for @ref sd_ble_l2cap_ch_flow_control. */ +#define BLE_L2CAP_CREDITS_DEFAULT (1) + +/**@defgroup BLE_L2CAP_CH_SETUP_REFUSED_SRCS L2CAP channel setup refused sources + * @{ */ +#define BLE_L2CAP_CH_SETUP_REFUSED_SRC_LOCAL (0x01) /**< Local. */ +#define BLE_L2CAP_CH_SETUP_REFUSED_SRC_REMOTE (0x02) /**< Remote. */ + /** @} */ + + /** @defgroup BLE_L2CAP_CH_STATUS_CODES L2CAP channel status codes + * @{ */ +#define BLE_L2CAP_CH_STATUS_CODE_SUCCESS (0x0000) /**< Success. */ +#define BLE_L2CAP_CH_STATUS_CODE_LE_PSM_NOT_SUPPORTED (0x0002) /**< LE_PSM not supported. */ +#define BLE_L2CAP_CH_STATUS_CODE_NO_RESOURCES (0x0004) /**< No resources available. */ +#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_AUTHENTICATION (0x0005) /**< Insufficient authentication. */ +#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_AUTHORIZATION (0x0006) /**< Insufficient authorization. */ +#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_ENC_KEY_SIZE (0x0007) /**< Insufficient encryption key size. */ +#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_ENC (0x0008) /**< Insufficient encryption. */ +#define BLE_L2CAP_CH_STATUS_CODE_INVALID_SCID (0x0009) /**< Invalid Source CID. */ +#define BLE_L2CAP_CH_STATUS_CODE_SCID_ALLOCATED (0x000A) /**< Source CID already allocated. */ +#define BLE_L2CAP_CH_STATUS_CODE_UNACCEPTABLE_PARAMS (0x000B) /**< Unacceptable parameters. */ +#define BLE_L2CAP_CH_STATUS_CODE_NOT_UNDERSTOOD (0x8000) /**< Command Reject received instead of LE Credit Based Connection Response. */ +#define BLE_L2CAP_CH_STATUS_CODE_TIMEOUT (0xC000) /**< Operation timed out. */ +/** @} */ + +/** @} */ + +/**@addtogroup BLE_L2CAP_STRUCTURES Structures + * @{ */ + +/** + * @brief BLE L2CAP connection configuration parameters, set with @ref sd_ble_cfg_set. + * + * @note These parameters are set per connection, so all L2CAP channels created on this connection + * will have the same parameters. + * + * @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true: + * - rx_mps is smaller than @ref BLE_L2CAP_MPS_MIN. + * - tx_mps is smaller than @ref BLE_L2CAP_MPS_MIN. + * - ch_count is greater than @ref BLE_L2CAP_CH_COUNT_MAX. + * @retval ::NRF_ERROR_NO_MEM rx_mps or tx_mps is set too high. + */ +typedef struct +{ + uint16_t rx_mps; /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall + be able to receive on L2CAP channels on connections with this + configuration. The minimum value is @ref BLE_L2CAP_MPS_MIN. */ + uint16_t tx_mps; /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall + be able to transmit on L2CAP channels on connections with this + configuration. The minimum value is @ref BLE_L2CAP_MPS_MIN. */ + uint8_t rx_queue_size; /**< Number of SDU data buffers that can be queued for reception per + L2CAP channel. The minimum value is one. */ + uint8_t tx_queue_size; /**< Number of SDU data buffers that can be queued for transmission + per L2CAP channel. The minimum value is one. */ + uint8_t ch_count; /**< Number of L2CAP channels the application can create per connection + with this configuration. The default value is zero, the maximum + value is @ref BLE_L2CAP_CH_COUNT_MAX. + @note if this parameter is set to zero, all other parameters in + @ref ble_l2cap_conn_cfg_t are ignored. */ +} ble_l2cap_conn_cfg_t; + +/**@brief L2CAP channel RX parameters. */ +typedef struct +{ + uint16_t rx_mtu; /**< The maximum L2CAP SDU size, in bytes, that L2CAP shall be able to + receive on this L2CAP channel. + - Must be equal to or greater than @ref BLE_L2CAP_MTU_MIN. */ + uint16_t rx_mps; /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall be + able to receive on this L2CAP channel. + - Must be equal to or greater than @ref BLE_L2CAP_MPS_MIN. + - Must be equal to or less than @ref ble_l2cap_conn_cfg_t::rx_mps. */ + ble_data_t sdu_buf; /**< SDU data buffer for reception. + - If @ref ble_data_t::p_data is non-NULL, initial credits are + issued to the peer. + - If @ref ble_data_t::p_data is NULL, no initial credits are + issued to the peer. */ +} ble_l2cap_ch_rx_params_t; + +/**@brief L2CAP channel setup parameters. */ +typedef struct +{ + ble_l2cap_ch_rx_params_t rx_params; /**< L2CAP channel RX parameters. */ + uint16_t le_psm; /**< LE Protocol/Service Multiplexer. Used when requesting + setup of an L2CAP channel, ignored otherwise. */ + uint16_t status; /**< Status code, see @ref BLE_L2CAP_CH_STATUS_CODES. + Used when replying to a setup request of an L2CAP + channel, ignored otherwise. */ +} ble_l2cap_ch_setup_params_t; + +/**@brief L2CAP channel TX parameters. */ +typedef struct +{ + uint16_t tx_mtu; /**< The maximum L2CAP SDU size, in bytes, that L2CAP is able to + transmit on this L2CAP channel. */ + uint16_t peer_mps; /**< The maximum L2CAP PDU payload size, in bytes, that the peer is + able to receive on this L2CAP channel. */ + uint16_t tx_mps; /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP is able + to transmit on this L2CAP channel. This is effective tx_mps, + selected by the SoftDevice as + MIN( @ref ble_l2cap_ch_tx_params_t::peer_mps, @ref ble_l2cap_conn_cfg_t::tx_mps ) */ + uint16_t credits; /**< Initial credits given by the peer. */ +} ble_l2cap_ch_tx_params_t; + +/**@brief L2CAP Channel Setup Request event. */ +typedef struct +{ + ble_l2cap_ch_tx_params_t tx_params; /**< L2CAP channel TX parameters. */ + uint16_t le_psm; /**< LE Protocol/Service Multiplexer. */ +} ble_l2cap_evt_ch_setup_request_t; + +/**@brief L2CAP Channel Setup Refused event. */ +typedef struct +{ + uint8_t source; /**< Source, see @ref BLE_L2CAP_CH_SETUP_REFUSED_SRCS */ + uint16_t status; /**< Status code, see @ref BLE_L2CAP_CH_STATUS_CODES */ +} ble_l2cap_evt_ch_setup_refused_t; + +/**@brief L2CAP Channel Setup Completed event. */ +typedef struct +{ + ble_l2cap_ch_tx_params_t tx_params; /**< L2CAP channel TX parameters. */ +} ble_l2cap_evt_ch_setup_t; + +/**@brief L2CAP Channel SDU Data Duffer Released event. */ +typedef struct +{ + ble_data_t sdu_buf; /**< Returned reception or transmission SDU data buffer. The SoftDevice + returns SDU data buffers supplied by the application, which have + not yet been returned previously via a @ref BLE_L2CAP_EVT_CH_RX or + @ref BLE_L2CAP_EVT_CH_TX event. */ +} ble_l2cap_evt_ch_sdu_buf_released_t; + +/**@brief L2CAP Channel Credit received event. */ +typedef struct +{ + uint16_t credits; /**< Additional credits given by the peer. */ +} ble_l2cap_evt_ch_credit_t; + +/**@brief L2CAP Channel received SDU event. */ +typedef struct +{ + uint16_t sdu_len; /**< Total SDU length, in bytes. */ + ble_data_t sdu_buf; /**< SDU data buffer. + @note If there is not enough space in the buffer + (sdu_buf.len < sdu_len) then the rest of the SDU will be + silently discarded by the SoftDevice. */ +} ble_l2cap_evt_ch_rx_t; + +/**@brief L2CAP Channel transmitted SDU event. */ +typedef struct +{ + ble_data_t sdu_buf; /**< SDU data buffer. */ +} ble_l2cap_evt_ch_tx_t; + +/**@brief L2CAP event structure. */ +typedef struct +{ + uint16_t conn_handle; /**< Connection Handle on which the event occured. */ + uint16_t local_cid; /**< Local Channel ID of the L2CAP channel, or + @ref BLE_L2CAP_CID_INVALID if not present. */ + union + { + ble_l2cap_evt_ch_setup_request_t ch_setup_request; /**< L2CAP Channel Setup Request Event Parameters. */ + ble_l2cap_evt_ch_setup_refused_t ch_setup_refused; /**< L2CAP Channel Setup Refused Event Parameters. */ + ble_l2cap_evt_ch_setup_t ch_setup; /**< L2CAP Channel Setup Completed Event Parameters. */ + ble_l2cap_evt_ch_sdu_buf_released_t ch_sdu_buf_released;/**< L2CAP Channel SDU Data Buffer Released Event Parameters. */ + ble_l2cap_evt_ch_credit_t credit; /**< L2CAP Channel Credit Received Event Parameters. */ + ble_l2cap_evt_ch_rx_t rx; /**< L2CAP Channel SDU Received Event Parameters. */ + ble_l2cap_evt_ch_tx_t tx; /**< L2CAP Channel SDU Transmitted Event Parameters. */ + } params; /**< Event Parameters. */ +} ble_l2cap_evt_t; + +/** @} */ + +/**@addtogroup BLE_L2CAP_FUNCTIONS Functions + * @{ */ + +/**@brief Set up an L2CAP channel. + * + * @details This function is used to: + * - Request setup of an L2CAP channel: sends an LE Credit Based Connection Request packet to a peer. + * - Reply to a setup request of an L2CAP channel (if called in response to a + * @ref BLE_L2CAP_EVT_CH_SETUP_REQUEST event): sends an LE Credit Based Connection + * Response packet to a peer. + * + * @note A call to this function will require the application to keep the SDU data buffer alive + * until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_RX or + * @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event. + * + * @events + * @event{@ref BLE_L2CAP_EVT_CH_SETUP, Setup successful.} + * @event{@ref BLE_L2CAP_EVT_CH_SETUP_REFUSED, Setup failed.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_SETUP_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in,out] p_local_cid Pointer to a uint16_t containing Local Channel ID of the L2CAP channel: + * - As input: @ref BLE_L2CAP_CID_INVALID when requesting setup of an L2CAP + * channel or local_cid provided in the @ref BLE_L2CAP_EVT_CH_SETUP_REQUEST + * event when replying to a setup request of an L2CAP channel. + * - As output: local_cid for this channel. + * @param[in] p_params L2CAP channel parameters. + * + * @retval ::NRF_SUCCESS Successfully queued request or response for transmission. + * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. + * @retval ::NRF_ERROR_INVALID_LENGTH Supplied higher rx_mps than has been configured on this link. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (L2CAP channel already set up). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + * @retval ::NRF_ERROR_RESOURCES The limit has been reached for available L2CAP channels, + * see @ref ble_l2cap_conn_cfg_t::ch_count. + */ +SVCALL(SD_BLE_L2CAP_CH_SETUP, uint32_t, sd_ble_l2cap_ch_setup(uint16_t conn_handle, uint16_t *p_local_cid, ble_l2cap_ch_setup_params_t const *p_params)); + +/**@brief Release an L2CAP channel. + * + * @details This sends a Disconnection Request packet to a peer. + * + * @events + * @event{@ref BLE_L2CAP_EVT_CH_RELEASED, Release complete.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_RELEASE_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in] local_cid Local Channel ID of the L2CAP channel. + * + * @retval ::NRF_SUCCESS Successfully queued request for transmission. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (Setup or release is + * in progress for the L2CAP channel). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + */ +SVCALL(SD_BLE_L2CAP_CH_RELEASE, uint32_t, sd_ble_l2cap_ch_release(uint16_t conn_handle, uint16_t local_cid)); + +/**@brief Receive an SDU on an L2CAP channel. + * + * @details This may issue additional credits to the peer using an LE Flow Control Credit packet. + * + * @note A call to this function will require the application to keep the memory pointed by + * @ref ble_data_t::p_data alive until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_RX + * or @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event. + * + * @note The SoftDevice can queue up to @ref ble_l2cap_conn_cfg_t::rx_queue_size SDU data buffers + * for reception per L2CAP channel. + * + * @events + * @event{@ref BLE_L2CAP_EVT_CH_RX, The SDU is received.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_RX_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in] local_cid Local Channel ID of the L2CAP channel. + * @param[in] p_sdu_buf Pointer to the SDU data buffer. + * + * @retval ::NRF_SUCCESS Buffer accepted. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (Setup or release is + * in progress for an L2CAP channel). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + * @retval ::NRF_ERROR_RESOURCES Too many SDU data buffers supplied. Wait for a + * @ref BLE_L2CAP_EVT_CH_RX event and retry. + */ +SVCALL(SD_BLE_L2CAP_CH_RX, uint32_t, sd_ble_l2cap_ch_rx(uint16_t conn_handle, uint16_t local_cid, ble_data_t const *p_sdu_buf)); + +/**@brief Transmit an SDU on an L2CAP channel. + * + * @note A call to this function will require the application to keep the memory pointed by + * @ref ble_data_t::p_data alive until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_TX + * or @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event. + * + * @note The SoftDevice can queue up to @ref ble_l2cap_conn_cfg_t::tx_queue_size SDUs for + * transmission per L2CAP channel. + * + * @note The application can keep track of the available credits for transmission by following + * the procedure below: + * - Store initial credits given by the peer in a variable. + * (Initial credits are provided in a @ref BLE_L2CAP_EVT_CH_SETUP event.) + * - Decrement the variable, which stores the currently available credits, by + * ceiling((@ref ble_data_t::len + 2) / tx_mps) when a call to this function returns + * @ref NRF_SUCCESS. (tx_mps is provided in a @ref BLE_L2CAP_EVT_CH_SETUP event.) + * - Increment the variable, which stores the currently available credits, by additional + * credits given by the peer in a @ref BLE_L2CAP_EVT_CH_CREDIT event. + * + * @events + * @event{@ref BLE_L2CAP_EVT_CH_TX, The SDU is transmitted.} + * @endevents + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_TX_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in] local_cid Local Channel ID of the L2CAP channel. + * @param[in] p_sdu_buf Pointer to the SDU data buffer. + * + * @retval ::NRF_SUCCESS Successfully queued L2CAP SDU for transmission. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (Setup or release is + * in progress for the L2CAP channel). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + * @retval ::NRF_ERROR_DATA_SIZE Invalid SDU length supplied, must not be more than + * @ref ble_l2cap_ch_tx_params_t::tx_mtu provided in + * @ref BLE_L2CAP_EVT_CH_SETUP event. + * @retval ::NRF_ERROR_RESOURCES Too many SDUs queued for transmission. Wait for a + * @ref BLE_L2CAP_EVT_CH_TX event and retry. + */ +SVCALL(SD_BLE_L2CAP_CH_TX, uint32_t, sd_ble_l2cap_ch_tx(uint16_t conn_handle, uint16_t local_cid, ble_data_t const *p_sdu_buf)); + +/**@brief Advanced SDU reception flow control. + * + * @details Adjust the way the SoftDevice issues credits to the peer. + * This may issue additional credits to the peer using an LE Flow Control Credit packet. + * + * @mscs + * @mmsc{@ref BLE_L2CAP_CH_FLOW_CONTROL_MSC} + * @endmscs + * + * @param[in] conn_handle Connection Handle. + * @param[in] local_cid Local Channel ID of the L2CAP channel or @ref BLE_L2CAP_CID_INVALID to set + * the value that will be used for newly created channels. + * @param[in] credits Number of credits that the SoftDevice will make sure the peer has every + * time it starts using a new reception buffer. + * - @ref BLE_L2CAP_CREDITS_DEFAULT is the default value the SoftDevice will + * use if this function is not called. + * - If set to zero, the SoftDevice will stop issuing credits for new reception + * buffers the application provides or has provided. SDU reception that is + * currently ongoing will be allowed to complete. + * @param[out] p_credits NULL or pointer to a uint16_t. If a valid pointer is provided, it will be + * written by the SoftDevice with the number of credits that is or will be + * available to the peer. If the value written by the SoftDevice is 0 when + * credits parameter was set to 0, the peer will not be able to send more + * data until more credits are provided by calling this function again with + * credits > 0. This parameter is ignored when local_cid is set to + * @ref BLE_L2CAP_CID_INVALID. + * + * @note Application should take care when setting number of credits higher than default value. In + * this case the application must make sure that the SoftDevice always has reception buffers + * available (see @ref sd_ble_l2cap_ch_rx) for that channel. If the SoftDevice does not have + * such buffers available, packets may be NACKed on the Link Layer and all Bluetooth traffic + * on the connection handle may be stalled until the SoftDevice again has an available + * reception buffer. This applies even if the application has used this call to set the + * credits back to default, or zero. + * + * @retval ::NRF_SUCCESS Flow control parameters accepted. + * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied. + * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle. + * @retval ::NRF_ERROR_INVALID_STATE Invalid State to perform operation (Setup or release is + * in progress for an L2CAP channel). + * @retval ::NRF_ERROR_NOT_FOUND CID not found. + */ +SVCALL(SD_BLE_L2CAP_CH_FLOW_CONTROL, uint32_t, sd_ble_l2cap_ch_flow_control(uint16_t conn_handle, uint16_t local_cid, uint16_t credits, uint16_t *p_credits)); + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // BLE_L2CAP_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_ranges.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_ranges.h new file mode 100644 index 0000000..0935bca --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_ranges.h @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2012 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON + @{ + @defgroup ble_ranges Module specific SVC, event and option number subranges + @{ + + @brief Definition of SVC, event and option number subranges for each API module. + + @note + SVCs, event and option numbers are split into subranges for each API module. + Each module receives its entire allocated range of SVC calls, whether implemented or not, + but return BLE_ERROR_NOT_SUPPORTED for unimplemented or undefined calls in its range. + + Note that the symbols BLE__SVC_LAST is the end of the allocated SVC range, + rather than the last SVC function call actually defined and implemented. + + Specific SVC, event and option values are defined in each module's ble_.h file, + which defines names of each individual SVC code based on the range start value. +*/ + +#ifndef BLE_RANGES_H__ +#define BLE_RANGES_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define BLE_SVC_BASE 0x60 /**< Common BLE SVC base. */ +#define BLE_SVC_LAST 0x6B /**< Common BLE SVC last. */ + +#define BLE_GAP_SVC_BASE 0x6C /**< GAP BLE SVC base. */ +#define BLE_GAP_SVC_LAST 0x9A /**< GAP BLE SVC last. */ + +#define BLE_GATTC_SVC_BASE 0x9B /**< GATTC BLE SVC base. */ +#define BLE_GATTC_SVC_LAST 0xA7 /**< GATTC BLE SVC last. */ + +#define BLE_GATTS_SVC_BASE 0xA8 /**< GATTS BLE SVC base. */ +#define BLE_GATTS_SVC_LAST 0xB7 /**< GATTS BLE SVC last. */ + +#define BLE_L2CAP_SVC_BASE 0xB8 /**< L2CAP BLE SVC base. */ +#define BLE_L2CAP_SVC_LAST 0xBF /**< L2CAP BLE SVC last. */ + + +#define BLE_EVT_INVALID 0x00 /**< Invalid BLE Event. */ + +#define BLE_EVT_BASE 0x01 /**< Common BLE Event base. */ +#define BLE_EVT_LAST 0x0F /**< Common BLE Event last. */ + +#define BLE_GAP_EVT_BASE 0x10 /**< GAP BLE Event base. */ +#define BLE_GAP_EVT_LAST 0x2F /**< GAP BLE Event last. */ + +#define BLE_GATTC_EVT_BASE 0x30 /**< GATTC BLE Event base. */ +#define BLE_GATTC_EVT_LAST 0x4F /**< GATTC BLE Event last. */ + +#define BLE_GATTS_EVT_BASE 0x50 /**< GATTS BLE Event base. */ +#define BLE_GATTS_EVT_LAST 0x6F /**< GATTS BLE Event last. */ + +#define BLE_L2CAP_EVT_BASE 0x70 /**< L2CAP BLE Event base. */ +#define BLE_L2CAP_EVT_LAST 0x8F /**< L2CAP BLE Event last. */ + + +#define BLE_OPT_INVALID 0x00 /**< Invalid BLE Option. */ + +#define BLE_OPT_BASE 0x01 /**< Common BLE Option base. */ +#define BLE_OPT_LAST 0x1F /**< Common BLE Option last. */ + +#define BLE_GAP_OPT_BASE 0x20 /**< GAP BLE Option base. */ +#define BLE_GAP_OPT_LAST 0x3F /**< GAP BLE Option last. */ + +#define BLE_GATT_OPT_BASE 0x40 /**< GATT BLE Option base. */ +#define BLE_GATT_OPT_LAST 0x5F /**< GATT BLE Option last. */ + +#define BLE_GATTC_OPT_BASE 0x60 /**< GATTC BLE Option base. */ +#define BLE_GATTC_OPT_LAST 0x7F /**< GATTC BLE Option last. */ + +#define BLE_GATTS_OPT_BASE 0x80 /**< GATTS BLE Option base. */ +#define BLE_GATTS_OPT_LAST 0x9F /**< GATTS BLE Option last. */ + +#define BLE_L2CAP_OPT_BASE 0xA0 /**< L2CAP BLE Option base. */ +#define BLE_L2CAP_OPT_LAST 0xBF /**< L2CAP BLE Option last. */ + + +#define BLE_CFG_INVALID 0x00 /**< Invalid BLE configuration. */ + +#define BLE_CFG_BASE 0x01 /**< Common BLE configuration base. */ +#define BLE_CFG_LAST 0x1F /**< Common BLE configuration last. */ + +#define BLE_CONN_CFG_BASE 0x20 /**< BLE connection configuration base. */ +#define BLE_CONN_CFG_LAST 0x3F /**< BLE connection configuration last. */ + +#define BLE_GAP_CFG_BASE 0x40 /**< GAP BLE configuration base. */ +#define BLE_GAP_CFG_LAST 0x5F /**< GAP BLE configuration last. */ + +#define BLE_GATT_CFG_BASE 0x60 /**< GATT BLE configuration base. */ +#define BLE_GATT_CFG_LAST 0x7F /**< GATT BLE configuration last. */ + +#define BLE_GATTC_CFG_BASE 0x80 /**< GATTC BLE configuration base. */ +#define BLE_GATTC_CFG_LAST 0x9F /**< GATTC BLE configuration last. */ + +#define BLE_GATTS_CFG_BASE 0xA0 /**< GATTS BLE configuration base. */ +#define BLE_GATTS_CFG_LAST 0xBF /**< GATTS BLE configuration last. */ + +#define BLE_L2CAP_CFG_BASE 0xC0 /**< L2CAP BLE configuration base. */ +#define BLE_L2CAP_CFG_LAST 0xDF /**< L2CAP BLE configuration last. */ + + + + + +#ifdef __cplusplus +} +#endif +#endif /* BLE_RANGES_H__ */ + +/** + @} + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_types.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_types.h new file mode 100644 index 0000000..88c9318 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/ble_types.h @@ -0,0 +1,215 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup BLE_COMMON + @{ + @defgroup ble_types Common types and macro definitions + @{ + + @brief Common types and macro definitions for the BLE SoftDevice. + */ + +#ifndef BLE_TYPES_H__ +#define BLE_TYPES_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup BLE_TYPES_DEFINES Defines + * @{ */ + +/** @defgroup BLE_CONN_HANDLES BLE Connection Handles + * @{ */ +#define BLE_CONN_HANDLE_INVALID 0xFFFF /**< Invalid Connection Handle. */ +#define BLE_CONN_HANDLE_ALL 0xFFFE /**< Applies to all Connection Handles. */ +/** @} */ + + +/** @defgroup BLE_UUID_VALUES Assigned Values for BLE UUIDs + * @{ */ +/* Generic UUIDs, applicable to all services */ +#define BLE_UUID_UNKNOWN 0x0000 /**< Reserved UUID. */ +#define BLE_UUID_SERVICE_PRIMARY 0x2800 /**< Primary Service. */ +#define BLE_UUID_SERVICE_SECONDARY 0x2801 /**< Secondary Service. */ +#define BLE_UUID_SERVICE_INCLUDE 0x2802 /**< Include. */ +#define BLE_UUID_CHARACTERISTIC 0x2803 /**< Characteristic. */ +#define BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP 0x2900 /**< Characteristic Extended Properties Descriptor. */ +#define BLE_UUID_DESCRIPTOR_CHAR_USER_DESC 0x2901 /**< Characteristic User Description Descriptor. */ +#define BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG 0x2902 /**< Client Characteristic Configuration Descriptor. */ +#define BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG 0x2903 /**< Server Characteristic Configuration Descriptor. */ +#define BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT 0x2904 /**< Characteristic Presentation Format Descriptor. */ +#define BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT 0x2905 /**< Characteristic Aggregate Format Descriptor. */ +/* GATT specific UUIDs */ +#define BLE_UUID_GATT 0x1801 /**< Generic Attribute Profile. */ +#define BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED 0x2A05 /**< Service Changed Characteristic. */ +/* GAP specific UUIDs */ +#define BLE_UUID_GAP 0x1800 /**< Generic Access Profile. */ +#define BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME 0x2A00 /**< Device Name Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE 0x2A01 /**< Appearance Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR 0x2A03 /**< Reconnection Address Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_PPCP 0x2A04 /**< Peripheral Preferred Connection Parameters Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_CAR 0x2AA6 /**< Central Address Resolution Characteristic. */ +#define BLE_UUID_GAP_CHARACTERISTIC_RPA_ONLY 0x2AC9 /**< Resolvable Private Address Only Characteristic. */ +/** @} */ + + +/** @defgroup BLE_UUID_TYPES Types of UUID + * @{ */ +#define BLE_UUID_TYPE_UNKNOWN 0x00 /**< Invalid UUID type. */ +#define BLE_UUID_TYPE_BLE 0x01 /**< Bluetooth SIG UUID (16-bit). */ +#define BLE_UUID_TYPE_VENDOR_BEGIN 0x02 /**< Vendor UUID types start at this index (128-bit). */ +/** @} */ + + +/** @defgroup BLE_APPEARANCES Bluetooth Appearance values + * @note Retrieved from http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml + * @{ */ +#define BLE_APPEARANCE_UNKNOWN 0 /**< Unknown. */ +#define BLE_APPEARANCE_GENERIC_PHONE 64 /**< Generic Phone. */ +#define BLE_APPEARANCE_GENERIC_COMPUTER 128 /**< Generic Computer. */ +#define BLE_APPEARANCE_GENERIC_WATCH 192 /**< Generic Watch. */ +#define BLE_APPEARANCE_WATCH_SPORTS_WATCH 193 /**< Watch: Sports Watch. */ +#define BLE_APPEARANCE_GENERIC_CLOCK 256 /**< Generic Clock. */ +#define BLE_APPEARANCE_GENERIC_DISPLAY 320 /**< Generic Display. */ +#define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL 384 /**< Generic Remote Control. */ +#define BLE_APPEARANCE_GENERIC_EYE_GLASSES 448 /**< Generic Eye-glasses. */ +#define BLE_APPEARANCE_GENERIC_TAG 512 /**< Generic Tag. */ +#define BLE_APPEARANCE_GENERIC_KEYRING 576 /**< Generic Keyring. */ +#define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER 640 /**< Generic Media Player. */ +#define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER 704 /**< Generic Barcode Scanner. */ +#define BLE_APPEARANCE_GENERIC_THERMOMETER 768 /**< Generic Thermometer. */ +#define BLE_APPEARANCE_THERMOMETER_EAR 769 /**< Thermometer: Ear. */ +#define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR 832 /**< Generic Heart rate Sensor. */ +#define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT 833 /**< Heart Rate Sensor: Heart Rate Belt. */ +#define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE 896 /**< Generic Blood Pressure. */ +#define BLE_APPEARANCE_BLOOD_PRESSURE_ARM 897 /**< Blood Pressure: Arm. */ +#define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST 898 /**< Blood Pressure: Wrist. */ +#define BLE_APPEARANCE_GENERIC_HID 960 /**< Human Interface Device (HID). */ +#define BLE_APPEARANCE_HID_KEYBOARD 961 /**< Keyboard (HID Subtype). */ +#define BLE_APPEARANCE_HID_MOUSE 962 /**< Mouse (HID Subtype). */ +#define BLE_APPEARANCE_HID_JOYSTICK 963 /**< Joystick (HID Subtype). */ +#define BLE_APPEARANCE_HID_GAMEPAD 964 /**< Gamepad (HID Subtype). */ +#define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE 965 /**< Digitizer Tablet (HID Subtype). */ +#define BLE_APPEARANCE_HID_CARD_READER 966 /**< Card Reader (HID Subtype). */ +#define BLE_APPEARANCE_HID_DIGITAL_PEN 967 /**< Digital Pen (HID Subtype). */ +#define BLE_APPEARANCE_HID_BARCODE 968 /**< Barcode Scanner (HID Subtype). */ +#define BLE_APPEARANCE_GENERIC_GLUCOSE_METER 1024 /**< Generic Glucose Meter. */ +#define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR 1088 /**< Generic Running Walking Sensor. */ +#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE 1089 /**< Running Walking Sensor: In-Shoe. */ +#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE 1090 /**< Running Walking Sensor: On-Shoe. */ +#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP 1091 /**< Running Walking Sensor: On-Hip. */ +#define BLE_APPEARANCE_GENERIC_CYCLING 1152 /**< Generic Cycling. */ +#define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER 1153 /**< Cycling: Cycling Computer. */ +#define BLE_APPEARANCE_CYCLING_SPEED_SENSOR 1154 /**< Cycling: Speed Sensor. */ +#define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR 1155 /**< Cycling: Cadence Sensor. */ +#define BLE_APPEARANCE_CYCLING_POWER_SENSOR 1156 /**< Cycling: Power Sensor. */ +#define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR 1157 /**< Cycling: Speed and Cadence Sensor. */ +#define BLE_APPEARANCE_GENERIC_PULSE_OXIMETER 3136 /**< Generic Pulse Oximeter. */ +#define BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP 3137 /**< Fingertip (Pulse Oximeter subtype). */ +#define BLE_APPEARANCE_PULSE_OXIMETER_WRIST_WORN 3138 /**< Wrist Worn(Pulse Oximeter subtype). */ +#define BLE_APPEARANCE_GENERIC_WEIGHT_SCALE 3200 /**< Generic Weight Scale. */ +#define BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACT 5184 /**< Generic Outdoor Sports Activity. */ +#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_DISP 5185 /**< Location Display Device (Outdoor Sports Activity subtype). */ +#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_DISP 5186 /**< Location and Navigation Display Device (Outdoor Sports Activity subtype). */ +#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD 5187 /**< Location Pod (Outdoor Sports Activity subtype). */ +#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD 5188 /**< Location and Navigation Pod (Outdoor Sports Activity subtype). */ +/** @} */ + +/** @brief Set .type and .uuid fields of ble_uuid_struct to specified UUID value. */ +#define BLE_UUID_BLE_ASSIGN(instance, value) do {\ + instance.type = BLE_UUID_TYPE_BLE; \ + instance.uuid = value;} while(0) + +/** @brief Copy type and uuid members from src to dst ble_uuid_t pointer. Both pointers must be valid/non-null. */ +#define BLE_UUID_COPY_PTR(dst, src) do {\ + (dst)->type = (src)->type; \ + (dst)->uuid = (src)->uuid;} while(0) + +/** @brief Copy type and uuid members from src to dst ble_uuid_t struct. */ +#define BLE_UUID_COPY_INST(dst, src) do {\ + (dst).type = (src).type; \ + (dst).uuid = (src).uuid;} while(0) + +/** @brief Compare for equality both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */ +#define BLE_UUID_EQ(p_uuid1, p_uuid2) \ + (((p_uuid1)->type == (p_uuid2)->type) && ((p_uuid1)->uuid == (p_uuid2)->uuid)) + +/** @brief Compare for difference both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */ +#define BLE_UUID_NEQ(p_uuid1, p_uuid2) \ + (((p_uuid1)->type != (p_uuid2)->type) || ((p_uuid1)->uuid != (p_uuid2)->uuid)) + +/** @} */ + +/** @addtogroup BLE_TYPES_STRUCTURES Structures + * @{ */ + +/** @brief 128 bit UUID values. */ +typedef struct +{ + uint8_t uuid128[16]; /**< Little-Endian UUID bytes. */ +} ble_uuid128_t; + +/** @brief Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs. */ +typedef struct +{ + uint16_t uuid; /**< 16-bit UUID value or octets 12-13 of 128-bit UUID. */ + uint8_t type; /**< UUID type, see @ref BLE_UUID_TYPES. If type is @ref BLE_UUID_TYPE_UNKNOWN, the value of uuid is undefined. */ +} ble_uuid_t; + +/**@brief Data structure. */ +typedef struct +{ + uint8_t *p_data; /**< Pointer to the data buffer provided to/from the application. */ + uint16_t len; /**< Length of the data buffer, in bytes. */ +} ble_data_t; + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* BLE_TYPES_H__ */ + +/** + @} + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf52/nrf_mbr.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf52/nrf_mbr.h new file mode 100644 index 0000000..1b24874 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf52/nrf_mbr.h @@ -0,0 +1,242 @@ +/* + * Copyright (c) 2014 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @defgroup nrf_mbr_api Master Boot Record API + @{ + + @brief APIs for updating SoftDevice and BootLoader + +*/ + +#ifndef NRF_MBR_H__ +#define NRF_MBR_H__ + +#include "nrf_svc.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup NRF_MBR_DEFINES Defines + * @{ */ + +/**@brief MBR SVC Base number. */ +#define MBR_SVC_BASE (0x18) + +/**@brief Page size in words. */ +#define MBR_PAGE_SIZE_IN_WORDS (1024) + +/** @brief The size that must be reserved for the MBR when a SoftDevice is written to flash. +This is the offset where the first byte of the SoftDevice hex file is written.*/ +#define MBR_SIZE (0x1000) + +/** @} */ + +/** @addtogroup NRF_MBR_ENUMS Enumerations + * @{ */ + +/**@brief nRF Master Boot Record API SVC numbers. */ +enum NRF_MBR_SVCS +{ + SD_MBR_COMMAND = MBR_SVC_BASE, /**< ::sd_mbr_command */ +}; + +/**@brief Possible values for ::sd_mbr_command_t.command */ +enum NRF_MBR_COMMANDS +{ + SD_MBR_COMMAND_COPY_BL, /**< Copy a new BootLoader. @see ::sd_mbr_command_copy_bl_t*/ + SD_MBR_COMMAND_COPY_SD, /**< Copy a new SoftDevice. @see ::sd_mbr_command_copy_sd_t*/ + SD_MBR_COMMAND_INIT_SD, /**< Initialize forwarding interrupts to SD, and run reset function in SD. Does not require any parameters in ::sd_mbr_command_t params.*/ + SD_MBR_COMMAND_COMPARE, /**< This command works like memcmp. @see ::sd_mbr_command_compare_t*/ + SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET, /**< Change the address the MBR starts after a reset. @see ::sd_mbr_command_vector_table_base_set_t*/ + SD_MBR_COMMAND_RESERVED, + SD_MBR_COMMAND_IRQ_FORWARD_ADDRESS_SET, /**< Start forwarding all interrupts to this address. @see ::sd_mbr_command_irq_forward_address_set_t*/ +}; + +/** @} */ + +/** @addtogroup NRF_MBR_TYPES Types + * @{ */ + +/**@brief This command copies part of a new SoftDevice + * + * The destination area is erased before copying. + * If dst is in the middle of a flash page, that whole flash page will be erased. + * If (dst+len) is in the middle of a flash page, that whole flash page will be erased. + * + * The user of this function is responsible for setting the BPROT registers. + * + * @retval ::NRF_SUCCESS indicates that the contents of the memory blocks where copied correctly. + * @retval ::NRF_ERROR_INTERNAL indicates that the contents of the memory blocks where not verified correctly after copying. + */ +typedef struct +{ + uint32_t *src; /**< Pointer to the source of data to be copied.*/ + uint32_t *dst; /**< Pointer to the destination where the content is to be copied.*/ + uint32_t len; /**< Number of 32 bit words to copy. Must be a multiple of @ref MBR_PAGE_SIZE_IN_WORDS words.*/ +} sd_mbr_command_copy_sd_t; + + +/**@brief This command works like memcmp, but takes the length in words. + * + * @retval ::NRF_SUCCESS indicates that the contents of both memory blocks are equal. + * @retval ::NRF_ERROR_NULL indicates that the contents of the memory blocks are not equal. + */ +typedef struct +{ + uint32_t *ptr1; /**< Pointer to block of memory. */ + uint32_t *ptr2; /**< Pointer to block of memory. */ + uint32_t len; /**< Number of 32 bit words to compare.*/ +} sd_mbr_command_compare_t; + + +/**@brief This command copies a new BootLoader. + * + * With this command, destination of BootLoader is always the address written in + * NRF_UICR->BOOTADDR. + * + * Destination is erased by this function. + * If (destination+bl_len) is in the middle of a flash page, that whole flash page will be erased. + * + * This function will use the flash protect peripheral (BPROT or ACL) to protect the flash that is + * not intended to be written. + * + * On success, this function will not return. It will start the new BootLoader from reset-vector as normal. + * + * @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen. + * @retval ::NRF_ERROR_FORBIDDEN if NRF_UICR->BOOTADDR is not set. + * @retval ::NRF_ERROR_INVALID_LENGTH if parameters attempts to read or write outside flash area. + * @retval ::NRF_ERROR_NO_MEM if no parameter page is provided (see SoftDevice Specification for more info) + */ +typedef struct +{ + uint32_t *bl_src; /**< Pointer to the source of the Bootloader to be be copied.*/ + uint32_t bl_len; /**< Number of 32 bit words to copy for BootLoader. */ +} sd_mbr_command_copy_bl_t; + +/**@brief Change the address the MBR starts after a reset + * + * Once this function has been called, this address is where the MBR will start to forward + * interrupts to after a reset. + * + * To restore default forwarding this function should be called with @ref address set to 0. The + * MBR will then start forwarding interrupts to the address in NFR_UICR->BOOTADDR or to the + * SoftDevice if the BOOTADDR is not set. + * + * On success, this function will not return. It will reset the device. + * + * @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen. + * @retval ::NRF_ERROR_INVALID_ADDR if parameter address is outside of the flash size. + * @retval ::NRF_ERROR_NO_MEM if no parameter page is provided (see SoftDevice Specification for more info) + */ +typedef struct +{ + uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/ +} sd_mbr_command_vector_table_base_set_t; + +/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the MBR + * + * Unlike sd_mbr_command_vector_table_base_set_t, this function does not reset, and it does not + * change where the MBR starts after reset. + * + * @retval ::NRF_SUCCESS + */ +typedef struct +{ + uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/ +} sd_mbr_command_irq_forward_address_set_t; + +/**@brief Input structure containing data used when calling ::sd_mbr_command + * + * Depending on what command value that is set, the corresponding params value type must also be + * set. See @ref NRF_MBR_COMMANDS for command types and corresponding params value type. If command + * @ref SD_MBR_COMMAND_INIT_SD is set, it is not necessary to set any values under params. + */ +typedef struct +{ + uint32_t command; /**< Type of command to be issued. See @ref NRF_MBR_COMMANDS. */ + union + { + sd_mbr_command_copy_sd_t copy_sd; /**< Parameters for copy SoftDevice.*/ + sd_mbr_command_compare_t compare; /**< Parameters for verify.*/ + sd_mbr_command_copy_bl_t copy_bl; /**< Parameters for copy BootLoader. Requires parameter page. */ + sd_mbr_command_vector_table_base_set_t base_set; /**< Parameters for vector table base set. Requires parameter page.*/ + sd_mbr_command_irq_forward_address_set_t irq_forward_address_set; /**< Parameters for irq forward address set*/ + } params; /**< Command parameters. */ +} sd_mbr_command_t; + +/** @} */ + +/** @addtogroup NRF_MBR_FUNCTIONS Functions + * @{ */ + +/**@brief Issue Master Boot Record commands + * + * Commands used when updating a SoftDevice and bootloader. + * + * The @ref SD_MBR_COMMAND_COPY_BL and @ref SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET requires + * parameters to be retained by the MBR when resetting the IC. This is done in a separate flash + * page provided by the application. The UICR register UICR.NRFFW[1] must be set to an address + * corresponding to a page in the application flash space. This page will be cleared by the MBR and + * used to store the command before reset. When the UICR.NRFFW[1] field is set the page it refers + * to must not be used by the application. If the UICR.NRFFW[1] is set to 0xFFFFFFFF (the default) + * MBR commands which use flash will be unavailable and return @ref NRF_ERROR_NO_MEM. + * + * @param[in] param Pointer to a struct describing the command. + * + * @note For return values, see ::sd_mbr_command_copy_sd_t, ::sd_mbr_command_copy_bl_t, + * ::sd_mbr_command_compare_t, ::sd_mbr_command_vector_table_base_set_t, + * ::sd_mbr_command_irq_forward_address_set_t + * + * @retval ::NRF_ERROR_NO_MEM if UICR.NRFFW[1] is not set (i.e. is 0xFFFFFFFF). + * @retval ::NRF_ERROR_INVALID_PARAM if an invalid command is given. +*/ +SVCALL(SD_MBR_COMMAND, uint32_t, sd_mbr_command(sd_mbr_command_t* param)); + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // NRF_MBR_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error.h new file mode 100644 index 0000000..6badee9 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2014 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /** + @defgroup nrf_error SoftDevice Global Error Codes + @{ + + @brief Global Error definitions +*/ + +/* Header guard */ +#ifndef NRF_ERROR_H__ +#define NRF_ERROR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup NRF_ERRORS_BASE Error Codes Base number definitions + * @{ */ +#define NRF_ERROR_BASE_NUM (0x0) ///< Global error base +#define NRF_ERROR_SDM_BASE_NUM (0x1000) ///< SDM error base +#define NRF_ERROR_SOC_BASE_NUM (0x2000) ///< SoC error base +#define NRF_ERROR_STK_BASE_NUM (0x3000) ///< STK error base +/** @} */ + +#define NRF_SUCCESS (NRF_ERROR_BASE_NUM + 0) ///< Successful command +#define NRF_ERROR_SVC_HANDLER_MISSING (NRF_ERROR_BASE_NUM + 1) ///< SVC handler is missing +#define NRF_ERROR_SOFTDEVICE_NOT_ENABLED (NRF_ERROR_BASE_NUM + 2) ///< SoftDevice has not been enabled +#define NRF_ERROR_INTERNAL (NRF_ERROR_BASE_NUM + 3) ///< Internal Error +#define NRF_ERROR_NO_MEM (NRF_ERROR_BASE_NUM + 4) ///< No Memory for operation +#define NRF_ERROR_NOT_FOUND (NRF_ERROR_BASE_NUM + 5) ///< Not found +#define NRF_ERROR_NOT_SUPPORTED (NRF_ERROR_BASE_NUM + 6) ///< Not supported +#define NRF_ERROR_INVALID_PARAM (NRF_ERROR_BASE_NUM + 7) ///< Invalid Parameter +#define NRF_ERROR_INVALID_STATE (NRF_ERROR_BASE_NUM + 8) ///< Invalid state, operation disallowed in this state +#define NRF_ERROR_INVALID_LENGTH (NRF_ERROR_BASE_NUM + 9) ///< Invalid Length +#define NRF_ERROR_INVALID_FLAGS (NRF_ERROR_BASE_NUM + 10) ///< Invalid Flags +#define NRF_ERROR_INVALID_DATA (NRF_ERROR_BASE_NUM + 11) ///< Invalid Data +#define NRF_ERROR_DATA_SIZE (NRF_ERROR_BASE_NUM + 12) ///< Invalid Data size +#define NRF_ERROR_TIMEOUT (NRF_ERROR_BASE_NUM + 13) ///< Operation timed out +#define NRF_ERROR_NULL (NRF_ERROR_BASE_NUM + 14) ///< Null Pointer +#define NRF_ERROR_FORBIDDEN (NRF_ERROR_BASE_NUM + 15) ///< Forbidden Operation +#define NRF_ERROR_INVALID_ADDR (NRF_ERROR_BASE_NUM + 16) ///< Bad Memory Address +#define NRF_ERROR_BUSY (NRF_ERROR_BASE_NUM + 17) ///< Busy +#define NRF_ERROR_CONN_COUNT (NRF_ERROR_BASE_NUM + 18) ///< Maximum connection count exceeded. +#define NRF_ERROR_RESOURCES (NRF_ERROR_BASE_NUM + 19) ///< Not enough resources for operation + +#ifdef __cplusplus +} +#endif +#endif // NRF_ERROR_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error_sdm.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error_sdm.h new file mode 100644 index 0000000..530959b --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error_sdm.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /** + @addtogroup nrf_sdm_api + @{ + @defgroup nrf_sdm_error SoftDevice Manager Error Codes + @{ + + @brief Error definitions for the SDM API +*/ + +/* Header guard */ +#ifndef NRF_ERROR_SDM_H__ +#define NRF_ERROR_SDM_H__ + +#include "nrf_error.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN (NRF_ERROR_SDM_BASE_NUM + 0) ///< Unknown LFCLK source. +#define NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION (NRF_ERROR_SDM_BASE_NUM + 1) ///< Incorrect interrupt configuration (can be caused by using illegal priority levels, or having enabled SoftDevice interrupts). +#define NRF_ERROR_SDM_INCORRECT_CLENR0 (NRF_ERROR_SDM_BASE_NUM + 2) ///< Incorrect CLENR0 (can be caused by erroneous SoftDevice flashing). + +#ifdef __cplusplus +} +#endif +#endif // NRF_ERROR_SDM_H__ + +/** + @} + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error_soc.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error_soc.h new file mode 100644 index 0000000..1e784b8 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_error_soc.h @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @addtogroup nrf_soc_api + @{ + @defgroup nrf_soc_error SoC Library Error Codes + @{ + + @brief Error definitions for the SoC library + +*/ + +/* Header guard */ +#ifndef NRF_ERROR_SOC_H__ +#define NRF_ERROR_SOC_H__ + +#include "nrf_error.h" +#ifdef __cplusplus +extern "C" { +#endif + +/* Mutex Errors */ +#define NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN (NRF_ERROR_SOC_BASE_NUM + 0) ///< Mutex already taken + +/* NVIC errors */ +#define NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE (NRF_ERROR_SOC_BASE_NUM + 1) ///< NVIC interrupt not available +#define NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED (NRF_ERROR_SOC_BASE_NUM + 2) ///< NVIC interrupt priority not allowed +#define NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN (NRF_ERROR_SOC_BASE_NUM + 3) ///< NVIC should not return + +/* Power errors */ +#define NRF_ERROR_SOC_POWER_MODE_UNKNOWN (NRF_ERROR_SOC_BASE_NUM + 4) ///< Power mode unknown +#define NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN (NRF_ERROR_SOC_BASE_NUM + 5) ///< Power POF threshold unknown +#define NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN (NRF_ERROR_SOC_BASE_NUM + 6) ///< Power off should not return + +/* Rand errors */ +#define NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES (NRF_ERROR_SOC_BASE_NUM + 7) ///< RAND not enough values + +/* PPI errors */ +#define NRF_ERROR_SOC_PPI_INVALID_CHANNEL (NRF_ERROR_SOC_BASE_NUM + 8) ///< Invalid PPI Channel +#define NRF_ERROR_SOC_PPI_INVALID_GROUP (NRF_ERROR_SOC_BASE_NUM + 9) ///< Invalid PPI Group + +#ifdef __cplusplus +} +#endif +#endif // NRF_ERROR_SOC_H__ +/** + @} + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_nvic.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_nvic.h new file mode 100644 index 0000000..f5c7e8e --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_nvic.h @@ -0,0 +1,486 @@ +/* + * Copyright (c) 2016 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @defgroup nrf_nvic_api SoftDevice NVIC API + * @{ + * + * @note In order to use this module, the following code has to be added to a .c file: + * \code + * nrf_nvic_state_t nrf_nvic_state = {0}; + * \endcode + * + * @note Definitions and declarations starting with __ (double underscore) in this header file are + * not intended for direct use by the application. + * + * @brief APIs for the accessing NVIC when using a SoftDevice. + * + */ + +#ifndef NRF_NVIC_H__ +#define NRF_NVIC_H__ + +#include +#include "nrf.h" +#include "nrf_svc.h" +#include "nrf_error.h" +#include "nrf_error_soc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@addtogroup NRF_NVIC_DEFINES Defines + * @{ */ + +/**@defgroup NRF_NVIC_ISER_DEFINES SoftDevice NVIC internal definitions + * @{ */ + +#define __NRF_NVIC_NVMC_IRQn (30) /**< The peripheral ID of the NVMC. IRQ numbers are used to identify peripherals, but the NVMC doesn't have an IRQ number in the MDK. */ + +#define __NRF_NVIC_ISER_COUNT (2) /**< The number of ISER/ICER registers in the NVIC that are used. */ + +/**@brief Interrupts used by the SoftDevice, with IRQn in the range 0-31. */ +#define __NRF_NVIC_SD_IRQS_0 ((uint32_t)( \ + (1U << POWER_CLOCK_IRQn) \ + | (1U << RADIO_IRQn) \ + | (1U << RTC0_IRQn) \ + | (1U << TIMER0_IRQn) \ + | (1U << RNG_IRQn) \ + | (1U << ECB_IRQn) \ + | (1U << CCM_AAR_IRQn) \ + | (1U << TEMP_IRQn) \ + | (1U << __NRF_NVIC_NVMC_IRQn) \ + | (1U << (uint32_t)SWI5_IRQn) \ + )) + +/**@brief Interrupts used by the SoftDevice, with IRQn in the range 32-63. */ +#define __NRF_NVIC_SD_IRQS_1 ((uint32_t)0) + +/**@brief Interrupts available for to application, with IRQn in the range 0-31. */ +#define __NRF_NVIC_APP_IRQS_0 (~__NRF_NVIC_SD_IRQS_0) + +/**@brief Interrupts available for to application, with IRQn in the range 32-63. */ +#define __NRF_NVIC_APP_IRQS_1 (~__NRF_NVIC_SD_IRQS_1) + +/**@} */ + +/**@} */ + +/**@addtogroup NRF_NVIC_VARIABLES Variables + * @{ */ + +/**@brief Type representing the state struct for the SoftDevice NVIC module. */ +typedef struct +{ + uint32_t volatile __irq_masks[__NRF_NVIC_ISER_COUNT]; /**< IRQs enabled by the application in the NVIC. */ + uint32_t volatile __cr_flag; /**< Non-zero if already in a critical region */ +} nrf_nvic_state_t; + +/**@brief Variable keeping the state for the SoftDevice NVIC module. This must be declared in an + * application source file. */ +extern nrf_nvic_state_t nrf_nvic_state; + +/**@} */ + +/**@addtogroup NRF_NVIC_INTERNAL_FUNCTIONS SoftDevice NVIC internal functions + * @{ */ + +/**@brief Disables IRQ interrupts globally, including the SoftDevice's interrupts. + * + * @retval The value of PRIMASK prior to disabling the interrupts. + */ +__STATIC_INLINE int __sd_nvic_irq_disable(void); + +/**@brief Enables IRQ interrupts globally, including the SoftDevice's interrupts. + */ +__STATIC_INLINE void __sd_nvic_irq_enable(void); + +/**@brief Checks if IRQn is available to application + * @param[in] IRQn IRQ to check + * + * @retval 1 (true) if the IRQ to check is available to the application + */ +__STATIC_INLINE uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn); + +/**@brief Checks if priority is available to application + * @param[in] priority priority to check + * + * @retval 1 (true) if the priority to check is available to the application + */ +__STATIC_INLINE uint32_t __sd_nvic_is_app_accessible_priority(uint32_t priority); + +/**@} */ + +/**@addtogroup NRF_NVIC_FUNCTIONS SoftDevice NVIC public functions + * @{ */ + +/**@brief Enable External Interrupt. + * @note Corresponds to NVIC_EnableIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_EnableIRQ documentation in CMSIS. + * + * @retval ::NRF_SUCCESS The interrupt was enabled. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt has a priority not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn); + +/**@brief Disable External Interrupt. + * @note Corresponds to NVIC_DisableIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_DisableIRQ documentation in CMSIS. + * + * @retval ::NRF_SUCCESS The interrupt was disabled. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn); + +/**@brief Get Pending Interrupt. + * @note Corresponds to NVIC_GetPendingIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_GetPendingIRQ documentation in CMSIS. + * @param[out] p_pending_irq Return value from NVIC_GetPendingIRQ. + * + * @retval ::NRF_SUCCESS The interrupt is available for the application. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq); + +/**@brief Set Pending Interrupt. + * @note Corresponds to NVIC_SetPendingIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_SetPendingIRQ documentation in CMSIS. + * + * @retval ::NRF_SUCCESS The interrupt is set pending. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn); + +/**@brief Clear Pending Interrupt. + * @note Corresponds to NVIC_ClearPendingIRQ in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_ClearPendingIRQ documentation in CMSIS. + * + * @retval ::NRF_SUCCESS The interrupt pending flag is cleared. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn); + +/**@brief Set Interrupt Priority. + * @note Corresponds to NVIC_SetPriority in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * @pre Priority is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_SetPriority documentation in CMSIS. + * @param[in] priority A valid IRQ priority for use by the application. + * + * @retval ::NRF_SUCCESS The interrupt and priority level is available for the application. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt priority is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority); + +/**@brief Get Interrupt Priority. + * @note Corresponds to NVIC_GetPriority in CMSIS. + * + * @pre IRQn is valid and not reserved by the stack. + * + * @param[in] IRQn See the NVIC_GetPriority documentation in CMSIS. + * @param[out] p_priority Return value from NVIC_GetPriority. + * + * @retval ::NRF_SUCCESS The interrupt priority is returned in p_priority. + * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE - IRQn is not available for the application. + */ +__STATIC_INLINE uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority); + +/**@brief System Reset. + * @note Corresponds to NVIC_SystemReset in CMSIS. + * + * @retval ::NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN + */ +__STATIC_INLINE uint32_t sd_nvic_SystemReset(void); + +/**@brief Enter critical region. + * + * @post Application interrupts will be disabled. + * @note sd_nvic_critical_region_enter() and ::sd_nvic_critical_region_exit() must be called in matching pairs inside each + * execution context + * @sa sd_nvic_critical_region_exit + * + * @param[out] p_is_nested_critical_region If 1, the application is now in a nested critical region. + * + * @retval ::NRF_SUCCESS + */ +__STATIC_INLINE uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region); + +/**@brief Exit critical region. + * + * @pre Application has entered a critical region using ::sd_nvic_critical_region_enter. + * @post If not in a nested critical region, the application interrupts will restored to the state before ::sd_nvic_critical_region_enter was called. + * + * @param[in] is_nested_critical_region If this is set to 1, the critical region won't be exited. @sa sd_nvic_critical_region_enter. + * + * @retval ::NRF_SUCCESS + */ +__STATIC_INLINE uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region); + +/**@} */ + +#ifndef SUPPRESS_INLINE_IMPLEMENTATION + +__STATIC_INLINE int __sd_nvic_irq_disable(void) +{ + int pm = __get_PRIMASK(); + __disable_irq(); + return pm; +} + +__STATIC_INLINE void __sd_nvic_irq_enable(void) +{ + __enable_irq(); +} + +__STATIC_INLINE uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn) +{ + if (IRQn < 32) + { + return ((1UL<= (1 << __NVIC_PRIO_BITS)) + { + return 0; + } + if( priority == 0 + || priority == 1 + || priority == 4 + ) + { + return 0; + } + return 1; +} + + +__STATIC_INLINE uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn) +{ + if (!__sd_nvic_app_accessible_irq(IRQn)) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } + if (!__sd_nvic_is_app_accessible_priority(NVIC_GetPriority(IRQn))) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED; + } + + if (nrf_nvic_state.__cr_flag) + { + nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] |= (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F)); + } + else + { + NVIC_EnableIRQ(IRQn); + } + return NRF_SUCCESS; +} + +__STATIC_INLINE uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn) +{ + if (!__sd_nvic_app_accessible_irq(IRQn)) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } + + if (nrf_nvic_state.__cr_flag) + { + nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] &= ~(1UL << ((uint32_t)(IRQn) & 0x1F)); + } + else + { + NVIC_DisableIRQ(IRQn); + } + + return NRF_SUCCESS; +} + +__STATIC_INLINE uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq) +{ + if (__sd_nvic_app_accessible_irq(IRQn)) + { + *p_pending_irq = NVIC_GetPendingIRQ(IRQn); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } +} + +__STATIC_INLINE uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn) +{ + if (__sd_nvic_app_accessible_irq(IRQn)) + { + NVIC_SetPendingIRQ(IRQn); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } +} + +__STATIC_INLINE uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn) +{ + if (__sd_nvic_app_accessible_irq(IRQn)) + { + NVIC_ClearPendingIRQ(IRQn); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } +} + +__STATIC_INLINE uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if (!__sd_nvic_app_accessible_irq(IRQn)) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } + + if (!__sd_nvic_is_app_accessible_priority(priority)) + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED; + } + + NVIC_SetPriority(IRQn, (uint32_t)priority); + return NRF_SUCCESS; +} + +__STATIC_INLINE uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority) +{ + if (__sd_nvic_app_accessible_irq(IRQn)) + { + *p_priority = (NVIC_GetPriority(IRQn) & 0xFF); + return NRF_SUCCESS; + } + else + { + return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE; + } +} + +__STATIC_INLINE uint32_t sd_nvic_SystemReset(void) +{ + NVIC_SystemReset(); + return NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN; +} + +__STATIC_INLINE uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region) +{ + int was_masked = __sd_nvic_irq_disable(); + if (!nrf_nvic_state.__cr_flag) + { + nrf_nvic_state.__cr_flag = 1; + nrf_nvic_state.__irq_masks[0] = ( NVIC->ICER[0] & __NRF_NVIC_APP_IRQS_0 ); + NVIC->ICER[0] = __NRF_NVIC_APP_IRQS_0; + nrf_nvic_state.__irq_masks[1] = ( NVIC->ICER[1] & __NRF_NVIC_APP_IRQS_1 ); + NVIC->ICER[1] = __NRF_NVIC_APP_IRQS_1; + *p_is_nested_critical_region = 0; + } + else + { + *p_is_nested_critical_region = 1; + } + if (!was_masked) + { + __sd_nvic_irq_enable(); + } + return NRF_SUCCESS; +} + +__STATIC_INLINE uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region) +{ + if (nrf_nvic_state.__cr_flag && (is_nested_critical_region == 0)) + { + int was_masked = __sd_nvic_irq_disable(); + NVIC->ISER[0] = nrf_nvic_state.__irq_masks[0]; + NVIC->ISER[1] = nrf_nvic_state.__irq_masks[1]; + nrf_nvic_state.__cr_flag = 0; + if (!was_masked) + { + __sd_nvic_irq_enable(); + } + } + + return NRF_SUCCESS; +} + +#endif /* SUPPRESS_INLINE_IMPLEMENTATION */ + +#ifdef __cplusplus +} +#endif + +#endif // NRF_NVIC_H__ + +/**@} */ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_sdm.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_sdm.h new file mode 100644 index 0000000..8c48d93 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_sdm.h @@ -0,0 +1,358 @@ +/* + * Copyright (c) 2015 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @defgroup nrf_sdm_api SoftDevice Manager API + @{ + + @brief APIs for SoftDevice management. + +*/ + +#ifndef NRF_SDM_H__ +#define NRF_SDM_H__ + +#include +#include "nrf.h" +#include "nrf_svc.h" +#include "nrf_error.h" +#include "nrf_error_sdm.h" +#include "nrf_soc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup NRF_SDM_DEFINES Defines + * @{ */ +#ifdef NRFSOC_DOXYGEN +/// Declared in nrf_mbr.h +#define MBR_SIZE 0 +#warning test +#endif + +/** @brief The major version for the SoftDevice binary distributed with this header file. */ +#define SD_MAJOR_VERSION (6) + +/** @brief The minor version for the SoftDevice binary distributed with this header file. */ +#define SD_MINOR_VERSION (0) + +/** @brief The bugfix version for the SoftDevice binary distributed with this header file. */ +#define SD_BUGFIX_VERSION (0) + +/** @brief The full version number for the SoftDevice binary this header file was distributed + * with, as a decimal number in the form Mmmmbbb, where: + * - M is major version (one or more digits) + * - mmm is minor version (three digits) + * - bbb is bugfix version (three digits). */ +#define SD_VERSION (SD_MAJOR_VERSION * 1000000 + SD_MINOR_VERSION * 1000 + SD_BUGFIX_VERSION) + +/** @brief SoftDevice Manager SVC Base number. */ +#define SDM_SVC_BASE 0x10 + +/** @brief SoftDevice unique string size in bytes. */ +#define SD_UNIQUE_STR_SIZE 20 + +/** @brief Invalid info field. Returned when an info field does not exist. */ +#define SDM_INFO_FIELD_INVALID (0) + +/** @brief Defines the SoftDevice Information Structure location (address) as an offset from +the start of the SoftDevice (without MBR)*/ +#define SOFTDEVICE_INFO_STRUCT_OFFSET (0x2000) + +/** @brief Defines the absolute SoftDevice Information Structure location (address) when the + * SoftDevice is installed just above the MBR (the usual case). */ +#define SOFTDEVICE_INFO_STRUCT_ADDRESS (SOFTDEVICE_INFO_STRUCT_OFFSET + MBR_SIZE) + +/** @brief Defines the offset for the SoftDevice Information Structure size value relative to the + * SoftDevice base address. The size value is of type uint8_t. */ +#define SD_INFO_STRUCT_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET) + +/** @brief Defines the offset for the SoftDevice size value relative to the SoftDevice base address. + * The size value is of type uint32_t. */ +#define SD_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x08) + +/** @brief Defines the offset for FWID value relative to the SoftDevice base address. The FWID value + * is of type uint16_t. */ +#define SD_FWID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x0C) + +/** @brief Defines the offset for the SoftDevice ID relative to the SoftDevice base address. The ID + * is of type uint32_t. */ +#define SD_ID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x10) + +/** @brief Defines the offset for the SoftDevice version relative to the SoftDevice base address in + * the same format as @ref SD_VERSION, stored as an uint32_t. */ +#define SD_VERSION_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x14) + +/** @brief Defines the offset for the SoftDevice unique string relative to the SoftDevice base address. + * The SD_UNIQUE_STR is stored as an array of uint8_t. The size of array is @ref SD_UNIQUE_STR_SIZE. + */ +#define SD_UNIQUE_STR_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x18) + +/** @brief Defines a macro for retrieving the actual SoftDevice Information Structure size value + * from a given base address. Use @ref MBR_SIZE as the argument when the SoftDevice is + * installed just above the MBR (the usual case). */ +#define SD_INFO_STRUCT_SIZE_GET(baseaddr) (*((uint8_t *) ((baseaddr) + SD_INFO_STRUCT_SIZE_OFFSET))) + +/** @brief Defines a macro for retrieving the actual SoftDevice size value from a given base + * address. Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above + * the MBR (the usual case). */ +#define SD_SIZE_GET(baseaddr) (*((uint32_t *) ((baseaddr) + SD_SIZE_OFFSET))) + +/** @brief Defines a macro for retrieving the actual FWID value from a given base address. Use + * @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the usual + * case). */ +#define SD_FWID_GET(baseaddr) (*((uint16_t *) ((baseaddr) + SD_FWID_OFFSET))) + +/** @brief Defines a macro for retrieving the actual SoftDevice ID from a given base address. Use + * @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the + * usual case). */ +#define SD_ID_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_ID_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \ + ? (*((uint32_t *) ((baseaddr) + SD_ID_OFFSET))) : SDM_INFO_FIELD_INVALID) + +/** @brief Defines a macro for retrieving the actual SoftDevice version from a given base address. + * Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR + * (the usual case). */ +#define SD_VERSION_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_VERSION_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \ + ? (*((uint32_t *) ((baseaddr) + SD_VERSION_OFFSET))) : SDM_INFO_FIELD_INVALID) + +/** @brief Defines a macro for retrieving the address of SoftDevice unique str based on a given base address. + * Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR + * (the usual case). */ +#define SD_UNIQUE_STR_ADDR_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_UNIQUE_STR_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \ + ? (((uint8_t *) ((baseaddr) + SD_UNIQUE_STR_OFFSET))) : SDM_INFO_FIELD_INVALID) + +/**@defgroup NRF_FAULT_ID_RANGES Fault ID ranges + * @{ */ +#define NRF_FAULT_ID_SD_RANGE_START 0x00000000 /**< SoftDevice ID range start. */ +#define NRF_FAULT_ID_APP_RANGE_START 0x00001000 /**< Application ID range start. */ +/**@} */ + +/**@defgroup NRF_FAULT_IDS Fault ID types + * @{ */ +#define NRF_FAULT_ID_SD_ASSERT (NRF_FAULT_ID_SD_RANGE_START + 1) /**< SoftDevice assertion. The info parameter is reserved for future used. */ +#define NRF_FAULT_ID_APP_MEMACC (NRF_FAULT_ID_APP_RANGE_START + 1) /**< Application invalid memory access. The info parameter will contain 0x00000000, + in case of SoftDevice RAM access violation. In case of SoftDevice peripheral + register violation the info parameter will contain the sub-region number of + PREGION[0], on whose address range the disallowed write access caused the + memory access fault. */ +/**@} */ + +/** @} */ + +/** @addtogroup NRF_SDM_ENUMS Enumerations + * @{ */ + +/**@brief nRF SoftDevice Manager API SVC numbers. */ +enum NRF_SD_SVCS +{ + SD_SOFTDEVICE_ENABLE = SDM_SVC_BASE, /**< ::sd_softdevice_enable */ + SD_SOFTDEVICE_DISABLE, /**< ::sd_softdevice_disable */ + SD_SOFTDEVICE_IS_ENABLED, /**< ::sd_softdevice_is_enabled */ + SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, /**< ::sd_softdevice_vector_table_base_set */ + SVC_SDM_LAST /**< Placeholder for last SDM SVC */ +}; + +/** @} */ + +/** @addtogroup NRF_SDM_DEFINES Defines + * @{ */ + +/**@defgroup NRF_CLOCK_LF_ACCURACY Clock accuracy + * @{ */ + +#define NRF_CLOCK_LF_ACCURACY_250_PPM (0) /**< Default: 250 ppm */ +#define NRF_CLOCK_LF_ACCURACY_500_PPM (1) /**< 500 ppm */ +#define NRF_CLOCK_LF_ACCURACY_150_PPM (2) /**< 150 ppm */ +#define NRF_CLOCK_LF_ACCURACY_100_PPM (3) /**< 100 ppm */ +#define NRF_CLOCK_LF_ACCURACY_75_PPM (4) /**< 75 ppm */ +#define NRF_CLOCK_LF_ACCURACY_50_PPM (5) /**< 50 ppm */ +#define NRF_CLOCK_LF_ACCURACY_30_PPM (6) /**< 30 ppm */ +#define NRF_CLOCK_LF_ACCURACY_20_PPM (7) /**< 20 ppm */ +#define NRF_CLOCK_LF_ACCURACY_10_PPM (8) /**< 10 ppm */ +#define NRF_CLOCK_LF_ACCURACY_5_PPM (9) /**< 5 ppm */ +#define NRF_CLOCK_LF_ACCURACY_2_PPM (10) /**< 2 ppm */ +#define NRF_CLOCK_LF_ACCURACY_1_PPM (11) /**< 1 ppm */ + +/** @} */ + +/**@defgroup NRF_CLOCK_LF_SRC Possible LFCLK oscillator sources + * @{ */ + +#define NRF_CLOCK_LF_SRC_RC (0) /**< LFCLK RC oscillator. */ +#define NRF_CLOCK_LF_SRC_XTAL (1) /**< LFCLK crystal oscillator. */ +#define NRF_CLOCK_LF_SRC_SYNTH (2) /**< LFCLK Synthesized from HFCLK. */ + +/** @} */ + +/** @} */ + +/** @addtogroup NRF_SDM_TYPES Types + * @{ */ + +/**@brief Type representing LFCLK oscillator source. */ +typedef struct +{ + uint8_t source; /**< LF oscillator clock source, see @ref NRF_CLOCK_LF_SRC. */ + uint8_t rc_ctiv; /**< Only for ::NRF_CLOCK_LF_SRC_RC: Calibration timer interval in 1/4 second + units (nRF52: 1-32). + @note To avoid excessive clock drift, 0.5 degrees Celsius is the + maximum temperature change allowed in one calibration timer + interval. The interval should be selected to ensure this. + + @note Must be 0 if source is not ::NRF_CLOCK_LF_SRC_RC. */ + uint8_t rc_temp_ctiv; /**< Only for ::NRF_CLOCK_LF_SRC_RC: How often (in number of calibration + intervals) the RC oscillator shall be calibrated if the temperature + hasn't changed. + 0: Always calibrate even if the temperature hasn't changed. + 1: Only calibrate if the temperature has changed (legacy - nRF51 only). + 2-33: Check the temperature and only calibrate if it has changed, + however calibration will take place every rc_temp_ctiv + intervals in any case. + + @note Must be 0 if source is not ::NRF_CLOCK_LF_SRC_RC. + + @note For nRF52, the application must ensure calibration at least once + every 8 seconds to ensure +/-500 ppm clock stability. The + recommended configuration for ::NRF_CLOCK_LF_SRC_RC on nRF52 is + rc_ctiv=16 and rc_temp_ctiv=2. This will ensure calibration at + least once every 8 seconds and for temperature changes of 0.5 + degrees Celsius every 4 seconds. See the Product Specification + for the nRF52 device being used for more information.*/ + uint8_t accuracy; /**< External clock accuracy used in the LL to compute timing + windows, see @ref NRF_CLOCK_LF_ACCURACY.*/ +} nrf_clock_lf_cfg_t; + +/**@brief Fault Handler type. + * + * When certain unrecoverable errors occur within the application or SoftDevice the fault handler will be called back. + * The protocol stack will be in an undefined state when this happens and the only way to recover will be to + * perform a reset, using e.g. CMSIS NVIC_SystemReset(). + * If the application returns from the fault handler the SoftDevice will call NVIC_SystemReset(). + * + * @note This callback is executed in HardFault context, thus SVC functions cannot be called from the fault callback. + * + * @param[in] id Fault identifier. See @ref NRF_FAULT_IDS. + * @param[in] pc The program counter of the instruction that triggered the fault. + * @param[in] info Optional additional information regarding the fault. Refer to each Fault identifier for details. + * + * @note When id is set to @ref NRF_FAULT_ID_APP_MEMACC, pc will contain the address of the instruction being executed at the time when + * the fault is detected by the CPU. The CPU program counter may have advanced up to 2 instructions (no branching) after the one that triggered the fault. + */ +typedef void (*nrf_fault_handler_t)(uint32_t id, uint32_t pc, uint32_t info); + +/** @} */ + +/** @addtogroup NRF_SDM_FUNCTIONS Functions + * @{ */ + +/**@brief Enables the SoftDevice and by extension the protocol stack. + * + * @note Some care must be taken if a low frequency clock source is already running when calling this function: + * If the LF clock has a different source then the one currently running, it will be stopped. Then, the new + * clock source will be started. + * + * @note This function has no effect when returning with an error. + * + * @post If return code is ::NRF_SUCCESS + * - SoC library and protocol stack APIs are made available. + * - A portion of RAM will be unavailable (see relevant SDS documentation). + * - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation). + * - Interrupts will not arrive from protected peripherals or interrupts. + * - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the SoftDevice. + * - Interrupt latency may be affected by the SoftDevice (see relevant SDS documentation). + * - Chosen low frequency clock source will be running. + * + * @param p_clock_lf_cfg Low frequency clock source and accuracy. + If NULL the clock will be configured as an RC source with rc_ctiv = 16 and .rc_temp_ctiv = 2 + In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock. + * @param fault_handler Callback to be invoked in case of fault, cannot be NULL. + * + * @retval ::NRF_SUCCESS + * @retval ::NRF_ERROR_INVALID_ADDR Invalid or NULL pointer supplied. + * @retval ::NRF_ERROR_INVALID_STATE SoftDevice is already enabled, and the clock source and fault handler cannot be updated. + * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDevice interrupt is already enabled, or an enabled interrupt has an illegal priority level. + * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected. + * @retval ::NRF_ERROR_INVALID_PARAM Invalid clock source configuration supplied in p_clock_lf_cfg. + */ +SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler)); + + +/**@brief Disables the SoftDevice and by extension the protocol stack. + * + * Idempotent function to disable the SoftDevice. + * + * @post SoC library and protocol stack APIs are made unavailable. + * @post All interrupts that was protected by the SoftDevice will be disabled and initialized to priority 0 (highest). + * @post All peripherals used by the SoftDevice will be reset to default values. + * @post All of RAM become available. + * @post All interrupts are forwarded to the application. + * @post LFCLK source chosen in ::sd_softdevice_enable will be left running. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_SOFTDEVICE_DISABLE, uint32_t, sd_softdevice_disable(void)); + +/**@brief Check if the SoftDevice is enabled. + * + * @param[out] p_softdevice_enabled If the SoftDevice is enabled: 1 else 0. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_SOFTDEVICE_IS_ENABLED, uint32_t, sd_softdevice_is_enabled(uint8_t * p_softdevice_enabled)); + +/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the SoftDevice + * + * This function is only intended to be called when a bootloader is enabled. + * + * @param[in] address The base address of the interrupt vector table for forwarded interrupts. + + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, uint32_t, sd_softdevice_vector_table_base_set(uint32_t address)); + +/** @} */ + +#ifdef __cplusplus +} +#endif +#endif // NRF_SDM_H__ + +/** + @} +*/ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_soc.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_soc.h new file mode 100644 index 0000000..3fa1772 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_soc.h @@ -0,0 +1,1036 @@ +/* + * Copyright (c) 2015 - 2018, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @defgroup nrf_soc_api SoC Library API + * @{ + * + * @brief APIs for the SoC library. + * + */ + +#ifndef NRF_SOC_H__ +#define NRF_SOC_H__ + +#include +#include "nrf.h" +#include "nrf_svc.h" +#include "nrf_error.h" +#include "nrf_error_soc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@addtogroup NRF_SOC_DEFINES Defines + * @{ */ + +/**@brief The number of the lowest SVC number reserved for the SoC library. */ +#define SOC_SVC_BASE (0x20) /**< Base value for SVCs that are available when the SoftDevice is disabled. */ +#define SOC_SVC_BASE_NOT_AVAILABLE (0x2C) /**< Base value for SVCs that are not available when the SoftDevice is disabled. */ + +/**@brief Guaranteed time for application to process radio inactive notification. */ +#define NRF_RADIO_NOTIFICATION_INACTIVE_GUARANTEED_TIME_US (62) + +/**@brief The minimum allowed timeslot extension time. */ +#define NRF_RADIO_MINIMUM_TIMESLOT_LENGTH_EXTENSION_TIME_US (200) + +/**@brief The maximum processing time to handle a timeslot extension. */ +#define NRF_RADIO_MAX_EXTENSION_PROCESSING_TIME_US (17) + +/**@brief The latest time before the end of a timeslot the timeslot can be extended. */ +#define NRF_RADIO_MIN_EXTENSION_MARGIN_US (79) + +#define SOC_ECB_KEY_LENGTH (16) /**< ECB key length. */ +#define SOC_ECB_CLEARTEXT_LENGTH (16) /**< ECB cleartext length. */ +#define SOC_ECB_CIPHERTEXT_LENGTH (SOC_ECB_CLEARTEXT_LENGTH) /**< ECB ciphertext length. */ + +#define SD_EVT_IRQn (SWI2_IRQn) /**< SoftDevice Event IRQ number. Used for both protocol events and SoC events. */ +#define SD_EVT_IRQHandler (SWI2_IRQHandler) /**< SoftDevice Event IRQ handler. Used for both protocol events and SoC events. + The default interrupt priority for this handler is set to 4 */ +#define RADIO_NOTIFICATION_IRQn (SWI1_IRQn) /**< The radio notification IRQ number. */ +#define RADIO_NOTIFICATION_IRQHandler (SWI1_IRQHandler) /**< The radio notification IRQ handler. + The default interrupt priority for this handler is set to 4 */ +#define NRF_RADIO_LENGTH_MIN_US (100) /**< The shortest allowed radio timeslot, in microseconds. */ +#define NRF_RADIO_LENGTH_MAX_US (100000) /**< The longest allowed radio timeslot, in microseconds. */ + +#define NRF_RADIO_DISTANCE_MAX_US (128000000UL - 1UL) /**< The longest timeslot distance, in microseconds, allowed for the distance parameter (see @ref nrf_radio_request_normal_t) in the request. */ + +#define NRF_RADIO_EARLIEST_TIMEOUT_MAX_US (128000000UL - 1UL) /**< The longest timeout, in microseconds, allowed when requesting the earliest possible timeslot. */ + +#define NRF_RADIO_START_JITTER_US (2) /**< The maximum jitter in @ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START relative to the requested start time. */ + +/**@} */ + +/**@addtogroup NRF_SOC_ENUMS Enumerations + * @{ */ + +/**@brief The SVC numbers used by the SVC functions in the SoC library. */ +enum NRF_SOC_SVCS +{ + SD_PPI_CHANNEL_ENABLE_GET = SOC_SVC_BASE, + SD_PPI_CHANNEL_ENABLE_SET = SOC_SVC_BASE + 1, + SD_PPI_CHANNEL_ENABLE_CLR = SOC_SVC_BASE + 2, + SD_PPI_CHANNEL_ASSIGN = SOC_SVC_BASE + 3, + SD_PPI_GROUP_TASK_ENABLE = SOC_SVC_BASE + 4, + SD_PPI_GROUP_TASK_DISABLE = SOC_SVC_BASE + 5, + SD_PPI_GROUP_ASSIGN = SOC_SVC_BASE + 6, + SD_PPI_GROUP_GET = SOC_SVC_BASE + 7, + SD_FLASH_PAGE_ERASE = SOC_SVC_BASE + 8, + SD_FLASH_WRITE = SOC_SVC_BASE + 9, + SD_PROTECTED_REGISTER_WRITE = SOC_SVC_BASE + 11, + SD_MUTEX_NEW = SOC_SVC_BASE_NOT_AVAILABLE, + SD_MUTEX_ACQUIRE = SOC_SVC_BASE_NOT_AVAILABLE + 1, + SD_MUTEX_RELEASE = SOC_SVC_BASE_NOT_AVAILABLE + 2, + SD_RAND_APPLICATION_POOL_CAPACITY_GET = SOC_SVC_BASE_NOT_AVAILABLE + 3, + SD_RAND_APPLICATION_BYTES_AVAILABLE_GET = SOC_SVC_BASE_NOT_AVAILABLE + 4, + SD_RAND_APPLICATION_VECTOR_GET = SOC_SVC_BASE_NOT_AVAILABLE + 5, + SD_POWER_MODE_SET = SOC_SVC_BASE_NOT_AVAILABLE + 6, + SD_POWER_SYSTEM_OFF = SOC_SVC_BASE_NOT_AVAILABLE + 7, + SD_POWER_RESET_REASON_GET = SOC_SVC_BASE_NOT_AVAILABLE + 8, + SD_POWER_RESET_REASON_CLR = SOC_SVC_BASE_NOT_AVAILABLE + 9, + SD_POWER_POF_ENABLE = SOC_SVC_BASE_NOT_AVAILABLE + 10, + SD_POWER_POF_THRESHOLD_SET = SOC_SVC_BASE_NOT_AVAILABLE + 11, + SD_POWER_POF_THRESHOLDVDDH_SET = SOC_SVC_BASE_NOT_AVAILABLE + 12, + SD_POWER_RAM_POWER_SET = SOC_SVC_BASE_NOT_AVAILABLE + 13, + SD_POWER_RAM_POWER_CLR = SOC_SVC_BASE_NOT_AVAILABLE + 14, + SD_POWER_RAM_POWER_GET = SOC_SVC_BASE_NOT_AVAILABLE + 15, + SD_POWER_GPREGRET_SET = SOC_SVC_BASE_NOT_AVAILABLE + 16, + SD_POWER_GPREGRET_CLR = SOC_SVC_BASE_NOT_AVAILABLE + 17, + SD_POWER_GPREGRET_GET = SOC_SVC_BASE_NOT_AVAILABLE + 18, + SD_POWER_DCDC_MODE_SET = SOC_SVC_BASE_NOT_AVAILABLE + 19, + SD_POWER_DCDC0_MODE_SET = SOC_SVC_BASE_NOT_AVAILABLE + 20, + SD_APP_EVT_WAIT = SOC_SVC_BASE_NOT_AVAILABLE + 21, + SD_CLOCK_HFCLK_REQUEST = SOC_SVC_BASE_NOT_AVAILABLE + 22, + SD_CLOCK_HFCLK_RELEASE = SOC_SVC_BASE_NOT_AVAILABLE + 23, + SD_CLOCK_HFCLK_IS_RUNNING = SOC_SVC_BASE_NOT_AVAILABLE + 24, + SD_RADIO_NOTIFICATION_CFG_SET = SOC_SVC_BASE_NOT_AVAILABLE + 25, + SD_ECB_BLOCK_ENCRYPT = SOC_SVC_BASE_NOT_AVAILABLE + 26, + SD_ECB_BLOCKS_ENCRYPT = SOC_SVC_BASE_NOT_AVAILABLE + 27, + SD_RADIO_SESSION_OPEN = SOC_SVC_BASE_NOT_AVAILABLE + 28, + SD_RADIO_SESSION_CLOSE = SOC_SVC_BASE_NOT_AVAILABLE + 29, + SD_RADIO_REQUEST = SOC_SVC_BASE_NOT_AVAILABLE + 30, + SD_EVT_GET = SOC_SVC_BASE_NOT_AVAILABLE + 31, + SD_TEMP_GET = SOC_SVC_BASE_NOT_AVAILABLE + 32, + SD_POWER_USBPWRRDY_ENABLE = SOC_SVC_BASE_NOT_AVAILABLE + 33, + SD_POWER_USBDETECTED_ENABLE = SOC_SVC_BASE_NOT_AVAILABLE + 34, + SD_POWER_USBREMOVED_ENABLE = SOC_SVC_BASE_NOT_AVAILABLE + 35, + SD_POWER_USBREGSTATUS_GET = SOC_SVC_BASE_NOT_AVAILABLE + 36, + SVC_SOC_LAST = SOC_SVC_BASE_NOT_AVAILABLE + 37 +}; + +/**@brief Possible values of a ::nrf_mutex_t. */ +enum NRF_MUTEX_VALUES +{ + NRF_MUTEX_FREE, + NRF_MUTEX_TAKEN +}; + +/**@brief Power modes. */ +enum NRF_POWER_MODES +{ + NRF_POWER_MODE_CONSTLAT, /**< Constant latency mode. See power management in the reference manual. */ + NRF_POWER_MODE_LOWPWR /**< Low power mode. See power management in the reference manual. */ +}; + + +/**@brief Power failure thresholds */ +enum NRF_POWER_THRESHOLDS +{ + NRF_POWER_THRESHOLD_V17 = 4UL, /**< 1.7 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V18, /**< 1.8 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V19, /**< 1.9 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V20, /**< 2.0 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V21, /**< 2.1 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V22, /**< 2.2 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V23, /**< 2.3 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V24, /**< 2.4 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V25, /**< 2.5 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V26, /**< 2.6 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V27, /**< 2.7 Volts power failure threshold. */ + NRF_POWER_THRESHOLD_V28 /**< 2.8 Volts power failure threshold. */ +}; + +/**@brief Power failure thresholds for high voltage */ +enum NRF_POWER_THRESHOLDVDDHS +{ + NRF_POWER_THRESHOLDVDDH_V27, /**< 2.7 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V28, /**< 2.8 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V29, /**< 2.9 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V30, /**< 3.0 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V31, /**< 3.1 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V32, /**< 3.2 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V33, /**< 3.3 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V34, /**< 3.4 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V35, /**< 3.5 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V36, /**< 3.6 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V37, /**< 3.7 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V38, /**< 3.8 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V39, /**< 3.9 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V40, /**< 4.0 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V41, /**< 4.1 Volts power failure threshold. */ + NRF_POWER_THRESHOLDVDDH_V42 /**< 4.2 Volts power failure threshold. */ +}; + + +/**@brief DC/DC converter modes. */ +enum NRF_POWER_DCDC_MODES +{ + NRF_POWER_DCDC_DISABLE, /**< The DCDC is disabled. */ + NRF_POWER_DCDC_ENABLE /**< The DCDC is enabled. */ +}; + +/**@brief Radio notification distances. */ +enum NRF_RADIO_NOTIFICATION_DISTANCES +{ + NRF_RADIO_NOTIFICATION_DISTANCE_NONE = 0, /**< The event does not have a notification. */ + NRF_RADIO_NOTIFICATION_DISTANCE_800US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_1740US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_2680US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_3620US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_4560US, /**< The distance from the active notification to start of radio activity. */ + NRF_RADIO_NOTIFICATION_DISTANCE_5500US /**< The distance from the active notification to start of radio activity. */ +}; + + +/**@brief Radio notification types. */ +enum NRF_RADIO_NOTIFICATION_TYPES +{ + NRF_RADIO_NOTIFICATION_TYPE_NONE = 0, /**< The event does not have a radio notification signal. */ + NRF_RADIO_NOTIFICATION_TYPE_INT_ON_ACTIVE, /**< Using interrupt for notification when the radio will be enabled. */ + NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE, /**< Using interrupt for notification when the radio has been disabled. */ + NRF_RADIO_NOTIFICATION_TYPE_INT_ON_BOTH, /**< Using interrupt for notification both when the radio will be enabled and disabled. */ +}; + +/**@brief The Radio signal callback types. */ +enum NRF_RADIO_CALLBACK_SIGNAL_TYPE +{ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_START, /**< This signal indicates the start of the radio timeslot. */ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_TIMER0, /**< This signal indicates the NRF_TIMER0 interrupt. */ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO, /**< This signal indicates the NRF_RADIO interrupt. */ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_FAILED, /**< This signal indicates extend action failed. */ + NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_SUCCEEDED /**< This signal indicates extend action succeeded. */ +}; + +/**@brief The actions requested by the signal callback. + * + * This code gives the SOC instructions about what action to take when the signal callback has + * returned. + */ +enum NRF_RADIO_SIGNAL_CALLBACK_ACTION +{ + NRF_RADIO_SIGNAL_CALLBACK_ACTION_NONE, /**< Return without action. */ + NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND, /**< Request an extension of the current + timeslot. Maximum execution time for this action: + @ref NRF_RADIO_MAX_EXTENSION_PROCESSING_TIME_US. + This action must be started at least + @ref NRF_RADIO_MIN_EXTENSION_MARGIN_US before + the end of the timeslot. */ + NRF_RADIO_SIGNAL_CALLBACK_ACTION_END, /**< End the current radio timeslot. */ + NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END /**< Request a new radio timeslot and end the current timeslot. */ +}; + +/**@brief Radio timeslot high frequency clock source configuration. */ +enum NRF_RADIO_HFCLK_CFG +{ + NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED, /**< The SoftDevice will guarantee that the high frequency clock source is the + external crystal for the whole duration of the timeslot. This should be the + preferred option for events that use the radio or require high timing accuracy. + @note The SoftDevice will automatically turn on and off the external crystal, + at the beginning and end of the timeslot, respectively. The crystal may also + intentionally be left running after the timeslot, in cases where it is needed + by the SoftDevice shortly after the end of the timeslot. */ + NRF_RADIO_HFCLK_CFG_NO_GUARANTEE /**< This configuration allows for earlier and tighter scheduling of timeslots. + The RC oscillator may be the clock source in part or for the whole duration of the timeslot. + The RC oscillator's accuracy must therefore be taken into consideration. + @note If the application will use the radio peripheral in timeslots with this configuration, + it must make sure that the crystal is running and stable before starting the radio. */ +}; + +/**@brief Radio timeslot priorities. */ +enum NRF_RADIO_PRIORITY +{ + NRF_RADIO_PRIORITY_HIGH, /**< High (equal priority as the normal connection priority of the SoftDevice stack(s)). */ + NRF_RADIO_PRIORITY_NORMAL, /**< Normal (equal priority as the priority of secondary activities of the SoftDevice stack(s)). */ +}; + +/**@brief Radio timeslot request type. */ +enum NRF_RADIO_REQUEST_TYPE +{ + NRF_RADIO_REQ_TYPE_EARLIEST, /**< Request radio timeslot as early as possible. This should always be used for the first request in a session. */ + NRF_RADIO_REQ_TYPE_NORMAL /**< Normal radio timeslot request. */ +}; + +/**@brief SoC Events. */ +enum NRF_SOC_EVTS +{ + NRF_EVT_HFCLKSTARTED, /**< Event indicating that the HFCLK has started. */ + NRF_EVT_POWER_FAILURE_WARNING, /**< Event indicating that a power failure warning has occurred. */ + NRF_EVT_FLASH_OPERATION_SUCCESS, /**< Event indicating that the ongoing flash operation has completed successfully. */ + NRF_EVT_FLASH_OPERATION_ERROR, /**< Event indicating that the ongoing flash operation has timed out with an error. */ + NRF_EVT_RADIO_BLOCKED, /**< Event indicating that a radio timeslot was blocked. */ + NRF_EVT_RADIO_CANCELED, /**< Event indicating that a radio timeslot was canceled by SoftDevice. */ + NRF_EVT_RADIO_SIGNAL_CALLBACK_INVALID_RETURN, /**< Event indicating that a radio timeslot signal callback handler return was invalid. */ + NRF_EVT_RADIO_SESSION_IDLE, /**< Event indicating that a radio timeslot session is idle. */ + NRF_EVT_RADIO_SESSION_CLOSED, /**< Event indicating that a radio timeslot session is closed. */ + NRF_EVT_POWER_USB_POWER_READY, /**< Event indicating that a USB 3.3 V supply is ready. */ + NRF_EVT_POWER_USB_DETECTED, /**< Event indicating that voltage supply is detected on VBUS. */ + NRF_EVT_POWER_USB_REMOVED, /**< Event indicating that voltage supply is removed from VBUS. */ + NRF_EVT_NUMBER_OF_EVTS +}; + +/**@} */ + + +/**@addtogroup NRF_SOC_STRUCTURES Structures + * @{ */ + +/**@brief Represents a mutex for use with the nrf_mutex functions. + * @note Accessing the value directly is not safe, use the mutex functions! + */ +typedef volatile uint8_t nrf_mutex_t; + +/**@brief Parameters for a request for a timeslot as early as possible. */ +typedef struct +{ + uint8_t hfclk; /**< High frequency clock source, see @ref NRF_RADIO_HFCLK_CFG. */ + uint8_t priority; /**< The radio timeslot priority, see @ref NRF_RADIO_PRIORITY. */ + uint32_t length_us; /**< The radio timeslot length (in the range 100 to 100,000] microseconds). */ + uint32_t timeout_us; /**< Longest acceptable delay until the start of the requested timeslot (up to @ref NRF_RADIO_EARLIEST_TIMEOUT_MAX_US microseconds). */ +} nrf_radio_request_earliest_t; + +/**@brief Parameters for a normal radio timeslot request. */ +typedef struct +{ + uint8_t hfclk; /**< High frequency clock source, see @ref NRF_RADIO_HFCLK_CFG. */ + uint8_t priority; /**< The radio timeslot priority, see @ref NRF_RADIO_PRIORITY. */ + uint32_t distance_us; /**< Distance from the start of the previous radio timeslot (up to @ref NRF_RADIO_DISTANCE_MAX_US microseconds). */ + uint32_t length_us; /**< The radio timeslot length (in the range [100..100,000] microseconds). */ +} nrf_radio_request_normal_t; + +/**@brief Radio timeslot request parameters. */ +typedef struct +{ + uint8_t request_type; /**< Type of request, see @ref NRF_RADIO_REQUEST_TYPE. */ + union + { + nrf_radio_request_earliest_t earliest; /**< Parameters for requesting a radio timeslot as early as possible. */ + nrf_radio_request_normal_t normal; /**< Parameters for requesting a normal radio timeslot. */ + } params; /**< Parameter union. */ +} nrf_radio_request_t; + +/**@brief Return parameters of the radio timeslot signal callback. */ +typedef struct +{ + uint8_t callback_action; /**< The action requested by the application when returning from the signal callback, see @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION. */ + union + { + struct + { + nrf_radio_request_t * p_next; /**< The request parameters for the next radio timeslot. */ + } request; /**< Additional parameters for return_code @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END. */ + struct + { + uint32_t length_us; /**< Requested extension of the radio timeslot duration (microseconds) (for minimum time see @ref NRF_RADIO_MINIMUM_TIMESLOT_LENGTH_EXTENSION_TIME_US). */ + } extend; /**< Additional parameters for return_code @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND. */ + } params; /**< Parameter union. */ +} nrf_radio_signal_callback_return_param_t; + +/**@brief The radio timeslot signal callback type. + * + * @note In case of invalid return parameters, the radio timeslot will automatically end + * immediately after returning from the signal callback and the + * @ref NRF_EVT_RADIO_SIGNAL_CALLBACK_INVALID_RETURN event will be sent. + * @note The returned struct pointer must remain valid after the signal callback + * function returns. For instance, this means that it must not point to a stack variable. + * + * @param[in] signal_type Type of signal, see @ref NRF_RADIO_CALLBACK_SIGNAL_TYPE. + * + * @return Pointer to structure containing action requested by the application. + */ +typedef nrf_radio_signal_callback_return_param_t * (*nrf_radio_signal_callback_t) (uint8_t signal_type); + +/**@brief AES ECB parameter typedefs */ +typedef uint8_t soc_ecb_key_t[SOC_ECB_KEY_LENGTH]; /**< Encryption key type. */ +typedef uint8_t soc_ecb_cleartext_t[SOC_ECB_CLEARTEXT_LENGTH]; /**< Cleartext data type. */ +typedef uint8_t soc_ecb_ciphertext_t[SOC_ECB_CIPHERTEXT_LENGTH]; /**< Ciphertext data type. */ + +/**@brief AES ECB data structure */ +typedef struct +{ + soc_ecb_key_t key; /**< Encryption key. */ + soc_ecb_cleartext_t cleartext; /**< Cleartext data. */ + soc_ecb_ciphertext_t ciphertext; /**< Ciphertext data. */ +} nrf_ecb_hal_data_t; + +/**@brief AES ECB block. Used to provide multiple blocks in a single call + to @ref sd_ecb_blocks_encrypt.*/ +typedef struct +{ + soc_ecb_key_t const * p_key; /**< Pointer to the Encryption key. */ + soc_ecb_cleartext_t const * p_cleartext; /**< Pointer to the Cleartext data. */ + soc_ecb_ciphertext_t * p_ciphertext; /**< Pointer to the Ciphertext data. */ +} nrf_ecb_hal_data_block_t; + +/**@} */ + +/**@addtogroup NRF_SOC_FUNCTIONS Functions + * @{ */ + +/**@brief Initialize a mutex. + * + * @param[in] p_mutex Pointer to the mutex to initialize. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_MUTEX_NEW, uint32_t, sd_mutex_new(nrf_mutex_t * p_mutex)); + +/**@brief Attempt to acquire a mutex. + * + * @param[in] p_mutex Pointer to the mutex to acquire. + * + * @retval ::NRF_SUCCESS The mutex was successfully acquired. + * @retval ::NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN The mutex could not be acquired. + */ +SVCALL(SD_MUTEX_ACQUIRE, uint32_t, sd_mutex_acquire(nrf_mutex_t * p_mutex)); + +/**@brief Release a mutex. + * + * @param[in] p_mutex Pointer to the mutex to release. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_MUTEX_RELEASE, uint32_t, sd_mutex_release(nrf_mutex_t * p_mutex)); + +/**@brief Query the capacity of the application random pool. + * + * @param[out] p_pool_capacity The capacity of the pool. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_RAND_APPLICATION_POOL_CAPACITY_GET, uint32_t, sd_rand_application_pool_capacity_get(uint8_t * p_pool_capacity)); + +/**@brief Get number of random bytes available to the application. + * + * @param[out] p_bytes_available The number of bytes currently available in the pool. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_RAND_APPLICATION_BYTES_AVAILABLE_GET, uint32_t, sd_rand_application_bytes_available_get(uint8_t * p_bytes_available)); + +/**@brief Get random bytes from the application pool. + * + * @param[out] p_buff Pointer to unit8_t buffer for storing the bytes. + * @param[in] length Number of bytes to take from pool and place in p_buff. + * + * @retval ::NRF_SUCCESS The requested bytes were written to p_buff. + * @retval ::NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES No bytes were written to the buffer, because there were not enough bytes available. +*/ +SVCALL(SD_RAND_APPLICATION_VECTOR_GET, uint32_t, sd_rand_application_vector_get(uint8_t * p_buff, uint8_t length)); + +/**@brief Gets the reset reason register. + * + * @param[out] p_reset_reason Contents of the NRF_POWER->RESETREAS register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RESET_REASON_GET, uint32_t, sd_power_reset_reason_get(uint32_t * p_reset_reason)); + +/**@brief Clears the bits of the reset reason register. + * + * @param[in] reset_reason_clr_msk Contains the bits to clear from the reset reason register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RESET_REASON_CLR, uint32_t, sd_power_reset_reason_clr(uint32_t reset_reason_clr_msk)); + +/**@brief Sets the power mode when in CPU sleep. + * + * @param[in] power_mode The power mode to use when in CPU sleep, see @ref NRF_POWER_MODES. @sa sd_app_evt_wait + * + * @retval ::NRF_SUCCESS The power mode was set. + * @retval ::NRF_ERROR_SOC_POWER_MODE_UNKNOWN The power mode was unknown. + */ +SVCALL(SD_POWER_MODE_SET, uint32_t, sd_power_mode_set(uint8_t power_mode)); + +/**@brief Puts the chip in System OFF mode. + * + * @retval ::NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN + */ +SVCALL(SD_POWER_SYSTEM_OFF, uint32_t, sd_power_system_off(void)); + +/**@brief Enables or disables the power-fail comparator. + * + * Enabling this will give a SoftDevice event (NRF_EVT_POWER_FAILURE_WARNING) when the power failure warning occurs. + * The event can be retrieved with sd_evt_get(); + * + * @param[in] pof_enable True if the power-fail comparator should be enabled, false if it should be disabled. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_POF_ENABLE, uint32_t, sd_power_pof_enable(uint8_t pof_enable)); + +/**@brief Enables or disables the USB power ready event. + * + * Enabling this will give a SoftDevice event (NRF_EVT_POWER_USB_POWER_READY) when a USB 3.3 V supply is ready. + * The event can be retrieved with sd_evt_get(); + * + * @param[in] usbpwrrdy_enable True if the power ready event should be enabled, false if it should be disabled. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_USBPWRRDY_ENABLE, uint32_t, sd_power_usbpwrrdy_enable(uint8_t usbpwrrdy_enable)); + +/**@brief Enables or disables the power USB-detected event. + * + * Enabling this will give a SoftDevice event (NRF_EVT_POWER_USB_DETECTED) when a voltage supply is detected on VBUS. + * The event can be retrieved with sd_evt_get(); + * + * @param[in] usbdetected_enable True if the power ready event should be enabled, false if it should be disabled. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_USBDETECTED_ENABLE, uint32_t, sd_power_usbdetected_enable(uint8_t usbdetected_enable)); + +/**@brief Enables or disables the power USB-removed event. + * + * Enabling this will give a SoftDevice event (NRF_EVT_POWER_USB_REMOVED) when a voltage supply is removed from VBUS. + * The event can be retrieved with sd_evt_get(); + * + * @param[in] usbremoved_enable True if the power ready event should be enabled, false if it should be disabled. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_USBREMOVED_ENABLE, uint32_t, sd_power_usbremoved_enable(uint8_t usbremoved_enable)); + +/**@brief Get USB supply status register content. + * + * @param[out] usbregstatus The content of USBREGSTATUS register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_USBREGSTATUS_GET, uint32_t, sd_power_usbregstatus_get(uint32_t * usbregstatus)); + +/**@brief Sets the power failure comparator threshold value. + * + * @note: Power failure comparator threshold setting. This setting applies both for normal voltage + * mode (supply connected to both VDD and VDDH) and high voltage mode (supply connected to + * VDDH only). + * + * @param[in] threshold The power-fail threshold value to use, see @ref NRF_POWER_THRESHOLDS. + * + * @retval ::NRF_SUCCESS The power failure threshold was set. + * @retval ::NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN The power failure threshold is unknown. + */ +SVCALL(SD_POWER_POF_THRESHOLD_SET, uint32_t, sd_power_pof_threshold_set(uint8_t threshold)); + +/**@brief Sets the power failure comparator threshold value for high voltage. + * + * @note: Power failure comparator threshold setting for high voltage mode (supply connected to + * VDDH only). This setting does not apply for normal voltage mode (supply connected to both + * VDD and VDDH). + * + * @param[in] threshold The power-fail threshold value to use, see @ref NRF_POWER_THRESHOLDVDDHS. + * + * @retval ::NRF_SUCCESS The power failure threshold was set. + * @retval ::NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN The power failure threshold is unknown. + */ +SVCALL(SD_POWER_POF_THRESHOLDVDDH_SET, uint32_t, sd_power_pof_thresholdvddh_set(uint8_t threshold)); + +/**@brief Writes the NRF_POWER->RAM[index].POWERSET register. + * + * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWERSET register to write to. + * @param[in] ram_powerset Contains the word to write to the NRF_POWER->RAM[index].POWERSET register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RAM_POWER_SET, uint32_t, sd_power_ram_power_set(uint8_t index, uint32_t ram_powerset)); + +/**@brief Writes the NRF_POWER->RAM[index].POWERCLR register. + * + * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWERCLR register to write to. + * @param[in] ram_powerclr Contains the word to write to the NRF_POWER->RAM[index].POWERCLR register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RAM_POWER_CLR, uint32_t, sd_power_ram_power_clr(uint8_t index, uint32_t ram_powerclr)); + +/**@brief Get contents of NRF_POWER->RAM[index].POWER register, indicates power status of RAM[index] blocks. + * + * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWER register to read from. + * @param[out] p_ram_power Content of NRF_POWER->RAM[index].POWER register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_RAM_POWER_GET, uint32_t, sd_power_ram_power_get(uint8_t index, uint32_t * p_ram_power)); + +/**@brief Set bits in the general purpose retention registers (NRF_POWER->GPREGRET*). + * + * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2. + * @param[in] gpregret_msk Bits to be set in the GPREGRET register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_GPREGRET_SET, uint32_t, sd_power_gpregret_set(uint32_t gpregret_id, uint32_t gpregret_msk)); + +/**@brief Clear bits in the general purpose retention registers (NRF_POWER->GPREGRET*). + * + * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2. + * @param[in] gpregret_msk Bits to be clear in the GPREGRET register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_GPREGRET_CLR, uint32_t, sd_power_gpregret_clr(uint32_t gpregret_id, uint32_t gpregret_msk)); + +/**@brief Get contents of the general purpose retention registers (NRF_POWER->GPREGRET*). + * + * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2. + * @param[out] p_gpregret Contents of the GPREGRET register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_POWER_GPREGRET_GET, uint32_t, sd_power_gpregret_get(uint32_t gpregret_id, uint32_t *p_gpregret)); + +/**@brief Enable or disable the DC/DC regulator for the regulator stage 1 (REG1). + * + * @param[in] dcdc_mode The mode of the DCDC, see @ref NRF_POWER_DCDC_MODES. + * + * @retval ::NRF_SUCCESS + * @retval ::NRF_ERROR_INVALID_PARAM The DCDC mode is invalid. + */ +SVCALL(SD_POWER_DCDC_MODE_SET, uint32_t, sd_power_dcdc_mode_set(uint8_t dcdc_mode)); + +/**@brief Enable or disable the DC/DC regulator for the regulator stage 0 (REG0). + * + * For more details on the REG0 stage, please see product specification. + * + * @param[in] dcdc_mode The mode of the DCDC0, see @ref NRF_POWER_DCDC_MODES. + * + * @retval ::NRF_SUCCESS + * @retval ::NRF_ERROR_INVALID_PARAM The dcdc_mode is invalid. + */ +SVCALL(SD_POWER_DCDC0_MODE_SET, uint32_t, sd_power_dcdc0_mode_set(uint8_t dcdc_mode)); + +/**@brief Request the high frequency crystal oscillator. + * + * Will start the high frequency crystal oscillator, the startup time of the crystal varies + * and the ::sd_clock_hfclk_is_running function can be polled to check if it has started. + * + * @see sd_clock_hfclk_is_running + * @see sd_clock_hfclk_release + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_CLOCK_HFCLK_REQUEST, uint32_t, sd_clock_hfclk_request(void)); + +/**@brief Releases the high frequency crystal oscillator. + * + * Will stop the high frequency crystal oscillator, this happens immediately. + * + * @see sd_clock_hfclk_is_running + * @see sd_clock_hfclk_request + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_CLOCK_HFCLK_RELEASE, uint32_t, sd_clock_hfclk_release(void)); + +/**@brief Checks if the high frequency crystal oscillator is running. + * + * @see sd_clock_hfclk_request + * @see sd_clock_hfclk_release + * + * @param[out] p_is_running 1 if the external crystal oscillator is running, 0 if not. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_CLOCK_HFCLK_IS_RUNNING, uint32_t, sd_clock_hfclk_is_running(uint32_t * p_is_running)); + +/**@brief Waits for an application event. + * + * An application event is either an application interrupt or a pended interrupt when the interrupt + * is disabled. + * + * When the application waits for an application event by calling this function, an interrupt that + * is enabled will be taken immediately on pending since this function will wait in thread mode, + * then the execution will return in the application's main thread. + * + * In order to wake up from disabled interrupts, the SEVONPEND flag has to be set in the Cortex-M + * MCU's System Control Register (SCR), CMSIS_SCB. In that case, when a disabled interrupt gets + * pended, this function will return to the application's main thread. + * + * @note The application must ensure that the pended flag is cleared using ::sd_nvic_ClearPendingIRQ + * in order to sleep using this function. This is only necessary for disabled interrupts, as + * the interrupt handler will clear the pending flag automatically for enabled interrupts. + * + * @note If an application interrupt has happened since the last time sd_app_evt_wait was + * called this function will return immediately and not go to sleep. This is to avoid race + * conditions that can occur when a flag is updated in the interrupt handler and processed + * in the main loop. + * + * @post An application interrupt has happened or a interrupt pending flag is set. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_APP_EVT_WAIT, uint32_t, sd_app_evt_wait(void)); + +/**@brief Get PPI channel enable register contents. + * + * @param[out] p_channel_enable The contents of the PPI CHEN register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_CHANNEL_ENABLE_GET, uint32_t, sd_ppi_channel_enable_get(uint32_t * p_channel_enable)); + +/**@brief Set PPI channel enable register. + * + * @param[in] channel_enable_set_msk Mask containing the bits to set in the PPI CHEN register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_CHANNEL_ENABLE_SET, uint32_t, sd_ppi_channel_enable_set(uint32_t channel_enable_set_msk)); + +/**@brief Clear PPI channel enable register. + * + * @param[in] channel_enable_clr_msk Mask containing the bits to clear in the PPI CHEN register. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_CHANNEL_ENABLE_CLR, uint32_t, sd_ppi_channel_enable_clr(uint32_t channel_enable_clr_msk)); + +/**@brief Assign endpoints to a PPI channel. + * + * @param[in] channel_num Number of the PPI channel to assign. + * @param[in] evt_endpoint Event endpoint of the PPI channel. + * @param[in] task_endpoint Task endpoint of the PPI channel. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_CHANNEL The channel number is invalid. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_CHANNEL_ASSIGN, uint32_t, sd_ppi_channel_assign(uint8_t channel_num, const volatile void * evt_endpoint, const volatile void * task_endpoint)); + +/**@brief Task to enable a channel group. + * + * @param[in] group_num Number of the channel group. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_GROUP_TASK_ENABLE, uint32_t, sd_ppi_group_task_enable(uint8_t group_num)); + +/**@brief Task to disable a channel group. + * + * @param[in] group_num Number of the PPI group. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_GROUP_TASK_DISABLE, uint32_t, sd_ppi_group_task_disable(uint8_t group_num)); + +/**@brief Assign PPI channels to a channel group. + * + * @param[in] group_num Number of the channel group. + * @param[in] channel_msk Mask of the channels to assign to the group. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_GROUP_ASSIGN, uint32_t, sd_ppi_group_assign(uint8_t group_num, uint32_t channel_msk)); + +/**@brief Gets the PPI channels of a channel group. + * + * @param[in] group_num Number of the channel group. + * @param[out] p_channel_msk Mask of the channels assigned to the group. + * + * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_PPI_GROUP_GET, uint32_t, sd_ppi_group_get(uint8_t group_num, uint32_t * p_channel_msk)); + +/**@brief Configures the Radio Notification signal. + * + * @note + * - The notification signal latency depends on the interrupt priority settings of SWI used + * for notification signal. + * - To ensure that the radio notification signal behaves in a consistent way, the radio + * notifications must be configured when there is no protocol stack or other SoftDevice + * activity in progress. It is recommended that the radio notification signal is + * configured directly after the SoftDevice has been enabled. + * - In the period between the ACTIVE signal and the start of the Radio Event, the SoftDevice + * will interrupt the application to do Radio Event preparation. + * - Using the Radio Notification feature may limit the bandwidth, as the SoftDevice may have + * to shorten the connection events to have time for the Radio Notification signals. + * + * @param[in] type Type of notification signal, see @ref NRF_RADIO_NOTIFICATION_TYPES. + * @ref NRF_RADIO_NOTIFICATION_TYPE_NONE shall be used to turn off radio + * notification. Using @ref NRF_RADIO_NOTIFICATION_DISTANCE_NONE is + * recommended (but not required) to be used with + * @ref NRF_RADIO_NOTIFICATION_TYPE_NONE. + * + * @param[in] distance Distance between the notification signal and start of radio activity, see @ref NRF_RADIO_NOTIFICATION_DISTANCES. + * This parameter is ignored when @ref NRF_RADIO_NOTIFICATION_TYPE_NONE or + * @ref NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE is used. + * + * @retval ::NRF_ERROR_INVALID_PARAM The group number is invalid. + * @retval ::NRF_ERROR_INVALID_STATE A protocol stack or other SoftDevice is running. Stop all + * running activities and retry. + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_RADIO_NOTIFICATION_CFG_SET, uint32_t, sd_radio_notification_cfg_set(uint8_t type, uint8_t distance)); + +/**@brief Encrypts a block according to the specified parameters. + * + * 128-bit AES encryption. + * + * @note: + * - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while + * the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application + * main or low interrupt level. + * + * @param[in, out] p_ecb_data Pointer to the ECB parameters' struct (two input + * parameters and one output parameter). + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_ECB_BLOCK_ENCRYPT, uint32_t, sd_ecb_block_encrypt(nrf_ecb_hal_data_t * p_ecb_data)); + +/**@brief Encrypts multiple data blocks provided as an array of data block structures. + * + * @details: Performs 128-bit AES encryption on multiple data blocks + * + * @note: + * - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while + * the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application + * main or low interrupt level. + * + * @param[in] block_count Count of blocks in the p_data_blocks array. + * @param[in,out] p_data_blocks Pointer to the first entry in a contiguous array of + * @ref nrf_ecb_hal_data_block_t structures. + * + * @retval ::NRF_SUCCESS + */ +SVCALL(SD_ECB_BLOCKS_ENCRYPT, uint32_t, sd_ecb_blocks_encrypt(uint8_t block_count, nrf_ecb_hal_data_block_t * p_data_blocks)); + +/**@brief Gets any pending events generated by the SoC API. + * + * The application should keep calling this function to get events, until ::NRF_ERROR_NOT_FOUND is returned. + * + * @param[out] p_evt_id Set to one of the values in @ref NRF_SOC_EVTS, if any events are pending. + * + * @retval ::NRF_SUCCESS An event was pending. The event id is written in the p_evt_id parameter. + * @retval ::NRF_ERROR_NOT_FOUND No pending events. + */ +SVCALL(SD_EVT_GET, uint32_t, sd_evt_get(uint32_t * p_evt_id)); + +/**@brief Get the temperature measured on the chip + * + * This function will block until the temperature measurement is done. + * It takes around 50 us from call to return. + * + * @param[out] p_temp Result of temperature measurement. Die temperature in 0.25 degrees Celsius. + * + * @retval ::NRF_SUCCESS A temperature measurement was done, and the temperature was written to temp + */ +SVCALL(SD_TEMP_GET, uint32_t, sd_temp_get(int32_t * p_temp)); + +/**@brief Flash Write +* +* Commands to write a buffer to flash +* +* If the SoftDevice is enabled: +* This call initiates the flash access command, and its completion will be communicated to the +* application with exactly one of the following events: +* - @ref NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed. +* - @ref NRF_EVT_FLASH_OPERATION_ERROR - The command could not be started. +* +* If the SoftDevice is not enabled no event will be generated, and this call will return @ref NRF_SUCCESS when the + * write has been completed +* +* @note +* - This call takes control over the radio and the CPU during flash erase and write to make sure that +* they will not interfere with the flash access. This means that all interrupts will be blocked +* for a predictable time (depending on the NVMC specification in the device's Product Specification +* and the command parameters). +* - The data in the p_src buffer should not be modified before the @ref NRF_EVT_FLASH_OPERATION_SUCCESS +* or the @ref NRF_EVT_FLASH_OPERATION_ERROR have been received if the SoftDevice is enabled. +* - This call will make the SoftDevice trigger a hardfault when the page is written, if it is +* protected. +* +* +* @param[in] p_dst Pointer to start of flash location to be written. +* @param[in] p_src Pointer to buffer with data to be written. +* @param[in] size Number of 32-bit words to write. Maximum size is the number of words in one +* flash page. See the device's Product Specification for details. +* +* @retval ::NRF_ERROR_INVALID_ADDR Tried to write to a non existing flash address, or p_dst or p_src was unaligned. +* @retval ::NRF_ERROR_BUSY The previous command has not yet completed. +* @retval ::NRF_ERROR_INVALID_LENGTH Size was 0, or higher than the maximum allowed size. +* @retval ::NRF_ERROR_FORBIDDEN Tried to write to an address outside the application flash area. +* @retval ::NRF_SUCCESS The command was accepted. +*/ +SVCALL(SD_FLASH_WRITE, uint32_t, sd_flash_write(uint32_t * p_dst, uint32_t const * p_src, uint32_t size)); + + +/**@brief Flash Erase page +* +* Commands to erase a flash page +* If the SoftDevice is enabled: +* This call initiates the flash access command, and its completion will be communicated to the +* application with exactly one of the following events: +* - @ref NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed. +* - @ref NRF_EVT_FLASH_OPERATION_ERROR - The command could not be started. +* +* If the SoftDevice is not enabled no event will be generated, and this call will return @ref NRF_SUCCESS when the +* erase has been completed +* +* @note +* - This call takes control over the radio and the CPU during flash erase and write to make sure that +* they will not interfere with the flash access. This means that all interrupts will be blocked +* for a predictable time (depending on the NVMC specification in the device's Product Specification +* and the command parameters). +* - This call will make the SoftDevice trigger a hardfault when the page is erased, if it is +* protected. +* +* +* @param[in] page_number Page number of the page to erase +* +* @retval ::NRF_ERROR_INTERNAL If a new session could not be opened due to an internal error. +* @retval ::NRF_ERROR_INVALID_ADDR Tried to erase to a non existing flash page. +* @retval ::NRF_ERROR_BUSY The previous command has not yet completed. +* @retval ::NRF_ERROR_FORBIDDEN Tried to erase a page outside the application flash area. +* @retval ::NRF_SUCCESS The command was accepted. +*/ +SVCALL(SD_FLASH_PAGE_ERASE, uint32_t, sd_flash_page_erase(uint32_t page_number)); + + + +/**@brief Opens a session for radio timeslot requests. + * + * @note Only one session can be open at a time. + * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START) will be called when the radio timeslot + * starts. From this point the NRF_RADIO and NRF_TIMER0 peripherals can be freely accessed + * by the application. + * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_TIMER0) is called whenever the NRF_TIMER0 + * interrupt occurs. + * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO) is called whenever the NRF_RADIO + * interrupt occurs. + * @note p_radio_signal_callback() will be called at ARM interrupt priority level 0. This + * implies that none of the sd_* API calls can be used from p_radio_signal_callback(). + * + * @param[in] p_radio_signal_callback The signal callback. + * + * @retval ::NRF_ERROR_INVALID_ADDR p_radio_signal_callback is an invalid function pointer. + * @retval ::NRF_ERROR_BUSY If session cannot be opened. + * @retval ::NRF_ERROR_INTERNAL If a new session could not be opened due to an internal error. + * @retval ::NRF_SUCCESS Otherwise. + */ + SVCALL(SD_RADIO_SESSION_OPEN, uint32_t, sd_radio_session_open(nrf_radio_signal_callback_t p_radio_signal_callback)); + +/**@brief Closes a session for radio timeslot requests. + * + * @note Any current radio timeslot will be finished before the session is closed. + * @note If a radio timeslot is scheduled when the session is closed, it will be canceled. + * @note The application cannot consider the session closed until the @ref NRF_EVT_RADIO_SESSION_CLOSED + * event is received. + * + * @retval ::NRF_ERROR_FORBIDDEN If session not opened. + * @retval ::NRF_ERROR_BUSY If session is currently being closed. + * @retval ::NRF_SUCCESS Otherwise. + */ + SVCALL(SD_RADIO_SESSION_CLOSE, uint32_t, sd_radio_session_close(void)); + +/**@brief Requests a radio timeslot. + * + * @note The request type is determined by p_request->request_type, and can be one of @ref NRF_RADIO_REQ_TYPE_EARLIEST + * and @ref NRF_RADIO_REQ_TYPE_NORMAL. The first request in a session must always be of type @ref NRF_RADIO_REQ_TYPE_EARLIEST. + * @note For a normal request (@ref NRF_RADIO_REQ_TYPE_NORMAL), the start time of a radio timeslot is specified by + * p_request->distance_us and is given relative to the start of the previous timeslot. + * @note A too small p_request->distance_us will lead to a @ref NRF_EVT_RADIO_BLOCKED event. + * @note Timeslots scheduled too close will lead to a @ref NRF_EVT_RADIO_BLOCKED event. + * @note See the SoftDevice Specification for more on radio timeslot scheduling, distances and lengths. + * @note If an opportunity for the first radio timeslot is not found before 100 ms after the call to this + * function, it is not scheduled, and instead a @ref NRF_EVT_RADIO_BLOCKED event is sent. + * The application may then try to schedule the first radio timeslot again. + * @note Successful requests will result in nrf_radio_signal_callback_t(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START). + * Unsuccessful requests will result in a @ref NRF_EVT_RADIO_BLOCKED event, see @ref NRF_SOC_EVTS. + * @note The jitter in the start time of the radio timeslots is +/- @ref NRF_RADIO_START_JITTER_US us. + * @note The nrf_radio_signal_callback_t(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START) call has a latency relative to the + * specified radio timeslot start, but this does not affect the actual start time of the timeslot. + * @note NRF_TIMER0 is reset at the start of the radio timeslot, and is clocked at 1MHz from the high frequency + * (16 MHz) clock source. If p_request->hfclk_force_xtal is true, the high frequency clock is + * guaranteed to be clocked from the external crystal. + * @note The SoftDevice will neither access the NRF_RADIO peripheral nor the NRF_TIMER0 peripheral + * during the radio timeslot. + * + * @param[in] p_request Pointer to the request parameters. + * + * @retval ::NRF_ERROR_FORBIDDEN If session not opened or the session is not IDLE. + * @retval ::NRF_ERROR_INVALID_ADDR If the p_request pointer is invalid. + * @retval ::NRF_ERROR_INVALID_PARAM If the parameters of p_request are not valid. + * @retval ::NRF_SUCCESS Otherwise. + */ + SVCALL(SD_RADIO_REQUEST, uint32_t, sd_radio_request(nrf_radio_request_t const * p_request)); + +/**@brief Write register protected by the SoftDevice + * + * This function writes to a register that is write-protected by the SoftDevice. Please refer to your + * SoftDevice Specification for more details about which registers that are protected by SoftDevice. + * This function can write to the following protected peripheral: + * - ACL + * + * @note Protected registers may be read directly. + * @note Register that are write-once will return @ref NRF_SUCCESS on second set, even the value in + * the register has not changed. See the Product Specification for more details about register + * properties. + * + * @param[in] p_register Pointer to register to be written. + * @param[in] value Value to be written to the register. + * + * @retval ::NRF_ERROR_INVALID_ADDR This function can not write to the reguested register. + * @retval ::NRF_SUCCESS Value successfully written to register. + * + */ +SVCALL(SD_PROTECTED_REGISTER_WRITE, uint32_t, sd_protected_register_write(volatile uint32_t * p_register, uint32_t value)); + +/**@} */ + +#ifdef __cplusplus +} +#endif +#endif // NRF_SOC_H__ + +/**@} */ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_svc.h b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_svc.h new file mode 100644 index 0000000..292c692 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_API/include/nrf_svc.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef NRF_SVC__ +#define NRF_SVC__ + +#include "stdint.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef SVCALL_AS_NORMAL_FUNCTION +#define SVCALL(number, return_type, signature) return_type signature +#else + +#ifndef SVCALL +#if defined (__CC_ARM) +#define SVCALL(number, return_type, signature) return_type __svc(number) signature +#elif defined (__GNUC__) +#ifdef __cplusplus +#define GCC_CAST_CPP (uint16_t) +#else +#define GCC_CAST_CPP +#endif +#define SVCALL(number, return_type, signature) \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wreturn-type\"") \ + __attribute__((naked)) \ + __attribute__((unused)) \ + static return_type signature \ + { \ + __asm( \ + "svc %0\n" \ + "bx r14" : : "I" (GCC_CAST_CPP number) : "r0" \ + ); \ + } \ + _Pragma("GCC diagnostic pop") + +#elif defined (__ICCARM__) +#define PRAGMA(x) _Pragma(#x) +#define SVCALL(number, return_type, signature) \ +PRAGMA(swi_number = (number)) \ + __swi return_type signature; +#else +#define SVCALL(number, return_type, signature) return_type signature +#endif +#endif // SVCALL + +#endif // SVCALL_AS_NORMAL_FUNCTION + +#ifdef __cplusplus +} +#endif +#endif // NRF_SVC__ diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_license-agreement.txt b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_license-agreement.txt new file mode 100644 index 0000000..2d1bc12 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_license-agreement.txt @@ -0,0 +1,35 @@ +Copyright (c) 2007 - 2018, Nordic Semiconductor ASA +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form, except as embedded into a Nordic + Semiconductor ASA integrated circuit in a product or a software update for + such product, must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + +3. Neither the name of Nordic Semiconductor ASA nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +4. This software, with or without modification, must only be used with a + Nordic Semiconductor ASA integrated circuit. + +5. Any software provided in binary form under this license must not be reverse + engineered, decompiled, modified and/or disassembled. + +THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_softdevice.hex b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_softdevice.hex new file mode 100644 index 0000000..83f9e50 --- /dev/null +++ b/lib/softdevice/s140_nrf52_6.0.0/s140_nrf52_6.0.0_softdevice.hex @@ -0,0 +1,9443 @@ +:020000040000FA +:1000000000040020990900002D0600007909000075 +:1000100037060000410600004B060000000000000B +:10002000000000000000000000000000BD0900000A +:1000300055060000000000005F0600006906000091 +:10004000730600007D060000870600009106000090 +:100050009B060000A5060000AF060000B9060000E0 +:10006000C3060000CD060000D7060000E106000030 +:10007000EB060000F5060000FF060000090700007F +:10008000130700001D0700002707000031070000CC +:100090003B070000450700004F070000590700001C +:1000A000630700006D07000077070000810700006C +:1000B0008B070000950700009F070000A9070000BC +:1000C000B3070000BD070000C7070000D10700000C +:1000D000DB070000E5070000EF070000F90700005C +:1000E000030800000D0800001708000021080000A8 +:1000F0002B080000350800003F08000049080000F8 +:10010000530800001FB500F003F88DE80F001FBD75 +:1001100000F038BC70B50B46010B184400F6FF70B8 +:10012000040B4FF080500022090303692403406947 +:1001300043431D1B104600F0E9F929462046BDE85F +:10014000704000F0E3B9F0B54FF6FF734FF4B475AB +:100150001A466E1E12E0A94201D3344600E00C4656 +:10016000B1EB040130F8027B641E3B441A44F9D120 +:100170009CB204EB134394B204EB12420029EAD17F +:1001800098B200EB134002EB124140EA0140F0BD8F +:10019000C34992B00446D1E90001CDE91001FF2224 +:1001A0004021684600F094FB94E80F008DE80F00B2 +:1001B000684610A902E004C841F8042D8842FAD12B +:1001C00010216846FFF7BFFF1090AA208DF8440069 +:1001D00000F0FAF800F0DDF84FF01024A0691022CA +:1001E0006946803000F0DEF8A069082210A900F00E +:1001F000D9F800F0C2F870B504460068A94D072888 +:1002000069D2DFE800F033041929561E2500D4E92D +:10021000026564682946304600F0FDF82A4621460A +:10022000304600F0BFF8AA002146304600F024FB1B +:10023000002800D0032070BD00F0D6FB4FF48050A2 +:1002400007E0201D00F0C6F80028F4D100F0CCFB38 +:1002500060682860002070BD241D94E807009200AB +:1002600000F00AFB0028F6D00E2070BD00F0BEF8AA +:100270000028FAD1D4E9010100EB81034FF080504E +:10028000026945696A43934209D84FF010225369C5 +:1002900003EB81030169406941438B4201D9092085 +:1002A00070BD5069401C01D10F2070BD2046FFF782 +:1002B0006FFF00F09BF80028F7D1201D00F08AF8AE +:1002C0000028F2D160680028F0D100F07DF800F03D +:1002D00060F800F052F8072070BD10B50C461828E1 +:1002E00002D00120086010BD2068FFF784FF206065 +:1002F00010BD4FF01024A069401C05D0A569A66967 +:1003000080353079AA2808D06069401C2DD06069FA +:100310000068401C29D060692CE010212846FFF7B6 +:1003200012FF316881421CD1A16901F18002C03104 +:1003300005E030B108CA51F8040D984201D10120FE +:1003400000E000208A42F4D158B1286810B1042896 +:1003500003D0FEE7284600F070F85249686808604C +:1003600008E000F016F800F008F84FF4805001683B +:10037000491C01D000F012FBFEE7BFF34F8F4A4843 +:1003800001684A4A01F4E06111430160BFF34F8FF5 +:10039000FEE74FF010208169491C02D0806900F00F +:1003A0008CB870472DE9F04117460D4606460024EB +:1003B00006E03046296800F093F8641C2D1D361DB8 +:1003C000BC42F6D3BDE8F0814FF0102080694FF4B5 +:1003D00080519FE64FF080510A69496900684A439D +:1003E000824201D810207047002070474FF08050A3 +:1003F0000169406941434FF01020826902F5805243 +:10040000914201D2092070478069401C01D0002030 +:1004100070470420704770B50C4605464FF480665F +:1004200008E0284600F049F8B44205D3A4F58064FA +:1004300005F58055002CF4D170BD4168044609B122 +:10044000012600E000264FF010256869A26892009E +:1004500000F012FAF8B1A06881006869FFF75AFE4F +:10046000BEB16E694FF08050A56864680169426949 +:100470005143A1420DD9016940694143A94208D9BC +:1004800029463046FFF7C7FF2A4621463046FFF788 +:1004900089FFFFF772FFFFF797FFFFF77AFFF8E793 +:1004A0000C0A0000000000200CED00E00400FA053A +:1004B000144801680029FCD07047134A02211160DA +:1004C00010490B68002BFCD00F4B1B1D18600868EF +:1004D0000028FCD00020106008680028FCD070477D +:1004E000094B10B501221A60064A1468002CFCD092 +:1004F000016010680028FCD00020186010680028F7 +:10050000FCD010BD00E4014004E5014070B50C468C +:10051000054600F073F810B900F07EF828B12146C6 +:100520002846BDE8704000F007B821462846BDE8DF +:10053000704000F037B800007FB5002200920192B1 +:10054000029203920A0B000B6946012302440AE05F +:10055000440900F01F0651F8245003FA06F635430B +:1005600041F82450401C8242F2D80D490868009A94 +:1005700010430860081D0168019A1143016000F0F2 +:100580003DF800280AD0064910310868029A104345 +:100590000860091D0868039A104308607FBD0000C9 +:1005A0000006004030B50F4C002200BF04EB0213E0 +:1005B000D3F800582DB9D3F8045815B9D3F8085812 +:1005C0001DB1521C082AF1D330BD082AFCD204EB1D +:1005D0000212C2F80008C3F804180220C3F8080881 +:1005E00030BD000000E001404FF08050D0F83001F5 +:1005F000082801D000207047012070474FF080503C +:10060000D0F83011062905D0D0F83001401C01D0B7 +:1006100000207047012070474FF08050D0F8300123 +:100620000A2801D0002070470120704708208F4918 +:1006300009680958084710208C4909680958084773 +:1006400014208A4909680958084718208749096809 +:100650000958084730208549096809580847382053 +:1006600082490968095808473C20804909680958A7 +:10067000084740207D4909680958084744207B49BC +:1006800009680958084748207849096809580847FF +:100690004C20764909680958084750207349096871 +:1006A00009580847542071490968095808475820D3 +:1006B0006E490968095808475C206C49096809585F +:1006C0000847602069490968095808476420674954 +:1006D00009680958084768206449096809580847A3 +:1006E0006C20624909680958084770205F49096809 +:1006F0000958084774205D49096809580847782057 +:100700005A490968095808477C2058490968095816 +:1007100008478020554909680958084784205349EB +:100720000968095808478820504909680958084746 +:100730008C204E4909680958084790204B490968A0 +:1007400009580847942049490968095808479820DA +:1007500046490968095808479C20444909680958CE +:100760000847A0204149096809580847A4203F4983 +:10077000096809580847A8203C49096809580847EA +:10078000AC203A49096809580847B0203749096838 +:1007900009580847B4203549096809580847B8205E +:1007A0003249096809580847BC2030490968095886 +:1007B0000847C0202D49096809580847C4202B491B +:1007C000096809580847C82028490968095808478E +:1007D000CC202649096809580847D02023490968D0 +:1007E00009580847D4202149096809580847D820E2 +:1007F0001E49096809580847DC201C49096809583E +:100800000847E0201949096809580847E4201749B2 +:10081000096809580847E820144909680958084731 +:10082000EC201249096809580847F0200F49096867 +:1008300009580847F4200D49096809580847F82065 +:100840000A49096809580847FC20084909680958F5 +:1008500008475FF480700549096809580847000097 +:1008600003480449024A034B70470000000000207F +:10087000180A0000180A000040EA010310B59B079F +:100880000FD1042A0DD310C808C9121F9C42F8D0FA +:1008900020BA19BA884201D9012010BD4FF0FF30AB +:1008A00010BD1AB1D30703D0521C07E0002010BDC1 +:1008B00010F8013B11F8014B1B1B07D110F8013B4D +:1008C00011F8014B1B1B01D1921EF1D1184610BD2E +:1008D00002F0FF0343EA032242EA024200F005B8B5 +:1008E0007047704770474FF000020429C0F0128033 +:1008F00010F0030C00F01B80CCF1040CBCF1020FD3 +:1009000018BF00F8012BA8BF20F8022BA1EB0C01A7 +:1009100000F00DB85FEAC17C24BF00F8012B00F89D +:10092000012B48BF00F8012B70474FF0000200B5C3 +:10093000134694469646203922BFA0E80C50A0E802 +:100940000C50B1F12001BFF4F7AF090728BFA0E8B0 +:100950000C5048BF0CC05DF804EB890028BF40F87C +:10096000042B08BF704748BF20F8022B11F0804FBE +:1009700018BF00F8012B7047014B1B68DB68184754 +:100980000000002009480A497047FFF7FBFFFFF706 +:10099000B9FB00BD20BFFDE7064B1847064A1060B3 +:1009A000016881F30888406800470000180A0000C9 +:1009B000180A0000F3020000000000201EF0040FDF +:1009C0000CBFEFF30881EFF30981886902380078E2 +:1009D000182803D100E00000074A1047074A1268B0 +:1009E0002C3212681047000000B5054B1B68054A01 +:1009F0009B58984700BD0000DB020000000000206B +:100A0000080A0000040000000010000000000000C0 +:080A100000FFFFFF0090D0037E +:10100000E0120020754D0200192F0000E74C02008D +:10101000192F0000192F0000192F000000000000F8 +:10102000000000000000000000000000CD4D0200A4 +:10103000192F000000000000192F0000192F0000D8 +:10104000354E02003B4E0200192F0000192F000000 +:10105000192F0000192F0000192F0000192F000070 +:10106000414E0200192F0000192F0000474E0200C8 +:10107000192F00004D4E0200534E0200594E02003F +:10108000192F0000192F0000192F0000192F000040 +:10109000192F0000192F0000192F0000192F000030 +:1010A000192F00005F4E0200192F0000192F0000B9 +:1010B000192F0000192F0000192F0000192F000010 +:1010C000654E0200192F0000192F0000192F000093 +:1010D000192F0000192F0000192F0000192F0000F0 +:1010E000192F0000192F0000192F0000192F0000E0 +:1010F000192F0000192F0000192F0000192F0000D0 +:10110000192F0000192F000000F002F823F01FFE35 +:101110000AA090E8000C82448344AAF10107DA4552 +:1011200001D123F014FEAFF2090EBAE80F0013F05C +:10113000010F18BFFB1A43F00103184734420200A5 +:10114000544202000A444FF0000C10F8013B13F027 +:10115000070408BF10F8014B1D1108BF10F8015B10 +:10116000641E05D010F8016B641E01F8016BF9D103 +:1011700013F0080F1EBF10F8014BAD1C0C1B09D15A +:101180006D1E58BF01F801CBFAD505E014F8016BCC +:1011900001F8016B6D1EF9D59142D6D3704700005E +:1011A0000023002400250026103A28BF78C1FBD870 +:1011B000520728BF30C148BF0B6070471FB500F011 +:1011C0003DF88DE80F001FBD1EF0040F0CBFEFF3BC +:1011D0000880EFF30980014A10470000752E0000D7 +:1011E0008269034981614FF001001044704700009B +:1011F000F511000001B41EB400B512F061FF01B496 +:101200000198864601BC01B01EBD0000F0B4404606 +:10121000494652465B460FB402A0013001B506486C +:10122000004700BF01BC86460FBC804689469246F7 +:101230009B46F0BC704700000911000023F084BDFC +:1012400070B51A4C054609202070A01C00F05FF80C +:101250005920A08029462046BDE8704008F060B8BB +:1012600008F069B870B50C461149097829B1A0F1A8 +:1012700060015E2908D3012013E0602804D06928AA +:1012800002D043F201000CE020CC0A4E94E80E009C +:1012900006EB8000A0F58050241FD0F8806E284611 +:1012A000B047206070BD012070470000080000209A +:1012B0001C000020CC4E020010B504460021012085 +:1012C00000F03DF800210B2000F039F8042119202E +:1012D00000F035F804210D2000F031F804210E2033 +:1012E00000F02DF804210F2000F029F80421C84354 +:1012F00000F025F80621162000F021F8062115201F +:1013000000F01DF82046FFF79BFF002010BDA9212B +:1013100001807047FFF7A4BF11487047104870471D +:10132000104A10B514680F4B0F4A08331A60FFF7C4 +:1013300099FF0C48001D046010BD704770474907B5 +:10134000090E002806DA00F00F0000F1E02080F816 +:10135000141D704700F1E02080F800147047000071 +:1013600003F900421005024001000001FE4800217F +:1013700001604160018170472DE9F743044692B056 +:101380009146406813F060F940B1606813F065F968 +:1013900020B9607800F00300022801D0012000E0AD +:1013A0000020F14E3072484613F00AF918B11020AF +:1013B00015B0BDE8F0834946012001F018FF002870 +:1013C000F6D101258DF842504FF4C050ADF84000E1 +:1013D000002210A9284606F04BFC0028E8D18DF821 +:1013E00042504FF428504FF00008ADF840004746F7 +:1013F0001C216846CDF81C8023F04DFC9DF81C0094 +:1014000008AA20F00F00401C20F0F00010308DF8EA +:101410001C0020788DF81D0061789DF81E0061F396 +:10142000420040F001008DF81E009DF800000AA95E +:1014300040F002008DF800002089ADF83000ADF8D2 +:101440003270608907AFADF834000B97606810AC5C +:101450000E900A94684606F000FA0028A8D1BDF85C +:10146000200030808DF8425042F60120ADF8400057 +:101470009DF81E0008AA20F00600801C20F0010044 +:101480008DF81E000220ADF83000ADF8340013A82E +:101490000E900AA9684606F0E0F9002888D1BDF848 +:1014A00020007080311D484600F033F9002887D1B4 +:1014B0008DF8425042F6A620ADF840001C21684647 +:1014C000CDF81C8023F0E7FB9DF81C00ADF83450EC +:1014D00020F00F00401C20F0F00010308DF81C00B0 +:1014E0009DF81D0008AA20F0FF008DF81D009DF852 +:1014F0001E000AA920F0060040F00100801C8DF8B3 +:101500001E009DF800008DF8445040F002008DF858 +:101510000000CDE90A4711A80E90ADF8305068469A +:1015200006F09BF9002899D1BDF82000F08000203A +:101530003EE73EB504460820ADF80000204613F013 +:101540003FF808B110203EBD2146012001F04FFEBA +:101550000028F8D12088ADF804006088ADF80600B6 +:10156000A088ADF80800E088ADF80A007E4801AB1D +:101570006A468088002106F075FDBDF80010082934 +:10158000E1D003203EBD1FB5044600200290082094 +:10159000ADF80800CDF80CD0204613F011F810B1CA +:1015A000102004B010BD704802AA81884FF6FF7069 +:1015B00006F09AFF0028F4D1BDF80810082901D0E0 +:1015C0000320EEE7BDF800102180BDF80210618015 +:1015D000BDF80410A180BDF80610E180E1E701B577 +:1015E00082B00220ADF800005F4802AB6A46408836 +:1015F000002106F037FDBDF80010022900D00320BD +:101600000EBD1CB5002100910221ADF80010019023 +:1016100012F0FCFF08B110201CBD53486A464188F7 +:101620004FF6FF7006F060FFBDF800100229F3D0FE +:1016300003201CBDFEB54C4C06461546207A0F46CD +:10164000C00705D0084612F0BBFF18B11020FEBD40 +:101650000F20FEBDF82D01D90C20FEBD304612F042 +:10166000AFFF18BB208801A905F040FE0028F4D187 +:1016700030788DF80500208801A906F0D2FC0028FA +:10168000EBD100909DF800009DF8051040F002009D +:101690008DF80000090703D040F008008DF8000025 +:1016A0002088694606F05AFC0028D6D1ADF80850CB +:1016B00020883B4602AA002106F0D4FCBDF80810A1 +:1016C000A942CAD00320FEBD7CB50546002000908B +:1016D00001900888ADF800000C462846019512F0EC +:1016E000B3FF18B9204612F091FF08B110207CBD5D +:1016F00015B1BDF8000050B11B486A4601884FF68D +:10170000FF7006F0F1FEBDF8001021807CBD0C20BA +:101710007CBD30B593B0044600200D4600901421E6 +:1017200001A823F0B8FA1C2108A823F0B4FA9DF808 +:101730000000CDF808D020F00F00401C20F0F00091 +:1017400010308DF800009DF8010020F0FF008DF8AA +:1017500001009DF8200040F002008DF820000120DB +:101760008DF8460002E000000C02002042F6042042 +:10177000ADF8440011A801902088ADF83C006088C5 +:10178000ADF83E00A088ADF84000E088ADF842001A +:101790009DF8020006AA20F00600801C20F001003F +:1017A0008DF802000820ADF80C00ADF810000FA86D +:1017B000059001A908A806F050F8002803D1BDF84B +:1017C00018002880002013B030BD0000F0B5007B69 +:1017D000059F1E4614460D46012800D0FFDF0C2051 +:1017E00030803A203880002C08D0287A032806D090 +:1017F000287B012800D0FFDF17206081F0BDA88979 +:10180000FBE72DE9F04786B0144691F80C900E9A4C +:101810000D46B9F1010F0BD01021007B2E8A8846AE +:10182000052807D0062833D0FFDF06B0BDE8F087D3 +:101830000221F2E7E8890C2100EB400001EB4000B7 +:10184000188033201080002CEFD0E88960810027B9 +:101850001AE00096688808F1020301AA696900F09D +:1018600084FF06EB0800801C07EB470186B204EBFF +:101870004102BDF8040090810DF1060140460E3290 +:1018800010F074FF7F1CBFB26089B842E1D8CCE78A +:1018900034201080E889B9F1010F11D0122148439A +:1018A0000E301880002CC0D0E88960814846B9F11C +:1018B000010F00D00220207300270DF1040A1FE061 +:1018C0000621ECE70096688808F1020301AA69691D +:1018D00000F04BFF06EB0800801C86B2B9F1010F47 +:1018E00012D007EBC70004EB4000BDF80410C18123 +:1018F00010220AF10201103023F02CF97F1CBFB234 +:101900006089B842DED890E707EB470104EB41025B +:10191000BDF80400D0810AF102014046103210F0F7 +:1019200025FFEBE72DE9F0470E4688B090F80CC094 +:1019300096F80C80378AF5890C20109902F10C0476 +:101940004FF0000ABCF1030F08D0BCF1040F3ED0E9 +:10195000BCF1070F7DD0FFDF08B067E705EB850C12 +:1019600000EB4C00188031200880002AF4D0A8F148 +:10197000060000F0FF09558125E0182101A823F099 +:101980008AF900977088434601AA716900F0EDFE5C +:10199000BDF804002080BDF80600E080BDF8080016 +:1019A0002081A21C0DF10A01484610F0DFFEB9F1BA +:1019B000000F00D018B184F804A0A4F802A007EB2F +:1019C000080087B20A346D1EADB2D6D2C4E705EB6B +:1019D000850C00EB4C00188032200880002ABBD018 +:1019E000A8F1050000F0FF09558137E000977088E5 +:1019F000434601AA716900F0B8FE9DF80600BDF8E3 +:101A00000410E1802179420860F3000162F3410192 +:101A1000820862F38201C20862F3C301020962F321 +:101A20000411420962F34511820962F386112171A2 +:101A3000C0096071BDF80700208122460DF109013F +:101A4000484610F093FE18B184F802A0A4F800A054 +:101A500000E007E007EB080087B20A346D1EADB264 +:101A6000C4D279E7A8F1020084B205FB08F000F1C6 +:101A70000E0CA3F800C035230B80002AA6D0558198 +:101A80009481009783B270880E32716900F06DFE08 +:101A900062E72DE9F84F1E460A9D0C4681462AB1A1 +:101AA000607A00F58070D080E089108199F80C0090 +:101AB0000C274FF000084FF00E0A0D2873D2DFE814 +:101AC00000F09E070E1C28303846556A7373730069 +:101AD000214648460095FFF779FEBDE8F88F207B48 +:101AE0009146082802D0032800D0FFDF378030203D +:101AF0000AE000BFA9F80A80EFE7207B914604289E +:101B000000D0FFDF378031202880B9F1000FF1D1FC +:101B1000E3E7207B9146042800D0FFDF37803220A6 +:101B2000F2E7207B9146022800D0FFDF3780332088 +:101B3000EAE7207B1746022800D0FFDF3420A6F812 +:101B400000A02880002FC8D0A7F80A80C5E7207B16 +:101B50001746042800D0FFDF3520A6F800A0288013 +:101B6000002FBAD04046A7F80A8012E0207B174623 +:101B7000052802D0062800D0FFDF10203080362054 +:101B80002880002FA9D0E0897881A7F80E80B9F8C5 +:101B90000E00B881A1E7207B9146072800D0FFDF27 +:101BA00037803720B0E72AE04FF0120018804FF05E +:101BB00038001700288090D0E0897881A7F80E803F +:101BC000A7F8108099F80C000A2805D00B2809D036 +:101BD0000C280DD0FFDF80E7207B0A2800D0FFDF34 +:101BE00001200AE0207B0B2800D0FFDF042004E066 +:101BF000207B0C2800D0FFDF052038736DE7FFDF66 +:101C00006BE770B50C46054601F025FC20B1007865 +:101C1000222804D2082070BD43F2020070BD0521C5 +:101C200028460FF021F8206008B1002070BD032085 +:101C300070BD30B44880087820F00F00C01C20F040 +:101C4000F000903001F8080B1DCA81E81D0030BC7F +:101C500007F0E7BB2DE9FF4784B0002782460297D3 +:101C600007989046894612300AF048F9401D20F046 +:101C70000306079828B907A95046FFF7C2FF0028B6 +:101C800054D1B9F1000F05D00798017B19BB052588 +:101C900004681BE098F80000092803D00D2812D032 +:101CA000FFDF46E0079903254868B0B3497B4288C7 +:101CB0007143914239D98AB2B3B2011D0EF047FE89 +:101CC0000446078002E0079C042508340CB12088F4 +:101CD00010B1032D29D02CE00798012112300AF011 +:101CE0003FF9ADF80C00024602AB2946504608F019 +:101CF000F4F9070001D1A01C029007983A4612306F +:101D0000C8F80400A8F802A003A94046029B0AF004 +:101D100034F9D8B10A2817D200E006E0DFE800F075 +:101D200007091414100B0D141412132014E60020CC +:101D300012E6112010E608200EE643F203000BE63F +:101D4000072009E60D2007E6032005E6BDF80C0094 +:101D50002346CDE900702A465046079900F015FD4C +:101D600057B9032D08D10798B3B2417B406871433E +:101D70008AB2011D0EF0FFFDB9F1000FD7D007990F +:101D800081F80C90D3E72DE9FE4F91461A881C4646 +:101D90008A468046FAB102AB494608F09EF9050032 +:101DA00019D04046A61C27880FF0A2F83246072615 +:101DB00029463B4600960EF0B0FC20882346CDE92C +:101DC00000504A465146404600F0DFFC002020808B +:101DD0000120BDE8FE8F0020FBE710B586B01C4651 +:101DE000AAB104238DF800301388ADF8083052886A +:101DF000ADF80A208A788DF80E200988ADF80C100D +:101E000000236A462146FFF725FF06B010BD1020CB +:101E1000FBE770B50D4605210EF026FF040000D14A +:101E2000FFDF294604F11200BDE870400AF081B8D6 +:101E30002DE9F8430D468046002607F0EFFA0446E8 +:101E40002878102878D2DFE800F0773B345331311E +:101E5000123131310831313131312879001FC0B2AE +:101E6000022801D0102810D114BBFFDF35E004B9DF +:101E7000FFDF052140460EF0F7FE007B032806D069 +:101E800004280BD0072828D0FFDF072655E0287943 +:101E9000801FC0B2022820D050B1F6E72879401F39 +:101EA000C0B2022819D0102817D0EEE704B9FFDF1E +:101EB00013E004B9FFDF287901280ED1172137E09C +:101EC000052140460EF0D0FE070000D1FFDF07F1EC +:101ED000120140460AF00AF82CB12A462146404633 +:101EE000FFF7A7FE29E01321404602F0A9FD24E0F8 +:101EF00004B9FFDF052140460EF0B6FE060000D112 +:101F0000FFDF694606F1120009F0FAFF060000D073 +:101F1000FFDFA988172901D2172200E00A46BDF881 +:101F20000000824202D9014602E005E01729C5D32C +:101F3000404600F03AFCD0E7FFDF3046BDE8F883CA +:101F4000401D20F0030219B102FB01F0001D00E06A +:101F500000201044704713B5009848B1002468462B +:101F60000EF09FFC002C02D1F74A009911601CBDB5 +:101F700001240020F4E72DE9F0470C461546242102 +:101F8000204622F088FE05B9FFDFA8786073288814 +:101F9000DFF8B4A3401D20F00301AF788946DAF8DA +:101FA00000000EF09CFC060000D1FFDF4FF000089F +:101FB0002660A6F8008077B109FB07F1091D0AD059 +:101FC000DAF800000EF08BFC060000D1FFDF66603F +:101FD000C6F8008001E0C4F80480298804F11200EA +:101FE000BDE8F04709F074BF2DE9F047804601F1E4 +:101FF00012000D46814609F081FF401DD24F20F0AE +:1020000003026E7B1446296838680EF093FC3EB1DB +:1020100004FB06F2121D03D0696838680EF08AFCD2 +:1020200005200EF0C9FD044605200EF0CDFD201A56 +:10203000012802D138680EF047FC49464046BDE809 +:10204000F04709F05ABF70B5054605210EF00CFEA9 +:10205000040000D1FFDF04F112012846BDE8704002 +:1020600009F044BF2DE9F04F91B04FF0000BADF8EF +:1020700034B0ADF804B047880C46054692460521B9 +:1020800038460EF0F1FD060000D1FFDF24B1A78035 +:10209000A4F806B0A4F808B0297809220B20B2EB06 +:1020A000111F7DD12A7A04F1100138274FF00C0856 +:1020B0004FF001090391102A73D2DFE802F072F2A7 +:1020C000F1F07F08D2888D9F3DDBF3EEB6B6307B12 +:1020D000022800D0FFDFA88908EBC001ADF804108A +:1020E0003021ADF83410002C25D06081B5F80E9069 +:1020F00000271DE004EBC708317C88F80E10F18939 +:10210000A8F80C10CDF800906888042304AA296967 +:1021100000F02BFBBDF81010A8F8101009F1040016 +:10212000BDF812107F1C1FFA80F9A8F81210BFB278 +:102130006089B842DED80DE1307B022800D0FFDF95 +:10214000E98908EBC100ADF804003020ADF8340097 +:10215000287B0A90001FC0B20F90002CEBD0618149 +:10216000B5F81090002725E0CDF8009068886969DF +:1021700003AA0A9B00F0F9FA0A9804EBC70848443E +:102180001FFA80F908F10C0204A90F9810F0EEFA7A +:1021900018B188F80EB0A8F80CB0BDF80C1001E02A +:1021A000D4E0CFE0A8F81010BDF80E107F1CA8F8FE +:1021B0001210BFB26089B842D6D8CBE00DA800900B +:1021C00001AB224629463046FFF71BFBC2E0307BBD +:1021D000082805D0FFDF03E0307B082800D0FFDFB0 +:1021E000E8891030ADF804003620ADF83400002C3A +:1021F0003FD0A9896181F189A18127E0307B09283D +:1022000000D0FFDFA88900F10C01ADF804103721E0 +:10221000ADF83410002C2CD06081E8890090AB8997 +:10222000688804F10C02296956E0E88939211030E8 +:1022300080B2ADF80400ADF83410002C74D0A98938 +:102240006181287A0E280AD002212173E989E1816F +:10225000288A0090EB8968886969039A3CE001212B +:10226000F3E70DA8009001AB224629463046FFF760 +:1022700059FB6FE0307B0A2800D0FFDF1220ADF859 +:102280000400ADF834704CB3A9896181A4F810B092 +:10229000A4F80EB084F80C905CE020E002E031E09D +:1022A00039E042E0307B0B2800D0FFDF288AADF810 +:1022B00034701230ADF8040084B104212173A9896F +:1022C0006181E989E181298A2182688A00902B8ACB +:1022D000688804F11202696900F047FA3AE0307B3D +:1022E0000C2800D0FFDF1220ADF80400ADF83470E8 +:1022F0003CB305212173A4F80AB0A4F80EB0A4F8E9 +:1023000010B027E00DA8009001AB224629463046C8 +:10231000FFF75CFA1EE00DA8009001AB22462946AB +:102320003046FFF7B6FB15E034E03B21ADF8040082 +:10233000ADF8341074B3A4F80690A4F808B084F88B +:102340000AB007E0FFDF05E010000020297A01292C +:1023500017D0FFDFBDF80400AAF800006CB1BDF88B +:1023600034002080BDF804006080BDF834003928B6 +:1023700003D03C2801D086F80CB011B00020BDE895 +:10238000F08F3C21ADF80400ADF8341014B1697A37 +:10239000A172DFE7AAF80000EFE72DE9F8435688BD +:1023A0000F4680461546052130460EF05DFC0400C0 +:1023B00000D1FFDF123400943B46414630466A6844 +:1023C00009F00FFFBAE570B50D4605210EF04CFC83 +:1023D000040000D1FFDF294604F11200BDE870407F +:1023E00009F099BD70B50D4605210EF03DFC0400C5 +:1023F00000D1FFDF294604F11200BDE8704009F06A +:10240000B7BD70B5054605210EF02EFC040000D1C5 +:10241000FFDF04F1080321462846BDE8704004228E +:10242000B1E470B5054605210EF01EFC040000D194 +:10243000FFDF214628462368BDE870400522A2E45C +:1024400070B5064605210EF00FFC040000D1FFDF39 +:1024500004F1120009F052FD401D20F0030511E0C7 +:10246000011D00880322431821463046FFF78BFCEC +:1024700000280BD0607BABB2684382B26068011D5C +:102480000EF0AFFA606841880029E9D170BD70B5DF +:102490000E46054606F0C2FF040000D1FFDF012012 +:1024A000207266726580207820F00F00C01C20F03A +:1024B000F00030302070BDE8704006F0B2BF2DE96A +:1024C000F0438BB00D461446814606A9FFF799FBF1 +:1024D000002814D14FF6FF7601274FF420588CB115 +:1024E00003208DF800001020ADF8100007A805901B +:1024F00007AA204604A910F058F978B107200BB0BC +:10250000BDE8F0830820ADF808508DF80E708DF806 +:102510000000ADF80A60ADF80C800CE00698A178D8 +:1025200001742188C1818DF80E70ADF80850ADF8A6 +:102530000C80ADF80A606A4602214846069BFFF708 +:1025400089FBDCE708B501228DF8022042F6020281 +:10255000ADF800200A4603236946FFF73EFC08BD9C +:1025600008B501228DF8022042F60302ADF80020E2 +:102570000A4604236946FFF730FC08BD00B587B062 +:1025800079B102228DF800200A88ADF80820498828 +:10259000ADF80A1000236A460521FFF75BFB07B080 +:1025A00000BD1020FBE709B1072316E407207047A0 +:1025B00070B588B00D461446064606A9FFF721FB04 +:1025C00000280ED17CB10620ADF808508DF800002F +:1025D000ADF80A40069B6A460821DC813046FFF7C9 +:1025E00039FB08B070BD05208DF80000ADF808502B +:1025F000F0E700B587B059B107238DF80030ADF88A +:102600000820039100236A460921FFF723FBC6E750 +:102610001020C4E770B588B00C460646002506A910 +:10262000FFF7EFFA0028DCD106980121123009F0FB +:1026300097FC9CB12178062921D2DFE801F0200522 +:1026400005160318801E80B2C01EE28880B20AB14F +:10265000A3681BB1824203D90C20C2E71020C0E757 +:10266000042904D0A08850B901E00620B9E7012967 +:1026700013D0022905D004291CD005292AD007200F +:10268000AFE709208DF800006088ADF80800E08809 +:10269000ADF80A00A068039023E00A208DF800003E +:1026A0006088ADF80800E088ADF80A00A0680A2547 +:1026B000039016E00B208DF800006088ADF808004C +:1026C000A088ADF80A00E088ADF80C00A0680B25E2 +:1026D000049006E00C208DF8000060788DF808006A +:1026E0000C256A4629463046069BFFF7B3FA78E781 +:1026F00000B587B00D228DF80020ADF8081000233A +:102700006A461946FFF7A6FA49E700B587B071B1E6 +:1027100002228DF800200A88ADF808204988ADF81B +:102720000A1000236A460621FFF794FA37E71020C3 +:1027300035E770B586B0064601200D46ADF80810A5 +:102740008DF80000014600236A463046FFF782FA02 +:10275000040008D12946304605F09EFC0021304691 +:1027600005F0B8FC204606B070BDF8B51C4615460D +:102770000E46069F0EF0AAFB2346FF1DBCB2314653 +:102780002A4600940DF095FFF8BD30B41146DDE9FE +:1027900002423CB1032903D0002330BC08F026BB21 +:1027A0000123FAE71A8030BC704770B50C46054625 +:1027B000FFF72FFB2146284605F07DFC2846BDE8A3 +:1027C0007040012105F086BC4FF0E0224FF400413B +:1027D0000020C2F88011204908702049900208604A +:1027E000704730B51C4D04462878A04218BF002C15 +:1027F00002D0002818BFFFDF2878A04208BF30BDF4 +:102800002C701749154A0020ECB1164DDFF858C05E +:10281000131F012C0DD0022C1CBFFFDF30BD086040 +:1028200003200860CCF800504FF4000010601860DE +:1028300030BD086002200860CCF800504FF04070B6 +:102840001060186030BD086008604FF06070106064 +:1028500030BD00B5FFDF00BD1800002008F50140C5 +:1028600000F500408C02002014F5004070B50B20EC +:1028700000F0B5F9082000F0B2F900210B2000F0BB +:10288000C4F90021082000F0C0F9EC4C0125656076 +:10289000A5600020C4F84001C4F84401C4F8480110 +:1028A0000B2000F0A7F9082000F0A4F90B2000F09D +:1028B0008BF9256070BD10B50B2000F090F9082051 +:1028C00000F08DF9DD48012141608160DC490A6832 +:1028D000002AFCD10021C0F84011C0F84411C0F812 +:1028E00048110B2000F086F9BDE81040082000F0E8 +:1028F00081B910B50B2000F07DF9BDE8104008202B +:1029000000F078B900B530B1012806D0022806D011 +:10291000FFDF002000BDCB4800BDCB4800BDCA484A +:10292000001D00BD70B5C9494FF000400860C84D9A +:10293000C00BC5F80803C74800240460C5F840412F +:102940000820C43500F04BF9C5F83C41C24804707A +:1029500070BD08B5B94A002128B1012811D002285C +:102960001CD0FFDF08BD4FF48030C2F80803C2F866 +:102970004803B3483C300160C2F84011BDE808404C +:10298000D0E74FF40030C2F80803C2F84803AC485F +:1029900040300160C2F84411AB480CE04FF4802095 +:1029A000C2F80803C2F84803A54844300160C2F8E1 +:1029B0004811A548001D0068009008BD70B5164676 +:1029C0000D460446022800D9FFDF00229B48012360 +:1029D00004F110018B4000EB8401C1F8405526B191 +:1029E000C1F84021C0F8043303E0C0F80833C1F84F +:1029F0004021C0F8443370BD2DE9F0411C46154616 +:102A000030B1012834D0022839D0FFDFBDE8F08191 +:102A1000891E002221F07F411046FFF7CFFF012CD5 +:102A200024D000208C4E8A4F012470703C6189496B +:102A300000203C3908600220091D086085490420F7 +:102A40003039086083483D350560C7F800420820EA +:102A500000F0D0F82004C7F80403082000F0B4F810 +:102A60007A49E007091F08603470CFE70120D9E7F1 +:102A7000012B02D00022012005E00122FBE7012BFF +:102A800004D000220220BDE8F04197E70122F9E7D7 +:102A90006B480068704770B500F0C7F8674C054692 +:102AA000D4F840010026012809D1D4F80803C00356 +:102AB00005D54FF48030C4F80803C4F84061D4F859 +:102AC000440101280CD1D4F80803800308D54FF441 +:102AD0000030C4F80803C4F84461012010F029FE56 +:102AE000D4F8480101280CD1D4F80803400308D5D4 +:102AF0004FF48020C4F80803C4F84861022010F0A5 +:102B000018FE5648056070BD70B500F08EF8524D45 +:102B10000446287858B1FFF705FF687820B10020F7 +:102B200085F8010010F005FE4C48046070BD0320DC +:102B3000F8E74FF0E0214FF40010C1F800027047B1 +:102B4000152000F057B8424901200861082000F024 +:102B500051B83F494FF47C10C1F8080300200246E9 +:102B600001EB8003C3F84025C3F84021401CC0B2EC +:102B70000628F5D37047410A43F609525143C0F382 +:102B8000080010FB02F000F5807001EB5020704748 +:102B900010B5430B48F2376463431B0C5C020C60B6 +:102BA0002F4C03FB04002F4B4CF2F72443435B0DE7 +:102BB00013FB04F404EB402000F580704012107009 +:102BC00008681844086010BD00F01F020121914000 +:102BD0004009800000F1E020C0F80011704700F0CB +:102BE0001F02012191404009800000F1E020C0F85F +:102BF0008011704700F01F020121914040098000C0 +:102C000000F1E020C0F8801270474907090E002843 +:102C100006DA00F00F0000F1E02080F8141D704784 +:102C200000F1E02080F8001470470C48001F006895 +:102C30000A4A0D49121D11607047000000B00040A3 +:102C400004B500404081004044B1004008F5014017 +:102C500000800040408500403800002014050240FC +:102C6000F7C2FFFF6F0C0100010000010A4810B518 +:102C70000468094909480831086010F0EEFD06486B +:102C8000001D046010BD0649002008604FF0E021DF +:102C90000220C1F8800270471005024001000001C7 +:102CA000FC1F004010B50D2000F06FF8C4B26FF0AB +:102CB000040000F06AF8C0B2844200D0FFDF3A4955 +:102CC0000120086010BD70B50D2000F048F8374CA9 +:102CD0000020C4F800010125C4F804530D2000F0C1 +:102CE00049F825604FF0E0216014C1F8000170BD83 +:102CF00010B50D2000F033F82C480121416000216F +:102D0000C0F80011BDE810400D2000F033B828488D +:102D100010B5046826492748083108602349D1F8CE +:102D20000001012804D0FFDF2148001D046010BD10 +:102D30001D48001D00680022C0B2C1F8002111F03A +:102D400039F9F1E710B51948D0F800110029FBD086 +:102D5000FFF7DDFFBDE810400D2000F00BB800F0DC +:102D60001F02012191404009800000F1E020C0F8DD +:102D70008011704700F01F0201219140400980003E +:102D800000F1E020C0F880127047002806DA00F059 +:102D90000F0000F1E02090F8140D03E000F1E020B6 +:102DA00090F800044009704704D5004000D000406E +:102DB000100502400100000110B5202000F082F84B +:102DC000202000F08AF84A49202081F8000449496F +:102DD00000060860091D48480860FEF79DFA45494D +:102DE000C83108604548D0F8041341F00101C0F82B +:102DF0000413D0F8041341F08071C0F804133C4967 +:102E000001201C39C1F8000110BD10B5202000F0D0 +:102E100059F8384800210160001D0160354A481EFC +:102E2000E83A1060354AC2F80803324BC8331960DB +:102E3000C2F80001C2F8600131490860BDE81040E5 +:102E4000202000F04AB82B492E48EC390860704722 +:102E500028492C48E8390860704726480160001D61 +:102E6000521E0260704723490120E8390860BFF311 +:102E70004F8F704770B51F4A8069E83A2149116049 +:102E80001E49D1F8006100231F4D1D4A5C1E1EB172 +:102E9000A84206D300210FE0D1F8606186B1A842B4 +:102EA00009D2C1F80031C1F860311460BDE870404A +:102EB000202000F012B81168BDE8704021F012BF68 +:102EC000FFDF70BD00F01F0201219140400980002A +:102ED00000F1E020C0F88011704700F01F020121CE +:102EE00091404009800000F1E020C0F88012704756 +:102EF00020E000E000060240C41400200000024070 +:102F00000004024001000001006002000F4A126844 +:102F10000D498A420CD118470C4A12680A4B9A4252 +:102F200006D101B511F0C0F8FFF78DFFBDE80140F3 +:102F3000074909680958084706480749054A064BE2 +:102F40007047000000000000BEBAFECAB0000020BA +:102F500004000020E0120020E012002070B50C46B2 +:102F6000054609F0DBFA21462846BDE870400AF024 +:102F7000C0BB10B511F01EFDFFF726FC11F09EFB43 +:102F8000BDE8104011F050BC012081070860704777 +:102F9000012081074860704712480068C00700D0D0 +:102FA000012070470F48001F0068C00700D00120B3 +:102FB00070470C4808300068C00700D001207047F7 +:102FC000084810300068704706490C310A68D2037F +:102FD00006D5096801F00301814201D10120704743 +:102FE000002070470C0400407047704770477047DE +:102FF000704770477047704770470004050600002F +:103000002CFFFFFFDBE5B15100600200A900FFFFCC +:103010008C000000808D5B0016425791AD5F58BC5C +:103020008E702F5A0FAA100DBCD52BFD30B5FC4D5C +:103030000446062CA9780ED2DFE804F0030E0E0E2B +:103040000509FFDF08E0022906D0FFDF04E00329BD +:1030500002D0FFDF00E0FFDFAC7030BD30B50446CA +:103060001038EF4D07280CD2DFE800F0040C060CF6 +:103070000C0C0C00FFDF05E0287E112802D0FFDFDA +:1030800000E0FFDF2C7630BD2DE9F0410FF0F8FCB9 +:10309000044610F08CFE201AC5B206200DF08CFDFF +:1030A000044606200DF090FD211ADD4C207E1228EA +:1030B00018D000200F1807200DF07EFD06460720CF +:1030C0000DF082FD301A3918207E13280CD0002014 +:1030D0000144A078042809D000200844281AC0B26E +:1030E000BDE8F0810120E5E70120F1E70120F4E7E8 +:1030F000CB4810B590F825004108C94800F12600DA +:1031000005D00BF0EBFABDE8104005F0B3BF0BF0B3 +:10311000BEFAF8E730B50446A1F120000D460A28B2 +:103120004AD2DFE800F005070C1C2328353A3F445B +:10313000FFDF42E0207820283FD1FFDF3DE0B848A4 +:103140008178052939D0007E122836D020782428AD +:1031500033D0252831D023282FD0FFDF2DE0207851 +:1031600022282AD0232828D8FFDF26E0207822280A +:1031700023D0FFDF21E0207822281ED024281CD075 +:1031800026281AD0272818D0292816D0FFDF14E0C7 +:103190002078252811D0FFDF0FE0207825280CD0DB +:1031A000FFDF0AE02078252807D0FFDF05E0207840 +:1031B000282802D0FFDF00E0FFDF257030BD10B50A +:1031C000012803D0022805D0FFDF10BDBDE8104064 +:1031D00003202BE79248007E122800D0FFDF002159 +:1031E000052011F0A1F9BDE81040112036E71FB508 +:1031F00004466A46002001F01FFEB4B1BDF802206B +:103200004FF6FF700621824201D1ADF80210BDF8E1 +:103210000420824201D1ADF80410BDF808108142AB +:1032200003D14FF44860ADF8080068460CF06AF925 +:1032300005F020FF04B010BD70B514460D460646DB +:1032400011F0BEF958B90DB1A54201D90C2070BDDD +:10325000002408E056F8240011F0B2F908B110205B +:1032600070BD641CE4B2AC42F4D3002070BD2DE903 +:10327000F04105461F4690460E460024006811F0B6 +:10328000ECF908B110202BE728680028A88802D0A4 +:10329000B84202D84FE00028F5D0092020E728687E +:1032A000025DB2B1611C475C152F2DD03BDC3AD2D8 +:1032B000DFE807F03912222228282A2A3131393949 +:1032C00039393939393939392200025D32BB641C48 +:1032D000A4B2A142F9D833E0022ADED1A21C805C5C +:1032E00088F80000072801D2400701D40A20F7E639 +:1032F000307840F0010015E0D043C00707E0012A14 +:1033000007D010E00620EBE61007A0F1805000285F +:10331000F5D01846E4E63078820701D50B20DFE6C9 +:1033200040F0020030702868005D084484B2A8882C +:10333000A04202D2B1E74FF4485381B2A142AED8C5 +:103340000020CDE610B5027843F202235408012292 +:10335000022C12D003DC3CB1012C16D106E0032C68 +:1033600010D07F2C11D112E0002011E080790324CD +:10337000B4EB901F09D10A700BE08079B2EB901F7B +:1033800003D1F8E780798009F5D0184610BDFF20F9 +:103390000870002010BD224991F82E2042B191F80A +:1033A0002F10022909D0032909D043F202207047C7 +:1033B00001461B48253001F092BD032100E00121A8 +:1033C00001700020704738B50C460546694601F08B +:1033D00086FD00280DD19DF80010207861F347008C +:1033E000207055F8010FC4F80100A888A4F8050062 +:1033F000002038BD38B51378B0B1022814D0FF28AA +:103400001BD008A46D46246800944C7905EB9414F5 +:10341000247864F34703137003280AD010E00000F7 +:10342000D80100200302FF0123F0FE0313700228DD +:10343000F2D1D8B240F0010005E043F0FE00107078 +:10344000107820F0010010700868C2F80100888828 +:10345000A2F8050038BD02210DF006BC38B50C46B7 +:103460000978222901D2082038BDADF800008DF876 +:10347000022068460BF079F905F0FCFD050003D148 +:1034800021212046FFF746FE284638BD1CB5002006 +:103490008DF80000CDF80100ADF80500FE4890F869 +:1034A0002E00022801D0012000E000208DF8070046 +:1034B00068460BF092FB002800D0FFDF1CBD002205 +:1034C0000A80437892B263F345120A8043785B081E +:1034D00063F386120A8000780C282BD2DFE800F014 +:1034E0002A06090E1116191C1F220C2742F0110082 +:1034F00009E042F01D0008800020704742F01100F2 +:1035000012E042F0100040F00200F4E742F0100038 +:10351000F1E742F00100EEE742F0010004E042F082 +:103520000200E8E742F0020040F00400E3E742F066 +:103530000400E0E7072070472DE9FF478AB0002527 +:10354000BDF82C6082461C4691468DF81C507007D1 +:1035500003D5606811F034F868B9CF4F4FF0010817 +:1035600097F82E0058B197F82F00022807D160680D +:1035700011F073F818B110200EB0BDE8F0873007D5 +:1035800002D5A08980283DD8700705D4B9F1000F75 +:1035900002D097F8240098B3E07DC0F300108DF8B6 +:1035A0001B00627D072003215AB3012A2CD0022A76 +:1035B000E2D0042AE0D18DF81710F00627D4A27DBE +:1035C000072022B3012A22D0022A23D0042AD3D1F1 +:1035D0008DF819108DF81590606810B307A9FFF7E2 +:1035E000B1FE0028C8D19DF81C00FF2816D06068E5 +:1035F00050F8011FCDF80F108088ADF8130014E0CB +:1036000000E001E00720B7E78DF81780D5E78DF8D7 +:103610001980DFE702208DF81900DBE743F2022072 +:10362000AAE7CDF80F50ADF81350E07B40B9207CED +:1036300030B9607C20B9A07C10B9E07CC00601D014 +:10364000062099E78DF800A0BDF82C00ADF8020027 +:10365000A0680190A068029004F10F0001F033FC13 +:103660008DF80C000DF10D00FFF795FE00B1FFDFA6 +:103670009DF81C008DF80E008DF816508DF818502E +:10368000E07D08A900F00F008DF81A0068460CF0E4 +:10369000F8F805F0EFFC6FE7F0B59DB000228DF86B +:1036A00068208DF858208DF8602005468DF86C2034 +:1036B000129213921492159219B10FC912AC84E8A8 +:1036C0000F00754CA078052801D004280CD1129861 +:1036D0006168884200D120B91498E168884203D11A +:1036E00010B108201DB0F0BD1F26334618AA1AA934 +:1036F00012A8FFF7BCFD0028F4D133461BAA16A977 +:1037000014A8FFF7B4FD0028ECD19DF85800C007BD +:1037100001D00A20E6E7A08A410708D4A17D31B193 +:103720009DF86010890702D043F20120DAE79DF886 +:103730006010C90709D0400707D4208818B144F2A7 +:103740005061884201D90720CCE78DF8005003264C +:103750008DF8016001278DF80270BDF84C208DF8BE +:10376000032001A8129921F0F5F968460CF0F0F851 +:1037700005F080FC0028B5D18DF824508DF8256027 +:103780008DF82670BDF854208DF827200AA81499CA +:1037900021F0E0F909A80CF028F905F06BFC0028ED +:1037A000A0D112AD241D95E80F0084E80F00002081 +:1037B00098E770B586B00D46040005D010F04DFFB7 +:1037C00020B1102006B070BD0820FBE72078C107AB +:1037D000A98802D0FF2902D303E01F2901D20920C2 +:1037E000F0E7800761D4FFF74FFC38B12078C0F3D1 +:1037F000C101012904D0032902D005E01320E1E72B +:10380000254991F8241041B1C0074FF000054FF051 +:10381000010604D08DF80F6003E00720D2E78DF891 +:103820000F506846FFF7B7FD00B1FFDF2078C0F307 +:10383000C1008DF801008DF80250607808B98DF84C +:1038400002606078C00705D09DF8020040F00100DA +:103850008DF802006078800705D59DF8020040F0E1 +:1038600002008DF802006078400705D59DF802003F +:1038700040F004008DF802002078C0F380008DF83D +:1038800003006088ADF80600A088ADF80A00207A31 +:1038900058B9607A48B901E0D8010020A07A20B96F +:1038A000E07A10B9207BC00601D006208AE704F137 +:1038B000080001F008FB8DF80E0068460BF090FA46 +:1038C00005F0D8FB00288BD18DF810608DF81150D1 +:1038D000ADF81250ADF8145004A80BF0CBFA05F077 +:1038E000C9FB00288BD1E08864280AD248B10120A6 +:1038F00001F0FFFA002891D12078C00705D01520EB +:1039000004E06421B0FBF1F0F2E71320FFF7A6FB1F +:10391000002057E72DE9FF470220FF4E8DF80400F5 +:103920000027708EADF80600B84643F202094CE05D +:1039300001A80DF000F9050006D0708EA8B3A6F816 +:103940003280ADF806803EE0039CA07F01072DD5B4 +:1039500004F124000090A28EBDF80800214604F175 +:10396000360301F056FC050005D04D452AD0112D37 +:103970003CD0FFDF3AE0A07F20F00801E07F420862 +:1039800062F3C711A177810861F30000E07794F832 +:10399000210000F01F0084F820002078282826D17C +:1039A00029212046FFF7B6FB21E014E040070AD5A5 +:1039B000BDF8080004F10E0101F0A9FA05000DD0D0 +:1039C0004D4510D100257F1CFFB202200DF0F4F808 +:1039D000401CB842ACD8052D11D008E0A07F20F0E3 +:1039E0000400A07703E0112D00D0FFDF0025BDF813 +:1039F00006007086052D04D0284604B0BDE5A6F863 +:103A000032800020F9E770B50646FFF724FD054631 +:103A100005F004FD040000D1FFDF6680207820F06F +:103A20000F00801C20F0F000203020700620207253 +:103A300095F83E006072BDE8704005F0F2BC2DE9DB +:103A4000F04786B0040000D1FFDF2078B24D20F0AF +:103A50000F00801C20F0F00070302070606801784A +:103A6000491F1B2933D2DFE801F0FE32323255FD07 +:103A7000320EFDFD42FC32323278FCFCFB32323237 +:103A8000FCFCFAF9FC00C6883046FFF7E4FC05466A +:103A9000304607F0A9F8E0B16068007A85F83E008A +:103AA00021212846FFF736FB3046FEF7CCFA304698 +:103AB00003F018FE3146012010F036FDA87F20F0FB +:103AC0001000A877FFF726FF002800D0FFDF06B020 +:103AD00053E5207820F0F00020302070062020727E +:103AE00066806068007A607205F09BFCD8E7C58844 +:103AF0002846FFF7B0FC00B9FFDF606800790128B5 +:103B000000D0FFDF6068017A06B02846BDE8F047C4 +:103B100007F046BCC6883046FFF79DFC050000D183 +:103B2000FFDF05F07EFC606831460089288160680F +:103B30004089688160688089A881012010F0F4FCC8 +:103B40000020A875A87F00F003000228BFD1FFF76E +:103B5000E1FE0028BBD0FFDFB9E70079022811D0D1 +:103B600000B1FFDF05F05DFC6668B6F806A0307AAC +:103B7000361D01280CD0687E814605F0E7F9070064 +:103B800009D107E006B00220BDE8F047FFF717BBF8 +:103B9000E878F1E7FFDF0022022150460DF05BF8E4 +:103BA000040000D1FFDF22212046FFF7B3FA30796D +:103BB000012800D00220A17F804668F30101A1778F +:103BC000308B2081708B6081B08BA08184F8229033 +:103BD0008DF80880B8680090F86801906A46032163 +:103BE00050460DF038F800B9FFDFB888ADF8100086 +:103BF000B8788DF8120004AA052150460DF02BF874 +:103C000000B9FFDFB888ADF80C00F8788DF80E0029 +:103C100003AA042150460DF01EF800B9FFDF06216B +:103C200006F1120001F091F938B37079800700D5E0 +:103C3000FFDF7179E07D61F34700E075D6F806009B +:103C4000A0617089A083062106F10C0001F07DF9C6 +:103C5000E8B195F825004108607805E032E02AE0F7 +:103C600047E03FE021E035E061F347006070D5F8C0 +:103C70002600C4F80200688D12E0E07D20F0FE000E +:103C8000801CE075D6F81200A061F08ADAE760784F +:103C900020F0FE00801C6070F068C4F80200308ADA +:103CA000E0804046FFF78BFA11E706B02046BDE8FA +:103CB000F04701F037BD05F0B4FB15F8300F40F0C8 +:103CC000020005E005F0ADFB15F8300F40F00400F0 +:103CD0002870FCE6287E132809D01528E4D1162088 +:103CE000FFF7BCF906B0BDE8F04705F09ABB142019 +:103CF000F6E7A978052909D00429D5D105F091FB6B +:103D0000022006B0BDE8F047FFF790B9007900281F +:103D1000CAD0E87802E00000D801002001F0BAF82B +:103D200005F07FFB0320ECE72DE9F05F0546007806 +:103D30004FF000080009DFF820A891460C464646DF +:103D400001287AD001274FF0020C4FF6FF730228AA +:103D500074D007280BD00A2871D0FFDFA9F80060C3 +:103D600014B1A4F8008066800020BDE8F09F696867 +:103D700004F108000A78172A70D010DC4FF0000B0D +:103D8000142A31D006DC052A6DD0092A0FD0102A5A +:103D90007ED11FE0152A7CD0162AF9D1F0E01B3A1B +:103DA000052A75D2DFE802F009C5FDDAFC00C888F3 +:103DB0004FF012081026214675E14FF01C080A2624 +:103DC000D4B38888A0806868807920726868C079D8 +:103DD0006072C3E74FF01B0814266CB303202072F7 +:103DE00068688088A080B9E70A793C2AB6D00D1DA2 +:103DF0004FF010082C26FCB16988A180298B6182C4 +:103E0000298B2182698BA182A98BE1826B79024681 +:103E1000A91D1846FFF7EEFA2879012810D084F87A +:103E20000FC0FF202076C4F81CB0C4F820B0C4F83E +:103E300024B0C4F828B091E712E013E13BE135E18A +:103E4000E7730AF1040084F818B090E80E00DAF87D +:103E50001000C4E90930C4E907127FE7A8E002E0D6 +:103E6000A9F8006080E72C264FF01D08002CF7D041 +:103E70000546A380887B2A880F1D60F300022A80F4 +:103E8000887B400860F341022A80887B800801E03B +:103E9000E6E0ADE060F382022A80887BB91CC008AE +:103EA00060F3C3022A80B87A0011401C60F3041248 +:103EB00002F07F0028807878AA1CFFF79BFA387DF3 +:103EC00005F1090207F11501FFF794FA387B01F0BB +:103ED0004BF82874787B01F047F86874F87EA87472 +:103EE000787AE87497F83B002875B87B6875A5F870 +:103EF00016B0DAF81C00A861397ABAF820008842B6 +:103F000001D2014610E0B87AC0F3411002280BD06C +:103F1000012809D0288820F060002880A1840A4662 +:103F200007F11C01A86998E0288820F06000403063 +:103F3000F3E711264FF02008002C91D0A380686889 +:103F400004F10A02007920726868007B6072696877 +:103F50008B1D48791946FFF74DFAFFE60A264FF008 +:103F60002108002CE9D08888A080686880792072B8 +:103F70006868C07960729AF8301021F004018BE013 +:103F80000B264FF02208002CD7D0C888A080686884 +:103F9000007920726868007A00F0E6FF607201E044 +:103FA00052E039E06868407A00F0DEFFA072D5E6A2 +:103FB0001C264FF02608002CBFD0A38068684079EB +:103FC00060726868007AA0720AF1040090E80E003E +:103FD000DAF81000C4E90530C4E903126868007912 +:103FE0003C2803D043287DD0FFDFB7E62772B5E633 +:103FF00010264FF02408002C9FD08888A080686885 +:10400000807920816868807A608168680089A081F1 +:1040100068688089E081A1E610264FF02308002C13 +:104020008BD08888A0806868C088208168680089F3 +:10403000608168684089A08168688089E0819AF819 +:10404000301021F0020127E030264FF02508002C27 +:1040500088D0A38069682822496820F07BFD7DE62E +:104060004A4677E0287A012803D0022817D0FFDFDC +:1040700074E610264FF01F08002C85D06888A080B9 +:10408000A8892081E8896081288AA081688AE081E6 +:104090009AF8301021F001018AF830105EE64FF0F6 +:1040A00012081026688800F03DFF57E62846BDE854 +:1040B000F05F01F0C1BC287A07284DD2DFE800F09C +:1040C0004C38384A4A4A040009264FF01108002C9F +:1040D00092D06F883846FFF7BEF990F822A0A780EB +:1040E000687A00E02DE02072042138460CF0CEFD05 +:1040F000052138460CF0CAFD002138460CF0C6FDFB +:10410000012138460CF0C2FD032138460CF0BEFDFB +:10411000022138460CF0BAFD062138460CF0B6FDF7 +:10412000072138460CF0B2FD504600F0B3FE15E60C +:1041300014264FF01B08002C8AD0A380287A01286F +:1041400002D084F808C009E62772DAE90710C4E94A +:10415000031003E62146A9E7FFDFFFE570B5FE4D3A +:10416000287E122801D0082070BD0BF094F904F0CD +:1041700081FF040002D1687E00F08CFE0021052042 +:1041800010F0D2F9204670BD1CB5F348007E13280C +:1041900001D208201CBD00208DF8000068460AF0FE +:1041A00069FE04F067FF0028F4D10021052010F01B +:1041B000BBF91120FEF752FF00201CBD70B501288D +:1041C00005D0052825D0062800D0FFDF70BD8DB2B0 +:1041D0002846FFF740F9040000D1FFDF20782128AE +:1041E000F4D005F01BF968B1017821F00F01891CAA +:1041F00021F0F00110310170022101724580002090 +:10420000A07528E021462846BDE870401322FFF73C +:1042100025B9D148047EA4F1120005281FD2DFE899 +:1042200000F0060303030300FFF7AEFF01E0FFF712 +:1042300095FF0028CAD105F0F1F80028C6D0017812 +:1042400021F00F01891C21F0F00120310170132CA5 +:1042500007D002210172BDE8704005F0E2B8FFDF2F +:1042600070BD0121F6E72DE9F04116460C008046AD +:1042700000D1FFDF307820F00F00801C20F0F0002C +:10428000103030702078012804D0022818D0FFDFC9 +:10429000BDE8F0814046FFF7DEF8050000D1FFDF02 +:1042A0000320A87505F0BDF894E80F00083686E8ED +:1042B0000F00A94810F8301F41F001010170E7E735 +:1042C0004046FFF7C8F8050000D1FFDFA1884FF690 +:1042D000FF700027814202D1E288824203D08142EE +:1042E00001D1E08840B105F09CF894E80F00083651 +:1042F00086E80F00AF75CBE7A87D0128C8D17823E9 +:104300000022414610F066F80220A875C0E738B5D3 +:1043100005460C46084610F053F918BB203D062D03 +:104320004AD2DFE805F0031B373C4230002106206B +:1043300010F0D0F808B1112038BDA01C0BF07EF9A8 +:1043400004F098FE050038D100220823114606200B +:1043500010F040F8062830D0FFDF2EE0606810F043 +:1043600073F908B1102038BD618820886A460BF0C7 +:104370003BFD04F07FFE05001FD16068E8B1BDF889 +:104380000010018019E0A07800F0010120880BF0F6 +:1043900061FD0EE0206801F0FDFD05460DE020788E +:1043A00000F001000AF066F903E0618820880BF054 +:1043B000A0FC04F05FFEF0E70725284638BD70B585 +:1043C00005460C46084610F021F908B1102070BDD2 +:1043D000202D07D0212D0DD0222D0BD0252D09D039 +:1043E000072070BD2088A11C0AF039FABDE8704092 +:1043F00004F040BE062070BD57482530704708B510 +:104400003421554820F047FC0120FEF70FFE112013 +:10441000FEF724FE50496846263104F095FF4E48C9 +:104420009DF8002010F8251F62F3470121F00101DB +:104430000170002141724FF46171A0F80710022150 +:104440008172FEF755FE00B1FFDFFCF78FFF01F030 +:1044500034F908BD10B50C464021204620F0F9FB88 +:10446000A07F20F00300A077202020700020A075FE +:1044700084F8230010BD70472DE9FC41074610F079 +:104480009FF810B11020BDE8FC81334E06F12501E4 +:10449000D6F825000090B6F82950ADF8045096F8EB +:1044A0002B408DF806403846FEF78DFF0028EAD1F4 +:1044B000FEF71EFE0028E6D0009946F8251FB580BD +:1044C000B471E0E710B5044610F0A0F808B1102070 +:1044D00010BD21482049224690F825002631400889 +:1044E000FEF788FF002010BDFEB50D4604004FF01A +:1044F000000712D00822FEF79FFE002812D10026E6 +:1045000009E000BF54F826006946FEF71BFF0028AB +:1045100008D1761CF6B2AE42F4D309F0AEFF10B16A +:1045200043F20320FEBD0C4E86F8247024B300270E +:104530001EE000BF54F8270002A9FEF703FF00B1F8 +:10454000FFDF9DF808008DF8000054F8270050F8B0 +:10455000011FCDF8011001E0D80100208088ADF8DE +:104560000500684609F0D3FF00B1FFDF7F1CFFB2F2 +:10457000AF42DFD386F824500020FEBD2DE9F0477E +:104580008AB01546894604001ED00F4608222946E7 +:10459000FEF752FE002810D1002613E054F8260042 +:1045A0006946103000F09BFC002806D147B157F84F +:1045B000260010F005F818B110200AB0BDE8F08709 +:1045C000761CF6B2AE42E9D30026A5F101081BE045 +:1045D00006F1010A0AF0FF0712E000BF54F82600B6 +:1045E000017C4A0854F827100B7CB2EB530F05D11D +:1045F00006221130113120F081FA58B17F1CFFB230 +:10460000AF42EBD30AF0FF064645E1DB4E4624B14C +:10461000012003E043F20520CFE7002009F0A8FFC6 +:1046200010B909F0B9FF10B143F20420C5E75CB33B +:1046300000270DF1170825E054F8270069461030CF +:1046400000F04DFC00B1FFDF54F82700102250F8B5 +:10465000111FCDF801108088ADF8050054F827101F +:104660000DF1070020F076FA96B156F827101022C7 +:10467000404620F06FFA684609F022FF00B1FFDFE4 +:104680007F1CFFB2AF42D7D3FEF700FF002094E7B4 +:10469000404601F073FCEEE730B585B004460FF0FC +:1046A0008FFF18B960680FF0D8FF10B1102005B067 +:1046B00030BD60884AF2B811884206D82078FB4D98 +:1046C00028B1012806D0022804D00720EFE7FEF722 +:1046D0000FFD18E06078022804D0032802D043F2CE +:1046E0000220E4E785F82F00C1B200200090ADF869 +:1046F000040002292CD0032927D0FFDF684609F0E7 +:10470000EDFF04F0B7FC0028D1D1606801F029FC6E +:10471000207858B101208DF800000DF1010001F062 +:104720002DFC68460BF0F5FB00B1FFDF207885F823 +:104730002E00FEF7ABFE608860B1A88580B209F05C +:104740000FFF00B1FFDF0020B1E78DF80500D5E7CE +:104750004020FAE74FF46170EFE710B504460FF020 +:1047600055FF20B9606838B10FF06EFF08B1102016 +:1047700010BD606801F002FCCC4830F82C1F61804D +:10478000C178617080782070002010BD2DE9F84359 +:104790001446894606460FF039FFA0B948460FF087 +:1047A0005CFF80B920460FF058FF60B9BF4DA87874 +:1047B000012800D13CB13178FF2906D049B143F23C +:1047C0000400BDE8F8831020FBE7012801D0042095 +:1047D000F7E74FF00008A4B3052811D004280FD044 +:1047E00069462046FEF76BFE0028EAD1207D48B1DD +:1047F000012809D0022809D0032809D00720E0E7C2 +:104800000820DEE7424604E0012202E0022200E046 +:1048100003222346174600200099FEF78DFE00284C +:10482000CFD1A0892880A07BE875BDF80000A882C0 +:10483000AF75BDF80000000701D5A08988B1A08937 +:10484000288049460020FEF727FF0028B9D1A87824 +:1048500005280BD0042809D0287DC00703D00320E9 +:1048600002E08020ECE70220FEF7E0FB86F8008003 +:104870000020A6E77CB58D4C05460E46A0780228A0 +:1048800003D0032801D008207CBD15B143F20400F9 +:104890007CBD07200CF098F910B9A078032806D049 +:1048A000FEF7F2FB28B1A078032804D009E012201B +:1048B0007CBD13207CBD304600F0CBFA0028F9D136 +:1048C000E67001208DF800008DF801008DF802508F +:1048D0002088ADF80400E07D8DF8060068460BF0F6 +:1048E000C6F904F0C7FB0028E4D1A078032805D05E +:1048F0005FF00400FEF79AFB00207CBDE07800F03A +:10490000B8FA0520F6E71CB510B143F204001CBD4F +:10491000664CA078042803D0052801D008201CBDCF +:1049200000208DF8000001218DF801108DF80200A3 +:1049300068460BF09CF904F09DFB0028EFD1A078AD +:10494000052805D05FF00200FEF770FB00201CBDBB +:10495000E07800F09FFA0320F6E72DE9FC4180465D +:104960000E46032508460FF078FE002866D1404623 +:10497000FEF771FD040004D02078222804D208201C +:1049800081E543F202007EE5A07F00F003073EB11F +:10499000012F0CD000203146FEF729FC0500EFD195 +:1049A000012F06D0022F1AD0FFDF28466BE5012029 +:1049B000F1E7A07D3146022801D011B107E01120B6 +:1049C00061E56846FCF7DFFD0028D9D1694640461D +:1049D00006F0A9FC0500E8D10120A075E5E7A07D5F +:1049E000032804D1314890F83000C00701D02EB31D +:1049F0000EE026B1A07F40071ED4002100E0012177 +:104A0000404606F0B0FC0500CFD1A075002ECCD0FA +:104A10003146404600F07BFA05461128C5D1A07FFB +:104A20004107C2D4316844F80E1F7168616040F0DC +:104A3000040020740025B8E71125B6E7102022E510 +:104A400070B50C460546FEF706FD010005D022466E +:104A50002846BDE87040FEF701BD43F2020070BD7C +:104A600010B5012807D1114B9B78012B00D011B153 +:104A700043F2040010BD09F0B6FDBDE8104004F09B +:104A8000F9BA012300F010BA00231A46194600F0C3 +:104A90000BBA70B506460C4608460FF091FD18B9E2 +:104AA00020680FF0B3FD18B1102070BDD8010020B0 +:104AB000F64D2A7E112A04D0132A00D33EB10820D5 +:104AC000F3E721463046FEF774FE60B1EDE70920BA +:104AD000132A0DD0142A0BD0A188FF29E5D3152065 +:104AE000FEF7BCFA0020D4E90012C5E90712DCE7A2 +:104AF000A1881F29D9D31320F2E72DE9F047DFF869 +:104B00008C93804690B099F818009A4615460C464A +:104B1000132803D3FFF738FB002836D120460FF0C7 +:104B20004FFD88BB28460FF04BFD68BB20784FF047 +:104B30000107C0074FF0000602D08DF83A7001E07F +:104B40008DF83A602078C0F3C1008DF800006178DC +:104B50000720E1B101291AD0022916D0042914D165 +:104B600004208DF809006088ADF80A00A088ADF82F +:104B700010002078C0F3C100012825D0032823D0DD +:104B800040460FF01DFD28B1102010B016E58DF83D +:104B90000970E8E798F80000400808D0012809D01B +:104BA000022807D0032805D043F20220EDE78DF854 +:104BB000026001E08DF80270404650F8011FCDF808 +:104BC00003108088ADF807000DF10100FEF7E3FB4C +:104BD00008B10320D9E72888ADF816006888ADF839 +:104BE0001C00A888ADF82200E888ADF82800ADF8D0 +:104BF0002E60ADF8346068460AF057FAE8B999F8C3 +:104C000018004D46112801D00820BEE706200BF001 +:104C1000DBFF38B12078C0F3C100012804D003289D +:104C200002D004E01220B0E795F8240028B1FEF786 +:104C30002BFA022803D21320A7E70720A5E7504646 +:104C400000F007F90028A0D185F819A068460AF0FD +:104C50001FFC04F00FFA002897D1687E00F009F9D4 +:104C6000E08864280BD250B15FF0010000F041F9F8 +:104C700004008AD11220FEF7F1F9204685E764216D +:104C8000B0FBF1F0F2E770B5064615460C46084653 +:104C90000FF0BCFC18B928460FF0B8FC08B1102082 +:104CA00003E72A46214630460BF081F804F0E2F98A +:104CB0000028F5D121787F29F2D10520F5E67CB5D1 +:104CC00005460C4608460FF07BFC08B110207CBD61 +:104CD0002846FEF7C0FB20B10078222804D2082025 +:104CE0007CBD43F202007CBD684890F8300040076C +:104CF00001D511207CBD2078C00802D16078C008A1 +:104D000001D007207CBDADF8005020788DF802005E +:104D100060788DF803000220ADF8040068460AF0C0 +:104D200055F804F0A7F97CBD70B586B014460D4661 +:104D30000646FEF790FB28B10078222805D208200D +:104D400006B0B2E643F20200FAE728460FF085FC0F +:104D500020B944B120460FF077FC08B11020EFE7EE +:104D600000202060A080494890F83000800701D5DD +:104D70001120E5E703A9304609F0F7FD18B100BF9F +:104D800004F078F9DCE7ADF80060BDF81400ADF888 +:104D90000200BDF81600ADF80400BDF81000BDF823 +:104DA0001210ADF80600ADF808107DB1298809B1E0 +:104DB000ADF80610698809B1ADF80210A98809B1EB +:104DC000ADF80810E98809B1ADF80410DCB1BDF800 +:104DD0000610814201D9081A2080BDF80210BDF8E2 +:104DE0001400814201D9081A6080BDF80800BDF89E +:104DF0000410BDF816200144BDF812001044814291 +:104E000001D9081AA080684609F0E6FEB8E71CB58B +:104E10001F490968CDE9001068460AF048F904F016 +:104E200029F91CBD1CB500200090019068460AF0CD +:104E30003EF904F01FF91CBD108008885080488896 +:104E40009080C88810818888D0800020508190810F +:104E5000704710B5044604F079F830B1407830B1AD +:104E6000204604F082FB002010BD052010BD12205A +:104E700010BD10B504F06AF8040000D1FFDF6078BF +:104E800000B9FFDF6078401E607010BDD8010020BF +:104E90004050020010B504F059F8040000D1FFDFC3 +:104EA0006078401C607010BD1CB5ADF800008DF836 +:104EB00002308DF803108DF8042068460AF03CFF9C +:104EC00004F0D8F81CBD0CB52FA2D2E90012CDE930 +:104ED00000120079694601EB501000780CBD027891 +:104EE000520804D0012A02D043F202207047FEF794 +:104EF00029BA10B548B183000022114605200FF0F1 +:104F000069FA052801D0032010BD002010BD1FB58F +:104F10006A46FFF791FF68460AF01DFB04F0AAF805 +:104F200004B010BD70B50C0006460DD0FEF793FA24 +:104F3000050000D1FFDFA6802889208128896081B3 +:104F40006889A081A889E081AFE510B500231A46E1 +:104F500003E0845C2343521CD2B28A42F9D30BB1E2 +:104F6000002010BD012010BD00B540B1012805D0C2 +:104F7000022803D0032804D0FFDF002000BDFF205B +:104F800000BD042000BD0000070605040302010067 +:104F900010B504460FF014FB08B1102010BD2078A6 +:104FA000C0F30210042807D86078072804D3A1783A +:104FB000102901D8814201D2072010BDE0784107B5 +:104FC00006D421794A0703D4000701D4080701D584 +:104FD000062010BD002010BD10B513785C08837F3B +:104FE00064F3C713837713789C08C37F64F30003CB +:104FF000C3771078C309487863F341004870137889 +:105000001C090B7864F347130B701378DB0863F308 +:10501000000048705078487110BD10B5C4780B7806 +:1050200064F300030B70C478640864F341030B70ED +:10503000C478A40864F382030B70C478E40864F3B2 +:10504000C3030B700379117863F3000111700379C6 +:105050005B0863F34101117003799B0863F38201DC +:1050600011700079C00860F3C301117010BD70B5F4 +:1050700014460D46064604F0D1F980B10178182295 +:1050800021F00F01891C21F0F001A03100F8081B6C +:1050900021461FF0A4FDBDE8704004F0C2B92946C6 +:1050A0003046BDE870401322FEF7D8B92DE9F0472D +:1050B000064608A8894690E830041F469046142109 +:1050C00028461FF0E8FD0021CAF80010B8F1000FD3 +:1050D00003D0B9F1000F03D114E03878C00711D024 +:1050E00020680FF093FAC0BBB8F1000F07D1206819 +:1050F000123028602068143068602068A860216839 +:10510000CAF800103878800724D560680FF09CFA40 +:1051100018BBB9F1000F21D0FFF76EF90168C6F88E +:1051200068118188A6F86C11807986F86E0101F00B +:1051300002FDF94FEF60626862B196F8680106F20D +:10514000691140081032FEF755F91022394660689F +:105150001FF000FD0020BDE8F08706E0606820B188 +:10516000E8606068C6F86401F4E71020F3E730B542 +:10517000054608780C4620F00F00401C20F0F00196 +:10518000103121700020607095F8230030B10428A0 +:105190000FD0052811D0062814D0FFDF2078012178 +:1051A000B1EB101F04D295F8200000F01F006070D2 +:1051B00030BD21F0F000203002E021F0F00030306E +:1051C0002070EBE721F0F0004030F9E7F0B591B046 +:1051D000022715460C4606463A46ADF808700921E6 +:1051E00003AB04F07AFF0490002810D004208DF85F +:1051F00004008DF80170E034099605948DF818507C +:105200000AA968460DF022FA00B1FFDF012011B0B3 +:10521000F0BD10B588B00C460A99ADF80000C3B1D6 +:105220001868CDF802005868CDF80600ADF80A20DD +:10523000102203A81FF08EFC68460AF02FFA03F034 +:1052400019FF002803D1A17F41F01001A17708B018 +:1052500010BD0020CDF80200E6E72DE9F84F064624 +:10526000808A0D4680B28246FEF7F5F80446307813 +:10527000DFF8A48200274FF00509A8F120080F28C5 +:1052800070D2DFE800F06FF23708387D8CC8F1F09B +:10529000EFF35FF3F300A07F00F00300022809D0D2 +:1052A0005FF0000080F0010150460BF0DDFC0500CE +:1052B00003D101E00120F5E7FFDF98F85C10C90792 +:1052C00002D0D8F860000BE0032105F11D000EF0BC +:1052D00052FED5F81D009149B0FBF1F201FB12001E +:1052E000C5F81D0070686867B068A8672078252831 +:1052F00000D0FFDFCAE0A07F00F00300022809D041 +:105300005FF0000080F0010150460BF0ADFC06009C +:1053100003D101E00120F5E7FFDF3078810702D5F6 +:105320002178252904D040F001003070BDE8F88FC5 +:1053300002202870307F287106F11D002D36C5E946 +:105340000206F3E7A07F00F00300022808D0002047 +:1053500080F0010150460BF087FC040004D102E00C +:105360000120F5E7A7E1FFDF2078C10604D507207B +:1053700028703D346C60D9E740F008002070D5E714 +:10538000E07F000700D5FFDF307CB28800F001032A +:1053900001B05046BDE8F04F092105F027BD04B922 +:1053A000FFDF716821B1102204F124001FF0D2FB4D +:1053B00028212046FDF7AEFEA07F00F00300022862 +:1053C0000ED104F12400002300901A4621465046D5 +:1053D000FFF71FFF112807D029212046FDF79AFE6D +:1053E000307A84F82000A1E7A07F000700D5FFDF16 +:1053F00014F81E0F40F008002070E782A761E761F3 +:10540000C109607861F34100014660F38201617077 +:10541000307AE0708AE7A07F00F00300022809D00C +:105420005FF0000080F0010150460BF01DFC04000D +:1054300003D101E00120F5E7FFDF022104F185003F +:105440000EF099FD0420287004F5B4706860B4F87B +:1054500085002882304810387C346C61C5E90280B0 +:1054600064E703E024E15BE02DE015E0A07F00F0BD +:105470000300022807D0002080F0010150460BF005 +:10548000F3FB18B901E00120F6E7FFDF32462146C1 +:105490005046BDE8F84FEAE504B9FFDF207821283F +:1054A000A1D93079012803D1E07F40F00800E077EE +:1054B000324621465046FFF7DAFD2046BDE8F84F58 +:1054C0002321FDF727BE3279AA8005F108030921BF +:1054D000504604F002FEE86010B185F8009025E720 +:1054E000A07F00F00300022808D0002080F0010116 +:1054F00050460BF0B9FB040003D101E00120F5E7B1 +:10550000FFDF04F1620102231022081F0BF033FABF +:1055100007703179417009E73802002040420F00DE +:10552000A07F00F00300022808D0002080F00101D5 +:1055300050460BF099FB050003D101E00120F5E78F +:10554000FFDF95F8840000F0030001287AD1A07FE6 +:1055500000F00307E07F10F0010602D0022F04D113 +:1055600033E095F8A000C0072BD0D5F8601121B327 +:1055700095F88320087C62F387000874A17FCA092C +:10558000D5F8601162F341000874D5F8601166F334 +:1055900000000874AEB1D5F86001102204F12401B6 +:1055A00088351FF0D7FA287E40F001002876287849 +:1055B00020F0010005F8880900E016B1022F04D0A0 +:1055C0002DE095F88800C00727D0D5F85C1121B3ED +:1055D00095F88320087C62F387000874A17FCA09CC +:1055E000D5F85C1162F341000874D5F85C1166F3DC +:1055F000000008748EB1D5F85C01102204F124017A +:1056000088351FF0A7FA287840F0010005F8180B3C +:10561000287820F0010005F8A009022F44D00020CE +:1056200000EB400005EBC00090F88800800709D52A +:1056300095F87C00D5F86421400805F17D01103211 +:10564000FDF7D8FE8DF8009095F884006A4600F0CA +:1056500003008DF8010095F888108DF8021095F878 +:10566000A0008DF803002146504601F04DFA207845 +:10567000252805D0212807D0FFDF2078222803D94C +:1056800022212046FDF746FDA07F00F003000228FE +:105690000CD0002080F0010150460BF0F7FA0028F2 +:1056A0003FF44FAEFFDF41E60120B9E70120F1E70B +:1056B000706847703AE6FFDF38E670B5FE4C0025AB +:1056C00084F85C5025660CF08EFF04F11001204632 +:1056D00003F060FE84F8305070BD70B50D46FDF7E4 +:1056E000BAFE040000D1FFDF4FF4B87128461FF066 +:1056F000D2FA04F124002861A07F00F00300022800 +:1057000008D0012105F1E0000CF06EFF002800D068 +:10571000FFDF70BD0221F5E70A46014602F1E00015 +:105720000CF082BF70B50546406886B001780A2942 +:1057300006D00D2933D00E292FD0FFDF06B070BD63 +:1057400086883046FDF787FE040000D1FFDF207811 +:105750002128F3D028281BD1686802210E3001F0DF +:10576000C8F9A8B168680821801D01F0C2F978B1B4 +:1057700004F1240130460AF07CFA03F07BFC00B10E +:10578000FFDF06B02046BDE870402921FDF7C2BC0E +:1057900006B0BDE8704003F044BE012101726868A4 +:1057A000C6883046FDF757FE040000D1FFDFA07F1A +:1057B00000F00301022902D120F01000A077207828 +:1057C00021280AD06868017A09B1007980B1A07FE8 +:1057D00000F00300022862D0FFDFA07F00F003008A +:1057E0000228ABD1FEF796F80028A7D0FFDFA5E787 +:1057F00003F017FEA17F08062BD5E07FC00705D078 +:1058000094F8200000F01F00102820D05FF0050061 +:1058100084F82300207829281DD02428DDD13146A2 +:1058200004200EF081FE22212046FDF773FCA07FAC +:1058300000F00300022830D05FF0000080F001018A +:1058400030460BF023FA0028C7D0FFDFC5E706205B +:10585000DEE70420DCE701F00300022808D0002086 +:1058600080F0010130460BF0FFF9050003D101E0A3 +:105870000120F5E7FFDF25212046FDF74BFC032043 +:105880008DF80000694605F1E0000CF0C4FE022826 +:10589000A3D00028A1D0FFDF9FE70120CEE703F0CF +:1058A000C0FD9AE72DE9F04387B099461646884631 +:1058B0000746FDF7D0FD04004BD02078222848D3BE +:1058C000232846D0E07F000743D4A07F00F00300E8 +:1058D000022809D05FF0000080F0010138460BF08B +:1058E000C3F9050002D00CE00120F5E7A07F00F02D +:1058F0000300022805D00121002238460BF0ABF945 +:1059000005466946284601F026F9009800B9FFDFF0 +:1059100045B10098E03505612078222806D024287A +:1059200004D007E000990020086103E0252120460B +:10593000FDF7F0FB0098012141704762868001A9C4 +:10594000C0E902890CF082FE022802D0002800D0B3 +:10595000FFDF07B0BDE8F08370B586B00546FDF700 +:105960007AFD017822291ED9807F00F003000228E9 +:1059700008D0002080F0010128460BF075F90400E2 +:105980002FD101E00120F5E7FFDF2AE0B4F85E0047 +:1059900004F1620630440178427829B12146284654 +:1059A000FFF714FCB0B9C9E6ADF804200921284678 +:1059B00002AB04F092FB03900028F4D005208DF890 +:1059C0000000694604F1E0000CF025FE022801D039 +:1059D00000B1FFDF02231022314604F15E000BF01C +:1059E00000F8B4F860000028D0D1A7E610B586B062 +:1059F0000446FDF730FD017822291BD9807F00F095 +:105A00000300022808D0002080F0010120460BF09E +:105A10002BF9040003D101E00120F5E7FFDF0620A8 +:105A20008DF80000694604F1E0000CF0F4FD002858 +:105A300000D0FFDF06B010BD2DE9F05F05460C4633 +:105A400000270078904601093E4604F1080BBA464B +:105A500002297DD0072902D00A2909D146E06868C9 +:105A600001780A2905D00D2930D00E292ED0FFDF6C +:105A7000BCE114271C26002C6BD08088A080FDF789 +:105A8000EAFC5FEA000900D1FFDF99F817005A46E7 +:105A9000400809F11801FDF7ADFC6868C089208253 +:105AA000696851F8060FC4F812004868C4F8160077 +:105AB000A07E20F0060001E01802002040F0010066 +:105AC000A07699F81E0040F020014DE01A270A2622 +:105AD000002CD1D0C088A080FDF7BDFC050000D10E +:105AE000FFDF59462846FFF742FB7FE10CB1A88B48 +:105AF000A080287A0B287DD006DC01287BD00228E4 +:105B000008D0032804D135E00D2875D00E2874D0B4 +:105B1000FFDF6BE11E270926002CADD0A088FDF722 +:105B20009AFC5FEA000900D1FFDF287B00F0030048 +:105B30000128207A1BD020F001002072297B8908DF +:105B400061F341002072297BC90861F3820001E002 +:105B500041E1F2E02072297B090961F3C300207260 +:105B600099F81E0040F0400189F81E103EE140F017 +:105B70000100E2E713270D26002CAAD0A088FDF72C +:105B80006AFC8146807F00F00300022808D00020D4 +:105B900080F00101A0880BF067F8050003D101E057 +:105BA0000120F5E7FFDF99F81E0000F00302022A4A +:105BB00050D0686F817801F003010129217A4BD020 +:105BC00021F00101217283789B0863F34101217266 +:105BD0008378DB0863F38201217283781B0963F306 +:105BE000C3012172037863F306112172437863F3D2 +:105BF000C71103E061E0A9E090E0A1E0217284F820 +:105C000009A0C178A172022A29D00279E17A62F34F +:105C10000001E1720279520862F34101E1720279F6 +:105C2000920862F38201E1720279D20862F3C30141 +:105C3000E1724279217B62F30001217342795208BB +:105C400062F3410121734279920862F38201217368 +:105C5000407928E0A86FADE741F00101B2E7427951 +:105C6000E17A62F30001E1724279520862F3410184 +:105C7000E1724279920862F38201E1724279D208BC +:105C800062F3C301E1720279217B62F300012173A7 +:105C90000279520862F3410121730279920862F39A +:105CA000820121730079C00860F3C301217399F860 +:105CB0000000232831D9262140E018271026E4B31C +:105CC000A088FDF7C8FB8346807F00F00300022810 +:105CD00009D0002080F00101A0880AF0C5FF5FEA2A +:105CE000000903D101E00120F4E7FFDFE868A060CC +:105CF00099F8000040F0040189F8001099F80100BB +:105D0000800708D5012020739BF8000023286DD957 +:105D10002721584651E084F80CA067E015270F268C +:105D20005CB1A088FDF797FB814606225946E868DA +:105D300008F089F90120A073A2E041E048463CE068 +:105D400016270926E4B3287B20724FE0287B192709 +:105D50000E26ACB3C4F808A0A4F80CA0012807D004 +:105D6000022805D0032805D0042803D0FFDF0DE06A +:105D7000207207E0697B042801F00F0141F08001E7 +:105D800021721ED0607A20F003006072A088FDF7B7 +:105D900062FB05460078212828D0232800D0FFDFA9 +:105DA000A87F00F00300022813D0002080F001013A +:105DB000A0880AF06BFF22212846FDF7ABF915E019 +:105DC00004E0607A20F00300401CDEE7A8F80060E1 +:105DD00011E00120EAE70CB16888A080287A032846 +:105DE0002ED004280AD0052850D0FFDFA8F8006084 +:105DF0000CB1278066800020BDE8F09F15270F2694 +:105E0000002CE3D0A088FDF726FB807F00F0030084 +:105E1000022809D05FF0000080F00101A0880AF09C +:105E200023FF050003D101E00120F5E7FFDFD5F8EE +:105E30001D000622594608F006F984F80EA0D5E7A1 +:105E400017270926002CC1D0A088FDF704FB814646 +:105E5000807F00F00300022808D0002080F00101BC +:105E6000A0880AF001FF050003D101E00120F5E759 +:105E7000FFDF6878800701D5022000E00120207252 +:105E800099F800002328B1D9272157E719270E26B2 +:105E9000002C9BD0A088FDF7DEFA5FEA000900D154 +:105EA000FFDFC4F808A0A4F80CA084F808A0A07A2A +:105EB00040F00300A07299F81E10C90961F3820036 +:105EC000A07299F81F2099F81E1012EAD11F05D070 +:105ED00099F8201001F01F0110292BD020F00800A4 +:105EE000A07299F81F10607A61F3C3006072697A3A +:105EF00001F003010129A2D140F00400607299F879 +:105F00001E0000F003000228E87A16D0217B60F31F +:105F100000012173AA7A607B62F300006073EA7A61 +:105F2000520862F341012173A97A490861F34100E3 +:105F300060735BE740F00800D2E7617B60F300012B +:105F40006173AA7A207B62F300002073EA7A520818 +:105F500062F341016173A97A490861F3410020733A +:105F600044E710B5FE4C30B10146102204F1200088 +:105F70001EF0F0FD012084F8300010BD10B504467D +:105F800000F0D9FDF64920461022BDE8104020312E +:105F90001EF0E0BD70B5F24D06004FF0000413D0C6 +:105FA0000EF00EFB08B110240CE00621304608F07C +:105FB00031F8411C05D028665FF0010085F85C00CF +:105FC00000E00724204670BD0020F7E7007810F0BD +:105FD0000F0204D0012A05D0022A0CD110E00009DA +:105FE00009D10AE00009012807D0022805D00328BA +:105FF00003D0042801D007207047087000207047A4 +:106000000620704705282AD2DFE800F003070F17A3 +:106010001F00087820F0FF001EE0087820F00F0035 +:10602000401C20F0F000103016E0087820F00F003F +:10603000401C20F0F00020300EE0087820F00F0027 +:10604000401C20F0F000303006E0087820F00F000F +:10605000401C20F0F00040300870002070470720FE +:1060600070472DE9F041804688B00D46002708466C +:106070000EF0F3FAA8B94046FDF7EDF9040003D09D +:106080002078222815D104E043F2020008B0BDE8D0 +:10609000F08145B9A07F410603D500F00300022836 +:1060A00001D01020F2E7A07FC10601D4010702D57C +:1060B0000DB10820EAE7E17F090701D50D20E5E7EA +:1060C00000F00300022805D125B12846FEF760FF45 +:1060D0000700DBD1A07F00F00300022808D00020D9 +:1060E00080F0010140460AF0BFFD060002D00FE03B +:1060F0000120F5E7A07F00F0030002280ED0002069 +:1061000080F00101002240460AF0A5FD060007D0FC +:10611000A07F00F00300022804D009E00120EFE78F +:106120000420B3E725B12A4631462046FEF754FF46 +:106130006946304600F00FFD009800B9FFDF009976 +:10614000022006F1E0024870C1F824804A61002272 +:106150000A81A27F02F00302022A1CD001200871EA +:10616000287800F00102087E62F3010008762A78A0 +:10617000520862F3820008762A78920862F3C3001C +:1061800008762A78D20862F3041008762421204683 +:10619000FCF7C0FF33E035B30871301D88613078FB +:1061A000400908777078C0F340004877287800F0FD +:1061B0000102887F62F301008877A27FD20962F32F +:1061C00082008877E27F62F3C3008877727862F397 +:1061D00004108877A878C87701F121022846203179 +:1061E000FEF71BFF03E00320087105200876252138 +:1061F0002046FCF78FFFA07F20F04000A07701A988 +:1062000000980CF023FA022801D000B1FFDF3846D5 +:106210003CE72DE9FF4F534A0D4699B09A4607CA0D +:106220000BAB002783E807001998FDF714F9060067 +:1062300006D03078262806D008201DB0BDE8F08FA3 +:1062400043F20200F9E7B07F00F00309B9F1020F51 +:1062500003D00020284302D006E00120FAE71B9873 +:10626000FEF796FE0028E8D1B07F00F00300022878 +:1062700001D11B9979BB022808D0002080F00101D0 +:1062800019980AF0F1FC040003D101E00120F5E7C0 +:10629000FFDF852D28D007DCF5B1812D1ED0822DA2 +:1062A0001ED0832D08D11DE0862D1FD0882D1FD034 +:1062B000892D1FD08A2D1FD00F2020710F281DD0AF +:1062C00003F0ACF8E0B101208DF84000201D1190E2 +:1062D0002079B8B167E111E00020EEE70120ECE79A +:1062E0000220EAE70320E8E70520E6E70620E4E7E6 +:1062F0000820E2E70920E0E70A20DEE707209CE724 +:1063000011209AE7B9F1020F03D0A56F03D1A06F56 +:1063100002E0656FFAE7606F804632D04FF001000F +:1063200000904FF002000190214630461B9AFEF784 +:1063300053FE1B98007800F00101A87861F301007A +:10634000A870B17FC90961F38200A870F17F61F381 +:10635000C300A870617861F30410A870207803E08E +:106360001802002048500200400928706078C0F3ED +:10637000400068701B988078E87000206871287170 +:1063800003E00220009001200190A87898F8021004 +:10639000C0F3C000C1F3C00108405FEA000B2CD07D +:1063A00050460EF00DF990BBDAF80C000EF008F92B +:1063B00068BBDAF81C000EF003F940BBDAF80C00F9 +:1063C000A060DAF81C00E06098F80100617800F045 +:1063D000010041EA4000607098F80210C0B2C1F3B9 +:1063E0000011891E0840607000202077019906F195 +:1063F000170002290CD001210BE098F801106078F9 +:1064000001F00101FD2242EA41010840E3E732E0E8 +:10641000002104EB810148610099701C022901D020 +:10642000012100E0002104EB81014861A87800F01F +:106430000300012858D198F8020000F00300012859 +:1064400052D1B9F1020F04D02A1D691D1B98FEF725 +:10645000E4FD297998F8040001408DF83810687936 +:1064600098F8052010408DF83C0001433CD0504680 +:106470000EF0A6F808B11020DFE60AF11001049131 +:10648000B9F1020F18D008465FF0000104F18C0347 +:10649000CDE9000304F5AE7202920EAB5A462046D7 +:1064A000FEF704FE0028E7D1B9F1020F08D05046EC +:1064B00008D14FF0010107E050464FF00101E5E738 +:1064C0000498F5E74FF0000104F1A403CDE90003BF +:1064D00004F5B072029281F001010FAB5A462046DA +:1064E000FEF7E4FD0028C7D16078800734D4A8788F +:1064F00098F80210C0F38000C1F3800108432BD04C +:10650000297898F800000BAAB9F1020F06D032F8EA +:1065100011204300DA4002F003070AE032F81020AD +:106520004B00DA4012F0030705D0012F0BD0022FE9 +:106530000BD0032F07D0BBF1000F0DD0012906D0DF +:10654000042904D008E00227F5E70127F3E7012832 +:1065500001D0042800D10427B07F40F08000B0773C +:10656000F17F6BF30001F177607881074FF0030052 +:106570000CD5A071BBF1000F15D100BF8DF85C00E8 +:1065800017AA3146199800F0BFFA0CE00221022F39 +:1065900018D0012F18D0042F22D00020A071B07F76 +:1065A00020F08000B07725213046FCF7B3FD10A91C +:1065B00004F1E0000CF02FF810B1022800D0FFDF4A +:1065C00000203AE6A171D9E7A1710D2104F1200064 +:1065D0001EF061FB207840F0020020700420CDE71F +:1065E0000120A071DFE72DE9F04387B0904689468E +:1065F00004460025FCF72FFF060006D03078272838 +:1066000006D0082007B0BDE8F08343F20200F9E7A6 +:10661000B07F00F00300022808D0002080F00101C4 +:1066200020460AF021FB040003D101E00120F5E738 +:10663000FFDFA7795FEA090005D0012821D0B9F171 +:10664000020F26D110E0B8F1000F22D1012F05D0A2 +:10665000022F05D0032F05D0FFDF2DE00C252BE006 +:10666000012529E0022527E040460DF0A9FFB0B939 +:10667000032F0ED11022414604F11D001EF06AFACC +:106680001AE0012F02D0022F03D104E0B8F1000F6D +:1066900012D00720B6E740460DF092FF08B1102057 +:1066A000B0E7102104F11D001EF0D3FA0621404688 +:1066B00007F0B0FCC4F81D002078252140F002004E +:1066C00020703046FCF726FD2078C10713D020F05B +:1066D0000100207002208DF8000004F11D000290DE +:1066E0008DF804506946C3300BF095FF022803D0A3 +:1066F00010B1FFDF00E02577002083E730B587B0D9 +:106700000D460446FCF7A7FEA0B1807F00F0030011 +:10671000022812D05FF0000080F0010120460AF04C +:10672000A3FA04000ED028460DF04AFF38B110201D +:1067300007B030BD43F20200FAE70120ECE7207811 +:10674000400701D40820F3E7294604F13D00202248 +:1067500005461EF0FFF9207840F010002070010778 +:106760000FD520F00800207007208DF80000694642 +:1067700004F1E00001950BF04EFF022801D000B1BA +:10678000FFDF0020D4E770B50D460646FCF763FE38 +:1067900018B10178272921D102E043F2020070BD2F +:1067A000807F00F00300022808D0002080F0010163 +:1067B00030460AF059FA040003D101E00120F5E760 +:1067C000FFDFA079022809D16078C00706D02A46E9 +:1067D00021463046FEF7FAFC10B10FE0082070BDEC +:1067E000B4F860000E280BD204F1620102231022DB +:1067F000081F0AF0C0F8012101704570002070BD2B +:10680000112070BD70B5064614460D4608460DF0C1 +:10681000D7FE18B920460DF0F9FE08B1102070BD62 +:10682000A6F57F40FF380ED03046FCF714FE38B195 +:10683000417822464B08811C1846FCF7DBFD07E037 +:1068400043F2020070BD2046FDF73CFE0028F9D15E +:106850001021E01D0DF08FFBE21D294604F1170009 +:1068600000F089F9002070BD2DE9F04104468AB09E +:1068700015468846002708460DF0EFFE18B9284651 +:106880000DF0EBFE18B110200AB0BDE8F0812046F3 +:10689000FCF7E1FD060003D0307827281BD102E089 +:1068A00043F20200F0E7B07F00F00300022809D0B5 +:1068B0005FF0000080F0010120460AF0D5F90400E5 +:1068C00003D101E00120F5E7FFDF2078400702D582 +:1068D0006078800701D40820D6E7B07F00F003007D +:1068E000022803D0A06F03D1A16F02E0606FFAE726 +:1068F000616F407800B19DB1487810B1B8F1000FD8 +:106900000ED0ADB1EA1D06A8E16800F034F91022FE +:1069100006A905F117001EF0F1F818B1042707E0E9 +:106920000720B1E71022E91D04F12D001EF012F935 +:10693000B8F1000F06D0102208F1070104F11D0084 +:106940001EF008F92078252140F002002070304622 +:10695000FCF7E0FB2078C10715D020F00100207083 +:1069600002208DF8000004F11D0002901030039009 +:106970008DF804706946B3300BF04DFE022803D049 +:1069800010B1FFDF00E0277700207DE7F8B515465E +:106990000E460746FCF75FFD040004D0207822284D +:1069A00004D00820F8BD43F20200F8BDA07F00F03B +:1069B0000300022802D043F20500F8BD30460DF076 +:1069C000FFFD18B928460DF0FBFD08B11020F8BDF9 +:1069D00000953288B31C21463846FEF71AFC112870 +:1069E00015D00028F3D1297C4A08A17F62F3C71192 +:1069F000A177297CE27F61F30002E277297C890894 +:106A000084F82010A17F21F04001A177F8BDA17F7B +:106A10000907FBD4D6F80200C4F83600D6F8060001 +:106A2000C4F83A003088A0861022294604F12400D8 +:106A30001EF090F8287C4108E07F61F34100E07788 +:106A4000297C61F38200E077287C800884F82100AB +:106A5000A07F40F00800A0770020D3E770B50D4676 +:106A600006460BB1072070BDFCF7F5FC040007D00B +:106A70002078222802D3A07F800604D4082070BD8D +:106A800043F2020070BDADB12946304609F0F1F87D +:106A900002F0F0FA297C4A08A17F62F3C711A177BE +:106AA000297CE27F61F30002E277297C890884F87F +:106AB000201004E0304609F004F902F0DBFAA17F6F +:106AC00021F02001A17770BD70B50D46FCF7C3FC25 +:106AD000040005D028460DF099FD20B1102070BDAE +:106AE00043F2020070BD29462046FEF740FB00201D +:106AF00070BD04E010F8012B0AB100207047491E58 +:106B000089B2F7D20120704770B51546064602F0EB +:106B100085FC040000D1FFDF207820F00F00801CEE +:106B200020F0F0002030207066802868A060BDE86A +:106B3000704002F076BC10B5134C94F83000002879 +:106B400008D104F12001A1F110000BF0A6FD0120F5 +:106B500084F8300010BD10B190F8B9202AB10A486D +:106B600090F8350018B1002003E0B83001E0064885 +:106B700034300860704708B50023009313460A4676 +:106B80000AF06DFA08BD00001802002018B18178E3 +:106B9000012938D101E010207047018842F6011226 +:106BA000881A914231D018DC42F60102A1EB0200B2 +:106BB00091422AD00CDC41B3B1F5C05F25D06FF40F +:106BC000C050081821D0A0F57060FF381BD11CE020 +:106BD00001281AD002280AD117E0B0F5807F14D01E +:106BE00008DC012811D002280FD003280DD0FF287F +:106BF00009D10AE0B0F5817F07D0A0F58070033895 +:106C000003D0012801D0002070470F2070470A28C8 +:106C10001ED007DC18D2DFE800F0191B1F1F171F5A +:106C2000231D1F21102815D008DC0B2812D00C289A +:106C300010D00D2816D00F2806D10DE011280BD04A +:106C400084280BD087280FD003207047002070477E +:106C500005207047072070470F20704704207047B9 +:106C6000062070470C20704743F20200704738B589 +:106C70000C46050041D06946FFF7A8F9002819D154 +:106C80009DF80010607861F3020060706946681C2E +:106C9000FFF79CF900280DD19DF80010607861F392 +:106CA000C5006070A978C1F34101012903D0022910 +:106CB00005D0072038BD217821F0200102E021789D +:106CC00041F020012170410704D0A978C90861F37F +:106CD00086106070607810F0380F07D0A978090925 +:106CE00061F3C710607010F0380F02D16078400671 +:106CF00003D5207840F040002070002038BD70B5EA +:106D000004460020088015466068FFF7B0FF0028A1 +:106D100016D12089A189884211D860688078C0077F +:106D20000AD0B1F5007F0AD840F20120B1FBF0F2A1 +:106D300000FB1210288007E0B1F5FF7F01D90C207D +:106D400070BD01F201212980002070BD10B50478CA +:106D5000137864F3000313700478640864F3410348 +:106D600013700478A40864F3820313700478E408B1 +:106D700064F3C30313700478240964F304131370D9 +:106D80000478640964F3451313700078800960F394 +:106D90008613137031B10878C10701D1800701D57E +:106DA000012000E0002060F3C713137010BD42788B +:106DB000530702D002F0070306E012F0380F02D0AA +:106DC000C2F3C20300E001234A7863F302024A706F +:106DD000407810F0380F02D0C0F3C20005E043073E +:106DE00002D000F0070000E0012060F3C5024A7005 +:106DF00070472DE9F04F95B00D00824612D0122158 +:106E000028461DF026FF4FF6FF7B05AA01215846B4 +:106E100006F04BFF0024264637464FF420586FF407 +:106E2000205972E0102015B0BDE8F08F9DF81E00CB +:106E300001280AD1BDF81C1041450BD011EB090007 +:106E40000AD001280CD002280CD0042C0ED0052C1E +:106E50000FD10DE0012400E00224BDF81A6008E023 +:106E6000032406E00424BDF81A7002E0052400E0C3 +:106E70000624BDF81A10514547D12C74BEB34FF00B +:106E8000000810AA4FF0070ACDE90282CDE900A858 +:106E90000DF13C091023CDF810904246314658467A +:106EA00006F0B6FF08BBBDF83C002A46C0B210A9E8 +:106EB0000BF05CFCC8B9AE81CFB1CDE900A80DF1F3 +:106EC000080C0AAE40468CE84102132300223946E2 +:106ED000584606F09DFF40B9BDF83C00F11CC01EAD +:106EE000C0B22A1D0BF042FC10B103209BE70AE060 +:106EF000BDF82900E881062C05D19DF81E00A87276 +:106F0000BDF81C00288100208DE705A806F0D9FEF9 +:106F100000288BD0FFF77BFE85E72DE9F0471C4664 +:106F2000DDE90978DDF8209015460E00824600D193 +:106F3000FFDF0CB1208818B1D5B11120BDE8F08772 +:106F4000022D01D0012100E0002106F1140005F01E +:106F50009BFDA8F8000002463B462946504603F038 +:106F6000BCF8C9F8000008B9A41C3C600020E5E7A3 +:106F70001320E3E7F0B41446DDE904528DB1002399 +:106F800014B1022C09D101E0012306E00D7CEE07CB +:106F900003D025F0010501230D742146F0BC03F058 +:106FA00025BF1A80F0BC70472DE9FE4F91461A8824 +:106FB0001C468A468046FAB102AB494603F08DF87A +:106FC000050019D04046A61C278809F091FF3246DB +:106FD000072629463B46009609F09FFB208823465A +:106FE000CDE900504A4651464046FFF7C3FF002016 +:106FF00020800120BDE8FE8F0020FBE72DE9F0474F +:1070000086B09146DDE90E460F46824603AA05A9E1 +:1070100004A8109D8DE80700984632462146504648 +:10702000FFF77BFF049909B1012200E000222A70DA +:10703000002818D1F94A03AB1060059A009104F1B9 +:107040001400CDE901204A463946504606F0D3F8EF +:10705000A8B1092811D2DFE800F005080510100AD0 +:107060000C0C0E00002006B068E71120FBE707209B +:10707000F9E70820F7E70D20F5E70320F3E7BDF86F +:107080000C100498CDE90001434632462146504693 +:10709000FFF770FFE6E72DE9F04389B00D46DDE923 +:1070A000108781461C461646142103A81DF0F3FDE7 +:1070B000012002218DF810108DF80C008DF8117050 +:1070C000ADF8146064B1A278D20709D08DF816002B +:1070D000E088ADF81A00A088ADF81800A068079005 +:1070E00008A80095CDE90110424603A948466B68FF +:1070F000FFF784FF09B0BDE8F083F0B58BB0002442 +:107100000646069407940727089405A80994019455 +:1071100000970294CDE903400D46102322463046E5 +:1071200006F076FE78B90AA806A9019400970294A1 +:10713000CDE90310BDF8143000222946304606F090 +:107140003DFC002801D0FFF762FD0BB0F0BD06F05A +:10715000DDBA2DE9FC410C468046002602F05EF9BE +:10716000054620780D287DD2DFE800F0BC0713B378 +:1071700025BD49496383AF959B00A848006820B1AD +:10718000417841F010014170ADE0404602F076F9DF +:10719000A9E00421404609F067FD070000D1FFDFA8 +:1071A00007F11401404605F003FCA5BB132140463E +:1071B000FDF746FC97E00421404609F055FD070025 +:1071C00000D1FFDFE088ADF800000020B8819DF815 +:1071D0000000010704D5C00602D5A088B88105E0EB +:1071E0009DF8010040067ED5A088F88105B9FFDF33 +:1071F00022462946404601F063FC022673E0E188FE +:10720000ADF800109DF8011009060FD5072803D02E +:1072100006280AD00AE024E00421404609F024FDB3 +:10722000060000D1FFDFA088F0810226CDB9FFDF84 +:1072300017E00421404609F017FD070000D1FFDFE9 +:1072400007F1140006F099FA90F0010F02D1E079ED +:10725000000648D5387C022640F00200387405B993 +:10726000FFDF00E03EE022462946404601F028FCD0 +:1072700039E00421404609F0F7FC017C002D01F0C3 +:107280000206C1F340016171017C21F00201017429 +:10729000E7D1FFDFE5E702260121404602F020F9B1 +:1072A00021E00421404609F0DFFC054660680090BB +:1072B0002089ADF8040001226946404602F031F908 +:1072C000287C20F0020028740DE0002DC9D1FFDFDA +:1072D000C7E7022600214046FBF784F8002DC0D105 +:1072E000FFDFBEE7FFDF3046BDE8FC813EB50C00A6 +:1072F00009D001466B4601AA002006F00BFE20B122 +:10730000FFF785FC3EBD10203EBD00202080A07010 +:107310009DF8050002A900F00700FEF773FE50B9C2 +:107320009DF8080020709DF8050002A9C0F3C20076 +:10733000FEF768FE08B103203EBD9DF808006070AE +:107340009DF80500C109A07861F30410A0709DF8B4 +:107350000510890961F3C300A0709DF80410890627 +:1073600001D5022100E0012161F342009DF80010E7 +:1073700061F30000A07000203EBD70B514460646C3 +:107380000D4651EA040005D075B108460DF05CF9D0 +:1073900078B901E0072070BD2946304606F01BFE93 +:1073A00010B1BDE8704032E454B120460DF04CF904 +:1073B00008B1102070BD21463046BDE8704095E709 +:1073C000002070BD2DE9FC5F0C4690460546002765 +:1073D00001780822007A3E46B2EB111F7ED104F1FB +:1073E0000A0100910A31821E4FF0020A04F1080BD3 +:1073F0000191092A73D2DFE802F0ECDF05F42727B8 +:107400007AA9CD006888042109F02EFC060000D17D +:10741000FFDFB08920B152270726C2E07C0200209E +:1074200051271026002C7DD06888A0800120A071F3 +:10743000A88900220099FFF7A0FF002873D1A8892E +:107440002081288AE081D1E0B5F81290072824D164 +:10745000E87B000621D5512709F1140086B2002CE3 +:10746000E1D0A88900220099FFF787FF00285AD1B0 +:107470006888A08084F806A0A88920810120A073D4 +:10748000288A2082A4F81290A88A009068884B4627 +:10749000A969019A01F0F1FAA8E0502709F1120058 +:1074A00086B2002C3ED0A88900225946FFF765FF1E +:1074B000002838D16888A080A889E080287A072829 +:1074C00013D002202073288AE081E87BC009607312 +:1074D000A4F81090A88A0090688801E083E080E01A +:1074E0004B4604F11202A969D4E70120EAE7B5F896 +:1074F0001290512709F1140086B2002C66D06888DA +:10750000042109F0B1FB83466888A080A889002285 +:107510000099FFF732FF00286ED184F806A0A889F1 +:10752000208101E052E067E00420A073288A2082D5 +:10753000A4F81290A88A009068884B46A969019A1D +:1075400001F09BFAA989ABF80E104FE06888FBF7B1 +:1075500082FF07466888042109F086FB064607B9C2 +:10756000FFDF06B9FFDF687BC00702D05127142672 +:1075700001E0502712264CB36888A080502F06D017 +:1075800084F806A0287B594601F087FA2EE0287B74 +:10759000A11DF9E7FE49A8894989814205D15427EF +:1075A00006269CB16888A08020E053270BE06888FD +:1075B000A080A889E08019E06888042109F054FBC4 +:1075C00000B9FFDF55270826002CF0D1A8F800608D +:1075D00011E056270726002CF8D06888A0800020EC +:1075E00013E0FFDF02E0012808D0FFDFA8F8006009 +:1075F0000CB1278066800020BDE8FC9F5727072636 +:10760000002CE3D06888A080687AA071EEE7401D66 +:1076100020F0030009B14143091D01EB4000704710 +:1076200013B5DB4A00201071009848B10024684669 +:1076300009F037F9002C02D1D64A009911601CBD1F +:1076400001240020F4E770B50D46064686B01446C6 +:107650005C2128461DF01FFB04B9FFDFA078687489 +:10766000A2782188284601F042FA0020A881E8810A +:10767000228805F11401304605F07FF96A460121A0 +:10768000304606F012FB19E09DF80300000715D5FF +:10769000BDF806103046FFF730FD9DF80300BDF839 +:1076A000061040F010008DF80300BDF80300ADF89F +:1076B0001400FF233046059A06F058FC684606F091 +:1076C00000FB0028E0D006B070BD10B50C4601F1FB +:1076D000140005F089F90146627C2046BDE810409F +:1076E00001F03ABA70B50546042109F0BDFA04006C +:1076F00000D1FFDF04F114010C46284605F058F9CB +:1077000021462846BDE8704005F059B970B58AB0E9 +:107710000C460646FBF79FFE050014D02878222869 +:1077200027D30CB1A08890B101208DF80C00032064 +:107730008DF8100000208DF8110054B1A088ADF82C +:107740001800206807E043F202000AB070BD09206B +:10775000FBE7ADF8180005900421304609F084FAE3 +:10776000040000D1FFDF04F1140005F054F9000714 +:1077700001D40820E9E701F051FE60B108A8022118 +:107780000094CDE9011095F8232003A930466368E1 +:10779000FFF734FCD9E71120D7E72DE9F04FB2F815 +:1077A00002A0834689B0154689465046FBF753FE32 +:1077B00007460421504609F057FA0026044605966C +:1077C0004FF002080696ADF81C6007B9FFDF04B958 +:1077D000FFDF4146504603F070FE50B907AA06A9E4 +:1077E00005A88DE807004246214650466368FFF72A +:1077F00094FB674807AB0660DDE9051204F114004D +:10780000CDF80090CDE90320CDE9013197F8232090 +:10781000594650466B6805F047F906000AD0022E1B +:1078200004D0032E14D0042E00D0FFDF09B0304660 +:10783000BDE8F08FBDF81C000028F7D00599CDE910 +:1078400000104246214650466368FFF793FBEDE780 +:10785000687840F008006870E8E72DE9F04F9BB0C9 +:1078600004464FF000084A48ADF85480ADF8308027 +:10787000ADF85080A0F80880ADF81480ADF81880FD +:10788000ADF82080ADF81C80007916460D464746BD +:10789000012808D0022806D0032804D0042802D0EA +:1078A00008201BB0C4E720460CF08AFED0BB284657 +:1078B0000CF086FEB0BB60680CF0CFFE90BB606839 +:1078C00048B160892189884202D8B1F5007F01D989 +:1078D0000C20E6E780460BAA06A92846FFF70FFA18 +:1078E0000028DED168688078C0F34100022808D102 +:1078F0009DF8190010F0380F03D028690CF0A4FE91 +:1079000080B905A92069FFF7B2F90028C9D120691B +:1079100050B1607880079DF8150000F0380002D55E +:10792000D0B301E011E0B8BB9DF8140080060ED57D +:107930009DF8150010F0380F03D060680CF084FE3D +:1079400018B960680CF089FE08B11020A9E707A9F2 +:107950006069FFF78CF90028A3D1606940B19DF8F8 +:107960001D0000F0070101293FD110F0380F3CD075 +:1079700008A9A069FFF77BF9002892D19DF81C00A7 +:10798000800632D49DF8200080062ED4A06904E041 +:107990007C0200201400002027E040B19DF8210067 +:1079A00000F00701012920D110F0380F1DD0E06848 +:1079B00018B10078C8B11C2817D20EAA611C204645 +:1079C000FFF7C4F90120B94660F30F27BA4607460E +:1079D0008DF84E0042F60300ADF84C000DF13B026D +:1079E00017A928680AF0E1FE08B1072059E79DF8B9 +:1079F0005C0016A9CDF80090C01CCDE9019100F003 +:107A0000FF0B00230BF20122514613A806F090F859 +:107A1000F0BBBDF858000990FE482A8929690092F8 +:107A2000CDE901106B89BDF82C202868069906F075 +:107A30007FF801007ED120784FF0020AC10601D400 +:107A400080062BD5ADF80C90606950B907A906A83F +:107A5000FFF7ADF99DF81D0020F00700401C8DF8E0 +:107A60001D009DF81C008DF84E7040F0C8008DF888 +:107A70001C0042F60210ADF84C000CA903AACDF888 +:107A800000A0CDE90121002340F2032213A800E069 +:107A90001EE0079906F04CF801004BD1DD484D4639 +:107AA00008385B460089ADF839000EA8CDE9029090 +:107AB000CDF80490CDF810904FF007090022CDF8D2 +:107AC0000090BDF858104FF6FF7005F077FF10B129 +:107AD000FFF79DF8E5E69DF83800000625D5294614 +:107AE000012060F30F218DF84E704FF42450ADF853 +:107AF0004C00ADF8105062789DF81000002362F33E +:107B000000008DF810006278CDF800A0520862F3F2 +:107B100041008DF8100004AACDE9012540F20322AE +:107B200013A806F005F8010004D1606888B3206945 +:107B3000A8B900E086E005A906A8FFF738F9607843 +:107B4000800706D49DF8150020F038008DF8150048 +:107B500005E09DF8140040F040008DF814008DF809 +:107B60004E7042F60110ADF84C00208940F2012120 +:107B7000B0FBF1F201FB1202606814ABCDF800809B +:107B8000CDE90103002313A8059905F0D1FF0100F9 +:107B900058D12078C00729D0ADF80C50A06950B951 +:107BA00008A906A8FFF703F99DF8210020F00700B7 +:107BB000401C8DF821009DF820008DF84E7040F09B +:107BC00040008DF8200042F60310ADF84C0015A9D6 +:107BD00003AACDF800A0CDE90121002340F2032241 +:107BE00013A8089905F0A4FF01002BD1E06868B341 +:107BF0002946012060F30F218DF84E7042F60410E3 +:107C0000ADF84C00E068002302788DF860204078E1 +:107C10008DF86100E06818AA4088ADF86200E0685D +:107C200000798DF86400E068C088ADF86500CDF893 +:107C30000090CDE901254FF4027213A805F078FFFA +:107C4000010003D0099800F0B3FF2AE67148032130 +:107C50000838017156B100893080BDF8500070803D +:107C6000BDF83000B080BDF85400F080002018E668 +:107C700070B501258AB016460B46012802D00228AD +:107C800016D104E08DF80E504FF4205003E08DF82B +:107C90000E5042F60100ADF80C005BB10024601CF0 +:107CA00060F30F2404AA08A918460AF07EFD18B153 +:107CB00007204AE5102048E504A99DF820205548F2 +:107CC000CDE90021801E02900023214603A802F284 +:107CD000012205F02DFF10B1FEF799FF35E54D4863 +:107CE00008380EB1C1883180057100202DE5F0B54E +:107CF00093B0074601268DF83E6041F60100ADF8CD +:107D00003C0012AA0FA93046FFF7B2FF002848D165 +:107D1000404C0025083CE7B31C2102A81CF0BBFF27 +:107D20009DF808008DF83E6040F020008DF80800B6 +:107D300042F60520ADF83C000E959DF83A001195ED +:107D400020F00600801C8DF83A009DF838006A4645 +:107D500020F0FF008DF838009DF8390009A920F0C7 +:107D6000FF008DF839000420ADF82C00ADF830008C +:107D70000EA80A9011A80D900FA80990ADF82E50EA +:107D800002A8FFF76AFD00280BD1BDF80000608152 +:107D900000E008E0BDF80400A081401CE0812571EE +:107DA000002013B0F0BD6581A581BDF84800F4E75F +:107DB0002DE9F74F1749A0B00024083917940A7924 +:107DC000A146012A04D0022A02D0082023B02FE5C0 +:107DD000CA88824201D00620F8E721988A4682426A +:107DE00001D10720F2E701202146ADF848004FF607 +:107DF000FF7860F30F21ADF84A808DF86E0042F6EF +:107E0000020B06918DF87240ADF86CB0ADF8704081 +:107E10001CA901E0840200201391ADF8508012A843 +:107E200005F073FF00252E462F460DAB072212A941 +:107E3000404605F06DFF78B10A285DD195B38EB349 +:107E4000ADF86450ADF866609DF85E008DF81440A2 +:107E500019AC012864D06BE09DF83A001FB30128EB +:107E600059D1BDF8381059451FD118A809A9019456 +:107E70000294CDE9031007200090BDF836101023BE +:107E80000022404605F0C4FFB0BBBDF860000428E6 +:107E900001D006284AD1BDF82410219881423AD158 +:107EA0000F2093E73AE0012835D1BDF83800B0F54E +:107EB000205F03D042F6010188422CD1BAF80600B7 +:107EC000BDF83610884201D1012700E0002705B136 +:107ED0009EB1219881421ED118A809AA019402944A +:107EE000CDE90320072000900D46102300224046D4 +:107EF00005F08EFF00B902E02DE04E460BE0BDF824 +:107F00006000022801D0102810D1C0B217AA09A918 +:107F10000AF02CFC50B9BDF8369086E7052055E7ED +:107F200005A917A8221D0AF040FC08B103204DE75F +:107F30009DF814000023001DC2B28DF81420229871 +:107F40000092CDE901401BA8069905F0F1FD10B99A +:107F500002228AF80420FEF75AFE37E710B50B46D6 +:107F6000401E88B084B205AA00211846FEF7EEFE36 +:107F700000200DF1080C06AA05A901908CE8070065 +:107F8000072000900123002221464FF6FF7005F0E4 +:107F900015FD0446BDF81800012800D0FFDF20467B +:107FA000FEF735FE08B010BDF0B5FF4F044687B0B0 +:107FB00038790E46032804D0042802D0082007B0E0 +:107FC000F0BD04AA03A92046FEF799FE0500F6D1EC +:107FD00060688078C0F3410002280AD19DF80D0046 +:107FE00010F0380F05D020690CF02EFB08B11020DE +:107FF000E5E7208905AA21698DE807006389BDF8B6 +:1080000010202068039905F093FD10B1FEF7FFFDE5 +:10801000D5E716B1BDF81400308004203871284629 +:10802000CDE7F8B50C0006460BD001464FF6FF75BC +:1080300000236A46284605F06DFF20B1FEF7E7FDF4 +:10804000F8BD1020F8BD69462046FEF710FE002856 +:10805000F8D1A078314600F001032846009A05F0D7 +:1080600085FFEBE730B587B0144600220DF1080C10 +:1080700005AD01928CE82C00072200920A460146C9 +:1080800023884FF6FF7005F099FCBDF8141021808D +:10809000FEF7BDFD07B030BD70B50D46042108F0F8 +:1080A000E3FD040000D1FFDF294604F11400BDE820 +:1080B000704004F0A9BC70B50D46042108F0D4FD51 +:1080C000040000D1FFDF294604F11400BDE8704030 +:1080D00004F0BDBC70B50D46042108F0C5FD0400D8 +:1080E00000D1FFDF294604F11400BDE8704004F020 +:1080F000D5BC70B50546042108F0B6FD040000D1DA +:10810000FFDF214628462368BDE870400122FEF7C4 +:108110004BBF70B50646042108F0A6FD040000D14F +:10812000FFDF04F1140004F05FFC401D20F00305A4 +:1081300011E0011D00880022431821463046FEF759 +:1081400033FF00280BD0607CABB2684382B2A068DA +:10815000011D08F046FCA06841880029E9D170BDE6 +:1081600070B50546042108F07FFD040000D1FFDF53 +:10817000214628466368BDE870400222FEF714BF1E +:1081800070B50E46054601F049F9040000D1FFDF45 +:108190000120207266726580207820F00F00001D9B +:1081A00020F0F00040302070BDE8704001F039B997 +:1081B00010B50446012900D0FFDF2046BDE810407D +:1081C0000121FAF70FB92DE9F04F97B04FF0000AEF +:1081D0000C008346ADF814A0D04619D0E06830B149 +:1081E000A068A8B10188ADF81410A0F800A0584606 +:1081F000FBF731F9070043F2020961D038782228F1 +:108200005CD30421584608F02FFD050005D103E09A +:10821000102017B0BDE8F08FFFDF05F1140004F067 +:10822000E3FB401D20F00306A078012803D00228BC +:1082300001D00720EDE7218807AA584605F035FD53 +:1082400030BB07A805F03DFD10BB07A805F039FDC0 +:1082500048B99DF82600012805D1BDF82400A0F5F5 +:108260002451023902D04FF45050D2E7E068B0B147 +:10827000CDE902A00720009005AACDF804A0049241 +:10828000A2882188BDF81430584605F097FB10B13C +:10829000FEF7BDFCBDE7A168BDF8140008809DF89D +:1082A0001F00C00602D543F20140B2E70B9838B177 +:1082B000A1780078012905D080071AD40820A8E702 +:1082C0004846A6E7C007F9D002208DF83C00A86810 +:1082D0004FF00009A0B1697C4288714391420FD9E7 +:1082E0008AB2B3B2011D08F032FB8046A0F800A0AC +:1082F00006E003208DF83C00D5F800804FF001091E +:108300009DF8200010F0380F00D1FFDF9DF820000D +:108310002649C0F3C200084497F8231010F8010C56 +:10832000884201D90F2074E72088ADF8400014A9D5 +:108330000095CDE90191434607220FA95846FEF763 +:108340005DFE002891D19DF8500050B9A078012819 +:1083500007D1687CB3B2704382B2A868011D08F0EF +:108360000AFB002055E770B5064615460C46084640 +:10837000FEF70CFC002805D12A4621463046BDE810 +:10838000704075E470BD13E570B51E4614460D00CF +:108390000ED06CB1616859B160B10349C98881429E +:1083A00008D0072070BD00007C020020FA2F0000DA +:1083B0001020F7E72068FEF7E9FB0028F2D13246EB +:1083C00021462846BDE87040FFF747BA70B515460C +:1083D0000C0006D038B1FE490989814203D007203C +:1083E000E0E71020DEE72068FEF7D0FB0028D9D1B7 +:1083F00029462046BDE87040D6E570B5064686B0F1 +:108400000D46144610460CF001F9D0BB60680CF024 +:1084100024F9B0BBA6F57F40FF3803D03046FBF708 +:108420001AF880B128466946FEF7E3FC00280CD113 +:108430009DF810100F2008293CD2DFE801F0080653 +:108440000606060A0A0843F2020006B0AAE703205D +:10845000FBE79DF80210012908D1BDF80010B1F525 +:10846000C05FF2D06FF4C052D142EED09DF806103A +:1084700001290DD1BDF80410A1F52851062907D214 +:1084800000E028E0DFE801F0030304030303DCE776 +:108490009DF80A1001290ED1BDF80810B1F5245F2E +:1084A000D3D0A1F524510239CFD00129CDD0022952 +:1084B00001D1CAE7FFDF606878B9002305AA294621 +:1084C000304605F027FD10B1FEF7A1FBBDE79DF892 +:1084D0001400800601D41020B7E7618822462846A0 +:1084E0006368FFF7BFFDB0E72DE9F043814687B031 +:1084F0008846144610460CF089F818B1102007B0D1 +:10850000BDE8F083002306AA4146484605F002FD77 +:1085100018B100BFFEF77BFBF1E79DF81800C0061D +:1085200002D543F20140EAE70025072705A8019597 +:1085300000970295CDE9035062884FF6FF734146DC +:10854000484605F065FC060013D160680CF05EF843 +:1085500060B960680195CDE90250009704952388C1 +:1085600062884146484605F053FC0646BDF81400B3 +:1085700020803046CEE739B1954B0A889B899A42D4 +:1085800002D843F2030070471DE610B586B0904C48 +:108590000423ADF81430638943B1A4898C4201D21D +:1085A000914205D943F2030006B010BD0620FBE757 +:1085B000ADF81010002100910191ADF800300221BA +:1085C0008DF8021005A9029104A90391ADF81220BB +:1085D0006946FFF7F8FDE7E72DE9FC4781460E46BF +:1085E00008460BF0EDFF88BB4846FAF734FF5FEA18 +:1085F00000080AD098F80000222829D30421484610 +:1086000008F032FB070005D103E043F20200BDE8A9 +:10861000FC87FFDF07F1140004F0FDF90546307810 +:10862000012803D0022804D00720F0E7A8070FD5BF +:1086300002E015F01C0F0BD0B079341DC00709D033 +:10864000E08838B1A0680BF0BBFF18B11020DEE75E +:108650000820DCE732782088002628B3A0F2011336 +:108660000721112B18D20CD2DFE803F00B090D0BF8 +:108670001D0B121D100B0B1D1D1D1D0B1D00022AB5 +:1086800011D10846C3E7012AFBD00CE02A0700E01D +:10869000EA06002AF5DA06E0A0F5C0721F2A02D920 +:1086A0007D3A022AEDD8C6B200F0B8FE50B198F873 +:1086B0002300CDE90006FA89234639464846FEF7ED +:1086C000EAFCA4E71120A2E72DE9F04F8BB01F468A +:1086D00015460C4683460026FAF7BDFE28B1007801 +:1086E000222805D208200BB094E543F20200FAE7F5 +:1086F000B80801D00720F6E7032F00D100274FF676 +:10870000FF79CCB1022D73D320460BF0A6FF30B910 +:1087100004EB0508A8F101000BF09FFF08B1102041 +:10872000E1E7AD1EAAB22146484605F09DFC38F8A7 +:10873000021C88425CD1ADB22549B80702D58889B0 +:10874000401C00E001201FFA80F8F80701D08F8953 +:1087500000E04F4605AA4146584605F0A6FA4FF0FC +:10876000070A4FF00009ACB3204608E04088102803 +:108770003ED8361D304486B2AE4239D2A0190288A6 +:108780004245F3D354E000BF9DF8170002074FD5D0 +:1087900084B304EB0608361DB8F80230B6B2102BCD +:1087A00026D89A19AA4223D8B8F8002091421FD19E +:1087B000C00620D5CDE900A90DF1080C0AAAA1191F +:1087C00048468CE80700B8F800100022584603E03D +:1087D0007C0200202CE00BE005F0F0F810B1FEF771 +:1087E00016FA80E7B8F80200BDF82810884202D0D7 +:1087F0000B2078E704E0B8F80200304486B206E0C7 +:10880000C00604D55846FEF778FC002888D19DF8AC +:108810001700BDF81A1020F010008DF81700BDF8F1 +:108820001700ADF80000FF235846009A05F09EFBA4 +:1088300005A805F046FA18B9BDF81A10B942A3D92F +:108840000421584608F010FA040000D1FFDFA28985 +:108850005AB1CDE900A94D46002321465846FEF7FE +:108860001AFC0028BDD1A5813DE700203BE72DE99A +:10887000FF4F8BB01E4617000D464FF0000412D07C +:10888000B00802D007200FB0C4E4032E00D10026A8 +:108890005DB108460BF0D8FE28B93888691E084437 +:1088A0000BF0D2FE08B11020EDE7C74AB00701D5A2 +:1088B000D18900E00121F0074FF6FF7802D0D0897E +:1088C000401E00E0404686B206AA0B9805F0EDF97E +:1088D0004FF000094FF0070B0DF1140A39E000BF0B +:1088E0009DF81B00000734D5CDF80490CDF800B0FA +:1088F000CDF80890CDE9039A434600220B9805F085 +:1089000087FA60BB05B3BDF814103A8821442819D2 +:10891000091D8A4230D3BDF81E2020F8022BBDF875 +:10892000142020F8022BCDE900B9CDE90290CDF852 +:1089300010A0BDF81E10BDF8143000220B9805F0F1 +:1089400067FA08B103209EE7BDF814002044001D1B +:1089500084B206A805F0B5F920B10A2806D0FEF7C2 +:1089600056F990E7BDF81E10B142B9D934B17DB1C6 +:108970003888A11C884203D20C2084E7052082E7B6 +:1089800022462946404605F06FFB01462819018022 +:10899000A41C3C80002076E710B504460BF036FEA0 +:1089A00008B1102010BD8848C0892080002010BD6B +:1089B000F0B58BB00D460646142103A81CF06BF9E8 +:1089C00001208DF80C008DF8100000208DF81100AA +:1089D000ADF814503046FAF73EFD48B10078222831 +:1089E00012D30421304608F03FF9040005D103E01A +:1089F00043F202000BB0F0BDFFDF04F114000746A4 +:108A000004F009F8800601D40820F3E7207C022155 +:108A100040F00100207409A80094CDE9011007225C +:108A200003A930466368FEF7E9FA20B1217C21F002 +:108A300001012174DEE729463046F9F7C4FC08A994 +:108A4000384603F0D7FF00B1FFDFBDF82040172CF8 +:108A500001D2172000E02046A84201D92C4602E0AE +:108A6000172C00D2172421463046FFF724FB21465D +:108A70003046F9F7CEF90020BCE7F8B51C4615469C +:108A80000E46069F08F022FA2346FF1DBCB231466F +:108A90002A46009407F00DFEF8BD70B50C46054659 +:108AA0000E2120461CF0D5F8002020802DB1012D8C +:108AB00001D0FFDF76E4062000E00520A07171E41C +:108AC00010B548800878134620F00F00001D20F0F4 +:108AD000F00080300C4608701422194604F108009A +:108AE0001CF07DF800F09DFC3748046010BD2DE9B6 +:108AF000F047DFF8D890491D064621F003011746DC +:108B00000C46D9F8000007F0EAFE050000D1FFDFAF +:108B10004FF000083560A5F800802146D9F8000024 +:108B200007F0DDFE050000D1FFDF7560A5F80080CD +:108B30007FB104FB07F1091D0BD0D9F8000007F045 +:108B4000CEFE040000D1FFDFB460C4F80080BDE8B1 +:108B5000F087C6F80880FAE72DE9F0411746491D6D +:108B600021F00302194D064601681446286807F0F3 +:108B7000E1FE22467168286807F0DCFE3FB104FB85 +:108B800007F2121D03D0B168286807F0D3FE042055 +:108B900008F012F80446042008F016F8201A0128FC +:108BA00004D12868BDE8F04107F08EBEBDE8F08131 +:108BB00010B50C4605F045F800B1FFDF2046BDE8D2 +:108BC0001040FEF724B800007C02002014000020B2 +:108BD00038B50C468288817B19B14189914200D910 +:108BE0000A462280C188121D90B26A4607F06DF9CC +:108BF000BDF80000032800D30320C1B2208800F094 +:108C0000A3FF38BD38B50C468288817B19B1018934 +:108C1000914200D90A462280C188121D90B26A464C +:108C200007F053F9BDF80000022800D30220C1B2BA +:108C3000208800F089FF401CC0B238BD2DE9FE4FEE +:108C40000C46FD4981464022D1E90201CDE90101EE +:108C500009F1030020F00301C91C21F00301009178 +:108C60006846114607F01DFEF44E002C02D1F44A6E +:108C700000999160009901440091357F05F101054B +:108C800004D1E8B209F018FD00B1FFDF009800EB55 +:108C90000510C01C20F0030100915CB9707AB27A13 +:108CA0001044C2B200200870308C80B204F051FE33 +:108CB00000B1FFDF0098316A084400902146684601 +:108CC00000F00DFF0098C01C20F003000090B37A64 +:108CD000F27A717A04B1002007F0D9FE00990844B5 +:108CE00000902146684600F03AFF00273D46B24614 +:108CF00096F801800CE0284600F0D4FE0646817804 +:108D00008088F9F71DF971786D1C00FB0177EDB2D1 +:108D10004545F0D10098C01C20F00300009004B13C +:108D200000203946F9F717F9009900270844009008 +:108D30003D469AF801800CE0284600F0B3FE064656 +:108D4000C1788088FEF763FC71786D1C00FB0177A9 +:108D5000EDB24545F0D10098C01C20F00300009012 +:108D600004B100203946FEF75BFC00994FF0000883 +:108D70000844009045469AF801700EE0284600F03D +:108D800091FE0646807B30B106F1080001F0DDFE61 +:108D9000727800FB02886D1CEDB2BD42EED10098E6 +:108DA000C01C20F00300009004B10020414601F0F7 +:108DB000D0FE0099084400902146684600F049FE24 +:108DC0000098C01D20F0070200922CBB9D49002096 +:108DD000FAF743F8FBF713FB984801AA002110307B +:108DE000F8F7CAFA00B1FFDF9AF81D00FEF77FFF1F +:108DF00000B1FFDF91484FF4F67144301BF04BFF98 +:108E00008E480421443080F8E91180F8EA110621E7 +:108E100080F8EB11032101710099A1EB0900BDE875 +:108E2000FE8F70B5854C06464434207804EB40151F +:108E3000E078083590B9A01990F8E80100280ED024 +:108E4000A0780F2800D3FFDF202128461BF023FF46 +:108E5000687866F3020068700120E070284670BDF3 +:108E60002DE9F04105460C46002700780521904683 +:108E70003E46B1EB101F00D0FFDF287A50B1012829 +:108E80000ED0FFDFA8F800600CB1278066800020BC +:108E9000BDE8F0810127092674B16888A08008E048 +:108EA0000227142644B16888A0802869E060A88A57 +:108EB0002082287B2072E5E7A8F80060E7E710B57C +:108EC0005F4C6068C11D21F00701814200D0FFDFC7 +:108ED0005A4801210022017042700172417203233D +:108EE0008372C17202730274052202831F224283BD +:108EF000417455A242610A22027741774FF4B06172 +:108F000001626168416010BD30B54D4C1568636801 +:108F100010339D4202D20420136030BD474B5D7870 +:108F20005A6802EB0512107051700320D080172090 +:108F300090800120D0709070002090735878401C71 +:108F40005870606810306060002030BD70B5064613 +:108F50003A480024457807E0204600F0A3FD017858 +:108F6000B14204D0641CE4B2AC42F5D1002070BD23 +:108F7000F7B5074608780C4610B3FFF7E7FF05463C +:108F8000A7F12006202F06D0052E19D2DFE806F023 +:108F90000F2B2B151A0000F090FD0DB1697800E041 +:108FA0000021401AA17880B20844FF2808D8A07890 +:108FB00030B1A088022824D202E06088172820D28D +:108FC0000720FEBD207AE0B161881729F8D3A18877 +:108FD0001729F5D3A1790029F2D0E1790029EFD042 +:108FE000402804D9ECE7242F0BD1207A48B16188BE +:108FF0004FF6FB70814202D8A188814201D904203A +:10900000FEBD65B9207802AA0121FFF77DFF002887 +:10901000F6D12078FFF79AFF050000D1FFDF052E7B +:1090200025D2DFE806F003181B151E00A078687033 +:10903000A088E8801CE00000545002009803002043 +:109040001C000020000000206E5246357800000011 +:109050006088A8800CE0A078A87009E0A078E8708B +:1090600006E054F8020FA8606068E86000E0FFDFE7 +:109070000020FEBD1A2835D00DDC132832D2DFE8DF +:1090800000F01B31203131272723252D31312931A3 +:109090003131312F0F00302802D003DC1E2821D1BE +:1090A000072070473A3809281CD2DFE800F0151B6A +:1090B0000F1B1B1B1B1B07000020704743F2040003 +:1090C000704743F202007047042070470D2070473C +:1090D0000F207047082070471120704713207047F9 +:1090E000062070470320704710B5007800F001009B +:1090F00006F0E2FEBDE81040BCE70EB5017801F0D5 +:1091000001018DF80010417801F001018DF8011086 +:109110000178C1F340018DF802104178C1F340019C +:109120008DF80310017889088DF8041041788908BA +:109130008DF8051081788DF80610C1788DF807102C +:1091400000798DF80800684605F0DDFAFFF792FF18 +:109150000EBD2DE9F84FDFF8F883FE4C00261FE026 +:10916000012000F03FFD0120FFF75BFE0546402196 +:109170004746D8F8080007F0B2FB686000B9FFDF87 +:10918000686805F06EF8A8B12846FAF758FC28463A +:1091900000F02EFD20B940226968B86807F0CAFBCC +:1091A00094F9E9010428DBDA022007F005FD0746FF +:1091B0000025A6E040226968D8F8080007F0BAFB4D +:1091C000F2E7B8F802104046491C89B2A8F802102C +:1091D000B94201D3002141800221B8F8020007F012 +:1091E00043FD002865D0B8F80200694606F0CBFDC3 +:1091F000FFF740FF00B1FFDF9DF8000078B1B8F83D +:10920000020007F075FE5FEA000900D1FFDF484663 +:1092100007F0E3F818B1B8F8020002F03DF9B8F829 +:10922000020007F053FE5FEA000900D1FFDF484665 +:1092300007F0CBF8E8BB0321B8F8020007F014FDF3 +:109240005FEA000B48D1FFDF46E000BFDBF810000B +:1092500010B10078FF2849D0022000F0C3FC0220A2 +:10926000FFF7DFFD8246484607F0BBF9CAF8040065 +:1092700000B9FFDFDAF8040007F083FA002100905C +:109280000170B8F802105046AAF8021001F00AFE68 +:10929000484607F078FA00B9FFDF504600F0A8FC16 +:1092A00018B99AF80100000704D50099CBF81010FE +:1092B00012E024E0DBF8100038B10178491C11F00D +:1092C000FF01017008D1FFDF06E000221146484689 +:1092D00000F0BDFB00B9FFDF94F9EA01022805DBCD +:1092E000B8F8020001F0A3FD0028AFD194F9E9011C +:1092F000042804DB484607F0AAFA00B101266D1CD9 +:10930000EDB2BD4204D294F9EA010228BFF659AF8A +:10931000002E7FF423AFBDE8F84F032000F062BCBD +:1093200010B58B4CE06008682061AFF2D91002F0F4 +:1093300042FD607010BD87480021443801708448A8 +:10934000017085494160704770B505464FF0805007 +:109350000C46D0F8A410491C05D1D0F8A810C94378 +:109360000904090C0BD050F8A01F01F0010129706D +:10937000416821608068A080287830B970BD0621DE +:1093800020460AF0F8FD01202870607940F0C00006 +:10939000607170BD70B54FF080540D46D4F88010E8 +:1093A000491C0BD1D4F88410491C07D1D4F888107B +:1093B000491C03D1D4F88C10491C0CD0D4F880106F +:1093C0000160D4F884104160D4F888108160D4F82A +:1093D0008C10C16002E010210AF0CDFDD4F890009D +:1093E000401C0BD1D4F89400401C07D1D4F898004D +:1093F000401C03D1D4F89C00401C09D054F8900FB5 +:10940000286060686860A068A860E068E86070BD77 +:109410002846BDE8704010210AF0ADBD4D480079E6 +:10942000FFE470B54B4CE07830B3207804EB40108B +:10943000407A00F00700204490F9E801002800DCA1 +:10944000FFDF2078002504EB4010407A00F0070091 +:10945000011991F8E801401E81F8E8012078401CCC +:10946000C0B220700F2800D12570A078401CA070D9 +:109470000AF0E4FCE57070BDFFDF70BD3EB5054647 +:10948000032107F0F1FB0446284607F01FFD0546BF +:1094900004B9FFDF206918B10078FF2800D1FFDF91 +:1094A00001AA6946284600F0D2FA60B9FFDF0AE057 +:1094B000002202A9284600F0CAFA00B9FFDF9DF891 +:1094C000080000B1FFDF9DF80000411E8DF800107C +:1094D000EED220690199884201D1002020613EBD71 +:1094E00070B50546A0F57F400C46FF3800D1FFDF80 +:1094F000012C01D0FFDF70BDFFF790FF040000D109 +:10950000FFDF207820F00F00401D20F0F0005030E9 +:10951000207065800020207201202073BDE870401B +:109520007FE72DE9F04116460D460746FFF776FF27 +:10953000040000D1FFDF207820F00F00401D20F054 +:10954000F00050302070678001202072286805E00C +:109550001C000020DC030020C81400202061A88823 +:10956000A0822673BDE8F0415BE77FB5FFF7EEFC14 +:10957000040000D1FFDF02A92046FFF729FB0546C2 +:1095800003A92046FFF73EFB8DF800508DF801003F +:10959000BDF80800001DADF80200BDF80C00001D6C +:1095A000ADF80400E088ADF80600684606F066FCF9 +:1095B000002800D0FFDF7FBD2DE9F047DFF8FC93E6 +:1095C0000546002799F8000010B10820BDE8F08793 +:1095D00028460BF01BF808B11020F7E7F84C20786C +:1095E00008B9FFF76CFCA07A617A0844C6B200F0B3 +:1095F00064FAB04207D2301AC1B22A460020FFF7FF +:1096000083FC0700E2D1D9F804004E46C01C20F0CC +:109610000300C9F8040000F040FB716800EB01088A +:1096200001214046FFF70AFB06462968404488426C +:1096300002D8B6F5803F15D328600020FFF786FCDE +:1096400005000DD005F11300D9F8041020F0030037 +:109650004E46884200D0FFDF6078401E6070756023 +:109660000420B3E700214046FFF7E8FA0446A6428B +:1096700000D0FFDF04EB0801C9F8041029604FF6A1 +:10968000FF71A9F80210012189F8001038469DE702 +:109690002DE9F0410446C94817460E46007810B13E +:1096A0000820BDE8F08108460AF08AFF08B11020C2 +:1096B000F7E7C34D287808B9FFF701FC601E1E28A4 +:1096C00007D8012C22D13078FE281FD82877002017 +:1096D000E7E7A4F120001F2805D8E0B23A4631465A +:1096E000BDE8F04144E4A4F140001F2805D831460C +:1096F0002046BDE8F04100F0A3BAA4F1A0001F2865 +:1097000004D80020A02C03D0A12C06D00720C8E745 +:10971000317801F001016977C3E731680922F8293E +:1097200001D38B0701D01046BBE76B7C03F003032A +:10973000012B04D16B8BD7339CB28C42F3D82962B6 +:10974000AFE72DE9F04781460E4608460AF05EFF76 +:1097500048B948460AF078FF28B909F1030020F01B +:109760000301494501D0102030E795484FF0000A29 +:109770004430817869B14178804600EB4114083467 +:10978000378832460021204600F040FA050004D018 +:1097900027E0A6F800A0052018E7B9F1000F24D0B3 +:1097A0003088B84201D90C251FE0607800F0070529 +:1097B000284600F017FA08EB0507324697F8E8014B +:1097C0004946401C87F8E801204607F5F47700F089 +:1097D0001DFA05463878401E3870032000F002FA62 +:1097E0002DB10C2D01D0A6F800A02846EEE6607839 +:1097F000724E00F00701012923D002290CD0032961 +:1098000033D0FFDF98F801104046491CC9B288F8F0 +:1098100001100F2934D035E0616821B1000702D46E +:109820006088FFF72BFE98F8EA014746012802D12D +:10983000707802F0DFFA97F9EA010428E2DBFFDF33 +:10984000E0E7616819B14022B06807F073F898F852 +:10985000E9014746032802D1707802F0CBFA97F964 +:10986000E9010428CEDBFFDFCCE7C00602D5608823 +:10987000FFF704FE98F9EB010628C3DBFFDFC1E721 +:1098800080F801A08178491E8170617801F007019C +:1098900001EB080090F8E811491C80F8E811A4E7F2 +:1098A00070B50D4604460AF08BFE18B928460AF03A +:1098B000ADFE08B1102070BD29462046BDE87040BD +:1098C00008F031BF70B5044615460E4608460AF04A +:1098D00077FE18B928460AF099FE08B1102070BD2D +:1098E000022C03D0102C01D0092070BD2A4631462D +:1098F000204608F03BFF0028F7D0052070BD70B56A +:1099000014460D4606460AF05BFE38B928460AF0B2 +:109910007DFE18B920460AF097FE08B1102070BDF0 +:1099200022462946304608F040FF0028F7D007209D +:1099300070BD3EB504460AF069FE08B110203EBD78 +:10994000684604F03FFEFFF795FB0028F7D19DF82D +:1099500006002070BDF808006080BDF80A00A080F5 +:1099600000203EBD70B505460C4608460AF06CFE68 +:1099700020B93CB120680AF049FE08B1102070BD42 +:10998000A08828B121462846BDE87040FDF7BEBE3C +:10999000092070BD70B504460D4608460AF010FE59 +:1099A00030B9601E1E2818D828460AF009FE08B1F2 +:1099B000102070BD022C05D9072070BD1C000020AE +:1099C0009803002004B9FFDFF94800EB840050F849 +:1099D000041C2846BDE870400847A4F120001F2859 +:1099E00005D829462046BDE87040FAF790BCF02C17 +:1099F000E2D1A8680AF0E4FD0028D9D1284606F093 +:109A0000A6FABDE87040FFF735BB70B504460D46B9 +:109A100008460AF0FBFD30B9601E1E280DD8284606 +:109A20000AF0CEFD08B11020C7E7012C01D0022CAE +:109A300001D10620C1E70720BFE7A4F120001F28BD +:109A4000F9D829462046BDE87040FAF7B8BC06F0C0 +:109A50008BBC38B50446D748007B00F00105D9B966 +:109A6000F9F787FA0DB1226800E00022D248417868 +:109A7000C06804F09EFBD0481030C0788DF800001C +:109A800010B1012802D004E0012000E000208DF890 +:109A90000000684604F010FE002D02D02068283037 +:109AA000206038BD30B5C34D04466878A04200D868 +:109AB000FFDF686800EB041030BD70B5BD480025BD +:109AC0002C46467807E02046FFF7ECFF4078641C00 +:109AD0002844C5B2E4B2B442F5D128466DE72DE979 +:109AE000F0410C46064600F006F907463068C01CF7 +:109AF00020F00302326014BBAE483B4608212430FC +:109B00000AF038FC002409E0082C10D2DFE804F049 +:109B1000060408080A040406A84804E0A84802E06D +:109B2000A84800E0A8480AF045FC054600E0FFDF31 +:109B3000A54200D0FFDF641CE4B2082CE4D33068F7 +:109B400000EB07103060ACE5021D5143452900D2FF +:109B500045210844C01CB0FBF2F0C0B270472DE9AB +:109B6000FC5F064693484FF000088B464746444644 +:109B700090F8019022E02046FFF794FF050000D105 +:109B8000FFDF687869463844C7B22846FFF720F8F7 +:109B9000824601A92846FFF735F80346BDF80400C0 +:109BA0005246001D81B2BDF80000001D80B207F0D2 +:109BB000D9F86A78641C00FB0288E4B24C45DAD11B +:109BC0003068C01C20F003003060BBF1000F00D0F3 +:109BD00000204246394607F0D3F831680844306027 +:109BE000BDE8FC9F7349443108710020C87070477C +:109BF00070494431CA782AB10A7801EB4211083120 +:109C0000814201D001207047002070472DE9F041CA +:109C100006460078154600F00F0400201080601EF4 +:109C20000F46052800D3FFDF61482A46103000EBBD +:109C30008400394650F8043C3046BDE8F0411847EE +:109C400070B50C46402802D0412806D120E0A0780B +:109C500061780D18E178814201D90720ADE62078BE +:109C6000012801D91320A8E6FF2D08D808F008FF25 +:109C700006460AF09CF8301A801EA84201DA12202B +:109C80009BE64C482168816021790173002094E6AD +:109C9000BDE87040084600F05EB82DE9F0470027A7 +:109CA000DFF810A13E463D46B9463C469AF8018091 +:109CB0000AE02046FFF7F6FE4178807B0E4410FB59 +:109CC0000155641CE4B27F1C4445F2D109EB8700C6 +:109CD000C6EBC60100EB81009AF8092000EB850174 +:109CE00001EBC2019AF80A209AF80B0001EBC201BD +:109CF00001EB80006AE42DE9F047DFF8B890002618 +:109D0000344699F8090099F80A2099F8017002443C +:109D1000D5B299F80B20104400F0FF0808E0204667 +:109D2000FFF7C0FE817B407811FB0066641CE4B243 +:109D3000BC42F4D199F8090099F80A102844284443 +:109D40004044401C01B1012108448419FF2C00D972 +:109D5000FFDFE0B23AE438B50446407800F0030093 +:109D6000012803D002280BD0072038BD606858B105 +:109D70000AF073FCD0B960680AF066FC20B915E0FF +:109D800060680AF01DFC88B969462046FCF71EF998 +:109D90000028EAD1607800F00300022816D19DF86F +:109DA000000098B160680AF04FFC78B1102038BD0F +:109DB00054500200980300201C000020BD41000008 +:109DC0001FAC00005D2F0000AB2401006189F82961 +:109DD0000DD8208988420AD8607800F003020A482A +:109DE000012A06D1D731026A89B28A4201D20920FA +:109DF000DDE794E80E0000F1100585E80E000AB9D1 +:109E0000002101830020D2E7980300202DE9F041D2 +:109E1000074614468846084601F01CFD064608EB36 +:109E200088001C22796802EBC0000D18688C58B1BC +:109E30004146384601F016FD014678680078C200B8 +:109E4000082305F120000CE0E88CA8B14146384613 +:109E500001F00FFD0146786808234078C20005F143 +:109E6000240006F0BEFD38B1062121726681D0E9DA +:109E70000010C4E9031009E0287809280BD0052058 +:109E8000207266816868E060002028702046BDE886 +:109E9000F04101F0D5BC072020726681F4E72DE97E +:109EA000F04116460D460746406801EB85011C222D +:109EB00002EBC1014418204601F0FDFC40B1002135 +:109EC000708865F30F2160F31F4107200AF02CFB17 +:109ED00009202070324629463846BDE8F04195E712 +:109EE0002DE9F0410E46074600241C21F07816E0CB +:109EF00004EB8403726801EBC303D25C6AB1FFF721 +:109F00008DFA050000D1FFDF6F802A4621463046DA +:109F1000FFF7C5FF0120BDE8F081641CE4B2A04258 +:109F2000E6D80020F7E770B5064600241C21C0786B +:109F30000AE000BF04EB8403726801EBC303D51889 +:109F40002A782AB1641CE4B2A042F3D8402070BD44 +:109F5000282128461AF07DFE7068808928812046D5 +:109F600070BD70B5034600201C25DC780DE000BFF5 +:109F700000EB80065A6805EBC6063244167816B127 +:109F8000128A8A4204D0401CC0B28442F0D84020D9 +:109F900070BDF0B5044600201C26E5780EE000BF39 +:109FA00000EB8007636806EBC7073B441F788F42CE +:109FB00002D15B78934204D0401CC0B28542EFD8F6 +:109FC0004020F0BD0078032801D000207047012018 +:109FD00070470078022801D00020704701207047A8 +:109FE0000078072801D000207047012070472DE934 +:109FF000F041064688461078F1781546884200D32D +:10A00000FFDF2C781C27641CF078E4B2A04201D852 +:10A01000201AC4B204EB8401706807EBC101084444 +:10A02000017821B14146884708B12C7073E7287840 +:10A03000A042E8D1402028706DE770B514460B8827 +:10A040000122A240134207D113430B8001230A22AD +:10A05000011D06F090FC047070BD2DE9FF4F81B02A +:10A060000878DDE90E7B9A4691460E4640072CD4CF +:10A07000019806F03DFF040000D1FFDF07F104085E +:10A0800020461FFA88F106F07CF8050000D1FFDFBA +:10A09000204629466A4606F0C6FA0098A0F80370E2 +:10A0A000A0F805A0284606F06CFB017869F30601CC +:10A0B0006BF3C711017020461FFA88F106F0A4F86F +:10A0C00000B9FFDF019803F0E9FF06EB0900017F0B +:10A0D000491C017705B0BDE8F08F2DE9F84F0E4619 +:10A0E0009A4691460746032106F0BEFD0446008DC0 +:10A0F000DFF8B485002518B198F80000B0421ED1F1 +:10A10000384606F0F5FE070000D1FFDF09F1040133 +:10A11000384689B206F035F8050010D03846294691 +:10A120006A4606F080FA009800210A460180817094 +:10A1300004F084F80098C01DCAF8000021E098F8E7 +:10A140000000B04216D104F1260734F8341F012074 +:10A1500000FA06F911EA090F00D0FFDF2088012379 +:10A1600040EA090020800A22391D384606F01EFC0C +:10A17000067006E0324604F1340104F12600FFF7D0 +:10A180005CFF0A2188F800102846BDE8F88FFEB56C +:10A1900014460D46064602AB0C220621FFF79DFF32 +:10A1A000002826D00299687812220A70801C487014 +:10A1B00008224A80A870208888806088C880A0888B +:10A1C0000881E088488100240C20CDE900040523A3 +:10A1D000062229463046FFF740FF2146002266F35B +:10A1E0001F41F02310460AF0F5F86878801C68706B +:10A1F0000120FEBDFEB514460D460622064602AB02 +:10A200001146FFF76AFF002812D0029B132000219D +:10A210001870A8785870022058809C800620CDE9DC +:10A2200000010246052329463046FFF716FF0120AC +:10A23000FEBD2DE9FE430C46804644E002AB0E22F3 +:10A2400007214046FFF749FF002841D060681C22E3 +:10A2500067788678BF1C06EB860102EBC1014518C2 +:10A2600002981421017047700A214180698A018196 +:10A27000E98A4181A9888180A9898181304601F0DC +:10A28000E9FA029905230722C8806F70042028701C +:10A2900000250E20CDE9000521464046FFF7DDFEF2 +:10A2A000294666F30F2168F31F41F023002207209F +:10A2B0000AF090F86078FD49801C60706268204662 +:10A2C000921CFFF794FE606880784028B6D1012088 +:10A2D000BDE8FE83FEB50D46064638E002AB0E2211 +:10A2E00007213046FFF7F9FE002835D068681C23A7 +:10A2F000C17801EB810203EBC20284180298152297 +:10A300000270627842700A224280A2894281A28849 +:10A310008281084601F09EFA014602988180618A96 +:10A32000C180E18A0181A088B8B10020207000219D +:10A330000E20CDE900010523072229463046FFF70C +:10A340008CFE6A68DA492846D21CFFF750FE68681E +:10A35000C0784028C2D10120FEBD0620E6E72DE9E5 +:10A36000FE430C46814644E0204601F08EFAD0B30D +:10A3700002AB082207214846FFF7AFFE0028A7D00E +:10A3800060681C2265780679AD1C06EB860102EB3D +:10A39000C10147180298B7F8108006210170457076 +:10A3A00004214180304601F055FA01460298052308 +:10A3B0000722C180A0F804807D7008203870002535 +:10A3C000CDE9000521464846FFF747FE294666F3DA +:10A3D0000F2169F31F41F0230022072009F0FAFF43 +:10A3E0006078801C60706268B2492046121DFFF7D9 +:10A3F000FEFD606801794029B6D1012068E72DE9AA +:10A40000F34F83B00E4680E0304601F03EFA00285C +:10A4100075D071681C2091F8068008EB880200EB6B +:10A42000C2000C184146304601F023FA0146A078DC +:10A43000C30070684078C20004F1240006F0EDFA11 +:10A4400007468088E18B401A80B2002581B3AA4676 +:10A45000218B814200D808468146024602AB072183 +:10A460000398FFF73AFE010028D0BAF1000F03D09D +:10A47000029AB888022510808B46E28B3968A9EBD6 +:10A4800005001FFA80FA0A440398009206F030FD96 +:10A49000ED1D009A59465346009506F03EF9E08BB3 +:10A4A000504480B2E083B988884209D1012508E090 +:10A4B000FFE7801C4FF0010A80B2C9E7002009E6DF +:10A4C0000025CDE90095238A072231460398FFF73E +:10A4D000C4FDE089401EE0818DB1A078401CA070D1 +:10A4E0007068F178427811FB02F1CAB281690123E8 +:10A4F0000E3006F040FA80F800800020E083726899 +:10A500006D493046921DFFF772FD706881794029D0 +:10A510007FF47AAF0120DDE570B5064648680D4648 +:10A5200014468179402910D104EB84011C2202EBEE +:10A53000C101084401F0E0F9002806D06868294606 +:10A5400084713046BDE8704059E770BDFEB50C46D9 +:10A550000746002645E0204601F097F9D8B3606829 +:10A560001C22417901EB810102EBC1014518688988 +:10A5700000B9FFDF02AB082207213846FFF7ADFD27 +:10A58000002833D00299607816220A70801C487027 +:10A59000042048806068407901F05CF90146029827 +:10A5A0000523072281806989C1800820CDE9000642 +:10A5B00021463846FFF751FD6078801C6070A889FD +:10A5C00069890844B0F5803F00D3FFDFA889698915 +:10A5D0000844A8816E81626838492046521DFFF701 +:10A5E00006FD606841794029B5D10120FEBD30B536 +:10A5F000438C458BC3F3C704002345B1838B641E92 +:10A60000ED1AC38A6D1E1D4495FBF3F3E4B22CB121 +:10A61000008918B1A04200D8204603444FF6FF70CD +:10A62000834200D3034613800C7030BD2DE9FC41FA +:10A63000074616460D46486802EB86011C2202EBCF +:10A64000C10144186A4601A92046FFF7D0FFA0893E +:10A65000618901448AB2BDF80010914212D0081AF3 +:10A6600000D5002060816868407940280AD12046E2 +:10A6700001F038F9002805D0686829464671384647 +:10A68000FFF764FFBDE8FC812DE9FE4F8946804657 +:10A6900015465088032106F0E7FA8346B8F8020011 +:10A6A00040280DD240200CE030000020C59F000063 +:10A6B000D39F0000E19F0000F9B80000E5B800005A +:10A6C000403880B282460146584601F0DEF8002844 +:10A6D0007ED00AEB8A001C22DBF8041002EBC000DB +:10A6E0000C18204601F0E7F8002877D1B8F80000F0 +:10A6F000E18A88423CD8A189D1B348456ED1002671 +:10A700005146584601F0AEF8218C0F18608B48B9BD +:10A71000B9F1020F62D3B8F804006083618A8842FD +:10A7200026D80226A9EB06001FFA80F9B888A28B6A +:10A73000801A002814DD4946814500DA084683B2B4 +:10A7400068886968029139680A44CDE9003206F0E8 +:10A75000BDFBDDE90121F61D009B009605F0A9FF78 +:10A76000A18B01EB090080B2A083618B884207D9DD +:10A77000688803B052465946BDE8F04F01F0D9B899 +:10A780001FD14FF009002872B8F802006881D7E99C +:10A790000001C5E90401608BA881284601F050F84A +:10A7A0005146584601F05EF80146DBF804000823E4 +:10A7B0000078C20004F1200006F013F90020A08305 +:10A7C0006083A0890AF0FF02401EA081688800E033 +:10A7D00004E003B05946BDE8F04F27E7BDE8FE8F1F +:10A7E0002DE9F041064615460F461C46184609F06D +:10A7F000E7FE18B9206809F009FF08B1102015E438 +:10A800007168688C0978B0EBC10F01D313200DE497 +:10A810003946304601F026F8014670680823007872 +:10A82000C20005F1200006F0A6F8D4E90012C0E944 +:10A8300000120020E3E710B50446032106F014FAE5 +:10A840000146007800F00300022805D02046BDE84C +:10A85000104001F114029AE48A8A2046BDE81040B3 +:10A86000C8E470B50446032106F0FEF9054601462A +:10A870002046FFF774FD002816D029462046FFF732 +:10A8800065FE002810D029462046FFF723FD00284A +:10A890000AD029462046FFF7CCFC002804D02946E0 +:10A8A0002046BDE87040AAE570BD2DE9F0410C4698 +:10A8B00080461EE0E178427811FB02F1CAB281695C +:10A8C00001230E3006F08DF8077860681C22C179EC +:10A8D000491EC17107EB8701606802EBC101461890 +:10A8E0003946204600F0D1FF18B1304600F0DCFFB9 +:10A8F00020B16068C1790029DCD180E7FEF78EFDC8 +:10A90000050000D1FFDF0A202872384600F0A2FFC0 +:10A9100068813946204600F0ACFF01466068082394 +:10A920004078C20006F1240006F05BF8D0E9001080 +:10A93000C5E90310A5F80280284600F081FFB07831 +:10A9400000B9FFDFB078401EB07058E770B50C4614 +:10A950000546032106F088F901464068C279224481 +:10A96000C2712846BDE870409FE72DE9FE4F824640 +:10A97000507814460F464FF0000800284FD00128A9 +:10A9800007D0022822D0FFDF2068B8606068F86036 +:10A9900024E702AB0E2208215046FFF79EFB002859 +:10A9A000F2D00298152105230170217841700A2107 +:10A9B0004180C0F80480C0F80880A0F80C8062884C +:10A9C00082810E20CDE90008082221E0A6783046D9 +:10A9D00000F040FF054606EB86012C22786802EB6A +:10A9E000C1010822465A02AB11465046FFF775FBDB +:10A9F0000028C9D0029807210170217841700421F4 +:10AA0000418008218580C680CDE9001805230A46CB +:10AA100039465046FFF721FB87F80880DEE6A67826 +:10AA2000022516B1022E13D0FFDF2A1D914602AB7C +:10AA300008215046FFF751FB0028A5D002980121BC +:10AA4000022E0170217841704580868002D005E099 +:10AA50000625EAE7A188C180E1880181CDE9009857 +:10AA60000523082239465046D4E710B50446032191 +:10AA700006F0FAF8014600F108022046BDE8104051 +:10AA800073E72DE9F05F0C4601281DD0957992F807 +:10AA90000480567905EB85011F2202EBC10121F0EC +:10AAA000030B08EB060111FB05F14FF6FF7202EAFA +:10AAB000C10909F1030115FB0611F94F21F0031A31 +:10AAC00040B101283DD124E06168E57891F800802B +:10AAD0004E78DFE75946786805F001FF606000B9FD +:10AAE000FFDF594660681AF0D6F8E570514678687D +:10AAF00005F0F5FE6168486100B9FFDF60684269F2 +:10AB000002EB09018161606880F80080606846702E +:10AB100017E0606852464169786805F00BFF5A46B5 +:10AB20006168786805F006FF032006F045F80446E2 +:10AB3000032006F049F8201A012802D1786805F0B0 +:10AB4000C3FE0BEB0A00BDE8F09F02460021022085 +:10AB500097E773B5D24D0A202870009848B10024B9 +:10AB60004FEA0D0005F09DFE002C01D100996960AF +:10AB70007CBD01240020F5E770B50C461546382150 +:10AB800020461AF088F8012666700A2104F11C009C +:10AB90001AF081F805B9FFDF297A207861F3010006 +:10ABA0002070A879002817D02A4621460020FFF7F8 +:10ABB00068FF6168402088706168C87061680871CA +:10ABC0006168487161688871616828880881616876 +:10ABD000688848816068868170BDC878002802D086 +:10ABE000002201204DE7704770B50546002165F34E +:10ABF0001F41002009F098FC0321284606F034F894 +:10AC0000040000D1FFDF21462846FFF769F900283C +:10AC100004D0207840F010002070012070BD2DE994 +:10AC2000FF4180460E460F0CFEF7F8FB050007D0EB +:10AC30006F800321384606F017F8040008D106E0BB +:10AC400004B03846BDE8F0411321F9F7F9BEFFDF43 +:10AC50005FEA080005D0B8F1070F18D0FFDFBDE8A4 +:10AC6000FF8120782A4620F0080020700020ADF8EF +:10AC7000020002208DF800004FF6FF70ADF80400CE +:10AC8000ADF8060069463846F9F7EDFAE7E7C6F38E +:10AC9000072101EB81021C23606803EBC202805C88 +:10ACA000042803D008280AD0FFDFD8E7012000904D +:10ACB0004FF440432A46204600F004FECFE704B09C +:10ACC0002A462046BDE8F041FFF7E9B82DE9F05FDC +:10ACD0000027B0F80A9090460C4605463E46B9F16A +:10ACE000400F01D2402001E0A9F140001FFA80FA94 +:10ACF000287AC01E08286BD2DFE800F00D04192066 +:10AD000058363C4772271026002C6CD0D5E9030139 +:10AD1000C4E902015CE070271226002C63D00A22ED +:10AD200005F10C0104F1080019F059FF50E07127FA +:10AD30000C26002C57D0E868A06049E07427102644 +:10AD40009CB3D5E90301C4E902016888032105F039 +:10AD50008BFF8346FEF762FB0246688850805146AF +:10AD60005846FFF753F833E075270A26ECB1A88957 +:10AD700020812DE076271426BCB105F10C0004F1EA +:10AD8000080307C883E8070022E07727102664B18C +:10AD9000D5E90301C4E902016888032105F064FFD5 +:10ADA00001466888FFF781FD12E01CE07327082642 +:10ADB000CCB16888032105F057FF01460078C00632 +:10ADC00006D56888FFF78CF810B96888F8F71BFE7D +:10ADD000A8F800602CB12780A4F8069066806888E7 +:10ADE000A0800020AFE6A8F80060FAE72DE9FC415A +:10ADF0000C461E4617468046032105F035FF0546E2 +:10AE00000A2C0AD2DFE804F0050505050505090945 +:10AE10000907042303E0062301E0FFDF0023CDE957 +:10AE20000076224629464046FFF717F92AE438B54E +:10AE30000546A0F57F40FF3830D0284606F046F89A +:10AE4000040000D1FFDF204605F0CBFB002815D021 +:10AE500001466A46204605F0E6FB00980321B0F85B +:10AE60000540284605F000FF0546052C03D0402C80 +:10AE700005D2402404E0007A80B1002038BD403C77 +:10AE8000A4B2214600F001FD40B1686804EB8401E2 +:10AE90003E2202EBC101405A0028EFD0012038BD0C +:10AEA000300000202DE9F04F044689B0408806F0BC +:10AEB0000DF8050000D1FFDF06AA2846616800F002 +:10AEC000BDFC069D001F81B235F8032F6B888A42B6 +:10AED00005D1042B0AD0052B1DD0062B15D02246F8 +:10AEE0002846FFF7D1FB09B0BDE8F08F16462D1DAF +:10AEF000224629463046F7F750FA0828F3D1224671 +:10AF000029463046FCF749FCEDE76088291D636857 +:10AF1000FAF7C8FCE7E717466088032105F0A4FEAE +:10AF20004FF000088DF804800646ADF80680042F27 +:10AF3000D9D36A79002AD6D028794FF6FF794FF015 +:10AF40001C0A13282CD008DC012878D0062847D00A +:10AF5000072875D0122874D106E0142872D015285D +:10AF600071D016286DD1ACE10C2F6AD1307800F089 +:10AF70000301022965D140F0080030706879B07093 +:10AF800001208DF804002889ADF808006889ADF823 +:10AF90000A00A889ADF80C00E889ADF80E0019E0A8 +:10AFA000B07890429FD1307801079CD5062F9AD176 +:10AFB00020F0080030706088414660F31F41002097 +:10AFC00009F0B2FA02208DF80400ADF80890288943 +:10AFD000ADF80A006088224601A9F9F744F982E732 +:10AFE000082F80D12F89B5F80A90402F01D2402038 +:10AFF00001E0A7F1400080B280460146304600F0F3 +:10B0000044FC08B3716808EB88002C2202EBC000F6 +:10B01000095A4945E3D1FE4807AAD0E90210CDE913 +:10B02000071068798DF81C0008F0FF058DF81E5098 +:10B0300060883146FFF799FC2246294639E0B6E0A0 +:10B0400014E03CE039E0E6E0F148D0E90010CDE959 +:10B0500007106879ADF820708DF81C00ADF82290CB +:10B06000608807AA3146FFF780FC3CE7082FB6D17D +:10B070006889B5F80880402801D2402000E04038B7 +:10B0800087B23946304600F000FC0028A7D007EB15 +:10B09000870271680AEBC2000844028A42459ED1C9 +:10B0A000017808299BD140786979884297D1F9B213 +:10B0B00022463046FEF7F3FE15E70E2F07D0CDF8F7 +:10B0C0001C80CDF8208068798DF81C00C8E769895C +:10B0D000EF898B46B5F80C903046FEF742FFABF196 +:10B0E0004001402901D309204AE0B9F1170F01D3EB +:10B0F000172F01D20B2043E040280ED000EB800236 +:10B1000071680AEBC20008440178012903D1407834 +:10B1100069798842A9D00A2032E03046FEF703FF61 +:10B12000014640282BD001EB810372680AEBC30073 +:10B1300002EB0008012288F800206A7988F80120D3 +:10B1400070682A894089B84200D938462D8A03237D +:10B150002372A282E7812082A4F80C9065820846BF +:10B1600000F078FB6081A8F81490A8F81870A8F88F +:10B170000E50A8F810B0204600F062FBB3E60420A1 +:10B1800005212172A4F80A80E08101212173A049E0 +:10B19000D1E90421CDE9072169798DF81C10ADF8BA +:10B1A0001E00608807AA3146FFF7DFFBE3E7062FA2 +:10B1B000E4D3B078904215D13078010712D520F051 +:10B1C000080030706088414660F31F41002009F09C +:10B1D000ABF902208DF804002889ADF80800ADF81D +:10B1E0000A90F7E604213046FEF7D3FE05464028D4 +:10B1F000C4D002208303009022462946304600F046 +:10B2000061FB4146608865F30F2160F31F41072011 +:10B2100009F08AF967E60E2FB0D104213046FEF717 +:10B22000B8FE81464028A9D04146608869F30F21C5 +:10B2300060F31F41072009F077F9288A0790E88911 +:10B2400000907068AF894089B84200D9384683467B +:10B25000B5F80A8028890590484600F0FBFA60811D +:10B26000079840B10220079B00902246494630468D +:10B2700000F028FB37E6B8F1170F1ED3172F1CD3A9 +:10B280000420207200986082E781A4F810B0A4F82E +:10B290000C8009EB890271680AEBC2000D18009955 +:10B2A0000598A5F81480A5F818B0E98128822046F1 +:10B2B00000F0C6FA0620287015E601200B23009046 +:10B2C000D3E7082FA6D129893046FEF74AFE074664 +:10B2D00040289FD007EB870271680AEBC200084440 +:10B2E000804600F0E8FA002894D16D89B8F80E0085 +:10B2F0002844B0F5803F05D360883A46314600F0D7 +:10B3000018FBF0E5002D85D0A8F80E0060883A46BD +:10B310003146FFF701F908202072384600F09AFA0A +:10B320006081A58127E770B50D460646032105F02B +:10B330009BFC040004D02078000704D5112070BDC8 +:10B3400043F2020070BD2A4621463046FEF71FFF39 +:10B3500018B9286860616868A061207840F008002A +:10B360002070002070BD70B50D460646032105F023 +:10B370007BFC040004D02078000704D4082070BDB2 +:10B3800043F2020070BD2A4621463046FEF732FFE6 +:10B3900000B9A582207820F008002070002070BD40 +:10B3A0002DE9F04F0E4691B08046032105F05CFC7C +:10B3B0000446404605F09CFD074600200790089093 +:10B3C0000990ADF830000A9002900390049004B9FF +:10B3D000FFDF0DF1080917BBFFDF20E038460BA99E +:10B3E000002204F0C1FF9DF82C0000F07F050A2D1B +:10B3F00000D3FFDF6019017F491E01779DF82C0003 +:10B4000000060CD52A460CA907A8FEF716FE01E097 +:10B410007C50020019F80510491C09F80510761E29 +:10B42000F6B2DBD204F13400FA4D04F1260BDFF85A +:10B43000E8A304F12A07069010E05846069900F0A8 +:10B440006AFA064628700A2800D3FFDF5AF8261049 +:10B4500040468847E08CC05DB04202D0208D002875 +:10B46000EBD10A202870EC4D4E4628350EE00CA991 +:10B4700007A800F050FA0446375D55F8240000B9DB +:10B48000FFDF55F82420394640469047BDF81E009E +:10B490000028ECD111B027E510B5032105F0E4FB3D +:10B4A000040000D1FFDF0A2104F11C0019F0F3FBB6 +:10B4B000207840F00400207010BD10B50C46032128 +:10B4C00005F0D2FB2044007F002800D0012010BDF1 +:10B4D0002DE9F84F894615468246032105F0C4FB45 +:10B4E000070004D0284609F06BF840B903E043F2A6 +:10B4F0000200BDE8F88F484609F088F808B110202E +:10B50000F7E7786828B169880089814201D9092064 +:10B51000EFE7B9F800001C2418B1402809D24020F8 +:10B5200008E03846FEF7FFFC8046402819D113207A +:10B53000DFE7403880B280460146384600F0A5F982 +:10B5400048B108EB8800796804EBC000085C01286A +:10B5500003D00820CDE70520CBE7FDF75FFF06000D +:10B560000BD008EB8800796804EBC0000C18B9F820 +:10B57000000020B1E88910B113E01120B9E7288854 +:10B58000172802D36888172801D20720B1E7686816 +:10B5900038B12B1D224641463846FFF721F90028D5 +:10B5A000A7D104F10C0269462046FFF720F828884D +:10B5B00060826888E082B9F8000030B10220207013 +:10B5C000E889A080E889A0B12BE003202070A88939 +:10B5D000A08078688178402905D180F802803946BA +:10B5E0005046FEF726FE404600F034F9A9F8000068 +:10B5F00021E07868218B4089884200D90846208361 +:10B60000A6F802A004203072B9F800007081E08929 +:10B610007082F181208B3082A08AB081304600F0A8 +:10B620000FF97868C178402905D180F80380394640 +:10B630005046FEF74FFE00205BE770B50D4606460C +:10B64000032105F011FB040003D0402D04D2402556 +:10B6500003E043F2020070BD403DADB2294600F068 +:10B6600014F958B105EB85011C22606802EBC10199 +:10B67000084400F020F918B1082070BD052070BD05 +:10B680002A462146304600F054F9002070BD2DE9CD +:10B69000F0410D4616468046032105F0E5FA0446C2 +:10B6A000402D01D2402500E0403DADB28CB129468D +:10B6B00000F0EBF880B105EB85011C22606802EB1D +:10B6C000C1014718384600F0F6F838B10820BDE847 +:10B6D000F08143F20200FAE70520F8E733463A46E4 +:10B6E00029462046FFF77CF80028F0D1EAB221462F +:10B6F0004046FEF79BFF0020E9E72DE9F0410D46AB +:10B7000016468046032105F0AFFA0446402D01D2CB +:10B71000402500E0403DAFB224B1304608F050FF74 +:10B7200038B902E043F20200D1E7306808F048FF80 +:10B7300008B11020CBE73946204600F0A6F860B1EA +:10B7400007EB87011C22606802EBC10145182846FF +:10B7500000F0B1F818B10820B9E70520B7E7B088C4 +:10B76000A98A884201D90C20B1E76168E88C497840 +:10B77000B0EBC10F01D31320A9E73946204600F0F2 +:10B7800078F80146606808234078C20005F124007B +:10B7900005F0F1F8D6E90012C0E90012FAB221462C +:10B7A0004046FEF7B9FE002091E72DE9F0470D462F +:10B7B0001F4690468146032105F056FA0446402D67 +:10B7C00001D2402001E0A5F1400086B23CB14DB16C +:10B7D000384608F039FF50B11020BDE8F08743F239 +:10B7E0000200FAE76068C8B1A0F80C8024E0314696 +:10B7F000204600F04AF888B106EB86011C226068FA +:10B8000002EBC1014518284600F055F840B1082068 +:10B81000E3E7000030000020945002000520DCE740 +:10B82000A5F80880F2B221464846FEF7FFFE1FB198 +:10B83000A8896989084438800020CEE704F0F3BE67 +:10B84000017821F00F01491C21F0F0011031017045 +:10B85000FDF7E7BD10B50446402800D9FFDF4034AE +:10B86000A0B210BD406842690078484302EBC000B6 +:10B870007047C2784068037812FB03F2437840694E +:10B8800001FB032100EBC1007047C2788A4209D94D +:10B89000406801EB81011C2202EBC101405C08B150 +:10B8A00001207047002070470078062801D9012048 +:10B8B0007047002070470078062801D001207047AB +:10B8C00000207047F0B401EB81061C27446807EBA9 +:10B8D000C6063444049D05262670E3802571F0BC1D +:10B8E000FEF794BA10B5418911B1FFF7DDFF08B139 +:10B8F000002010BD012010BD10B5C18C8278B1EBC5 +:10B90000C20F04D9C18911B1FFF7CEFF08B10020E1 +:10B9100010BD012010BD10B50C4601230A22011DE7 +:10B9200005F05FF800782188012282409143218050 +:10B9300010BDF0B402EB82051C264C6806EBC50571 +:10B94000072363554B681C79402C03D11A71F0BC56 +:10B95000FEF705BDF0BC704710B5EFF3108000F0A6 +:10B96000010472B6F7484178491C417040780128BB +:10B9700001D1F7F709FB002C00D162B610BD70B5FC +:10B98000F04CE07848B90125E570FFF7E5FFF7F7DF +:10B9900003FB20B1002008F058FA002070BD4FF0E2 +:10B9A00080406571C0F80453F7E770B5EFF310807D +:10B9B00000F0010572B6E34C607800B9FFDF6078F3 +:10B9C000401E6070607808B9F7F7E2FA002D00D1E8 +:10B9D00062B670BDDB4810B5C17821B1002141715C +:10B9E000C170FFF7E2FF002010BD10B50446F7F765 +:10B9F000D3FAD449C978084000D001202060002043 +:10BA000010BD2DE9F05FDFF83C934278817889F82A +:10BA10000620002589F80710064689F808500078A6 +:10BA20002F4620B101280FD002280FD0FFDFF7F7F3 +:10BA3000C0FA98B1F7F7C4FAA8420FD12846F7F731 +:10BA4000C3FA0028FAD047E00125F0E7FFF784FFAA +:10BA5000F7F7A2FA0028FBD00225E8E701208407C7 +:10BA6000E060C4F80471B8490D600107D1F84412D0 +:10BA7000B54AC1F3423124321160B3493431086010 +:10BA80004FF0020BC4F804B3A060DFF8C0A2DAF8EC +:10BA90000010C94341F3001101F10108DAF8001068 +:10BAA00041F01001CAF8001000E020BFD4F80401F2 +:10BAB0000028FAD02846F7F787FA0028FAD0B8F11C +:10BAC000000F05D1DAF8001021F01001CAF80010BB +:10BAD000C4F808B3C4F8047199F807004C4670B173 +:10BAE000307860B9F7F758FA064608F00BFB6FF0AC +:10BAF000004116B1C4E9031001E0C4E9030115B126 +:10BB00002771BDE8F09F01202071BDE8F05F00F0D3 +:10BB1000D9B870B5050000D1FFDF4FF080424FF07B +:10BB2000FF30C2F808030021C2F80011C2F8041166 +:10BB3000C2F80C11C2F81011824C6170F7F732FA9A +:10BB400010B10120E07060702846BDE8704058E7F1 +:10BB50002DE9FE4F7E4800687D4A7E49083211601B +:10BB60008C070290D4F8080108B1012600E00026F5 +:10BB7000D4F8240100B101208146D4F81C0100B1A1 +:10BB800001208346D4F8200100B101200190D4F8AF +:10BB9000000110B14FF0010801E04FF00008D4F8A7 +:10BBA000040108B1012700E00027D4F80C0100B11E +:10BBB00001200090D4F8100108B1012100E000211B +:10BBC0008A4646EA080127EA01000099884320EAEC +:10BBD0000A0020EA090030EA0B0000D0FFDF002550 +:10BBE00026B1C4F80851012008F02FF9B9F1000F6F +:10BBF00004D0C4F82451092008F027F9BBF1000F44 +:10BC000004D0C4F81C510A2008F01FF9019820B193 +:10BC1000C4F820510B2008F018F9DFF83C91494E88 +:10BC20004FF0010BB8F1000F11D0C4F8005170793A +:10BC300018B17571002008F008F9307838B1357006 +:10BC400086F802B00222C9F80020C4F810B00FB183 +:10BC5000C4F80451009858B1C4F80C51B07800B938 +:10BC6000FFDFC9F80050B570C4F814B0FFF79DFEAF +:10BC7000BAF1000F05D0C4F81051307908B100F0C6 +:10BC800045F833490298091D0860BDE8FE8F70B57C +:10BC90002C4DE87808B9F7F77BF901208407A061FB +:10BCA000A87850B1D4F80C0120B90020F7F78CF92E +:10BCB0000028F7D10020C4F80C014FF0FF30C4F881 +:10BCC000080370BD2DE9F0411926B407C4F80863D4 +:10BCD0000125A5610020C4F80001C4F80C01C4F8D6 +:10BCE0001001F7F759F9174F28B11B49BD70022011 +:10BCF0000860256100E03D70FFF72EFE1249B8791B +:10BD000020310860C4F80463BDE8F0812DE9F041FA +:10BD10000C4C4FF080470125E07940B3012803D057 +:10BD2000217A401E814224DAF7F736F9064608F0F8 +:10BD3000E9F9E179012902D9217A491C21726EB110 +:10BD400021690CE03C0000201805004010ED00E0E7 +:10BD50001005024001000001340C0040E168411A66 +:10BD6000022902DA11F1020F0EDC0EB1206100E0AF +:10BD7000E060FFF7F1FDF7F70FF938B10549022050 +:10BD800008603D61A57002E07D61BDE7257000207F +:10BD90002072B9E7340C00404FF0E0214FF0007002 +:10BDA000C1F88001C1F88002384B802283F800245A +:10BDB000C1F80001704700B502460420344903E091 +:10BDC00001EBC0031B792BB1401EC0B2F8D2FFDFDC +:10BDD000FF2000BD41F8302001EBC00100224A7174 +:10BDE0008A7101220A7100BD294A002102EBC000BC +:10BDF0000171704710B50446042800D3FFDF2448C2 +:10BE000000EBC4042079012800D0FFDF6079A1791C +:10BE1000401CC0B2814200D060714FF0E0214FF071 +:10BE20000070C1F8000210BD2DE9F0411948056805 +:10BE300018491948083108601448042690F800048D +:10BE4000134F4009154C042818D0FFDF16E0217865 +:10BE500007EBC1000279012A08D1427983799A421D +:10BE600004D04279827157F8310080472078401C15 +:10BE7000C0B22070042801D300202070761EF6B2D4 +:10BE8000E5D20448001D0560BDE8F08119E000E03E +:10BE9000C8050020100502400100000150000020EC +:10BEA000F8B51D46DDE906470E000AD005F020F87A +:10BEB0002346FF1DBCB231462A46009404F02DFCF7 +:10BEC000F8BDD0192246194618F044FE2046F8BDA8 +:10BED00070B50D460446102118F0BBFE25811720D1 +:10BEE0006081A07B40F00A00A07370BD4FF6FF7226 +:10BEF0000A800146022008F017BB7047008970478E +:10BF0000827BD30701D1920703D480890880002067 +:10BF1000704705207047827B920700D5818170476A +:10BF200001460020098841F6FE52114200D001204E +:10BF3000704700B50346807BC00701D0052000BDD7 +:10BF400059811846FFF7ECFFC00703D0987B40F0FB +:10BF500004009873987B40F001009873002000BDA6 +:10BF6000827B520700D509B140897047172070477E +:10BF7000827B61F3C302827370472DE9FC5F0E463A +:10BF8000044601789646012000FA01F14DF6FF5271 +:10BF900001EA020962684FF6FF7B1188594502D118 +:10BFA0000920BDE8FC9FB9F1000F05D041F6FE5510 +:10BFB000294201D00120F4E741EA090111801D0066 +:10BFC00014D04FF0000C85F800C02378052103221F +:10BFD00067464FF0020A0E2B74D2DFE803F0F8092F +:10BFE000252F47626974479092B3D0D70420D8E7D1 +:10BFF000616820898B7B9B077DD5172848D30B89E7 +:10C00000834245D38989172901D3814240D185F8DC +:10C0100000A0A5F801003280616888816068817B9A +:10C0200021F002018173C5E0042028702089A5F861 +:10C0300001006089A5F803003180BBE0208A3188C7 +:10C04000C01D1FFA80F8414522D3062028702089A0 +:10C05000A5F801006089A5F80300A089A5F80500EE +:10C060000721208ACDE9000163693EE0082B10D04A +:10C07000082028702089A5F801006089A5F8030030 +:10C0800031806A1D694604F10C0006F08EFB10B188 +:10C090005FE01020EDE730889DF800100844308004 +:10C0A00088E00A2028702089A5F80100328045E048 +:10C0B0000C2028702089A5F801006089A5F80300EC +:10C0C00031803BE083E02189338800EB41021FFA95 +:10C0D00082F843453DD3B8F1050F3AD30E222A70BA +:10C0E0000BEA4101CDE90010E36860882A467146F9 +:10C0F000FFF7D6FE00E04DE0A6F800805AE04020B1 +:10C10000287060893188C01C1FFA80F8414520D30F +:10C110002878714620F03F00123028702089A5F859 +:10C1200001006089CDE9000260882A46E368FFF7D4 +:10C13000B7FEA6F80080287840063BD461682089C5 +:10C14000888037E0A0893288401D1FFA80F8424578 +:10C1500001D204273EE0162028702089A5F80100AE +:10C160006089A5F80300A089CDE9000160882A460E +:10C1700071462369FFF794FEA6F80080DEE71820D9 +:10C180002870207A6870A6F800A013E061680A8819 +:10C19000920401D405271DE0C9882289914201D06B +:10C1A000062717E01E21297030806068018821F47D +:10C1B00000510180B9F1000F0CD061887823002272 +:10C1C000022008F007F961682078887007E0A6F877 +:10C1D00000C003276068018821EA09010180384610 +:10C1E000DFE62DE9FF4F85B01746129C0D001E4675 +:10C1F0001CD03078C10703D000F03F00192801D9C6 +:10C20000012100E000212046FFF7AAFEA8420DD33D +:10C210002088A0F57F41FF3908D03078410601D44D +:10C22000000605D5082009B0BDE8F08F0720FAE721 +:10C2300000208DF800008DF8010030786B1E00F0B2 +:10C240003F0C0121A81E4FF0050A4FF002094FF0E4 +:10C25000030B9AB2BCF1200F75D2DFE80CF08B1003 +:10C26000745E7468748C749C74B674BB74C974D531 +:10C2700074E2747474F274F074EF74EE748B052DC0 +:10C2800078D18DF80090A0788DF804007088ADF812 +:10C29000060030798DF80100707800F03F000C281E +:10C2A00029D00ADCA0F10200092863D2DFE800F0FF +:10C2B000126215621A621D622000122824D004DC6A +:10C2C0000E281BD01028DBD11BE016281FD0182801 +:10C2D000D6D11FE02078800701E0207840070028B1 +:10C2E00048DAEFE020780007F9E72078C006F6E7A3 +:10C2F00020788006F3E720784006F0E720780006F3 +:10C30000EDE72088C005EAE720884005E7E72088B8 +:10C310000005E4E72088C004E1E72078800729D5FC +:10C32000032D27D18DF800B0B6F8010082E0217806 +:10C3300049071FD5062D1DD381B27078012803D07F +:10C34000022817D102E0CAE0022000E010200422F7 +:10C350008DF8002072788DF80420801CB1FBF0F27B +:10C36000ADF8062092B242438A4203D10397ADF85A +:10C370000890A7E07AE02078000777D598B2820885 +:10C380008DF800A0ADF80420B0EB820F6ED10297BB +:10C39000ADF8061096E02178C90667D5022D65D361 +:10C3A00081B206208DF80000707802285ED300BFAD +:10C3B000B1FBF0F28DF80400ADF8062092B24243D2 +:10C3C0008A4253D1ADF808907BE0207880064DD5A5 +:10C3D000072003E0207840067FD508208DF8000074 +:10C3E000A088ADF80400ADF80620ADF8081068E0AC +:10C3F0002078000671D50920ADF804208DF80000E2 +:10C40000ADF8061002975DE02188C90565D5022DBB +:10C4100063D381B20A208DF80000707804285CD3C1 +:10C42000C6E72088400558D5012D56D10B208DF840 +:10C430000000A088ADF8040044E021E026E016E00A +:10C44000FFE72088000548D5052D46D30C208DF840 +:10C450000000A088ADF80400B6F803006D1FADF829 +:10C460000850ADF80600ADF80AA02AE035E02088B3 +:10C47000C00432D5012D30D10D208DF8000021E00F +:10C480002088800429D4B6F80100E080A07B000752 +:10C4900023D5032D21D3307800F03F001B2818D07E +:10C4A0000F208DF80000208840F40050A4F8000010 +:10C4B000B6F80100ADF80400ED1EADF80650ADF879 +:10C4C00008B0039769460598F5F7B2FC050008D057 +:10C4D00016E00E208DF80000EAE7072510E0082599 +:10C4E0000EE0307800F03F001B2809D01D2807D04F +:10C4F0000220059908F018F8208800F400502080E8 +:10C50000A07B400708D52046FFF70AFDC00703D1EE +:10C51000A07B20F00400A073284684E61FB5022803 +:10C5200006D101208DF8000088B26946F5F780FC3D +:10C530001FBD0000F8B51D46DDE906470E000AD014 +:10C5400004F0D6FC2346FF1DBCB231462A460094B7 +:10C5500004F0E3F8F8BDD0192246194618F0FAFAAB +:10C560002046F8BD2DE9FF4F8DB09B46DDE91B57F6 +:10C57000DDF87CA00C46082B05D0E06901F002F93B +:10C5800050B11020D2E02888092140F01000288006 +:10C590008AF80010022617E0E16901208871E2693B +:10C5A0004FF420519180E1698872E06942F60101FF +:10C5B0000181E069002181732888112140F0200069 +:10C5C00028808AF80010042638780A900A203870EB +:10C5D0004FF0020904F118004D460C9001F095FB54 +:10C5E000B04681E0BBF1100F0ED1022D0CD0A9EBAB +:10C5F0000800801C80B20221CDE9001005AB524634 +:10C600001E990D98FFF796FFBDF816101A988142F3 +:10C6100003D9F74800790F9004E003D10A9808B1D4 +:10C6200038702FE04FF00201CDE900190DF116032B +:10C6300052461E990D98FFF77DFF1D980088401BFC +:10C64000801B83B2C6F1FF00984200D203461E99B8 +:10C650000BA8D9B15FF00002DDF878C0CDE9032066 +:10C6600009EB060189B2CDE901C10F980090BDF830 +:10C67000161000220D9801F0CBFB387070B1C0B2DB +:10C68000832807D0BDF8160020833AE00AEB0901A1 +:10C690008A19E1E7022011B0BDE8F08FBDF82C0047 +:10C6A000811901F0FF08022D0DD09AF801204245B2 +:10C6B00006D1BDF82010814207D0B8F1FF0F04D099 +:10C6C0009AF801801FE08AF80180C9480068017863 +:10C6D000052902D1BDF81610818009EB08001FFA68 +:10C6E00080F905EB080085B2DDE90C1005AB0F9A67 +:10C6F00001F00EFB28B91D980088411B4145BFF68B +:10C7000071AF022D13D0BBF1100F0CD1A9EB0800B3 +:10C71000801C81B20220CDE9000105AB52461E9972 +:10C720000D98FFF707FF1D98058000203870002046 +:10C73000B1E72DE9F8439C46089E13460027B26BEB +:10C740009AB3491F8CB2F18FA1F57F45FF3D05D00B +:10C750005518AD882944891D8DB200E0002529199E +:10C76000B6F83C800831414520D82A44BCF8011075 +:10C7700022F8021BBCF8031022F8021B984622F88C +:10C78000024B914604F0A2FB4FF00C0C41464A4686 +:10C790002346CDF800C003F08CFFF587B16B002075 +:10C7A0002944A41D2144088003E001E0092700E09A +:10C7B00083273846BDE8F88310B50B88848F9C42E8 +:10C7C0000CD9846BE018048844B1848824F40044B4 +:10C7D000A41D23440B801060002010BD0A2010BD52 +:10C7E0002DE9F0478AB00025904689468246ADF88B +:10C7F000185007274BE0059806888088000446D427 +:10C80000A8F8006007A8019500970295CDE90350AC +:10C810004FF4007300223146504601F0F9FA04004B +:10C820003CD1BDF81800ADF8200005980488818837 +:10C83000B44216D10A0414D401950295039521F44B +:10C8400000410097049541F48043428821465046B8 +:10C8500001F0B4F804000BD10598818841F400413F +:10C86000818005AA08A94846FFF7A6FF0400DCD08E +:10C870000097059802950195039504950188BDF8E8 +:10C880001C300022504601F099F80A2C06D105AA66 +:10C8900006A94846FFF790FF0400ACD0ADF8185049 +:10C8A00004E00598818821F40041818005AA06A949 +:10C8B0004846FFF781FF0028F3D00A2C03D020461A +:10C8C0000AB0BDE8F0870020FAE710B50C46896B86 +:10C8D00086B051B10C218DF80010A18FADF8081071 +:10C8E000A16B01916946FAF734FC00204FF6FF7105 +:10C8F000A063E187A08706B010BD2DE9F0410D4689 +:10C900000746896B0020069E1446002911D0012B92 +:10C910000FD1324629463846FFF762FF002808D17A +:10C92000002C06D0324629463846BDE8F04100F0DA +:10C9300038BFBDE8F0812DE9FC411446DDE9087CF3 +:10C940000E46DDE90A15521DBCF800E092B296458C +:10C9500002D20720BDE8FC81ACF8002017222A7023 +:10C96000A5F80160A5F803300522CDE900423B4659 +:10C970002A46FFF7DFFD0020ECE770B50C461546B0 +:10C980004821204618F087F904F1080044F81C0FEC +:10C9900000204FF6FF71E06161842084A584172098 +:10C9A000E08494F82A0040F00A0084F82A0070BD60 +:10C9B0004FF6FF720A800146032007F0B5BD30B57F +:10C9C00085B00C460546FFF780FFA18E284629B1A9 +:10C9D00001218DF800106946FAF7BBFB0020E062E8 +:10C9E0002063606305B030BDB0F8400070470000C0 +:10C9F0005400002090F84620920703D44088088015 +:10CA00000020F3E70620F1E790F846209207EDD5E5 +:10CA1000A0F84410EAE70146002009880A0700D57B +:10CA2000012011F0F00F01D040F00200CA0501D53D +:10CA300040F004008A0501D540F008004A0501D500 +:10CA400040F010000905D1D540F02000CEE700B538 +:10CA5000034690F84600C00701D0062000BDA3F8A9 +:10CA600042101846FFF7D7FF10F03E0F05D093F89D +:10CA7000460040F0040083F8460013F8460F40F0EB +:10CA800001001870002000BD90F84620520700D524 +:10CA900011B1B0F84200A9E71720A7E710F8462F18 +:10CAA00061F3C3020270A1E72DE9FF4F9BB00E00B6 +:10CAB000DDE92B34DDE92978289D24D02878C107C9 +:10CAC00003D000F03F00192801D9012100E0002126 +:10CAD0002046FFF7D9FFB04215D32878410600F071 +:10CAE0003F010CD41E290CD0218811F47F6F0AD18C +:10CAF0003A8842B1A1F57F42FF3A04D001E0122901 +:10CB000001D1000602D504201FB0C5E5F9491D98E2 +:10CB10004FF0000A08718DF818A08DF83CA00FAAFC +:10CB20000A60ADF81CA0ADF850A02978994601F034 +:10CB30003F02701F5B1C04F1180C4FF0060E4FF003 +:10CB4000040BCDF858C01F2A7ED2DFE802F07D7DAD +:10CB5000107D267DAC7DF47DF37DF27DF17DF47D4D +:10CB6000F07D7D7DEF7DEE7D7D7D7D7DED0094F81A +:10CB70004610B5F80100890701D5032E02D08DF8C3 +:10CB800018B022E34FF40061ADF85010608003212B +:10CB90008DF83C10ADF84000D8E2052EEFD1B5F885 +:10CBA00001002083ADF81C00B5F80310618308B1C3 +:10CBB000884201D901207FE10020A07220814FF638 +:10CBC000FF702084169801F0A0F8052089F8000075 +:10CBD0000220029083460AAB1D9A16991B9801F019 +:10CBE00097F890BB9DF82E00012804D0022089F808 +:10CBF0000100102003E0012089F8010002200590C7 +:10CC0000002203A90BA805F0D0FDE8BB9DF80C009D +:10CC1000059981423DD13A88801CA2EB0B018142EB +:10CC200037DB02990220CDE900010DF12A034A46C3 +:10CC300041461B98FFF77EFC02980BF1020B801C0B +:10CC400080B217AA03A901E0A0E228E002900BA895 +:10CC500005F0ABFD02999DF80C00CDE9000117AB82 +:10CC60004A4641461B98FFF765FC9DF80C100AAB3D +:10CC70000BEB01001FFA80FB02981D9A084480B25A +:10CC8000029016991B9800E003E001F041F800289B +:10CC9000B6D0BBF1020F02D0A7F800B053E20A20D1 +:10CCA0008DF818004FE200210391072EFFF467AFC3 +:10CCB000B5F801002083ADF81C00B5F803206283AD +:10CCC00000283FF477AF90423FF674AF0120A07286 +:10CCD000B5F8050020810020A073E06900F052FD46 +:10CCE00078B9E16901208871E2694FF4205191809F +:10CCF000E1698872E06942F601010181E069002181 +:10CD00008173F01F20841E9860620720608416984B +:10CD100000F0FBFF072089F800000120049002903A +:10CD20000020ADF82A0028E01DE2A3E13AE1EAE0A4 +:10CD300016E2AEE086E049E00298012814D0E069EE +:10CD40008079012803D1BDF82800ADF80E000498C1 +:10CD500003ABCDE900B04A4641461B98FFF7EAFB1A +:10CD60000498001D80B20490BDF82A00ADF80C00B4 +:10CD7000ADF80E00059880B202900AAB1D9A169984 +:10CD80001B9800F0C5FF28B902983988001D05904E +:10CD90008142D1D20298012881D0E06980790128AE +:10CDA00005D0BDF82810A1F57F40FF3803D1BDF8AC +:10CDB0002800ADF80E00049803ABCDE900B04A4658 +:10CDC00041461B98FFF7B6FB0298BBE1072E02D045 +:10CDD000152E7FF4D4AEB5F801102183ADF81C10E8 +:10CDE000B5F80320628300293FF4E4AE91423FF698 +:10CDF000E1AE0121A1724FF0000BA4F808B084F855 +:10CE00000EB0052E07D0C0B2691DE26905F0AEFC78 +:10CE100000287FF444AF4FF6FF70208401A906AAD2 +:10CE200014A8CDF800B081E885032878214600F0E9 +:10CE30003F031D9A1B98FFF795FB8246208BADF8A8 +:10CE40001C0080E10120032EC3D14021ADF8501019 +:10CE5000B5F801102183ADF81C100AAAB8F1000F33 +:10CE600000D00023CDE9020304921D98CDF8048080 +:10CE7000009038880022401E83B21B9800F0C8FF43 +:10CE80008DF8180090BB0B2089F80000BDF8280031 +:10CE900037E04FF0010C052E9BD18020ADF85000FB +:10CEA000B5F801102183B5F803002084ADF81C10FB +:10CEB000B0F5007F03D907208DF8180085E140F414 +:10CEC0007C4222840CA8B8F1000F00D00023CDE9E9 +:10CED0000330CDE9018C1D9800903888401E83B244 +:10CEE0001B9800F095FF8DF8180028B18328A8D171 +:10CEF0000220BDE0540000200D2189F80010BDF88B +:10CF00003000401C1EE1032E04D248067FF537AEE8 +:10CF1000002017E1B5F80110ADF81C102878400684 +:10CF200002D58DF83CE002E007208DF83C004FF080 +:10CF300000080320CDE902081E9BCDF810801D9843 +:10CF40000193A6F1030B00901FFA8BF342461B9846 +:10CF500000F034FD8DF818008DF83C8029784906E2 +:10CF60000DD52088C00506D5208BBDF81C10884241 +:10CF700001D1C4F8248040468DF81880E2E083286F +:10CF800001D14FF0020A4FF48070ADF85000BDF8A7 +:10CF90001C002083A4F820B01E98606203206084E7 +:10CFA0001321CCE0052EFFF4EAADB5F80110ADF881 +:10CFB0001C10A28F62B3A2F57F43FE3B28D008224B +:10CFC0008DF83C204FF0000B0523CDE9023BDDF846 +:10CFD00078C0CDF810B01D9A80B2CDF804C040F4EE +:10CFE00000430092B5F803201B9800F0E7FC8DF891 +:10CFF0003CB04FF400718DF81800ADF85010832844 +:10D0000010D0F8B1A18FA1F57F40FE3807D0DCE049 +:10D010000B228DF83C204FF6FE72A287D2E7A4F8CF +:10D020003CB0D2E000942B4631461E9A1B98FFF785 +:10D0300080FB8DF8180008B183284BD1BDF81C0087 +:10D04000208355E700942B4631461E9A1B98FFF724 +:10D0500070FB8DF81800E8BBE18FA06B0844811DC0 +:10D060008DE882034388828801881B98FFF763FC60 +:10D07000824668E095F80180022E70D15FEA0800D0 +:10D0800002D0B8F1010F6AD109208DF83C0007A841 +:10D0900000908DF840804346002221461B98FFF700 +:10D0A0002CFC8DF842004FF0000B8DF843B050B9C6 +:10D0B000B8F1010F12D0B8F1000F04D1A18FA1F582 +:10D0C0007F40FF380AD0A08F40B18DF83CB04FF4BC +:10D0D000806000E037E0ADF850000DE00FA91B982C +:10D0E000FAF737F882468DF83CB04FF48060ADF81F +:10D0F0005000BAF1020F06D0FC480068C07928B190 +:10D100008DF8180027E0A4F8188044E0BAF1000F69 +:10D1100003D081208DF818003DE007A80090434619 +:10D12000012221461B98FFF7E8FB8DF818002146E5 +:10D130001B98FFF7CAFB9DF8180020B9192189F840 +:10D140000010012038809DF83C0020B10FA91B98E9 +:10D15000F9F7FFFF8246BAF1000F33D01BE018E069 +:10D160008DF818E031E02078000712D5012E10D19B +:10D170000A208DF83C00E088ADF8400003201B99A0 +:10D1800007F0D2F90820ADF85000C1E648067FF557 +:10D19000F6AC4FF0040A2088BDF8501008432080F8 +:10D1A000BDF8500080050BD5A18FA1F57F40FE385A +:10D1B00006D11E98E06228982063A6864FF0030AE5 +:10D1C0005046A1E49DF8180078B1012089F80000CC +:10D1D000297889F80110BDF81C10A9F802109DF8F3 +:10D1E000181089F80410052038802088BDF85010E8 +:10D1F00088432080E4E72DE9FF4F8846087895B002 +:10D20000012181404FF20900249C0140ADF820101B +:10D210002088DDF88890A0F57F424FF0000AFF3AA1 +:10D2200006D039B1000705D5012019B0BDE8F08F4F +:10D230000820FAE7239E4FF0000B0EA886F800B0F6 +:10D2400018995D460988ADF83410A8498DF81CB0CE +:10D25000179A0A718DF838B0086098F80000012814 +:10D260003BD0022809D003286FD1307820F03F004E +:10D270001D303070B8F80400E08098F800100320EA +:10D28000022904D1317821F03F011B31317094F82B +:10D290004610090759D505ABB9F1000F13D000218D +:10D2A00002AA82E80B000720CDE90009BDF834008E +:10D2B000B8F80410C01E83B20022159800F0A8FD33 +:10D2C0000028D1D101E0F11CEAE7B8F80400A6F883 +:10D2D0000100BDF81400C01C04E198F805108DF899 +:10D2E0001C1098F80400012806D04FF4007A022898 +:10D2F0002CD00328B8D16CE12188B8F8080011F4CB +:10D300000061ADF8201020D017281CD3B4F84010CD +:10D31000814218D3B4F84410172901D3814212D1A5 +:10D32000317821F03F01C91C3170A6F801000321BA +:10D33000ADF83410A4F8440094F8460020F0020040 +:10D3400084F8460065E105257EE177E1208808F153 +:10D35000080700F4FE60ADF8200010F0F00F1BD0BD +:10D3600010F0C00F03D03888228B9042EBD199B9CE +:10D37000B878C00710D0B9680720CDE902B1CDF860 +:10D3800004B00090CDF810B0FB88BA8839881598A1 +:10D3900000F014FB0028D6D12398BDF82010401CC3 +:10D3A00080294ED006DC10290DD020290BD0402931 +:10D3B00087D124E0B1F5807F6ED051457ED0B1F5A4 +:10D3C000806F97D1DEE0C80601D5082000E010206C +:10D3D00082460DA907AA0520CDE902218DF8380063 +:10D3E000ADF83CB0CDE9049608A93888CDE9000134 +:10D3F0005346072221461598FFF7B4F8A8E09DF898 +:10D400001C2001214FF00A0A002A9BD105ABB9F17B +:10D41000000F00D00020CDE902100720CDE900095F +:10D42000BDF834000493401E83B2218B002215986E +:10D4300000F0EEFC8DF81C000B203070BDF81400DD +:10D4400020E09DF81C2001214FF00C0A002A22D177 +:10D4500013ABB9F1000F00D00020CDE90210072076 +:10D46000CDE900090493BDF83400228C401E83B23C +:10D47000218B159800F0CCFC8DF81C000D2030702D +:10D48000BDF84C00401CADF8340005208DF8380084 +:10D49000208BADF83C00BCE03888218B88427FF4BB +:10D4A00052AF9DF81C004FF0120A00281CD1606A90 +:10D4B000A8B1B878C0073FF446AF00E018E0BA68FA +:10D4C0000720CDE902B2CDF804B00090CDF810B03D +:10D4D000FB88BA88159800F071FA8DF81C001320AB +:10D4E00030700120ADF8340093E0000054000020BB +:10D4F0003988208B8142D2D19DF81C004FF0160A4A +:10D500000028A06B08D0E0B34FF6FF7000215F4603 +:10D51000ADF808B0019027E068B1B978C907BED16D +:10D52000E18F0DAB0844821D03968DE80C02438801 +:10D530008288018809E0B878C007BCD0BA680DAB12 +:10D5400003968DE80C02BB88FA881598FFF7F3F96B +:10D5500005005ED0072D72D076E0019005AA02A9E1 +:10D560002046FFF729F90146E28FBDF80800824204 +:10D5700001D00029F1D0E08FA16B08440780019809 +:10D58000E08746E09DF81C004FF0180A40B1208B60 +:10D59000C8B13888208321461598FFF796F938E0FE +:10D5A00004F118000090237E012221461598FFF710 +:10D5B000A4F98DF81C000028EDD11920307001204D +:10D5C000ADF83400E7E7052521461598FFF77DF90A +:10D5D0003AE0208800F40070ADF8200050452DD1CD +:10D5E000A08FA0F57F41FE3901D006252CE0D8F8A8 +:10D5F00008004FF0160A48B1A063B8F80C10A187D4 +:10D600004FF6FF71E187A0F800B002E04FF6FF701F +:10D61000A087BDF8200030F47F611AD07823002263 +:10D620000320159906F0D6FE98F800002071208896 +:10D63000BDF82010084320800EE000E00725208878 +:10D64000BDF8201088432080208810F47F6F1CD004 +:10D650003AE02188814321809DF8380020B10EA94D +:10D660001598F9F776FD05469DF81C000028EBD0CB +:10D6700086F801A001203070208B70809DF81C007E +:10D6800030710520ADF83400DEE7A18EE1B11898C5 +:10D690000DAB0088ADF834002398CDE90304CDE943 +:10D6A0000139206B0090E36A179A1598FFF7FCF98F +:10D6B000054601208DF838000EA91598F9F749FDA7 +:10D6C00000B10546A4F834B094F8460040070AD5E6 +:10D6D0002046FFF7A0F910F03E0F04D114F8460FD2 +:10D6E00020F0040020701898BDF8341001802846FE +:10D6F0009BE500B585B0032806D102208DF8000017 +:10D7000088B26946F9F725FD05B000BD10B5384C63 +:10D710000B782268012B02D0022B2AD111E013785A +:10D720000BB1052B01D10423137023688A889A80DA +:10D730002268CB88D38022680B8913814989518163 +:10D740000DE08B8893802268CB88D38022680B8978 +:10D7500013814B8953818B899381096911612168F8 +:10D76000F9F7F7FC226800210228117003D0002885 +:10D7700000D0812010BD832010BD806B002800D018 +:10D78000012070478178012909D10088B0F5205F18 +:10D7900003D042F60101884201D1002070470720E2 +:10D7A0007047F0B587B0002415460E460746ADF821 +:10D7B000144010E0069801882980811DCDE90241BE +:10D7C0000721019404940091838842880188384697 +:10D7D00000F0F4F830B906AA05A93046FEF7ECFFD0 +:10D7E0000028E7D00A2800D1002007B0F0BD0000D3 +:10D7F0005400002010B58B7883B102789A4205D18D +:10D800000B885BB102E08B79091D4BB18B789A4292 +:10D81000F9D1B0F801300C88A342F4D1002010BD3A +:10D82000812010BD072826D012B1012A27D103E09C +:10D83000497801F0070102E04978C1F3C2010529E6 +:10D840001DD2DFE801F00318080C12000AB1032012 +:10D8500070470220704704280DD250B10DE0052812 +:10D8600009D2801E022808D303E0062803D003282B +:10D8700003D005207047002070470F20704781209B +:10D880007047C0B282060BD4000607D5FE48807AE6 +:10D890004143C01D01EBD00080B27047084670477D +:10D8A0000020704770B513880B800B781C0625D5B7 +:10D8B000F54CA47A844204D843F01000087000208C +:10D8C00070BD956800F0070605EBD0052D78F54092 +:10D8D00065F304130B701378D17803F0030341EA66 +:10D8E000032140F20123B1FBF3F503FB151192680C +:10D8F000E41D00FB012000EBD40070BD906870BDFA +:10D9000037B51446BDF8041011809DF804100A06BE +:10D910001ED5C1F30013DC49A568897A814208D875 +:10D92000FE2811D1C91DC9085A42284617F089F9A5 +:10D930000AE005EBD00100F00702012508789540C8 +:10D94000A843934018430870207820F010002070FE +:10D950003EBD2DE9F0410746C81C0E4620F00300ED +:10D96000B04202D08620BDE8F081C74D0020344689 +:10D970002E60AF802881AA72E8801AE0E988491CED +:10D98000E980810614D4E17800F0030041EA002028 +:10D9900040F20121B0FBF1F201FB12012068FFF718 +:10D9A00070FF2989084480B22881381A3044A06069 +:10D9B0000C3420784107E1D40020D4E72DE9FF4F53 +:10D9C00089B01646DDE9168A0F46994623F440458C +:10D9D000084600F00DFB04000FD0099803F00AF987 +:10D9E0000290207800060AD5A748817A02988142E1 +:10D9F00005D887200DB0BDE8F08F0120FAE7224658 +:10DA000001A90298FFF74EFF834600208DF80C0015 +:10DA10004046B8F1070F1AD001222146FFF702FF56 +:10DA20000028E7D12078400611D502208DF80C009F +:10DA3000ADF81070BDF80400ADF81200ADF8146038 +:10DA40001898ADF81650CDF81CA0ADF818005FEA94 +:10DA5000094004D500252E46A84601270CE0217870 +:10DA6000E07801F0030140EA012040F20121B0FB1F +:10DA7000F1F2804601FB12875FEA494009D5B845BB +:10DA800007D1A178207901F0030140EA0120B042DA +:10DA900001D3BE4201D90720ACE7A8191FFA80F9CB +:10DAA000B94501D90D20A5E79DF80C0028B103A9BF +:10DAB0000998F9F74CFB00289CD1B84507D1A0780C +:10DAC0004FEA192161F30100A07084F804901A98BC +:10DAD00000B10580199850EA0A0027D0199830B192 +:10DAE0000BEB06002A46199917F034F80EE00BEB01 +:10DAF00006085746189E099803F0E8F92B46F61DCC +:10DB0000B5B239464246009502F0D3FD224601A93E +:10DB10000298FFF7C7FE9DF80400224620F010008F +:10DB20008DF80400DDE90110FFF7EAFE002061E74F +:10DB30002DE9FF4FDFF8509182461746B9F80610DD +:10DB4000D9F8000001EB410100EB810440F2012013 +:10DB5000B2FBF0F185B000FB11764D46DDF84C804C +:10DB600031460698FFF78DFE29682A898B46611A8F +:10DB70000C3101441144AB8889B28B4202D8842015 +:10DB800009B038E70699CDB2290603D5A90601D513 +:10DB90000620F5E7B9F806C00CF1010C1FFA8CFC61 +:10DBA000A9F806C0149909B1A1F800C0A90602D5C8 +:10DBB000C4F8088007E0104480B2A9F80800191AD8 +:10DBC00001EB0B00A0602246FE200699FFF798FEAD +:10DBD000E77026712078390A61F30100320AA178D2 +:10DBE00040F0040062F30101A17020709AF8020075 +:10DBF0006071BAF80000E08000262673280602D57E +:10DC000099F80A7000E00127A80601D54FF0000836 +:10DC10004D4600244FF007090FE0CDE90268019658 +:10DC2000CDF800900496E9882046129B089AFFF7E9 +:10DC3000C5FE0028A4D1641CE4B2BC42EDD3002090 +:10DC40009EE72DE9F047804600F0D2F9070005D0A5 +:10DC5000002644460C4D40F2012919E00120BDE8A0 +:10DC6000F087204600F0C4F90278C17802F0030280 +:10DC700041EA0222B2FBF9F309FB13210068FFF726 +:10DC800000FE304486B201E0E8050020641CA4B226 +:10DC9000E988601E8142E4DCA8F10100E88028895F +:10DCA000801B288100203870D9E710B5144631B1A7 +:10DCB000491E218002F09EFFA070002010BD0120AF +:10DCC00010BD10B5D24904460088CA88904201D3DD +:10DCD0000A2010BD096800EB400001EB800250797A +:10DCE000A072D08820819178107901F0030140EA78 +:10DCF0000120A081A078E11CFFF7D4FD20612088DD +:10DD0000401C2080E080002010BD0121018270476E +:10DD10002DE9FF4F85B04FF6FF788246A3F80080CB +:10DD200048681F460D4680788DF8060048680088D0 +:10DD3000ADF8040000208DF80A00088A0C88A04283 +:10DD400000D304462C8241E0288A401C2882701DA2 +:10DD50006968FFF74FFDB8BB3988414501D1601EA6 +:10DD600038806888A04236D3B178307901F0030159 +:10DD700040EA012901A9701DFFF73CFD20BB29895C +:10DD800041452CD0002231460798FFF74BFDD8B90A +:10DD90002989494518D1E9680391B5F80AC0D6F830 +:10DDA00008B05046CDF800C003F090F8DDF800C090 +:10DDB0005A460CF1070C1FFA8CFC4B460399CDF820 +:10DDC00000C002F040FC50B1641CA4B2204600F038 +:10DDD0000FF90600B8D1641E2C820A20D0E67C80A0 +:10DDE0007079B871F088B8803178F07801F003016B +:10DDF00040EA01207881A7F80C90504602F0FAFE24 +:10DE0000324607F10801FFF74DFD38610020B7E603 +:10DE10002DE9FF4F87B081461C469246DDF860B081 +:10DE2000DDF85480089800F0E3F805000CD048466F +:10DE300002F0E0FE2978090608D57549897A814201 +:10DE400004D887200BB0D6E50120FBE7CAF309060A +:10DE50002A4601A9FFF726FD0746149807281CD07B +:10DE600000222946FFF7DEFC0028EBD12878400687 +:10DE700013D501208DF808000898ADF80C00BDF806 +:10DE80000400ADF80E00ADF81060ADF8124002A924 +:10DE90004846F9F75CF90028D4D12978E87801F0F0 +:10DEA000030140EA0121AA78287902F0030240EA3E +:10DEB0000220564507D0B1F5007F04D9611E81428A +:10DEC00001DD0B20BEE7864201D90720BAE7801B9F +:10DED00085B2A54200D92546BBF1000F01D0ABF8B1 +:10DEE0000050179818B1B9192A4616F033FEB8F148 +:10DEF000000F0DD03E4448464446169F02F0F8FFFE +:10DF00002146FF1DBCB232462B46009402F005FCB0 +:10DF1000002097E72DE9F04107461D4616460846C2 +:10DF200000F066F804000BD0384602F063FE21785A +:10DF3000090607D53649897A814203D8872012E538 +:10DF4000012010E522463146FFF7ACFC65B121788F +:10DF5000E07801F0030140EA0120B0F5007F01D82C +:10DF6000012000E0002028700020FCE42DE9F041B1 +:10DF700007461D461646084600F03AF804000BD046 +:10DF8000384602F037FE2178090607D52049897AFC +:10DF9000814203D88720E6E40120E4E422463146AA +:10DFA000FFF7AEFCFF2D14D02178E07801F00302DA +:10DFB00040EA022040F20122B0FBF2F302FB130020 +:10DFC00015B900F2012080B2E070000A60F301018F +:10DFD00021700020C7E410B50C4600F009F828B104 +:10DFE000C18821804079A070002010BD012010BDA3 +:10DFF0000749CA88824209D340B1096800EB400052 +:10E000006FF00B0202EB800008447047002070475D +:10E01000E805002070B50346002002466FF02F058A +:10E020000EE09C5CA4F130060A2E02D34FF0FF30C4 +:10E0300070BD00EB800005EB4000521C2044D2B2C2 +:10E040008A42EED370BD30B50A240AE0B0FBF4F387 +:10E0500004FB13008D18303005F8010C521E1846D1 +:10E06000D2B2002AF2D130BD30B500234FF6FF7591 +:10E0700010E0040A44EA002084B2C85C6040C0F3A7 +:10E080000314604005EA00344440E0B25B1C84EABB +:10E0900040109BB29342ECD330BD000010B582B06B +:10E0A000694601F07CFF002818BFFFDF9DF80000E3 +:10E0B000002448B1019890F8DD0028B1019880F85B +:10E0C000DD4001980AF0F1FAF8488068A0F8D240E3 +:10E0D00002B010BD2DE9F04704460D46062002F0BF +:10E0E0006BFD0646072002F067FD304400F0FF0894 +:10E0F000002718EB050618BF4FF000091DD0208837 +:10E10000401C80B22080B04228BFA4F8009025882F +:10E11000454501D3B54209D30621284602F0A4FDA6 +:10E1200020B90721284602F09FFD10B10020BDE86C +:10E13000F087781CC7B2BE42E1D84FF6FF7020804E +:10E140001220BDE8F08770B582B007F057FC0DF0E3 +:10E150007FFBD74C4FF6FF7600256683A683D5A1BB +:10E160002570D1E90001CDE9000165706946A01C68 +:10E1700016F0A6FEA11C601C14F073FC25721B2077 +:10E1800060814FF4A471A181E08121820321A174F7 +:10E190000422E274A082E082A4F13E002183057093 +:10E1A0004680C6480570A4F110000570468002B094 +:10E1B00070BDF8B5BD4D17460E466860297007F072 +:10E1C00097FB4FF6FF70ADF8000000216846FFF79F +:10E1D00081FFA0B90621BDF8000002F057FD0446FA +:10E1E0000721BDF8000002F051FD002C1CBF0028E3 +:10E1F000FFDF00216846FFF76DFF0028EAD0FFF738 +:10E20000A2FF287812F03CFC10F034F829786868F6 +:10E2100014F039FB28780CF01FFD30460AF051F954 +:10E2200007F004FD297868680BF094FB39462878DC +:10E2300015F0F5F9BDE8F8400DF00ABB10B5012462 +:10E24000002A1CBF002010BD002908BF022105D0F4 +:10E25000012918BF002401D0204610BD0FF02EF96F +:10E26000FAE72DE9F04F8BB0040008BFFFDF022171 +:10E270008F4E06F11C00FFF72DFF002818BFFFDFAF +:10E28000B6F81CA0062002F097FC0546072002F015 +:10E2900093FC284400F0FF0808F1010000F0FF099A +:10E2A0004FF0000BB78B474525D120460FF0C8FA39 +:10E2B000002840F0CE803078002800F0CE8084F82E +:10E2C00001B014202070C4F804B0C4F808B0C4F839 +:10E2D0000CB0C4F810B0C4F814B0C4F818B0C4F846 +:10E2E0001CB00220C4F820B0207186F800B00BB03A +:10E2F0000120BDE8F08F4F4520D1204607F030FCCB +:10E3000000287DD008F032F8002859D0207817284E +:10E3100056D12079002853D0E088072102F0A4FCD0 +:10E32000050008BFFFDF288807F0FBFAE088072117 +:10E3300002F0ACFC002818BFFFDF8AE004A93846D1 +:10E3400001F02DFE00285BD19DF8100048B107F0C8 +:10E3500062FCB84254D0214638460BF004FA80B330 +:10E3600077E00FF000FBB84277D02146384614F032 +:10E37000ABF900286DD1059800F1580590F8D00050 +:10E3800018B9E87E08B1012000E00020079095F858 +:10E39000370000281CBF95F8380010F0020F1CD081 +:10E3A00084F801B00120207084F804B0E78095F86B +:10E3B00039002072688F6081A88FA08185F837B0FE +:10E3C00047E0FFE7059800F1580590F80C01002898 +:10E3D000DBD1E87E0028D8D0D5E7384602F088FDAA +:10E3E0000290002808BFFFDF029801F097FF50B1AC +:10E3F00084F801B00F212170E7802081012000E026 +:10E400002BE0207125E0384602F060FD02900028E4 +:10E4100008BFFFDF079800B3029801F0D6FFE0B114 +:10E420009DF8100038B90598D0F8F8004188B94235 +:10E4300008BF80F800B0384607F073FA84F801B0DE +:10E440000C20207084F804B0E780287F207285F8C3 +:10E450001BB00BB00120BDE8F08F022106F11C00BB +:10E46000FFF738FE18B9B08B50457FF41BAF0BB0E7 +:10E470002046BDE8F04F15F018B910B513F08CF830 +:10E48000042803D013F088F8052802D110F00FF902 +:10E4900028B90AF0EBFA20B107F08AFD08B10C2088 +:10E4A00010BD0DF021FA002010BD00005C0000201E +:10E4B00032060020FFFFFFFF1F0000006800002061 +:10E4C00010B50446007800281EBF0128122010BD98 +:10E4D00013F062F8042806D013F05EF8052802D085 +:10E4E0000AF0C4FA28B10DF04EFB00281CBF0C2026 +:10E4F00010BD2078002816BF02280020012004F15A +:10E500001703E21D611CBDE810400DF045BA10B5BF +:10E510000446007800281EBF0128122010BD13F009 +:10E520003BF8042803D013F037F8052802D110F087 +:10E53000BEF828B90AF09AFA20B107F039FD08B1FF +:10E540000C2010BD2078002816BF022800200120D2 +:10E55000611C0DF08FF9002814BF0020072010BDAA +:10E5600010B50DF013FB002814BF0020302010BDA3 +:10E5700010B5044613F010F8042806D013F00CF878 +:10E58000052802D00AF072FA08B10C2010BD20460E +:10E590000DF0F6FA002010BD10B512F0FDFF0428B2 +:10E5A00006D012F0F9FF052802D00AF05FFA28B170 +:10E5B0000DF0E9FA00281CBF0C2010BD0DF045FA43 +:10E5C000002010BDFF2181704FF6FF718180FE4950 +:10E5D00049680A7882718A880281498841810121CB +:10E5E00041700020704710B5002482B0022A18D074 +:10E5F00014DC12F10C0F14D008DC12F1280F1CBF30 +:10E6000012F1140F12F1100F11D10AE012F1080FDC +:10E610001CBF12F1040F002A09D102E0D31E052B02 +:10E6200005D8012807D0022809D003280BD01224CE +:10E6300002B0204610BD104607F093FEF8E71046E2 +:10E640000FF0D4FDF4E708461446694601F0A7FC34 +:10E65000002818BF0224EBD19DF80000019880F833 +:10E6600057400024E4E710B5134601220EF029F9C3 +:10E67000002010BD10B5044612F08EFF052804BF1F +:10E680000C2010BD204612F0E9F9002010BD10B595 +:10E69000044612F081FF042806D012F07DFF052801 +:10E6A00002D00AF0E3F908B10C2010BD2146002089 +:10E6B00007F0A5F9002010BD10B5044612F078FA55 +:10E6C00050B10AF0C6F938B1207809F01EFF207861 +:10E6D00010F026F8002010BD0C2010BD10B5044627 +:10E6E00012F05AFF042806D012F056FF052802D077 +:10E6F0000AF0BCF908B10C2010BD2146012007F03A +:10E700007EF9002010BD38B504464FF6FF70ADF815 +:10E710000000A079E179884213D021791F299CBF9C +:10E7200061791F290DD80022114615F0B1FB40B9BF +:10E730000022E079114615F0ABFB10B9207A0728CA +:10E7400001D9122038BD0AF091F960B912F024FF06 +:10E7500048B900216846FFF7BDFC20B1204606F00D +:10E760007CF9002038BD0C2038BD70B50446807897 +:10E77000002582B01A2825D00EDC162844D2DFE806 +:10E7800000F0434343434321434343434343434311 +:10E7900043434343432121212A2835D00BDCA0F1F8 +:10E7A0001E000C2830D2DFE800F02F2F2F2F2F2F44 +:10E7B0002F2F2F2F2F0D3A38042825D2DFE800F015 +:10E7C000240224022088B0F5706F1DD2012669460C +:10E7D00001F0E5FB00281EBF022002B070BD9DF8CD +:10E7E0000000002801980BBF00F1F40100F5B8719A +:10E7F00000F1F50300F27113024612D192F8D00035 +:10E8000092F8732052B903E002B04FF0120070BDCD +:10E81000002818BF042801D0087868B102B00C2085 +:10E8200070BD92F80C0192F87320002AF6D10028EE +:10E8300018BF0428F0D1F1E70E70A07818709DF889 +:10E84000000048B1019890F8DD0028B1019880F8E7 +:10E85000DD50019809F029FF02B0002070BDF0B52D +:10E8600083B00C46694601F09AFB28B1204616F0A9 +:10E8700011FB03B00220F0BD0198002700F15805FC +:10E8800000F1080685F840703146204616F018FB66 +:10E8900095F840000028F5D103B0F0BD2DE9F04116 +:10E8A000044691F8550091F856300D4610F00C0FC3 +:10E8B0004FF0000608BF00232189A0880EF068F9F8 +:10E8C000696A814228BFBDE8F081401A401C4108B6 +:10E8D000A0886FF00E07401A80B2A08022896FF0E6 +:10E8E0000D0C511A8BB2238195F85410628811F0E7 +:10E8F0000C0F28D0B0F5747F38BF304606D350389F +:10E90000C11700EB91600CEBA01080B2824238BFBF +:10E910001046608095F85510E08811F00C0F1BD060 +:10E92000B3F5747F38BF324607D3A3F15001CA173D +:10E9300001EB92610CEBA1118AB2904228BF104604 +:10E94000E080BDE8F08102291ABF0CEBD00080B254 +:10E9500007EB9000DAD1D8E702291ABF0CEBD301FC +:10E960008AB207EB9301E8D1E6E7F0B587B00C4631 +:10E97000054604A901F013FB00281CBF07B0F0BD39 +:10E980009DF81000002814BF002201220599B1F85B +:10E990004A30FB2B28BFFB23B1F84CC0BCF1FB0F66 +:10E9A00028BF4FF0FB0C094FD7E90006BF68009065 +:10E9B00001960297ADF80230ADF806C06846FFF741 +:10E9C0006DFF658004E000005C000020E450020060 +:10E9D000BDF80400E080BDF808006081BDF80200C9 +:10E9E000A080BDF80600208107B00020F0BD2DE911 +:10E9F000F04788B004460088694601F0D0FA070065 +:10EA00001CBF08B0BDE8F087B4F806C02289ACF19D +:10EA10001B011220E12924BF08B0BDE8F087B2F540 +:10EA2000A47F3CBF08B0BDE8F08744F29025AA421D +:10EA300084BF08B0BDE8F08700266388A188A3F1F1 +:10EA40001B08B8F1E10F24BF08B0BDE8F087B1F5AD +:10EA5000A47F27BF8846454508B0BDE8F087112050 +:10EA6000BCF1FB0F92BFB2F5296F08B0BDE8F0878B +:10EA7000FB2B92BFB1F5296F08B0BDE8F087208865 +:10EA800006A901F08CFA002818BFFFDF35D19DF8E8 +:10EA9000180000280CBF012200220799B1F84A0093 +:10EAA000FB2828BFFB20B1F84C30FB2B28BFFB23F1 +:10EAB000DFF834AADAF800C0DAF80490DAF808A02F +:10EAC000CDF808C0CDF80C90CDF810A0ADF80A0034 +:10EAD000ADF80E3002A8FFF7E1FEBDF80C0060F3C0 +:10EAE0001F45BDF8100060F31F48BDF80A0060F331 +:10EAF0000F05BDF80E0060F30F0862881FFA88F159 +:10EB0000092091423CBF08B0BDE8F087A9B2E28875 +:10EB100091423CBF08B0BDE8F0874FEA1841A28897 +:10EB2000238901EB15411A4491423CBF08B0BDE86E +:10EB3000F0879DF800004FF001090028019840F689 +:10EB4000480808D000F5CD7580F89B91019890F8A1 +:10EB5000DE0140B307E000F5827580F80591019869 +:10EB600090F8280108B13A2718E0E08868806088AA +:10EB7000E8802089A880A088288101222846019960 +:10EB8000FFF78CFEA888404528BF40F64800A880C3 +:10EB9000288940451DD2288185F800906E7008B004 +:10EBA0003846BDE8F087E08868806088E880208982 +:10EBB000A880A0882881002228460199FFF76EFED0 +:10EBC000A888404528BF40F64800A88028894045CD +:10EBD000E1D340F64800DEE709E710B5044612F03D +:10EBE000DBFC042806D012F0D7FC052802D009F07F +:10EBF0003DFF28B10CF0C7FF00281CBF0C2010BD42 +:10EC00002078002816BF022800200120E279611C2C +:10EC10000DF03DF9002814BF0020022010BD2DE9A1 +:10EC2000F04383B006460088694601F0B8F9070052 +:10EC30001CBF03B0BDE8F083B088002818BF0128CE +:10EC400005D002281EBF122003B0BDE8F083E946BC +:10EC5000B17800290CBF07250D46F07800280CBFBD +:10EC60000724044615F0040F16BF002900210121D6 +:10EC700014F0040F16BF00280020012001424FF0BD +:10EC800009080AD001221146484601F0A0F90028DF +:10EC900038D003B04046BDE8F08381B100220121A5 +:10ECA000484601F094F90028F3D114F0040F29D05C +:10ECB00001221146484601F08AF918B343E080B1B9 +:10ECC00001220021484601F082F90028E1D115F027 +:10ECD000040F17D001221146484601F078F988B197 +:10ECE00025E015F0040F04F0040023D0C0B1012288 +:10ECF0001146484601F06BF900281CBF25F00405B9 +:10ED000024F0040400219DF800200120002A019A2B +:10ED10001CD082F8A501019A92F8F221BAB33FE023 +:10ED200000220121484601F052F90028EAD025F0DE +:10ED30000405E7E70028E5D001220021484601F05C +:10ED400046F90028DED024F00404DBE782F80F0146 +:10ED5000019A92F834213AB9019A92F80E211AB91F +:10ED6000019A92F87D200AB13A270CE0019A82F8C4 +:10ED70000E01019880F81051019880F81141019A14 +:10ED8000B088A2F81201019880F80F111AE0FFE78D +:10ED9000019A92F8A4211AB9019A92F87D200AB139 +:10EDA0003A270CE0019A82F8A401019880F8A65154 +:10EDB000019880F8A741019AB088A2F8A8010198AB +:10EDC00080F8A51103B03846BDE8F083817831F0B2 +:10EDD000070107BFC17831F00701122070471EE715 +:10EDE00002781221012A18BF002A05D0022A18BF72 +:10EDF000032A01D0084670474278002A18BF012A2A +:10EE000003D0022A18BF032AF4D1C27B12B9827838 +:10EE1000012AEFD1837833F00502EBD113F0050F0F +:10EE2000E8D030B4C278C488B0F80AC0002A18BF4D +:10EE3000012A04D1042C28BFBCF1040F02D230BC3B +:10EE400008467047052B07D0827B002AF7D0072A97 +:10EE5000F5D830BC01F0D6B80279B0F808C0838983 +:10EE6000002A18BF012AEAD1BCF1040F28BF042BE5 +:10EE7000E5D3E9E710B5044602781220012A0FD045 +:10EE8000002A18BF10BD012A26D012F085FB0528E4 +:10EE900004D011F01AFD002808BF10BD0C2010BDD1 +:10EEA0006178002918BF012906D0022918BF10BDBA +:10EEB000A188002908BF10BD6388002B1CBFA18852 +:10EEC0000029E0D003EB83035B0001EB8101B3EB8E +:10EED000012F28BF10BDD6E70FF015FB002804BF97 +:10EEE000122010BD0FF035FB00200FF0CEFB0028E4 +:10EEF00018BF10BD60780FF0BAFB002818BF10BD16 +:10EF0000A1886088BDE8104011F0A0BE427A12F0DE +:10EF1000070F0FD032F007030CD1012A18BF022AC5 +:10EF200003D0042A1CBF1120704790F83A301BB957 +:10EF3000012A01D0122070472DE9F00F4FF0000C8C +:10EF400012F0010F40F6774640F67B4337D069B1A7 +:10EF50004489B0F810C0271F43F6FD75AF423CBF8F +:10EF6000ACF10407AF4226D2644524D3C78AB0F877 +:10EF70001CC0458C048DB0F82E80B0F83490A7F1F9 +:10EF8000060A9A453CBFACF1060A9A4513D267457A +:10EF900098BFB5F5FA7F3CBFA4F10A07B7420AD281 +:10EFA0006D1C05FB0CFCBCEB840F04DAC84598BF54 +:10EFB0004FF0010C03D9BDE8F00F3020704712F07C +:10EFC000020F27D000EB4C04B4F81690A58BB4F8D0 +:10EFD0002280278DB4F82EA0A48EA9F1060B5B45E4 +:10EFE00084BFA5F1060B5B45E5D9A94598BFB8F5E7 +:10EFF000FA7F3CBFA7F10A09B145DCD208F101084C +:10F0000008FB05F5B5EB870FD5DAA24598BF0CF1E3 +:10F01000010CD0D812F0040F22D000EB4C02D78A9A +:10F02000B2F81CC0558C148DB2F82E80928EA7F1C8 +:10F0300006094B4584BFACF106094B45BBD9674572 +:10F0400098BFB5F5FA7F3CBFA4F10A03B342B2D230 +:10F050006B1C03FB0CF3B3EB840FACDA9045AAD81E +:10F0600002782AB1012A13D0BDE8F00F12207047B0 +:10F070000029817808D0002918BF012908D0022969 +:10F0800018BF032904D0EFE7002918BF0129EBD1ED +:10F090004078002818BF012803D0022818BF032891 +:10F0A000E2D1BDE8F00F0020704700212EE7017883 +:10F0B00011F0010F02D0406814F0CABA14F097BAE8 +:10F0C0002DE9F04F91B00D460246AFF61841D1E957 +:10F0D0000001CDE90E0111462846FFF717FF060093 +:10F0E0001CBF11B0BDE8F08F12F056FA04280CD006 +:10F0F00012F052FA052808D0FC4F387828B90EF0E3 +:10F1000032FCA0F57F41FF3903D011B00C20BDE8DF +:10F11000F08FF7480B90F7480C90F7480D900BAA2A +:10F12000062110A801F06EFD040002BF092011B0F5 +:10F13000BDE8F08F03210DF02EF9EC48818AA4F888 +:10F140004A10C28AA4F84C20C37C0093837C208898 +:10F1500001F045FE002818BFFFDF208806F0E0FB25 +:10F16000278804F10E094FF0000B4FF00A0A042122 +:10F17000484604F000FF48460DF0DFFA062001F093 +:10F180001BFD80461DE005A9062001F0F6FC05A840 +:10F1900001F0D1FC5FEA000B11D100BFBDF81800EF +:10F1A000B84206D00798042249460E3015F0A6FC56 +:10F1B00070B105A801F0BFFC5FEA000BEED0A8F12A +:10F1C0000108B8F1000F07DDBBF1000FDBD007E04D +:10F1D00048460DF0BBFAF2E7BBF1000F08BFFFDFB6 +:10F1E000D9F800000DF0CDFABAF1010A01D00028DB +:10F1F000BDD0C2A004F1120700680190032101A84C +:10F2000004F090FE002001A90A5C3A54401CC0B2F0 +:10F210000328F9D3A88B6080688CA080288DE080BB +:10F22000687A10F0040F18BF08277CD0DFF8BC8282 +:10F230003A461146B8F8180011F071FD0146A06277 +:10F24000204611F0AFFD17F00C0F09D001231A462C +:10F25000214600200DF0A5FC616A884288BF09267E +:10F260004FF0000984F85E9084F85F90A878002839 +:10F2700016BF0228002001206076D5F80300C4F8EC +:10F280001A00B5F80700E0830EA904F1080015F094 +:10F2900017FE4FF0010A84F800A1CDF81CA0B4F8C5 +:10F2A0004C0004F58277FB2828BFFB20B8F80A1031 +:10F2B000814238BF084694F855104FF4747C11F021 +:10F2C0000C0F1CBF0CEB80118AB26BD0B8F80C107D +:10F2D000914238BF0A46B4F84A10FB2928BFFB21E7 +:10F2E000B8F80E308B4238BF194694F854B01BF072 +:10F2F0000C0F1CBF0CEB81139BB25BD0B8F810C095 +:10F300009C4538BF63461B2918BFB3F5A47F5AD06C +:10F31000F8803A817980BB8021463846079AFFF70A +:10F32000BDFAB88800E031E040F64801884228BFC5 +:10F3300040F64800B8803889884228BF40F6480027 +:10F34000388187F800A000BF8DF800900121684641 +:10F3500004F0E8FD9DF8000000F00701C0F3C102D1 +:10F360001144C0F3401008448DF80000401D207681 +:10F3700009283CBF08302076002120460DF00BF80C +:10F3800068780FF0CBF8002E74D122E010F0010F56 +:10F3900018BF01277FF44AAF10F0020F14BF0227F5 +:10F3A000002743E7022907BF81003C31C1007031CB +:10F3B0008AB28BE7BBF1020F07BF8B003C33CB0057 +:10F3C00070339BB29AE71B2818BFB2F5A47F9FD178 +:10F3D000BAE7A9782878EA1C0FF073F8002808BF6C +:10F3E000122647D00FF0B5F8A9782878EA1C0FF05C +:10F3F00018F906003ED1687A10F0040F14BF0820F7 +:10F4000001200FF053F8060034D1214603200FF0FD +:10F4100032F906002ED1697A8DF80010697A11F060 +:10F42000010F06D06889ADF80200288AADF8040003 +:10F430000120697A11F0020F18BF401C11F0040F6F +:10F4400007D005EB40004189ADF80610008AADF801 +:10F450000800684611F0B9FB064695F83A00002806 +:10F4600018BF01200FF028F826B9204611F047FBFD +:10F47000060009D0208806F054FA2088062101F001 +:10F4800005FC002818BFFFDF304611B0BDE8F08F43 +:10F490000146002014E638B5144C207870B912F0FB +:10F4A0007BF8052805D00EF05EFAA0F57F41FF3904 +:10F4B00004D0684611F005FC10B113E00C2038BDF3 +:10F4C0000098008806F02DFA00980621008801F0C7 +:10F4D000DDFB002818BFFFDF0120207008480078FE +:10F4E000FCF788FC002038BDE45002003206002002 +:10F4F000F4050020680000202206002011223300BD +:10F500005C00002070B4B0F802C08188C388028912 +:10F5100044898089ACF1060640F67B45AE423CBF8B +:10F520008E1FAE4214D28C4598BFB3F5FA7F3EBF12 +:10F53000A2F10A0CFE4D15EB0C0509D25B1C5943D8 +:10F54000B1EB820F04DA84429EBF002070BC70478A +:10F55000302070BC70472DE9F047B0F802C0044677 +:10F560008188C388028947898689ACF1060940F6FB +:10F570007B4830200025C1453ABFA1F10609C145AD +:10F58000BDE8F0878C4598BFB3F5FA7F3DBFA2F187 +:10F590000A0CDFF89C8318EB0C08BDE8F0875B1CB5 +:10F5A0005943B1EB820FA8BFBDE8F087B74288BFCF +:10F5B000BDE8F0872088062101F056FB68B190F87D +:10F5C000D01090F8732042B9002918BF042904D044 +:10F5D000D0F8F8100A781AB106E00220BDE8F087EA +:10F5E000D0F84421127812B13A20BDE8F087052204 +:10F5F0008A71D0F8F8100D81D0F8F820A1885181D7 +:10F60000D0F8F820E1889181D0F8F8202189D181C3 +:10F61000D0F8F8100A894B899A429EBF8A79082A45 +:10F620009A4224BF1220BDE8F08722884A80D0F891 +:10F63000F800022101700020BDE8F087F0B583B02A +:10F6400005460DF0D9F8002802BF122003B0F0BD26 +:10F650000026B84F012429467C70B81C15F030FCF8 +:10F660007E706946062001F088FA002818BFFFDF87 +:10F67000684601F060FA002808BFBDF804500AD1BE +:10F68000029880F80041684601F055FA18B9BDF8B3 +:10F690000400A842F4D103B00020F0BD10B5044628 +:10F6A0000088062101F0E0FA68B190F8D01090F8D7 +:10F6B000732042B9002918BF042904D0D0F8F810EB +:10F6C0000A7812B105E0022010BDD0F8442112786A +:10F6D0000AB13A2010BD90F8962012F0010F04BF35 +:10F6E0000C2010BDD4F80220D4F806304A608B609C +:10F6F000D0F8F81062898A81D0F8F810E268C1F871 +:10F700000E202269C1F812206269C1F81620A26990 +:10F71000C1F81A20D0F8F82003211170D0F8F800B1 +:10F7200021884180002010BDF8B516460F460446DA +:10F7300009F09CF900281CBF0C20F8BD207812238A +:10F74000EF2801D91846F8BD6088ADF8000010F028 +:10F75000100F4FF000050CD010F0010F00F0020167 +:10F760001BD0B1B110F0080F08BF10F0040F1ED06D +:10F770001AE010F0080FE5D110F0200F18BF10F0BC +:10F78000030FDFD110F0010F18BF10F0020FD9D115 +:10F790000DE010F0040F0AD106E029B110F0080FB7 +:10F7A00008BF10F0040F02D010F00F0FCAD1B4F848 +:10F7B00002C01CF0080F08D1D4E90110884228BF0C +:10F7C0002029BFD3B0F1807FBCD2207B0028B9D0E4 +:10F7D0000728B7D8607B002818BF012803D002286B +:10F7E00018BF0328AED11CF0040F03D1022818BFA4 +:10F7F000032807D1A07B002818BF0128A2D11CF044 +:10F80000040F08D1607D002818BF012803D002280A +:10F8100018BF032896D1E07D1CF0100F02D00128FC +:10F8200011D08FE7012818BF03288BD11CF0100FCF +:10F8300009D1607E01281CBF0228032882D1A07E46 +:10F840000F283FF67FAFE07E002818BF01287FF425 +:10F8500079AF1CF0400F1CBF1120F8BD3D70A5759D +:10F8600056B9FF208DF800006946002006F065FDBE +:10F870006946002006F04CFD2046BDE8F84006F041 +:10F8800074BC002250E72DE9F0470446C0780F46CB +:10F89000122510B106F0DBFC50B1607804280AD0C4 +:10F8A00094F8038094F800906678B8F1FB0F12D9B1 +:10F8B0002846BDE8F08709F0D9F80028F8D006F00E +:10F8C0001EFD0028F4D106F0EEF9002804BFE07810 +:10F8D0000028EDD1E4E71FB1B8F11F0F23D9E7E706 +:10F8E00006F0E1F928B1B8F11F0F98BF032E07D039 +:10F8F000DEE7032E18BF042E02D0B8F1000FD7D0D8 +:10F9000009F0B4F8002818BF032E04D0042E1CBF41 +:10F910000C20BDE8F087484606F0BDF9002804BF7A +:10F920004220BDE8F087E07861781F2804E00000FD +:10F9300089F3FFFF3206002098BF03291CBF112066 +:10F94000BDE8F087211D06F0F8FC0020BDE8F08737 +:10F95000002198E72DE9F0470446C0788846122731 +:10F9600010B106F00AFD38B16578042D04D0E678B0 +:10F9700094F80090FB2E02D93846BDE8F087B8F124 +:10F98000000F02D01F2E21D9F6E706F08CF920B126 +:10F990001F2E98BF032D06D0EEE7032D18BF042DB0 +:10F9A00001D0002EE8D009F061F8002818BF032D1F +:10F9B00004D0042D1CBF0C20BDE8F087484606F09B +:10F9C0006AF9002804BF4220BDE8F087E07861783A +:10F9D0001F2898BF03291CBF1120BDE8F087211DF7 +:10F9E00006F096FC0020BDE8F0870021B2E72DE983 +:10F9F000F04304464078422583B0012808D8A07817 +:10FA000006F049F920B120781225012804D0A0B1D0 +:10FA100003B02846BDE8F08306F0C3FC20B1A088FF +:10FA20000028F5D08028F3D806F0C2FC68B16078D1 +:10FA30000028EDD0207801280BD007F077FE04468F +:10FA400008F08CFC002800F0038103B00C20BDE816 +:10FA5000F08306F0B5FA38B906F09CFC002802BF26 +:10FA6000122003B0BDE8F08309F000F80028ECD1C3 +:10FA700006F0D1F8A0F57F41FF39E6D106F0BFFAD4 +:10FA8000A08842F2107100FB01F6A079314606F021 +:10FA9000EFFB06F06BFCF8B10022072101A801F092 +:10FAA000B1F8040049D0FE480321846020460CF0E0 +:10FAB00079FB204607F067F8FA4DA88AA4F84A00B7 +:10FAC000E88AA4F84C0006F0EEF870B1288B01210A +:10FAD00008F0C8FDA06210E03146002008F018FDD3 +:10FAE000002818BFFFDF00F0BEB806F063FC2A8BC9 +:10FAF0000146104608F0B6FDA062014600222046ED +:10FB000007F017FE06F0CFF84FF00108C8B906F06D +:10FB100051FC10F00C0F14D001231A462146184650 +:10FB20000DF03FF8616A88420BD90721BDF8040047 +:10FB300001F0ACF8002818BFFFDF092003B0BDE8D2 +:10FB4000F083E87C0090AB7CEA8AA98A208801F0E7 +:10FB500046F9002818BFFFDF208805F0E1FE314696 +:10FB6000204608F0D5FC002818BFFFDF2146B4F876 +:10FB70004C00002204F5CD76FB2828BFFB206B89C2 +:10FB8000834238BF184691F855304FF4747413F01F +:10FB90000C0F1CBF04EB80131FFA83FC3BD000BF8B +:10FBA000B5F80C90E14528BFE146B1F84A30FB2B8F +:10FBB00028BFFB23B5F80EC09C4538BF634691F8BB +:10FBC00054C01CF00C0F1CBF04EB831C1FFA8CF7F5 +:10FBD0002AD02C8ABC4228BF3C461B2B18BFB4F548 +:10FBE000A47F2FD0F080A6F808907380B4803046B0 +:10FBF000FEF754FEB08840F64801884228BF40F620 +:10FC00004800B0803089884228BF40F648003081E3 +:10FC100086F8008027E0022B07BF83003C33C30037 +:10FC200070331FFA83FCBBE7BCF1020F07BF4FEA3A +:10FC3000830C0CF13C0C4FEAC30C0CF1700C1FFA56 +:10FC40008CF7C6E71B2818BFB9F5A47FCAD10AE014 +:10FC50004CB1208805F065FE2088072101F016F8D8 +:10FC6000002818BFFFDF002003B0BDE8F0830021AB +:10FC7000BDE610B50C46072100F0F6FF002804BFD2 +:10FC8000022010BD90F8731109B10C2010BD90F83E +:10FC90006510142912BF152990F8C0110029F4D15C +:10FCA0002168C0F874116168C0F87811A168C0F8C3 +:10FCB0007C11E168C0F88011012180F873110020E7 +:10FCC00010BD10B5072100F0CFFF002804BF0220AF +:10FCD00010BD90F8731109B10C2010BD90F865109B +:10FCE000142918BF1529F7D1022180F873110020BB +:10FCF00010BDF0B50E464BF68032122183B096420D +:10FD000017D8B6B1694600F04AF900281CBF03B005 +:10FD1000F0BD019800F15807841C25883246294619 +:10FD200038460CF035FA2088A842F6D103B00020FE +:10FD3000F0BD03B00846F0BD10B582B0044600889F +:10FD4000694600F02CF900281CBF02B010BD0198D4 +:10FD5000A37800F1580190F82C209A4202BF0C20A1 +:10FD600002B010BD7F220A728A720022CA72E17844 +:10FD700080F82D10217980F82E10A17880F82C10B1 +:10FD800002B0104610BD10B582B00C46694600F0B6 +:10FD900006F900281CBF02B010BD019890F873004E +:10FDA000002818BF0120207002B0002010BD30B51F +:10FDB00083B00D461446694600F0F1F800281CBFD8 +:10FDC00003B030BD019890F82C0001281EBF0C2014 +:10FDD00003B030BD019890F86010297090F8610070 +:10FDE000207003B0002030BD70B50D4616460721C7 +:10FDF00000F03AFF002804BF022070BD83884FF056 +:10FE0000010CC28841880CEB430C65451AD342F2C1 +:10FE1000107C02FB0CF240F6C41C01FB0CF1B2FB9F +:10FE2000F1F1491E8CB2B4F5FA7F88BF4FF4FA7431 +:10FE3000A54238BF2C46621C591CB2FBF1F251435B +:10FE4000491E8BB290F8AC11002908BF038433809F +:10FE5000002070BD10B50C46072100F005FF0028FA +:10FE600004BF022010BD80F8DF40002C1EBF90F8B8 +:10FE7000DD10002908F019FC002010BD01780029D0 +:10FE80001CBF4178002915D041881B2921BF8188DA +:10FE90001B29C18802290DD302680349406805E087 +:10FEA0005C00002032060020F40500200A65486549 +:10FEB000002070471220704710B5044610F02CFF48 +:10FEC000204608F09AFB002010BD2DE9F0411646AF +:10FED0000F46044601221146384610F020FF054621 +:10FEE0000121384608F0BEFB854228BF2846012381 +:10FEF000E100503189B2E631884206D901F196021B +:10FF0000401AB0FBF2F0401C83B233800020BDE801 +:10FF1000F08110B5044611F03FFB042806D011F023 +:10FF20003BFB052802D008F0A1FD08B10C2010BD54 +:10FF3000601C0BF082FF207800F0010006F05AF8F8 +:10FF4000207800F001000EF0FFFA002010BD10B57F +:10FF50000446072000F022FE00281CBF0C2010BD24 +:10FF6000207810F0010F11D000226078114613F0B4 +:10FF70008FFF00281CBF122010BDA0680AF0E9F90D +:10FF8000607861680AF0EEF9002010BD00200AF0E8 +:10FF9000E0F9002108460AF0E5F9002010BD70B52F +:10FFA0000C460546062100F05FFE606010B100209F +:10FFB000207070BD0721284600F056FE60600028C2 +:10FFC00004BF022070BD01202070002070BD10B55C +:10FFD00004468C46007813466168624638B10120B9 +:10FFE0000CF0DFFD6168496A884209D906E000200B +:10FFF0000CF0D7FD6168496A884201D9012010BD23 +:020000040001F9 +:10000000002010BD10B586B0044611F0C5FA0428D2 +:1000100041D011F0C1FA05283DD0A0788DF8080034 +:10002000A0788DF8000060788DF8040020788DF8B5 +:100030000300A07B8DF80500E07B002818BF01209D +:100040008DF80600A07810F0010F27D0E078012885 +:1000500008BF022003D000280CBF012000208DF82B +:100060000100E088ADF80A006089ADF80C00A078C6 +:1000700010F0040F26D02079012808BF022003D0F9 +:1000800000280CBF012000208DF802002089ADF867 +:100090000E00A08914E006B00C2010BD10F0040F73 +:1000A00010D0E078012808BF022003D000280CBF40 +:1000B000012000208DF80200E088ADF80E00608974 +:1000C000ADF8100002A810F080FD002804BF6846BB +:1000D0000EF02BFB06B010BD30B5058825F40044AA +:1000E00021448CB24FF4004194420AD2121B92B2C6 +:1000F0001B339A4201D2A94307E005F40041214392 +:1001000003E0A21A92B2A9431143018030BD084412 +:10011000083050434A31084480B2704770B51D46DC +:1001200016460B46044629463046049AFFF7EFFF71 +:100130000646B34200D2FFDF2821204614F0ABFD73 +:100140004FF6FF70A082283EB0B265776080B0F5B0 +:10015000004F00D9FFDF618805F13C00814200D2E9 +:10016000FFDF60880835401B343880B220801B28B0 +:1001700000D21B2020800020A07770BD81618861A3 +:1001800070472DE9F05F0D46C188044600F128094B +:10019000008921F4004620F4004800F062FB10B111 +:1001A0000020BDE8F09F4FF0000A4FF0010BB04572 +:1001B0000CD9617FA8EB0600401A0838854219DC8B +:1001C00009EB06000021058041801AE06088617F0C +:1001D000801B471A083F0DD41B2F00DAFFDFBD42FA +:1001E00001DC294600E0B9B2681A0204120C04D0FE +:1001F000424502DD84F817A0D2E709EB0600018032 +:10020000428084F817B0CCE770B5044600F12802AC +:10021000C088E37D20F400402BB11044028843885D +:1002200013448B4201D2002070BD00258A4202D3C4 +:100230000180458008E0891A0904090C418003D037 +:10024000A01D00F01EFB08E0637F008808331844FF +:1002500081B26288A01DFFF73FFFE575012070BDE8 +:1002600070B5034600F12804C588808820F4004654 +:100270002644A84202D10020188270BD9889358892 +:10028000A84206D3401B75882D1A2044ADB2C01E6B +:1002900005E02C1AA5B25C7F20443044401D0C8838 +:1002A000AC4200D90D809C8924B1002414700988C7 +:1002B000198270BD0124F9E770B5044600F12801E8 +:1002C000808820F400404518208A002825D0A18984 +:1002D000084480B2A08129886A881144814200D2F2 +:1002E000FFDF2888698800260844A189884212D146 +:1002F000A069807F2871698819B1201D00F0C1FABA +:1003000008E0637F28880833184481B26288201D82 +:10031000FFF7E2FEA6812682012070BD2DE9F041A3 +:10032000418987880026044600F12805B94218D083 +:1003300004F10A0821F400402844418819B14046DC +:1003400000F09FFA08E0637F00880833184481B208 +:1003500062884046FFF7C0FE761C6189B6B2B9429A +:10036000E8D13046BDE8F0812DE9F04104460B4666 +:1003700027892830A68827F40041B4F80A80014470 +:100380000D46B74201D10020ECE70AB1481D1060CC +:1003900023B1627F691D184614F0DCFB2E88698842 +:1003A00004F1080021B18A1996B200F06AFA06E059 +:1003B000637F62880833991989B2FFF78DFE47453C +:1003C00001D1208960813046CCE78188C088814294 +:1003D00001D1012070470020704701898088814247 +:1003E00001D1012070470020704770B58588C3880F +:1003F00000F1280425F4004223F4004114449D42F6 +:100400001AD08389058A5E1925886388EC18A6426C +:1004100014D313B18B4211D30EE0437F08325C1921 +:100420002244408892B2801A80B22333984201D28B +:1004300011B103E08A4201D1002070BD012070BDDE +:100440002DE9F0478846C1880446008921F400461A +:1004500004F1280720F4004507EB060900F001FA33 +:10046000002178BBB54204D9627FA81B801A002501 +:1004700003E06088627F801B801A083823D4E289F9 +:1004800062B1B9F80020B9F802303BB1E81A21771F +:10049000404518DBE0893844801A09E0801A21774A +:1004A00040450ADB607FE189083030443944084424 +:1004B000C01EA4F81280BDE8F087454503DB01208B +:1004C0002077E7E7FFE761820020F4E72DE9F74FA7 +:1004D000044600F12805C088884620F4004A608A56 +:1004E00005EB0A0608B1404502D20020BDE8FE8FA8 +:1004F000E08978B13788B6F8029007EB09018842A5 +:1005000000D0FFDF207F4FF0000B50EA090106D03A +:1005100088B33BE00027A07FB9463071F2E7E1895C +:1005200059B1607F2944083050440844B4F81F1082 +:1005300020F8031D94F821108170E28907EB080070 +:1005400002EB0801E1813080A6F802B002985F4614 +:1005500050B1637F30880833184481B26288A01D8F +:10056000FFF7BAFDE78121E0607FE1890830504460 +:10057000294408442DE0FFE7E089B4F81F1028441F +:10058000C01B20F8031D94F82110817009EB0800AE +:10059000E28981B202EB0800E08137807180029825 +:1005A000A0B1A01D00F06DF9A4F80EB0A07F401C12 +:1005B000A077A07D08B1E088A08284F816B000BFC3 +:1005C000A4F812B084F817B001208FE7E08928441E +:1005D000C01B30F8031DA4F81F10807884F8210098 +:1005E000EEE710B5818800F1280321F4004423448C +:1005F000848AC288A14212D0914210D0818971B9F7 +:10060000826972B11046FFF7E8FE50B910892832AE +:1006100020F40040104419790079884201D100206B +:1006200010BD184610BD00F12803407F0830084473 +:10063000C01E1060088808B9DB1E1360088849884E +:10064000084480B270472DE9F04100F12806407F50 +:100650001C4608309046431808884D88069ADB1ED1 +:10066000A0B1C01C80B2904214D9801AA04200DB15 +:10067000204687B298183A46414614F03FFA0028BF +:1006800016D1E01B84B2B844002005E0ED1CADB2E9 +:10069000F61EE8E7101A80B20119A94206D83044C4 +:1006A00022464146BDE8F04114F028BA4FF0FF3031 +:1006B00058E62DE9F04100F12804407F1E4608303D +:1006C00090464318002508884F88069ADB1E90B193 +:1006D000C01C80B2904212D9801AB04200DB304672 +:1006E00085B299182A46404614F034FA701B86B237 +:1006F000A844002005E0FF1CBFB2E41EEAE7101A80 +:1007000080B28119B94206D821183246404614F009 +:1007100021FAA81985B2284624E62DE9F04100F116 +:100720002804407F1E46083090464318002508885C +:100730004F88069ADB1E90B1C01C80B2904212D93D +:10074000801AB04200DB304685B298182A464146EE +:1007500014F000FA701B86B2A844002005E0FF1CCC +:10076000BFB2E41EEAE7101A80B28119B94206D876 +:1007700020443246414614F0EDF9A81985B22846C6 +:10078000F0E5401D704710B5044600F12801C2880D +:10079000808820F400431944904206D0A28922B9EF +:1007A000228A12B9A28A904201D1002010BD088885 +:1007B000498831B1201D00F064F80020208201201A +:1007C00010BD637F62880833184481B2201DFFF793 +:1007D00083FCF2E70021C18101774182C1758175F7 +:1007E000704703881380C28942B1C28822F4004353 +:1007F00000F128021A440A60C0897047002070473F +:1008000010B50446808AA0F57F41FF3900D0FFDF94 +:10081000E088A082E08900B10120A07510BD4FF6EC +:10082000FF71818200218175704710B50446808A6E +:10083000A0F57F41FF3900D1FFDFA07D28B9A08856 +:10084000A18A884201D1002010BD012010BD8188FD +:10085000828A914201D1807D08B100207047012039 +:10086000704720F4004221F400439A4207D100F47B +:10087000004001F40041884201D00120704700206F +:10088000704730B5044600880D4620F40040A84269 +:1008900000D2FFDF21884FF40040884328432080A6 +:1008A00030BD70B50C00054609D0082C00D2FFDF22 +:1008B0001DB1A1B2286800F044F8201D70BD0DB133 +:1008C00000202860002070BD0021026803E09388AA +:1008D0001268194489B2002AF9D100F032B870B513 +:1008E00000260D460446082900D2FFDF206808B91B +:1008F0001EE0044620688188A94202D001680029D0 +:10090000F7D181880646A94201D100680DE005F1C2 +:10091000080293B20022994209D32844491B02607D +:1009200081802168096821600160206000E0002664 +:10093000304670BD00230B608A8002680A60016047 +:10094000704700234360021D018102607047F0B5CB +:100950000F460188408815460C181E46AC4200D34D +:10096000641B3044A84200D9FFDFA019A84200D977 +:10097000FFDF3819F0BD2DE9F041884606460188B1 +:10098000408815460C181F46AC4200D3641B3844FF +:10099000A84200D9FFDFE019A84200D9FFDF708824 +:1009A0003844708008EB0400BDE8F0812DE9F04187 +:1009B000054600881E461746841B8846BC4200D365 +:1009C0003C442C8068883044B84200D9FFDFA0192D +:1009D000B84200D9FFDF68883044688008EB040023 +:1009E000E2E72DE9F04106881D460446701980B201 +:1009F000174688462080B84201D3C01B20806088FB +:100A0000A84200D2FFDF7019B84200D9FFDF60882A +:100A1000401B608008EB0600C6E730B50D46018834 +:100A2000CC18944200D3A41A4088984200D8FFDF23 +:100A3000281930BD2DE9F041C84D04469046A878EC +:100A40000E46A04200D8FFDF05EB8607B86A50F8D3 +:100A5000240000B1FFDFB868002816D0304600F04F +:100A600044F90146B868FFF73AFF05000CD0B86AB0 +:100A7000082E40F8245000D3FFDFB94842462946EB +:100A800050F82630204698472846BDE8F0812DE9E9 +:100A9000F8431E468C1991460F460546FF2C00D997 +:100AA000FFDFB14500D9FFDFE4B200954DB3002070 +:100AB0008046E81C20F00300A84200D0FFDF494632 +:100AC000DFF89892684689F8001089F8017089F873 +:100AD000024089F8034089F8044089F8054089F804 +:100AE000066089F80770414600F008F90021424687 +:100AF0000F464B460098C01C20F00300009012B136 +:100B00000EE00120D4E703EB8106B062002005E08F +:100B1000D6F828C04CF82070401CC0B2A042F7D3D1 +:100B20000098491C00EB8400C9B200900829E1D369 +:100B3000401BBDE8F88310B5044603F067FD08B11B +:100B4000102010BD2078854A618802EB80009278E1 +:100B50000EE0836A53F8213043B14A1C6280A180C1 +:100B6000806A50F82100A060002010BD491C89B2A5 +:100B70008A42EED86180052010BD70B505460C464E +:100B8000084603F043FD08B1102070BD082D01D3C5 +:100B9000072070BD25700020608070BD0EB56946CD +:100BA000FFF7EBFF00B1FFDF6846FFF7C4FF08B1B6 +:100BB00000200EBD01200EBD10B50446082800D34C +:100BC000FFDF6648005D10BD3EB50546002469465E +:100BD000FFF7D3FF18B1FFDF01E0641CE4B2684601 +:100BE000FFF7A9FF0028F8D02846FFF7E5FF001B14 +:100BF000C0B23EBD59498978814201D9C0B270471F +:100C0000FF2070472DE9F041544B062903D00729F6 +:100C10001CD19D7900E0002500244FF6FF7603EB00 +:100C2000810713F801C00AE06319D7F828E09BB2E6 +:100C30005EF823E0BEF1000F04D0641CA4B2A4450A +:100C4000F2D8334603801846B34201D100201CE796 +:100C5000BDE8F041EEE6A0F57F43FF3B01D0082957 +:100C600001D300207047E5E6A0F57F42FF3A0BD0A4 +:100C7000082909D2394A9378834205D902EB8101C8 +:100C8000896A51F820007047002070472DE9F04133 +:100C900004460D46A4F57F4143F20200FF3902D01D +:100CA000082D01D30720F0E62C494FF000088A7880 +:100CB000A242F8D901EB8506B26A52F82470002FDF +:100CC000F1D027483946203050F82520204690475B +:100CD000B16A284641F8248000F007F802463946F8 +:100CE000B068FFF727FE0020CFE61D49403131F8FC +:100CF00010004FF6FC71C01C084070472DE9F84306 +:100D0000164E8846054600242868C01C20F00300C3 +:100D100028602046FFF7E9FF315D4843B8F1000F36 +:100D200001D0002200E02A680146009232B100277B +:100D30004FEA0D00FFF7B5FD1FB106E001270020C7 +:100D4000F8E706EB8401009A8A602968641C08446D +:100D5000E4B22860082CD7D3EBE600005006002050 +:100D6000F050020070B50E461D46114600F0D4F852 +:100D700004462946304600F0D8F82044001D70BDD6 +:100D80002DE9F04190460D4604004FF0000610D0CA +:100D90000027E01C20F00300A04200D0FFDFDDB1FF +:100DA00041460020FFF77DFD0C3000EB850617B1B2 +:100DB00012E00127EDE7614F04F10C00A9003C604F +:100DC0002572606000EB85002060606813F063FFAF +:100DD00041463868FFF765FD3046BDE8F0812DE9F2 +:100DE000FF4F564C804681B020689A46934600B922 +:100DF000FFDF2068027A424503D9416851F8280094 +:100E000020B143F2020005B0BDE8F08F51460298D0 +:100E100000F082F886B258460E9900F086F885B246 +:100E20007019001D87B22068A14639460068FFF797 +:100E300056FD04001FD0678025802946201D0E9D89 +:100E400007465A4601230095FFF768F92088314686 +:100E500038440123029ACDF800A0FFF75FF92088FB +:100E6000C1193846FFF78AF9D9F800004168002017 +:100E700041F82840C7E70420C5E770B52F4C054668 +:100E8000206800B9FFDF2068017AA9420ED94268C4 +:100E900052F8251051B1002342F825304A880068E5 +:100EA000FFF748FD216800200A7A08E043F20200BB +:100EB00070BD4B6853F8203033B9401CC0B2824239 +:100EC000F7D80868FFF700FD002070BD70B51B4E15 +:100ED00005460024306800B9FFDF3068017AA94276 +:100EE00004D9406850F8250000B1041D204670BDAB +:100EF00070B5124E05460024306800B9FFDF306837 +:100F0000017AA94206D9406850F8251011B131F88C +:100F1000040B4418204670BD10B50A460121FFF7A6 +:100F2000F6F8C01C20F0030010BD10B50A460121E0 +:100F3000FFF7EDF8C01C20F0030010BD700000208A +:100F400070B50446C2F11005281913F003FE15F020 +:100F5000FF0108D0491EC9B2802060542046BDE878 +:100F6000704013F076BE70BD30B505E05B1EDBB29D +:100F7000CC5CD55C6C40C454002BF7D130BD10B5AF +:100F8000002409E00B78521E44EA430300F8013BB9 +:100F900011F8013BD2B2DC09002AF3D110BD2DE9D2 +:100FA000F04389B01E46DDE9107990460D000446F5 +:100FB00022D002460846F949FDF755FB102221468A +:100FC0003846FFF7DCFFE07B000606D5F34A3946DA +:100FD000102310320846FFF7C7FF10223946484653 +:100FE000FFF7CDFFF87B000606D5EC4A49461023F3 +:100FF00010320846FFF7B8FF1021204613F029FEF3 +:101000000DE0103EB6B208EB0601102322466846FA +:10101000FFF7AAFF224628466946FDF724FB102E5B +:10102000EFD818D0F2B241466846FFF789FF102387 +:101030004A46694604A8FFF797FF1023224604A9F1 +:101040006846FFF791FF224628466946FDF70BFBED +:1010500009B0BDE8F08310233A464146EAE770B58F +:101060009CB01E460546134620980C468DF8080095 +:10107000202219460DF1090013F06CFD20222146B3 +:101080000DF1290013F066FD17A913A8CDE90001A1 +:10109000412302AA31462846FFF781FF1CB070BDEC +:1010A0002DE9FF4F9FB014AEDDE92D5410AFBB49C1 +:1010B000CDE90076202320311AA8FFF770FF4FF00A +:1010C00000088DF808804FF001098DF8099054F858 +:1010D000010FCDF80A00A088ADF80E0014F8010C3D +:1010E0001022C0F340008DF8100055F8010FCDF824 +:1010F0001100A888ADF8150015F8010C2C99C0F363 +:1011000040008DF8170006A8824613F023FD0AA8B8 +:1011100083461022229913F01DFDA048352308387C +:1011200002AA40688DF83C80CDE900760E901AA99D +:101130001F98FFF734FF8DF808808DF8099020681C +:10114000CDF80A00A088ADF80E0014F8010C1022AA +:10115000C0F340008DF810002868CDF81100A88871 +:10116000ADF8150015F8010C2C99C0F340008DF86E +:101170001700504613F0EEFC58461022229913F047 +:10118000E9FC86483523083802AA40688DF83C906F +:10119000CDE900760E901AA92098FFF700FF23B042 +:1011A000BDE8F08FF0B59BB00C460546DDE9221096 +:1011B0001E461746DDE92032D0F801C0CDF808C040 +:1011C000B0F805C0ADF80CC00078C0F340008DF851 +:1011D0000E00D1F80100CDF80F00B1F80500ADF810 +:1011E000130008781946C0F340008DF815001088E8 +:1011F000ADF8160090788DF818000DF11900102246 +:1012000013F0A8FC0DF129001022314613F0A2FCC6 +:101210000DF139001022394613F09CFC17A913A8D0 +:10122000CDE90001412302AA21462846FFF7B7FE77 +:101230001BB0F0BDF0B5A3B017460D4604461E46E0 +:10124000102202A8289913F085FC06A8202239460E +:1012500013F080FC0EA82022294613F07BFC1EA967 +:101260001AA8CDE90001502302AA314616A8FFF7BB +:1012700096FE1698206023B0F0BDF0B589B0044604 +:10128000DDE90E070D463978109EC1F340018DF857 +:10129000001031789446C1F340018DF801101968AF +:1012A000CDF802109988ADF8061099798DF80810DC +:1012B0000168CDF809108188ADF80D1080798DF89E +:1012C0000F0010236A46614604A8FFF74DFE224630 +:1012D000284604A9FDF7C7F9D6F801000090B6F832 +:1012E0000500ADF80400D7F80100CDF80600B7F806 +:1012F0000500ADF80A000020039010236A4621463D +:1013000004A8FFF731FE2246284604A9FDF7ABF9F1 +:1013100009B0F0BD1FB51C6800945B6801931368A9 +:10132000029352680392024608466946FDF79BF90C +:101330001FBD10B588B00446106804905068059031 +:1013400000200690079008466A4604A9FDF78BF92D +:10135000BDF80000208008B010BD1FB51288ADF8A0 +:1013600000201A88ADF80220002201920292039216 +:10137000024608466946FDF776F91FBD7FB5074B63 +:1013800014460546083B9A1C6846FFF7E6FF2246CE +:1013900069462846FFF7CDFF7FBD00004851020097 +:1013A00070B5044600780E46012813D0052802D0F7 +:1013B000092813D10EE0A06861690578042003F0C4 +:1013C000B3F8052D0AD0782300220420616903F0C8 +:1013D00001F803E00420616903F0A6F831462046D5 +:1013E000BDE8704001F086B810B500F12D02C37958 +:1013F0009478411D64F003042340C371DB070DD0D2 +:101400004B79547923404B710B79127913400B714E +:101410008278C9788A4200D9817010BD00224A7151 +:101420000A71F5E74178012900D00C21017070475D +:101430002DE9F04F93B04FF0000B0C690D468DF87D +:1014400020B0097801260C2017464FF00D084FF008 +:10145000110A4FF008091B2975D2DFE811F01B00B3 +:10146000C30206031E035D037003A203B703F80360 +:10147000190461049304A004EC042A053405520500 +:101480005D05EE053106340663067F06F9061D0785 +:10149000E606EB0614B120781D282AD0D5F808807E +:1014A0005FEA08004FD001208DF82000686A022210 +:1014B0000D908DF824200A208DF82500A8690A9047 +:1014C000A8880028EED098F8001091B10F2910D20A +:1014D0007ED2DFE801F07D1349DEFEFDFCFBFAF968 +:1014E00038089CF8F70002282DD124B120780C2868 +:1014F00001D00026EFE38DF82020CBE10420696ABB +:1015000003F012F8A8880728EED1204600F0EDFF7E +:10151000022809D0204600F0E8FF032807D920461A +:1015200000F0E3FF072802D20120207004E0002C25 +:10153000B8D020780128D7D198F80400C11F0A2913 +:1015400002D30A2061E0C4E1A070D8F80010E16283 +:10155000B8F80410218698F8060084F832000120BB +:1015600028700320207044E00728BDD1002C99D0BA +:1015700020780D28B8D198F8031094F82F20C1F3E3 +:10158000C000C2F3C002104201D0062000E00720D4 +:10159000890707D198F805100142D2D198F80610B2 +:1015A0000142CED194F8312098F8051020EA0202C9 +:1015B0001142C6D194F8322098F8061090430142A7 +:1015C000BFD198F80400C11F0A29BAD2617D00E09A +:1015D00006E281427ED8D8F800106160B8F80410A5 +:1015E000218198F80600A072012028700E2020703A +:1015F00003208DF82000686A0D9004F12D000990F9 +:10160000601D0A900F300B9022E12875FDE3412800 +:1016100091D1204600F069FF042802D1E078C0078C +:1016200004D1204600F061FF0F2884D1A88CD5F8A2 +:101630000C8080B24FF0400BE669FFF747FC324662 +:1016400041465B464E46CDF80090FFF732F80B203E +:101650008DF82000686A0D90E0690990002108A8C3 +:10166000FFF79EFE2078042806D0A07D58B10128FF +:1016700009D003280AD049E30520207003202870F0 +:101680008DF82060CDE184F800A032E712202070B0 +:10169000E9E11128BCD1204600F027FF042802D13F +:1016A000E078C00719D0204600F01FFF062805D1BA +:1016B000E078C00711D1A07D02280ED0204600F0AE +:1016C00014FF08E0CAE081E06FE14EE121E101E1B1 +:1016D000E7E017E0ADE111289AD1102208F10101ED +:1016E00004F13C0013F036FA607801287ED0122015 +:1016F0002070E078C00760D0A07D0028C8D0012805 +:10170000C6D05AE0112890D1204600F0EEFE0828FD +:1017100004D0204600F0E9FE132886D104F16C00C5 +:10172000102208F10101064613F014FA2078082867 +:101730000DD014202070E178C8070DD0A07D0228BC +:101740000AD06278022A04D00328A1D035E009200B +:10175000F0E708B1012837D1C80713D0A07D0228CF +:101760001DD000200090D4E9062133460EA8FFF7D3 +:1017700076FC10220EA904F13C0013F0BFF9C8B1A9 +:10178000042042E7D4E90912201D8DE8070004F186 +:101790002C0332460EA8616BFFF76FFDE9E7606B23 +:1017A000C1F34401491E0068C84000F0010040F048 +:1017B0008000D7E72078092806D185F800908DF8B9 +:1017C000209033E32870ECE30920FBE711289AD13D +:1017D000204600F08AFE0A2802D1E078C00704D132 +:1017E000204600F082FE15288DD100E08DE104F145 +:1017F0003C00102208F10101064613F0ABF92078F5 +:101800000A2816D016202070D4E90932606B611DB9 +:101810008DE80F0004F15C0304F16C0247310EA85F +:10182000FFF7C0FC10220EA9304613F067F918B17B +:10183000F5E20B20207071E22046FFF7D5FDA0787D +:10184000216A0A18C0F11001104613F002FA23E3CE +:10185000394608A8FFF7A4FD06463BE20228B6D1A8 +:10186000204600F042FE042804D3204600F03DFE4E +:10187000082809D3204600F038FE0E2829D3204638 +:1018800000F033FE122824D2A07D02289FD10E2022 +:101890008DF82000686A0D9098F801008DF82400FA +:1018A000F0E3022893D1204600F01FFE002810D05C +:1018B000204600F01AFE0128F9D0204600F015FE5F +:1018C0000C28F4D004208DF8240098F801008DF83D +:1018D00025005EE21128FCD1002CFAD020781728D0 +:1018E000F7D16178606A022911D0002101EB410132 +:1018F000182606EBC1011022405808F1010113F02F +:1019000029F90420696A00F0E3FD2670F1E5012160 +:10191000ECE70B28DDD1002CDBD020781828D8D1BB +:101920006078616A02281CD05FF0000000EB400282 +:10193000102000EBC2000958B8F801000880607858 +:10194000616A02280FD0002000EB4002142000EB57 +:10195000C2000958404650F8032F0A6040684860AA +:1019600039E00120E2E70120EEE71128B1D1002C97 +:10197000AFD020781928ACD16178606A022912D0E2 +:101980005FF0000101EB41011C2202EBC1011022BA +:10199000405808F1010113F0DDF80420696A00F0F5 +:1019A00097FD1A20B6E00121ECE7082891D1002C20 +:1019B0008FD020781A288CD1606A98F8012001789D +:1019C00062F347010170616AD8F8022041F8012FE3 +:1019D000B8F8060088800420696A00F079FD8EE27C +:1019E000072012E63878012894D1182204F1140057 +:1019F000796813F0F4F8E079C10894F82F0001EA4F +:101A0000D001E07861F30000E070217D002974D1FD +:101A10002178032909D0C00725D0032028708DF82C +:101A20002090686A0D90412004E3607DA17888428F +:101A300001D90620E9E502262671E179204621F048 +:101A4000E001E171617A21F0F0016172A17A21F087 +:101A5000F001A172FFF7C8FC2E708DF82090686A23 +:101A60000D900720E6E20420ACE6387805289DD1E9 +:101A70008DF82000686A0D90B8680A900720ADF8CC +:101A800024000A988DF830B0616801602189818056 +:101A9000A17A817104202070F4E23978052985D17A +:101AA0008DF82010696A0D91391D09AE0EC986E8BE +:101AB0000E004121ADF824108DF830B01070A88CC4 +:101AC000D7F80C8080B24026A769FFF711FA41468B +:101AD0003A463346C846CDF80090FEF71EFE002178 +:101AE00008A8FFF75DFCE07820F03E00801CE07065 +:101AF0002078052802D00F200CE049E1A07D20B11C +:101B0000012802D0032802D002E10720BFE584F8B3 +:101B10000080EEE42070ECE4102104F15C0002F09F +:101B20002AFA606BB0BBA07D18B1012801D0052056 +:101B3000FDE006202870F7486063A063BEE23878B5 +:101B4000022894D1387908B12875B3E3A07D022822 +:101B500002D0032805D022E0B8680028F5D06063E1 +:101B60001CE06078012806D0A07994F82E10012896 +:101B700005D0E84806E0A17994F82E00F7E7B868A8 +:101B80000028E2D06063E078C00701D0012902D0CC +:101B9000E04803E003E0F8680028D6D0A063062000 +:101BA00010E68DF82090696A0D91E1784846C907E2 +:101BB00009D06178022903D1A17D29B1012903D07F +:101BC000A17D032900D00720287031E1387805284D +:101BD000BBD1207807281ED084F800A005208DF8FE +:101BE0002000686A0D90B8680A90ADF824A08DF8BE +:101BF00030B003210170E178CA070FD0A27D022A1C +:101C00001AD000210091D4E9061204F15C03401CB3 +:101C1000FFF725FA67E384F80090DFE7D4E90923AA +:101C2000211D8DE80E0004F12C0304F15C02401C20 +:101C3000616BFFF722FB56E3626BC1F34401491E5F +:101C40001268CA4002F0010141F08001DAE73878F9 +:101C50000528BDD18DF82000686A0D90B8680A90FB +:101C6000ADF824A08DF830B0042100F8011B10223B +:101C700004F15C0112F06EFF002108A8FFF790FB51 +:101C80002078092801D0132044E70A2020709BE522 +:101C9000E078C10742D0A17D012902D0022927D0D6 +:101CA00038E0617808A8012916D004F16C01009190 +:101CB000D4E9061204F15C03001DFFF7BBFA0A2009 +:101CC000287003268DF82080686A0D90002108A8EE +:101CD000FFF766FBDDE2C3E204F15C010091D4E9A9 +:101CE000062104F16C03001DFFF7A4FA0026E9E7C2 +:101CF000C0F3440114290DD24FF0006101EBB01084 +:101D00004FEAB060E0706078012801D01020BEE496 +:101D10000620FFE6607801283FF4B7AC0A2051E5C1 +:101D2000E178C90708D0A17D012903D10B202870D3 +:101D300004202FE028702DE00E2028706078616B61 +:101D4000012817D004F15C0304F16C020EA8FFF720 +:101D5000E1FA2046FFF748FBA0780EAEC0F1100173 +:101D6000304412F076FF06208DF82000686A09964C +:101D70000D909AE004F16C0304F15C020EA8FFF7E9 +:101D8000C9FAE9E73978022903D139790029D1D094 +:101D900029758FE28DF82000686A0D9058E5387833 +:101DA0000728F6D1D4E909216078012808D004F188 +:101DB0006C00CDE90002029105D104F16C0304E04E +:101DC00004F15C00F5E704F15C0304F14C007A686F +:101DD0000646216AFFF764F96078012821D1A078CE +:101DE000216A0A18C0F11001104612F032FFD4E93E +:101DF0000923606B04F12D018DE80F0004F15C03F1 +:101E000004F16C0231460EA800E055E2FFF7CAF972 +:101E100010220EA904F13C0012F070FE08B10B2054 +:101E2000AFE485F8008000BF8DF82090686A0D90BF +:101E30008DF824A00CE538780528AAD18DF820006B +:101E4000686A0D90B8680A90ADF824A08DF830B09B +:101E500080F80080617801291AD0D4E9093204F1B0 +:101E60002D01A66B03920096CDE9011304F16C03DA +:101E700004F15C0204F14C01401CFFF793F90021CE +:101E800008A8FFF78DFA6078012805D0152041E6F3 +:101E9000D4E90923611DE4E70E20287006208DF89F +:101EA0002000686ACDF824B00D90A0788DF8280045 +:101EB000CEE438780328C0D1E079C00770D00F2075 +:101EC0002870072066E7387804286BD11422391D62 +:101ED00004F1140012F083FE616A208CA1F809005D +:101EE000616AA078C871E179626A01F00301117238 +:101EF000616A627A0A73616AA07A81F82400162006 +:101F000060E485F800A08DF82090696A50460D9134 +:101F100090E00000485102003878052842D1B868A6 +:101F2000A8616178606A022901D0012100E00021E6 +:101F300001EB4101142606EBC1014058082102F0D3 +:101F40001AF86178606A022901D0012100E00021BD +:101F500001EB410106EBC101425802A8E169FFF71C +:101F60000DFA6078626A022801D0012000E00020AA +:101F700000EB4001102000EBC1000223105802A921 +:101F80000932FEF7F1FF626AFD4B0EA80932A16922 +:101F9000FFF7E3F96178606A022904D0012103E0C8 +:101FA00042E18BE0BDE0002101EB4101182606EB88 +:101FB000C101A27840580EA912F0CCFD6178606A88 +:101FC000022901D0012100E0002101EB410106EBD3 +:101FD000C1014058A1780844C1F1100112F039FE46 +:101FE00005208DF82000686A0D90A8690A90ADF868 +:101FF00024A08DF830B0062101706278616A022A4F +:1020000001D0012200E0002202EB420206EBC202F4 +:10201000401C8958102212F09DFD002108A8FFF7EE +:10202000BFF91220C5F818B028708DF82090686AA2 +:102030000D900B208DF824000AE43878052870D123 +:102040008DF82000686A0D90B8680A900B20ADF8F2 +:1020500024000A98072101706178626A022901D080 +:10206000012100E0002101EB4103102101EBC3013C +:1020700051580988A0F801106178626A022902D0DB +:10208000012101E02FE1002101EB4103142101EBCB +:10209000C30151580A6840F8032F4968416059E06C +:1020A0001920287001208DF8300077E6162028705E +:1020B0008DF830B0002108A8FFF772F9032617E168 +:1020C00014202870B0E6387805282AD18DF8200031 +:1020D000686A0D90B8680A90ADF824A08DF830B009 +:1020E00080F800906278616A4E46022A01D001228F +:1020F00000E0002202EB42021C2303EBC202401C60 +:102100008958102212F026FD002108A8FFF748F98F +:10211000152028708DF82060686A0D908DF8246075 +:102120003CE680E0387805287DD18DF82000686A8B +:102130000D90B8680A90ADF824900921017061698A +:10214000097849084170616951F8012FC0F80220EF +:102150008988C18020781C28A8D1A1E7E078C00731 +:1021600002D04FF0060C01E04FF0070C6078022817 +:102170000AD04FF0000000BF00EB040101F109019B +:1021800005D04FF0010004E04FF00100F4E74FF0FC +:1021900000000B78204413EA0C030B7010F8092F91 +:1021A00002EA0C02027004D14FF01B0C84F800C04C +:1021B000D2B394F801C0BCF1010F00D09BB990F8E4 +:1021C00000C0E0465FEACC7C04D028F0010606702F +:1021D000102606E05FEA887C05D528F00206067026 +:1021E00013262E70032694F801C0BCF1020F00D014 +:1021F00092B991F800C05FEACC7804D02CF00106C7 +:102200000E70172106E05FEA8C7805D52CF00206E7 +:102210000E701921217000260078D0BBCAB3C3BB51 +:102220001C20207035E012E002E03878062841D109 +:102230001A2019E4207801283CD00C283AD02046F6 +:10224000FFF7F0F809208DF82000686A0D9031E062 +:102250003878052805D00620387003261820287005 +:1022600046E005218DF82010686A0D90B8680A9044 +:102270000220ADF8240001208DF830000A9801708A +:10228000297D4170394608A8FFF78AF806461820CC +:102290002870012E0ED02BE001208DF82000686AF6 +:1022A0000D9003208DF82400287D8DF8250085F8F9 +:1022B00014B012E0287D80B11D20207017202870F6 +:1022C0008DF82090686A0D9002208DF82400394620 +:1022D00008A8FFF765F806460AE00CB1FE2020705A +:1022E0009DF8200020B1002108A8FFF759F810E45C +:1022F00013B03046BDE8F08F2DE9F04387B00C46AF +:102300004E6900218DF8041001202578034602272C +:102310004FF007094FF0050C85B1012D53D0022D68 +:1023200039D1FE2030708DF80030606A05900320AE +:102330008DF80400207E8DF8050063E021790129E5 +:1023400025D002292DD0032928D0042923D1B17DFD +:10235000022920D131780D1F042D04D30A3D032D0D +:1023600001D31D2917D12189022914D38DF80470B6 +:10237000237020899DF8041088421BD2082001E0B8 +:10238000405102008DF80000606A059057E07078B7 +:102390000128EBD0052007B0BDE8F0831D20307088 +:1023A000E4E771780229F5D131780C29F3D18DF861 +:1023B0000490DDE7083402F804CB94E80B0082E8CF +:1023C0000B000320E7E71578052DE4D18DF800C058 +:1023D000656A0595956802958DF8101094F804804B +:1023E000B8F1010F13D0B8F1020F2DD0B8F1030FDF +:1023F0001CD0B8F1040FCED1ADF804700E202870B7 +:10240000207E687000216846FEF7CAFF0CE0ADF838 +:1024100004700B202870207E002100F01F006870DF +:102420006846FEF7BDFF37700020B4E7ADF80470D2 +:102430008DF8103085F800C0207E68702770114636 +:102440006846FEF7ADFFA6E7ADF804902B70207F3D +:102450006870607F00F00100A870A07F00F01F008E +:10246000E870E27F2A71C0071CD094F8200000F0C9 +:102470000700687194F8210000F00700A87100219E +:102480006846FEF78DFF2868F062A8883086A87934 +:1024900086F83200A069407870752879B0700D20F8 +:1024A0003070C1E7A9716971E9E700B587B0042808 +:1024B0000CD101208DF800008DF80400002005915A +:1024C0008DF8050001466846FEF76AFF07B000BDBB +:1024D00070B50C46054602F027F821462846BDE8AF +:1024E00070407823002201F075BF08B10078704772 +:1024F0000C20704770B50C0005784FF000010CD02F +:1025000021702146F2F7A9FE69482178405D884292 +:1025100001D1032070BD022070BDF2F79EFE0020A5 +:1025200070BD0279012A05D000220A704B78012B78 +:1025300002D003E0042070470A758A610279930093 +:10254000521C0271C15003207047F0B587B00F468E +:1025500005460124287905EB800050F8046C70785A +:10256000411E02290AD252493A46083901EB80003D +:10257000314650F8043C2846984704460CB1012CDB +:1025800011D12879401E10F0FF00287101D00324DA +:10259000E0E70A208DF80000706A0590002101969E +:1025A0006846FFF7A7FF032CD4D007B02046F0BD44 +:1025B00070B515460A46044629461046FFF7C5FF82 +:1025C000064674B12078FE280BD1207C30B1002063 +:1025D0002870294604F10C00FFF7B7FF2046FEF7EC +:1025E00021FF304670BD704770B50E4604467C2111 +:1025F00012F051FB0225012E03D0022E04D005203B +:1026000070BD0120607000E065702046FEF70AFF93 +:10261000A575002070BD28B1027C1AB10A4600F1F0 +:102620000C01C5E70120704710B5044686B00420B0 +:1026300001F07AFF2078FE2806D000208DF80000F7 +:1026400069462046FFF7E7FF06B010BD7CB50E4691 +:1026500000218DF804104178012903D0022903D00C +:10266000002405E0046900E044690CB1217C89B1D3 +:102670006D4601462846FFF754FF032809D132462C +:1026800029462046FFF794FF9DF80410002900D04A +:1026900004207CBD04F10C05EBE730B40C46014688 +:1026A000034A204630BC034B0C3AFEF756BE0000EE +:1026B000845102004051020070B50D46040011D053 +:1026C00085B12101284612F0C4FA10224E4928464D +:1026D00012F040FA4C4801210838018044804560DE +:1026E000002070BD012070BD70B5474E0024054626 +:1026F000083E10E07068AA7B00EB0410817B9142D9 +:1027000008D1C17BEA7B914204D10C22294612F008 +:10271000F5F930B1641C30888442EBDB4FF0FF30B8 +:1027200070BD204670BD70B50D46060006D02DB1B7 +:10273000FFF7DAFF002803DB401C14E0102070BD17 +:10274000314C083C20886288411C914201D9042008 +:1027500070BD6168102201EB0010314612F0FAF9E9 +:102760002088401C20802870002070BD70B5144661 +:102770000D0018D0BCB10021A170022802D0102891 +:1027800011D105E0288870B10121A170108008E006 +:102790002846FFF7A9FF002805DB401CA070A88988 +:1027A0002080002070BD012070BD70B50546144624 +:1027B0000E000BD000203070A878012808D005D971 +:1027C0001149A1F108010A8890420AD9012070BD7F +:1027D00024B1287820702888000A507002200870E0 +:1027E0000FE064B14968102201EB00112046103956 +:1027F00012F0B0F9287820732888000A607310203E +:102800003070002070BD00007C0000202DE9F041F8 +:1028100090460C4607460025FE48072F00EB881619 +:1028200007D2DFE807F007070707040404000125C3 +:1028300000E0FFDF06F81470002D13D0F54880305B +:1028400000EB880191F82700202803D006EB400018 +:10285000447001E081F8264006EB440220205070CD +:1028600081F82740BDE8F081F0B51F4614460E46BA +:102870000546202A00D1FFDFE649E648803100EB1B +:10288000871C0CEB440001EB8702202E07D00CEBD9 +:10289000460140784B784870184620210AE092F8AB +:1028A0002530407882F82500F6E701460CEB410020 +:1028B00005704078A142F8D192F82740202C03D02F +:1028C0000CEB4404637001E082F826300CEB410409 +:1028D0002023637082F82710F0BD30B50D46CE4B33 +:1028E00044190022181A72EB020100D2FFDFCB4814 +:1028F000854200DDFFDFC9484042854200DAFFDF44 +:10290000C548401C844207DA002C01DB204630BD5C +:10291000C148401C201830BDBF48C043FAE710B57D +:1029200004460168407ABE4A52F82020114450B152 +:102930000220084420F07F40F0F71DF994F90810B8 +:10294000BDE81040C9E70420F3E72DE9F047B14E98 +:10295000803696F82D50DFF8BC9206EB850090F893 +:10296000264034E009EB85174FF0070817F81400EC +:10297000012806D004282ED005282ED0062800D005 +:10298000FFDF01F0E3F8014607EB4400427806EB75 +:10299000850080F8262090F82720A24202D120222C +:1029A00080F82720084601F0DCF82A46214601205D +:1029B000FFF72CFF9B48414600EB041002682046BD +:1029C000904796F82D5006EB850090F82640202C75 +:1029D000C8D1BDE8F087022000E003208046D0E7A0 +:1029E00010B58C4C2021803484F8251084F82610F2 +:1029F00084F82710002084F8280084F82D0084F83B +:102A00002E10411EA16044F8100B207460742073D6 +:102A10006073A0738449E0772075087048700021C6 +:102A20007C4A103C02F81100491CC9B22029F9D394 +:102A30000120EFF78EFF0020EFF78BFF012084F8D5 +:102A40002200F9F7A9F97948F9F7B5F9764CA41EEF +:102A500020707748F9F7AFF96070BDE81040EFF7E4 +:102A600005BF10B5EFF727FF6F4CA41E2078F9F7CC +:102A7000BBF96078F9F7B8F9BDE8104001F09EB8ED +:102A8000202070472DE9F34F624E0025803606EB7B +:102A9000810A89B09AF82500202822D0691E029167 +:102AA0006049009501EB00108146D0E90112C06831 +:102AB0000391CDE90420B08BADF81C00B07F8DF8F8 +:102AC0001E009DF81500C8B10227554951F8204055 +:102AD0000399E219114421F07F41019184B102214F +:102AE0000FE00120EFF735FF0020EFF732FFEFF79F +:102AF00000FF01F063F886F82F50A0E00427E4E718 +:102B000000218DF81810022801D0012820D1039847 +:102B1000391901440998081A9DF81C1020F07F40CB +:102B200001B10221333181420BD203208DF815000F +:102B30000398C4F13201401A20F07F403224039000 +:102B40000CE096F8240018B9F0F726FA00284CD0CB +:102B5000322C03D214B101F025F801E001F02EF877 +:102B6000314A107818B393465278039B121B002108 +:102B70009DF81840984601281AD0032818D0002044 +:102B80008DF81E00002A04DD981A039001208DF8AC +:102B900018009DF81C0000B102210398254A20F07E +:102BA0007F40039003AB099801F014F810B110E0D6 +:102BB0000120E5E79DF81D0018B99BF800000328E7 +:102BC00012D08DF81C50CDF80C808DF818408DF87F +:102BD0001E509DF8180058B103980123C119002216 +:102BE0001846EFF709FF06E000200BB0BDE8F08FB4 +:102BF0000120EFF7AEFE99F90C2001230020019986 +:102C0000EFF7FAFE012086F82F008AF828502022DC +:102C1000694611E098080020FF7F841E0020A1076C +:102C200094510200980600208E000020834201008B +:102C30004B290100FFFF3F00F94811F0D0FF0120B0 +:102C4000D3E72DE9F05FDFF8D883064608EB86006E +:102C500090F82550202D1FD0A8F180002C4600EBC5 +:102C60008617A0F50079DFF8BCB305E0A24607EBB4 +:102C70004A004478202C0AD0EFF70AFF09EB04132E +:102C80005A4601211B1D00F0A5FF0028EED0AC42E2 +:102C900002D0334652461EE0E34808B1AFF300804D +:102CA000EFF7F6FE98F82F206AB1D8F80C20411CF7 +:102CB000891A0902CA1701EB12610912002902DD03 +:102CC0000020BDE8F09F3146FFF7DCFE08B101208F +:102CD000F7E733462A4620210420FFF7C5FDEFE73A +:102CE0002DE9F041CE4C2569EFF7D2FE401B0002E2 +:102CF000C11700EB1160001200D4FFDF94F822002E +:102D000000B1FFDF012784F8227094F82E002028FC +:102D100000D1FFDF94F82E60202084F82E000025DB +:102D200084F82F5084F8205084F82150BF48256043 +:102D30000078022833D0032831D000202077A06803 +:102D4000401C05D04FF0FF30A0600120EFF701FEDE +:102D50000020EFF7FEFDEFF7FCFEEFF7F4FEEFF7D4 +:102D6000C8FD11F031F9B248056005604FF0E0216F +:102D70004FF40040B846C1F88002EFF784FF94F8A2 +:102D80002D703846FFF75DFF0028FAD0A448803840 +:102D900000EB871010F81600022802D006E0012090 +:102DA000CCE73A4631460620FFF730FD84F8238011 +:102DB00004EB870090F82600202804D09B48801E52 +:102DC0004078F9F717F8207F002803D0EFF7B1FE1D +:102DD0002577657746E50146914810B590F82D2096 +:102DE0000024803800EB821010F814302BB1641CE2 +:102DF000E4B2202CF8D3202010BD8E4800EB041044 +:102E0000016021460120FFF701FD204610BD10B5ED +:102E1000012801D0032800D171B3814A92F82D30E6 +:102E20007F4C0022803C04EB831300BF13F8124058 +:102E30000CB1082010BD521CD2B2202AF6D37B4A16 +:102E400048B1022807D0072916D2DFE801F015069D +:102E5000080A0C0E100000210AE01B2108E03A21AC +:102E600006E0582104E0772102E0962100E0B52138 +:102E700051701070002010BD072010BD6B4810B5B8 +:102E80004078EFF778FE80B210BD10B5202811D23F +:102E9000634991F82D30A1F1800202EB831414F8FC +:102EA00010303BB191F82D3002EB831212F8102054 +:102EB000012A01D0002010BD91F82D2001460020EC +:102EC000FFF7A4FC012010BD10B5EFF7E1FDBDE850 +:102ED0001040EFF750BE2DE9F0410E46504F0178FB +:102EE0002025803F0C4607EB831303E0254603EBC8 +:102EF00045046478944202D0202CF7D108E0202CBD +:102F000006D0A14206D103EB41014978017007E0E8 +:102F10000020A7E403EB440003EB45014078487030 +:102F2000454F7EB127B1002140F2DA30AFF3008087 +:102F30003078A04206D127B1002140F2DD30AFF356 +:102F40000080357027B1002140F2E230AFF30080FD +:102F5000012087E410B542680B689A1A1202D41750 +:102F600002EB1462121216D4497A91B1427A82B9F4 +:102F7000324A006852F82110126819441044001DAA +:102F8000891C081A0002C11700EB116000123228D8 +:102F900001DB012010BD002010BD2DE9F047814666 +:102FA0001F48244E00EB8100984690F825402020D1 +:102FB000107006F50070154600EB81170BE000BF9E +:102FC00006EB04104946001DFFF7C4FF28B107EBCC +:102FD00044002C704478202CF2D1297888F8001015 +:102FE00013E000BF06EB0415291D4846FFF7B2FFAA +:102FF00068B988F80040A97B99F80A00814201D895 +:103000000020E6E407EB44004478202CEAD10120BC +:10301000DFE42DE9FC410E4607460024054D18E08B +:1030200018090020FFFF3F00000000008E00002074 +:1030300000F50040980600200000000094510200B6 +:103040009DF8000005EB00108168384600F0D6FDC1 +:1030500001246B4601AA31463846FFF79EFF00283F +:10306000EED02046BDE8FC8170B50446FF4801253E +:10307000A54300EB841100EB8510402211F06AFD9E +:10308000FB4E26B1002140F25C40AFF30080F748D0 +:10309000803000EB850100EB8400D0F82500C1F8FA +:1030A000250026B100214FF48C60AFF30080284644 +:1030B00070BD2DE9FC418446EC481546089C00EBA8 +:1030C00085170E4617F81400012803D0022801D0F6 +:1030D0000020C7E70B46E74A0121604600F07AFD71 +:1030E000A8B101AB6A4629463046FFF756FF70B1DA +:1030F000DE489DF804209DF80010803000EB850626 +:103100008A4208D02B460520FFF7AEFB0BE02A468B +:103110002146042014E0202903D007EB4100407829 +:1031200001E096F8250007EB440148709DF8000087 +:10313000202809D007EB400044702A46214603208E +:10314000FFF764FB01208DE706F8254F0120F070A2 +:10315000F3E7C94901EB0010001DFFF7E0BB7CB5A8 +:103160001D46134604460E4600F108022146184645 +:10317000EFF70EFD94F908000F2804DD1F382072C8 +:103180002068401C206096B10220BC4951F82610EE +:10319000461820686946801B20F07F40206094F923 +:1031A00008002844C01C1F2803DA012009E004207D +:1031B000EBE701AAEFF7ECFC9DF8040010B10098D2 +:1031C000401C00900099206831440844C01C20F045 +:1031D0007F4060607CBD2DE9FE430C4606460978C1 +:1031E00060799072207998461546507241B19F4897 +:1031F000803090F82E1020290AD00069401D0BE085 +:10320000D4E90223217903B02846BDE8F043A6E7BC +:103210009B484178701D084420F07F4721790022A7 +:103220002846A368FFF79BFF3946284600F0E6FCD6 +:10323000D4E9023221796846FFF791FF41462846DA +:10324000019CFFF7E6FE2B4622460021304600F0A7 +:10325000C1FC002803D13146284600F0CFFCBDE870 +:10326000FE832DE9FE4F814600F084FC30B100273B +:1032700099F8000020B10020BDE8FE8F0127F7E794 +:103280007A4D7B4C4FF0000A803524B1002140F28A +:10329000D340AFF3008095F82D8085F823A0002659 +:1032A00024B100214FF49B60AFF300801FB940466A +:1032B000FFF7DAFE804624B100214FF49C60AFF3A3 +:1032C0000080EFF7E5FB43466A464946FFF783FF78 +:1032D00024B1002140F2E640AFF3008095F82E00C3 +:1032E00020280CD029690098401A0002C21700EB70 +:1032F0001260001203D5684600F080FC012624B15C +:1033000000214FF49E60AFF3008095F82300002861 +:10331000BBD124B1002140F2F640AFF30080EFF7BB +:10332000B7FB6B46534A002100F054FC0028A3D0A1 +:1033300027B941466846FFF76CFE064326B168464A +:10334000FFF7EDFAC9F8080024B1002140F2095056 +:10335000AFF3008001208FE72DE9FF5F8A468146A9 +:1033600000F008FC414C803410B39AF800000027AC +:1033700010B1012800D0FFDF3D4D25B1002140F202 +:103380007F50AFF300800120A84600905FEA080656 +:1033900004D0002140F28750AFF30080009800F085 +:1033A000E0FB94F82D50002084F8230067B119E069 +:1033B00094F82E000127202800D1FFDF9AF80000A2 +:1033C0000028D9D0FFDFD7E72846FFF74DFE054696 +:1033D00026B1002140F29150AFF3008094F8230011 +:1033E0000028D3D126B1002140F29B50AFF30080DA +:1033F000EFF74EFB83462B4601AA5146FFF7EBFE43 +:103400005FEA060804D0002140F2A250AFF300802A +:103410003B462A4601A95846CDF80090FFF749FEE1 +:10342000064604EB850090F828B0B8F1000F04D0F0 +:10343000002140F2A950AFF3008000F087FB00901C +:10344000B8F1000F04D0002140F2AF50AFF300807C +:1034500094F82300002899D1B8F1000F04D000217E +:1034600040F2B750AFF3008003490BE0980800200A +:1034700000000000FFFF3F0098060020945102006A +:103480008E00002001EB09100DF1040C00F1040086 +:103490009CE80E0080E80E004EB35FEA080604D0F8 +:1034A000002140F2C450AFF300803BEA070012D085 +:1034B00094F82E0020280ED126B1002140F2C950E8 +:1034C000AFF300802846FFF7BCFB20B99AF8000054 +:1034D000D8B3012849D0B8F1000F04D0002140F240 +:1034E000E650AFF30080284600F029FB01265FEA92 +:1034F000080504D0002140F2EF50AFF3008000989F +:1035000000F02FFB25B1002140F2F350AFF3008013 +:103510008EB194F82D0004EB800090F8260020284E +:1035200009D025B1002140F2FA50AFF30080F948EC +:103530004078F8F75FFC25B1002140F2FF50AFF36F +:10354000008004B03046BDE8F09FFFE7B8F1000FFF +:1035500004D0002140F2D150AFF3008094F82D2028 +:1035600049460420FFF752F9C0E7002E3FF40EAFA2 +:10357000002140F2DC50AFF3008007E72DE9F84F5F +:10358000E54D814695F82D004FF00008E34C4FF0D3 +:10359000010B474624B1002140F20D60AFF30080DB +:1035A000584600F0DEFA85F8237024B1002140F27D +:1035B0001260AFF3008095F82D00FFF755FD064629 +:1035C00095F8230028B1002CE4D000214FF4C3600B +:1035D0004BE024B1002140F21C60AFF30080CE48E4 +:1035E000803800EB861111F81900032856D13346B4 +:1035F00005EB830A4A469AF82500904201D1012042 +:1036000000E0002000900AF125000021FFF763FC94 +:1036100001460098014203D001228AF82820AF77A2 +:10362000E1B324B1002140F22160AFF300803246C3 +:1036300049460120FFF7EAF89AF828A024B10021B2 +:1036400040F22C60AFF3008000F080FA834624B192 +:10365000002140F23160AFF3008095F8230038B1CB +:10366000002C97D0002140F23560AFF3008091E745 +:10367000BAF1000F07D095F82E00202803D130466C +:10368000FFF7DFFAE0B124B1002140F24960AFF367 +:103690000080304600F053FA4FF0010824B10021B9 +:1036A00040F25260AFF30080584600F05AFA24B15D +:1036B000002140F25660AFF300804046BDE8F88F2D +:1036C000002CF1D0002140F24460AFF30080E6E727 +:1036D0000020EFF717B90120EFF714B98D480078F3 +:1036E00070472DE9F0418C4C94F82E0020281FD112 +:1036F00094F82D6004EB860797F82550202D00D113 +:10370000FFDF8549803901EB861000EB45004078EA +:1037100007F8250F0120F87084F82300294684F863 +:103720002E50324602202234FFF770F8002020701D +:103730000FE42DE9F0417A4E774C012538B101288C +:1037400021D0022879D003287DD0FFDFF0E700F0F8 +:1037500029FAFFF7C6FF207E00B1FFDF84F8215071 +:103760000020EFF7F6F8A168481C04D001230022DE +:103770001846EFF741F914F82E0F217806EB0111E6 +:103780000A68012154E0FFF7ACFF0120EFF7E1F8F0 +:1037900094F8210050B1A068401C07D014F82E0FF7 +:1037A000217806EB01110A68062141E0207EDFF84E +:1037B0006481002708F10208012803D002281ED0E6 +:1037C000FFDFB5E7A777EFF7B4F998F80000032813 +:1037D00001D165772577607D524951F8200094F832 +:1037E000201051B948B161680123091A0022184616 +:1037F000EFF702F9022020769AE7277698E784F817 +:10380000205000F0CFF9A07F50B198F80100616816 +:103810000123091A00221846EFF7EEF8257600E09A +:10382000277614F82E0F217806EB01110A68002183 +:10383000BDE8F041104700E005E036480078BDE8FB +:10384000F041F8F7D7BAFFF74CFF14F82E0F2178A4 +:1038500006EB01110A680521EAE710B52E4C94F831 +:103860002E00202800D1FFDF14F82E0F21782C4ADB +:1038700002EB01110A68BDE81040042110477CB535 +:10388000254C054694F82E00202800D1FFDFA068C3 +:10389000401C00D0FFDF94F82E00214901AA01EB63 +:1038A0000010694690F90C002844EFF771F99DF972 +:1038B00004000F2801DD012000E0002000990844E9 +:1038C0006168084420F07F41A16094F8210000283D +:1038D00007D002B00123BDE8704000221846EFF780 +:1038E0008BB87CBD30B5104A0B1A541CB3EB940F47 +:1038F0001ED3451AB5EB940F1AD3934203D9101A6D +:1039000043185B1C14E0954210D9511A0844401C1E +:1039100043420DE08C000020180900200000000048 +:103920009806002094510200FF7F841EFFDF0023D1 +:10393000184630BD0123002201460220EFF75CB893 +:103940000220EFF706B8EFF7A3B82DE9FC47B14C1A +:10395000054694F82E00202800D1FFDF642D58D3AF +:10396000AD4A0021521B71EB010052D394F82E2076 +:10397000A0462046DFF8A49290F82D7009EB0214BF +:10398000D8F8000001AA28446946EFF701F99DF92B +:103990000400002802DD0098401C0090A0680099F7 +:1039A00062684618B21A22F07F42B2F5800F30D218 +:1039B00008EB8702444692F82520202A0AD009EB1A +:1039C00002125268101A0002C21700EB12600012B5 +:1039D00088421EDBA068401C10D0EFF759F8A168A0 +:1039E000081A0002C11700EB11600012022810DD56 +:1039F0000120EEF7AEFF4FF0FF30A06020682844B2 +:103A0000206026F07F402061012084F82300BDE87B +:103A1000FC870020FBE72DE9F0477E4C074694F831 +:103A20002D00A4F1800606EB801010F8170000B9F5 +:103A3000FFDF94F82D50A046794C24B1002140F6C8 +:103A40006500AFF3008040F6710940F67A0A06EB94 +:103A5000851600BF16F81700012818D0042810D0CA +:103A600005280ED006280CD01CB100214846AFF323 +:103A7000008020BF002CEDD000215046AFF3008025 +:103A8000E8E72A4639460120FEF7C0FEF2E74FF08C +:103A9000010A4FF00009454624B1002140F681009B +:103AA000AFF30080504600F05CF885F8239024B115 +:103AB000002140F68600AFF3008095F82D00FFF757 +:103AC000D3FA064695F8230028B1002CE4D0002153 +:103AD00040F68C001FE024B100214FF40960AFF3E1 +:103AE000008005EB860000F1270133463A46263078 +:103AF000FFF7F1F924B1002140F69400AFF3008004 +:103B000000F024F8824695F8230038B1002CC3D089 +:103B1000002140F69A00AFF30080BDE785F82D60E4 +:103B2000012085F82300504600F01BF8002C04D03B +:103B3000002140F6A700AFF30080BDE8F0873549CB +:103B400081F82D00012081F82300704710B5354819 +:103B500008B1AFF30080EFF3108000F0010072B6FF +:103B600010BD10B5002804D12F4808B1AFF3008074 +:103B700062B610BD2D480068C005C00D10D01038C9 +:103B800040B2002806DA00F00F0000F1E02090F8C3 +:103B9000140D03E000F1E02090F8000440097047A4 +:103BA0000820704710B51B4C94F82400002804D15D +:103BB000F7F7D2FE012084F8240010BD10B5154C93 +:103BC00094F82400002804D0F7F7EFFE002084F8D2 +:103BD000240010BD10B51C685B68241A181A24F064 +:103BE0007F4420F07F40A14206D8B4F5800F03D275 +:103BF000904201D8012010BD002010BDD0E9003254 +:103C0000D21A21F07F43114421F07F41C0E90031F5 +:103C10007047000018090020FF1FA1079806002028 +:103C200000000000000000000000000004ED00E0C3 +:103C30002DE9F041044680074FF000054FF00106E2 +:103C400004D55C480560066024F00204E0044FF0EF +:103C5000FF3705D558484660C0F8087324F48054EF +:103C6000600003D55548056024F08044E0050FD579 +:103C70005348C0F80052C0F8087352490D60091D3E +:103C80000D60504A04210C321160066124F48074E6 +:103C9000A00409D54C484660C0F80052C0F808732B +:103CA0004A48056024F40054C4F38030C4F3C031A2 +:103CB000884200D0FFDF14F4404F14D044484660DF +:103CC000C0F8087343488660C0F80052C0F8087313 +:103CD00041490D600A1D16608660C0F808730D60CA +:103CE000166024F4404420050AD53C4846608660AE +:103CF000C0F80873C0F848733948056024F40064BC +:103D000010F03CF93748044200D0FFDFBDE8F081F5 +:103D100070B520250022134620FA02F1C90719D0F8 +:103D200051B201F01F060124B4404E09B60006F15D +:103D3000E026C6F88041C6F88042002906DA01F084 +:103D40000F0101F1E02181F8143D03E001F1E021D0 +:103D500081F80034521CAA42DED370BD70B5224CEB +:103D60000D462060FFF764FF2068FFF7D1FF28466B +:103D7000F7F7CFFE0FF022FD00F0ADF810F0FEF8DF +:103D800010F041F8F8F708F8BDE870400FF0C4BD36 +:103D900010B5154C2068FFF74BFF2068FFF7B8FF00 +:103DA00010F0ECF8F7F773FF0020206010BD0A2038 +:103DB00070470000FC1F004000C0004004E50140C7 +:103DC000008000400485004000D0004004D5004041 +:103DD00000E0004000F0004000F5004000B000406E +:103DE00008B50040FEFF0FFD9000002070B5264989 +:103DF0000A680AB30022154601244B685B1C4B601D +:103E00000C2B00D34D600E7904FA06F30E681E42A7 +:103E10000FD0EFF3108212F0010272B600D001222F +:103E20000C689C430C6002B962B6496801600020CE +:103E300070BD521C0C2AE0D3052070BD4FF0E0216C +:103E40004FF48000C1F800027047EFF3108111F0C9 +:103E5000010F72B64FF0010202FA00F20A4803683D +:103E600042EA0302026000D162B6E7E70648002199 +:103E700001604160704701218140034800680840AB +:103E800000D0012070470000940000202DE9F0418F +:103E900015460E460446002700F0E7F8A84215D361 +:103EA000002341200FE000BF94F84220A25CF254AE +:103EB00094F84210491CB1FBF0F200FB12115B1C9C +:103EC00084F84210DBB2AB42EED3012700F0D9F800 +:103ED0003846BDE8F081704910B5802081F80004B3 +:103EE0006E49002081F8420081F84100433181F899 +:103EF000420081F84100433181F8420081F84100DD +:103F000067480FF071FE6648401C0FF06DFEEEF73B +:103F1000C9FEBDE8104000F0B4B8402070475F48CB +:103F200000F0A3B80A4601465C48AFE7402070475E +:103F30005A48433000F099B80A4601465748433082 +:103F4000A4E7402101700020704710B50446534893 +:103F5000863000F08AF82070002010BD0A46014625 +:103F60004E4810B58630FFF791FF08B1002010BD14 +:103F700042F2070010BD70B50C460546412900D934 +:103F8000FFDF48480068103840B200F050F8C6B271 +:103F90000D2000F04CF8C0B2864203D2FFDF01E0F2 +:103FA000EEF7D0FE224629463C48FFF76FFF002877 +:103FB000F6D070BD2DE9F041394F002506463F1D72 +:103FC00057F82540204600F041F810B36D1CEDB2C3 +:103FD000032DF5D33148433000F038F8002825D0C0 +:103FE0002E4800F033F8002820D02C48863000F00E +:103FF0002DF800281AD0EEF77BFE29480FF0FCFDC3 +:10400000B0F5005F00D0FFDFBDE8F04124480FF0BD +:1040100009BE94F841004121265414F8410F401C78 +:10402000B0FBF1F201FB12002070D3E751E700284A +:1040300006DA00F00F0000F1E02090F8140D03E024 +:1040400000F1E02090F800044009704710F8411F8B +:104050004122491CB1FBF2F302FB1311407881426B +:1040600001D1012070470020704710F8411F4078AF +:10407000814201D3081A02E0C0F141000844C0B2F5 +:10408000704710B506480FF0B7FD002803D1BDE812 +:104090001040EEF718BE10BD0DE000E0480900200A +:1040A0009C00002004ED00E070B5154D2878401C00 +:1040B000C4B26878844202D0EEF7D5FE2C7070BD91 +:1040C0002DE9F0410E4C4FF0E02600BFEEF7C0FEA8 +:1040D00020BF40BF20BF677820786070D6F80052BC +:1040E000EDF71CF9854305D1D6F8040210B9207804 +:1040F000B842EBD0EEF7A7FE0020BDE8F08100004B +:10410000AC0000202DE9F041012528034FF0E0210B +:104110000026C1F880011E4CC4F800610C2000F09C +:104120002CF81C4801680268C94341F3001142F0B1 +:1041300010020260C4F804532560491C00E020BF4F +:10414000D4F80021002AFAD019B9016821F0100131 +:104150000160114807686560C4F80853C4F800613D +:104160000C2000F00AF83846BDE8F08110B504468E +:10417000FFF7C8FF2060002010BD00F01F020121E2 +:1041800091404009800000F1E020C0F880127047A3 +:1041900000C0004010ED00E008C500402DE9F047E8 +:1041A000FF4C0646FF21A06800EB06121170217833 +:1041B000FF2910D04FF0080909EB011109EB061790 +:1041C0004158C05900F0F4F9002807DDA1682078B3 +:1041D00001EB061108702670BDE8F08794F80080A6 +:1041E00045460DE0A06809EB05114158C05900F0A3 +:1041F000DFF9002806DCA068A84600EB0810057867 +:10420000FF2DEFD1A06800EB061100EB08100D7038 +:104210000670E1E7F0B5E24B0446002001259A68FC +:104220000C269B780CE000BF05EB0017D75DA7427A +:1042300004D106EB0017D7598F4204D0401CC0B2FE +:104240008342F1D8FF20F0BD70B5FFF77CFBD44C62 +:1042500008252278A16805EB0212895800F0A8F918 +:10426000012808DD2178A06805EB01114058BDE860 +:104270007040FFF75FBBFFF731FABDE87040F7F71A +:10428000B9BD2DE9F041C64C2578FFF75CFBFF2D49 +:104290006ED04FF00808A26808EB0516915900F09F +:1042A00087F90228A06801DD80595DE000EB051167 +:1042B00009782170022101EB0511425C5AB1521EAE +:1042C0004254815901F5800121F07F4181512846F6 +:1042D000FFF764FF34E00423012203EB051302EB34 +:1042E000051250F803C0875CBCF1000F10D0BCF57C +:1042F000007F10D9CCF3080250F806C00CEB423C0A +:104300002CF07F4C40F806C0C3589A1A520A09E0B4 +:10431000FF2181540AE0825902EB4C3222F07F42A5 +:104320008251002242542846FFF738FF0C21A06832 +:1043300001EB05114158E06850F8272038469047B6 +:104340002078FF2814D0FFF7FEFA2278A16808EB46 +:1043500002124546895800F02BF9012893DD217897 +:10436000A06805EB01114058BDE8F041FFF7E2BA43 +:10437000BDE8F081F0B51D4614460E460746FF2BFA +:1043800000D3FFDFA00700D0FFDF8548FF21002218 +:10439000C0E90247C5700671017042708270104614 +:1043A000012204E002EB0013401CE154C0B2A84219 +:1043B000F8D3F0BD70B57A4C064665782079854211 +:1043C00000D3FFDFE06840F825606078401C607033 +:1043D000284670BD2DE9FF5F1D468B460746FF242A +:1043E000FFF7B1FADFF8B891064699F80100B84234 +:1043F00000D8FFDF00214FF001084FF00C0A99F8B8 +:104400000220D9F808000EE008EB0113C35CFF2B73 +:104410000ED0BB4205D10AEB011350F803C0DC45B6 +:104420000CD0491CC9B28A42EED8FF2C02D00DE054 +:104430000C46F6E799F803108A4203D1FF2004B036 +:10444000BDE8F09F1446521C89F8022008EB0411C5 +:104450000AEB0412475440F802B00421029B0022E8 +:10446000012B01EB04110CD040F801204FF400782F +:1044700008234FF0020C454513D9E905C90D02D0B8 +:1044800002E04550F2E7414606EB413203EB0413EC +:1044900022F07F42C250691A0CEB0412490A81547F +:1044A0000BE005B9012506EB453103EB041321F0C0 +:1044B0007F41C1500CEB0411425499F80050204642 +:1044C000FFF76CFE99F80000A84201D0FFF7BCFE90 +:1044D0003846B4E770B50C460546FFF734FA064691 +:1044E00021462846FFF796FE0446FF281AD02C4D99 +:1044F000082101EB0411A8684158304600F058F833 +:1045000000F58050C11700EBD14040130221AA688A +:1045100001EB0411515C09B100EB4120002800DCE3 +:10452000012070BD002070BD2DE9F047884681460E +:10453000FFF770FE0746FF281BD0194D2E78A8689C +:104540003146344605E0BC4206D0264600EB061252 +:104550001478FF2CF7D10CE0FF2C0AD0A6420CD126 +:1045600000EB011000782870FF2804D0FFF76CFEE4 +:1045700003E0002030E6FFF7E3F941464846FFF745 +:10458000A9FF0123A968024603EB0413FF20C854C6 +:10459000A878401EB84200D1A87001EB041001E0D9 +:1045A000140A002001EB061100780870104613E68B +:1045B000081A0002C11700EB1160001270470000DA +:1045C00070B50446A0F500002D4EB0F1786F02D210 +:1045D0003444A4F500042B48844201D2012500E0B4 +:1045E000002500F043F848B125B9B44204D3264869 +:1045F000006808E0012070BD002070BD002DF9D1D9 +:10460000B442F9D321488442F6D2F3E710B5044608 +:10461000A0F50000B0F1786F03D219480444A4F566 +:10462000000400F023F84FF0804130B116480068D4 +:1046300004E08C4204D2012003E014488442F8D202 +:10464000002080F0010010BD10B520B1FFF7DEFFA3 +:1046500008B1012010BD002010BD10B520B1FFF73A +:10466000AFFF08B1012010BD002010BD0848094966 +:104670000068884201D10120704700207047000087 +:104680000000002000600200200000200800002040 +:10469000B0000020BEBAFECA0548064A0168914231 +:1046A00001D1002101600449012008607047000029 +:1046B000B0000020BEBAFECA40E5014053480021C8 +:1046C0000170417010218170704770B50546164623 +:1046D0000C460220EEF785F84C49012008704C4941 +:1046E000F01E08604B480560001F046070BD10B5E7 +:1046F0000220EEF776F8454901200870464800216F +:10470000C0F80011C0F80411C0F8081143494FF473 +:104710000000086010BD3D480178C9B1404A4FF41F +:10472000000111603C49D1F800310022002B1CBF70 +:10473000D1F80431002B02D0D1F8081111B1427028 +:10474000102103E00121417036490968817002702F +:104750000020EEF746B82D480178002904BF4078C4 +:1047600070472D48D0F80011002904BF022070477F +:10477000D0F8001100291CBFD0F80411002905D081 +:10478000D0F80801002804BF0120704700207047BE +:104790001E4800B50278204B4078C821491EC9B296 +:1047A00082B1D3F800C1BCF1000F10D0D3F80001E2 +:1047B00000281CBFD3F8040100280BD0D3F808014F +:1047C00050B107E0022802D0012805D002E00029FC +:1047D000E4D1FFDF002000BD012000BD0B480178BF +:1047E000002904BF807870470B48D0F800110029D9 +:1047F0001CBFD0F80411002902D0D0F8080108B17C +:104800001020704707480068C0B27047B40000200D +:1048100010F5004008F5004000F0004004F50140AC +:1048200008F5014000F40040524800210170417039 +:10483000704770B5064614460D460120EDF7D1FFCE +:104840004D480660001D0460001D05604B490020B6 +:10485000C1F850014A49032008604B4949480860A3 +:10486000091D4A48086070BD70B5424B012540EAF9 +:1048700002421D70464B42F080721A60454A116038 +:10488000454C0026C4F80461454A4449116000289B +:1048900002BFC4F80052256070BD012818BFFFDFB9 +:1048A000C4F80062256040493E48086070BD314848 +:1048B000017871B13A4A394911603749D1F8042178 +:1048C0000021002A08BF417002D0384A12684270A5 +:1048D00001700020EDF785BF26480178002904BF4C +:1048E000407870472C48D0F80401002808BF704772 +:1048F0002E480068C0B27047002808BF704730B526 +:104900001C480078002808BFFFDF2348D0F80411B6 +:10491000002918BF30BD0224C0F80443DFF890C05E +:10492000DCF80010C1F30015DCF8001041F01001B4 +:10493000CCF80010D0F80411002904BF4FF4004156 +:104940004FF0E02207D100BFC2F8801220BFD0F89C +:104950000431002BF8D02DB9DCF8001021F0100143 +:10496000CCF80010C0F8084330BD0B490120886026 +:1049700070470000B700002008F50040001000401C +:104980001CF500405011004098F501400CF000402B +:1049900004F5004018F5004000F00040000002035C +:1049A00008F501400000020204F5014000F4004057 +:1049B00010ED00E010B5FF480024012144700470A0 +:1049C00044728472C17280F821408462446314305E +:1049D00010F068FAF849601E0860091D0860091D9A +:1049E0000C60091D0860091D0C60091D0860091D87 +:1049F0000860091D0860091D0860091D0860091D7F +:104A00000860091D0860091D0860091D086010BDC7 +:104A1000EA48016801F00F01032904BF0120704733 +:104A2000016801F00F01042904BF022070470168EA +:104A300001F00F01052904D0006800F00F000628DE +:104A400007D1DF48006810F0060F0CBF08200420D3 +:104A5000704700B5FFDF012000BD30B4D5490268C2 +:104A6000DFF864C34A6142688A61007A08770A7D88 +:104A7000D44BACF1040401204AB10A7E00FA02F2E0 +:104A80001A608D7D002D0CBF2260CCF800204A7D7D +:104A9000002A04BF30BC70474A7E90401860C97D30 +:104AA00000290CBF2060CCF8000030BC704730B546 +:104AB0000024054601290AD0022908BF4FF080745E +:104AC00005D0042916BF08294FF0C744FFDF44F47E +:104AD000847040F48010BD49086045F44030091DE1 +:104AE00040F00070086030BD30B500240546012953 +:104AF0000AD0022908BF4FF0807405D0042916BFE0 +:104B000008294FF0C744FFDF44F4847040F480105C +:104B1000AE49086045F44030091D40F0007008605F +:104B2000AB48D0F80001002818BFFFDF30BD0221DC +:104B300010B44FF0E02301200022C3F88011DFF809 +:104B400094C2CCF80020CCF80000DFF88CC2DCF86E +:104B5000004024F07044CCF80040A04C40F25B6C64 +:104B6000C4F800C0241F40F2031CC4F800C0A4F124 +:104B7000040CCCF80000DFF844C20320CCF800009D +:104B8000DFF85CC29620CCF80000DFF85CC29548E4 +:104B9000CCF80000DFF858C29448CCF80000ACF123 +:104BA000040C9448CCF80000C3F880128849102007 +:104BB000C1F804037F4880F82D2010BC70477D4A5F +:104BC0000368C2F802308088D08011727047794B38 +:104BD00010B51A7A8A4208D101460622981C0FF0B5 +:104BE0008DFF002804BF012010BD002010BD7148BA +:104BF00090F8210070476F4A517010707047F0B5FF +:104C00000546800000F1804000F580508B88C0F898 +:104C100020360B78D1F8011043EA0121C0F80016C4 +:104C200005F10800012707FA00F6734C002A04BFBB +:104C30002068B04304D0012A18BFFFDF206830434A +:104C40002060206807FA05F108432060F0BD0FF0EE +:104C5000DDBA584890F82E007047564890F830005A +:104C60007047664AC17811600068654900020860B3 +:104C70007047252808BF02210ED0262808BF1A2118 +:104C80000AD0272808BF502106D00A2894BF042242 +:104C9000062202EB4001C9B25A4A11605A49086023 +:104CA0007047F0B4434B9D7A012D62D0022D1CBF9A +:104CB000F0BC704793F815C0BCF1000F04BFF0BC06 +:104CC000704700BF514C524F4FF47A7C012D57D0A2 +:104CD000DE7D5D7E002E18BF0126012908BF292137 +:104CE0000CD0022A0CBF4B4C012A03D0042A0CBF63 +:104CF0003C46494C04F2E141B1FBFCF1491F084438 +:104D00004649086046490020C1F84C01280286F057 +:104D1000010140EA015040F00311187F820002F1C6 +:104D2000804202F5C042C2F810153E4901EB8002F4 +:104D3000997EC80000F1804000F5F830C0F81425D5 +:104D4000DFF8E4C0C0F810C5D87EC30003F180438B +:104D500003F5F833C3F81425264AC3F810250122B9 +:104D600002FA01F102FA00F0084330490860F0BC91 +:104D7000704793F814C0BCF1000FA3D1F0BC70478A +:104D80009E7D1D7E002E18BF012601295DD0022ABE +:104D900004BF274C4FF47A7151D0012A08BF4FF459 +:104DA000C8614CD0042A06BF3C4640F69801214C0D +:104DB00042E00000240A0020000E004010150040D0 +:104DC00014140040180500500C0500501415004044 +:104DD00000100040FC1F00407817004038150040CC +:104DE0004415004000000C0408F5014040800040DC +:104DF000A4F5014010110040401600402415004069 +:104E00001C1500400815004054150040A224020063 +:104E1000D0FB010004360200C0D401004C850040E4 +:104E200000800040006000404C81004004F50140DB +:104E30006836020030D3010018BF40F6E441214437 +:104E400001F5FA71B1FBFCF158E7022A08BF4FF4F3 +:104E50007A710AD0012A08BF4FF4C86105D0042A2C +:104E60000CBF40F6980140F6E44149F6FC6211445B +:104E7000E8E72DE9F047FC4D0446032090468946BB +:104E8000C5F80002FA49F948086048460FF011FADF +:104E900040460FF0F9F9F74F0126002C04BFBE720F +:104EA0002E6007D0012C05D140460FF051FB0220A7 +:104EB000B8726E60F048C664F048006842464946E1 +:104EC000BDE8F047EDE62DE9F0410F46E64905461D +:104ED00003201646C1F80002E54CE448206038463D +:104EE0000FF0E7F930460FF0CFF930460FF030FB06 +:104EF000E04815B1012D09D011E001218172416B0B +:104F000041F4801141634FF4801007E00221817267 +:104F1000416B41F4001141634FF4001020603246B0 +:104F20003946BDE8F0410020BBE62DE9FF4FCE4CED +:104F30008246002581B003208946C4F80002CC4F88 +:104F4000CA48386003980FF0B4F904980FF09CF940 +:104F5000DFF82CB3C74E4FF00108BAF1000F03D0B1 +:104F6000BAF1010F21D035E0CBF8004096F82D00C2 +:104F7000012806D0022818BFFFDF0CD086F80A806F +:104F800028E0DDE9031396F82C2048460FF012FACA +:104F9000B16A4518F2E7DDE9031296F82C3048466D +:104FA0000FF096F9B16A4518E8E704980FF0D0FAC7 +:104FB000B448CBF8000096F82D00DDE90313012872 +:104FC00096F82C20484624D00FF03EFAB16A4518D6 +:104FD0000220B072AC480560AD49AC480860706B07 +:104FE00040F400207063D4F800924FF0100AC4F827 +:104FF00008A30026C4F80062A6484FF4802BC0F82E +:1050000000B0FF208DF80000C4F81061C4F81080D3 +:1050100009E00FF09BF9B16A4518D9E79DF8000047 +:10502000401E8DF800009DF8000018B1D4F8100162 +:105030000028F3D09DF80000002808BFFFDFC4F867 +:105040000061C4F80C61C4F81061C4F80461C4F8CC +:105050001461C4F81861904800680090C4F8009288 +:10506000C7F800B0C4F804A34FF4002038608248A9 +:10507000C0F84C8081480068A84228BFFFDF28465E +:10508000DDE9031205B0BDE8F04F0AE62DE9F84767 +:10509000754CD4F8000220F00B09D4F804034FF04B +:1050A000100AC0F30018C4F808A30026C4F8006270 +:1050B00078497A4808606F4D0127A87A012802D004 +:1050C000022803D014E0287D10B911E0687D78B182 +:1050D000A87EEA7E07FA00F007FA02F210430860A1 +:1050E000287F800000F1804000F5C040C0F81065C6 +:1050F000FF208DF80000C4F81061276105E000BFB3 +:105100009DF80000401E8DF800009DF8000018B1C9 +:10511000D4F810010028F3D09DF80000002808BF43 +:10512000FFDFC4F810616E72AE72EF72C4F80092C5 +:10513000B8F1000F18BFC4F804A3BDE8F8870068F1 +:10514000574920F07F40086070474FF0E02002216F +:10515000C0F88011C0F8801270474FF0E0210220A3 +:10516000C1F8000170474F49087070474E49086008 +:10517000704730B53F4C0546A06AA84228BFFFDF04 +:105180000120207300203C492561C1F844014748B3 +:105190000560606B40F480006063C80134490860BA +:1051A00030BD70B5334C0546414A0220207310686B +:1051B0000E4600F00F00032808BF012213D010682C +:1051C00000F00F00042808BF02220CD0106800F085 +:1051D0000F0005281BD0106800F00F0006281CBF28 +:1051E000FFDF012213D094F82D0094F82C10012831 +:1051F00015D028460FF086F91F4920610020C1F81C +:1052000044012169A06A08442849086070BD294802 +:10521000006810F0060F0CBF08220422E3E73346B3 +:1052200028460FF038F9E7E71A494FF48000086084 +:105230001048416B21F480014163002101737047E4 +:10524000C20002F1804202F5F8321B4BC2F8103561 +:10525000C2F8141501218140054801600548426BE0 +:105260001143416370470000001000400000040437 +:1052700004F50140240A0020008000404C850040D5 +:10528000ACF50140041000404885004048810040D2 +:10529000A8F5014008F501401811004000000C0479 +:1052A0003C150040B9000020041500404485004032 +:1052B000101500401414004004110040FB48012167 +:1052C0004160C1600021C0F84411F9480160F9480B +:1052D00081627047F8490860F848D0F8001241F040 +:1052E0004001C0F800127047F448D0F8001221F0D5 +:1052F0004001C0F80012F049002008607047EF48F4 +:10530000D0F8001221F01001C0F8001201218161D3 +:105310007047EA480021C0F81C11D0F8001241F093 +:105320001001C0F800127047E44981B0D1F81C2187 +:10533000012A1EBF002001B07047E14A126802F046 +:105340007F02524202700020C1F81C01DD48006853 +:105350000090012001B0704730B50C00054608BF31 +:10536000FFDF14F0010F1CBF012CFFDF002D0CBF6D +:1053700001200220CF4901284872CC72CF4904BFD6 +:10538000D1F8000240F0040007D0022807BFD1F88E +:10539000000240F00800FFDF30BDC1F8000230BD60 +:1053A0002DE9F84FDFF8209399F80000042828BF72 +:1053B000FFDFDFF8F8A2DAF84C11C448BD4C002634 +:1053C0004FF00108D1B1A17A012902D0022903D0FE +:1053D00014E0217D11B911E0617D79B1A17EE27EF9 +:1053E00008FA01F108FA02F211430160217F8900F5 +:1053F00001F1804101F5C041C1F81065B348616B0E +:1054000001606663217B002019B1DAF8441101299B +:1054100000D00021A27AA94D012A71D0022A76D0AB +:10542000D5F8101101290CBF1021002141EA000715 +:10543000A748016811F0FF0F03D0D5F81411012916 +:1054400000D0002184F82E10006810F0FF0F03D068 +:10545000D5F81801012800D0002084F82F009D48BD +:10546000006884F83000FFF776F9012818BF0020A3 +:1054700084F83100C5F80061C5F80C61C5F8106109 +:10548000C5F80461C5F81461C5F818619248006850 +:1054900000908648C0F8446190480068DFF810A288 +:1054A0000090DAF800006062AAF104000068A062CF +:1054B0008B48016801F00F01032908BF012013D0B8 +:1054C000016801F00F01042908BF02200CD0016817 +:1054D00001F00F01052929D0006800F00F0006280F +:1054E0001CBFFFDF012021D084F82C00A07ADFF858 +:1054F000F4B184F82D0002282DD11FE000E006E071 +:10550000D5F80C01012814BF0020082088E7D5F841 +:105510000C01012814BF00200220734A1268012ADE +:1055200014BF042200221043084379E76F48006843 +:1055300010F0060F0CBF08200420D5E7607850B1AA +:10554000DBF8001009780840217831EA000008BF34 +:1055500084F8208001D084F8206017F0020F07D073 +:1055600099F80010624A4908606A52F82110884789 +:1055700017F0010F18BF00210CD05E4A99F80030D7 +:10558000A06A52F82320904799F8000010F0010F0C +:105590002AD10AE017F0020F18BF0121EDD117F050 +:1055A000080F18BF0221E8D1EEE7DBF80000007811 +:1055B00000F00F00072828BF84F8216014D2DBF820 +:1055C0000000062200F10901A01C0FF097FA40B973 +:1055D000207ADBF800100978B0EBD11F08BF01205A +:1055E00000D0002084F82100E17A002011F0020FA1 +:1055F0001CBF17F0020F17F0040F19D111F0100F94 +:105600001CBF94F82F20002A02D094F831207AB1E0 +:1056100011F0080F1CBF94F82020002A08D111F0C7 +:10562000040F02D094F8211011B117F0010F00D02F +:105630000120617A19B170B1FFF728FD19E0234804 +:105640002D490160D5F8000220F00300C5F80002E2 +:1056500084F80B800DE04FF0000B012913D00229D4 +:1056600018BFFFDF4CD0A06A012258440021FFF789 +:1056700018FB17F0010F56D0204899F8001050F889 +:105680002100804770E0D5F8000220F00400C5F842 +:105690000002667284F80B80012384F80A801A469F +:1056A000002196200EF014FE3BE000000080004038 +:1056B00044850040240A002060150040001000408E +:1056C000481500401C110040B900002008F50140B9 +:1056D0004016004010140040181100404481004062 +:1056E0001015004004150040001400401414004040 +:1056F000AC510200F451020000000404B451020055 +:10570000D5F8000220F00800C5F80002667284F89F +:105710000B800220A07201231A46002196200EF071 +:1057200015FE83469FE717F0020F08D0624999F8EB +:10573000002028EA970051F82210884714E017F05B +:10574000080F06D05D4899F8001050F821008047F6 +:105750000AE017F0100F08BFFFDF05D0584899F88E +:10576000001050F821008047A07A022818BFBDE839 +:10577000F88F207B002808BFBDE8F88F5149C1F899 +:105780004461022814D0012818BFFFDFA16A2069F4 +:10579000884298BFFFDF2069CAF80000606B4A4961 +:1057A00040F4800060634FF480000860BDE8F88F2B +:1057B0002169A06A0844EFE70021444A81B000282B +:1057C00018BFC2F80012C2F80011C2F80C11C2F8DA +:1057D0001011C2F80411C2F81411C2F818113C4893 +:1057E0000068009001B07047012804BF282070476E +:1057F000022804BF18207047042812BF08284FF45D +:10580000A870704700B5FFDF282000BD012804BF45 +:1058100041F6A4707047022804BF41F288307047F7 +:10582000042804BF45F63C207047082804BF47F20F +:10583000AC10704700B5FFDF41F6A47000BD012831 +:1058400004BF41F2D4707047022804BF41F2040043 +:105850007047042812BF082842F6A000704700B520 +:10586000FFDF41F2D47000BD012812BF02280020E2 +:105870007047042812BF08284FF4C870704700B55D +:10588000FFDF002000BD11490820C1F800021249C5 +:1058900010480860124911480860091D1148086045 +:1058A000091D11480860091D1048086006494FF499 +:1058B0004020086070470000C4510200D45102002B +:1058C000E45102000080004004F501400010004057 +:1058D000181100400000040408F5014000110040C8 +:1058E000A0F50140141000401C11004010100040B1 +:1058F00010B53F4822210FF0ACF93D48017821F066 +:1059000010010170012107F0D9FD3A49002081F80A +:1059100022004FF6FF70888437490880488010BD08 +:10592000704734498A8C824218BF7047002081F842 +:1059300022004FF6FF70888470472D490160704740 +:105940002D49088070472B498A8CA2F57F43FF3B85 +:1059500003D0002101600846704791F822202549B4 +:10596000012A1ABF0160012000207047214901F17E +:10597000220091F82220012A04BF00207047012252 +:1059800002701D4800888884104670471A49488074 +:1059900070471849184B8A8C5B889A4206D191F857 +:1059A0002220002A1EBF016001207047002070479E +:1059B0001048114A818C5288914209D14FF6FF71EB +:1059C000818410F8221F19B1002101700120704755 +:1059D000002070470748084A818C5288914205D1BF +:1059E00090F8220000281CBF00207047012070475B +:1059F000820A00205C0A0020BA0000207047574A43 +:105A0000012340B1012818BF7047137008689060E7 +:105A100088889081704753700868C2F802008888AF +:105A2000D08070474D4A10B1012807D00EE0507861 +:105A300060B1D2F802000860D08804E0107828B184 +:105A40009068086090898880012070470020704726 +:105A5000424910B1012803D006E0487810B903E0AC +:105A6000087808B1012070470020704730B58DB02C +:105A70000C4605460D2104A80FF00DF9E0788DF8CD +:105A80001F0020798DF81E0060798DF81D002868B0 +:105A9000009068680190A8680290E86803906846E2 +:105AA0000DF026FF20789DF82F1088420CD16078E9 +:105AB0009DF82E10884207D1A0789DF82D108842BD +:105AC00002BF01200DB030BD00200DB030BD30B59B +:105AD0000C4605468DB04FF0030104F1030012B1EE +:105AE000FEF72AFA01E0FEF746FA60790D2120F070 +:105AF000C00040F04000607104A80FF0CCF8E078DE +:105B00008DF81F0020798DF81E0060798DF81D003A +:105B10002868009068680190A8680290E86803907F +:105B200068460DF0E5FE9DF82F0020709DF82E00D0 +:105B300060709DF82D00A0700DB030BD10B500292B +:105B400004464FF0060102D0FEF7F6F901E0FEF739 +:105B500012FA607920F0C000607110BDBE00002014 +:105B600070B5FF4E0446306890F8001100250129F9 +:105B700019D090F8FA10012924D090F8D0100129FA +:105B80002AD090F8F21001291CBF002070BD65706A +:105B900017212170D0F8F4106160B0F8F81021815D +:105BA00080F8F25016E065701C212170D0F80111C8 +:105BB0006160D0F80511A16090F80911217380F897 +:105BC000005107E0657007212170D0F8FC1061607A +:105BD00080F8FA50012070BD65701421217000F129 +:105BE000D2012022201D0EF0B5FF01212172306864 +:105BF00080F8D050DB48B0F8D420A0F8FC207268C0 +:105C0000537B80F8FE3080F8FA101088FBF75EF9BD +:105C1000FAF705FEDEE7D248006890F8D0100029B8 +:105C200014BFB0F8D4004FF6FF70704770B5CC4C7D +:105C30002068002808BFFFDF002520684570002885 +:105C400008BFFFDF2068417800291CBFFFDF70BD5F +:105C50004FF486710FF01FF82068FF2101707F213B +:105C600080F8361013214184282180F8CC100121BE +:105C700080F8B81080F8BD50FFF736FBFEF74BFDFB +:105C8000B94807F0A7F9B94807F0A4F9BDE8704092 +:105C9000B74807F09FB9B2490968097881420CBF3B +:105CA000012000207047AE48006890F82200C0F341 +:105CB000001070472DE9F04FA948D0F800C09CF8BB +:105CC0002400C0F38001C0F34002114400F0010041 +:105CD0000B18BCF822000025C0F3001139B31328BB +:105CE0001DD009DC102802BFA24830F81300BDE81F +:105CF000F08F122813D006E0152808D01D2804BF05 +:105D00009D48BDE8F08FFFDF2846BDE8F08F9B4936 +:105D1000002031F8131013FB0010BDE8F08F9849F4 +:105D2000002031F8131013FB0010BDE8F08F0024A1 +:105D30009CF8BA209CF8BB10924EDFF84CA2DFF81A +:105D40004CB210F0030F4FF4C8774FF4BF784FF404 +:105D5000A8797CD010F0010F17D0082904BF3C4669 +:105D600040200CD0042904BF4446102007D002294B +:105D700007BF05F11804042005F12804082000EBF2 +:105D8000400E0EEB0010204417E0082904BF3846EF +:105D900040240CD0042904BF4046102407D0022917 +:105DA00007BF05F11800042405F12800082404EBBE +:105DB000C40404EB440400EB44009CF8CCC0022A69 +:105DC00008BF4FF47A740DD0012A04BF56464FF431 +:105DD000C86407D0042A07BF5E4640F698046C4E9C +:105DE00040F6E444344404F2E7364FF47A74B6FBE8 +:105DF000F4F4C3EB031606EB860604EB8604082ACC +:105E000052D0042A4BD0022A0CBF05F1180605F126 +:105E100028064FF019020CBF4FF0040A4FF0080A91 +:105E200012FB0A6212FB0342082908BF40230BD071 +:105E3000042908BF102307D0022907BF4FF0180913 +:105E400004234FF028090823C3EBC30300E030E02C +:105E500003EB430309EB43031A4411F00C0F08BF93 +:105E60004FF0000C6244082908BF40210CD00429DF +:105E700004BF4746102107D0022907BF05F11807C4 +:105E8000042105F128070821C1EBC10101EB410103 +:105E900007EB41011144084400F526740EE0464624 +:105EA00014224FF0100ABBE73E4614224FF0400A7E +:105EB000B6E710F0020F18BFFFDF02D02046BDE8A2 +:105EC000F08F022A08BF4FF47A700DD0012A04BF68 +:105ED00056464FF4C86007D0042A07BF5E4640F616 +:105EE00098002B4E40F6E440304400F2E73C4FF47B +:105EF0007A70BCFBF0F0C3EB031C0CEB8C0C00EBDA +:105F00008C0C082A04BF142040220CD0042A44D050 +:105F1000022A0CBF05F1180705F128074FF01900F8 +:105F20000CBF0422082210FB027010FB03C00829DA +:105F300008BF40210BD0042908BF102107D0022937 +:105F400007BF4FF0180904214FF028090821C1EBC1 +:105F5000C10101EB410109EB410108441AE00000D5 +:105F6000CC000020A40A0020B00B0020D80B002099 +:105F7000000C002018520200F18913002052020088 +:105F80001052020068360200A2240200D0FB010079 +:105F900030D3010000F5B27490E714204746102278 +:105FA000C1E7F94840F271210068806A48437047B0 +:105FB000F548006890F83500002818BF01207047A8 +:105FC00010B5F24C207B022818BF032808D1207D91 +:105FD00004F1150105F0E8FD08281CBF012010BDE3 +:105FE000207B002816BF022800200120BDE81040B9 +:105FF000FFF72EBDE449096881F8300070472DE9AC +:10600000F047E14D2968087B002816BF02280020D0 +:10601000012048730E31FFF705FD2968087B02282F +:1060200016BF03280122002281F82F20082081F8C2 +:106030002D00487B0126002701F10E03012804BF33 +:106040005B7913F0C00F0AD001F10E03012804D1CF +:10605000587900F0C000402801D0002000E0012065 +:1060600081F82E00002A04BF91F8220010F0040FDE +:1060700006D0087D153105F097FD296881F82D00BF +:1060800028684760FCF720FF2968C04C4FF00009E2 +:10609000886094F82D0005F0A3FD804694F82F0049 +:1060A000002818BFB8F1000F04D01021404606F0B8 +:1060B000D4FB68B194F8300000281CBF94F82E007F +:1060C00000281DD0607B04F10E0101280ED012E0E3 +:1060D00066734A4604F10E014046FFF7F8FC94F857 +:1060E0002D1004F10E0005F074FE09E0487900F06F +:1060F000C000402831D0394604F10E00FFF71EFDE4 +:106100002868C77690F8220010F0040F08BFBDE899 +:10611000F087002794F82D0005F06BFD040008BF00 +:10612000BDE8F087102106F098FB002818BFBDE8F5 +:10613000F08728683A4600F11C01C6762046FFF732 +:10614000C6FC286800F11C01914806F07AFFBDE802 +:10615000F04701218E4806F08FBF05F073FE4A46D6 +:1061600004F10E01FFF7B3FCCAE778B5874904468E +:10617000854D407B08732968207808706088ADF8E9 +:10618000000080B200F00102C0F3400342EA430283 +:10619000C0F3800342EA8302C0F3C00342EAC302B1 +:1061A000C0F3001342EA0312C0F3401342EA431261 +:1061B000C0F3801042EA80104884E07D012808BFC7 +:1061C000012607D0022808BF022603D0032814BFE7 +:1061D000FFDF0826286880F8BA60607E012808BFC3 +:1061E000012607D0022808BF022603D0032814BFC7 +:1061F000FFDF0826286880F8BB60217B80F8241028 +:10620000418C1D290CBF002161688162617D80F88D +:106210003510A17B002916BF02290021012101753B +:10622000D4F80F10C0F81510B4F81310A0F8191016 +:10623000A17EB0F8CE2061F30302A0F8CE20E17E6B +:10624000012918BF002180F83410002078BD4E4885 +:106250000068408CC0F3001119B110F0040F05D094 +:1062600002E010F0020F01D00020704701207047BB +:10627000454A00231268C2F8C030B2F822C0BCF10F +:106280001D0F02BFC2F8C83082F8C4307047002921 +:1062900008BFC2F8C8300AD0936A40F2712C03FBE1 +:1062A0000CF31944491EB1FBF3F1C2F8C81082F88F +:1062B000C40070470346344810B50168D1F8C820BF +:1062C000002A1ABFD1F8C0C0BCF1000F012405D0CC +:1062D0009A4205D90124D01AC1F8C800204610BD41 +:1062E00091F82210002411F0010F1CBF40680088B3 +:1062F0004FF0430108BF002001F017F9EEE72248F4 +:10630000006890F8B70000280CBF012000207047FB +:1063100070B51F2834BF04461F2400221A4D286878 +:1063200080F8B920224678300EF014FC286801214C +:1063300080F8974080F8B91070BD10B51F2828BFAD +:106340001F20C2B2104C0023206880F8B83080F8BB +:10635000B72098300EF0FEFB2168012081F8B800CC +:1063600010BD0949096881F8BD00704706480068FA +:1063700090F8220000F0010070470348006890F890 +:106380002200C0F340007047CC000020A40A002087 +:10639000B00B0020FE48006890F82200C0F34010C7 +:1063A0007047FB48006890F82200C0F3C0007047B7 +:1063B00001207047F648006890F8BB00704770B540 +:1063C000FEF77CFFFEF730FFFEF760FEFEF7BDFE36 +:1063D000EF4C2068D0F8C010491CC0F8C01090F8ED +:1063E0003300002530B1FEF77FFFFEF794F92068F7 +:1063F00080F833502068457090F8C410F9B1D0F897 +:10640000C02091421BD8042002F08AFA206890F83C +:10641000220010F0010F0CD060684321008801F0C9 +:1064200084F860680088FAF751FDBDE87040FAF71B +:10643000E7B9BDE870404321002001F076B8D0F8FC +:10644000C81019B1D0F8C020914202D990F8370095 +:10645000D8B1042002F064FA206890F8220010F00D +:10646000010F0CD060683C21008801F05EF8606884 +:106470000088FAF72BFDBDE87040FAF7C1B9BDE816 +:1064800070403C21002001F050B8BDE87040002071 +:1064900002F046BA2DE9F84FBD4E804617463068E7 +:1064A0008B464FF0000A458C15F0030F10D015F005 +:1064B000010F05F0020005D0002808BF4FF0010AC7 +:1064C00006D004E0002818BF4FF0020A00D1FFDF19 +:1064D0004FF000094C4615F0010F05F002000BD0FB +:1064E00070B915F0040F0BD049F00800002F18BF49 +:1064F00040F0030440D090E010B115F0040F0DD02F +:1065000015F0070F10D015F0010F05F0020036D07E +:10651000002808BF15F0040F27D03DE0002F18BF5A +:1065200049F0090479D134E02FB149F0080415F09D +:10653000200F14D071E0316805F0200291F8770047 +:10654000104308BF49F0010467D049F0180415F062 +:10655000200F62D191F8BA1008295AD156E031685B +:1065600091F8BA10082951D153E049F00800002FE2 +:1065700018BF40F0010450D140F010044DE0002855 +:1065800018BF15F0040F07D0002F18BF49F00B04F7 +:1065900043D149F0180440E015F0030F3CD115F049 +:1065A000040F39D077B1316849F0080091F8BA107A +:1065B00008290CBF40F0020420F0020415F0200F5F +:1065C00022D02AE0316805F0200291F877001043CC +:1065D00008BF49F0030420D049F0180015F0200F3F +:1065E00009D000BF91F8BA10082914BF40F0020486 +:1065F00020F0020411E091F8BA20082A14BF40F0FC +:10660000010020F00100EDE7082902D024F0010488 +:1066100003E044F0010400E0FFDF15F0400F18BF75 +:10662000FFDFA8F8009098F80000072120F0200074 +:1066300088F80000404606F0D2FC5146404606F07D +:10664000D1FE2146404606F0D6FE14F0010F0CD0D4 +:106650003068062300F10E010022404606F0A8FE35 +:106660003068417B404606F0FAFC14F0020F1BD064 +:106670003068BBF1000F0BD000F11C010623012292 +:10668000404606F095FE0121404606F0F5FC0BE081 +:1066900000F1150106230122404606F089FE30680C +:1066A000017D404606F0E8FC14F0040F18BFFFDF40 +:1066B00014F0080F17D0CDF800903068BDF8001026 +:1066C0000223B0F8CE00020962F30B01ADF800100E +:1066D0009DF80110032260F307118DF8011069463F +:1066E000404606F065FE012F16D1306890F877001D +:1066F00090B1404606F072FE3368401CC0B293F879 +:106700007710C0F125008142B8BF084682B203F17C +:106710005801404606F09DFE0020002818BFFFDF0C +:106720000020002818BFFFDF0020002818BFFFDF6F +:10673000BDE8F88F2DE9F843154C2068002808BF04 +:10674000FFDF2068417811BB0178FF2926D00027A0 +:1067500080F83170877080F837703846FEF703FD97 +:10676000FEF7E5F9206890F9BD00FEF770FA0948D8 +:10677000FEF777FA0848FEF7E2FC206890F824005C +:1067800010F0010F0DD02520FEF773FA10E005E0A0 +:10679000CC0000200C520200095202000C20BDE87F +:1067A000F88310F0020F18BF262067D0FEF761FAB9 +:1067B000206890F8BA102520FEF779F9206880F853 +:1067C0002C70FEF7CAFC2068002190F8BA20084619 +:1067D000FEF779FB0F210520FEF70DFA2068FF4D2B +:1067E000012690F82E10002901BF90F82F100029E3 +:1067F00090F8220010F0040F70D0FCF765FB804683 +:10680000206841468068FDF76DF8F54990FBF1F985 +:1068100001FB190041424046FCF75FF80146206841 +:10682000816041684944416005F0BBF90146206838 +:10683000426891426DD8C0E901784FF0010895F89F +:106840002D0005F0CDF9814695F82F00002818BFDE +:10685000B9F1000F04D01021484605F0FEFFA0B1A9 +:1068600095F8300000281CBF95F82E00002824D091 +:10687000687B05F10E01012815D019E010F0040F16 +:1068800014BF2720FFDF91D192E732466E7305F1E6 +:106890000E014846FFF71BF995F82D1005F10E0083 +:1068A00005F097FA09E0487900F0C000402816D0BA +:1068B000414605F10E00FFF741F9206890F82200EB +:1068C00010F0040F25D095F82D0005F092F95FEA3D +:1068D00000081ED0102105F0C0FF40B119E005F0FE +:1068E000B1FA324605F10E01FFF7F1F8E5E720684D +:1068F000324600F11C01C6764046FFF7E8F82068F2 +:1069000000F11C01B74806F09CFB0121B54806F0D8 +:10691000B3FB2068417B0E30FEF751F9206890F8F8 +:10692000B81079B390F8B72080F8772000F198017B +:1069300058300EF054F9206890F82210C1F300117D +:10694000E9B9B0F8CE0002210609ADF8006068464A +:10695000FDF7F2FA28B1BDF80000C0F30B00B04219 +:1069600004D1BDF80000401CADF800002168BDF85E +:106970000000B1F8CE2060F30F12A1F8CE202068FD +:1069800080F8B870206890F8B91059B190F8972045 +:1069900080F8572000F1780138300EF020F9206897 +:1069A00080F8B9702068B0F8CE10D0F8C02009097E +:1069B00051FA82F190F8BC20DFF82CC211446346F2 +:1069C0000022E1FB0C3212096FF0240302FB0311D9 +:1069D00080F8BC1090F82210824E90F81B80C1F312 +:1069E000001106F1280900295DD03780317821F0A7 +:1069F00020013170408C132837D01CDC10284DD07A +:106A0000122846D0FFDF00BF05F10E01754806F0E1 +:106A10000AFB697B734806F022FB2068418C1D2924 +:106A200018BF15297ED090F8772000F15801304624 +:106A300006F04BFB7EE0152818BF1D28E2D101218E +:106A4000304606F0CCFA3078B8F1000F40F0200064 +:106A50003070206812D000F11C01304606F0F1FAC7 +:106A60000121304606F008FBCEE70021304606F053 +:106A7000B6FA307840F020003070C5E700F115011B +:106A8000304606F0DEFA2068017D304606F0F4FA62 +:106A9000BAE70621304606F0A2FAB5E702213046F1 +:106AA00006F09DFAB0E7002241463046FFF7F2FCBF +:106AB000206890F87710002904BF408C10F0010F77 +:106AC00005D110F0020F08BF10F0200F04D00122F2 +:106AD00041464846FFF7DEFCF07810F03F0F1CBF40 +:106AE000307910F0100F25D0304606F076FA226883 +:106AF000014692F82400C0F38003C0F3400C6344C5 +:106B000000F00100034492F82C00C0F38002C0F3AF +:106B1000400C624400F001001044181AC0B200F0AA +:106B200018FD00E006E00090032304226946304689 +:106B300006F03EFC206890F82200C0F30010B0B1CF +:106B40002A4E04213046378006F049FA05F10E013D +:106B5000304606F068FA697B304606F080FA206815 +:106B600000F1380190F85720304606F0D2FA05F0CF +:106B70008DF803211E4805F01CF9216881F83300C7 +:106B80000020BDE8F8831B49486070472DE9F843B1 +:106B9000184C8046206890F8312032B1408C1D2876 +:106BA00008BFFFDFBDE8F84309E4012631B390F8E0 +:106BB000BC00FEF75EF8206890F8BB102520FDF7BA +:106BC00076FF206801224FF4967190F8BB300020C8 +:106BD000FEF7ABF90848FEF7C9FA10E0A40A002056 +:106BE00040420F00B00B002053E4B36E000C0020B5 +:106BF000280C0020CC000020D80B002006E02068E4 +:106C00004670867080F83160BDE8F883F948FEF779 +:106C1000ADFA2068002590F8241090F82C0021EAA5 +:106C2000000212F0010F18BF01250ED111F0020F62 +:106C300004D010F0020F08BF022506D011F0040F97 +:106C400003D010F0040F08BF04250027B8F1000F8F +:106C50005CD0012D1CD0022D08BF26201CD0042D95 +:106C600014BFFFDF272017D0206890F8BA10252026 +:106C7000FDF71DFF206890F82210C1F3001171B1DB +:106C8000002201234FF496711046FEF74EF93DE0C5 +:106C90002520FDF7EEFFE7E7FDF7EBFFE4E790F8CF +:106CA000BA3001224FF496710020FEF73EF9D14828 +:106CB000C17811F03F0F1CBF007910F0100F25D0E4 +:106CC000CC4806F08AF92368014693F82420C2F3E1 +:106CD0008000C2F3400C604402F0010200EB020CA1 +:106CE00093F82C20C2F38000C2F34003184402F052 +:106CF00001020244ACEB0200C0B200F02AFC00909A +:106D0000032304226946BB4806F052FB206890F832 +:106D10002C10294380F82C1090F8242032EA01012D +:106D200011D04670408C132820D01BDC102808BFDF +:106D3000BDE8F883122819D0C0F30010002818BF4E +:106D4000FFDFBDE8F883418C1D2908BF80F82C7057 +:106D5000E7D0C1F30011002914BF80F8316080F83A +:106D60003170DEE7152818BF1D28E5D1BDE8F843CE +:106D700001210846FEF7F0BA9F4810B50068417837 +:106D800041B90078FF2805D000210846FFF7FEFE34 +:106D9000002010BDFEF792FAFEF746FAFEF776F9EC +:106DA000FEF7D3F90C2010BD93490120096881F842 +:106DB000370070479049096881F83200704770B514 +:106DC000002601F01DFC002800F0C4808A4C2068D9 +:106DD000417801220025012905D0022901D003298B +:106DE00070D0FFDF70BD81780225B1B390F822002A +:106DF00010F0030F67D08148FEF7B8F92068012230 +:106E0000962190F8BB301046FEF78FF8216891F874 +:106E1000BB0091F8CC1010F00C0F08BF0021962099 +:106E2000FEF7BFF92068457090F8330058B1FDF7C0 +:106E30005EFC206890F8BB0010F00C0F0CBF4020E7 +:106E40004520FEF747FA206890F83400002808BF74 +:106E500070BDBDE87040FEF75CBA418CC1F3001212 +:106E60009AB1102929D090F8330020B1FDF73FFCEA +:106E70004020FEF72FFA6148FEF778F9206890F875 +:106E8000221011F0040F1FD029E090F8242090F870 +:106E90002C309A4211D190F87700002808BF11F0E9 +:106EA000010F05D111F0020F08BF11F0200F51D0D2 +:106EB000BDE870400121084668E6BDE87040002149 +:106EC000012063E619E045E090F83500012814BF81 +:106ED0000328102646F00E010020FEF73DFA206838 +:106EE00090F83400002818BFFEF713FA002196200E +:106EF000FEF757F92068457070BD817801B3418C69 +:106F000011F0010F21D080F8D02090F8D210B0F805 +:106F1000D40000F00AFB60680088F9F7D7FFF9F7A2 +:106F20006FFC20684570FEF7C9F9FEF77DF9FEF7A2 +:106F3000ADF8FEF70AF9BDE87040032001F0F0BC9F +:106F40008178BDE87040012020E611F0020F04BFF7 +:106F5000FFDF70BDBDE87040FFF731BAFFF72FBA11 +:106F600010B5254C206890F8341049B13630FEF742 +:106F7000DBF918B921687F2081F83600FEF7BFF9E8 +:106F8000206890F8330018B1FEF7AEF9FDF7C3FBA7 +:106F900001F036FBA8B1206890F82210C1F300116F +:106FA00079B14078022818BFFFDF00210120FFF7E8 +:106FB000EDFD2068417800291EBF40780128FFDFE1 +:106FC00010BDBDE81040FFF7FAB92DE9F0470A4FB0 +:106FD0000E4603283A68518C12D092F8320001F024 +:106FE000010410F1000918BF4FF001094FF001082A +:106FF0000CE00000B00B0020CC000020280C00208A +:10700000C1F340044FF000094FF00208FDF721FEE4 +:10701000054634EA090008BFBDE8F0873868FF4C30 +:1070200090F8330060B104F016FE30700146FF287E +:1070300006D0E01C04F004FE307804F017FE05438F +:107040002078C0F380113868027D914209D100F1A7 +:1070500015010622E01C0DF051FD002808BF01209B +:1070600000D000203178FF2906D0C0B9386890F8E8 +:107070002D00884215D112E098B12078E11CC0F3B0 +:10708000801004F091FD064604F0F4FE38B130465D +:1070900004F0AFFD18B1102105F0DFFB08B10120AD +:1070A00000E00020396891F8221011F0040F01D09F +:1070B000F0B11AE0CDB9DA4890F83500002818BFD1 +:1070C000404515D114F8030B2146C0F3801004F09D +:1070D0006BFD044604F0CEFE38B1204604F089FD75 +:1070E00018B1102105F0B9FB10B10120BDE8F087FF +:1070F0000020BDE8F0872DE9F04FCA4D804683B0EF +:10710000286800274078022818BFFFDF28687F24FE +:1071100090F8341049B13630FEF706F9002804BF64 +:10712000286880F83640FEF7EAF8BC4805F077FF9B +:107130000646B8F1000F00F0B081B84806F008F933 +:10714000002800F0AA81FDF752FD002800F0A5817B +:107150003046B24EFF21DFF8D0A24FF000084FF0CA +:10716000030B4FF00109062880F0B881DFE800F03A +:10717000FEFEFE03FE8F8DF8001069460320FFF728 +:1071800024FF002828687CD090F8341011B190F8C2 +:10719000001159B12868807801283ED0A348FDF736 +:1071A000E5FF286880F801B000F07BB99DF8003059 +:1071B00080F80091017880F80111FF2B10D000F2C7 +:1071C0000312511E184604F01DFD002808BFFFDF02 +:1071D000286890F8021141F0020180F802110DE0D8 +:1071E0003178C1F3801180F802118D49D1F88721DF +:1071F000C0F80321B1F88B11A0F80711286800F23C +:10720000091690F836007F2808BFFFDF286890F83D +:107210003610317080F83640BCE7844CDAF80490C0 +:1072200004F12806A4F800800721204605F0D7FEC7 +:107230000021204606F0D6F84946204606F0DBF845 +:107240000623002206F10901204606F0B1F828685D +:10725000417B204605F003FF286800F1380190F8D3 +:107260005720204606F0F5F82046FDF77FFF2868F6 +:107270000122962190F8BB300020FDF756FE90E7E2 +:10728000FFE78078002840F00A8100F006B98DF809 +:10729000081002A90520FFF798FE0028286800F0D2 +:1072A000F78082786249002A7ED0A1F11F066C68BF +:1072B00090F8BB90D6F80F00C4F80E00B6F8130093 +:1072C0006082707D2075B07D6075B6F81700E08231 +:1072D000B6F819006080B6F81B00A080B6F81D0053 +:1072E000E08004F108000DF0EBFD96F8240000F0BA +:1072F0001F00207696F82400400984F86C0184F879 +:10730000549084F85590286890F8CC1084F8561062 +:1073100090F8BD0084F857009DF80810686800F0E8 +:1073200081F9022001F0FCFAA6F12804DAF80090B5 +:10733000A4F800800821204605F051FE00212046D7 +:1073400006F050F84946204606F055F869463046A2 +:1073500005F07EFE304605F098FE0146204605F019 +:107360007EFE062300226946204600E0B6E006F0D5 +:107370001FF86946304605F05DFE304605F078FEA0 +:107380000146204605F078FE062301226946204684 +:1073900006F00EF82046FDF7E9FE28680122962146 +:1073A00090F8BB30002000E005E0FDF7BEFD286846 +:1073B00080F801B075E06C683278184E607BC2F3DB +:1073C000401210406073D6F80F00C4F80E00B6F8F3 +:1073D00013006082707D2075B07D6075B6F817006F +:1073E000E082B6F819006080B6F81B00A080B6F8FD +:1073F0001D00E0804FF0010A04F108000DF060FD6F +:1074000096F8240000F01F00207696F8240040092A +:1074100084F86C0184F854A00CE00000280C0020D3 +:10742000A40A0020CC00002004520200000C00201E +:10743000470C002084F855A0286890F8CC1084F8F8 +:10744000561090F8BD0084F857009DF80810686841 +:1074500000F0E8F8286880F8D09090F8D210B0F8E2 +:10746000D40000F062F868680088F9F72FFDF9F79A +:10747000C7F9286880F80180FDF720FFFDF7D4FEEA +:10748000FDF704FEFDF761FE012001F049FA08E076 +:1074900090F82200C0F3001008B1012701E0FEF7C8 +:1074A0008EFF286890F8330018B1FDF71DFFFDF737 +:1074B00032F91FB100210120FFF768FB28684178ED +:1074C000002919BF4178012903B0BDE8F08F407849 +:1074D000032818BFFFDF03B0BDE8F08F286890F8DD +:1074E0002200C0F300100028D9D0D6E770B58A4C2E +:1074F00006460D462068807858B1FDF789FA216864 +:107500000346304691F8BB202946BDE8704001F0A3 +:1075100074BAFDF77DFA21680346304691F8BA2027 +:107520002946BDE8704001F068BA7C4A137882F8B9 +:10753000F530A2F8F60082F8F410012082F8F2008B +:1075400092F8C400002818BF92F8C00082F8F80032 +:10755000704778B50446704800230093006890F89F +:10756000BA20082A04BF4FF4C87240230DD0042A61 +:1075700004BF4FF4BF72102307D0022A07BF03F1E4 +:107580001802042303F128020823491D01FB0326E6 +:1075900090F8BC209DF8001062F3050141F0400511 +:1075A0008DF8005090F8BB00012826D002282BD07F +:1075B000082818BFFFDF2DD025F080008DF80000CF +:1075C000C4EB041106FB04F001EB810100EB810424 +:1075D0005348844228BFFFDF5248A0FB0410BDF887 +:1075E0000110000960F30C01ADF80110BDF80000B6 +:1075F0009DF8021040EA014078BD9DF8020020F09D +:10760000E0008DF80200D7E79DF8020020F0E000CE +:10761000203004E09DF8020020F0E00040308DF8BA +:107620000200C9E72DE9F0413B4D04460E462868AB +:1076300090F8D000002818BFFFDF0027286880F8E6 +:10764000D2702188A0F8D4106188A0F8EA10A1882F +:10765000A0F8EC10E188A0F8EE1094F86C1180F816 +:10766000F01090F82F1049B1427B00F10E01012A71 +:1076700004D1497901F0C001402935D090F830108B +:1076800041B1427B00F10E01012A04BF497911F09A +:10769000C00F29D0DE300DF001FC2348FF2E00780A +:1076A000C0F3801060761D48D0F88711C4F81A1016 +:1076B000B0F88B01E08328681ED0C0F8E410E18B9D +:1076C000A0F8E81000F1D802511E304604F09AFAF2 +:1076D000002808BFFFDF286890F8D71041F00201AA +:1076E00080F8D710BDE8F081D0F80E10C0F8DE1099 +:1076F000418AA0F8E210D0E7C0F8E470A0F8E87082 +:10770000617E80F8D710D4F81A10C0F8D810E18B39 +:10771000A0F8DC10BDE8F081CC000020A40A002015 +:10772000C4BF030089888888280C0020FE48406870 +:1077300070472DE9F0410F460646014614460120E8 +:1077400005F082FA054696F85500FEF75FF8014607 +:1077500096F85500022808BFF44807D0012808BF52 +:10776000F34803D004280CBFF248F34808444FF410 +:107770007A7100F2E140B0FBF1F0718840F27122C1 +:107780005143C0EB4100001BA0F5597402F0E4FD29 +:10779000002818BF1E3CAF4234BF28463846A042DE +:1077A00003D2AF422CBF3C462C467462BDE8F08148 +:1077B0002DE9FF4F8FB0044690F855601C9899460C +:1077C00040EA0900019094F86500002790460D28D2 +:1077D0000CBF012000200990B9F1000F04BF94F8FC +:1077E0000C0103282BD1099848B3B4F88E01404509 +:1077F00025D1D4F81401C4F80001608840F2E241B8 +:107800004843C4F80401B4F85A11B4F8E600084437 +:10781000C4F80801204602F0A9FDB4F89201E08204 +:1078200094F890016075B4F894016080B4F8960102 +:10783000A080B4F89801E080022084F80C01D4F80C +:1078400064010C90B4F8E6A0B4F85801D4F860B123 +:10785000D4F854110891B9F1000F03D094F8201115 +:1078600049B193E004F1E001059174310A9104F506 +:10787000A075091D07E004F59A710591091D0A918B +:1078800004F59275091D0B91B4F85810A8EB00008F +:10789000A8EB010109B200B20391002805DAD4F87F +:1078A0005001089001200190084694F80C1100291D +:1078B00071D0012900F04482022900F0658103297A +:1078C00018BFFFDF00F0848239460898FBF705F8FF +:1078D0000A99012640F2712208600B98A0F80080F6 +:1078E000002028702E710A980068A8606188D4F87A +:1078F00014015143C0EB41009049A0F54D708861DF +:107900004969814287BF059908600598016005981B +:10791000616A0068084400F5D270E86002F01CFD5E +:1079200010B1E8681E30E8606E71B4F8D000A0EBCA +:10793000080000B20028C4BF03206871099800281D +:107940001C9800F0C282C0B1B4F8F81000290CBF36 +:107950000020B4F8FA00A4F8FA0094F8FC20401CC7 +:107960005043884209D26879401E002805DD6E71B7 +:10797000B4F8FA00401CA4F8FA00B9F1000F00F0C6 +:10798000C78294F82001002800F0BE8213B00220C4 +:10799000BDE8F08FFFE7BBF1000F08BFFFDF94F8F1 +:1079A0005510614890F8280005F0FBFA0790E08A2E +:1079B00040F271214143079800EB410210980021E9 +:1079C000002806D000FB02F15D48B1FBF0F000F1A9 +:1079D0000101C4F81011608840F2E24100FB01F29D +:1079E00010994FF0000006D0554801FB02F1B1FBA1 +:1079F000F0F000F10100C4F8140186B221464FF006 +:107A00000100D4F828A005F01FF9074694F85500A6 +:107A1000FDF7FCFE014694F85500022808BF4348D4 +:107A200007D0012808BF424803D004280CBF4148B2 +:107A30004148084400F2E1414FF47A70B1FBF0F1A3 +:107A4000608840F271225043C1EB4000801BA0F5DA +:107A5000597602F081FC002818BF1E3EBA4534BF9B +:107A600038465046B04203D2BA452CBF56463E4631 +:107A7000666294F85500FDF7F7FE4FF47A7600F24F +:107A8000E140B0FBF6F000EB0B0794F85500FDF772 +:107A9000EBFE024694F85500022808BF234907D0A0 +:107AA000012808BF224903D004280CBF21492249DC +:107AB00002EB010AFDF7AAFE504400F2DB514FF43D +:107AC0007A70B1FBF0F0E18A40F271224A430799E3 +:107AD000D4F810A101EB4201081AA0EB0A003844C7 +:107AE000A0F12007607D40F2E24110FB01F0079019 +:107AF00094F8556016F00C0F18BF4DF6883103D17D +:107B00003046FDF783FE0146022E08BF074807D026 +:107B1000012E08BF064803D0042E0CBF05480648B6 +:107B2000084400F2E1410DE0500C00200436020050 +:107B3000A2240200D0FB0100C0D40100D400002028 +:107B400040420F004FF47A70B1FBF0F000EB4A01B5 +:107B5000079801EB000A3046FDF746FE504400F15D +:107B60006201FD48416194F85500FDF77DFE00F289 +:107B7000E1414FF47A70B1FBF0F05844381AB0F597 +:107B80003D7F38BFFFDF9FE6E28A40F27121D4F8E3 +:107B90000401514300EB410210980021002806D057 +:107BA00000FB02F1ED48B1FBF0F000F10101C4F877 +:107BB0001011618840F2E24001FB00F210994FF091 +:107BC000000006D0E54801FB02F1B1FBF0F000F146 +:107BD0000100C4F8140186B221464FF00100D4F828 +:107BE00028B005F031F8074694F85500FDF70EFE71 +:107BF000014694F85500022808BFD94807D001284B +:107C000008BFD84803D004280CBFD748D748084439 +:107C100000F2E1414FF47A70B1FBF0F0618840F27C +:107C200071225143C0EB4100801BA0F5597602F050 +:107C300093FB002818BF1E3EBB4534BF384658464C +:107C4000B04203D2BB452CBF5E463E466662BAF1E7 +:107C5000000F2FD11C9868B394F855603046FDF79B +:107C6000D5FD0146022E08BFBD4807D0012E08BF32 +:107C7000BC4803D0042E0CBFBB48BC48084400F2EB +:107C8000E1414FF47A70B1FBF0F0D4F81011E38ABF +:107C9000014440F27122D4F804015A4300EB42003F +:107CA000471A3046FDF7A0FD0C99081A3844A0F198 +:107CB00020070AE0E28A40F27121D4F8040151431E +:107CC00000EB4101D4F810010F1AD4F80821D4F8C0 +:107CD0001011D4F8000100FB021B607D40F2E2416C +:107CE00010FB01FA94F8556016F00C0F18BF4DF612 +:107CF000883103D13046FDF789FD0146022E08BFC9 +:107D0000974807D0012E08BF964803D0042E0CBF19 +:107D100095489648084400F2E1414FF47A70B1FB6F +:107D2000F0F000EB4B0082443046FDF75DFD50441F +:107D300000F1600188484161012084F80C01C3E52D +:107D4000618840F271235943D4F81421D4F800C15A +:107D5000C2EB410101FB00F70398D4F8081150442D +:107D6000401AD4F81031401E0CFB013100FB021BFD +:107D7000607D40F2E24110FB01FA94F8556016F084 +:107D80000C0F18BF4DF6883103D13046FDF73EFD8C +:107D90000146022E08BF724807D0012E08BF714865 +:107DA00003D0042E0CBF70487048084400F2E14133 +:107DB0004FF47A70B1FBF0F000EB4B008244304698 +:107DC000FDF712FD504400F16001634841617BE51D +:107DD000628840F27123D4F814115A43C1EB420176 +:107DE00001FB00F794F8640024281CBF94F8650098 +:107DF00024280BD1B4F88E01A8EB000000B20028B3 +:107E000004DB94F89101002818BF0646019870B36E +:107E1000BAF1000F2BD10C98002814BFBBF1000F52 +:107E2000FFDF94F8550010F00C0F14BF4DF68830AA +:107E3000FDF7ECFC022E08BF494907D0012E08BF10 +:107E4000484903D0042E0CBF47494849084400F272 +:107E5000E1414FF47A70B1FBF0F03F1A94F855000D +:107E6000FDF7C2FC0C99081A3844A0F120070398CA +:107E7000D4F81411504400FB01FA16F00C0F18BF8F +:107E80004DF6883103D13046FDF7C0FC0146022E85 +:107E900008BF334807D0012E08BF324803D0042E54 +:107EA0000CBF31483148084400F2E1414FF47A7088 +:107EB000B1FBF0F000EB4A0A3046FDF795FC504468 +:107EC00000F1600124484161FEE400287FF43CADEC +:107ED00094F80C0100283FF450AD618840F2712203 +:107EE000D4F814015143C0EB4101284604F0D7FDFA +:107EF0000004000C3FF441AD1D99002918BF088013 +:107F0000012013B0BDE8F08F94F85C01FBF736FB5D +:107F100094F85C012946FBF71FFA00281CBF89F082 +:107F2000010084F82101002013B0BDE8F08F2DE995 +:107F3000F04F0F4C074683B020788946064E002547 +:107F40004FF00208032804BF207BB8427DD160684F +:107F50003061207803280DE0D400002040420F005B +:107F600004360200A2240200D0FB0100C0D40100AC +:107F7000500C002018BFFFDF0327B9F1080F78D29B +:107F8000DFE809F0040E1B1B167777726562FEF7B7 +:107F9000D1FB002818BFFFDFB77003B0BDE8F08F3A +:107FA000FEF7EAFE002818BFFFDF03B0BDE8F08F40 +:107FB00003B0BDE8F04FFDF7F3B92775257494F8C9 +:107FC0002C00012658B14FF47A71A069FAF785FCAC +:107FD000A061002104F1100004F061FD1AE001210C +:107FE0006846FBF79FFF9DF8000042F21071000207 +:107FF000B0FBF1F201FB1205FDF7D3FF0544294662 +:10800000A069FAF76AFCA061294604F1100004F0A7 +:1080100046FD461C208C411C0A293CBF304420846C +:10802000606830B1208C401C0A2828BF84F8158075 +:1080300000D267753046FEF73DF9002804BF03B053 +:10804000BDE8F08F607A002801E014E011E01CBF69 +:1080500003B0BDE8F08F207B04F11001FBF77CF941 +:10806000002808BFFFDFA0E7207BFAF70EFF25708E +:108070009BE7FFDF99E7202F28BFFFDFDFF804A48D +:1080800007213AF81700F8F7EFFD040008BFFFDFFB +:10809000202F28BFFFDFFB48218830F817008842D7 +:1080A00018BFFFDF01273461B9F1080F80F0548158 +:1080B000DFE809F0049EA6A6A1F0F0EFC4F8605135 +:1080C000F580C4F8645194F8210138B9FAF7FCFE40 +:1080D000D4F82C11FBF706FC00281BDCB4F81E11A9 +:1080E000B4F85800814206D1B4F8D410081AA4F8A4 +:1080F000D600204605E0081AA4F8D600B4F81E11F0 +:108100002046A4F85810D4F84811C4F82C11C0F82F +:1081100050111DE0B4F81C11B4F85800091AA4F865 +:10812000D610B4F81C112046A4F85810D4F82C111D +:10813000C4F84811C4F85011D4F83411C4F8E01050 +:10814000D4F83811C4F85411B4F83C11A4F85811FB +:1081500001F0B6FFFAF792FE94F855A0814650461A +:10816000FDF754FBBAF1020F08BFC74909D0BAF1B5 +:10817000010F08BFC54904D0BAF1040F0CBFC449B0 +:10818000C44908444FF47A7100F2E140B0FBF1F1C8 +:10819000D4F8140140F27122014460885043C1EBCD +:1081A0004000A0F1300AB9F1B70F98BF4FF0B709FE +:1081B0002146012004F048FD4844AAEB0000A0F24B +:1081C0001939A2462146012004F03EFDDAF82410B8 +:1081D0009C30814288BF0D1AC6F80C904D4538BFBF +:1081E000A946C6F8089084F8207186F80280DCE67B +:1081F00002F0ADF801E0FDF7D3F884F82071D4E681 +:10820000FAF762FED4F8502101461046FBF76AFBEC +:1082100048B1628840F27123D4F814115A43C1EB7B +:108220004201B0FBF1F094F865100D290FD0B4F8BD +:108230005820B4F81E1113189942AEBF481C401CB8 +:108240001044A4F81E0194F8220178B905E0B4F8AE +:108250001E01401CA4F81E0108E0B4F81E01B4F889 +:10826000D410884204BF401CA4F81E01B4F85A017F +:10827000DFF82492401CA4F85A01B4F88000B4F846 +:108280007E10401AB4F85810401E08441FFA80FBB4 +:1082900024E053E060E000BF96F80080B8F10C0FD6 +:1082A00028BFFFDF39F8188094F86CA1BAF10C0FE1 +:1082B00028BFFFDF39F81A000023404481B202A82A +:1082C000CDE90050B4F81E212046FFF771FA0028CE +:1082D0003FF46BAE012818BFFFDF27D0B4F81E01B2 +:1082E000ABEB000000B20028D6DA082084F8740056 +:1082F00084F87370204601F034FB84F80C5194F834 +:108300005C514FF6FF77202D00D3FFDF5D4820F84A +:10831000157094F85C01FAF7B8FD202084F85C0130 +:10832000307903B0BDE8F04FF3F764BDB4F81E0137 +:10833000BDF808100844A4F81E01CFE794F80C011A +:10834000042818BFFFDF84F80C5194F85C514FF6F5 +:10835000FF77202DDAD3D8E7FFDF26E610B54F4CA4 +:10836000207850B101206072FEF724FD20780328A8 +:1083700005D0207A002808BF10BD0C2010BD207B3E +:10838000FBF7FCF8207BFBF746FB207BFAF77DFD33 +:10839000002808BFFFDF0020207010BD2DE9F04F3E +:1083A0003E4F83B0387801244FF0000840B17C7212 +:1083B0000120FEF7FFFC3878032818BF387A0DD06B +:1083C000DFF8DC9089F8034069460720F8F7D5FB11 +:1083D000002818BFFFDF4FF6FF7440E0387BFBF743 +:1083E000CDF8387BFBF717FB387BFAF74EFD0028FA +:1083F00008BFFFDF87F80080E2E7029800281CBF73 +:1084000090F80C1100292AD00088A0421CBFDFF888 +:1084100074A04FF0200B4AD00721F8F725FC040088 +:1084200008BFFFDF94F85C01FBF7F5FA84F80C81D4 +:1084300094F85C514FF6FF76202D28BFFFDF2AF815 +:10844000156094F85C01FAF720FD84F85CB1694688 +:108450000720F8F792FB002818BFFFDF22E06846EC +:10846000F8F769FB0028C8D021E0029800281CBF5B +:1084700090F80C11002915D00088A0F57F41FF3934 +:10848000CAD114E0840C002004360200A2240200A9 +:10849000D0FB0100C0D4010028520200500C002083 +:1084A000D40000206846F8F746FB0028DDD089F8A4 +:1084B000038087F82C8087F80B8003B00020BDE88C +:1084C000F08F70B50446FD4890F80004FC4D40095B +:1084D00095F800144909884218BFFFDF95F8140D7C +:1084E0004009F84991F800144909884218BFFFDF94 +:1084F000F549002001220C7188700A704870C8701C +:10850000F2490870BDE8704048E7EF4908707047CD +:108510002DE9F843ED4C06468846207800285CD1CA +:10852000EB48FAF758FC2073202856D003276660E2 +:108530002770002565722572AEB1012106F1FC009D +:10854000FBF719FD0620F8F737FB81460720F8F7FF +:1085500033FB96F8FC104844B1FBF0F200FB12101C +:10856000401C86F8FC00FAF789FCDA49091838BF84 +:1085700040F2F65000F23D1086B2FDF79BFBE06141 +:10858000FDF70FFD4FF0010950B384F80A90012167 +:108590006846FBF7C7FC9DF8000042F2107100022C +:1085A000B0FBF1F201FB12000644FAF78DFC3146F4 +:1085B000FAF793F9A061277567752574207B04F19C +:1085C0001001FAF7C9FE002808BFFFDF258400204C +:1085D000FEF7F0FB0020BDE8F8830C20BDE8F8832F +:1085E000FAF772FC3146FAF778F9A061A57284F8BF +:1085F0002C90A8F226502063DDE7B34948707047FD +:10860000B24810B5417A0124002918BF002409D1CD +:1086100090F82C1031B1416A006B814284BF002474 +:10862000FEF7C2FB204610BD70B5A74C0546E0889A +:10863000401CE080D4E902016278D5F86061002A2C +:108640001CBF324604F053FAA060864208D895F861 +:108650000C01012804D0E078002804BF012070BD7F +:10866000002070BD70B50C4640F2E24100FB01F500 +:108670002046FDF7CBF8022C08BF974907D0012C04 +:1086800008BF964903D0042C0CBF9549954908446E +:108690004FF47A7100F2E140B0FBF1F000F54D705B +:1086A00085428CBF281A002070BD2DE9F04F83B0A1 +:1086B0004FF00009044680F8209190F8DE00002871 +:1086C00007BF94F80C01032803B0BDE8F08FFAF758 +:1086D000FBFBD4F8502101461046FBF703F90028B4 +:1086E000DCBF03B0BDE8F08F628840F27123D4F89C +:1086F00014115A43C1EB4201B0FBF1F0411CB4F834 +:1087000058000144A4F81C11B4F8D410B4F81C218A +:10871000891A09B20029DCBF03B0BDE8F08F01213E +:1087200084F82211B4F88010B4F87E206E4F891AB4 +:10873000491E084485B2DFF890A10DF1080B25E031 +:108740009AF800600C2E28BFFFDF37F8166094F807 +:108750006C81B8F10C0F28BFFFDF37F81800CDE9A6 +:10876000009B3044B4F81C2181B201232046FFF75E +:108770001FF8002804BF03B0BDE8F08F01280FD018 +:10878000022812BFFFDF03B0BDE8F08FB4F81C0170 +:10879000281A00B20028BCBF03B0BDE8F08FCFE7B5 +:1087A000B4F81C01BDF808100844A4F81C01EDE75A +:1087B0002DE9F0430422002583B006297DD2DFE8AD +:1087C00001F0074B03191951044680F80C2107E00A +:1087D00004463D48C178002918BF84F80C210CD00C +:1087E000FAF77EFAA4F85A51B4F85800A4F81E011A +:1087F00084F8225103B0BDE8F08306780C2E28BF20 +:10880000FFDF394F94F80C0137F816604FF001097B +:10881000032807D00128E3D194F86C81B8F10C0F3C +:108820000AD308E0C4F80851C4F8005194F86C81E8 +:10883000B8F10C0F00D3FFDF37F81800CDE9009531 +:10884000304481B2B4F8D42000232046FEF7B0FFB4 +:10885000002818BFFFDFC3E7032180F80C1103B025 +:10886000BDE8F0830546876AB0F81401294686B250 +:10887000012004F0E9F9044695F85500FCF7C6FF1D +:1088800095F85510022908BF134907D0012908BFE0 +:10889000124903D004290CBF1149124908444FF46E +:1088A0007A7100F2E140B0FBF1F0698840F2712288 +:1088B0005143C0EB4100801B18E02DE001E000E0D7 +:1088C0000BE000E019E000E0D4000020500C002094 +:1088D0002F7F01000AFAFFFF04360200A2240200E3 +:1088E000D0FB0100C0D4010028520200A0F5597647 +:1088F00001F032FD002818BF1E3EA74234BF2046BB +:108900003846B04228BF344602D2A74228BF3C4670 +:108910006C6203B0BDE8F083FFDF03B0BDE8F08315 +:10892000F8B5894C0246874F00256168606A052AC0 +:1089300048D2DFE802F0032F34373E00A07A002649 +:1089400060B101216846FBF7F7FA9DF8000042F29A +:1089500010710002B0FBF1F201FB1206FDF721FBE2 +:108960008119A069F9F7B9FFA0612574032060752A +:10897000607A38B9207B04F11001FAF7EDFC002889 +:1089800008BFFFDF2584FAF7ABF93879BDE8F84076 +:10899000F3F730BABDE8F840002100F06DB8C1F837 +:1089A0006001F8BDD1F86001BDE8F840012100F098 +:1089B00063B884F82C50FAF793F93879BDE8F84099 +:1089C000F3F718BAFFDFF8BD70B55E4CA178022945 +:1089D00006BFE188002970BD2569C5F8640195F8D6 +:1089E0005500FCF701FFD5F86411081AA16801448D +:1089F000A160E1680844E06070BD70B5054651486B +:108A000090F802C0BCF1020F06BF006900F5B07417 +:108A10004E4C002904BF256070BD4FF47A760129C1 +:108A20000DD002291CBFFFDF70BD1046FCF707FF09 +:108A300000F2E140B0FBF6F0281A206070BD184645 +:108A4000FCF712FF00F2E140B0FBF6F0281A2060BC +:108A500070BD3D48007800281CBF0020704710B54D +:108A60000720F8F79BF880F0010010BD3648007829 +:108A7000002818BF012070472DE9F047324C82B022 +:108A8000002584F82C50D4F8188084F82810E5725A +:108A900081462570012727722946606803F082FB12 +:108AA0006168C1F85081267B81F85C61C1F86091F2 +:108AB000C1F85481B1F80080202E28BFFFDF244880 +:108AC00020F81680646884F80C51DFF87880A4F8E8 +:108AD000585198F800600C2E28BFFFDFDFF8749023 +:108AE00039F816A094F86C610C2E28BFFFDF39F816 +:108AF00016000023504481B200951A462046019585 +:108B0000FEF756FE002818BFFFDFC4F80851C4F86E +:108B1000005184F80C71A4F81E51A4F81C5184F87B +:108B20002251B4F85800401EA4F85800A4F85A5135 +:108B3000FAF7D6F898F8040002B0BDE8F047F3F76A +:108B400059B90000D4000020500C0020740C002003 +:108B5000840C00202852020070B5FE4C21690A885E +:108B6000A1F8FC2181F8FA0191F85400012808BF0E +:108B7000012508D0022808BF022504D0042816BF0A +:108B800008280325FFDF206980F8FE5190F8550082 +:108B9000012808BF012508D0022808BF022504D0FB +:108BA000042816BF08280325FFDF2069012180F86B +:108BB000FF5180F8F811002180F8A4112079BDE858 +:108BC0007040F3F717B92DE9F04FE24C83B0A0796C +:108BD00010F0010F04BF03B0BDE8F08FA0690123BE +:108BE0000521C578206990F86520583003F0EDFE26 +:108BF00068B1A81E0A2806D2DFE800F009090505B9 +:108C0000090905050909A07840F00800A070A078BE +:108C100000281CBF03B0BDE8F08FA0694FF0200909 +:108C20004FF00208C778002F1CBF012F162F1DD14F +:108C3000206990F8640003F0B1FEB8B1216991F8A1 +:108C400064001F2812D0202808D0162F0CBF84F8EB +:108C5000029084F8028003B0BDE8F08F262081F8EE +:108C60006400162F1CBF2A20FFF776FF47F6FE7A16 +:108C7000012600254FF0280B0C2F00F03B8109DC6A +:108C800080F05F84DFE807F05A3923CCFDFDFCFB60 +:108C9000FAFD9CC3152F00F046820DDC112F00F069 +:108CA000C783122F00F0C081132F00F0B081142F62 +:108CB00000F0CE8100F045BC162F00F06782182F1F +:108CC00000F0CC82FF2F00F0358400F03ABC206920 +:108CD0000123194690F86720583003F076FE0028EB +:108CE00040F03184A06904F081FC216981F87201AF +:108CF000072081F8670000F026BC206901230021CD +:108D000090F86520583003F060FE002800F0C98319 +:108D1000A06904F068FC2169A1F88E01B1F858201F +:108D2000801A00B28245A8BF002843DD01F5C87152 +:108D3000A06904F053FC0B20216937E0206901236E +:108D4000002190F86520583003F03FFE002800F025 +:108D5000A883A06904F01EFC002800F0F283A0693B +:108D60002169B0F80D20A1F88E21B1F85830D21A3F +:108D700012B29245A8BF002A1CDD027981F8902129 +:108D8000B0F80520A1F8922104F0F7FB2169A1F8C1 +:108D90009401A06904F0F4FB2169A1F89601A0698F +:108DA00004F0F5FB2169A1F898010D2081F8650018 +:108DB00000F0C9BB81F874B081F8736000F0C3BBE8 +:108DC00020690123002190F86520583003F0FDFD53 +:108DD000002820690CD0A0F88A5090F88C10491C0B +:108DE00080F88C105FF0100180F8651000F0ABBBCC +:108DF00090F8652001230521583003F0E6FD002896 +:108E00001CBF0820A07040F09E8300F04ABB206980 +:108E100090F86510112908BF122140F0A082E3E705 +:108E200020690123002190F86520583003F0CDFD22 +:108E300080B9206990F86520122A0BD00123052102 +:108E4000583003F0C2FD002818BF082000F0298325 +:108E500000F099B9206990F88E1031B9A0F88A50C5 +:108E600090F88C10491C80F88C1000F1E801A06982 +:108E700004F0D5FB206900F1C00103E0A4E0F6E2B4 +:108E800023E05EE3A06904F0D5FB206990F8C001FF +:108E9000002818BFFFDF20690188A0F8C21100F583 +:108EA000E271A06904F0A9FB206900F5E671A069F0 +:108EB00004F0ABFB206980F8C061142180F86510D4 +:108EC0002079F2F797FF00F03EBB206990F865101B +:108ED000172940F0448290F88C10491E49B280F85E +:108EE0008C100029B8BFFFDF1B20216981F86500C5 +:108EF00000F029BB206990F8661011F0020F09D02C +:108F000090F8642001230821583003F05EFD00280A +:108F100000F0C782206990F8900010F0020F14D181 +:108F2000A06904F09BFB216981F89100A069B0F869 +:108F30000520A1F89220B0F80700A1F8940091F85C +:108F4000900040F0020081F89000206990F89010A5 +:108F500002E00000F000002011F0010F05D02069B0 +:108F600090F8641006291CD114E090F8660010F007 +:108F7000020F18BFFFDF206990F8661041F0020170 +:108F800080F86610A0F88A5090F88C10491C80F880 +:108F90008C10E4E780F8645080F888502079F2F76C +:108FA00029FF206990F88C11042940F0CC8280F8C8 +:108FB0008C512079F2F71EFF206990F86410002987 +:108FC00040F0C18200F031BA206990F8660010F0DC +:108FD000010F77D16946A06904F047FB9DF80000B6 +:108FE00000F02501206980F896109DF8011001F02D +:108FF000410180F89710A0F88A5090F88C10491C15 +:1090000080F88C1090F8661041F001011CE0206996 +:109010000123092190F86420583003F0D6FC002881 +:1090200040F0378200F03DBA206990F8661011F0E8 +:10903000040F40F03682A0F88A5090F88C2041F05E +:109040000401521C80F88C2080F8661000F07BBA76 +:10905000206990F8660010F0300F33D1A06904F059 +:1090600021FB002800F06D822769A06904F016FB3F +:1090700038872769A06904F00DFB78872769A06904 +:1090800004F00EFBB8872769A06904F005FBF88798 +:10909000A07910F0020F03D06069C078142812D0B4 +:1090A000206990F864101C290DD090F84E10012909 +:1090B0000CD090F89B11002904BF90F89A11002958 +:1090C0000CD003E05CE0206980F84E60206990F8E5 +:1090D000661041F0100180F866101AE090F86610F2 +:1090E00041F0200180F866100288A0F8E021028F8C +:1090F000A0F8E221428FA0F8E421828F00F5D6711A +:10910000A0F8E621C08F888781F832602079F2F7D5 +:1091100071FE2069A0F88A5090F88C10491C80F8E4 +:109120008C1000F010BA206901230A2190F8642005 +:10913000583003F04AFC18B3A06904F0B3FAA8B1A0 +:109140002669A06904F0AAFA30872669A06904F0AC +:10915000A1FA70872669A06904F0A2FAB08726698F +:10916000A06904F099FAF08701F000FB206980F80B +:10917000885080F8645000BF01F0C8FA00F0E3B9ED +:10918000A07840F00100A07000F0DDB92069012353 +:109190000B2190F86520583003F017FC20B100BF78 +:1091A00084F8029000F0CFB920690123002190F8E3 +:1091B0006520583003F009FC002800F07281206916 +:1091C00090F864002428EBD0A06904F086FA002807 +:1091D00000F0B781206990F8961041F0040180F802 +:1091E0009610A1694A7902F0070280F851200979A6 +:1091F00001F0070180F8501090F8A531002B04BF52 +:1092000090F8A431002B1CD190F855C000F1540304 +:109210008C4502BF1978914280F87D6011D000F52D +:10922000D67180F8F2610288A0F8F42190F85020FD +:1092300080F8F62190F8510081F84B002079F2F780 +:10924000D9FD2069212180F86510A0F88A5090F896 +:109250008C10491C80F88C1000F075B9206990F8CA +:109260006410202914BF0027012790F865102229D7 +:1092700008BF00F1650804D0002F18BF00F1640892 +:109280006DD090F8961041F0040180F89610A06916 +:1092900004F045FAF0B3D4F81890484604F033FAD5 +:1092A0000090484604F033FA814603F042FD010085 +:1092B00018D0206990F854208A4213D090F8A43135 +:1092C00023B190F8A63113EA090F4BD0002F04BF49 +:1092D00090F8513013EA090F01D18A4242D890F830 +:1092E000A401B8B1DDF80090484603F022FD78B142 +:1092F000216991F8552082420AD091F8A40120B149 +:1093000091F8A70110EA090F2CD091F8A40108B137 +:109310006A4600E026E0A169206903F019FDE8B380 +:10932000A06904F0FAF92169A1F88E01B1F858207A +:10933000801A00B28245A8BF0028DCBF81F874B053 +:1093400081F873605CDD9DF8000081F890019DF864 +:10935000010081F89101242088F8000050E084F891 +:109360000280F0E0206990F8A40100281CBF1E20B4 +:10937000FFF7F2FBB7B1A0692169C07881F8CA0094 +:1093800006FA00F010F0807F08BFFFDF0A21206995 +:1093900080F8641090F88800002800E014E008BF0E +:1093A000FFDF0DE088F80050206990F88C10491E0E +:1093B00049B280F88C100029B8BFFFDF01F08BF9AB +:1093C000206980F87D50BEE0226992F8A40170B156 +:1093D000B2F8583092F85410B2F8A80102F5C772EA +:1093E00003F0A8FDD8B12169252081F86400206927 +:1093F00000F1650180F87D50884508BF80F8655010 +:10940000206900F1650188450FD190F88C10491E44 +:1094100049B280F88C100029B8BFFFDF93E000202C +:10942000FFF79AFB88F80050E1E780F888508AE05F +:10943000206990F8961041F0040180F89610A06918 +:1094400004F089F916287ED1206990F8640020285C +:1094500002D0262805D076E0A06904F080F9FFF755 +:109460007BFB206980F8645080F888506BE02069AD +:1094700090F864200E2A03D1A1690979122902D03B +:109480001C2A1AD10FE001230921583003F09DFA5C +:1094900038B1206980F87C5080F8885080F864509A +:1094A00051E0A6704FE0A1690979142904BF80F842 +:1094B000645080F888503FF45FAE202A03D1A16940 +:1094C0000979162914D0262A03D1A1690979162908 +:1094D0000ED0A1690979172904BF90F86520222AC6 +:1094E00013D0E2691AB1FF2908BF80F886612AE02B +:1094F00080F8645080F8885090F86500212818BFE3 +:109500001A2020D0FFF728FB1DE080F8655090F866 +:109510008C10491E49B280F88C100029B8BFFFDFBB +:10952000206980F87D5090F8A401002818BF002021 +:1095300009D0E7E7E06900281CBF206980F8866150 +:1095400001D101F0C8F82069D0E92A12491C42F182 +:109550000002C0E92A1203B0BDE8F08F70B5FB4EDF +:1095600005460C46306990F8CB00FE2818BFFFDF97 +:1095700032690020002C82F8CB501CBFA2F88A0070 +:1095800070BDA2F88400012082F8880070BD30B55B +:1095900085B005466846FCF7D6F9002808BFFFDF0E +:1095A000222100980BF055FB0321009803F09AFF4D +:1095B0000098017821F010010170294603F0C0FFE6 +:1095C000E24C0D2D04BF0621009830D00BDCA5F134 +:1095D00002000B2819D2DFE800F0201863191926C1 +:1095E000187018192C00152D7BD008DC112D2DD0EA +:1095F000122D18BF132D09D0142D30D005E0162DD3 +:1096000046D0172D6BD0FF2D6AD0FFDFFCF7AEF9E7 +:10961000002808BFFFDF05B030BD2069009990F831 +:10962000CC000871F2E72169009891F8CC10017123 +:10963000ECE7E26800981178017191884171090A9C +:1096400081715188C171090A0172DFE70321009815 +:1096500004F07FF80621009804F07FF8D6E720692F +:10966000B0F84410009804F005F82069B0F84610EE +:10967000009804F003F82069B0F84010009804F056 +:1096800001F82069B0F84210009803F0FFFFBDE731 +:109690002069009A90F8A611117190F8A7014BE08B +:1096A000206900F1F001009803F0C8FF206900F183 +:1096B000C401009803F0CCFFA8E7A549D1E9000157 +:1096C000CDE90201206902A990F8960000F025007A +:1096D0008DF80800009803F0F6FF97E701E019E025 +:1096E0002CE02069B0F84010009803F0CBFF20690F +:1096F000B0F84210009803F0C9FF2069B0F8441098 +:10970000009803F0B7FF2069B0F84610009803F006 +:10971000B5FF7BE7206990F8A41139B1009990F862 +:10972000A6210A7190F8A70148716FE7009A90F896 +:109730005410117190F85500507167E7206990F846 +:109740008721D0F88811009803F008FF5EE770B514 +:109750000C4605464FF4007120460BF09CFA25801C +:1097600070BDF7F78ABB2DE9F0410D46074607218A +:10977000F7F77AFA040008BFBDE8F08194F8AC016D +:109780000026B8B16E700920287094F8AC0178B149 +:10979000268484F8AC61D4F8AE016860D4F8B201D4 +:1097A000A860B4F8B601A88194F8AC010028EFD104 +:1097B0002E7144E094F8B801002837D094F8B8012D +:1097C0000D2818D00E2818BFFFDF38D12088F7F7F2 +:1097D0007DFB0746F7F729F8A0B96E700E202870B8 +:1097E00094F8BA0128712088E88084F8B861384676 +:1097F000F7F715F823E02088F7F768FB0746F7F737 +:1098000014F810B10020BDE8F0816E700D202870B2 +:1098100094F8BA0128712088E88094F8BE01287273 +:1098200084F8B8613846F6F7FAFF08E094F8F001DA +:1098300040B16E701020287084F8F061AF80012074 +:10984000BDE8F08194F8C00190B16E700A202870D4 +:109850002088A880D4F8C401D4F8C811C5F806003F +:10986000C5F80A10B4F8CC01E88184F8C061E6E7D5 +:1098700094F8CE0140B16E701A202870B4F8D0016F +:10988000A88084F8CE61DAE794F8EA0180B16E70BE +:109890001B20287094F8EA010028D0D084F8EA61EF +:1098A000D4F8EC01686094F8EA010028F6D1C6E724 +:1098B00094F8D2012F1DA0B16E701520287094F875 +:1098C000D201002818BF04F5EA75B8D084F8D26137 +:1098D000294638460BF0EBFA94F8D2010028F5D16E +:1098E000ADE794F8DE0150B16E701D20287084F849 +:1098F000DE6104F5F07138460BF0D9FA9FE794F871 +:10990000F20138B11E20287084F8F261D4F8F40115 +:10991000686094E794F8F801002808BFBDE8F0817A +:109920006E701620287094F8F801002887D000BFC8 +:1099300084F8F861D4F8FA016860B4F8FE0128816F +:1099400094F8F8010028F3D179E70000F000002036 +:1099500040520200FE4AD0600020D06110621171B6 +:109960007047002180F8641080F8651080F8681056 +:1099700090F8DE1011B10221FEF71ABF0321FEF7A5 +:1099800017BF2DE9F047F24C814686B020690D469D +:109990000088F7F7ADFA070008BFFFDFA07828437B +:1099A000A070A0794FF0000510F0200F20691CBFB7 +:1099B000A0F87E5080F8E45004D1B0F87E10491C25 +:1099C000A0F87E102069012690F86A1039B990F845 +:1099D000652001230621583002F0F7FF48B3E088E4 +:1099E00010F4006F07D0206990F86A10002918BFA2 +:1099F000A0F876501DD12069B0F87610491C89B2C4 +:109A0000A0F87610B0F878208A422CBF531A0023B1 +:109A1000B4F808C00CF1050C634598BF80F87C6071 +:109A2000914206D3A0F8765080F8F0612079F2F7E1 +:109A3000E1F9A0794FF0020A10F0600F11D020690F +:109A400090F8681011B1032906D00AE080F8686028 +:109A50000121FEF7ADFE04E080F868A00121FEF7C9 +:109A6000A7FE206990F86810012905D1E18811F45A +:109A7000807F18BF80F868A04FF00808B9F1000F88 +:109A800040F09981E28812F4007F18BFA0F8F850E6 +:109A900004D1B0F8F810491CA0F8F81012F0080F23 +:109AA00050D0A17800294DD190F8CB00FE2808BFF6 +:109AB000FFDFFE21206980F8CB1090F8651019298E +:109AC00007D0206990F864101F2911D027292AD0C7 +:109AD0002FE080F88D5090F88C10491E49B280F824 +:109AE0008C100029B8BFFFDF206980F86550E8E7D7 +:109AF00090F8650002F052FF80B120692621012311 +:109B000080F8641090F865200B21583002F05DFF5A +:109B1000002804BF2A20FFF71FF80AE0216920204F +:109B200081F8640005E080F8856180F8645080F871 +:109B30008850206990F86710082904BF84F800A0B5 +:109B400080F8CBA0FFF73FF8A07910F0040F07D002 +:109B5000A07828B9206990F86700072808BF267008 +:109B600000F038FCA07910F0100F09D0A07838B9B7 +:109B7000206990F865100B2904BF0C2180F865104E +:109B8000E07810F0080F11D020690123052190F82A +:109B90006520583002F019FF28B184F8028020694E +:109BA00080F8B85102E0002001F02AFBE0690028AB +:109BB0005BD000950195029503950495206990F876 +:109BC0005500FBF723FE4FF47A7100F5FA70B0FBF5 +:109BD000F1FA206990F85500FBF706FE5044ADF805 +:109BE000060020690188ADF80010B0F85810ADF8F3 +:109BF00004104188ADF8021090F8860130B1A069D8 +:109C0000C11C039103F058FC8DF81000206990F8F6 +:109C100085018DF80800E16968468847206980F869 +:109C2000865180F885510399F9B190F88411E1B912 +:109C300090F86410272918D09DF81010039AA1B14C +:109C40001378FF2B06D0072B02BF02295178FF297A +:109C500002D00AE01B2908D880F884610399C0F873 +:109C600088119DF8101080F8871100F0CCFD01F0EC +:109C7000BDFA0028206918BFA0F8D85004D1B0F868 +:109C8000D810491CA0F8D81001F0B3FA40B12169EE +:109C900091F8E40002289CBF401C81F8E40004D83D +:109CA000206990F8E400022806D92069A0F8D8506D +:109CB000A0F8DA5080F8E45020690123002190F8E0 +:109CC0006520583002F081FE20B9206990F86500C7 +:109CD0000C285AD120690123002190F864205830C3 +:109CE00002F073FEB0B320690123002190F86720D1 +:109CF000583002F06AFE68B3206990F868100229B3 +:109D000004BF90F8E40000283FD13846F6F75DFB29 +:109D100000B3206990F8CB10FE2936D1B0F8D210EC +:109D2000012932D980F8DD60B0F88010B0F87E20CB +:109D30008B1E9A42AFBF0121891A491E89B2B0F821 +:109D4000D82023899A422EBF01229A1A521C02E07F +:109D5000F000002019E038BF92B2914288BF11464E +:109D6000012908BF80F8DD5090F868218AB1B0F869 +:109D7000DA20B0F86A0182422FBF0120801A401C0D +:109D800080B2814288BF014603E02069012180F84A +:109D9000DD502069B0F85820114489B2A0F8D410E1 +:109DA00090F86830002B18BF012B5DD0022B1CBF30 +:109DB000032BFFDF09D0E088C0F340200028206992 +:109DC00018BFA0F8E65059D151E090F86730082B41 +:109DD00021D0B0F87E10B0F8802000278B1C9A426A +:109DE00006D3511A891E0F043F0C1CBF791E8FB277 +:109DF00090F87C1051B190F864200123092158306B +:109E000002F0E3FD002808BF002729D0206990F860 +:109E10006A1089B908E0B0F87E30032B24D3B0F87B +:109E200080101144491C1FE090F865200123062191 +:109E3000583002F0CAFD78B121690020B1F87820CD +:109E4000B1F876108B1C9A4203D3501A801E18BFAB +:109E5000401EB84238BF87B2002F1CBF781E87B2A1 +:109E60002069B0F8D4103944A0F8D010A3E7B0F8B6 +:109E7000E610B0F8D6201144A0F8E610206990F85A +:109E8000701139B990F8672001231946583002F053 +:109E90009CFD38B12069B0F88210B0F8D62011448A +:109EA000A0F88210206990F8883033B1B0F884109F +:109EB000B0F8D6201144A0F8841090F98C20002A24 +:109EC00006DDB0F88A10B0F8D6C06144A0F88A1058 +:109ED0004FF03D0CB9F1000F18BF80F874C049D1A4 +:109EE0002178022911D0012908BF90F872113FD0C2 +:109EF000A17821B380F8736011F0140F18BF1E21F0 +:109F000009D000BF80F8741050E090F8CC100629FA +:109F100018BF16212CE011F0080F18BF80F874C08C +:109F200044D111F0200F18BF2321EBD111F0030F02 +:109F300008BFFFDF2A20216981F8740032E02BB1CD +:109F4000B0F88410B0F88630994210D2002A05DDAE +:109F5000B0F88A10B0F88620914208D2B0F882207A +:109F6000B0F880108A4208D390F870212AB12221DB +:109F700080F8741080F8736018E090F868203AB1A7 +:109F8000B0F87E208A4228BF80F87480F2D209E0BF +:109F9000B0F87E10062905D33E2180F8741080F8B1 +:109FA000736003E0206990F8731079B1206980F83C +:109FB000645080F8655080F8685090F8DE100029F1 +:109FC00014BF02210321FEF7F3FB02E00021FEF79C +:109FD000EFFB206980F8DE5006B0BDE8F047FBF7E4 +:109FE000E7BCF84902468878CB78184313D1084675 +:109FF00000694AB1897911F0080F03D090F8670021 +:10A00000082808D001207047B0F84810028E91420D +:10A0100001D8FEF709BB0020704770B5E94C054632 +:10A020000E46E0882843E08015F0020F04D015F0BA +:10A03000010F18BFFFDF666115F0010F4FF000023E +:10A040004FF001001AD0A661F178062902D00B2941 +:10A050000BD013E0216991F86530172B0ED1002346 +:10A06000C1E9283381F8690008E0216991F8653079 +:10A07000112B04BF81F8692081F88E0015F0020FC2 +:10A0800018D06169C978052902D00B290BD011E0DD +:10A09000216991F86520152A0CD10022C1E92A22F4 +:10A0A00081F86A0006E0206990F86510102908BF61 +:10A0B00080F86A2015F0800F1CBF0820E07070BD8A +:10A0C0002DE9F84FBF4C00254FF00108E580A57041 +:10A0D000E5702570206168F30709074680F8DE8087 +:10A0E0000088F6F705FF5FEA000A08BFFFDF206976 +:10A0F0000088FBF725FC20690088FBF747FC2069F6 +:10A10000B0F8D21071B190F8CB10FE290FD190F8B1 +:10A11000701189B190F8672001231946583002F078 +:10A1200054FC88B1206990F8CB00FE2804D0206947 +:10A1300090F8CB00FFF72BFA206990F8DF10002988 +:10A1400018BF25811BD10FE02069A0F8825090F83C +:10A15000711180F8CC1000210220FFF7FFF920696F +:10A1600080F8DD500220E5E790F8AC1129B9018CA8 +:10A170008288914288BF218101D881882181B0F8ED +:10A18000D610491E8EB2B0F8D8103144A0F8D810BD +:10A1900090F8DC1000291CBFA0F8DA5080F8DC50E1 +:10A1A00004D1B0F8DA103144A0F8DA10B0F87E101B +:10A1B0003144A0F87E1090F86A1039B990F8652003 +:10A1C00001230621583002F000FC28B12069B0F8C4 +:10A1D00076103144A0F876102069B0F8D210012929 +:10A1E0009CBF491CA0F8D210002E18BF80F8E45084 +:10A1F00090F8DD10A1B1B0F8D800218988420FD2C3 +:10A200005046F6F7E2F858B1206990F8681139B174 +:10A21000B0F8DA10B0F86A01814228BF00F0ECFF14 +:10A22000206980F8DD5090F865100B2918BF0C29C3 +:10A2300016D1B0F85820B0F88E31D21A12B2002AD6 +:10A240000EDBD0F89011816090F894110173022117 +:10A2500001F0A8FF206980F8655080F898804AE0F6 +:10A26000242924D1B0F85810B0F88E21891A09B2E7 +:10A2700000291CDB90F8A42190F89011002908BF58 +:10A2800090F8541080F8541090F89111002908BFEC +:10A2900090F8551080F85510002A1CBF0020FEF7DA +:10A2A0005BFC206980F8655080F87D5023E090F8D1 +:10A2B0006410242918BF25291DD1B0F85810B0F812 +:10A2C0008E21891A09B2002915DB90F89011002916 +:10A2D00008BF90F8541080F8541090F8911100299C +:10A2E00008BF90F8551080F855100020FEF734FC98 +:10A2F000206980F86450216901F15800B1F8D62036 +:10A3000002F026F9206990F86811002918BFA0F81A +:10A31000DA502D4800902D4B2D4A3946484600F022 +:10A32000B3FE216A00291CBF6078FAF789FF206913 +:10A330000123052190F86520583002F046FB0028E3 +:10A3400008BFBDE8F88FBDE8F84F00F08EBC00F004 +:10A3500033BF1C49C86170471A48C069002818BF3C +:10A3600001207047174A50701162704710B50446BB +:10A37000B0F894214388B0F89611B0F898019A4249 +:10A3800001BFA3889942E38898420FD02388A4F89C +:10A39000B031A4F8B221A4F8B411A4F8B601012098 +:10A3A00084F8AC0107480079F1F724FD012120462B +:10A3B00001F0F8FE002084F86500032084F86800AE +:10A3C00010BD0000F000002083990100E39F010010 +:10A3D0001BA0010070B5FE4CA07910F0020F08BF61 +:10A3E00070BDA078002818BF70BD6169F8482722A9 +:10A3F000CB780E26002500690D2B78D00BDCA3F15D +:10A4000002030B2B1FD2DFE803F0201E808B9F2F4F +:10A410001E591E73D100152B00F02A810BDC112B65 +:10A4200065D0122B00F0F480132B00F0FF80142B6A +:10A4300000F00E8107E0162B00F03281172B00F0A0 +:10A440003F81FF2B35D0FFDF70BD90F867200123DF +:10A450001946583002F0B9FA002818BF70BD08201C +:10A46000216981F8670070BD90F8643009790A2B82 +:10A4700001BF90F8CA308B4280F8645080F8885051 +:10A4800008BF70BD90F8663013F0080F0DD023F0B0 +:10A49000080180F8661090F88C10491E49B280F8C7 +:10A4A0008C100029A8BF70BDCFE0FF291CBFFFDFC3 +:10A4B00070BD80F8642080F8845170BD90F866000B +:10A4C00010F0010F08BFFFDF216991F88C00401EDA +:10A4D00040B281F88C000028B8BFFFDF206990F8F7 +:10A4E000661021F0010100BF80F8661070BD21E008 +:10A4F00090F86500102818BFFFDF0121206980F85F +:10A500008D10112180F8651070BD90F86500142839 +:10A5100018BFFFDF0121206980F88D101521F1E7B8 +:10A5200090F86500152818BFFFDF1720216981F812 +:10A53000650070BD90F86500152818BFFFDF192071 +:10A54000216981F8650070BD90F865001B2818BF6F +:10A55000FFDF206980F88D5090F8B801002818BFFF +:10A56000FFDF206990F88E1049B180F88E50018885 +:10A57000A0F8BC1180F8BA5180F8B8610AE00188EF +:10A58000A0F8BC1180F8BA51012180F8BE110D214C +:10A5900080F8B8110088F6F799FCF6F731F92079C0 +:10A5A000F1F728FC206980F8655070BD90F88C1197 +:10A5B000042915D0206990F8661011F0020F08BF29 +:10A5C00070BD90F88C10491E49B280F88C1000299B +:10A5D000B8BFFFDF206990F8661021F0020183E721 +:10A5E00090F8642001230021583002F0EEF9002891 +:10A5F00008BFFFDF206990F8901011F0020F07BF2D +:10A60000062180F8641080F8885080F88C51D1E7DA +:10A6100090F8642001230021583002F0D6F9002878 +:10A6200008BFFFDF206980F8646070BD90F8661095 +:10A6300021F0040180F8661090F88C10491E49B290 +:10A6400080F88C100029A8BF70BDFFDF70BD00BF6F +:10A6500090F8642001230021583002F0B6F9002858 +:10A6600008BFFFDF1C20216981F8640070BD00BFB6 +:10A6700090F8660000F03000102818BFFFDF206956 +:10A6800090F8661021F0100180F8661090F88C1098 +:10A69000491E49B280F88C100029A8BF70BDD4E7CC +:10A6A00090F8642001230021583002F08EF9002830 +:10A6B00008BFFFDF1F20216981F8640070BD00BF63 +:10A6C00090F8650021281CBF0028FFDF22202169A7 +:10A6D00081F8650070BD3E49086990F8662012F067 +:10A6E000080F1EBF01208870704742F0080280F8F2 +:10A6F00066208969C97880F8C9100021A0F88A10FD +:10A7000090F88C10491C80F88C10704710B5304CB4 +:10A7100005212069FEF74CF8206990F84E100129B8 +:10A7200002BF022180F84E1010BD00F5D6710288DC +:10A73000A0F8D421028EA0F8D621828EA0F8D821CC +:10A74000028FB0F844309A4228BF1A46CA85828FD9 +:10A75000B0F84600824238BF10460886012081F8D2 +:10A7600026002079BDE81040F1F744BB184830B40A +:10A77000006990F84E30B0F832C0C48EB0F8401086 +:10A78000428F022B28D08A4238BF11460186C28FE1 +:10A79000B0F842108A4238BF11468186028FB0F865 +:10A7A00044108A4238BF11464186828FB0F8461065 +:10A7B0008A4238BF1146C186418E614588BF8C46AA +:10A7C000A0F832C0C18EA14288BF0C46C48601E009 +:10A7D000F000002030BC7047038E9A4228BF1A4612 +:10A7E000C58F838E9D4238BF2B468A4238BF1146A3 +:10A7F0000186B0F842108B4228BF0B4683860021A9 +:10A8000080F84E10CAE770B5FD4C206990F8CB1067 +:10A81000FE2906BFA178002970BD90F867200123AA +:10A820001946583002F0D1F8002818BF70BD2069D1 +:10A83000002590F8701159B1A0F8825090F871116C +:10A8400080F8CC10BDE8704000210220FEF786BEE3 +:10A8500090F8652001230421583002F0B6F8060074 +:10A860000CD0D4F810C09CF86500102861D01428D2 +:10A8700065D015287BD01B287ED0BEE0216991F8D9 +:10A88000660010F0010F05D0BDE8704001210920DD +:10A89000FEF764BE10F0020F0BD001210C20FEF772 +:10A8A0005DFE206990F8901041F0010180F8901051 +:10A8B00070BD10F0040F05D0BDE8704001211320D9 +:10A8C000FEF74CBE10F0080F09D091F8C90081F8CE +:10A8D000CC00BDE8704001210720FEF73FBE10F01C +:10A8E000100F02D091F89B0120B191F8650021284A +:10A8F00073D179E091F89A0188B1B1F89C01A1F87F +:10A900004000B1F89E01A1F84200B1F8A001A1F801 +:10A910004400B1F8A201A1F8460081F89A51FFF76E +:10A9200025FFFFF7F3FEBDE8704001211520FEF77B +:10A9300015BEBDE8704001210B20FEF70FBEF9F7F0 +:10A94000F7FA0C2838BF70BD08212069F030F9F7FC +:10A95000F3FA28B120690421C430F9F7EDFA00B9FF +:10A96000FFDFBDE8704001210420FEF7F7BD9CF831 +:10A97000730101280DD000E030E0022818BF70BD3F +:10A980009CF88E00D8B106208CF8CC000121022062 +:10A990001DE09CF8B801002818BF70BD0CF1B00391 +:10A9A00000220CF1E8010CF5BA7001F08AFF0121D8 +:10A9B0000520FEF7D3FD206980F8735170BD9CF827 +:10A9C000960010F0040F14BF11200D200121FEF796 +:10A9D000C5FD206980F8735170BD0EE0BDE8704080 +:10A9E00001210620FEF7BABD91F87D00C0B991F8AB +:10A9F000A40110B191F8A50190B1206901230021B3 +:10AA000090F86420583001F0E0FFC8B120690123BC +:10AA1000042190F86520583001F0D7FF30B10FE0E5 +:10AA2000BDE8704001211720FEF798BD206990F81D +:10AA30007C0028B1BDE8704000211220FEF78EBDD9 +:10AA4000206990F864200A2A2BD0002E18BF70BD10 +:10AA500001230021583001F0B8FF48B1206990F877 +:10AA60008C11042904BF90F8900010F0030F22D03D +:10AA700020690123002190F86420583001F0A5FFDF +:10AA800000287DD0206990F89A1111B190F89B119F +:10AA9000E9B190F8A411002972D090F8A511E9B39A +:10AAA000BDE090F8CA1080F8CC10BDE870400021DD +:10AAB0000720FEF753BD00210C20FEF74FFD206953 +:10AAC00090F8901041F0010180F8901070BDB0F83E +:10AAD0009C11A0F84010B0F89E11A0F84210B0F8F8 +:10AAE000A011A0F84410B0F8A211A0F8461080F808 +:10AAF0009A5190F8660010F0200F13D0FFF736FE41 +:10AB0000FFF704FE01211520FEF728FD206990F8CB +:10AB1000661021F0200141F0100100E008E080F80B +:10AB2000661070BDBDE8704000211420FEF716BD10 +:10AB300090F8652001230B21583001F046FFF8B949 +:10AB4000206990F85400012808BF012508D0022888 +:10AB500008BF022504D0042816BF08280325FFDFFC +:10AB6000206990F85500012808BF01260BD0022863 +:10AB700008BF022607D0042814BF0828032600E0D7 +:10AB80004DE018BFFFDFD4F810C0012D9CF8A601DE +:10AB900006D0022D07D0032D08BF042805D014E0ED +:10ABA000012812D101E002280FD19CF8A701012E43 +:10ABB00006D0022E07D0032E08BF04280FD004E0D1 +:10ABC000012802D10BE0022809D09CF8652001235E +:10ABD00003210CF1580001F0F8FE00BB16E0BCF8B0 +:10ABE00058309CF85410BCF8A8010CF5C77202F05C +:10ABF000A1F938B12169252081F8640070BD0000F9 +:10AC0000F00000200020FDF7A7FF08E020690123E5 +:10AC1000022190F86520583001F0D7FEB0B12069CC +:10AC20000123002190F86420583001F0CEFE002866 +:10AC300008BF70BD206990F88401002808BF70BD6E +:10AC40000021BDE87040FF20FEF788BCBDE87040E1 +:10AC500000211620FEF782BC30B5FB4C054620785B +:10AC6000002818BFFFDF657230BDF7490120087268 +:10AC700070472DE9F14FF54F39464D68284695F854 +:10AC8000551001F048FF95F8551080B211F00C0FE7 +:10AC90006FF00D0B7DD0B0F5747F38BF002006D368 +:10ACA0005038C11700EB91600BEBA01080B26E8E94 +:10ACB000864228BF0646E648DFF88C93C9F8240090 +:10ACC000786800F15808044609F13400678E40683E +:10ACD00094F8551090F86AA0204601F01CFF94F8F3 +:10ACE000551080B211F00C0F69D0B0F5747F38BFE9 +:10ACF000002406D35038C21700EB92600BEBA01073 +:10AD000084B2A74238BF3C46BAF1000F1CBF201DD9 +:10AD100084B2E0B2F9F7E8FE98F81200002859D0A2 +:10AD200008F15801CA4891E80E1000F5027484E851 +:10AD30000E10D8F86810C0F82112D8F86C10C0F8BE +:10AD4000251200F58170FAF711FAC0480078002842 +:10AD50000CBF0120002080F00101BE480176D8E937 +:10AD60001412C0E90412A0F58372D9F82410F9F77F +:10AD700060FD95F85500012808BF00220ED002287A +:10AD800008BF01220AD0042808BF032206D00828E1 +:10AD900000E008E01ABFFFDF00220222F1B201202A +:10ADA000F9F762FD1CE0022919BF0BEBD00080B25D +:10ADB0006FF00E0101EB90007FF479AF76E7022986 +:10ADC00019BF0BEBD00084B26FF00E0202EB9000C3 +:10ADD00097D195E7D9F82400FAF7C8F9F9F767FD94 +:10ADE000009850B195F82C00012808BFFAF791FAA5 +:10ADF000022089F80000BDE8F88F012295F855304F +:10AE000096211046FAF791F895F8550095F85610E6 +:10AE100010F00C0F08BF00219620FAF7C2F9E1E705 +:10AE20002DE9F04FDFF8248283B0414681464D681A +:10AE3000A1F11400009095F85D0005F15806012776 +:10AE4000A1F1340470B3012878D0022877D0032808 +:10AE500018BFFFDF74D0206A0823017821F00801B1 +:10AE60000170B27903EAC202114321F004010170BA +:10AE7000F279042303EA8202114321F010010170E8 +:10AE800096F805B0E06AF5F7B0FA8246FAF7A2FD47 +:10AE9000BBF1020F79D0BBF1010F77D0BBF1030FEB +:10AEA00075D089E000F0CAFB0146284601F044FE57 +:10AEB0001FFA80FB00F0C2FB10F00C0F6FF00D01C9 +:10AEC0004FF0000A20D0BBF5747F38BF504607D33F +:10AED000ABF15000C21700EB926001EBA01080B202 +:10AEE000298E814238BF0846ADF80800A5F8480011 +:10AEF0000098FAF74EFD90B1216AA77062694FF48D +:10AF00008060904703202CE0022819BF01EBDB0092 +:10AF100080B26FF00E0000EB9B00E1D1DFE701AAE9 +:10AF200002A9E06AF5F79CF9206210B196F8351095 +:10AF300039B10098FAF701FD77718CE713E016E05C +:10AF400026E09DF8041031B9A0F800A080F802A016 +:10AF5000012102F0C7FABDF80810206A02F001FCD6 +:10AF60000220707177E70098FAF7E7FC73E7B5F80D +:10AF70004800ADF8000001AA6946E06AF5F770F9EB +:10AF80002062002808BFFFDF65E708E00BE00EE065 +:10AF90000098FAF7FEFC002808BFFFDF5BE730EA05 +:10AFA0000A0009D106E030EA0A0005D102E0BAF150 +:10AFB000000F01D0012100E00021206A027842EA5E +:10AFC00001110170717C00291CBF7179012943D0E6 +:10AFD00006F158011E4891E80E1000F5027A8AE841 +:10AFE0000E10B16EC0F82112F16EC0F8251200F5F6 +:10AFF0008170FAF7BBF898F8000000280CBF012117 +:10B00000002114480176D6E91212C0E90412A0F515 +:10B010008371226AF9F70DFC95F85400012808BFE6 +:10B0200000220CD0022808BF012208D0042808BF43 +:10B03000032204D008281ABFFFDF00220222FB21CE +:10B040000020F9F711FC0BE014010020480100205A +:10B05000C80C0020D00E0020FAF788F8F9F727FC7A +:10B06000B9F1000F06D195F8543001229621002045 +:10B07000F9F75BFF6771206A0188E18180782074AD +:10B08000277003B0BDE8F08F2DE9F0471C46174646 +:10B0900081460D46FE4EDDF82080307828B9002F1D +:10B0A0001CBF002CB8F1000F00D1FFDFC6F81C80D8 +:10B0B000C6E90574C6E90D9500243472F471347143 +:10B0C000F4707471B471B470B481F24F05F1580822 +:10B0D0002888F5F70DFFF0622888F5F7F7FE306352 +:10B0E000F9F725FD95F95700F9F7B1FD05F11200C3 +:10B0F000FAF725F805F10E00F9F7B3FD38780028C6 +:10B100000CBF03200120FAF72EF898F81A00F9F77F +:10B11000B0FDFAF722F83878002804BFFF2095F830 +:10B12000545023D098F81260B5F8328095F8551035 +:10B13000284601F0F0FC95F8555080B215F00C0F40 +:10B140006FF00D0126D0B0F5747F06D35038C217CA +:10B1500000EB926001EBA01084B24046A04528BFEE +:10B160002046002E1CBF001D80B2C0B22946F9F750 +:10B17000BBFC38782A464FF00001B0B10120F9F746 +:10B18000A2FE7868D0F8E000F9F7F3FFBDE8F047D9 +:10B1900001206EE5022D19BF01EBD00084B26FF0E3 +:10B1A0000E0101EB9000D8D1D6E70020F9F78BFE15 +:10B1B000BDE8F047012033E6B64800B501783438E1 +:10B1C000007819B1022818BFFFDF00BD012818BFA1 +:10B1D000FFDF00BDAE4810B50078022818BFFFDFC2 +:10B1E000BDE8104000F0CCBA00F0CABAA8484079D7 +:10B1F0007047A74800797047A549012088717047BA +:10B200002DE9F0470600A348A14D406800F158041D +:10B21000686A90F8019018BF012E03D1296B09F0DC +:10B22000BBF96870687800274FF00108A0B10128C9 +:10B230003CD0022860D003281CBFFFDFBDE8F087A8 +:10B24000012E08BFBDE8F087286BF5F7C3FA687ACE +:10B25000BDE8F047F0F7CEBD012E14D0A86A002853 +:10B2600008BFFFDF6889C21CD5E9091009F072FC2C +:10B27000A86A686201224946286BF5F727F9022E71 +:10B2800008BFBDE8F087D4E91401401C41F100017A +:10B29000C4E91401E079012801D1E77101E084F8E3 +:10B2A0000780687ABDE8F047F0F7A4BD012E14D0FE +:10B2B000A86A002808BFFFDF6889C21CD5E9091009 +:10B2C00009F048FCA86A686200224946286BF5F735 +:10B2D000FDF8022E08BFBDE8F087D4E91410491C20 +:10B2E00040F10000C4E91410E07901280CBFE771B7 +:10B2F00084F80780BDE8F087012E06D0286BF5F7AB +:10B3000069FA022E08BFBDE8F087D4E91410491C81 +:10B3100040F10000C4E91410E0790128BFD1BCE776 +:10B320002DE9F0415B4F3846A7F13404406800F145 +:10B3300058052078012818BFFFDFA878012648B1FA +:10B340000021A970A670626904209047387800280F +:10B3500018BF2E71206A0321007831EA000004BF73 +:10B36000E878002805D1EE70216AA6706269022093 +:10B3700090470121002000F022FA18B1BDE8F04109 +:10B3800000F0FEB9BDE8F041002072E42DE9F14F74 +:10B39000404E4FF000083046A6F134054068317841 +:10B3A00000F1580A2878C146022818BFFFDFA88993 +:10B3B00040F40070A88171683078FF2091F8541033 +:10B3C000F9F792FB009800289AF8120000F0FD802F +:10B3D000F9F792FAF9F780FA012788B99AF812007A +:10B3E00070B1686A417859B100789AF80710C0F3D3 +:10B3F000C000884204D1EF70BDE8F84F00F0C0B93A +:10B40000686A41786981002908BFC5F8288003D09F +:10B41000286BF5F715F8A862A88940F02000A881EC +:10B4200085F804803078706800F1580B044690F875 +:10B430002C0001281AD1F9F762FF5946204601F085 +:10B4400080FA98B13078002870680CBF00F58A70D7 +:10B4500000F5F570218841809BF8081001719BF878 +:10B46000091041710770687AF0F7C4FC686A9AF8AD +:10B4700006100078C0F3800088423BD030787068B6 +:10B4800000F1580490F85D0080B302284CD003E02E +:10B49000140100204801002084F80580307800283D +:10B4A0001CBF2079002806D084F80480AF706A6938 +:10B4B000414610209047E07890B184F80380FAF775 +:10B4C00077FA002808BFFFDF0820AF706A69002103 +:10B4D0009047D4E91202411C42F10000C4E9121065 +:10B4E000A07901280CBF84F80680A771A88940F4D0 +:10B4F0008070A881686A9AF807300178C1F3C002A9 +:10B500009A424FD13278726801F0030102F1580477 +:10B51000012918BF022932D003291CBFE87940F065 +:10B52000040012D0E8713DE0E86AF4F7C5FE002897 +:10B5300008BFFFDFD4E91210491C40F10000C4E944 +:10B540001210687AF0F756FCA1E701F0E3FF90B122 +:10B55000A770A989384641F40061A981696AAF7072 +:10B560006A699047E079012803D100BF84F8078019 +:10B5700018E0E77116E0E87940F01000D2E7407873 +:10B58000F8B1A98941F40061A981A96A51B1FB28E8 +:10B59000F1D8287A002808BFB94603D080206A690C +:10B5A000002190470120009900F009F9B0B1B9F1EC +:10B5B000000F1CBF0020FFF723FEBDE8F84F00F08E +:10B5C000DFB8E0790128D4D1D0E7002818BFF9F717 +:10B5D000CCF9A88940F04000A881E3E7B9F1000F59 +:10B5E0001CBF0120FFF70CFE0020FFF719FCB9F18A +:10B5F000000F08BFBDE8F88F0220BDE8F84FFFE557 +:10B6000070B50D4606468E488D4900784C6850B19D +:10B61000F9F7FEF9034694F8542029463046BDE870 +:10B620007040FDF7EAB9F9F7F3F9034694F85420AE +:10B6300029463046BDE8704005F088BF804830B4E8 +:10B6400090F800C04268406802F1580192F86450D6 +:10B6500090F85400242D1CBF4B7B242B24D00821B0 +:10B6600001241F2D18BF202D47D0222B1CBF30BC1A +:10B67000704700BFBCF1000F04BF30BC704792F8A8 +:10B68000A63192F851201A4012F0040F5FD008281A +:10B6900018BF04286ED0082918BF04296AD00128D1 +:10B6A00018BF012969D062E0BCF1000F12D092F8F6 +:10B6B0009011002904BF30BC7047082818BF042827 +:10B6C00058D0082918BF042954D0012818BF0129CF +:10B6D00053D04CE092F8F210002904BF30BC704700 +:10B6E000082818BF042845D0082918BF042941D0CC +:10B6F000012818BF012940D039E0222BBAD0BCF173 +:10B70000000F04BF30BC704792F8A62112F0040F5E +:10B710000CD0082818BF04282CD0082918BF0429E9 +:10B7200028D0012818BF012927D020E012F0010FEE +:10B7300018BF2146EDD112F0020F04BF30BC704794 +:10B74000082818BF042815D0012816D00FE012F0E1 +:10B75000010F18BF21469AD112F0020F04BF30BC6E +:10B760007047082818BF042804D0012805D030BC31 +:10B770000220704730BC0820704730BC0120704761 +:10B780002F4910B54C68F9F799FDF9F74DFDF9F718 +:10B790007DFCF9F7DAFCF9F78AF894F82C00012817 +:10B7A00008BFF9F7ACFD274C00216269A0899047DA +:10B7B000E269E179E07890470020207010BD70B513 +:10B7C000204C0546002908BF012D05D12079401CD9 +:10B7D000C0B22071012831D8A169284688470028C5 +:10B7E0002CD0A179184839B1012D01BF4178002929 +:10B7F000017811F0100F21D0E179F9B910490978D9 +:10B80000002908BF012D05D000290CBF012100210E +:10B81000294311D10D49097811F0100F04BF0078A8 +:10B8200010F0100F0AD0A07840B9A06A20B9608942 +:10B8300010B111F0100F01D0002070BD012070BDBB +:10B840004801002014010020C80C00202201002023 +:10B8500010B540F2C311F74809F0FBF9FF220821A7 +:10B86000F54809F0EEF9F548002141704FF4617197 +:10B87000418010BD2DE9F0410E46054600F046FB23 +:10B88000EC4C102816D004EBC00191F84A0110F0DE +:10B89000010F1CBF0120BDE8F081607808283CBF83 +:10B8A000012081F84A011CD26078401C60700120A0 +:10B8B000BDE8F0816078082813D222780127501C57 +:10B8C000207004EBC2083068C8F84401B088A8F8BA +:10B8D0004801102A28BFFFDF88F8435188F84A71D1 +:10B8E000E2E70020BDE8F081D2480178491E4BB262 +:10B8F000002BB8BF704770B45FF0000500EBC301C8 +:10B9000091F84A1111F0010F3BD04278D9B2521E82 +:10B91000427000EBC10282F84A5190F802C0002246 +:10B92000BCF1000F0BD9841894F803618E4202D148 +:10B93000102A26D103E0521CD2B29445F3D80278E3 +:10B94000521ED2B202708A421BD000EBC20200EB40 +:10B95000C10CD2F84341CCF84341D2F84721CCF88E +:10B960004721847890F800C00022002C09D986185D +:10B9700096F8036166450AD1102A1CBF024482F87A +:10B980000311591E4BB2002BB8DA70BC7047521C21 +:10B99000D2B29442EBD8F4E72DE9F05F1F4690460F +:10B9A0000E46814600F0B2FAA24D0446102830D06F +:10B9B000A878002100280ED96A1892F80331A34212 +:10B9C00005D110291CBF1220BDE8F09F03E0491CDF +:10B9D000C9B28842F0D8082834D2102C1CD0AE78D6 +:10B9E0001022701CA87005EB061909F103004146EE +:10B9F00000F056FF09F183001022394600F050FF95 +:10BA0000A819002180F8034180F83B110846BDE8E1 +:10BA1000F09FA878082815D22C78CA46601C287098 +:10BA200005EBC4093068C9F84401B0884FF0000B39 +:10BA3000A9F84801102C28BFFFDF89F843A189F835 +:10BA40004AB1CCE70720BDE8F09F70B4794881780F +:10BA5000491E4BB2002BBCBF70BC704703F0FF0CFB +:10BA60008178491ECAB2827050FA83F191F80311AD +:10BA700094453ED000EB021500EB0C14D5F80360A2 +:10BA8000C4F80360D5F80760C4F80760D5F80B6008 +:10BA9000C4F80B60D5F80F60C4F80F60D5F8836068 +:10BAA000C4F88360D5F88760C4F88760D5F88B60E8 +:10BAB000C4F88B60D5F88F50C4F88F50851800EB10 +:10BAC0000C0402EB420295F803610CEB4C0C00EB0A +:10BAD000420284F8036100EB4C0CD2F80B61CCF805 +:10BAE0000B61B2F80F21ACF80F2195F83B2184F8D7 +:10BAF0003B2100EBC10292F84A2112F0010F33D131 +:10BB000090F802C00022BCF1000F0BD9841894F801 +:10BB100003518D4202D1102A26D103E0521CD2B229 +:10BB20009445F3D80278521ED2B202708A421BD0DA +:10BB300000EBC20200EBC10CD2F84341CCF8434108 +:10BB4000D2F84721CCF84721847890F800C0002231 +:10BB5000002C09D9851895F8035165450BD1102A99 +:10BB60001CBF024482F80311591E4BB2002BBFF6D2 +:10BB700075AF70BC7047521CD2B29442EAD8F3E75A +:10BB80002E49487070472D484078704738B14AF2C6 +:10BB9000B811884203D82949488001207047002005 +:10BBA000704726484088704710B500F0AFF910285C +:10BBB00014D0204A0146002092F802C0BCF1000FC8 +:10BBC0000CD9131893F803318B4203D1102818BFF6 +:10BBD00010BD03E0401CC0B28445F2D8082010BD5F +:10BBE00014498A78824286BF01EB0010833000201E +:10BBF000704710498A78824286BF01EB0010C01C52 +:10BC0000002070470B4B93F802C084459CBF002076 +:10BC10007047184490F8030103EBC00090F84331DB +:10BC20000B70D0F844111160B0F8480190800120E9 +:10BC300070470000F80E00205A010020500100203B +:10BC4000FE4A114491F80321FD490A7002684A60D6 +:10BC500080880881704710B5F8F79AFD002804BF66 +:10BC6000FF2010BDBDE81040F8F7B8BDF3498A7851 +:10BC700082429CBF00207047084490F8030101EB0A +:10BC8000C00090F84A0100F0010070472DE9F0472C +:10BC9000EA4F0026B0463878002886BF4FF0080AE1 +:10BCA000DFF8A093BDE8F08707EBC80505F5A271A2 +:10BCB00095F8430100F02AF9102808BF544610D027 +:10BCC000B978002400290BD93A1992F8032182424D +:10BCD00002D1102C05D103E0621CD4B2A142F3D8EA +:10BCE0000824B878A04286BF07EB0410C01C0020CF +:10BCF00095F84A1111F0010F16D050B1082C04D25A +:10BD0000391991F83B11012903D0102100F0A5FD4C +:10BD100050B109F806403046731C95F8432105F5EB +:10BD2000A271DEB2F8F76BFF08F1010000F0FF0826 +:10BD300038784045B8D8BDE8F0872DE9F041BF4CD0 +:10BD400000263546A07800288CBFBE4FBDE8F081A4 +:10BD50006119C0B291F80381A84286BF04EB0510B7 +:10BD6000C01C002091F83B11012903D0102100F0E4 +:10BD700074FD58B104EBC800BD5590F8432100F59F +:10BD8000A2713046731CDEB2F8F739FF681CC5B2E9 +:10BD9000A078A842DCD8BDE8F08110B5F8F759FFCB +:10BDA000002804BF082010BDF8F757FFA549085C1C +:10BDB00010BD0A46A24910B5497841B19F4B997808 +:10BDC00029B10244D81CF8F780FC012010BD0020E6 +:10BDD00010BD9A4A01EB410102EB41010268C1F832 +:10BDE0000B218088A1F80F0170472DE9F041934D98 +:10BDF00007460024A878002898BFBDE8F081C0B2AB +:10BE0000A04213D905EB041010F183060ED01021C7 +:10BE1000304600F022FD48B904EB440005EB400039 +:10BE200000F20B113A463046F9F751FE601CC4B2DD +:10BE3000A878A042E3D8BDE8F081014610228248EC +:10BE400000F02EBD8048704770B57C4D0446A87840 +:10BE5000A04206D905EB04101021833000F0FDFC50 +:10BE600008B1002070BD04EB440005EB400000F277 +:10BE70000B1070BD71498A78824206D9084490F847 +:10BE80003B01002804BF01207047002070472DE9C6 +:10BE9000F0410E46074615460621304600F0DDFC0F +:10BEA000664C98B1A17871B104F59D7011F0010F45 +:10BEB00018BF00F8015FA178490804D0457000F868 +:10BEC000025F491EFAD10120BDE8F08138463146B3 +:10BED00000F01CF8102816D0A3780021002B12D9EE +:10BEE000621892F80321824209D1102918BF08294B +:10BEF00009D0601880F83B510120BDE8F081491C51 +:10BF0000C9B28B42ECD80020BDE8F0812DE9F041A8 +:10BF10004A4D0646002428780F46002812D900BF53 +:10BF200005EBC40090F84311B14206D10622394610 +:10BF300000F5A27008F0E2FD38B1601CC4B22878A8 +:10BF4000A042EDD81020BDE8F0812046BDE8F08188 +:10BF50003A4910B44A7801EBC003521E4A700022DD +:10BF600083F84A2191F802C0BCF1000F0DD98B185B +:10BF700093F80341844204D1102A1CBF10BC7047BF +:10BF800003E0521CD2B29445F1D80A78521ED2B2C4 +:10BF90000A70824204BF10BC704701EBC00301EB82 +:10BFA000C202D2F843C1C3F843C1D2F84721C3F853 +:10BFB00047218C7891F800C00022002C9CBF10BC57 +:10BFC00070478B1893F80331634506D1102A1CBFC4 +:10BFD000114481F8030110BC7047521CD2B2944244 +:10BFE000EFD810BC704770B414490D188A78521EEF +:10BFF000D3B28B7095F80321984247D001EB031C14 +:10C0000001EB0014DCF80360C4F80360DCF807609F +:10C01000C4F80760DCF80B60C4F80B60DCF80F6054 +:10C02000C4F80F60DCF88360C4F88360DCF88760D4 +:10C03000C4F88760DCF88B6008E00000F80E002090 +:10C04000500100205A010020BB100020C4F88B6072 +:10C05000DCF88FC0C4F88FC001EB030C03EB430383 +:10C060009CF8034100EB400001EB430385F80341DA +:10C0700001EB4000D3F80B41C0F80B41B3F80F318E +:10C08000A0F80F319CF83B0185F83B0101EBC200A1 +:10C0900090F84A0110F0010F1CBF70BC70470020DF +:10C0A0008C78002C0DD90B1893F803C1944504D15A +:10C0B00010281CBF70BC704703E0401CC0B2844213 +:10C0C000F1D80878401EC0B20870904204BF70BC1E +:10C0D000704701EBC20301EBC000D0F843C1C3F8C5 +:10C0E00043C1D0F84701C3F847018C780B78002092 +:10C0F000002C9CBF70BC704701EB000C9CF803C186 +:10C100009C4506D110281CBF084480F8032170BC50 +:10C110007047401CC0B28442EED870BC704700002B +:10C1200010B50A7B02F01F020A73002202768B18F8 +:10C130001B7A03F0010C5B0803F00104A4445B08C4 +:10C1400003F00104A4445B0803F00104A4445B0869 +:10C1500003F0010464444FEA530C0CF00103234440 +:10C160004FEA5C0C0CF00104234403EB5C0300EB8E +:10C17000020C521C8CF8133090F818C0D2B26344F1 +:10C180000376052AD3D3D8B2252888BFFFDF10BD98 +:10C190000023C383428401EBC202521EB2FBF1F1C1 +:10C1A0000184704770B50025044603290DD04FF473 +:10C1B000FA4200297BD0012978D0022918BF70BD2E +:10C1C0000146BDE870405830AAE704F158067821CE +:10C1D000304608F060FDB571F57135737573F57310 +:10C1E000357475717576B576212086F83E0041204C +:10C1F00086F83F00FE2086F8730084F82C502584D2 +:10C20000012084F8540084F85500282184F8561041 +:10C210001B21218761874FF4A471E187A1871B212E +:10C22000218661864FF4A471E186A1861B21A4F8C2 +:10C230004010A4F844104FF4A471A4F84610A4F8D8 +:10C2400042101B21A4F84A10A4F84C10A4F848107E +:10C2500060734FF448606080A4F8D050A4F8D250C6 +:10C26000A4F8D450A4F8D650A4F8D850A4F8DA50C2 +:10C2700084F8DD5084F8DF50A4F8E65084F8E450E8 +:10C28000A4F8F850A4F8FA5084F89A5184F89B5115 +:10C2900084F8A45184F8A55184F8685184F8705149 +:10C2A00084F8735184F88C5170BD00E041E0A4F82B +:10C2B000E65084F8DE506088FE490144B1FBF0F19D +:10C2C000A4F878104BF68031A4F87A10E388A4F82B +:10C2D0007E50B4F882C0DB000CFB00FCB3FBF0F333 +:10C2E0009CFBF0FC5B1CA4F882C09BB203FB00FC2F +:10C2F00004F15801A4F88030BCF5C84FC4BF5B1EE0 +:10C300000B85B2FBF0F2521CCA8500F5802202F5C3 +:10C31000EE32531EB3FBF0F20A84CB8B03FB00F228 +:10C32000B2FBF0F0C883214604F15800BDE870402C +:10C33000F6E6A4F8E650B4F89411B4F89831B4F8DD +:10C3400002C004F15800A4F87E50B4F88240DB002B +:10C3500004FB0CF4B3FBF1F394FBF1F45B1C448598 +:10C360009BB203FB01F40385B4F5C84FC4BF5B1E49 +:10C370000385B2FBF1F2521CC285428C01EBC20272 +:10C38000521EB2FBF1F20284C28B02FB0CF2B2FB32 +:10C39000F1F1C18370BD70B50025044603290DD0AD +:10C3A0004FF4FA42002963D001297DD0022918BF39 +:10C3B00070BD0146BDE870405830B1E604F1580642 +:10C3C0007821304608F067FCB571F57135737573E7 +:10C3D000F573357475717576B576212086F83E0053 +:10C3E000412086F83F00FE2086F8730084F82C5028 +:10C3F0002584012084F8540084F85500282184F80D +:10C4000056101B21218761874FF4A471E187A18712 +:10C410001B21218661864FF4A471E186A1861B2130 +:10C42000A4F84010A4F844104FF4A471A4F84610E6 +:10C43000A4F842101B21A4F84A10A4F84C10A4F848 +:10C4400048106073A4F8D850202084F8DA0084F8EB +:10C45000D050C4F8D45084F8045184F8055184F8BD +:10C460000E5184F80F5184F8F45084F8005170BDD7 +:10C47000608890490144B1FBF0F1A4F878104BF6C4 +:10C480008031A4F87A10E388A4F87E50B4F882C012 +:10C49000DB000CFB00FC9CFBF0FCB3FBF0F304F1B5 +:10C4A0005801A4F882C000E022E05B1C9BB203FBB1 +:10C4B00000FCA4F88030BCF5C84FC4BF5B1E0B85E0 +:10C4C000B2FBF0F2521CCA8500F5802202F5EE3272 +:10C4D000531EB3FBF0F20A84CB8B03FB00F2B2FBDA +:10C4E000F0F0C883214604F15800BDE8704017E61B +:10C4F000D4F8F830B4F802C004F158005989DB8947 +:10C50000A4F87E50B4F88240DB0004FB0CF4B3FBCB +:10C51000F1F394FBF1F45B1C44859BB203FB01F443 +:10C520000385B4F5C84FC4BF5B1E0385B2FBF1F2AF +:10C53000521CC285428C01EBC202521EB2FBF1F2C8 +:10C540000284C28B02FB0CF2B2FBF1F1C18370BD1D +:10C550002DE9F003047E0CB1252C03D9BDE8F003CE +:10C5600012207047002A02BF0020BDE8F003704788 +:10C5700091F80DC01F2601234F4D4FF00008BCF16C +:10C58000000F73D0BCF1010F1EBF1F20BDE8F003E8 +:10C590007047B0F800C00A7C8F7B91F80F907A400A +:10C5A0004F7C87EA090742EA072282EA0C0C00273F +:10C5B0000CF0FF094FEA1C2C99FAA9F99CFAACFC83 +:10C5C0004FEA19694FEA1C6C49EA0C2C0CEB0C1C65 +:10C5D0007F1C9444FFB21FFA8CFC032FE8D38CEA33 +:10C5E000020C354F0022ECFB057212096FF0240596 +:10C5F00002FB05C2D2B201EBD207427602F0070578 +:10C600003F7A03FA05F52F4218BF82767ED104FBEC +:10C610000CF2120C521CD2B25FF0000400EB040CBE +:10C620009CF813C094453CBFA2EB0C02D2B212D3CB +:10C630000D194FF0000C2D7A03FA0CF73D421CBF88 +:10C64000521ED2B2002A71D00CF1010C0CF0FF0C7A +:10C65000BCF1080FF0D304F1010C0CF0FF04052C21 +:10C66000DCD33046BDE8F0037047FFE790F819C00F +:10C670000C7E474604FB02C20F4C4FF0000CE2FB5D +:10C68000054C4FEA1C1C6FF024040CFB0422D2B2B0 +:10C6900001EBD204427602F0070C247A03FA0CFC78 +:10C6A00014EA0C0F1FBF82764046BDE8F0037047C6 +:10C6B00004E00000FFDB050053E4B36E90F818C0FF +:10C6C000B2FBFCF40CFB1422521CD2B25FF000044B +:10C6D00000EB040C9CF813C094453CBFA2EB0C0289 +:10C6E000D2B212D30D194FF0000C2D7A03FA0CF8C8 +:10C6F00015EA080F1CBF521ED2B27AB10CF1010C20 +:10C700000CF0FF0CBCF1080FF0D300E011E004F1D5 +:10C71000010C0CF0FF04052CDAD3A2E70CEBC401EA +:10C7200081763846BDE8F0037047FFE70CEBC401A3 +:10C7300081764046BDE8F0037047FC4A0168126804 +:10C740001140FB4A126811430160704730B4F94947 +:10C75000F64B00244FF0010C0A78521CD2B20A703A +:10C76000202A08BF0C700D781A680CFA05F52A42C9 +:10C77000F2D0097802680CFA01F15140016030BC36 +:10C78000704770B46FF01F02010C02EA90251F235E +:10C79000A1F5AA4054381CBFA1F5AA40B0F155003C +:10C7A00009D0A1F52850AA381EBFA1F52A40B0F142 +:10C7B000AA00012000D100204FF0000C6246644620 +:10C7C0008CEA0106F6431643B6F1FF3F11D005F09F +:10C7D00001064FEA5C0C4CEAC63C03F00106520825 +:10C7E0006D085B08641C42EAC632162CE8D370BCA4 +:10C7F000704770BC00207047017931F01F0113BFF2 +:10C80000002000221146704710B4435C491C03F01D +:10C81000010C5B0803F00104A4445B0803F001046D +:10C82000A4445B0803F00104A4445B0803F0010482 +:10C83000A4445B0803F001045B08A44403F0010472 +:10C84000A4440CEB53031A44D2B20529DDDB012AC0 +:10C850008CBF0120002010BC704730B40022A1F131 +:10C86000010CBCF1000F11DD431E11F0010F08BFD8 +:10C8700013F8012F5C785FEA6C0C07D013F8025FA5 +:10C8800022435C782A43BCF1010CF7D1491E5CBFFE +:10C89000405C0243002A0CBF0120002030BC7047DE +:10C8A000130008BF704710B401EB030CD41A1CF836 +:10C8B00001CC5B1E00F804C013F0FF03F4D110BCE0 +:10C8C0007047F0B58DB0164610251C466A46AC463A +:10C8D00000EB0C03A5EB0C0713F8013CD355ACF1AE +:10C8E000010313F0FF0CF3D11546103210208446DB +:10C8F0000B18ACEB000713F8013C401ED35510F0A9 +:10C90000FF00F5D1284606F0F3FF86B1102005F1AF +:10C91000200201461318A1EB000C13F8013C401E45 +:10C9200004F80C3010F0FF00F4D10DB0F0BD089801 +:10C930002060099860600A98A0600B98E0600DB0D4 +:10C94000F0BD38B505460C466846F8F7EDFC002802 +:10C9500008BF38BD9DF900202272A07E607294F954 +:10C960000A100020511A48BF494295F82D308B42D9 +:10C97000C8BF38BDFF2B08BF38BDE17A491CC9B21A +:10C98000E17295F82E30994203D8A17A7F2918BF19 +:10C9900038BDA2720020E072012038BD0C2818BFFB +:10C9A0000B2810D00D2818BF1F280CD0202818BF26 +:10C9B000212808D0222818BF232804D024281EBFED +:10C9C000262800207047012070470C2963D2DFE839 +:10C9D00001F006090E13161B323C415C484E002A3A +:10C9E0005BD058E0072A18BF082A56D053E00C2A1B +:10C9F00018BF0B2A51D04EE00D2A4ED04BE0A2F1C9 +:10CA00000F000C2849D946E023B1A2F110000B28F1 +:10CA100043D940E0122A18BF112A3ED090F83600C0 +:10CA200020B1122A37D31A2A37D934E0162A32D342 +:10CA30001A2A32D92FE0A2F10F0103292DD990F83B +:10CA4000360008B31B2A28D925E0002B08BF042A8A +:10CA500021D122E013B1062A1FD01CE0012A1AD1ED +:10CA60001BE01C2A1CBF1D2A1E2A16D013E01F2AF9 +:10CA700018BF202A11D0212A18BF222A0DD0232A1C +:10CA80001CBF242A262A08D005E013B10E2A04D0A0 +:10CA900001E0052A01D000207047012070472DE9F0 +:10CAA000F04187680D4604462046F6F7DAFB98B158 +:10CAB000D5B13846A168F6F715FF002814DD2844E3 +:10CAC000401EB0FBF5F606FB05F13846F5F705FF0D +:10CAD000A0603046BDE8F081F6F7F6F940F2337118 +:10CAE000F5F7FBFEA060DFE70020BDE8F081904293 +:10CAF00028BF704770B50446101B642838BF6420F7 +:10CB000025188D4205D8F6F720FF00281CBF2846BF +:10CB100070BD204670BDC08E11F00C0F08BF70476D +:10CB2000B0F5296F38BF4FF42960704748520200B2 +:10CB30004C520200620100200246808E11F00C0F60 +:10CB400008BF704792F85530D18E13F00C0F04D007 +:10CB5000B1F5296F38BF4FF42961538840F2E24C98 +:10CB600003FB0CF3528E4FF4747C0CEB821C8C454F +:10CB70009CBF910101F57471591AA1F59671884213 +:10CB800028BF0846B0F5296F38BF4FF429607047B9 +:10CB9000084418449830002A14BF04210021084496 +:10CBA0007047F0B4002A14BF08220122002B14BFE2 +:10CBB0000824012412F00C0F8B8ECA8E25D091F818 +:10CBC0005550944615F00C0F04D0BCF5296F38BFB2 +:10CBD0004FF4296C4D8840F2E2466E434D8E4FF47F +:10CBE000747707EB851767459CBF4FEA851C0CF5EA +:10CBF000747CA6EB0C0CACF5967C634528BF6346B1 +:10CC0000B3F5296F38BF4FF4296314F00C0F04D02B +:10CC1000B2F5296F38BF4FF429621FFA83FC002850 +:10CC20000CBF0123002391F8560014F00C0F08BF2D +:10CC300000200CEB020108449830002B14BF0421A3 +:10CC400000210844F0BC70472DE9F00391F854200E +:10CC50000B8E12F00C0F4FF474771CBF07EB83138D +:10CC60009CB255D012F00C0F8B8ECA8E4D8E91F85F +:10CC700055C021D016461CF00C0F04D0B6F5296F14 +:10CC800038BF4FF42966B1F8028040F2E24908FB50 +:10CC900009F807EB8519B14502D8AE0106F574769F +:10CCA000A8EB0606A6F59676B34228BF3346B3F541 +:10CCB000296F38BF4FF42963A34228BF23469CB293 +:10CCC0001CF00C0F1CBF07EB85139BB228D000BFD4 +:10CCD0001CF00C0F04D0B2F5296F38BF4FF4296255 +:10CCE0009A4228BF1A4600280CBF0123002391F85E +:10CCF00056001CF00C0F08BF0020A1180844983003 +:10CD0000002B14BF042100210844BDE8F003704744 +:10CD1000022A07BF9B003C33DB0070339CB2A1E7C3 +:10CD2000BCF1020F07BFAB003C33EB0070339BB28A +:10CD3000CEE710F0010F1CBF0120704710F0020F6A +:10CD40001CBF0220704710F0040018BF0820704775 +:10CD50002DE9F0470446174689464FF0010808467A +:10CD600000F0D1FC0546484600F0D1FC10F0010F60 +:10CD700018BF012625D000BF15F0010F18BF0123F1 +:10CD80002AD000BF56EA030108BF4FF0000810F098 +:10CD9000070F08BF002615F0070F08BF002394F8FF +:10CDA0005400B0420CBF00203046387094F8551043 +:10CDB000994208BF00237B70002808BF002B25D1B3 +:10CDC00015E010F0020F18BF0226D5D110F0040FA5 +:10CDD00014BF08260026CFE715F0020F18BF022364 +:10CDE000D0D115F0040F14BF08230023CAE748462A +:10CDF00000F093FCB4F85810401A00B247F6FE71E8 +:10CE0000884201DC002801DC4FF0000816B1082E32 +:10CE10000CD018E094F85400012818BF022812D052 +:10CE200004281EBF0828FFDF032D0CD194F8A401AD +:10CE300048B1B4F8A801012894F8540006D0082895 +:10CE400001D0082038704046BDE8F087042818BF9C +:10CE50000420F7D1F5E7012814BF0228704710F02D +:10CE60000C0018BF0420704738B4CBB2C1F3072CB4 +:10CE7000C1B2C0F30724012B07D0022B09D0042B29 +:10CE800008BFBCF1040F2DD006E0BCF1010F03D1A7 +:10CE900028E0BCF1020F25D0012906D0022907D0D5 +:10CEA000042908BF042C1DD004E0012C02D119E094 +:10CEB000022C17D001EA0C0161F3070204EA030116 +:10CEC00061F30F22D1B211F0020F18BF022310D06C +:10CED000C2F307218DF8003011F0020F18BF0221B4 +:10CEE0001BD111E0214003EA0C03194061F3070252 +:10CEF000E6E711F0010F18BF0123E9D111F0040F8B +:10CF000014BF08230023E3E711F0010F18BF01212C +:10CF100003D111F0040118BF08218DF80110082B6E +:10CF200001BF000C012804208DF80000BDF80000AE +:10CF300038BC70474FF0000C082902D0042909D0F2 +:10CF400011E001280FD10420907082F803C01380F3 +:10CF500001207047012806D00820907082F803C095 +:10CF600013800120704700207047162A10D12A2212 +:10CF70000C2818BF0D280FD04FF0230C1F280DD000 +:10CF800031B10878012818BF002805D0162805D02F +:10CF900000207047012070471A70FBE783F800C03B +:10CFA000F8E7012908D002290BD0042912BF08296B +:10CFB00040F6A660704707E0002804BF40F2E24058 +:10CFC000704740F6C410704700B5FFDF40F2E24002 +:10CFD00000BD0000282107F03CBE4078704730B506 +:10CFE0000546007801F00F0220F00F001043287072 +:10CFF000092910D2DFE801F0050705070509050B2F +:10D000000D00062409E00C2407E0222405E0012499 +:10D0100003E00E2401E00024FFDF6C7030BD0078D7 +:10D0200000F00F0070470A68C0F803208988A0F854 +:10D0300007107047D0F803200A60B0F80700888016 +:10D0400070470A68C0F809208988A0F80D10704759 +:10D05000D0F809200A60B0F80D0088807047027887 +:10D06000402322F0400203EA81111143017070470E +:10D070000078C0F3801070470278802322F080028D +:10D0800003EAC1111143017070470078C00970476D +:10D09000027802F00F02072A16BF082AD0F80520EE +:10D0A000D0F80320C1F809200CBFB0F80920B0F86F +:10D0B0000720A1F80D200A7822F080020A7000787B +:10D0C000800942EAC0100870704770B514460E46D9 +:10D0D00005461F2A88BFFFDF2246314605F10900B9 +:10D0E00007F038FDA01D687070BD70B544780E461D +:10D0F0000546062C38BFFFDFA01F84B21F2C88BF57 +:10D100001F24224605F10901304607F023FD204681 +:10D1100070BD70B514460E4605461F2A88BFFFDF56 +:10D120002246314605F1090007F014FDA01D687084 +:10D1300070BD70B544780E460546062C38BFFFDF3B +:10D14000A01F84B21F2C88BFFFDF224605F1090112 +:10D15000304607F0FFFC204670BD0968C0F80F108C +:10D1600070470A88A0F8132089784175704790F8B5 +:10D17000242001F01F0122F01F02114380F8241027 +:10D180007047072988BF072190F82420E02322F068 +:10D19000E00203EA4111114380F8241070471F3068 +:10D1A00007F08EBE10B5044600F0E3FA002818BF61 +:10D1B000204410BDC17811F03F0F1BBF027912F05F +:10D1C000010F0022012211F03F0F1BBF037913F062 +:10D1D000020F002301231A4402EB4202530011F014 +:10D1E0003F0F1BBF027912F0080F0022012203EB50 +:10D1F000420311F03F0F1BBF027912F0040F00220F +:10D200000122134411F03F0F1BBF027912F0200FCF +:10D210000022012202EBC20203EB420311F03F0F96 +:10D220001BBF027912F0100F0022012202EB420212 +:10D230001A4411F03F0F1BBF007910F0400F00207F +:10D240000120104410F0FF0014BF01210021084408 +:10D25000C0B2704770B50278417802F00F02082A18 +:10D260004DD2DFE802F004080B4C4C4C0F14881F21 +:10D270001F280AD943E00C2907D040E0881F1F2847 +:10D2800003D93CE0881F1F2839D8012070BD4A1EF1 +:10D29000242A34D88446C07800258209032A09D07C +:10D2A00000F03F04601C884204D86046FFF782FF0C +:10D2B000A04201D9284670BD9CF803004FF001063A +:10D2C00010F03F0F1EBF1CF10400007810F0100F8B +:10D2D00013D064460421604600F04BFA002818BFC2 +:10D2E00014EB0000E6D0017801F03F012529E1D2DE +:10D2F00080780221B1EB501FDCD3304670BD002096 +:10D3000070BDC078800970470178002201F00F03DA +:10D310000121042B0BD0082B1CBF00207047437841 +:10D320000E2B04BFC3785FEA931C04D106E040785B +:10D33000801F1F2800D911460846704713F03F0F81 +:10D340001EBF007910F0010F10F0020FF4D1F2E7C8 +:10D3500010B4017801F00F01032920D0052921D153 +:10D360004478B0F81910B0F81BC0B0F81730827DBF +:10D37000222C17D1062915D3B1F5486F98BFBCF5FB +:10D38000FA7F0FD272B1082A98BF8A420AD28B4222 +:10D390009CBFB0F81D00B0F5486F03D805E0407899 +:10D3A0000C2802D010BC0020704710BC0120704730 +:10D3B0002DE9F0411F4614460D00064608BFFFDF69 +:10D3C0002146304600F0D5F9040008BFFFDF3019D0 +:10D3D0003A462946BDE8F04107F0BCBBC07800F0F2 +:10D3E0003F007047C02202EA8111C27802F03F027A +:10D3F0001143C1707047C9B201F00102C1F340038B +:10D400001A4402EB4202C1F3800303EB4202C1F370 +:10D41000C00302EB4302C1F3001303EB43031A44BE +:10D42000C1F3401303EBC30302EB4302C1F38013C8 +:10D430001A4412F0FF0202D0521CD2B20171C3781A +:10D4400002F03F0103F0C0031943C170511C417049 +:10D4500070472DE9F0410546C078164600F03F04BC +:10D46000C4F124000F46B042B8BFFFDF281932468E +:10D470003946001D07F06EFBA019401C6870BDE81E +:10D48000F0812DE9F04105464478C0780F4600F060 +:10D490003F06002C08BFFFDFA01B401E84B21F2CDC +:10D4A00088BF1F242FB1A819011D2246384607F056 +:10D4B00051FB2046BDE8F0814078704700B5027806 +:10D4C00001F0030322F003021A430270012914BF82 +:10D4D0000229002104D0032916BFFFDF012100BD6E +:10D4E000417000BD00B5027801F0030322F0030291 +:10D4F0001A430270012914BF0229002104D0032914 +:10D5000016BFFFDF012100BD417000BD007800F0B3 +:10D5100003007047417889B1C0780E2818BF0F28E2 +:10D5200003D0102818BF192802D3FB2904D905E01D +:10D53000BF4A105C884201D101207047002070472B +:10D5400030B501240546C17019293CBFB848445C78 +:10D5500002D3FF2918BFFFDF6C7030BD70B51546D0 +:10D560000E4604461B2A88BFFFDF65702A463146F7 +:10D57000E01CBDE8704007F0EDBAB0F80700704756 +:10D58000B0F809007047C172090A01737047B0F81A +:10D590000B00704730B4B0F80720A64DB0F809C0B2 +:10D5A000B0F805300179941F2D1998BFBCF5FA7FAA +:10D5B0000ED269B1082998BF914209D293429FBF08 +:10D5C000B0F80B00B0F5486F012030BC98BF704731 +:10D5D000002030BC7047001D07F072BC021D0846D9 +:10D5E000114607F06DBCB0F809007047007970472C +:10D5F0000A68426049688160704742680A608068D2 +:10D600004860704709888181704780890880704729 +:10D610000A68C0F80E204968C0F812107047D0F8A8 +:10D620000E200A60D0F81200486070470968C0F800 +:10D6300016107047D0F81600086070470A684260FC +:10D6400049688160704742680A6080684860704736 +:10D650000968C1607047C06808607047007970470A +:10D660000A68426049688160704742680A60806861 +:10D67000486070470171090A417170478171090A58 +:10D68000C17170470172090A417270478172090ABB +:10D69000C172704780887047C088704700897047A2 +:10D6A0004089704701891B2924BF4189B1F5A47FB6 +:10D6B00007D381881B2921BFC088B0F5A47F012032 +:10D6C0007047002070470A6842604968816070476F +:10D6D00042680A60806848607047017911F0070F5E +:10D6E0001BBF407910F0070F00200120704701791F +:10D6F00011F0070F1BBF407910F0070F0020012029 +:10D7000070470171704700797047417170474079E7 +:10D7100070478171090AC1717047C088704746A27D +:10D7200082B0D2E90012CDE900120179407901F00E +:10D73000070269461DF80220012A07D800F00700F9 +:10D74000085C01289EBF012002B07047002002B093 +:10D750007047017170470079704741717047407997 +:10D76000704730B50C460546FB2988BFFFDF6C705B +:10D7700030BDC378024613F03F0008BF7047052054 +:10D78000127903F03F0312F0010F36D0002914BFC5 +:10D790000B20704712F0020F32D0012914BF801DF8 +:10D7A000704700BF12F0040F2DD0022914BF401C97 +:10D7B000704700BF12F0080F28D0032914BF801C47 +:10D7C000704700BF12F0100F23D0042914BFC01CF3 +:10D7D000704700BF12F0200F1ED005291ABF12306B +:10D7E000C0B2704712F0400F19D006291ABF401C72 +:10D7F000C0B27047072918D114E00029CAD114E03B +:10D800000129CFD111E00229D4D10EE00329D9D1C9 +:10D810000BE00429DED108E00529E3D105E0062963 +:10D82000E8D102E0834288BF7047002070470000C3 +:10D830005052020086F3FFFF0001010201020203C1 +:10D840002DE9F041FC4D0446284600216A788068A5 +:10D8500001270E4612B1012A1ED006E090F866207C +:10D86000002A18BF6F7000D001216A78C2EB421203 +:10D8700000EB420292F82830194324D0667090F8E9 +:10D88000D90002F12A0170B12A22201D07F062F9A5 +:10D890000420207027710DE090F82820002A18BF7E +:10D8A0006E70E1D1E1E73C22201D07F053F905201D +:10D8B000207027716878A968C0EB401001EB400028 +:10D8C00080F828601DE090F8A410E9B190F8D90024 +:10D8D000012818BFFFDFA868D0F8A5106160D0F854 +:10D8E000A910A160D0F8AD10E160D0F8B1102161AD +:10D8F00090F8B5102175667013212170277180F89A +:10D90000A4600120BDE8F08190F82210012922D006 +:10D91000017801291CBF0020BDE8F0816670142148 +:10D920002170811C2022201D07F014F92672A9689D +:10D930000E70C24882888284D0F8C420527B80F85E +:10D94000262080F82270D1F8C4000088F3F7BEFAD0 +:10D95000F2F765FFD5E7667007212170416A6160C3 +:10D9600080F82260CDE7B44880680178002914BFB0 +:10D9700080884FF6FF7070472DE9F84F4FF0000890 +:10D98000894606460127CDF80080FFF748FBBDF821 +:10D990000010A94D21F06004ADF8004008284FD2D6 +:10D9A000DFE800F004070D4E184E132C44F003007E +:10D9B0000DE044F01500ADF80000474641E044F0AA +:10D9C000100000BFADF800003BE044F0020040F062 +:10D9D0001000F7E7A86890F8E000052818BFFFDFFF +:10D9E00044F01A00ADF80000A96891F8E71000298A +:10D9F00014BF40F0010020F00100E3E7A86890F8B0 +:10DA0000E01003290AD090F8E01006295DD090F8C4 +:10DA1000E000042818BFFFDF64D012E03046FFF7B3 +:10DA200070FC002818BFFFDF0AD1F07810F03F0F1C +:10DA30001FBF307910F0020F44F00400ADF8000071 +:10DA40004746BDF800000090BDF80000C0F3C00BD1 +:10DA5000A868CBEB4B1A00EB4A0090F8280000288E +:10DA600018BFBDE8F88F3046FFF7D9FA80467248F4 +:10DA7000806800EB4A0190F8C90001F12A040128EE +:10DA800008BF012508D0022808BF022504D00428B9 +:10DA900016BF08280325FFDF257300206073664842 +:10DAA000806890F8E11084F83B10FF21A1737F217A +:10DAB000E176BDF80010618190F8E01004291CBFE8 +:10DAC00090F8E01006293AD049E044F00A01ADF898 +:10DAD000001090F8FA00002814BF41F0040021F073 +:10DAE00004006FE73046FFF70CFCD8B1012804BFF3 +:10DAF00044F00100ADF8000014D0022818BFFFDF89 +:10DB00009FD144F00200ADF80000A96891F8FA1026 +:10DB1000002914BF40F0040020F00400ADF800001C +:10DB200047468EE7F07810F03F0F1FBF307910F0B6 +:10DB3000020FBDF8000040F0040082D042E790F8E8 +:10DB4000E200012808BF012508D0022808BF0225ED +:10DB500004D0042816BF08280325FFDF657304F1ED +:10DB600009000090344D28787F2808BFFFDF29780E +:10DB7000009801707F2028706FB1B8F1070F04F191 +:10DB80001C01304603D2FFF7B0FA207239E0FFF7EC +:10DB900078FC207204E000202072B8F1070F30D327 +:10DBA000B8F1070F0DD1A86890F8F91001B3D0F8BB +:10DBB000EA10C4F80210B0F8EE10E18090F8F0001E +:10DBC0006070A07A10F0040F0ED0A86890F8FA10D8 +:10DBD000E9B190F8F7102175D0F8F110C4F81510DC +:10DBE000B0F8F500A4F81900B8F1070F38D098E0A4 +:10DBF000F07810F03F0F1ABF307910F0010FFF20BE +:10DC0000DED0621CA11C304601F0E4FCD9E7B8F17B +:10DC1000070F1CBFB8F1010FFFDFB9F1000F08BFFC +:10DC2000FFDF99F800002075B8F1010F08D0B8F1B6 +:10DC3000070F0BD075E0000064010020CC1000201D +:10DC400004F115013046FFF703FA6AE0012130467E +:10DC5000FFF7A8FA0168C4F815108088A4F8190025 +:10DC6000F07810F03F0F1CBF317911F0080F1AD077 +:10DC7000A86890F8E020042A06D090F8E000032875 +:10DC800011D111F0100F0ED003213046FFF78AFAA0 +:10DC9000407803210009A0733046FFF783FA00881B +:10DCA000C0F30B002082F07810F03F0F1CBF3079DA +:10DCB00010F0400F13D0FE48FFF723FBA96891F83E +:10DCC000E020032A14D006213046FFF76BFA0078D3 +:10DCD000E076A86890F8E010062922D118E0A8683C +:10DCE00090F8FB10002918BF90F8F800F0D1F0E789 +:10DCF00091F8C910042914BF08290028E3D1F0784D +:10DD000010F03F0F1CBF307910F0080FDBD1E0E7B7 +:10DD100090F8E9100909A173B0F8E800C0F30B000E +:10DD20002082A968012001EB4A0181F82800BBF19B +:10DD3000000F14BF06200520BDE8F84F03F02CBAF1 +:10DD40002DE9F041DB4DAA6892F8D930002B6ED056 +:10DD50007F27012611B10978FE2914D0804692F858 +:10DD60002800002818BFBDE8F08102F12A044046CF +:10DD7000FFF755F90021082879D2DFE800F0515368 +:10DD800056787878595CCA4C92F8A400002818BFDD +:10DD9000BDE8F08182F8A66092F8DD0018B1F6F7D0 +:10DDA000DAFC012829D02046FFF762F90146A8686D +:10DDB00080F8A71000F1A8012046FFF73BF92046A4 +:10DDC000FFF763F90146A86880F8AE1000F1AF01D3 +:10DDD0002046FFF73DF9A86800F1B50428787F28B0 +:10DDE00008BFFFDF287820702F70A86880F8A46033 +:10DDF000BDE8F041052003F0CFB9F6F7EFFCA968C4 +:10DE000001F1A802A731FDF7FDFE002808BFFFDFE2 +:10DE1000A86890F8A71041F0020180F8A710CEE79B +:10DE2000A17209E0A67221720CE0032001E021E05A +:10DE30000220A07200E0FFDF04F10B014046FFF773 +:10DE400054F92072621CA11C404601F0C3FB2878E3 +:10DE500009347F2808BFFFDF287820702F70A8685A +:10DE600080F82860BDE8F041052003F095B92172E3 +:10DE7000BDE8F081BDE8F0417EE570B58D4C002233 +:10DE8000A06890F8C910104602F0D4FF002831D0E5 +:10DE9000F7F763F9A068884990F8DF000D5C284621 +:10DEA000F6F7E7FEA06880F8E15090F8C91008295D +:10DEB00016BF04290F202520F6F7F9FDA0680021E0 +:10DEC00090F8C9200120F6F7D4FF7948F7F74EF90A +:10DED000A068D0F80001F7F74CF9A06890F8C910D5 +:10DEE00080F8E21090F8C800032814BF0228012926 +:10DEF00008D103E0BDE8704001F0A5BB0821002077 +:10DF0000F7F72AFAA06890F8C91080F8E210F7F73E +:10DF100000FAA06890F8C95090F8DD0040B1F6F71B +:10DF2000E6FB15F00C0F0CBF40205520F7F7D2F997 +:10DF3000A168032081F8E00070BD2DE9F0410F4693 +:10DF4000904605460321FFF72DF94078594C020908 +:10DF5000A06890F8E91062F3071180F8E910032136 +:10DF60002846FFF71FF90188A068B0F8E82061F3A0 +:10DF70000B02A0F8E82080F8E77090F8C91001299A +:10DF800005D090F8E000032808BFBDE8F081E878EC +:10DF90004FF0010610F03F0F1CBF287910F0400F22 +:10DFA00009D006212846FFF7FDF80178A06880F81F +:10DFB000F81080F8FB60A06890F8E01003292AD0E0 +:10DFC000E97811F03F0F1CBF297911F0010F08D03B +:10DFD00000F1F002911F284601F0FCFAA06880F8D9 +:10DFE000F960E87810F03F0F1ABF287910F0020F9F +:10DFF000BDE8F08101212846FFF7D4F8A168026846 +:10E00000C1F8F1208088A1F8F50081F8F78081F847 +:10E01000FA60BDE8F081022F18BF012FD0D1BDE812 +:10E02000F0812DE9F84F0446C07810F03F0F1CBF77 +:10E03000207910F0020F05D010F0010F18BF4FF03B +:10E04000010901D14FF0000900271A4DB9F1000F65 +:10E050005BD020780026C70901212046FFF7A2F8EF +:10E060003FB1407900F0C000402808BF4FF00108E0 +:10E0700001D04FF00008A86890F8C810032906D115 +:10E0800090F8C110002918BF90F8CC0001D190F889 +:10E09000DE00FDF7A5FD070015D01021FEF7DDFB22 +:10E0A000B8F1000F0FD001212046FFF77BF805E003 +:10E0B000D811002064010020785202000146384641 +:10E0C000F7F7D4FC0646A868B8F1000F90F8B970CD +:10E0D00018BF47F00207E07810F03F0F1CBF20790F +:10E0E00010F0020F0ED02046FEF7CFFF824601212E +:10E0F0002046FFF757F85146F6F769FD002818BF8C +:10E10000012000D1002030435BD0E07810F03F0FB9 +:10E110001EBF217911F0100F11F0080F3FD004211C +:10E120002046FFF73FF80646A86890F8E20002F0A4 +:10E1300078FE0146304601F0A8FAA0B13A46002127 +:10E140002046FFF7FAFEF848FFF7DBF80146A8681B +:10E1500080F8E6103188A0F8E310B17880F8E51077 +:10E160000120BDE8F88FA86890F8E20001283AD1B4 +:10E17000E07810F03F0F1CBF207910F0010F32D073 +:10E18000B9F1000F04D100212046FFF7F5FB2AE08A +:10E190008DF8007069462046FFF7EEFB23E010F093 +:10E1A0003F0F1CBF217911F0100F1CD110F03F0F51 +:10E1B0001CBF207910F0010F15D0B9F1000FE7D185 +:10E1C000E1E7A86890F8CA00032818BF02280AD11E +:10E1D000B8F1000F07D036B9D448694600680090FE +:10E1E0002046FFF7C9FB0020BDE8F88FD0498968B9 +:10E1F00081F80A01704770B5CD4DA86890F8E0101D +:10E20000022919BF90F8E010012900210C461CBF1B +:10E210000C2070BDC1EB411200EB4202034682F8B4 +:10E220002840491CC9B20229F4D3047080F8224066 +:10E2300093F8DD0030B1F7F757F8F6F76CFAA868F5 +:10E2400080F8DD40A868012180F8DC4080F8C1102A +:10E2500080F8C84080F8DF40282180F80B1180F852 +:10E260000A41A0F8E34080F8E540072180F8C0109B +:10E27000002070BDAE4810B58068002180F8E01025 +:10E28000012180F8E010FFF7B6FF002818BFFFDF7C +:10E2900010BD2DE9F047A64C07460C26A06890F863 +:10E2A000E01001291FBF90F8E00002280C20BDE813 +:10E2B000F087F6F73CFCA06890F90A01F6F7C7FC76 +:10E2C000A06890F8C91080F8E21090F8C0100125FD +:10E2D000002978D090F8C8004FF00009032802D038 +:10E2E000022805D008E00521924801F03AFA03E03F +:10E2F0000321904801F035FAA06890F8D810002961 +:10E3000004BF90F8DB00002843D0F4F7DDFD06469B +:10E31000A0683146D0F8D400F5F7E4FA864990FBBE +:10E32000F1F801FB180041423046F4F7D6FA0146F5 +:10E33000A068C0F8D410D0F8D0104144C0F8D01074 +:10E34000FDF72FFC0146A068D0F8D020914220D8DC +:10E35000C0E9349690F8DB0000281CBF0120FDF7CF +:10E3600044FD0121A06890F8DC20002A1CBF90F831 +:10E37000D820002A0DD090F8B93000F1BA02012B54 +:10E3800004D1527902F0C002402A14D0BA30F7F713 +:10E39000D5FBA06890F8B910BA30F6F710FC0F2141 +:10E3A0000720F6F728FCA068002690F8E010012965 +:10E3B00018D112E007E0FDF745FDA1682A46BA3101 +:10E3C000F7F785FBE5E790F8E010022904BF80F835 +:10E3D000E0500C2006D1BDE8F08780F804510221FE +:10E3E00080F8E010A06890F8C10088B1FDF7A5FCA6 +:10E3F00003214D48FDF7DDFC0146A06880F8DD10E3 +:10E40000C0F800714D48F6F79AFE3046BDE8F08737 +:10E41000FDF73CFCECE738B5454CA06890F8E010FF +:10E4200002291CBF0C2038BD012180F80511A0F87D +:10E43000081129208DF800006846F5F77DFD30B100 +:10E44000A0689DF8001090F80601884205D1A068E8 +:10E4500090F80601401C8DF80000A1689DF80000AE +:10E4600081F806010220F6F77EFE3548F6F7F9FB43 +:10E47000A168DFF8D0C0002091F8C03091F8DF200B +:10E48000521CACFB02546408A4EB8404224481F8BF +:10E49000DF2023FA02F212F0010F03D1401CC0B2B8 +:10E4A0000328EBD3FFF7E9FC002038BD2049896839 +:10E4B00081F8C900002070471D49896881F8DA0099 +:10E4C000704710B51A4CA36893F8B830022B14BFEC +:10E4D000032B00280BD100291ABF0229012000209C +:10E4E0001146FDF761FB08281CBF012010BDA06884 +:10E4F00090F8B800002816BF022800200120BDE8CF +:10E500001040F7F7A5BA0A48806890F8B8000028CC +:10E5100016BF022800200120F7F79ABA044989683B +:10E5200081F8B80070470000D81100206C5202003A +:10E53000640100200012002040420F0075520200CA +:10E540007B520200ABAAAAAAF749896881F8DC00CD +:10E55000704770B5F44CA16891F8B800002816BF58 +:10E5600002280020012081F8B900BA31F7F75AFAE1 +:10E57000A06890F8B810022916BF032901210021D4 +:10E5800080F8DB1090F8B920002500F1BA03012AC9 +:10E5900004BF5B7913F0C00F0AD000F1BA03012A5F +:10E5A00004D15A7902F0C002402A01D0002200E0D2 +:10E5B000012280F8D820002A04BF002970BDC0F8CD +:10E5C000D050F4F781FCA168C1F8D40091F8DB00C9 +:10E5D00000281CBF0020FDF708FC0026A06890F86A +:10E5E000DC1000291ABF90F8D810002970BD90F8EF +:10E5F000B92000F1BA01012A04D1497901F0C00122 +:10E60000402905D02946BDE87040BA30F7F796BAE0 +:10E61000FDF718FCA1683246BDE87040BA31F7F743 +:10E6200056BA70B5C04D0C4600280CBF012300231C +:10E63000A96881F8C13081F8CB004FF0080081F85B +:10E64000CC000CD1002C1ABF022C01200020114656 +:10E65000FDF7AAFAA968082881F8CC0001D00020AB +:10E6600070BD022C14BF032C1220F8D170BD0028FD +:10E6700018BF112070470328AB4A926808BFC2F840 +:10E68000C41082F8C8000020704710B5044602F09C +:10E6900083FF052809D002F07FFF042805D0A24897 +:10E6A000806880F8D940002010BD0C2010BD9E4825 +:10E6B000816891F8C800032804D0012818BF0228F7 +:10E6C00007D004E091F8CB00012808BF7047002074 +:10E6D000704791F8CA00012814BF03280120F6D121 +:10E6E000704710B5F6F7EAFDF6F79EFDF6F7CEFC9B +:10E6F000F6F72BFD8C4CA06890F8DD0038B1F6F7EA +:10E70000F3FDF6F708F8A168002081F8DD00A068A5 +:10E71000012180F80411022180F8E010002010BDD2 +:10E720008149896881F8FC0070477F4902788968CF +:10E73000012A06D0042A24D0052A0CBF1120122059 +:10E74000704742780023032A08BFC1F8C43081F81B +:10E75000C820012281F8C920C27881F8B820027946 +:10E76000002A16BF022A0123002381F8C13081F854 +:10E77000CA20427981F8C020807981F8DA0000202F +:10E78000704782780023032A08BFC1F8C43081F89B +:10E79000C8200822DEE764488068704700F053BF55 +:10E7A0002DE9F84F00256048F6F7BEFD5E4C4FF0AE +:10E7B0007F0A002808BF84F800A0F6F7A0FD5B4898 +:10E7C000FEF72DFCA0700146A06890F8E2204FF003 +:10E7D00003084FF000094FF0010B012A10D0042A62 +:10E7E0001CBF082AFFDF00F05782A06890F8DD0008 +:10E7F00018B1F6F779FDF5F78EFF2846BDE8F88FDA +:10E800004A4D0026A5F58677072936D290F8C10033 +:10E8100028B9F6F71EFA002808BF002600D0012606 +:10E82000A06890F8DD0080B1FDF715FAA168FF2817 +:10E8300081F8DE0001460DD0E81CFDF701FAA06862 +:10E8400090F8DE00FDF712FA0643A06890F8DE00AB +:10E85000FF2817D1FDF7A1FA87F8DE0097F8C1105D +:10E8600081B108280ED12878E91CC0F38010FDF78B +:10E870009BF9082818BF002604E002BF90F8D900D1 +:10E8800000280126A07808283CD2DFE800F03FB934 +:10E89000043B3B3B17FD36B1A06890F8C800012847 +:10E8A00018BF022803D0F6F7F1FB45469DE7F6F7BF +:10E8B000EDFB00211D48FFF743FAF6E716B3A06809 +:10E8C00090F8C800022802D0012815D01AE00021D3 +:10E8D0001648FFF735FAA0680825C0F8E790C0F899 +:10E8E000EB90C0F8EF90C0F8F390C0F8F79080F884 +:10E8F000FB9080F8E79078E700210C48FFF720FABA +:10E9000000F040B9F6F7C2FB03256EE70020002EA9 +:10E9100071D0A26892F8C810022909D0012925D027 +:10E92000032928D06AE0000064010020D8110020EB +:10E930000021FE48FFF704FAA16891F8050128B10B +:10E94000401E10F0FF0081F8050154D1C1F8E79096 +:10E95000C1F8EB90C1F8EF90C1F8F390C1F8F790CF +:10E9600081F8FB90082081F8E7B047E00021EF48EC +:10E97000FFF7E6F941E0D2F8C400E978837E9942D6 +:10E980001BD12979C37E994217D16979037F9942B6 +:10E9900013D1A979437F99420FD1E979837F9942B5 +:10E9A0000BD1297AC37F994207D12978437EC1F3DD +:10E9B0008011994208BF012100D0002192F8CB209C +:10E9C000012A01D079B10CE059B900F11A01D748F8 +:10E9D000FEF730FBD548FEF74BFBA168D1F8C41019 +:10E9E00048760A200AE097F8CC00082803D097F868 +:10E9F000DE108142F5D0F6F749FB03200546F4E628 +:10EA0000A06890F8DB1000290CBF4FF0010B4FF00D +:10EA1000000B4FF000082978CA0905F1090107D059 +:10EA2000497901F0C001402908BF4FF0010901D028 +:10EA30004FF0000990F8C810032906D190F8C110D2 +:10EA4000002918BF90F8CC0001D190F8DE00FDF746 +:10EA5000C7F85FEA000A13D01021FDF7FEFE002878 +:10EA600018BF4FF0010BB9F1000F04BFA06890F878 +:10EA7000B9A00FD005F109015046F6F7F7FF80461F +:10EA8000A06890F8B9A000E093E0B9F1000F18BFBA +:10EA90004AF0020A90F8C81003290ED0F6F7F6FAE9 +:10EAA000F6B3F6F7A4F850EA08006DD08DF800A090 +:10EAB00069469E48FFF744F964E0D0F8C400E9785D +:10EAC000827E91421BD12979C27E914217D1697908 +:10EAD000027F914213D1A979427F91420FD1E97906 +:10EAE000827F91420BD1297AC27F914207D1297846 +:10EAF000407EC1F38011814208BF012500D000256E +:10EB000097F8DE00082806D097F8CC10884208BF96 +:10EB10004FF0010901D04FF00009B8F1000F00E0FB +:10EB200032E005D1BBF1000F04D0F6F760F808B170 +:10EB3000012100E000214EB197F8CB00012803D05D +:10EB400020B955EA090001D0012000E0002001426F +:10EB500016D0A06890F8CB10012908BF002D0DD168 +:10EB6000D0F8C40000F11A017048FEF763FA6F484C +:10EB7000FEF77EFAA168D1F8C41048760A2534E67B +:10EB8000F6F784FA032530E6A06890F8CA00032857 +:10EB900018BF0228F6D1B9F1000FF3D0B8F1000F79 +:10EBA000F0D163486946406800906048FFF7C8F8B4 +:10EBB000E8E7A06890F8DA0000283FF4A3AEF6F783 +:10EBC00065FAA06890F8D9100029DBD1C0F8E79069 +:10EBD000C0F8EB90C0F8EF90C0F8F390C0F8F79051 +:10EBE00080F8FB9080F8F8A05048FEF78AFB50B3FD +:10EBF000012836D00228C5D1A068032590F8C800A6 +:10EC0000032814BF0020012036EA00003FF4EDADD8 +:10EC1000464E1820F17811F03F0F3FF4E6AD317900 +:10EC200088437FF4E2AD04213046FEF7BBFA074685 +:10EC3000A06890F8E20002F0F4F80146384600F0CF +:10EC400024FDE8BBD1E5002E9CD0A06890F8C80058 +:10EC5000012818BF022895D13448FFF7E2F980BB9C +:10EC600090E7002E8ED0314D1820E97811F03F0F3B +:10EC700088D02979884385D104212846FEF792FA65 +:10EC80000646A06890F8E20002F0CBF80146304654 +:10EC900000F0FBFC98BB75E707297FF433AEC0F8A2 +:10ECA000E790C0F8EB90C0F8EF90C0F8F390C0F890 +:10ECB000F79080F8FB90012680F8F8A01B4801E04F +:10ECC0007FE01AE0FEF71DFB38B1012818D00228BA +:10ECD0004DD0F6F7DBF9454687E5F6F7D7F9A0689A +:10ECE00090F8C800012818BF02287FF44BAF0F48E6 +:10ECF000FFF797F900283FF445AF042575E522E0BA +:10ED0000F6F7C4F9094D1820E97811F03F0F3FF4E8 +:10ED100039AF297988437FF435AF04212846FEF7BF +:10ED200041FA0646A06890F8E20003E0D8110020FE +:10ED30006C52020002F075F80146304600F0A5FC66 +:10ED400000283FF41FAF002201212846FFF7F5F805 +:10ED5000F748FEF7D6FA0146A06880F8E610318839 +:10ED6000A0F8E310B17880F8E51004253DE503250F +:10ED7000F6F78CF9A06890F8C800032814BF0020AB +:10ED8000012036EA00003FF430ADE94E1820F1785A +:10ED900011F03F0F3FF429AD317988437FF425AD61 +:10EDA00004213046FEF7FEF90746A06890F8E2001D +:10EDB00002F037F80146384600F067FC00283FF4BF +:10EDC00014AD002202213046FFF7B7F8D848FEF70D +:10EDD00098FA0146A06880F8E6103988A0F8E31098 +:10EDE000B97880F8E5100425FFE42DE9F041D14C15 +:10EDF000A0680078002818BFFFDF0025A068012761 +:10EE00008570D0F8C4100A8882804A8842838A8834 +:10EE10008283C988C18380F82050C74990F8DB20DD +:10EE2000A1F59A764AB10A78C2F38013CA1C23B1BD +:10EE3000527902F0C002402A33D090F8DC2042B16F +:10EE400011F8032BC2F380121AB1497911F0C00FE7 +:10EE500027D00E3006F022F8A06890F8DD0018B137 +:10EE6000F5F779FC012824D0A068D0F8C4104A7EB8 +:10EE7000C271D1F81A208260C98B818145610583F6 +:10EE8000A0680770D0F8C42090F80A1182F85710D3 +:10EE9000D0F8C4000088F2F719F8BDE8F041F1F7A6 +:10EEA000AFBCD6F83711C0F80E10B6F83B1141824E +:10EEB000D2E7F5F793FCA16801F10802C91DFCF740 +:10EEC000A1FE002808BFFFDFA068C17941F0020160 +:10EED000C171D6F80F114161B6F813110183CFE764 +:10EEE0002DE9F047934C0746FF21A0680025012635 +:10EEF00080F8DE1090F8C800012818BF022802D060 +:10EF0000032818BFFFDF5FB18948FEF7A3F918B9DE +:10EF10008748FEF7F9F918B100F07BFC05463FE0A1 +:10EF2000A06890F8E0007F27082839D2DFE800F0D9 +:10EF3000383838041725352B7E48F6F7F5F90028C0 +:10EF400008BF2770F6F7DBF9A06890F8DD0018B16C +:10EF5000F6F7CAF9F5F7DFFBF6F798F82BE07548F6 +:10EF6000F6F7E2F9002808BF2770F6F7C8F9A0689D +:10EF700090F8DD000028EFD0EAE76E48F6F7D4F904 +:10EF800030B9277004E06B48F6F7CEF90028F8D0C6 +:10EF9000F6F7B5F9F6F77AF80DE000F03DFE0AE075 +:10EFA0000C2D80F02B82DFE805F04CFCFB06FAF913 +:10EFB000F9F90AF84ECBBDE8F047FEF75EBF002234 +:10EFC0000121022001F036FF002800F05B815A4940 +:10EFD000A1F12800FEF75CF8A068574E90F8B91030 +:10EFE0003046FEF73CF8A06800F1BA013046FEF763 +:10EFF0001AF8A06890F8DB10C1B190F8C810032986 +:10F0000006D190F8C110002918BF90F8CC0001D1AA +:10F0100090F8DE00FCF718FF050007D0012130460C +:10F02000FEF71DF829463046FDF7FDFF4248F6F78A +:10F030009DF801210846F6F78FF9A168082081F8AC +:10F04000E000BDE8F087A06890F8E21090F80B218E +:10F0500011F00C0F08BF002290F8E210032001F01D +:10F06000E9FE002800F00E81344D0A2085F8E0000A +:10F07000012002F091F805F59A71A1F12800FEF740 +:10F0800007F8A06805F59A7790F8B9103846FDF7AB +:10F09000E6FFA06800F1BA013846FDF7C4FFA0689A +:10F0A00090F8DB10C1B190F8C810032906D190F890 +:10F0B000C110002918BF90F8CC0001D190F8DE00F3 +:10F0C000FCF7C2FE060007D001213846FDF7C7FF56 +:10F0D00031463846FDF7A7FFA2681749D2F8C400A9 +:10F0E000C08AC875000A0876D2F8C400407D8875C9 +:10F0F0000846F6F73BF8D5F8C4100F4820234A7BA2 +:10F10000017803EA421221F0200111430170084AFC +:10F11000D5F8C4001278417BC2F34012114041730C +:10F12000D5F8C41095F80B0181F85600BDE8F087BA +:10F13000D81100206401002000120020CC10002013 +:10F14000A06890F8E21090F80B2111F00C0F08BFA6 +:10F15000002290F8E210052001F06CFE00287CD01F +:10F16000FE4D0B2085F8E000022002F015F805F5B1 +:10F170009A71A1F12800FDF78BFFA06805F59A7838 +:10F1800090F8B9104046FDF76AFFA06800F1BA0197 +:10F190004046FDF748FFA06804E047E02EE1A5E007 +:10F1A0009DE098E090F8DB10C1B190F8C8100329F9 +:10F1B00006D190F8C110002918BF90F8CC0001D1F9 +:10F1C00090F8DE00FCF740FE070007D00121404622 +:10F1D000FDF745FF39464046FDF725FFA068E04AA8 +:10F1E000D0F8C410C98AD175090A1176D0F8C400C4 +:10F1F0001146407D88750846F5F7B8FFD5F8C4007C +:10F200004673A06890F8E230012296210020F5F7BD +:10F210008CFED348017821F020010170A068D5F858 +:10F22000C41090F80B0181F856007FE7A06890F8B1 +:10F23000E21090F80B2111F00C0F08BF002290F89B +:10F24000E210042001F0F6FD38B1C549A1F1280013 +:10F25000FDF71EFFC24EA06800E013E090F8B91061 +:10F260003046FDF7FCFEA06800F1BA013046FDF71C +:10F27000DAFEA06890F8DB10E9B190F8C810032915 +:10F2800004D00AE0BDE8F04700F0DDB990F8C11005 +:10F29000002918BF90F8CC0001D190F8DE00FCF7EF +:10F2A000D3FD050007D001213046FDF7D8FE2946E1 +:10F2B0003046FDF7B8FEAA48F5F758FFA06890F869 +:10F2C000E230012296210020F5F72FFEA1680920E7 +:10F2D00081F8E0002AE7A06880F8E06026E7A068EF +:10F2E000022180F8046180F8E0101FE7A66816F894 +:10F2F000E31F11F0800F0CBF1E204FF49670B6F87C +:10F300000120C2F30C0212FB00F7C80908BF4FF03E +:10F310001E0906D0002806BFFFDF4FF000094FF49A +:10F320009679B078400908BF012507D0012808BFA9 +:10F33000022503D0022814BF00250825A06890F8F4 +:10F34000E20001F06EFDA7EB0008307808EB09073A +:10F35000C0F38010002808BF4FF4FA7A05D006BF2A +:10F36000FFDF4FF0000A4FF0320A7C4890F8FC9023 +:10F37000B9F10C0F28BFFFDF7A487B4A30F819003B +:10F380000AEB000101FB0720511CB0FBF1F000F17A +:10F3900020094F44F5F7E1FE307800F03F06304693 +:10F3A000F5F767FCA06880F8E16029462520F5F7AD +:10F3B0007EFB0122A8EB09012B461046F5F7B5FDAF +:10F3C0006A48F5F7D3FE00213846F5F7EAFEA06853 +:10F3D00080F8E250F5F79DFFA06890F8DD0040B19D +:10F3E000F5F785F915F00C0F0CBF50205520F5F7F7 +:10F3F00071FFA168042081F8E00097E6FFDF95E641 +:10F400005B4810B5806890F8E0000C286BD2DFE80C +:10F4100000F06A6A6A6A6A6A6A6A0615533453486F +:10F42000F5F7A4FEF5F775FF514C00219620F5F78E +:10F43000B8FEA168052081F8E00010BD4B48F5F743 +:10F4400095FE4B4CA06890F8E230012296211046C0 +:10F45000F5F76BFDA16891F8E20091F80B1110F03F +:10F460000C0F08BF00219620F5F79BFEF5F751FF22 +:10F47000A168062081F8E00010BD3C48F5F776FE53 +:10F480003B4CA06890F8E230012296211046F5F737 +:10F490004CFDA16891F8E20091F80B1110F00C0FEF +:10F4A00008BF00219620F5F77CFEF5F732FFA16832 +:10F4B000072081F8E00010BDF5F700FFF5F7B4FE76 +:10F4C000F5F7E4FDF5F741FE29480121806880F851 +:10F4D0000411022180F8E010FFF787FCBDE810401E +:10F4E000032001F059BEFFDF10BD70B5204CA068AD +:10F4F00090F8E0007F25082828BF70BDDFE800F005 +:10F500004D4D4D172304470A1948F5F70DFF30B943 +:10F51000257004E01648F5F707FF0028F8D0F5F746 +:10F52000EEFEF5F7B3FDBDE87040FEF7A6BC10484F +:10F53000F5F7FAFE002808BF2570F5F7E0FEBDE8F4 +:10F54000704000F080B80A48F5F7EEFE002808BFCA +:10F550002570F5F7D4FEA0680CE00000CC10002068 +:10F5600000120020805202003F420F00D8110020FC +:10F570006401002090F8DD0018B1F5F7B5FEF5F74D +:10F58000CAF8F5F783FDBDE87040FEF776BC00F0E1 +:10F5900043FBBDE87040FEF770BC70BD70B5F84C21 +:10F5A00006460D46012909D0A06890F8E23090F88F +:10F5B000E2203046BDE8704001F0C8BFF5F728FAF8 +:10F5C000A16891F8E220034629463046BDE8704024 +:10F5D00001F0BCBF70B50646E94814460D46806888 +:10F5E00090F8DD0018B1F5F7B6F801280ED03046D6 +:10F5F000FDF73EFD20703046FDF711FD072813D2C0 +:10F6000029463046BDE87040FDF714BDF5F7E6F831 +:10F610002A462146FCF7F6FA002808BFFFDF2078CB +:10F6200040F00200207070BD3046FDF7F8FC07285E +:10F6300018BF70BD00213046FDF7B4FD0168296098 +:10F640008088A88070BD10B5F5F738FEF5F7ECFDA1 +:10F65000F5F71CFDF5F779FDC94CA06890F8DD00C1 +:10F6600038B1F5F741FEF5F756F8A168002081F8AA +:10F67000DD00A068012180F80411022180F8E0106B +:10F68000BDE81040002001F087BD2DE9F0410D4696 +:10F690000178044611F0800F0CBF1E204FF49670C5 +:10F6A000B4F80120C2F30C0212FB00F6C80908BF2F +:10F6B0001E2105D0002806BFFFDF00214FF4967100 +:10F6C000701BA278520908BF012707D0012A08BF82 +:10F6D000022703D0022A14BF00270827B0F5877F2E +:10F6E0002EBFAE420020BDE8F08145182078C0F35F +:10F6F0008010002808BF4FF4FA7603D006BFFFDF62 +:10F70000002632269F4890F8FC400C2C28BFFFDFD3 +:10F710009D489E4A30F81400311801FB0520511C09 +:10F72000B0FBF1F0203005449548806890F8E20085 +:10F73000F6F76CF804463846F6F768F84FF47A7135 +:10F7400084423ABF001B00F2E730201AB0FBF1F010 +:10F7500034BF42192A1A3946BDE8F041012001F0B0 +:10F7600069BB70B50D460446FDF734FC032D4AD045 +:10F77000052D18BF70BD05212046FDF730FC804DDA +:10F78000A868D0F8C40000F10E012046FDF7E5FCA2 +:10F79000A868D0F8C40000F112012046FDF7E1FC92 +:10F7A000A868D0F8C410497DA175D0F8C410C98AE2 +:10F7B000E175090A2176D0F8C41049886176090AF2 +:10F7C000A176D0F8C4108988E176090A2177D0F8AB +:10F7D000C410C9886177090AA177D0F8C40000F184 +:10F7E00008012046FDF7DBFCA868D0F8C400017EC4 +:10F7F0002046FDF7BCFCA86890F8FC102046BDE848 +:10F800007040FDF7BEBC2046BDE870400321FDF707 +:10F81000E6BB2DE9F04FDFF8688183B04FF0000AB6 +:10F82000D8F8080090F8E000594E01274FF003097E +:10F8300055464FF07F0BA6F12804082880F0E78199 +:10F84000DFE800F0FEFEFE0407B3FDFCFEF7A8FFB4 +:10F85000A8E04B48F5F768FD002808BF88F800B01D +:10F86000F5F74DFDD8F8080090F8D900002818BF2A +:10F87000FFDF4848FDF7D3FB88F80300E078002657 +:10F8800010F03F0F1CBF207910F0080F11D0414835 +:10F89000FDF737FD60B1012802D0022808D008E04A +:10F8A000E07810F03F0F1CBF207910F0010F00D05E +:10F8B00001260296D8F8080090F8DD0018B1F5F797 +:10F8C00013FDF4F728FFE1782A460020134611F0D3 +:10F8D0003F0F1ABF217911F0020F2F4647D0D8F8F9 +:10F8E0000800DFF8B0A0002590F8DB0000280CBF6E +:10F8F000012600269AF800000121C4095046FDF7B0 +:10F9000051FC34B1407900F0C000402808BF012408 +:10F9100000D00024D8F8080090F8C810032906D1B8 +:10F9200090F8C110002918BF90F8CC0001D190F8D0 +:10F93000DE00FCF755F95FEA000B0FD01021FCF751 +:10F940008CFF002818BF012644B101215046FDF765 +:10F9500029FC01465846F6F789F80546D8F808000C +:10F960002200334690F8B90018BF40F0020098F822 +:10F970000310072910D0F5F789FBCA4600F048B9F3 +:10F9800064010020CC100020805202003F420F0092 +:10F9900000120020D8110020CDE900072946029866 +:10F9A00000F07BF9824600F033B9FC48FDF737FBE5 +:10F9B00088F80400E078717A88421CD12079B17A05 +:10F9C000884218D16079F17A884214D1A079317BCC +:10F9D000884210D1E079717B88420CD1207AB17BCA +:10F9E000884208D120783178C0F38010B0EBD11F65 +:10F9F00008BF012400D00024F5F748FBE848F5F7DC +:10FA000093FC002808BF88F800B0F5F778FC98F858 +:10FA1000040004283BD1B4B30095D8F80820DF488F +:10FA2000694692F8D9307BB3054692F8660050BB20 +:10FA3000042002F1680482F8720002E029E07DE00F +:10FA4000E5E06932A11C2846FFF7C4FD04F10B0173 +:10FA50002846FDF76EFBC0B220721F2884BF1F200E +:10FA6000207298F8000009347F2808BFFFDF98F85B +:10FA70000000207088F800B0D8F8080080F86670A0 +:10FA8000062001F089FB02E0FFE7FDF775FFCA469B +:10FA9000BEE04FF0030AC248F5F746FC002808BF55 +:10FAA00088F800B0F5F72BFCBC48FDF7B8FA05461E +:10FAB000BA48FDF726FC082D08BF00287ED1E17862 +:10FAC000032011F03F0F79D02179884376D10021AE +:10FAD000B248FDF767FB062206F1090105F00EF8B2 +:10FAE00000286BD1AD48FDF7C3FA0446AD48FDF7D9 +:10FAF000CCFA844262D10121A848FDF753FB0622CB +:10FB0000F11C04F0FBFF002858D1A448FDF7BDFA12 +:10FB10000446A448FDF7ACFA844279D1F5F7CEFB50 +:10FB2000F5F782FBF5F7B2FAF5F70FFB4FF0020A93 +:10FB3000FFF75BF9042001F02FFB69E04FF0030AA7 +:10FB4000F5F7A4FA9648F5F7EFFB002808BF88F808 +:10FB500000B0F5F7D4FB9148FDF761FA81468F4874 +:10FB6000FDF7CFFBB9F1070F08BF002850D1E178AE +:10FB7000012011F03F0F4BD02179884348D100215B +:10FB80008648FDF70FFB062206F1090104F0B6FFD7 +:10FB9000A0B98248FDF76CFA04468248FDF775FA71 +:10FBA000844235D1D8F8080090F8041139B3B0F880 +:10FBB000082190F80611012A07D900E028E0520830 +:10FBC000A0F8082108BFA0F80871012914BF002976 +:10FBD0000D21C943C1EBC10202EB011190F80521CF +:10FBE000D24302EB8203C3EB82121144B0F8082126 +:10FBF000890CB1FBF2F302FB131180F8051180F8B8 +:10FC00000471694665480095FDF7B6FE00E0FFDF28 +:10FC100003B05046BDE8F08F10B5F5F737FA6048ED +:10FC2000F5F782FB5E4C002804BF7F202070F5F7BB +:10FC300066FBA06890F8041119B1002180F8041146 +:10FC400010BDB0F8082190F80611FF2A0AD24FF62D +:10FC5000FF7303EA4202A0F80821FF2A84BFFF22B3 +:10FC6000A0F80821012914BF00290D21C943C1EBC7 +:10FC7000C10202EB011290F80511C94301EB8103A7 +:10FC8000C3EB81111144B0F80821890CB1FBF2F3E8 +:10FC900002FB131180F80511CFE72DE9F84F8346D9 +:10FCA0009946924688463D480A9FFDF72AFB3B4EFF +:10FCB0003B4D002800F03C81012803D0022800F0D1 +:10FCC0007781BAE0002403213448FDF76BFABBF1D9 +:10FCD000000F6BD0A96891F8E720012A66D142781D +:10FCE00091F8E9301209B2EB131F5FD10088B1F827 +:10FCF000E810C0F30B00C1F30B01884256D127482E +:10FD0000FDF7FFFAA96891F8E62090424ED191F8EC +:10FD1000C800012818BF022802D0032847D0AEE04F +:10FD2000F5F7B4F9F07810F03F0F1CBF307910F000 +:10FD3000020F18D0194C2046FDF7A7F906460121FD +:10FD40002046FDF72FFA3146F4F741FF002818BF8F +:10FD5000012050EA08000BD08DF8007069460F486A +:10FD6000FDF70AFE18E000210C48FDF705FE13E040 +:10FD7000A86890F8CA00032818BF02280CD1BAF16D +:10FD8000000F09D0B8F1000F06D107486946806816 +:10FD900000900248FDF7F0FD032470E0D811002028 +:10FDA00064010020001200206C52020064E0002177 +:10FDB0009848FDF7F7F9A9680622D1F8C4101A315E +:10FDC00004F09CFE50B99348FDF752F9A968D1F8A8 +:10FDD000C410497E884208BF012400D00024F07876 +:10FDE00010F03F0F1CBF307910F0020F03D0B8F1B4 +:10FDF000000F47D056E0A86890F8CB10012901D039 +:10FE0000ACB11FE0F4B900218248FDF7CBF9A96835 +:10FE10000268D1F8C410C1F81A208088C8837D48D0 +:10FE2000FDF726F9A968D1F8C41048760AE090F8E1 +:10FE3000DE1090F8CC00814204D0F5F727F90320BA +:10FE4000BDE8F88FA86890F8E21011F00C0F11D0FF +:10FE500090F8E21011F00C0F0ED00123D0F8C4106E +:10FE60001A460020FCF79DFEA968D1F8C410496A23 +:10FE7000884201D80B2402E0F5F708F90324204654 +:10FE8000BDE8F88FB9F1000F0ED0624E3046FDF795 +:10FE9000FCF8074601213046FDF784F93946F4F7AE +:10FEA00096FE08B1012200E00022A96891F8CB007B +:10FEB000012807D040B92CB991F8DE3091F8CC1068 +:10FEC0008B4201D1012100E000210A42D4D0012857 +:10FED00008BF002C12D100214E48FDF763F9A96834 +:10FEE0000268D1F8C410C1F81A208088C883494834 +:10FEF000FDF7BEF8A968D1F8C4104876A86890F854 +:10FF0000E21011F00C0FB5D090F8E21011F00C0FC8 +:10FF1000B2D00123D0F8C4101A460020FCF741FEED +:10FF2000A968D1F8C410496A8842A5D8A2E700BFE1 +:10FF3000F5F7ACF803213748FDF734F9BBF1000FB2 +:10FF40005DD0A96891F8E7205ABB427891F8E93072 +:10FF50001209B2EB131F52D10088B1F8E810C0F3B8 +:10FF60000B00C1F30B01884249D12A48FDF7C9F9BA +:10FF7000A96891F8E620904241D191F8C800012883 +:10FF800018BF02283BD1F07810F03F0F1CBF30792A +:10FF900010F0020F06D08DF8007069461D48FDF77D +:10FFA000EBFC2CE000211B48FDF7E6FC27E000BF3E +:10FFB000F5F76CF8A86890F8C80003281FD015481A +:10FFC000FDF79FF9A96891F8E620904217D1F278E1 +:10FFD000092012F03F0F12D0327990430FD1BBF1BC +:10FFE000000F0CD091F8C8000228DBD191F8050170 +:10FFF00040B1401E10F0FF0081F8050102D003203F +:020000040002F8 +:10000000BDE8F88F3A4601210248FDF796FF092026 +:10001000BDE8F88FD81100202DE9FF4F07460C46A8 +:10002000488881B040F2E24148430090E08A0026CF +:1000300000FB01FB94F8640091460D2818BF0C28C2 +:100040001FD024281EBF94F8650024284FF0000A12 +:1000500017D0049818B10121204602F018FC94F83A +:10006000540094F8558094F8D010054661B10129E8 +:100070006DD0022952D0032918BFFFDF67D000F0EE +:10008000D5B84FF0010AE4E7B9F1000F08BFFFDF70 +:10009000FD4EB068002808BFFFDF94F85410FB48FD +:1000A00090F82400FCF77DFF009094F85400F5F7D9 +:1000B000C6FB00F2E7314FF47A79B1FBF9F1F2486F +:1000C00080680E1894F85400F5F7B9FB014694F8CF +:1000D0005400022804BFEE484FF47A720DD0012874 +:1000E00004BFEC484FF4C86207D0042807BFEA48B1 +:1000F00040F69802E94840F6E4421044084400F211 +:10010000E731B1FBF9F10098401A00EB0B01DE4832 +:10011000406930440844061D012015E0DA48A9F181 +:1001200001018068084308BFFFDFDD48B9F1000F17 +:10013000006800EB0B0606D0D348806800F222303E +:10014000B04288BFFFDF032084F8D0006DE094F850 +:100150006410009E24291EBF94F86520242A2529B6 +:100160004FD1B4F85810B4F8F020891A491C09B2DC +:10017000002946DB94F8F210002942D00D4694F88D +:10018000F310002918BF8846022804BFC0494FF465 +:100190007A700DD0012804BFBE494FF4C86007D063 +:1001A000042807BFBC4940F69800BC4940F6E4402B +:1001B0000144022D04BFB6484FF47A720DD0012DD0 +:1001C00004BFB4484FF4C86207D0042D07BFB2483B +:1001D00040F69802B14840F6E4421044814208D902 +:1001E000081A00F5FA714FF47A70B1FBF0F006448A +:1001F00007E0401A00F5FA714FF47A70B1FBF0F0A5 +:10020000361AB9F1000F10D0DFF87C92D9F8080047 +:1002100020B9B9F80200002818BFFFDFD9F808009C +:1002200000F22230B04288BFFFDF06B9FFDF31465F +:10023000D4F8D400F2F751FBC4F8D400B860002021 +:1002400038704FF0010987F80490204602F00DFC49 +:10025000AAF10101084208BF87F8059006D094F87A +:10026000D00001280CBF0220032078714046D4F84A +:1002700024B0F5F7CBFA0146022D04BF84484FF4B1 +:100280007A720DD0012D04BF82484FF4C86207D0A6 +:10029000042D07BF804840F69802804840F6E442AB +:1002A0001044084400F23F614FF47A70B1FBF0F063 +:1002B000584400F5C970F860049830EA0A0004BF99 +:1002C00005B0BDE8F08F31463846FCF7E8FB85B253 +:1002D000204602F0CAFBA8420FD8054687F80590D1 +:1002E00006FB05F1D4F8D400F2F7F7FAB86031460E +:1002F0003846FCF7D4FB284485B22946204602F054 +:10030000C6FAB868C4F8D40005B0BDE8F08F2DE98E +:10031000F0430446634885B00D4690F80004DFF8CA +:100320008891400999F800144909884218BFFFDFF5 +:10033000DFF85481002708F14406082D80F00E8173 +:10034000DFE805F0046872726DFEFEB6202C28BF4F +:10035000FFDF36F814000621F0F786FC050008BF21 +:10036000FFDF202C28BFFFDF36F8140029888842E1 +:1003700018BFFFDF95F8D000002808BFFFDF284630 +:1003800001F089FFC8F80870A8F80270294600201B +:10039000C8F81470FCF758FC00F19804686AA04291 +:1003A00025D995F85500F5F731FA014695F854002E +:1003B000022804BF36484FF47A720DD0012804BFDA +:1003C00034484FF4C86207D0042807BF324840F6CB +:1003D0009802324840F6E442104408444FF47A71DF +:1003E00000F23F60B0FBF1F1686A0844071B294640 +:1003F0000020C8F80C70FCF727FC698840F2E24244 +:1004000051439830081AA0F22230C8F8100005B005 +:10041000BDE8F08305B0BDE8F04302F013B905B0C4 +:10042000BDE8F043F4F7BCBF99F8140D1F4940092B +:1004300091F800144909884218BFFFDF202C28BF1B +:10044000FFDF36F814000621F0F70EFC050008BFA8 +:10045000FFDF202C28BFFFDF36F8140029888842F0 +:1004600018BFFFDF0022012329466846FFF7D4FDAD +:1004700095F8DA006946F2F76FFF002808BFFFDF42 +:1004800005B0BDE8F08300002812002044120020CF +:1004900068360200A2240200D0FB010030D3010024 +:1004A0007401002001E000E00BE000E019E000E052 +:1004B000202C28BFFFDF36F814000621F0F7D4FB0C +:1004C000050008BFFFDF202C28BFFFDF36F814002F +:1004D0002988884218BFFFDF95F8D000042818BF8C +:1004E000FFDF85F8D07095F8DA404FF6FF79202CC1 +:1004F00028BFFFDF26F8149095F8DA00F2F7C5FC64 +:10050000002808BFFFDF202085F8DA00D5F8E000DA +:10051000002804BFD5F8DC00C8F8180008D0D5E9D9 +:1005200039121144826911448161D5E93701C860EB +:10053000D5F8DC0000281CBFD5F8E010016100E010 +:100540000CE004D1D5F8E000002818BF8761FE4810 +:10055000007805B0BDE8F043EBF74CBCFFDF05B019 +:10056000BDE8F0832DE9F05FF84E07468B46F08B2F +:100570007568401CF08330784FF00008002808BFF1 +:10058000FFDF07D0DFF8C89304282ED0052818BF56 +:10059000FFDF5BD05846FEF7FEF8040008BFFFDF20 +:1005A00029463069F2F799F9B86087F80080012090 +:1005B000387194F8C900022808BFE64807D001281E +:1005C00008BFE54803D004280CBFE448E4484FF4D2 +:1005D0007A7100F2E140B0FBF1F0B168FA30084402 +:1005E000F860307804287DD183E0002AD2D0D6F894 +:1005F00010A0D9F8184034B3A146E468002CFBD110 +:10060000B9F1000F1FD099F80000002808BFFFDFE4 +:10061000D9F81410D9F8040001445046F3F762F9F0 +:10062000002807DA291A491E91FBF5F101FB0504A0 +:100630002A4604E090FBF5F101FB15042A4694429A +:1006400088BFFFDF00E044462546A3E7002AA1D08B +:10065000B569002D08BFFFDF0024D5F8E420D9F8E4 +:1006600018002346611E58B18369934228BF9942FE +:1006700084BF194604460346C0680028F4D104B973 +:100680001C46C5F8E040D035002C04BFC5F80C80EE +:10069000C9F8185005D0E068E560E860002818BF88 +:1006A0000561D5F81090C5F81880B9F1000F0ED08B +:1006B000D9F8180048B1D5F814A0504538BFFFDF6D +:1006C000D9F81800A0EB0A00A861C9F81880002C1E +:1006D00008BFC6F8208009D02078002808BFFFDFB7 +:1006E000616900E00AE060680844306240F6B835AD +:1006F00050E7F08B0A2838BF032000D3022078711E +:10070000F08B012807D938467168FCF7C8F9014613 +:10071000F08B0844F083B8683061BDE8F09F2DE9A4 +:10072000F04107468F4884B00D4690F80004DFF88A +:100730003882400998F800144909884218BFFFDF41 +:1007400001200026082D814C80F0BB80DFE805F0F9 +:1007500004718C8C87B9B9A5607320736078002808 +:100760001CBF04B0BDE8F0817948866046612673FD +:100770003846FEF710F8050008BFFFDF95F8C900FE +:10078000022804BF79494FF47A720DD0012804BFC2 +:1007900071494FF4C86207D0042807BF6F4940F67B +:1007A0009802734940F6E44211444FF47A7201F220 +:1007B000E731B1FBF2F1A2688C18F5F715F80246A3 +:1007C00095F8C900082808BF082127D004280CBFC5 +:1007D0000221002322D002280CBF1821282119440D +:1007E000042816BF08280F2325235B1D082808BFEF +:1007F000402007D0042808BF102003D002280CBFD7 +:100800000420082013FB0010801A201AFDF741FD78 +:10081000002818BFFFDF04B0BDE8F08101EB410103 +:1008200001F12803082814BF04284FF4A871D6D07A +:10083000D1E7617851B1207B002808BFFDF751FF57 +:10084000667304B0BDE8F041F2F74ABAA073FDF751 +:10085000E2FD002818BFFFDF04B0BDE8F08104B05E +:10086000BDE8F041F4F79CBD98F8140D41494009EA +:1008700091F800144909884218BFFFDF0022394669 +:100880006846FFF76FFE69463846F2F765FD0028B7 +:1008900008BFFFDF04B0BDE8F0812078052818BF4D +:1008A000FFDF207F002808BFFFDF26772670207D2E +:1008B000F2F7EBFA002808BFFFDF267504B0BDE8A9 +:1008C000F081FFDF04B0BDE8F0812DE9F0411F4C5D +:1008D0000026207804281FBF207805280C20BDE8BA +:1008E000F08101206070607B0025A8B1EFF31080DB +:1008F00010F0010F72B60CBF00270127607B0028A3 +:100900001CBFA07B002805D0FDF7EBFE6573A57327 +:10091000F2F7E6F92FB903E0207DF2F72FFE00E0B1 +:1009200062B6207DF3F777F8207F28B1257720780D +:10093000052818BFFFDF0C2665702570207DF2F7B3 +:10094000A4FA002818E000007001002044120020E2 +:100950002812002004360200A2240200D0FB01006D +:10096000C0D4010001E000E00BE000E068360200C6 +:1009700030D3010019E000E008BFFFDF25753046E5 +:10098000BDE8F0812DE9F04FFB4883B000780028E6 +:1009900018BFFFF79AFF0120DFF8E08388F8000016 +:1009A00069460620F0F7E9F8002818BFFFDF0027A6 +:1009B0004FF6FF7934E0029800281CBF90F8D01061 +:1009C00000292DD0008848451CBFDFF8B4A34FF0A4 +:1009D000200B3BD00621F0F747F9040008BFFFDFEA +:1009E00094F8DA00F3F717F884F8D07094F8DA5036 +:1009F0004FF6FF76202D28BFFFDF2AF8156094F808 +:100A0000DA00F2F742FA002808BFFFDF84F8DAB014 +:100A100069460620F0F7B1F8002818BFFFDF10E0A4 +:100A20006846F0F788F80028C5D00FE00298002843 +:100A30001CBF90F8D010002903D000884845C9D1C8 +:100A400004E06846F0F777F80028EFD088F80070E7 +:100A5000C8F8187003B00020BDE8F08F10B5C94C7D +:100A600060B101280CBF40F6C410FFDF06D0A068BB +:100A700041F66A01884228BFFFDF10BDA060F6E79B +:100A800010B5DFF800C3BC4C00238CF800002370C5 +:100A90006370237723736373A3732020A36120758E +:100AA000A4F11C004370423010214FF6FF724280C7 +:100AB00020F8042F491EFAD1CCF80830DCF80800E1 +:100AC00041F66A01884228BFFFDFFFF75BFF40F66F +:100AD000C41101206160F4F799FE00F2E7314FF490 +:100AE0007A70B1FBF0F042F210710844A0606168C6 +:100AF000A1F21731884298BF0146A16010BDF0B540 +:100B00009D4C054685B0207800281EBF0C2005B0FE +:100B1000F0BD95F8546095F855006F6AF4F776FECD +:100B2000022E04BF98494FF47A720DD0012E04BFF3 +:100B300096494FF4C86207D0042E07BF944940F687 +:100B40009802944940F6E442114408444FF47A7103 +:100B500000F23F60B0FBF1F0384400F22230C5F8FB +:100B6000E400A56195F8D000002818BFFFDF002041 +:100B7000824948610521217060702077E0838648B2 +:100B8000F2F729F92075202808BFFFDFF2F79CF95A +:100B90002061217D01226846FFF7E4FC207D694643 +:100BA000F2F7DAFB002808BFFFDF002005B0F0BD38 +:100BB0007148007800281CBF0020704710B506203F +:100BC000EFF7ECFF80F0010010BD70B56A4C0546F0 +:100BD0002078002818BFFFDF2878012832D00428A9 +:100BE0001CBF112070BDE8882E89082540F27121B4 +:100BF000484360602846F4F709FE4FF47A7100F22A +:100C0000E730B0FBF1F040F2712206FB0200A06079 +:100C1000022D08BF614A07D0012D08BF5B4A03D0EF +:100C2000042D0CBF5A4A5E4A02F2E142B2FBF1F1D6 +:100C30006268511AA1F28A21884298BF01460020B9 +:100C4000A16070BD6888AE880125CFE710B584B07B +:100C500008431EBF112004B010BD474C2078002867 +:100C60001EBF0C2004B010BD002060700421217054 +:100C7000E0834948F2F7AFF82075202808BFFFDF6E +:100C80003E48806938B10146C0680028FBD111B1E7 +:100C9000F2F71AF905E0F2F717F940F6B831F1F773 +:100CA0001CFE2061217D01226846FFF75BFC207D50 +:100CB0006946F2F751FB002808BFFFDF002004B0AF +:100CC00010BD70B52C4CA1690160FFF7FEFD00233B +:100CD00000BBA169D1F8E0205AB1D1E939C5AC44D3 +:100CE0009569AC44C2F818C0D1E9372CCCF80C2077 +:100CF00005E0DFF888C0D1F8DC20CCF81820D1F866 +:100D0000DC20D1F8E010002A18BF116102D10029BF +:100D100018BF8B61A36170BD18494870704770B5EA +:100D200040F2E24300FB03F510460C46F4F76EFD7B +:100D3000022C04BF14494FF47A720DD0012C04BF69 +:100D400012494FF4C86207D0042C07BF104940F67F +:100D50009802104940F6E442114408444FF47A7175 +:100D600000F23F60B0FBF1F000F2223085428CBF10 +:100D7000281A002070BD0000441200202812002014 +:100D80006C1200207001002068360200A2240200CC +:100D9000D0FB010030D301001F070200043602001F +:100DA000C0D4010070B50D46064601460020FBF791 +:100DB0004BFF044696F85500F4F728FD014696F8D7 +:100DC0005400022804BFFB4A4FF47A700DD001286A +:100DD00004BFF94A4FF4C86007D0042807BFF74A98 +:100DE00040F69800F64A40F6E440104408444FF4B8 +:100DF0007A7100F23F60B0FBF1F0718840F271222D +:100E00005143C0EB4100A0F22230A54234BF21463D +:100E10002946814203D2A5422CBF28462046706253 +:100E200070BD10B5F4F7E0FCE6498A684968511ACC +:100E3000084410BD2DE9F04FE24B04252827D3F8D4 +:100E400008B04FF010080BF198044FF008094FF06C +:100E5000000C4FF4C8734FF4BF764FF0400A0628D9 +:100E60007CD2DFE800F00351214E246C14200429C9 +:100E700011D0082908D02A20022910D010FB0940DF +:100E800000252821294458E0554610FB054000BFA5 +:100E90004FF4A871F6E710FB08402E25F8E710FB89 +:100EA000054065461821EDE704F5317473E0D0B2D2 +:100EB00011F00C0F08BF0020082904BF00F5BA612B +:100EC00040200ED0042917D002290CBF0CF15C0180 +:100ED0000CF1B001014407BF0CF1180304203B469C +:100EE000082000EBC00000EB400003EB400008448A +:100EF000204400F19C044EE000F28E213346102085 +:100F0000EFE704F5B07446E0082908BF40200CD094 +:100F1000042904BF3346102007D0022907BF0CF173 +:100F2000180304200CF128030820C0EBC00000EBDC +:100F3000400003EB40000BEB020144182BE0D0B261 +:100F400011F00C0F08BF0020082904BF00F535611F +:100F5000402010D0042918D0022900E01AE00CBF6C +:100F60000CF1B4010CF5B071014407BF0CF118038A +:100F700004203B46082000EB400202EB001018441E +:100F80000844204400F19C0405E000F2EE313346B1 +:100F90001020F0E7FFDF8C488068A0428CBF012062 +:100FA0000020BDE8F08F10B5864C607828B1D4E9F8 +:100FB0000301A268FBF79BFDE060D4E902018842CF +:100FC0009CBF2078002814BF0020012010BD0422FF +:100FD0002DE9F04F774E784FDFF8E081DFF8E091B0 +:100FE00085B04FF47A7A052980F0D280DFE801F0ED +:100FF0000A2B0331920080F8D02005B0BDE8F04FF5 +:10100000F1F76EBE04466F480078002818BF84F8D8 +:10101000D02004D005B0BDE8F04FF1F761BE012249 +:10102000002321466846FEF7F7FF94F8DA00694688 +:10103000F2F792F9002808BFFFDFB4F85800401C0F +:10104000A4F85800E6E7032180F8D01005B0BDE809 +:10105000F08F8346408840F2E24148435B49086094 +:10106000DBF8F80059460089ABF81600DBF8F80009 +:1010700080798BF81500DBF8F8004089ABF80200A6 +:10108000DBF8F8008089ABF80400DBF8F800C089D1 +:10109000ABF806000020DBF82850FBF7D5FD04462E +:1010A0009BF85500F4F7B2FB9BF85410022908BFD7 +:1010B0004FF47A710DD0012904BF3E464FF4C86148 +:1010C00007D0042907BF464640F698014E4640F631 +:1010D000E4413144084400F23F60B0FBFAF1BBF850 +:1010E000020040F271225043C1EB4000A0F22230D6 +:1010F000A54234BF21462946814203D2A5422CBFD6 +:1011000028462046CBF8240002208BF8D00005B0FA +:10111000BDE8F08F83460146856A0020FBF794FD09 +:1011200004469BF85500F4F771FB9BF85410022914 +:1011300008BF4FF47A710DD0012904BF3E464FF429 +:10114000C86107D0042907BF464640F698014E46BD +:1011500040F6E4413144084400F23F60B0FBFAF04D +:10116000BBF8021040F271225143C0EB4100A0F2E3 +:101170002230A54234BF21462946814203D2A542EE +:101180002CBF28462046CBF8240005B0BDE8F08FE0 +:10119000FFDF05B0BDE8F08F2DE9F043DFF83080C8 +:1011A0000126002498F80010074D85B0072880F02C +:1011B000C6810FE068360200A2240200D0FB0100C5 +:1011C00030D30100281200204412002074010020B6 +:1011D00070010020DFE800F0041A1AFCFCFBFB00A1 +:1011E000EC830846EAF706FE6878002840F066813E +:1011F000297D00226846FFF7B5F9287D6946F2F798 +:10120000ABF8002808BFFFDF00F058B902280CBF78 +:1012100001260026287DFDF7BEFA040008BFFFDF87 +:1012200094F8E2103046FBF7BCFEDFF874930146F9 +:101230002869D9F80820002E024408BF4FF4FC703A +:101240007DD094F8E20094F80B3110F00C0F08BF39 +:10125000002394F8E20008281EBF94F8E200042856 +:101260004FF0000C00F0C68094F8E20008281ABF86 +:1012700094F8E20004284FF4A87005D094F8E20036 +:1012800002280CBF18202820844494F8E200082883 +:1012900008BF40200BD094F8E200042808BF1020BB +:1012A00005D094F8E20002280CBF04200820C0EB0F +:1012B000C00606EB4010604494F8E2C0BCF1080F91 +:1012C0001EBF94F8E2C0BCF1040F00267ED000BF20 +:1012D00094F8E2C0BCF1080F1ABF94F8E2C0BCF168 +:1012E000040F4FF4A87C08D094F8E2C0BCF1020FC0 +:1012F0000CBF4FF0180C4FF0280C664494F8E2C075 +:10130000BCF1080F08BF4FF0400C10D094F8E2C0B9 +:10131000BCF1040F08BF4FF0100C08D094F8E2C0E5 +:10132000BCF1020F0CBF4FF0040C4FF0080C0CEB9B +:101330004C0707EB0C1CB4446044184400E001E087 +:1013400000F59A7010440844061D94F8E200F4F782 +:101350005DFA024694F8E200022808BF91480BD0DB +:1013600094F8E200012808BF8F4805D094F8E20005 +:1013700004280CBF8D488E4894F8E210022908BF5B +:101380004FF47A710ED094F8E210012908BF4FF49F +:10139000C86107D094F8E21004290CBF40F6980108 +:1013A00040F6E441084410444FF47A7100F2E7300B +:1013B000B0FBF1F0A96940F2E243301A4A88D0311B +:1013C00002FB03F7D9F818208A4202E01CE0B0E0E3 +:1013D0005DE008BF00262BD0296AF2F783FA0028C7 +:1013E0001EDA391A4A1E92FBF7F202FB070639464B +:1013F0001BE000BF94F8E200082818BF022000EBB1 +:10140000400000F1280C2FE794F8E2C0BCF1080F6F +:1014100018BF4FF0020C0CEB4C0C0CF1280657E7F0 +:1014200090FBF7F202FB170639468E4288BFFFDFBA +:10143000D8F80800864208D2A86940F27122418893 +:10144000C1824A4306EB420605E040F2E240B6FBA9 +:10145000F0F0A969C88294F8E210A86980F85410E5 +:1014600094F8E21080F8551005214175C08A6FF498 +:101470001C71484306EB400040F63541C9F81400A2 +:10148000B0EB410F28BFFFDF05B0BDE8F0830428B3 +:101490000CBF01270027EC830846EAF7ABFC2E7748 +:1014A00085F82470A8692969C0F8D41080F8D04064 +:1014B0002978052918BFFFDF07D000BFF1F710FC1E +:1014C0006C73AC7305B0BDE8F083002808BFFFDF84 +:1014D000A86990F8D000002818BFFFDFA86990F82D +:1014E000DA00202818BFFFDF3248F1F774FCA96941 +:1014F0000646202881F8DA000F8828BFFFDF2E4833 +:1015000020F81670A86990F8DA00202808BFFFDFDD +:10151000002301226846A969FEF77EFDA869694695 +:1015200090F8DA00F1F718FF002808BFFFDFAC6180 +:10153000C4E705B00846BDE8F043EAF75BBCFFDF4F +:1015400005B0BDE8F08316494860704770B5144D8A +:101550000446002904BFA86070BD4FF47A760129C3 +:1015600010D002291CBFFFDF70BD6888401C688056 +:101570001046F4F764F900F2E730B0FBF6F0201AF9 +:10158000A86070BD1846F4F76FF900F2E730B0FBC1 +:10159000F6F0201AA86070BD084800787047000077 +:1015A0002812002068360200A2240200D0FB0100AD +:1015B00030D301000F0302006C12002044120020FF +:1015C000FB490C28896881F8CB001ABF132818281A +:1015D0007047002211280FD0072808BF7047152830 +:1015E0000AD001281ABF002802287047A1F88420D9 +:1015F000012081F888007047A1F88A20704770B5F3 +:10160000EB4CA1680A88A1F83E2181F83C0191F8D1 +:101610005400012808BF012508D0022808BF022570 +:1016200004D0042816BF08280325FFDFA06880F82F +:10163000405190F85500012808BF012508D0022824 +:1016400008BF022504D0042816BF08280325FFDFA1 +:10165000A068012180F8415180F83A11002180F8FA +:101660000E11E078BDE87040EAF7C4BBD04A01290A +:1016700092681BD0002302290FD0032922D030B357 +:1016800001282FD0032818BF704792F86400132850 +:101690001CBF1628182805D1704792F8CB000028E7 +:1016A00008BF7047D2F8F8000370704792F8CB007B +:1016B000012808BF704700BFD2F8FC000178491E1E +:1016C0000170704792F8CB000328EBD17047D2F835 +:1016D000F800B2F858108288891A09B20029A8BF08 +:1016E00003707047B2F85800B2F80211401A00B205 +:1016F0000028E1DA70472DE9F041AD4C00260327C0 +:10170000D4F808C0012590B12069C0788CF8CA00CF +:1017100005FA00F010F4000F08BFFFDFA06880F8A2 +:101720006470A0F8846080F88850BDE8F0810023E0 +:101730009CF8652019460CF15800FBF746F9002883 +:1017400004BF6570BDE8F0816078002818BFBDE86F +:10175000F0812069C178A06880F8C91080F86570B0 +:10176000A0F88A6080F88C50BDE8F08170B5904C8C +:1017700084B0207910F0010F04BF04B070BD20695F +:1017800000230521C578A06890F864205830FBF745 +:101790001CF9002818BF062D09D020DC022D1CBF23 +:1017A000042D052D03D0607840F00800607060784B +:1017B00000281CBF04B070BD2069C078801E1628A8 +:1017C00080F00783DFE800F011FE89A7D52CFEFD2D +:1017D000FE7FFCD2FEFEFEC5FBFAF9F8F7F60B2DF4 +:1017E0001CBF0D2D112DDED1E1E7A06800230121E2 +:1017F00090F867205830FBF7E8F8002840F05C8349 +:101800002069FBF7F3FEA16881F8F600072081F854 +:101810006700002081F88C0081F8880000F04CBB44 +:10182000A0680921002390F864205830FBF7CDF818 +:1018300018B120690079122812D0A0680A2100236B +:1018400090F864205830FBF7C0F818B1206900798F +:10185000142820D020690079162840F02D8324E038 +:10186000A0680125002390F8642009215830FBF777 +:10187000ACF8002808BF657000F01E83607800286F +:1018800040F01A83A16881F87C0081F8880081F813 +:10189000640000F011BBA168002081F86400A1F889 +:1018A000840081F8880000F035BAA06890F86410D0 +:1018B0001F2940F00183002180F8641080F888100F +:1018C0001A2000F0F7BAA06890F864100F2927D109 +:1018D000002180F86910122137E0A06890F86410A8 +:1018E00013291DD1D0F8F81000884988814218BF0B +:1018F000FFDFA068D0F8F80000F126012069FBF7AF +:10190000A2FEA06800F1C4012069FBF7A4FE162026 +:10191000A16800F05BB9A26892F86400162802D0B2 +:10192000022000F03BBAD2F8F80002F1B00300F157 +:101930001E0100220E30FAF7C4FFA0680021C0E9A2 +:101940002811012180F86910182180F8641000F036 +:10195000B3BA2069FBF7FFFE032840F0AD8220698F +:10196000FBF7FDFE01F00FFC00F0A6BA206900793C +:10197000F8E7A06890F864101A29D1D1002580F802 +:101980008D5080F88850D0F8F8100088498881423E +:1019900018BFFFDFA068D0F8F8100D70D0F8441120 +:1019A0000A78002A18BFFFDF7ED190F88E200AE067 +:1019B0007C0100203BE2B7E182E126E1F2E009E1AF +:1019C0002CE09FE0AAE17AB180F88E500288CA80AC +:1019D000D0F844110D71D0F844210E211170D0F8C7 +:1019E00044210188518010E00288CA80D0F8441157 +:1019F0000D71D0F8442101211172D0F844210D213C +:101A00001170D0F84421018851800088EFF75EFA08 +:101A1000EEF7F6FEE078EAF7EDF9BEE0A068002305 +:101A2000194690F865205830FAF7CFFF50B9A068F2 +:101A30000023082190F864205830FAF7C6FF0028E8 +:101A400000F0FA816078002840F03682A06890F8B3 +:101A5000900010F0020F14D12069FBF7FFFDA16880 +:101A600081F891002069B0F80520A1F89220B0F823 +:101A70000700A1F8940091F8900040F0020081F86E +:101A80009000A06890F8901011F0010F14D190F818 +:101A90006520002319465830FAF797FF002808BF41 +:101AA000FFDF0121A06800E077E080F8651080F892 +:101AB0008C100021A0F88A10A06890F86410012909 +:101AC00007D1002180F8641080F88810E078EAF7E8 +:101AD00091F9A168D1F8F800098842888A4204BFC8 +:101AE0000178042940F0E88100250570E078EAF7E4 +:101AF00081F9A06890F86410002908BF80F8885028 +:101B000000F0DAB9A0680023072190F8642058306B +:101B1000FAF75BFF002800F08F816078002840F022 +:101B2000CB8102A92069FBF7D3FD9DF808000025B1 +:101B300000F02501A06880F896109DF8091001F0CA +:101B4000410180F8971080F88850D0F8F81000888C +:101B50004988814218BFFFDFA068D0F8F8100D70E7 +:101B6000D0F844110A78002A18BFFFDF15D1028887 +:101B7000CA80D0F844110D71D0F84411029A8A60DD +:101B8000039ACA60D0F84421082111700188D0F866 +:101B900044014180E078EAF72DF9A06880F86450AC +:101BA00000F08AB9A0680023092190F86420583019 +:101BB000FAF70BFF002800F03F816078002840F022 +:101BC0007B81A16881F87C0081F8880081F864003D +:101BD00000F072B9A0680023194690F865205830CB +:101BE000FAF7F3FE002800F027816078002840F023 +:101BF0006381A0680021A0F88A10012180F88C1070 +:101C0000022180F8651000F057B9A068002319463A +:101C100090F865205830FAF7D8FE00287FD0206968 +:101C2000FBF740FD002879D0A5682069FBF736FD59 +:101C30002887A5682069FBF72DFD6887A5682069BE +:101C4000FBF72EFDA887A5682069FBF725FDE8872F +:101C5000A06890F864101C2913BF90F84E10012161 +:101C600080F84E10012907D090F80511002904BF13 +:101C700090F80411002903D01E2180F8651017E0A8 +:101C80001D2180F865100288A0F82A21028FA0F893 +:101C90002C21428FA0F82E21828F00F58A71A0F8A6 +:101CA0003021C08FC88301200875E078EAF7A2F8D8 +:101CB000A0680021A0F88A10012180F88C10FBE0B8 +:101CC000A06800230A2190F864205830FAF77DFEBE +:101CD00018B32069FBF7E6FCA8B1A5682069FBF7FB +:101CE000DDFC2887A5682069FBF7D4FC6887A56818 +:101CF0002069FBF7D5FCA887A5682069FBF7CCFC19 +:101D0000E88700F019FFA168002081F8880081F8B9 +:101D1000640000BF00F0E1FECEE000E059E0607832 +:101D200040F001006070C7E0A0680023194690F8F9 +:101D300065205830FAF749FE78B3A06890F864003F +:101D4000232812BF2428607840F0200026D068465F +:101D5000F3F71FFE002808BF002104D0009802A955 +:101D6000C0788DF80800A06801AB162290F86400D6 +:101D7000FBF7FBF8A0B1A0689DF80420162180F8BD +:101D8000EC2080F8ED10192180F86510012180F811 +:101D90008C100021A0F88A108EE04DE060708BE07E +:101DA0002069FBF79AFCA0B12269107900F00701C5 +:101DB000A06880F85010527902F0070280F8512094 +:101DC00090F80F31002B04BF90F80E31002B04D097 +:101DD00022E00020FFF78FFC6EE090F855C000F184 +:101DE00054038C4501BF19789142012180F87D1080 +:101DF00012D00288A0F8362190F8502000F58A71A0 +:101E000080F8382190F8510081F82500012081F8F0 +:101E10002000E078E9F7EEFFA068212180F8651046 +:101E2000012180F88C100021A0F88A1044E0A068FD +:101E300090F864001F2801D00120AFE72069FBF76C +:101E400056FC88B32069A2680179407901F0070146 +:101E500061F30705294600F0070060F30F21012018 +:101E600082F888000025A2F88450232082F86400BC +:101E7000566DD2F81001FAF7F7FFF2B2C1B28A42FA +:101E800007BFA16881F8F250A26882F8F210C6F389 +:101E90000721C0F30720814219BFA16881F8F30030 +:101EA000A06880F8F35007E0FFE70120FFF723FC6C +:101EB0005FF01E00FFF7A3FBA068D0E92A12491CBF +:101EC00042F10002C0E92A1204B070BD2DE9F047CA +:101ED000FE4D04464FF00007687808436870287983 +:101EE00010F0200F2846806818BFA0F87E7004D13B +:101EF000B0F87E10491CA0F87E1090F86A100126F8 +:101F000039B990F86420002306215830FAF75DFDB6 +:101F100058B3A88810F4006F07D0A86890F86A102A +:101F2000002918BFA0F876701FD1A868B0F8761005 +:101F3000491C89B2A0F87610B0F878208A422CBFEC +:101F4000511A00218288521D8A4228BF80F87C6085 +:101F5000B0F87610B0F87820914206D3A0F87670E9 +:101F600080F81A61E878E9F745FF287910F0600FEA +:101F700008D0A86890F8681021B980F8686001213D +:101F8000FFF725F84FF00808002C56D16878002894 +:101F900051D1287910F0040F0DD0A86890F8640092 +:101FA000032808BFFFDFA86890F86710072904BF5F +:101FB0002E7080F8677001F036F9287910F0080F5C +:101FC00019D06878B8B9A868002190F8CB00FFF75D +:101FD0004DFBA86890F8CB00FE2808BFFFDFFE216C +:101FE000A86880F8CB1090F86710082903D1022167 +:101FF000297080F86770FFF7B9FBA87810F0080F18 +:1020000016D0A8680023052190F864205830FAF70C +:10201000DCFC50B185F80180A868D0F8441108783C +:102020000D2808BF0020087002E00020F9F7E8F84A +:10203000A86801F031F800F0C9FDA868A14600F1D8 +:10204000580490F8F40030B9E27B002301212046C7 +:10205000FAF7BBFC10B1608D401C60853D21B9F1E1 +:10206000000F18D12878022808BF16200ED00128AA +:1020700004BFA86890F8F60008D06878E8B110F0BE +:10208000140F1CBF1E20207702D005E0207703E04C +:1020900010F0080F02D02177E67641E010F0030F30 +:1020A00003D02A202077E6763AE010F0200F08BF10 +:1020B000FFDF23202077E67632E094F8300028B165 +:1020C000A08D411CA185E18D884213D294F8340083 +:1020D00028B1608E411C6186E18D88420AD2618DF3 +:1020E000208D814203D3AA6892F8F42012B9E28DC0 +:1020F000914203D322202077E67611E0217C31B192 +:10210000E18C814228BF84F81C80C5D206E0E08CB7 +:10211000062803D33E202077E67601E0E07EA0B1DA +:102120002773677327740221A868FEF750FFA86819 +:1021300090F8CB10012904D1D0F8FC000178491E99 +:102140000170E878E9F756FE03E00021A868FEF781 +:102150003EFFBDE8F047F3F72BBC5C4A517893781B +:10216000194314D111460128896809D0107910F05B +:10217000040F03D091F86700072808D001207047AA +:10218000B1F84800098E884201D8FEF70CBF002044 +:10219000704770B54D4C06460D46A0883043A08070 +:1021A00016F0020F04D016F0010F18BFFFDFE56034 +:1021B00016F0010F18BF256116F0020F4FF0000254 +:1021C0004FF0010117D0E878062802D00B280BD079 +:1021D00011E0A06890F86420182A0CD10022C0E910 +:1021E0002A2280F86A1006E0A06890F8641012298C +:1021F00008BF80F86A2016F0800F1CBF0820A0706E +:1022000016F4806F08BF70BDA268B2F858009188BC +:102210000844801DE97880B2012908BFA2F80201B4 +:102220001ED0002904BFD2F8F810888018D01829D1 +:1022300016D192F8F210002904BF92F8F330002B67 +:102240000BD011F00C0F1EBF92F8543013F00C0F8E +:10225000994203D092F8F31001B90020A2F8F000DF +:10226000E9782846012909D071B1182918BF70BD35 +:10227000B2F8F010BDE87040FBF74BBAB2F80211AB +:102280004172090AA97270BDD2F8F81089884173A9 +:10229000090AA97370BDF0B50C4C85B00026A0608A +:1022A000A6806670A670054626700088F3F748FB86 +:1022B000A0680088F3F76AFBB5F8D800A168401C55 +:1022C00082B201F15800FAF743F901E07C010020E5 +:1022D000002818BFFFDF95F8650024280AD1B5F85B +:1022E0005810B5F8F000081A00B20028A4BF6078B2 +:1022F000002806D095F86400242818BF25283BD173 +:1023000019E0A06890F8F210002908BF90F8541066 +:1023100080F8541090F8F310002908BF90F8551079 +:1023200080F855100020FFF76AF985F86560A1680C +:1023300081F87D6020E0B5F85810B5F8F000081A73 +:1023400000B20028A4BF6078002815D1A06890F8DA +:10235000F210002908BF90F8541080F8541090F83B +:10236000F310002908BF90F8551080F85510002090 +:10237000FFF745F985F86460A5F8D860A06890F883 +:10238000881039B1B0F88410B0F88620914224BF8B +:1023900005B0F0BD90F88C1039B1B0F88A10B0F8E3 +:1023A0008620914224BF05B0F0BDB0F88220B0F87D +:1023B00080108A4224BF05B0F0BD90F8682092B327 +:1023C000B0F87E208A4224BF05B0F0BD90F8CB70F3 +:1023D000FE2F00F01E816846F3F7B5FA002808BF0B +:1023E000FFDF2221009802F034FC03210098FBF764 +:1023F00079F80098017821F0100101703946FBF757 +:102400009FF8192F80F0E380DFE807F028201446BA +:10241000E1E1E21A71E1E2E264E1E1E1E1D4E2E268 +:102420007B94ADE1B600B0F87E10062924BF05B05C +:10243000F0BDCBE7A068009990F8F5000871C7E0FF +:10244000A168009891F8CC100171C1E0A068D0F8A3 +:10245000FC00411C0098FBF7BEF8B9E0A1680098A9 +:10246000D1F8F82092790271D1F8F82012894271DE +:10247000120A8271D1F8F8205289C271120A0272CE +:10248000D1F8F82092894272120A8272D1F8F810BB +:10249000C989FBF778F89BE0A068D0F8F800011D27 +:1024A0000098FBF7A5F8A068D0F8F80000F10C013F +:1024B0000098FBF7A7F8A068D0F8F80000F11E011B +:1024C0000098FBF7A5F8A06800F1C0010098FBF7A1 +:1024D000ADF87DE0626900981178017191884171D1 +:1024E000090A81715188C171090A017270E0FE49BF +:1024F000D1E90001CDE9020102A90098FBF7B0F88B +:1025000066E0A068B0F844100098FBF7B3F8A06844 +:10251000B0F846100098FBF7B1F8A068B0F840108A +:102520000098FBF7AFF8A068B0F842100098FBF7EE +:10253000ADF84DE0A068B0F840100098FBF7A2F8A5 +:10254000A068B0F842100098FBF7A0F8A068B0F8B7 +:1025500044100098FBF78EF8A068B0F84610009879 +:10256000FBF78CF834E0A068009990F810210A710C +:1025700090F8110148712BE0A06890F8F300FAF789 +:102580006AFC01460098FBF7C0F8A16891F8F200D8 +:1025900010F00C0F1CBF91F8541011F00C0F02D06A +:1025A000884218BF0020FAF756FC01460098FBF756 +:1025B000A8F80DE0A06890F8ED100098FBF7C9F8B6 +:1025C000A06890F8EC100098FBF7C7F800E0FFDF78 +:1025D000F3F7CCF9002808BFFFDF0098C178012984 +:1025E00003D049B118290FD013E0A168B1F8021146 +:1025F0004172090A81720CE0A168D1F8F81089884B +:102600004173090A817304E0A168B1F8F010FBF787 +:1026100080F8B6480090B64BB64A29463046F8F7DF +:1026200033FDA0680023052190F864205830FAF7A4 +:10263000CCF9002804BF05B0F0BD05B0BDE8F040FE +:10264000F8F713BBAC48806890F8881029B1B0F84F +:102650008410B0F8862091421AD290F88C1029B1DB +:10266000B0F88A10B0F88620914211D2B0F88220DA +:10267000B0F880108A420BD290F86820B0F87E0043 +:1026800022B1884204D200BFF8F796BD0628FBD3DA +:10269000002001461AE470B50C46064615464FF474 +:1026A000A471204602F0F7FA2680002D08BFFFDF54 +:1026B0002868C4F8F8006868C4F8FC00A868C4F882 +:1026C000440170BDEEF7D9BB2DE9F0410D46074638 +:1026D0000621EEF7C9FA040008BFBDE8F081D4F87E +:1026E00044110026087858B14A8821888A4207D1C7 +:1026F000092810D00E281DD00D2832D008284CD023 +:1027000094F81A01002857D06E701020287084F8B1 +:102710001A61AF803EE06E7009202870D4F8440141 +:10272000416869608168A9608089A881D4F8440102 +:1027300006702FE00846EEF7C9FB0746EEF775F87E +:10274000B0B96E700E202870D4F8440140686860FB +:10275000D4F8440106703846EEF761F80120BDE870 +:10276000F0810846EEF7B2FB0746EEF75EF810B1CF +:102770000020BDE8F0816E700D202870D4F844016F +:102780004168696000892881D4F8440106703846A0 +:10279000EEF745F80120BDE8F0816E700820287042 +:1027A000D4F8440141688268C0686960AA60E86042 +:1027B000D4F844010670EDE794F81C01B0B16E70D6 +:1027C0001520287094F81C010028E3D084F81C61BF +:1027D000D4F81E016860D4F82201A860B4F826017C +:1027E000A88194F81C010028F0D1D3E794F82801BF +:1027F00070B16E701D20287084F82861D4F82A0109 +:102800006860D4F82E01A860B4F83201A881C1E74D +:1028100094F8340140B16E701E20287084F8346141 +:10282000D4F836016860B5E794F8140180B16E7091 +:102830001B20287094F814010028ABD084F8146190 +:10284000D4F81601686094F814010028F6D1A1E7C5 +:1028500094F83A01002808BFBDE8F0816E70162098 +:10286000287094F83A01002894D000BF84F83A61A7 +:10287000D4F83C016860B4F84001288194F83A012A +:102880000028F3D186E71C4A5061D17070472DE9CA +:10289000F0470446481E85B238BFBDE8F08704F112 +:1028A00008080126DFF850904FF0090A5FF0000792 +:1028B000B4F8D800401CA4F8D800B4F87E00401C3E +:1028C000A4F87E0094F86A0040B994F864200023CC +:1028D000062104F15800FAF778F838B3B4F8760016 +:1028E000401C80B20AE0000098520200CD1E020097 +:1028F0005B210200932102007C010020A4F87600F5 +:10290000B4F8781081422CBF0A1A0022A3885B1DFC +:10291000934228BF84F87C60884207D3A4F876707D +:1029200084F81A6199F80300E9F764FA94F88800CA +:1029300020B1B4F88400401CA4F8840094F88C0002 +:1029400020B1B4F88A00401CA4F88A0094F8F4007E +:1029500040B994F867200023012104F15800FAF7E8 +:1029600034F820B1B4F88200401CA4F8820094F836 +:1029700064000C2802D00D2820D067E0B4F858007D +:10298000411CB4F80201814260D1D4F8FC00411C22 +:10299000404602F095FA02212046F9F7FCFCD4F8F3 +:1029A000FC000078002808BFFFDF0121FE20FEF7B1 +:1029B0005DFE84F8647084F8986047E0B4F85800CD +:1029C000411CD4F8F800808881423FD1D4F84401FA +:1029D0000178002918BFFFDF22D12188C180D4F8F7 +:1029E000F8004189D4F844010181D4F8F8008189C4 +:1029F000D4F844014181D4F8F800C189D4F84401E5 +:102A00008181D4F844010771D4F8440180F800A012 +:102A1000D4F844012188418099F80300E9F7EAF9E4 +:102A200001212046F9F7B7FC03212046FEF7CFFA33 +:102A3000D9F80800D0F8F8000078022818BFFFDFA6 +:102A40000221FE20FEF712FE84F86470B4F85800EC +:102A5000401C691EA4F858008DB2BFF429AFBDE830 +:102A6000F087F94AC2E90601704770B50446B0F82C +:102A70007E0094F86810002908BFC0F1020503D059 +:102A8000B4F88010081A051F94F87C0040B194F83F +:102A900064200023092104F15800F9F796FFA0B142 +:102AA000B4F8766094F86A0058B994F8642000236A +:102AB000062104F15800F9F788FF002808BF2846CE +:102AC00003D0B4F87800801B001F8542C8BF0546BC +:102AD000002DD4BF0020A8B270BD042110B5DA4C7F +:102AE000A068FEF774FAA06890F84E10012902BFA2 +:102AF000022180F84E1010BD00F58A710288A0F8FE +:102B00001E21028EA0F82021828EA0F82221028FA1 +:102B1000B0F844309A4228BF1A460A82828FB0F831 +:102B20004600824238BF1046488201200872E07891 +:102B3000BDE81040E9F75EB9C34830B4806890F84A +:102B40004E30B0F832C0C48EB0F84010428F022B25 +:102B500025D08A4238BF11460186C28FB0F8421094 +:102B60008A4238BF11468186028FB0F844108A42EB +:102B700038BF11464186828FB0F846108A4238BF6E +:102B80001146C186418E614588BF8C46A0F832C08F +:102B9000C18EA14288BF0C46C48630BC7047038EEC +:102BA0009A4228BF1A46C58F838E9D4238BF2B4656 +:102BB0008A4238BF11460186B0F842108B4228BFC6 +:102BC0000B468386002180F84E10CDE770B59E4CF1 +:102BD000A06890F8CB10FE2906BF6178002970BD6F +:102BE00090F86720002301215830F9F7EEFE002805 +:102BF00018BF70BDA06890F8F41021B1BDE8704016 +:102C00000220FEF7DDBC90F86420002319465830FE +:102C1000F9F7DBFE40B1A06890F87C0020B1BDE878 +:102C200070401220FEF7CCBCA068002590F864200C +:102C3000122A1FD004DC032A3FD0112A1FD003E040 +:102C4000182A35D0232A43D0002304215830F9F71D +:102C5000BCFE002818BF70BDD4F808C09CF8650001 +:102C600019286ED03BDC01286ED002287AD00328C8 +:102C70005DD038E0BDE870400B20FEF7A1BCF1F755 +:102C800057F90C2838BF70BDA0680821D0F8F800AB +:102C90001E30F1F751F928B1A0680421C030F1F7D6 +:102CA0004BF900B9FFDFBDE870400320FEF788BC98 +:102CB000BDE870400620FEF783BC90F8CA1080F88B +:102CC000CC100720FEF77CFCA06880F8645070BD33 +:102CD0001820FEF775FCA068A0F8845070BD1E286F +:102CE00048D021286CD0DCF8F800012601780029B2 +:102CF00074D04088BCF8001088426FD100239CF843 +:102D0000642019460CF15800F9F75FFE002865D0E1 +:102D1000A068D0F8F810097802297DD003297CD06A +:102D200004297BD0052908BF082078D0C8E09CF88A +:102D3000C9008CF8CC000720FEF742FCA06800F028 +:102D40007AB97CE000E00DE00C20FEF739FCA068C9 +:102D5000A0F88A5090F8901041F0010180F890108E +:102D600000F069B91320FEF72BFCA068A0F88A5088 +:102D700000F061B99CF80501002818BF70BD9CF8EF +:102D8000040188B1BCF80601ACF84000BCF80801A9 +:102D9000ACF84200BCF80A01ACF84400BCF80C01E5 +:102DA000ACF846008CF80451FFF7C6FEFFF795FE1D +:102DB0001520FEF705FCA068A0F88A5000F03BB98A +:102DC0009CF87D0058B18CF8F2508CF8F350182024 +:102DD000FEF7F6FBA068A0F88A5070BD70E09CF882 +:102DE0000F01002818BF70BD9CF80E01002808BF15 +:102DF00070BDDCE91416DCF81001FAF735F8F2B210 +:102E0000C1B28A4207BFA16881F8F250A26882F875 +:102E1000F210C6F3072103E018E01DE03DE024E0D6 +:102E2000C0F30720814219BFA16881F8F300A068B0 +:102E300080F8F3501820BDE87040FEF7C1BB1120A8 +:102E4000FEF7BEFBA068F6E07C01002090F865006C +:102E5000F9F7A4FDA0BB08E090F8691041B190F823 +:102E60006A00002808BFFFDF0A20FEF7A9FB27E061 +:102E7000F1F75EF80C2823D3A0680821D0F8F800F9 +:102E80001E30F1F759F828B1A0680421C030F1F7DD +:102E900053F800B9FFDF0320E7E790F8900010F047 +:102EA000030F0DD10C20FEF78BFBA168A1F8845015 +:102EB00081F8886091F8900040F0010081F890005E +:102EC000A06890F8CB10FE2918BF70BD90F8642060 +:102ED000002319465830F9F778FD002808BF70BD67 +:102EE000A06890F80011E9B3A1690978D1BB90F806 +:102EF0006500F9F753FDA8BBA068B0F858100A297F +:102F000031D900F108010522E06901F0F7FD002840 +:102F1000A06804BF80F8005170BDD0F8FC000178B3 +:102F200061B1411C0522E06901F0E8FD002818BFED +:102F300070BDA068D0F8FC00007830B9A068E169E5 +:102F4000D0F8FC00401C01F0BBFFA068D0F8FC00EA +:102F50000178491C01700120FEF732FBA06880F85F +:102F6000005170BDFFE7A06890F8041111B190F80E +:102F70000511E1B390F80E11002908BF70BD90F85B +:102F80000F11002918BF70BD90F86500F9F706FD14 +:102F9000002818BF70BDA06890F85400012808BF31 +:102FA000012508D0022808BF022504D0042816BF36 +:102FB00008280325FFDFA06890F85500012808BF06 +:102FC000012608D0022808BF022604D0042816BF14 +:102FD00008280326FFDFA268012D92F810012DD0EA +:102FE000022D2ED0032D08BF04282CD03BE0FFE794 +:102FF000B0F80611A0F84010B0F80811A0F842107F +:10300000B0F80A11A0F84410B0F80C11A0F846105E +:1030100080F8045190F865001D2804D0BDE8704088 +:103020001420FEF7CDBAFFF787FDFFF756FD1520F8 +:10303000FEF7C6FAA06880F8655070BD012812D16D +:1030400001E002280FD192F81101012E06D0022EC4 +:1030500007D0032E08BF04280AD004E0012802D1BB +:1030600006E0022804D0BDE870401620FEF7A8BA9A +:10307000B2F8583092F85410B2F81201F032F9F761 +:1030800059FF20B1A168252081F8640070BDBDE81A +:1030900070400020FEF7B3BA70B5044690F86400A3 +:1030A00000250C2814D00D2818BF70BDB4F85800A6 +:1030B000D4F8F810401C8988884218BF70BDD4F835 +:1030C0004401FF4E0178002918BFFFDF45D122E0FF +:1030D000B4F85800B4F80211401C884218BF70BD03 +:1030E000D4F8FC00411C04F1080001F0E9FE0221C3 +:1030F0002046F9F750F9D4F8FC000078002808BF02 +:10310000FFDF0121FE20FEF7B1FA84F864500120B0 +:1031100084F8980070BD2188C180D4F8F800D4F8F4 +:10312000441140890881D4F8F800D4F8441180890A +:103130004881D4F8F800D4F84411C0898881D4F8C3 +:1031400044010571D4F8441109200870D4F84411E1 +:1031500020884880F078E8F74DFE01212046F9F7F5 +:103160001AF903212046FDF732FFB068D0F8F800C5 +:103170000078022818BFFFDF0221FE20FEF776FA52 +:1031800084F8645070BD70B5CD4CA16891F864208E +:10319000162A11BF132A91F88E20002A62781BBFCD +:1031A00002206070002A70BD81F8C800002581F8F7 +:1031B0008D5081F88850D1F8F800098840888842FD +:1031C00018BFFFDFA068D0F8F8000078032818BF08 +:1031D000FFDF0321FE20FEF749FAA068D0F8441172 +:1031E0000A78002A18BFFFDF19D10288CA80D0F8F8 +:1031F000442190F8C8101171D0F844110D72D0F824 +:1032000044210D211170D0F844210188518000889B +:10321000EDF75CFEEDF7F4FAE078E8F7EBFDA06877 +:1032200080F8645070BD10B5A54C207910F0020FE5 +:1032300008BF10BD6078002818BF10BDE068C078D6 +:10324000192880F06781DFE800F05F4F0D8EF7F7F7 +:10325000A5223FF76F82B0F7F7F7F7F6E2DFF8F451 +:10326000F3F7F200A0680023012190F8672058309E +:10327000F9F7ABFB002818BF10BD0821A06880F843 +:103280006710002180F8881080F88C1010BDA068AD +:103290000023194690F865205830F9F796FB18B1CD +:1032A000A168002081F88C00A0680023194690F8DE +:1032B00064205830F9F789FB002808BF10BD0020B2 +:1032C000A16881F8880010BDA0680023194690F815 +:1032D00064205830F9F779FB002808BFFFDF04208D +:1032E000A16881F8640010BDA0680023194690F819 +:1032F00064205830F9F769FB002808BFFFDF0C2075 +:10330000A16881F8640010BDA0680023194690F8F8 +:1033100064205830F9F759FB002808BFFFDF0D2063 +:10332000A16881F8640010BDA0680023194690F8D8 +:1033300064205830F9F749FB002808BFFFDF01215E +:10334000A06880F88D100F2180F8641010BDA0686F +:1033500090F86400122818BFFFDF0121A06880F8F0 +:103360008E101121F0E7A0680023194690F8642020 +:103370005830F9F72AFB28B9A06890F88E00002889 +:1033800008BFFFDF0121A06880F88D10132180F8AD +:10339000641010BDA06890F86400182818BFFFDF03 +:1033A0001A20A16881F8640010BDA068D0F8F81058 +:1033B00003884A889A4204BF0978042919D190F8F1 +:1033C0006420002319465830F9F7FFFA002808BF97 +:1033D000FFDFA06890F8901011F0020F04BF0121E8 +:1033E00080F8641005D0002180F88810D0F8F8002B +:1033F0000170A0680023194690F865205830F9F74D +:10340000E4FA002808BF10BD0020A1687FE0A06892 +:103410000023194690F864205830F9F7D6FA0028AE +:1034200008BFFFDF0520A16881F8640010BD30E00F +:103430001FE012E001E066E06CE0A068002319469E +:1034400090F864205830F9F7C0FA002808BFFFDF71 +:103450001C20A16881F86400E8E7A06800231946F1 +:1034600090F865205830F9F7B0FA002808BFFFDF60 +:10347000CAE7A0680023194690F864205830F9F78D +:10348000A4FA002808BFFFDF1F20A16881F86400AC +:10349000CCE7A06890F8651021291CD090F8641042 +:1034A000232918BFFFDFC1D190F8F210002907BF10 +:1034B00090F8F3100029242180F8641002E0000045 +:1034C0007C0100207FF4FBAE002180F864100846E8 +:1034D000FEF795F8F3E690F8F210002907BF90F890 +:1034E000F3100029242180F865108DD1002180F887 +:1034F000651080F87D1090F80E0100281CBF002098 +:10350000FEF77DF880E7A168002081F8650081F86A +:103510008C008BE7FFDF89E770B58D4C0829207A96 +:1035200063D2DFE801F0041A5A5A2662625A80B167 +:10353000F1F7FDFA012211461046F1F7C4FCF2F74B +:10354000A2F90020A072F1F794FBBDE87040F1F7FA +:1035500004BEBDE87040EFF7C3BBD4E90001EFF74C +:10356000BCF92060A07A401CC0B2A07228281CD3ED +:1035700070BDA07A0025401EC6B2E0683044F1F765 +:10358000D3FE10B9E1687F208855A07A272828BF8C +:1035900001252846F2F710F9A07A282809D2401C04 +:1035A000C0B2A072282828BF70BDBDE87040F1F7F6 +:1035B00060BB207A00281CBF012000F085F8F1F7DD +:1035C00065FDF1F7C2FD0120E07262480078E8F77E +:1035D00011FCBDE87040EFF783BB002808BF70BD49 +:1035E0000020BDE8704000F06FB8FFDF70BD10B57F +:1035F000574C207A002804BF0C2010BD00202072F8 +:10360000E072607AEFF7BAFF607AF0F704FA607A56 +:10361000EFF73BFC00280CBF1F20002010BD00224C +:1036200070B54B4C06460D46207A68B12272E272A4 +:10363000607AEFF7A3FF607AF0F7EDF9607AEFF7C1 +:1036400024FC002808BFFFDF4248E560067070BD1B +:1036500070B5050007D0A5F5E8503F494C388142C8 +:103660009CBF122070BD3A4CE068002804BF0920BE +:1036700070BD207A00281CBF0C2070BD3748EFF7C2 +:10368000AAFB6072202804BF1F2070BDEFF71CFC4E +:103690002060002D1CBF284420600120656020723E +:1036A000002000F011F8002070BD2949CA7A002AD4 +:1036B00004BF002070471F22027000224270CB68B6 +:1036C0004360CA72012070472DE9F04184B007467B +:1036D000EFF7FAFB1E4D8046414668682C6800EB08 +:1036E000800046002046F0F7FDF8B04206DB68682F +:1036F000811B4046EFF7F1F80446286040F233762C +:1037000021464046F0F7EEF8B04204DA3146404632 +:10371000EFF7E3F8044600208DF8000040F2E76080 +:10372000039004208DF80500002F14BF0120032012 +:103730008DF8040068460294EFF793FD687A6946B5 +:10374000EFF70AFE002808BFFFDF04B0BDE8F081F4 +:10375000AC1200209C010020B5EB3C0019350200A2 +:103760002DE9F0410C4612490D68114A1149083201 +:103770001160A0F12001312901D301200CE0412882 +:1037800010D040CC0C4F94E80E0007EB8000241FB3 +:1037900050F8807C3046B84720600548001D056021 +:1037A000BDE8F0812046DDF71BFDF5E706207047F8 +:1037B0001005024001000001A052020010B552485D +:1037C00000F012FA00B1FFDF4F48401C00F00CFA85 +:1037D000002800D0FFDF10BD2DE9F14F4B4ED6F889 +:1037E00000B00127484800F007FADFF81C8128B92B +:1037F0005FF0000708F1010000F014FA444C0025C6 +:103800004FF0030901206060C4F80051C4F804516E +:10381000009931602060DFF8FCA018E0DAF80000C1 +:10382000C00614D50E2000F064F8EFF3108010F0FD +:10383000010072B600D00120C4F80493D4F800113E +:1038400019B9D4F8041101B920BF00B962B6D4F88F +:10385000000118B9D4F804010028DFD0D4F804011D +:103860000028CFD137B1C6F800B008F1010000F050 +:10387000C3F911E008F1010000F0BEF90028B9D148 +:10388000C4F80893C4F80451C4F800510E2000F0A5 +:1038900030F81D4800F0C6F90020BDE8F88F2DE98A +:1038A000F0438DB00D46064600240DF110090DF1D0 +:1038B000200817E004EB4407102255F8271068464B +:1038C00001F048F905EB870710224846796801F0B6 +:1038D00041F96846FFF780FF10224146B86801F0C1 +:1038E00039F9641CB442E5DB0DB00020BDE8F0837B +:1038F00072E700F01F02012191404009800000F1B1 +:10390000E020C0F8801270479D01002004E50040CF +:1039100000E0004010ED00E0A94900200870704769 +:1039200070B5A84D01232B60A74B1C68002CFCD060 +:10393000002407E00E6806601E68002EFCD0001D03 +:10394000091D641C9442F5D30020286018680028E3 +:10395000FCD070BD70B59A4E04469C4D307802285C +:1039600000D0FFDFAC4200D3FFDF71699848012926 +:1039700003D847F23052944201DD03224271491CC0 +:103980007161291BC16092497078EFF7E5FC00284E +:1039900000D1FFDF70BD70B5894C0D46617888425B +:1039A00000D0FFDF894E082D4BD2DFE805F04A0436 +:1039B0001E2D4A4A4A382078022800D0FFDF032013 +:1039C0002070A078012801D020B108E0A06800F0A4 +:1039D0001BFE04E004F1080007C8FFF7A1FF052063 +:1039E0002070BDE87040EFF77BB9EFF76DFA014644 +:1039F0006068EFF777FFB04202D2616902290BD30A +:103A00000320F0F722FA12E0EFF75EFA0146606851 +:103A1000EFF768FFB042F3D2BDE870409AE7207834 +:103A200002280AD0052806D0FFDF04202070BDE858 +:103A3000704000F0BBB8022000E00320F0F705FA68 +:103A4000F3E7FFDF70BD70B50546EFF73DFA5C4C5C +:103A500060602078012800D0FFDF5D4901200870F8 +:103A60000020087104208D6048715848C860022009 +:103A700020706078EFF770FC002800D1FFDF70BD88 +:103A800010B54F4C207838B90220F0F7F4F918B986 +:103A90000320F0F7F0F908B1112010BD4D48EFF701 +:103AA0009AF96070202804D0012020700020606105 +:103AB00010BD032010BD2DE9F041144600EB840732 +:103AC0000E4605463F1F00F0B2FD4FF080521169CF +:103AD000484306EB8401091FB14201D2012100E0F5 +:103AE00000211CB11269B4EB920F02D90920BDE884 +:103AF000F081394A95420ED3AF420CD3854205D2AC +:103B0000874203D245EA0600800701D01020EEE785 +:103B1000964200D309B10F20E9E7304830490068E8 +:103B2000884205D0224631462846FFF7F9FE10E0CC +:103B3000FFF7A6FF0028DAD1214800218560C0E9FF +:103B4000036481704FF4A97104FB01F01830FFF792 +:103B50007AFF0020CBE770B54FF080550446286906 +:103B60001D49B1FBF0F0844201D20F2070BD00F07E +:103B70005EFDA04201D8102070BD184818490068A9 +:103B8000884204D02869604300F03EFD0CE0FFF756 +:103B900077FF0028F0D1296909486143816001213C +:103BA00081701048FFF74FFF002070BD10B5044C26 +:103BB0006078EFF76AF900B9FFDF0020207010BDD0 +:103BC000A001002004E5014000E40140105C0C006D +:103BD000BC1200209739020000600200B0000020F3 +:103BE000BEBAFECA7C5E0100002101700846704723 +:103BF0000146002008707047EFF3108101F00101C9 +:103C000072B60278012A01D0012200E000220123CD +:103C1000037001B962B60AB1002070474FF400503A +:103C20007047E9E7EFF3108111F0010F72B64FF022 +:103C30000002027000D162B600207047F2E7000077 +:103C40007B490968016000207047794908600020BD +:103C5000704701218A0720B1012804D042F20400F4 +:103C60007047916700E0D1670020704771490120DB +:103C7000086042F20600704708B504236D4A190730 +:103C8000103230B1C1F80433106840F00100106008 +:103C90000BE0106820F001001060C1F8083300202C +:103CA000C1F80801644800680090002008BD011FA9 +:103CB0000B2909D85F4910310A6822F01E0242EA36 +:103CC000400008600020704742F2050070470F284E +:103CD00009D8584910310A6822F4706242EA00207B +:103CE00008600020704742F205007047000100F1B3 +:103CF0008040C0F8041900207047000100F18040A6 +:103D0000C0F8081900207047000100F18040D0F889 +:103D10000009086000207047012801D9072070477A +:103D2000464A52F8200002680A43026000207047A9 +:103D3000012801D907207047404A52F82000026844 +:103D40008A43026000207047012801D9072070478C +:103D50003A4A52F8200000680860002070470200CC +:103D600037494FF0000003D0012A01D007207047E7 +:103D70000A607047020033494FF0000003D0012A67 +:103D800001D0072070470A60704708B54FF40072F1 +:103D9000510510B1C1F8042308E0C1F80823002040 +:103DA000C1F8240124481C3000680090002008BDA0 +:103DB00008B58022D10510B1C1F8042308E0C1F88C +:103DC00008230020C1F81C011B4814300068009033 +:103DD000002008BD08B54FF48072910510B1C1F8FC +:103DE000042308E0C1F808230020C1F8200112488C +:103DF000183000680090002008BD0D49383109686E +:103E00000160002070474FF080410020C1F8080198 +:103E1000C1F82401C1F81C01C1F820014FF0E020D5 +:103E2000802180F800140121C0F8001170470000C3 +:103E300000040040000500400801004064530200F7 +:103E400078050040800500406249634B0A68634979 +:103E50009A42096801D1C1F3100101600020704746 +:103E60005C495D4B0A685D49091D9A4201D1C0F366 +:103E700010000860002070475649574B0A685749A0 +:103E800008319A4201D1C0F3100008600020704749 +:103E900030B5504B504D1C6842F20803AC4202D082 +:103EA000142802D203E0112801D3184630BDC30004 +:103EB0004B481844C0F81015C0F81425002030BD38 +:103EC0004449454B0A6842F209019A4202D0062849 +:103ED00002D203E0042801D308467047404A01217A +:103EE00042F83010002070473A493B4B0A6842F2D2 +:103EF00009019A4202D0062802D203E0042801D325 +:103F000008467047364A012102EBC000416000209C +:103F1000704770B52F4A304E314C156842F2090394 +:103F200004EB8002B54204D0062804D2C2F800187F +:103F300007E0042801D3184670BDC1F31000C2F891 +:103F40000008002070BD70B5224A234E244C15682D +:103F500042F2090304EB8002B54204D0062804D2E1 +:103F6000D2F8000807E0042801D3184670BDD2F843 +:103F70000008C0F310000860002070BD174910B59C +:103F80000831184808601120154A002102EBC003CF +:103F9000C3F81015C3F81415401C1428F6D30020DC +:103FA00006E0042804D302EB8003C3F8001807E0FE +:103FB00002EB8003D3F80048C4F31004C3F80048B0 +:103FC000401C0628EDD310BD04490648083108609E +:103FD00070470000B0000020BEBAFECA00F50140E4 +:103FE00000F001400000FEFF7E4B1B6803B19847C4 +:103FF000BFF34F8F7C4801687C4A01F4E0611143B4 +:104000000160BFF34F8FFEE710B5EFF3108010F0A3 +:10401000010F72B601D0012400E0002400F0D9F8AD +:1040200050B1DDF777F9EEF71CFDEFF7B1FEDEF7E3 +:10403000ECFE6F490020086004B962B6002010BD94 +:1040400070B50C460546EFF3108010F0010F72B604 +:1040500001D0012600E0002600F0BBF818B106B937 +:1040600062B6082070BDDDF7D1F8DDF757F90246DA +:10407000002043099B0003F1E02300F01F01D3F867 +:104080000031CB40D9071BD0202803D222FA00F1FF +:10409000C90722D141B2002906DA01F00F0101F16E +:1040A000E02191F8141D03E001F1E02191F80014E2 +:1040B0004909082911D281B101290ED004290CD057 +:1040C000401C6428D5D3DEF777FE4949494808608B +:1040D0002046F0F775FA60B904E006B962B641F21D +:1040E000010070BD3F4804602DB12846F0F7B5FAD5 +:1040F00018B110242CE0404D19E02878022802D98C +:104100004FF4805424E007240028687801D0F8B9DF +:1041100008E0E8B120281BD8A878212818D8012861 +:1041200016D001E0A87898B9E8780B2810D8334960 +:10413000802081F8140DDDF7F1F82946EFF70EFE27 +:10414000EEF74EFC00F0A6FA2846DDF7B5F8044677 +:1041500006B962B61CB1FFF757FF204670BD0020BC +:1041600070BD10B5044600F034F800B10120207095 +:10417000002010BD224908600020704770B50C4631 +:1041800020490D681F49204E08310E60102807D0C5 +:1041900011280CD012280FD0132811D0012013E0C1 +:1041A000D4E90001FFF74CFF354620600DE0FFF732 +:1041B0002BFF0025206008E02068FFF7D2FF03E016 +:1041C0000F4920680860002020600E48001D05602F +:1041D00070BD074807490068884201D10120704737 +:1041E00000207047B80100200CED00E00400FA0543 +:1041F000B0000020BEBAFECA6C5302000BE000E023 +:1042000004000020100502400100000100B5D8495B +:1042100002282DD021DC10F10C0F08BFF42027D08C +:104220000FDC10F1280F08BFD82021D010F1140F97 +:1042300008BFEC201CD010F1100F08BFF02017D0E1 +:1042400020E010F1080F08BFF82011D010F1040F82 +:104250000CBFFC2000280BD014E0C01E062811D291 +:10426000DFE800F00E0C0A080503082000E0072034 +:10427000086000BD0620FBE70520F9E70420F7E70A +:104280000320F5E7FFDF00BD00B5BA49012808BFEC +:1042900003200CD0022808BF042008D0042808BF3F +:1042A000062004D0082816BFFFDF052000BD0860E7 +:1042B00000BDB149002804BF086820F0010005D006 +:1042C000012806BF086840F0010070470860704789 +:1042D00070B51E460546012924D0022A04BFA7480E +:1042E0004FF47A710DD0012A04BFA5484FF4C8617C +:1042F00007D0042A07BFA34840F69801A24840F619 +:10430000E44144181846F1F781FA04443046F1F7C5 +:10431000ABFA20444FF47A7100F27120B0FBF1F057 +:10432000281A70BD022A08BF4FF47A700AD0012AF9 +:1043300008BF4FF4C86005D0042A0CBF40F69800AF +:1043400040F6E44049F608514418DBE770B51446DE +:104350000546012908BF49F6CA660DD0022B08BFE1 +:104360008A4807D0012B08BF854803D0042B0CBF17 +:104370008448874800F1FA061046F1F760FA012CEC +:1043800008BF4FF47A710AD0022C08BF4FF4FA71BB +:1043900005D0042C0CBF4FF4FA614FF4FA51711A96 +:1043A00008444FF47A7100F28920B0FBF1F0281A2A +:1043B000801E70BD70B514460646012930D0022B10 +:1043C00004BF6E494FF47A700DD0012B04BF6C49C5 +:1043D0004FF4C86007D0042B07BF6A4940F6980025 +:1043E000694940F6E4400D181046F1F728FA012C0F +:1043F00008BF4FF47A710AD0022C08BF4FF4FA714B +:1044000005D0042C0CBF4FF4FA614FF4FA51691A2D +:1044100008444FF47A716438B0FBF1F0301A70BD83 +:10442000022B08BF4FF47A700AD0012B08BF4FF45B +:10443000C86005D0042B0CBF40F6980040F6E4405D +:1044400049F608514518CFE770B5164604460129CC +:1044500008BF49F6CA650DD0022B08BF4B4807D0EC +:10446000012B08BF464803D0042B0CBF45484848E1 +:1044700000F1FA051046F1F7C9F905443046F1F7A5 +:10448000F3F928444FF47A7100F2E140B0FBF1F007 +:10449000201A801E70BD2DE9F04107461E460C46CD +:1044A00015461046082A16BF04284DF68830F1F745 +:1044B000ADF907EB4701C1EBC71100EBC100012CBF +:1044C00008BF4FF47A710AD0022C08BF4FF4FA717A +:1044D00005D0042C0CBF4FF4FA614FF4FA51471881 +:1044E0002046F1F7ACF9381A4FF47A7100F60F60F4 +:1044F000B0FBF1F42846F1F777F920443044401D31 +:10450000BDE8F08170B5054614460E460846F1F741 +:104510007DF905EB4502C2EBC512C0EBC205304682 +:10452000F1F7A2F92D1A2046082C16BF04284DF6E3 +:104530008830F1F76BF928444FF47A7100F6B73000 +:10454000B0FBF1F52046F1F74FF92844401D70BD4E +:104550001049082818BF0428086803BF20F46C50CD +:1045600040F4444040F0004020F0004008607047B4 +:104570000C1500401015004050160040683602002F +:10458000A2240200D0FB010030D301000436020057 +:10459000C0D40100401700402DE9FE430C46804680 +:1045A000F8F7B4FF074698F80160204601A96A466B +:1045B000ECF717F905000DD0012F02D00320BDE85C +:1045C000FE83204602AA0199ECF72DF80298B0F874 +:1045D00003000AE0022F14D1042E12D3B8F803000E +:1045E000BDF80020011D914204D8001D80B2A91918 +:1045F000814202D14FF00000E1E702D24FF001000A +:10460000DDE74FF00200DAE70B4A022111600B49A7 +:104610000B68002BFCD0084B1B1D18600868002895 +:10462000FCD00020106008680028FCD070474FF0D4 +:10463000805040697047000004E5014000E40140FB +:1046400002000B464FF00000014620D0012A04D0A2 +:10465000022A04D0032A0DD103E0012002E0022047 +:1046600015E00320072B05D2DFE803F00406080A53 +:104670000C0E100007207047012108E0022106E01F +:10468000032104E0042102E0052100E00621EEF709 +:10469000BEBB0000F9480521817000210170417006 +:1046A0007047F7490A78012A05D0CA681044C860E3 +:1046B0004038EFF7E4B88A6810448860F8E70028CB +:1046C00019D00378EF49F04A13B1012B0ED011E055 +:1046D0000379012B00D06BB943790BB1012B09D1C0 +:1046E0008368643B8B4205D2C0680EE00379012BDE +:1046F00002D00BB10020704743790BB1012BF9D1E7 +:10470000C368643B8B42F5D280689042F2D80120A6 +:104710007047DB4910B501220A700279A2B100226C +:104720000A71427992B104224A718268D34C5232A2 +:104730008A60C0681434C8606060EEF7C5FBCF497A +:1047400020600220887010BD0322E9E70322EBE716 +:1047500070B5044609B1012000E00320C84D0021D6 +:104760002970217901B100202871607968B1042095 +:10477000C24E6871A168F068EEF7AFF8A860E06813 +:104780005230E8600320B07070BD0320F0E72DE9DF +:10479000F04105460226EEF79EFF006800B1FFDFFC +:1047A000B64C01273DB12878B0B1012805D00228C8 +:1047B00010D0032813D027710CE06868C82807D3ED +:1047C000EFF7C3F820B16868FFF76BFF012603E03D +:1047D000002601E000F05CF93046BDE8F081207869 +:1047E0000028F7D16868FFF76AFF0028E3D06868FF +:1047F000017879B1A078042800D0FFDF0121686832 +:10480000FFF7A6FF9E49E078EEF7A6FD0028E1D16C +:10481000FFDFDFE7FFF77DFF6770DBE72DE9F0479C +:10482000964C8846E178884200D0FFDFDFF84C9252 +:1048300000250127924E09F11409B8F1080F75D22D +:10484000DFE808F0040C28527A808D95A0780328C0 +:1048500002D0022800D0FFDFBDE8F087A07803284F +:1048600002D0022800D0FFDF0420A070257120783C +:10487000002878D1FFF715FF3078012806D0B068FE +:10488000E06000F025F92061002060E0E078EEF7BC +:1048900060FCF5E7A078032802D0022800D0FFDFF3 +:1048A000207800286DD1A078032816D0EEF70CFBF5 +:1048B00001464F46D9F80000EFF714F800280EDB48 +:1048C000796881420BDB081AF0606D49E078EEF7F9 +:1048D00043FD0028C0D1FFDFBEE7042028E004200C +:1048E000EFF7B3FAA570B7E7A078032802D0022843 +:1048F00000D0FFDF207888BBA078032817D0EEF720 +:10490000E3FA01464F46D9F80000EEF7EBFF002826 +:10491000E5DB79688142E2DB081AF0605849E0780B +:10492000EEF71AFD002897D1FFDF95E740E005205C +:10493000EFF78BFAA7708FE7A078042800D0FFDF8D +:10494000022004E0A078042800D0FFDF0120A16845 +:104950008847FFF71CFF054630E004E011E0A0782F +:10496000042800D0FFDFBDE8F04700F091B8A07840 +:10497000042804D0617809B1022800D0FFDF207834 +:1049800018B1BDE8F04700F08CB8207920B10620BE +:10499000EFF75BFA2571CDE7607838B13849E078F8 +:1049A000EEF7DAFC00B9FFDF657055E70720BFE7D7 +:1049B000FFDF51E73DB1012D03D0FFDF022DF9D11B +:1049C0004AE70420C3E70320C1E770B5050004D01F +:1049D0002A4CA078052806D101E0102070BD0820DF +:1049E000EFF749FA08B1112070BD2848EEF7F3F946 +:1049F000E070202803D00020A560A07070BD0320C7 +:104A000070BD1E4810B5017809B1112010BD817824 +:104A1000052906D0012906D029B101210170002005 +:104A200010BD0F2010BD00F03CF8F8E770B5134C36 +:104A30000546A07808B1012809D155B12846FFF7ED +:104A40003EFE40B1287840B1A078012809D00F205F +:104A500070BD102070BD072070BD2846FFF759FEBD +:104A600003E000212846FFF773FE0549E078EEF7E2 +:104A700073FC00B9FFDF002070BD0000BC01002006 +:104A8000CC1200203D860100FF1FA1071D48020037 +:104A90000A4810B5006900F013F8BDE81040EEF7C1 +:104AA0001FB9064810B5C078EEF7EFF900B9FFDF7F +:104AB0000820EFF7CAF9BDE81040EBE5BC01002083 +:104AC0000C490A6848F202139A4302430A6070478D +:104AD000084A116848F2021301EA03009943116081 +:104AE00070470246044B10201344FC2B01D8116080 +:104AF00000207047C80602400018FEBF40EA0103CC +:104B000010B59B070FD1042A0DD310C808C9121F76 +:104B10009C42F8D020BA19BA884201D9012010BDB0 +:104B20004FF0FF3010BD1AB1D30703D0521C07E07D +:104B3000002010BD10F8013B11F8014B1B1B07D1E1 +:104B400010F8013B11F8014B1B1B01D1921EF1D152 +:104B5000184610BD032A40F2308010F0030C00F01C +:104B6000158011F8013BBCF1020F624498BF11F8A7 +:104B700001CB00F8013B38BF11F8013BA2F1040260 +:104B800098BF00F801CB38BF00F8013B11F00303D8 +:104B900000F02580083AC0F0088051F8043B083A3C +:104BA00051F804CBA0E80810F5E7121D5CBF51F8DE +:104BB000043B40F8043BAFF30080D20724BF11F858 +:104BC000013B11F801CB48BF11F8012B24BF00F8BD +:104BD000013B00F801CB48BF00F8012B704710B52E +:104BE000203AC0F00B80B1E81850203AA0E81850E5 +:104BF000B1E81850A0E81850BFF4F5AF5FEA027CA6 +:104C000024BFB1E81850A0E8185044BF18C918C014 +:104C1000BDE810405FEA827C24BF51F8043B40F8B5 +:104C2000043B08BF7047D20728BF31F8023B48BF9A +:104C300011F8012B28BF20F8023B48BF00F8012BD8 +:104C4000704702F0FF0343EA032242EA024200F007 +:104C500002B84FF000020429C0F0128010F0030CDB +:104C600000F01B80CCF1040CBCF1020F18BF00F85F +:104C7000012BA8BF20F8022BA1EB0C0100F00DB80E +:104C80005FEAC17C24BF00F8012B00F8012B48BF6C +:104C900000F8012B70474FF0000200B51346944610 +:104CA0009646203922BFA0E80C50A0E80C50B1F184 +:104CB0002001BFF4F7AF090728BFA0E80C5048BF98 +:104CC0000CC05DF804EB890028BF40F8042B08BF36 +:104CD000704748BF20F8022B11F0804F18BF00F832 +:104CE000012B7047FEDF04207146084219D1069956 +:104CF000124A914215DC069902394878DF2810D112 +:104D00000878FE2807D0FF280BD14FF001004FF0A4 +:104D100000020B4B184741F201000099019A084B21 +:104D20001847084B002B02D01B68DB6818474FF070 +:104D3000FF3071464FF00002014B1847006002003F +:104D4000E93F020004000020184819497047FFF7A6 +:104D5000FBFFDCF733FA00BD4FF4805015490968BA +:104D6000884203D1144A13605B68184700BD0000F5 +:104D700020BFFDE74FF480500E490968884210D1EA +:104D80000E4B18684FF0FF318842F1D080F308884D +:104D90004FF02021884204DD0948026803210A43BC +:104DA00002600848804708488047FFDFE012002083 +:104DB000E01200200000002004000020006002003B +:104DC0001409004099460100594D02000420714623 +:104DD000084202D0EFF3098101E0EFF3088188690E +:104DE00002380078102813DB20280FDB2C280BDB7F +:104DF0000A4A12680A4B9A4203D1602804DB094A26 +:104E00001047022008607047074A1047074A1047BA +:104E1000074A12682C32126810470000B0000020C8 +:104E2000BEBAFECA21130000613702007D410200B4 +:104E3000040000200D4B0E4908470E4B0C49084753 +:104E40000D4B0B4908470D4B094908470C4B0849C6 +:104E500008470C4B064908470B4B054908470B4BC5 +:104E6000034908470A4B02490847000051BB0000AC +:104E70000D2F00006D2C0000092B0000972A000068 +:104E80000F2D00003D1300005328000029BE000034 +:104E9000C91100000021016001717047002101600B +:104EA00081807047002101604160017270470A688B +:104EB0004B6802604360B1F808C0A0F808C07047B2 +:104EC0000A6802600B79037170470000B995000011 +:104ED00043970000A1980000C5980000FF980000CB +:104EE0003399000065990000959900000B9A000025 +:104EF00091960000A7120000A7120000794400005C +:104F0000C5440000E94400007D45000099460000CA +:104F10005B4700008D47000075480000074900000E +:104F20005B490000414A0000614A0000DF150000B3 +:104F30000316000033150000871500003516000029 +:104F4000C91600006360000013620000E7650000FE +:104F5000FD660000876700000568000069680000C2 +:104F60008D6900005D6A0000C96A0000834A000084 +:104F7000894A0000934A000089410000FB4A000072 +:104F80005D410000874C0000BF4C0000294D00002F +:104F90000F4E0000254E0000A7120000A7120000CF +:104FA000A7120000A7120000A7120000A71200001D +:104FB000A7120000A7120000BF2400004525000032 +:104FC000612500007D2500000B270000A7250000BB +:104FD000B1250000F325000015260000F126000091 +:104FE00033270000A7120000A7120000678300000B +:104FF0008783000089830000CD830000FB830000CD +:10500000E9840000778500008B850000D9850000C9 +:10501000C98600006F880000998900007B7300003A +:10502000B1890000A7120000A7120000D1B400004F +:105030003BB600008FB60000FBB60000ABB7000027 +:105040000100000000000000100110013A02000001 +:105050001A020000FB900000E9900000FFFFFFFF34 +:105060000000FFFFCDAC0000293D000065200000DE +:10507000C5730000618E0000000000000000020007 +:10508000000000000002000000000000000100001D +:105090000000000013810000F38000006181000027 +:1050A00041240000032400002324000037A800004E +:1050B00063A800006BAA000059590000818100001C +:1050C00000000000B18100008F24000000000000FB +:1050D00000000000000000004DA9000000000000DA +:1050E000ED59000000000000900A0000900A000046 +:1050F000DB560000DB5600005544000079AB000091 +:1051000047760000771F0000972602004F970100A6 +:10511000195700001957000077440000DBAB00006E +:10512000CB760000E91F0000C5260200639701004E +:1051300070017001400038005C002400480100024A +:1051400000000300656C74620000000000000000B5 +:1051500000000000000000008700000000000000C8 +:105160000000000000000000BE83605ADB0B3760C7 +:1051700038A5F5AA9183886C010000003114010064 +:10518000F9220100000000010206030405000000EE +:105190000700000000000000060000000A000000F8 +:1051A0003200000073000000B4000000C989010053 +:1051B00047150200616F0100D5B10100EBF4010059 +:1051C000D5B10100F77001008DB30100E1EE0100DF +:1051D0008DB30100BF6D010021B3010001F4010096 +:1051E00021B301005D6F0100E9B101009DE70100FD +:1051F000E9B10100ED74010001B601009DF5010067 +:1052000001B601000300000001555555D6BE898E38 +:105210000000C706C70CC71200006B030F06B308D7 +:105220000000B704A708970CF401FA009600640088 +:105230004B0032001E0014000A00050002000100AD +:105240000041000000000000AAAED7AB15412010BD +:105250000C0802170D0101020909010106020918D3 +:10526000180301010909030305000000FE00000006 +:10527000FE000000FE555555252627D6BE898E0016 +:10528000F401FA00960064004B0032001E00140086 +:105290000A00050002000100254100000000000096 +:1052A000493E0200613E0200793E0200913E02004A +:1052B000C13E0200E93E0200133F0200473F0200E8 +:1052C000573B0200B73A0200AD370200E34A020042 +:1052D000E93B0200F93B0200253C0200433F01008C +:1052E0004B3F01005D3F0100533C02006D3C02005A +:1052F000413C02004B3C0200793C0200AF3C020002 +:10530000CF3C0200ED3C0200FB3C0200093D0200E4 +:10531000193D0200313D0200493D02005F3D02009F +:10532000753D0200000000007FB90000D5B9000003 +:10533000EBB9000041460200D93702009F38020055 +:10534000CB490200034A02002D4A0200ED3D010054 +:105350006D4101008B3D0200B13D0200D53D0200D0 +:10536000FB3D02001C05004020050040001002002B +:105370009053020008000020D001000044110000FA +:10538000C8530200D801002008110000A01100003D +:10539000011813C8140250201A0102227C2720FB96 +:1053A000349B5F801280021A10138B091B20480463 +:1053B0001ACE0401200B50A40AAC01300912CB63B1 +:0853C0007F010B68CC10A00076 +:00000001FF