python3-idle-3.6.15-150300.10.97.2<>,hӹp9|"sNˠlz 5e ߢcte5'ǣƪ*' }0Ca/2; Y٢Åa^Q L~?ד;z_틠j6aϹ=NʷKWnXfj&W;쟩 "g2#eh1ƭ698„0j,G"%P8D>$J%`6:9K{OPEN^,sD8SJc p_g#d傀T&;+ZK@K h2 >A8?(d % V48DHa $ d$ $ $ $ $ $$$€¨$8  (  (G8P9:CByFy#Gy8$H$IX$X| Y Z[\$]$^ʙb cͲd4e9f<l>uP$vw$xp$yz$Cpython3-idle3.6.15150300.10.97.2An Integrated Development Environment for PythonIDLE is a Tkinter based integrated development environment for Python. It features a multi-window text editor with multiple undo, Python colorizing, and many other things, as well as a Python shell window and a debugger.hӹs390zp354>SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxs390x * 8]J((Hx[MN  lf`}OIUj$%x!~((+&(>+V  %P>%PY  wOWw616..7v67v5,[60   ^g  1LL(p( 0g 0eJe:::545 ;2t;?  --.M( `(R R LQ>wL;3<99 L1&,&;747*** ? ? ?e4e];_$lMu Y(, "!4`J/l::8VJ,=#2R:"33+"+  **(("" ",p+,((O(_dadkk  k s F s66 d  a N a\\ee f5W)Wa.e+J.e: : 878k:7:Q)Q$$$ ` &B&&B<_6U<_V r ( r""6N-k 2i8"%tg;w! u dQ#xf R8 vH-P q%E$  g-UemB  3P%wH$ y :Np0NRdCxj \03fV:+' <(%x!: fA큤A큤A큤A큤큤A큤A큤큤A큤AAA큤AA큤AA큤A큤hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh@h@hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh@h@h@h@h@h@h@h@h@hhhhh@h@h@h@h@h@h@h@h@h@hh@h@hh@h@h@h@hh@hhhh@hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@hhӮa2a2a2a2a2hhhhhhhhhhhhe75df0b77ff61253be457af636d5eb7c55a3ff2b6a733beea844d2b294972ebfd22eea091d1f8f7b11a320cedb5acd822469c0c7ad3629d1f50f6fde6194593dc263472e71b9b557264dd066c5f06ea76d0935d25b19b92e9ac7bc49de82f15763485c7ce263c2c8e1076c52d6044dc008a75794aefd670dd259e75b1288c343251aa57bcef1bc9567a229154ee1370395c03cc241fb814555731338d2b695aac7a0cc61079c6e2df53457e63b413e0389f2c0061eb55e80229da932c8f8dbd61abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8531067a78ad392f25631aba1d885f40786cf5f47854577162c9f90ff1f33164c7c98d566a13fd599d1c11a375f387fef69b6c595c4f18c5d88c188a860be0e55bfe9c9b62bf4a4b1cb8419282f78bc98f4cde453a0d6bbfce8a7b76177a1af94ae74eb8119aa88532734a84dd782830f8f5cb4dff01cfa4372b1e4afa35653134ad97f34e64abd93e1e32aff017ff8914e3204a76044f1486bc9fbefa07bfdbb26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb765042963d5f8d5d1259e9874a263a6621ca6dd1d57608faa5f28f7d61f349583e07814a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aa37484901eb40eefa846308e1da3ff6f240ea98f769a2afc3cf4fdba00327ecbef9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65afc11c3d934f8de7d3285f616d0a9129f8113b158157501829c2e452101d067a49a59e2abf1840156e9db8f85a38822fd56ab79a139eb95ec86f1fba1bb87326bfcea17dee8413652327d3d1f7565ac6b32b392a5e424947ede2088e27600346909878665b07bcb76fb3222ea1b4947a553ad0af76fc12b31651d1707980791dca932fd307c4bdc223ae39165f413b2a530b2dbf6323e8a272865da6627535ea3c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae9c89a3b513501ebace8e428aea68dce39d0af9f29196e08fc9ea49c99605e79e72fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df893f8058df4fec56eb20ff67ff84c86fd3d9697e2384c5a290ed696f6d3187aa45f8f55514d26791588de02fe685af0ab129174b32ab93efa39faf6140b6795d9da53a4cf151c646b83a495aadc93bf50d88ed8ed192bd165afb5b7e259b978148e70c90d756491dea3715e0dd3ade7a1954f7e962c1b55b6bb4185130bf56a1eca53a4cf151c646b83a495aadc93bf50d88ed8ed192bd165afb5b7e259b978148a6feee60635ddf1f6a99f60276ac569184ff1513365b271a52c5057aa14eb60af0160ed14ea61b2e7ce1414ac847e07f601da1618099c50ee31f9edf92ed054aa6feee60635ddf1f6a99f60276ac569184ff1513365b271a52c5057aa14eb60af9efdc85adbcdf5bba065c23df6a7278fce30c3d4cf1aa18db09eb4fffb0f45d9727986affca4e90b9e58d83ab8d0b614f5bf4368b34c702cca11bba1734add7f9efdc85adbcdf5bba065c23df6a7278fce30c3d4cf1aa18db09eb4fffb0f45dac818cde6fc5369ce3f97f5b8c0208c37384b592c1cf919c922b8884fbd32af0953ceb6d2a3c5060be952f6ba69df38eaec98ce3928c1b70bcef7b18d090b10cac818cde6fc5369ce3f97f5b8c0208c37384b592c1cf919c922b8884fbd32af0cb341d37f8b1377f61a50b0d20a76820a00f9981364b8418ad9f36f58e96fb047bab9f6509ee573f90783d958829559bd411957570397448f756c1b41e8541d0d78c6fc566a6e1833183f769f1387fbc24421759875d91ecdf9dfc658dec6b496e1b9d42f053ffede3faa7ce593311dd3307fc53094241e410faffddc80615df1fbbb2919c22efd1d9fa6203cc653ae9525fa6c69b69277baaf4ef146d5e2b956e1b9d42f053ffede3faa7ce593311dd3307fc53094241e410faffddc80615df091f335e9d91b04f69df29bdc3e774ee7586360b296335f5beeb37e360dee009bcbc550d7540cf50a16c73fe518006ada207d6d12fa2354522cc132701235de2091f335e9d91b04f69df29bdc3e774ee7586360b296335f5beeb37e360dee009debdd2a93f5154944fda4f84951f8f420ab17de392c1140cda7c32718efb3d225cd5bf0bbc9ea3d13be3cc51eb16807db7fa44e91d0a9e1412526f96051d4d86debdd2a93f5154944fda4f84951f8f420ab17de392c1140cda7c32718efb3d2235f6239ec7fe02dd6c4589aa2900ac88d83ce90e8f6ba3e139c44961d28f07ef9496d123fabe96f318e9296a91c63ec2f09000d6267c14076d75a4486f54d09035f6239ec7fe02dd6c4589aa2900ac88d83ce90e8f6ba3e139c44961d28f07ef9c78d7ec9ca7b5df6bb9c5fbd0f2102c42d6a01382687bfd6c31be2e370477c233e90b26e0481e53501bc492fad9d8a3a6a8f2425aa04d07354e7910066da04c600dd117f09c33ca7ac355ec9ec09d64f3a1e4b1f807bb6607d0ebae3a4d27b576fbd8927e98767dd0047baaa6f4bb64b57b19f78f924fe2c2e464ad70ee76afc597c77cb758f61944e2be3d9b83d3e4de7dee0303deb85e068cc34eb398fc7f76fbd8927e98767dd0047baaa6f4bb64b57b19f78f924fe2c2e464ad70ee76af7f8530cbd69d6ce44d3e7dda2d1921e725de571d8422eaed96f71c7629ea04c08644c80dc38b2b333f261d425084e4c755664fdb9668dda4fef3951909a1623f7f8530cbd69d6ce44d3e7dda2d1921e725de571d8422eaed96f71c7629ea04c0f19344c1ddf17eb3020a0c23ef6b5ddd9d9570b829ba6035026d4ba1e7fb38fbc3abdf97525f92cd827688ce2fc8abc6bca5128cc02711e6610322a7c745546bf19344c1ddf17eb3020a0c23ef6b5ddd9d9570b829ba6035026d4ba1e7fb38fba509dff99c6a32cb161e795b9182bed0752bc150d7f9b09e2f8f1046bacb8284683c16d1e8438761531b045fa44d2ce50f9a04efbac5068a2a14edafd33a08f4a509dff99c6a32cb161e795b9182bed0752bc150d7f9b09e2f8f1046bacb82842ae6e503fd88767333e33f873e13040e991925fa2d599442b3048fc2e1f1fe624ab06e8ee927d52249449f8cd6793c379117234d2bca236cdc232d56be680b4a2ae6e503fd88767333e33f873e13040e991925fa2d599442b3048fc2e1f1fe629c0beb37e00739e386823e8315171e983d205adc1f946cb2bccf8840a44762809fb3193e554d4299db9e3c53baf93ca60b6127191f2d2a54b61c04240c59b1f9a9f7c2690b573f81da974fcc9e94b9f866169f44f2965be7aa3c46251c9a2f9ad26db8cd18b7fb07417c99be4cf1e0e6aefbd69e3a96a480a6fcb5b40d7febbbd26db8cd18b7fb07417c99be4cf1e0e6aefbd69e3a96a480a6fcb5b40d7febbbd26db8cd18b7fb07417c99be4cf1e0e6aefbd69e3a96a480a6fcb5b40d7febbb40956b0388e1d033b951352ef62a6ea6278d9924e973f6c1cfbd215f8a12d27440956b0388e1d033b951352ef62a6ea6278d9924e973f6c1cfbd215f8a12d27440956b0388e1d033b951352ef62a6ea6278d9924e973f6c1cfbd215f8a12d274b7399f61fee98bede0d2b5aa471a389be909dce80dfd722a45651c7afa9c512eeea3d14418b08f35a4b44f7bb6edfef81d97b74555ab2f109cca149fe8876e3db7399f61fee98bede0d2b5aa471a389be909dce80dfd722a45651c7afa9c512e90dddb615a1f74e8fe36f7229534a85484eb038105c351ed1c83036bdfa81b8c5d2c0232ee00713ea999927f9abd9acdf365a58d426bfbacb4cebee2aad928c090dddb615a1f74e8fe36f7229534a85484eb038105c351ed1c83036bdfa81b8c2e7bf7e59cbb8ce8f4a444d2ac5e3077ededd1835bc0f66bb8b2963b2b3d0ca507fdc1c7f6b767beb68d4a509566a8c4dd1b09baba0dac174720f3df2fd7662b2e7bea63e308a3c6224ebc6609f3bd48534fb6b489095c27836b37609ae77fc8b24279fc41b2aef1f16801aab6c379b31ea46b66d1eadd546b3918ac5dcba4ded80efcc65b2a0a452bfb845a9c592ba1d45575f63e41a093a61209e55fa4f64e025a90eafa4fd1bdb04a2cb21bda08beaba76a8b79c531bf90afe7e664301c1891e37766f4b431515fb9347f8b689cd58806b35416ed5dcf81c0000a0e4d2ae685d05e3acc6b9d94c11ddcb52b586f600fdbd16d1714e2e9889102fd6ba7a08391e37766f4b431515fb9347f8b689cd58806b35416ed5dcf81c0000a0e4d2ae67522d9faf4da59eebbfabc685d796a8f004273498548a8fb5758551c34fde9e728e25ef1730958a85962640f1fa809ce467f7d943b1fd75944f8f13656e29d307522d9faf4da59eebbfabc685d796a8f004273498548a8fb5758551c34fde9e7688901e9b48d1618bc5f9cc3b074136cfaec79beda2fe65dbbd24bfdd1ce7e283b75789c6e8f7559637f13fae11285024d25e60b61802c3001d53e5d31097518688901e9b48d1618bc5f9cc3b074136cfaec79beda2fe65dbbd24bfdd1ce7e2832d53505691b36ccfd342730a4418e2831ff24538813c30eb4ceb9cad859e22f8885d9f3fdd04a56a91b3f235920af8796497741ee76e32c89bb0e4a7977cb6b32d53505691b36ccfd342730a4418e2831ff24538813c30eb4ceb9cad859e22fb833126ce3a3b58f8f05fea96a81a4e600481f813e494cf7d0b35d01ddaa1caf4b53cbc1a0074d734a3fd6b2a2f07665da880627ad2e6ca11219dbb0ab41c2acb833126ce3a3b58f8f05fea96a81a4e600481f813e494cf7d0b35d01ddaa1cafb617df39a98480d468d2c1147a330a482f8166d32e2c29d7d937f173b764d241b617df39a98480d468d2c1147a330a482f8166d32e2c29d7d937f173b764d241b617df39a98480d468d2c1147a330a482f8166d32e2c29d7d937f173b764d241b6a9b51986ecfd07fae840f9bf7c91da7261e200e055858defa7bfd348b987de1aed037a04209ecf3955585acc1070c9253801310a8d28909e0914ec8b47b6edb6a9b51986ecfd07fae840f9bf7c91da7261e200e055858defa7bfd348b987de4d11cb0edbde447bd812612d4c308c2274a0b541b07468045bea8c05ca94dab8a4ab285fb5cbb02a84842b54da316eeba22d7e5d768f2e12ce9e7ef6a0b5b9f44d11cb0edbde447bd812612d4c308c2274a0b541b07468045bea8c05ca94dab8d5f3b066497441b4205e60d2e4b266c7856f431e62d519cb3c9df9622b76989c2589880a26d2bdbdf0a9487f782b45261f0f9eeac33d3d83b8fe0e3405240fd2d5f3b066497441b4205e60d2e4b266c7856f431e62d519cb3c9df9622b76989c4935f8e8f80e768abb2af37a14ced2ed419cfee8c7a2b387d48b8fb1436adbf78341c6a337e6aa5aedb00ebf84caf902f39b0dc79a57b7e1baae38086bc567740bdd62619d935834566cb79fd0a4816af49f8b418ef5dcac58199e8c7cc7534997062e40f9e4c2f9abcfb5ddbdf8f7f2076dc9dc551707314440c1f6e6d7d87eb1209c0ca62c547d131bd122fd97b967afcf47c6f94ee588f623381092ee9d7897062e40f9e4c2f9abcfb5ddbdf8f7f2076dc9dc551707314440c1f6e6d7d87e85b12eea5f198c264c323cf09f28af194fcc8a96bc6d485a2e1d176658977334b2b148a6fefbea9599374ea0054668e40f6ff698eb636195f0dd4b0105d1beaf85b12eea5f198c264c323cf09f28af194fcc8a96bc6d485a2e1d17665897733404de8c27e7b63b813cf7ff1899addc01b866dc4d632a67fac3b146e8497d8de024d8a7d1cf78826a19bb9c8f17adf4b54e73ab8a4b1674d7cc6721963d68726a04de8c27e7b63b813cf7ff1899addc01b866dc4d632a67fac3b146e8497d8de02a63f05628c0ebb7e95b57e4156d7c800c2ce48e67482581cd24855c8d430943848bdeb9992b7338685d13a603807ae6e3927ca9b160a9093d547d419c21141c2a63f05628c0ebb7e95b57e4156d7c800c2ce48e67482581cd24855c8d43094341d4bbed1a8f123cb837ed05917752a1f3fda0282ee916059c6001b9b1b41ed441d4bbed1a8f123cb837ed05917752a1f3fda0282ee916059c6001b9b1b41ed45e1f029e5d8fdc980403124727a86b29ebd74c172e1f7d14073a093ea0f853cd321d00591d519ac2c0b21d5db8e5470a25a3416acc9ee15939006b5bae0534c274310ee091fade7137b1aca31f3b5815495bd9f8cbbe087419d0ff6d1ff6142570cf381e4d1b3f53403fc9d4547ff692a523846d672690f2e56939f7d418f894d5707b075e7fecd2f61ab698683b7e83e4c6cf00d00a0efef959ea22f59f965cf4e9f293832f1106574c60bfca77dcb5e5e0994c7d783c2e46ef8435684fb31d0899f09177b31cb6cf6f877df7e383d67302e704b04a92a49c576c954a764392e235c2a266ba8a3a685d52f93481d4841ae6080519bb1b884a8dc880216a2b92b9ed981f12ac0e2e536ab90179b4667490a2935981d19be8a27dc7c011847db3e235c2a266ba8a3a685d52f93481d4841ae6080519bb1b884a8dc880216a2b92e056e8cef05087792e10651b1a6ba905175f4e6f99bbeef26e4bf9501dd4014375c3ca78680e56c027ecaa06fbda7f3b5e98cf6c536881d252c54c9306ad0744e056e8cef05087792e10651b1a6ba905175f4e6f99bbeef26e4bf9501dd40143458e33648abac7c5aa8e8d6bcd3f9c32cf135a246d8ed3ff8ff66be3680e265abf1ebeb73e4ce92c486678bf43070fda5baa4bc65739c429f81d3fdd8d903ccb458e33648abac7c5aa8e8d6bcd3f9c32cf135a246d8ed3ff8ff66be3680e265ad7df58b03d95a1961bad13a3d5027ee22c3090fb12fe256e56308e3b1a33a204a6e0c1c1d5021273edcf3446a7fcf2e9e9196eee1f7af04031c2f6525c0b1833770f421e7ebedddb5c061de6d3d97aa8a5c9225112addf79a92cf2533d3ef8b4e7f854f198cad2708e57a3ba93d1b029dda72a72ef7296feea0366992852a9b8bddfbd39ef062f2689e5bf129b29e0526f37663558cba9dc666cb935f1193f33e7f854f198cad2708e57a3ba93d1b029dda72a72ef7296feea0366992852a9b81f5644d821829ea9114032f0ab6c200a0c2c3d955110c21ae8a5599e20e70b1a1add8a33be658ee8e02ec4089cfbd69d20fd39f773abc0ee687a7db6883c285949855f58966ec85febab7183788150947a7103fc87dbc79e728b718a58115b20465a0b661c128507afc788247f82bec86652c08f837ed927c45832aa79c4f9a87f31e9a2ee696989c31dac7d6b0a724afcf795c66237b0554d374b9ccaad6823465a0b661c128507afc788247f82bec86652c08f837ed927c45832aa79c4f9a84bb1dcfb03db19287a51bb69c43d05a12b1c95e4d585a3d98818a9530d26b7df4bb1dcfb03db19287a51bb69c43d05a12b1c95e4d585a3d98818a9530d26b7df4bb1dcfb03db19287a51bb69c43d05a12b1c95e4d585a3d98818a9530d26b7df3e2de4b917e61819edb925be40df12454390631dadc5067792c078370f8f9f521a9ff767b068e46a7abaf21a13e33aad1a2999c814259540fbb241b55a97ed533e2de4b917e61819edb925be40df12454390631dadc5067792c078370f8f9f52370aa2807c022fc8292b257ef9626c8b870eff7c9efcc87895c48bf1be646c8e759846c88482ce5a39709f35009a833259cdc7cbde9dfb0b0db5ad84420d56cf370aa2807c022fc8292b257ef9626c8b870eff7c9efcc87895c48bf1be646c8ea32c09f9ae90257af1ab67f4af283b6e75cb655d2f68745f312bd8029bc8c12366bc24ce31285a9a1a5f45ff0d2943c14c3420bf540f2f594c5c56a8519bd64fa32c09f9ae90257af1ab67f4af283b6e75cb655d2f68745f312bd8029bc8c123a7c6a109d58f88ceadbe7900420da58e6b6b749532469d31f9f655fbafc01aed0c2b9be4131e5738db3e33b1651c58c91c4aa93e1cf8a0ce5adff9ccf5b1cf3ee4fc5d34f8ea32d6fceb24e741c1c0e6ed84676a7bad7723b36abb3c38c55f75b49a9b60684a6bbe693a28a83f968c104b922017b9dcf992c4ded4eeb0063df3b49a9b60684a6bbe693a28a83f968c104b922017b9dcf992c4ded4eeb0063df3b49a9b60684a6bbe693a28a83f968c104b922017b9dcf992c4ded4eeb0063df39a46167b2481501078ddf44ad4e84676aafffd2ce2c7a6a52bb97698a27004459a46167b2481501078ddf44ad4e84676aafffd2ce2c7a6a52bb97698a27004459a46167b2481501078ddf44ad4e84676aafffd2ce2c7a6a52bb97698a27004452918775436d61d1d5ce2d061f44549b37dd2daa2109dcf955f828561e82bbd0c8b1be732df53041a6946c5c5aebc14062260af69edcaee2d3e7d7f89c7bac8402918775436d61d1d5ce2d061f44549b37dd2daa2109dcf955f828561e82bbd0cd213242398da8b732c40598a0e94ed0462d5a6f76724d329758cb32b7932b5683bfe6226a480dde9e9994ff5054d38bb4efc3c9327040b3706c73f3d4ee3b93bd213242398da8b732c40598a0e94ed0462d5a6f76724d329758cb32b7932b5683695cfc7d9e3757a42515bdd9d6f6c9784f7ad58b070e45b4a64c583436e5d5899b635f43777f18949ed112a863bf79385c88218bc9431e47ac34234679e5ec03695cfc7d9e3757a42515bdd9d6f6c9784f7ad58b070e45b4a64c583436e5d584901e212a1c495ceaa52305009028593bb8753ae8ba3366fea255b6c8a417b804901e212a1c495ceaa52305009028593bb8753ae8ba3366fea255b6c8a417b804901e212a1c495ceaa52305009028593bb8753ae8ba3366fea255b6c8a417b80fa5d5b97d34100c56c7d831fd3df3aa9a986d992fa414f2ddcd74b3655b0983cfa5d5b97d34100c56c7d831fd3df3aa9a986d992fa414f2ddcd74b3655b0983cfa5d5b97d34100c56c7d831fd3df3aa9a986d992fa414f2ddcd74b3655b0983c11633f997de478213d3011fda01811c95c47146e3d8624721588b582049a4009af2791995c499c5afe252e47ffca9f547d6d44cb2a723356ee6d66edc9c6d9cd11633f997de478213d3011fda01811c95c47146e3d8624721588b582049a400916c1db74aca5cee0ea935e6dd56cba5fc6d0e0c8b85e879481a3851869c93fad6b4b606d163145d72abf2d47f7e058f7710bfd00ec13536b8d0f27f188c4cdc116c1db74aca5cee0ea935e6dd56cba5fc6d0e0c8b85e879481a3851869c93fade614f387dbdeb17760d9bb4cd50ae3091545f1285b9be0f5ad4b9a8c9eb930e96cabe6c0114a39fc378d91238279ed629b1a1ba65a3a9d792b4dc75b318c39137ffddac56236387d1143a42f07be881b625621be976faf3034b6f932fd79fe53c8eb28ef7addf5a664a7e3addfbfebe29040a8695e1db515828305aacba2ee4e28e8243b6a3f3fe92243ad474f808c12dffe608019627d48bc2e4d7b39185b455d580f5399568b375efe24fb7db6218d9264822dec25adec25c6d9640b854b65020cef86b5c31e96a3439d09252183f3eef21d4a103a4a909538bac3d0f1d4e4de42667bb690368459585dca6bffecaef498217ff74b9266cac74bb8af98e26730caf7524234fb85e08f01beb716e1a34aa233051fc0c3798a6b085aeac5b4663a7a35f40aa5d22c7fa74a889838f5c69631eaad0a9f4b70e6a439999d419630813aa76a1d93176dc33843b9e5bd4e6165886162d91b19e080e9c5adb30c05da1fb2a050c4e7c354b1434063e2a661edfe08852aa8a23a6f1621509832384856e9e38f992c807348eec7ddf175025ec6c149c20a7c2f597c99352caaa03e45577142ec668ee870cc3b09b7ced4a0592a9a2da5f7ccf8a314b1ed906fd7a30248db8add0abc885fc629c6746aca77cd40026b2dac8d7edb93f1fcf6ea9d28334f4e583b43fdf9bd4a731d70e074ee597aba03f3c8c36302bdc7e74650fb1fcc115c2cee869bed6e5169e410c4cebafab702449b8743c6614c0c90c85130b1ec7d1595e2034eaa93c2ca61854038e64197541906b3402c448b176e34a5af9b6b09b51f28a5d49a8a6775fad9bb944b47d65da733908b432b6cd0038ba99e7e3975ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26f690842feab34887e9863ee013180f93949b36cf3ac9643940968ddc1acb443ea7600c9cf97163c89799bff4dce3996f68fa6efccd4f66eb3867b754762f8cceb2fe1e3de8fad3c95d83407a829abcc028b8b02f85e4661c9c934129af1ea98ee037eff39bb5253b3bc2048ba149f43deec680fdb1f7dde421d9514ea3b32ba37b21cc6acb2a24ace550fc1a55852ed068fb2ecd13011ffa3ba5291b7346d0d8e97a030281647351ebbe56d9b72a581af69a9feeca7a8f5d09a9d3179963c0bd81f83b170583a900f3779f0cf8662ccd25479ffd2f063a6c4fde668a198ee015a3977f0d2c6a8e87db2ef7050ea10afb3a88b064bf5ef95439924e4246411433ffa2f718e123fd1c4e536bb4a471978515787ee9fbf7806a92073a787a733a26101d297127132c5e9634499f41ad00e125ea308343a20b278bee9e9225eb5cbfe6188362a0bc7db8b94c3dd313b97c83ad6d10b79451fd2a8a4bd773cd392b228f8efbf4c316bd701b09a72b084a08248e26a346c6a7636a142391a8b3e674133b6b6b89b1151c58ccd3f7031792ede309d6499de1abe00c775a4838d436ebaa65f436fbf065c8734e335a0535ea0a341085187103970b048de0bb23b331b2133b6b6b89b1151c58ccd3f7031792ede309d6499de1abe00c775a4838d436eb5871da54cc8ab23408a14df8e370ad648e65f2821884a190d8ba41c4a6a1f34b5cd30c14c27c25489d9bd7bd848aaa7ea074cfd18d4d1c1b0624ea2264fd6f275871da54cc8ab23408a14df8e370ad648e65f2821884a190d8ba41c4a6a1f34bd191c7c1ce1983e6d8864340a8d102982f9c472ae4727d249951723a89480bd75a3a9bd61342bc3cab069c25abbfbf1ca8fd952ba58363dec33140131d4ebb96d191c7c1ce1983e6d8864340a8d102982f9c472ae4727d249951723a89480bd7fb2cb9af1693150a92f81656527dd0e01a8e9ecd6454f13389c879dff057d634b4d2f6fc9ebb8d23ecce9cfb940a47c714fa5a637d18b72840c192a5b492f1a2fb2cb9af1693150a92f81656527dd0e01a8e9ecd6454f13389c879dff057d6345432b57fc756fcb72d84fc91f24b105e0ad2cd4c0645110f7732bc6c6ed28c89b6b9ac871d067494034564a58c4e24b47f860d99645d279ca08cdc145430bb6f5432b57fc756fcb72d84fc91f24b105e0ad2cd4c0645110f7732bc6c6ed28c890289c4eaec95dd8ec8dcd433ff79d9d6e7a65866bd37d59c50528e574ef4b7304e465c2d2f36e28e7139a89dca97b9aeafa7812afc4cfb8134ef7d3c62e0585b0289c4eaec95dd8ec8dcd433ff79d9d6e7a65866bd37d59c50528e574ef4b730fe032669b47edcff7589004e3c66084d2fd1621ae2cf2d6b79cdad5835cee890b56f8947a01bdbc4a4eacb5c89dcaaff12f00ca5f9d1411c10d846b4a146fa10fe032669b47edcff7589004e3c66084d2fd1621ae2cf2d6b79cdad5835cee8900a4a10b9e65c52ec14932a5eab2892357754aafcb024138e2604ec40bd60c743624b51846c9e339ac32f9050e8b8f153b80ebf56d2dbbd1bafc27e2f0489a1310a4a10b9e65c52ec14932a5eab2892357754aafcb024138e2604ec40bd60c7436e0930ee107338d3f1f5428d94cc6278bd891c531ad723df95a1387c5382865064942ca98e0780abcfa165c0f928a9d7dbd2faccd686f5306d7254ad8b13abad6e0930ee107338d3f1f5428d94cc6278bd891c531ad723df95a1387c538286507cc1f0a9958f31b0d888696f22bc307abe2aef612b5f5636544d739cae4160bcd97096282981003acef88a7020cc99cddc659a5995549856e0b341cce63582aee7c0b5d4b257091332ca642633052bb6a1fee911b9890f81fe10169beaa6444699314b4791aceb3e7ec5d4367fcb936dad8b47c631fc8934d020aa5fa5ba0c8c2de90c1d3b0399409dce3f6d7df1b16202fda13282a35bc993dfd0778f19af2199314b4791aceb3e7ec5d4367fcb936dad8b47c631fc8934d020aa5fa5ba0c8cb653db1c098d633029d8d864440cb0f9735624b6510b1d96f4a1f6bfb3e2f900bfb1c84aca609a7bd1ecbc48eb791ae0a484a3d7ff47e55aa49cc5c9db3e343fb653db1c098d633029d8d864440cb0f9735624b6510b1d96f4a1f6bfb3e2f9001f565088a9bfb08095cdff09297bb33b8a68fbb4fd4060983a0dd4c10b9d3f4a76153304d99860bb9e869de24c4049bdf0d5416afec17a6b7f0b594758f075121f565088a9bfb08095cdff09297bb33b8a68fbb4fd4060983a0dd4c10b9d3f4a91853de4c77fc8027013c3c148109ab33529e149be7941baa63877542270aad5bc09b1614693892bb9c34ce9e51440475f36032d8f5d4b29cc1723bc636952f091853de4c77fc8027013c3c148109ab33529e149be7941baa63877542270aad51b31224514602eeb52c10f9ee31152c1d0f7e14c2402b2e94074541686700710776c487a787f47ea2c98f7df1b587d7627bf987d375b9037f98fd5ca11bde82c1b31224514602eeb52c10f9ee31152c1d0f7e14c2402b2e94074541686700710f02e9db9152ccad03e99a0bc1cb09d21fc87ab35f8c50823c327c9aa3d136d3ab85d1f725b7cf3f355e6af0c27649f708f41ab76d8c27baea46f8f2e1e1e608af02e9db9152ccad03e99a0bc1cb09d21fc87ab35f8c50823c327c9aa3d136d3ad99acd76bd383f263a0f40829663a72cb5f7bcae0683032efa14fac64346c590734aa66f9667e35fce49a9740698f811f74e45bee759d1a511c8226e946c55fbd99acd76bd383f263a0f40829663a72cb5f7bcae0683032efa14fac64346c59092f4882e80da4858c8ca30f815812ef3466a24bd91a321b760505b79453bc7512775e02113f59ca9f5c4680c547a63d664297181b20a8b9f2ec88d030c67cc7292f4882e80da4858c8ca30f815812ef3466a24bd91a321b760505b79453bc7511d47f5521b1c914adf241e3bbdf4a367572152c45b97ed6cf865ef015f8e047fbac2b26c76847e6e7a7330b81b15bdf2765ec11a723b0e23e3fdb43347e2811b1d47f5521b1c914adf241e3bbdf4a367572152c45b97ed6cf865ef015f8e047f2973bfae092c32669f180bb69f09bea4a58f5e1327dd30cd35dc24731a6ddad943e840a6d643311e15288cecbc538cac984f8c8a4e348a625c45cfafd49f66982973bfae092c32669f180bb69f09bea4a58f5e1327dd30cd35dc24731a6ddad9f9eb293635b0e93c1ac30c0dc1a7aceee34e08881bd3f247ae56c40b732e6cb91a142d0330f7dad8a08c5ea8605765226ed6af65b2efbbbf2a1282572ceea924f9eb293635b0e93c1ac30c0dc1a7aceee34e08881bd3f247ae56c40b732e6cb964f485121f3bd15b94e3764f37b682a0472e03e0b0d60cf86cd5ea9f34d5a908f7525f245a680869d45b6aace672d0a15656d68e7f5d59df01985668711d19b664f485121f3bd15b94e3764f37b682a0472e03e0b0d60cf86cd5ea9f34d5a90880c4a08847913598c68022a8b2e54bafe74652e9c8eeff11e4334ae83395dbd0a9f5f14d66bf7f2eced79d4f95a56a4dd5178d84d62a648ded15bda7efeac92380c4a08847913598c68022a8b2e54bafe74652e9c8eeff11e4334ae83395dbd0802e90a36b68f27c737258d00880ebd205f1ae4c331759feda6ac5789339bfb0d01a0653a6246270b1c1bdf4253cf60d8c305a0ba0cd2ac1842766027755b38e802e90a36b68f27c737258d00880ebd205f1ae4c331759feda6ac5789339bfb0b6ac2a1d401387ef2c59a8ad0906cfabf68a083bdf89dbf28252c9d47f8e4c40293ca3362610aef024aa3ab74f346a5a8331a663d8c591d29ab7c0259ac844eab6ac2a1d401387ef2c59a8ad0906cfabf68a083bdf89dbf28252c9d47f8e4c40dc4c64169e5e98207acefe906080e83b871bbe46ae452584ce418e2f4863bd6446f15676d02be4dd981ae66e80eaaded585d7631426d419686ba27d9ccc34c90dc4c64169e5e98207acefe906080e83b871bbe46ae452584ce418e2f4863bd64a4142c3b502e4d9113266c8a32d4bed0583049d599b526ab92f80cbaab7517bf9d9bf7bfe9ef5450b4dc8165e5ed0cbffee8e49bcf0795edd6441bb515d955aca4142c3b502e4d9113266c8a32d4bed0583049d599b526ab92f80cbaab7517bfef6bd3f35487467d596b58261b1833cc2d1df405206ae8e659e4fc6971767eb16bebf850d48a046c7eb180447ca4a01542454cb63631fdc6df9f5ddd74fbe56bef6bd3f35487467d596b58261b1833cc2d1df405206ae8e659e4fc6971767eb1cbb251bcf58901052d63fb06618a62c04564a620401dfb1c9432badccb057590ca3533268bf91728ead60608f28516f5f3ef132da9644a480a2ff82bbb36a30ecbb251bcf58901052d63fb06618a62c04564a620401dfb1c9432badccb0575906273cbcc9bf122b91a821078d446daa8f8b92d05679fbb38859bff341bdf2551b785855447f2a0011b8018d201f044516554955fea5dbbed001f60c232cae3bd6273cbcc9bf122b91a821078d446daa8f8b92d05679fbb38859bff341bdf2551d6efd066a63d88543f7db7ea550a5860faf4003889052fcf416dc0c70036c38edf9488708d035504ad739b09c0ce2244f075b12726cd4d607f2ba49a50ceae2dc616ecccde4755bbd52fe925cc096a117fed05633e485df0f85c132a45f432c5b993ba5cf06823df871af205cf30c3aa0071b2ffa457ccbdb4ebaa9d10e1c73f9333afc6cbd174a6310ca25b0c33068f9a6b4f4ea152e8ad012102a834c8d4c9b993ba5cf06823df871af205cf30c3aa0071b2ffa457ccbdb4ebaa9d10e1c73f8d6b18727c935c8431bb3ad817234dcbbe3e262f9bb54d5d3ce2cfb7a3594ad6208c3bcc2a71d1b5f49c32aa889260d1a0a50f328f2121346179d03ed7f04f108d6b18727c935c8431bb3ad817234dcbbe3e262f9bb54d5d3ce2cfb7a3594ad67ff656b37712995fae6d69ad7034ea0a5eb8b545a519c2b450ba234ef8ffad7af9c0947c85ecabdc57f1c2c9df92d354cc85069dfc7d3b0f0dab6bbfdd3b1e007ff656b37712995fae6d69ad7034ea0a5eb8b545a519c2b450ba234ef8ffad7ab45035a81e3f82f8fb6d353179fd0d97a6bfc6264a2b344a8af0f8ae25b2822f9b0dc323910085e0dff9e2f77213570fb21d5c15f1c1795b098de7dc09515dadb45035a81e3f82f8fb6d353179fd0d97a6bfc6264a2b344a8af0f8ae25b2822fdd2ade512de3a9be2935c55b911fad619167fe637f22411dab8840c4ec2d5de09150aa70a5a063ab8a09388754e6e7b7f2f1ed1cda22bdeeb9360d276a93e5cbdd2ade512de3a9be2935c55b911fad619167fe637f22411dab8840c4ec2d5de0df5b9d46ca80c37d6bb0af2280d32a50b4c6cba286b2ce66c10d8539bc953881881bc41e6ee4d1ff54ef8ff4af3bb40443efeee9338f860b72608366fde5288bdf5b9d46ca80c37d6bb0af2280d32a50b4c6cba286b2ce66c10d8539bc953881f5951343d2d5b068b3287bcdfdc20d612d3e934ac07b2951153981d490e703db8404160dffd34e6805015e4a1812aa2550158c3d582c3b9fe482a52235161c7cf5951343d2d5b068b3287bcdfdc20d612d3e934ac07b2951153981d490e703db300add50dc85ee0ae07fa50bfa0796753eac32637c1e2f832f04237d20abecd8e66ba9cfa9c36dd50f3e338ff0b70aef7e133f90427ffb2067ff64f4df9d1dd1300add50dc85ee0ae07fa50bfa0796753eac32637c1e2f832f04237d20abecd8fecd476a77720c23762c63eb9fff36f913282bd92b0d291649e1e3edd1f609bd8894e71998b598d0a4e532c92cd7160a3bafd7f14f255ebe50476c732c8c388afecd476a77720c23762c63eb9fff36f913282bd92b0d291649e1e3edd1f609bd4b2c0459262aa8706439a5b5985747a9074ab30decd2bb6690b8da0f8af57be4ac4898bd8d7149f2ec65768a56bc53c6ed95eea6a0fb39e5cc552ebb5186ceb34b2c0459262aa8706439a5b5985747a9074ab30decd2bb6690b8da0f8af57be4ebdf0f1ee76d7c5a2ff15a4bc1addc9b2fa86e9b3a3fa831a7ccf8b611896ed1b477d1dbcc2a1cbe1fbdea5244fe4776be95a6c81043f9faed1a028962f9b4e6ebdf0f1ee76d7c5a2ff15a4bc1addc9b2fa86e9b3a3fa831a7ccf8b611896ed14ad18a63730f6933af30ab99b0d771fbc7f7009c091695cd5141da69f13a39524971be37176a2da6dcb14341266edb82ab9add6e816e59807a7c5aa5b16c3caa4ad18a63730f6933af30ab99b0d771fbc7f7009c091695cd5141da69f13a39520e4bcd5f7423685e7f5eddd9680fb87f76f2494d92a12ba3dfabf7d7a9f4bbb470144699193bb8fe8c3c20cba35f61a9dba305f1e3292e90ed41c9e499e7af440e4bcd5f7423685e7f5eddd9680fb87f76f2494d92a12ba3dfabf7d7a9f4bbb4a82fb51cdb80439f636ff0d35759fae161e34122a092072d3aa1f2eb1e2354873d333dc02ba0f9293de64fb56449ab9947c48bb39fa3e5c614090fb02940a999a82fb51cdb80439f636ff0d35759fae161e34122a092072d3aa1f2eb1e23548758653dbeeb5da25cf8b5f924492f0425d4a3b2e130ba204c9749a0b4ec9657030880d2f65a68177ed15ea9e10309c8e584de246b01fbe62af93f7aa1fd7ba3a158653dbeeb5da25cf8b5f924492f0425d4a3b2e130ba204c9749a0b4ec965703f5fcf5771d83fcce9a932453ae348cb2820d749c0468ea7328ba96df46bb773724a653a404a1eee7e9c2304c6997573f38186fa93b6787287f159f7aceb5792df5fcf5771d83fcce9a932453ae348cb2820d749c0468ea7328ba96df46bb7737bb154224cafcf72125fa1805726d9c8cdf22f79394bd758ef94d659a1fa549731c9f9e762dbd83d6fbaeda35683833c1fff1442078e3f47a30bceb8ef350ddd7bb154224cafcf72125fa1805726d9c8cdf22f79394bd758ef94d659a1fa549731e2a4ed1cae7912b8b40da08c32d234e663bca950c545d47e90eaca46863d71d9fbfe4632e3736a72b93437c51d0ac0d6ba568eb2261fa2cf272f3e9ed464c0e1e2a4ed1cae7912b8b40da08c32d234e663bca950c545d47e90eaca46863d71d48b1289aeade80f4ae031e0f626a13b4b3b43cf10ffec4437a031028437cfd813e833b4177970febb022fe56d7ddc3a9aeb6d67d4787af8bd832f4326f9740da48b1289aeade80f4ae031e0f626a13b4b3b43cf10ffec4437a031028437cfd81305ad64cbea15ae039285bff6990d7fa80ab8992a0fb0e0215958158fa73694d49406c65040c1dc61778c86791e5c77634a304eab165ad50e039556d89ecab0b305ad64cbea15ae039285bff6990d7fa80ab8992a0fb0e0215958158fa73694daee84383db23e768696109cdd482f67c0596626c88fa6a4c4c1260739b59c3232065863bc227c5ae4e4863dde76b5d1bbb4a2e639530c28ef2b69eb8c03fb093aee84383db23e768696109cdd482f67c0596626c88fa6a4c4c1260739b59c323dcab802daddc98586a189c8845b6c66aa0a4349317bc397255bb9aafbdc128bd65a3349b0f5221c6ddb8f4a81e520a9a0068c136edb98eb9521529c16a3b39b9dcab802daddc98586a189c8845b6c66aa0a4349317bc397255bb9aafbdc128bda2852ebe75a8374d928cd9611cae7e90ef194981902b9f35c7f703c8250cb5fad51b008ed0b0bef35719bacb9ea524b2bf5e14585c486978246b27c41470f5f0a2852ebe75a8374d928cd9611cae7e90ef194981902b9f35c7f703c8250cb5fa73ac4a51985eba1a2000b06600ed518cd9c0fd19146587999c52c8f202b2d13e562537864e52adab07d189585d97bd3293d7de65b7d4b39b1dab32da76da68b073ac4a51985eba1a2000b06600ed518cd9c0fd19146587999c52c8f202b2d13e4ae818656fa48ebb506692e1ec9c439f33345c7417d33eef985a84b35e0889f55ebf624a29c1a37d9d0161584c08e442514422841c35d2e0a0b47249515f55c74ae818656fa48ebb506692e1ec9c439f33345c7417d33eef985a84b35e0889f5e8e2f1bf4c340f4dc9c00b21bb83c33b421a3bb112de51cb51e712c58ca73d6ee8e2f1bf4c340f4dc9c00b21bb83c33b421a3bb112de51cb51e712c58ca73d6ee8e2f1bf4c340f4dc9c00b21bb83c33b421a3bb112de51cb51e712c58ca73d6e570368982d8d96d05a6c2faf785fe065954377fb981de1449fc861b6dd53fb0ea628eb55750773ff4a1256b1933291785c6d75a138181589ddf2527903a9e1bb570368982d8d96d05a6c2faf785fe065954377fb981de1449fc861b6dd53fb0e76b76599e1108f752b13317774021ada206a6c81814ab0e5c954948b267132711f6d0770f35a391f25405e58d0628f25970669498103e4211c5b8c1cdb7dab9476b76599e1108f752b13317774021ada206a6c81814ab0e5c954948b26713271b67d6bb3fb3e233010e0d59756431638fce6c677ae2818aec4baf71aa3bd3d04345ddd9ee3c1b6ac1401a532739614aadab65e1ca80c5d1eb875278192af57cfb67d6bb3fb3e233010e0d59756431638fce6c677ae2818aec4baf71aa3bd3d04188c03c9b19c43332761d37772c5e3201f0d53815f3126fc77fa6bea30a7fa4fbb0fa8a9b830f6252a2acf927c4defb92f49903c4922a2ad8d4e1e59b457ff19188c03c9b19c43332761d37772c5e3201f0d53815f3126fc77fa6bea30a7fa4f2cfbc9dbd10cf071d3b3311f7da3c8a35f77fa20a9286571b4ddc6d71c00a197fd1ad16c5d54c6bac4937789af36faf60353b1e46324f1ec5ed48e4a07b31c6e2cfbc9dbd10cf071d3b3311f7da3c8a35f77fa20a9286571b4ddc6d71c00a1976c9626928213003b3819ede11ab16488de0b6aeab7a87bb29ac5dd04d98832da87af5f553fe109977f01e43fe741bc350a15f3cad3fb5f2e09220744193d391f1e17e29c173171fcd763b2139b6629df2c0ce6792b057db2012edd3e0a49ea7743421286ad234a4240f8d4bc09f67bb58da0bf9d9b07bf93010989ef2c17f2f8cdae01f8da8411c2190dc4efae37e0496503a57445ea8b3d43a9e5fc50d74f7030ab335b5312af5ca57b26945c7297bec89f31e90d70e7c8cb0a2283599ab40f5d2d4ff90ab4bc9ef0903585d2fe7f4272263535af1dac98dd4a7a31b5f1759b78d40b3fbfcc67c431ad234b516d1825b17498a5dfc77ef1957d0fee36d311aa6df5742e1340743cc9932f3876bafe243e3053cd3a5f060935201708181666667462c048c689f82c3ae6b5782a18776762f88055b80ae77a92243b6c0606e004f00aea254728b67ce3b77880b3bff50b4fa66ba25ed71122d3453fa9319370783f4b14a1bc6adb09319e651fbd51cefbba97a2633e548c3c3a13c1a311377970e4e793bae777b06206a3e368053a2c94218cec72b03ff462aa22b09051c2dce20607730edb3911e3c72b8bcb0f11f27cd131cd54caa619c9afbb9f62a7f77c6dd3aa8c8a3bebaa05f55a03bbd904bda7adfdbc7b82443abd2b007e96c4fd35231881dcf94b0a44fe355f2acabfe25d8d67871402bbc19aaab37c6ff955575f1def57a0f52368c104b2a3b3551b3979751168b1ac42b7eafa1c8d5319bc95dc30e35a9f45b223d5c7e7f3bbfd8bc6495b1156c40b0ce3747ade0aed7b41aa23ac22d74368ba175175b9c14315f9d82fd7ddde60ae93d2e5572e9a647de7e869eb559d39df8c1ff38d177943f245b87f5379ee5ea93399fd6b5f7bfa882e6ed8caed3800137d48ffcf86ecb71afe5a24cd9ed381571f23036438ba8a97f502326a001464d2ef94de500cb053cd345164d696f7f84cf38fa522c77327ab04d32982d4cea5fdba68fb9e361541820d44eed003c317f4ef14bb9df3406b8d2c53ef7c73097d2c8187a17ae6a83ab6e2cf935a1309ada7dac041598e77bc618b0fa3e1e39288f4326136cadb4fab81fe31223187136bc3d9bdf65a9d67fd152e50a6e91d152088e94e1faa3df4b900cf2904458bbcc72045dd3d830c317fe2c9d9c1c66319fe7810ed91786b503de80701a291a4f9abe54c9e101c19c0917b709e62f3b8c48f3280ddc7156fd22f58360c617e25c8d145931a9aee74a2fa7c209779c2a2435bb75863215a3ecfdb268f52508ab001d6c52431ccb51595109ba013a4322ae5fde71364b4d201b1b691bfe21a91fe6c0257d6c1ca334b0f7898e8c69238c6a3d836f26771782f53685da5987a1bf57f41159e8a38352131656d07ae3dad883aff74861ca976307358c0ea3487fc783717abd5516059b9c5f88114141e684f24b52dbc02c8e59a971b1666cd0f41cf768c0837e8abe744a7f6a559ef9ede58e39e9bad047053a0dc5f27a31ff163452166c9db4ece043f7c77f985bbafa9e0ab7c528b32bc9b74d659dc4d5323e7b6d2d718d4eada7d0cc73efc350dff6da7d9c5085ff5c64232897f6ee0a09258a41a35f153f47ff0f3b8fa97ec67be9e133b134a46b23cf2c635be3116415fd388e3a1c1581bf1a77d7f7f0aff3a725bed01d8a3a88b85b65322b2256d3d90c746ee6194e0b46afd1b0c7a873ea24716a242e91b093b93210ab422d5c638d7a57feacbdd99357b3b0a90dbf5274570ce229553dd85ecb87d114bad1e615f4f9aa0c0cf01ebb5c2b116638eb78cbe4304517c1fe16da359e01f3cdfdf3f7aead4283e8b8e1107522b72f59d4c4f3ade4c5a90f03398bba5f1d3ebb705df137a81f0cc627dcea2cec72ee6d5610e734a231e2d997f442002389b3dadb47ed8134947c664a32ef637f43afdcbd1b5c1382339ae48e477969cee58822d528ae73bcb689154d92631f97b478006a7944600e510e8f647672359066df3ee2a8bf2fce14fa15037adc10d974719b9c3608cb1e44264a834dc230d397725f398d905d0746321d543c56644e5c89af59fe3fedb61a84ec601c8786daf0564e978c97c0e14095c23f9a08bb64950f9cb541b074b3ac0550b241c99a566f61929515ca97aedf99f73568df3dfe93078ed22cb54892b6c617c8e7122ae9b675af5389f5634b9b88643ad2752509f416aedfa2a81542bfcae1d871416a9bc216ad2ede3d418de48e8a8450f93de08256aa2388948ebc852eff97903ee737a4118785fa3f73759574d39d20591919577d9126cea7ba540483502cfbfce0ac87198cfd6d0ec7e5eec68834042ed949875730a35764c83ca0e9b262b9ad0046cbb0af1101a651fcb88cd1cba38e474b863abbb074b260a0296437194c674ad031297b060e590387062fa29455c2c7131ed9c7eaeb644db7bf504b395504eb46f2ab40b2587b84b971c4cdbb6001eacd1a452fef7db8d7c49ec7c2cfaecb92c5953ab48f1ac131615c7e9815671a743903aaabd4453a7d7f97d98e9ac69099676f38aba5a6cbc607f196bfd7b691554c4e3bbaea46b2c8fcdc5178b2dd77d794938fa52adce719d4948a92ba1a689068cec1fb6888d033e0ed1efc442b3fb93de89fb0988c73f8536fc5099afb761d2b69ec101c239c8c193336f2b6994f5aacca9689f32249db20a8dac36934314b7d5ba391d94169d63c66300aa47014a5c2dfc9bc0d6c3fb234dff4e4b60a6527d4cdfbb8c416f99df447acba7570e479457fec822f02dfbd78096641cbd6b6d997d18e82b8c31a01648a2be05a654a420c7b691d7a0ce7952c84b687d7387b271fcda7a8c956cbd0f58343f2bdbc30aed247a1aef9f2032e540101b46a674456967bf626b0d34a86f5f277f16699b17c3fd176c1b259959ed235bb9bb59d54731203c9c33c2e0e431729ea34280f0b51c476c951da31291f8f646630d56a7da6602a3365808a57c797bcaeb2076b6412093b234620aee37ce8be16100880af85ba6752e3652b2678b7ef122e13c385a135cbbbe8b1d87efeed43ddd3e0be9ddd8aa24b267b61fac42870d0bf5c92b0f2a5fe25ddf95729f6cba8a9ac48c7c0d1c2fdd7a7532586f2ea46be7d55a95c96f5bdffc7869acfea19c33c62a23ef9515d4f2f9e5b93b38b905b59664d1da4cfe90df4316370fd33e3a69f5b6371d1ade46bca444c14bab9284a21fcb75abf82243eb66fad0466b1d737cb51d6b957a8ec2acde3a01fbffc5a256f1b0189ee127902c0022ba8a8660b6b824801612ab1772a04800d886ea4361f9bd3a01148a0d6627692f4ef22f93361cd19e4e279510c45a522ef10ff6650daedef66d754b3202068593d714c7bfe09dcbf9e0525a59faa09b1a2b1de640cd57ac1182488554201e30bc180aa461a708bcdab3efcc019451b46351c61c2468ec9e4e0710e1441867b17a238159e89017ff6bc76b4d42d3e133d9e8809159423616094ef8df925afde07c0920da1882853184948c4a03aeb4dc99d50c363722fdf48c7c995feaf4c73b7b4c978d33747dcbdf14ae5654bfc807b15799c63fa694529bbf957aa2e3d3e66e624810c6ad7e81015f43eb4c41dd7ac5f2d77161f75c9163965d21b2df016c01202c56010e873a7353715e43429f763c89df40f8abd187ced93dc1209703237acc8e0413a9b1ef07775f45c18847d0a3d5987f13edc3287fa8beff020087d2614966840987f4a1e858d8b3051dc7a5afcb2a0f30edd1d05c1084a10bb4d2c563f089cc20fca49582f334d861cbbca4a01c94e81976926a667aa9936ec65cd80b2650d2f0f3434c2ee54f0be91939259add06ef7fd4488b992b184ebc4233ca856f1fcf817d4a0204dd34dc0833d46fa1839c862fafb8830eed0a417f1d8b60d047d8c958f624ea5649483077927067c93c23259048e90348fbdcca2b672271ee2a3759c5b73f34a0bc9b3764f83e3ab79f2182c1e277ef465907f0be250fe49a0897a708735972b6803cac22055ed760a861fce4036c6c8c30e4ae91de1da9ff290f44187d24df84aaca6995a3538fd8e6a126ae3096b743b854108908f25aedb8cd9c067cae60e41482d56af14cb8249cf8e5a96565c24986eb3e32bdd658c238b484e096fefe347488e1a22f9e99667cd0c288e6c9d2d33e969507af34a1634cec335e7c097c5421b441b9d84ae74c37c7da0d10aba5a048b59afe384585e0b38c5cd8d2a1b536c960f92f4724a628d48215c3881abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae92fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb7650424a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aaf9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65a4fe845553b7ffbd7696ea3bf437851cbf73df723573d3b35ed7a699f9f4de8a2/etc/idle3.6/config-extensions.def/etc/idle3.6/config-highlight.def/etc/idle3.6/config-keys.def/etc/idle3.6/config-main.defrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-3.6.15-150300.10.97.2.src.rpmapplication()application(idle3.6.desktop)config(python3-idle)metainfo()metainfo(idle3.6.appdata.xml)mimehandler(text/x-python)python3-idlepython3-idlepython3-idle(s390-64)python36-idle@@@     /usr/bin/python3/usr/bin/python3.6config(python3-idle)python(abi)python3python3-tkrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.6.15-150300.10.97.23.63.6.153.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3h@he@hJ@hH@h/gw@g@g5@g4g6f5fff@fIf@fz@fuk@f:f*Ee؈e4@d@dVA@dRLd>@d@c>@ccv"@ck@c[@c$e@cbb@b@a@a*@a*@aaaayay?@af@a]aLl@aLl@aA@a'@aj@```t`[``@``/@``U_T__@_v@_0@_0@_@_G@___P_P_m_O@_N7_L@_?@_>e_>e_=@_@_______^^g@^>^>^8 @^0"@]f@]+]@]m]y@]v>]8H@]8H@]1]]@\\8\@\E@\C@["@[6@ZZԐ@Zx@Z@Z@Z Z Zz@Zhu@Z`@ZLZ"Z }YYX@Yo@Y@YY@Y@YI@XӸXƉXXqX@Xv@W@Wx@W_W@Vm@VhV*!@VCV }@U@U@U@UU[%UT@UCjU@TeT;mcepl@cepl.eumcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comschwab@suse.demcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.deqydwhotmail@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commeissner@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commmachova@suse.commcepl@suse.commcepl@suse.commcalabkova@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comtchvatal@suse.comschwab@suse.demcalabkova@suse.commcalabkova@suse.commcalabkova@suse.commcepl@suse.commcalabkova@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.compsimons@suse.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.netjmatejek@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comjmatejek@suse.com- Add CVE-2025-8194-tarfile-no-neg-offsets.patch which now validates archives to ensure member offsets are non-negative (gh#python/cpython#130577, CVE-2025-8194, bsc#1247249).- Add CVE-2025-4435-normalize-lnk-trgts-tarfile.patch Security fixes for CVE-2025-4517, CVE-2025-4330, CVE-2025-4138, CVE-2024-12718, CVE-2025-4435 on tarfile (bsc#1244032, bsc#1244061, bsc#1244059, bsc#1244060, bsc#1244056). The backported fixes do not contain changes for ntpath.py and related tests, because the support for symlinks and junctions were added later in Python 3.9, and it does not make sense to backport them to 3.6 here. The patch is contains the following changes: - python@42deeab fixes symlink handling for tarfile.data_filter - python@9d2c2a8 fixes handling of existing files/symlinks in tarfile - python@00af979 adds a new "strict" argument to realpath() - python@dd8f187 fixes mulriple CVE fixes in the tarfile module - downstream only fixes that makes the changes work and compatible with Python 3.6 - Add CVE-2025-6069-quad-complex-HTMLParser.patch to avoid worst case quadratic complexity when processing certain crafted malformed inputs with HTMLParser (CVE-2025-6069, bsc#1244705).- Add python36-* provides/obsoletes to enable SLE-12 -> SLE-15 migration, bsc#1233012- Add ipaddress-update-pr60.patch from gh#phihag/ipaddress!60 to update vendored ipaddress module to 3.8 equivalent - Add gh-128840_parse-IPv6-with-emb-IPv4.patch to limit buffer size for IPv6 address parsing (gh#python/cpython#128840, bsc#1244401). - Update CVE-2025-4516-DecodeError-handler.patch not to break _PyBytes_DecodeEscape signature.- Add CVE-2025-4516-DecodeError-handler.patch fixing CVE-2025-4516 (bsc#1243273) blocking DecodeError handling vulnerability, which could lead to DoS.- Update CVE-2024-11168-validation-IPv6-addrs.patch according to the Debian version (gh#python/cpython#103848#issuecomment-2708135083).- Add CVE-2025-0938-sq-brackets-domain-names.patch which disallows square brackets ([ and ]) in domain names for parsed URLs (bsc#1236705, CVE-2025-0938, gh#python/cpython#105704)- Remove -IVendor/ from python-config boo#1231795 - Fix CVE-2024-11168-validation-IPv6-addrs.patch - PGO run of build freezes with parallel processing, switch to -j1- Add CVE-2024-11168-validation-IPv6-addrs.patch fixing bsc#1233307 (CVE-2024-11168, gh#python/cpython#103848): Improper validation of IPv6 and IPvFuture addresses.- Add CVE-2024-9287-venv_path_unquoted.patch to properly quote path names provided when creating a virtual environment (bsc#1232241, CVE-2024-9287)- Drop .pyc files from docdir for reproducible builds (bsc#1230906).- Add CVE-2024-6232-ReDOS-backtrack-tarfile.patch prevent ReDos via excessive backtracking while parsing header values (bsc#1230227, CVE-2024-6232).- Add CVE-2024-5642-switch-off-NPN.patch switching off the NPN support eliminating bsc#1227233 (CVE-2024-5642).- Add CVE-2024-6923-email-hdr-inject.patch to prevent email header injection due to unquoted newlines (bsc#1228780, CVE-2024-6923). - Add CVE-2024-7592-quad-complex-cookies.patch fixing quadratic complexity in parsing cookies with backslashes (bsc#1229596, CVE-2024-7592) - %{profileopt} variable is set according to the variable %{do_profiling} (bsc#1227999)- Remove %suse_update_desktop_file macro as it is not useful any more.- Stop using %%defattr, it seems to be breaking proper executable attributes on /usr/bin/ scripts (bsc#1227378).- Add CVE-2024-4032-private-IP-addrs.patch to fix bsc#1226448 (CVE-2024-4032) rearranging definition of private v global IP addresses.- Add CVE-2024-0397-memrace_ssl.SSLContext_cert_store.patch fixing bsc#1226447 (CVE-2024-0397) by removing memory race condition in ssl.SSLContext certificate store methods.- Add bpo38361-syslog-no-slash-ident.patch (bsc#1222109, gh#python/cpython!16557) fixes syslog making default "ident" from sys.argv[0]. - Update CVE-2023-52425-libexpat-2.6.0-backport.patch so that it uses features sniffing, not just comparing version number (bsc#1220664, bsc#1219559, bsc#1221563, bsc#1222075). - Remove support-expat-CVE-2022-25236-patched.patch, which was the previous name of this patch. - Add CVE-2023-52425-remove-reparse_deferral-tests.patch skipping failing tests. - Refresh patches: - CVE-2023-27043-email-parsing-errors.patch - fix_configure_rst.patch - skip_if_buildbot-extend.patch- bsc#1221854 (CVE-2024-0450) Add CVE-2024-0450-zipfile-avoid-quoted-overlap-zipbomb.patch detecting the vulnerability of the "quoted-overlap" zipbomb (from gh#python/cpython!110016). - Add bh42369-thread-safety-zipfile-SharedFile.patch (from gh#python/cpython!26974) required by the previous patch. - Add expat-260-test_xml_etree-reparse-deferral.patch to make the interpreter work with patched libexpat in our distros. - Move all patches from locally sourced to the branch opensuse-3.6 branch at GitHub repo, and move all metadata to commits themselves (readable in the headers of each patch). - Add bpo-41675-modernize-siginterrupt.patch to make Python build cleanly even on more recent SPs of SLE-15 (gh#python/cpython#85841). - Remove patches: - bpo36263-Fix_hashlib_scrypt.patch - fix against bug in OpenSSL fixed in 1.1.1c (gh#openssl/openssl!8483), so this patch is redundant on all SUSE-supported distros - python-3.3.0b1-test-posix_fadvise.patch - protection against the kernel issues which has been fixed in gh#torvalds/linux@3d3727cdb07f, which has been included in all our kernels more recent than SLE-11. - python-3.3.3-skip-distutils-test_sysconfig_module.patch - skips a test, which should be relevant only for testing on Mac OS X systems with universal builds. I have no valid record, that this test would be ever problematic on Linux. - bpo-36576-skip_tests_for_OpenSSL-111.patch, which was included already in Python 3.5.- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory. - Merge together bpo-36576-skip_tests_for_OpenSSL-111.patch into skip_SSL_tests.patch, and make them include all conditionals.- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043).- Add CVE-2023-40217-avoid-ssl-pre-close.patch fixing gh#python/cpython#108310, backport from upstream patch gh#python/cpython#108315 (bsc#1214692, CVE-2023-40217)- Add 99366-patch.dict-can-decorate-async.patch fixing gh#python/cpython#98086 (backport from Python 3.10 patch in gh#python/cpython!99366), fixing bsc#1211158.- Add CVE-2007-4559-filter-tarfile_extractall.patch to fix CVE-2007-4559 (bsc#1203750) by adding the filter for tarfile.extractall (PEP 706).- Use python3 modules to build the documentation.- Add bpo-44434-libgcc_s-for-pthread_cancel.patch which eliminates unnecessary and dangerous calls to PyThread_exit_thread() (bsc#1203355).- Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, bsc#1208471) blocklists bypass via the urllib.parse component when supplying a URL that starts with blank characters- Add bpo27321-email-no-replace-header.patch to stop email.generator.py from replacing a non-existent header (bsc#1208443, gh#python/cpython#71508).- Add bsc1188607-pythreadstate_clear-decref.patch to fix crash in the garbage collection (bsc#1188607).- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Add CVE-2022-37454-sha3-buffer-overflow.patch to fix bsc#1204577 (CVE-2022-37454, gh#python/cpython#98517) buffer overflow in hashlib.sha3_* implementations (originally from the XKCP library).- Add CVE-2020-10735-DoS-no-limit-int-size.patch to fix CVE-2020-10735 (bsc#1203125) to limit amount of digits converting text to int and vice vera (potential for DoS). Originally by Victor Stinner of Red Hat.- Add patch CVE-2021-28861-double-slash-path.patch: * http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. (bsc#1202624, CVE-2021-28861)- Add CVE-2015-20107-mailcap-unsafe-filenames.patch to avoid CVE-2015-20107 (bsc#1198511, gh#python/cpython#68966), the command injection in the mailcap module. - Rename support-expat-245.patch to support-expat-CVE-2022-25236-patched.patch to unify the patch with other packages. - Add bpo-46623-skip-zlib-s390x.patch skipping two failing tests on s390x.- Update bundled pip wheel to the latest SLE version patched against bsc#1186819 (CVE-2021-3572).- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- Rename 22198.patch into more descriptive remove-sphinx40-warning.patch.- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use OpenSSL 1.1 on platforms which don't have it.- Remove shebangs from from python-base libraries in _libdir (bsc#1193179, bsc#1192249). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- build against openssl 1.1 as it is incompatible with openssl 3.0+ (bsc#1190566)- 0001-allow-for-reproducible-builds-of-python-packages.patch: ignore permission error when changing the mtime of the source file in presence of SOURCE_DATE_EPOCH- The previous construct works only on the current Factory, not in SLE.- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Due to conflicting demands of bsc#1183858 and platforms where Python 3.6 is only in interpreter+pip set we have to make complicated ugly construct about Sphinx BR.- Make python36 primary interpreter on SLE-15- Make build working even on older SLEs.- Update to 3.6.15: - bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of \r and \n characters to avoid (unlikely) command injection. Library - bpo-45001: Made email date parsing more robust against malformed input, namely a whitespace-only Date: header. Patch by Wouter Bolsterlee. Tests - bpo-38965: Fix test_faulthandler on GCC 10. Use the “volatile” keyword in faulthandler._stack_overflow() to prevent tail call optimization on any compiler, rather than relying on compiler specific pragma. - bpo-40791: Make compare_digest more constant-time (bsc#1214691, CVE-2022-48566). - Remove upstreamed patches: - faulthandler_stack_overflow_on_GCC10.patch- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.6.14: * Security - bpo-44022 (bsc#1189241, CVE-2021-3737): mod:http.client now avoids infinitely reading potential HTTP headers after a 100 Continue status response from the server. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-42988 (CVE-2021-3426, bsc#1183374): Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo-43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo-43075 (CVE-2021-3733, bsc#1189287): Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - Upstreamed patches were removed: - CVE-2021-3426-inf-disclosure-pydoc-getfile.patch - CVE-2021-3733-ReDoS-urllib-AbstractBasicAuthHandler.patch - Refreshed patches: - python3-sorted_tar.patch - riscv64-ctypes.patch- Rebuild to get new headers, avoid building in support for stropts.h (bsc#1187338).- Use versioned python-Sphinx to avoid dependency on other version of Python (bsc#1183858).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- add 22198.patch to build with Sphinx 4- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Add CVE-2021-3426-inf-disclosure-pydoc-getfile.patch to remove getfile feature from pydoc, which is a security nightmare (among other things, CVE-2021-3426, allows disclosure of any file on the system; bsc#1183374, bpo#42988).Update to 3.6.13, final release of 3.6 branch: * Security - bpo#42967 (bsc#1182379, CVE-2021-23336): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. - bpo#42938 (bsc#1181126, CVE-2021-3177): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. - bpo#42103: Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - bpo#42051: The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - bpo#40791: Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. * Core and Builtins - bpo#35560: Fix an assertion error in format() in debug build for floating point formatting with “n” format, zero padding and small width. Release build is not impacted. Patch by Karthikeyan Singaravelan. * Library - bpo#42103: InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). * Tests - bpo#42794: Update test_nntplib to use offical group name of news.aioe.org for testing. Patch by Dong-hee Na. - bpo#41944: Tests for CJK codecs no longer call eval() on content received via HTTP. - Patches removed, because they were included in the upstream tarball: - CVE-2020-27619-no-eval-http-content.patch - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- Provide the newest setuptools wheel (bsc#1176262, CVE-2019-20916) in their correct form (bsc#1180686).- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- readd --with-fpectl (bsc#1180377)- Adjust sphinx-update-removed-function.patch- (bsc#1179630) Update sphinx-update-removed-function.patch to work with all versions of Sphinx (not binding the Python documentation build to the latest verison of Sphinx). Updated version mentioned on gh#python/cpython#13236.- Add CVE-2020-27619-no-eval-http-content.patch fixing CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support calls eval() on content retrieved via HTTP.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function (gh#python/cpython#13236). As a consequence, no longer pin Sphinx version.- Pin Sphinx version to fix doc subpackage- Change setuptools and pip version numbers according to new wheels (bsc#1179756). - Add ignore_pip_deprec_warn.patch to switch of persistently failing test.- Replace bundled wheels for pip and setuptools with the updated ones (bsc#1176262 CVE-2019-20916).- Handful of changes to make python36 compatible with SLE15 and SLE12 (jsc#ECO-2799, jsc#SLE-13738) - Rebase bpo23395-PyErr_SetInterrupt-signal.patch- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Fix installing .desktop file- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Add faulthandler_stack_overflow_on_GCC10.patch to make build working even with GCC10 (bpo#38965).- Just cleanup and reordering items to synchronize with python38- Format with spec-cleaner- riscv64-support.patch: bpo-33377: add triplets for mips-r6 and riscv (#6655) - riscv64-ctypes.patch: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) - Update list of tests to exclude under qemu linux-user- Update the python keyring - Correct libpython name- Drop patches which are not mentioned in spec: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * F00102-lib64.patch * F00251-change-user-install-location.patch * OBS_dev-shm.patch * SUSE-FEDORA-multilib.patch * bpo-31046_ensurepip_honours_prefix.patch * bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * bpo36302-sort-module-sources.patch * bpo40784-Fix-sqlite3-deterministic-test.patch * bsc1167501-invalid-alignment.patch * python3-imp-returntype.patch - Working around missing python-packaging dependency in python-Sphinx (bsc#1174571) is not necessary anymore.- Update to 3.6.12 (bsc#1179193) * Ensure python3.dll is loaded from correct locations when Python is embedded * The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address). * Prevent http header injection by rejecting control characters in http.client.putrequest(…). * Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. * Avoid infinite loop when reading specially crafted TAR files using the tarfile module - Drop merged fixtures: * CVE-2020-14422-ipaddress-hash-collision.patch * CVE-2019-20907_tarfile-inf-loop.patch * recursion.tar - This release also fixes CVE-2020-26116 (bsc#1177211) and CVE-2019-20907 (bsc#1174091).- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Make library names internally consistent- Disable profile optimalizations as they deadlock in test_faulthandler- Disable lto as it causes mess and works with 3.7 onwards only- Sync the test disablements from the python3 in sle15- Update to 3.6.11: - bpo-39073: Disallow CR or LF in email.headerregistry. Address arguments to guard against header injection attacks. - bpo-38576 (bsc#1155094): Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. - bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7. - Remove merged patch CVE-2020-8492-urllib-ReDoS.patch, CRLF_injection_via_host_part.patch, and CVE-2019-18348-CRLF_injection_via_host_part.patch.- Fix minor issues found in the staging.- Do not set ourselves as a primary interpreter- Add CVE-2020-14422-ipaddress-hash-collision.patch fixing CVE-2020-14422 (bsc#1173274, bpo#41004), where hash collisions in IPv4Interface and IPv6Interface could lead to DOS.- Change name of idle3 icons to idle3.png to avoid collision with Python 2 version (bsc#1165894).- Add CVE-2019-9674-zip-bomb.patch to improve documentation warning about dangers of zip-bombs and other security problems with zipfile library. (bsc#1162825 CVE-2019-9674) - Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Reame idle icons to idle3 in order to not conflict with python2 variant of the package bsc#1165894 * renamed the icons * renamed icon load in desktop file- Add pep538_coerce_legacy_c_locale.patch to coerce locale to C.UTF-8 always (bsc#1162423).- Update to 3.6.10 (still in line with jsc#SLE-9426, jsc#SLE-9427, bsc#1159035): - Security: - bpo-38945: Newline characters have been escaped when performing uu encoding to prevent them from overflowing into to content section of the encoded file. This prevents malicious or accidental modification of data during the decoding process. - bpo-37228: Due to significant security concerns, the reuse_address parameter of asyncio.loop.create_datagram_endpoint() is no longer supported. This is because of the behavior of SO_REUSEADDR in UDP. For more details, see the documentation for loop.create_datagram_endpoint(). (Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in bpo-37228.) - bpo-38804: Fixes a ReDoS vulnerability in http.cookiejar. Patch by Ben Caller. - bpo-38243: Escape the server title of xmlrpc.server.DocXMLRPCServer when rendering the document page as HTML. (Contributed by Dong-hee Na in bpo-38243.) - bpo-38174: Update vendorized expat library version to 2.2.8, which resolves CVE-2019-15903. - bpo-37461: Fix an infinite loop when parsing specially crafted email headers. Patch by Abhilash Raj. - bpo-34155: Fix parsing of invalid email addresses with more than one @ (e.g. a@b@c.com.) to not return the part before 2nd @ as valid email address. Patch by maxking & jpic. - Library: - bpo-38216: Allow the rare code that wants to send invalid http requests from the http.client library a way to do so. The fixes for bpo-30458 led to breakage for some projects that were relying on this ability to test their own behavior in the face of bad requests. - bpo-36564: Fix infinite loop in email header folding logic that would be triggered when an email policy’s max_line_length is not long enough to include the required markup and any values in the message. Patch by Paul Ganssle - Remove patches included in the upstream tarball: - CVE-2019-16935-xmlrpc-doc-server_title.patch (and also bpo37614-race_test_docxmlrpc_srv_setup.patch, which was resolving bsc#1174701). - CVE-2019-16056-email-parse-addr.patch - Move idle subpackage build from python3-base to python3 (bsc#1159622). appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Unify all Python 3.6* SLE packages into one (jsc#SLE-9426, jsc#SLE-9427, bsc#1159035) - Patches which were already included upstream: - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch- Add CVE-2019-16935-xmlrpc-doc-server_title.patch fixing bsc#1153238 (aka CVE-2019-16935) fixing a reflected XSS in python/Lib/DocXMLRPCServer.py- Add bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792 - Add bpo36263-Fix_hashlib_scrypt.patch which works around bsc#1151490- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, bnc#1149955, CVE-2019-16056]- jsc#PM-1350 bsc#1149121 Update python3 to the last version of the 3.6 line. This is just a bugfix release with no changes in functionality. - The following patches were included in the upstream release as so they can be removed in the package: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - CVE-2019-9947-no-ctrl-char-http.patch - Patch bpo23395-PyErr_SetInterrupt-signal.patch has been reapplied on the upstream base without changing any functionality. - Add patch aarch64-prolong-timeout.patch to fix failing test_utime_current_old test.- FAKE RECORD FROM SLE-12 CHANNEL Apply "CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch" which converts shutil._call_external_zip to use subprocess rather than distutils.spawn. [bsc#1109663, CVE-2018-1000802]- FAKE RECORD FROM SLE-12 CHANNEL bsc#1109847: add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo#34623.- boo#1141853 (CVE-2018-20852) add CVE-2018-20852-cookie-domain-check.patch fixing http.cookiejar.DefaultPolicy.domain_return_ok which did not correctly validate the domain: it could be tricked into sending cookies to the wrong server.- bsc#1138459: add CVE-2019-10160-netloc-port-regression.patch which fixes regression introduced by the previous patch. (CVE-2019-10160) Upstream gh#python/cpython#13812- FAKE RECORD FROM SLE-12 CHANNEL bsc#1137942: Avoid duplicate files with python3* packages (https://fate.suse.com/327309)- bsc#1094814: Add bpo23395-PyErr_SetInterrupt-signal.patch to handle situation when the SIGINT signal is ignored or not handled- Update to 3.6.8: - bugfixes only - removed patches (subsumed in the upstream tarball): - CVE-2018-20406-pickle_LONG_BINPUT.patch - refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - Python-3.0b1-record-rpm.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.3.3-skip-distutils-test_sysconfig_module.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch - subprocess-raise-timeout.patch - switch off LTO and PGO optimization (bsc#1133452) - bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- bsc#1129346: add CVE-2019-9636-urlsplit-NFKC-norm.patch Characters in the netloc attribute that decompose under NFKC normalization (as used by the IDNA encoding) into any of ``/``, ``?``, ``#``, ``@``, or ``:`` will raise a ValueError. If the URL is decomposed before parsing, or is not a Unicode string, no error will be raised. (CVE-2019-9636) Upstream gh#python/cpython#12224- bsc#1120644 add CVE-2018-20406-pickle_LONG_BINPUT.patch fixing bpo#34656 Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it. (bsc#1107030)- Apply "CVE-2018-1061-DOS-via-regexp-difflib.patch" to prevent low-grade poplib REDOS (CVE-2018-1060) and to prevent difflib REDOS (CVE-2018-1061). Prior to this patch mail server's timestamp was susceptible to catastrophic backtracking on long evil response from the server. Also, it was susceptible to catastrophic backtracking, which was a potential DOS vector. [bsc#1088004 and bsc#1088009, CVE-2018-1061 and CVE-2018-1060]- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Apply "python-3.6-CVE-2017-18207.patch" to add a check to Lib/wave.py that verifies that at least one channel is provided. Prior to this check, attackers could cause a denial of service (divide-by-zero error and application crash) via a crafted wav format audio file. [bsc#1083507, CVE-2017-18207]- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750, bsc#1086001)- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.6 (bsc#1027282): * fixed potential crash in PyUnicode_AsDecodedObject() in debug build * fixed possible DoS and arbitrary execution in gettext plurals * fix possible use of uninitialized memory in operator.methodcaller * fix possible Py_DECREF on unowned object in _sre * fix possible integer overflow in _csv module * prevent HTTPoxy attack (CVE-2016-1000110) * fix selectors incorrectly retaining invalid fds - drop upstreamed python-3.4-CVE-2016-1000110-fix.patch - move _elementtree to python3.rpm to match its pyexpat dependency (bsc#1029377)- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- FAKE RECORD FROM SLE-12 CHANNEL apply fix for CVE-2016-1000110 - CGIHandler: sets environmental variable based on user supplied Proxy request header: python-3.4-CVE-2016-1000110-fix.patch (fixes bsc#989523, CVE-2016-1000110) - refresh python3-urllib-prefer-lowercase-proxies.patch- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.5 check: https://docs.python.org/3.4/whatsnew/changelog.html (fixes bsc#984751, CVE-2016-0772) (fixes bsc#985177, CVE-2016-5636) (fixes bsc#985348, CVE-2016-5699) - drop upstreamed werror-declaration-after-statement.patch- FAKE RECORD FROM SLE-12 CHANNEL Due to being fixed upstream (differently), removed outdated patch CVE-2014-4650-CGIHTTPServer-traversal.patch (bsc#983582)- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- FAKE RECORD FROM SLE-12 CHANNEL Issue #21121: Don't force 3rd party C extensions to be built with -Werror=declaration-after-statement. (werror-declaration-after-statement.patch, bsc#951166)- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillapython3-idlepython36-idles390zp35 1754321849  !"#"%&%()(+,+./0121454787:;:=>?@A@CDCFGFIJILMLOPQRRRUUUXYX[\[^_`abcdedghgjkjmnmpqpsssvwvyzy|}|     ! #$#&'&)*),-,/0/232565898;<;>?>ABADEDGHGJKJMNMPQPSTSVWXYZY\]\_`_bcbefehihklknonqrqtutwxwz{z}~}      !"#$%3.6.15-150300.10.97.23.6.153.6.15-150300.10.97.23.6.15-150300.10.97.23.6.15 3.6.153.6.15   idle3.6config-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defidle3.6idlelibCREDITS.txtChangeLogHISTORY.txtIconsfolder.gifidle.icnsidle.icoidle_16.gifidle_16.pngidle_32.gifidle_32.pngidle_48.gifidle_48.pngminusnode.gifopenfolder.gifplusnode.gifpython.giftk.gifNEWS.txtNEWS2x.txtREADME.txtTODO.txt__init__.py__main__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.opt-2.pyc__init__.cpython-36.pyc__main__.cpython-36.opt-1.pyc__main__.cpython-36.opt-2.pyc__main__.cpython-36.pyc_pyclbr.cpython-36.opt-1.pyc_pyclbr.cpython-36.opt-2.pyc_pyclbr.cpython-36.pycautocomplete.cpython-36.opt-1.pycautocomplete.cpython-36.opt-2.pycautocomplete.cpython-36.pycautocomplete_w.cpython-36.opt-1.pycautocomplete_w.cpython-36.opt-2.pycautocomplete_w.cpython-36.pycautoexpand.cpython-36.opt-1.pycautoexpand.cpython-36.opt-2.pycautoexpand.cpython-36.pycbrowser.cpython-36.opt-1.pycbrowser.cpython-36.opt-2.pycbrowser.cpython-36.pyccalltip.cpython-36.opt-1.pyccalltip.cpython-36.opt-2.pyccalltip.cpython-36.pyccalltip_w.cpython-36.opt-1.pyccalltip_w.cpython-36.opt-2.pyccalltip_w.cpython-36.pyccodecontext.cpython-36.opt-1.pyccodecontext.cpython-36.opt-2.pyccodecontext.cpython-36.pyccolorizer.cpython-36.opt-1.pyccolorizer.cpython-36.opt-2.pyccolorizer.cpython-36.pycconfig.cpython-36.opt-1.pycconfig.cpython-36.opt-2.pycconfig.cpython-36.pycconfig_key.cpython-36.opt-1.pycconfig_key.cpython-36.opt-2.pycconfig_key.cpython-36.pycconfigdialog.cpython-36.opt-1.pycconfigdialog.cpython-36.opt-2.pycconfigdialog.cpython-36.pycdebugger.cpython-36.opt-1.pycdebugger.cpython-36.opt-2.pycdebugger.cpython-36.pycdebugger_r.cpython-36.opt-1.pycdebugger_r.cpython-36.opt-2.pycdebugger_r.cpython-36.pycdebugobj.cpython-36.opt-1.pycdebugobj.cpython-36.opt-2.pycdebugobj.cpython-36.pycdebugobj_r.cpython-36.opt-1.pycdebugobj_r.cpython-36.opt-2.pycdebugobj_r.cpython-36.pycdelegator.cpython-36.opt-1.pycdelegator.cpython-36.opt-2.pycdelegator.cpython-36.pycdynoption.cpython-36.opt-1.pycdynoption.cpython-36.opt-2.pycdynoption.cpython-36.pyceditor.cpython-36.opt-1.pyceditor.cpython-36.opt-2.pyceditor.cpython-36.pycfilelist.cpython-36.opt-1.pycfilelist.cpython-36.opt-2.pycfilelist.cpython-36.pycgrep.cpython-36.opt-1.pycgrep.cpython-36.opt-2.pycgrep.cpython-36.pychelp.cpython-36.opt-1.pychelp.cpython-36.opt-2.pychelp.cpython-36.pychelp_about.cpython-36.opt-1.pychelp_about.cpython-36.opt-2.pychelp_about.cpython-36.pychistory.cpython-36.opt-1.pychistory.cpython-36.opt-2.pychistory.cpython-36.pychyperparser.cpython-36.opt-1.pychyperparser.cpython-36.opt-2.pychyperparser.cpython-36.pycidle.cpython-36.opt-1.pycidle.cpython-36.opt-2.pycidle.cpython-36.pyciomenu.cpython-36.opt-1.pyciomenu.cpython-36.opt-2.pyciomenu.cpython-36.pycmacosx.cpython-36.opt-1.pycmacosx.cpython-36.opt-2.pycmacosx.cpython-36.pycmainmenu.cpython-36.opt-1.pycmainmenu.cpython-36.opt-2.pycmainmenu.cpython-36.pycmulticall.cpython-36.opt-1.pycmulticall.cpython-36.opt-2.pycmulticall.cpython-36.pycoutwin.cpython-36.opt-1.pycoutwin.cpython-36.opt-2.pycoutwin.cpython-36.pycparagraph.cpython-36.opt-1.pycparagraph.cpython-36.opt-2.pycparagraph.cpython-36.pycparenmatch.cpython-36.opt-1.pycparenmatch.cpython-36.opt-2.pycparenmatch.cpython-36.pycpathbrowser.cpython-36.opt-1.pycpathbrowser.cpython-36.opt-2.pycpathbrowser.cpython-36.pycpercolator.cpython-36.opt-1.pycpercolator.cpython-36.opt-2.pycpercolator.cpython-36.pycpyparse.cpython-36.opt-1.pycpyparse.cpython-36.opt-2.pycpyparse.cpython-36.pycpyshell.cpython-36.opt-1.pycpyshell.cpython-36.opt-2.pycpyshell.cpython-36.pycquery.cpython-36.opt-1.pycquery.cpython-36.opt-2.pycquery.cpython-36.pycredirector.cpython-36.opt-1.pycredirector.cpython-36.opt-2.pycredirector.cpython-36.pycreplace.cpython-36.opt-1.pycreplace.cpython-36.opt-2.pycreplace.cpython-36.pycrpc.cpython-36.opt-1.pycrpc.cpython-36.opt-2.pycrpc.cpython-36.pycrstrip.cpython-36.opt-1.pycrstrip.cpython-36.opt-2.pycrstrip.cpython-36.pycrun.cpython-36.opt-1.pycrun.cpython-36.opt-2.pycrun.cpython-36.pycrunscript.cpython-36.opt-1.pycrunscript.cpython-36.opt-2.pycrunscript.cpython-36.pycscrolledlist.cpython-36.opt-1.pycscrolledlist.cpython-36.opt-2.pycscrolledlist.cpython-36.pycsearch.cpython-36.opt-1.pycsearch.cpython-36.opt-2.pycsearch.cpython-36.pycsearchbase.cpython-36.opt-1.pycsearchbase.cpython-36.opt-2.pycsearchbase.cpython-36.pycsearchengine.cpython-36.opt-1.pycsearchengine.cpython-36.opt-2.pycsearchengine.cpython-36.pycsqueezer.cpython-36.opt-1.pycsqueezer.cpython-36.opt-2.pycsqueezer.cpython-36.pycstackviewer.cpython-36.opt-1.pycstackviewer.cpython-36.opt-2.pycstackviewer.cpython-36.pycstatusbar.cpython-36.opt-1.pycstatusbar.cpython-36.opt-2.pycstatusbar.cpython-36.pyctextview.cpython-36.opt-1.pyctextview.cpython-36.opt-2.pyctextview.cpython-36.pyctooltip.cpython-36.opt-1.pyctooltip.cpython-36.opt-2.pyctooltip.cpython-36.pyctree.cpython-36.opt-1.pyctree.cpython-36.opt-2.pyctree.cpython-36.pycundo.cpython-36.opt-1.pycundo.cpython-36.opt-2.pycundo.cpython-36.pycwindow.cpython-36.opt-1.pycwindow.cpython-36.opt-2.pycwindow.cpython-36.pyczoomheight.cpython-36.opt-1.pyczoomheight.cpython-36.opt-2.pyczoomheight.cpython-36.pyczzdummy.cpython-36.opt-1.pyczzdummy.cpython-36.opt-2.pyczzdummy.cpython-36.pyc_pyclbr.pyautocomplete.pyautocomplete_w.pyautoexpand.pybrowser.pycalltip.pycalltip_w.pycodecontext.pycolorizer.pyconfig-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defconfig.pyconfig_key.pyconfigdialog.pydebugger.pydebugger_r.pydebugobj.pydebugobj_r.pydelegator.pydynoption.pyeditor.pyextend.txtfilelist.pygrep.pyhelp.htmlhelp.pyhelp_about.pyhistory.pyhyperparser.pyidle.batidle.pyidle.pywidle_testREADME.txt__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.opt-2.pyc__init__.cpython-36.pychtest.cpython-36.opt-1.pychtest.cpython-36.opt-2.pychtest.cpython-36.pycmock_idle.cpython-36.opt-1.pycmock_idle.cpython-36.opt-2.pycmock_idle.cpython-36.pycmock_tk.cpython-36.opt-1.pycmock_tk.cpython-36.opt-2.pycmock_tk.cpython-36.pyctemplate.cpython-36.opt-1.pyctemplate.cpython-36.opt-2.pyctemplate.cpython-36.pyctest_autocomplete.cpython-36.opt-1.pyctest_autocomplete.cpython-36.opt-2.pyctest_autocomplete.cpython-36.pyctest_autocomplete_w.cpython-36.opt-1.pyctest_autocomplete_w.cpython-36.opt-2.pyctest_autocomplete_w.cpython-36.pyctest_autoexpand.cpython-36.opt-1.pyctest_autoexpand.cpython-36.opt-2.pyctest_autoexpand.cpython-36.pyctest_browser.cpython-36.opt-1.pyctest_browser.cpython-36.opt-2.pyctest_browser.cpython-36.pyctest_calltip.cpython-36.opt-1.pyctest_calltip.cpython-36.opt-2.pyctest_calltip.cpython-36.pyctest_calltip_w.cpython-36.opt-1.pyctest_calltip_w.cpython-36.opt-2.pyctest_calltip_w.cpython-36.pyctest_codecontext.cpython-36.opt-1.pyctest_codecontext.cpython-36.opt-2.pyctest_codecontext.cpython-36.pyctest_colorizer.cpython-36.opt-1.pyctest_colorizer.cpython-36.opt-2.pyctest_colorizer.cpython-36.pyctest_config.cpython-36.opt-1.pyctest_config.cpython-36.opt-2.pyctest_config.cpython-36.pyctest_config_key.cpython-36.opt-1.pyctest_config_key.cpython-36.opt-2.pyctest_config_key.cpython-36.pyctest_configdialog.cpython-36.opt-1.pyctest_configdialog.cpython-36.opt-2.pyctest_configdialog.cpython-36.pyctest_debugger.cpython-36.opt-1.pyctest_debugger.cpython-36.opt-2.pyctest_debugger.cpython-36.pyctest_debugger_r.cpython-36.opt-1.pyctest_debugger_r.cpython-36.opt-2.pyctest_debugger_r.cpython-36.pyctest_debugobj.cpython-36.opt-1.pyctest_debugobj.cpython-36.opt-2.pyctest_debugobj.cpython-36.pyctest_debugobj_r.cpython-36.opt-1.pyctest_debugobj_r.cpython-36.opt-2.pyctest_debugobj_r.cpython-36.pyctest_delegator.cpython-36.opt-1.pyctest_delegator.cpython-36.opt-2.pyctest_delegator.cpython-36.pyctest_editmenu.cpython-36.opt-1.pyctest_editmenu.cpython-36.opt-2.pyctest_editmenu.cpython-36.pyctest_editor.cpython-36.opt-1.pyctest_editor.cpython-36.opt-2.pyctest_editor.cpython-36.pyctest_filelist.cpython-36.opt-1.pyctest_filelist.cpython-36.opt-2.pyctest_filelist.cpython-36.pyctest_grep.cpython-36.opt-1.pyctest_grep.cpython-36.opt-2.pyctest_grep.cpython-36.pyctest_help.cpython-36.opt-1.pyctest_help.cpython-36.opt-2.pyctest_help.cpython-36.pyctest_help_about.cpython-36.opt-1.pyctest_help_about.cpython-36.opt-2.pyctest_help_about.cpython-36.pyctest_history.cpython-36.opt-1.pyctest_history.cpython-36.opt-2.pyctest_history.cpython-36.pyctest_hyperparser.cpython-36.opt-1.pyctest_hyperparser.cpython-36.opt-2.pyctest_hyperparser.cpython-36.pyctest_iomenu.cpython-36.opt-1.pyctest_iomenu.cpython-36.opt-2.pyctest_iomenu.cpython-36.pyctest_macosx.cpython-36.opt-1.pyctest_macosx.cpython-36.opt-2.pyctest_macosx.cpython-36.pyctest_mainmenu.cpython-36.opt-1.pyctest_mainmenu.cpython-36.opt-2.pyctest_mainmenu.cpython-36.pyctest_multicall.cpython-36.opt-1.pyctest_multicall.cpython-36.opt-2.pyctest_multicall.cpython-36.pyctest_outwin.cpython-36.opt-1.pyctest_outwin.cpython-36.opt-2.pyctest_outwin.cpython-36.pyctest_paragraph.cpython-36.opt-1.pyctest_paragraph.cpython-36.opt-2.pyctest_paragraph.cpython-36.pyctest_parenmatch.cpython-36.opt-1.pyctest_parenmatch.cpython-36.opt-2.pyctest_parenmatch.cpython-36.pyctest_pathbrowser.cpython-36.opt-1.pyctest_pathbrowser.cpython-36.opt-2.pyctest_pathbrowser.cpython-36.pyctest_percolator.cpython-36.opt-1.pyctest_percolator.cpython-36.opt-2.pyctest_percolator.cpython-36.pyctest_pyparse.cpython-36.opt-1.pyctest_pyparse.cpython-36.opt-2.pyctest_pyparse.cpython-36.pyctest_pyshell.cpython-36.opt-1.pyctest_pyshell.cpython-36.opt-2.pyctest_pyshell.cpython-36.pyctest_query.cpython-36.opt-1.pyctest_query.cpython-36.opt-2.pyctest_query.cpython-36.pyctest_redirector.cpython-36.opt-1.pyctest_redirector.cpython-36.opt-2.pyctest_redirector.cpython-36.pyctest_replace.cpython-36.opt-1.pyctest_replace.cpython-36.opt-2.pyctest_replace.cpython-36.pyctest_rpc.cpython-36.opt-1.pyctest_rpc.cpython-36.opt-2.pyctest_rpc.cpython-36.pyctest_rstrip.cpython-36.opt-1.pyctest_rstrip.cpython-36.opt-2.pyctest_rstrip.cpython-36.pyctest_run.cpython-36.opt-1.pyctest_run.cpython-36.opt-2.pyctest_run.cpython-36.pyctest_runscript.cpython-36.opt-1.pyctest_runscript.cpython-36.opt-2.pyctest_runscript.cpython-36.pyctest_scrolledlist.cpython-36.opt-1.pyctest_scrolledlist.cpython-36.opt-2.pyctest_scrolledlist.cpython-36.pyctest_search.cpython-36.opt-1.pyctest_search.cpython-36.opt-2.pyctest_search.cpython-36.pyctest_searchbase.cpython-36.opt-1.pyctest_searchbase.cpython-36.opt-2.pyctest_searchbase.cpython-36.pyctest_searchengine.cpython-36.opt-1.pyctest_searchengine.cpython-36.opt-2.pyctest_searchengine.cpython-36.pyctest_squeezer.cpython-36.opt-1.pyctest_squeezer.cpython-36.opt-2.pyctest_squeezer.cpython-36.pyctest_stackviewer.cpython-36.opt-1.pyctest_stackviewer.cpython-36.opt-2.pyctest_stackviewer.cpython-36.pyctest_statusbar.cpython-36.opt-1.pyctest_statusbar.cpython-36.opt-2.pyctest_statusbar.cpython-36.pyctest_text.cpython-36.opt-1.pyctest_text.cpython-36.opt-2.pyctest_text.cpython-36.pyctest_textview.cpython-36.opt-1.pyctest_textview.cpython-36.opt-2.pyctest_textview.cpython-36.pyctest_tooltip.cpython-36.opt-1.pyctest_tooltip.cpython-36.opt-2.pyctest_tooltip.cpython-36.pyctest_tree.cpython-36.opt-1.pyctest_tree.cpython-36.opt-2.pyctest_tree.cpython-36.pyctest_undo.cpython-36.opt-1.pyctest_undo.cpython-36.opt-2.pyctest_undo.cpython-36.pyctest_warning.cpython-36.opt-1.pyctest_warning.cpython-36.opt-2.pyctest_warning.cpython-36.pyctest_window.cpython-36.opt-1.pyctest_window.cpython-36.opt-2.pyctest_window.cpython-36.pyctest_zoomheight.cpython-36.opt-1.pyctest_zoomheight.cpython-36.opt-2.pyctest_zoomheight.cpython-36.pychtest.pymock_idle.pymock_tk.pytemplate.pytest_autocomplete.pytest_autocomplete_w.pytest_autoexpand.pytest_browser.pytest_calltip.pytest_calltip_w.pytest_codecontext.pytest_colorizer.pytest_config.pytest_config_key.pytest_configdialog.pytest_debugger.pytest_debugger_r.pytest_debugobj.pytest_debugobj_r.pytest_delegator.pytest_editmenu.pytest_editor.pytest_filelist.pytest_grep.pytest_help.pytest_help_about.pytest_history.pytest_hyperparser.pytest_iomenu.pytest_macosx.pytest_mainmenu.pytest_multicall.pytest_outwin.pytest_paragraph.pytest_parenmatch.pytest_pathbrowser.pytest_percolator.pytest_pyparse.pytest_pyshell.pytest_query.pytest_redirector.pytest_replace.pytest_rpc.pytest_rstrip.pytest_run.pytest_runscript.pytest_scrolledlist.pytest_search.pytest_searchbase.pytest_searchengine.pytest_squeezer.pytest_stackviewer.pytest_statusbar.pytest_text.pytest_textview.pytest_tooltip.pytest_tree.pytest_undo.pytest_warning.pytest_window.pytest_zoomheight.pyiomenu.pymacosx.pymainmenu.pymulticall.pyoutwin.pyparagraph.pyparenmatch.pypathbrowser.pypercolator.pypyparse.pypyshell.pyquery.pyredirector.pyreplace.pyrpc.pyrstrip.pyrun.pyrunscript.pyscrolledlist.pysearch.pysearchbase.pysearchengine.pysqueezer.pystackviewer.pystatusbar.pytextview.pytooltip.pytree.pyundo.pywindow.pyzoomheight.pyzzdummy.pyidle3.6.desktoppython3-idleChangeLogNEWS.txtREADME.txtTODO.txtextend.txthicolor16x16appsidle3.6.png32x32appsidle3.6.png48x48appsidle3.6.pngmetainfoidle3.6.appdata.xml/etc//etc/idle3.6//usr/bin//usr/lib64/python3.6//usr/lib64/python3.6/idlelib//usr/lib64/python3.6/idlelib/Icons//usr/lib64/python3.6/idlelib/__pycache__//usr/lib64/python3.6/idlelib/idle_test//usr/lib64/python3.6/idlelib/idle_test/__pycache__//usr/share/applications//usr/share/doc/packages//usr/share/doc/packages/python3-idle//usr/share/icons//usr/share/icons/hicolor//usr/share/icons/hicolor/16x16//usr/share/icons/hicolor/16x16/apps//usr/share/icons/hicolor/32x32//usr/share/icons/hicolor/32x32/apps//usr/share/icons/hicolor/48x48//usr/share/icons/hicolor/48x48/apps//usr/share//usr/share/metainfo/-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:39172/SUSE_SLE-15-SP3_Update/afacb7efca4748e4c1bbde6de19e31bb-python3.SUSE_SLE-15-SP3_Updatedrpmxz5s390x-suse-linux   directoryASCII textPython script, ASCII text executableUTF-8 Unicode textASCII text, with very long linesGIF image data, version 89a, 15 x 13GIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 32 x 32PNG image data, 32 x 32, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 48 x 48PNG image data, 48 x 48, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 11 x 11GIF image data, version 89a, 16 x 13GIF image data, version 89a, 14 x 11python 3.6 byte-compiledHTML document, UTF-8 Unicode text, with very long linesDOS batch file, ASCII text, with CRLF line terminatorsPython script, UTF-8 Unicode text executableXML 1.0 document, UTF-8 Unicode text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPPPPPԁX' udutf-8b15a849231477a0db47ef221cef53b5867a4ed754b3efc32f402770ec52d6e4a?7zXZ !t/~'k]"k%a ~SРQi0! (eGa ZoYFhDŤ^NٖYQ)|b5taoN'2 A{ሶJ1뱐$̺  <r*U,f!v۶;V/)}nd.Ӎ -ixܩ#|ފVpK,Wʡ@^PH$j0C`}-3H> wh@ka^\>_?pmD%yLǜSyei˜McP:Ļ*IJ9 Fvpja̗ZA׾})CM*n2}TҼ"̞[*Gϖ}ćafəs+pe%ZUB lOӯI,MTCͼD ~\ k{RXԵNk} hfl*.d=KAu W$1.ɾml ȃ~ }BO{c 1[pŚ]"_;a*J5_? Y~`N*)Uշ/CRL5rUIk,#s& ^rksC\E`RwAi Ag~o{1y^0ЖMC'aiȣ%'܈Y,!)FO讨4KaE{/{H{F89Ĺpfݙ|@@<@K3YAʱTaAFN&b/1 "4NMfr eqAhG㝥;KTA] HbM61کF 3옼kז4aq_S/ HXW$S|2 X +trewoY([e[X?RƖk!MN_]xN5Q>6R6\;!'JO@Pw N8\#,~޵1;$ ?mWS'%E_۷5k$PW>.;[?,pCD؟$o=mKvP/vmL%K~VƿL,hְ+) ]+ʶDa1B.}7y7 *<8sT#i+'Yդ|7Z{>\n8\ Yƴ"ޜj{]_``' dCFg\j҃]? C87Z:_>PBXoΓ'D6%`ǣ>{=4Kj{y IW˫’|@\sib?~Hؙdm8Г]o†$nԧo>,%(ǼN:.GbGfXGOa}&BFFޔ&vL;%Y=Vy6G03 ;Jkui @M>An@ʢ5?ix?18ЀثU+4kfdA%,67CO.A- `vFP[0128gD6? a_y\+L'Ug!?c$"yϓuC& wnV5&J'"mi$pQ%đ 4֡l@=ohXOP`*lH^ny<:;,[Dy'ǐ2kBS^Y]ze_n9,ٹ 7e(sMo#}~[MOī@+ 3si"Nh9DGU"tTxu9SN@1 8Y5\TcS ffG,.~(%:Z$XefS0X ';*ONwE(#? i=Ʋq$H\ Oݥp`q$Ilmɚ,a]g!8X˯9\4, T߬A InGmi! ̮E=TgqOv~-Frz?qKX]+rZ/Y(07(X92[C"Ly"\(OyR-KEJTJX5":/w"&74<:>!]fwXW?-Y9?u!`*1N ">>;fuA=~#|XGۅz[10^yQ_$|fva0+5ŸʩU~P~o# !j8b,DoAJW.6'~Jf5r! |%YO_cbP(nal93"OhG GU_!Vn\JSG h̞L=0U<Ӕl'Yc =jb<Ï,dlw//+V&[7Oj* (3բ' 3O,b TZeLVo X(6U+1uF/z*{֍Ț_mvJvMT9@ M|}VL¦9av]W4sDZ{ )]ZVpw\V2Ęjɏ(rNŦoo^XL]m 0ϱlS郣R[A>y\ WxI.>\h 3]qR8uȒ;|,&X߳0J2 _PsVPTZr%_{ w94줈s2O4'UV 'C䐟c"xW;~4 c0)jv ̾icoU{8v7o,zl} 8'/7S3*cop(|\#RuxNl)ĂtӁ%_NO`C^O`2HyTwJ"kCI%CH+½Ĭ zW0=!paKU I Bs~S5^ՀM*AX"`-4[?!ᶂ$rsŎh '{MFN,: rٹyMP{LM a~ DewmS.|ø/s9Kh$q&]c@Uē^+0S)ySqBRjH:Ηd6ʃ~sClfH˺[& +8 )Db'ݿ!ry8aecR:7r :qɛ!eݦ_vFd&.s}H_K1ҿsD]sn A-ia({q￑Jjpq{.yi?>^52fq`j-fTV0Ht? + ŀo-32.I3N\}{Ym\̶+!Ax}͂!2j4 `F)6L%!VUb99z)Y#vq+9ዪQ.dO/ u?đR$+ίV:(iC\hqcXP᧿JEZ}/D9J,4b=nIZMlὉ|GA7&o#=[?XT=bmlM`DIGmTn_3$c*aƗA"lfm4>Gp s,-A({ic- ptM)T##^S!( wWe>>u:jv]O7"le@[zU9i tl ͖6&F$l˸yyp北 㠉cyrʗEɃ:M Nbs 9S"5Rkj"ܨ7 +Ocn]7Z򳔻qaX``zѨ#NpRI/Oӵ=epOqDz8gGdyCԾ+Jykt{%'4j/n _p9:eP0!g(}_\Fc JWZH=4: 7I^*GZ]3:VV:9YT\EDϳ:zMץ cit7R :(y ibA^*l+ɽ4ئKwt'r)=l"K_MAsm4*M`(,л~UR}/H>::F(eKJPOP5ֵfr$hު /5tcΈ\WG>Ymj udo;$ܺNBsH>T U9Ͼ@!%gXnЀ?Ҟ([HUUg> \ZV!a3?ɵ3&fOi-;H7;P{jRa|)U=mUat 8rk.wtAB ͒V^V{/l0!wˆ1p̏|7ָnZGoC,ǨrҦ Ӈ$B401o{;  x~a^3x_lE4o@ ΣЖS0ݳˍAS});.F &bXHb%7  gɗ|NrY 'X8؈6ح'J"PǐĶY̭ry `53LR[#c#BIa67 0&+r".0 Q2 xt!k/DcEpbu<}Q$J!˓,''}7e'-!OJpI7Xgl]kC.*VotϮiefdMil]í)Vx.^]9֝ .艾Iv;XRrA܆ʧ#eJ뗾%TS2k`'S q^\]&g:˩hJL'ceַhZr"FL̾꣐5 K>lq9VyV+9̔T.0Cܰ.uXo,_? tic9Ʉy_ u=;5:eHͮ%;*>Utɢւȥ)CZm)IPh;=#L_ab?Iϩj@&g,{mР,65  6nNmBjLz><_=Z4@d*wˋN`ѩ2yo~xҍv*M۶g3\]A:pbfI׉xZj(ƴwm<[mzK~F Z:~%Ɯu |9rÊGSj?}DX.. mV}ՓEn5zjV(|b-C4hp3`ZJsJ {}ﰀe64mpCӘSoM&5O]'J !*,ZQjK-Dv9v1$3X彝 џFfӼs-._Da}irnpr Fy1AbSQd&6 $5fc`ΨDfiYEV ԹpHޯp-~ fXQ8>$jGY1ע2_47)U1m>_pN@\H#giȰa0OT5\8zRFNI9Alza1:S[Z[3 6iYP,duL!å9wNVG0ҰDyekۈGaQ܌i\9[1*r =&_qW?q);+ ōNR^w N>߫DB ِ ʹ}-SUdoؼx[A4)0VpANPa^)tȿ,lx̀@z"YǷ8;׫v7KB)9Kٲ ލFMտͪiZF`L,+CIWkt0t(-MU U]7^l~]uUo?bev(a4yl _DƦԿ-'j~2ӪM0MEb׈j&X<܇)Vŷ *+ipZ2d1UrNH3rdo1+Vn5׎CUB`N s"vUػJ4`¬]ďgeqJ2Ϩ)" ($|Zr,nPs&3SZ=^akg96u 4hdtMma͆7m?S!D 5ިQ.OY&$t]e y#E1bly|A{uǠG,9G=S/,d샦gdyK9gݺ>b鬯.񙀈7`x=wk%Y"_hT`(l #"Q ZkP9"n{Z}քa̓\ߡI2)ȝӻu3m&Gi7/G:<8)ߎAj渭R"rp%T?`]]9+?pkHFYwut܀Kң\S^;xfBMb+)^Ffqki 5OU!ۋ ,b:̵2UvLW;z<"%IocF"Dn|!K,BS0qwblHf#(B=Hf{sF%RTͻe_:Z1iɶXz&Т.ā1ҫOfU)>R ?ƤHKNPVy3iR޲ 텐Ջ#Lr p>KbBW-4*U4C rO{ ,LHJnL[ ymNp/!f9kvX^vK ú;篃tSS;wJϵߞJ~rz rlQFZ.o[h#t1>KԍO++sQYLHs2u-1jvjwh$!@;nfCau/=Y4kc̈&Y]-uW[iY"#kw( k%!Lә!-kўsJʼ~$Wkl5κɍm#(f}|q5td$TjagXyE֩[Xh ۱jrx_Y{f**+m%uP'% Ƈ:.Y㋉\\t. #&,]]ںVK"6xڐF R~թR#(F7lɇwt=]p04 &󟕟}LbkU<nI{l)+~~Rp}|#}}ًn7z.P-_A~&7WSٱ ǸI$Kr0J{X/yyA TIfϬ\Fa3et˚^}Q.Þ~s,GdBdFdg$ v{mXjA:.5,}7g& q=LR 5%cxc yh w$M'}'8WTD[:)ws~S0 MܲxXՅ؊5K|se̕\v0"y"{|xќ}/Ay$ȩ'JԈx26ײ(fIiT8q{{es6y%Ztui& KA]ɣUHhҮJR匉8td~o |H|4D{FASŸWY宬g!73m3}I"ച1[埭GQ{t r~H~|Toy)38'+g%Z"j "My{$LGc:t:ˆ,o(ЇmrzʩV_cOc4N@5$ g&JT5ٛ6JJԅ-Ց膙дW/';i|c^s&