����JFIFXX�����    $.' ",#(7),01444'9=82<.342  2!!22222222222222222222222222222222222222222222222222����"��4�� ���,�PG"Z_�4�˷����kjز�Z�,F+��_z�,�© �����zh6�٨�ic�fu���#ډb���_�N�?��wQ���5-�~�I���8����TK<5o�Iv-�����k�_U_�����~b�M��d����Ӝ�U�Hh��?]��E�w��Q���k�{��_}qFW7HTՑ��Y��F�?_�'ϔ��_�Ջt��=||I ��6�έ"�����D���/[�k�9���Y�8ds|\���Ҿp6�Ҵ���]��.����6�z<�v��@]�i%��$j��~�g��J>��no����pM[me�i$[����s�o�ᘨ�˸ nɜG-�ĨU�ycP�3.DB�li�;��hj���x7Z^�N�h������N3u{�:j�x�힞��#M&��jL P@_���� P��&��o8������9�����@Sz6�t7#O�ߋ �s}Yf�T���lmr����Z)'N��k�۞p����w\�Tȯ?�8`�O��i{wﭹW�[�r�� ��Q4F�׊���3m&L�=��h3����z~��#�\�l :�F,j@�� ʱ�wQT����8�"kJO���6�֚l����}���R�>ډK���]��y����&����p�}b��;N�1�m�r$�|��7�>e�@B�TM*-iH��g�D�)� E�m�|�ؘbҗ�a��Ҿ����t4���o���G��*oCN�rP���Q��@z,|?W[0�����:�n,jWiE��W��$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S����VN;�}�s?.����� w�9��˟<���Mq4�Wv'��{)0�1mB��V����W[�����8�/<� �%���wT^�5���b��)iM� pg�N�&ݝ��VO~�q���u���9� ����!��J27����$O-���! �:�%H��� ـ����y�ΠM=t{!S�� oK8������t<����è:a������[�����ա�H���~��w��Qz`�po�^ ����Q��n� �,uu�C�$ ^���,������8�#��:�6��e�|~���!�3�3.�\0��q��o�4`.|� ����y�Q�`~;�d�ׯ,��O�Zw�������`73�v�܋�<���Ȏ�� ـ4k��5�K�a�u�=9Yd��$>x�A�&�� j0� ���vF��� Y�|�y��� ~�6�@c��1vOp�Ig����4��l�OD���L����� R���c���j�_�uX6��3?nk��Wy�f;^*B� ��@�~a�`��Eu������+���6�L��.ü>��}y���}_�O�6�͐�:�YrG�X��kG�����l^w���~㒶sy��Iu�!� W ��X��N�7BV��O��!X�2����wvG�R�f�T#�����t�/?���%8�^�W�aT��G�cL�M���I��(J����1~�8�?aT ���]����AS�E��(��*E}� 2��#I/�׍qz��^t�̔���b�Yz4x���t�){ OH��+(E��A&�N�������XT��o��"�XC��'���)}�J�z�p� ��~5�}�^����+�6����w��c��Q�|Lp�d�H��}�(�.|����k��c4^�"�����Z?ȕ ��a<�L�!039C� �Eu�C�F�Ew�ç ;�n?�*o���B�8�bʝ���'#Rqf���M}7����]����s2tcS{�\icTx;�\��7K���P���ʇ Z O-��~��c>"��?�������P��E��O�8��@�8��G��Q�g�a�Վ���󁶠�䧘��_%#r�>�1�z�a��eb��qcPѵ��n���#L��� =��׀t� L�7�`��V���A{�C:�g���e@�w1 Xp3�c3�ġ����p��M"'-�@n4���fG��B3�DJ�8[Jo�ߐ���gK)ƛ��$���� ���8�3�����+���� �����6�ʻ���� ���S�kI�*KZlT _`���?��K����QK�d����B`�s}�>���`��*�>��,*@J�d�oF*����弝��O}�k��s��]��y�ߘ��c1G�V���<=�7��7����6�q�PT��tXԀ�!9*4�4Tހ3XΛex�46���Y��D ����� �BdemDa����\�_l,��G�/���֌7���Y�](�xTt^%�GE�����4�}bT���ڹ�����;Y)���B�Q��u��>J/J �⮶.�XԄ��j�ݳ�+E��d ��r�5�_D�1 ��o�� �B�x�΢�#���<��W�����8���R6�@g�M�.��� dr�D��>(otU��@x=��~v���2� ӣ�d�oBd��3�eO�6�㣷�����ݜ6��6Y��Qz`��S��{���\P�~z m5{J/L��1������<�e�ͅPu�b�]�ϔ���'������f�b� Zpw��c`"��i���BD@:)ִ�:�]��hv�E�w���T�l��P���"Ju�}��وV J��G6��. J/�Qgl߭�e�����@�z�Zev2u�)]կ�����7x���s�M�-<ɯ�c��r�v�����@��$�ޮ}lk���a���'����>x��O\�ZFu>�����ck#��&:��`�$�ai�>2Δ����l���oF[h��lE�ܺ�Πk:)���`�� $[6�����9�����kOw�\|���8}������ބ:��񶐕��I�A1/�=�2[�,�!��.}gN#�u����b��� ~��݊��}34q����d�E��Lc��$��"�[q�U�硬g^��%B �z���r�pJ�ru%v\h1Y�ne`ǥ:g���pQM~�^�Xi� ��`S�:V29.�P���V�?B�k�� AEvw%�_�9C�Q����wKekPؠ�\�;Io d�{ ߞo�c1eP����\� `����E=���@K<�Y���eڼ�J���w����{av�F�'�M�@/J��+9p���|]�����Iw &`��8���&M�hg��[�{��Xj��%��Ӓ�$��(����ʹN���<>�I���RY���K2�NPlL�ɀ)��&e����B+ь����( � �JTx���_?EZ� }@ 6�U���뙢ط�z��dWI�n` D����噥�[��uV��"�G&Ú����2g�}&m��?ċ�"����Om#��������� ��{�ON��"S�X��Ne��ysQ���@Fn��Vg���dX�~nj�]J�<�K]:��FW��b�������62�=��5f����JKw��bf�X�55��~J �%^����:�-�QIE��P��v�nZum� z � ~ə ���� ���ة����;�f��\v���g�8�1��f24;�V���ǔ�)����9���1\��c��v�/'Ƞ�w�������$�4�R-��t���� e�6�/�ġ �̕Ecy�J���u�B���<�W�ַ~�w[B1L۲�-JS΂�{���΃������A��20�c#��@ 0!1@AP"#2Q`$3V�%45a6�FRUq��� ����^7ׅ,$n�������+��F�`��2X'��0vM��p�L=������5��8������u�p~���.�`r�����\���O��,ư�0oS ��_�M�����l���4�kv\JSd���x���SW�<��Ae�IX����������$I���w�:S���y���›R��9�Q[���,�5�;�@]�%���u�@ *ro�lbI �� ��+���%m:�͇ZV�����u�̉����θau<�fc�.����{�4Ա� �Q����*�Sm��8\ujqs]{kN���)qO�y�_*dJ�b�7���yQqI&9�ԌK!�M}�R�;������S�T���1���i[U�ɵz�]��U)V�S6���3$K{�ߊ<�(� E]Զ[ǼENg�����'�\?#)Dkf��J���o��v���'�%ƞ�&K�u�!��b�35LX�Ϸ��63$K�a�;�9>,R��W��3�3� d�JeTYE.Mϧ��-�o�j3+y��y^�c�������VO�9NV\nd�1 ��!͕_)a�v;����թ�M�lWR1��)El��P;��yوÏ�u 3�k�5Pr6<�⒲l�!˞*��u־�n�!�l:����UNW ��%��Chx8vL'��X�@��*��)���̮��ˍ��� ���D-M�+J�U�kvK����+�x8��cY������?�Ԡ��~3mo��|�u@[XeY�C�\Kp�x8�oC�C�&����N�~3-H���� ��MX�s�u<`���~"WL��$8ξ��3���a�)|:@�m�\���^�`�@ҷ)�5p+��6���p�%i)P M���ngc�����#0Aruz���RL+xSS?���ʮ}()#�t��mˇ!��0}}y����<�e� �-ή�Ԩ��X������ MF���ԙ~l L.3���}�V뽺�v�����멬��Nl�)�2����^�Iq��a��M��qG��T�����c3#������3U�Ǎ���}��לS�|qa��ڃ�+���-��2�f����/��bz��ڐ�� �ݼ[2�ç����k�X�2�* �Z�d���J�G����M*9W���s{��w���T��x��y,�in�O�v��]���n����P�$�JB@=4�OTI�n��e�22a\����q�d���%�$��(���:���: /*�K[PR�fr\nڙdN���F�n�$�4�[�� U�zƶ����� �mʋ���,�ao�u 3�z� �x��Kn����\[��VFmbE;�_U��&V�Gg�]L�۪&#n%�$ɯ�dG���D�TI=�%+AB�Ru#��b4�1�»x�cs�YzڙJG��f��Il��d�eF'T� iA��T���uC�$����Y��H?����[!G`}���ͪ� �纤Hv\������j�Ex�K���!���OiƸ�Yj�+u-<���'q����uN�*�r\��+�]���<�wOZ.fp�ێ��,-*)V?j-kÊ#�`�r��dV����(�ݽBk�����G�ƛk�QmUڗe��Z���f}|����8�8��a���i��3'J�����~G_�^���d�8w������ R�`(�~�.��u���l�s+g�bv���W���lGc}��u���afE~1�Ue������Z�0�8�=e�� f@/�jqEKQQ�J��oN��J���W5~M>$6�Lt�;$ʳ{���^��6�{����v6���ķܰg�V�cnn �~z�x�«�,2�u�?cE+Ș�H؎�%�Za�)���X>uW�Tz�Nyo����s���FQƤ��$��*�&�LLXL)�1�" L��eO��ɟ�9=���:t��Z���c��Ž���Y?�ӭV�wv�~,Y��r�ۗ�|�y��GaF�����C�����.�+� ���v1���fήJ�����]�S��T��B��n5sW}y�$��~z�'�c ��8 ��� ,! �p��VN�S��N�N�q��y8z˱�A��4��*��'������2n<�s���^ǧ˭P�Jޮɏ�U�G�L�J�*#��<�V��t7�8����TĜ>��i}K%,���)[��z�21z ?�N�i�n1?T�I�R#��m-�����������������1����lA�`��fT5+��ܐ�c�q՝��ʐ��,���3�f2U�եmab��#ŠdQ�y>\��)�SLY����w#��.���ʑ�f��� ,"+�w�~�N�'�c�O�3F�������N<���)j��&��,-� �љ���֊�_�zS���TǦ����w�>��?�������n��U仆�V���e�����0���$�C�d���rP �m�׈e�Xm�Vu� �L��.�bֹ��� �[Դaզ���*��\y�8�Է:�Ez\�0�Kq�C b��̘��cө���Q��=0Y��s�N��S.���3.���O�o:���#���v7�[#߫ ��5�܎�L���Er4���9n��COWlG�^��0k�%<���ZB���aB_���������'=��{i�v�l�$�uC���mƎҝ{�c㱼�y]���W�i ��ߧc��m�H� m�"�"�����;Y�ߝ�Z�Ǔ�����:S#��|}�y�,/k�Ld� TA�(�AI$+I3��;Y*���Z��}|��ӧO��d�v��..#:n��f>�>���ȶI�TX��� 8��y����"d�R�|�)0���=���n4��6ⲑ�+��r<�O�܂~zh�z����7ܓ�HH�Ga롏���nCo�>������a ���~]���R���̲c?�6(�q�;5%� |�uj�~z8R=X��I�V=�|{v�Gj\gc��q����z�؋%M�ߍ����1y��#��@f^���^�>N�����#x#۹��6�Y~�?�dfPO��{��P�4��V��u1E1J �*|���%���JN��`eWu�zk M6���q t[�� ��g�G���v��WIG��u_ft����5�j�"�Y�:T��ɐ���*�;� e5���4����q$C��2d�}���� _S�L#m�Yp��O�.�C�;��c����Hi#֩%+) �Ӎ��ƲV���SYź��g |���tj��3�8���r|���V��1#;.SQ�A[���S������#���`n�+���$��$I �P\[�@�s��(�ED�z���P��])8�G#��0B��[ى��X�II�q<��9�~[Z멜�Z�⊔IWU&A>�P~�#��dp<�?����7���c��'~���5 ��+$���lx@�M�dm��n<=e�dyX��?{�|Aef ,|n3�<~z�ƃ�uۧ�����P��Y,�ӥQ�*g�#먙R�\���;T��i,��[9Qi歉����c>]9�� ��"�c��P�� �Md?٥��If�ت�u��k��/����F��9�c*9��Ǎ:�ØF���z�n*�@|I�ށ9����N3{'��[�'ͬ�Ҳ4��#}��!�V� Fu��,�,mTIk���v C�7v���B�6k�T9��1�*l� '~��ƞF��lU��'�M ����][ΩũJ_�{�i�I�n��$���L�� j��O�dx�����kza۪��#�E��Cl����x˘�o�����V���ɞ�ljr��)�/,�߬h�L��#��^��L�ф�,íMƁe�̩�NB�L�����iL����q�}��(��q��6IçJ$�W�E$��:������=#����(�K�B����zђ <��K(�N�۫K�w��^O{!����)�H���>x�������lx�?>Պ�+�>�W���,Ly!_�D���Ō�l���Q�!�[ �S����J��1��Ɛ�Y}��b,+�Lo�x�ɓ)����=�y�oh�@�꥟/��I��ѭ=��P�y9��� �ۍYӘ�e+�p�Jnϱ?V\SO%�(�t� ���=?MR�[Ș�����d�/ ��n�l��B�7j� ��!�;ӥ�/�[-���A�>�dN�sLj ��,ɪv��=1c�.SQ�O3�U���ƀ�ܽ�E����������̻��9G�ϷD�7(�}��Ävӌ\�y�_0[w ���<΍>����a_��[0+�L��F.�޺��f�>oN�T����q;���y\��bՃ��y�jH�<|q-eɏ�_?_9+P���Hp$�����[ux�K w�Mw��N�ی'$Y2�=��q���KB��P��~������Yul:�[<����F1�2�O���5=d����]Y�sw:���Ϯ���E��j,_Q��X��z`H1,#II ��d�wr��P˂@�ZJV����y$�\y�{}��^~���[:N����ߌ�U�������O��d�����ؾe��${p>G��3c���Ė�lʌ�� ת��[��`ϱ�-W����dg�I��ig2��� ��}s ��ؤ(%#sS@���~���3�X�nRG�~\jc3�v��ӍL��M[JB�T��s3}��j�Nʖ��W����;7��ç?=X�F=-�=����q�ߚ���#���='�c��7���ڑW�I(O+=:uxq�������������e2�zi+�kuG�R��������0�&e�n���iT^J����~\jy���p'dtG��s����O��3����9* �b#Ɋ�� p������[Bws�T�>d4�ۧs���nv�n���U���_�~,�v����ƜJ1��s�� �QIz��)�(lv8M���U=�;����56��G���s#�K���MP�=��LvyGd��}�VwWBF�'�à �?MH�U�g2�� ����!�p�7Q��j��ڴ����=��j�u��� Jn�A s���uM������e��Ɔ�Ҕ�!)'��8Ϣ�ٔ��ޝ(��Vp���צ֖d=�IC�J�Ǡ{q������kԭ�߸���i��@K����u�|�p=..�*+����x�����z[Aqġ#s2a�Ɗ���RR�)*HRsi�~�a &f��M��P����-K�L@��Z��Xy�'x�{}��Zm+���:�)�) IJ�-i�u���� ���ܒH��'�L(7�y�GӜq���� j��� 6ߌg1�g�o���,kر���tY�?W,���p���e���f�OQS��!K�۟cҒA�|ս�j�>��=⬒��˧L[�� �߿2JaB~R��u�:��Q�] �0H~���]�7��Ƽ�I���(}��cq '�ήET���q�?f�ab���ӥvr� �)o��-Q��_'����ᴎo��K������;��V���o��%���~OK ����*��b�f:���-ťIR��`B�5!RB@���ï�� �u �̯e\�_U�_������� g�ES��3�������QT��a����x����U<~�c?�*�#]�MW,[8O�a�x��]�1bC|踤�P��lw5V%�)�{t�<��d��5���0i�XSU��m:��Z�┵�i�"��1�^B�-��P�hJ��&)O��*�D��c�W��vM��)����}���P��ܗ-q����\mmζZ-l@�}��a��E�6��F�@��&Sg@���ݚ�M����� ȹ 4����#p�\H����dYDo�H���"��\��..R�B�H�z_�/5˘����6��KhJR��P�mƶi�m���3�,#c�co��q�a)*Pt����R�m�k�7x�D�E�\Y�閣_X�<���~�)���c[[�BP����6�Yq���S��0����%_����;��Àv�~�| VS؇ ��'O0��F0��\���U�-�d@�����7�SJ*z��3n��y��P����O���������m�~�P�3|Y��ʉr#�C�<�G~�.,! ���bqx���h~0=��!ǫ�jy����l�O,�[B��~��|9��ٱ����Xly�#�i�B��g%�S��������tˋ���e���ې��\[d�t)��.+u�|1 ������#�~Oj����hS�%��i.�~X���I�H�m��0n���c�1uE�q��cF�RF�o���7� �O�ꮧ� ���ۛ{��ʛi5�rw?׌#Qn�TW��~?y$��m\�\o����%W� ?=>S�N@�� �Ʈ���R����N�)�r"C�:��:����� �����#��qb��Y�. �6[��2K����2u�Ǧ�HYR��Q�MV��� �G�$��Q+.>�����nNH��q�^��� ����q��mM��V��D�+�-�#*�U�̒ ���p욳��u:�������IB���m���PV@O���r[b= �� ��1U�E��_Nm�yKbN�O���U�}�the�`�|6֮P>�\2�P�V���I�D�i�P�O;�9�r�mAHG�W�S]��J*�_�G��+kP�2����Ka�Z���H�'K�x�W�MZ%�O�YD�Rc+o��?�q��Ghm��d�S�oh�\�D�|:W������UA�Qc yT�q������~^�H��/��#p�CZ���T�I�1�ӏT����4��"�ČZ�����}��`w�#�*,ʹ�� ��0�i��課�Om�*�da��^gJ݅{���l�e9uF#T�ֲ��̲�ٞC"�q���ߍ ոޑ�o#�XZTp����@ o�8��(jd��xw�]�,f���`~�|,s��^����f�1���t��|��m�򸄭/ctr��5s��7�9Q�4�H1꠲BB@l9@���C�����+�wp�xu�£Yc�9��?`@#�o�mH�s2��)�=��2�.�l����jg�9$�Y�S�%*L������R�Y������7Z���,*=�䷘$�������arm�o�ϰ���UW.|�r�uf����IGw�t����Zwo��~5 ��YյhO+=8fF�)�W�7�L9lM�̘·Y���֘YLf�큹�pRF���99.A �"wz��=E\Z���'a� 2��Ǚ�#;�'}�G���*��l��^"q��+2FQ� hj��kŦ��${���ޮ-�T�٭cf�|�3#~�RJ����t��$b�(R��(����r���dx� >U b�&9,>���%E\� Ά�e�$��'�q't��*�א���ެ�b��-|d���SB�O�O��$�R+�H�)�܎�K��1m`;�J�2�Y~9��O�g8=vqD`K[�F)k�[���1m޼c��n���]s�k�z$@��)!I �x՝"v��9=�ZA=`Ɠi �:�E��)`7��vI��}d�YI�_ �o�:ob���o ���3Q��&D&�2=�� �Ά��;>�h����y.*ⅥS������Ӭ�+q&����j|UƧ����}���J0��WW< ۋS�)jQR�j���Ư��rN)�Gű�4Ѷ(�S)Ǣ�8��i��W52���No˓� ۍ%�5brOn�L�;�n��\G����=�^U�dI���8$�&���h��'���+�(������cȁ߫k�l��S^���cƗjԌE�ꭔ��gF���Ȓ��@���}O���*;e�v�WV���YJ\�]X'5��ղ�k�F��b 6R�o՜m��i N�i����>J����?��lPm�U��}>_Z&�KK��q�r��I�D�Չ~�q�3fL�:S�e>���E���-G���{L�6p�e,8��������QI��h��a�Xa��U�A'���ʂ���s�+טIjP�-��y�8ۈZ?J$��W�P� ��R�s�]��|�l(�ԓ��sƊi��o(��S0��Y� 8�T97.�����WiL��c�~�dxc�E|�2!�X�K�Ƙਫ਼�$((�6�~|d9u+�qd�^3�89��Y�6L�.I�����?���iI�q���9�)O/뚅����O���X��X�V��ZF[�یgQ�L��K1���RҖr@v�#��X�l��F���Нy�S�8�7�kF!A��sM���^rkp�jP�DyS$N���q��nxҍ!U�f�!eh�i�2�m���`�Y�I�9r�6� �TF���C}/�y�^���Η���5d�'��9A-��J��>{�_l+�`��A���[�'��յ�ϛ#w:݅�%��X�}�&�PSt�Q�"�-��\縵�/����$Ɨh�Xb�*�y��BS����;W�ջ_mc�����vt?2}1�;qS�d�d~u:2k5�2�R�~�z+|HE!)�Ǟl��7`��0�<�,�2*���Hl-��x�^����'_TV�gZA�'j� ^�2Ϊ��N7t�����?w�� �x1��f��Iz�C-Ȗ��K�^q�;���-W�DvT�7��8�Z�������� hK�(P:��Q- �8�n�Z���܃e貾�<�1�YT<�,�����"�6{/ �?�͟��|1�:�#g��W�>$����d��J��d�B��=��jf[��%rE^��il:��B���x���Sּ�1հ��,�=��*�7 fcG��#q� �eh?��2�7�����,�!7x��6�n�LC�4x��},Geǝ�tC.��vS �F�43��zz\��;QYC,6����~;RYS/6���|2���5���v��T��i����������mlv��������&� �nRh^ejR�LG�f���? �ۉҬܦƩ��|��Ȱ����>3����!v��i�ʯ�>�v��オ�X3e���_1z�Kȗ\<������!�8���V��]��?b�k41�Re��T�q��mz��TiOʦ�Z��Xq���L������q"+���2ۨ��8}�&N7XU7Ap�d�X��~�׿��&4e�o�F��� �H����O���č�c�� 懴�6���͉��+)��v;j��ݷ�� �UV�� i��� j���Y9GdÒJ1��詞�����V?h��l����l�cGs�ځ�������y�Ac�����\V3�? �� ܙg�>qH�S,�E�W�[�㺨�uch�⍸�O�}���a��>�q�6�n6����N6�q������N ! 1AQaq�0@����"2BRb�#Pr���3C`��Scst���$4D���%Td�� ?���N����a��3��m���C���w��������xA�m�q�m���m������$����4n淿t'��C"w��zU=D�\R+w�p+Y�T�&�պ@��ƃ��3ޯ?�Aﶂ��aŘ���@-�����Q�=���9D��ռ�ѻ@��M�V��P��܅�G5�f�Y<�u=,EC)�<�Fy'�"�&�չ�X~f��l�KԆV��?�� �W�N����=(� �;���{�r����ٌ�Y���h{�١������jW����P���Tc�����X�K�r��}���w�R��%��?���E��m�� �Y�q|����\lEE4���r���}�lsI�Y������f�$�=�d�yO����p�����yBj8jU�o�/�S��?�U��*������ˍ�0������u�q�m [�?f����a�� )Q�>����6#������� ?����0UQ����,IX���(6ڵ[�DI�MNލ�c&���υ�j\��X�R|,4��� j������T�hA�e��^���d���b<����n�� �즇�=!���3�^�`j�h�ȓr��jẕ�c�,ٞX����-����a�ﶔ���#�$��]w�O��Ӫ�1y%��L�Y<�wg#�ǝ�̗`�x�xa�t�w��»1���o7o5��>�m뭛C���Uƃߜ}�C���y1Xνm�F8�jI���]����H���ۺиE@I�i;r�8ӭ����V�F�Շ| ��&?�3|x�B�MuS�Ge�=Ӕ�#BE5G�����Y!z��_e��q�р/W>|-�Ci߇�t�1ޯќd�R3�u��g�=0 5��[?�#͏��q�cf���H��{ ?u�=?�?ǯ���}Z��z���hmΔ�BFTW�����<�q�(v� ��!��z���iW]*�J�V�z��gX֧A�q�&��/w���u�gYӘa���; �i=����g:��?2�dž6�ى�k�4�>�Pxs����}������G�9��3 ���)gG�R<>r h�$��'nc�h�P��Bj��J�ҧH� -��N1���N��?��~��}-q!=��_2hc�M��l�vY%UE�@|�v����M2�.Y[|y�"Eï��K�ZF,�ɯ?,q�?v�M 80jx�"�;�9vk�����+ ֧�� �ȺU��?�%�vcV��mA�6��Qg^M����A}�3�nl� QRN�l8�kkn�'�����(��M�7m9و�q���%ޟ���*h$Zk"��$�9��: �?U8�Sl��,,|ɒ��xH(ѷ����Gn�/Q�4�P��G�%��Ա8�N��!� �&�7�;���eKM7�4��9R/%����l�c>�x;������>��C�:�����t��h?aKX�bhe�ᜋ^�$�Iհ �hr7%F$�E��Fd���t��5���+�(M6�t����Ü�UU|zW�=a�Ts�Tg������dqP�Q����b'�m���1{|Y����X�N��b �P~��F^F:����k6�"�j!�� �I�r�`��1&�-$�Bevk:y���#yw��I0��x��=D�4��tU���P�ZH��ڠ底taP��6����b>�xa����Q�#� WeF��ŮNj�p�J* mQ�N����*I�-*�ȩ�F�g�3 �5��V�ʊ�ɮ�a��5F���O@{���NX��?����H�]3��1�Ri_u��������ѕ�� ����0��� F��~��:60�p�͈�S��qX#a�5>���`�o&+�<2�D����: �������ڝ�$�nP���*)�N�|y�Ej�F�5ټ�e���ihy�Z �>���k�bH�a�v��h�-#���!�Po=@k̆IEN��@��}Ll?j�O������߭�ʞ���Q|A07x���wt!xf���I2?Z��<ץ�T���cU�j��]��陎Ltl �}5�ϓ��$�,��O�mˊ�;�@O��jE��j(�ا,��LX���LO���Ц�90�O �.����a��nA���7������j4 ��W��_ٓ���zW�jcB������y՗+EM�)d���N�g6�y1_x��p�$Lv:��9�"z��p���ʙ$��^��JԼ*�ϭ����o���=x�Lj�6�J��u82�A�H�3$�ٕ@�=Vv�]�'�qEz�;I˼��)��=��ɯ���x �/�W(V���p�����$ �m�������u�����񶤑Oqˎ�T����r��㠚x�sr�GC��byp�G��1ߠ�w e�8�$⿄����/�M{*}��W�]˷.�CK\�ުx���/$�WPw���r� |i���&�}�{�X� �>��$-��l���?-z���g����lΆ���(F���h�vS*���b���߲ڡn,|)mrH[���a�3�ר�[1��3o_�U�3�TC�$��(�=�)0�kgP���� ��u�^=��4 �WYCҸ:��vQ�ר�X�à��tk�m,�t*��^�,�}D*� �"(�I��9R����>`�`��[~Q]�#af��i6l��8���6�:,s�s�N6�j"�A4���IuQ��6E,�GnH��zS�HO�uk�5$�I�4��ؤ�Q9�@��C����wp�BGv[]�u�Ov���0I4���\��y�����Q�Ѹ��~>Z��8�T��a��q�ޣ;z��a���/��S��I:�ܫ_�|������>=Z����8:�S��U�I�J��"IY���8%b8���H��:�QO�6�;7�I�S��J��ҌAά3��>c���E+&jf$eC+�z�;��V����� �r���ʺ������my�e���aQ�f&��6�ND��.:��NT�vm�<- u���ǝ\MvZY�N�NT��-A�>jr!S��n�O 1�3�Ns�%�3D@���`������ܟ 1�^c<���� �a�ɽ�̲�Xë#�w�|y�cW�=�9I*H8�p�^(4���՗�k��arOcW�tO�\�ƍR��8����'�K���I�Q�����?5�>[�}��yU�ײ -h��=��% q�ThG�2�)���"ו3]�!kB��*p�FDl�A���,�eEi�H�f�Ps�����5�H:�Փ~�H�0Dت�D�I����h�F3�������c��2���E��9�H��5�zԑ�ʚ�i�X�=:m�xg�hd(�v����׊�9iS��O��d@0ڽ���:�p�5�h-��t�&���X�q�ӕ,��ie�|���7A�2���O%P��E��htj��Y1��w�Ѓ!����  ���� ࢽ��My�7�\�a�@�ţ�J �4�Ȼ�F�@o�̒?4�wx��)��]�P��~�����u�����5�����7X ��9��^ܩ�U;Iꭆ 5 �������eK2�7(�{|��Y׎ �V��\"���Z�1� Z�����}��(�Ǝ"�1S���_�vE30>���p;� ΝD��%x�W�?W?v����o�^V�i�d��r[��/&>�~`�9Wh��y�;���R��� ;;ɮT��?����r$�g1�K����A��C��c��K��l:�'��3 c�ﳯ*"t8�~l��)���m��+U,z��`(�>yJ�?����h>��]��v��ЍG*�{`��;y]��I�T� ;c��NU�fo¾h���/$���|NS���1�S�"�H��V���T���4��uhǜ�]�v;���5�͠x��'C\�SBpl���h}�N����� A�Bx���%��ޭ�l��/����T��w�ʽ]D�=����K���ž�r㻠l4�S�O?=�k �M:� ��c�C�a�#ha���)�ѐxc�s���gP�iG��{+���x���Q���I= �� z��ԫ+ �8"�k�ñ�j=|����c ��y��CF��/��*9ж�h{ �?4�o� ��k�m�Q�N�x��;�Y��4膚�a�w?�6�>e]�����Q�r�:����g�,i"�����ԩA�*M�<�G��b�if��l^M��5� �Ҩ�{����6J��ZJ�����P�*�����Y���ݛu�_4�9�I8�7���������,^ToR���m4�H��?�N�S�ѕw��/S��甍�@�9H�S�T��t�ƻ���ʒU��*{Xs�@����f�����֒Li�K{H�w^���������Ϥm�tq���s� ���ք��f:��o~s��g�r��ט� �S�ѱC�e]�x���a��) ���(b-$(�j>�7q�B?ӕ�F��hV25r[7 Y� }L�R��}����*sg+��x�r�2�U=�*'WS��ZDW]�WǞ�<��叓���{�$�9Ou4��y�90-�1�'*D`�c�^o?(�9��u���ݐ��'PI&� f�Jݮ�������:wS����jfP1F:X �H�9dԯ���˝[�_54 �}*;@�ܨ�� ð�yn�T���?�ןd�#���4rG�ͨ��H�1�|-#���Mr�S3��G�3�����)�.᧏3v�z֑��r����$G"�`j �1t��x0<Ɔ�Wh6�y�6��,œ�Ga��gA����y��b��)��h�D��ß�_�m��ü �gG;��e�v��ݝ�nQ� ��C����-�*��o���y�a��M��I�>�<���]obD��"�:���G�A��-\%LT�8���c�)��+y76���o�Q�#*{�(F�⽕�y����=���rW�\p���۩�c���A���^e6��K������ʐ�cVf5$�'->���ՉN"���F�"�UQ@�f��Gb~��#�&�M=��8�ט�JNu9��D��[̤�s�o�~������ G��9T�tW^g5y$b��Y'��س�Ǵ�=��U-2 #�MC�t(�i� �lj�@Q 5�̣i�*�O����s�x�K�f��}\��M{E�V�{�υ��Ƈ�����);�H����I��fe�Lȣr�2��>��W�I�Ȃ6������i��k�� �5�YOxȺ����>��Y�f5'��|��H+��98pj�n�.O�y�������jY��~��i�w'������l�;�s�2��Y��:'lg�ꥴ)o#'Sa�a�K��Z� �m��}�`169�n���"���x��I ��*+� }F<��cГ���F�P�������ֹ*�PqX�x۩��,� ��N�� �4<-����%����:��7����W���u�`����� $�?�I��&����o��o��`v�>��P��"��l���4��5'�Z�gE���8���?��[�X�7(��.Q�-��*���ތL@̲����v��.5���[��=�t\+�CNܛ��,g�SQnH����}*F�G16���&:�t��4ُ"A��̣��$�b �|����#rs��a�����T�� ]�<�j��BS�('$�ɻ� �wP;�/�n��?�ݜ��x�F��yUn�~mL*-�������Xf�wd^�a�}��f�,=t�׵i�.2/wpN�Ep8�OР���•��R�FJ� 55TZ��T �ɭ�<��]��/�0�r�@�f��V��V����Nz�G��^���7hZi����k��3�,kN�e|�vg�1{9]_i��X5y7� 8e]�U����'�-2,���e"����]ot�I��Y_��n�(JҼ��1�O ]bXc���Nu�No��pS���Q_���_�?i�~�x h5d'�(qw52] ��'ޤ�q��o1�R!���`ywy�A4u���h<קy���\[~�4�\ X�Wt/� 6�����n�F�a8��f���z �3$�t(���q��q�x��^�XWeN'p<-v�!�{�(>ӽDP7��ո0�y)�e$ٕv�Ih'Q�EA�m*�H��RI��=:��� ���4牢) �%_iN�ݧ�l]� �Nt���G��H�L��� ɱ�g<���1V�,�J~�ٹ�"K��Q�� 9�HS�9�?@��k����r�;we݁�]I�!{ �@�G�[�"��`���J:�n]�{�cA�E����V��ʆ���#��U9�6����j�#Y�m\��q�e4h�B�7��C�������d<�?J����1g:ٳ���=Y���D�p�ц� ׈ǔ��1�]26؜oS�'��9�V�FVu�P�h�9�xc�oq�X��p�o�5��Ա5$�9W�V(�[Ak�aY錎qf;�'�[�|���b�6�Ck��)��#a#a˙��8���=äh�4��2��C��4tm^ �n'c���]GQ$[Wҿ��i���vN�{Fu ��1�gx��1┷���N�m��{j-,��x�� Ūm�ЧS�[�s���Gna���䑴�� x�p 8<������97�Q���ϴ�v�aϚG��Rt�Һ׈�f^\r��WH�JU�7Z���y)�vg=����n��4�_)y��D'y�6�]�c�5̪�\� �PF�k����&�c;��cq�$~T�7j ���nç]�<�g ":�to�t}�159�<�/�8������m�b�K#g'I'.W�����6��I/��>v��\�MN��g���m�A�yQL�4u�Lj�j9��#44�t��l^�}L����n��R��!��t��±]��r��h6ٍ>�yҏ�N��fU�� ���� Fm@�8}�/u��jb9������he:A�y�ծw��GpΧh�5����l}�3p468��)U��d��c����;Us/�֔�YX�1�O2��uq�s��`hwg�r~�{ R��mhN��؎*q 42�*th��>�#���E����#��Hv�O����q�}�����6�e��\�,Wk�#���X��b>��p}�դ��3���T5��†��6��[��@�P�y*n��|'f�֧>�lư΂�̺����SU�'*�q�p�_S�����M�� '��c�6�����m�� ySʨ;M��r���Ƌ�m�Kxo,���Gm�P��A�G�:��i��w�9�}M(�^�V��$ǒ�ѽ�9���|���� �a����J�SQ�a���r�B;����}���ٻ֢�2�%U���c�#�g���N�a�ݕ�'�v�[�OY'��3L�3�;,p�]@�S��{ls��X�'���c�jw�k'a�.��}�}&�� �dP�*�bK=ɍ!����;3n�gΊU�ߴmt�'*{,=SzfD� A��ko~�G�aoq�_mi}#�m�������P�Xhύ����mxǍ�΂���巿zf��Q���c���|kc�����?���W��Y�$���_Lv����l߶��c���`?����l�j�ݲˏ!V��6����U�Ђ(A���4y)H���p�Z_�x��>���e��R��$�/�`^'3qˏ�-&Q�=?��CFVR �D�fV�9��{�8g�������n�h�(P"��6�[�D���< E�����~0<@�`�G�6����Hг�cc�� �c�K.5��D��d�B���`?�XQ��2��ٿyqo&+�1^� DW�0�ꊩ���G�#��Q�nL3��c���������/��x ��1�1[y�x�პCW��C�c�UĨ80�m�e�4.{�m��u���I=��f�����0QRls9���f���������9���~f�����Ǩ��a�"@�8���ȁ�Q����#c�ic������G��$���G���r/$W�(��W���V�"��m�7�[m�A�m����bo��D� j����۳� l���^�k�h׽����� ��#� iXn�v��eT�k�a�^Y�4�BN��ĕ��0 !01@Q"2AaPq3BR������?���@4�Q�����T3,���㺠�W�[=JK�Ϟ���2�r^7��vc�:�9 �E�ߴ�w�S#d���Ix��u��:��Hp��9E!�� V 2;73|F��9Y���*ʬ�F��D����u&���y؟��^EA��A��(ɩ���^��GV:ݜDy�`��Jr29ܾ�㝉��[���E;Fzx��YG��U�e�Y�C���� ����v-tx����I�sם�Ę�q��Eb�+P\ :>�i�C'�;�����k|z�رn�y]�#ǿb��Q��������w�����(�r|ӹs��[�D��2v-%��@;�8<a���[\o[ϧw��I!��*0�krs)�[�J9^��ʜ��p1)� "��/_>��o��<1����A�E�y^�C��`�x1'ܣn�p��s`l���fQ��):�l����b>�Me�jH^?�kl3(�z:���1ŠK&?Q�~�{�ٺ�h�y���/�[��V�|6��}�KbX����mn[-��7�5q�94�������dm���c^���h� X��5��<�eޘ>G���-�}�دB�ޟ� ��|�rt�M��V+�]�c?�-#ڛ��^ǂ}���Lkr���O��u�>�-D�ry� D?:ޞ�U��ǜ�7�V��?瓮�"�#���r��չģVR;�n���/_� ؉v�ݶe5d�b9��/O��009�G���5n�W����JpA�*�r9�>�1��.[t���s�F���nQ� V 77R�]�ɫ8����_0<՜�IF�u(v��4��F�k�3��E)��N:��yڮe��P�`�1}�$WS��J�SQ�N�j�ٺ��޵�#l���ј(�5=��5�lǏmoW�v-�1����v,W�mn��߀$x�<����v�j(����c]��@#��1������Ǔ���o'��u+����;G�#�޸��v-lη��/(`i⣍Pm^���ԯ̾9Z��F��������n��1��� ��]�[��)�'������:�֪�W��FC����� �B9،!?���]��V��A�Վ�M��b�w��G F>_DȬ0¤�#�QR�[V��kz���m�w�"��9ZG�7'[��=�Q����j8R?�zf�\a�=��O�U����*oB�A�|G���2�54 �p��.w7� �� ��&������ξxGHp� B%��$g�����t�Џ򤵍z���HN�u�Я�-�'4��0��;_��3 !01"@AQa2Pq#3BR������?��ʩca��en��^��8���<�u#��m*08r��y�N"�<�Ѳ0��@\�p��� �����Kv�D��J8�Fҽ� �f�Y��-m�ybX�NP����}�!*8t(�OqѢ��Q�wW�K��ZD��Δ^e��!� ��B�K��p~�����e*l}z#9ң�k���q#�Ft�o��S�R����-�w�!�S���Ӥß|M�l޶V��!eˈ�8Y���c�ЮM2��tk���� ������J�fS����Ö*i/2�����n]�k�\���|4yX�8��U�P.���Ы[���l��@"�t�<������5�lF���vU�����W��W��;�b�cД^6[#7@vU�xgZv��F�6��Q,K�v��� �+Ъ��n��Ǣ��Ft���8��0��c�@�!�Zq s�v�t�;#](B��-�nῃ~���3g������5�J�%���O������n�kB�ĺ�.r��+���#�N$?�q�/�s�6��p��a����a��J/��M�8��6�ܰ"�*������ɗud"\w���aT(����[��F��U՛����RT�b���n�*��6���O��SJ�.�ij<�v�MT��R\c��5l�sZB>F��<7�;EA��{��E���Ö��1U/�#��d1�a�n.1ě����0�ʾR�h��|�R��Ao�3�m3 ��%�� ���28Q� ��y��φ���H�To�7�lW>����#i`�q���c����a��� �m,B�-j����݋�'mR1Ήt�>��V��p���s�0IbI�C.���1R�ea�����]H�6����������4B>��o��](��$B���m�����a�!=��?�B� K�Ǿ+�Ծ"�n���K��*��+��[T#�{E�J�S����Q�����s�5�:�U�\wĐ�f�3����܆&�)����I���Ԇw��E T�lrTf6Q|R�h:��[K�� �z��c֧�G�C��%\��_�a�84��HcO�bi��ؖV��7H �)*ģK~Xhչ0��4?�0��� �E<���}3���#���u�?�� ��|g�S�6ꊤ�|�I#Hڛ� �ա��w�X��9��7���Ŀ%�SL��y6č��|�F�a 8���b��$�sק�h���b9RAu7�˨p�Č�_\*w��묦��F ����4D~�f����|(�"m���NK��i�S�>�$d7SlA��/�²����SL��|6N�}���S�˯���g��]6��; �#�.��<���q'Q�1|KQ$�����񛩶"�$r�b:���N8�w@��8$�� �AjfG|~�9F ���Y��ʺ��Bwؒ������M:I岎�G��`s�YV5����6��A �b:�W���G�q%l�����F��H���7�������Fsv7��k�� 403WebShell
403Webshell
Server IP : 104.21.45.146  /  Your IP : 172.71.178.107
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ip-172-31-19-221 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.1.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /snap/core24/1006/lib/python3.12/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /snap/core24/1006/lib/python3.12/__pycache__/mailbox.cpython-312.pyc
�

�(�g?4���dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Zddl
ZddlZddlZddl
mZ	ddlZgd�Zej$j'd�ZGd�d�ZGd�d	e�ZGd
�de�ZGd�d
e�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�dej8j:�ZGd�de�ZGd�de�ZGd�de�Z Gd�de�Z!Gd �d!e�Z"Gd"�d#e�Z#Gd$�d%�Z$Gd&�d'e$�Z%d8d(�Z&d)�Z'd*�Z(d+�Z)d,�Z*d-�Z+Gd.�d/e,�Z-Gd0�d1e-�Z.Gd2�d3e-�Z/Gd4�d5e-�Z0Gd6�d7e-�Z1y#e$rdZY��AwxYw)9zDRead/write support for Maildir, mbox, MH, Babyl, and MMDF mailboxes.�N)�GenericAlias)�Mailbox�Maildir�mbox�MH�Babyl�MMDF�Message�MaildirMessage�mboxMessage�	MHMessage�BabylMessage�MMDFMessage�Error�NoSuchMailboxError�
NotEmptyError�ExternalClashError�FormatError�asciic���eZdZdZd#d�Zd�Zd�Zd�Zd�Zd�Z	d$d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd$d�Zd�Zd$d�Zd�Zd�Zd�Zd�Z d �Z!d!Z"d%d"�Z#e$e%�Z&y)&rz*A group of messages in a particular place.Nc��tjjtjj|��|_||_y)zInitialize a Mailbox instance.N)�os�path�abspath�
expanduser�_path�_factory��selfr�factory�creates    �/usr/lib/python3.12/mailbox.py�__init__zMailbox.__init__%s,���W�W�_�_�R�W�W�%7�%7��%=�>��
���
�c��td��)�$Add message and return assigned key.�&Method must be implemented by subclass��NotImplementedError�r�messages  r"�addzMailbox.add*���!�"J�K�Kr$c��td��)�=Remove the keyed message; raise KeyError if it doesn't exist.r'r(�r�keys  r"�removezMailbox.remove.r-r$c�&�|j|�y�N)r2r0s  r"�__delitem__zMailbox.__delitem__2s�����C�r$c�F�	|j|�y#t$rYywxYw�z'If the keyed message exists, remove it.N)r2�KeyErrorr0s  r"�discardzMailbox.discard5s%��	��K�K�����	��	�s��	 � c��td��)�>Replace the keyed message; raise KeyError if it doesn't exist.r'r(�rr1r+s   r"�__setitem__zMailbox.__setitem__<r-r$c�H�	|j|�S#t$r|cYSwxYw)z9Return the keyed message, or default if it doesn't exist.)�__getitem__r8)rr1�defaults   r"�getzMailbox.get@s,��	��#�#�C�(�(���	��N�	�s��!�!c���|js|j|�Stj|j	|��5}|j|�cddd�S#1swYyxYw)z=Return the keyed message; raise KeyError if it doesn't exist.N)r�get_message�
contextlib�closing�get_file)rr1�files   r"r?zMailbox.__getitem__GsT���}�}��#�#�C�(�(��#�#�D�M�M�#�$6�7�
+�4��}�}�T�*�
+�
+�
+�s�A�A&c��td��)�4Return a Message representation or raise a KeyError.r'r(r0s  r"rCzMailbox.get_messageOr-r$c�f�tj|j|��j�S)z�Return a string representation or raise a KeyError.

        Uses email.message.Message to create a 7bit clean string
        representation of the message.��email�message_from_bytes�	get_bytes�	as_stringr0s  r"�
get_stringzMailbox.get_stringSs'��
�'�'����s�(;�<�F�F�H�Hr$c��td��)z8Return a byte string representation or raise a KeyError.r'r(r0s  r"rNzMailbox.get_bytesZr-r$c��td��)�6Return a file-like representation or raise a KeyError.r'r(r0s  r"rFzMailbox.get_file^r-r$c��td��)�Return an iterator over keys.r'r(�rs r"�iterkeyszMailbox.iterkeysbr-r$c�4�t|j��S)zReturn a list of keys.)�listrWrVs r"�keyszMailbox.keysfs���D�M�M�O�$�$r$c#�hK�|j�D]}	||}|���y#t$rY�wxYw�w)z%Return an iterator over all messages.N�rWr8�rr1�values   r"�
itervalueszMailbox.itervaluesjsC�����=�=�?�	�C�
��S�	���K�	���
��
�s�2�#�2�	/�2�/�2c�"�|j�Sr4)r_rVs r"�__iter__zMailbox.__iter__ss����� � r$c�4�t|j��S)z,Return a list of messages. Memory intensive.)rYr_rVs r"�valueszMailbox.valuesvs���D�O�O�%�&�&r$c#�lK�|j�D]}	||}||f���y#t$rY�wxYw�w)z.Return an iterator over (key, message) tuples.Nr\r]s   r"�	iteritemszMailbox.iteritemszsH�����=�=�?�	�C�
��S�	����,��	���
��
�s�4�%�	4�	1�4�1�4c�4�t|j��S)z9Return a list of (key, message) tuples. Memory intensive.)rYrerVs r"�itemsz
Mailbox.items�s���D�N�N�$�%�%r$c��td��)�9Return True if the keyed message exists, False otherwise.r'r(r0s  r"�__contains__zMailbox.__contains__�r-r$c��td��)�*Return a count of messages in the mailbox.r'r(rVs r"�__len__zMailbox.__len__�r-r$c�P�|j�D]}|j|��y)zDelete all messages.N)rZr9r0s  r"�clearz
Mailbox.clear�s#���9�9�;�	�C��L�L���	r$c�V�	||}|j|�|S#t$r|cYSwxYw)z3Delete the keyed message and return it, or default.)r8r9)rr1r@�results    r"�popzMailbox.pop�s9��	��#�Y�F�	
���S���
���	��N�	�s��(�(c�j�|j�D]}||j|�fcStd��)z6Delete an arbitrary (key, message) pair and return it.zNo messages in mailbox)rWrrr8r0s  r"�popitemzMailbox.popitem�s8���=�=�?�	5�C�����#��'�'�	5��3�4�4r$c���t|d�r|j�}nt|d�r|j�}n|}d}|D]\}}	|||<�
|rtd��y#t$rd}Y�)wxYw)z4Change the messages that correspond to certain keys.rergFTzNo message with key(s)N)�hasattrrergr8)r�arg�source�bad_keyr1r+s      r"�updatezMailbox.update�s����3��$��]�]�_�F�
�S�'�
"��Y�Y�[�F��F���"�	�L�C��
�#��S�	�	�
��3�4�4����
���
�s�A�A+�*A+c��td��)�&Write any pending changes to the disk.r'r(rVs r"�flushz
Mailbox.flush�r-r$c��td��)�Lock the mailbox.r'r(rVs r"�lockzMailbox.lock�r-r$c��td��)�#Unlock the mailbox if it is locked.r'r(rVs r"�unlockzMailbox.unlock�r-r$c��td��)�Flush and close the mailbox.r'r(rVs r"�closez
Mailbox.close�r-r$c�V�	|jd�S#t$rtd��wxYw)Nrz?String input must be ASCII-only; use bytes or a Message instead)�encode�UnicodeError�
ValueErrorr*s  r"�_string_to_byteszMailbox._string_to_bytes�s7��	2��>�>�'�*�*���	2��1�2�
2�	2�s��(Fc��t|tjj�r�t	j
�}tjj||d�}|j|�|jd�|j�}|jdt�}|j|�|jr,|jt�s|jt�y
y
y
t|t t"tj$f�r�t|tj$�r+t'j(dt*d�|j-�}t|t �r|j/|�}|r|jdd�}|jdt�}|j|�|jr,|jt�s|jt�y
y
y
t1|d�r�t1|d�r't'j(d	t*d�|j2}d
}	|j5�}|jd�r	|d
ddz}n|jd
�r|d
ddz}|snE|r|j7d�rd|dd
z}|jdt�}|j|�|}��|jr/|r,|jt�s|jt�y
y
y
y
t9dt;|�z��)z%Dump message contents to target file.r�
�8Use of StringIO input is deprecated, use BytesIO instead�s
From s
>From �read�buffer�DUse of text mode files is deprecated, use a binary mode file insteadN�
����
����From s>From ��Invalid message type: %s)�
isinstancerLr+r
�io�BytesIO�	generator�BytesGenerator�flatten�seekr��replace�linesep�write�_append_newline�endswith�str�bytes�StringIO�warnings�warn�DeprecationWarning�getvaluer�rvr��readline�
startswith�	TypeError�type)	rr+�target�mangle_from_r��gen�data�lastline�lines	         r"�
_dump_messagezMailbox._dump_message�sv���g�u�}�}�4�4�5��Z�Z�\�F��/�/�0�0���q�I�C��K�K�� ��K�K��N��;�;�=�D��<�<��w�/�D��L�L����#�#�D�M�M�'�,B����W�%�-C�#���#�u�b�k�k�!:�
;��'�2�;�;�/��
�
�*�+=�q�B�!�*�*�,���'�3�'��/�/��8���!�/�/�*�k�B���o�o�e�W�5�G��L�L��!��#�#�G�,<�,<�W�,E����W�%�-F�#��W�f�
%��w��)��
�
�5�6H�!�M�!�.�.���H���'�'�)���=�=��)����9�u�,�D��]�]�5�)����9�u�,�D����D�O�O�H�$=�$�t�A�B�x�/�D��|�|�E�7�3�����T�"�����#�#���9J�9J�7�9S����W�%�:T��#��6��g��F�G�Gr$�NTr4�F)'�__name__�
__module__�__qualname__�__doc__r#r,r2r5r9r=rAr?rCrPrNrFrWrZr_rarcrergrjrmrorrrtrzr}r�r�r�r�r�r��classmethodr�__class_getitem__�r$r"rr"s���4� �
L�L���L��+�L�I�L�L�L�%��!�'��&�L�L��
�5�5�"L�L�L�L�2��O�4H�l$�L�1�r$rc��eZdZdZdZdd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdZd�Zd�Zd�Zd�Zy)rzA qmail-style Maildir mailbox.�:Nc��tj||||�tjj	|j
d�tjj	|j
d�tjj	|j
d�d�|_tjj|j
�sm|rVtj|j
d�|jj�D]}tj|d��nt|j
��i|_ddd�|_d|_
d|_y	)
zInitialize a Maildir instance.�tmp�new�cur)r�r�r��r)r�r�g�������?N)rr#rr�joinr�_paths�exists�mkdirrcr�_toc�_toc_mtimes�
_last_read�_skewfactor)r�dirnamer r!rs     r"r#zMaildir.__init__s�������w���8��7�7�<�<��
�
�E�2��7�7�<�<��
�
�E�2��7�7�<�<��
�
�E�2����
�w�w�~�~�d�j�j�)��������U�+� �K�K�.�.�0�*�D��H�H�T�5�)�*�)����4�4���	�#$�Q�/��������r$c���|j�}	|j||�t|�t|t�r?|j�}|j|j�z}||jk(rd}nd}d}tjj|j�j|j�d}tjj!|j"|||z�}t|t�rWt	j$|jtjj'|j�|j)�f�		t	j*|j|�t	j
|j�|S#t$r1|j�t	j
|j��wxYw#t,t.f$r$t	j0|j|�Y|SwxYw#t2$rP}t	j
|j�|j4t4j6k(rt9d|z���d}~wwxYw)r&�r�rz$Name clash with existing message: %sN)�_create_tmpr��
BaseExceptionr�rr2�name�_sync_closer�r�
get_subdir�colon�get_infor�basename�splitr�r�utime�getatime�get_date�link�AttributeError�PermissionError�rename�OSError�errno�EEXISTr)rr+�tmp_file�subdir�suffix�uniq�dest�es        r"r,zMaildir.add$s����#�#�%��	����w��1�
	�H���g�~�.��'�'�)�F��Z�Z�'�"2�"2�"4�4�F�����#����F��F��w�w����
�
�.�4�4�T�Z�Z�@��C���w�w�|�|�D�J�J���v�
�>���g�~�.��H�H�X�]�]��g�g�&�&�x�}�}�5�w�7G�7G�7I�J�
L�

	�
)�����
�
�t�,��	�	�(�-�-�(����G�	��N�N���I�I�h�m�m�$��	��0#�O�4�
/��	�	�(�-�-��.���
/���	��I�I�h�m�m�$��w�w�%�,�,�&�(�)O�+/�*0�1�1���
	�sB�F� G�>H�:G�/H�H�H�H�	I+�AI&�&I+c��tjtjj|j|j|���y�r/N)rr2rr�r�_lookupr0s  r"r2zMaildir.removeNs*��
�	�	�"�'�'�,�,�t�z�z�4�<�<��+<�=�>r$c�R�	|j|�y#ttf$rYywxYwr7)r2r8�FileNotFoundErrorr0s  r"r9zMaildir.discardRs+��	��K�K�����+�,�	��	�s��&�&c���|j|�}|j|�}|j|�}t|t�r|}n|}tj
j
|�}|j|vr,|j|j|j�dz}nd}|j|�tj
j|j|�}	tj
j|j|||z�}
t|t�rCt	j|	tj
j|	�|j�f�t	j|	|
�y)r;r�r�N)r�r,r�rrrr�r�r�r9r�rr�r�r�r�)rr1r+�old_subpath�temp_key�temp_subpath�dominant_subpathr�r��tmp_path�new_paths           r"r=zMaildir.__setitem__Zs���l�l�3�'���8�8�G�$���|�|�H�-���g�~�.�+�� +�������!1�2���:�:�)�)��Z�Z�"2�"8�"8����"D�R�"H�H�F��F����S���7�7�<�<��
�
�L�9���7�7�<�<��
�
�F�C�&�L�A���g�~�.��H�H�X��g�g�&�&�x�0�'�2B�2B�2D�E�
G�
	�	�	�(�H�%r$c��|j|�}ttjj	|j
|�d�5}|jr|j
|�}nt|�}ddd�tjj|�\}}j|�|j|vr-|j|j|j�d�|jtjjtjj	|j
|���|S#1swY��xYw)rI�rbNr�)r��openrrr�rrrr��
set_subdirr��set_info�set_date�getmtime)rr1�subpath�f�msgr�r�s       r"rCzMaildir.get_messageus����,�,�s�#��
�"�'�'�,�,�t�z�z�7�3�T�
:�	(�a��}�}��m�m�A�&��$�Q�'��		(�
�w�w�}�}�W�-�������v���:�:����L�L����D�J�J�/��3�4����R�W�W�%�%�b�g�g�l�l�4�:�:�w�&G�H�I��
�	(�	(�s�*D>�>Ec��ttjj|j|j|��d�5}|j
�jtd�cddd�S#1swYyxYw)�2Return a bytes representation or raise a KeyError.r�r�N)	r�rrr�rr�r�r�r��rr1rs   r"rNzMaildir.get_bytes�sU��
�"�'�'�,�,�t�z�z�4�<�<��+<�=�t�
D�	4���6�6�8�#�#�G�U�3�	4�	4�	4�s�$A2�2A;c��ttjj|j|j|��d�}t
|�S)rSr�)r�rrr�rr��
_ProxyFilers   r"rFzMaildir.get_file�s4��������d�j�j�$�,�,�s�*;�<�d�C���!�}�r$c#�K�|j�|jD]}	|j|�|���y#t$rY�'wxYw�w�rUN)�_refreshr�r�r8r0s  r"rWzMaildir.iterkeys�sM�����
�
���9�9�	�C�
����S�!��I�	���
��
�s%� A
�;�A
�	A�A
�A�A
c�>�|j�||jvS�ri)r	r�r0s  r"rjzMaildir.__contains__�s���
�
���d�i�i��r$c�L�|j�t|j�S�rl)r	�lenr�rVs r"rmzMaildir.__len__�s���
�
���4�9�9�~�r$c��y)�"Write any pending changes to disk.Nr�rVs r"r}z
Maildir.flush�s��	
r$c��y)rNr�rVs r"r�zMaildir.lock����r$c��y)r�Nr�rVs r"r�zMaildir.unlock�rr$c��y�r�Nr�rVs r"r�z
Maildir.close�rr$c�:�g}tj|j�D]v}t|�dkDs�|ddk(s�tjjtjj
|j|��s�c|j|dd��x|S)�Return a list of folder names.�r�.N)r�listdirrrr�isdirr��append�rrq�entrys   r"�list_folderszMaildir.list_folders�st�����Z�Z��
�
�+�	)�E��5�z�A�~�%��(�c�/��w�w�}�}�R�W�W�\�\�$�*�*�e�<�=��
�
�e�A�B�i�(�	)��
r$c��ttjj|jd|z�|j
d��S)z/Return a Maildir instance for the named folder.rF�r r!)rrrr�rr�r�folders  r"�
get_folderzMaildir.get_folder�s2���r�w�w�|�|�D�J�J��f��=�#�}�}�#�%�	%r$c��tjj|jd|z�}t	||j
��}tjj|d�}tjj
|�sItjtj|tjtjzd��|S)z>Create a folder and return a Maildir instance representing it.r�r �
maildirfolder�)rrr�rrrr�r�r��O_CREAT�O_WRONLY)rr#rrq�maildirfolder_paths     r"�
add_folderzMaildir.add_folder�s����w�w�|�|�D�J�J��f��5����t�}�}�5���W�W�\�\�$��@���w�w�~�~�0�1��H�H�R�W�W�/����b�k�k�1I���
��
r$c���tjj|jd|z�}tjtjj|d��tjtjj|d��zD]&}t|�dks	|ddk7s�t
d|z��tj|�D]b}|dk7s�	|dk7s�|dk7s�tjjtjj||��s�St
d|�d	|����tj|d
��D]z\}}}|D]5}tjtjj||���7|D]5}tjtjj||���7�|tj|�y)
�-Delete the named folder, which must be empty.rr�r�rrzFolder contains message(s): %sr�zFolder contains subdirectory 'z': F)�topdownN)rrr�rrrrr�walkr2�rmdir)rr#rr�root�dirs�filess       r"�
remove_folderzMaildir.remove_folder�st���w�w�|�|�D�J�J��f��5���Z�Z������T�5� 9�:��Z�Z������T�5� 9�:�;�	O�E��5�z�A�~��q��S��#�$D�v�$M�N�N�	O��Z�Z��%�	5�E���~�%�5�.�U�e�^��w�w�}�}�R�W�W�\�\�$��6�7�#�%+�U�%4�5�5�	5�
"$����u�!=�	4��D�$���
5���	�	�"�'�'�,�,�t�U�3�4�
5��
4����������d�E�2�3�
4�	4�
	����r$c�|�tj�}tjtjj	|j
d��D]h}tjj	|j
d|�}|tjj
|�z
dkDs�Ttj|��jy)zDelete old files in "tmp".r�i@�N)�timerrrr�rr�r2)r�nowrrs    r"�cleanz
Maildir.clean�sy���i�i�k���Z�Z������T�Z�Z�� ?�@�	 �E��7�7�<�<��
�
�E�5�9�D��R�W�W�%�%�d�+�+�f�4��	�	�$��	 r$rc	�b�tj�}tj�}d|vr|jdd�}d|vr|jdd�}t	|��dt	|dzdz��dtj��d	tj�d
|��	}t
jj|jd|�}	tj|�t!d|z��#t$r9txjdz
c_	t|�cYS#t$rYnwxYwY�OwxYw)
z=Create a file in the tmp subdirectory and open and return it.�/z\057r�z\072z.Mrg��.A�P�Qrr�z&Name clash prevented file creation: %s)r7�socket�gethostnamer��intr�getpidr�_countrr�r�statr��_create_carefully�FileExistsErrorr)rr8�hostnamer�rs     r"r�zMaildir._create_tmp�s���i�i�k���%�%�'���(�?��'�'��W�5�H��(�?��'�'��W�5�H�$'��H�c�#��'�C�-�.@�"�)�)�+�$+�N�N�H�>���w�w�|�|�D�J�J��t�4��	��G�G�D�M�!�!I�!%�"&�'�	'��!�	��N�N�a��N�
�(��.�.��"�
��
���	�s6�	C,�,"D.�
D�D.�	D(�%D.�'D(�(D.�-D.c��tj�|jz
d|jzkDred}|jD]Q}tj
j
|j|�}||j|kDrd}||j|<�S|syi|_|jD]�}|j|}t	j|�D]�}tj
j||�}tj
j|�r�C|j|j�d}tj
j||�|j|<����tj�|_y)z!Update table of contents mapping.�FTNr)r7r�r�r�rrr�r�r�rr�rr�r�)r�refreshr��mtimerr�pr�s        r"r	zMaildir._refreshs8���9�9�;����(�1�t�/?�/?�+?�?��G��*�*�
1�����(�(����V�)<�=���4�+�+�F�3�3�"�G�+0�� � ��(�	
1�
����	��&�&�	>�F��;�;�v�&�D����D�)�
>���G�G�L�L��u�-���7�7�=�=��#���{�{�4�:�:�.�q�1��"$�'�'�,�,�v�u�"=��	�	�$��
>�	>��)�)�+��r$c�b�	tjjtjj|j|j
|��r|j
|S	|j�	|j
|S#t$rY�+wxYw#t$rt
d|z�d�wxYw)z=Use TOC to return subpath for given key, or raise a KeyError.�No message with key: %sN)rrr�r�rr�r8r	r0s  r"r�zMaildir._lookup&s���	��w�w�~�~�b�g�g�l�l�4�:�:�t�y�y��~�F�G��y�y��~�%�H�	
�
�
��	F��9�9�S�>�!��	�	��	��
�	F��4�s�:�;��E�	F�s�A"B�7B�	B�B�B.c��t|d�s|j�|_		|t|j�S#t$rYyt
$rY�/wxYw)z0Return the next message in a one-time iteration.�
_onetime_keysN)rvrWrO�next�
StopIterationr8rVs r"rPzMaildir.next4sU���t�_�-�!%����D���
��D��!3�!3�4�5�5�� �
���
��
�s�<�	A�A�Ar�)r�r�r�r�r�r#r,r2r9r=rCrNrFrWrjrmr}r�r�r�rr$r,r5r9rBr�r	r�rPr�r$r"rrs���(��E��((�T?��&�6
�4�
�
� �
�

�����%���& ��F�'�0"&�HF�
r$rc�t�eZdZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zdd�Zd�Zy)�_singlefileMailboxzA single-file mailbox.Nc��tj||||�	t|jd�}||_
d|_d|_d|_
d|_d|_d|_y#t$r�}|j
t
jk(r.|rt|jd�}nYt|j��|j
t
jt
jfvrt|jd�}n�Yd}~��d}~wwxYw)z!Initialize a single-file mailbox.�rb+zwb+r�NrF)rr#r�rr�r��ENOENTr�EACCES�EROFS�_filer��	_next_key�_pending�
_pending_sync�_locked�_file_length)rrr r!rr�s      r"r#z_singlefileMailbox.__init__Ds�������t�W�f�5�	��T�Z�Z��'�A���
���	������
�"������ ����!�		��w�w�%�,�,�&���T�Z�Z��/�A�,�T�Z�Z�8�8����U�\�\�5�;�;�7�7�����T�*�����		�s�A"�"	D�+BC?�?Dc���|j�|j|�|j|j<|xjdz
c_d|_|jdz
S)r&rT)r��_append_messager�rZr\r*s  r"r,z_singlefileMailbox.add[sO������$(�$8�$8��$A��	�	�$�.�.�!����!���"����~�~��!�!r$c�N�|j|�|j|=d|_y)r/TN)r�r�r[r0s  r"r2z_singlefileMailbox.removees �����S���I�I�c�N���
r$c�p�|j|�|j|�|j|<d|_y)r;TN)r�r`r�r[r<s   r"r=z_singlefileMailbox.__setitem__ks-�����S���-�-�g�6��	�	�#����
r$c#�tK�|j�|jj�Ed{���y7��wr)r�r�rZrVs r"rWz_singlefileMailbox.iterkeysqs#���������9�9�>�>�#�#�#�s�.8�6�8c�>�|j�||jvSr)r�r�r0s  r"rjz_singlefileMailbox.__contains__vs�������d�i�i��r$c�L�|j�t|j�Sr
)r�rr�rVs r"rmz_singlefileMailbox.__len__{s�������4�9�9�~�r$c�V�|jst|j�d|_yy)rTN)r]�
_lock_filerYrVs r"r�z_singlefileMailbox.lock�s!���|�|��t�z�z�"��D�L�r$c�V�|jrt|j�d|_yy�r�FN)r]�_unlock_filerYrVs r"r�z_singlefileMailbox.unlock�s!���<�<�����$� �D�L�r$c	�2�|js)|jrt|j�d|_y|j�J�|jjdd�|jj
�}||jk7rtd|j|fz��t|j�}	i}|j|�t|jj��D]�}|j|\}}|jj|�|j|�|j
�}	|jjt!d||jj
�z
��}|sn|j#|��U||j
�f||<|j%|���|j
�|_t/|�|jj'�t)j0|j�}	t)j2|j,|	j4�	t)j6|j,|	j8|	j:�	t)j@|j,|j�tE|jd�|_||_d|_d|_|jFrtI|jd��yy#|j'�t)j*|j,��xYw#t<t>f$rY��wxYw#tB$rLt)j*|j�t)j@|j,|j�Y��wxYw)	rFNrrHz4Size of mailbox file changed (expected %i, found %i)�rU)�dotlock)%r[r\�_sync_flushrYr�r��tellr^r�_create_temporaryr�_pre_mailbox_hook�sortedrZ�_pre_message_hookr��minr��_post_message_hookr�rr2r�r�rC�chmod�st_mode�chown�st_uid�st_gidr�r�r�rEr�r]rg)
r�cur_len�new_file�new_tocr1�start�stop�	new_startr��infos
          r"r}z_singlefileMailbox.flush�s����}�}��!�!��D�J�J�'�%*��"��
�y�y�$�$�$�	
�
�
����1���*�*�/�/�#���d�'�'�'�$�&?�&*�&7�&7��%A�&B�C�
C�%�T�Z�Z�0��	��G��"�"�8�,��d�i�i�n�n�.�/�
2��"�i�i��n���t��
�
����&��&�&�x�0�$�M�M�O�	��!�Z�Z�_�_�S��15��
�
���8I�1I�.K�L�F�!���N�N�6�*��!*�8�=�=�?�;�����'�'��1�
2�!)�
�
��D��
	�H���
�
�����w�w�t�z�z�"��
���������-�	��H�H�X�]�]�D�K�K����=�	1��I�I�h�m�m�T�Z�Z�0��$�*�*�e�,��
���	���
�"����<�<��t�z�z�5�1���/	��N�N���I�I�h�m�m�$�����(�	��	���	1��I�I�d�j�j�!��I�I�h�m�m�T�Z�Z�0�	1�s2�9DK7�5L,�8*M�72L)�,L>�=L>�AN�Nc��y)�,Called before writing the mailbox to file f.Nr��rrs  r"rqz$_singlefileMailbox._pre_mailbox_hook�rr$c��y)�-Called before writing each message to file f.Nr�r�s  r"rsz$_singlefileMailbox._pre_message_hook�rr$c��y��,Called after writing each message to file f.Nr�r�s  r"ruz%_singlefileMailbox._post_message_hook�rr$c��	|j�	|jr|j�|jj	�y#|jj	�wxYw#	|jr|j�|jj	�w#|jj	�wxYwxYwr)r}r]r�rYr�rVs r"r�z_singlefileMailbox.close�s|��	#��J�J�L�
#��<�<��K�K�M��
�
� � �"���
�
� � �"��	
#��<�<��K�K�M��
�
� � �"���
�
� � �"�s.�A)�A
�
A&�)C�+B"�C�"B>�>Cc��|j�|j�|�	|j|Sy#t$rtd|z�d�wxYw)z'Return (start, stop) or raise KeyError.NrM)r��
_generate_tocr8r0s  r"r�z_singlefileMailbox._lookup�s\���9�9����� ��?�
J��y�y��~�%����
J��8�3�>�?�T�I�
J�s	�0�A	c�D�|jjdd�|jj�}t|j�dk(r'|j
s|j
|j�	|j|j�|j|�}|j|j�|jj�|jj�|_
|S#t$r|jj|��wxYw)z;Append message to mailbox and return (start, stop) offsets.rrH)rYr�rorr�r[rqrs�_install_messagerur��truncater}r^)rr+�before�offsetss    r"r`z"_singlefileMailbox._append_message�s����
�
����1�������"���t�y�y�>�Q��t�}�}�

�"�"�4�:�:�.�	��"�"�4�:�:�.��+�+�G�4�G��#�#�D�J�J�/�	
�
�
���� �J�J�O�O�-�������	��J�J����'��	�s
�7AC9�9&Dr�r4)r�r�r�r�r#r,r2r=rWrjrmr�r�r}rqrsrur�r�r`r�r$r"rSrSAsX�� �!�."���$�
 �
�
 �!�B2�H���	#�J�r$rSc�8�eZdZdZdZd�Zd	d�Zd	d�Zd	d�Zd�Z	y)
�	_mboxMMDFzAn mbox or MMDF mailbox.Tc���|j|�\}}|jj|�|jj�j	t
d�j
d�}|jj||jj�z
�}|j|j	t
d��}|j|�|j|dd�|S)rIr$rr�r�N)r�rYr�r�r�r��decoder�ro�_message_factory�set_unixfrom�set_from)rr1r~r�	from_line�stringrs       r"rCz_mboxMMDF.get_message
s����l�l�3�'���t��
�
������J�J�'�'�)�1�1�'�3�?�F�F�w�O�	��������
�
���(9�!9�:���#�#�F�N�N�7�E�$B�C������#����Y�q�r�]�#��
r$c�l�tj|j||��j|��S)�3Return a string representation or raise a KeyError.)�unixfromrK)rr1�from_s   r"rPz_mboxMMDF.get_strings0���'�'��N�N�3��&�(�(1�	�5�	�(A�	Br$c�0�|j|�\}}|jj|�|s|jj�|jj	||jj�z
�}|j
td�S)r�r�)r�rYr�r�r�ror�r�)rr1r�r~rr�s      r"rNz_mboxMMDF.get_bytessj���l�l�3�'���t��
�
�������J�J���!��������
�
���(9�!9�:���~�~�g�u�-�-r$c��|j|�\}}|jj|�|s|jj�t	|j|jj�|�S)rS)r�rYr�r��_PartialFilero)rr1r�r~rs     r"rFz_mboxMMDF.get_file&sU���l�l�3�'���t��
�
�������J�J���!��D�J�J��
�
���(9�4�@�@r$c�J�d}t|t�r|j|�}t|t�r:|j	d�r)|jd�}|dk7r|d|}||dzd}n�|}d}n|t|t�r%|j�jd�}d|z}nGt|tjj�r#|j�}|�|jd�}|�8dtjtj��j�z}|j j#�}|j j%|t&z�|j)||j |j*�|j j#�}||fS)	z1Format a message and blindly write to self._file.Nr�r�r�rr$rsFrom MAILER-DAEMON )r�r�r�r�r��find�_mboxMMDFMessage�get_fromr�rLr+r
�get_unixfromr7�asctime�gmtimerYror�r�r��
_mangle_from_)rr+r��newline�authorr~rs       r"r�z_mboxMMDF._install_message.s^���	��g�s�#��+�+�G�4�G��g�u�%�'�*<�*<�X�*F��l�l�5�)�G��"�}�#�H�W�-�	�!�'�A�+�,�/��#�	���
��!1�
2��%�%�'�.�.�w�7�F� �6�)�I�
�����!6�!6�
7��,�,�.�I��$�%�,�,�W�5�	���.����d�k�k�m�1L�1S�1S�1U�U�I��
�
���!���
�
����W�,�-����7�D�J�J��0B�0B�C��z�z��� ���t�}�r$Nr�)
r�r�r�r�r�rCrPrNrFr�r�r$r"r�r�s%��"��M�	�B�
.�A�r$r�c�,�eZdZdZdZdZdd�Zd�Zd�Zy)rzA classic mbox mailbox.TNc�J�t|_tj||||�y)zInitialize an mbox mailbox.N)rr�r�r#rs    r"r#z
mbox.__init__T��� +������4��w��7r$c�.�|jt�yr��r�r�r�s  r"ruzmbox._post_message_hookYs��	����r$c���gg}}d}|jjd�	|jj�}|jj�}|j	d�r`t|�t|�kr5|r"|j
|tt�z
�n|j
|�|j
|�d}nF|s6|r"|j
|tt�z
�n|j
|�n|tk(rd}nd}��ttt||���|_t|j�|_|jj�|_
y)�0Generate key-to-(start, stop) table of contents.FrTr�N)rYr�ror�r�rrr��dict�	enumerate�zipr�rZr^)r�starts�stops�last_was_empty�line_posr�s      r"r�zmbox._generate_toc]s���B������
�
�������z�z���(�H��:�:�&�&�(�D����x�(��u�:��F��+�%����X��G��%<�=�
���X�.��
�
�h�'�!&���!��L�L��C��L�!8�9��L�L��*�����!%��!&��/�0��3�v�u�#5�6�7��	��T�Y�Y���� �J�J�O�O�-��r$r�)	r�r�r�r�r�r�r#rur�r�r$r"rrKs ��!��M��O�8�
�.r$rc�*�eZdZdZdd�Zd�Zd�Zd�Zy)r	zAn MMDF mailbox.Nc�J�t|_tj||||�y)zInitialize an MMDF mailbox.N)rr�r�r#rs    r"r#z
MMDF.__init__�r�r$c�4�|jdtz�y)r��Nr�r�s  r"rszMMDF._pre_message_hook�s��	���#�g�-�.r$c�B�|jtdztz�y)r�r�Nr�r�s  r"ruzMMDF._post_message_hook�s��	����-�-��7�8r$c���gg}}|jjd�d}	|}|jj�}|jj�}|j	dt
z�r�|j
|�	|}|jj�}|jj�}|dt
zk(r"|j
|tt
�z
�n|s|j
|�n�y|sn��ttt||���|_t|j�|_|jjdd�|jj�|_
y)r�rr�rHN)rYr�r�ror�r�rrr�r�r�r�rZr^)rr�r��next_posr�r�s      r"r�zMMDF._generate_toc�s*���B����
�
���������H��:�:�&�&�(�D��z�z���(�H����2�W�<�=��
�
�h�'��'�H��:�:�.�.�0�D�#�z�z���0�H��2�W�<�<����X��G��%<�=��!����X�.�����#�$��3�v�u�#5�6�7��	��T�Y�Y�����
�
����1�� �J�J�O�O�-��r$r�)r�r�r�r�r#rsrur�r�r$r"r	r	s���8�
/�9�.r$r	c��eZdZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)rzAn MH mailbox.Nc��tj||||�tjj	|j
�s�|r�tj|j
d�tjtjtjj|j
d�tjtjztjzd��d|_yt|j
��d|_y)zInitialize an MH instance.r��
.mh_sequencesi�FN)rr#rrr�rr�r�r�r�r)�O_EXCLr*rr]rs    r"r#zMH.__init__�s�������t�W�f�5��w�w�~�~�d�j�j�)��������U�+������������d�j�j�/�!J�!#���b�i�i�!7�"�+�+�!E�u�N�O����)����4�4���r$c��|j�}t|�dk(rd}nt|�dz}tjj|jt|��}t|�}d}	|jrt|�		|j||�t!|t"�r|j%||�|jrt|�	|st|�|S#t$r;|jrt|�t|�d}tj|��wxYw#|jrt|�wwxYw#|st|�wwxYw)r&rrFT)rZr�maxrrr�rr�rDr]rgr�r�rjr�r2r�r
�_dump_sequences)rr+rZ�new_keyr�r�closeds       r"r,zMH.add�s���y�y�{���t�9��>��G��$�i�!�m�G��7�7�<�<��
�
�C��L�9���h�'����	��|�|��1�
�
$�	��&�&�w��2��g�y�1��(�(��'�:��<�<� ��O���A�����!%���|�|�$�Q����N�!�F��I�I�h�'�����<�<� ��O� ����A���s7�1E	�
C%�"D,�>E	�%AD)�)D,�,E�E	�	Ec�H�tjj|jt	|��}	t|d�}|j
�tj|�y#t$r1}|jtjk(rtd|z���d}~wwxYw)r/rUrMN)rrr�rr�r�r�r2r�r�rVr8)rr1rrr�s     r"r2z	MH.remove�s{���w�w�|�|�D�J�J��C��1��		��T�5�!�A�
�G�G�I��I�I�d�O���	��w�w�%�,�,�&��8�3�>�?�?���		�s�A'�'	B!�0,B�B!c���tjj|jt	|��}	t|d�}	|jrt|�	tjtj
|tjtjz��|j||�t!|t"�r|j%||�|jrt'|�	t)|�y#t$r1}|jtjk(rtd|z���d}~wwxYw#|jrt'|�wwxYw#t)|�wxYw)r;rUrMN)rrr�rr�r�r�r�rVr8r]rgr�r*�O_TRUNCr�r�r
r�rjr�)rr1r+rrr�s      r"r=zMH.__setitem__�s���w�w�|�|�D�J�J��C��1��	��T�5�!�A�	��|�|��1�
�
$��������r�{�{�R�Z�Z�'?�@�A��"�"�7�A�.��g�y�1��(�(��#�6��<�<� ��O���N��#�	��w�w�%�,�,�&��8�3�>�?�?���		���<�<� ��O� ��
��N�s<�C:�E�A<D7�E�:	D4�,D/�/D4�7E�E�
E!c���	|jr>ttjj	|j
t
|��d�}n=ttjj	|j
t
|��d�}|5|jrt|�	t|�}|jrt|�	ddd�|j�j�D]\}}||vs�j!|��S#t$r1}|jtjk(rtd|z���d}~wwxYw#|jrt|�wwxYw#1swY��xYw)rIrUr�rMN)r]r�rrr�rr�r�r�rVr8rgr
rj�
get_sequencesrg�add_sequence)rr1rr�rr��key_lists       r"rCzMH.get_messages'��		��|�|�������d�j�j�#�c�(�;�U�C��������d�j�j�#�c�(�;�T�B���	$��|�|��1�
�
$���l���<�<� ��O�	$�#�0�0�2�8�8�:�	'�N�D�(��h��� � ��&�	'��
��!�	��w�w�%�,�,�&��8�3�>�?�?���		���<�<� ��O� ��
	$�	$�s<�BD
�E'�$E
�/E'�
	E�,E�E�
E$�$E'�'E0c��	|jr>ttjj	|j
t
|��d�}n=ttjj	|j
t
|��d�}|5|jrt|�	|j�jtd�|jrt|�cddd�S#t$r1}|jtjk(rtd|z���d}~wwxYw#|jrt|�wwxYw#1swYyxYw)rrUr�rMNr�)r]r�rrr�rr�r�r�rVr8rgr�r�r�rj�rr1rr�s    r"rNzMH.get_bytess���		��|�|�������d�j�j�#�c�(�;�U�C��������d�j�j�#�c�(�;�T�B���	$��|�|��1�
�
$��v�v�x�'�'���7��<�<� ��O�	$�	$���	��w�w�%�,�,�&��8�3�>�?�?���		���<�<� ��O� ��
	$�	$�s<�BC(�E�$#D%�E�(	D"�1,D�D"�%D?�?E�Ec��	ttjj|jt|��d�}t|�S#t$r1}|jtjk(rtd|z���d}~wwxYw)rSr�rMN)r�rrr�rr�r�r�rVr8rr�s    r"rFzMH.get_file1sl��	��R�W�W�\�\�$�*�*�c�#�h�7��>�A��!�}����	��w�w�%�,�,�&��8�3�>�?�?���		�s�=A
�
	B�,A?�?Bc�r�ttd�tj|j�D���S)rUc3�RK�|]}|j�r
t|����!y�wr4)�isdigitr@)�.0rs  r"�	<genexpr>zMH.iterkeys.<locals>.<genexpr>>s$����:�%�).�����u�:�:�s�%')�iterrrrrrrVs r"rWzMH.iterkeys<s/���F�:�2�:�:�d�j�j�3I�:�:�;�	;r$c��tjjtjj|jt|���Sr)rrr�r�rr�r0s  r"rjzMH.__contains__As,���w�w�~�~�b�g�g�l�l�4�:�:�s�3�x�@�A�Ar$c�F�tt|j���Sr
)rrYrWrVs r"rmz
MH.__len__Es���4��
�
��(�)�)r$c���|jsVttjj	|j
d�d�|_t|j�d|_yy)rr�rUTN)r]r�rrr�rrYrgrVs r"r�zMH.lockIsB���|�|��b�g�g�l�l�4�:�:��G��O�D�J��t�z�z�"��D�L�r$c��|jr4t|j�t|j�|`d|_yyri)r]rjrYr�rVs r"r�z	MH.unlockPs2���<�<�����$���
�
�#��
� �D�L�	r$c��y)r|Nr�rVs r"r}zMH.flushXrr$c�>�|jr|j�yyr)r]r�rVs r"r�zMH.close\s���<�<��K�K�M�r$c��g}tj|j�D][}tjj	tjj|j|��s�K|j
|��]|S)r)rrrrrr�rrs   r"rzMH.list_foldersasY�����Z�Z��
�
�+�	%�E��w�w�}�}�R�W�W�\�\�$�*�*�e�<�=��
�
�e�$�	%��
r$c��ttjj|j|�|j
d��S)z+Return an MH instance for the named folder.Fr!�rrrr�rrr"s  r"r$z
MH.get_folderis-���"�'�'�,�,�t�z�z�6�2��-�-��7�	7r$c��ttjj|j|�|j
��S)z:Create a folder and return an MH instance representing it.r&r�r"s  r"r,z
MH.add_folderns+���"�'�'�,�,�t�z�z�6�2��-�-�)�	)r$c�\�tjj|j|�}tj|�}|dgk(r4tj
tjj|d��n|gk(rnt
d|jz��tj|�y)r.r�zFolder not empty: %sN)rrr�rrr2rr1)rr#r�entriess    r"r5zMH.remove_folderssx���w�w�|�|�D�J�J��/���*�*�T�"����'�'��I�I�b�g�g�l�l�4��9�:�
��]��� 6���� C�D�D�
����r$c
���i}ttjj|jd�dd��5}t|j
��}|D]�}	|jd�\}}t�}|j�D]f}|j�r|jt|���.d�|jd�D�\}	}
|jt|	|
dz���ht|�D�cgc]}||vr|��
c}||<t||�d	k(r||=��	ddd�|Scc}w#t$rt!d
|j#�z��wxYw#1swY|SxYw)z=Return a name-to-key-list dictionary to define each sequence.r��r�ASCII��encodingr�c3�2K�|]}t|����y�wr4)r@)r��xs  r"r�z#MH.get_sequences.<locals>.<genexpr>�s����*K�a�3�q�6�*K�s��-rrz"Invalid sequence specification: %sN)r�rrr�r�setrZr�r�r,r@rz�rangerrrr�r�rstrip)r�resultsr�all_keysr�r��contentsrZ�specr~rr1s            r"r�zMH.get_sequencessV����
�"�'�'�,�,�t�z�z�?�;�S�7�
S�	5�WX��4�9�9�;�'�H��
5��5�%)�Z�Z��_�N�D�(��5�D� (��� 0�@���<�<�>� �H�H�S��Y�/�*K�4�:�:�c�?�*K�K�E�4� �K�K��e�T�A�X�(>�?�@�5;�4�L�%=�S�,/�8�O�&)�%=�G�D�M��7�4�=�)�Q�.�#�D�M��
5�	5�&���%=��"�5�%�&J�&*�k�k�m�'4�5�5�5��!	5�&��s6�E�B$D6�=
D1�
D6�$E�1D6�6&E�E�E)c��ttjj|jd�dd��}	tj
tj|jtjtjz��|j�D]�\}}t|�dk(r�|j|dz�d}d}tt|��D]Q}|d	z
|k(r|sCd
}|jd�n/|rd}|j|�d|���n|jd
|z�|}�S|r|jt|�dz���|jd���	t|�y#t|�wxYw)z:Set sequences using the given name-to-key-list dictionary.r�zr+r�r�rr�NFrTr�� z %s�
)r�rrr�rr�r�r*r�rgrr�rrr�r�r�)r�	sequencesrr�rZ�prev�
completingr1s        r"�
set_sequenceszMH.set_sequences�s,��������d�j�j�/�:�D�7�S��	��H�H�R�W�W�Q�V�V�R�[�[�2�:�:�%=�>�?�'�o�o�/�
"�
��d��t�9��>������s�
�#���"�
�!�#�d�)�,�
�C��Q�w�$��)�)-�J��G�G�C�L�#�%*�
����4�� 5�6�������,��D�
���G�G�C��I��,�-��G�G�D�M�)
"�,
��N��K��N�s�D*E/�/
E<c�
�|j�}d}g}|j�D]�}|dz
|k7r�|j||dzf�	tjtj
j
|jt|��tj
j
|jt|dz���tjtj
j
|jt|���|dz
}��|dz|_
t|�dk(ry|j�D](\}}|D]\}}||vs�|||j!|�<� �*|j#|�y#ttf$r~tjtj
j
|jt|��tj
j
|jt|dz���Y��wxYw)z?Re-name messages to eliminate numbering gaps. Invalidates keys.rrN)r�rWrrr�rr�rr��unlinkr�r�r�rZrrg�indexr�)	rr�r��changesr1r�r��oldr�s	         r"�packzMH.pack�s����&�&�(�	������=�=�?�	�C��Q�w�$������T�A�X��/�B��G�G�B�G�G�L�L����S��X�>��G�G�L�L����S����]�C�E��I�I�b�g�g�l�l�4�:�:�s�3�x�@�A��A�I�D�	�������w�<�1���'�o�o�/�	8�N�D�(�#�
8���S��(�?�47�H�X�^�^�C�0�1�
8�	8�	
���9�%��'��8�G��I�I�b�g�g�l�l�4�:�:�s�3�x�@� �g�g�l�l�4�:�:�s�4�!�8�}�E�G�G�s�A;E5�5B
H�Hc��|j�}|j�}|j�D]2\}}||vr|j|��||vs�!||j|�=�4|D]
}||vs�|g||<�|j	|�y)z;Inspect a new MHMessage and update sequences appropriately.N)r�rgrr�r�)rr+r1�pending_sequences�
all_sequencesr�r��sequences        r"r�zMH._dump_sequences�s���#�1�1�3���*�*�,�
�+�1�1�3�	2�N�D�(��(�(�����$�����X�^�^�C�0�1�		2�
*�	0�H��}�,�+.�%�
�h�'�	0�	
���=�)r$r�)r�r�r�r�r#r,r2r=rCrNrFrWrjrmr�r�r}r�rr$r,r5r�r�rr�r�r$r"rr�su���
� �D��0�2$�*	�;�
B�*� �!���
�7�
)�

��0�:&�4*r$rc�t�eZdZdZehd��Zdd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zy)rzAn Rmail-style Babyl mailbox.>�filed�edited�resent�unseen�deleted�answered�	forwardedNc�B�tj||||�i|_y)zInitialize a Babyl mailbox.N)rSr#�_labelsrs    r"r#zBabyl.__init__�s���#�#�D�$���@���r$c��tj||�}t|t�r|j	�|j
|<|S)r&)rSr,r�r�
get_labelsr)rr+r1s   r"r,z	Babyl.add�s:�� �$�$�T�7�3���g�|�,� '� 2� 2� 4�D�L�L����
r$c�h�tj||�||jvr|j|=yyr�)rSr2rr0s  r"r2zBabyl.remove�s/���!�!�$��,��$�,�,�����S�!�r$c��tj|||�t|t�r|j	�|j
|<yy)r;N)rSr=r�rrrr<s   r"r=zBabyl.__setitem__�s:���&�&�t�S�'�:��g�|�,� '� 2� 2� 4�D�L�L���-r$c��|j|�\}}|jj|�|jj�t	j
�}	|jj�}|dtzk(s|sn&|j|jtd���Ot	j
�}	|jj�}|tk(s|sn&|j|jtd���L||jj�z
}|dk\sJ�|jj|�}|jtd�}t|j�|z�}	|	j|j��||jvr|	j|j|�|	S)rI�*** EOOH ***r�r)r�rYr�r�r�r�r�r�r�ror�rr��set_visibler�
set_labels)
rr1r~r�original_headersr��visible_headers�n�bodyrs
          r"rCzBabyl.get_message�si���l�l�3�'���t��
�
������
�
�����:�:�<����:�:�&�&�(�D����0�0����"�"�4�<�<���#?�@�	�
�*�*�,����:�:�&�&�(�D��w��d���!�!�$�,�,�w��">�?�	�
�4�:�:�?�?�$�$���A�v�
�v��z�z���q�!���|�|�G�U�+���+�4�4�6��=�>������0�0�2�3��$�,�,���N�N�4�<�<��,�-��
r$c��|j|�\}}|jj|�|jj�t	j
�}	|jj�}|dtzk(s|sn&|j|jtd���O	|jj�}|tk(s|sn�'|j�}||jj�z
}|dk\sJ�|jj|�}|jtd�}||zS)r�rr�r)r�rYr�r�r�r�r�r�r�r�ror�)	rr1r~rrr��headersrr�s	         r"rNzBabyl.get_bytess	���l�l�3�'���t��
�
������
�
�����:�:�<����:�:�&�&�(�D����0�0����"�"�4�<�<���#?�@�	�
��:�:�&�&�(�D��w��d���#�+�+�-���4�:�:�?�?�$�$���A�v�
�v��z�z���q�!���|�|�G�U�+����~�r$c�r�tj|j|�jdt��S)rSr�)r�r�rNr�r�r0s  r"rFzBabyl.get_file-s'���z�z�$�.�.��-�5�5�e�W�E�F�Fr$c���|j�t�}|jj�D]}|j	|��|j|j�t|�S)z4Return a list of user-defined labels in the mailbox.)r�r�rrcrz�difference_update�_special_labelsrY)r�labels�
label_lists   r"rzBabyl.get_labels1sX����������,�,�-�-�/�	&�J��M�M�*�%�	&�� � ��!5�!5�6��F�|�r$c�@�gg}}|jjd�d}g}	|}|jj�}|jj�}|dtzk(r�t|�t|�kr!|j
|tt�z
�|j
|�|jj�ddjd�D�cgc]"}|j�r|j���$}}|j
|�nn|dk(s|dtzk(r9t|�t|�krF|j
|tt�z
�n$|s"|j
|tt�z
�n��dttt||���|_tt|��|_
t|j�|_|jjdd�|jj�|_ycc}w)r�rsrN�,�rH)rYr�r�ror�rrr��stripr�r�r�r�rrZr^)	rr�r�r��label_listsr�r��labelr"s	         r"r�zBabyl._generate_toc:s����B����
�
�����������H��:�:�&�&�(�D��z�z���(�H��{�W�,�,��u�:��F��+��L�L��C��L�!8�9��
�
�h�'�+/�:�:�+>�+>�+@���+D�+J�+J�4�+P�:�E�+0�;�;�=� �+�+�-�:��:��"�"�6�*����D�G�g�,=�$=��u�:��F��+��L�L��C��L�!8�9�����X��G��4�5��#�$��3�v�u�#5�6�7��	��I�k�2�3����T�Y�Y�����
�
����1�� �J�J�O�O�-����:s�'Hc���dtz}|dtzz
}|j�}d�|D�}|ddj|�ztzz
}|dz
}|j|�y)r�sBABYL OPTIONS:s
Version: 5c3�<K�|]}|j����y�wr4)r�)r�r)s  r"r�z*Babyl._pre_mailbox_hook.<locals>.<genexpr>]s����5�U�%�,�,�.�5�s�sLabels:r%r&N)r�rr�r�)rr�babylr"s    r"rqzBabyl._pre_mailbox_hookXsc��!�G�+��
���(�(�����"��5�f�5��
��d�i�i��/�/�'�9�9��
����	����r$c�4�|jdtz�y)r��Nr�r�s  r"rszBabyl._pre_message_hookbs��	����'�!�"r$c�4�|jtdz�y)r�r&Nr�r�s  r"ruzBabyl._post_message_hookfs��	����'�!�"r$c��|jj�}t|t��r	g}g}|j	�D]3}||j
vr|j
|��#|j
|��5|jjd�|D].}|jjd|j�z��0|jjd�|D]1}|jjd|j�zdz��3|jjt�n"|jjdtz�t|tjj��rtj�}tjj!|dd�}|j#|�|j%d�	|j'�}|jj|j)d
t��|d
k(s|sn�H|jjdtz�t|t�r�tj�}	tjj!|	dd�}
|
j#|j+��	|	j'�}|jj|j)d
t��|d
k(s|sn[�H|j%d�	|j'�}|jj|j)d
t��|d
k(s|sn�H	|j-d�}|s�n�|jj|j)d
t���Et|t.t0tj2f��r�t|tj2�r+t5j6d
t8d�|j;�}t|t0�r|j=|�}|j?d�dz}|dz
dk7r�|jj|d|j)d
t��|jjdtz�|jj|d|j)d
t��|jj||dj)d
t���n|jjdtztz�|jj|j)d
t���n�tA|d��r�tA|d�r't5j6dt8d�|jB}|j�}
d	}	|j'�}|jEd�r	|ddd
z}n|jEd�r|ddd
z}|jj|j)d
t��|d
k(s|s9|r6d}|jjdtz�|j%|
�nn��	|j'�}|sn�|jEd�r
|ddtz}n;|jEd�r
|ddtz}n|jEd
�r|ddtz}|jj|���tGdtI|�z��|jj�}||fS)z0Write message contents and return (start, stop).�1s, s,,� r%s1,,FrTr�rrlr�r�s

rHr�Nr�r�r�r�r�r�r�)%rYror�rrr!rr�r�r�rLr+r
r�r�r�r�r�r�r�r��get_visibler�r�r�r�r�r�r�r�r�r�rvr�r�r�r�)rr+r~�special_labelsr"r)�orig_buffer�orig_generatorr��
vis_buffer�
vis_generatorr��
body_start�original_pos�
first_passrs                r"r�zBabyl._install_messagejs����
�
���!���g�|�,��N��F� �+�+�-�
)���D�0�0�0�"�)�)�%�0��M�M�%�(�	
)�

�J�J���T�"�'�
9���
�
� � ������!7�8�
9��J�J���U�#��
?���
�
� � ������!6��!=�>�
?��J�J���W�%��J�J���V�g�-�.��g�u�}�}�4�4�5��*�*�,�K�"�_�_�;�;�K��PQ�R�N��"�"�7�+����Q���"�+�+�-���
�
� � ����e�W�!=�>��5�=���	�

�J�J���_�w�6�7��'�<�0��Z�Z�\�
� %��� >� >�z�5�RS� T�
��%�%�g�&9�&9�&;�<��%�.�.�0�D��J�J�$�$�T�\�\�%��%A�B��u�}�D��	�� � ��#��&�/�/�1�D��J�J�$�$�T�\�\�%��%A�B��u�}�D��	�
�$�)�)�$�/�����
�
� � �����w�!?�@�	�
��%��b�k�k�!:�
;��'�2�;�;�/��
�
�*�+=�q�B�!�*�*�,���'�3�'��/�/��8�� ���g�.��2�J��A�~��#��
�
� � ���*�!5�!=�!=�e�W�!M�N��
�
� � ��7�!:�;��
�
� � ���*�!5�!=�!=�e�W�!M�N��
�
� � ����!5�!=�!=�e�W�!M�N��
�
� � ��7�!:�W�!D�E��
�
� � ������!@�A�
�W�j�
)��w��)��
�
�5�6H�!�M�!�.�.��"�<�<�>�L��J���'�'�)���=�=��)����9�u�,�D��]�]�5�)����9�u�,�D��
�
� � ����e�W�!=�>��5�=��!�%*�
��
�
�(�(��7�)B�C����\�2�����'�'�)�����=�=��)����9�w�.�D��]�]�5�)����9�w�.�D��]�]�5�)����9�w�.�D��
�
� � ��&���6��g��F�G�G��z�z��� ���t�}�r$r�)r�r�r�r��	frozensetr!r#r,r2r=rCrNrFrr�rqrsrur�r�r$r"rr�sY��'��!B�C�O��
�"�5��8�,G��.�<�#�#�ir$rc�$�eZdZdZdd�Zd�Zd�Zy)r
z0Message with mailbox-format-specific properties.Nc��t|tjj�rG|j	tj|��t|t�r|j|�yyt|t�r%|j	tj|��yt|t�r%|j	tj|��yt|tj�r%|j	tj|��yt|d�r%|j	tj |��y|�*tjjj#|�yt%dt'|�z��)zInitialize a Message instance.r�Nr�)r�rLr+r
�_become_message�copy�deepcopy�_explain_tor�rMr��message_from_stringr��
TextIOWrapper�message_from_filerv�message_from_binary_filer#r�r�r*s  r"r#zMessage.__init__�s���g�u�}�}�4�4�5�� � ����w�!7�8��'�7�+��#�#�D�)�,�
���
'�� � ��!9�!9�'�!B�C�
���
%�� � ��!:�!:�7�!C�D�
���!1�!1�
2�� � ��!8�!8��!A�B�
�W�f�
%�� � ��!?�!?��!H�I�
�_��M�M�!�!�*�*�4�0��6��g��F�G�Gr$c��t|dg�}|jD]#}||vs�|j||j|<�%y)z0Assume the non-format-specific state of message.�_type_specific_attributesN)�getattr�__dict__)rr+�
type_specificr�s    r"r?zMessage._become_message�sG����)D�b�I�
��$�$�	=�D��=�(�&-�&6�&6�t�&<��
�
�d�#�	=r$c�:�t|t�rytd��)z:Copy format-specific state to message insofar as possible.Nz Cannot convert to specified type)r�r
r�r*s  r"rBzMessage._explain_to�s���g�w�'���>�?�?r$r4)r�r�r�r�r#r?rBr�r$r"r
r
�s��:�H�&=�@r$r
c�b�eZdZdZgd�Zdd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zy)rz)Message with Maildir-specific properties.)�_subdir�_info�_dateNc�~�d|_d|_tj�|_tj||�y)z%Initialize a MaildirMessage instance.r�r�N)rNrOr7rPr
r#r*s  r"r#zMaildirMessage.__init__s-�������
��Y�Y�[��
�����w�'r$c��|jS)zReturn 'new' or 'cur'.)rNrVs r"r�zMaildirMessage.get_subdirs���|�|�r$c�B�|dk(s|dk(r||_ytd|z��)zSet subdir to 'new' or 'cur'.r�r�z!subdir must be 'new' or 'cur': %sN)rNr�)rr�s  r"r�zMaildirMessage.set_subdirs'���U�?�f��o�!�D�L��@�6�I�J�Jr$c�X�|jjd�r|jddSy)�*Return as a string the flags that are set.�2,rHNr�)rOr�rVs r"�	get_flagszMaildirMessage.get_flagss'���:�:� � ��&��:�:�a�b�>�!�r$c�H�ddjt|��z|_y)�)Set the given flags and unset all others.rVr�N)r�rrrO)r�flagss  r"�	set_flagszMaildirMessage.set_flagss���B�G�G�F�5�M�2�2��
r$c��|jdjt|j��t|�z��y�z.Set the given flag(s) without changing others.r�N�r[r�r�rW�r�flags  r"�add_flagzMaildirMessage.add_flag�,�����r�w�w�s�4�>�>�#3�4�s�4�y�@�A�Br$c��|j�rD|jdjt|j��t|�z
��yy)�7Unset the given string flag(s) without changing others.r�N)rWr[r�r�r_s  r"�remove_flagzMaildirMessage.remove_flag!s;���>�>���N�N�2�7�7�3�t�~�~�'7�#8�3�t�9�#D�E�F�r$c��|jS)z<Return delivery date of message, in seconds since the epoch.)rPrVs r"r�zMaildirMessage.get_date&����z�z�r$c�^�	t|�|_y#t$rtd|z�d�wxYw)z9Set delivery date of message, in seconds since the epoch.zcan't convert to float: %sN)�floatrPr�r�)r�dates  r"r�zMaildirMessage.set_date*s7��	K��t��D�J���	K��8�4�?�@�d�J�	K�s��,c��|jS)z%Get the message's "info" as a string.)rOrVs r"r�zMaildirMessage.get_info1rgr$c�`�t|t�r||_ytdt	|�z��)z Set the message's "info" string.zinfo must be a string: %sN)r�r�rOr�r�)rr�s  r"r�zMaildirMessage.set_info5s(���d�C� ��D�J��7�$�t�*�D�E�Er$c��t|t�r^|j|j��|j	|j��|j
|j��yt|t�r�t|j��}d|vr|jd�|j�dk(r|jd�d|vr|jd�d|vr|jd�d|vr|jd�|jd	tj|j���yt|t�rZt|j��}d|vr|jd
�d|vr|jd�d|vr|jd�yyt|t �rot|j��}d|vr|j#d
�d|vr|j#d
�d|vr|j#d�d|vr|j#d�yyt|t$�ryt'dt)|�z��)z;Copy Maildir-specific state to message insofar as possible.�S�Rr��O�T�D�F�A�
MAILER-DAEMONr
�replied�flaggedrrr<r
�$Cannot convert to specified type: %sN)r�rr[rWr�r�r�r�r�r�rar�r7r�r
r�r�	add_labelr
r�r�)rr+rZs   r"rBzMaildirMessage._explain_to<s����g�~�.����d�n�n�.�/����t���0�1����T�]�]�_�-�
��!1�
2�����(�)�E��e�|�� � ��%���� �E�)�� � ��%��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%����_�d�k�k�$�-�-�/�.J�K�
���
+�����(�)�E��%���$�$�X�.��e�|��$�$�Y�/��e�|��$�$�Y�/��
���
.�����(�)�E��%���!�!�(�+��e�|��!�!�)�,��e�|��!�!�*�-��e�|��!�!�+�.��
���
)���B� ��M�*�+�
+r$r4)r�r�r�r�rHr#r�r�rWr[rarer�r�r�r�rBr�r$r"rr�sL��3� =��(��K��3�C�G�
�K��F�)+r$rc�J�eZdZdZdgZdd�Zd�Zdd�Zd�Zd�Z	d	�Z
d
�Zd�Zy)
r�z/Message with mbox- or MMDF-specific properties.�_fromNc�
�|jdd�t|tjj�r7|j�}|�%|j
d�r|j|dd�tj||�y)z'Initialize an mboxMMDFMessage instance.ruTNzFrom r�)r�r�rLr+r
r�r�r#)rr+r�s   r"r#z_mboxMMDFMessage.__init__msg���
�
�o�t�,��g�u�}�}�4�4�5��+�+�-�H��#��(;�(;�G�(D��
�
�h�q�r�l�+�����w�'r$c��|jS)z Return contents of "From " line.)r{rVs r"r�z_mboxMMDFMessage.get_fromvrgr$c�|�|�3|durtj�}|dtj|�zz
}||_y)z>Set "From " line, formatting and appending time_ if specified.NTr�)r7r�r�r{)rr��time_s   r"r�z_mboxMMDFMessage.set_fromzs9������}����
���S�4�<�<��.�.�.�E���
r$c�L�|jdd�|jdd�zS)rU�Statusr��X-Status)rArVs r"rWz_mboxMMDFMessage.get_flags�s#���x�x��"�%�����R�(@�@�@r$c��t|�}d\}}dD]}||vs�||z
}|j|��dD]}||vs�||z
}|j|��|djt|��z
}	|j	d|�	|j	d|�y#t
$r|j
d|�Y�1wxYw#t
$r|j
d|�YywxYw)rY)r�r�)rorp)rrrsrtr�r�r�N)r�r2r�rr�replace_headerr8�
add_header)rrZ�status_flags�
xstatus_flagsr`s     r"r[z_mboxMMDFMessage.set_flags�s����E�
��&,�#��m��	#�D��u�}���$�����T�"�	#�$�	#�D��u�}���%�
����T�"�	#�	�������/�/�
�	4�����,�7�	7����
�M�:���	4��O�O�H�l�3�	4���	7��O�O�J�
�6�	7�s$�3B�B:�B7�6B7�:C�Cc��|jdjt|j��t|�z��yr]r^r_s  r"raz_mboxMMDFMessage.add_flag�rbr$c��d|vsd|vrD|jdjt|j��t|�z
��yy)rdr�r�r�Nr^r_s  r"rez_mboxMMDFMessage.remove_flag�s@���t��z�T�1��N�N�2�7�7�3�t�~�~�'7�#8�3�t�9�#D�E�F� 2r$c���t|t�r�t|j��}d|vr|j	d�d|vr|jd�d|vr|jd�d|vr|jd�d|vr|jd�|d	=|d
=dj
|j�j�dd
�}	|jtjtj|d���y
t|t �r?|j#|j��|j%|j��y
t|t&�r_t|j��}d|vr|j)d�d|vr|j)d�d|vr|j)d�|d	=|d
=y
t|t*�r_t|j��}d|vr|j-d�d|vr|j-d�d|vr|j-d�|d	=|d
=y
t|t.�ry
t1dt3|�z��#ttf$rYy
wxYw)zACopy mbox- or MMDF-specific state to message insofar as possible.rpr�rsrtrornrrrq�statuszx-statusr����Nz%a %b %d %H:%M:%S %Yr
rvrwrrrx)r�rr�rWr�rar�r�r�r��calendar�timegmr7�strptimer��
OverflowErrorr�r[r�r
r�rryr
r�r�)rr+rZ�
maybe_dates    r"rBz_mboxMMDFMessage._explain_to�s9���g�~�.�����(�)�E��e�|��"�"�5�)��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%���!��
�#����$�-�-�/�"7�"7�"9�"�#�">�?�J�
�� � �������z�6L�2N�"O�P���!1�
2����d�n�n�.�/����T�]�]�_�-�
���
+�����(�)�E��%���$�$�X�.��e�|��$�$�Y�/��e�|��$�$�Y�/���!��
�#�
���
.�����(�)�E��%���!�!�(�+��e�|��!�!�)�,��e�|��!�!�*�-���!��
�#�
���
)���B� ��M�*�+�
+��9�
�.�
��
�s�
8I�I*�)I*r4)
r�r�r�r�rHr#r�r�rWr[rarerBr�r$r"r�r�hs8��9�!(�	��(���A�7�,C�G�
1+r$r�c��eZdZdZy)rz&Message with mbox-specific properties.N�r�r�r�r�r�r$r"rr����0r$rc�<�eZdZdZdgZd
d�Zd�Zd�Zd�Zd�Z	d	�Z
y)r
z$Message with MH-specific properties.�
_sequencesNc�>�g|_tj||�y)z!Initialize an MHMessage instance.N)r�r
r#r*s  r"r#zMHMessage.__init__�s���������w�'r$c� �|jddS)z4Return a list of sequences that include the message.N)r�rVs r"r�zMHMessage.get_sequences�s�����q�!�!r$c�$�t|�|_y)z3Set the list of sequences that include the message.N)rYr�)rr�s  r"r�zMHMessage.set_sequences�s
���y�/��r$c��t|t�r+||jvr|jj|�yyt	dt|�z��)z8Add sequence to list of sequences including the message.zsequence type must be str: %sN)r�r�r�rr�r��rrs  r"r�zMHMessage.add_sequence�sF���h��$��t���.����&�&�x�0�/��;�d�8�n�L�M�Mr$c�Z�	|jj|�y#t$rYywxYw)zARemove sequence from the list of sequences including the message.N)r�r2r�r�s  r"�remove_sequencezMHMessage.remove_sequence�s+��	��O�O�"�"�8�,���	��	����	*�*c�|�t|t�r}t|j��}d|vr|j	d�n"|j	d�|jd�d|vr|jd�d|vr|jd�y
y
t|t�rlt|j��}d|vr|jd�n|jd	�d|vr|jd�d|vr|jd
�y
y
t|t�r'|j�D]}|j|��y
t|t�rEt|j��}d|vr|jd�d|vr|jd�y
y
t|t�ry
tdt|�z��)z6Copy MH-specific state to message insofar as possible.r
r�rnrwrsrvro�ROrprtrrxN)r�rr�r�r�rar�r
r�rryr
r�r�)rr+r�rs    r"rBzMHMessage._explain_to�s����g�~�.��D�.�.�0�1�I��9�$��"�"�5�)��"�"�5�)�� � ��%��I�%�� � ��%��I�%�� � ��%�&�
��!1�
2��D�.�.�0�1�I��y�(�� � ��&�� � ��%��I�%�� � ��%��I�%�� � ��%�&�
���
+� �.�.�0�
/���$�$�X�.�
/�
���
.��D�.�.�0�1�I��9�$��!�!�(�+��I�%��!�!�*�-�&�
���
)���B� ��M�*�+�
+r$r4)r�r�r�r�rHr#r�r�r�r�rBr�r$r"r
r
�s,��.�!-���(�
"�*�N��$+r$r
c�P�eZdZdZddgZdd�Zd�Zd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
y)rz'Message with Babyl-specific properties.r�_visibleNc�\�g|_t�|_tj||�y)z#Initialize a BabylMessage instance.N)rr
r�r#r*s  r"r#zBabylMessage.__init__*s"������	��
�����w�'r$c� �|jddS)z'Return a list of labels on the message.N)rrVs r"rzBabylMessage.get_labels0s���|�|�A��r$c�$�t|�|_y)z&Set the list of labels on the message.N)rYr)rr"s  r"rzBabylMessage.set_labels4s
���F�|��r$c��t|t�r+||jvr|jj|�yyt	dt|�z��)z+Add label to list of labels on the message.zlabel must be a string: %sN)r�r�rrr�r��rr)s  r"ryzBabylMessage.add_label8sF���e�S�!��D�L�L�(����#�#�E�*�)��8�4��;�F�G�Gr$c�Z�	|jj|�y#t$rYywxYw)z4Remove label from the list of labels on the message.N)rr2r�r�s  r"�remove_labelzBabylMessage.remove_label@s+��	��L�L����&���	��	�r�c�,�t|j�S)z3Return a Message representation of visible headers.�r
r�rVs r"r3zBabylMessage.get_visibleGs���t�}�}�%�%r$c�$�t|�|_y)z2Set the Message representation of visible headers.Nr�)r�visibles  r"rzBabylMessage.set_visibleKs����(��
r$c��|jj�D]3}||vr |jj|||��'|j|=�5dD](}||vs�||jvs�|||j|<�*y)z9Update and/or sensibly generate a set of visible headers.)�Date�FromzReply-To�To�CC�SubjectN)r�rZr�)r�headers  r"�update_visiblezBabylMessage.update_visibleOs���m�m�(�(�*�	*�F���~��
�
�,�,�V�T�&�\�B��M�M�&�)�		*�
J�	5�F���~�&��
�
�"=�(,�V���
�
�f�%�	5r$c���t|t�r�t|j��}d|vr|j	d�n"|j	d�|jd�d|vsd|vr|jd�d|vr|jd�d	|vr|jd
�yyt|t�rlt|j��}d|vr|jd�n|jd�d	|vr|jd
�d|vr|jd�yyt|t�rEt|j��}d|vr|jd�d|vr|jd�yyt|t�rF|j|j��|j�D]}|j|��yt|t�rytdt|�z��)z9Copy Babyl-specific state to message insofar as possible.r
r�rnr
r	r<rrorrqr�rprrrtrvrxN)r�rr�rr�rar�r
r�rrr3ryr
r�r�)rr+r"r)s    r"rBzBabylMessage._explain_toZs����g�~�.�����*�+�F��6�!��"�"�5�)��"�"�5�)�� � ��%��f�$��F�(:�� � ��%��V�#�� � ��%��F�"�� � ��%�#�
��!1�
2�����*�+�F��v�%�� � ��&�� � ��%��F�"�� � ��%��V�#�� � ��%�$�
���
+�����*�+�F��6�!��$�$�X�.��V�#��$�$�Y�/�$�
���
.����� 0� 0� 2�3����*�
)���!�!�%�(�
)�
���
)���B� ��M�*�+�
+r$r4)r�r�r�r�rHr#rrryr�r3rr�rBr�r$r"rr%s>��1�!*�J� 7��(��$�H��&�)�	5�'+r$rc��eZdZdZy)rz&Message with MMDF-specific properties.Nr�r�r$r"rr�r�r$rc��eZdZdZdd�Zdd�Zdd�Zdd�Zdd�Zd�Z	d	�Z
dd
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zed��Zee�Zy)rzA read-only wrapper of a file.Nc�P�||_|�|j�|_y||_y)zInitialize a _ProxyFile.N)rYro�_pos)rr�poss   r"r#z_ProxyFile.__init__�s"����
��;�����D�I��D�Ir$c�N�|j||jj�S�zRead bytes.)�_readrYr��r�sizes  r"r�z_ProxyFile.read�s���z�z�$��
�
���0�0r$c�N�|j||jj�Sr�)r�rY�read1r�s  r"r�z_ProxyFile.read1�s���z�z�$��
�
� 0� 0�1�1r$c�N�|j||jj�S)zRead a line.)r�rYr�r�s  r"r�z_ProxyFile.readline�s���z�z�$��
�
� 3� 3�4�4r$c�l�g}|D],}|j|�|��|t|�z}|dks�+|S|S)zRead multiple lines.r)rr)r�sizehintrqr�s    r"�	readlinesz_ProxyFile.readlines�sL�����	�D��M�M�$���#��C��I�%���q�=���
�
	��
r$c#�`K�|j�x}r|��|j�x}r�yy�w)zIterate over lines.N)r�)rr�s  r"raz_ProxyFile.__iter__�s/�����m�m�o�%�d�%��J��m�m�o�%�d�%�s�).�.c��|jS)zReturn the position.)r�rVs r"roz_ProxyFile.tell�s���y�y�r$c���|dk(r%|jj|j�|jj||�|jj�|_y)zChange position.rN�rYr�r�ro�r�offset�whences   r"r�z_ProxyFile.seek�sA���Q�;��J�J�O�O�D�I�I�&��
�
�����'��J�J�O�O�%��	r$c��t|d�r4	t|jd�r|jj�|`yy#|`wxYw)zClose the file.rYr�N)rvrYr�rVs r"r�z_ProxyFile.close�sB���4��!�
��4�:�:�w�/��J�J�$�$�&��J�"��
�J�s�0A�Ac��|�d}|jj|j�||�}|jj�|_|S)z"Read size bytes using read_method.r�r�)rr��read_methodrqs    r"r�z_ProxyFile._read�sA���<��D��
�
����	�	�"��T�"���J�J�O�O�%��	��
r$c��|S)z$Context management protocol support.r�rVs r"�	__enter__z_ProxyFile.__enter__�s���r$c�$�|j�yr4)r�)r�excs  r"�__exit__z_ProxyFile.__exit__�s���
�
�r$c�6�|jj�Sr4)rY�readablerVs r"r�z_ProxyFile.readable�����z�z�"�"�$�$r$c�6�|jj�Sr4)rY�writablerVs r"r�z_ProxyFile.writable�r�r$c�6�|jj�Sr4)rY�seekablerVs r"r�z_ProxyFile.seekable�r�r$c�6�|jj�Sr4)rYr}rVs r"r}z_ProxyFile.flush�s���z�z���!�!r$c�v�t|d�syt|jd�sy|jjS)NrYTr�F)rvrYr�rVs r"r�z_ProxyFile.closed�s0���t�W�%���t�z�z�8�,���z�z� � � r$r4�r)r�r�r�r�r#r�r�r�r�raror�r�r�r�r�r�r�r�r}�propertyr�r�rr�r�r$r"rr�sv��(��1�2�5�	��
�&�����%�%�%�"��!��!�$�L�1�r$rc�2�eZdZdZdd�Zd�Zd	d�Zd�Zd�Zy)
r�z&A read-only wrapper of part of a file.Nc�N�tj|||�||_||_y)zInitialize a _PartialFile.N)rr#�_start�_stop)rrr~rs    r"r#z_PartialFile.__init__�s"�����D�!�U�+������
r$c�F�tj|�|jz
S)z*Return the position with respect to start.)rror�rVs r"roz_PartialFile.tell�s�����t�$�t�{�{�2�2r$c��|dk(r|j|_d}n|dk(r|j|_d}tj	|||�y)z8Change position, possibly with respect to start or stop.rrrHN)r�r�r�rr�r�s   r"r�z_PartialFile.seek�s@���Q�;����D�I��F�
�q�[��
�
�D�I��F�����f�f�-r$c��|j|jz
}|dkry|�
|dks||kDr|}tj|||�S)z;Read size bytes using read_method, honoring start and stop.rr$)r�r�rr�)rr�r��	remainings    r"r�z_PartialFile._readsJ���J�J����*�	���>���<�4�!�8�t�i�'7��D�����d�K�8�8r$c�"�t|d�r|`yy)NrY)rvrYrVs r"r�z_PartialFile.close
s���4��!��
�"r$)NNr�)	r�r�r�r�r#ror�r�r�r�r$r"r�r��s��0��3�.�9�r$r�c��d}	tr6	tj|tjtjz�|r{	t|jdz�}|j�		tj|j|jdz�d}tj|j�yyy#t$rY}|j
t
jt
jt
jfvrtd|jz���d}~wwxYw#t$r7}|j
t
jt
jfvrYd}~y�d}~wwxYw#t t"f$r2tj$|j|jdz�d}Y��wxYw#t&$r8tj(|j�td|jz��wxYw#tr$tj|tj*�|r"tj(|jdz��xYw)z(Lock file f using lockf and dot locking.Fzlockf: lock unavailable: %sN�.lockTzdot lock unavailable: %s)�fcntl�lockf�LOCK_EX�LOCK_NBr�r��EAGAINrWrXrr�rpr�rr�r�r�r�r�rEr2�LOCK_UN)rrm�dotlock_doner��pre_locks     r"rgrgs����L�%��
����A�u�}�}�u�}�}�<�=��
�,�Q�V�V�g�-=�>����� �
1�-��G�G�H�M�M�1�6�6�G�+;�<�#'�L�
�I�I�h�m�m�,�!���
�
��7�7�u�|�|�U�\�\�5�;�;�G�G�,�-J�-.�V�V�.4�5�5���
���
��7�7�u�|�|�U�[�[�9�9����	
��'��8�(��I�I�h�m�m�Q�V�V�g�-=�>�#'�L�(��
#�
1��	�	�(�-�-�(�(�)C�)*���*0�1�1�
1�����K�K��5�=�=�)���I�I�a�f�f�w�&�'�
�s��G.�5B>�G.�(D#�-/E&�F*�>	D �AD�D � G.�#	E#�,,E�G.�E�E#�#G.�&>F'�$F*�&F'�'F*�*AG+�+G.�.AH?c��tr$tj|tj�tjj|jdz�r#tj|jdz�yy)z*Unlock file f using lockf and dot locking.r�N)r�r�r�rrr�r�r2�rs r"rjrj;sJ���
���A�u�}�}�%�	�w�w�~�~�a�f�f�w�&�'�
�	�	�!�&�&�7�"�#�(r$c��tj|tjtjztjzd�}	t|d�tj
|�S#tj
|�wxYw)zCCreate a file if it doesn't exist and open for reading and writing.r(rU)rr�r)r��O_RDWRr�)r�fds  r"rDrDBsP��	����r�z�z�B�I�I�-��	�	�9�5�	A�B���D�%� �
�����������s�	A*�*Bc
��t|�dttj���dtj��dtj����S)zBCreate a temp file based on path and open for reading and writing.r)rDr@r7r>r?rrA)rs r"rprpJs8���d�C��	�	��4D�.4�.@�.@�.B�.0�i�i�k�;�<�<r$c��|j�ttd�r$tj|j	��yy)z0Ensure changes to file f are physically on disk.�fsyncN)r}rvrr��filenor�s r"rnrnPs,���G�G�I��r�7��
��������r$c�:�t|�|j�y)z:Close file f, ensuring all changes are physically on disk.N)rnr�r�s r"r�r�Vs����N��G�G�Ir$c��eZdZdZy)rz"Raised for module-specific errors.Nr�r�r$r"rr\s��,r$rc��eZdZdZy)rz:The specified mailbox does not exist and won't be created.Nr�r�r$r"rr_s��Dr$rc��eZdZdZy)rz>The specified mailbox is not empty and deletion was requested.Nr�r�r$r"rrbs��Hr$rc��eZdZdZy)rz)Another process caused an action to fail.Nr�r�r$r"rre���3r$rc��eZdZdZy)rz)A file appears to have an invalid format.Nr�r�r$r"rrhrr$r)T)2r�rr7r�r>r�r@r�rL�
email.message�email.generatorr�rD�typesrr��ImportError�__all__r�r�rrrSr�rr	rrr+r
rr�rr
rrrr�rgrjrDrprnr��	Exceptionrrrrrr�r$r"�<module>r
s���J�
���
�������	�����A��

�*�*�
�
�G�
$��f2�f2�Rs�g�s�l	C��C�N@�"�@�F1.�9�1.�h*.�9�*.�Zn*��n*�b	v��v�r"@�e�m�m�#�#�"@�Jj+�W�j+�Zn+�w�n+�b1�"�1�E+��E+�P\+�7�\+�~1�"�1�_2�_2�D$�:�$�N(�T$��<���-�I�-�E��E�I�E�I�4��4�4�%�4��aB���E��s�E5�5F�?F

Youez - 2016 - github.com/yon3zu
LinuXploit