ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 6eb[c@sdZyddlmZWn#ek r?ZddlmZnXddlZddlZddlZddl Z ddl m Z dZ ej ddkZejdZd Zd efd YZd efd YZdefdYZdefdYZde fdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZd efd!YZd"eefd#YZ d$e fd%YZ!d&e!fd'YZ"d(e!fd)YZ#d*e#fd+YZ$d,e!fd-YZ%d.e!fd/YZ&d0e!fd1YZ'd2efd3YZ(d4efd5YZ)d6e*fd7YZ+dS(8tMITi(tCallableN(tEntitySubstitutionsutf-8iis\s+cs1tfd}|jfd}|S(s>Alias one attribute name to another for backward compatibilitycs t|S(N(tgetattr(tself(tattr(s//usr/lib/python2.7/site-packages/bs4/element.pytaliasscs t|S(N(tsetattr(R(R(s//usr/lib/python2.7/site-packages/bs4/element.pyRs(tpropertytsetter(RR((Rs//usr/lib/python2.7/site-packages/bs4/element.pyt_aliasstNamespacedAttributecBseZddZRS(cCs{|dkr!tj||}n;|dkrBtj||}ntj||d|}||_||_||_|S(Nt:(tNonetunicodet__new__tprefixtnamet namespace(tclsRRRtobj((s//usr/lib/python2.7/site-packages/bs4/element.pyR"s     N(t__name__t __module__R R(((s//usr/lib/python2.7/site-packages/bs4/element.pyR st%AttributeValueWithCharsetSubstitutioncBseZdZRS(s=A stand-in object for a character encoding specified in HTML.(RRt__doc__(((s//usr/lib/python2.7/site-packages/bs4/element.pyR/stCharsetMetaAttributeValuecBs eZdZdZdZRS(sA generic stand-in for the value of a meta tag's 'charset' attribute. When Beautiful Soup parses the markup '', the value of the 'charset' attribute will be one of these objects. cCstj||}||_|S(N(RRtoriginal_value(RRR((s//usr/lib/python2.7/site-packages/bs4/element.pyR9s cCs|S(N((Rtencoding((s//usr/lib/python2.7/site-packages/bs4/element.pytencode>s(RRRRR(((s//usr/lib/python2.7/site-packages/bs4/element.pyR2s tContentMetaAttributeValuecBs5eZdZejdejZdZdZRS(sA generic stand-in for the value of a meta tag's 'content' attribute. When Beautiful Soup parses the markup: The value of the 'content' attribute will be one of these objects. s((^|;)\s*charset=)([^;]*)cCsM|jj|}|dkr.tjt|Stj||}||_|S(N(t CHARSET_REtsearchR RRR(RRtmatchR((s//usr/lib/python2.7/site-packages/bs4/element.pyRMs   cs%fd}|jj||jS(Ncs|jdS(Ni(tgroup(R (R(s//usr/lib/python2.7/site-packages/bs4/element.pytrewriteXs(RtsubR(RRR"((Rs//usr/lib/python2.7/site-packages/bs4/element.pyRWs( RRRtretcompiletMRRR(((s//usr/lib/python2.7/site-packages/bs4/element.pyRBs tHTMLAwareEntitySubstitutioncBsneZdZeddgZedgZeddgZedZedZ edZ RS(s%Entity substitution rules that are aware of some HTML quirks. Specifically, the contents of