§
    kŠtj0Q  ã                  ó˜   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	Z	ddl
mZ e G d„ d	¦  «        ¦   «         Z G d
„ de¦  «        ZdS )é    )ÚannotationsN)ÚMutableMapping)Ú	dataclass)ÚAnyé   )Ú	QuantTypec                  óx   — e Zd ZU dZded<   dZded<   dZded<   dZded	<   dd„Ze		 	 	 ddd„¦   «         Z
dd„ZdS )ÚQuantTypeInfozB
    The quantization type information for a tensor override.
    r   Ú
quant_typeNúbool | NoneÚ	symmetricÚreduce_rangez
int | NoneÚaxisÚotherÚobjectc                ó  — t          |t          ¦  «        rd| j        |j        k    oS| j        d u p|j        d u p| j        |j        k    o1| j        d u p|j        d u p| j        |j        k    o| j        |j        k    S t          S ©N)Ú
isinstancer
   r   r   r   r   ÚNotImplemented)Úselfr   s     úm/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/onnxruntime/quantization/tensor_quant_overrides.pyÚ__eq__zQuantTypeInfo.__eq__   s›   € Ý�e�]Ñ+Ô+ð 	à” 5Ô#3Ò3ð .Ø”^ tÐ+Ðk¨u¬À$Ð/FÐkÈ$Ì.Ð\aÔ\kÒJkð.àÔ&¨$Ð.Ðw°%Ô2DÈÐ2LÐwÐPTÔPaÐejÔewÒPwð.ð ”Y %¤*Ò,ð	õ Ðó    Úraw_dictúdict[str, Any]Údefault_qtypeúQuantType | NoneÚdefault_symmetricÚdefault_reduce_rangeÚreturnc                óÄ   — t          |                      d|¦  «        |                      d|¦  «        |                      d|¦  «        |                      d¦  «        ¦  «        S ©Nr   r   r   r   )r
   Úget)r   r   r   r   s       r   Úload_from_dictzQuantTypeInfo.load_from_dict'   sZ   € õ Ø�LŠL˜ }Ñ5Ô5Ø�LŠL˜Ð&7Ñ8Ô8Ø�LŠL˜Ð)=Ñ>Ô>Ø�LŠL˜Ñ Ô ñ	
ô 
ð 	
r   c                ó„   — | j         |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �| j        |d<   d S d S r"   )r   r   r   r   )r   r   s     r   Úsave_to_dictzQuantTypeInfo.save_to_dict5   sZ   € Ø!%¤ˆ�ÑØŒ>Ð%Ø$(¤NˆH�[Ñ!ØÔÐ(Ø'+Ô'8ˆH�^Ñ$ØŒ9Ð Ø#œyˆH�VÑÐÐð !Ð r   )r   r   )NNN)
r   r   r   r   r   r   r   r   r    r
   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   r   r   Ústaticmethodr$   r&   © r   r   r
   r
      s¹   € € € € € € ðð ð ÐÐÑØ!€IÐ!Ð!Ð!Ñ!Ø $€LÐ$Ð$Ð$Ñ$Ø€DÐÐÐÑðð ð ð ð ð +/Ø)-Ø,0ð	
ð 
ð 
ð 
ñ „\ð
ð)ð )ð )ð )ð )ð )r   r
   c                  óê   ‡ — e Zd ZdZd>d„Zd?d	„Zd?d
„Zd?d„Z	 d@dAd„Z	 d@dBd„Z	dCd„Z
dDd„ZdEd„ZdFd„Z	 	 dGdHd%„Z	 d@dId,„Z	 	 dJdKd0„Zd@dLd1„ZdMd2„ZdNd3„ZdOd7„ZdPd8„ZdQd9„Zd:„ Zd;„ ZdLd<„ZdLˆ fd=„Zˆ xZS )RÚTensorQuantOverridesHelperzZ
    Utility wrapper over the tensor quantization overrides passed via extra_options.
    Úraw_overridesúdict[str, list[dict[str, Any]]]c                ó4   — || _         d | _        h d£| _        d S )N>   ÚrmaxÚrminr   r   )Ú	overridesÚquant_typesÚkeys_unsupported_with_scale_zp)r   r0   s     r   Ú__init__z#TensorQuantOverridesHelper.__init__D   s%   € Ø&ˆŒØˆÔØ.[Ð.[Ð.[ˆÔ+Ð+Ð+r   Útensor_nameÚstrr    Úboolc                óN   — | j                              |¦  «        }|o	d|d         vS ©Nr   r   ©r5   r#   ©r   r9   Úoverrides_lists      r   Úhas_per_tensor_overridesz3TensorQuantOverridesHelper.has_per_tensor_overridesI   s,   € Øœ×+Ò+¨KÑ8Ô8ˆØÐA &°¸qÔ0AÐ"AÐAr   c                óN   — | j                              |¦  «        }|o	d|d         v S r=   r>   r?   s      r   Úhas_per_channel_overridesz4TensorQuantOverridesHelper.has_per_channel_overridesM   s,   € Øœ×+Ò+¨KÑ8Ô8ˆØÐ= &¨N¸1Ô,=Ð"=Ð=r   c                ób   — | j                              |¦  «        }|od|d         v o	d|d         v S )NÚscaler   Ú
zero_pointr>   r?   s      r   Úoverrides_scale_zpz-TensorQuantOverridesHelper.overrides_scale_zpQ   s=   € Øœ×+Ò+¨KÑ8Ô8ˆØÐh 7¨n¸QÔ.?Ð#?ÐhÀlÐVdÐefÔVgÐFgÐhr   NÚdefault_valúdict[str, Any] | Nonec                óœ   — |�|gnd }| j                              ||¦  «        }|rd|d         v rt          d|› d�¦  «        ‚|r|d         nd S )Nr   r   úExpected tensor 'zL' to use per-tensor quantization overrides, but found per-channel overrides.©r5   r#   Ú
ValueError)r   r9   rH   Údefault_list_valr@   s        r   Úget_per_tensor_overridesz3TensorQuantOverridesHelper.get_per_tensor_overridesU   sƒ   € ð
 -8Ð,C˜K˜=˜=ÈÐØœ×+Ò+¨KÐ9IÑJÔJˆØð 	˜f¨°qÔ(9Ð9Ð9Ýð4 Kð 4ð 4ð 4ñô ð ð
 %3Ð<ˆ~˜aÔ Ð ¸Ð<r   úlist[dict[str, Any]] | Nonec                ó~   — | j                              ||¦  «        }|sd S d|d         vrt          d|› d�¦  «        ‚|S )Nr   r   rK   zE' to have per-channel quantization overrides (axis value is missing).rL   )r   r9   rH   r@   s       r   Úget_per_channel_overridesz4TensorQuantOverridesHelper.get_per_channel_overridesd   s`   € ð
 œ×+Ò+¨K¸ÑEÔEˆàð 	Ø�4à˜¨Ô*Ð*Ð*ÝØv KÐvÐvÐvñô ð ð Ðr   úset[QuantType]c                óR  — | j         �| j         S t          ¦   «         | _         | j        ry| j                             ¦   «         D ]_}|D ]Z}d|v r | j                              |d         ¦  «         d|v r0d|d         v r&| j                              |d         d         ¦  «         Œ[Œ`| j         S )Nr   Úconvert)r6   Úsetr5   ÚvaluesÚadd)r   Úquant_overrides_listÚquant_overridess      r   Úget_quant_typesz*TensorQuantOverridesHelper.get_quant_typesu   sÑ   € ØÔÐ'ØÔ#Ð#å™5œ5ˆÔàŒ>ð 	WØ(,¬×(=Ò(=Ñ(?Ô(?ð Wð WÐ$Ø';ð Wð W�OØ# Ð6Ð6ØÔ(×,Ò,¨_¸\Ô-JÑKÔKÐKà  OÐ3Ð3¸ÈÐXaÔHbÐ8bÐ8bØÔ(×,Ò,¨_¸YÔ-GÈÔ-UÑVÔVÐVøðWð ÔÐr   rZ   r   útuple[bool, str | None]c                ó(  — t          |t          ¦  «        sdd|› d�fS ||v }|                     d¦  «        }|r| j                             |¦  «         d|v }d|v }|r|r|r|sdS |rD| j                             t          |¦  «        ¦  «        }	|	rddd	                     |	¦  «        › d
�fS d|v r	|sdd|› �fS d|v rÖ|rdS d|d         vrdd|› d�fS d|d         v rdd|› �fS |d         d         }
|�|n|}|
|k    rdd|› d�fS d|d         v }d|d         v }|r|r|r
|sdd|› d�fS |rM| j                             t          |d         ¦  «        ¦  «        }	|	rddd	                     |	¦  «        › d|› d�fS | j                             |
¦  «         dS )NFú#Tensor quantization overrides for 'ú' are not in a dictr   rE   rF   ©FzNMust provide both 'scale' and 'zero_point' if one of the overrides is providedúTensor override option(s) [ú, ú+] are invalid with 'scale' and 'zero_point'r   zMOption 'reduce_range' is only supported for initializers, not for activation rU   )Fz.Cannot use 'convert' override for initializersz'convert' options (tensor 'z') must specify a 'quant_type'zC'convert' quant_type must differ from original quant_type (tensor 'z')zXMust provide both 'scale' and 'zero_point' if one of the overrides is provided (tensor 'z5] are invalid with 'scale' and 'zero_point' (tensor '©TN)	r   Údictr#   r6   rX   r7   ÚintersectionrV   Újoin)r   ÚinitializersÚdefault_activation_qtyper9   rZ   Úis_initializerr   Ú	has_scaleÚhas_zero_pointÚkeysÚconvert_quant_typeÚoriginal_quant_typeÚconvert_has_scaleÚconvert_has_zero_points                 r   Ú_is_valid_per_tensorz/TensorQuantOverridesHelper._is_valid_per_tensor†   sÍ  € õ ˜/­4Ñ0Ô0ð 	àØV°kÐVÐVÐVðð ð
 %¨Ð4ˆà$×(Ò(¨Ñ6Ô6ˆ
Øð 	-ØÔ× Ò  Ñ,Ô,Ð,à˜Ð.ˆ	Ø%¨Ð8ˆàð 	˜nð 	°.ð 	Èð 	ðð ð
 ð 	ØÔ6×CÒCÅCÈÑDXÔDXÑYÔYˆDØð àØn°$·)²)¸D±/´/ÐnÐnÐnðð ð
 ˜_Ð,Ð,°^Ð,àØmÐ`kÐmÐmðð ð
 ˜Ð'Ð'Øð OØNÐNà ?°9Ô#=Ð=Ð=ØÐg¸KÐgÐgÐgÐgÐgà °Ô!;Ð;Ð;àØqÐdoÐqÐqðð ð
 "1°Ô!;¸LÔ!IÐØ0:Ð0F * *ÐLdÐØ!Ð%8Ò8Ð8àØiÐZeÐiÐiÐiðð ð
 !(¨?¸9Ô+EÐ EÐØ%1°_ÀYÔ5OÐ%OÐ"à!ð Ð*@ð ÐF\ð Ðevð àØ~ÐozÐ~Ð~Ð~ðð ð
 !ð ØÔ:×GÒGÍÈOÐ\eÔLfÑHgÔHgÑhÔh�Øð àð4°d·i²iÀ±o´oð 4ð 4Ø$/ð4ð 4ð 4ðð ð Ô× Ò Ð!3Ñ4Ô4Ð4àˆzr   rY   úlist[dict[str, Any]]c                ó:  — ||v }|sdd|› d�fS |d                               d¦  «        }|€dd|› d�fS t          ||         j        ¦  «        }t          |¦  «        }|}|dk     r||z  }|dk     s|t          |¦  «        k    rdd|› d	t          |¦  «        › d
�fS t          |¦  «        dk    r=t          |¦  «        ||         k    r$dd|› d|› d||         › dt          |¦  «        › d�	fS d|d         v rdd|› d�fS |d                               d¦  «        }	|	r| j                             |	¦  «         |d                               d¦  «        }
|d                               d¦  «        }d|d         v }d|d         v }|o|}|r|r|r|sdS |rJ| j                             t          |d         ¦  «        ¦  «        }|rddd 	                    |¦  «        › d�fS d|d         v }d|d         v }|o|}|r|r|s|rdS t          |dd …         ¦  «        D �]\  }}t          |t          ¦  «        sdd|› d |› d!�fc S d|v r
dd|› d�fc S d|v r|	|d         k    r d"S d|v r||d         k    r||d         k    r d#S d|v r|
|d         k    r d$S d|v r||d         k    r d%S d|v od|v }|r|sdd&|› d'|› d�fc S |rF| j                             t          |¦  «        ¦  «        }|rddd 	                    |¦  «        › d�fc S d|v od|v }|r|sdd(|› d'|› d�fc S �Œ
d)S )*NFúTensor 'z6' has per-channel overrides, but is not an initializerr   r   z!Per-channel overrides for tensor z< is missing an 'axis' value in the first channel dictionary.z0Axis override value is out-of-bounds for tensor z (rank ú)r   z1Incorrect number of channel overrides for tensor z (axis z), expected z, but found ú.rU   z8Cannot use 'convert' override for initializers, such as r   r   r   rE   rF   r`   ra   rb   rc   r4   r3   )Fz6Must provide both 'rmin' and 'rmax' if one is providedz'Tensor quantization overrides at index z for 'r_   )FzTChannel quantization types for tensor '{tensor_name}' do not match at index {index}.)FzHChannel axis for tensor '{tensor_name}' does not match at index {index}.)FzSChannel symmetric value for tensor '{tensor_name}' does not match at index {index}.)FzVChannel reduce_range value for tensor '{tensor_name}' does not match at index {index}.z]Per-channel overrides that specify scale/zero_point must do so for all channels, but tensor 'z' is missing them at index zVPer-channel overrides that specify rmin/rmax must do so for all channels, but tensor 'rd   )r#   ÚlistÚdimsÚlenr6   rX   r7   rf   rV   rg   Ú	enumerater   re   )r   rh   r9   rY   rj   r   Úweight_shapeÚweight_rankÚ	norm_axisr   r   r   rk   rl   Úhas_scale_zprm   Úhas_rminÚhas_rmaxÚhas_rmin_rmaxÚindexrZ   Úchan_has_scale_zpÚchan_has_rmin_rmaxs                          r   Ú_is_valid_per_channelz0TensorQuantOverridesHelper._is_valid_per_channelÛ   s£  € ð %¨Ð4ˆàð 	àØ^˜;Ð^Ð^Ð^ðð ð
 $ AÔ&×*Ò*¨6Ñ2Ô2ˆàˆ<àð0°Kð 0ð 0ð 0ðð õ ˜L¨Ô5Ô:Ñ;Ô;ˆÝ˜,Ñ'Ô'ˆØˆ	Ø�qŠ=ˆ=Ø˜Ñ$ˆIà�qŠ=ˆ=˜I­¨\Ñ):Ô):Ò:Ð:àØkÀ;ÐkÐkÕWZÐ[gÑWhÔWhÐkÐkÐkðð õ
 Ð#Ñ$Ô$ qÒ(Ð(­SÐ1EÑ-FÔ-FÈ,ÐW`ÔJaÒ-aÐ-aàðYÀKð Yð YÐX\ð Yð YØ(¨Ô.ðYð YÝ<?Ð@TÑ<UÔ<UðYð Yð Yðð ð Ð,¨QÔ/Ð/Ð/ØÐcÐU`ÐcÐcÐcÐcÐcà)¨!Ô,×0Ò0°Ñ>Ô>ˆ
Øð 	-ØÔ× Ò  Ñ,Ô,Ð,à(¨Ô+×/Ò/°Ñ<Ô<ˆ	Ø+¨AÔ.×2Ò2°>ÑBÔBˆàÐ3°AÔ6Ð6ˆ	Ø%Ð)=¸aÔ)@Ð@ˆØ Ð3 ^ˆàð 	˜nð 	°.ð 	Èð 	ðð ð
 ð 	ØÔ6×CÒCÅCÐH\Ð]^ÔH_ÑD`ÔD`ÑaÔaˆDØð àØn°$·)²)¸D±/´/ÐnÐnÐnðð ð
 Ð1°!Ô4Ð4ˆØÐ1°!Ô4Ð4ˆØ Ð- XˆØð 	˜Xð 	¨xð 	¸Hð 	ðð õ
 '0Ð0DÀQÀRÀRÔ0HÑ&IÔ&Ið ;	ñ ;	Ñ"ˆE�?Ý˜o­tÑ4Ô4ð àØk¸eÐkÐkÈ;ÐkÐkÐkðð ð ð ð
 ˜OÐ+Ð+ØÐgÐYdÐgÐgÐgÐgÐgÐgÐgð
 ˜Ð.Ð.°:ÀÐQ]ÔA^Ò3^Ð3^ðð ð ð ˜Ð(Ð(¨T°_ÀVÔ5LÒ-LÐ-LÐQZÐ^mÐntÔ^uÒQuÐQuðð ð ð ˜oÐ-Ð-°)¸È{Ô?[Ò2[Ð2[ðð ð ð  Ð0Ð0°\À_ÐUcÔEdÒ5dÐ5dðð ð ð !(¨?Ð :Ð ^¸|ÈÐ?^Ðàð Ð$5ð àðTØ#.ðTð TØKPðTð Tð Tðð ð ð ð !ð ØÔ:×GÒGÍÈOÑH\ÔH\Ñ]Ô]�Øð àØr°d·i²iÀ±o´oÐrÐrÐrðð ð ð ð "(¨?Ð!:Ð!X¸vÈÐ?XÐØð Ð%7ð àðTØ#.ðTð TØKPðTð Tð Tðð ð ð ùð ˆzr   rh   údict[str, onnx.TensorProto]Úactivation_namesúset[str]c                ó  — t          ¦   «         | _        | j        rí| j                             ¦   «         D ]Ó\  }}||vr||vr
dd|› d�fc S t	          |t
          ¦  «        s
dd|› d�fc S |sŒ9t	          |d         t          ¦  «        s
dd|› d�fc S |d         sŒg|d                              d	¦  «        }t          |¦  «        d
k    p|d u}|r|  	                    |||¦  «        c S |  
                    ||||d         ¦  «        c S dS )NFru   z5' in TensorQuantOverrides is not present in the modelr^   z' are not in a listr   z.Tensor quantization overrides at index 0 for 'r_   r   r   rd   )rV   r6   r5   Úitemsr   rx   re   r#   rz   r†   rr   )r   rh   rˆ   ri   r9   rY   r   Úis_per_channels           r   Úis_validz#TensorQuantOverridesHelper.is_validi  sŒ  € õ ™5œ5ˆÔð Œ>ð 	Ø59´^×5IÒ5IÑ5KÔ5Kð ð Ñ1�Ð1Ø lÐ2Ð2°{ÐJZÐ7ZÐ7ZØ Ð"o¨[Ð"oÐ"oÐ"oÐoÐoÐoÐoå!Ð"6½Ñ=Ô=ð iØ Ð"hÈÐ"hÐ"hÐ"hÐhÐhÐhÐhà+ð Øå!Ð"6°qÔ"9½4Ñ@Ô@ð tØ Ð"sÐS^Ð"sÐ"sÐ"sÐsÐsÐsÐsà+¨AÔ.ð Øà+¨AÔ.×2Ò2°6Ñ:Ô:�Ý!$Ð%9Ñ!:Ô!:¸QÒ!>Ð!RÀ$ÈdÐBR�à!ð gØ×5Ò5°lÀKÐQeÑfÔfÐfÐfÐfà×0Ò0Ø Ð":¸KÐI]Ð^_ÔI`ñô ð ð ð ð ˆzr   TÚnew_valsÚchannelsúlist[int] | NoneÚ	overwritec                ó¾  — |sdS |�t          |¦  «        nd }| j                             |¦  «        }d}|s\|rZt          | j        |         ¦  «        D ]?\  }}|�||vrŒt          |¦  «                             t          |¦  «        ¦  «        rd} nŒ@|rI|si g| j        |<   t          | j        |         ¦  «        D ]!\  }}|�||vrŒ|                     |¦  «         Œ"|S )NFT)rV   r5   r#   r{   rf   Úupdate)	r   r9   rŽ   r�   r‘   Úhave_overridesÚ	do_updateÚchannelr5   s	            r   Úupdate_tensor_overridesz2TensorQuantOverridesHelper.update_tensor_overrides�  s*  € ð ð 	Ø�5à$,Ð$8•3�x‘=”=�=¸dˆØœ×+Ò+¨KÑ8Ô8ˆð ˆ	Øð 	˜^ð 	Ý&/°´¸{Ô0KÑ&LÔ&Lð ð Ñ"�˜ØÐ'¨G¸8Ð,CÐ,CØÝ�x‘=”=×-Ò-­c°)©n¬nÑ=Ô=ð Ø %�IØ�Eðð
 ð 	+Ø!ð 3Ø/1¨d�”˜{Ñ+å&/°´¸{Ô0KÑ&LÔ&Lð +ð +Ñ"�˜ØÐ'¨G¸8Ð,CÐ,CØØ× Ò  Ñ*Ô*Ð*Ð*àÐr   Úoutput_namer   r   r   r   r
   c                óÊ   — || j         vrt          ||¦  «        S | j         |         d         }t          |                     d|¦  «        |                     d|¦  «        ¦  «        S )Nr   r   r   )r5   r
   r#   )r   r˜   r   r   Útensor_overridess        r   Úget_node_output_qtype_infoz5TensorQuantOverridesHelper.get_node_output_qtype_info²  sm   € ð ˜dœnÐ,Ð,Ý  Ð0AÑBÔBÐBàœ>¨+Ô6°qÔ9ÐåØ× Ò  ¨}Ñ=Ô=Ø× Ò  Ð.?Ñ@Ô@ñ
ô 
ð 	
r   Ú
input_nameÚ	node_namer   c                óÖ  — || j         vs| j         |         st          |||¦  «        S | j         |         d         }|                     d|¦  «        }d|vrMt          ||                     d|¦  «        |                     d|¦  «        |                     d¦  «        ¦  «        S |d         }t          ||                     d|¦  «        ¦  «        }	d|vs
||d         v r|d         |	_        |	S )Nr   r   rU   r   r   r   Ú
recv_nodes)r5   r
   r#   r   )
r   rœ   r�   r   r   r   rš   Úproducer_typeÚconvert_dictÚ
qtype_infos
             r   Úget_node_input_qtype_infoz4TensorQuantOverridesHelper.get_node_input_qtype_infoÃ  s  € ð ˜Tœ^Ð+Ð+°4´>À*Ô3MÐ+Ý  Ð0AÐCWÑXÔXÐXð  œ>¨*Ô5°aÔ8ÐØ(×,Ò,¨\¸=ÑIÔIˆàÐ,Ð,Ð,Ý ØØ ×$Ò$ [Ð2CÑDÔDØ ×$Ò$ ^Ð5IÑJÔJØ ×$Ò$ VÑ,Ô,ñ	ô ð ð (¨	Ô2ˆÝ"ØØ×Ò˜[Ð*;Ñ<Ô<ñ
ô 
ˆ
ð  Ð,Ð,°)¸|ÈLÔ?YÐ2YÐ2YØ$0°Ô$>ˆJÔ!àÐr   c                óD   — t          j        | j        t          |¬¦  «        S )N)ÚdefaultÚindent)ÚjsonÚdumpsr5   r:   )r   r¦   s     r   Ú
pprint_strz%TensorQuantOverridesHelper.pprint_strê  s   € ÝŒz˜$œ.µ#¸fÐEÑEÔEÐEr   c                ó   — | j          S r   ©r5   ©r   s    r   Úemptyz TensorQuantOverridesHelper.emptyí  s   € Ø”>Ð!Ð!r   c                ó   — | j         S r   r«   r¬   s    r   Úget_dictz#TensorQuantOverridesHelper.get_dictð  s
   € ØŒ~Ðr   ÚkeyÚvalueú
list[dict]c                ó   — || j         |<   d S r   r«   )r   r°   r±   s      r   Ú__setitem__z&TensorQuantOverridesHelper.__setitem__õ  s   € Ø#ˆŒ�sÑÐÐr   c                ó   — | j         |         S r   r«   ©r   r°   s     r   Ú__getitem__z&TensorQuantOverridesHelper.__getitem__ø  s   € ØŒ~˜cÔ"Ð"r   c                ó   — | j         |= d S r   r«   r¶   s     r   Ú__delitem__z&TensorQuantOverridesHelper.__delitem__û  s   € ØŒN˜3ÐÐÐr   c                ó*   — t          | j        ¦  «        S r   )Úiterr5   r¬   s    r   Ú__iter__z#TensorQuantOverridesHelper.__iter__þ  s   € Ý�D”NÑ#Ô#Ð#r   c                ó*   — t          | j        ¦  «        S r   )rz   r5   r¬   s    r   Ú__len__z"TensorQuantOverridesHelper.__len__  ó   € Ý�4”>Ñ"Ô"Ð"r   c                ó*   — t          | j        ¦  «        S r   )r:   r5   r¬   s    r   Ú__str__z"TensorQuantOverridesHelper.__str__  r¿   r   c                óZ   •— t          ¦   «                              ¦   «         › d| j        › d�S )Nz, TensorQuantOverridesHelper(rv   )ÚsuperÚ__repr__r5   )r   Ú	__class__s    €r   rÄ   z#TensorQuantOverridesHelper.__repr__  s,   ø€ Ý‘'”'×"Ò"Ñ$Ô$ÐTÐTÀ4Ä>ÐTÐTÐTÐTr   )r0   r1   )r9   r:   r    r;   r   )r9   r:   rH   rI   r    rI   )r9   r:   rH   rP   r    rP   )r    rS   )r9   r:   rZ   r   r    r\   )r9   r:   rY   rs   r    r\   )rh   r‡   rˆ   r‰   r    r\   )NT)
r9   r:   rŽ   r   r�   r�   r‘   r;   r    r;   )r˜   r:   r   r   r   r   r    r
   )NN)rœ   r:   r�   r:   r   r   r   r   r   r   r    r
   )r    r:   )r    r;   )r    r1   )r°   r:   r±   r²   )r°   r:   r    r²   )r°   r:   )r'   r(   r)   r*   r8   rA   rC   rG   rO   rR   r[   rr   r†   r�   r—   r›   r£   r©   r­   r¯   r´   r·   r¹   r¼   r¾   rÁ   rÄ   Ú__classcell__)rÅ   s   @r   r/   r/   ?   sZ  ø€ € € € € ðð ð\ð \ð \ð \ð
Bð Bð Bð Bð>ð >ð >ð >ðið ið ið ið .2ð=ð =ð =ð =ð =ð$ 48ðð ð ð ð ð" ð  ð  ð  ð"Sð Sð Sð SðjLð Lð Lð Lð\$ð $ð $ð $ðT &*Øð!ð !ð !ð !ð !ðN *.ð	
ð 
ð 
ð 
ð 
ð, *.Ø,0ð%ð %ð %ð %ð %ðNFð Fð Fð Fð Fð"ð "ð "ð "ðð ð ð ð
$ð $ð $ð $ð#ð #ð #ð #ð ð  ð  ð  ð$ð $ð $ð#ð #ð #ð#ð #ð #ð #ðUð Uð Uð Uð Uð Uð Uð Uð Uð Ur   r/   )Ú
__future__r   r§   Úcollections.abcr   Údataclassesr   Útypingr   ÚonnxÚquant_utilsr   r
   r/   r-   r   r   ú<module>rÍ      sð   ðð #Ð "Ð "Ð "Ð "Ð "à €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à €€€à "Ð "Ð "Ð "Ð "Ð "ð ð))ð ))ð ))ð ))ð ))ñ ))ô ))ñ „ð))ðXIUð IUð IUð IUð IU ñ IUô IUð IUð IUð IUr   