python3-pycrypto-2.6.1-3.2.1<>,Ƽa  p9|M+㺹7|R5,NT8 ^X,N1"θ$^Hsp$x*x;/:*n{5Sń{D2o #tJb;UJA2,|]lg_/=|w2_YAܼ!(b=BР߶jla?#Qsu#1tLCO@3KX?(\KPQ( IYK-e>> ? d  @8<HLe       wM x    (A8H 9p :7 FGHLIXˆY\¨]<^ +bcd=eBfElGu\vw <xydz d t x ~ Cpython3-pycrypto2.6.13.2.1Cryptographic modules for PythonThe package contains: * Hash functions: MD2, MD4, RIPEMD, SHA256. * Block encryption algorithms: AES, ARC2, Blowfish, CAST, DES, Triple-DES, IDEA, RC5. * Stream encryption algorithms: ARC4, simple XOR. * Public-key algorithms: RSA, DSA, ElGamal, qNEW. * Protocols: All-or-nothing transforms, chaffing/winnowing. * Miscellaneous: RFC1751 module for converting 128-key keys into a set of English words, primality testing. * Some demo programs (currently all quite old and outdated).a  xinomavro5"SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Development/Languages/Pythonhttp://www.pycrypto.org/linuxppc64lez4k3 $y#     (    p ``++ [ [== // NN14 /  # $ % "  @     6666666666 ^ ^.((%\\AAuu5y3t T00--[5[5 bbH   ::VV   3**## s a.V.V *o*o,`,`+\+\  66C,8iS :< Ce ((JJ\\((  A A A ~  N "00 PP  2OO#s#s669J9J&!?@:;!II@@DDkk! s".. 4 4(:T:T$PU++'2> T  ^/!'F'Fqq$R\~\~ -F-F77   1tD  H## |amAA큤큤A큤A큤큤A큤A큤A큤A큤A큤큤AA큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤큤A큤A큤a a R\dBY i@Y i@Y i@Y i@R\dBR\dBY i@Y i@Y i@a a a a a a a a O/a a a a a a a a a a a a a a a a a a a a a a a a a R\dBa Y i@R\dBR\dBR\dBR\dBR\dBR\dBR\dBR\dBR\dBa a a a a a a R\dBa a a a a a a a a a a a a a a a a a a a a a a a a R\dBa Y i@Y i@Y i@O/a a a a a a a a a a Y i@R\dBY i@Y i@Y i@R\dBa a a a a a a a a a a a a a a a a a Y i@Y i@a a Y i@Y i@O/O/a a a a a a a a a a O/a a a a a a a a a Y i@Y i@Y i@Y i@O/a a a a a a a Y i@a a O/a a a a a a a a a a a a a a a a a a a a a a a a a Y i@Y i@Y i@Y i@Y i@Y i@Y i@Y i@Y i@Y i@Y i@a R\dBa a a a a a a a a a a a a a a a a a a a a a a a a Y i@Y i@Y i@Y i@Y i@Y i@Y i@Y i@Y i@Y i@Y i@a O/a a a a a a a a a a a O/Y i@O/O/a R\dBa a a a a a a a a a a O/Y i@Y i@Y i@a a O/a a a a a a a a a Y i@O/O/a O/a a a a a a a a a a a a a O/O/O/O/O/R\dBa a a a a a a a a Y i@Y i@O/a Y i@a a a a a a a Y i@Y i@a R\dBa a a a a a a a a a a Y i@Y i@Y i@O/Y i@a a a a a O/a Y i@R\dBO/a a a a a a a a Y i@Y i@R\dBa a a a a a a a a a a a a a a a a a a a Y i@Y i@Y i@Y i@O/a O/R\dBa a a a a R\dBa a O/R\dBR\dBR\dBcdd41742f583dfb48c87a3f3ef522bfe79b3bfb719ed142309de93a76804d1f6de544c03cb56d230446f25c2f9fff8c7cf0c933b9d82644f665cc6a59f34df631cb972c78d40a3b9cbc0767967ebea8813ea074b9d2bd11c9b206704005858fec46573aaaa1e0de81de8a17251a96b4d9f358d90d46c9b44dbecdff2789d3b691bd07da473c3e40ff67fff2569e314f47b58116bba88faf33fc914da9343afc106d0ff91a680b477787aa6140f5475d93279b4b4a5830c3a92026992230e70344715b0de671867a6245581868df7d01d95aaa8e413bffe37b3eef74b2624a3fc0840dbcc1ecd1bd2c9e5c50f49691595421a207b478a2b468a9d73d950c85c8341e7d47b040574c7aacb3c8db4f256b1b9b5da489d42ea22c0c26dd892066197fedaa707e7d53d278be144db0f9f103450a292f5c008023fc8d632519d2f783bcb2aa635e763c0e07100cfd2a034de5e7b825752cf883ed115a5b9333d61106645215800504c65666c10641b4c116eee1c350c0bf107cb421d4691254185c70dd8d21d2d358c1355565673e5779c4afcc446fe8125693e9e4a2b0e25c34d21b0ae94d0a39636397be19737bfd9e74fc78c08d8418028cec0db1c07189392e8161d859a4083483a79c3bd4b019cfc225e38355b47e89a27d4d11cb24e8061d65cf10d5ac04d0c50df6b3a908f6e6757ae99e12c92dd9a2c060a12fc4e3c4fdc665e17c4392f6558a8b03f11bf0855914e2b27d80d10190bc6cac3576124a77984387c5e52736eebdf0ab0937aca19a922b6e79c4108acc3149064d73f22227c555e58ea453ec3d24c891299ed74c41b03c9faf205b02d079dc737354fc5728185f487c3c7aad84c6c143bdef3316214ba43b76cdf30cfbb00d516ae61a2119aa02537a0599205761f0916777822591865a40590412be4fa61a85ec1cc636cfa334585836a0a0f5902ee0a750e49d9c0d5dcacca76787640e9d3315fec8ed09fa2dd931e756cf9ab34ec168491b21313714bc86c91854cc305b8356a1fccc55cac9f42b507e24bce7ffc2257e04245f2a79ff0cc0de7624b79092cce100b1fef0ebcb299565436f74c3f5106eb73795833f5a1bc334bd6df6345bdc155e8180adc57aa9c075ab51998dab23003a99028ba0ba683d3fa60571df0b7bdd431e380594118ca8ddad2c969a8c88528c590d90c2ce5eefbf3f14bb20e8af786faa3ce24c277a0e01668ef70b0e53ca0ba3ae75b3b9463f510bfdbac672229cdce5343fd7d2d2adae98b633dc3a18eedfccc402791499d6e618ae3866d4d0c69c39e0a936c2a351b9910843ce2785cb3d3f7a827b3ad0ddf2018d5be8f13b7569244001f13ddcdfd071d6de502f53661a26f19840189bb85268cd9c56e5dc2a039ebe53e81dd0ac2c6ea24a23939b0c44c7d0d20b6d8dcf4848e9d9ad425e94e8a7827e909ebbb14b83249adce3eb1558bfb3f4c618af74f47fa35e2865ee0417533447f8504cd00c4fe39465ee7c778eae1512ae87145a841b1e885a8ca47d0245d503d2f1491beec3c301b8ad8212a83e75c26de4baa5c8a1ad39b24fe86cd57d1ac3c44e03e699ad422de4ba30ff0c4cc16d177a4e0e815ae78fbc63afc4c4bbad0ae5ab32848c6cb5a17d6bb278047685c24000a36b4c3c68dc60e0c9f9ee5b6df900b5148381b9cd266e6b69d52de1e767c802da3ba29c0fd1979faef885bc85fbee641235580e970a932582f7617268c5b7217e0df19e55c4b0ce2e83e734e286cf94fc93fad22d2832c74ed3bb584121a603707c682dd5bfc7f031159458778f32e4b4b18c3b6f804b4361e4e0d809961f5adefcc4443930f8998054c1d397100de4a2b37ab46894d551d10a621a0b8c6f8f25a3640d485345ca3537404416947de4a2b37ab46894d551d10a621a0b8c6f8f25a3640d485345ca3537404416947893316a6784c870303d52ab20ddbb207d07eb9e2c02862e25bea03d95b7ec66bda5a6c870169e4e19eca66f70fece2ae08c33a0e9021d4ef5a72409a727cc64d01591ff830b94cf272b1ceaa5c135f4935a0cfe45520a3fc69d6ce519052f75ee0b34c6c95265de07b0e0db816bb73c99698a41847283dea06c173b043450101b699e8c80abb6037827c954c5dcd94eab9b8474a423232f3005da53049831b6e5469767a3fd71b73cf0727ddb8bf0a372da0fd6e39498ba4984e16c398d48728220bd350d0b58f563e2132b22a16d904b49a6461d215363f9d51144e15d5bdb81cd063fb92b95bda3a87044e1cab5a9fa4f344f33bda318d231104284174afcacd4bb23dbbc4339d7d97273dc86d7217d27f583f5069009ad70cdf0d63f070dc5bb419fa3632080d7fbcbd8878c43286d5dd0a7bae93d28d130126c23cc7a16fff9064d2bfb8f2126e34c7b3418b967a695b1863d6dafe0ea8755361498cbc28e948ef0dcd92b8dc1d7d77d017e874fc84c84e5f4d7b1c78b36b1a375aacaab96f1f88db7aab330aefa9c409f7d928bb17d23afe56b56f3d2c84465a2c941605733b8e02ff5c7be5797286201680ab0d29de3ec84f116b6f9ff9ef96daef505db157fd545c3660f3c192177e8e4e0de8b9a9f1065b901a7c80e4c48dd7f510c2e087a71cadb0d57860308ae4f7a20aaaeade659f4595683090eea64248d0b17985768edf7d55a15fc97703464a9a9abd2db6d4d5df08ed5e98779956ca4c2b480fee481733cc36274ea2224db830ae1f53e5c00a6681780016d5889e3f71880f42d27fde823510bc99d609bc1aa8658bfd714f80900840962daab4f781e89cde5d1c3455dc0ad42d1ecbfe213329f2e457cc4aff0468de0e6b467319746f9e7b8e59679d0f9786a988c266413d5c90667bc51e22e7b8507671549d6766bf0eb563e563ed29dbaa46ec4bfc79a85d776c7f39c8006d2c6a6f15b2c420513b069e63e563ed29dbaa46ec4bfc79a85d776c7f39c8006d2c6a6f15b2c420513b069e9e4a2b29d0fd974a5851bcabf8a2c547076eb3bea71ccc18d237f16d0f80dbcd9e4a2b29d0fd974a5851bcabf8a2c547076eb3bea71ccc18d237f16d0f80dbcda4841ff453fad7b222b61bdc4feee807e893ced413d6b3badf06a1c5acb4c854a4841ff453fad7b222b61bdc4feee807e893ced413d6b3badf06a1c5acb4c85459c13137ba69d9e8e139397af0f0e46859b6210d457537a0414755efe6571dcc59c13137ba69d9e8e139397af0f0e46859b6210d457537a0414755efe6571dcc8212aea4237fc5e39e1770d4f2f2400563106afa6e47f328e8fb3e239ca1a10b8212aea4237fc5e39e1770d4f2f2400563106afa6e47f328e8fb3e239ca1a10b91ef7d5d97f7ee69a3f70bd8c5855910830470ce0218bacfd5af38bced4d7cd791ef7d5d97f7ee69a3f70bd8c5855910830470ce0218bacfd5af38bced4d7cd75bc56ad610a283d116978291513f76e77285fa75620178f9ff484c9edd9c5b5a5bc56ad610a283d116978291513f76e77285fa75620178f9ff484c9edd9c5b5ae75cfa50e62023edf8d2d656ea8dc2f5d80a08302366d8b8ab9c172d76e53586e75cfa50e62023edf8d2d656ea8dc2f5d80a08302366d8b8ab9c172d76e535860264cd8eecb61f1a2578e2def239130d5731a6121b67c4f1a259bb07811498780264cd8eecb61f1a2578e2def239130d5731a6121b67c4f1a259bb078114987813d6948f234806d5e52864e6fdcef1f775a7b3d036f649a3e5c7e895c573e7cf3e800c81c01a47db3cc0ccfc4ea3e12da97f02f2e91fee4c0fd28f6af3d4e3c5fd05f449b10f67b84e37159d35da23eaa1ec2f0f2e9f5d1c58685ed9970aad58ac961eaba114e791439379b40454abae3e9962637ee051b9b93557d0d16aa628b8d3a242c788030f8d5ca2308c0a26c00dd97632c7067cc44b4183dd787a86efb33053c9d620cb198f6c66c75effaeb61a79acee17034374ae0291185dc59af386451b9f64789ca8d094c132f42809e1ae2abeeab18cc0b3f6abaa1eb601b895f7c6d66e6c7572d0fae4e1f14cd871a97d9d139f132005e5e69d8f0a410f685a9c8b8d93ab52f579b81ec3a19103c8c86fd5302813d8cc06b198dadac8d7aed8452066c9262b13ca456ace185618d625fb6a8e585f95b1f27fb9483e6b45c1a19fe506900be3190b739771d0fb34ad89d0c57124f21334e86ae731b76e37c6f8906fc93c63bae90217187d7d1d11b391bdc14f73bdf9e0a3751d281fe13125e51aee6e008a815eb4b3a6a49dda1483cf7cf1e33a123a86b70a6a33c7a626e7c4c9b52612d834809f71d177b90ac98321eb273b75e39f7777afa6ec0bd51b62cc2b9f706e8d62c8013f82dbc4f429f15f820ff626852122ea5b9c3baabc3c8a45c883f06d84d29ec72889d229bc0022b76f87da127b8ea3e1386c04478e821dd7e91ea712d4d06d9d904320e9098a84e3aecff00ea94a36a99997ae5bdf657d728d7a71924a3c22bbc7fd87c618497789d555a5f4db965023929962cfadf922891d565f609ca5cda92f009f375b4571572c95a143fe78697967afd63399186a88e837b2576cf81f9c0284d23adb61724f43377330e03d7d2d52542b205ce298829be74c9e62aa930e2e39748d4f07fb6eb69affe7a85ae4437268cf58a41c39527453273b593d375ae28e4b71d8e14226fe71cddfe86157a955258d46fd1f92647531596de9c4a7df2f1259ab93dbee4f65fd22a2f78c71cab6ae29213a496535a502d65a9d924c882d4c21dbd0019b2713a6f0e89bd81163994d2bf9f0845c4fe2f4b11110dc5d41be4b1161f05403550717f2a4aa0cba0b36569a69bbed6da08b8d0bc4db0876f8703756e4ba127c2d8572a85c2e690cd3486fe41ce3c89b47566637f29f0f1a64cb78cf1e9fc2e61a042f54b3b73587389a27b87141b1576a35feb1821217a8c04c6d82d033088c6ce4cd1f1c884ce10ca92f27531f0c5b1e3be8c803769cebbc9ca06d23ff0c3c011e9cad18159399ca033351cbef2ff2e6e0c26b837ba13bcdb5356c7d775a0d3cb9ec1b235c7f2c3ded277aa980049378ec368075f01ce94227e630124f1ac0116b0a262455056acd68384e39cbd8a67b772a8f228dea8f7e1b27a7a7ebc60f1bcd8a11eef1eacd602c13a8f5444898f2d6df24b1a3618508b394e1d61d1f083898c117b05a450c76481f8283c466b82fe41928bb9fbf5f85f79c83db9c57ca8206550978a3c98a019b5d8a332b770f05186119bc31b58a83e11e06b810860698a31b76fa404228f72a006a4087c632f67374b8db9e091ab8d623aba4a231ed19661ea302dccfa0c0ac4abed69a65d0e03a1d1e229fc1d8f53d59d1428b7d24923386c0e67773e2e72ba7bacfdc69a56a7f4837e59fe6f847dc3fc4f1a916edaa99b6e46e53bd955f58943f10a6fd7a27c134062a41cdaf9ed51d385ca39febd60bc6fbe2f91c3418bf947f81c872fe983b02a5878ea9338283098e4d505a93b59d56e55612140568ae089ce1b918663d6d94e2d0c11588389e25f86c1272916adb7ceb267b57e313a16def8830d3ddceb300a6413939a078ce0e894da0eefcce73b5be56f4e382e04f611cbca5845d6e2c9f4da66a2af6e3f208b8c4030d1c71e8ada33a8a2cf1ec2077c7b2319ce0b019f68c012a2a1d37823d6f653c9d9cb887b8cf6e391fd5ebca434c4be06f149504d2d40c6d1048daa50699a8ac3f10bf9f372d38a7b80829022d8781386c69a8e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855d12144c51d72f039a15c46b6c0a888b90a4b0b3e564efe34b96335abf2f8db5b8740ffd1e6ee8d47e7de4f5c00695a5439600afc6f9af64aa19e5ae7eba32d8f074e68ffe12a31a64faeeae60bd296da4b60ef68cd58a4b957fa0f252ac04aaef57ac22c25084e8897b9bcbda561ba73f043b7baaa322986d8859b76a1cca43db803976f0e143f1fedbb896fb3c4b56a93cb72da43ac6c7f5a6b66b084ecbab4f6bd0a0cd9ae6d111e3d139bc4758245b324270f80235e64b7d53f63cb88952b79e5e02a6880012ae3fe580459beb122f1558b5f3f7ea808c124d062899fcd3c79e5e02a6880012ae3fe580459beb122f1558b5f3f7ea808c124d062899fcd3ce90ffdbb34f7a64ec6fd693dec3f197bf26516f486da8c0fc49932776e313f91292e9a24131a032f23846bc804ae100823c0daf8cc3708973780cef6e47d4e1251d210350c44ccaae96c746e3617cfbc81c94741eb7f550c3632d33ff2a45b094b88cfc4772cad315181ee54ad5a37776bcc0ac83e5a96b1d3a609316184dfc3c6f368dd2ba5e614d2eddea28e7795c2f1d6733aa0a06cc67c0f4877712f04b607c7f7b1d9ea50e0f1214caf7db8a2ccd5db7fb411858397aaab599614a345f921e5a8a90762bd5183bea88cec6d8d8f99eb619550551c5b641597f3c266ce47e4652430d5997019dd6580cf43aa2eb8b963c1fb7878839b4c49a399da96e4fd07b2e60157ecb27494c3510a4258d77a4315fdf385f578e87cd9afd8d8058db5307f7da583d14e6c3b9bc2a8acadb1792c0eef1ae42c5a2befa44c36163929087933936495fd66b09573d5b3e59c3f43bc9a09ee2221e6aaeced8fee32efe6931958cfe793f8551064ee83bf14a4e3006adcf373b636e62e3965651bd0b41264f8afa36e468f8e7eeb79773a8299449d81aae40f650e67f53620978a97602b6c2fa35b1f2101d9ea47ed646ccf733afcb17dcfbfde3a72630ce147e28a45ce4866a29095c7c12ca096351b37d168ba61dcbf082c95ace7fb92266c5c4365db314a2443bd791aa13268f1bca6a35b03b8ceb5ce6900969dff3f5e2e9127f3c91254ffa9c1b2d89d74d3ce49a3976bffb3711d718023cb9733a42792117fa79642beeb393fa6c7d720722ec2386e96dd40e9f34f9b3742f5d5459cdca34b2c1be64b431f33875c2f952f0b7a498aa0d029a1c471e34af6fb948efd6cedfe7d343b1956ca78befef1d2be78d5fcd63cfcde2d42fba66c359ec01da0554ae49376ad7aeaca13e884baa469defbb7f46a62bb1ebbcdf979089f0e1af9eb4ddf2759be402ae398425cf47bc04adff1d531711afb965c9d184cb2ac56c2d31be5771381355a1a77193d0ee023b4194a68a570dfd3c1f17868af6bc31df86b9d30175454605869209dc9f7739860201fc44239174faf074b9adc78c84a6fddf8980c7a40d58224b6d6427f99ef3bb14f5776365156317a3949277166d81f420250d2f77eaf65cd1d581bd550628c0bfb1d43cecbee074f67e851ce6f2e882ecdeda9c7bd056800e7c50dc58d5daaa1273f5afb404f3cb4936619c1725c4cda31d5d0bb8eedd0c8f3138213fb27e8192e5ab44693a39f53e4fa62481818e330abadfe54e56cdaf5acfeaff202c38ae6b06c338e54ccf9d261b1d0f22c9847e301dcec1096a42aed188665f1694b8e368d8c20afd19537f96167e1a398c633c09a1373a92b57dacc5fb84a8eb14e7689fd482939dbba97e365123686853c011f017093c785210908f7cf54b1a905d3994278efc16f82b02930811a17cba47f256a243673caa605bacda463eec3e22c29204d8d5211592ccd74fc1f3a4c57993bfd8eac1e6852d995d362e23cf9341efbb88b867922c499671668a5d91a9ebee7b387ee1774b1ee45fd49d09d38f56c1c67f7bdb0000556d45d0c17c07eb9655dfbec3609a5138805e6e719c877247861a2fdbacde4fc9b0b0b9b1d4f5c6285a9ddf706e04361090d93588396c8cc5c3aef8ae9bfce0d4b27a4fc6646c32ec8bbfe57c1bd2e274731d8be9db1d1c1889ef5070d65871495f68110ad36be20b4bd42a76507a42e5bd58a7006386e4f682af1594ece5a18dcbf3c3619f1f4df5885ef18e787db32475c920bf58aca88a0455e45aa565281413afd6e8cb43e269bda3cc2e7234efb9aaa8e94dac47af49da812c9dc3fc6081f75193593d959e2d44035b7a5db324b729157a53ca1dade0fe495606cc4fe0ce5eb130e539f092aa23e8efe93693857fa8ac573d23ce112060d3985e22ba3f55c5dc8e784de28bfae035401a3e9108dd196dd75e0ddae35096f9a181b0994f44dd02bbe037c346d19a84cfeca0cd2023b798baaf3f1bb1fa29123796a20a6b0b54c9f6e2e0ea0b2a98ae6e9838e4aad42f96ca9e760494bb241d90a3ee2d6623a6b6fdb3a72fbd1a0a678437f8598552d0c3e54d6ce4801da4010edc4ebace4cbbd90dcf2b4d43cad59f1b47373fe9ef25a6b38e857a90e7171c059f3636f7dba2246f9c198ad31a44fc167ad875550358c9cd1f119fa1a4958956dc3c65ecdcda26b16db3c4a02ddb1705c63230efa2a88790ea2f6747633f61a304dd012e005c61854a5e94d960dda0ac89fb6010cb4f783be4d17f79e6956ae791090da7e3f5f1258775eab068b91b12ec52335618eb1dcb25dac96c981acc4271687a0ec65cdf333742343f265096486680d1b706e28ffd7245ac26f8526625d4f48ea32c1a9dc5a1c14b657bdc9943b7d6e7e76d47f68e67096f520a69a852de9b3d00e9b7f252d898d3d9344abf9b430856d12ae9e0d4a9a7bc8eef289523799bd6ab22de17eaf6ea085982f9ebf786d8c73a0b11801279bb8e2b7aee633f75653858f2dd3b4a1d38ce88ae09f27d2be518db8382b266ce826a2177a2cf3243a8a5b6c342bc4464a9e8db44d9a4880795d243f06340145411772592f48f2cda8c3fe2e51ecae876ad3b97cb36e0aa9d26c792ff6c2ae0337b4f746e6f959218fafd74bd00ae4733981587dba903e07f190f505d2723123ef0555654e37e1437339a5fe5874723ababef360c483b6598f802acfbdd9582a47e2d9a4dff798263bf64480fedb50f8df26c52f806acc0fcbfb2e9ae63e7f22fc363f16f3414bbd91ae16b3a805c34e1c42a291b9b1ca0640ad2d0a5b7cac1326792a79a062499242e9751a5ffde6b0363e8965bfc2067e15a005edbd108032c12d2d1192d2b4e3c8635785c0abf0c00b858ce5dea1ac54b7f8f5b259d2c535b64646d321b116d349ebd6f25147b1efe74f3f2d88e8831e9fbd5545c8ceb0cff7a8706e8e98c3c69356efe0e2c0bcf3e8eef247f5b908fa84f5787e4a38a3f35e3d81800f9c90bf7db4e6a9dba0c17d59e8634f0fdef7493c46e93ea94026d2b05149d0ad7ed88062138b3330d5eb2e39d846993cdb788490d324b7ec460a616537ce9f09e6ace0b67d3829f1b7da1a222d30f948ae7d3aa1bcbe73213ec28c4243a776be2d907da5ddb20c74cc65c2b15c93b06794fbefccd8137cca3e425ebc521a73d109fdcfda8e1e2a5c83e0794f24183064efde49c633d948aac648524a4c6c2b82b6b5c1462d79535ba7a2598c8a956ac5f1c43f2928e2ef11ed61b7cd4f4bd0f289e2d1520f80964977afb07daf877482fcd6d8953a1263a3f249d842e7ca257adaee6e4f0a294bdfa12201a9d1fcc3559a36942c05325d047e80b317c9bc18fb13ed92d9a3d35f8ca82b743639e8d8daa2fba1683784c7a335eb3e0df3ee360884b05f8bc3987a79fde4a8e11eb4c5e200d4d6138d1b2a3139450846228e950d38e79aeb06194805bd005d39ba9fc09ebb1188aa02b90de232af153aa9a381bc931f9682617cb5ba30ce025352c18a200836a58a89a8588424549736b6eb7ba493e88975c864f89ca65f1f9a02ced85ce6a0d1acf5c705898a4f281a0ac58b032dd1feb38a323b63b045403ed3fe43492eb32cf63218b8c22154ece5ad1143e2223d2e7c696f48b97d0dbfa363421bbb34d0421056ef694dc41557055fcb7e0c7e18204970407144444adda42652ccb718c3b9d68b83d33e91413bc9fe1b3eda72fee0dbd6816d532a26fabab423ae50dbd6d8a962d5027edf8f9b55c423e8024156a5392d7a5895393c4427ac1bc5008e2e8084fbdd494d0187e843d415306d9d7098aeb2385231db092a76320e5b993c1c03710d00c6caf4a075febc5945eace2ed332bb56ec94072b5b88591eafb1f0444662084c6ddf3ea0bbe8e196e3939548f8b88ed4d5aeb4b1c6090cfc736a5d566d0fb840d6e4df2af9461528a7e59c246f9f84a4337d1ea8eee51841244d6637363ca86a38f61d772addd236708fb883bc478b1f039c637f662e08380f11303812382d9aa49bfe055bf553a49b557baae2ababb9e69ef46bfa131c2395f86017f9eff29096f0d6b9329822a562d3b5ec5a2733b2e113bf0fcc386266293f4049ab70a4079d137151dd238bf88685979e9454d2d41b42ffbc8a6cee3da155b61a52af33b2b5e673a868fda49d5f6365e632d80989946f72f9e0028bab387e8a6bf9cbd8779f48f2c6fec5fa0e2ea4a6d46bed7b4ef3af0c334d811f4502c64f4f6a5191ff812f51dd525605e71b2045a97f1dfd12622fc6c71aa6aae57135a1156558260a4877366af855e97a959b5a1b10ffe6c8ba630d13925e78f694566124fa5e9e88a296cda42c028bfee46dcdb07da19c69374891c52cdb16f5bed66ca8e1f8bb60b99bfa7da056d4d97f6b90c5967dbcf3df43d7420f549be2d145aed6b5466713a0bb4c3a0567a9130e82278c86677bc61360d37e664cb387e71a3f771e4722799f86f9e24f59835f68cf47cf7444df14cf2ed0fc9482c19a0e04ef084d6167fa447d7c866967e40128e43370175a9a9e858b99421a02a3c1be8f8ce323079105d8028c6053bcc1704bb6e93cff68241b884bae754ffc09f7a4e5b19f5e66f4cd9322357a0cf8562ac9531da665d81ba27f4ec8552660b5f5a5136c65d1383f5d2506bae04a2af15e4a47a691c108e7489bdfee4dc53da7a14e33060ad983014ef594da276544d4ea85fd1c632992e8fc67a8aa0ffedba67f37986b3e4fc3a70748022b2551a2a99e565968bbc66f74b6a301cd3c92593e27035e84469ed5920609dba60b6a87a3f0d296fd0d960317d9187f9ff20a88bd71c412c96254225aef2d1dccf572e4fecc4ec9aa4fab7d8f11ff7749433012b170c3394734a8546b382f000ed7762b04288f046f27d84303e294c7dc906f089539c446d6ae4705c39a927dfb819950a1aecf26b41c772ead0b437b18dfc3b85ce4a30d4db1b2777e077cd410230316cc20397bc284cd3c704f3168cabdcbe43456de78d91c06ffc790eff02b6629ac1341b19b70780f643ad529f270a40d870b4c9e6c551594b940ddecdb398906b61c4e4bd732f16c9eaadb3642850fe81b2058ca664f8b4340fa840d3d6fba91d6e0eef0b2150bfed4c074ee518e177e52b09d46245b32a9fffe61dffeb515f3973d2d38c7a2fee73e1aedd84eb72b21e2dda4d1241e1fd58fd618690815d0c94d13542b129dc542b823fa996893dc1adc25bcba29a5f66c289b9ff862d61a061a04186d7e9e135d7e35c66a996cbd04e2d9d50d522cbc7c9b5ca6cc2b8fe48cf4e7d97d2fad4fc73657ac65252b0eec69ff6773a6bfe5fae967b872fb7613aa13db32b27ed764828cb6f580ecfc0e7afb0a3d56bfb636fd6055d96c3d09f3177ad3f2b4f95e001293064b983136913ee372910c958b844299372826b506a21caaf26b537d8168e9a06b3e9962c9b199d6c3b747d6878ebfe3dea3b872e5fdb35562e5adbe01bcbd98b24a3face6129bec181b71f9b3c901952d1ac86e261e0115954064627b0b92ac3c30a3d1cd72c9ea2fa8232d80e7b935353cd23133702e15c4b4409d2ae8095fb192d79594ef6c5bc73fdbe9e574a7a5c398fc1a8f4a50775143f745ba3789b5dea5117b86c61782668fcb7dc5506ec3d9b2ed3321913e8e761157aa3670ce458e800cdae47bfcd25dc9bd7fcffd06bfbd59c95652aac2b0d7ecd9d9e2a8c0446c68d8fcf35fc539efa67e3de2a3e1237546973876934b0a45651c06c1a73b6df191194060ba1e6c5285ce1227579b34e3a8bad6a328b303f6028f7d3882040449ba050ea65fba1e8a83fab7c741623a944add75737039e00614b9855ab7bc2caed9b952d7e51949aa4970f7d781c54b726394e58a774e6399c10cb54b1728f49b04f949106e6845e2f4badd3973d622e051eac42d748685ba9ea5794672f84d24a745836fb30ed4e8d0278c6476e775320523477e83bfab00ac09a8c0f88cc1e8f8334bbefee3d3f3cf254df3f51722d311695c51c48ef4d3dc4cd088d4b7682617a662649b99a560176442de6195807b33842a35ce63f5544f74b70d576b9ccd0e1cf8d8a63a65fd40eb210c948411e51d187cb7e72e4eb04740bded68b5ab31f9dd4fe949c023d01c58cde9b2534721044236d0f84074dc6a38a6b49d817ad83b641a20c2eeb721654a36e0f02d736e968bcdc9400e234b58136418064e0e8e84b6da57435b5af8aee9de4f4d403da82e58508c0993792445640615a328e8e2620e6497d60ad2b7f45bc9664399d71cfacfde8ff5186525280bfd17b994b85876ac64fa29845204fad772679f7bf4a6c2a02baebcff2031f1ee337d7bea9ff495a4603da1348df5ca25f1cb3aa158fe3a835cf7d06538fc1ad460ee734750c35f0beb45e48aad8b3a21f1a3d5763923aa3e19f3bdb1aa334744840983baeebd89980616c0e0fe580e5c84f014a6a445af7d7088578a6ca1f0b684e4d0abe35d52f78ef9885c42d5804cddf64468934b8ac230340cd8e643863c977cb503095e45901cd956da415f3e661139841ab916c10ef7b35d597852304eb8fd6bad4a8a79553cddb0c2412f71b01b02e959c66a20d6f6696b5c96cb89c8b112f2b6dfda344bb79f2aca5367faab5914242734fcb080d8f495b4b92f3019f9a755861e6ca477b3307bda3b1df88293d0d8485d975ba517b299e13c6ad6d678e8aa98bbb733ae8ad3b67259a5219d37cc4f5608e644f3a42064ce00702fc73295eecaebf03b0da89611388befbc74a0e35d1039fd5faa9c4bf84afbbde2f10051ed81ea95565a6eeda19b285dd676dd316b27e76014e5fe764b1420d5d00f8dc38f6341a5b658391e926442a1ca2c9f73946dc92a56f3887913ebc4e94040e79b41aa4f66deadf48c15d0cd7b30184fd13c49dee55ada5ad8e9d8bb8a379658cf70e065fe5c47a946e498dbc6a8af3573d57e0adbf5df454c10e358598fcc7275b79beaefdb51b17b6ca801244eb634cc3fe113835cd4e50f8e12c2707b232f898649b60d0e31fcf408784e0e6e249a67c5a0356c11138f9027ae5348530dd11b9752b6d4c7ffca4f5a828045848a65ba4693061c791f785d9eefe22fce3ff8e6cc9d35f2fda419dc9509771d5687efe6fe78c1d4d08311658d12dc783d13c6a7a8e87a9bc705840f42c2768f88e8c6e8cc48df2f5654a69d1e05ba09bd7bbe965f70a8d350b2a199c8c96d174f53f194f3c2b7723dfb8f72a56ebc97d03695202a7a53846b07adf50f237e9f5f794d5b90440ec50f2efed93506e9b9460f3470ecfbceaad710fd662bf68c0b120a4a241a3d69017d008b8ffef5a7dec926540f5dc617e060e2ed31e56f74c3c00dc3057d39f62e6a05303c10943643b0c6cb3a287170ceb8f8a4b2448cd712a4a049c066ca79d0e9a72de8fd09a046f5fab5cbc4a7b25ee979c405c54efe93a2f865ef81998df39c14c1f23e53881a3ebb224a0f16e9f4507a6773fd64a0a85fb907f0fa6c619f8e1c4b38d45c8035ec0639b5e3b6799dd905dda4f7f0fc20f741716bb3ed84bc946484e2c48e0daf3f86df23d7b012a7fbce97428b9e670f369cd7ea5ef3f9b557f0184a0b1bf9be8fedefe05ca0e854e6198053160a9b72b53946a17c985a899f0ea6a914cd43285fc9aa42bb3771512919b89f5847a2ddf5166a5d358a3d807b7cff1d7a5d9e8a2083285a50148ec33f87256de14b94a839db12a0081d4472432b5aa5c9b3fe067bae1999286212a8b11415070a46c04528a4acec552bd871dafdbf8c69be0275744800b741f1c586a852ea8082d901449c12d7e25958ae19bfe0215c91b2fc3af08d61083207c44bb9e4fac834fa393a920f9df2390b5ce01e4dd09643f869d184aae839daeabb2b633f9526904a05c106f4bcea29ebfebfd669229c4f17221e7b8554b1a70443880752378d7edc57dfe00903c17c8bd20c85b572730b4a3f978b4b3486e7ded8de2bc7528d75967614a11acb3ea1ad34c6bfe441f987f3141630a212d9b5b4c775589d1d36df98a2ef8cb5343f4b8ae22dad02cedefdd412e6cf56f16b1c6371d594cc98af33d96387697bfdce3fa55c85e9fcae7d88ce3b6a388b1e774c411d8d774886b6b97b2ea87884230b32fef1f693a7d42c747ac9647de50c6fe1da0dfb402b5ce708668bbaaa4080ddfd723ff5ab407da982992fd91226db86331f7c551b673e89f4335bcf6f51b4d268f171dbc45cfa67ec5033bf78e1c752a28a85f042f0c42bac1f9643ae8288ed33149635632cbf80737669a9e1a0aa7da25f40d655d0cf55458f74c87b1a43ba07e5f109143f5d47867dc7d2a500edabdc155625e8982e622a5e7cf1d83afb035479a4676b5969624601fc4552086a0e81a46d1b4988c7e182ffd1acd2ac4891b7eaa0993ea91ca8808b489c84dbcdb01fb4127d328b356526ca8ce51244d7c93ffe1f55290537ade827f23a1fb7cc80404bc5be3b55b87692333fa5efc5d0bd204c6386781ef04f6408db93fd6b422ab9c921c23d9438e8e16b5c5a3c12c09265258ae34233534a33884ed8c99241b23c2936a0b25a2c929d0e1c95655043934da60f8ac423dc69d47d9bdd3b03cdb800b3678f57e4e65ac04fa5e821d000baa4778f8ad3a6678d73674bc7d576609cbd02300e6c2818746c16aa36b76ae9246afb4ec09ea6d8b4a57523f5cf103caba8aedaaea07a8ad4bd2f4dc7b30a39f386ff8a595cdff102fb4637d6ea0ab3925c3123309c2a1ea2d3217f0d002c65ff8d7e8e3334aa2d6e3a59b0d3a537d830fdb56198645f40de803b3c97f15956f1e1df0cc6b1b7a0d4cb96e0529ea0b8d208eab99125183138565ae9577f7e821f891b00f3c5e33175517c78eae378dcaee345a8c964553c229af1606e2e6a5a068444b4772f79d236cc317dc199eddad194325fb9418c2c1ddb296535ec0a8b767b0b2fca5ddf3f076336b4746e440262b64839482994554cce3bc5209acaac7f74035d9bae66af2f8ef953296fb9d0c0bd08bc7a5af2c283045d9547cc922e03c405497d2a43c76f758820558b781d867a733628f2d2789f598e81b71c18c045b3686589c75c8a61de924d078284e84f2e125defcf427b7491c4e4333252a64294ffd6471c52cc489ce887c08140fc86b3889c78d8eace8cdcd827053fda774fe4ea341404590cd9dbdabbfdb38a5860c826f691cee248e039165152bd40bcb2981dc20ff4c2379dea74e9de39845977e660fa540928ec3c3a1ae969a2525bd25e1490bccca66f628a5027a2194d395170a30c5709b916294485b6271bcf1425cdd0460ef947281fbe40ecef625eb764b68cdef3c2d9163925531ec49527a45506fa78ba0b40cac67f02d33e54f4ee88619db301a1a71a7a03e325cd4219879f0f25f89ff9fa8b6f583a5a3e51cb8bf536410c1424a065034c8dbbcb6fc932ed66f0071d69e06fe2ca4ed356ceff66f8d6c1ce0eb095a7a9d5c1375bf098d7216e67a7894baf2f6586eb09a297783caced426836594d797fdd83b2c30ca3848715be5ffd70273c0853850564811e73f24027f39f2bc7cb1310c63b38f1ec670cb6dbd14e7eafe06b20a1c39b553c84b496e5219b04232fd38b9a235a567ca81b9231b6cef0380b3963b62cab7a0fbc02d531b29666b6136e2bd41d75b8c0874aaafce5acba149d42201539a08bb88d5963f615d4093c3c9b1286e6641d480655334f003b24c637726abf78b81839c532da93d0888c5802f8b0cd9556cae25eae4a012895e805614b2cb73b183ba9f6c87e17e09c6868c0790ca0232f26ffe1823805648887586d5dce63389605a118c1ea8d1764d88554160ac9a9214f19de058c688018b319a53d3aa2a53f07437fb80d6b7b39cd69fd22579b94fb0b7f6b7d969d08dddf5f26012ca64fa5e11921f75df135ecd22b57bed57d39f324b2939cc4eba1e6f1fc8015b040f52528189556c1fa7e08ac4797ea2e083366689e1fa8fabc611e74831c05355fe856058dca41f25a58318afa72a0703412c09c79ccbe22c3653a877359449a47990dad20026fab9621976658635e13e2037b83a73ccd4973a76e00f4b4eb97fc0df0765b52fa67a01bb28352b1a0021875d9acf840d465c93912d2c65c7a5d9863592da72777e4b7630acdaa9385478ad7d007517e98f66c5b0266023b9e71cfbc43fbadaac9d451e4ac10146f66c0e96aa377e06e39f368e441f70cc9584f04cb79f04400c5f5dfd8233fdb8376fc9a9a5a020b491cda868d4188d9e83b4f55cc68d0e8df8d2902af41b8ef47a7fd6661fe5c5a091f156f7b6c643ff318cdc53da15c302408c243f000626a8fb1366b59ff86da3e5388791d0adb7be6b84758ce3afb0d79be421ea34f52110a6be41ad0ecf0872bb88b071b0c51f2a4904e0fda3dfe915079423592505d0e4b64296fc9d356685a840da1be1441419ba8228996dd5f05a0af508e1f0053f38a230cb3494b2c51484c225a96d47c221a44f6e20e74d9965e68f34880ab4ca115a0fd173b16ac6938b89b669f0792062fca8d6c5d7c2c85791c7f69b57ec2bde8f3d4ac1fb73d7c4c31d282e08e200f953e869fbc4b413d77f962209ddba37c899a6a089222ef9761ec35b10f0d8d7d04f85a25bb9b605c585349ad57604d36e471d2369133a0091f8d9ab58d0a9a6fd29b43da357dfba7223635f463b7324938aece56d5646114bdb23ea5cd08af6fd29b43da357dfba7223635f463b7324938aece56d5646114bdb23ea5cd08af51cd830064aceab64632cb1dd923642f3a45fa1d02c301f6f3c025bf74b309e39bb8f4795888d73238d9c7fda43b34242acfc6ab953fb9c2d4a6692c4ee82b3e39bfcb294e0e83a6248992a0b3054a90e12331711f6818e8d0a2bad3a8d3928415925a98d05c6d086c30943e4eacdbd361bcf76daa109b6e6dfc9d0c4ad9ed6498f3f5e5ab296798a36e08a5ea2c9703dd8576eaa07f5709386e06b249f0d55611e7990a1d0bbd37761693934fa966f5bc10747b80dcfb9d0dee891ae6c7f94erootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-pycrypto-2.6.1-3.2.1.src.rpmpython3-pycryptopython3-pycrypto(ppc-64)@@@@@@     libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libgmp.so.10()(64bit)libpthread.so.0()(64bit)libpython3.6m.so.1.0()(64bit)python(abi)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.63.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1Y i@Y#@XlSW@RQbQw@PDO"O]@toddrme2178@gmail.comtoddrme2178@gmail.comvuntz@suse.comrschweikert@suse.comp.drouand@gmail.comdmueller@suse.comhighwaystar.ru@gmail.comjengelh@inai.dehighwaystar.ru@gmail.comsaschpe@gmx.de- There was never a python3-crypto so don't provide it.- Implement single-spec version. - Use Pypi source URL.- Add CVE-2013-7459.patch: python-pycrypto: Heap buffer overflow in ALGnew (bsc#1017420).- Include in SLE 12 (FATE #315990)- Update to version 2.6.1 * [CVE-2013-1445] Fix PRNG not correctly reseeded in some situations. In previous versions of PyCrypto, the Crypto.Random PRNG exhibits a race condition that may cause forked processes to generate identical sequences of 'random' numbers. This is a fairly obscure bug that will (hopefully) not affect many applications, but the failure scenario is pretty bad. Here is some sample code that illustrates the problem: from binascii import hexlify import multiprocessing, pprint, time import Crypto.Random def task_main(arg): a = Crypto.Random.get_random_bytes(8) time.sleep(0.1) b = Crypto.Random.get_random_bytes(8) rdy, ack = arg rdy.set() ack.wait() return "%s,%s" % (hexlify(a).decode(), hexlify(b).decode()) n_procs = 4 manager = multiprocessing.Manager() rdys = [manager.Event() for i in range(n_procs)] acks = [manager.Event() for i in range(n_procs)] Crypto.Random.get_random_bytes(1) pool = multiprocessing.Pool(processes=n_procs, initializer=Crypto.Random.atfork) res_async = pool.map_async(task_main, zip(rdys, acks)) pool.close() [rdy.wait() for rdy in rdys] [ack.set() for ack in acks] res = res_async.get() pprint.pprint(sorted(res)) pool.join() The output should be random, but it looked like this: ['c607803ae01aa8c0,2e4de6457a304b34', 'c607803ae01aa8c0,af80d08942b4c987', 'c607803ae01aa8c0,b0e4c0853de927c4', 'c607803ae01aa8c0,f0362585b3fceba4'] This release fixes the problem by resetting the rate-limiter when Crypto.Random.atfork() is invoked. It also adds some tests and a few related comments. - Add "-fno-strict-aliasing" to CFLAGS- add ignore-fastmath-warning.diff for SLE11 and older- update to 2.6 * [CVE-2012-2417] Fix LP#985164: insecure ElGamal key generation. (thanks: Legrandin) In the ElGamal schemes (for both encryption and signatures), g is supposed to be the generator of the entire Z^*_p group. However, in PyCrypto 2.5 and earlier, g is more simply the generator of a random sub-group of Z^*_p. The result is that the signature space (when the key is used for signing) or the public key space (when the key is used for encryption) may be greatly reduced from its expected size of log(p) bits, possibly down to 1 bit (the worst case if the order of g is 2). While it has not been confirmed, it has also been suggested that an attacker might be able to use this fact to determine the private key. Anyone using ElGamal keys should generate new keys as soon as practical. Any additional information about this bug will be tracked at https://bugs.launchpad.net/pycrypto/+bug/985164 * Huge documentation cleanup (thanks: Legrandin). * Added more tests, including test vectors from NIST 800-38A (thanks: Legrandin) * Remove broken MODE_PGP, which never actually worked properly. A new mode, MODE_OPENPGP, has been added for people wishing to write OpenPGP implementations. Note that this does not implement the full OpenPGP specification, only the "OpenPGP CFB mode" part of that specification. https://bugs.launchpad.net/pycrypto/+bug/996814 * Fix: getPrime with invalid input causes Python to abort with fatal error https://bugs.launchpad.net/pycrypto/+bug/988431 * Fix: Segfaults within error-handling paths (thanks: Paul Howarth & Dave Malcolm) https://bugs.launchpad.net/pycrypto/+bug/934294 * Fix: Block ciphers allow empty string as IV https://bugs.launchpad.net/pycrypto/+bug/997464 * Fix DevURandomRNG to work with Python3's new I/O stack. (thanks: Sebastian Ramacher) * Remove automagic dependencies on libgmp and libmpir, let the caller disable them using args. * Many other minor bug fixes and improvements (mostly thanks to Legrandin)- Make package build on RH6-like systems- python3 package added - minor spec improvement- Update to version 2.5: * Added PKCS#1 encryption schemes (v1.5 and OAEP). We now have a decent, easy-to-use non-textbook RSA implementation. Yay! * Added PKCS#1 signature schemes (v1.5 and PSS). v1.5 required some extensive changes to Hash modules to contain the algorithm specific ASN.1 OID. To that end, we now always have a (thin) Python module to hide the one in pure C. * Added 2 standard Key Derivation Functions (PBKDF1 and PBKDF2). * Added export/import of RSA keys in OpenSSH and PKCS#8 formats. * Added password-protected export/import of RSA keys (one old method for PKCS#8 PEM only). * Added ability to generate RSA key pairs with configurable public exponent e. * Added ability to construct an RSA key pair even if only the private exponent d is known, and not p and q. * Added SHA-2 C source code (fully from Lorenz Quack). * Unit tests for all the above. * Updates to documentation (both inline and in Doc/pycrypt.rst) * All of the above changes were put together by Legrandin (Thanks!) * Minor bug fixes (setup.py and tests). - Changes from version 2.4.1: * Fix "error: Setup script exited with error: src/config.h: No such file or directory" when installing via easy_install. (Sebastian Ramacher) - Changes from version 2.4: * Python 3 support! (Thorsten E. Behrens, Anders Sundman) PyCrypto now supports every version of Python from 2.1 through 3.2. * Timing-attack countermeasures in _fastmath: When built against libgmp version 5 or later, we use mpz_powm_sec instead of mpz_powm. This should prevent the timing attack described by Geremy Condra at PyCon 2011: http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-through-the-side-channel-timing-and-implementation-attacks-in-python-4897955 * New hash modules (for Python >= 2.5 only): SHA224, SHA384, and SHA512 (Frédéric Bertolus) * Configuration using GNU autoconf. This should help fix a bunch of build issues. * Support using MPIR as an alternative to GMP. * Improve the test command in setup.py, by allowing tests to be performed on a single sub-package or module only. (Legrandin) * Fix double-decref of "counter" when Cipher object initialisation fails (Ryan Kelly) * Apply patches from Debian's python-crypto 2.3-3 package (Jan Dittberner, Sebastian Ramacher): - fix-RSA-generate-exception.patch - epydoc-exclude-introspect.patch - no-usr-local.patch * Fix launchpad bug #702835: "Import key code is not compatible with GMP library" (Legrandin) * More tests, better documentation, various bugfixes.xinomavro 1628046368  !"#$%&'()*+,--/0123456789:;<=>?@ABCDEFFHHJJLLNNPPRRTTVVXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2.6.1-3.2.12.6.1-3.2.1     !!""""""""""!!!!####$$$$%%%%%%&&&&''''''''''''''''''&&&&&&&&(((()****CryptoCipherAES.pyARC2.pyARC4.pyBlowfish.pyCAST.pyDES.pyDES3.pyPKCS1_OAEP.pyPKCS1_v1_5.pyXOR.py_AES.cpython-36m-powerpc64le-linux-gnu.so_ARC2.cpython-36m-powerpc64le-linux-gnu.so_ARC4.cpython-36m-powerpc64le-linux-gnu.so_Blowfish.cpython-36m-powerpc64le-linux-gnu.so_CAST.cpython-36m-powerpc64le-linux-gnu.so_DES.cpython-36m-powerpc64le-linux-gnu.so_DES3.cpython-36m-powerpc64le-linux-gnu.so_XOR.cpython-36m-powerpc64le-linux-gnu.so__init__.py__pycache__AES.cpython-36.opt-1.pycAES.cpython-36.pycARC2.cpython-36.opt-1.pycARC2.cpython-36.pycARC4.cpython-36.opt-1.pycARC4.cpython-36.pycBlowfish.cpython-36.opt-1.pycBlowfish.cpython-36.pycCAST.cpython-36.opt-1.pycCAST.cpython-36.pycDES.cpython-36.opt-1.pycDES.cpython-36.pycDES3.cpython-36.opt-1.pycDES3.cpython-36.pycPKCS1_OAEP.cpython-36.opt-1.pycPKCS1_OAEP.cpython-36.pycPKCS1_v1_5.cpython-36.opt-1.pycPKCS1_v1_5.cpython-36.pycXOR.cpython-36.opt-1.pycXOR.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycblockalgo.cpython-36.opt-1.pycblockalgo.cpython-36.pycblockalgo.pyHashHMAC.pyMD2.pyMD4.pyMD5.pyRIPEMD.pySHA.pySHA224.pySHA256.pySHA384.pySHA512.py_MD2.cpython-36m-powerpc64le-linux-gnu.so_MD4.cpython-36m-powerpc64le-linux-gnu.so_RIPEMD160.cpython-36m-powerpc64le-linux-gnu.so_SHA224.cpython-36m-powerpc64le-linux-gnu.so_SHA256.cpython-36m-powerpc64le-linux-gnu.so_SHA384.cpython-36m-powerpc64le-linux-gnu.so_SHA512.cpython-36m-powerpc64le-linux-gnu.so__init__.py__pycache__HMAC.cpython-36.opt-1.pycHMAC.cpython-36.pycMD2.cpython-36.opt-1.pycMD2.cpython-36.pycMD4.cpython-36.opt-1.pycMD4.cpython-36.pycMD5.cpython-36.opt-1.pycMD5.cpython-36.pycRIPEMD.cpython-36.opt-1.pycRIPEMD.cpython-36.pycSHA.cpython-36.opt-1.pycSHA.cpython-36.pycSHA224.cpython-36.opt-1.pycSHA224.cpython-36.pycSHA256.cpython-36.opt-1.pycSHA256.cpython-36.pycSHA384.cpython-36.opt-1.pycSHA384.cpython-36.pycSHA512.cpython-36.opt-1.pycSHA512.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pychashalgo.cpython-36.opt-1.pychashalgo.cpython-36.pychashalgo.pyProtocolAllOrNothing.pyChaffing.pyKDF.py__init__.py__pycache__AllOrNothing.cpython-36.opt-1.pycAllOrNothing.cpython-36.pycChaffing.cpython-36.opt-1.pycChaffing.cpython-36.pycKDF.cpython-36.opt-1.pycKDF.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycPublicKeyDSA.pyElGamal.pyRSA.py_DSA.py_RSA.py__init__.py__pycache__DSA.cpython-36.opt-1.pycDSA.cpython-36.pycElGamal.cpython-36.opt-1.pycElGamal.cpython-36.pycRSA.cpython-36.opt-1.pycRSA.cpython-36.pyc_DSA.cpython-36.opt-1.pyc_DSA.cpython-36.pyc_RSA.cpython-36.opt-1.pyc_RSA.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_slowmath.cpython-36.opt-1.pyc_slowmath.cpython-36.pycpubkey.cpython-36.opt-1.pycpubkey.cpython-36.pyc_fastmath.cpython-36m-powerpc64le-linux-gnu.so_slowmath.pypubkey.pyRandomFortunaFortunaAccumulator.pyFortunaGenerator.pySHAd256.py__init__.py__pycache__FortunaAccumulator.cpython-36.opt-1.pycFortunaAccumulator.cpython-36.pycFortunaGenerator.cpython-36.opt-1.pycFortunaGenerator.cpython-36.pycSHAd256.cpython-36.opt-1.pycSHAd256.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycOSRNG__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycfallback.cpython-36.opt-1.pycfallback.cpython-36.pycposix.cpython-36.opt-1.pycposix.cpython-36.pycrng_base.cpython-36.opt-1.pycrng_base.cpython-36.pycfallback.pyposix.pyrng_base.py_UserFriendlyRNG.py__init__.py__pycache___UserFriendlyRNG.cpython-36.opt-1.pyc_UserFriendlyRNG.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycrandom.cpython-36.opt-1.pycrandom.cpython-36.pycrandom.pySelfTestCipher__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pyctest_AES.cpython-36.opt-1.pyctest_AES.cpython-36.pyctest_ARC2.cpython-36.opt-1.pyctest_ARC2.cpython-36.pyctest_ARC4.cpython-36.opt-1.pyctest_ARC4.cpython-36.pyctest_Blowfish.cpython-36.opt-1.pyctest_Blowfish.cpython-36.pyctest_CAST.cpython-36.opt-1.pyctest_CAST.cpython-36.pyctest_DES.cpython-36.opt-1.pyctest_DES.cpython-36.pyctest_DES3.cpython-36.opt-1.pyctest_DES3.cpython-36.pyctest_XOR.cpython-36.opt-1.pyctest_XOR.cpython-36.pyctest_pkcs1_15.cpython-36.opt-1.pyctest_pkcs1_15.cpython-36.pyctest_pkcs1_oaep.cpython-36.opt-1.pyctest_pkcs1_oaep.cpython-36.pyccommon.pytest_AES.pytest_ARC2.pytest_ARC4.pytest_Blowfish.pytest_CAST.pytest_DES.pytest_DES3.pytest_XOR.pytest_pkcs1_15.pytest_pkcs1_oaep.pyHash__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pyctest_HMAC.cpython-36.opt-1.pyctest_HMAC.cpython-36.pyctest_MD2.cpython-36.opt-1.pyctest_MD2.cpython-36.pyctest_MD4.cpython-36.opt-1.pyctest_MD4.cpython-36.pyctest_MD5.cpython-36.opt-1.pyctest_MD5.cpython-36.pyctest_RIPEMD.cpython-36.opt-1.pyctest_RIPEMD.cpython-36.pyctest_SHA.cpython-36.opt-1.pyctest_SHA.cpython-36.pyctest_SHA224.cpython-36.opt-1.pyctest_SHA224.cpython-36.pyctest_SHA256.cpython-36.opt-1.pyctest_SHA256.cpython-36.pyctest_SHA384.cpython-36.opt-1.pyctest_SHA384.cpython-36.pyctest_SHA512.cpython-36.opt-1.pyctest_SHA512.cpython-36.pyccommon.pytest_HMAC.pytest_MD2.pytest_MD4.pytest_MD5.pytest_RIPEMD.pytest_SHA.pytest_SHA224.pytest_SHA256.pytest_SHA384.pytest_SHA512.pyProtocol__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_AllOrNothing.cpython-36.opt-1.pyctest_AllOrNothing.cpython-36.pyctest_KDF.cpython-36.opt-1.pyctest_KDF.cpython-36.pyctest_chaffing.cpython-36.opt-1.pyctest_chaffing.cpython-36.pyctest_rfc1751.cpython-36.opt-1.pyctest_rfc1751.cpython-36.pyctest_AllOrNothing.pytest_KDF.pytest_chaffing.pytest_rfc1751.pyPublicKey__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_DSA.cpython-36.opt-1.pyctest_DSA.cpython-36.pyctest_ElGamal.cpython-36.opt-1.pyctest_ElGamal.cpython-36.pyctest_RSA.cpython-36.opt-1.pyctest_RSA.cpython-36.pyctest_importKey.cpython-36.opt-1.pyctest_importKey.cpython-36.pyctest_DSA.pytest_ElGamal.pytest_RSA.pytest_importKey.pyRandomFortuna__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_FortunaAccumulator.cpython-36.opt-1.pyctest_FortunaAccumulator.cpython-36.pyctest_FortunaGenerator.cpython-36.opt-1.pyctest_FortunaGenerator.cpython-36.pyctest_SHAd256.cpython-36.opt-1.pyctest_SHAd256.cpython-36.pyctest_FortunaAccumulator.pytest_FortunaGenerator.pytest_SHAd256.pyOSRNG__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_fallback.cpython-36.opt-1.pyctest_fallback.cpython-36.pyctest_generic.cpython-36.opt-1.pyctest_generic.cpython-36.pyctest_nt.cpython-36.opt-1.pyctest_nt.cpython-36.pyctest_posix.cpython-36.opt-1.pyctest_posix.cpython-36.pyctest_winrandom.cpython-36.opt-1.pyctest_winrandom.cpython-36.pyctest_fallback.pytest_generic.pytest_nt.pytest_posix.pytest_winrandom.py__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest__UserFriendlyRNG.cpython-36.opt-1.pyctest__UserFriendlyRNG.cpython-36.pyctest_random.cpython-36.opt-1.pyctest_random.cpython-36.pyctest_rpoolcompat.cpython-36.opt-1.pyctest_rpoolcompat.cpython-36.pyctest__UserFriendlyRNG.pytest_random.pytest_rpoolcompat.pySignature__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_pkcs1_15.cpython-36.opt-1.pyctest_pkcs1_15.cpython-36.pyctest_pkcs1_pss.cpython-36.opt-1.pyctest_pkcs1_pss.cpython-36.pyctest_pkcs1_15.pytest_pkcs1_pss.pyUtil__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_Counter.cpython-36.opt-1.pyctest_Counter.cpython-36.pyctest_asn1.cpython-36.opt-1.pyctest_asn1.cpython-36.pyctest_number.cpython-36.opt-1.pyctest_number.cpython-36.pyctest_winrandom.cpython-36.opt-1.pyctest_winrandom.cpython-36.pyctest_Counter.pytest_asn1.pytest_number.pytest_winrandom.py__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycst_common.cpython-36.opt-1.pycst_common.cpython-36.pycst_common.pySignaturePKCS1_PSS.pyPKCS1_v1_5.py__init__.py__pycache__PKCS1_PSS.cpython-36.opt-1.pycPKCS1_PSS.cpython-36.pycPKCS1_v1_5.cpython-36.opt-1.pycPKCS1_v1_5.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycUtilCounter.pyRFC1751.py__init__.py__pycache__Counter.cpython-36.opt-1.pycCounter.cpython-36.pycRFC1751.cpython-36.opt-1.pycRFC1751.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_number_new.cpython-36.opt-1.pyc_number_new.cpython-36.pycasn1.cpython-36.opt-1.pycasn1.cpython-36.pycnumber.cpython-36.opt-1.pycnumber.cpython-36.pycpy3compat.cpython-36.opt-1.pycpy3compat.cpython-36.pycrandpool.cpython-36.opt-1.pycrandpool.cpython-36.pycwinrandom.cpython-36.opt-1.pycwinrandom.cpython-36.pyc_counter.cpython-36m-powerpc64le-linux-gnu.so_number_new.pyasn1.pynumber.pypy3compat.pyrandpool.pystrxor.cpython-36m-powerpc64le-linux-gnu.sowinrandom.py__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycpct_warnings.cpython-36.opt-1.pycpct_warnings.cpython-36.pycpct_warnings.pypycrypto-2.6.1-py3.6.egg-infopython3-pycryptoACKSCOPYRIGHTChangeLogREADME/usr/lib64/python3.6/site-packages//usr/lib64/python3.6/site-packages/Crypto//usr/lib64/python3.6/site-packages/Crypto/Cipher//usr/lib64/python3.6/site-packages/Crypto/Cipher/__pycache__//usr/lib64/python3.6/site-packages/Crypto/Hash//usr/lib64/python3.6/site-packages/Crypto/Hash/__pycache__//usr/lib64/python3.6/site-packages/Crypto/Protocol//usr/lib64/python3.6/site-packages/Crypto/Protocol/__pycache__//usr/lib64/python3.6/site-packages/Crypto/PublicKey//usr/lib64/python3.6/site-packages/Crypto/PublicKey/__pycache__//usr/lib64/python3.6/site-packages/Crypto/Random//usr/lib64/python3.6/site-packages/Crypto/Random/Fortuna//usr/lib64/python3.6/site-packages/Crypto/Random/Fortuna/__pycache__//usr/lib64/python3.6/site-packages/Crypto/Random/OSRNG//usr/lib64/python3.6/site-packages/Crypto/Random/OSRNG/__pycache__//usr/lib64/python3.6/site-packages/Crypto/Random/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Cipher//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Cipher/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Hash//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Hash/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Protocol//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Protocol/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/PublicKey//usr/lib64/python3.6/site-packages/Crypto/SelfTest/PublicKey/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Random//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Random/Fortuna//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Random/Fortuna/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Random/OSRNG//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Random/OSRNG/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Random/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Signature//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Signature/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Util//usr/lib64/python3.6/site-packages/Crypto/SelfTest/Util/__pycache__//usr/lib64/python3.6/site-packages/Crypto/SelfTest/__pycache__//usr/lib64/python3.6/site-packages/Crypto/Signature//usr/lib64/python3.6/site-packages/Crypto/Signature/__pycache__//usr/lib64/python3.6/site-packages/Crypto/Util//usr/lib64/python3.6/site-packages/Crypto/Util/__pycache__//usr/lib64/python3.6/site-packages/Crypto/__pycache__//usr/share/doc/packages//usr/share/doc/packages/python3-pycrypto/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:20116/SUSE_SLE-15_Update/6c2040ce40a79bb2f2ee3ede79a979c5-python-pycrypto.SUSE_SLE-15_Updatedrpmxz5ppc64le-suse-linux                       directoryPython script, ASCII text executableELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=4b1a7296afe59881f513d13c95d1b7f444aa82a0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=d53270139452f10b2317ed7682a8654b89209c80, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=d028499297bfd6d44afaf1a6004aa3754a7934a0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=ff4a1267b4e7dd7f1ae4c2b5deffac9a966e2c1d, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=69162f34afd1e89c1a34e2a5d7fb74afd3c50cbd, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=4c502b55b1e2a8045425c5ada6b0bbaf8b7d166b, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=91e106e0a21e3ffa9bd90d913a984c53b6f207a8, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=72ae079b997e1890d98c59aaa1fc79710324e073, strippedASCII textpython 3.6 byte-compiledELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=e07837d67e5daa8c32071dafc13c3d3260b4d2f5, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=f9c065a837a71bcb701215a3d1b7848b06c36a0b, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=ceda1be316e78279112ee714251d9d7b044cf56a, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=f490e078c7cb5b21d3d93a7d08a2b4315cdf7859, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=413f15ba11fff1d4261fe72ffc33eabdc6ca5626, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=07592eb63dcdc41be826a97cbf92cff8d34e273f, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=175335cfd161650e1301f69d67bc4d300299cf30, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=775e77556c3773050bbc20801b58901e05f9b06a, strippedemptyPython script, ASCII text executable, with very long linesELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=cea6872ae80b704ac1aeb34bead4695d4a919742, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=7fd2457154b6ae36078161218ae067b570aa0ebf, strippedUTF-8 Unicode textPython script, UTF-8 Unicode text executable #(-23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV[`ejotyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR'QqH]6+`utf-8f4c16d68f451f0d49c83c3062ac5ae550b8e13acc0a6fa817fb47c87cfe4b686? 7zXZ !t/*]"k%{^E) `B5föB K\s\deqcZJ^r`Mɯ!޼~'!K9_iź]懳v&C E{Y?+I}!6nJ̤[\b3ܢ:#2Gd|.]§nU T^0~my_Pv?]󗋓0hsFҶlE{sT7CKT˕Ɍ,$Xm(q<;7.YWR9[(7/׌?W+ "93Q hLu9Bb/ DBU8Zu'LH# ; ck-I?\βRxmFdllCP%ʯ+S\*Հk,wD)5u$ hP@l/14Gcy }Nlɍvlm'2;b "]z)F#sLZZzV{)6m(/&2B4IFy0g <{Bir53=Mnc :rܭxa^ ?Mc:ۍGd U9؊ۗHLF/1ϑ-20aJ@2 ٛ ſhՈT/nayme{IgSM"6*W öFƧB 3-L{Cc0 S O? ְNtZhNBC TN :L%s` Xf[¾mrd@XS¹ Bo Ñ@mOy }0 j%A;lZfӺcU JV^4-ħbßABwqv2^4쇁.QV[9bfRYuҟG*{޽!zύʸӴdEx[&"4BЃwbTwziPwj7[MIy77M@Z/a+ٰ;j@>ܫr<1z>r"d ͼR$&.2k-ڣp!هq9S=;mZ^[Mo\WR`L[ J_K1JOkY~#0WjU|Qj;\5p}rI**:Y7BИa )^D6D ЃkT.8oa`br i6:_GܘCDZqhk9;HRY:'֦b&Xu# KqE(1'eF+\Hʴd(}Ҿu+?#UU8#+UwJ6;@})`f'I$M_/9ԳcJ2`JxBdq4ἇ6X9 ϛ8$kxE<҄{5^)JJqIWp}eq^(J^z$@j>zs0P)X!zGeQH0=b%ZqHy(%R_W|x5_W믿cxiqdgg" ,ۋ'5!3pߩߡ6߰L\7"cӭzp _(}zE|-tG T56sYhFi\e_,U5tEMܑ&*V@raKZ ipI).Һ n`+A vm1ՠE[COI-dI \En'~K߉*G_6]co+癸(߄-E%%Ѥ ru.:ꆚN5fUY+vHnq(q3S$Egvk]J#[DAӯ@?VR[`2L &jI9B/[ k ƨmPzI0oȎ" WxP,s$ T-Ca\úRMp voA⿝1So+ owC-ouU2T#kT5}~%TFo> V" nh鞩2<&[,m V[/Lw8ƥAN<08GT#~zС#R3oC~TvUdaȾ^%r+,Q􀠦:94i}), C*H[ چpzҽ3QwH8O=,FO݅l!GUHdO"+PB׌wVc@Qu61ݞy nAmTRܩ3/xM Y^d 4MB \ҏ*~d#ξM쒖={^p ~O>K51э5lubs%sZJ?Zh`9I$FoVb_X&7V]L>p۲ܯh%=76[Wxq@aE:a꾾V 2s[Ev/.K -eB:N Yz9q)К AP6`A[^("_k0 љ ޼xڑ7,sJw vov(^یQRVi$_e8Z_CvnCÞ,'>,)3I?SlDAZkr^o̕džR-b ݳ=Q;4l ~,Yy`@U)M hCyhE~Q"5p xۍ6 )'EVDQܒ55 WJQ:-z?+?싳c9ާYbq.ϯ6^]$(2EFIT贛7wOov|FGĵ,i(\2:,!ZLJ~fe$$Za~NPa]%2n)f X`]>+ݨ(,GoV5R~%XOJ6?L*bI5\|?=#NSGgܬٰZ3N\/s5{\Z'X?óz8 Wׂb#TOYǎG{apk| Q{j qtb @Zq0grOhl&"y4yRcAyLs9wK<@h]֎Ibw2 ~b~1dǪP85"U苷>Բ4<;D 9\  7 (:`JZ 1 .3gV/LÔB)jYuDעUJh0v~`Nf^XddM5Joغm3`]˵zGKuv񯃨 Gp,ӊ;VhWqY(40RnMZ$M0˄GK,W'+L=Td]!#?ό"ѧn}z7k|p3bj@M,cUc\Ru<2ç8acÒU޸Ou%s~c*." Lԥ.>_Øozl!4͍JvU>/SlLNAba,-|>^%gĄ(8Z*?QzZ=ܽVS$%~ a_ة}M=פ;1_aQp^Ԏ4w$n$ E2X(Dr\=4`6x/3u>߹ Hyܷ )A\ p<4Dk_?xޟ)3.G!wH_]Qڧ c?) #g^-%-0Ks[^dxNNx_deK+DFO+vpEK=`%QBL/wý6A̦~6<lɟБ&/!7"⚷ͮ˷X}2Tv(oC\cPAh^ms)Q)<⊇N|rnzDq|w-6b~w^7bu{)ltcjt#d+BeTExzu0gfDl 7,@R{GèAJhy$jע$NŞ HΙ@,@'{/HpOGybSt!q V2b=#79R`9*>^ޛr+Q hjm>) <q*X'dV~:Lz>f z0fqdcgg)yB5볣U_Q0'Ro@Ey).~إv Mhvb?k!X< (`Hhn531R6.^8tER6~ ػZRL ZԂHD S 7kB᪄?Gs*n~s{@+{qE(ܰqq! a~Ο~E^3۬QmZM&fwO<_VkFۚnݾ>DKk#A9x8YU*c(yk˔h߭$N .cT a)IKELzBAL, $b}fgԳ1϶ ܏Ԁ_Py]N8X,?uB67"7ׂ4vSRW'yGwu̮lk-9<'߆k菅U&̮O5s.h5"#"rx.֯ .? ="IDEVfBo_` aaqקP1vmsN \Tb2&_1e/Bӱ{^:H,P>L,[mX3JI`ȑ逨&öK,Wv߼]#ƈ'bL%FH5JQ']$/֕n%-"5ӟv Ճ@b9QOSnjKc>YfYcJ }%BVM*CB^Ya~x͂_ y+9uߏ]X`ͯO]cy_C!&:j>FdOW!?UvHqWl8m06ѥ=g~K)IKǹq^0q!CdXSyMM뙣>nMtfZ^ix̷5[:bӛJۣT! ? 65"142_FRjpCd8rʻ/4.6ʿ@pMAqcH  hEEЎtHbT3FeCÀw__zF.k]Ct.O,LS:<57EAUt6}?Xl|` t1X}uE#;ξ=6 Q+ `9 ӕP]-jZ |oGR8z1JҙCiz!1x :ӟ۫7g.1 @ɐeg=:_^ pQF$I:T3ϏӵƨHR+gr(!_LP$ϖ dal2K)@B4V.?`x礀lQyIuh[ǗK RyTm)R[Q= 6mb9y#޵hoF@!EJ3x'5vc?ٰ3% f|h[;Xӷ]*X|u4ڜM_p"hk؈.-9 `ڙub ?H؞]|JWa֟|B1:¾Oaig+3c=e><3URŜ/Ůq`̣DOsZ$I-"-Ge['`=߻:fy|r%'F.Qn 2yJW\<[ռӵ~qo55^PhfqkҌ!(FѮvn7~-*&O 8z5a05-cd>EH|OޣḰ'?tt)鴌r-]e?U4$ϐ*-XWSe).VV89-ħRK?޴Ɉ+ؘ h`暒1V&xHe;¯Oi<N-+W!hZ#6HQ3o(]$ŷNu+>$>@kFQ-|^#%V1eF`D4S".;p 0Dda#&kZyhNBG)ix D!;v*Z(^ž"Jle^Zsy b8 +|n"%;Kvo MP#^ۊu:,L=\#3i1dNKTo)~z6q (UC\@h^`2;T'36ɁyB {QoJ~;M]bo3IQ?`Ԟ8C,^e"&F߂t$@m,WBs@s^ k=_8!cUV*Y-H2DfPR+L$!&0`Wi>tC$G֥ L;#{W!{o!O]77 "{[12`(I*+ l{Hx[^acyh% =ucεoʪu@_ %dKt\6lO20R>cSb,FD/-[tJFNayu<\K WsD vhG-f,\|jڇ>@S|wuoRKLH[֢۴Qͭfa1*cIw-{]oHfIϢOuDMNÒ]x?:U%t9;| ENed}iȯ;5etݰwW н= 0\S b~A{_+~,7"܄NEOR0хײ0NobxߤNW8j: RuG?̇}*gbJv>@0pg JDMBՔOdٌx HԄӴʟ@mzY%R*ZhPǵ|6N?]]xB Fzhǡ"WM;¥aۍ+ &V#Cz,6WQQ;ǽB$[ŘaMfnCI~Yo<**=J~ fvl?'Yϩ_J`,ZYf#/) O\Hۣ>EMVx4x93P9LbN$A&iz&8wFU{^ЩV%-% u$Mv߭L䨣Dki h7eLf/ʼu"Y594BSfEަ-HQdM-}]r"p3K&:N7κ^s%{Z.7mIј㐹z/IxOLUI4m˄'ϡv< 旳7Kevǻ0BcURVd-GW_V:j5Z^~ev1a]S s ?6KYbnI|cƻZkrEg5 "tZF0` lI ditm)@2cdNe1ټ<x\|U $յ iyp*QI@|ovo Y`WslH060*d\ǢnA5MB#^hu#&yO@bUהnN I#vSxS;dN8ݞ]zK YeD-(N3d(t/*R3~ʍ;B[Di{*d.x;(Ti \B !ڍ[g]}L"fS[HG. 5Gpno8tTI9):SZ JQb5X/S (V1 UЇyOFm_6k =P,&VQպ$RA 6OoW7$mJ-1DiZNہhBܴ\ 2t^Xy=kcfVç"Z 3X:3>] j`j;C\?Pq-|+xł<5ٚ:&kbb53-( :hE=U_7Di zW=_lDɖkԩN9"~ɰx7AJ׫g60"J~s o&mYJ%fG*A&k&xuf;J܈³K>81V˔o 20ʥc9yENc+L @Ի-f%= {uo99 T כ0` z> /Ca¾ Ÿe;"j!IE;"~ZTa$Q0C 1VxiVyx!D-MR]{CB:MSDin%d!F$w (!B𢡄q,#i.Zei:em"ew(,酤 DzB~^"A\ P9-*>CLZɳsyrĠf7bGq;JS$"F>y']g;iԋFYGZe>`of0 ,7#%gzjjuKdMI{q䊚Ȝ aj x ZUu mcN61UY 6|P_kfU^CDQw._j$ uu)~=dS\+WpqdtgyϭOA:i)xa绰<L57}04F {LG APd[Nf+RU$N: k\IĠ˼Xatuǰ4O%e=h5o9C†qcɅ?go H3-M:O*;^׌JDBop04cj͑e*Bws=hjƧKe8@قe?#2W3[Ovƭ.6Hbr-ex"]M&\OyJ)z4fjtOzk# %Mb\=L,0*Wn!=ecqom`W蕀ة ? $glB+~|U?L[Q80$6GUF6F up{v<"Ru̕@.Qf% ty( mFVb v};TCU<+!:3˥^N6jy(1+;mY*h**MYN1?S>θ) q1T$%[R!s%;u^fAޒQ!=ܥV5CjXM+ݤC\ ixD$l>^Š d8J7/#.)icjb,QK~L`!vH@*M{ueI߰Q#PA)^{[]e6[%5?Pߨq)CtFTTgV YRT,*\I,EdpE|348b>jS Tz / 2(2C 9x.ҿ# BB傪ͳRrN^.˜/0[$.O0䎋ubJٸgyW+i!q 3->Z2y[i~V E T=RG>~0ˎVN},֑H0lᚾqy\vHItӺd/XIziNzottؒ ݖ:Uo?X_ aб |$rnGY@.y[$B`]y+.@sy|)LzV@eyɔ{cm>|3&pBOL\b!7&t`@=c=ۆE/1/7kdzIϐLH\_ɭqlX[[< 5|GhpoZ?:"^Ϻ5d9҆LѦk;t#vKWץ\Il#^l^!,>'_8 z <7PQ'IUo=` JXi4}O|7a ̻0NAdVε#zlBmW4oM2ۃP H*? 2aј8"[njF{>oBVHcU aww^;0/7`tC"ڭB·-eeZEbe8'Ve,J3J޽O3p@^B]R Yoqomaf"f+Eqs)gylj_\?cw;u4`1/1N1<ZTG\!pZL/\R3ל>ݫfbA#{erw ;)\8(MNC(a/5|Qfo9\}?_((,bp_i=fEq~ %6lįQT8ΰ-*]tT`۫^ hO8aM^L]=,]dFch}ft?mNX@Ϭor'dˏaHPꡥ_%gg$\c7 Wl%CC`v[2",}6E/gjiyQȼ't0y'O2.nuuܡC2WS^@g5y^IVF&(0am.4>^:jkrdCYyG8{o[s"vpޒwǙ)p3T-Ct){"1[0=$}r}^I­+Zrs_҃II_@ H*P"~KLvr'C=#xx|\=sʆ,L5} w3Fhpx-y땭"ƒ)@· V5`(0b$Ŧ9~V%||UxKޑn%E؍hB;`/PC0<"+vTU|63Iάl d9[d@-:ͯIPiyȾR$<{B_w*4cUsVqÞWDI][zYXYJtYI}V9:Rw.>7(>8HjW^rݨƫaƱ'xgRX*-n?艍9 dxv5?ԡgD9p2׏)pQ}2` vCyت-Z*`W v) q378oInq1DZZyŗD=_.rqi"\I^1Gk+hԙӇһoDTB5S[M{h?.üE|R4?m^V bqh/h.Ynxegՙ]44Zm Q7Yc4Jb@1=qW"F"qȥoON˜4k)U]t* JQ^Sc,oVN!rBnA =sB -#AṈU`?Bgm&>S)bR 7P*5sc8s\p똼&0OC R5~#Qԕo YHUD]5h&trtBY8e:SE_M4)(EZ{jT1 37?$"U揬O:I2o:;($ts\<.nBݶb."'HfrLq x|M*M8Dx}VyiP(MC ZmIw;C q]}U,Ib:[ԩ=`9zHM:A@9<S`ČR(Tg>'~-`ccւúÈ:t P8\/j.(j}F8VZ8m-s}R]g"!iWFcvw>m799̣!8EXqd*R=m5XHX7 +M2bj9w8HN))|eӊkM@G0B^<(A w:01ڲ䥖Fbn:^Ű-!X.Y^˕g$7c8v!Tˇx]! 8X$A5D=fi 7ӤA!_~gEn;27@sf& ?u jP-oTNFqEo>:"?Pc3yee9mWFDmmSZUW_ҷl|2p{Arϑ~J ք/~F|hdOOlz 0:+eޕChs#Ho%},Uᩗ2Wv:6Iz=VvqIf-$| yG&GBwkRQV8!jEj5=@ z Ady]dkՖu6ة,CѵbKaM2b7_&Dq8kŜשQ>A{pUP8++/*>N>cR G{c(2s11f"ޅsƝb k7 )\b4r ;.Zfb Zm8"˺G Gg!~*ee4LGk#W ,yφODbq<.@m<ޖ pK83řSs.JZ>xtK k>_VyGQSrΑ9CqgؖK2hrG-5#.mkcG58^*ei])րV͖ Í3x4\;#L=&éCԄQ9>9p:fFc]'q'Hu8iŭ1H٧vM3?L_h,+y$x1̆N}`e{s%w9 騸SUc3y%2+8zח [)@ y: wG]-TȔ;|H`1E+;|-aYiȒ q-F (k/\H}d^zrhcMי$^_xw ʂ4X-2xA&smHpi\[Fao!=G;F)ҩ"̟ kCUUEͲK] F8\.`Tl! ;4MW!y1z4ⶴfjJ ?%>ʀ0hu;QB;V+7PFQi[Eo,%F*GsSr1NµRO&J靳2rOݓa 38BH$r`#,|Ɓ)1Q~V}I6NGЏv EtV4ՈOmHYW;_{\NK6$ $r_7CW&4%KT wR|倃s>5$*>T:v>A5誏Ho~B2q>/cvآ3 o;AVx}pÊN!6"-A(b$R3z܍JQ6nqaM86\v4v*~U'nFX g(^O8-(;AjX췵%YfW~~ٿrmƒʃ^mp?T =} 7@"k>ilkɜR;$^$kQMyf0e2{<␝Y98~vqd? ,7J=FXl#cR Ǻ!_&sY񎃃r qOaKn2+.Z'_,POcW- <.Ymj4nA9@[:Sw::o1땏j_'Iuh&sBd+H@s4q6𬿡yOT GXq7*uPK.f>!ux\ oHFBJ2p ϭ ǫd ljTf%9y蘢< aa50(9Ҭ_.kf:-?Nvy{ujtZ?pΟy~aF*6F;+&YlKۥ{UZ$ZS'lEyP2U/ M6ZY0nC|nq΄VA=t ˴RT*P"FJr ˔{?X7gA>bXSCP[vA7יI";\i_23Pk&u}9:0K`>h#X{$y֭)kN73Dt@|܁z n^%)h{ˆ_1'!LBN􊎇`BrAlWlu݊?6)W Ҥ#g?Zw"Ăf؁>KOS8&kXbc1Z ^fpQ|jQK(Ng`RsG`ē/:g3c\-!L}Z%{lr%71X&G릱nwUGo4|.ƫWZȴgK %EH"`ywj])/OE5:_1:HNh:njtPv2wS+x(}MiP˲<FBXS&0/J}#;o;?||H^9_9xۻYƳgtv۹SC_馎ǾBY>R}lÅ罥vϻrי=$Aqj/#-Lmrr.⏜V[m>Meۉ;8\'UqfQ\9oq V'Oek EQq YF8QFHAZ5Hؤ"hl}ٺFt޽T<vz}^ag:Ywn=_!tf?FYo_W::ʣq3632 ~4Q XȪ+yWa#&4{y=P&94 NFUAʮU>%p:.]5K.+3g']d<݄&v|*:rSŷX8uc>8 ]Q"{/!De8xu@׈ޏKN[*{ߐW]^G?hy]r퉯1z{[Mc;uw߱GWY"S`{+LEf5 70{?qCk|> JwF$ u<5ՠ=s&}MRZ\kaFr ^Smjgƈ~,jV #r614ϛl<;؞\SR?a5Ļ&G8WwvQ zajKAru,U =34Gfh (k?#ȫX2Joo:c w!z 2F;a MׁgEN$&s x? 'GY:ux>㜛@X.2UPI"ߠHjpmsjmh㱋bꈵhG hh"W+a e릖5k'чG}kBJ 3N4la-PX VJ7>zy NWB%@{Ɵ Ĕ(U?ؗTZx[$Է,sw]ήy0G>0dEȠ`T>י$1,Mne sKeIPc̆NZ'`-oi|C~3~!^Od/n:a:_q^g濚ِRTI!L9~o9OqϕJY:@"08q7 mT$ar>6ED 9*̚g7ZLJOGvF)dV}@T8@I-;u6SXdѻ(5^D:Š4w8V%7/K8Ira+ю*+},+V9\;bfeİ1]>J@] 0oϥS. }^tt:JLY J)*lE"K S7Ems>&uJtH"$^CuX`By{+w \כ.F [b` H䲊Qx5EIWU7!%~mC"8ealWgRTX)1wS1E5}Pׂ-Y绬"F2j^hUAV*E ]CǐGF Qvكyy3pn'\jK.rGiuZ/Y53yY*=J0kھG݌A5i ɒ Ӡ-}&`積td9q) XݒRTO㓟Cץrnɲ{dNXUr@Puh("Q)kי43?8& A%f@b+k=|^@cK+ׂe "B]jPjZ '٢+RtSd3R"` !aƷł|v詺 j;H\}nSY8/g4$}X`ww̴V9MA h8,]柅sGYt[:@p'EBnˢU$qUN B8X~B>ɵw9?!nK_ּ9M ^8h՜@tkNm?kHd* d Uә=h?И~K0^uc\B" T8^rv;7%SӨ8䍡0 4 1OL}I[InOâ58[+386_|Ls)̦J6D0ŋmJ꩔_ |dpL4G0N$ 2->G_bhQKCpo%L5y,wlcp;TAJޏ>dA4?ߪVO; D oc)7n` +U`8c*YmsؘܦͰ= DO}@ 6uزY`!ZETe4{XL.|q+"Qy\%tuC('yzVԄ'9l!6aE>hٷid7gKь/ .6*ڌ3#箝#syqE1U#NzŖ>u-+)R\U⟙65!x@Ĥ$ Σ|g@?tSceWapcL!(ZD/ѷ:KsGby40ΤejdhqtC[ kZ_$P?gOZv(A d@$n/P ia<2rNLaRJ~ 129ͷʗ6bEXb|8 c}a$kdB[}_*A_:!lL,Ȅĸ"26S' =5+u&. QnjUzfM]('t+uCېsg=,v?,{7,_rNb:n}4[f ;vTq `զڱnwWSV;=*;.ŭK Ygh?Ax Naz ڲP\E ⦉T?hq6Hv[βt mRoe7TArRfs+1+hp4v"`xk {-R0Mʤ[\+Noq|3`P7s@cِ_{no1Σke %DӟP|{C#RqLg`苪Du C+ pJHzKҮ?//mGrҽEĻ<寖8U3w"{yUX-eHy߽}EL71f ]Qر/DGZǖFTK< k=1Whm_ %($ ,ˆ)i;R/D͘MSoD!1)wKr֏teqi~939d!y1M0J㻇!9@u02k'M O+/-_]ԅ~![(Q0:KwF%[%@Y4J.O<_Y#0Α [)17:20bOm$5 oB"}~ 8?;-31㪈X{u9Su!L!)_{@cBWbK62 x@# B50QU[_A;?3S((Vp4 .:SzP];aU.r CeN& Ot .c٘ !;~?0lᎩ|oNkȅɕѧVROى;:"}G3`"l]%/v]puF\+G׫25 (T v% ^j 6RH|?vnKvf]E=謟aRȺ$?% @ .Ikq lJ(>Q8oB!ֹAxV2gVV}D-OՑ (y ѓ ǙvRC"aXt?&z "H뷬4`Qa<ùaaR2Atbhigx(W݃hgZ9XBveG^ V&ocqfRL}M-Ibeoq{r13y0rtX[ QǯƟ[wNtսxDN^BŻMUvrW1xhF]$oUIխWjVhޱcd):a 攻XаK"WL[(+Mڷ#--S[[aDJ?ZCCOP8ɿ*7WA,*_T$BlKT- #~tG!Zr7ʕmB*FNO+s?qM\FB[WlMB]=EȀfznGQ6W7g6g?ԙe7Y!CJ?Qvxٺ_] 0zZc}0QgHɲyb/5_S3*K[<2$s>"l_vY)uo6-#X3yVGva`Aw>P~._z]m~*G[6׾%WtJ".6zC<7˔*fQ`ݹXjR ټ1zWN4}Sl,'_׵`BG[ 3Hu7t^%r"û{T 7OfըWLf$.ty {[u英jg쀦i?;b3cf6iL8Ή$Κb?14qdSeI/=C\y-0v'{Y{%*ƱRzvI\k (|1v:s0uq_6n=ją^<(Xlc-"yM1ܱ4eތ ;Fl\ "#i3QGy[=Cqc/ j9s}?W[HjLީYITZn Fy@GL^J`TSQ6^os8wc:N{.[ ߠu([?.>B =Pr5v)!^w"Hbȅ&n4HLӱUlZ^~'-^=)!džnTȱkKeƿ:<.Onj׳)nl5މd5qFԇ؄x<a6b A}d\oa<cn*^_C#&seN.ˏ9:9߼~?)Ӹe7>)LBJ>C72Y$1h!O;J.8*)g*8R%rd (;A9pP 3$z  Z1U u3Nw;sh5zTŔ1vH0 yXF43 2P.B'^&' TEVB|U`5't׀6aѻY0K1ZIc>[L,or_-8_E򪨼!ŷZ${YNE\kr':sDPЅS~PU>CY䋼7@H%CZ$ X^pZ2ciJJ|jy\ jrTls\1z<ɝ%b@Ļ_Sg~뾮g)D{xPA2{%ďbru[\E2ҩ8*j" 2裺~/6(/6ͶBc35*j *-[Iz7e[J1ώ`iAuX׮!4O Jdqov]3K4 RHh];%#aٗ}X|rdm?Y 9k2gҮU,SEgd̑O'nXֿxTH9c<hEsW̴}~Y魦җeȬSѽu&.˸Xf SPbw->xqWu:;"^IDh {obhE$<'fz V<b< $8{ A߷<-e%-`0qf<&nWxH͞ﭢ5PQ55؏{0kd4sbsUZQ䭁L Ƒ}n+@E8bħ}30O!XMޯt50%zf`mrb.KuΉ?w>}xl/.-m[=q0~XZ'✔#F+#1LJ]'>zx5Yz/IC O}~¼7#Dn3XIeЯ_&Sj`fWSdi*m _(pHpؑnáUԍɋlğ`6'c>1V/yO(pTk&Yek0)nHA=* MO/h4j]y~g!׃%S? k ) ;;J˷XQqV^:qHf* ,G?[7k21D_߇p)٤/:1`Ot-zxN"X{-y Uo@bq)&V<ŸL⩓ > V/>p8Qd^$=F$MnljIK7 mM,Bdi:I-^4IBHR{tS|Kݵ37a>;ڇr^ ؘc4W{ZQ )t! qTP{}|' } e.!^9X˒ tB͹W)U6't49ڡݧߞ5C3t U(\D sEvrHƒs 7!,m"IKGtJ aɥd,Wn,!L<-+ȯ}gC܍|ByΩ斿q`S;,pb:k Hg`Ŋb\^(N _ *O"X&C2lO`!+[C\jg0%ުiK +u,o3PH>=V/|ckwqstj`x\Ԓ?4E Xze y&er߻PHʼ^Y"-4LMF6ON}1ѮZPCY#vB/Md4n,thqRuaof]R1^ cX єIMh")͓gt$Oba*Qiz0~PdnBѬ>J.f k0ܺQz,`4^ L8^_ "r!}6}i(Ń8r9D(ɚ3G'V 7US9V񞋪?*K(v> wIXѢTUb5w`YOkv 2?~CI?Y"1ޫ o]kp%4(_&)/g|*5)L=0KU(HR;鑼9[ ^LE#ս 9 ޷V|wPgL=´!×ũn3/ kuDLHgpUE9ot4\UJ6WJ6W Yauĥ1.@9`bj7p(%[R35Ѯe.V'qDK?!J a-My Ka;_gx;2謪e5`tI6N1LVXm;e8ɩnaLec;spK%Dr^vuNfݻ3KU]%כC5Xsc.7!ݜgP(9dD+(7-хcaPBp.j7܀ ĠbO(3L4ʀ@XQI.ղH` 7I񼳡Zsr6{[QE{]|I)=/ )q3X\aC\:8bsm ]~3U<L`̲4v|JB(C߃v'Bc m1P!ŝ#EV&Alxu*S!_GfړJE!9$R[eN4**\G1W~yOk:5Qj$MQ}1@`fA[RW2鹴VhU+@tFf(ukOnkSo=o۶vgFSEtf3% 6" SyS+ȾѪ!XƇVG5_3 oQߺti?pBS˓ Dly 8i}ƈB7Ķ)[:6~x@4&Q]V)8^^Ý!+jGU}bez9\X-Ժ1葝$#{%J3h?LC^NjR -,X:CQLy_!7afi4ʞD7e:Z;EE0ϰ=*1 ԩ5}楁{?4!bX0+˒y|/G_Y;LImJ\%D>K@ ;@UQ#vd [.E'iВd3t@@uPy-og#BP&opy鲃Dmw5.W}5GC+)3Hȶ8lΗL;p~QS/kq+839pInz09<c&.ʑ< 4=&]D[}bMaLs u]nAĨ "6>sL Oύ`Uq>(=ޤ{,ZA+g#pտQ E2D2j3Qyzb[vWX^L4L"Pu-qR ?_[C7imW>MƌuU+3ٜ^16/C;b"fb41ASv$AR7`oeLwFQO؜M(,)|(.Y*gL[`s$G$4WiɍV4 @̐ \K#29rYG ")> nL[/<l4EWq}-g< /*ԔNŏciNՠjⱷљ狋jqv&1._`z 2Kd/!ӷ{W%NMm- 0)}]=Xfssf J^Hil"~7q{fo,ƛ*l jcHX|ƒ*.!\J!cLHXH "btc՝_UX+ak䭃 S [IAt^Vڮd(j=+s1]Syb|1rKѾRfW倀=أ_BV7vKNw }E\{dE GUn5wj< ЩxW"(C1*FY ml&Yֵw%z-L񌍜'ISuB)>c FނJCD"'d31}`"\g^'~6zXxL Z9FEOWwcD9|q)WY>:˭k鮣M[|6%e#d8h yp?AG~oApl)X cJ#J~LHsYj OUu#KTg #j.Z/譲2( AuyI;eIHkGYx9Enc;U RM!I)7QkHQ} 1[CEV*^55K}s{P n34y;tٟhrs1/l6V Sw9 &B_k}[gyY-%=)t۵*(櫽[I)ͷ"bٺ79L@q:=^~4'[ 6%Q;E}Z5a5Ѵ:=vZd[ZWT/T 9?;( ,|n0ͯEoN/EMz(aQh߼ v{䧗N~0:5E"0a{061 dɪ7|Bw%'/J鶘f6ON2ne}oIxHQW[$Nk5TkbP+ty`D\)ȍ)(Õ79EXI[JV|a}8Kӎmaa~q^=A0-r~rJ@i@fw FY_IǺYܝ52)Dͫ$W DT)?bÉT?wnB M9hcFoJ+XE?c-Ni a/K0!P<5=J-5n LDęIp@ 'fY6su3pFq)JL([@`(!w$lj%?b[-i6D߿3{ුJo?}ݻ$s%_KL?ю> ň +O%=5Xmc‰N+9SԴ0ݤ#A`%=PfW.zUa܎+kA?^6aZP`n>ǽeg= h4$j,a)X@c/Q\O>-G_Sɿb,כ߿ 9!4&Ռm;‹LW1na_V֦#cn n^ɡ&SB tr IT Qv]pcKM̂>huV_gq:OxJvu ,bd`wHM R`x:>Rd~҄]c pQBN|f]@s_ш1ŋR3_RV OW9rďgsC,q "Bdp*sS+h1}p]9-|?<Ggm'`tFm 'k9]C׬If.de]{UN^h|G ٧z|FK&OjzzX 0#c㪰nEi~@) KQz NM] |<;(oϋI> ^@q`fzhbc.T%x`JySN}[ǐϡ`.ϲ.@)[569y< M=˶ [֍+40m4d$)"^>Wl7sKwgR%RzvQaBSk{(m]rV~*]õѴǸ^PL%kGC6yBWV޳#"[-)Yw=~:&}jsŝ< z&,7A콺)r|qs+W^ 1R.'r}1/8H")k\WHvQ q 3;3)DM:_ Kr*GI-I)>ozۇ>6%n&\5frxqM)ϔS\_stJNEګu]gq2Y\osm'rKp=M}˹Sx=b0Xs0{7%hH %= vΕôCuޑ }q;3zeni&-ͷݍ9{A/8=IN4I^{_B-~ϋEQu 0&ND,dfɩ+s"Yp,IRt'd!qJ>b`b^k&yfLŒզq`{0=hw._10{1Yc뱋)fGv"~r/$ 2YD(!?%0 jc&$-Ib@fx- ,}c|; f`hp7f~ae04`Qxh{ŪjY5 MBN`0L?9V_ js7lI\KwwQr>yX ;TSf3[eÚ0Q6@a4H2>8YfIc";O3;6֧Fh?M?dF'ẂᱤK4xlB%;y_LModnwBne͟wóIq0Z c;uBÝ\tpP,. lb?>Dcj Y=P!M=3&jFJ&pj!BŶ$ǪGg@dt#D ZkTv.Fm:Gp<ꡘ[|B5JXixUA]lcTYpG'˳p<o4jbSRjt+$npVUMv/E-BٖV\Ԩ(ɢn D?[/H+`g,g DmTc_K'P\e0yDbNg{=XU67rOt y!kH=5\XqI]Yjv]A0X]\H>EP?蝍%baVh~e(=Lj2yA!<VCJ_/_R}P݇ҩ_N ,2u{ a#DBn D }6<. Ћk%oBi˟PIY`jLutP*dހ.rSm]s1:}&*wkaɃ$&ݕBup(-\n<J1Ki!hW!18tMBѨz D0Q:.zc1/,iZs#?-]c-k MB&.τ|RlY^UğUnlJBD3w+8=S G0t2CȞF/OJՃρ!fS9r9LCuEd:KMlc %(-41NTzyԓ)@Tp=-.{ŬUWq/$w*;01';1*[L>{ f e4Zڱw2w?}_IOS_,hFhS^vA*-]x$;&OT4*tޅ VTQO^sAscհBvkP*|,H> fD৛oƫ_j%:m5x]$1mv< -Ì^MdSTzx;D|+̉ ^v,oCf\5b~U~ugڋ\|{zNM*p*MEzBOi>bt@LEMQi{,A CG_-%*H\#l1ڛ ދyWCv[TEc)ºzzw@abDIl 5WxN4Yqy:ǘ`DLΗuޣ 1 j5#nMՠ YZ