
    !}g}                        d dl Z d dlZd dlZd dlZd dlZd dlZddlmZ ddl	m
Z
mZmZmZmZmZmZ ddlmZmZ ddlmZ ddlmZmZmZ  G d d	e
j        ej        ej        ej        ej        ej        ej        	  	        ZdS )
    N   )_cp1252)_baseccdcgeorssitunesmediarsspsc)_sanitize_html_HTMLSanitizer)FeedParserDict)_urljoinmake_safe_absolute_uriresolve_relative_urisc                       e Zd Zi ddddddddddddddddd	dd
dddddddddddddddi ddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5i d6d7d8d9d:d;d<d=d>d=d?d@dAdBdCdBdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddeZi Zh dfZh dgZh dgZdhdihZ fdjZ	dk Z
dl Zdm Zdn Zdo ZddqZdr Zds Zdt Zdu Zedv             Zdw Zdx Zedy             Zedz             Zd{ Zdd|Zd} Zd~ Zed             Zd Zd Z d Z!ed             Z"ddZ#d Z$ddZ%d Z&ddZ'd Z(d Z)d Z* xZ+S )_FeedParserMixin http://backend.userland.com/rssz%http://blogs.law.harvard.edu/tech/rsshttp://purl.org/rss/1.0/&http://my.netscape.com/rdf/simple/0.9/zhttp://example.com/newformat#zhttp://example.com/nechozhttp://purl.org/echo/zuri/of/echo/namespace#zhttp://purl.org/pie/zhttp://purl.org/atom/ns#zhttp://www.w3.org/2005/Atomz'http://purl.org/rss/1.0/modules/rss091#zhttp://webns.net/mvcb/adminz,http://purl.org/rss/1.0/modules/aggregation/agz)http://purl.org/rss/1.0/modules/annotate/annotatez!http://media.tangent.org/rss/1.0/audioz-http://backend.userland.com/blogChannelModuleblogChannelz%http://creativecommons.org/ns#licenser   zhttp://web.resource.org/cc/z>http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.htmlcreativeCommonsz4http://backend.userland.com/creativeCommonsRssModulez'http://purl.org/rss/1.0/modules/companycoz(http://purl.org/rss/1.0/modules/content/contentz&http://my.theinfo.org/changed/1.0/rss/cpz http://purl.org/dc/elements/1.1/r   zhttp://purl.org/dc/terms/dctermsz&http://purl.org/rss/1.0/modules/email/emailz&http://purl.org/rss/1.0/modules/event/evz*http://rssnamespace.org/feedburner/ext/1.0
feedburnerzhttp://freshmeat.net/rss/fm/fmzhttp://xmlns.com/foaf/0.1/foafz(http://www.w3.org/2003/01/geo/wgs84_pos#geozhttp://www.georss.org/georssr   zhttp://www.opengis.net/gmlgmlzhttp://postneo.com/icbm/icbmz&http://purl.org/rss/1.0/modules/image/imagez*http://www.itunes.com/DTDs/PodCast-1.0.dtdr	   z'http://example.com/DTDs/PodCast-1.0.dtdz%http://purl.org/rss/1.0/modules/link/lzhttp://search.yahoo.com/mrssmediazhttp://search.yahoo.com/mrss/z4http://madskills.com/public/xml/rss/module/pingback/pingbackz.http://prismstandard.org/namespaces/1.2/basic/prismz+http://www.w3.org/1999/02/22-rdf-syntax-ns#rdfz%http://www.w3.org/2000/01/rdf-schema#rdfsz*http://purl.org/rss/1.0/modules/reference/refz*http://purl.org/rss/1.0/modules/richequiv/reqvz'http://purl.org/rss/1.0/modules/search/searchz&http://purl.org/rss/1.0/modules/slash/slashz)http://schemas.xmlsoap.org/soap/envelope/soapssstrsubsyszftaxothrti	trackbackwfwwikixhtmlxlinkxmlr   )z.http://purl.org/rss/1.0/modules/servicestatus/z-http://hacks.benhammersley.com/rss/streaming/z-http://purl.org/rss/1.0/modules/subscription/z,http://purl.org/rss/1.0/modules/syndication/z/http://schemas.pocketsoap.com/rss/myDescModule/z)http://purl.org/rss/1.0/modules/taxonomy/z*http://purl.org/rss/1.0/modules/threading/z*http://purl.org/rss/1.0/modules/textinput/z5http://madskills.com/public/xml/rss/module/trackback/z$http://wellformedweb.org/commentAPI/z%http://purl.org/rss/1.0/modules/wiki/zhttp://www.w3.org/1999/xhtmlzhttp://www.w3.org/1999/xlinkz$http://www.w3.org/XML/1998/namespacez"http://podlove.org/simple-chapters>
   idurldocshreficonlinklogocommentswfw_commentwfw_commentrss>	   infotitlerightsr   summarytaglinesubtitle	copyrightdescriptionapplication/xhtml+xml	text/htmlc                    | j         s;| j                                        D ]!\  }}|| j         |                                <   "t	                      | _        g | _        d| _        i | _        d| _	        d| _
        d| _        d| _        d| _        d| _        d| _        d| _        d| _        t	                      | _        t	                      | _        d | _        i | _        g | _        g | _        g | _        d| _        d| _        d| _        d| _        | j        r#| j                            dd          | j        d<   i | _        tA          tB          |           "                                 d S )Nr   r   _-language)#_matchnamespaces
namespacesitemslowerr   feeddataentriesversionnamespaces_in_useinfeedinentry	incontentintextinputinimageinauthorincontributorinpublisherinsource
sourcedatacontentparams_summaryKeynamespacemapelementstack	basestack	langstacksvgOKtitle_depthdepth
hasContentlangreplaceproperty_depth_mapsuperr   __init__)selfkv	__class__s      P/var/www/py-google-trends/myenv/lib/python3.11/site-packages/feedparser/mixin.pyr}   z_FeedParserMixin.__init__   sb   $ 	5--// 5 5134%aggii00&((!# (**+--

9 	D(,	(9(9#s(C(CDM*% #%%%..00000    c                     t           N)NotImplementedError)r~   kvs     r   _normalize_attributesz&_FeedParserMixin._normalize_attributes   s    !!r   c                      xj         dz  c_          fd|D             }t          |          }|                    d|                    d                    p j        }t	          |t
                    r|                     j        d          } j        r"t           j        |          p j         _        nt           j        |           _        |                    d|                    d                    }|dk    rd }n	| j
        }|r"|d	v r|                    d
d           j        d<   | _
         j                             j                    j                            |           |D ]U\  }}|                    d          r                     |dd          |           9|dk    r                     d |           V j        r> j                            dd                              d          s|dv rd S d j        d<    j        r j                            d          dk    r|                    d          dk    rz|                    dd          \  }} j                            |d          }|dk    r|dk    r|                    d|f           |dk    r|dk    r|                    d|f           |dk    r xj        dz  c_                             d|                     |          dd          S |                    d          dk    r|                    dd          \  }}	nd|}	} j                            ||          }|r|d
z   }|s|dvrd _        |s|dvrd _        d |z   |	z   }
	 t=           |
          } ||          S # t>          $ rM ||	z   }tA          |          dk    r !                    |d          cY S  "                                }|||<   Y d S w xY w)!Nr   c                 :    g | ]}                     |          S  )r   ).0attrr~   s     r   
<listcomp>z5_FeedParserMixin.unknown_starttag.<locals>.<listcomp>   s'    DDDd++D11DDDr   zxml:basebaseignorezxml:langry   r   )feedrsszrdf:RDFrZ   r[   r\   zxmlns:   xmlnstyperC   z	xhtml:divdivrV   :rY   mathz"http://www.w3.org/1998/Math/MathMLsvgzhttp://www.w3.org/2000/svg<>r   escape)rO   rI   rU   name)rO   rI   rU   rE   rG   widthheight_start_)#rw   dictgetbaseuri
isinstancebytesdecodeencodingr   r   ry   rz   ra   rs   appendrt   
startswithtrack_namespacerg   ro   endswithfindsplitrd   ru   handle_datastrattrsrq   rh   ri   getattrAttributeErrorlenpush_get_context)r~   tagattrsattrs_dr   ry   prefixuri	namespacesuffix
methodnamemethodunknown_tagcontexts   `             r   unknown_starttagz!_FeedParserMixin.unknown_starttag   sw   

a

 EDDDeDDD u++++j'++f*=*=>>N$,gu%% 	>nnT]H==G < 	;1$,HHXDLDLL#DL'::DL{{:w{{6':':;;2::DD\9D 	C000,0LLc,B,Bj)	dl+++d### ! 	0 	0KFC  ** 0$$VABBZ55557""$$T3/// > 	A$"4"8"8"G"G"P"PQV"W"W 	A***)@Dv&> 
	Vd044V<<@WWWxx}}""!iiQ// 266vrBB	&==Y2V%V%VLL'9!5666%<<I1M$M$MLL'9!5666e||

a

###T]]55I5I5I5I$JST#UUU 88C==B YYsA..NFFFFF"&&vv66 	"c\F  	!C'OOO D 	C'iiiDL '&0
	/T:..F6'??" 
	/ 
	/ 
	/ !6/K7||q  yya00000 ++--'.$$$$
	/s   N# #8O:O:9O:c                    |                     d          dk    r|                    dd          \  }}nd|}}| j                            ||          }|r|dz   }|dk    r| j        r| xj        dz  c_        d|z   |z   }	 | j        rt                      t          | |          } |             n(# t
          $ r |                     ||z              Y nw xY w| j        r>| j	                            dd	          
                    d	          s|d
v rd S d| j	        d<   | j        rS| j	                            d          dk    r5|                    d          d         }|                     d|z  d           | j        r?| j                                         | j        r| j        d         r| j        d         | _        | j        r2| j                                         | j        r| j        d         | _        | xj        dz  c_        d S )Nr   rY   r   r   rZ   r   _end_r   rC   r   rV   z</%s>r   r   )r   r   rq   r   ru   r   r   poprg   ro   r   r   rs   r   rt   ry   rw   )r~   r   r   r   r   r   s         r   unknown_endtagz_FeedParserMixin.unknown_endtag/  s:   88C==B YYsA..NFFFFF"&&vv66 	"c\FU??tz?JJ!OJJ v%.
	&z '$&&&T:..FFHHHH 	& 	& 	&HHVf_%%%%%	& > 	A$"4"8"8"G"G"P"PQV"W"W 	A***)@Dv&> 	6d044V<<@WWW))C..$CWs]1555 > 	2N   ~ 2$."4 2#~b1> 	/N   ~ / N2.	

a



s    /B0 0"CCc                 L   | j         sd S |                                }|dv rd|z  }nV|d         dk    rt          |dd          d          }nt          |          }t          |                              d          }| j         d         d	                             |           d S )
N)
3438396062x22x26x27x3cx3ez&#%s;r   xr      utf-8rY      )rr   r`   intchrencoder   )r~   r1   textcs       r   handle_charrefz_FeedParserMixin.handle_charref[  s      	FiikkSSSS=DD1v}}ABB$$HHq66==))D"a ''-----r   c                    | j         sd S |dv rd|z  }n|| j        v rM| j        |         }|                    d          r*|                    d          r|                     |          S ne	 t
          j        j        |          t          t
          j        j        |                                       d          }n# t          $ r d|z  }Y nw xY w| j         d         d         
                    |           d S )N)ltgtquotampaposz&%s;z&#;r   rY   r   )rr   entitiesr   r   handle_entityrefhtmlname2codepointr   r   KeyErrorr   )r~   r1   r   s      r   r   z!_FeedParserMixin.handle_entityrefj  s     	F555C<DDDM!!=%Dt$$ 3s);); 3,,T222N,S11 4=7<==DDWMM  $ $ $|$ 	"a ''-----s   +B: :CCr   c                     | j         sd S |rB| j                            d          dk    r$t          j        j                            |          }| j         d         d                             |           d S )Nr   rV   rY   r   )rr   ro   r   rC   saxsaxutilsr   r   )r~   r   r   s      r   r   z_FeedParserMixin.handle_data}  sw       	F 	1d(,,V448OOO7#**400D"a ''-----r   c                     d S r   r   r~   r   s     r   handle_commentz_FeedParserMixin.handle_comment      r   c                     d S r   r   r   s     r   	handle_piz_FeedParserMixin.handle_pi  r   r   c                     d S r   r   r   s     r   handle_declz_FeedParserMixin.handle_decl  s    r   c                    | j         ||dz            dk    r| j                             d|          }|dk    rt          | j                   }|S |                     t          j        j                            | j         |dz   |                   d           |dz   S | j                             d|          }|dk    r|dz   S |S )	N	   z	<![CDATA[z]]>rY   r      r   r   )rawdatar   r   r   rC   r   r   r   )r~   ir   s      r   parse_declarationz"_FeedParserMixin.parse_declaration  s    <!A#+--!!%++ABww%%SW-44T\!A#a%5HII1MMMQ3J!!#q))AAvvs
 r   c                 n    |                                  } | dk    s| dk    rd} n| dk    rd} n| dk    rd} | S )Nr   plain
text/plainr   rW   rA   rV   )r`   )content_types    r   map_content_typez!_FeedParserMixin.map_content_type  sW    #))++6!!\W%<%<'LLV##&LLW$$2Lr   c                 N   |                                 }| j        s+||fdk    rd| _        n|dk    rd| _        n|dk    rd| _        |                    d          dk    rd	}|}|| j        v r,| j        |         | j        |<   || j        | j        |         <   d S || j        |pd
<   d S )N)Nr   rss090r   rss10zhttp://www.w3.org/2005/atomatom10zbackend.userland.com/rssrY   r   r   )r`   rc   r   r]   rq   rd   )r~   r   r   loweruris       r   r   z _FeedParserMixin.track_namespace  s    99;;| 	(!%UUU'777&:::'==344::3CHt,,,(,(=h(GDf%FID"4#8#BCCC36D"6<R000r   c                 0    t          | j        pd|          S )Nr   )r   r   )r~   r   s     r   resolve_uriz_FeedParserMixin.resolve_uri  s    *C000r   c                     |S r   r   )elementdatas     r   decode_entitiesz _FeedParserMixin.decode_entities  s    r   c                 @    d                     d | D                       S )Nr   c           	   3      K   | ]>}d |d         dt           j        j                            |d         ddi          dV  ?dS ) r   z="r   "z&quot;N)rC   r   r   r   r   ts     r   	<genexpr>z,_FeedParserMixin.strattrs.<locals>.<genexpr>  sh       
 
 A$$$ 0 7 7!sHo N N N NO
 
 
 
 
 
r   )join)r   s    r   r   z_FeedParserMixin.strattrs  s4    ww 
 

 
 
 
 
 	
r   c                 @    | j                             ||g g           d S r   )rr   r   )r~   r  expecting_texts      r   r   z_FeedParserMixin.push  s&      '>2!>?????r   c           	      
   | j         sd S | j         d         d         |k    rd S | j                                         \  }}}t          |          D ]2\  }}t          |t                    r|                    d          ||<   3| j        dk    r| j                            dd          dk    rb|r_t          |          dk    rL|d         
                                s2|d= |r-t          |          dk    r|d         
                                2|r_t          |          dk    rL|d         
                                s2|d= |r-t          |          dk    r|d         
                                2|r|d         d	k    s|d                             d
          rw|d         dk    rkd}|d d         D ]T}|                    d          r|dz  }|dk    r n;%|                    d          r|                    d          s|dz  }U|dd         }d                    |          }	|r|	
                                }	|s|	S t          r~| j                            dd          rc	 t          j        |	                    d                                        d          }	n'# t"          j        t"          j        t(          f$ r Y nw xY w|| j        v r$|	r"|dk    r| j        r|                     |	          }	| j                            dd          s|                     ||	          }	| j                            d          s=| j                            d          dk    r|                     |	          r
d| j        d<   	 | j        d= n# t4          $ r Y nw xY w	 | j        d= n# t4          $ r Y nw xY w|                     | j                            dd                    | j        v }
|
rE| j        r>|| j        v r5t;          |	| j        | j         | j                            dd                    }	|
r?| j!        r8|| j"        v r/tG          |	| j         | j                            dd                    }	| j         r0t          |	t                    r|	                    | j         d          }	| j         dv rVt          |	t                    sA	 |	                    d                              d          }	n# tH          t(          f$ r Y nw xY wt          |	t                    s|	%                    tL                    }	|dv r|	S |dk    rd| j'        cxk     r| j(        k    rn n|	S | j)        r| j*        s|dk    rg| j+        d         ,                    |g            t[          j.        | j                  }|	|d<   | j+        d         |         /                    |           n|dk    rc| j0        sZ|	1                    dd           }	te          j3        d!d"|	          }	|	| j+        d         |<   |	r|	| j+        d         d#         d         d$<   nF|d%k    rd&}| j4        ,                    | j+        d         i                               |          }|| j(        |k    r0| j(        | j4        | j+        d                  |<   |	| j+        d         |<   | j5        r1t[          j.        | j                  }|	|d<   || j+        d         |d'z   <   n| j6        s| j*        r| 7                                }|d%k    rd(}|	||<   |dk    r-te          j3        d!d"|	          }	|	||<   |	|d#         d         d$<   n-| j5        r&t[          j.        | j                  }|	|d<   |||d'z   <   |	S ))NrY   r   r   r  r   r   rV   r   z<div>z<div z</div>z</r   z/>r   base64utf8rD   atomr   rW   moder   )r   zutf-8_INVALID_PYTHON_3z
iso-8859-1)categorytagsitunes_keywordsrO   r   valuerI   z&amp;&z&([A-Za-z0-9_]+);z&\g<1>linksrG   rU   rQ   _detailrS   )8rr   r   	enumerater   r   r   rc   ro   r   r   stripr   r   r  r  decodebytesr   binasciiError
IncompleteUnicodeDecodeErrorcan_be_relative_uri
guidislinkr  r  looks_like_htmlr   r   
html_typesr   can_contain_relative_urisr   r   sanitize_htmlcan_contain_dangerous_markupr   UnicodeEncodeError	translater   rv   rw   rf   rm   rb   
setdefaultcopydeepcopyr   ri   rz   rer8   r{   rg   re   r   )r~   r  strip_whitespacer  piecesr   r   rw   pieceoutput
is_htmlishro   old_value_depthr   s                 r   r   z_FeedParserMixin.pop  s^     	FR #w..F*.*;*?*?*A*A'  '' 	. 	.FQ!U## .HHW--q	<8##(:(>(>vv(N(NRi(i(i
  S[[1__VBZ5E5E5G5G_2J  S[[1__VBZ5E5E5G5G_ S[[1__VAY__5F5F_1I  S[[1__VAY__5F5F_ 
*6!9//6!93G3G3P3P/V\]_V`dlVlVl#CRC[ * *E''-- #
 A::!E &))#.. #u~~d7K7K #
#AbD\F 	$\\^^F 	M  	d(,,Xq99 	+FMM&,A,ABBII&QQNH$79KL    t///V/d??do?))&11 !%%h22 	;))'6::F |&&v.. 	943E3I3I&3Q3QUa3a3a##F++ 9-8"6*	"6** 	 	 	D		"8,, 	 	 	D	 **4+=+A+A&++V+VWW[_[jj
 	A$4 	A$888.vt|T]TXTfTjTjkqs~TT  A  A  	l$, 	l$;;;'t?Q?U?UV\^i?j?jkk= 	<Z66 	<]]4=(;;F =???
SY[`HaHa?|44;;GDD&(:;    &%(( 	/%%g..F ===Mg"t'7"E"E"E"E4:"E"E"E"E"EM < (	= (	=)##R ++GR888 $d.@ A A)/g&R )00????F""| G $^^GS99FV$7FKKF06DL$W- G@FR(1"5f=m++'G"&"9"D"DT\RTEUWY"Z"Z"^"^_f"g"g"*djO.K.KIMD+DL,<=gF06DL$W-> J$(M$2D$E$EM-3M'*<IDL$Wy%89[ 	=DM 	=''))G-''$%GG&   3YGG#) /5 $V,, = $d.@ A A)/g&/<)+,sH   ":J !K K:N 
NNN 
N*)N* (S) )S=<S=c                 x   | xj         dz  c_         | j        r | j                            dd          | _        t          |                     |                    d|                    | j        | j        d          | _        |                     || j                  | j        d<   | 	                    ||           d S )Nr   rZ   r[   r   )r   r\   r   r  )
rg   ry   rz   r   r   r   r   ro   
_is_base64r   )r~   r   r   default_content_typer  s        r   push_contentz_FeedParserMixin.push_contenti  s    !9 	4	))#s33DI+))'++f>R*S*STT	L-" -" # # (,w@R'S'S8$		#~&&&&&r   c                     |                      |          }| xj        dz  c_        | j                                         |S )Nr   )r   rg   ro   clear)r~   r   r  s      r   pop_contentz_FeedParserMixin.pop_contentt  s;    !  """r   c                    t          j        d|           st          j        d|           sdS t          d t          j        d|           D                       rdS t          d t          j        d|           D                       rdS dS )	z3
        :type s: str
        :rtype: bool
        z</(\w+)>z&#?\w+;Fc              3   Z   K   | ]&}|                                 t          j        v"|V  'd S r   )r`   r   acceptable_elementsr  s     r   r  z3_FeedParserMixin.looks_like_html.<locals>.<genexpr>  s7      mma.Jl9l9l9l9l9l9lmmr   z</?(\w+)c              3   @   K   | ]}|t           j        j        v|V  d S r   )r   r   
entitydefs)r   es     r   r  z3_FeedParserMixin.looks_like_html.<locals>.<genexpr>  s1      ZZaAY8Y8Y8Y8Y8Y8YZZr   z&(\w+);T)r2  r3   anyfindall)ss    r   r(  z _FeedParserMixin.looks_like_html~  s     	+q)) 	RYz1-E-E 	5 mm2:k155mmmnn 	5 ZZ2:j!44ZZZ[[ 	5tr   c                     |                     d          }|dk    r:|d |         }||dz   d          }| j                            ||          }|dz   |z   }|S )Nr   rY   r   )r   rq   r   )r~   r   colonposr   r   s        r   _map_to_standard_prefixz(_FeedParserMixin._map_to_standard_prefix  sd    99S>>r>>)8)_F(1*++&F&**66::FC<&(Dr   c                 R    |                     |                     |                    S r   )r   rK  )r~   r   r   s      r   _get_attributez_FeedParserMixin._get_attribute  s"    {{477==>>>r   c                 
   |                     dd          dk    rdS | j        d                             d          rdS | j        d                             d          rdS | j        d                             d	          rdS dS )
Nr  r   r  r   r   ztext/r   z+xmlz/xml)r   ro   r   r   )r~   r   ro   s      r   r:  z_FeedParserMixin._is_base64  s    ;;vr""h..1f%0099 	1f%..v66 	1f%..v66 	1qr   c           
          |                      d|                      d|                      dd                               }|r/	 | d= n# t          $ r Y nw xY w	 | d= n# t          $ r Y nw xY w|| d<   | S )NrE   r   rG   )r   r   )r   rG   s     r   _enforce_hrefz_FeedParserMixin._enforce_href  s    {{5'++eW[[5N5N"O"OPP 		#ENN   ENN   "GFOs$   A 
AAA 
A('A(Fc                 l    |                                  }|r|||<   d S |                    ||           d S r   )r   r/  )r~   keyr  	overwriter   s        r   _savez_FeedParserMixin._save  sD    ##%% 	+ GCLLLsE*****r   c                     | j         r| j        }nO| j        rd| j        v r| j        d         }n1| j        r| j        d         }n| j        r| j        d         }n| j        }|S )Nr*   	textinputrY   )rm   rn   ri   ra   rh   rf   rb   )r~   r   s     r   r   z_FeedParserMixin._get_context  sv    = 		$oGG\ 	$g66mG,GG 	$mK0GG\ 	$l2&GGmGr   authorc                 $   |                                  }|                    |dz   t                                 |||dz            |<   |                                  |                    dt                      g           ||d         d         |<   d S )Nr  authorsrY   )r   r/  r   _sync_author_detail)r~   rR  r  r   r   s        r   _save_authorz_FeedParserMixin._save_author  s    ##%%6I-~/?/?@@@+0"#C(  """9~'7'7&8999&+	2s###r   c                     |                                  }|                    dt                      g           ||d         d         |<   d S )NcontributorsrY   )r   r/  r   )r~   rR  r  r   s       r   _save_contributorz"_FeedParserMixin._save_contributor  sL    ##%%>N,<,<+=>>>+0#C(((r   c                 p   |                                  }|                    d|z  t                      g          d         }|rO|                    d          }|                    d          }|r|r|d|d||<   d S |r|||<   d S |r|||<   d S d S |                    |          d }}|sd S t          j        d|          }|r|                    d          }|                    |d	          }|                    d
d	          }|                    dd	          }|                    dd	          }|                                }|r|d         dk    r
|dd          }|r|d         dk    r
|d d         }|                                }|s|r|                    d|z  |           |r||d<   |r||d<   d S d S )Nz%ssrY   r   r"   z ()z(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))(\?subject=\S+)?r   r   z()z<>z&lt;&gt;(r   z	%s_detail)	r   r   r   r2  r3   grouprz   r   r/  )r~   rR  r   detailr   r"   rW  
emailmatchs           r   rZ  z$_FeedParserMixin._sync_author_detail  s&   ##%%US[>+;+;*<==bA !	(::f%%DJJw''E % %,0DD%%%8 %# %$% % $KK,,dEF   $s  u{  |  |J ("((++  r22b11b11
B77 (vayC//#ABBZF )vbzS00#CRC[F > >"";#4f=== (!'v ("'w( (r   c                     |                                  }|                    dg           }|s|s|sd S t          |||          }||vr|                    |           d S d S )Nr  )termschemelabel)r   r/  r   r   )r~   rf  rg  rh  r   r  r  s          r   _add_tagz_FeedParserMixin._add_tag   s    ##%%!!&"-- 	v 	 	FDuEEEKK r   c                 2    |                      dd           d S )Nr  r   )r   )r~   r   s     r   _start_tagsz_FeedParserMixin._start_tags	  s     			&!r   c                     |                      d                              d          D ]+}|                     |                                d d            ,d S )Nr  ,)r   r   ri  r   )r~   rf  s     r   	_end_tagsz_FeedParserMixin._end_tags  sV    HHV$$**3// 	4 	4DMM$**,,d3333	4 	4r   )r   )F)rW  ),__name__
__module____qualname__r^   r]   r&  r*  r,  r)  r}   r   r   r   r   r   r   r   r   r   r   staticmethodr   r   r  r  r   r   r   r<  r?  r(  rK  rM  r:  rP  rT  r   r[  r^  rZ  ri  rk  rn  __classcell__)r   s   @r   r   r   *   s       E
BE)2E 	0E 	#B	E
 	1"E 	(E 	#BE 	 E 	!"E 	E 	#BE 	&rE 	22E 	!E  	7!E" 	4#E$ 	,%E E& 	8'E( 	0)E* 	&+E, 	IJ[-E. 	?AR/E0 	21E2 	33E4 	15E6 	+7E8 	$9E: 	1;E< 	1=E> 	5?E@ 	'AEB 	%CED 	3EEF 	'GE E EH 	%IEJ 	#KEL 	1MEN 	5OEP 	2QER 	0SET 	'UEX 	(YEZ 	?[E\ 	9]E^ 	6_E` 	0aEb 	5cEd 	5eEf 	2gEh 	1iEj 	4kE El BFAFAFAEAFAGAFAEALAFAGAHAHAFAFIE E EJL   
! 
! 
!
$ 
$ 
$  	 J
+1 +1 +1 +1 +1Z" " "X/ X/ X/t* * *X. . .. . .&. . . .        $   \7 7 7&1 1 1   \ 
 
 \
@ @ @U U U Un	' 	' 	'     \(  ? ? ?	 	 	   \+ + + +  , , , ,1 1 1
$( $( $( $(L    4 4 4 4 4 4 4r   r   )r  r"  r0  html.entitiesr   r2  xml.sax.saxutilsrC   r   r^   r   r   r   r   r	   r
   r   	sanitizerr   r   utilr   urlsr   r   r   	Namespacer   r   r   r   <module>rz     s5  8        				           D D D D D D D D D D D D D D D D D D 5 5 5 5 5 5 5 5             I I I I I I I I I Ig4 g4 g4 g4 g4

g4 g4 g4 g4 g4r   