+
    }iv                    ~    ^ RI Ht ^ RIt^ RIHt ^ RIHt ]'       d   ^ RIHt ^ RIH	t
 . ROtR R ltRR	 R
 lltR# )    )annotationsN)suppress)TYPE_CHECKING)Page)Requestc                    V ^8  d   QhRRRR/# )   pager   returnNone )formats   "u/Users/ahmad/.openclaw/workspace/my-crawler/.venv/lib/python3.14/site-packages/crawlee/crawlers/_playwright/_utils.py__annotate__r      s     5 5 5 5    c           	       a aaaaa	a
"   ^ o
Ro^ o^o^ o	^ oR V3R llpS P                  RV4       R V V
3R llpR VVVVV	3R llp\        P                  ! V! 4       R	R
7      p S'       g+   V! 4       G Rj  xL
  S P                  ^4      G Rj  xL
  K2   VP	                  4       '       g   VP                  4        \        \        P                  4      ;_uu_ 4        VG Rj  xL
  RRR4       R#  L| Le L  + '       g   i     R# ; i  TP	                  4       '       g   TP                  4        \        \        P                  4      ;_uu_ 4        TG Rj  xL 
  RRR4       i   + '       g   i     i ; i; i5i)zEScroll to the bottom of a page, handling loading of additional items.Fc                    V ^8  d   QhRRRR/# )r	   requestPlaywrightRequestr   r   r   )r   s   "r   r   %infinite_scroll.<locals>.__annotate__$   s     # #0 #T #r   c                @   < V P                   R9   d   S^,          oR# R# )xhrN)r   fetch	websocketother)resource_type)r   new_request_counts   &r   track_request&infinite_scroll.<locals>.track_request$   s#      $JJ" Kr   r   c                   V ^8  d   QhRR/# r	   r   r   r   )r   s   "r   r   r   +   s     # #$ #r   c                    <"   SP                  R 4      G Rj  xL
 p T ;'       g    RpSP                  P                  ^ VR7      G Rj  xL
  SV,          oR#  L@ L5i)z () => document.body.scrollHeightNi'  )delta_xdelta_y)evaluatemousewheel)body_scroll_heightdeltar
   scrolled_distances     r   scrollinfinite_scroll.<locals>.scroll+   s[     #'==1S#TT"++ejjq%888 	U" U 	9s&   AAA#A	A
AAc                   V ^8  d   QhRR/# r!   r   )r   s   "r   r   r   4   s     # #$ #r   c                    <"    SS8X  d   S^,          oSS8  d   R o R# M^ oSo\         P                  ! ^4      G Rj  xL
  KA   L5i)TN)asynciosleep)finishedmatch_countmatch_count_thresholdr   old_request_counts   r   check_finished'infinite_scroll.<locals>.check_finished4   sS       $55q "77#H 8  $5!--"""s   ;AAA#infinite_scroll_check_finished_task)nameN)onr/   create_taskwait_for_timeoutdonecancelr   CancelledError)r
   r   r+   r5   
check_taskr1   r2   r3   r   r4   r*   s   f    @@@@@@r   infinite_scrollr@      s1    HK# #
 	GGI}%# ## #  $$^%5<abJ(NN'',,,    g,,-- .- ,
  .--   g,,-- .---s   AF&D .
D 8C59D C7D F/1F C;&C9'C;+
F5D 7D 9C;;D		FAE?E,	E E,	#	E?,E<7E??Fc               (    V ^8  d   QhRRRRRRRR/# )r	   r
   r   url_patternszlist[str] | Noneextra_url_patternsr   r   r   )r   s   "r   r   r   Q   s2     d d
d.dK[d	dr   c                  "   \        T;'       g    \        4      pTP                  T;'       g    . 4       V P                  P                  '       d+   V P                  P                  P
                  P                  MRpVR8X  d[   V P                  P                  V 4      G Rj  xL
 pVP                  R4      G Rj  xL
  VP                  RRV/4      G Rj  xL
  R# V Uu. uF,  qUP                  R4      '       g   K  VP                  R4      NK.  	  ppV Uu. uF  qUP                  R4      '       d   K  VNK  	  ppV'       d/   V P                  RR	P                  V4       R
2R 4      G Rj  xL
  V'       d1   V P                  RR	P                  V4       R
2R 4      G Rj  xL
  R# R#  EL L Lu upi u upi  LO L5i)a  Blocks network requests matching specified URL patterns.

Args:
    page: Playwright Page object to block requests on.
    url_patterns: List of URL patterns to block. If None, uses default patterns.
    extra_url_patterns: Additional URL patterns to append to the main patterns list.
	undefinedchromiumNzNetwork.enablezNetwork.setBlockedURLsurls*.z**/*.{,z}*c                "    V P                  4       # Nabortroute_s   &&r   <lambda> block_requests.<locals>.<lambda>j   s    SXS^S^S`r   z**/{c                "    V P                  4       # rK   rL   rN   s   &&r   rQ   rR   m   s    UZU`U`Ubr   )rH   .)list#_DEFAULT_BLOCK_REQUEST_URL_PATTERNSextendcontextbrowserbrowser_typer8   new_cdp_sessionsend
startswithstriprO   join)r
   rB   rC   rZ   clientpattern
extensionsspecific_filess   &&&     r   block_requestsrd   Q   sp     KK(KLL*00b1=A\\=Q=Q=Q4<<''4499WbLz!||33D99kk*+++kk2V\4JKKK9EigI[I[\gIh)gmmD)
i1=egEWEWXcEd''e**wsxx
';&<C@B`aaa**uSXXn%=$>cBDbccc  :+Kie b ds   -G"GAG$F1%G=F4>GF6
G$F8F8GF=9F=?3G2G3G?)G(G)	G4G6G8GG)
z.cssz.webpz.jpgz.jpegz.pngz.svgz.gifz.woffz.pdfz.zip)NN)
__future__r   r/   
contextlibr   typingr   playwright.async_apir   r   r   rV   r@   rd   r   r   r   <module>ri      s4    "    )A' #5pd dr   