Ë
    š„j ™  ã            
       óþ  — 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	m
Z
mZmZmZmZmZ d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd:d„Zd;dedefd„Zi dd“dd“dd“dd“d eej8                  «      “d eej:                  «      “d eej<                  «      “dej>                  “dej@                  “d eejB                  «      “d eejD                  «      “d eejF                  «      “d eejH                  «      “d eejJ                  «      “d eejL                  «      “d  eejN                  «      “d! eejP                  «      “ eejR                  «       eejT                  «       eejV                  «      eeed"œ¥Z,h d#£Z-d$Z. e/ e0 e0d%d&d'd¬(«      d)diŽ«      Z1d*Z2d+Z3 G d,„ d-«      Z4 G d.„ d/e	«      Z5 G d0„ d1e	«      Z6 G d2„ d3e	«      Z7 G d4„ d5e jp                  «      Z9 G d6„ d7«      Z: G d8„ d9«      Z;y)<é    Né   )Ú
NO_DEFAULTÚExtractorErrorÚfunction_with_reprÚ
js_to_jsonÚremove_quotesÚtruncate_stringÚunified_timestampÚwrite_stringc                 ó$   — | dz  } | dz  r| dz
  S | S )z.Converts an integer to a signed 32-bit integerl   ÿÿ l        l        © )Úns    úF/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/jsinterp.pyÚint_to_int32r      s!   € àˆ�O€AØˆ:‚~Ø�;‰ÐØ€Hó    c                 ó   ‡ ‡— d„ Šˆ ˆfd„}|S )Nc                 óÜ   — | d t         fv ryt        j                  t        «      5  t	        j
                  | «      r
	 d d d «       y	 d d d «       t        t        | «      «      S # 1 sw Y   ŒxY w©Nr   )ÚJS_UndefinedÚ
contextlibÚsuppressÚ	TypeErrorÚmathÚisnanÚintÚfloat)Úxs    r   Úzeroisez_js_bit_op.<locals>.zeroise   s`   € Ø�”|Ð$Ñ$ØÜ× Ñ ¤Ó+ñ 	Ü�z‰z˜!Œ}Ø÷	ð 	Ø÷	ô ”5˜“8‹}Ð÷	ð 	ús   ¥A"Á"A+c           
      ód   •— t         ‰t         ‰| «      «      t         ‰|«      «      «      «      S ©N)r   )ÚaÚbÚopr   s     €€r   Úwrappedz_js_bit_op.<locals>.wrapped&   s'   ø€ Ü™Bœ|©G°A«JÓ7¼ÁgÈaÃjÓ9QÓRÓSÐSr   r   )r#   r$   r   s   ` @r   Ú
_js_bit_opr%      s   ù€ òõTð €Nr   c                 ó   ‡ — ˆ fd„}|S )Nc                 óP   •— t         | |fv rt        d«      S  ‰| xs d|xs d«      S ©NÚnanr   ©r   r   ©r!   r"   r#   s     €r   r$   z_js_arith_op.<locals>.wrapped.   s.   ø€ Ü˜A˜q˜6Ñ!Ü˜“<ÐÙ�!’&�q˜!š&˜qÓ!Ð!r   r   ©r#   r$   s   ` r   Ú_js_arith_opr-   ,   s   ø€ ô"ð
 €Nr   c                 ó`   — t         | |fv s| s|st        d«      S |r	| xs d|z  S t        d«      S )Nr)   r   Úinfr*   ©r!   r"   s     r   Ú_js_divr1   6   s5   € Ü˜˜1�vÑ¡a©1Ü�U‹|ÐÙˆAŠF��a‰<Ð.¤%¨£,Ð.r   c                 óB   — t         | |fv s|st        d«      S | xs d|z  S r(   r*   r0   s     r   Ú_js_modr3   <   s(   € Ü˜˜1�vÑ¡QÜ�U‹|ÐØŠF��a‰<Ðr   c                 óD   — |syt         | |fv rt        d«      S | xs d|z  S )Nr   r)   r   r*   r0   s     r   Ú_js_expr5   B   s,   € ÙØÜ	˜!˜Q˜Ñ	Ü�U‹|ÐØŠF��q‰=Ðr   c                 ó   ‡ — ˆ fd„}|S )Nc                 óB   •— | |hd t         hk  r	 ‰| | «      S  ‰| |«      S r    )r   r+   s     €r   r$   z_js_eq_op.<locals>.wrappedL   s*   ø€ Øˆqˆ6�dœLÐ)Ò)Ù�a˜“8ˆOÙ�!�Q‹xˆr   r   r,   s   ` r   Ú	_js_eq_opr8   J   s   ø€ ôð
 €Nr   c                 ó   ‡ — ˆ fd„}|S )Nc                 óÂ   •— t         | |fv ryt        | t        «      st        |t        «      r# ‰t        | xs d«      t        |xs d«      «      S  ‰| xs d|xs d«      S )NFr   )r   Ú
isinstanceÚstrr+   s     €r   r$   z_js_comp_op.<locals>.wrappedV   sW   ø€ Ü˜A˜q˜6Ñ!ØÜ�aœÔ¤¨A¬sÔ!3Ù”c˜!š&˜q“k¤3 q¢v¨A£;Ó/Ð/Ù�!’&�q˜!š&˜qÓ!Ð!r   r   r,   s   ` r   Ú_js_comp_opr=   T   s   ø€ ô"ð €Nr   Tc                 óÄ   — | ddddt         fv r|S t        j                  t        «      5  t	        j
                  | «      r|cddd«       S 	 ddd«       |S # 1 sw Y   |S xY w)z6Simulate JS's ternary operator (cndn?if_true:if_false)FNr   Ú )r   r   r   r   r   r   )ÚcndnÚif_trueÚif_falses      r   Ú_js_ternaryrC   `   sb   € à��t˜Q ¤LÐ1Ñ1ØˆÜ	×	Ñ	œYÓ	'ñ Ü�:‰:�dÔØ÷ñ Ø÷ð €N÷ð €Nús   ©AÁAÚvalÚradixc                 ó†  ‡
— |t         d fv rd}|t        dd«      v sJ d«       ‚t        j                  | «      ry| dk(  ryt        j                  | «      r	| dk  rdS d	S |dk(  r	 d
Š
t        j                  «       }| dk  }t        | «      } t        j                  | «      \  }}t        t        j                  dt        j                  «      t        j                  | «      dz  «      }||k\  r|j                  d«       ||k\  r¹||z  }t        j                  ||z  «      \  }}|j                  t        |«      «       |dkD  xs |dk(  xr t        |«      dz  }|r[||z   dkD  rSt        t        dt!        |«      «      «      D ],  }	||	   dz   |k  r||	xx   dz  cc<    n|j#                  «        Œ. |dz  }n||k\  rŒ¹t%        t        |«      |«      \  }}|j'                  |«       |dkD  r&t%        ||«      \  }}|j'                  |«       |dkD  rŒ&|r|j'                  d«       t)        ˆ
fd„|D «       «      j+                  d«      S )Né
   é   é%   z:radix must be an integer at least 2 and no greater than 36ÚNaNr   Ú0z	-InfinityÚInfinitys&   0123456789abcdefghijklmnopqrstuvwxyz.-g        éþÿÿÿg      à?r   éÿÿÿÿc              3   ó(   •K  — | ]	  }‰|   –— Œ y ­wr    r   )Ú.0ÚdigitÚALPHABETs     €r   ú	<genexpr>z&js_number_to_string.<locals>.<genexpr>ž   s   øè ø€ Ò5 U�˜%•Ñ5ùs   ƒÚascii)r   Úranger   r   ÚisinfÚcollectionsÚdequeÚabsÚmodfÚmaxÚ	nextafterr/   ÚulpÚappendr   ÚreversedÚlenÚpopÚdivmodÚ
appendleftÚbytesÚdecode)rD   rE   ÚresultÚsignÚfractionÚintegerÚdeltarQ   Úneeds_roundingÚindexrR   s             @r   Újs_number_to_stringrm   k   s)  ø€ Ø”˜tÐ$Ñ$ØˆØ”E˜!˜R“LÑ Ð^Ð"^Ó^Ð ä‡z�z�#„ØØ
ˆa‚xØÜ‡z�z�#„Ø! Ašgˆ{Ð5¨:Ð5Ø�‚{àà8€Hä×ÑÓ €FØ�‰7€DÜ
ˆc‹(€CÜŸ	™	 #›Ñ€HˆgÜ”—‘˜r¤4§8¡8Ó,¬d¯h©h°s«m¸aÑ.?Ó@€Eà�5ÒØ�‰�bÔØ
�eÒ
Ø�‰ˆÜŸ)™) H¨uÑ$4Ó5‰ˆ�%Ø�‰”c˜%“jÔ!à! C™ÒO¨H¸©OÒ,NÄÀEÃ
ÈQÁˆÙ˜h¨Ñ.°Ò2Ü!¤%¨¬3¨v«;Ó"7Ó8ò �Ø˜%‘= 1Ñ$ uÒ,Ø˜5“M QÑ&“MÙØ—
‘
•ð	ð ˜1‘�Øð �eÓ
ô" œC ›L¨%Ó0�N€GˆUØ
×Ñ�eÔØ
�AŠ+Ü ¨Ó/‰ˆ�Ø×Ñ˜%Ô ð �A‹+ñ Ø×Ñ˜"ÔäÓ5¨fÔ5Ó5×<Ñ<¸WÓEÐEr   ú?ú??ú||ú&&ú|ú^ú&ú===ú!==ú==ú!=ú<=ú>=ú<ú>z>>z<<)ú+ú-Ú*ú%ú/z**>   r{   r|   rx   ry   rw   rz   rv   ru   z[a-zA-Z_$][\w$]*z()z{}ú[]©Ústrictr„   z'"/z&[^[\]]+(?:\[[^[\]]+(?:\[[^\]]+\])?\])?c                   ó   — e Zd Zy)r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   Ê   s   „ Ør   r   c                   ó   — e Zd Zd„ Zy)ÚJS_Breakc                 ó0   — t        j                  | d«       y )NzInvalid break©r   Ú__init__©Úselfs    r   r�   zJS_Break.__init__Ï   s   € Ü×Ñ  oÕ6r   N©r†   r‡   rˆ   r�   r   r   r   rŠ   rŠ   Î   s   „ ó7r   rŠ   c                   ó   — e Zd Zd„ Zy)ÚJS_Continuec                 ó0   — t        j                  | d«       y )NzInvalid continuerŒ   rŽ   s    r   r�   zJS_Continue.__init__Ô   s   € Ü×Ñ Ð&8Õ9r   Nr�   r   r   r   r’   r’   Ó   s   „ ó:r   r’   c                   ó   — e Zd Zd„ Zy)ÚJS_Throwc                 óD   — || _         t        j                  | d|› �«       y )NzUncaught exception )Úerrorr   r�   )r�   Úes     r   r�   zJS_Throw.__init__Ù   s!   € ØˆŒ
Ü×Ñ Ð(;¸A¸3Ð&?Õ@r   Nr�   r   r   r   r•   r•   Ø   s   „ óAr   r•   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚLocalNameSpacec                 ó`   — | j                   D ]  }||v sŒ|||<    y  || j                   d   |<   y r   ©Úmaps)r�   ÚkeyÚvalueÚscopes       r   Ú__setitem__zLocalNameSpace.__setitem__ß   s<   € Ø—Y‘Yò 	ˆEØ�eŠ|Ø"��c‘
Ùð	ð "ˆ�	‰	�!‰�SÒr   c                 ó   — t        d«      ‚)NzDeleting is not supported)ÚNotImplementedError©r�   rž   s     r   Ú__delitem__zLocalNameSpace.__delitem__æ   s   € Ü!Ð"=Ó>Ð>r   c                 ó(   — || j                   d   |<   y r   rœ   )r�   rž   rŸ   s      r   Ú	set_localzLocalNameSpace.set_localé   s   € Ø!ˆ�	‰	�!‰�SÒr   c                 óT   — || j                   d   v r| j                   d   |   S t        S r   )r�   r   r¤   s     r   Ú	get_localzLocalNameSpace.get_localì   s+   € Ø�$—)‘)˜A‘,ÑØ—9‘9˜Q‘< Ñ$Ð$ÜÐr   N)r†   r‡   rˆ   r¡   r¥   r§   r©   r   r   r   rš   rš   Þ   s   „ ò"ò?ò"ór   rš   c                   ó>   — e Zd ZddlZdZeddœd„«       Zed„ «       Z	y)ÚDebuggerr   NFéd   ©Úlevelc                 ó^   — t        ddd| z
  z  › dj                  d„ |D «       «      › d�«       y )Nz[debug] JS: z  r¬   ú c              3   óH   K  — | ]  }t        t        |«      d d «      –— Œ y­w)é2   N)r	   r<   )rP   r   s     r   rS   z!Debugger.write.<locals>.<genexpr>ù   s   è ø€ Ò OÀQ¤´°Q³¸¸R×!@Ñ Oùs   ‚ "ú
)r   Újoin)r®   Úargss     r   ÚwritezDebugger.writeö   s9   € ä�| D¨C°%©KÑ$8Ð#9ØŸ™Ñ OÈ$Ô OÓOÐPÐPRðTõ 	Ur   c                 ó   ‡ ‡— ˆ ˆfd„}|S )Nc                 óÐ  •— ‰	j                   r#|j                  «       r‰	j                  ||¬«       	  ‰
| |||g|¢­i |¤Ž\  }}‰	j                   rD|j                  «       r4|st        |«      |k7  r$‰	j                  ddg|   t        |«      d||¬«       ||fS # t        $ rD}‰	j                   r2t	        |t
        «      r|j                  }‰	j                  d|d||¬«       ‚ d }~ww xY w)Nr­   z
=> Raises:z<-|z->z=>)ÚENABLEDÚstripr¶   Ú	Exceptionr;   r   Úorig_msgÚrepr)r�   ÚstmtÚ
local_varsÚallow_recursionrµ   ÚkwargsÚretÚ
should_retr˜   ÚclsÚfs            €€r   Úinterpret_statementz6Debugger.wrap_interpreter.<locals>.interpret_statementý   sØ   ø€ Ø�{Š{˜tŸz™zœ|Ø—	‘	˜$ o�	Ô6ðÙ"# D¨$°
¸OÐ"]ÈdÒ"]ÐV\Ñ"]‘��Zð �{Š{˜tŸz™zœ|Ù¤ c£¨dÒ!2Ø—I‘I˜t T˜l¨:Ñ6¼¸S»	À5È$ÐVe�IÔfØ˜
�?Ð"øô ò Ø—;’;Ü! !¤^Ô4ØŸJ™J˜Ø—I‘I˜l¨A¨u°dÀ/�IÔRØûðús   ²B Â	C%Â!?C Ã C%r   )rÄ   rÅ   rÆ   s   `` r   Úwrap_interpreterzDebugger.wrap_interpreterû   s   ù€ õ	#ð #Ð"r   )
r†   r‡   rˆ   ÚsysÚmodulesr¹   Ústaticmethodr¶   ÚclassmethodrÇ   r   r   r   r«   r«   ò   s5   „ ÛØ€GàØó Uó ðUð ñ#ó ñ#r   r«   c                   ó0  — e Zd ZdZddej
                  ej                  ej                  ej                  ddœZ	dd„Z
 G d„ d	e«      Zd
„ Zed„ «       Zedd„«       Zedd„«       Zd„ Zdd„Zd„ Zej.                  dd„«       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚJSInterpreterr   i   i   i   )ÚdÚgÚiÚmÚsÚuÚyNc                 óV   — |i c| _         | _        |€i n|| _        t        «       | _        y r    )ÚcodeÚ
_functionsÚ_objectsÚsetÚ_undefined_varnames)r�   rÖ   Úobjectss      r   r�   zJSInterpreter.__init__  s)   € Ø%)¨2Ð"ˆŒ	�4”?Ø%˜o™°7ˆŒÜ#&£5ˆÕ r   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )úJSInterpreter.Exceptionc                 óp   •— |� |j                  «       › dt        |dd«      › �}t        ‰| �  |g|¢­i |¤Ž y )Nz in: r²   )Úrstripr	   Úsuperr�   )r�   ÚmsgÚexprrµ   rÁ   Ú	__class__s        €r   r�   z JSInterpreter.Exception.__init__%  s@   ø€ ØÐØŸ™›˜ e¬O¸DÀ"ÀbÓ,IÐ+JÐK�Ü‰GÑ˜SÐ2 4Ò2¨6Ó2r   r    )r†   r‡   rˆ   r�   Ú__classcell__)rã   s   @r   r»   rÝ   $  s   ø„ ÷	3ñ 	3r   r»   c                 óÂ   — | xj                   dz  c_         d| j                   › �}t        |«      r*t        |t        «      st        |d| j                   › d�«      }|||<   |S )Nr   Ú__yt_dlp_jsinterp_objúF<r|   )Ú$_JSInterpreter__named_object_counterÚcallabler;   r   )r�   Ú	namespaceÚobjÚnames       r   Ú_named_objectzJSInterpreter._named_object*  sa   € Ø×#Ò# qÑ(Õ#Ø& t×'BÑ'BÐ&CÐDˆÜ�CŒ=¤¨CÔ1CÔ!DÜ$ S¨B¨t×/JÑ/JÐ.KÈ1Ð*MÓNˆCØˆ	�$‰Øˆr   c                 ó�   — d}|s||fS t        |«      D ]'  \  }}|| j                  vr n|| j                  |   z  }Œ) ||dz   d  fS )Nr   r   )Ú	enumerateÚ	_RE_FLAGS)rÄ   râ   ÚflagsÚidxÚchs        r   Ú_regex_flagszJSInterpreter._regex_flags2  sd   € àˆÙØ˜$�;ÐÜ  “ò 	'‰GˆC�Ø˜Ÿ™Ñ&ÙØ�S—]‘] 2Ñ&Ñ&‰Eð	'ð �d˜3 ™7˜8�nÐ$Ð$r   c              #   óÈ  K  — d}| sy t         j                  t        j                  «       d«      }dddt	        |«      dz
  f\  }}}}d\  }	}
}}t        | «      D ]þ  \  }}|	s|t        v r|t        |   xx   dz  cc<   nI|	s||v r||   r>||xx   dz  cc<   n0|
s.|t        v r|	|d fv r|	s|s|dk7  r|	r|sd n|}	n|	dk(  r	|dv r|dk(  }|
 xr	 |	xr |dk(  }
|	 xr | xr
 |d	vxr |d
v }|	s||v r|n|j                  «       xr |}|||   k7  st        |j                  «       «      s|	s|rd}ŒÔ||k7  r|dz  }Œß| |||z
   –— |dz   d}}|dz  }|sŒø||k\  sŒþ n | |d  –— y ­w)Nz+-*/%&|^=<>!,;{}:[r   r   )NFTFr�   r‚   ú[ú\©TFz-+)	ÚdictÚfromkeysÚ_MATCHING_PARENSÚvaluesr`   rï   Ú_QUOTESÚisspaceÚany)râ   ÚdelimÚ	max_splitÚOP_CHARSÚcountersÚstartÚsplitsÚposÚ	delim_lenÚin_quoteÚescapingÚafter_opÚin_regex_char_grouprò   ÚcharÚin_unary_ops                   r   Ú	_separatezJSInterpreter._separate=  sÒ  è ø€ à'ˆÙØÜ—=‘=Ô!1×!8Ñ!8Ó!:¸AÓ>ˆØ()¨1¨a´°U³¸a±Ð(?Ñ%ˆˆv�s˜IØ<TÑ9ˆ�(˜HÐ&9Ü" 4›ò 	‰IˆC�Ù Ô(8Ñ 8ØÔ)¨$Ñ/Ó0°AÑ5Ô0Ù $¨(Ñ"2à˜D’>Ø˜T“N aÑ'”NÙØœ7‘? x°D¸$°<Ñ'?Ù¡8¨t°sª{Ù+3Ñ<O¡4ÐUY™Ø ’_¨°©Ø*.°#©+Ð'Ø#�|ÒA¨ÒA°T¸T±\ˆHØ'˜<ò NÐ0CÐ,Cò NØ'¨}Ð<òNØAEÈÀð á$,°¸Ñ1A‘tÈÏÉËÒIdÐ\dˆHà�u˜S‘zÒ!¤S¨¯©Ó):Ô%;¹xÉ;Ø�ØØ˜	Ò!Ø�q‘�ØØ�u˜c I™oÐ.Ò.Ø˜q™ !�3ˆEØ�a‰KˆFÚ˜V yÓ0Ùð9	ð: �5�6ˆlÓùs   ‚EE"ÅE"ÅE"c                 óö   — |€|xr t         |d      }t        | j                  ||d«      «      }t        |«      dk  r| j	                  d|› �|«      ‚|d   dd  j                  «       |d   j                  «       fS )Nr   r   rH   zNo terminating paren )rû   Úlistr  r`   r»   rº   )rÄ   râ   r   Ú	separateds       r   Ú_separate_at_parenz JSInterpreter._separate_at_parend  sƒ   € àˆ=ØÒ6Ô-¨d°1©gÑ6ˆEÜ˜Ÿ™ t¨U°AÓ6Ó7ˆ	Üˆy‹>˜AÒØ—-‘-Ð"7¸°wÐ ?ÀÓFÐFØ˜‰|˜A˜BÐ×%Ñ%Ó'¨°1©×);Ñ);Ó)=Ð=Ð=r   c           	      ó¼  — |dv r|dk(  t        |«      z  r5|S |dk(  r|d t        fvr$|S |dk(  rt        |g| j                  |dd«      ¢­Ž }| j                  |||«      }t        j                  |«      s|S |dk(  r&t        |t        «      st        |t        «      r|› |› �S 	 t	        |   ||«      S # t        $ r"}| j                  d|›d	|› d	|›�||¬
«      ‚d }~ww xY w)N)rp   rq   rq   ro   rn   ú:r   r}   zFailed to evaluate r°   ©Úcause)	rC   r   r  Úinterpret_expressionÚ
_OPERATORSÚgetr;   r<   r»   )	r�   r#   Úleft_valÚ
right_exprrâ   r¿   rÀ   Ú	right_valr˜   s	            r   Ú	_operatorzJSInterpreter._operatorm  s  € Ø�ÑØ�d‘
œk¨(Ó3Ò3Ø�Ø�4ŠZØ ¤lÐ3Ñ3Ø�Ø�3ŠYÜ$ XÐS°·±¸zÈ3ÐPQÓ0RÒSˆJà×-Ñ-¨j¸*ÀoÓVˆ	Ü�~‰~˜bÔ!ØÐð �Š9œ* X¬sÔ3´zÀ)ÌSÔ7QØ�Z 	˜{Ð+Ð+ð	gÜ˜b‘> (¨IÓ6Ð6øÜò 	gØ—.‘.Ð#6°x°lÀ!ÀBÀ4ÀqÈÈÐ!VÐX\Ðde�.ÓfÐfûð	gús   Â!B0 Â0	CÂ9CÃCc                 óø   — |dk(  rt        |«      S 	 t        |t        «      r|t        |«         S |t	        |«         S # t
        $ r2}|rt        cY d }~S | j                  d|› �t        |«      |¬«      ‚d }~ww xY w)NÚlengthzCannot get index r  )r`   r;   r  r   r<   r»   r   r½   )r�   rë   rò   Úallow_undefinedr˜   s        r   Ú_indexzJSInterpreter._index„  sx   € Ø�(Š?Ü�s“8ˆOð	PÜ$.¨s´DÔ$9�3”s˜3“x‘=ÐL¸sÄ3ÀsÃ8¹}ÐLøÜò 	PÙÜ#Õ#Ø—.‘.Ð#4°S°EÐ!:¼DÀ»IÈQ�.ÓOÐOûð	Pús%   ’> °> ¾	A9ÁA4ÁA9Á A4Á4A9c                 óp   — 	 t        j                  |«      S # t        $ r | j                  ||«      cY S w xY wr    )ÚjsonÚdumpsr   rí   )r�   rë   rê   s      r   Ú_dumpzJSInterpreter._dumpŽ  s7   € ð	6Ü—:‘:˜c“?Ð"øÜò 	6Ø×%Ñ% i°Ó5Ò5ð	6ús   ‚ —5´5c                 óÔ!  ‡ ‡‡‡8‡9‡:‡;‡<‡=‡>— ‰dk  r‰ j                  d«      ‚‰dz  Šd}t        ‰ j                  |d«      «      xs dg}|j                  «       j	                  «       xŠ;}|D ]   }‰ j                  |‰‰«      \  }}|sŒ||fc S  t        j                  d|«      }	|	rˆ|t        |	j                  d«      «      d  j	                  «       Š;|	j                  d«      rt        ‰ j                  ‰;‰‰«      «      ‚|	j                  d	«       }|xs t        |	j                  d	«      «      }‰;sd |fS ‰;d   t        v r‰ j                  ‰;‰;d   d«      \  }
}‰;d   d
k(  r‰ j                  |«      \  }}|
› d
|› �}
n't        j                   t#        |
› ‰;d   › �d¬«      «      }
|s|
|fS ‰ j%                  ‰|
«      |z   Š;‰;j'                  d«      r˜‰;dd  }|j'                  d«      rm‰ j)                  |dd  «      \  }}t+        ‰ j                  |‰‰«      d«      }|€‰ j                  d|›�‰;«      ‚‰ j-                  t/        |dz  «      ‰«      |z   Š;n‰ j                  d|› �‰;«      ‚‰;j'                  d«      r‰ j                  ‰;dd  ‰‰«      }d |fS ‰;j'                  d«      rÀ‰ j)                  ‰;«      \  }
}‰ j                  |
«      D �cg c],  }t        ‰ j                  |j	                  «       dd«      «      ‘Œ. }}t1        d„ |D «       «      rˆˆˆ fd„Š:t3        ˆ:fd„|D «       «      |fS ‰ j                  |
‰‰«      \  }
}|r|r|
|xs |fS ‰ j-                  |
‰«      |z   Š;‰;j'                  d«      rK‰ j)                  ‰;«      \  }
}‰ j                  |
‰‰«      \  }
}|r|r|
|xs |fS ‰ j-                  |
‰«      |z   Š;‰;j'                  d«      rY‰ j)                  ‰;«      \  }
}‰ j%                  ‰‰ j                  |
«      D �cg c]  }‰ j                  |‰‰«      ‘Œ c}«      }||z   Š;t        j                  d‰;«      }	|	r|	j5                  «       ni }|j7                  d«      rÈ‰ j)                  ‰;|	j9                  «       dz
  d  «      \  }Š;‰ j)                  ‰;j;                  «       «      \  }Š;d }t        j                  d‰;«      }	|	r(‰ j)                  ‰;|	j9                  «       dz
  d  «      \  }Š;t=        ‰ j                  |‰‰«      «      }‰ j                  |r|n|‰‰«      \  }}|r|dfS |j7                  d«      �ri‰ j)                  ‰;|	j9                  «       dz
  d  «      \  }Š;d }	 ‰ j                  |‰‰«      \  }}|r|dfS 	 d }t        j                  d!t>        › d"�‰;«      }	|	r“‰ j)                  ‰;|	j9                  «       dz
  d  «      \  }Š;|rii }|	j                  d#«      r0tA        |t        «      r|jB                  n|||	j                  d#«      <   ‰jE                  |«      }d ‰ j                  ||‰«      }}t        j                  d$‰;«      }	|	rD‰ j)                  ‰;|	j9                  «       dz
  d  «      \  }Š;‰ j                  |‰‰«      \  }}|r|dfS |\  }}|r|dfS |�rC|‚|j7                  d%«      �r,‰ j)                  ‰;|	j9                  «       dz
  d  «      \  }} | j'                  d«      r‰ j)                  | «      \  }!Š;ndt        j                  d&| «      }"|"rG‰ j)                  | |"j9                  «       dz
  d  «      \  }#} ‰ j)                  | d'«      \  }!Š;d(|#›d)|!›d'�}!n| dc}!Š;‰ j                  |d«      \  }$}}%‰ j                  |$‰‰«       	 t=        ‰ j                  |‰‰«      «      s�n5	 ‰ j                  |!‰‰«      \  }}|r|dfS 	 ‰ j                  |%‰‰«       ŒP|j7                  d*«      rò‰ j)                  ‰;|	j9                  «       dz
  d  «      \  }#} ‰ j                  |#‰‰«      }#‰ j)                  | d'«      \  }!Š;|!jK                  d+d,«      jM                  d-«      dd  }&d.D ]y  }'d}(|&D ]l  }d/„ ‰ j                  |dd«      D «       \  })}|'r
|(xs |)d0k(  }(n|(s|)d0k7  xr |#‰ j                  |)‰‰«      k(  }(|(sŒN	 ‰ j                  |‰‰«      \  }}|r|c c S Œn |(sŒy n |r‰ j                  ‰;‰‰«      \  }}||xs |fS t        ‰ j                  ‰;«      «      }t        |«      dkD  r+|D ]"  }‰ j                  |‰‰|¬1«      \  }}|sŒ|dfc S  dfS t        j                  d2t>        › d3tN        › d4d5jQ                  tS        t        jT                  tW        tX        «      tZ        z
  «      «      › d6�‰;«      }	|	�rˆ‰j7                  |	j                  d7«      «      }*|	j                  d8«      s‚‰ j]                  |	j                  d9«      |*|	j                  d:«      ‰;‰‰«      }+|r"‰j_                  |	j                  d7«      |+«       n|+‰|	j                  d7«      <   ‰|	j                  d7«         |fS |*d t`        fv r$‰ j                  d;|	j                  d7«      › �‰;«      ‚‰ j                  |	j                  d8«      ‰‰«      },tA        |,t.        tb        f«      s‰ j                  d<|,› d=�‰;«      ‚t/        |,«      },‰ j]                  |	j                  d9«      ‰ je                  |*|,«      |	j                  d:«      ‰;‰‰«      |*|,<   |*|,   |fS t        jf                  d>t>        › d?t>        › d@�‰;«      D ]­  }	|	j                  dA«      xs |	j                  dB«      }-|	ji                  «       \  }$}.|	j                  dC«      xs |	j                  dD«      }/‰|-   }‰|-xx   |/d   dEk(  rdndFz  cc<   |	j                  dC«      r‰|-   }‰;d |$ ‰ j-                  |‰«      z   ‰;|.d  z   Š;Œ¯ ‰;sd |fS t        j                  dGt>        › dHt>        › dItN        › dJt>        › dKt>        › dL�‰;«      }	‰;jk                  «       rt/        ‰;«      |fS ‰;dMk(  rtF        ‚‰;dNk(  rtH        ‚‰;dOk(  rt`        |fS ‰;dPk(  rtc        dP«      |fS |	rŽ|	j                  dQ«      r}|	j                  dR«      }-|r'‰jm                  |-«      }‰j_                  |-|«       ||fS ‰j7                  |-tn        «      }|tn        u r!t`        }‰ jp                  js                  |-«       ||fS tu        jv                  tx        «      5  t        j                   t#        ‰;d¬«      «      |fcd d d «       S c c}w c c}w # t         $ r}|}Y d }~�Œd }~ww xY w# tF        $ r Y �ŒÌtH        $ r Y �Œîw xY w# tF        $ r Y  �Œîw xY w# 1 sw Y   nxY w|	r[|	j                  dS«      rJ‰|	j                  dT«         }0‰ j                  |	j                  dU«      ‰‰«      },‰ je                  |0|,«      |fS tX        D ]Ý  }1t        ‰ j                  ‰;|1«      «      }2|2j                  «       }3	 |1dVv r2t        |2«      dkD  r$|2dF   j	                  «       s|2j                  «        n|2r|1dWk(  r|3j'                  dX«      sn"|1› |3› �}3|1dYk7  r|2j                  «       › |1› |3› �}3Œq|2sŒ£‰ j                  |1jQ                  |2«      ‰‰«      }*‰ j]                  |1|*|3‰;‰‰«      |fc S  |	rß|	j                  dZ«      rÎ|	j                  d	d[d\«      \  Š>Š<Š=‰<s"‰ j                  |	j                  d]«      ‰‰«      Š<‰;|	j9                  «       d  Š8‰8j'                  d«      r‰ j)                  ‰8«      \  Š8} nd ‰8cŠ8} ˆ;ˆ<ˆ fd^„Š9ˆˆ8ˆ9ˆ;ˆˆ<ˆ=ˆ ˆ>f	d_„}4| r6‰ j                  ‰ j%                  ‰ |4«       «      | z   ‰‰«      \  }}||xs |fS  |4«       |fS |	r¾|	j                  d`«      r­|	j                  da«      }5‰ j                  |	j                  db«      «      D �6cg c]  }6‰ j                  |6‰‰«      ‘Œ nc c}6w }7}6|5‰v r ‰|5   |7‰¬c«      |fS |5‰ jz                  vr‰ j}                  |5«      ‰ jz                  |5<    ‰ jz                  |5   |7‰¬c«      |fS ‰ j                  dd‰;|k7  rt        ‰;dede«      nd› �|«      ‚)fNr   zRecursion limit reachedr   Fú;r?   zJ(?P<var>(?:var|const|let)\s)|return(?:\s+|(?=["\'])|$)|(?P<throw>throw\s+)ÚthrowÚvarr�   Trƒ   znew é   zDate(zFailed to parse date iè  zUnsupported object zvoid é   ú{r  c              3   ó8   K  — | ]  }t        |«      d k(  –— Œ y­w)rH   N)r`   )rP   Úsub_exprs     r   rS   z4JSInterpreter.interpret_statement.<locals>.<genexpr>Ï  s   è ø€ ÒF¨(”3�x“= AÕ%ÑFùs   ‚c                 ó�   •— ‰j                  |‰‰«      }t        j                  t        | «      r| |fS ‰j                  | ‰‰«      |fS r    )r  ÚreÚmatchÚ_NAME_RE)rž   rD   rÀ   r¿   r�   s     €€€r   Ú	dict_itemz4JSInterpreter.interpret_statement.<locals>.dict_itemÐ  sI   ø€ Ø×3Ñ3°C¸À_ÓU�CÜ—x‘x¤¨#Ô.Ø" C˜x˜Ø×4Ñ4°S¸*ÀoÓVÐX[Ð[Ð[r   c              3   ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wr    r   )rP   ÚkÚvr3  s      €r   rS   z4JSInterpreter.interpret_statement.<locals>.<genexpr>Ö  s   øè ø€ ÒH±°°1™I a¨ŸOÑHùs   ƒú(rö   z¤(?x)
                (?P<try>try)\s*\{|
                (?P<if>if)\s*\(|
                (?P<switch>switch)\s*\(|
                (?P<for>for)\s*\(
                Úifzelse\s*{Útry)NFzcatch\s*(?P<err>\(\s*z	\s*\))?\{Úerrzfinally\s*\{Úforzswitch\s*\(ú}zswitch(z){Úswitchzdefault:zcase default:zcase )FTc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr    )rº   )rP   rÐ   s     r   rS   z4JSInterpreter.interpret_statement.<locals>.<genexpr>I  s   è ø€ Ò!R° !§'¡'§)Ñ!Rùs   ‚Údefault)Ú_is_var_declarationz(?x)
                (?P<out>z)(?:\[(?P<index>z )\])?\s*
                (?P<op>rr   z3)?
                =(?!=)(?P<expr>.*)$
            Úoutrl   r#   râ   z Cannot index undefined variable zList index z must be integerz3(?x)
                (?P<pre_sign>\+\+|--)(?P<var1>z)|
                (?P<var2>z)(?P<post_sign>\+\+|--)Úvar1Úvar2Úpre_signÚ	post_signr}   rN   za(?x)
            (?P<return>
                (?!if|return|true|false|null|undefined|NaN)(?P<name>z8)$
            )|(?P<attribute>
                (?P<var>z`)(?:
                    (?P<nullish>\?)?\.(?P<member>[^(]+)|
                    \[(?P<member2>zL)\]
                )\s*
            )|(?P<indexing>
                (?P<in>zH)\[(?P<idx>.+)\]$
            )|(?P<function>
                (?P<fname>z )\((?P<args>.*)\)$
            )ÚbreakÚcontinueÚ	undefinedrJ   Úreturnrì   ÚindexingÚinrò   z?<>*-rn   ú.r~   Ú	attributeÚmemberÚnullishÚmember2c                 ó8   •— | s‰j                  ‰› d|› �‰«      ‚y)z3 assert, but without risk of getting optimized out r°   N)r»   )r@   rá   râ   rN  r�   s     €€€r   Ú	assertionz4JSInterpreter.interpret_statement.<locals>.assertionÜ  s'   ø€ áØŸ.™.¨F¨8°1°S°EÐ):¸DÓAÐAð r   c            	      ó~  •	— ‰‰fdk(  r;t         j                  r*t         j                  ‰j                  d‰› d�‰‰«      «       y t        t
        t        dœ} ‰j                  ‰| j                  ‰t        «      «      }|t        u rN‰‰j                  vr 	 ‰j                  ‰‰«      ‰j                  ‰<   ‰j                  j                  ‰t        «      }‰r|t        u rt        S ‰€‰j                  |‰‰«      S ‰j                  ‰«      D �cg c]  }‰j                  |‰‰«      ‘Œ }}t        |t         «      r²‰j#                  d«      r¡‰j%                  d«      d   j%                  d«      \  }}} ‰|d«        ‰t        |d	   |«      d
|› �«       |dk(  r|^}}nL|dk(  r2 ‰t'        |«      dk(  d«       |\  }} ‰t        |t        «      d«       n‰j                  d|› �‰«      ‚|Š|t        u rB‰dk(  r( ‰|d«       dj)                  t+        t,        |«      «      S ‰j                  d‰› �‰«      ‚|t
        u r:‰dk(  r  ‰t'        |«      dk(  d«       |d	   |d   z  S ‰j                  d‰› �‰«      ‚‰dk(  rB ‰|d«        ‰t'        |«      dk(  d«       |d	   r|j/                  |d	   «      S t        |«      S ‰dk(  r@ ‰t        |t        «      d«        ‰t'        |«      dk(  d«       |d	   j)                  |«      S ‰dk(  r ‰| d«       |j1                  «        |S ‰dk(  rB ‰t        |t        t        f«      d«        ‰t'        |«      dk  d«       |t3        g |¢d ‘­Ž    S ‰d k(  rÎ ‰t        |t        «      d«        ‰|d«       t+        t4        g |¢t'        |«      ‘d d «      \  }}|d	k  r|t'        |«      z  }|dd  }	g }
t7        |t9        ||z   t'        |«      «      «      D ]"  }|
j;                  |j=                  |«      «       Œ$ t?        |	«      D ]  \  }}|jA                  ||z   |«       Œ |
S ‰d!k(  rD ‰t        |t        «      d«        ‰|d«       tC        |«      D ]  }|jA                  d	|«       Œ |S ‰d"k(  r4 ‰t        |t        «      d«        ‰| d«       |sy |j=                  «       S ‰d#k(  r ‰|d«       |jE                  |«       |S ‰d$k(  rU ‰|d«        ‰t'        |«      dk  d%«       g |¢d‘d d \  }}t?        |«      D ��cg c]  \  }} ||||fd&|i‰«      ‘Œ c}}S ‰d'k(  r= ‰|d«        ‰t'        |«      dk  d%«       g |¢d	‘d d \  }}	 |jG                  ||«      S ‰d)k(  rc ‰t        |t        «      d*«        ‰t'        |«      dk(  d«       t        |d	   t4        «      r|d	   nd	}|t'        |«      k\  ry tK        ||   «      S t        |t        «      rt5        ‰«      n‰} ||   |‰¬+«      S # ‰j                  $ r ‰s‚ Y �Œow xY wc c}w c c}}w # tH        $ r Y y(w xY w),N)ÚconsoleÚdebugrö   ú])ÚStringÚMathÚArrayz
prototype.rL  rH   ztakes one or more argumentsr   zneeds binding to type ÚcallÚapplyztakes two argumentsz"second argument needs to be a listzUnsupported Function method ÚfromCharCoder?   zUnsupported String method Úpowr   zUnsupported Math method Úsplitz&with limit argument is not implementedr´   zmust be applied on a listztakes exactly one argumentÚreversezdoes not take any argumentsÚslicez#must be applied on a list or stringztakes between 0 and 2 argumentsÚspliceÚunshiftra   ÚpushÚforEachztakes at-most 2 argumentsÚthisÚindexOfrN   Ú
charCodeAtzmust be applied on a string©rÀ   )&r«   r¹   r¶   r  r<   r   r  r  r   rØ   Úextract_objectr»   r   r!  r  r;   ÚtypeÚ
startswithÚ	partitionr`   r´   ÚmapÚchrr^  r_  r`  r   rU   Úminr^   ra   rï   Úinsertr_   Úextendrl   Ú
ValueErrorÚord)Útypesrë   r6  ÚargvalsÚ
new_memberÚ_Úfunc_prototyperl   Úhow_manyÚ	add_itemsÚresrÐ   ÚitemrÅ   re  rò   r  rÀ   Úarg_strrR  râ   r¿   rN  rO  r�   Úvariables                    €€€€€€€€€r   Úeval_methodz6JSInterpreter.interpret_statement.<locals>.eval_methodá  s•  ø€ ð ˜fÐ%Ð)=Ò=Ü×'Ò'Ü Ÿ™ t×'@Ñ'@À1ÀWÀIÈQÀÐQ[Ð]lÓ'mÔnØô "Ü!Ü!ñ�ð
 !—n‘n X¨u¯y©y¸Ä:Ó/NÓO�Øœ*Ñ$Ø t§}¡}Ñ4ð&Ø6:×6IÑ6IÈ(ÐT^Ó6_˜DŸM™M¨(Ñ3ð Ÿ-™-×+Ñ+¨H´lÓC�Cá˜s¤lÑ2Ü'Ð'ð �?ØŸ;™; s¨F°GÓ<Ð<ð
 "Ÿ^™^¨GÓ4ö6àð ×-Ñ-¨a°¸_ÕMð6�ð 6ô
 ˜c¤4Ô(¨V×->Ñ->¸|Ô-LØ4:×4DÑ4DÀSÓ4IÈ!Ñ4L×4VÑ4VÐWZÓ4[Ñ1�J  >Ù˜gÐ'DÔEÙœj¨°©°SÓ9Ð=SÐTWÐSXÐ;YÔZØ%¨Ò/Ø(/˜˜™gØ'¨7Ò2Ù!¤# g£,°!Ñ"3Ð5JÔKØ'.™˜˜WÙ!¤*¨W´dÓ";Ð=aÕbà"Ÿn™nÐ/KÈNÐK[Ð-\Ð^bÓcÐcØ'�Fàœ#‘:Ø Ò/Ù! 'Ð+HÔIØ!Ÿw™w¤s¬3°Ó'8Ó9Ð9ØŸ.™.Ð+EÀfÀXÐ)NÐPTÓUÐUØœE‘\Ø ’Ù!¤# g£,°!Ñ"3Ð5JÔKØ& q™z¨W°Q©ZÑ7Ð7ØŸ.™.Ð+CÀFÀ8Ð)LÈdÓSÐSà˜WÒ$Ù˜gÐ'DÔEÙœc '›l¨aÑ/Ð1YÔZØ4;¸A²J˜3Ÿ9™9 W¨Q¡ZÓ0ÐMÄDÈÃIÐMØ˜vÒ%Ùœj¨¬dÓ3Ð5PÔQÙœc '›l¨aÑ/Ð1MÔNØ" 1™:Ÿ?™?¨3Ó/Ð/Ø˜yÒ(Ù '˜kÐ+HÔIØ—K‘K”MØ�JØ˜wÒ&Ùœj¨¬t´S¨kÓ:Ð<aÔbÙœc '›l¨aÑ/Ð1RÔSØœuÐ4 gÐ4¨tÒ4Ñ5Ð5Ø˜xÒ'Ùœj¨¬dÓ3Ð5PÔQÙ˜gÐ'DÔEÜ&)¬#Ð0D°'Ð0D¼3¸s»8Ð0DÀbÀqÐ/IÓ&J‘O�E˜8Ø˜q’yØ¤ S£Ñ)˜Ø '¨¨ �IØ�CÜ" 5¬#¨e°hÑ.>ÄÀCÃÓ*IÓJò 3˜ØŸ
™
 3§7¡7¨5£>Õ2ð3ä#,¨YÓ#7ò 4™˜˜4ØŸ
™
 5¨1¡9¨dÕ3ð4à�JØ˜yÒ(Ùœj¨¬dÓ3Ð5PÔQÙ˜gÐ'DÔEÜ (¨Ó 1ò ,˜ØŸ
™
 1 dÕ+ð,à�JØ˜u’_Ùœj¨¬dÓ3Ð5PÔQÙ '˜kÐ+HÔIÙØØŸ7™7›9Ð$Ø˜vÒ%Ù˜gÐ'DÔEØ—J‘J˜wÔ'Ø�JØ˜yÒ(Ù˜gÐ'DÔEÙœc '›l¨aÑ/Ð1LÔMØ- ˜~¨"˜~¨r°Ð2‘G�A�tÜbkÐloÓbp×qÑU^ÐUXÐZ^™A˜t S¨#Ð.°¸°ÀÕPÓqÐqØ˜yÒ(Ù˜gÐ'DÔEÙœc '›l¨aÑ/Ð1LÔMØ"/ G -¨Q -°°!Ð!4‘J�C˜ð"Ø"Ÿy™y¨¨eÓ4Ð4ð ˜|Ò+Ùœj¨¬cÓ2Ð4QÔRÙœc '›l¨aÑ/Ð1MÔNÜ(2°7¸1±:¼sÔ(C˜' !š*È�CØœc #›h’Ø#Ü˜s 3™x›=Ð(ä%/°´TÔ%:”c˜&”kÀ�Ø�s˜3‘x ¸ÔIÐIøð]  $Ÿ~™~ò &Ù#*Ø %ò $+ð&üò6ùó^ røô &ò "Ù!ð"ús0   ÂX Ä
X%ÔX*Õ(X0 ØX"Ø!X"Ø0	X<Ø;X<ÚfunctionÚfnamerµ   rh  zUnsupported JS expression é   )@r»   r  r  ra   rº   rÆ   r0  r1  r`   Úgroupr•   r  Úboolrý   rô   r#  Úloadsr   rí   rk  r  r
   r%  r   Úallrù   Ú	groupdictr  ÚendÚlstriprC   r2  r;   r—   Ú	new_childrŠ   r’   Úreplacer^  Ú_NESTED_BRACKETSr´   rm  ÚescaperÙ   r  Ú_COMP_OPERATORSr  r§   r   r   r!  ÚfinditerÚspanÚisdigitr©   r   rÚ   Úaddr   r   rr  r×   Úextract_functionr	   )?r�   r¾   r¿   rÀ   r@  Úshould_returnÚsub_statementsÚsub_stmtrÂ   rÑ   ÚinnerÚouterrñ   rë   ÚleftÚrightÚdater.  Úsub_expressionsÚshould_abortr|  rì   Úmdr@   Úif_exprÚ	else_exprÚtry_exprr:  r˜   ÚpendingÚ
catch_varsÚconstructorÚ	remainingÚbodyÚswitch_mÚ
switch_valr  Ú	incrementÚitemsr?  ÚmatchedÚcaser  Úeval_resultrò   r)  rˆ  rg   rD   r#   r  r  r  r�  r6  ru  r}  rR  r3  râ   rN  rO  r~  s?   ` ``                                                    @@@@@@@r   rÆ   z!JSInterpreter.interpret_statement”  s¡  ÿù€ à˜QÒØ—.‘.Ð!:Ó;Ð;Ø˜1ÑˆàˆÜ˜dŸn™n¨T°3Ó7Ó8Ò@¸R¸DˆØ$×(Ñ(Ó*×0Ñ0Ó2Ð2ˆˆtà&ò 	*ˆHØ!%×!9Ñ!9¸(ÀJÐP_Ó!`ÑˆC�ÚØ˜MÐ)Ò)ð	*ô
 �H‰HÐbÐdhÓiˆÙØœ˜AŸG™G A›J›Ð(Ð)×/Ñ/Ó1ˆDØ�w‰w�wÔÜ˜t×8Ñ8¸¸zÈ?Ó[Ó\Ð\Ø !§¡¨£Ð.ˆMØ"5Ò"M¼¸a¿g¹gÀe»nÓ9MÐÙØ˜Ð&Ð&à�‰7”gÑØŸ>™>¨$°°Q±¸Ó;‰LˆE�5Ø�A‰w˜#Š~Ø#×0Ñ0°Ó7‘��uà ˜'  5 'Ð*‘ô Ÿ
™
¤:°°¸¸Q¹°yÐ.AÈ$Ô#OÓP�ÙØ˜mÐ+Ð+Ø×%Ñ% j°%Ó8¸5Ñ@ˆDà�?‰?˜6Ô"Ø�q�r�(ˆCØ�~‰~˜gÔ&Ø"×5Ñ5°c¸!¸"°gÓ>‘��eÜ(Ø×-Ñ-¨d°JÀÓPÐRWóY�à�<ØŸ.™.Ð+@ÀÀÐ)IÈ4ÓPÐPØ—z‘z¤# d¨T¡kÓ"2°JÓ?À%ÑG‘à—n‘nÐ':¸3¸%Ð%@À$ÓGÐGà�?‰?˜7Ô#Ø×,Ñ,¨T°!°"¨X°zÀ?ÓSˆDØ˜Ð&Ð&à�?‰?˜3ÔØ×2Ñ2°4Ó8‰LˆE�5à^b×^lÑ^lÐmrÓ^sÖtÐRZœt D§N¡N°8·>±>Ó3CÀSÈ!Ó$LÕMÐtˆOÐtÜÑF°oÔFÔFö\ô ÓH¸ÔHÓHÈ-ÐWÐWà"&×":Ñ":¸5À*ÈoÓ"^ÑˆE�<Ù™LØ˜lÒ;¨mÐ;Ð;à—z‘z %¨Ó4°uÑ<�à�?‰?˜3ÔØ×2Ñ2°4Ó8‰LˆE�5Ø"&×":Ñ":¸5À*ÈoÓ"^ÑˆE�<Ù™LØ˜lÒ;¨mÐ;Ð;à—z‘z %¨Ó4°uÑ<�à�?‰?˜3ÔØ×2Ñ2°4Ó8‰LˆE�5Ø×%Ñ% jà ŸN™N¨5Ó1ö33àð ×)Ñ)¨$°
¸OÕLò33ó 4ˆDð ˜%‘<ˆDä�H‰Hð ð
 óˆñ  ˆQ�[‰[Œ] RˆØ�6‰6�$Œ<Ø×0Ñ0°°a·e±e³gÀ±k°lÐ1CÓD‰JˆD�$Ø ×3Ñ3°D·K±K³MÓB‰MˆG�TàˆIÜ—‘˜ dÓ+ˆAÙØ"&×"9Ñ"9¸$¸q¿u¹u»wÈ¹{¸|Ð:LÓ"M‘�	˜4Ü˜t×8Ñ8¸¸zÈ?Ó[Ó\ˆDØ $× 8Ñ 8Ù‘ Y°
¸Oó!MÑˆC�áØ˜D�yÐ à�6‰6�%�=Ø!×4Ñ4°T¸!¿%¹%»'ÀA¹+¸,Ð5GÓH‰NˆH�dØˆCðØ$(×$<Ñ$<¸XÀzÐSbÓ$cÑ!��\ÙØ ˜9Ð$ð  ð $ˆGÜ—‘Ð1´(°¸:ÐFÈÓMˆAÙØ!%×!8Ñ!8¸¸a¿e¹e»gÈ¹k¸lÐ9KÓ!L‘�˜$ÙØ!#�JØ—w‘w˜u”~ÜBLÈSÔRZÔB[°S·Y²YÐad˜
 1§7¡7¨5£>Ñ2Ø!+×!5Ñ!5°jÓ!A�JØ#'¨×)AÑ)AÀ(ÈJÐXgÓ)h˜�Cä—‘˜¨$Ó/ˆAÙØ!%×!8Ñ!8¸¸a¿e¹e»gÈ¹k¸lÐ9KÓ!L‘�˜$Ø$(×$<Ñ$<¸XÀzÐSbÓ$cÑ!��\ÙØ ˜9Ð$à 'ÑˆC�ÙØ˜D�yÐ âØ�	à�V‰V�E�]Ø%)×%<Ñ%<¸TÀ!Ç%Á%Ã'ÈAÁ+À,Ð=OÓ%PÑ"ˆK˜Ø×#Ñ# CÔ(Ø!×4Ñ4°YÓ?‘
�‘däŸ8™8 N°IÓ>�ÙØ,0×,CÑ,CÀIÈhÏlÉlËnÐ_`ÑN`ÐNaÐDbÓ,cÑ)�J 	Ø!%×!8Ñ!8¸ÀCÓ!H‘J�D™$Ú/9º4Ð@‘Dà!*¨B�J�D˜$Ø%)§^¡^°KÀÓ%EÑ"ˆE�4˜Ø×%Ñ% e¨Z¸ÔIØÜ" 4×#<Ñ#<¸TÀ:ÈÓ#_Ô`ÙðØ(,×(@Ñ(@ÀÀzÐSbÓ(cÑ%�C˜Ù#Ø" D˜yÐ(ð $ð ×)Ñ)¨)°ZÀÔQð ð �V‰V�HÔØ$(×$;Ñ$;¸DÀÇÁÃÈ1ÁÀÐ<NÓ$OÑ!ˆJ˜	Ø×2Ñ2°:¸zÈ?Ó[ˆJØ×0Ñ0°¸CÓ@‰JˆD�$Ø—L‘L ¨_Ó=×CÑCÀGÓLÈQÈRÐPˆEØ(ò �Ø�Ø!ò �DÙ!R°T·^±^ÀDÈ#ÈqÓ5QÔ!R‘J�D˜$ÙØ")Ò">¨T°YÑ->™Ù$Ø#'¨9Ñ#4ò $rØ'1°T×5NÑ5NÈtÐU_ÐapÓ5qÑ'qð  á"Ø ðØ,0×,DÑ,DÀTÈ:ÐWfÓ,gÑ)˜˜\Ù'Ø#&œJð (ðò Ùð%ñ( Ø $× 8Ñ 8¸¸zÈ?Ó [ÑˆC�Ø˜Ò5¨Ð5Ð5ô ˜tŸ~™~¨dÓ3Ó4ˆÜˆÓ !Ò#Ø+ò %�Ø$(×$<Ñ$<Ø˜j¨/ÐObð %=ó %dÑ!��\âØ ˜9Ò$ð	%ð
 ˜�:Ðä�H‰Hð Ü!˜
Ð"2Ô3CÐ2Dð EØŸ™¤¤R§Y¡Y´´J³Ä/Ñ0QÓ!RÓSÐTð Uðð ó	ˆò
 Ø!—~‘~ a§g¡g¨e£nÓ5ˆHà—7‘7˜7Ô#Ø"Ÿn™nØ—G‘G˜D“M 8¨Q¯W©W°V«_¸dÀJÐP_óa�á&Ø×(Ñ(¨¯©°«¸ÕEà1<�J˜qŸw™w u›~Ñ.Ø! !§'¡'¨%£.Ñ1°=Ð@Ð@Ø˜d¤LÐ1Ñ1Ø—n‘nÐ'GÈÏÉÐPUËÐGWÐ%XÐZ^Ó_Ð_à×+Ñ+¨A¯G©G°GÓ,<¸jÈ/ÓZˆCÜ˜c¤C¬ <Ô0Ø—n‘n {°3°%Ð7GÐ%HÈ$ÓOÐOÜ�c“(ˆCØ ŸN™NØ—‘˜“˜tŸ{™{¨8°SÓ9¸1¿7¹7À6»?ÈDÐR\Ð^móoˆH�S‰Mà˜C‘= -Ð/Ð/ä—‘ð #/Ü/7¨jð 9Ü"˜Ð#:ð>à?CóEò 
	KˆAð —'‘'˜&“/Ò4 Q§W¡W¨V£_ˆCØŸ™›‰JˆE�3Ø—7‘7˜:Ó&Ò>¨!¯'©'°+Ó*>ˆDØ˜S‘/ˆCØ�s‹O D¨¡G¨s¢N™q¸Ñ:‹OØ�w‰w�zÔ"Ø  ‘o�Ø˜˜�< $§*¡*¨S°*Ó"=Ñ=ÀÀSÀTÀ
ÑJ‰Dð
	Kñ Ø˜Ð&Ð&ä�H‰Hð EäEMÀJð Oä!˜
ð ##ä#3Ð"4ð 5ô !�zð "ä#˜*ð %ðð óˆð �<‰<Œ>Ü�t“9˜mÐ+Ð+à�WŠ_ÜˆNØ�ZÒÜÐØ�[Ò Ü Ð.Ð.Ø�UŠ]Ü˜“< Ð.Ð.á�1—7‘7˜8Ô$Ø—'‘'˜&“/ˆCá"Ø ×*Ñ*¨3Ó/�ð ×$Ñ$ S¨#Ô.ð ˜Ð%Ð%ð	 !—n‘n S¬*Ó5�Øœ*Ñ$Ü&�CØ×,Ñ,×0Ñ0°Ô5Ø˜Ð%Ð%ä× Ñ ¤Ó,ñ 	LÜ—:‘:œj¨°dÔ;Ó<¸mÐK÷	Lñ 	LùòY uùò433øôB ò à–ûðûôd  ò ÚÜ"ò Úðûô0 $ò Ûðú÷J	Lð 	Lúñ �—‘˜Ô$Ø˜QŸW™W T›]Ñ+ˆCØ×+Ñ+¨A¯G©G°E«N¸JÈÓXˆCØ—;‘;˜s CÓ(¨-Ð7Ð7äò 	nˆBÜ˜TŸ^™^¨D°"Ó5Ó6ˆIØ"Ÿ™›ˆJØØ˜‘=¤S¨£^°aÒ%7À	È"Á×@SÑ@SÔ@UØ—M‘M•OÙ#¨¨cª	°j×6KÑ6KÈCÔ6PØØ "˜t J <Ð0�
Ø˜’9Ø$-§M¡M£OÐ#4°R°D¸¸Ð!E�Jð ñ ØØ×0Ñ0°·±¸Ó1CÀZÐQ`ÓaˆHØ—>‘> " h°
¸DÀ*ÈoÓ^Ð`mÐmÒmð	nñ  �—‘˜Ô%Ø()¯©°°xÀÓ(KÑ%ˆH�f˜gÙØ×2Ñ2°1·7±7¸9Ó3EÀzÐSbÓc�Ø˜1Ÿ5™5›7˜8�nˆGØ×!Ñ! #Ô&Ø%)×%<Ñ%<¸WÓ%EÑ"�™à%)¨7Ð"�˜öB÷
@Jô @JñD Ø$(×$<Ñ$<Ø×&Ñ& z±;³=ÓAÀIÑMØ ó%1Ñ!��\ð ˜MÒ9¨\Ð9Ð9á"“} mÐ3Ð3á�1—7‘7˜:Ô&Ø—G‘G˜GÓ$ˆEà $§¡¨q¯w©w°v«Ó ?öAØð ×0Ñ0°°JÀÕPñ Aùò AˆGð Aà˜
Ñ"Ø(�z %Ñ(¨À/ÔRÐTaÐaÐaØ˜dŸo™oÑ-Ø)-×)>Ñ)>¸uÓ)E�—‘ Ñ&Ø)�4—?‘? 5Ñ)¨'À?ÔSÐUbÐbÐbà�n‰nØ(È$ÐRVÊ,¬¸¸rÀ2Ô)FÐ\^Ð(_Ð`Ðbfóhð 	hsb   Ë	1vÐv	
Õ(v Þ3v' ãwõ"wö	v$övöv$ö'	v?ö3v?ö>v?÷	w÷w÷wÁA	AA$c                 óZ   — | j                  |||«      \  }}|r| j                  d|«      ‚|S )Nz Cannot return from an expression)rÆ   r»   )r�   râ   r¿   rÀ   rÂ   r”  s         r   r  z"JSInterpreter.interpret_expressionx  s5   € Ø!×5Ñ5°d¸JÈÓXÑˆˆ]ÙØ—.‘.Ð!CÀTÓJÐJØˆ
r   c           	      óü  — d}i }t        j                  dt        j                  |«      ›d|›d�| j                  «      }|s| j	                  d|› �«      ‚|j                  d«      }t        j                  d|›dt        ›d	�|«      }|D ]p  }|j                  d
«      j                  d«      }	t        |j                  d«      «      }
t         | j                  |	|j                  d«      g|¢­Ž d|
› d�«      ||
<   Œr |S )Nz1(?:[a-zA-Z$0-9]+|"[a-zA-Z$0-9]+"|'[a-zA-Z$0-9]+')z'(?x)
                (?<![a-zA-Z$0-9.])z,\s*=\s*{\s*
                    (?P<fields>(zP\s*:\s*function\s*\(.*?\)\s*{.*?}(?:,\s*)?)*)
                }\s*;
            zCould not find object Úfieldsz(?x)
                (?P<key>z!)\s*:\s*function\s*\((?P<args>(?:z%|,)*)\){(?P<code>[^}]+)}
            rµ   ú,rž   rÖ   rç   r|   )r0  Úsearchr�  rÖ   r»   rƒ  r�  r2  r^  r   r   Úbuild_function)r�   ÚobjnameÚglobal_stackÚ_FUNC_NAME_RErë   Úobj_mr°  Úfields_mrÅ   Úargnamesrì   s              r   ri  zJSInterpreter.extract_object~  s  € ØPˆØˆÜ—	’	ô
 —9‘9˜WÕ%¢}ð	6ð
 �I‰Ióˆñ Ø—.‘.Ð#9¸'¸Ð!CÓDÐDØ—‘˜XÓ&ˆä—;’;ò !¦(ð,ð ó	ˆð
 ò 	]ˆAØ—w‘w˜v“×,Ñ,¨SÓ1ˆHÜ  §¡¨£Ó0ˆDÜ*Ø#�×#Ñ# H¨a¯g©g°f«oÐMÀÒMÐQSÐTXÐSYÐYZÈ|ó]ˆC�ŠIð	]ð ˆ
r   c                 ól  — t        j                  ddt        j                  |«      iz  | j                  «      }|€| j	                  d|› d�«      ‚| j                  |j                  d«      «      \  }}|j                  d«      j                  d«      D �cg c]  }|j                  «       ‘Œ c}|fS c c}w )z @returns argnames, code a  (?xs)
                (?:
                    function\s+%(name)s|
                    [{;,]\s*%(name)s\s*=\s*function|
                    (?:var|const|let)\s+%(name)s\s*=\s*function
                )\s*
                \((?P<args>[^)]*)\)\s*
                (?P<code>{.+})rì   zCould not find JS function "ú"rÖ   rµ   r±  )	r0  r²  r�  rÖ   r»   r  rƒ  r^  rº   )r�   ÚfuncnameÚfunc_mrÖ   rw  r   s         r   Úextract_function_codez#JSInterpreter.extract_function_code™  s§   € ä—‘ð"ð &,¬R¯Y©Y°xÓ-@Ð$AñBð �I‰Ió	ˆð ˆ>Ø—.‘.Ð#?À¸zÈÐ!KÓLÐLØ×)Ñ)¨&¯,©,°vÓ*>Ó?‰ˆˆaØ#)§<¡<°Ó#7×#=Ñ#=¸cÓ#BÖC˜a�—‘•	ÒCÀTÐIÐIùÒCs   ÂB1c                 ód   — t         | j                  g | j                  |«      ¢|¢­Ž d|› d�«      S )Nrç   r|   )r   Úextract_function_from_coder¾  )r�   r¼  rµ  s      r   r“  zJSInterpreter.extract_functionª  s?   € Ü!Ø+ˆD×+Ñ+Ða¨T×-GÑ-GÈÓ-QÐaÐT`ÒaØ��
˜!Ðóð 	r   c           
      óž  — i }	 t        j                  d|«      }|€n˜|j                  «       \  }}| j                  ||dz
  d  «      \  }}	| j	                  | | j
                  |j                  d«      j                  d«      D �
cg c]  }
|
j                  «       ‘Œ c}
||g|¢­Ž «      }|d | |z   |	z   }Œ± | j                  |||g|¢­Ž S c c}
w )Nzfunction\((?P<args>[^)]*)\)\s*{r   rµ   r±  )
r0  r²  r�  r  rí   rÀ  rƒ  r^  rº   r³  )r�   r¹  rÖ   rµ  r¿   Úmobjr  Ú
body_startr¦  r¥  r   rì   s               r   rÀ  z(JSInterpreter.extract_function_from_code¯  sé   € Øˆ
ØÜ—9‘9Ð?ÀÓFˆDØˆ|ØØ $§	¡	£ÑˆE�:Ø"×5Ñ5°d¸:È¹>¸?Ð6KÓL‰OˆD�)Ø×%Ñ% jÐ2Q°$×2QÑ2QØ$(§J¡J¨vÓ$6×$<Ñ$<¸SÓ$AÖB˜q�—‘•ÒBØ�jð31à#/ò31ó 2ˆDð ˜˜�< $Ñ&¨Ñ2ˆDð ð #ˆt×"Ñ" 8¨T°:ÐMÀÒMÐMùò Cs   ÂC
c                 ó0   —  | j                  |«      |«      S r    )r“  )r�   r¼  rµ   s      r   Úcall_functionzJSInterpreter.call_function½  s   € Ø.ˆt×$Ñ$ XÓ.¨tÓ4Ð4r   c                 óZ   ‡ ‡‡‡— t        ‰«      xs i gŠt        ‰«      Ši dfˆˆˆˆ fd„	}|S )Nr¬   c                 óì   •— ‰d   j                  t        j                  ‰| d ¬«      «       ‰d   j                  |«       t        ‰Ž }‰	j	                  ‰j                  dd«      ||dz
  «      \  }}|r|S y )Nr   )Ú	fillvaluer³   r°   r   )ÚupdateÚ	itertoolsÚzip_longestrš   rÆ   r‹  )
rµ   rÁ   rÀ   Ú	var_stackrÂ   r�  r¹  rÖ   rµ  r�   s
         €€€€r   Úresfz*JSInterpreter.build_function.<locals>.resfÄ  sz   ø€ Ø˜‰O×"Ñ"¤9×#8Ñ#8¸À4ÐSWÔ#XÔYØ˜‰O×"Ñ" 6Ô*Ü&¨Ð5ˆIØ $× 8Ñ 8¸¿¹ÀdÈCÓ9PÐR[Ð]lÐopÑ]pÓ qÑˆC�ÙØ�
ð r   )r  Útuple)r�   r¹  rÖ   rµ  rÍ  s   ```` r   r³  zJSInterpreter.build_functionÀ  s3   û€ Ü˜LÓ)Ò1¨b¨TˆÜ˜“?ˆà °#÷ 	ð 	ð ˆr   r    )r±  N)F)r¬   F) r†   r‡   rˆ   rè   r0  ÚIÚMÚSÚUrð   r�   r   r»   rí   rË   rô   rÊ   r  r  r  r!  r%  r«   rÇ   rÆ   r  ri  r¾  r“  rÀ  rÅ  r³  r   r   r   rÍ   rÍ     sÞ   „ ØÐð ØØ�T‰TØ�T‰TØ�T‰TØ�T‰TØñ€Ió)ô
3�Nô 3òð ñ%ó ð%ð ò$ó ð$ðL ò>ó ð>ògó.Pò6ð ×Ñòahó ðahòFòò6Jò"ò
Nò5ór   rÍ   rø   )rG   )<rW   r   rÊ  r#  r   Úoperatorr0  Úutilsr   r   r   r   r   r	   r
   r   r   r%   r-   r1   r3   r5   r8   r=   rC   r   r   rm   Úor_ÚxorÚand_Úis_Úis_notÚeqÚneÚleÚgeÚltÚgtÚrshiftÚlshiftr’  ÚsubÚmulr  rŽ  r2  rù   Úziprû   rý   rŒ  r   rŠ   r’   r•   ÚChainMaprš   r«   rÍ   r   r   r   ú<module>ræ     sl  ðÛ Û Û Û Û Û Û 	÷	÷ 	ó 	òòòò/òòòò	óñ3F˜Uð 3F¨3ó 3FðnØˆðàˆ$ðð 	ˆ$ðð 	ˆ$ð	ð ‰�H—L‘LÓ	!ðð ‰�H—L‘LÓ	!ðð ‰�H—M‘MÓ	"ðð 
ˆ8�<‰<ðð 
ˆ8�?‰?ðð 	‰)�H—K‘KÓ
 ðð 	‰)�H—K‘KÓ
 ðð 	‰+�h—k‘kÓ
"ðð  	‰+�h—k‘kÓ
"ð!ð" ‰�X—[‘[Ó	!ð#ð$ ‰�X—[‘[Ó	!ð%ð( 	‰*�X—_‘_Ó
%ð)ð* 	‰*�X—_‘_Ó
%ð+ñ. 
�h—l‘lÓ	#Ù	�h—l‘lÓ	#á	�h—l‘lÓ	#Ø	Ø	Ø
ò;€
ò@ C€à€Ù™™S  t¨T¸$Ô?ÐMÈÑMÓNÐ Ø
€Ø<Ð ÷	ñ 	ô7ˆ~ô 7ô
:�.ô :ô
Aˆ~ô Aô�[×)Ñ)ô ÷(#ñ #÷:|
ò |
r   