Ë
    é�†jV+  ã                   óH  — d Z 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ZddlZddl	m
Z
mZ ddlmZmZ ddlmZ ddlmZ  ej&                  «       Zde_        ej,                  e_        dZed	z   Zd
ZdZdZedddœZd\  ZZdZ eddfd„Z!dd„Z"d„ Z#d„ Z$d„ Z%e&dk(  r e%«        yy)u]  ä¸Šé¥¶å¸‚å¹¿ä¿¡åŒºäººæ°‘æ”¿åºœ (www.srx.gov.cn) çŽ¯è¯„å…¬ç¤º â€” UCAP zoom
æ³¨æ„�: srx.gov.cn = ä¸Šé¥¶å¹¿ä¿¡åŒº (ä¸�æ˜¯ä¸Šé¥¶å¸‚), è·¯å¾„ /srx/hpgs/
åˆ—è¡¨: /srx/hpgs/list.shtml + list_{N}.shtml (æ¯�é¡µ10æ�¡)
è¯¦æƒ…: /srx/hpgs/{YYYYMM}/{hash}.shtml, æ­£æ–‡ id=content å®¹å™¨
ç”¨æ³•: python3 crawl_srx_hpgs.py [--pages 5] [--out /tmp/srx_hpgs.jsonl]
é    N)ÚRequestÚurlopen)Ú	HTTPErrorÚURLError)Úurljoin©ÚBeautifulSoupFzhttps://www.srx.gov.cnz/srx/hpgs/list.shtmlu   ä¸Šé¥¶å¹¿ä¿¡åŒº-çŽ¯è¯„å…¬ç¤ºu   æ±Ÿè¥¿zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36z?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8zzh-CN,zh;q=0.9)z
User-AgentÚAcceptzAccept-Language)g      ð?gš™™™™™ù?é
   é   é   c           
      ó\  — t        t        «      }||d<   t        |«      D ]D  }	 t        | |¬«      }t	        ||t
        ¬«      }|j                  «       j                  dd¬«      c S  y# t        $ rY}|j                  dv rY d }~ yt        d	|j                  › d
| dd  › �d¬«       t        j                  d|dz  z   «       Y d }~Œ¥d }~wt        t        t        f$ rO}t        dt!        |«      j"                  › d
| dd  › �d¬«       t        j                  d|dz  z   «       Y d }~�Œd }~ww xY w)NÚReferer)Úheaders)ÚtimeoutÚcontextúutf-8Úignore)Úerrors)i”  iš  Ú z  [HTTP z] iÄÿÿÿT©Úflushr   z  [ERR )ÚdictÚHEADERSÚranger   r   ÚSSL_CTXÚreadÚdecoder   ÚcodeÚprintÚtimeÚsleepr   ÚTimeoutErrorÚOSErrorÚtypeÚ__name__)	ÚurlÚrefererr   Úretriesr   ÚattemptÚreqÚrespÚes	            ú#/root/gov_crawler/crawl_srx_hpgs.pyÚfetchr/   !   s  € Ü”7‹m€GØ €GˆIÑÜ˜“>ò (ˆð	(Ü˜# wÔ/ˆCÜ˜3¨¼ÔAˆDØ—9‘9“;×%Ñ% g°hÐ%Ó?Ò?ð	(ð øô ò 	(Ø�v‰v˜Ñ#ÝÜ�H˜QŸV™V˜H B s¨3¨4 y kÐ2¸$Õ?Ü�J‰J�q˜7 Q™;‘×'Ñ'ûÜœ,¬Ð0ò 	(Ü�GœD ›G×,Ñ,Ð-¨R°°C°D°	¨{Ð;À4ÕHÜ�J‰J�q˜7 Q™;‘×'Ò'ûð	(ús*   ¤?A(Á(	D+Á1CÂ;CÃD+ÃAD&Ä&D+c                 ó–  — |xs t         }t        | d«      }|j                  g d¢«      D ]  }|j                  «        Œ |j                  t	        j
                  d«      «      D ]4  }|j                  d¬«      s|j                  «       n|j                  «        Œ6 |j                  d«      D ]  }|j                  «        Œ |j                  d«      D ]‡  }|j                  d«      xs |j                  d	«      xs d
}|rK|j                  d«      r|nt        ||«      }|j                  d|¬«      }d|_        |j                  |«       Œx|j                  «        Œ‰ |j                  d«      D ][  }dD ]  }	|	|j                  v sŒ||	= Œ t        |j                  «      D ](  }	|	j                  d«      s|	j                  d«      sŒ&||	= Œ* Œ] |j                  g d¢«      D ]  }|j                  «        Œ |j                  d«      D ]]  }|j                  dd
«      }
|
r4|
j                  d«      s#|
j                  d«      r|
nt        ||
«      |d<   ŒK|
sŒN|j                  «        Œ_ |j                  d«      D ]I  }|j                  d¬«      rŒ|j!                  d«      rŒ(|j!                  d«      rŒ:|j                  «        ŒK t#        |«      S )Núhtml.parser)ÚscriptÚstyleÚiframeÚobjectÚembedÚformÚinputÚbuttonz^[a-zA-Z]+:[a-zA-Z]+$T©ÚstripÚucapcontentÚimgÚsrczdata-srcr   ÚhttpÚa©Úhrefu   æŸ¥çœ‹å›¾ç‰‡)r3   ÚclassÚalignÚvalignÚborderÚcellpaddingÚcellspacingÚwidthÚheightÚbgcolorÚfaceÚcolorÚsizeÚlangÚdirÚ	setedariaÚtabindexÚrolezaria-zdata-)ÚdivÚspanÚfontÚcenterÚbÚstrongÚemÚiÚuÚsÚlabelrB   Ú
javascriptÚpÚtable)ÚBASEr	   Úfind_allÚ	decomposeÚreÚcompileÚget_textÚunwrapÚgetÚ
startswithr   Únew_tagÚstringÚreplace_withÚattrsÚlistÚfindÚstr)ÚhtmlÚbase_urlÚbaseÚsoupÚtr=   r>   Úabs_srcr@   ÚattrrB   r`   s               r.   Ú
clean_htmlry   4   sp  € ØÒ”t€DÜ˜˜}Ó-€DØ�]‰]ÒfÓgò ˆØ	�‰�ðð �]‰]œ2Ÿ:™:Ð&>Ó?Ó@ò DˆØŸ*™*¨4˜*Ô0ˆ�‰Œ
°a·k±k³mùðDð �]‰]˜=Ó)ò ˆØ	�‰�
ðà�}‰}˜UÓ#ò ˆØ�g‰g�e‹nÒ9 §¡¨
Ó 3Ò9°rˆÙØ Ÿ^™^¨FÔ3‘c¼ÀÀsÓ9KˆGØ—‘˜S w�Ó/ˆAØ%ˆAŒHØ×Ñ˜QÕà�M‰M�Oðð �]‰]˜4Ó ò ˆð6ò 	ˆDð �q—w‘wŠØ�d‘Gð		ô
 ˜Ÿ™“Mò 	ˆDØ�‰˜wÔ'¨4¯?©?¸7Õ+CØ�d‘Gñ	ðð �]‰]ÒiÓjò ˆØ	�‰�
ðà�]‰]˜3Óò ˆØ�u‰u�V˜RÓ ˆÙ˜Ÿ™¨Ô5Ø $§¡°Ô 7™¼WÀTÈ4Ó=PˆAˆfŠIÚØ�K‰K�Mðð �]‰]˜3Óò ˆØ�z‰z ˆzÕ%¨a¯f©f°W­oÀaÇfÁfÈSÅkØ�K‰K�Mðô ˆt‹9Ðó    c                 ó  — t        | d«      }g }|j                  dd¬«      D ]œ  }|d   }t        j                  d|«      }|sŒ!|j	                  d«      xs |j                  d¬«      xs d	j                  «       }|j                  d
«      }|dd › d|dd › d�}|sŒz|j                  |t        t        |«      |dœ«       Œž t        «       g }	}|D ]/  }
|
d   |vsŒ|j                  |
d   «       |	j                  |
«       Œ1 |	S )u+   åˆ—è¡¨: a[href=/srx/hpgs/YYYYMM/hash.shtml]r1   r@   TrA   rB   z%/srx/hpgs/(\d{6})/([0-9a-f]+)\.shtml$Útitler:   r   é   Né   ú-é   z-01)r|   r'   Údater'   )r	   rc   re   Úsearchri   rg   r;   ÚgroupÚappendr   rb   ÚsetÚadd)rr   ru   Úitemsr@   rB   Úmr|   r�   ÚseenÚoutÚits              r.   Úparse_list_htmlrŒ   _   s  € ä˜˜}Ó-€DØ€EØ�]‰]˜3 Tˆ]Ó*ò 	UˆØ�‰yˆÜ�I‰IÐ>ÀÓEˆÙØØ—‘�w“Ò? 1§:¡:°D :Ó#9Ò?¸R×FÑFÓHˆØ�w‰w�q‹zˆØ�r˜�(�˜1˜T ! A˜Y˜K sÐ+ˆÚØ�L‰L 5´¼¸tÓ1DÈdÑSÕTð	Uô “�rˆ#€DØò ˆØˆe‰9˜DÒ Ø�H‰H�R˜‘YÔØ�J‰J�r�Nðð €Jrz   c                 óº  ‡— ddl m}  || d«      Šˆfd„} |d«      xs d} |d«      xs d} |d«      xs d}‰j                  d	d
¬«      xs‘ ‰j                  d	d
¬«      xs| ‰j                  d	d¬«      xsg ‰j                  d	d¬«      xsR ‰j                  d	d¬«      xs= ‰j                  d	d¬«      xs( ‰j                  d	d¬«      xs ‰j                  dd
¬«      }|�r|j                  d	d¬«      D ]  }|j	                  «        Œ |j                  d«      xs& |j                  d	d¬«      xs |j                  d«      }	|j                  d	d¬«      xs |j                  d	d¬«      }
|	r|	}n|
r|
}|j                  g d¢«      D ]$  }|j                  d«      �Œ|j	                  «        Œ& |j                  d«      D ]  }|j	                  «        Œ t        j                  dt        |«      «      D ]  }Œ d}g }|�r1|j                  dd¬«      D ]ˆ  }|d   j                  «       }t        j                  d|«      sd |v sŒ1|j                  d¬!«      xs d"}|j                  d#«      r|nt        ||«      }|j                  ||f«       |j	                  «        ŒŠ t        t        |«      |«      }t        j                   d$d|t        j"                  ¬%«      }t        j                   d&d|t        j"                  ¬%«      }|r.dj%                  d'„ |D «       «      }|d(z   |z   j'                  «       }|s‰j                  d)«      }g }|D ]?  }|j                  d¬!«      }t)        |«      d*kD  sŒ$|j                  t)        |«      |f«       ŒA |r&t+        |d+„ ¬,«      d-   }t        t        |«      |«      }||r|d d. nd|||D ��cg c]
  \  }}||d/œ‘Œ c}}d0œS c c}}w )1Nr   r   r1   c                 óÆ   •— ‰j                  dd| i¬«      xs# ‰j                  dd| j                  «       i¬«      }|r#|j                  d«      xs dj                  «       S dS )NÚmetaÚname)rn   Úcontentr   )rp   Úlowerri   r;   )r�   rˆ   ru   s     €r.   r�   zparse_detail_html.<locals>.metax   s_   ø€ Ø�I‰I�f V¨T NˆIÓ3Òf°t·y±yÀÐPVÐX\×XbÑXbÓXdÐOe°yÓ7fˆÙ34�—‘�iÓ Ò& B×-Ñ-Ó/Ð<¸"Ð<rz   ÚArticleTitler   ÚPubDateÚContentSourcerT   r‘   )Úid)Úclass_ÚzoomÚzwconÚ	zwcontentÚ
TRS_EditorÚtdÚpathr<   ÚarticleÚmainContentÚmainBox)Úh1Úh2Úh3ra   Úpublishtimeu   ã€�å­—ä½“[^ã€‘]*ã€‘r@   TrA   rB   zB\.(pdf|doc|docx|xls|xlsx|zip|rar|caj|wps|et|jpg|jpeg|png|gif|mp4)$Údownloadr:   u   é™„ä»¶r?   u   <p>\s*æ‚¨çš„ä½�ç½®ï¼š.*?</p>)Úflagsu   æ‚¨çš„ä½�ç½®ï¼š.*?&gt;c              3   ó4   K  — | ]  \  }}d |› d|› d�–— Œ y­w)z<p><a href="z">z</a></p>N© )Ú.0rv   Úfus      r.   ú	<genexpr>z$parse_detail_html.<locals>.<genexpr>¥   s#   è ø€ ÒTÁÀÀB˜l¨2¨$¨b°°°8Ô<ÑTùs   ‚ú
r`   é   c                 ó   — | d   S )Nr   r¨   )Úxs    r.   ú<lambda>z#parse_detail_html.<locals>.<lambda>¯   s
   € ¨A¨a©D€ rz   )Úkeyr}   r   )ÚfileNameÚfileUrl)r|   Úpublish_dater‘   ÚsourceÚattachments)Úbs4r	   rp   rc   rd   Úfind_parentre   Úfindallrq   r’   r‚   rg   rj   r   r„   ry   ÚsubÚSÚjoinr;   ÚlenÚmax)rr   r'   r	   r�   r|   Úpubrµ   r˜   r�   ÚucÚmcrv   Úelrˆ   ÚbodyÚ	att_linksr@   Úhrª   Úatt_pÚpsÚcandsr`   ÚtxtÚbestru   s                            @r.   Úparse_detail_htmlrË   u   sÃ  ø€ Ý!Ù˜˜}Ó-€Dô=ñ �Ó Ò& B€EÙ
ˆy‹/Ò
˜R€CÙ�/Ó"Ò( b€FØ�I‰I�e 	ˆIÓ*ò S¨d¯i©i¸Ài¨iÓ.Pò SØ�I‰I�e ˆIÓ'òSØ+/¯9©9°UÀ6¨9Ó+JòSà�I‰I�e GˆIÓ,òSà04·	±	¸%È°	Ó0TòSð �I‰I�e LˆIÓ1òSð 6:·Y±Y¸tÈ	°YÓ5Rð 	ò à—M‘M %°�MÓ7ò 	ˆDØ�N‰NÕð	ð �Y‰Y�}Ó%Òg¨¯©°5À¨Ó)OÒgÐSW×S\ÑS\Ð]fÓSgˆØ�Y‰Y�u ]ˆYÓ3ÒY°t·y±yÀÈy°yÓ7YˆÙØ‰DÙØˆDà—‘Ò1Ó2ò 	ˆAØ�}‰}˜WÓ%Ñ-Ø—‘•ð	ð —-‘- Ó.ò 	ˆBØ�L‰L�Nð	ä—‘Ð2´C¸³IÓ>ò 	ˆAØð	à€DØ€IÚØ—‘˜s¨�Ó.ò 	ˆAØ�&‘	—‘Ó!ˆAÜ�y‰yÐ^Ð`aÔbÐfpÐtuÒfuØ—J‘J T�JÓ*Ò6¨h�ØŸ,™, vÔ.‘Q´G¸CÀ³O�Ø× Ñ  ! R Ô)Ø—‘•ð	ô œ#˜d›) SÓ)ˆä�v‰vÐ5°r¸4ÄrÇtÁtÔLˆÜ�v‰vÐ/°°TÄÇÁÔFˆÙØ—G‘GÑTÈ)ÔTÓTˆEØ˜4‘K %Ñ'×.Ñ.Ó0ˆDÙØ�]‰]˜3ÓˆØˆØò 	,ˆAØ—*‘* 4�*Ó(ˆCÜ�3‹x˜"‹}Ø—‘œc #›h¨˜]Õ+ð	,ñ Ü�u¡.Ô1°!Ñ4ˆDÜœc $›i¨Ó-ˆDàÙ$'˜˜C˜R™¨RØØØDM×N¹5¸1¸b Q°2Ó6ÓNñð ùó
 Os   ÏOc                  óì	  — t        j                  «       } | j                  dt        dd¬«       | j                  dt        d¬«       | j                  dd	¬
«       | j                  dt        d¬«       | j	                  «       }ddddddœ}t        |j                  dd¬«      }t        «       }t        j                  j                  |j                  «      rDt        |j                  d¬«      D ]*  }	 |j                  t        j                  |«      d   «       Œ, t        t         «      }|st#        dd¬«       y d}t%        j&                  d|«      }|rt        |j)                  d«      «      }|j*                  dkD  rt-        ||j*                  «      }t#        d|› �d¬«       g }	t/        |j0                  |dz   «      D ]¾  }
|
dk(  rt         nt         j3                  dd«      › d|
› d�}t        |«      }|st#        d|
› d�d¬«        nwt5        |«      }|	j7                  |«       t#        d|
› dt9        |«      › dt9        |	«      › �d¬«       t;        j<                  t?        j@                  tB        tD        «      «       ŒÀ t9        |	«      |d<   t#        d t9        |	«      › d!t9        |«      › d"�d¬«       |	D �cg c]  }|d#   |vsŒ|‘Œ }}t#        d$t9        |«      › �d¬«       tG        |d«      D �]»  \  }}t        |d#   «      }|sR|d%xx   dz  cc<   t#        d&|› d't9        |«      › d(|d#   › �d¬«       |d%   |jH                  k\  rt#        d)d¬«        �nWŒitK        ||d#   «      }|d*   s|d*   |d*<   |d+   s|d,   |d+<   |d-   }t9        |«      d.k  r|d/xx   dz  cc<   |d*   |d+   ||d#   |d#   tL        tN        t%        jP                  d0d1|«      jS                  «       d d2 d|d3   |d3   |d4   d5d6d7d8œ}|jU                  t        jV                  |d9¬:«      d;z   «       |jY                  «        |d<xx   dz  cc<   |d=z  dk(  s|t9        |«      k(  r(t#        d&|› d't9        |«      › d>|d<   › d?|d%   › �d¬«       t;        j<                  t?        j@                  tB        tD        «      «       �Œ¾ |j[                  «        t#        d@t        jV                  |d9¬:«      › �d¬«       y # t        $ r Y �Œw xY wc c}w )ANz--pagesr   u   0=å…¨é‡�)r%   ÚdefaultÚhelpz--start-pager}   )r%   rÍ   z--outz/tmp/srx_hpgs.jsonl)rÍ   z--max-detail-failé   )r‡   Ú	detail_okÚdetail_failÚemptyÚskippedr@   r   )ÚencodingÚpage_urlu   é¦–åˆ—è¡¨é¡µæŠ“å�–å¤±è´¥Tr   éd   u   å…±\s*(\d+)\s*é¡µu
   æ€»é¡µæ•°=z.shtmlr   Ú_u   é¡µu    æŠ“å�–å¤±è´¥, å�œæ­¢ç¿»é¡µz: u    æ�¡, ç´¯è®¡ r‡   u   åˆ—è¡¨å®Œæˆ�: u    æ�¡ (å·²æŠ“è¿‡ ú)r'   u   å¾…æŠ“è¯¦æƒ…: rÑ   u   è¯¦æƒ… ú/u   : æŠ“å�–å¤±è´¥ u   å¤±è´¥è¿‡å¤š, ä¸­æ­¢r|   r´   r�   r‘   r   rÒ   z<[^>]+>ú éÈ   rµ   r¶   u   çŽ¯è¯„Úotherzcrawl_srx_hpgs.py)r|   r´   r‘   rÕ   Ú
source_urlÚ	site_nameÚ
group_nameÚsummaryÚ	date_rankÚauthorÚcontent_sourcer¶   ÚcategoryÚindustryÚscript_nameF)Úensure_asciir¬   rÐ   é   z: ok=z fail=u   å®Œæˆ�: ).ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsÚopenrŠ   r…   Úosr�   Úexistsr†   ÚjsonÚloadsÚ	Exceptionr/   ÚLIST_URLr    re   r‚   rƒ   ÚpagesÚminr   Ú
start_pageÚreplacerŒ   Úextendr½   r!   r"   ÚrandomÚuniformÚ	SLEEP_MINÚ	SLEEP_MAXÚ	enumerateÚmax_detail_failrË   Ú	SITE_NAMEÚGROUPrº   r;   ÚwriteÚdumpsr   Úclose)ÚapÚargsÚstatsÚout_fpÚ	done_urlsÚlinerr   Úpages_totalrˆ   Ú	all_itemsÚpgr'   rÅ   r‡   r‹   Ú	new_itemsÚidxÚdr‘   Úrecs                       r.   Úmainr  º   sª  € Ü	×	 Ñ	 Ó	"€BØ‡O�O�I¤C°¸€OÔDØ‡O�O�N¬°a€OÔ8Ø‡O�O�GÐ%:€OÔ;Ø‡O�OÐ'¬c¸2€OÔ>Ø�=‰=‹?€Dà a¸ÀAÐRSÑT€EÜ�$—(‘(˜C¨'Ô2€FÜ“€IÜ	‡w�w‡~�~�d—h‘hÔÜ˜Ÿ™¨GÔ4ò 	ˆDðØ—‘œdŸj™j¨Ó.¨zÑ:Õ;ð	ô ”‹?€DÙÜÐ(°Õ5ØØ€KÜ
�	‰	Ð&¨Ó-€AÙÜ˜!Ÿ'™' !›*“oˆØ‡z�z�A‚~Ü˜+ t§z¡zÓ2ˆÜ	ˆJ�{�mÐ
$¨DÕ1à€IÜ�D—O‘O [°1¡_Ó5ò 	9ˆØ š'�h¬(×*:Ñ*:¸8ÀBÓ*GÐ)HÈÈ"ÈÈVÐ'TˆÜ�#‹JˆÙÜ�C˜�tÐ6Ð7¸tÕDÙÜ Ó"ˆØ×Ñ˜ÔÜ��B�4�rœ#˜e›*˜ ]´3°y³>Ð2BÐCÈ4ÕPÜ�
‰
”6—>‘>¤)¬YÓ7Õ8ð	9ô ˜“^€Eˆ'�NÜ	ˆNœ3˜y›>Ð*Ð*:¼3¸y»>Ð:JÈ!Ð
LÐTXÕYà'ÖF˜¨2¨e©9¸IÒ+E’ÐF€IÐFÜ	ˆNœ3˜y›>Ð*Ð
+°4Õ8Ü˜Y¨Ó*ó '9‰ˆˆRÜ�R˜‘YÓˆÙØ�-Ó  AÑ%Ó Ü�G˜C˜5 ¤# i£.Ð!1°ÀÀEÁÀÐLÐTXÕYØ�]Ñ# t×';Ñ';Ò;ÜÐ,°DÕ9ÚØÜ˜d B u¡IÓ.ˆØ�ŠzØ˜G™ˆAˆg‰JØ�Ò Ø " 6¡
ˆAˆnÑØ�I‘,ˆÜˆw‹<˜"ÒØ�'‹N˜aÑ‹Nà�w‘ZØ˜nÑ-ØØ˜5™	Ø˜U™)Ü"ÜÜ—v‘v˜j¨#¨wÓ7×=Ñ=Ó?ÀÀÐEØØ˜‘kØ ™kØ˜]Ñ+Ø ØØ.ñ
ˆð" 	�‰”T—Z‘Z °%Ô8¸4Ñ?Ô@Ø�‰ŒØˆkÓ˜aÑÓØ�‰8�qŠ=˜C¤3 y£>Ò1Ü�G˜C˜5 ¤# i£.Ð!1°°u¸[Ñ7IÐ6JÈ&ÐQVÐWdÑQeÐPfÐgÐosÕtÜ�
‰
”6—>‘>¤)¬YÓ7Ö8ðO'9ðP ‡L�L„NÜ	ˆH”T—Z‘Z °EÔ:Ð;Ð
<ÀDÖIøôQ ò Úðüò: Gs   Ã/'S!Ê4S1ËS1Ó!	S.Ó-S.Ú__main__)N)'Ú__doc__ré   rñ   rï   re   Úsysr!   rú   ÚsslÚurllib.requestr   r   Úurllib.errorr   r   Úurllib.parser   r·   r	   Úcreate_default_contextr   Úcheck_hostnameÚ	CERT_NONEÚverify_moderb   rô   r   r  ÚUAr   rü   rý   ÚMAX_FAILr/   ry   rŒ   rË   r  r&   r¨   rz   r.   ú<module>r      sÄ   ðñ÷ 6× 5× 5× 5ß +ß ,Ý  Ý à
$ˆ#×
$Ñ
$Ó
&€Ø€Ô Ø—m‘m€Ô à€ØÐ(Ñ(€Ø*€	Ø€Øv€àØOØ'ñ€ð
  Ñ €	ˆ9Ø€ð  ¨°Qó ó&(òVò,BòJWJðt ˆzÒÙ…Fð rz   