FW: MsgToDecrypt usage (how-to...)
"Simon Blanchet" <[email protected]> Fri, 27 Jul 2001 11:21:40 -0400
| Newsgroups | gmane.ietf.sfl |
|---|---|
| Message-ID | <[email protected]> |
I'm almost 100% sure that the data itself is good. Why? because I had successfully decrypted the same E-Mail using Outlook Express and Outlook 2K. The E-Mail itself was encrypted using SFL (Yes I'm able to Encrypt, Sign and Verify with SFL...). More then that, I did use dumpasn utility from Peter Gutmann to interpret the binary file (CMSEnvelopedData.dat) to make sure that the file is truelly a fully compliant CMS Enveloped Data (pkcs-7-envelopedData). The E-Mail Source itself: EnvelopedData.msg The binary CMS part (base64 decoding of the content of the previous mail): CMSEnvelopedDataBinary.dat The result of the interpretation by dumpasn (ASN decoding): CMSEnvelopedDataInterpreted.txt I'll know that you'll eventually need my PrivateKey [and Certificate] to be able to decrypt it but that's not the problem... The problem occurs before that (in PreProc()). Anyways, if you really need those files tell me I'll send them to you (anyways they are only test files.. . ;-)). The code used is the same that I've sent you this morning. The problem itself is that within PreProc() m_SnaccEnvelopedData.encryptedContentInfo is NULL. So an Exception is thrown (contentEncryptionAlgorithm missing). By the way, sorry I misused a word: it don't [crash] it [throws] an Exception. So the real question is HOW to use the MsgToDecrypt class in order to decrypt a given message. I would likes to have a real description of the steps to fallow because now I think that I'm not using this class correctly because obviously it don't works like I'm expecting it to work... When I catch the Exception and I use the method on the Exception I get this: contentEncryptionAlgorithm missing FUNCTION: CSM_DataToDecrypt::PreProc csmime FILENAME: C:\CVS_HOME\external\SFL\SMIME\libsrc\hilevel\sm_Decrypt.cpp STACK: ERROR INFORMATION: contentEncryptionAlgorithm missing ERROR CODE: 2001 SOURCE LINE NUMBER: 324 FILE: C:\CVS_HOME\external\SFL\SMIME\libsrc\hilevel\sm_Decrypt.cpp FUNCTION: CSM_DataToDecrypt::PreProc csmime CSM_MsgToDecrypt::PreProc csmime IN C:\CVS_HOME\external\SFL\SMIME\libsrc\hilevel\sm_Decrypt.cpp, line 138. ýýýýº ðº ðº 𺫫«««««« Do I have to manipulate any other class (beside CSMIME at login time) before calling PreProc() or Decrypt()? By the way, the CSMIME itself was constructed successfully (I use the same one (same session) to Encrypt and Sign other files). Thanks for your support -----Original Message----- From: Colestock, Robert [mailto:[email protected]] Sent: 26 juillet, 2001 12:52 To: 'Simon Blanchet'; [email protected] Subject: RE: MsgToDecrypt usage (how-to...) Simon: If the data is good, it looks like the logic should work fine. Please send the actual data input to the CSM_MsgToDecrypt constructor, I will investigate. At the very least we should indicate an error, not "crash". Bob Colestock VDA -----Original Message----- From: Simon Blanchet [mailto:[email protected]] Sent: Thursday, July 26, 2001 11:10 AM To: [email protected] Subject: MsgToDecrypt usage (how-to...) Some informations concerning this little code snap-shot: - pBufToDecrypt points to a CSM_Buffer constructed with a file that contain the (binary (base64 decoded)) CMS part of an S/MIME E-Mail (the resulting binary file was first successfully dumped using dumpasn utility and it's a pkcs-7-envelopedData (1 2 840 113549 1 7 3). - m_EngineLogin.GetCSMIME() returns a CSMIME* that was previously initialized with SM_Free3D login using a X.509 Public Certificate, a PKCS#8 Encrypted-PrivateKey and the password (this login works and the corresponding CSM_CSInst has been maked as USE-THIS and APPLICABLE. - The CSMIME* mentionned above was initialised with the E-Mail recipient's Key-Pair (so we have in hand the right private key to decrypt the CMS part). Since we have everything in hand to decrypt the pkcs-7-envelopedData I wanted to know WHY it don't works and what do I have to do in order to make this work. [ BEGIN CODE ] CSM_Buffer* pBufToDecrypt = new CSM_Buffer(const_cast<char*>(sContentFilename.c_str())); CSM_ContentInfoMsg* pContentToDecrypt = new CSM_ContentInfoMsg(pBufToDecrypt); CSM_MsgToDecrypt msgToDecrypt(pContentToDecrypt); msgToDecrypt.PreProc(m_EngineLogin.GetCSMIME()); msgToDecrypt.Decrypt(m_EngineLogin.GetCSMIME()); [ END CODE ] PROBLEM DESCRIPTION: it crash within the CSM_MsgToDecrypt::PreProc() method (I did trace the code to figure out that you are trying to access memory that was not initialized (NULL pointer): if ((m_SnaccEnvelopedData.encryptedContentInfo == NULL) || (m_SnaccEnvelopedData.encryptedContentInfo-> contentEncryptionAlgorithm == NULL)) In fact, m_SnaccEnvelopedData is NULL. But looking at msgToDecrypt class the CSM_CommonData::m_pEncodedBlob part of it contain the right data to process... What do I have to do to "inform" msgToEncrypt that it's data is there. In other words, what do I have to do to transform this m_pEncodedBlob to m_SnaccEnvelopedData????? What kind of preprocessing do I have to do before calling MsgToDecrypt::PreProc()? What's wrong with my logic? Do I miss something? Thanks a lot (a quick (and complete) answer will be truelly welcomed) |========================================= | Simon Blanchet | Software Designer | | Email: [email protected] |=========================================
CMSEnvelopedDataBinary.dat
(application/octet-stream, 5.8 KB) - not displayed
EnvelopedData.msg
(application/octet-stream, 8.1 KB) - not displayed
CMSEnvelopedDataInterpreted.txt
(text/plain, 28.1 KB)
0 30 5891: SEQUENCE {
4 6 9: OBJECT IDENTIFIER
: pkcs-7-envelopedData (1 2 840 113549 1 7 3)
15 A0 5876: [CONTEXT-SPECIFIC 0] {
19 30 5872: SEQUENCE {
23 2 1: INTEGER 0
26 31 376: SET {
30 30 372: SEQUENCE {
34 2 1: INTEGER 0
37 30 220: SEQUENCE {
40 30 214: SEQUENCE {
43 31 11: SET {
45 30 9: SEQUENCE {
47 6 3: OBJECT IDENTIFIER
: X.520-at-countryName (2 5 4 6)
52 13 2: PrintableString 'CA'
: }
: }
56 31 15: SET {
58 30 13: SEQUENCE {
60 6 3: OBJECT IDENTIFIER
: X.520-at-stateOrProvinceName (2 5 4 8)
65 13 6: PrintableString 'Quebec'
: }
: }
73 31 15: SET {
75 30 13: SEQUENCE {
77 6 3: OBJECT IDENTIFIER
: X.520-at-localityName (2 5 4 7)
82 13 6: PrintableString 'Dorval'
: }
: }
90 31 39: SET {
92 30 37: SEQUENCE {
94 6 3: OBJECT IDENTIFIER
: X.520-at-organizationName (2 5 4 10)
99 13 30: PrintableString
: Matrox Electronic Systems Ltd.
: }
: }
131 31 69: SET {
133 30 67: SEQUENCE {
135 6 3: OBJECT IDENTIFIER
: X.520-at-organizationalUnitName (2 5 4 11)
140 13 60: PrintableString
: New Business Media - Internet Technologies Appli
: cation Group
: }
: }
202 31 17: SET {
204 30 15: SEQUENCE {
206 6 3: OBJECT IDENTIFIER
: X.520-at-commonName (2 5 4 3)
211 13 8: PrintableString 'Simon CA'
: }
: }
221 31 34: SET {
223 30 32: SEQUENCE {
225 6 9: OBJECT IDENTIFIER
: pkcs-9-emailAddress (1 2 840 113549 1 9 1)
236 16 19: IA5String '[email protected]'
: }
: }
: }
257 2 1: INTEGER 4
: }
260 30 13: SEQUENCE {
262 6 9: OBJECT IDENTIFIER
: pkcs-1-rsaEncryption (1 2 840 113549 1 1 1)
273 5 0: NULL
: }
275 4 128: OCTET STRING {
: 9D 1B B3 E9 62 EE 83 B6 D2 16 F2 78 61 DB BC 8B
: BB 79 C6 B3 47 11 A6 A7 DA 63 6C 0D E2 5D 0B E9
: 9F 70 0A BC 63 C8 97 A3 D8 00 38 76 EC 45 87 C2
: 18 DC 47 3F CF 31 21 6B AF C1 77 CC E2 2A CC B5
: B3 50 F2 3A 23 6C 6B 0C 59 4A 6E C2 DD A8 59 AC
: 67 1A E2 DD 48 52 A7 AB EE 16 24 DA C1 8B 3C 8E
: BB AC 6A 72 AD F3 B5 07 27 FE FA 05 26 8B C1 CB
: D7 BE C2 E9 35 28 EF C0 F9 8D 19 C4 0D C2 43 0D
: }
: }
: }
406 30 5485: SEQUENCE {
410 6 9: OBJECT IDENTIFIER
: pkcs-7-data (1 2 840 113549 1 7 1)
421 30 20: SEQUENCE {
423 6 8: OBJECT IDENTIFIER
: RSADSI-DES-EDE3-CBC (1 2 840 113549 3 7)
433 4 8: OCTET STRING {
: 48 66 9A E2 10 79 22 57
: }
: }
443 80 5448: [CONTEXT-SPECIFIC 0]
: 15 A7 B0 06 8E 26 18 2F 05 B8 D8 17 70 5F D9 ED
: FA 7A D1 C1 EF F6 79 DA 6D 1D F3 D8 8D F1 63 AA
: A9 B0 F0 E2 F3 8E A1 82 41 4C 47 91 A8 40 B0 9D
: A7 DC C4 E2 CE 6C A1 95 5B EA D0 21 34 D6 06 9E
: 88 00 CF 73 50 41 A5 42 AD 23 9D F1 6D ED 07 6F
: 49 66 03 AB D7 12 DC D9 AD DF A3 DE B7 7C A9 1B
: CA 4E 2E 03 F2 4B A4 5B 60 F0 97 C2 A2 91 F7 95
: 32 BC A0 95 EF F3 45 14 8D B0 52 D7 32 EB 41 F2
: CD EF EE 64 7F AD 52 C2 55 0D A5 79 EB DF 98 5B
: FE 87 D6 3E B8 37 3C 1B 16 72 C0 57 31 85 4B F6
: F8 DE 72 A4 C7 80 41 90 61 D1 6A 86 16 6D 5A 9B
: 5E 47 FC 27 82 B0 74 4E 13 0D 6B 4D 95 CC B1 53
: B9 15 3C 2F D0 D2 CD 23 87 97 27 B7 BB D0 68 C6
: EC D9 35 B3 9D 20 70 42 0E F5 92 39 D5 03 42 EE
: 4F 10 6A 4B 6B CB 4E 17 DD 4D F0 77 2E 34 22 F8
: 27 7C 2D D4 F8 A1 C8 F3 83 10 D0 98 AA 91 A8 A8
: 6E C9 01 90 D6 F3 6C 1E B7 F6 6E F6 E0 D2 08 F7
: 49 69 57 F2 A9 8E B7 13 D8 AF A9 F4 1B EB E4 7F
: 19 6D E5 AC 6B 50 F3 23 89 6A DD 46 A8 C5 CB A5
: 61 6E 82 AF BD B0 94 5E 59 13 01 09 E3 D0 2F AC
: 1A 92 FE 2D B0 27 99 2F C5 82 32 F7 BA E9 12 14
: 3E 50 4D C3 36 06 39 AB FC 08 A5 75 D9 09 6B 5D
: F0 19 7D C9 EB E0 8A A0 E0 A2 A5 72 1E 4D B8 41
: 12 A4 10 97 63 16 0A 7C 9C 22 7C 75 53 C9 A6 5C
: 34 0D 25 AD 4C 9D 20 75 99 41 AA 8F 7C 69 39 78
: CD 2E 7B BA 31 1A CC 6B 97 8F 5D 9B 2C D3 A2 2B
: 8B 8B 06 44 6E D5 4C FF 92 80 C3 EB 75 57 4C FB
: 43 15 E0 25 0D 26 D6 E8 30 F3 8D CA 63 B5 B9 0E
: 1D A1 BE 94 39 1D C8 46 C4 9A 14 E9 9F 99 D6 F6
: 4C 89 57 F6 18 7E C1 10 F5 6C C1 07 64 5C C6 20
: 91 CB 2F 95 61 8F F0 EC C8 1F 1B A1 4D E6 91 4A
: 0E EE DF B4 B5 9E 1C E4 68 8B 66 C1 3D CE D7 18
: C0 20 6D 1C AD 4F 38 8F 56 85 A1 0D 1C AB 50 1C
: 19 74 D6 3C B5 D5 F7 99 B5 25 F3 40 E4 54 6F 73
: FD 89 36 E3 70 64 87 03 84 93 A2 E2 2D 81 63 EF
: BC 9F 34 A1 47 6D 08 DB 36 5A 9F 62 BC B5 38 B8
: 5D 8C 85 DE BE 52 A6 BC 03 33 AC 50 B8 0E 1C 2C
: 14 C3 E6 58 88 AC 9A 12 91 32 6B 60 14 82 6A D4
: E5 90 C9 4F 4E 9A 5C EB 6E 9A 14 07 78 DD D5 50
: E6 E1 59 92 38 D2 51 50 20 8A 36 F1 1A D0 1B DA
: 11 15 53 42 98 B4 16 4E A4 4D 03 29 AD DD 25 19
: 90 FA 27 41 C9 8F FA 77 CC 93 5C BD A7 0E A5 B4
: 84 9C 42 41 47 2C C4 9C 3F 8E 1F 4A 8E 07 32 2C
: 5E B8 A9 ED 30 23 F4 E8 B6 65 1D 9D 60 CD BC 05
: 00 0C 08 99 D8 1A CE CF E6 0D D6 BC B7 C7 94 2F
: 7E 00 6B D4 E0 BB 15 56 E0 0C 08 AD 58 B9 C7 B2
: 46 89 54 8A 71 07 67 A6 09 F2 75 C8 06 6A 22 DB
: 23 A8 FC 08 81 F2 12 F8 E6 12 3B 7D 8A A8 89 6A
: CE FA 64 47 69 EC CD 1C AF 12 59 78 61 8E BC C0
: 38 45 C9 92 AA 40 BE 1C 15 AD B6 7B 3C 2F AC 4F
: 15 C8 41 21 0C 85 D8 54 11 F2 69 30 79 06 78 BC
: 47 F0 40 F6 2B D2 D1 DE 98 D7 5C 85 CD 35 64 91
: A7 03 85 6F BE 05 60 5C 7B 0E 6D 84 00 FD 67 51
: 5A C7 39 DF 15 85 4F 7D D6 EF 1D BD 7C 0E 71 ED
: 3C A5 27 C9 2A FD F8 68 1F E5 9D EB 21 6B A0 0E
: F2 78 63 CA 17 4A 81 F2 31 CF 54 55 74 8D F1 8D
: 76 33 3C A6 33 98 79 67 AE 84 C2 C0 E0 CB 36 47
: C8 BA 5E 91 D9 24 50 F6 19 4D DD EF 0C 16 66 D0
: A2 1B C5 ED 31 9D E4 BF 63 CC 04 28 5A D8 14 19
: 1B E2 5C E0 B6 D5 C7 DD 10 14 2A B5 57 52 45 D3
: C0 A3 44 9A 94 AC 99 46 0B 0B 35 BB C9 3A 5D C3
: 45 A3 7E 56 06 69 E3 49 F3 B3 D0 FF 02 26 28 DD
: CC 93 F3 A6 74 58 57 15 80 1B 85 AE B5 6D 90 8F
: E5 2B 2C 38 1F CD 51 9C BB BC 25 CB F3 00 D5 FC
: 63 63 B6 14 B7 2D 69 F7 EF 0C ED DD 1D 12 53 6D
: DD E2 84 64 B7 1D B4 05 EC 63 F4 A6 AA 32 CD CB
: B1 AD 88 E9 40 45 78 6B 4A 11 8B 7C 51 7C 03 58
: 89 80 FA 1B F7 CF FB E4 EF 7B E1 DA 92 0D 8B 25
: F7 35 D6 28 F7 D4 63 EC EE 13 E0 7B 35 17 67 0F
: 75 19 8F 85 1E 1E 6A 2C 9D 9A 5E E8 75 D2 53 EF
: 03 68 8D 97 0A 7F 15 64 FC 16 EB EE A0 06 10 65
: A8 00 33 19 C7 B0 83 FF 4F 2B 61 BF D2 67 F3 2B
: D1 DA 47 BE 0A EA AB F2 42 62 B0 E3 21 4F F3 8C
: 26 BA A1 C9 C9 08 9B 42 D5 E8 46 0F 00 01 8C FD
: B5 8E 91 B7 0B 7D DA 66 07 A7 91 80 CE D9 A6 15
: 95 11 5E C8 72 1A 41 05 AA 6D A5 30 79 CA B7 33
: 19 3A 97 B1 55 DF 12 F3 7C F7 ED 5F 62 C7 B7 36
: ED 48 F5 A2 81 BD F7 A2 2F 7D 13 6D 66 37 E4 B6
: 12 6F 3D C5 E0 5A 4D 26 04 79 FF B5 FB EE 09 E2
: 09 BC FD 30 48 C3 D4 93 5F 22 05 8B DF D5 94 4D
: D1 CF 47 21 C2 86 E3 87 AA 56 9C C5 91 E8 43 CB
: 38 87 26 1F 26 02 3C F4 64 A6 E5 B7 FA 04 BF 07
: AD CF 78 6E 6D 7F 6C 92 77 56 AD 3C 8D 4B EE 2A
: 00 43 87 8D 08 7B 7B 61 42 D8 BB C1 40 8F 47 54
: 44 CE E2 A2 F7 7B D8 08 DA 59 1F 58 E4 08 09 09
: 54 9F E2 57 22 7D C4 DF EA 9D 85 EB AF 31 BF DD
: 6C 7E 8B FC C7 BE 2F 26 7A 48 0F 85 93 11 46 28
: 17 20 1B 32 93 82 46 49 28 6C 88 38 EF 1E 1F 10
: 52 CA F5 E2 11 78 00 60 3A 1E E2 27 6B E4 CF 1F
: 75 C7 E6 6D 73 E2 36 A5 D0 C3 02 16 1E A9 DE A4
: 03 6E FC 09 78 93 A4 6A 0C C8 DA 75 CB AB F1 EB
: 40 D8 38 89 BA 37 47 36 25 77 FB 1C 79 10 42 A0
: CB B9 53 7C 73 60 C0 1F 12 1E 89 DA 71 12 39 1E
: B3 51 DB D9 DB FF 80 81 37 1F 82 4C B2 E5 08 82
: 57 87 AE AB 6B 59 A5 78 D1 18 9D 40 E2 7F A7 31
: 81 D7 46 01 3C 29 93 9D F6 F6 F5 36 BD 53 CD B1
: 61 D2 6B B4 03 F9 64 26 FF 45 71 B5 FC 67 64 29
: DF 04 99 CA 6D C7 1D 7D 2A 6D 65 E7 58 51 1A 88
: AE C2 61 C8 0A 79 25 AC B1 71 F3 11 7D 71 35 7C
: B7 C4 7C 05 61 F7 9E 3E 28 F7 61 F0 C3 90 45 07
: AA 65 5B A0 6F CC 99 85 11 82 B0 D1 01 CE 75 01
: 96 D9 5F C4 3E C4 D2 FD B7 4E DE CC 57 35 CA 97
: FA 88 52 07 B5 A2 FD 62 73 73 AE F8 57 96 20 BA
: AA B9 C1 E2 7A DB 92 B0 A3 B4 46 A1 3B 03 11 C9
: F7 C7 BF F0 E9 67 13 F2 F9 CC DE 5E D7 E6 A5 FF
: C3 05 9C 35 AB 68 13 61 28 DD DB A8 9A E5 3B 80
: 76 28 E3 16 EE 24 BA 2C 4A B8 28 03 17 4D 11 C2
: BF A3 63 A7 95 3B FA A0 2B A7 5F 45 F6 42 8E 47
: 14 52 C2 4B 23 C8 68 75 23 F2 C1 F7 D1 C2 E8 70
: 8C 39 40 72 F5 53 57 20 A2 B6 5D BD F6 7B DC F2
: D0 8A 99 7F AF 23 F4 2C C7 C2 4B 36 A8 27 B0 D3
: 72 7D 5C 03 7F 2E 1D A4 12 4E D4 DE 32 7A B5 D1
: 7A AB 22 1B A4 54 31 32 78 DC F5 AD A3 9E BA 3A
: 25 11 4E 44 82 4B 0D D4 8B 53 C4 97 54 99 78 8A
: BC 43 71 EE D3 99 85 27 04 A4 22 77 08 B5 5E AA
: E5 7C 13 95 33 2D 27 73 00 58 7B 8C 98 BD D0 47
: 66 40 7F B6 89 92 E1 F8 6E 34 17 7F 40 0B C5 7B
: F2 85 73 19 EE 47 75 5D AB B3 1D EE 4C 36 90 7F
: 91 A7 1F A1 E1 57 2E 03 61 5B 1A BC EE D9 D6 33
: 1A 36 79 4A CC 28 F0 B0 9D 74 67 0D C4 53 F6 23
: EF 02 A1 30 62 D1 DF 9A 51 4B 52 E8 99 01 2A 7B
: 73 FE A9 71 36 3B 27 1A 99 1D BA 33 52 43 66 92
: A6 CD 29 DD 66 8E 3F 05 4D 73 A7 35 39 E9 3A 82
: 87 BE 4E 63 0E C9 88 25 24 48 44 7C 70 A3 7F 02
: 54 52 F9 6E C6 75 03 3C 95 74 FE E6 62 27 B2 B7
: 2C 95 D3 9A 2E 6B F6 90 14 F1 04 81 36 8D 34 C2
: F1 D7 C2 92 07 A5 29 2C FA 98 85 5B D2 F9 C2 A5
: 19 D1 D4 FC E6 01 54 B2 66 58 A8 0F EE 9A 90 14
: B2 6F 67 95 CA 01 02 34 85 CF C4 1A 9A AC 48 17
: 7F FB 8E BA 84 7C 09 F6 CB 8D 2F 5E 4D FB F8 9C
: 0F 30 2C F8 1F 20 76 01 98 58 03 16 9F E4 D4 60
: 22 45 C3 F6 91 9B E0 3C 61 78 9A 1D EC 55 2B 10
: D6 5A E8 EC 38 DD 4A 95 64 FF AA 6A CA 30 D1 85
: ED 0F 34 E9 EA 9B 45 67 5B 10 70 EA B0 3C E5 B9
: EE C4 6E 26 9A 8B EC C2 B0 06 84 48 5A 92 97 B1
: 92 3E E8 A8 36 39 AF 24 13 7D F2 4A 99 0B 84 3C
: 01 FF 4B D6 D1 D6 C0 4A 8B 5D E2 DB 4C B1 4F 33
: 6E 86 0B 83 A3 59 D1 5A B3 CF 80 94 60 16 6D 76
: 3F A0 F7 8E 66 50 D4 75 8F 37 B8 19 8F 23 05 A6
: A3 2C A3 D2 0C D9 06 C2 98 01 C5 7B 1F 7E A3 B3
: 6C B6 6D BA FE E9 24 B6 F5 1D F7 30 E9 F1 13 D7
: F3 B5 B6 EE 3F 98 E7 F7 5E 37 4A 9E B8 56 E7 CA
: 25 24 E6 B1 88 5D DD E0 08 95 FC E5 E1 E1 D8 F9
: 25 29 CA 90 0A 48 67 C5 46 78 75 01 91 FC 25 99
: CA 0C C6 28 63 B8 0F DE A8 A6 22 39 38 CB 07 B9
: 16 44 C9 6C 58 D9 8E F9 39 EC A4 3C 0D 71 FD 06
: B4 E5 E3 3E 74 A3 B3 66 9E 62 9B D2 68 D5 1A AC
: B5 7B 8A B1 63 91 1D 4C 2F 6B 4F 43 00 89 E7 7B
: 80 FD 01 97 76 08 E5 2B EF 7D 40 D2 DD A2 CC 20
: A9 40 87 37 90 FA B4 33 6B 40 6E 47 A3 BF 82 BE
: AC 8F C9 FF 00 B5 91 1C 7B 5B 07 92 AC 6C FD 12
: D4 A9 CD 32 31 5F 2E 4E 63 C5 E5 53 6B A8 E4 AB
: FA 12 7A 31 07 9A 49 7A 21 0F 8A 23 0E A6 44 B2
: 73 B5 C7 E1 D3 0D 0B 38 15 77 51 D7 6B BA D4 0A
: 39 9C D1 39 68 F1 6A 27 71 F1 BF D4 92 AB D3 A2
: 79 B6 15 C9 B6 6A 31 76 3F 16 19 D4 E4 53 13 17
: 4B 3A 9C 51 F2 65 93 BF 50 9A 20 D4 61 36 F0 EB
: FE 02 40 84 64 80 43 64 DC 5A 7F 55 57 95 49 C8
: 43 59 DE C1 79 AC 7D 3F 87 B4 8C 46 E3 1A 5A CF
: 50 74 80 5E 9D 27 4B 0C CA BD DC F9 1E C0 0C 20
: E4 D0 C3 70 AC 7A 0B B7 D1 31 34 26 A4 3B D6 5C
: 56 29 42 FE 43 EC 0B A8 62 89 26 94 AC C4 80 E4
: 76 3E 87 86 D5 5D 8D 55 6A 5C 7F 6D 4E B9 3A 55
: 6A 3C E7 10 D0 30 38 23 BB 1D 23 4C B5 CE 78 27
: DD C9 28 FB 93 EF 14 02 8A 3F 88 FD 71 B6 68 69
: 58 C1 F3 38 A1 08 8B EC BE 73 51 3A 28 70 1D 1F
: F4 04 CE D5 BC 19 60 E7 85 BA 34 33 3E F1 EB 62
: 81 BA 01 E7 38 34 37 3C EA 2F 63 0F 86 D0 C6 72
: 15 F9 13 6F 9C 75 B1 4D 5F 52 48 4F 7E E0 F8 A2
: 62 FF 76 A0 F9 DA C4 7A 3C D4 31 DD D5 33 E8 A2
: 03 A1 56 8B F0 FD AF 74 DB 07 F4 C0 19 CC C3 DE
: 47 EB DD 36 0A 04 7D FE 46 A1 E3 1C EE 31 41 53
: 89 65 E1 15 DD 9F 57 73 C1 97 09 CE F6 EE 9D 95
: 26 89 88 59 41 7C 45 68 D4 16 8F D1 A0 77 EB EA
: BB 37 1A F7 E8 D2 D7 64 2D 03 F0 9B 1E FB DA A2
: 17 B6 4A AE CD FB 68 51 33 71 9E DE C6 A4 E0 4D
: 02 17 C9 89 85 E0 3F 27 7A E4 5A 43 B8 04 97 C2
: 08 9D D8 D9 68 15 37 2C DB 6E B8 89 D1 84 FD 5F
: FB 42 D3 38 68 82 F6 2F C4 B5 C8 A4 9B 6B D1 EB
: C5 2B 80 7D DD A7 87 E4 0A 84 A1 B2 67 4A 70 4A
: 01 B9 9D B1 63 90 3A F4 DA D6 D9 93 B5 D2 17 98
: C4 2C 05 12 C9 0A A0 50 BE 14 11 68 78 82 58 CD
: B4 B8 5E D9 08 89 17 CA FF 0C 89 2D 44 DE BB 81
: 17 90 E3 82 FD DC DB DC 9A 33 1F 6A C6 CF 26 F1
: 91 C7 D2 62 AC D7 69 F4 F0 C1 C5 CE 3C E7 88 25
: C3 24 E7 6F 05 20 6A 8F 7B 97 3E 1C E9 AD 65 D2
: 62 A6 9A 76 80 22 FD AA 55 29 B5 5A B5 4E E5 8E
: 62 D7 40 5F 31 35 06 7D 01 66 61 42 93 97 B2 71
: BD E8 18 63 77 15 B4 89 3D AC 94 F4 78 28 A3 4F
: 2A 71 BD D0 FC E1 3D FB E5 DE 1D A0 66 EF 76 22
: AD C4 2C 54 FB 57 67 12 CE F7 3C DA 84 4B 20 53
: 84 39 EA E1 9D 32 5D C8 A3 65 87 30 1B 65 D3 40
: C7 47 12 C6 E5 10 35 60 B3 13 9A 14 8F 3D 66 03
: A4 D3 10 AC F9 13 D7 DA E9 34 1D 1F 7E AD 80 5D
: 43 B9 B6 8F 64 14 B1 44 B6 7A 20 8A A3 B2 56 E9
: F4 FB 99 B5 46 69 C1 94 C7 87 88 0B 24 8A 41 2B
: 3D B1 75 71 CC 42 A6 48 CE CD 3C 2A C6 BF 9E 1C
: CE F7 0A 43 F6 70 A7 02 09 CC F0 09 42 C8 41 C1
: BE F5 18 6B EF 59 B0 9E 36 21 88 88 E1 EE 5F 9C
: 20 6C 24 B3 B0 88 96 31 47 FD CC C5 45 20 AC EC
: A0 B5 73 A8 C3 89 D5 34 31 50 2C F8 1D 71 02 05
: 74 AB 52 5D 2F 18 40 A5 4E D5 D9 6B 18 4B C3 AF
: F5 FB 84 93 34 B2 C9 8D DD 0C B0 DD D9 1C 80 9A
: 88 B6 F2 F3 65 50 39 94 41 EB 77 BC 15 34 42 C7
: EC 35 66 9B BD 09 17 BE 4B 45 FE C9 05 2E 2A B8
: 3B 30 7D 73 1A F8 72 CF AF 7F FA 28 1D 4F 55 3A
: 3A 73 0E 12 1C 57 AB 1D 8B DD 8B 48 80 26 B8 C7
: C5 9E 40 F4 53 6D 61 5B 81 3C 9D 07 99 22 15 05
: 9C 19 23 6A 17 26 63 60 2F A4 77 D1 FA F5 B4 1A
: CB BF EF 37 1A DD 50 CD CA 09 6C 37 78 91 E6 00
: 54 E7 22 58 91 D3 98 1F 20 51 1F FD E2 1A A7 6D
: 66 16 25 AE 13 6F CB CC 3E A6 B7 B6 51 38 04 99
: 22 1A A7 FD B7 BC DA A8 B5 86 72 39 30 44 BE 9C
: E8 41 6D FF B6 61 A0 7D EE 8D 0F 92 69 70 E1 F9
: A1 1B 46 ED 7B 66 D2 8F 83 DA 8E D8 E5 60 A2 00
: F9 D4 2A 5C A9 92 3B 41 53 B8 07 26 B4 E6 0C 6E
: 64 37 4F A9 A6 86 77 23 AB 74 D7 6E AF 52 94 AD
: 0B 3F 6C 31 CD FB 78 48 D9 BC 32 78 48 B0 BE EC
: 08 BB 6C B2 F8 E6 C3 5A 9B 6C 00 11 00 20 7B 67
: B1 9C 95 86 E8 71 14 21 50 9F 08 A3 B0 63 B0 35
: 43 2D 6E 53 34 10 21 CD 35 C5 FF 42 B9 33 F1 0C
: 9B E9 94 D6 1D 13 AD 54 7E 17 5B 6B FD 04 51 C0
: 00 F0 DD B5 39 74 E6 19 D9 7B FE F9 6E C4 86 44
: 8E 2E BF A6 5E CE 79 A2 5B 62 91 93 68 7A 8F F3
: C9 9D 72 46 AD CF 69 3C 57 C2 51 59 D2 42 5F AB
: 49 A0 47 47 4C 04 02 9E 2D E2 BA D2 24 B6 00 C8
: A9 90 1F 04 22 09 22 7C 52 18 2A E7 F3 2D 11 C2
: 60 F4 E7 62 47 B0 8B 10 B9 83 DC C6 6D D4 CB DC
: CF 15 E4 AC A5 98 CF 71 DC 0B A6 AE 9C 9A D2 19
: 06 AF 61 7E 08 57 30 B2 8F 84 68 C6 10 38 FC EB
: 4A 91 92 EA 19 D1 26 6D 90 24 62 4A 79 4F 7E 95
: F9 BC C2 A6 92 EB A0 7F C2 AC B2 78 20 55 95 11
: 4B 61 D0 63 95 FC 29 BB B5 FE 32 56 AE F9 99 2A
: 22 92 DF D1 EC 72 E6 CC 57 12 B0 A1 53 D3 71 1F
: 6B 80 57 E0 B2 93 E6 B5 D7 A2 EA 29 59 38 26 CB
: 3F 3E 74 3F 5F 7B 82 98 7C 51 7B 33 FC 33 AA 90
: A2 1E 1E 16 CA 21 3F 46 96 68 77 F7 36 C8 CD 5A
: AB 5F 23 94 CA BD 2D 23 A0 98 FF 1A 86 73 D7 4D
: 03 8F 15 AC EE 08 7A 10 E2 B7 67 91 15 C7 D0 FB
: 07 DF 73 3E 00 E6 CE DF 33 E0 CD E6 9A EC 0B 4C
: 4E 18 BF 45 50 E3 37 90 AF F5 96 A7 6A FA 54 C1
: 1D A1 FF 15 18 C9 AA D0 1A 09 BD 46 B6 FE 36 B3
: 60 AB 54 50 E2 B7 00 BF 65 C8 3D ED D4 7A EC 28
: BC E5 AC C3 D4 F7 2B 3B 09 78 74 0F 13 CE 35 12
: CF 47 82 47 22 23 4E D7 DD 79 97 B7 67 58 B1 7D
: CB 9F 43 35 8A C4 AF B6 71 97 15 5A EC 93 3F 3E
: 38 B6 6D 19 79 91 BE 4A 3E 2B D9 A2 37 22 58 DD
: 92 69 49 86 08 18 11 D3 BC FB 6C A8 7A 0A 5A 8D
: 71 73 76 EB 9A 06 1E 33 D2 F1 EF 46 20 6A F9 BC
: 9C 91 16 09 3E 69 D0 D8 58 8E EB 79 86 3C 04 B7
: 50 45 9B 4E 8F 15 6B E3 1A B6 38 4B C9 40 D3 61
: 93 DB DA A3 34 02 8D 59 32 7D F1 59 2B 67 17 E4
: D9 6F 35 34 C4 C2 96 C2 E5 D2 07 63 AB 5D 9A 22
: 71 AA DE CE D9 2A 0B 42 8B 37 F8 7C 0C E8 DB DB
: 05 83 BC 97 15 1C 3C 89 A7 74 22 BB 73 F7 4E 28
: 91 BD 40 D6 91 0B 84 4A 04 BF 0E AA 9D 3E 29 C0
: 3B B1 BD DA 57 A8 52 8C 77 5A 94 C3 00 81 DE 18
: 00 C6 C4 52 45 BC 8C 31 07 FA 89 17 C4 88 B7 BF
: 47 8B CB B5 0A 1E 19 D8 8E 0D DB 97 67 75 2F 3E
: 9B 71 63 0F B4 58 D4 E9 36 44 6E F5 72 7E 2C 40
: 56 5B F3 99 BD D8 66 10 B6 B7 9F 1D 94 A1 A8 15
: E7 E5 CB 35 C8 48 DC 0A 86 E0 7B 9B 9F C5 1F 23
: 2E D2 D0 8D 7F F9 F0 AB 0D 6F C3 FD EE 48 00 C6
: 04 80 53 A8 91 B6 8E 54 BE 1D 88 8D A9 BA 77 BC
: F7 1E 8C 16 4B 16 72 68 95 89 81 64 59 FD FD CE
: 9E 05 78 FB 34 C5 07 31 CC 9C A8 EF 12 11 16 A3
: 52 62 31 14 E2 D7 E3 BE EB 94 40 43 D7 AE 89 2C
: DC 96 95 97 1D 42 8B C5 29 56 58 E5 3E FA 7A E2
: 6A B2 43 BD FB 53 87 D2 2E 67 81 4F 8D CA 51 CE
: 02 DB 4B 33 EF 52 6A BF 47 20 97 B8 45 9A 5B B7
: C6 4D 94 40 A6 EA 9F 08 A2 F4 3A 52 07 4C 22 C6
: 38 36 74 9E FB 91 AD 0E A0 01 1D AE C5 E6 D8 69
: 58 85 07 D5 19 0E 7F B5 26 4F 2F 67 FB 3D 11 E5
: 27 24 AF D6 78 23 F3 7C 09 E2 6A 43 FA 2B E0 43
: D0 1F D1 6C 3C A3 57 FE 0C 02 5A 9D ED 1B 73 BF
: 15 63 4E B4 B7 D1 7A 74 66 43 E4 95 0C 68 3C D8
: BB 2A 36 2F D2 1A 59 1E A5 39 23 A2 71 05 80 D8
: AD 35 07 BB 0C 21 FB DC 87 75 CD D3 4E 20 F3 04
: 22 51 9B A9 43 96 0C 8E 52 04 FD 50 45 95 F1 75
: 9B 77 61 69 28 3F 10 31 00 C1 25 97 64 37 1B B9
: FD 05 16 E2 FB 46 CA D4 8D 3F 9E A3 BC 42 6E 91
: 8B CB 7C 5F FD 34 62 04 19 0C DD 5B C1 5E 3D FE
: 1E F2 94 1F 97 5A F5 94 20 AF 8E EF 83 A2 1C 83
: FF F7 86 34 53 DA 67 A3 21 06 C9 2C 8E 66 21 CB
: 20 C4 78 9F 86 A6 AA 0B AA 1F 06 9D 46 04 19 1B
: 58 08 85 BC E3 6E F4 D8 38 72 D2 FC 38 5E 42 FE
: 6D 88 EF 02 B5 CA D2 16 24 D6 84 F9 07 C8 79 FC
: 70 F9 A2 E2 C3 AD 5E 25 99 57 EE E2 1D 51 4A 63
: 17 39 CC 1A 05 53 D6 A6 49 02 7A C8 42 1A 71 3B
: 5A 2B 29 B4 14 CF 58 8E F8 24 CC 55 18 86 FA 6A
: 8D 4B 72 09 7D 1F D8 F2 3A C5 66 51 6E 0A 46 98
: 47 0A 7F B2 D1 CE 5B 74 02 A1 E1 77 41 3D E8 03
: 5A C9 23 9A C7 C1 1D CE 22 72 70 E0 7C 7E FA 01
: E7 F1 91 95 EF 02 F0 A8 29 96 F7 81 58 4F 9C B6
: 9A 82 B9 78 14 F2 0A 3E 7A ED 5E CF 05 52 2A 1A
: A9 E7 43 B0 5E 80 97 BA 0C 82 D2 84 0F 46 6B C2
: 0E 4E E7 11 79 20 88 0F 29 20 2E 92 1C CD 6E 2E
: C1 85 C3 3D 5A 28 C1 9F CC 13 E8 2D 84 4A 16 2F
: C6 44 1A CC 1F 14 71 2B DF 0D 75 48 00 7C 74 BC
: 52 EE 49 D8 F8 FE 9A 02 6F 6F DF 4F D4 E2 FF 0D
: 98 79 F4 7B BC 4F 7F B0 10 F1 43 6C 86 A3 95 B7
: DF CA 5F 5F FA 66 C4 7F 4D 73 28 4F 36 4F 05 0B
: 22 45 A4 CA F3 83 CD 90 0A C6 00 97 1C A8 03 3E
: 9D E7 08 14 61 7B C2 F9 7B 0A 56 93 B5 EC 1B D5
: E3 4A 27 A4 33 91 38 C7 15 43 D1 DB 7E 31 0C 13
: 15 11 CD 38 1E 15 BE 61 E1 7D E6 64 21 8F 3D E7
: 1F DF 02 B1 F2 45 19 E3 7A 3E 18 53 DA E0 F1 54
: 23 2B DF 7E 46 7A 78 AF 7B 8A E7 A2 D1 D1 7F A8
: E3 EC 23 BA 2C BF 7E 36 11 F8 09 F7 54 C2 AB C4
: F6 EA BC 28 7B FA A1 B9 4E 08 23 7F C7 88 A5 55
: CF F1 36 03 45 07 E8 25 B0 03 E5 FA C1 82 75 BE
: 79 CE E5 32 76 F4 D2 1A 5D 92 67 0B B1 CA 81 3A
: 64 6D 5E 3D 4E B3 23 7A 50 1E 15 40 C1 23 48 14
: 74 44 CF D0 20 6D CB CF 8B F2 AE 5B 8E D1 6D 22
: 94 48 F1 8B B3 B3 04 D7 55 53 1A 60 96 9B D3 82
: 72 E5 FF EF 2E 1A 5D 18 81 A4 43 9E 6E 0F 85 29
: 6F 40 A9 21 52 4E F4 24 10 F4 F1 41 D1 7F 3C 56
: A4 72 BE CD 11 4C EA D0 DF 0C 01 36 CD 2A 1B 2B
: 77 51 EE E1 13 05 5A 40 F8 34 FB FA C2 35 68 B6
: 2B 39 B1 17 1B D8 24 5E A2 08 FD 74 CD AC 2F 21
: 25 C6 FA D4 7B 23 69 11 8D B7 DE 26 69 89 B7 FA
: 23 7C 7C 81 D2 3E 49 9C AC 49 2B 58 7C 5B 97 22
: D4 E3 10 40 BE DD 48 55 56 CC A2 24 9F AA 02 3E
: 17 2F 0F 9A 81 1B 45 34 66 4B 03 EA 7B CC 3F 6D
: 8F 30 81 5E A1 72 BD F8 1C 8B 43 33 98 94 5B BA
: E7 87 D3 11 BB D9 D9 9F A7 BC C5 EB 4B 75 CE 60
: 78 36 DB BF B1 FD F0 D8 3D 38 E7 A5 4B 38 29 15
: CC 1B 78 47 C8 D9 B3 66 2B 91 12 6E 0E 15 2E E8
: CF 2D 0B B6 DE 5F 32 13 30 2F C2 FE 75 5D 14 9E
: 73 FE 23 C0 E8 9D DD 18 8E 3C A7 D6 72 DE 0E B9
: A5 60 AF 8C 67 E1 41 42 CB 5C D2 60 C9 27 ED 93
: 51 6C 12 63 76 C2 E7 1D 7C A2 DC D5 27 12 E2 C0
: 69 7D 1F 04 82 75 A7 13 AD 82 16 BC 30 DC 1A FB
: 3B 73 9F 31 B4 0B F4 8B 65 D8 DA 82 BD 23 69 B0
: 7E 1B 5C 5A 83 53 C9 87 80 D7 E1 9D B8 20 4D 2D
: 40 79 75 73 F3 61 B5 E7 F5 63 6C 9F 4A 17 C6 70
: 17 4E F3 36 88 29 F0 22 4B 68 60 F3 3B FD 35 64
: E4 A1 79 E5 A2 8F 27 71 18 1B CF 5B E1 05 5A AE
: 30 6A A4 29 AB F9 CB 10 F0 CC 75 20 9C B0 F0 E1
: D0 9E 55 BE F6 C1 48 43 52 D7 92 44 EE 72 DE 46
: BC 0F 74 7B 84 7E 57 89
: }
: }
: }
: }