+
    –°³jÎK  ã                  óŠ  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
HtHt ^ RIHtHt ^ RIt^ RIHt ^ RIHt ^ R	IHtHtHtHtHt ^ R
IHtHtHtHtHt ]'       d	   ^ RIH t H!t! ]! R4      t"]! R4      t#]$]%]	R3,          ,          t&]$]%]$R3,          ,          R,          t'R R lt(R R lt)R R lt*R R lt+R R lt,R R lt-R R lt.R R lt/R R  lt0R! R" lt1R# R$ lt2R% R& lt3R' R( lt4R) R* lt5R+ R, lt6R- R. lt7R/ R0 lt8R1 R2 lt9]Pt                  R3 R4 l4       t;R5 R6 lt<R7 R8 lt=R9 R: lt>R; R< lt?R# )=é    )ÚannotationsN)ÚCallable)Úpartial)ÚAnyÚcastÚNoReturnÚTYPE_CHECKING)Ú	ParamSpecÚTypeVar)ÚTensor)Úis_batchedtensor)Ú_add_batch_dimÚ_remove_batch_dimÚ_vmap_decrement_nestingÚ_vmap_increment_nestingÚlazy_load_decompositions)Ú_broadcast_to_and_flattenÚtree_flattenÚ	tree_map_Útree_unflattenÚTreeSpec)Ú	GeneratorÚIterableÚ_PÚ_R.c               ó    € V ^8„  d   QhRRRR/# )é   ÚfzCallable[_P, _R]Úreturn© )Úformats   "ÚV/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_functorch/vmap.pyÚ__annotate__r#   /   s   € ÷ ñ Ð*:ð Ð?Oñ ó    c                óT   a a€ R o\         P                  ! S 4      R V V3R ll4       pV# )zvtorch.func.{grad, vjp, jacrev, hessian} don't yet support saved tensor hooks. Please open an issue with your use case.c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úargsú_P.argsÚkwargsú	_P.kwargsr   r   r    )r!   s   "r"   r#   Ú8doesnt_support_saved_tensors_hooks.<locals>.__annotate__6   s!   € ÷ &ñ &�'ð & Yð &°2ñ &r$   c                 ó´   <€ \         P                  P                  P                  S4      ;_uu_ 4        S! V / VB uuR R R 4       #   + '       g   i     R # ; i©N)ÚtorchÚautogradÚgraphÚdisable_saved_tensors_hooks)r'   r)   r   Úmessages   *,€€r"   ÚfnÚ.doesnt_support_saved_tensors_hooks.<locals>.fn5   s;   ø€ ä�^‰^×!Ñ!×=Ñ=¸g×FÕFÙ�dÐ%˜fÑ%÷ G×F×FÓFús   ³AÁA	)Ú	functoolsÚwraps)r   r3   r2   s   f @r"   Ú"doesnt_support_saved_tensors_hooksr7   /   s6   ù€ ð	3ð ô
 ‡_‚_�QÓ÷&ð &ó ð&ð €Ir$   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úflat_in_dimsúlist[int | None]Ú	flat_argsú	list[Any]r   Úintr    )r!   s   "r"   r#   r#   >   s$   € ÷ ñ Ø"ðØ/8ðàñr$   c                ón  a€ \        W4       UUu. uF  w  r#Vf   K  VP                  V4      NK  	  uppo\        S4      ^ 8X  d   \        R4      hS'       dP   \        ;QJ d    V3R lS 4       F  '       g   K   RM	  RM! V3R lS 4       4      '       d   \        RS R24      hS^ ,          # u uppi )Nz/vmap: Expected at least one Tensor to vmap overc              3  ó:   <"  € T F  qS^ ,          8g  x € K  	  R# 5i)r   Nr    )Ú.0ÚsizeÚbatch_sizess   & €r"   Ú	<genexpr>Ú/_validate_and_get_batch_size.<locals>.<genexpr>H   s   øé € ÐJ¹k°d ;¨q¥>Ö1»kùs   ƒTFzTvmap: Expected all tensors to have the same size in the mapped dimension, got sizes z for the mapped dimension)ÚziprA   ÚlenÚ
ValueErrorÚany)r9   r;   Úin_dimÚargrB   s   &&  @r"   Ú_validate_and_get_batch_sizerK   >   s¦   ø€ ô
 ˜|Ô7ôá7‰KˆFØô 	ˆ�‰�ÖÙ7ò€Kô
 ˆ;Ó˜1ÔÜÐJÓKÐKß—s“sÔJ¹kÓJ—s—s’sÔJ¹kÓJ×JÒJÜð$Ø$/ =Ð0IðKó
ð 	
ð �q�>Ðùós
   �B1�B1c               ó    € V ^8„  d   QhRRRR/# )r   Úbatched_outputsúTensor | tuple[Tensor, ...]r   r=   r    )r!   s   "r"   r#   r#   P   s   € ÷ ñ Ð"=ð À#ñ r$   c                óH   € \        V \        4      '       d   \        V 4      # ^# )é   )Ú
isinstanceÚtuplerF   )rM   s   &r"   Ú_num_outputsrS   P   s   € Ü�/¤5×)Ò)Ü�?Ó#Ð#Ùr$   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   Úvalueztuple[_R, ...] | _RÚnum_elementsr=   Úerror_message_lambdazCallable[[], str]r   ztuple[_R, ...]r    )r!   s   "r"   r#   r#   Z   s0   € ÷ 	ñ 	Øð	àð	ð ,ð	ð ñ		r$   c                ó†   € \        V \        4      '       g   V 3V,          # \        V 4      V8w  d   \        V! 4       4      hV # r-   )rQ   rR   rF   rG   )rU   rV   rW   s   &&&r"   Ú	_as_tuplerY   Z   s>   € ô
 �eœU×#Ò#Øˆx˜,Õ&Ð&Ü
ˆ5ƒz�\Ô!ÜÑ-Ó/Ó0Ð0Ø€Lr$   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   Úin_dimsÚ	in_dims_tr'   útuple[Any, ...]ÚfuncúCallable[..., Any]r   z1tuple[int, list[int | None], list[Any], TreeSpec]r    )r!   s   "r"   r#   r#   f   s,   € ÷ 7ñ 7Øð7Ø-ð7Ø5Gð7à6ñ7r$   c                ó^  € \        V \        4      '       g>   \        V \        4      '       g(   \        R \	        V4       RV  R\        V 4       R24      h\        V4      ^ 8X  d   \        R \	        V4       R24      h\        V4      w  r4\        W4      pVf2   \        R \	        V4       RV  R\        V 4      ^,           RV R2	4      h\        \        W54      4       EF>  w  pw  rx\        V\        4      '       g#   Ve   \        R \	        V4       RV  RV R24      h\        V\        4      '       dA   \        V\        4      '       g+   \        R \	        V4       RV  RV R	\        V4       R
2	4      hVe{   W‡P                  4       ) 8  g   W‡P                  4       8¼  dR   \        R \	        V4       RV  RV RVP                  4        RVP                  4        RVP                  4        R24      hVf   EK  V^ 8  g   EK&  W‡P                  4       ,          WV&   EKA  	  \        WS4      VVV3# )úvmap(z
, in_dims=zv, ...)(<inputs>): expected `in_dims` to be int or a (potentially nested) tuple matching the structure of inputs, got: Ú.z�)(<inputs>): got no inputs. Maybe you forgot to add inputs, or you are trying to vmap over a function with no inputs. The latter is unsupported.zb, ...)(<inputs>): in_dims is not compatible with the structure of `inputs`. in_dims has structure z but inputs has structure z, ...)(<inputs>): Got in_dim=zE for an input but in_dim must be either an integer dimension or None.z' for an input but the input is of type zT. We cannot vmap over non-Tensor arguments, please use None as the respective in_dimz> for some input, but that input is a Tensor of dimensionality z  so expected in_dim to satisfy -z <= in_dim < )rQ   r=   rR   rG   Ú	_get_nameÚtyperF   r   r   Ú	enumeraterE   r   ÚdimrK   )	r[   r'   r^   r;   Ú	args_specr9   ÚirJ   rI   s	   &&&      r"   Ú_process_batched_inputsri   f   sZ  € ô �gœs×#Ò#¬J°wÄ×,FÒ,FÜØ”I˜d“OÐ$ J¨w¨ið 86ä6:¸7³m°_ÀAðGó
ð 	
ô
 ˆ4ƒy�A„~ÜØ”I˜d“OÐ$ð %)ð *ó
ð 	
ô (¨Ó-Ñ€IÜ,¨WÓ@€LØÒÜØ”I˜d“OÐ$ J¨w¨ið 8%ä%1°'Ó%:¸1Õ%=Ð$>ð ?Ø&˜K qð*ó
ð 	
ô &¤c¨)Ó&B×CÑˆ‰=ˆCÜ˜&¤#×&Ò&¨6Ò+=ÜØœ	 $›Ð(¨
°7°)ð <Ø$˜Xð &0ð1óð ô
 �fœc×"Ò"¬:°c¼6×+BÒ+BÜØœ	 $›Ð(¨
°7°)ð <Ø$˜XÐ%LÜ˜“9�+ð ;ð<óð ð Ò 6¯W©W«Y¨JÔ#6¸&ÇGÁGÃIÔ:MÜØœ	 $›Ð(¨
°7°)ð <Ø$˜Xð &%Ø%(§W¡W£Y Kð 0Ø—G‘G“I�;˜m¨C¯G©G«I¨;°að9óð ð Õ &¨1§*Ø$§w¡w£yÕ0ˆLŒOñ- Dô2 	% \Ó=ØØØð	ð r$   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r9   r:   r;   r<   Ú
vmap_levelr=   rg   r   r   r]   r    )r!   s   "r"   r#   r#   ¥   s:   € ÷ 5ñ 5Ø"ð5àð5ð ð5ð ð	5ð
 ñ5r$   c           	     ó€   € \        W4       UUu. uF  w  rEVf   TM\        WTV4      NK  	  ppp\        Wc4      # u uppi r-   )rE   r   r   )r9   r;   rk   rg   rI   rJ   Úbatched_inputss   &&&&   r"   Ú_create_batched_inputsrn   ¥   sM   € ô ˜|Ô7ôá7‰KˆFð Š~‰¤>°#¸zÓ#JÒJÙ7ð ñ ô ˜.Ó4Ð4ùó	s   �:c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r   ÚnameÚstrÚbatched_outputr   rk   r=   Ú
batch_sizeÚout_dimú
int | Noner   ztorch.Tensorr    )r!   s   "r"   r#   r#   ³   sL   € ÷ Nñ NØ
ðNàðNð ðNð ð	Nð
 ðNð ñNr$   c           
     ó(  € VfF   \        V\        P                  4      '       d$   \        V4      '       d   \	        RV  RV  R24      hV# \        V\        P                  4      '       g   \	        RV  RV  R\        V4       R24      h\        WW44      # )Nra   z	, ...): `z5` can not return a BatchedTensor when out_dim is Nonez%` must only return Tensors, got type z3. Did you mean to set out_dims= to None for output?)rQ   r.   r   r   rG   rd   r   )rp   rr   rk   rs   rt   s   &&&&&r"   Ú_maybe_remove_batch_dimrw   ³   s°   € ð ‚Ü�n¤e§l¡l×3Ò3Ô8HØ÷9
ò 9
ô Ø˜�v˜Y t fð -5ð 6óð ð Ðô �n¤e§l¡l×3Ò3ÜØ�D�6˜ 4 &ð )!Ü!% nÓ!5Ð 6ð 7@ð@ó
ð 	
ô ˜^¸ÓMÐMr$   c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r   rM   rN   Úout_dimsÚ
out_dims_trk   r=   rs   r^   r_   r   r]   r    )r!   s   "r"   r#   r#   Ð   sD   € ÷ *5ñ *5Ø0ð*5àð*5ð ð*5ð ð	*5ð
 ð*5ð ñ*5r$   c                óò  aaa€ \        V 4      w  poR  VVV3R llp. p\        V \        P                  4      '       d]   \        S\        4      '       d   S.pM\\        S\
        4      '       d   \        S4      ^8X  d   \        S4      pM*Sf   S.pM"V! 4        M\        SS4      pVf	   V! 4        MTp\        WW4       U	U
u. uF  w  rš\        \        S4      W’W:4      NK  	  pp	p
\        VS4      # u up
p	i )c               ó   € V ^8„  d   QhRR/# )r   r   r   r    )r!   s   "r"   r#   Ú%_unwrap_batched.<locals>.__annotate__Ù   s   € ÷ 
ñ 
 ñ 
r$   c                 óf   <€ \        R \        S 4       RS R\        S4      ^,           RS R2	4      h)ra   ú, ..., out_dims=z`)(<inputs>): out_dims is not compatible with the structure of `outputs`. out_dims has structure z but outputs has structure rb   )rG   rc   r   )r^   ry   Úoutput_specs   €€€r"   Úincompatible_errorÚ+_unwrap_batched.<locals>.incompatible_errorÙ   sJ   ø€ ÜØ”I˜d“OÐ$Ð$4°X°Jð ?&ä&2°8Ó&<¸QÕ&?Ð%@ð AØ(˜M¨ð,ó
ð 	
r$   )r   rQ   r.   r   r=   rR   rF   Úlistr   rE   rw   rc   r   )rM   ry   rk   rs   r^   Úflat_batched_outputsr�   Úflat_out_dimsÚbroadcast_resultrr   rt   Úflat_outputsr€   s   &f&&f       @r"   Ú_unwrap_batchedrˆ   Ð   sô   ú€ ô )5°_Ó(EÑ%Ð˜+÷
ò 
ð ')€MÜ�/¤5§<¡<×0Ò0ô �h¤×$Ò$Ø%˜J‰MÜ˜¤%×(Ò(¬S°«]¸aÔ-?Ü  ›N‰MØÒØ%˜J‰MáÕ ä4°X¸{ÓKÐØÒ#ÙÕ à,ˆMô (+Ð+?Ô'Oô	ñ (PÑ#ˆNô 	 Ü�d‹O˜^¸ö	
ñ (Pð	 ñ ô ˜,¨Ó4Ð4ùós   Ã!C3c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   Úxr   r^   r_   ry   rz   r   ÚNoner    )r!   s   "r"   r#   r#   ý   s*   € ÷ 	ñ 	˜#ð 	Ð%7ð 	À:ð 	ÐRVñ 	r$   c                ót   € \        V \        4      '       d   R # V f   R # \        R\        V4       RV R24      h)Nra   r   zˆ): `out_dims` must be an int, None or a python collection of ints representing where in the outputs the vmapped dimension should appear.)rQ   r=   rG   rc   )rŠ   r^   ry   s   &&&r"   Ú_check_int_or_noner�   ý   sD   € Ü�!”S×ÒÙØ‚yÙÜ
Ø
”	˜$“Ð Ð 0°°
ð ;+ð 	,óð r$   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ry   rz   r^   r_   r   r‹   r    )r!   s   "r"   r#   r#   	  s)   € ÷ Sñ SØðSØ 2ðSà	ñSr$   c                ól   € \        V \        4      '       d   R # \        \        \        WR7      V 4       R # )N)r^   ry   )rQ   r=   r   r   r�   )ry   r^   s   &&r"   Ú$_check_out_dims_is_int_or_int_pytreer�   	  s&   € ô �(œC× Ò ÙÜŒgÔ(¨tÔGÈÖRr$   c               ó    € V ^8„  d   QhRRRR/# )r   r^   r_   r   rq   r    )r!   s   "r"   r#   r#     s   € ÷ 
ñ 
Ð&ð 
¨3ñ 
r$   c                óÆ   € \        V R 4      '       d   V P                  # \        V \        P                  4      '       d   R\        V P                  4       R2# \        V 4      # )Ú__name__zfunctools.partial(z, ...))Úhasattrr“   rQ   r5   r   rc   r^   Úrepr)r^   s   &r"   rc   rc     sQ   € Üˆt�Z× Ò Ø�}‰}Ðä�$œ	×)Ñ)×*Ò*Ø#¤I¨d¯i©iÓ$8Ð#9¸Ð@Ð@ô
 �‹:Ðr$   c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# )r   r^   ú)Callable[_P, Tensor | tuple[Tensor, ...]]r[   r\   ry   rz   Ú
randomnessrq   Ú
chunk_sizeru   r'   r(   r)   r*   r   r   r    )r!   s   "r"   r#   r#     sX   € ÷ 'ñ 'Ø
3ð'àð'ð ð'ð ð	'ð
 ð'ð ð'ð ð'ð 	ñ'r$   c           	     ó°   € \        4        \        W 4       \        WV 4      w  rxršVe   \        W˜Wt4      p\	        V VVV
VV3/ VB # \        V VVV	V
VV3/ VB # r-   )r   r�   ri   Ú_get_chunked_inputsÚ_chunked_vmapÚ
_flat_vmap)r^   r[   ry   r˜   r™   r'   r)   rs   r9   r;   rg   Úchunks_flat_argss   &&&&&*,     r"   Ú	vmap_implrŸ     s—   € ô ÔÜ(¨Ô8Ü5LØ�tó6Ñ2€J˜ið ÒÜ.Ø Zó
Ðô ØØØØØØñ
ð ñ
ð 	
ô ØØØØØØØñ	ð ñ	ð 	r$   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Útotal_elemsr=   r™   r   z	list[int]r    )r!   s   "r"   r#   r#   H  s!   € ÷ ñ  ð °#ð ¸)ñ r$   c                ój   € W,          pV.V,          pW,          pV^ 8w  d   VP                  V4       V# )r   )Úappend)r¡   r™   Ún_chunksÚchunk_sizesÚ	remainders   &&   r"   Úget_chunk_sizesr§   H  s9   € ØÕ(€HØ�, Õ)€KàÕ(€IØ�A„~Ø×Ñ˜9Ô%ØÐr$   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r;   r<   r9   r:   rs   r=   r™   ru   r   úIterable[tuple[Any, ...]]r    )r!   s   "r"   r#   r#   R  s:   € ÷ ñ Øðà"ðð ðð ð	ð
 ñr$   c                ó  a€ V3oVe+   \        W#4      p\        \        P                  ! V4      4      o\        ;QJ d     . V3R l\	        W4       4       F  NK  	  5M! V3R l\	        W4       4       4      p\	        V!  pV# )Nc              3  ó|   <"  € T F1  w  rVe   VP                  SVR7      MV.\        S4      ,          x € K3  	  R # 5i)N©rf   )Útensor_splitrF   )r@   ÚtrI   Ú
split_idxss   &  €r"   rC   Ú&_get_chunked_inputs.<locals>.<genexpr>]  sP   øé € ð 
ñ 6‰IˆAð Ò!ð �N‰N˜:¨6ˆNÔ2ð ðô �*‹oõôó 6ùs   ƒ9<)r§   rR   Ú	itertoolsÚ
accumulaterE   )r;   r9   rs   r™   r¥   Úflat_args_chunksrž   r¯   s   &&&&   @r"   r›   r›   R  s~   ø€ ð �€JØÒÜ% jÓ=ˆÜœ9×/Ò/°Ó<Ó=ˆ
ç”uô 
ô ˜YÔ5ó
—u‘uô 
ô ˜YÔ5ó
ó 
Ðô Ð,Ñ-ÐØÐr$   c               ó    € V ^8„  d   QhRRRR/# )r   Úchunks_output_r<   r   z&tuple[list[tuple[Any, ...]], TreeSpec]r    )r!   s   "r"   r#   r#   o  s   € ÷ (ñ (Øð(à+ñ(r$   c                ó°   € . pR pV  F)  p\        V4      w  rEVP                  V4       Ve   K'  TpK+  	  \        \        V!  4      pVf   \	        R4      hWb3# )Nzarg_spec must not be None)r   r£   rƒ   rE   ÚAssertionError)rµ   Úflat_chunks_outputÚarg_specÚoutputÚflat_outputÚ	arg_specsÚflat_output_chunkss   &      r"   Ú_flatten_chunks_outputr¾   o  sm   € ð
 +-ÐØ $€HÛ ˆÜ!-¨fÓ!5ÑˆØ×!Ñ! +Ô.ØÔØ ŠHñ	 !ô œcÐ#5Ñ6Ó7ÐØÒÜÐ8Ó9Ð9ØÐ'Ð'r$   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ry   rz   r¹   r   r½   zlist[tuple[Any, ...] | None]r   zlist[Tensor]r    )r!   s   "r"   r#   r#   „  s0   € ÷ ñ Øðàðð 5ðð ñ	r$   c                óh  € \        W4      pVf   \        R4      h\        V4      \        V4      8w  d$   \        R\        V4       R\        V4       24      h. p\        V4       FJ  w  rVW%,          pVf   \        RV R24      hVP	                  \
        P                  ! WvR7      4       R W%&   KL  	  V# )Nzflat_out_dims must not be Nonezlen(flat_out_dims)=z != len(flat_output_chunks)=zchunk at index z must not be Noner¬   )r   r·   rF   re   r£   r.   Úcat)ry   r¹   r½   r…   r»   Úidxrt   Úchunks   &&&     r"   Ú_concat_chunked_outputsrÄ   „  sÁ   € ô .¨hÓA€MØÒÜÐ=Ó>Ð>Ü
ˆ=ÓœSÐ!3Ó4Ô4ÜØ!¤# mÓ"4Ð!5Ð5QÔRUÐVhÓRiÐQjÐkó
ð 	
ð !#€KÜ! -Ö0‰ˆØ"Õ'ˆØŠ=Ü  ?°3°%Ð7HÐ!IÓJÐJØ×Ñœ5Ÿ9š9 UÔ8Ô9à"&ÐÓñ 1ð Ðr$   c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# )r   r^   r—   r9   r:   rž   r©   rg   r   ry   rz   r˜   rq   r)   r   r   r    )r!   s   "r"   r#   r#   ž  sX   € ÷ 91ñ 91Ø
3ð91à"ð91ð 0ð91ð ð	91ð
 ð91ð ð91ð ð91ð 	ñ91r$   c                ó¬  € . pVR 8X  d   \         P                  ! 4       MRpV F]  p	\        V	4      p
\        W4      pV^ 8X  d   K"  Ve   \         P                  ! V4       VP                  \        V VVV
VVV3/ VB 4       K_  	  \        V4      w  rÍ?\        WM\        \        \        \        R3,          R,          ,          V4      4      p\        Wí4      # )ÚsameN.)r.   Úget_rng_staterƒ   rK   Úset_rng_stater£   r�   r¾   rÄ   r   rR   r   r   )r^   r9   rž   rg   ry   r˜   r)   Úchunks_outputÚrsÚflat_args_tupler;   rs   r½   r¹   r»   s   &&&&&&,        r"   rœ   rœ   ž  sà   € ð  "€MØ",°Ô"6Œ×	Ò	Ô	¸D€BÛ+ˆÜ˜Ó)ˆ	Ü1°,ÓJˆ
ð ˜Œ?ÙàŠ>Ü×Ò Ô#Ø×ÑÜØØØØØØØñ	ð ñ	ö	
ñ' ,ô@ $:¸-Ó#HÑ Ðð 	ô
 *ØœD¤¤e¬C°¨H¥o¸Õ&<Õ!=Ð?QÓRó€Kô
 ˜+Ó0Ð0r$   c               ó    € V ^8„  d   QhRRRR/# )r   r˜   rq   r   r‹   r    )r!   s   "r"   r#   r#   Û  s   € ÷ 
ñ 
 cð 
¨dñ 
r$   c                ó0   € V R9  d   \        RV  24      hR# )ÚerrorzLOnly allowed values for randomness are 'error', 'different', or 'same'. Got N)rÏ   Ú	differentrÇ   )ÚRuntimeError)r˜   s   &r"   Ú_check_randomness_argrÒ   Û  s)   € ØÐ7Ô7ÜØZÐ[eÐZfÐgó
ð 	
ñ 8r$   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rs   r=   r˜   rq   r   zGenerator[int, None, None]r    )r!   s   "r"   r#   r#   ã  s$   € ÷ "ñ "Øð"Ø!$ð"àñ"r$   c              #  ó`   "  €  \        W4      pVx € \        4        R #   \        4        i ; i5ir-   )r   r   )rs   r˜   rk   s   && r"   Úvmap_increment_nestingrÕ   â  s'   é € ð"Ü,¨ZÓDˆ
ØÒäÖ!øÔÕ!üs   ‚.„ “.Ÿ+«.c               ó<   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRR/	# )r   r^   z*Callable[..., Tensor | tuple[Tensor, ...]]rs   r=   r9   r:   r;   r<   rg   r   ry   rz   r˜   rq   r)   r   r   r    )r!   s   "r"   r#   r#   í  sm   € ÷ Xñ XØ
4ðXàðXð #ðXð ð	Xð
 ðXð ðXð ðXð ðXð 	ñXr$   c           	     ó¨   € \        W4      ;_uu_ 4       p\        W#W„4      p	V ! V	/ VB p
\        W¥W�V 4      uuR R R 4       #   + '       g   i     R # ; ir-   )rÕ   rn   rˆ   )r^   rs   r9   r;   rg   ry   r˜   r)   rk   rm   rM   s   &&&&&&&,   r"   r�   r�   í  sM   € ô 
  
×	7Ô	7¸:Ü/Ø Zó
ˆñ  Ð9°&Ñ9ˆÜ˜¸*ÐRVÓW÷ 
8×	7×	7Ó	7ús   ”!A Á A	c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r^   zCallable[..., _R]r[   r\   rs   r=   r˜   rq   r   zCallable[..., tuple[Any, Any]]r    )r!   s   "r"   r#   r#     s4   € ÷ 	ñ 	Ø
ð	Ø&/ð	Ø=@ð	ØNQð	à#ñ	r$   c                ó&   a aaa€ R  VV VV3R llpV# )c               ó$   € V ^8„  d   QhRRRRRR/# )r   r'   r   r)   r   útuple[Any, Any]r    )r!   s   "r"   r#   Ú"restore_vmap.<locals>.__annotate__  s!   € ÷ ?ñ ?�Sð ? Cð ?¨Oñ ?r$   c                 óª   <€ \        SS4      ;_uu_ 4       p\        V SV4      pS! V/ VB p\        WB4      uuR R R 4       #   + '       g   i     R # ; ir-   )rÕ   Úwrap_batchedÚunwrap_batched)	r'   r)   rk   rm   rM   rs   r^   r[   r˜   s	   *,   €€€€r"   ÚinnerÚrestore_vmap.<locals>.inner  sF   ø€ Ü# J°
×;Ô;¸zÜ)¨$°¸ÓDˆNÙ" NÐ=°fÑ=ˆOÜ! /Ó>÷ <×;×;Ó;ús   – AÁA	r    )r^   r[   rs   r˜   rà   s   ffff r"   Úrestore_vmaprâ     s   û€ ÷?ó ?ð €Lr$   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r'   r]   Úbdimsr\   Úlevelr=   r   r    )r!   s   "r"   r#   r#     s,   € ÷ ñ Ø
ðØ"+ðØ47ðàñr$   c                ól   € \        V 4      w  r4\        W4      pVf   \        R4      h\        WSW$4      pV# )Nzflat_bdims must not be None)r   r   r·   rn   )r'   rä   rå   r;   ÚspecÚ
flat_bdimsÚresults   &&&    r"   rÞ   rÞ     s=   € ô # 4Ó(�O€IÜ*¨5Ó7€JØÒÜÐ:Ó;Ð;Ü# J¸5ÓG€FØ€Mr$   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r'   r   rå   r=   r   rÛ   r    )r!   s   "r"   r#   r#   *  s&   € ÷ Eñ E˜ð E Sð E¨_ñ Er$   c                óH  € \        V 4      w  r#\        V4      ^ 8X  d   V R3# V Uu. uFP  p\        V\        P                  4      '       d*   \        P
                  P                  P                  WA4      MVR3NKR  	  pp\        V!  w  rg\        Wc4      \        Ws4      3# u upi )r   Nr    )
r   rF   rQ   r.   r   Ú_CÚ
_functorchrˆ   rE   r   )r'   rå   r;   rç   rJ   ré   rº   rä   s   &&      r"   rß   rß   *  s¤   € Ü" 4Ó(�O€IÜ
ˆ9ƒ~˜ÔØ�Rˆxˆñ óñ ˆCô ˜#œuŸ|™|×,Ò,ô �H‰H×Ñ×/Ñ/°Ô;à�t�òñ ð ð ô ˜‘L�M€FÜ˜&Ó'¬¸Ó)DÐDÐDùòs   ¦AB)@Ú
__future__r   Ú
contextlibr5   r±   Úcollections.abcr   r   Útypingr   r   r   r	   Útyping_extensionsr
   r   r.   r   Útorch._C._functorchr   Útorch._functorch.predispatchr   r   r   r   r   Útorch.utils._pytreer   r   r   r   r   r   r   r   r   r=   rR   r\   rz   r7   rK   rS   rY   ri   rn   rw   rˆ   r�   r�   rc   rŸ   r§   r›   r¾   rÄ   rœ   rÒ   ÚcontextmanagerrÕ   r�   râ   rÞ   rß   r    r$   r"   Ú<module>r÷      s  ðõ #ã Û Û Ý $Ý ß 5Ó 5ß 0ã Ý Ý 0÷õ ÷õ ÷ ß3ñ ˆtƒ_€ÙˆTƒ]€à�%˜˜S˜•/Õ!€	Ø�5˜˜c˜•?Õ" TÕ)€
õõõ$õ	õ7õ~5õNõ:*5õZ	õSõ
õ'õTõõ:(õ*õ491õz
ð ×Ñô"ó ð"õXõL	õ÷Er$   