§
    ŠŠtjc  ã                  óÌ  — d Z ddlmZ ddlZddlZddlmZmZ ddlm	c m
Z
 ddlm	c mZ ddlm	c mZ ddlmZ erddlmZ ddlmZ ddlmZmZ 	 dHdId„ZdJdKd„Z	 	 dLdMd„Z	 	 	 dNddœdOd#„Z	 dPdQd'„Z	 dPdQd(„Zdd)œdRd,„Zddd-œdSd0„Z 	 dTdddd1œdUd4„Z!	 	 dPdd5œdVd6„Z"dTdWd8„Z#d9d:œdXd<„Z$dYdZd@„Z	 dYdZdA„Z%d[dD„Z& eee
j        dE¦  «          eee
j        ¦  «          eee
j        ¦  «          ee¦  «          ee ¦  «          ee!¦  «          ee"¦  «          ee#¦  «          ee$¦  «          eeej        dF¦  «          ee%ej        dF¦  «          ee&ej&        dG¦  «         dS )\a$  
The APIs in this file are exposed as `functorch.*`. They are thin wrappers
around the torch.func.* APIs that have deprecation warnings -- we're trying
to move people to the torch.func.* equivalents.

NB: We don't use *args, **kwargs in the signatures because that changes the
documentation.
é    )ÚannotationsN)ÚAnyÚTYPE_CHECKING)ÚCallable)Ú	argnums_t)Ú	in_dims_tÚ
out_dims_tFÚapiÚstrÚnew_apiú
str | NoneÚreplace_newlinesÚboolÚreturnc                óV   — |€d| › �}d| › d|› d�}|r|                      dd¦  «        }|S )Nztorch.func.z[We've integrated functorch into PyTorch. As the final step of the 
integration, `functorch.zk` is deprecated as of PyTorch 
2.0 and will be deleted in a future version of PyTorch >= 2.3. 
Please use `z™` instead; see the PyTorch 2.0 release notes 
and/or the `torch.func` migration guide for more details 
https://pytorch.org/docs/main/func.migrating.htmlú
Ú )Úreplace)r
   r   r   Úwarnings       úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_functorch/deprecated.pyÚget_warningr      sc   € ð €Ø% Ð%Ð%ˆð	=Ø#&ð	=ð 	=ð ð	=ð 	=ð 	=ð ð ð ,Ø—/’/ $¨Ñ+Ô+ˆØ€Nó    ÚNonec                ób   — t          | |d¬¦  «        }t          j        |t          d¬¦  «         d S )NT)r   é   )Ú
stacklevel)r   ÚwarningsÚwarnÚFutureWarning)r
   r   r   s      r   Úwarn_deprecatedr    /   s3   € Ý˜#˜w¸Ð>Ñ>Ô>€GÝ„M�'�=°QÐ7Ñ7Ô7Ð7Ð7Ð7r   Úfunctorch_apiúCallable[..., Any]Útorch_func_apiúCallable[..., Any] | NoneÚnew_api_namec                óì   — | j         }|€t          t          |¦  «        }|j        €d S t	          ||¦  «        }dt          j        |d¦  «        z   }t          j        |d¦  «        }|j        |z   | _        d S )Nz
.. warning::

z    )Ú__name__ÚgetattrÚ_implÚ__doc__r   ÚtextwrapÚindent)r!   r#   r%   Úapi_namer   Úwarning_notes         r   Ú
setup_docsr/   4   s{   € ð
 Ô%€HØÐÝ ¥¨Ñ1Ô1ˆàÔÐ%Øˆå˜( LÑ1Ô1€GØ'­(¬/¸'À6Ñ*JÔ*JÑJ€LÝ”? <°Ñ8Ô8€LØ*Ô2°\ÑA€MÔÐÐr   Úerror©Ú
chunk_sizeÚfuncÚin_dimsr   Úout_dimsr	   Ú
randomnessr2   ú
int | Nonec               óT   — t          dd¦  «         t          j        | ||||¬¦  «        S )NÚvmapú
torch.vmapr1   )r    Úapisr9   )r3   r4   r5   r6   r2   s        r   r9   r9   F   s/   € õ �F˜LÑ)Ô)Ð)ÝŒ9�T˜7 H¨jÀZÐPÑPÔPÐPr   Úargnumsr   Úhas_auxc                óL   — t          d¦  «         t          j        | ||¦  «        S )NÚgrad)r    r;   r?   ©r3   r<   r=   s      r   r?   r?   R   s&   € õ �FÑÔÐÝŒ9�T˜7 GÑ,Ô,Ð,r   c                óL   — t          d¦  «         t          j        | ||¦  «        S )NÚgrad_and_value)r    r;   rB   r@   s      r   rB   rB   Y   s(   € õ Ð$Ñ%Ô%Ð%ÝÔ˜t W¨gÑ6Ô6Ð6r   )r=   Úprimalsr   c               óJ   — t          d¦  «         t          j        | g|¢R d|iŽS )NÚvjpr=   )r    r)   rE   )r3   r=   rC   s      r   rE   rE   `   s0   € Ý�EÑÔÐÝŒ9�TÐ5˜GÐ5Ð5Ð5¨WÐ5Ð5Ð5r   ©Ústrictr=   ÚtangentsrG   c               óR   — t          d¦  «         t          j        | ||||¬¦  «        S )NÚjvprF   )r    r)   rJ   )r3   rC   rH   rG   r=   s        r   rJ   rJ   e   s-   € õ �EÑÔÐÝŒ9�T˜7 H°VÀWÐMÑMÔMÐMr   ©r=   r2   Ú_preallocate_and_copyúint | tuple[int, ...]rL   c               óR   — t          d¦  «         t          j        | ||||¬¦  «        S )NÚjacrevrK   )r    r)   rO   )r3   r<   r=   r2   rL   s        r   rO   rO   q   s:   € õ �HÑÔÐÝŒ<ØØØØØ3ðñ ô ð r   ©r6   c               óP   — t          d¦  «         t          j        | |||¬¦  «        S )NÚjacfwdrP   )r    r)   rR   )r3   r<   r=   r6   s       r   rR   rR   ƒ   s+   € õ �HÑÔÐÝŒ<˜˜g w¸:ÐFÑFÔFÐFr   Úintc                óL   — t          d¦  «         t          j        | |¬¦  «        S )NÚhessian)r<   )r    r)   rU   )r3   r<   s     r   rU   rU   Ž   s%   € Ý�IÑÔÐÝŒ=˜ wÐ/Ñ/Ô/Ð/r   Ú	mutations©ÚremoverX   c               óL   — t          d¦  «         t          j        | |¬¦  «        S )NÚfunctionalizerW   )r    r)   rZ   )r3   rX   s     r   rZ   rZ   “   s(   € õ �OÑ$Ô$Ð$ÝÔ˜t¨FÐ3Ñ3Ô3Ð3r   Úmodelú	nn.ModuleÚdisable_autograd_trackingc                óL   — t          dd¦  «         t          j        | |¦  «        S )NÚmake_functionalútorch.func.functional_call)r    Ú_nn_implr_   ©r[   r]   s     r   r_   r_   š   s(   € ÝÐ%Ð'CÑDÔDÐDÝÔ# EÐ+DÑEÔEÐEr   c                óL   — t          dd¦  «         t          j        | |¦  «        S )NÚmake_functional_with_buffersr`   )r    ra   rd   rb   s     r   rd   rd   Ÿ   s*   € õ Ð2Ð4PÑQÔQÐQÝÔ0°Ð8QÑRÔRÐRr   Úmodelsúlist[nn.Module]c                óJ   — t          dd¦  «         t          j        | ¦  «        S )NÚcombine_state_for_ensembleútorch.func.stack_module_state)r    ra   rh   )re   s    r   rh   rh   ¦   s%   € ÝÐ0Ð2QÑRÔRÐRÝÔ.¨vÑ6Ô6Ð6r   r:   r`   ri   )NF)r
   r   r   r   r   r   r   r   )N)r
   r   r   r   r   r   )NN)r!   r"   r#   r$   r%   r   r   r   )r   r   r0   )r3   r"   r4   r   r5   r	   r6   r   r2   r7   r   r"   )r   F)r3   r"   r<   r   r=   r   r   r"   )r3   r"   rC   r   r=   r   r   r   )r3   r"   rC   r   rH   r   rG   r   r=   r   r   r   )r   )r3   r"   r<   rM   r=   r   r2   r7   rL   r   r   r"   )
r3   r"   r<   r   r=   r   r6   r   r   r"   )r3   r"   r<   rS   r   r"   )r3   r"   rX   r   r   r"   )F)r[   r\   r]   r   r   r   )re   rf   r   r   )'r*   Ú
__future__r   r+   r   Útypingr   r   Útorch._functorch.apisÚ
_functorchr;   Ú!torch._functorch.eager_transformsÚeager_transformsr)   Ú torch._functorch.make_functionalr_   ra   Útorch.nnÚnnÚcollections.abcr   r   Útorch._functorch.vmapr   r	   r   r    r/   r9   r?   rB   rE   rJ   rO   rR   rU   rZ   rd   rh   © r   r   ú<module>rv      s  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð ð ð <Ø(Ð(Ð(Ð(Ð(Ð(à;Ð;Ð;Ð;Ð;Ð;Ø;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð DIðð ð ð ð ð$8ð 8ð 8ð 8ð 8ð 15Ø#ðBð Bð Bð Bð Bð( ØØð		Qð "ð	Qð 	Qð 	Qð 	Qð 	Qð 	Qð GLð-ð -ð -ð -ð -ð GLð7ð 7ð 7ð 7ð 7ð BGð 6ð 6ð 6ð 6ð 6ð 6ð Øð	Nð 	Nð 	Nð 	Nð 	Nð 	Nð &'ðð Ø!Ø"'ðð ð ð ð ð ð( ØðGð
 ðGð Gð Gð Gð Gð Gð0ð 0ð 0ð 0ð 0ð 0;ð4ð 4ð 4ð 4ð 4ð 4ðFð Fð Fð Fð Fð 9>ðSð Sð Sð Sð Sð7ð 7ð 7ð 7ð
 €
ˆ4�”˜LÑ )Ô )Ð )Ø 
€
ˆ4�”Ñ Ô Ð Ø 
€
ˆ>˜4Ô.Ñ /Ô /Ð /Ø 
€
ˆ3�„€Ø 
€
ˆ3�„€Ø 
€
ˆ6Ñ Ô Ð Ø 
€
ˆ6Ñ Ô Ð Ø 
€
ˆ7Ñ Ô Ð Ø 
€
ˆ=Ñ Ô Ð Ø 
€
ˆ?˜HÔ4Ð6RÑ SÔ SÐ SØ 
€
Ø  (Ô":Ð<Xñô ð ð €
ØØÔ'Ø#ñô ð ð ð r   