Ë
    g^(hj(  ã                   óÎ  — d dl Z d dlmZmZ d dlmZ d dlZd dlmc m	Z
 d dlmZmZmZmZmZmZmZmZmZ d dlmZ 	  G d„ de«      Ze j0                  d„ «       Ze j0                  d	„ «       Ze j0                  d
„ «       Z G d„ de«      Ze j0                  d„ «       Z G d„ de«      Z G d„ de«      Z G d„ de«      Z dedefd„Z!defd„Z"de#e   fd„Z$de#e%edf      de&fd„Z'd„ Z(y)é    N)ÚABCÚabstractmethod)ÚAny)	ÚCFunctionalizeInterpreterPtrÚCGradInterpreterPtrÚCInterpreterÚCJvpInterpreterPtrÚCVmapInterpreterPtrÚpop_dynamic_layer_stackÚpush_dynamic_layer_stackÚRandomnessTypeÚTransformType)Ú_set_fwd_grad_enabledc                   óF   — e Zd Zdefd„Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy	)
ÚFuncTorchInterpreterÚcptrc                 ó   — || _         y ©N)Ú_cptr)Úselfr   s     úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_functorch/pyfunctorch.pyÚ__init__zFuncTorchInterpreter.__init__7   s	   € Øˆ�
ó    c                  ó   — y r   © )r   ÚopÚargsÚkwargss       r   ÚprocesszFuncTorchInterpreter.process<   s   € àr   c                 ó   — t        «       S r   )Ú!temporarily_pop_interpreter_stack©r   s    r   ÚlowerzFuncTorchInterpreter.lowerC   s   € Ü0Ó2Ð2r   c                 ó6   — | j                   j                  «       S r   )r   Úlevelr"   s    r   r%   zFuncTorchInterpreter.levelF   s   € Ø�z‰z×ÑÓ!Ð!r   c                 ó6   — | j                   j                  «       S r   )r   Úkeyr"   s    r   r'   zFuncTorchInterpreter.keyI   s   € Ø�z‰z�~‰~ÓÐr   c                 ó   — t         ‚r   )ÚNotImplementedErrorr"   s    r   Ú	get_statezFuncTorchInterpreter.get_stateL   s   € Ü!Ð!r   c                 ó(   — || j                  «       k(  S r   )r*   )r   Ústates     r   Úcheck_statez FuncTorchInterpreter.check_stateO   s   € Ø˜Ÿ™Ó(Ñ(Ð(r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r#   r%   r'   r*   r-   r   r   r   r   r   6   s;   „ ð˜Só ð
 ñó ðò3ò"ò ò"ó)r   r   c               #   ó`   K  — 	 t        «       } d –— t        | «       y # t         «       w xY w­wr   )r   r   )Úsaveds    r   r!   r!   S   s'   è ø€ ð(Ü'Ó)ˆÛä  Õ'øÔ  Õ'üs   ‚.„ ’.ž+«.c               #   ó†  K  — g } 	 t         j                  j                  j                  «       �B| j	                  t        «       «       t         j                  j                  j                  «       �ŒBt        | «      –— | rt        | j                  «       «       | rŒy y # | rt        | j                  «       «       | rŒw w xY w­wr   )	ÚtorchÚ_CÚ
_functorchÚpeek_interpreter_stackÚappendr   Úlistr   Úpop)Ústacks    r   Ú#temporarily_clear_interpreter_stackr<   \   sŠ   è ø€ à€Eð2Ü�h‰h×!Ñ!×8Ñ8Ó:ÐFØ�L‰LÔ0Ó2Ô3ô �h‰h×!Ñ!×8Ñ8Ó:ÑFä�5‹kÒáÜ$ U§Y¡Y£[Ô1ô ø‰eÜ$ U§Y¡Y£[Ô1ô üs/   ‚C†A)B Á0B Á=CÂCÂB>Â<B>Â>Cc              #   óä   K  — g }	 t        | «      D ]  }t        |«       |j                  |«       Œ  d –— t        |«      D ]  }t        «        Œ y # t        |«      D ]  }t        «        Œ w xY w­wr   )Úreversedr   r8   r   )r;   ÚpushedÚss      r   Ú%temporarily_restore_interpreter_stackrA   h   st   è ø€ à€Fð	&Ü˜%“ò 	ˆAÜ$ QÔ'Ø�M‰M˜!Õð	ó 	ä˜&Ó!ò 	&ˆAô $Õ%ñ	&ø”˜&Ó!ò 	&ˆAô $Õ%ñ	&üs   ‚A0†0A ¶A0ÁA-Á-A0c                   ó0   — e Zd Zdefd„Zd„ Zd„ Zd„ Zd„ Zy)ÚVmapInterpreterÚcdatac                 óx   — |j                  «       t        j                  k(  sJ ‚|| _        t	        |«      | _        y r   )r'   r   ÚVmapÚ_cdatar
   r   ©r   rD   s     r   r   zVmapInterpreter.__init__x   s1   € Ø�y‰y‹{œm×0Ñ0Ò0Ð0Ð0ð ˆŒÜ(¨Ó/ˆ�
r   c                 óT   — |j                   t        j                     } || g|¢­i |¤ŽS r   )Úfunctorch_tabler   rF   ©r   r   r   r   Úkernels        r   r   zVmapInterpreter.process€   s-   € Ø×#Ñ#¤M×$6Ñ$6Ñ7ˆÙ�dÐ,˜TÒ, VÑ,Ð,r   c                 ó6   — | j                   j                  «       S r   )r   Ú	batchSizer"   s    r   Ú
batch_sizezVmapInterpreter.batch_size„   s   € Ø�z‰z×#Ñ#Ó%Ð%r   c                 óÊ   — | j                   j                  «       }|t        j                  k(  ry|t        j                  k(  ry|t        j
                  k(  ryt        d|› �«      ‚)NÚerrorÚsameÚ	differentzUnknown RandomnessType: )r   Ú
randomnessr   ÚErrorÚSameÚ	DifferentÚRuntimeError)r   Útyps     r   rT   zVmapInterpreter.randomness‡   sZ   € Ø�j‰j×#Ñ#Ó%ˆØ”.×&Ñ&Ò&ØØ”N×'Ñ'Ò'ØØ”N×,Ñ,Ò,ØÜÐ5°c°UÐ;Ó<Ð<r   c                 ót   — | j                  «       j                  | j                  «       | j                  «       fS r   )r'   Únamer%   rT   r"   s    r   r*   zVmapInterpreter.get_state‘   s&   € Ø—‘“
—‘ §¡£¨t¯©Ó/@ÐAÐAr   N)	r.   r/   r0   r   r   r   rO   rT   r*   r   r   r   rC   rC   w   s#   „ ð0˜ló 0ò-ò&ò=óBr   rC   c               '   ó–   K  — t        j                  «       5 }| D ]  }|j                  |«       Œ | –— d d d «       y # 1 sw Y   y xY w­wr   )Ú
contextlibÚ	ExitStackÚenter_context)Úcontextsr;   Úctxs      r   Únestedrb   •   sJ   è ø€ ä	×	Ñ	Ó	ð  5Øò 	%ˆCØ×Ñ Õ$ð	%àŠ÷÷ ñ üs   ‚A	—=´	A	½AÁA	c                   óB   ‡ — e Zd Zdefd„Zd„ Zd„ Zˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚGradInterpreterrD   c                 óx   — |j                  «       t        j                  k(  sJ ‚|| _        t	        |«      | _        y r   )r'   r   ÚGradrG   r   r   rH   s     r   r   zGradInterpreter.__init__ž   s/   € Ø�y‰y‹{œm×0Ñ0Ò0Ð0Ð0àˆŒÜ(¨Ó/ˆ�
r   c                 ó†   — t        j                  t        j                  | j                  j
                  ||g«      \  }}||fS r   ©ÚpytreeÚtree_map_onlyr4   ÚTensorr   Úlift©r   r   r   s      r   rl   zGradInterpreter.lift¤   ó9   € Ü×+Ñ+Ü�L‰L˜$Ÿ*™*Ÿ/™/¨D°&¨>ó
‰ˆˆfð �Vˆ|Ðr   c                 ó~   — |j                   t        j                     }| j                  ||«      \  }} || g|¢­i |¤ŽS r   )rJ   r   rf   rl   rK   s        r   r   zGradInterpreter.processª   sA   € Ø×#Ñ#¤M×$6Ñ$6Ñ7ˆØ—y‘y  vÓ.‰ˆˆfÙ�dÐ,˜TÒ, VÑ,Ð,r   c                 ó˜   •— | j                  «       }|s*t        t        j                  «       t        ‰| �  «       «      S t        ‰| �  «       S r   )Úprev_grad_moderb   r4   Úno_gradÚsuperr#   )r   rq   Ú	__class__s     €r   r#   zGradInterpreter.lower²   s9   ø€ Ø×,Ñ,Ó.ˆÙÜœ%Ÿ-™-›/¬5©7©=«?Ó;Ð;Ü‰w‰}‹Ðr   c                 ó6   — | j                   j                  «       S r   )r   ÚprevGradModer"   s    r   rq   zGradInterpreter.prev_grad_mode¸   s   € Ø�z‰z×&Ñ&Ó(Ð(r   c                 ót   — | j                  «       j                  | j                  «       | j                  «       fS r   )r'   r[   r%   rq   r"   s    r   r*   zGradInterpreter.get_state»   s(   € Ø—‘“
—‘ §¡£¨t×/BÑ/BÓ/DÐEÐEr   )r.   r/   r0   r   r   rl   r   r#   rq   r*   Ú__classcell__©rt   s   @r   rd   rd   �   s)   ø„ ð0˜ló 0òò-ôò)öFr   rd   c                   óB   ‡ — e Zd Zdefd„Zd„ Zd„ Zˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚJvpInterpreterrD   c                 óx   — |j                  «       t        j                  k(  sJ ‚|| _        t	        |«      | _        y r   )r'   r   ÚJvprG   r	   r   rH   s     r   r   zJvpInterpreter.__init__À   s/   € Ø�y‰y‹{œm×/Ñ/Ò/Ð/Ð/àˆŒÜ'¨Ó.ˆ�
r   c                 ó†   — t        j                  t        j                  | j                  j
                  ||g«      \  }}||fS r   rh   rm   s      r   rl   zJvpInterpreter.liftÆ   rn   r   c                 ó~   — |j                   t        j                     }| j                  ||«      \  }} || g|¢­i |¤ŽS r   )rJ   r   r}   rl   rK   s        r   r   zJvpInterpreter.processÌ   sA   € Ø×#Ñ#¤M×$5Ñ$5Ñ6ˆØ—y‘y  vÓ.‰ˆˆfÙ�dÐ,˜TÒ, VÑ,Ð,r   c                 ó†   •— | j                  «       }|s!t        t        d«      t        ‰| �  «       «      S t        ‰| �  «       S )NF)Úprev_fwd_grad_moderb   r   rs   r#   )r   r�   rt   s     €r   r#   zJvpInterpreter.lowerÔ   s:   ø€ Ø!×4Ñ4Ó6ÐÙ!ÜÔ/°Ó6¼¹¹»ÓHÐHÜ‰w‰}‹Ðr   c                 ó6   — | j                   j                  «       S r   )r   ÚprevFwdGradModer"   s    r   r�   z!JvpInterpreter.prev_fwd_grad_modeÚ   s   € Ø�z‰z×)Ñ)Ó+Ð+r   c                 ót   — | j                  «       j                  | j                  «       | j                  «       fS r   )r'   r[   r%   r�   r"   s    r   r*   zJvpInterpreter.get_stateÝ   s(   € Ø—‘“
—‘ §¡£¨t×/FÑ/FÓ/HÐIÐIr   )r.   r/   r0   r   r   rl   r   r#   r�   r*   rx   ry   s   @r   r{   r{   ¿   s)   ø„ ð/˜ló /òò-ôò,öJr   r{   c                   ó*   — e Zd Zdefd„Zd„ Zd„ Zd„ Zy)ÚFunctionalizeInterpreterrD   c                 óx   — |j                  «       t        j                  k(  sJ ‚|| _        t	        |«      | _        y r   )r'   r   ÚFunctionalizerG   r   r   rH   s     r   r   z!FunctionalizeInterpreter.__init__â   s/   € Ø�y‰y‹{œm×9Ñ9Ò9Ð9Ð9ØˆŒÜ1°%Ó8ˆ�
r   c                 óT   — |j                   t        j                     } || g|¢­i |¤ŽS r   )rJ   r   rˆ   rK   s        r   r   z FunctionalizeInterpreter.processç   s-   € Ø×#Ñ#¤M×$?Ñ$?Ñ@ˆÙ�dÐ,˜TÒ, VÑ,Ð,r   c                 ó6   — | j                   j                  «       S r   )r   ÚfunctionalizeAddBackViewsr"   s    r   Úfunctionalize_add_back_viewsz5FunctionalizeInterpreter.functionalize_add_back_viewsë   s   € Ø�z‰z×3Ñ3Ó5Ð5r   c                 óV   — | j                  «       j                  | j                  «       fS r   )r'   r[   r%   r"   s    r   r*   z"FunctionalizeInterpreter.get_stateî   s   € Ø—‘“
—‘ §¡£Ð.Ð.r   N)r.   r/   r0   r   r   r   rŒ   r*   r   r   r   r†   r†   á   s   „ ð9˜ló 9ò
-ò6ó/r   r†   ÚcinterpreterÚreturnc                 ó.  — | j                  «       }|t        j                  k(  rt        | «      S |t        j                  k(  rt        | «      S |t        j                  k(  rt        | «      S |t        j                  k(  rt        | «      S t        d|› �«      ‚)Nz2NYI: PyDispatcher has not implemented support for )r'   r   rf   rd   rF   rC   r}   r{   rˆ   r†   rX   )rŽ   r'   s     r   Úcoerce_cinterpreterr‘   ò   s‡   € Ø
×
Ñ
Ó
€CØ
Œm× Ñ Ò Ü˜|Ó,Ð,Ø
Œm× Ñ Ò Ü˜|Ó,Ð,Ø
Œm×ÑÒÜ˜lÓ+Ð+Ø
Œm×)Ñ)Ò)Ü'¨Ó5Ð5Ü
ÐKÈCÈ5ÐQÓ
RÐRr   c                  óp   — t         j                  j                  j                  «       } | €J ‚t	        | «      S r   )r4   r5   r6   r7   r‘   )Úinterpreters    r   Ú&retrieve_current_functorch_interpreterr”   ÿ   s1   € Ü—(‘(×%Ñ%×<Ñ<Ó>€KØÐ"Ð"Ð"Ü˜{Ó+Ð+r   c                  ó–   — t         j                  j                  j                  «       } | €g S | D �cg c]  }t	        |«      ‘Œ c}S c c}w r   )r4   r5   r6   Úget_interpreter_stackr‘   )ÚcisÚcis     r   Ú#retrieve_all_functorch_interpretersr™     s>   € Ü
�(‰(×
Ñ
×
3Ñ
3Ó
5€CØ
€{Øˆ	Ø.1Ö2¨Ô Õ#Ò2Ð2ùÒ2s   ±AÚstates.c                 ó  — t         j                  j                  j                  «       }|€t	        | «      dk7  s|�t	        | «      dk(  ryt        «       }t	        |«      t	        | «      k(  xr t        d„ t        || «      D «       «      S )Nr   Fc              3   óD   K  — | ]  \  }}|j                  |«      –— Œ y ­wr   )r-   )Ú.0r˜   r,   s      r   ú	<genexpr>z*compare_functorch_state.<locals>.<genexpr>  s"   è ø€ ò +Ù"+ " eˆ�‰�u×ñ+ùs   ‚ )r4   r5   r6   r7   Úlenr™   ÚallÚzip)rš   Úpeekr—   s      r   Úcompare_functorch_stater£     s}   € ô �8‰8×Ñ×5Ñ5Ó7€DØˆœ˜V›¨Ò)¨tÐ/?ÄCÈÃKÐSTÒDTØä
-Ó
/€CÜˆs‹8”s˜6“{Ñ"ò ¤sñ +Ü/2°3¸Ó/?ô+ó (ð r   c                 óÔ   — t        «       }t        j                  t        j                  t        j
                  j                  j                  ||f«      \  }}|j                  | ||«      S r   )	r”   ri   rj   r4   rk   r5   r6   Úunwrap_if_deadr   )r   r   r   r“   s       r   Údispatch_functorchr¦     sV   € Ü8Ó:€Kô ×'Ñ'Ü�‰”e—h‘h×)Ñ)×8Ñ8¸4À¸.ó�L€Dˆ&ð ×Ñ˜r 4¨Ó0Ð0r   ))r]   Úabcr   r   Útypingr   r4   Útorch.utils._pytreeÚutilsÚ_pytreeri   Útorch._C._functorchr   r   r   r	   r
   r   r   r   r   Útorch.autograd.forward_adr   r   Úcontextmanagerr!   r<   rA   rC   rb   rd   r{   r†   r‘   r”   r9   r™   ÚtupleÚboolr£   r¦   r   r   r   ú<module>r±      s<  ðã ß #Ý ã ß $Ð $÷
÷ 
õ 
õ <ðô@)˜3ô )ð: ×Ññ(ó ð(ð ×Ññ2ó ð2ð ×Ññ&ó ð&ôBÐ*ô Bð< ×Ññó ðôFÐ*ô FôDJÐ)ô JôD/Ð3ô /ð"
S lð 
SÐ7Kó 
Sð,Ð0Dó ,ð3¨TÐ2FÑ-Gó 3ð D¨¨s°C¨x©Ñ$9ð ¸dó ó 
1r   