§
    ‚ŠtjL'  ã            
       ó‚  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
  ej        d¦  «        Zdedefd„Zd&d
ee         defd„Zdeee
f         deee
f         fd„Z ej        d¦  «        Zdedefd„Zd„ Zd„ ZdddddddddœZd„ Zd'd„Ze G d„ d ¦  «        ¦   «         Z	 d(d!ed"ed#ed$e j        dz  fd%„ZdS ))é    N)ÚOrderedDictÚdefaultdict)Ú	dataclass)ÚAnyz(?<=\.)(\d+)(?=\.|$)ÚkeyÚreturnc                 ó8   — t                                d| ¦  «        S )zBReplace every dot-delimited integer with '*' to get the structure.Ú*)Ú	_DIGIT_RXÚsub)r   s    ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/utils/loading_report.pyÚ_pattern_ofr      s   € å�=Š=˜˜cÑ"Ô"Ð"ó    é
   Úvaluesc                 ó  — t          | ¦  «        dk    rt          | d         ¦  «        S t          | ¦  «        } t          | ¦  «        |k    r| d         › d| d         › �S d                     t	          t          | ¦  «        ¦  «        S )zEFormat a list of ints as single number, {a, ..., b}, or first...last.é   r   z...éÿÿÿÿz, )ÚlenÚstrÚsortedÚjoinÚmap)r   Úcutoffs     r   Ú_fmt_indicesr      sw   € å
ˆ6�{„{�aÒÐÝ�6˜!”9‰~Œ~ÐÝ�F‰^Œ^€FÝ
ˆ6�{„{�VÒÐØ˜”)Ð,Ð,  r¤
Ð,Ð,Ð,Ø�9Š9•S�˜fÑ%Ô%Ñ&Ô&Ð&r   Úmappingc           	      ól  — d}t          | t          ¦  «        sd„ | D ¦   «         } d}t          t          ¦  «        }|                      ¦   «         D ]Ì\  }}t
                               |¦  «        }t          |¦  «        }t          |¦  «        D ]s\  }}t          ||         ¦  «        |k    r'||          
                    t          ¦   «         ¦  «         ||         |                              t          |¦  «        ¦  «         Œt||          
                    |¦  «         ŒÍi }	|                     ¦   «         D ]Ý\  }}
|
dd…         |
d         }}|                     d¦  «        }|d         }t          dt          |¦  «        ¦  «        D ]†}|dz
  t          |¦  «        k     r^||dz
           rSt!          t#          ||dz
           ¦  «        ¦  «        }t          ||dz
           ¦  «        dk    r|d	|z   d
z   z  }n||z  }n|dz  }|||         z  }Œ‡||	|<   ŒÞt%          |	¦  «        }|r|                     ¦   «         S |S )z¸
    Merge keys like 'layers.0.x', 'layers.1.x' into 'layers.{0, 1}.x'
    BUT only merge together keys that have the exact same value.
    Returns a new dict {merged_key: value}.
    Fc                 ó   — i | ]}||“ŒS © r   ©Ú.0Úks     r   ú
<dictcomp>z#update_key_name.<locals>.<dictcomp>2   s   € Ð)Ð)Ð)˜A�1�aÐ)Ð)Ð)r   TNr   r
   r   r   Ú{Ú})Ú
isinstanceÚdictr   ÚlistÚitemsr   Úfindallr   Ú	enumerater   ÚappendÚsetÚaddÚintÚsplitÚranger   r   r   Úkeys)r   Únot_mappingÚbucketr   ÚvalÚdigsÚpattÚiÚdÚ	out_itemsr   ÚsetsÚpartsÚfinalÚinsertÚouts                   r   Úupdate_key_namer@   )   s;  € ð €KÝ�g�tÑ$Ô$ð Ø)Ð) Ð)Ñ)Ô)ˆØˆå.9½$Ñ.?Ô.?€FØ—M’M‘O”Oð !ð !‰ˆˆSÝ× Ò  Ñ%Ô%ˆÝ˜3ÑÔˆÝ˜d‘O”Oð 	(ð 	(‰DˆAˆqÝ�6˜$”<Ñ Ô  AÒ%Ð%Ø�t”×#Ò#¥C¡E¤EÑ*Ô*Ð*Ø�4ŒL˜ŒO×Ò¥ A¡¤Ñ'Ô'Ð'Ð'ØˆtŒ×Ò˜CÑ Ô Ð Ð à€IØŸš™œð ð ‰ˆˆfØ˜3˜B˜3”K ¨¤ˆcˆØ—
’
˜3‘”ˆØ�a”ˆÝ�q�#˜e™*œ*Ñ%Ô%ð 		ð 		ˆAØ�1‰u•s˜4‘y”yÒ Ð  T¨!¨a©%¤[Ð Ý%¥f¨T°!°a±%¬[Ñ&9Ô&9Ñ:Ô:�Ý�t˜A ™E”{Ñ#Ô# aÒ'Ð'Ø˜S 6™\¨CÑ/Ñ/�E�Eà˜V‘O�E�Eà˜‘�Ø�U˜1”XÑˆEˆEàˆ	�%ÑÐÝ
�iÑ
 Ô
 €CØð Ø�xŠx‰zŒzÐØ€Jr   z\x1b\[[0-9;]*mÚsc                 óR   — t                                dt          | ¦  «        ¦  «        S )NÚ )Ú_ansi_rer   r   )rA   s    r   Ú_strip_ansirE   Y   s   € Ý�<Š<˜�C ™FœFÑ#Ô#Ð#r   c           	      óŠ   — t          | ¦  «        }t          d|t          t          |¦  «        ¦  «        z
  ¦  «        }|d|z  z   S )Nr   ú )r   Úmaxr   rE   )ÚtextÚwidthÚtÚpads       r   Ú_padrM   ]   s=   € ÝˆD‰	Œ	€AÝ
ˆa���[¨™^œ^Ñ,Ô,Ñ,Ñ
-Ô
-€CØˆs�S‰y‰=Ðr   c                 óB  ‡— | rt          t          |g| z   Ž ¦  «        n|g}d„ |D ¦   «         Šd                     d„ t          |‰¦  «        D ¦   «         ¦  «        }d                     d„ ‰D ¦   «         ¦  «        }ˆfd„| D ¦   «         }d                     ||g|z   ¦  «        S )Nc                 ó@   — g | ]}t          d „ |D ¦   «         ¦  «        ‘ŒS )c              3   óN   K  — | ] }t          t          |¦  «        ¦  «        V — Œ!d S ©N)r   rE   )r!   Úxs     r   ú	<genexpr>z)_make_table.<locals>.<listcomp>.<genexpr>f   s0   è è € Ð3Ð3¨!•#•k !‘n”nÑ%Ô%Ð3Ð3Ð3Ð3Ð3Ð3r   )rH   )r!   Úcols     r   ú
<listcomp>z_make_table.<locals>.<listcomp>f   s/   € ÐDÐDÐD¸�cÐ3Ð3¨sÐ3Ñ3Ô3Ñ3Ô3ÐDÐDÐDr   ú | c              3   ó<   K  — | ]\  }}t          ||¦  «        V — Œd S rQ   ©rM   )r!   ÚhÚws      r   rS   z_make_table.<locals>.<genexpr>g   s.   è è € ÐIÐI©D¨A¨q�T ! Q™ZœZÐIÐIÐIÐIÐIÐIr   z-+-c              3   ó    K  — | ]	}d |z  V — Œ
dS )ú-Nr   )r!   rZ   s     r   rS   z_make_table.<locals>.<genexpr>h   s&   è è € Ð2Ð2 a˜# ™'Ð2Ð2Ð2Ð2Ð2Ð2r   c           	      ój   •— g | ]/}d                       d„ t          |‰¦  «        D ¦   «         ¦  «        ‘Œ0S )rV   c              3   ó<   K  — | ]\  }}t          ||¦  «        V — Œd S rQ   rX   )r!   ÚcrZ   s      r   rS   z)_make_table.<locals>.<listcomp>.<genexpr>i   s.   è è € Ð=Ð=¡d a¨•t˜A˜q‘z”zÐ=Ð=Ð=Ð=Ð=Ð=r   )r   Úzip)r!   ÚrÚwidthss     €r   rU   z_make_table.<locals>.<listcomp>i   s<   ø€ ÐLÐLÐLÀ!ˆE�JŠJÐ=Ð=­c°!°V©n¬nÐ=Ñ=Ô=Ñ=Ô=ÐLÐLÐLr   ú
)r(   r`   r   )ÚrowsÚheadersÚcolsÚheader_lineÚsep_lineÚbodyrb   s         @r   Ú_make_tablerj   c   sº   ø€ à-1Ð@�4•�w�i $Ñ&Ð(Ñ)Ô)Ð)¸°y€DØDÐD¸tÐDÑDÔD€FØ—*’*ÐIÐIµC¸ÀÑ4HÔ4HÐIÑIÔIÑIÔI€KØ�zŠzÐ2Ð2¨6Ð2Ñ2Ô2Ñ2Ô2€HØLÐLÐLÐLÀtÐLÑLÔL€DØ�9Š9�k 8Ð,¨tÑ3Ñ4Ô4Ð4r   z[0mz[31mz[33mz[38;5;208mz[35mz[1mz[3mz[2m)ÚresetÚredÚyellowÚorangeÚpurpleÚboldÚitalicÚdimc                 ó–   — t           j        �<t           j                             ¦   «         rt          |         › | › t          d         › �S | S )zdReturn color/style-formatted input `s` if `sys.stdout` is interactive, e.g. connected to a terminal.Nrk   )ÚsysÚstdoutÚisattyÚPALETTE)rA   Úcolors     r   Ú_stylery   y   sA   € å
„zÐ¥#¤*×"3Ò"3Ñ"5Ô"5ÐÝ˜%”.Ð7 !Ð7¥W¨WÔ%5Ð7Ð7Ð7àˆr   éP   c                 óX   — 	 t          j        ¦   «         j        S # t          $ r | cY S w xY wrQ   )ÚshutilÚget_terminal_sizeÚcolumnsÚ	Exception)Údefaults    r   Ú_get_terminal_widthr�   �   s=   € ðÝÔ'Ñ)Ô)Ô1Ð1øÝð ð ð Øˆˆˆðøøøs   ‚ š)¨)c                   óÎ   — e Zd ZU dZee         ed<   ee         ed<   eeeee         ee         f                  ed<   e	e         ed<   e
eef         ed<   d„ Zd„ Zd	ed
z  fd„Zd
S )ÚLoadStateDictInfoaj  
    Mutable container for state-dict loading results and diagnostics. Each entry in this structure is mutable,
    and will usually be mutated in-place during the loading pipeline.

    Attributes:
        missing_keys (`set[str]`):
            Keys that are missing from the loaded checkpoints but expected in the model's architecture.
        unexpected_keys (`set[str]`):
            Keys that are found in the checkpoints, but not expected in the model's architecture.
        mismatched_keys (`set[tuple[str, tuple[int], tuple[int]]]`):
            Keys that are found in the checkpoints and are expected in the model's architecture, but with a different shape.
        error_msgs ( `list[str]`):
            Some potential error messages.
        conversion_errors (`dict[str, str]`):
            Errors happening during the on-the-fly weight conversion process.
    Úmissing_keysÚunexpected_keysÚmismatched_keysÚ
error_msgsÚconversion_errorsc                 ó4   — | j         d„ | j        D ¦   «         z  S )zMReturn all effective missing keys, including `missing` and `mismatched` keys.c                 ó   — h | ]
}|d          ’ŒS )r   r   r    s     r   ú	<setcomp>z;LoadStateDictInfo.missing_and_mismatched.<locals>.<setcomp>£   s   € Ð#GÐ#GÐ#G¨Q A a¤DÐ#GÐ#GÐ#Gr   )r„   r†   ©Úselfs    r   Úmissing_and_mismatchedz(LoadStateDictInfo.missing_and_mismatched¡   s"   € àÔ Ð#GÐ#G°$Ô2FÐ#GÑ#GÔ#GÑGÐGr   c                 ó8   — | j         | j        | j        | j        dœS )N©r„   r…   r†   r‡   r�   rŒ   s    r   Úto_dictzLoadStateDictInfo.to_dict¥   s*   € ð !Ô-Ø#Ô3Ø#Ô3Øœ/ð	
ð 
ð 	
r   r   Nc           	      óä  — t          ¦   «         }g }d}| j        rh|dt          dd¦  «        › d�t          dd¦  «        z   z  }t          | j        ¦  «        D ]+}t          dd¦  «        }|                     ||d	d	g¦  «         Œ,| j        rg|dt          d
d¦  «        › d�t          dd¦  «        z   z  }t          | j        ¦  «        D ]*}t          dd¦  «        }|                     ||d	g¦  «         Œ+| j        r­|dt          dd¦  «        › d�t          dd¦  «        z   z  }d„ | j        D ¦   «         }t          |¦  «                             ¦   «         D ]R\  }\  }}	t          dd¦  «        }||dt          |¦  «        › dt          |	¦  «        › �g}
|                     |
¦  «         ŒS| j	        r‚|dt          dd¦  «        › d�t          dd¦  «        z   z  }t          | j	        ¦  «                             ¦   «         D ]3\  }}t          dd¦  «        }d|› d�}|                     |||g¦  «         Œ4t          |¦  «        dk    rdS ddg}|dk    r|dgz  }n|d	d	gz  }t          ||¬ ¦  «        }||z   }|S )!z/Generate the minimal table of a loading report.z

Notes:z
- zUNEXPECTED:rn   ú	zbcan be ignored when loading from different task/architecture; not ok if you expect identical arch.rq   Ú
UNEXPECTEDrC   zMISSING:rl   zsthose params were newly initialized because missing from the checkpoint. Consider training on your downstream task.ÚMISSINGz	MISMATCH:rm   zRckpt weights were loaded, but they did not match the original empty weight shapes.c                 ó    — i | ]\  }}}|||f“ŒS r   r   )r!   ÚaÚbr_   s       r   r#   z;LoadStateDictInfo.create_loading_report.<locals>.<dictcomp>Ê   s$   € ÐFÐFÐF¡g a¨¨A˜˜A˜q˜6ÐFÐFÐFr   ÚMISMATCHz$Reinit due to size mismatch - ckpt: z
 vs model:zCONVERSION:ro   z$originate from the conversion schemeÚ
CONVERSIONz

r   NÚKeyÚStatuséÈ   ÚDetails)re   )r�   r…   ry   r@   r,   r„   r†   r)   r   rˆ   r   rj   )r�   Úterm_wrd   Útipsr"   ÚstatusÚiteratorr   Ú
shape_ckptÚshape_modelÚdataÚvÚ_detailsre   ÚtableÚreports                   r   Úcreate_loading_reportz'LoadStateDictInfo.create_loading_report®   s#  € å$Ñ&Ô&ˆàˆØˆØÔð 	1ØÐ>�6 -°Ñ:Ô:Ð>Ð>Ð>ÅØtØñBô Bñ ñ ˆDõ % TÔ%9Ñ:Ô:ð 1ð 1�Ý ¨hÑ7Ô7�Ø—’˜Q ¨¨BÐ/Ñ0Ô0Ð0Ð0àÔð 	-ØÐ8�6 *¨eÑ4Ô4Ð8Ð8Ð8½6ð FØñ<ô <ñ ñ ˆDõ % TÔ%6Ñ7Ô7ð -ð -�Ý 	¨5Ñ1Ô1�Ø—’˜Q ¨˜OÑ,Ô,Ð,Ð,àÔð 	"ØÐ<�6 +¨xÑ8Ô8Ð<Ð<Ð<½vØdÐfnñ@ô @ñ ñ ˆDð GÐF°Ô1EÐFÑFÔFˆHÝ2AÀ(Ñ2KÔ2K×2QÒ2QÑ2SÔ2Sð "ð "Ñ.�Ñ.�j +Ý 
¨HÑ5Ô5�àØØh½3¸z¹?¼?ÐhÐhÕVYÐZeÑVfÔVfÐhÐhð�ð
 —’˜DÑ!Ô!Ð!Ð!àÔ!ð 	3ØÐ>�6 -°Ñ:Ô:Ð>Ð>Ð>ÅØ6¸ñBô Bñ ñ ˆDõ (¨Ô(>Ñ?Ô?×EÒEÑGÔGð 3ð 3‘��1Ý ¨hÑ7Ô7�Ø) !˜>˜>˜>�Ø—’˜Q ¨Ð1Ñ2Ô2Ð2Ð2õ ˆt‰9Œ9˜Š>ˆ>Ø�4à˜(Ð#ˆØ�CŠ<ˆ<Ø˜	�{Ñ"ˆGˆGà˜˜B�xÑˆGÝ˜D¨'Ð2Ñ2Ô2ˆØ˜‘ˆàˆr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r-   r   Ú__annotations__Útupler/   r(   r'   rŽ   r‘   rª   r   r   r   rƒ   rƒ   ˆ   sË   € € € € € € ðð ð" �c”(ÐÐÑØ˜”XÐÐÑØ˜˜s E¨#¤J°°c´
Ð:Ô;Ô<Ð<Ð<Ñ<Ø�S”	ÐÐÑØ˜C ˜H”~Ð%Ð%Ñ%ðHð Hð Hð
ð 
ð 
ð; s¨T¡zð ;ð ;ð ;ð ;ð ;ð ;r   rƒ   Úpretrained_model_name_or_pathÚignore_mismatched_sizesÚloading_infoÚloggerc                 óè  — |€t          j        t          ¦  «        }|j        rBd                     |j        ¦  «        }d|v r|dz  }t          d| j        j        › d|› �¦  «        ‚|                     ¦   «         }|€dS t          d         › | j        j        › dt          d	         › d
|› d�}| 	                    ||z   ¦  «         |j
        rt          d¦  «        ‚|s|j        rt          d¦  «        ‚dS dS )zÒ
    Log a readable report about state_dict loading issues.

    This version is terminal-size aware: for very small terminals it falls back to a compact
    Key | Status view so output doesn't wrap badly.
    Nz
	zsize mismatchzb
	You may consider adding `ignore_mismatched_sizes=True` to `from_pretrained(...)` if appropriate.z#Error(s) in loading state_dict for z:
	rp   z LOAD REPORTrk   z from: rc   zˆWe encountered some issues during automatic conversion of the weights. For details look at the `CONVERSION` entries of the above report!zjYou set `ignore_mismatched_sizes` to `False`, thus raising an error. For details look at the above report!)ÚloggingÚ	getLoggerr«   r‡   r   ÚRuntimeErrorÚ	__class__rª   rw   Úwarningrˆ   r†   )Úmodelr±   r²   r³   r´   Ú	error_msgr©   Úpreludes           r   Úlog_state_dict_reportr¾   ì   s\  € ð €~ÝÔ"¥8Ñ,Ô,ˆð Ôð mØ—K’K Ô 7Ñ8Ô8ˆ	Ø˜iÐ'Ð'ØØvñˆIõ ÐkÀÄÔAYÐkÐkÐ`iÐkÐkÑlÔlÐlð ×/Ò/Ñ1Ô1€FØ€~Øˆå˜”ð  C %¤/Ô":ð  Cð  CÍÐPWÔHXð  Cð  CÐa~ð  Cð  Cð  C€Gð ‡N‚N�7˜VÑ#Ñ$Ô$Ð$ð Ô%ð 
Ýð ñ
ô 
ð 	
ð #ð 
 |Ô'Cð 
ÝØxñ
ô 
ð 	
ð
ð 
ð 
ð 
r   )r   )rz   rQ   )r¶   Úrer|   rt   Úcollectionsr   r   Údataclassesr   Útypingr   Úcompiler   r   r   r(   r/   r   r'   r@   rD   rE   rM   rj   rw   ry   r�   rƒ   ÚboolÚLoggerr¾   r   r   r   ú<module>rÆ      s*  ðð €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð ð ˆBŒJÐ.Ñ/Ô/€	ð#�Sð #˜Sð #ð #ð #ð #ð
'ð '˜˜cœð '°#ð 'ð 'ð 'ð 'ð*˜T # s (œ^ð *°°S¸#°X´ð *ð *ð *ð *ðZ ˆ2Œ:Ð'Ñ(Ô(€ð$�3ð $˜3ð $ð $ð $ð $ðð ð ð5ð 5ð 5ð ØØØØØØØð	ð 	€ðð ð ðð ð ð ð ð`ð `ð `ð `ð `ñ `ô `ñ „ð`ðP %)ð,
ð ,
à#&ð,
ð "ð,
ð $ð	,
ð
 ŒN˜TÑ!ð,
ð ,
ð ,
ð ,
ð ,
ð ,
r   