Hello everybody, I am using a python script to extract images from email messages. This works fine for some messages, but not all attached images can be decoded. I use the following code to decode the image and save it to a database:
try: imagedec = base64.b64decode(imageenc) imagehash = md5.new(imagedec).hexdigest() dbcurs.execute(<save image>) except TypeError, e: print "Error '%s' in Message %s" % (e, dbrow[1]) print imageenc) The problem is that for some images, the method b64decode() returns a TypeError "Incorrect Padding". But if I paste the content of imageenc to some other base64 decode (like this one: http://www.php-einfach.de/base64_generator.php?code=1), I get the correct result. One example content is included below. Is this a bug in the base64 module, or is there something wrong with my code? Regards, Christoph --- R0lGODlhOwKDAfcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA// 8A/wD/ ///// wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/ wAzAAAzMwAzZgAzmQAzzAAz/wBm AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/ wD/AAD/ MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/ zNmADNmMzNm ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/ MzP/ZjP/ mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/ 2ZmAGZmM2ZmZmZmmWZm zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/ mWb/zGb/ /5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/ 5lmAJlmM5lmZplmmZlmzJlm/5mZ AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn// 8wAAMwA M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/ 8yZAMyZM8yZ ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/ 8AZv8A mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv +Zmf+Z zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP/// yH5BAEAABAALAAAAAA7AoMB AAj/ ANFpwoJCCi5NKOww4cZEnCZxUqTAEedLHApfLviIs4OLGyWBvqRo0sSH40BfCjXZ8fWQmx1x xDTREOkLFJOKKimKg +NSEyWcFVna0QTHjgtKK6X4cskThThcvkJSYmJQHBZxLhriknJTylCIxFhy 06RUCjpcfBLCISYF1MijlIhxVIoiLFSJGL3agSOFkjhKEnFRIiuS6M6tf8+SRcdkokWUxFz8ZeJC qYuRG4syscONJS4XbkWC +tlQ02aRESty3CvFqiZcuNCJAyUlrB0pfJhQguMith1QE32h88WELERK WJaqHMpNIlfD3CD6goOSIhbAL3E99bpwb9TKU0G5/5h +fDNVXCgOonArXbcdLENV9lY5UiptYhP9 MkGBovFS2EZhtZhwQ31F0Wt8ZDWUbg/ xFVdhjXE13kEx8bGVHZSgBRETxOw2mFJwkMVRSRCpNJVX f2kSkna+0LBSekwkuNlwGNph41Y/ RUUVCuhI0Vxf6KxEUWkUCfbTT2S9JkVWKMHRozibOQVHV1CF aB5ZoIx1WXVLyoWaOFBSZCMWRY20Uo7T1eeLYAqxRVtaQ1FSUIhehWjmTVn1BcdFKBCF0V5QUrZS SAbtxY0L3OBSY5+aMGRTk0xEupQdKCTKmG4SDfaanSoi16hSg8LB25pIRbfRQZQhhYKcayqqyXgv Ff/ 2GqUqdcZRpboRBxt1XK10G0Go6RbXRQZl1NiUR930EmBHUSdffTf5ZBActPkC2Ge4UMcRlJ1J plKfjUW6H6VL4lJcQiPtWZu4je6JYUHmGmWtRNxQV1OVT/EkBbqU +KWJXNFNR0lzPxXkAnNU+SVY Qs16Ve++fAWnqVeXYaGiJqNBGRFRu +HFVIZEUZXgoSk6tZlkt10LClSVRbkRS3jd5qPCPl1GGWWK ZjuaTwIKBy9GU+7lQkaDdaYUh9mSlltkQ +npwqqRcbUmQhmO1SOGjblolLmhbcbsmgyZ9tpOrFFi YUp+cYNOQoOVZpRpcKiHUn/PfYfeZ/ GBKepClU3/5CBgO7Ekp0USwTFVcYgnV91LzvrSZ1QBjtbh RjvRRrhZGQYdEkUiYQgzhmbjQlCAU7bVFl96nbUkRkSxNbZIPDGBhc3ccINFc6sxxBKY9FLy9Fco vQpRZ2tF5epQ6fGxZkJo7dURcqI6pfdLjUXHl8XEzSq7WSH1RpVFa/ G03F8i3XQWhsLjAkpFoDm0 1ZLUdYbuQW5VthRXIcr5aqKWCYYXH2ThC1mK06+LII5QS9rLZgyHAsON5EOxYQKAolKQiKCABlvJ n4puA5E4iYMPrdnKa/rmnZUEx0ZmEkm2ItUa0BhkKyiZTl0mksG +zG5NqzkY9C5mPEL9hCK9Gdpv / yISkZ9kyywowAKIDGeQkYSFMEXxyL6A1sBXpeQ2vUGNtlQCFSShw0OBUZFWctMbjKwpJHGjiF/ I VZSpVEkwphkRlDD2EGtJ8FUXyY8AEzYv4hANMF4ZXEea1CGPnIUnT5TZ4AjmkIgoRGi +IAhbJPKP SlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnSctL9gkpYKqlLnfJy176 8pfADKYwh0nMYhKzOBXhijGXycxmOvOZ0IymNKfZTN5QhSzUzKY2t8nNbtISBd4MpzHrVStciPOc 6EynOtfJznaSclQUgYM750nPetrznvik5bbgUP+SfPrzn/ 8AJ0AHSlB07udpWymoQhfK0IY6tJZL 8g8lHkrRilr0ohaljl +shdGOepSZAv2oSEsZKEXJc6Qo7WZIU8rSgXZxJr5oqUxnStOashIdIbqM C2zK05769KeRMttmfkrUi660qJY8qkxdEJyhIfWpUK2oUmXqCwCqRApRzapWCzpVY3aVmU8j3ES3 Stay2vOrI8XOrMzK1ramE60jDQlOEeLWutp1m3D96Fq6iIW7gpIGOqCBMQF7ScJiErCCxWRgdZBJ xGZysY0N7GMNW1jJKpaylnRsKRG7WM4mVpOe7awoPftXy2YWsqbU7CVRq0nWVlK0qcxrR00zHeL/ +PWTrt3kZy3J2Faa9h+/fS1mgcvZy/ a2srv9B2mRO9njCje3uQ1lZ6c73NWGVrWcpG50jYtc55Iy utg97G9hi0rZdhQ2vugQVm/ bSR0EN7KX9e1u3btJ17oXsM7dLnDHe9/8vve19D3tfVcb4M26d7H9 9W5lE4zg9jIYvwom8GchnMoBc7e+lD1wcktp3o72yI8drqt +K4ndEZMSs9Ul8XiLe9oNP7e7802x clfs2vCa0sS8Ha6JWaziFIOTtTjGbXVt3OIis9dJhAIFezupWQ0LGLIItiyUbQzdGGP4uFPGsozx W2QLzzjCxMUyfYE83BD3uLTJ5bFiwQtmFfc2/8if5PKa24xaL98WCzfZDzeWnN3rSpm0oe2xdpmb Yy2DWbWORfR/w1xoRr8YtKZNdKQXPUo4s9nFjv4uYeEsZAUT +cyfrutteLQTPtcXyBa2L38nnV/M FnjGTA7wgff7Zko7mstynnV2/8xY1MpZlb +OtYJ1Hdk2OxjCMq50lJFNZ2Ybm60iecraTN1aHRu2 xCgObqiJa932bjrD3za2pCcs2W1nudGc9qSlh7zodFuXuqvU7nIhHWhWmrmi/ LTRbagd2TTzmtCP bjQnsx1rwSra4LY+94t3XO5JIxzTJ7a1kd +tW4lXfNzAlveIp5tpvzJ1bQ3k94UFjm3nhjfUBP/3 dq/BvXJxN5zcD1d5phWuynV7ut3JVnli3V3tm0Ocxds2656iFFOR8za4qXb1que8626ru7/ GtTOk pc5gdVOYwA1eZbAH/moAH5rYRz821iv83o0rHeJmNUpyNmJ0gZOcxgA/ c8UrG2fyChrtz7V2kOd9 d/k+O+CA77fJze5dnlNcvD/XtsW1uhLY9Kntcjcy2IOddeVe8PDcDrvVwU7rnAP45Ha/ st67jng0 o1nDoRe8YKHOde9uPe7iHTbp3R54t34GI+LYM+Sr3NvlcnzGfib0ik/ fc7yH2cVqvniEU495mXf6 us9v+Ob7feU++5zrGzY8UftlFZhAfr/J9fL/1cNc615L/db+BaWTi/13/E618tZfPsP// uXSnt/+ iz+/fu//+eZav9h +BRygkB66932sFHQGmIAAZSWgsG8KWHOed28POIHZRAwekSHmRIGnhIAa2IHr pBavogkeWEqcN4ImyE5Y4TiUcoIs2IILVVXrMVQuOIPnJIEeqBCHYYM0uIM8CE0FURAq0YNCOITh tBoSZAdEmIRLpoOYxIS +FBXWMhRKOIVUyEzoYS3pUYX05IRaWFQRAyXG14ViaFNcGE6EMx3rNYZq uIatZCNFRAxsGIdyaEpVUSljNYd4mIeb1HiNoWR6+IeAOIASpEyAWIh4yBv2UnSGuIhr2D27/8EE jBiJY8gXbAOHkniJVNgoB5KBPViGmFiFVMESGPOJpDiEI1End1iKquiCr4FeabiKsGiCEWERPhGL tjiCviNCr3iLvJiA1nIUCkFKtZNJw8hKxYhJBRhKx0hNxbiMwmhJzhhL0QhKychJ0yhKx1iNlXSN zMSNxlg72jiGDTQYgCGMzuiNoxSN6EiM4QhNzdiOn5SN8NhK68iO1DiP8ah701iPw8SPpgSO4CiH X8Qa+MiOy+iPnqSOBYmMCzlODdlJCLlKEfkP9TiRl/SOmmSRvaSR +ViAHOmCVYIQkJiOAQmNyViS F6mQe3aOAGmS1ziMKEmRJ7mS1ciSMqmPLP +pjQGJkS45kyUJkDSZkgdJk0MZkyZ5kymZlECZkTDp kzN5kx5JlDa5jTgJlQwpjy55lFqJlFQpk1YplEoZlU +5lWqoELQREebolV1JlTG5lD1plG4JlOEo l1EZlgx5lXQpj20pl2sJle+4lIApliiZl2zZkng5mE/ plkJpmH4pmIxZmDVZlZCJmIapl2RpmV1J mJD5lpvJlA8phPyBCx0yktgomTyplljJlUaplqqpkmzZl6hZl1f5mrGplT/ Jk7fZl6f5l7SJmLqp k7zJmrVpkL0ZnL55l/ ZYlLZpnDgpmUnZmrQ5nLEpm8IZnWu4EwgBJWk5nHQ5mc5Znaw5lPb/uJzP mZrPGZ7NWZljeZqe6Zzs+Z7paY3rOZ9MWZ70SZawyZmX+Z0Y2ZTg6Z/+KZx/ qZ6LCZcfOYMYoRvU sZ1eOaC3GZdjeZ7iiZxrOaENOpfU6aDwWaHtyJfoCZsb2pkUKp0kup8gyp/ A2Z4RSqL9GZQKeaEs mp65+ZZTKYdoWEUM+pX7iKHnuZUWaqICWpc76qPfCaTsmZXSGaI/+pU9qqQ8Sp5Qmp/ giZTmGaOZ 6aIpCqAoKqVBCpGfSYR5tBeWWJqLWZxm2popWpzA2Zy/6Zj1+Ztn +qAcapqymZpy2qUfOpvQeaZ6 eqczKqVDmqdzGp2UuUmFeqJmWik +yaV4/+g7ELEvOcqVflmglQRO3YmXk6mieqmYkkqh5smpl7qp Ghqfokqd0/ mY3kmjA2qQjOmheFqmErqlmYqknQqWhBqhipmTLzqHgcQ6kRqka0qcOyqYhkqUmKqc byqotUqlKFqUQcmssIqoIhqWkRmgywqtPdmkGBqZUQqs1UqreiqpP7qXxDmecmgQuVFqInWgvdiu 5WUSovNRqOqu9KpLxJAZfUGSebmv/Nqv/ vqvABuwAjuwAauoBHuwCMuXCbuwDNuwDvuwC9tWnohK DcFA4qCvEJuxGruxHNuxGtuYHhuyIjuyBCuGySQnO1WvKmtq/ fEdiriyMHtX0xEZcROzNv9rVzYj EX01ShN7sz4LUB7hKz37s0R7UUVRQ0WbtFClEnygMEr7tEQlBTRQHJqADlB7VldbS5STH1kbTUPb tau0KtFxEWBbtg8FV9ayE5dhtmz7UYpyMJLRtnJ7UfrTGKkIpnPrgRb0J3nbtw1FGfUiGH47uAWF FKKyoISbuP5kGsTwGV +ruJC7TOnhPHwQuZY7T6mBFC97uZxbg7dRFEjYuaIrTs7BVHc7uqhLTUFD KaErSivwuirwuiugAs5Eu7O0Aq+Eu55kuxelu8vku6AEvKwkvO6qL36xi5/ Eu72kvJ9EvKbkvM6L SsyrSdH7StMrTdc7TdnLStt7izQxi6T/VL23O0rdK0rXW77hm7y7JL7OxL7P5L6oBL +rSC4mRUrl G7vKi7uza0n4+w/5G7uWNLv7m0n467v6C8CY1L8BfEm0W8CYBLwKfEkC/ MARnL0TrLsNrL8MLMEA DL0KLMC8G8H/cMD8O8AljMDUW8H+a8KV1L/ Te8AQvMIBjMKVBMIJbMIZPMILPME17MI3nL8jTMMO zL8wix7BUbmjJL4hXMIBVcMBbMAL7MSaBMQyLMVWDMVRDL1RrMNbjMUtbMUSPMM9TMRd/ MSZBLy6 i8ZdHMNf3MZgvMVcrMZXTLyv28VUzMV4jMdYXMdzXMZgvMQtjMV3LL+qyBHW0i/2y0nM/ 2u7bEzG wovBU5zAbwzJG5zHjEy9btzGWhzG/nvGD5zJbPzIBBzJmdzJlizJeYzJnEzFi+zJq8zJUXy +pHzF n2zKttzKp5zKZKyyDnIofui6BYzComzLqUzJWexJslvKl/zKsUzKw3y/ fEy8zJvGsBzHqFzNftzM cGzNoQS7fzzJo8zJcuzIqlzLbjzNtAzOxGzM5lyvkTEVjpPIm4TLjazJwczOHEzJz4zKoazK9DzP A4zPxQzKlTzMFIzDu6zJDAzCOMzDBBzQBE3MEj3Q63zPM4zQ4ZzO2nzL/ FzJKyzEMKsQ6SES6btJ +7zN1FzO2IzPKX3MLl3Lw7zJ5NzOpv9czyyNzBotxePcSdIM0+JM06m8zKVs0m8Mxl6s0DnNxXcM y4RcimmBFRgiz7OM1MqszrJc0PPc0TNdy// syhuN0hFN1UXN1Qld0x491BN90lKMyysd1mMt0OsM 1hxd1bl8zegLi4ARKfVS0ll9znbtxUcNxwgszB4NyFV81XOdzv/ 71mJc14Q9xu0s1InN1oaty4vt 2Ex8w9ms0Y0MyBAsUI+tx4Wd0Ozc1LCIEF/ UG1IN0EsdyA2czwv9wj6sww59wj9c0zRsySzcwxB8 wWgdxBos0bPN27oM3CHc0K390T8cvQ4M166d1sB91sSdz4uM0bRc28P93IJ9wvVMr+j/ gTFxW0ym TVPjLU7lnbupi0lB0ijmAkzJ/VPdjU/n7Urznbc2cjJj6ktDHFU2PFB3XUv/ Dbn65iOcmN4GDk2g KzwHbkqPu+D/sCLNUeAOPuHD1CdoUY5JbNG95Ny7a0oBXtylxNAFhdh9Xd+cxND7/ Uvsq8RT/dEG jc3XnNHBe+K/XbvPpD8ts9pj3Uk2+N8mDuOd9OFEDeT3JNNDvktCHkv3y9MqvdQkfsbn+ +M1TkuE HNjGdBC8URl8TeSwJL9SvuNHfkpG7k/jneRibkwrzuReTcfbDOZV/MBf/ uXka75lbUwqwRIcNef+ LMM23cEXfdW9Pdi1Xcy57dClHdsV/x3fMe7Jg67cO/zaH1zoKhzpj/zBQC3dD/ 3YlQ3JlB5KrSzM kx7Qkr7b2Y3dak7WQd7inyzKgR7G +1vdr03oux3bUDzoGszcyH3ro77Bue1KGMIXzbHlBb3pa2zU rkzsE53Yor3W33zOgK3nU3zUvsu7fBzEmb3sOk3tz77VaV7NrJzTaUztXL7STl7D077tfh3I2czi 4dztl07En77Lx73d5u7WJI7BVm7tGT3tZszZjT1LpTEVZmbB9m7VHY7tQH7Ukv3V +LzwTS3CBo/V pC3xDE/x1z3jzT7TyL5Sii7jcc3Mza7WYq3UPH3Pg727KD7rIL/MXZ3u3A7ULZ/slv +t1bks8rK0 GWqDlkk85Dvd0iPvyvku03K8yUPv05gOSrEb2A7v1jtt7pKd3Em/wHed79Ft1iF/ 1vD74hIM0RN/ wz7PzVut0i89wgL89W4u1Ckd00yN6l7P09H805iu1t8O97S0E7h0ugd/ 7N6uzsbtzLTe5gi/8Mz+ 1bgt4tJr1Sie8Y7N9eWu3R2/5geN1Mi+vXfN1o5f8Jcv3BEf5oTf +TIfULUey4mP2RZv6VCuzxY/ 8xQfyhpu5ukIN74j7GE/93UO3TIP17aLArRf+ps/vHTN3HtP +E8P8n7t4xStzQoP5lkf2TT/8TFP 8qm/6D8//eIbUrFu9TIe2MZs+b3/X9YvzPa7P+6s5Dh/8RQ67vI1f+k9DeKCj/CAf+iaf/ x5n/oN r/j9TPz3X8bye/2/j/4cXvkA8U+gQBUD/ 60weJCgQYQDCypkuNDgw4YDGz5MaDEjRI4OPWbEuLEi wpESP1b8hzFkSoElIyZcSXFiy4QoTUp0ibPmzY09fW6kZEcTMSl2fooE +ZJmy5wrZH58mROizaUd lTbEarFp06MwdzLVCFWl0o5ZLT69eZGhWas+V4JUy3Ek2oxUkZJF6bQqy7AhV2wNK/ en3bwzA5NN epjrXpQq4/IF +zVy4ap6E0MeG3hxV849peBCZwcdnM4OnZ6OCVOvXxUkz1r22rF1/+vXPhszpF2Z duPVuG93nQ1b4Wm4fg3vdbw77fHgw7++RdxyNt/HB5VDvgydZ0zi1X+n7D6xd22xde+ +Tp3dPFTZ wr8THM/7es3pdFm73ji99nvi7LGX/skXX3DBgglfAESwNLsSZLBBBx/ kCUIJH1xwQgotxLDBCjOM DkIUOAQxRBE3skMKX+CwA5cRbTtuxQY/ dBHADWPMUDsaf7LxRgtzDJFHHX8EMkMm4KBEHFzECdK6 v5JkUsIZm4QySimnpLJKKzfSxBdKcNHySi+/BDNMMccks0wrfbEDDjik0MRMN9/ MEEY456SzTjt/ EqcoSuA48E4// wQ0UEEHknNQKP9RQAEXTVBoU8bzpFvSSh87NPRHwiB8slJNN71SEwN9QcEFBHNr 8b0yJ+UURKlCzDRVV1+NEQ4sfHEBFykQxE+zy8psFdYJMxsRVV +HJRZCcVBc81YAC0pvwbdIIpUl UvtDT7Wx5oN2rurAM47aiLxVsjhrrZXPJtQ80s8/+LqNdl3XqC23J2zdJa9Ye +9NkBIpxGEiKFyX Y6nQveDTjDLBysMJ2Gl1ZfigVR1u+DuF2fNOsckki/ jhkVySiirKOj4MX5FHzqjE0ezos7SJ24rQ XID7yi/mhgeO7aQWkRt42+1oZtllzKKL6UNTD9aJ5w43WypdYUlmGtB9UXTBKEf/ K4uQ5mZvpitk nHfu+TmgX7p6PZh3zc8yicWmCQXjal4bWHll/ nmm5JqmG1ZixMEiUalVBtvoZ71GD16l4SY6aYRt Vvc31PqDLjilvW3OtKfWbivofwr9e+t4y15Yt8XrBr1YO1CwI829O3NZZ6u/MhhHns +O6tGpovu4 p0u7un0ltmi6PazWqfbddtRnDr34YX3hRhx9BQbOK7dfBzznuxq/ Kvrn7UM7a53VrvnmosdGl3Dq vJcqa3VjQ9p49V1FQRxu7ND335r4kzd9pCvCaHf8N4MdO6ooL19g8kcxgLFGes46XOUIGLfVgQ +A 64NgpezgAn6VaFTiixxSIFeX/3adSzxuKwnkxiM5smQuLe3i1rg +uDl66WxD6ZINB3M1Psk5C171 AlcEdXgnOGjCVpQQVZKW1iPjDXGHR0Sig6TADW7ggg9BDFKvRCTFYVExiVfEYlcSJYXQpAxIRuQQ GFOFwiyW0YylGZImggLFM7bRjW98VfuEAgcmwNFFzLNjHjuDRz1uRAqk0wQo6thHQhbSkF5SFBzE Ab+pfY0zVryT+Zq3q8+5SIxHuSSA +KigMGUyQZA8ZFd8iCImIImT38KY61wESlaRjUVi89mIWAm9 G83ySg9bkSdDuREXEAkdlBjkKWlCOdzFyJYZ8lhnqNc1WWJKdis6ZpVw2cxdZv/ IRO9zgbL4phH+ kFFawuHWtuZWHG3JDZz0wQ8xMxiXSoYsd8NjHDhhCCm5zHOF9CohbNRJwnuGcycbnA89fYNOG8Ew W+QcTgfJSD +BLsSe1UyQUHDBBDuYUpj805p1EjhDiDzvZXM5Xz0x2beDped8Hi3bWQ5HzMMs03Dq +Z7/TALCqnVOox+NmPcYaFOxYLR7itMMSo+4SQ7ZgaJM6NcFZ4o4rbUNfeBrmTu5hpiK/ WdyTP0P M9c1mFJxzWc8Clv0isasl2I1o1+tHto6OlLDDC2AVvkf72K6Vp1CtDMCkgJR2Di8kvonmVr7C1t2 15ZVaY9s+qtLpARLvKw2tjX/ vYshXHky2MEo9i4+y4pZMPtMq2Cvpqw7ymYBa7HOrgchT7GJYe3K IF+wCQ7E2OsjJautDC4wXD9LjgfTCtWsorWl7FxqcI +myhKCbXHaoa3tciNJccrVufXR5w3VWtWe OS65ZPPsbqlj3aRcC1KRM+lqAZSlWkkBFAkiq9wyijHVOsdozHmqI7GqWrTcxqV1bSBj/ Na9xInV rGrBHw1D+9nYCVB8b0sldTdatX9yk8GxFC8a16SJFH1ytlL96VTTa1VY+teESylUc +kqU8jyNqoL RG4q8zvXsuokhFNtq+yoW+IScziy2m1v+BwqPRtHGI1aEocvLNpIqp61wJGZ/ 6yRIybUjelXsrPT b4qLO9yWLvhio9UKLQsHYchSFmLAwymYfydm2pG2cDczGEgZ7GOf4IISnsJCbDlz34Zm +LsyVaEM 6/XNHL1rz0py6lbXDOj/ 6Za9VH0WtvQjsHNRpIMf5C93JF3Ob0WLpeDC9EMFvbWBdrNCEL6tQ+XJ 5qOokVFrIpkVdSk8Uq+a1DpEVIrYRDIjRvPAdiIqmGz9agiiAKkUHvK9rLjrLL +a2Lw23iJB4UM5 I9vZz7YjnzyVPGhX29pvJAYlfOEpFV3b299G4pFQQAyjgtvc5zYerZRXbnS3290i2zYptfluetc7 VVLQ12fmbW9+9/tPb+bTvv/KmGt/ FxyC4mifCyhqcIY3vExqVBQQHT5xilvJBSjAtyZIU3GOdzxI 2maTGj0+cpKvCHl/ 5MbGRUTwkrf83ShDARZM5HKa15xBoHCBLwy0b5v33OcJKUrOBfRzohf9H2rU OOmMvnSb+9qoBmJ61FuO7wkmVepX7zi/bIUirHed4idKEb +8PnaGM0HjrT0d6FhOdrZDKSif8de3 WzB3ute9SS3gEN6BRHc68b3da7+RFODQPjhwA9x1R/zck6R4DDH+R36HE +TNDfgb8clIoKDE4RNv 9707XkKS1yHovU35G3GjVmhKu9w9nxDOH6X1/+B76xNvkNfj3far3zzuFR// e9HDvvcCgfzufw96 yb/e93oHPuN5j/yBLJ/5y6d98R0f/OkPX/q3Z76YSC+Q7dPIU6UrSrt7j/ 3fH1/2uU8+5zfffPKz Hv3RJz/i4W989iP//e7Pvt/vf/300z/39p8981O/6gNAvbM7z1u//is/ Q9IEfhEHTeA5bxu/AvQJ Auy/Czy+6Ku/5IO9CrTA9MNA6dvAjNA/38NA/BvBDFTBFVRB+qs/AyTA/FO +6kvBGaRADgRB8yO1 1qIjFFA5cxM9/iPBDxRC6rvBBTTCESzCD0TBDny+1cvBFkRAG4S/KNyIJZTBJ4TB +JNCDzxCKFwt RtEENUo9BOk+LArCKcw+/wUcQC2Mwv +zwiG8QSl0QwF0Qf3LwiskQjW0QjxcwypUQt2rQ94zwRI0 PjhkwQQ5w7pJk2OhhMxDtzSUQT1MQCx8QflLxCYEwSQMxARsQkHsCejrQyrsxJ +wREB8w9srRC08 v0oEQ7sawx7ChR/ UvDUsvg6Uw1DkwxW0vj9MwQzkxBxcwFL8xSoMRjoERCTcReLbxVUsROYJwF58 tZRjglDptnOTRA2kRF0cRCbUxG3UwGZExq7wQ1QcQhP8xXIkRm5MRlCswQN0QWF8xWEMJXFQOLOL wGubwC30Qnnsxn+Mw28UwPkbRX7MRRYsP0xcxzY0SG5syGxEyGMMRnWkx/ 9DUpRfYqRIBMP7k8NW bEc/9EgvjEFWVEg79EV1DMhLxL +SRERl9ERJLEletMUAZMM59LFqtAOiMDyN9EUdJEchTEU1rEOR NEdg3MeeRMlMLMoXpETsS8kNrL153Mfmw8X5+8Oo7MlqkjkpQKp8bDsXYcasfLxX/ MomOZIGnLmy 1BGIjJKKVEsd0TYyXMS3LI2YVMqxdEu6jBGKWhMXaBS9FJE7JMsbicc4ordCmZXRIIZrBMzG9JK5 lBDITBBbiZoecszLrBvJnExfQAfB +0vMBM170cwE2TYKUqTQRM1iGc3JRJkiCabUhE1OWc3JdERK IIbYxE3ZvJwgoSCday3/e5tAdtRDcBTIlJxKB/m/ wjRJdAQQmnS9jczLfjxI6VzJCJrN0vgjX8g2 r6zFmfTOqwS +6WTKjhTPE2SQ5HRJeBRLq7TL8vRJCJFKsYTJb4MfWkE14BTEwRzOlcxD4VTJpUQQ 9BxM9KtIAX3OLFzPzrA94vRP87S2UHktbuCDPaq2sHRHBh1IAI3DmIzOn0zQgFTO91RAUxTKDIFO +SxRcNO40DgWfmNG5nzKRBS +4izGGdXQBsnL46TOhEABFC3AD1XQEz3Q8QS3iaIgYOq3JDxG4hTF u3xHpwxPIA1SIJVGh0ROG5RSztBR4QxRILnOQGktCtO5JLXAJdVSKHXS/ 6Dkxaq0kByNzx1NEOcD kS3dxi51trf7DC+iNyX1RiZ1wj6dzibVz/ Mc1GI01EOtS46cEAH1Uef8th5aN8bcU0HdwkZlU3QM UfVkPwf9vEKNUbLsUP5szytFzwP1RLuiPB/ cFybYSRcVPgos0FcNx0KlVDRtPE91UlDF1aZsyEU1 UBIN1VcTEFqBwIKT1U2k1WOl0Vzk0yw9Uyqdx0u90Wf90Vu9Sv1sRWddrRTJkt9M0j +F1WRF0wVt TmVtUmtN1JOUViKN0wvt1GuVTwy1tiYS08901fyEVuJLU/ 7k1znFVTp1TxyE031NV3k9x2V1tiwJ iqHzN1vNUGqdxH89RP87bdd8JU9gRdCsZEv4FFJgDdhnMxIjkQLutJAvrRsb/U +IRViHzFgPLdd8 RURTVdSAVcZnNVgADdZqMpGJIhCDI9eVNdgOBdibbVCZdVSMPVqaTch1pdEEPUpv04TkIZ1me7c3 fVmiNUWsRdSiRdpR7dop5Vpt9Nj9HNgYfTVFsgM+KNZey8221aJ/ MKolGhK3pdszcoFsay09rdu9 3aEBCboy5NvANR5csANu0BLAFdzEpZt9GY21VdzHBR2NK6UjgdzKpRvTo5XPsNzNHRlFqhVP4dzQ tZfChTuT7TjTRVWjsxUuGVm6RF3RhZUHXBRQecsPeV3YTZVsQhMhA8z/ 28VdTQEFbtA4iQsl39UR 4/1dQ1EUJliiYCtL5E3eQBGKhYXehqve6P0TCjoS4cXe7g0UjcMCRble7yVfDmHesyPZ8lXfL0E7 s5PU9YXfMJmoNyul+LVfMUmekaWj++VfLyESisqS/ h2T8X1LFAkylBHgBJaSbaOwqFXgB2YSHxrZ uYXgCtaRoVATb7XgDd7NEOESPmCT7nMcQ3E1GjGgWnOlOZOZcpGyVuKvQVMrfwopvsU4CqMEdLAw /KKTY1MVztomShkw0wqZv+FhmqkxByliveTKz6XFSXphOylhEaEz +dFhrkorOoviGH4yBkli0IQD RXGf9w1iHDkn6XKx/ 3Eyjw2CmWlZmExzj3nStDoLNT4LD38yFxSqjzTmKQWCL5ZJ49AaHDgeIazJ s4RiIBm7DmY5p8tME3wzvRxGMDwbsY7qH/ GYGUe7YqTJLibLKelYKduqZNPgrQ8jmhmZpsjSpxnG MOHiKVRRs1RGTSbABVy4OMQdDDwGLbRBLPIRKwUjLdFKJVLmsQfqsCM7MQcLKZD5M8YaZpJar7cK niE+4qUYM8fcEjZBOArZY9UJNB4jZFTWKZZKIa1aMf/Y5E +OMfn6HgR6mYHSrvqRJC0+ZN96L1i2 saFxTAn1wfp1Enf5i3hOZ3d5rOlysmqWGMtiiuj65zIWieCIFGIuZf/u+o+/iubGKpw +e42FhucW E7Fi9mezqeL6imQ/ djYCfhFFcTNIhJB49hFfxiDNCWdnJrAnmWJO62OLBrUe2zANUrGbJrCT8uY/ phRxtp4nzmKiSzkusRUqlmkow5hd7i+ZdumyCOqKPuYik2SfsurekgyO2gnd0bKc9uNufq +CSK1c fi9qxrBqbkxNOFINFiZOI2bH0LCUErP2qioDujFOJjO5trK9LrQqAyuPBjMg9uS9FmW3gBuammEA AmjM1LaE09tHqq1N27M8rpxFTqg7Tic9k +s6BrRC9uzLFuozyyHMrrS4GmOKqa2aDhcFQ20fNiis MTTOnuQutjk10pL/ WvGTo9Yh3B4Z35Y6RGECPqBlPwFu40luX2FrXKs2ISuKNOnt1dLsMjI0t+VK IOISDk5de9sT+LE67mYakz43RNE2vxRvJiFvugQVYkCeJkadOPZhyjam +eYrIEli4V7h9RqiynZj ZTquugW8nBuSiuLiKr6ZtcNtocIQ/U5hpk4S1ZbnSIboU1bnJnFwdNMXdBgS +F5tGF4vJ3ZhkraQ 5U5rZYoSYQZxc25mFovpKDHxb8O4NxMH5/3w4FFo/ 4mUhdhx8FgSaDGNwggspki0JTFre3YYzQ6s zDiNjemzgR6mHvdxnP7xtXAMKQ+hR6u0IE+szuZx91iLUzprwTBl/1bLi/ 9254Ke8iTPcHCr8egm PSmztMSO6MXuHzaO6psSMLcK6FDWCBjBZFbuHXtGKbqmpTn/ qPpaGYtW7CcLr1sbsQrv5IQxq56D QB +EAxwmsoCe6BYn7LCSZAMDnxlxqQDjZalOsgQbGOZSskMz5hEb846mcMnYY3kWaS3+KjnJa6PD K5QRY+LqZQ/br3a+7VMH5xMf9BDnHJi +cPpa7KYmdhFbFeAybNOenkWWc7aKNGZ38ZorEi7i3U23 6lh/LMZhNarmdHFmbL/4Z9tpd0FH6PlBrVcn5YtY8ninFC8783J39lS394XekN +hHo0xcyvHJWB2 6oSHqPVOiDG8OP+RWxZWu7QHm3UM26eu5vSQ7mtgF7CO5+NKh2Gytq1tt3aPt +JVZioJ9y8Tu+d0 P/GSc9/WsnFtv+T4YvmLtvlQF65JrvbHuB6CxrNHd/ScfxRWZ/Gh9yoYa/ b18Khk32+gJ2vVqbkU 4YYtYpCL76lJZ5utb2cTAiqb5nZ2/qlzJhhYWvTB7mSTcmzdQGecrvjdUnm/nnT +8awYH71fc9xR GXKgMfK1wOczW3ObLrTTkup373KF2XHDT6zraJ2BRq4q1wrdiaXWMWMunx8vZwnF33fhaXLe6LKF AnguAw90Iv1OK+jqLjm3jrdfd7k2T+87YZMBebOa+/vXp5s9Ebz/ PbG5664Shrd9gdCSBlSU5LXd 34+Sqndr3Sd+448SLSHcwcNe37f9kV02y4x45B7pRof0H0bwTnoRFb/ 6lxdvAtcXey0mpYJkDlkQ W2J/Q4Gk25X6W4LNEtE54uX++0Z/9c9+9FppEg7/ XAKIfwIHEixo8CDChAoTrljo8CHEiBInUqxo 8SJGi5S4+aJESdzEhv9UjFwhUuAKFSZRqiQpsOXJhilFmlRJ8OQ/ nC5L4pTZcGfOlTIJAh16U2jB lAlhDpRpE2XTnE +JKo0K1STOoEYNMr06leXWgl2p2nQ6UmxVr1ln5nx5lqjBmTuLum15U2pWnnex 2s3o9y/gwIIH/xMeaEeKJly +4Ex0mdYx3LYD6Za0ChTq5LtvN0+N2ZQk5bqapWZ2y1VzZ9OV484t vVoy7LSRMafGTPq01dm1Vc/1bLuqTBSjbb/VydL1bs6j8xZu7vw59OgLUUjBZUeclJCqJV/ mnZQ4 zYMiSYbfjLknccnhy/u2mrU7c+Ow425Xn9v+8PSQXX8X23+0cLm9R9x +p6H333DllbZWffFJ9yCE 00U44UJY+IICJb4w0RiB6XmI13bjHQSZiPNxh5p/J+7XWmQMpvjiifUVSBt/ JfLHmo0m3pjUV94J 2B9ll624I0LyuShkejkyRyGTTTopHROgiKMJN9lJpORnj9301P +MM0blWY7FtQikcgUuCVNfaCUH H5ljdmhifFy +6SKPYcamm1zAuWnZbwilGWSKRwY625OFGnroX0zgAgolmmwoUZcj9okin6e15iWW 5okJpo8Laqdpp6YJGqKM9FFKI6FJ4mZeezCGaaaOuBnZpqenxooorgoFmKtAu0LoCze48OGCJp +G duplCuL3HaeaKqusfa0p6OKACnUnpqrOTnoegvrN2a22/ x1oYqRwerekZgdWO6p7+fH6Lry42gGH FC4QQwmH85XbqpyVmnofi6wKGHCoMQV8LaD+7qZlwQP/u1poBj/co3IAI7fcZ306+C9wB/ N78X3x ijwyky74Mu//YcYup9JJfcmFrahTBZgsWuOyilS2cOKMkmxqtjotiFGleWeNO2+p1LNHx/ oym29O JpvNbGUq3tBS1wV10FTZ7DLJXXvtHAqaSGEHJXZ8ffZz195KkdpoX9R2RGe6PTfdTOIChx3o4GJl 3X1bJHdFNvv9t0W7Lonu4IkrLtFiKKAgDmOLS75UkRe9PDmkiMftJ +ade34QHJq4IA43xX5++kC+ or466617rbc4YavuOu2123477oPZcRgWY+f+O/DBC//k7BTSa4cmdjw6PPPNO/ 983XiX7Yvp0Ft/ PfbZM0mMJligkLL24Ys/Pq/F9+2LC3Cgvzz5Z5vfPvzxR6hJ//Li8OGL/Pnrv3/ zTCiPjhRAwr8B ErCAqHOB8lyAi/ cZsIG0Y6ADXccEcVAigAKMIAYzqEFeVQlyyoMfBDcowhEWygV8wAUl4HBBErKw hS70y4ViGMIX0rCGNXRU2dRnwx3ykIe+WAwc4MC+HhKxiMyb4URUSAlioM+ITnxiA39oh+/ hAopW vKL84OCC0SkKi178YvZChz4XIBGMZjzj6sShIQCCAo1ufGPtaOAL75HxSoQyipfcBRG4CUZzcPxj BIPovx9CKjM/+1B9NicdPgKykQVMIRnhUEVFtqVEThlKzypZlK +4jJPF4eRW2HKVl4SSYo48pf4o gQuThU5lQ//izqssqbAkweqTk +qXnhCJyl2OTxzCqtIkIwKazLyyVURjUV6Q5CNjwsw3jOQlNLP3 ESZggRIu0E6z9mNMZLLMYMb05kqIFpR+VUwv0fxdGc/5j +Sh4zB822OZUPVNf4mnVIl0Zq3ESSR1 8rN5KACFLyBXPWH +55WaegrQKkYnfN5mPAraSUL7KVHn8SFD9cLXp35UmXlCDZS9uSMoYzNMfYky a36cKEpXlyE7UG+gqDspRGCa0pliTkpkDNtLh +YXmZIsnTRFqR34IIXSoeOnRj0q41i6EYwitalO LcgEXRBAPjy1qk+dV/KAZdWtptRXvkChOPKWUV3aKV9P+9P/ hNqGsMK0DVpcfaoaicUEn3qSc3+h E8wMlUxQPYenb00pN+Z1IZ+GMkuk/ MnTPPOVmtxIXa8ZpyHPEs5wHnZLyJksZUeZWKU1BWrtYSyI vPmlZ/ 7VkeIg1hYjR1BkVspGjjEoploE2+M0dLYxcq2HRqrQWd52maKyTFn94tPSYnBvyGMCU2P6 20E1M1SoOivDQIVb58YonzdiLYxumd3e7haRwyUuRb47PpZqQn1mK6RoSIlL3/6Ga3r8rHvF6c3Y giVkeTLsWUG2UPfWkmDghWYF5+iCotpRs76RJbcSXN0PHZi33V3WPb0V4f4wtF3ynBQzESXe/ +qq dQFUIDqu/4le2jp0udi9LX3FFbNtMTSXtpUPMfM5XQS/ 9sLPJS2H0UgJJqhPCm0ssMNqDNHofvRV kuKNUVqWmyHHRsk8+2i2quZRyyJZPaGkbIZz3EhuqA8OKBiilsN8xu8hUBwrFDOav8gH5NJvw2l + MwmZ0BEptBLOdoYiMb4nRPzduc9FZAIZSfdOPxOahujrCORc5+ZCM3owH0EBMa7T6EmzkKXcYIIm kkvpTUdwI7hALp85Leoo2gGFJxs1qh/ZEW5w48ypfjX8zIxVMMO61uFTnxTPa +tdh293jvIyr4Mt zSlJgRJUFTayn6dKdCTPpcl+9u+Sx4TScQPa1gYeYojhgv8uXrvbtmOC/ 7is64gs2tvmbpIvip3A c7MbdXvLECWw0O55dy55Q+0IvfO9OMXsjnqCKbe +Az4RTaSbCb4TOMLdhgv6kc3ZCc8ewCUa1i8j 9+Fzi7ioxeE/ KSDG4h4nN4XUWN5if9zOGF8cx8U2ti9LNYXTA4UduIGCaob1hyYLcabJFkTvoUOL lPiymefMjW2v2Tr1AsWikjdgXwg1rPQDBQpO2POOKCrmYtuirOHAvd7JnILzMnOe1QgKejnuZC4o HZ1Ppglx0GDbvqaetk +7GMFyHDF6BsXouLg7LCz8ZOqTM0sTOEH0Yeer9QuoFLCgQpNJId3cO63i q3MyGqj/UIvIyxDeRsdxFBBrlTvmOPrgwBGLImbspcZQeaeECxTeLYAB1LoS7/ fDrF7n0kzgA/0e rXGpqpwboOCG3mgQWBXSDxd6A6i6144CSWpRbwqc19h +yHEex47jCgQWBfngy1YH0OCNF1ZAqYPr C9nBhBWUAjrUOLa+X516KSS4wY1NPcRMW7COchS4dzfXxpf/0iZD/ EcElgvAnFAhzwJlGjGIAxYA E/3QAAqkn/qgg6JMyXVQSQVWR/3AH5c5CmKQjRqpj8ZBTrElBhawmcbhgsYlT+hIAR/ 8U1TJ2dhM SWJIAaalW9j4mDj03JT40tjs2L1QkPeM3f1QSQuyFHZw/ 5wafVlggQLBpdtitJq9BIuc0QvT3Q31 bBETEIP6cIRxSVuGnAw3KJ5iSAEKLEYFIQ8cqNL3uF9YWRMKMQoFaULUlddhhA4uLKAWIobGDd2l TZHV9VimadG9CFH0UQJAyVwAleEQVtCnIZcSHcaOWV26kdEEBRADnt3PUcdGCNF1oKAWKYYkmVkK wcEJzZ6cMWIFmQzabWJYQU4QIYYkbRsx3A0KLJA1gULj1eIXckOjhI6ZBZYq7dinxRu9lBconsze mFkQQU6GzODwzQsiegSwWIcCTZDyyaEkVROiDV5HeBnpsBQNWh0CVRDe1KDYkM1cmdr3qFHZ7I0x Zhof/P/ dRZ2il31aGr4h8lDH7iwfqH0aDSYP8sghAnHijmUIptXivPiPOXrE45gXEy4GnUkVq2Wa o7ifGOWZhkSaE7IZGSpK +rBZeZmMvf3clGhIIH4PwWUIFaUQj4Ge6NSgGpVa77CUGf4cLVYHOpTO dfidzmmICu1N6NTgGQbUdUzbL61jGqrQ4yAjIWII0yUGUYreAo2eomhRR4TN7qzSl3FeLYofcmnf YYjc9zzOUJ0d86UhElaQ2HCD8KXPycScBG7dEgXRjhmc55WfeflS0k1RRVXHjkmfdazd2rXiLJKN dcThIJ1QYqDDzJXX7RmbCqkeyjBBiC3GYsjRrH0V2VD/ j1ClUEwOlSY8Ht4kxuMsCr2UDQpQHnmd Xfe85Wmp0bAoXkfkJBaonGaGDkc8IJXYpRzSD/qwXtlIwSxix9gFFKBJn2B5RLZJVY/ tjbahXbEt HLH4EmoBGhPmHOKFVQn6D8OpEFuu3WE4IWIQnALVZuhpAigY3D1upvIs31eVTWLY21dVye4gT8qt YOwsBumUTcxh1fw5yuU9Tvdcx +jIjgLFDvzxp8lgR3wKS999GUvlGeUxEVQSC8EJZ2KokZxRkyac kK9VYEuJXoZsW3WY2ephVTwCGgXhIvrE5xylpAvEG7hFSaYlXvIs3OmlmxbVYLop497oIsHZI6Ct HbN9KFodBh3B3UupkdcVBlA17Q7HVVOj0KAaEUNgKUauBZbYiA0KIkZABQQAOw= -- http://mail.python.org/mailman/listinfo/python-list