§
    1�Åj~½  ã                  óP  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
 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mZmZ d dlmZmZmZmZmZmZmZmZm Z m!Z!m"Z" erd dlm#Z#m$Z$m%Z% d dl&m'Z' e(e)e*e*e*f         e(e)e*e*e*e*f         z  Z+e,e+         Z-e,e(e)e)f                  Z.g d	¢Z/d
e0d<   e1e(e)e*f         e*f         Z2d´d„Z3 e3e/¦  «        Z4	 dµd¶d„Z5	 	 	 	 d·d¸d$„Z6d¹d'„Z7	 	 	 	 d·dºd2„Z8d¹d3„Z9	 	 	 	 	 d»d¼d;„Z:d½d>„Z;d½d?„Z<d¾dE„Z=d¿dG„Z>	 dµdÀdO„Z?dÁdS„Z@dÂdX„ZAdÃd]„ZBdÄdb„ZCdÅde„ZD	 	 dÆdÇdj„ZE	 dÈddkœdÉdn„ZFdÊdp„ZGdËds„ZHdÌdu„ZI	 dÈdÍd{„ZJ	 	 dÎdÏd}„ZK	 dÈdÍd~„ZL	 	 dÎdÏd„ZMdÐd�„ZNdÐd‚„ZOdÑd„„ZP	 dÒdÓd†„ZQdÔdˆ„ZR	 	 dÎdÕdŠ„ZS	 dµdÖd�„ZTd×d�„ZUdØd’„ZVdÙd”„ZWdÚd•„ZX	 dÛdÜd—„ZY ejZ        d˜¦  «        dÒdÝd™„¦   «         Z[dÞd›„Z\dßd¤„Z]dàd§„Z^dád¨„Z_dâd©„Z` eja        d¦  «        dâdª„¦   «         Zb eja        d¦  «        dãd­„¦   «         Zcdäd¯„Zdd°„ eje         f                    ¦   «         D ¦   «         Zgd±e0d²<   dåd³„ZhdS )æé    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚTypeVar)Ú_mappingÚdefs)ÚMapProtoÚOptionalProtoÚSequenceProto)ÚAttributeProtoÚFunctionProtoÚ
GraphProtoÚ
ModelProtoÚ	NodeProtoÚOperatorSetIdProtoÚTensorProtoÚTensorShapeProtoÚTrainingInfoProtoÚ	TypeProtoÚValueInfoProto)ÚCallableÚKeysViewÚSequence)ÚRepeatedCompositeFieldContainer)")z1.0é   é   r   )z1.1r   é   r   )z1.1.2r   é   r   )z1.2r   é   r   )z1.3r   é   r   )z1.4.1é   é	   r   )z1.5.0r   é
   r   )z1.6.0r   é   é   )z1.7.0r   é   r%   r   )z1.8.0r   é   r%   r   )z1.8.1r   r'   r%   r   )z1.9.0r   é   r%   r   )z1.10.0r    é   r%   r   )z1.10.1r    r)   r%   r   )z1.10.2r    r)   r%   r   )z1.11.0r    é   r   r   )z1.12.0r    é   r   r   )z1.13.0r    é   r   r   )z1.13.1r    r,   r   r   )z1.14.0r"   é   r   r   )z1.14.1r"   r-   r   r   )z1.15.0r"   é   r!   r   )z1.16.0r#   é   r   r   )z1.16.1r#   r/   r   r   )z1.16.2r#   r/   r   r   )z1.17.0r#   é   r   r   )z1.18.0r$   é   r   r   )z1.19.0r&   é   r   r   )z1.19.1r&   r2   r   r   )z1.20.0r'   é   r   r   )z1.20.1r'   r3   r   r   )z1.21.0r'   é   r   r   )z1.22.0r'   é   r   r   )z1.23.0r(   é   r   r   ÚVersionTableTypeÚVERSION_TABLEÚtableÚreturnÚVersionMapTypec                óØ   — i }| D ]d}|d         }t          g d¢|dd…         d¬¦  «        D ]=}||vr7|||<   |d         dk    r||d	|d         f<   |d         d
k    r||d|d         f<   Œ>Œe|S )zOCreate a map from (opset-domain, opset-version) to ir-version from above table.r   )úai.onnxz
ai.onnx.mlúai.onnx.trainingr%   NF)Ústrictr   r=   zai.onnx.previewr>   zai.onnx.preview.training)Úzip)r9   ÚresultÚrowÚ
ir_versionÚpairs        ú<C:\Projects\Historical\venv\Lib\site-packages\onnx/helper.pyÚ_create_op_set_id_version_maprF   V   sÃ   € à€FØð Mð MˆØ˜”Vˆ
ÝØ9Ð9Ð9Ø���ŒGØð
ñ 
ô 
ð 
	Mð 
	MˆDð
 ˜6Ð!Ð!Ø)��t‘Ø˜”7˜iÒ'Ð'Ø9C�FÐ,¨d°1¬gÐ5Ñ6Ø˜”7Ð0Ò0Ð0ØBL�FÐ5°t¸A´wÐ>Ñ?øð
	Mð €Mó    FÚopsetidlistúSequence[OperatorSetIdProto]Úignore_unknownÚboolÚintc                óX   ‡‡‡— dŠd	ˆˆfd„Š| rt          ˆfd„| D ¦   «         ¦  «        S ‰S )
a=  Given list of opset ids, determine minimum IR version required.

    Args:
        opsetidlist: A sequence of OperatorSetIdProto.
        ignore_unknown: If True, ignore unknown domain and return default minimum
            version for that domain.

    Returns:
        The minimum IR version required (integer)
    r   Údomainú
str | NoneÚversionrL   r:   c                ób   •— | pd|f}|t           v rt           |         S ‰r‰S t          d¦  «        ‚)Nr=   zUnsupported opset-version.)ÚOP_SET_ID_VERSION_MAPÚ
ValueError)rN   rP   ÚkeyÚdefault_min_versionrJ   s      €€rE   Úfind_minz)find_min_ir_version_for.<locals>.find_min{   sF   ø€ ØÐ"˜ GÐ,ˆØÕ'Ð'Ð'Ý(¨Ô-Ð-Øð 	'Ø&Ð&ÝÐ5Ñ6Ô6Ð6rG   c              3  óD   •K  — | ]} ‰|j         |j        ¦  «        V — Œd S ©N)rN   rP   )Ú.0ÚxrV   s     €rE   ú	<genexpr>z*find_min_ir_version_for.<locals>.<genexpr>„   s3   øè è € ÐFÐF°Q�8�8˜AœH a¤iÑ0Ô0ÐFÐFÐFÐFÐFÐFrG   )rN   rO   rP   rL   r:   rL   )Úmax)rH   rJ   rU   rV   s    `@@rE   Úfind_min_ir_version_forr]   l   sd   øøø€ ð Ðð7ð 7ð 7ð 7ð 7ð 7ð 7ð ð GÝÐFÐFÐFÐF¸+ÐFÑFÔFÑFÔFÐFØÐrG   Úop_typeÚstrÚinputsúSequence[str]ÚoutputsÚnamerO   Ú
doc_stringrN   ÚoverloadÚkwargsr   r   c                ój  — t          ¦   «         }| |_        |j                             |¦  «         |j                             |¦  «         |r||_        |r||_        |�||_        |�||_        |rC|j	                             d„ t          |                     ¦   «         ¦  «        D ¦   «         ¦  «         |S )a  Construct a NodeProto.

    Args:
        op_type (string): The name of the operator to construct
        inputs (list of string): list of input names
        outputs (list of string): list of output names
        name (string, default None): optional unique identifier for NodeProto
        doc_string (string, default None): optional documentation string for NodeProto
        domain (string, default None): optional domain for NodeProto.
            If it's None, we will just use default domain (which is empty)
        overload (string, default None): optional field, used to
            resolve calls to model-local functions
        **kwargs (dict): the attributes of the node.  The acceptable values
            are documented in :func:`make_attribute`.

    Returns:
        NodeProto
    Nc              3  ó@   K  — | ]\  }}|®t          ||¦  «        V — Œd S rX   )Úmake_attribute)rY   rT   Úvalues      rE   r[   zmake_node.<locals>.<genexpr>±   sB   è è € ð 
ð 
á��UØÐ õ ˜3 Ñ&Ô&à Ð Ð Ð ð
ð 
rG   )r   r^   ÚinputÚextendÚoutputrc   rd   rN   re   Ú	attributeÚsortedÚitems)	r^   r`   rb   rc   rd   rN   re   rf   Únodes	            rE   Ú	make_noderr   ˆ   sÍ   € õ8 ‰;Œ;€DØ€D„LØ„J×Ò�fÑÔÐØ„K×Ò�wÑÔÐØð ØˆŒ	Øð %Ø$ˆŒØÐØˆŒØÐØ ˆŒØð 
ØŒ×Òð 
ð 
å$ V§\¢\¡^¤^Ñ4Ô4ð
ñ 
ô 
ñ 	
ô 	
ð 	
ð
 €KrG   rP   r   c                ó>   — t          ¦   «         }| |_        ||_        |S ©zÉConstruct an OperatorSetIdProto.

    Args:
        domain (string): The domain of the operator set id
        version (integer): Version of operator set id
    Returns:
        OperatorSetIdProto
    ©r   rN   rP   )rN   rP   Úoperatorsetids      rE   Úmake_operatorsetidrw   ¹   s%   € õ 'Ñ(Ô(€MØ!€MÔØ#€MÔØÐrG   ÚnodesúSequence[NodeProto]úSequence[ValueInfoProto]ÚinitializerúSequence[TensorProto] | NoneÚ
value_infoúSequence[ValueInfoProto] | NoneÚsparse_initializerú'Sequence[onnx.SparseTensorProto] | Noner   c                ó’  — |€g }|€g }|€g }t          ¦   «         }|j                             | ¦  «         ||_        |j                             |¦  «         |j                             |¦  «         |j                             |¦  «         |j                             |¦  «         |j                             |¦  «         |r||_	        |S )a˜  Construct a GraphProto

    Args:
        nodes: list of NodeProto
        name (string): graph name
        inputs: list of ValueInfoProto
        outputs: list of ValueInfoProto
        initializer: list of TensorProto
        doc_string (string): graph documentation
        value_info: list of ValueInfoProto
        sparse_initializer: list of onnx.SparseTensorProto
    Returns:
        GraphProto
    )
r   rq   rl   rc   rk   rm   r{   r   r}   rd   )	rx   rc   r`   rb   r{   rd   r}   r   Úgraphs	            rE   Ú
make_graphrƒ   Ë   sÓ   € ð0 ÐØˆØÐ!ØÐØÐØˆ
Ý‰LŒL€EØ	„J×Ò�eÑÔÐØ€E„JØ	„K×Ò�vÑÔÐØ	„L×Ò˜Ñ Ô Ð Ø	Ô×Ò˜[Ñ)Ô)Ð)Ø	Ô×#Ò#Ð$6Ñ7Ô7Ð7Ø	Ô×Ò˜JÑ'Ô'Ð'Øð &Ø%ˆÔØ€LrG   c                ó>   — t          ¦   «         }| |_        ||_        |S rt   ru   )rN   rP   Úopsetids      rE   Úmake_opsetidr†   ö   s"   € õ !Ñ"Ô"€GØ€G„NØ€G„OØ€NrG   ÚfnameÚopset_importsÚ
attributesúSequence[str] | NoneÚattribute_protosúSequence[AttributeProto] | Noner   c                óæ  — |€g }|€g }|
€g }
t          ¦   «         }| |_        ||_        |j                             |¦  «         |j                             |¦  «         |j                             |¦  «         |j                             |¦  «         |j                             |¦  «         |j	                             |¦  «         |r||_
        |	�|	|_        |j                             |
¦  «         |S rX   )r   rN   rc   rk   rl   rm   rq   Úopset_importrn   Úattribute_protord   re   r}   )rN   r‡   r`   rb   rx   rˆ   r‰   r‹   rd   re   r}   Úfs               rE   Úmake_functionr‘     sô   € ð ÐØˆ
ØÐØÐØÐØˆ
Ý‰Œ€AØ€A„HØ€A„FØ„G‡N‚N�6ÑÔÐØ„H‡O‚O�GÑÔÐØ„F‡M‚M�%ÑÔÐØ„N×Ò˜-Ñ(Ô(Ð(Ø„K×Ò�zÑ"Ô"Ð"ØÔ×ÒÐ-Ñ.Ô.Ð.Øð "Ø!ˆŒØÐØˆŒ
Ø„L×Ò˜
Ñ#Ô#Ð#Ø€HrG   r‚   r   c                óú  — t          ¦   «         }t          j        |_        |j                             | ¦  «         |                     dd¦  «        }|�|j                             |¦  «         n1|j         	                    ¦   «         }t          j        ¦   «         |_        |                     dd¦  «        }|�|j                             |¦  «         |                     ¦   «         D ]\  }}t          |||¦  «         Œ|S )z·Construct a ModelProto

    Args:
        graph (GraphProto): *make_graph* returns
        **kwargs: any attribute to add to the returned instance
    Returns:
        ModelProto
    rˆ   NÚ	functions)r   ÚonnxÚ
IR_VERSIONrC   r‚   ÚCopyFromÚpoprŽ   rl   Úaddr   Úonnx_opset_versionrP   r“   rp   Úsetattr)r‚   rf   Úmodelrˆ   Úimpr“   ÚkÚvs           rE   Ú
make_modelrŸ   )  só   € õ ‰LŒL€Eõ ”€EÔØ	„K×Ò˜ÑÔÐà9?¿ºØ˜ñ:ô :€Mð Ð ØÔ×!Ò! -Ñ0Ô0Ð0Ð0ð Ô ×$Ò$Ñ&Ô&ˆÝÔ-Ñ/Ô/ˆŒà06·
²
¸;ÈÑ0MÔ0M€IØÐØŒ×Ò˜yÑ)Ô)Ð)à—’‘”ð ð ‰ˆˆ1å��q˜!ÑÔÐÐØ€LrG   c                ó|   — d}||vr*d}|                      |g ¦  «        }t          |¦  «        ||<   t          | fi |¤ŽS )NrC   rˆ   )Úgetr]   rŸ   )r‚   rf   Úir_version_fieldÚopset_imports_fieldÚimportss        rE   Úmake_model_gen_versionr¥   N  sV   € Ø#ÐØ˜vÐ%Ð%Ø-ÐØ—*’*Ð0°"Ñ5Ô5ˆÝ#:¸7Ñ#CÔ#CˆÐÑ Ý�eÐ&Ð&˜vÐ&Ð&Ð&rG   ÚprotoúRModelProto | GraphProto | FunctionProto | NodeProto | TensorProto | ValueInfoProtoÚ
dict_valueúdict[str, str]ÚNonec                óœ   — | j         d d …= |                     ¦   «         D ],\  }}| j                              ¦   «         }||_        ||_        Œ-d S rX   )Úmetadata_propsrp   r˜   rT   rj   )r¦   r¨   r�   rž   Úentrys        rE   Úset_metadata_propsr®   W  s`   € ð 	Ô˜Q˜Q˜QÐØ× Ò Ñ"Ô"ð ð ‰ˆˆ1ØÔ$×(Ò(Ñ*Ô*ˆØˆŒ	ØˆŒˆðð rG   r›   c                ó&   — t          | |¦  «         d S rX   )r®   )r›   r¨   s     rE   Úset_model_propsr°   i  s   € Ý�u˜jÑ)Ô)Ð)Ð)Ð)rG   Ú	data_typeÚdimsúSequence[int]Úvalsú*Sequence[int | float] | bytes | np.ndarrayÚrawr   c                óÒ  — t          ¦   «         }||_        | |_        |j                             |¦  «         |t           j        k    r|rt          d¦  «        ‚t          |¦  «        }|�r|t           j        t           j	        hv rd}nO|t           j
        t           j        t           j        hv rd}n'|t           j        t           j        hv rd}n
|j        dz  }t!          j        |¦  «         |z  dz   }t%          |t&          j        ¦  «        rõ|t           j        t           j
        t           j        hv r t*          j                             |¦  «        }n�|t           j        t           j        hv r t*          j                             |¦  «        }nV|t           j        t           j	        hv r<t*          j                             |                     t&          j        ¦  «        ¦  «        }t*          j                             |¦  «        }	n8t%          |t:          ¦  «        r|}	n t          dt=          |¦  «        › d�¦  «        ‚t?          |	¦  «        |k    r#tA          d|› d	t?          |	¦  «        › d
�¦  «        ‚|	|_!        |S |r
J d¦   «         ‚|t           j        k    r]t'          j"        |¦  «         #                    ¦   «         }t?          |¦  «        dk    r" t'          j$        tJ          ¦  «        |¦  «        }�nT|t           j&        t           j'        t           j(        t           j)        hv rEt*          j         *                    t'          j+        |¦  «        |¦  «         #                    ¦   «         }nß|t           j,        k    rGt*          j         -                    t'          j+        |¦  «        dd¬¦  «         #                    ¦   «         }nˆ|t           j        t           j	        hv rFt'          j+        ||¬¦  «         #                    ¦   «                              t&          j        ¦  «        }n(t'          j+        ||¬¦  «         #                    ¦   «         }t!          j        |¦  «        }
t?          |¦  «        |
k    r#tA          dt?          |¦  «        › d|
› d�¦  «        ‚|t           j.        k    r!|                     t&          j/        ¦  «        }�nu|t           j0        k    r!|                     t&          j1        ¦  «        }�nD|t           j2        t           j3        hv r!|                     t&          j4        ¦  «        }�n	|t           j&        t           j'        t           j(        t           j)        t           j,        hv r |                     t&          j        ¦  «        }n®|t           j
        t           j        t           j        hv r t*          j                             |¦  «        }ni|t           j        t           j        hv r t*          j                             |¦  «        }n/|t           j5        k    r| 6                    t&          j        ¦  «        }to          |¦  «        }tq          ||¦  «                             |¦  «         |S )au  Make a TensorProto with specified arguments.  If raw is False, this
    function will choose the corresponding proto field to store the
    values based on data_type. If raw is True, use "raw_data" proto
    field to store the values, and values should be of type bytes in
    this case.

    Args:
        name: tensor name
        data_type: a value such as onnx.TensorProto.FLOAT
        dims: shape
        vals: values
        raw: if True, vals contains the serialized content of the tensor,
            otherwise, vals should be a list of values of the type defined by ``data_type``.

    Returns:
        TensorProto
    z*Can not use raw_data to store string type.r   r!   r%   r    z1Raw data must be bytes or numpy.ndarray, but got ú.z5Raw data size does not match tensor's size. Expected z bytes, but got z bytes.z'Bug: raw should be False at this point.r   TÚup)ÚsaturateÚ
round_mode)ÚdtypezNumber of values (z-) does not match tensor dimensions requiring z
 elements.)9r   r±   rc   r²   rl   ÚSTRINGÚ	TypeErrorÚtensor_dtype_to_np_dtypeÚ
FLOAT6E2M3Ú
FLOAT6E3M2ÚUINT4ÚINT4Ú
FLOAT4E2M1ÚUINT2ÚINT2ÚitemsizeÚmathÚprodÚ
isinstanceÚnpÚndarrayr”   Únumpy_helperÚ_pack_4bitx2Ú_pack_2bitx4Ú
_pack_6bitÚviewÚuint8Útobytes_little_endianÚbytesÚtypeÚlenrS   Úraw_dataÚarrayÚflattenÚ	vectorizeÚ	_to_bytesÚFLOAT8E4M3FNÚFLOAT8E4M3FNUZÚ
FLOAT8E5M2ÚFLOAT8E5M2FNUZÚsaturate_castÚasarrayÚ
FLOAT8E8M0Úto_float8e8m0Ú
COMPLEX128Úfloat64Ú	COMPLEX64Úfloat32ÚBFLOAT16ÚFLOAT16Úuint16ÚBOOLÚastypeÚtensor_dtype_to_fieldÚgetattr)rc   r±   r²   r´   r¶   ÚtensorÚnp_dtypeÚbits_per_elementÚexpected_size_bytesr×   Úexpected_elementsÚfields               rE   Úmake_tensorrõ   m  s³  € õ0 ‰]Œ]€FØ €FÔØ€F„KØ
„K×Ò�tÑÔÐà•KÔ&Ò&Ð&¨3Ð&ÝÐDÑEÔEÐEå'¨	Ñ2Ô2€Hà
ñ &à�Ô/µÔ1GÐHÐHÐHØ ÐÐØ�;Ô,­kÔ.>ÅÔ@VÐWÐWÐWØ ÐÐØ�;Ô,­kÔ.>Ð?Ð?Ð?Ø ÐÐà'Ô0°1Ñ4Ðõ "&¤¨4¡¤Ð 0Ð3CÑ CÀqÑ HÐIÐÝ�d�BœJÑ'Ô'ð 	ØÝÔ ÝÔ!ÝÔ&ðð ð õ
 Ô(×5Ò5°dÑ;Ô;��Ø�{Ô0µ+Ô2BÐCÐCÐCÝÔ(×5Ò5°dÑ;Ô;��Ø�{Ô5µ{Ô7MÐNÐNÐNÝÔ(×3Ò3°D·I²I½b¼hÑ4GÔ4GÑHÔH�åÔ(×>Ò>¸tÑDÔDˆHˆHÝ˜�eÑ$Ô$ð 	ØˆHˆHåØQÅDÈÁJÄJÐQÐQÐQñô ð õ ˆx‰=Œ=Ð/Ò/Ð/Ýð DÐH[ð  Dð  DÕmpÐqyÑmzÔmzð  Dð  Dð  Dñô ð ð #ˆŒØˆàÐ=Ð=Ð=Ñ=Ô=ˆ7à•KÔ&Ò&Ð&ÝŒx˜‰~Œ~×%Ò%Ñ'Ô'ˆÝˆt‰9Œ9˜Š>ˆ>Ø*•2”<¥	Ñ*Ô*¨4Ñ0Ô0ˆDùØ	ÝÔ ÝÔ"ÝÔÝÔ"ð	ð 
ð 
õ Ô ×.Ò.­r¬z¸$Ñ/?Ô/?ÀÑJÔJ×RÒRÑTÔTˆˆØ	•kÔ,Ò	,Ð	,ÝÔ ×.Ò.ÝŒJ�tÑÔ t¸ð /ñ 
ô 
ç
Š'‰)Œ)ð 	ˆð 
•{Ô-­{Ô/EÐFÐ	FÐ	FåŒz˜$ hÐ/Ñ/Ô/×7Ò7Ñ9Ô9×>Ò>½r¼xÑHÔHˆˆåŒz˜$ hÐ/Ñ/Ô/×7Ò7Ñ9Ô9ˆåœ	 $™œÐÝ
ˆ4�y„yÐ%Ò%Ð%ÝðB¥ T¡¤ð Bð BØ$5ðBð Bð Bñ
ô 
ð 	
ð •KÔ*Ò*Ð*Ø�yŠy�œÑ$Ô$ˆ‰Ø	•kÔ+Ò	+Ð	+Ø�yŠy�œÑ$Ô$ˆ‰Ø	•{Ô+­[Ô-@ÐAÐ	AÐ	AØ�yŠy�œÑ#Ô#ˆ‰Ø	ÝÔ ÝÔ"ÝÔÝÔ"ÝÔðð 
ð 
ð �yŠy�œÑ"Ô"ˆˆØ	•{Ô(­+Ô*:½KÔ<RÐSÐ	SÐ	SåÔ ×-Ò-¨dÑ3Ô3ˆˆØ	•{Ô(­+Ô*:Ð;Ð	;Ð	;åÔ ×-Ò-¨dÑ3Ô3ˆˆØ	•kÔ&Ò	&Ð	&Ø�{Š{�2œ8Ñ$Ô$ˆå! )Ñ,Ô,€EÝˆF�EÑÔ×!Ò! $Ñ'Ô'Ð'Ø€MrG   ÚvaluesÚindicesúonnx.SparseTensorProtoc                óÈ   — t          j        ¦   «         }|j                             | ¦  «         |j                             |¦  «         |j                             |¦  «         |S )zÁConstruct a SparseTensorProto

    Args:
        values (TensorProto): the values
        indices (TensorProto): the indices
        dims: the shape

    Returns:
        SparseTensorProto
    )r”   ÚSparseTensorProtorö   r–   r÷   r²   rl   )rö   r÷   r²   Úsparses       rE   Úmake_sparse_tensorrü   ñ  sY   € õ Ô#Ñ%Ô%€FØ
„M×Ò˜6Ñ"Ô"Ð"Ø
„N×Ò˜GÑ$Ô$Ð$Ø
„K×Ò�tÑÔÐØ€MrG   Ú	elem_typeúSequenceProto.DataTypeúSequence[Any]r   c                óž  — t          ¦   «         }| |_        ||_        |t           j        k    r|S d}|t           j        k    r|j        }no|t           j        k    r|j        }nW|t           j        k    r|j	        }n?|t           j
        k    r|j        }n'|t          j        k    r|j        }nt          d¦  «        ‚|                     |¦  «         |S )z/Make a Sequence with specified value arguments.Nz8The element type in the input sequence is not supported.)r   rc   rý   Ú	UNDEFINEDÚTENSORÚtensor_valuesÚSPARSE_TENSORÚsparse_tensor_valuesÚSEQUENCEÚsequence_valuesÚMAPÚ
map_valuesr
   ÚOPTIONALÚoptional_valuesr¾   rl   )rc   rý   rö   Úsequencern   s        rE   Úmake_sequencer    sÔ   € õ ‰Œ€HØ€H„MØ"€HÔà•MÔ+Ò+Ð+Øˆà8<€IØ•MÔ(Ò(Ð(ØÔ*ˆ	ˆ	Ø	•mÔ1Ò	1Ð	1ØÔ1ˆ	ˆ	Ø	•mÔ,Ò	,Ð	,ØÔ,ˆ	ˆ	Ø	•mÔ'Ò	'Ð	'ØÔ'ˆ	ˆ	Ø	•mÔ,Ò	,Ð	,ØÔ,ˆ	ˆ	åÐRÑSÔSÐSà×Ò�VÑÔÐØ€OrG   Úkey_typeÚkeysú	list[Any]r	   c                ó¸  — t          ¦   «         }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}| |_
        ||_        |t          j        k    r|j                             |¦  «         n||v r|j                             |¦  «         |j                             |¦  «         |S )zøMake a Map with specified key-value pair arguments.

    Criteria for conversion:
    - Keys and Values must have the same number of elements
    - Every key in keys must be of the same type
    - Every value in values must be of the same type
    )r	   r   ÚINT8ÚINT16ÚINT32ÚINT64ÚUINT8ÚUINT16ÚUINT32ÚUINT64rc   r  r½   Ústring_keysrl   r  rö   r–   )rc   r  r  rö   Ú	map_protoÚvalid_key_int_typess         rE   Úmake_mapr  $  s½   € õ ‘
”
€IåÔÝÔÝÔÝÔÝÔÝÔÝÔÝÔð	Ðð €I„NØ!€IÔØ•;Ô%Ò%Ð%ØÔ×$Ò$ TÑ*Ô*Ð*Ð*Ø	Ð(Ð	(Ð	(ØŒ×Ò˜dÑ#Ô#Ð#ØÔ×Ò˜fÑ%Ô%Ð%ØÐrG   úOptionalProto.DataTyperj   ú&google.protobuf.message.Message | Noner
   c                ó¦  — t          ¦   «         }| |_        ||_        |t           j        k    r|S d}|t           j        k    r|j        }no|t           j        k    r|j        }nW|t           j        k    r|j	        }n?|t           j
        k    r|j        }n'|t           j        k    r|j        }nt          d¦  «        ‚|€J ‚|                     |¦  «         |S )z0Make an Optional with specified value arguments.Nz8The element type in the input optional is not supported.)r
   rc   rý   r  r  Útensor_valuer  Úsparse_tensor_valuer  Úsequence_valuer  Ú	map_valuer
  Úoptional_valuer¾   r–   )rc   rý   rj   Úoptionalrn   s        rE   Úmake_optionalr'  C  sà   € õ ‰Œ€HØ€H„MØ"€HÔà•MÔ+Ò+Ð+ØˆØ8<€IØ•MÔ(Ò(Ð(ØÔ)ˆ	ˆ	Ø	•mÔ1Ò	1Ð	1ØÔ0ˆ	ˆ	Ø	•mÔ,Ò	,Ð	,ØÔ+ˆ	ˆ	Ø	•mÔ'Ò	'Ð	'ØÔ&ˆ	ˆ	Ø	•mÔ,Ò	,Ð	,ØÔ+ˆ	ˆ	åÐRÑSÔSÐSàÐÐÐØ×Ò�uÑÔÐØ€OrG   ústr | bytesrÔ   c                óZ   — t          | t          ¦  «        r|                      d¦  «        S | S )z2Coerce a string (or bytes) value into UTF-8 bytes.úutf-8)rÊ   r_   Úencode)rj   s    rE   rÛ   rÛ   b  s+   € å�%�ÑÔð %Ø�|Š|˜GÑ$Ô$Ð$Ø€LrG   rT   Ú	attr_typeú
int | Noner   c                óz
  ‡— t          ¦   «         }| |_        |r||_        t          |t          j        ¦  «        r't          |¦  «        |_        t           j        |_	        �n�t          |t          j
        ¦  «        r't          |¦  «        |_        t           j        |_	        �nLt          |t          t          f¦  «        r't!          |¦  «        |_        t           j        |_	        �n	t          |t&          ¦  «        r-|j                             |¦  «         t           j        |_	        �nÇt          |t.          j        ¦  «        r-|j                             |¦  «         t           j        |_	        �n€t          |t6          ¦  «        r-|j                             |¦  «         t           j        |_	        �n>t          |t<          ¦  «        r-|j                             |¦  «         t           j         |_	        �nüt          |tB          j"        j#        ¦  «        �rÉtI          |¦  «        }tK          |¦  «        dk    r|€tM          d| › d�¦  «        ‚|€Ød„ |D ¦   «         }t          j        t           j'        ft          j
        t           j(        ft          t          ft           j)        ft&          t           j*        ft.          j        t           j+        ft6          t           j,        ft<          t           j-        ffD ]$\  Š}t]          ˆfd„|D ¦   «         ¦  «        r|} nŒ%|€tM          d¦  «        ‚|t           j'        k    r-|j/         0                    |¦  «         t           j'        |_	        �nŽ|t           j(        k    r-|j1         0                    |¦  «         t           j(        |_	        �nQ|t           j)        k    r7|j2         0                    d„ |D ¦   «         ¦  «         t           j)        |_	        �n
|t           j*        k    r,|j3         0                    |¦  «         t           j*        |_	        nÎ|t           j+        k    r,|j4         0                    |¦  «         t           j+        |_	        n’|t           j,        k    r,|j5         0                    |¦  «         t           j,        |_	        nV|t           j-        k    r,|j6         0                    |¦  «         t           j-        |_	        ntn          ‚tq          d	|› d
�¦  «        ‚|�K|j	        |k    r@tq          dts          |j	        ¦  «        › d|j	        › dts          |¦  «        › d|› d�	¦  «        ‚|S )z0Makes an AttributeProto based on the value type.r   NzCould not infer attribute `z` type from empty iteratorc                ó,   — h | ]}t          |¦  «        ’ŒS © )rÕ   ©rY   rž   s     rE   ú	<setcomp>z!make_attribute.<locals>.<setcomp>”  s   € Ð,Ð,Ð, •T˜!‘W”WÐ,Ð,Ð,rG   c              3  ó8   •K  — | ]}t          |‰¦  «        V — Œd S rX   )Ú
issubclass)rY   ÚtÚexp_ts     €rE   r[   z!make_attribute.<locals>.<genexpr>ž  s-   øè è € Ð;Ð;°•z ! UÑ+Ô+Ð;Ð;Ð;Ð;Ð;Ð;rG   zRCould not infer the attribute type from the elements of the passed Iterable value.c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rX   )rÛ   r1  s     rE   r[   z!make_attribute.<locals>.<genexpr>­  s(   è è € Ð<Ð<°¥	¨!¡¤Ð<Ð<Ð<Ð<Ð<Ð<rG   ú'z%' is not an accepted attribute value.zInferred attribute type 'z'(z") mismatched with specified type 'ú)):r   rc   rd   rÊ   ÚnumbersÚIntegralrL   ÚiÚINTrÕ   ÚRealÚfloatr�   ÚFLOATr_   rÔ   rÛ   Úsr½   r   r5  r–   r  r”   rú   Úsparse_tensorr  r   ÚgÚGRAPHr   ÚtpÚ
TYPE_PROTOÚcollectionsÚabcÚIterableÚlistrÖ   rS   ÚINTSÚFLOATSÚSTRINGSÚTENSORSÚSPARSE_TENSORSÚGRAPHSÚTYPE_PROTOSÚallÚintsrl   ÚfloatsÚstringsÚtensorsÚsparse_tensorsÚgraphsÚtype_protosÚAssertionErrorr¾   Ú_attr_type_to_str)rT   rj   rd   r,  ÚattrÚtypesÚexp_enumr6  s          @rE   ri   ri   i  sß  ø€ õ ÑÔ€DØ€D„IØð %Ø$ˆŒõ �%�Ô)Ñ*Ô*ð HJÝ�U‘”ˆŒÝ"Ô&ˆŒ	‰	Ý	�E�7œ<Ñ	(Ô	(ð EJÝ�u‘”ˆŒÝ"Ô(ˆŒ	‰	Ý	�E�C¥˜<Ñ	(Ô	(ð BJå˜5Ñ!Ô!ˆŒÝ"Ô)ˆŒ	‰	Ý	�E�;Ñ	'Ô	'ð >JØŒ�Š˜ÑÔÐÝ"Ô)ˆŒ	‰	Ý	�E�4Ô1Ñ	2Ô	2ð ;JØÔ×#Ò# EÑ*Ô*Ð*Ý"Ô0ˆŒ	‰	Ý	�E�:Ñ	&Ô	&ð 8JØŒ�Š˜ÑÔÐÝ"Ô(ˆŒ	‰	Ý	�E�9Ñ	%Ô	%ð 5JØŒ×Ò˜ÑÔÐÝ"Ô-ˆŒ	‰	å	�E�;œ?Ô3Ñ	4Ô	4ñ 1JÝ�U‘”ˆÝˆu‰:Œ:˜Š?ˆ?˜yÐ0ÝØM¨cÐMÐMÐMñô ð ð ÐØ,Ð, eÐ,Ñ,Ô,ˆEåÔ!¥>Ô#6Ð7Ý”�~Ô4Ð5Ý•u��~Ô5Ð6Ý�nÔ4Ð5ÝÔ'­Ô)FÐGÝ�^Ô2Ð3Ý�NÔ6Ð7ð$ð ð ‘��xõ Ð;Ð;Ð;Ð;°UÐ;Ñ;Ô;Ñ;Ô;ð Ø (�IØ�Eðð Ð Ý Øhñô ð ð �Ô+Ò+Ð+ØŒI×Ò˜UÑ#Ô#Ð#Ý&Ô+ˆDŒI‰IØ�.Ô/Ò/Ð/ØŒK×Ò˜uÑ%Ô%Ð%Ý&Ô-ˆDŒI‰IØ�.Ô0Ò0Ð0ØŒL×ÒÐ<Ð<°eÐ<Ñ<Ô<Ñ<Ô<Ð<Ý&Ô.ˆDŒI‰IØ�.Ô0Ò0Ð0ØŒL×Ò Ñ&Ô&Ð&Ý&Ô.ˆDŒIˆIØ�.Ô7Ò7Ð7ØÔ×&Ò& uÑ-Ô-Ð-Ý&Ô5ˆDŒIˆIØ�.Ô/Ò/Ð/ØŒK×Ò˜uÑ%Ô%Ð%Ý&Ô-ˆDŒIˆIØ�.Ô4Ò4Ð4ØÔ×#Ò# EÑ*Ô*Ð*Ý&Ô2ˆDŒIˆIå Ð åÐH˜EÐHÐHÐHÑIÔIÐIàÐ ¤¨iÒ!7Ð!7Ýð bÕ(9¸$¼)Ñ(DÔ(Dð  bð  bÈÌ	ð  bð  bõ  vGð  HQñ  vRô  vRð  bð  bð  V_ð  bð  bð  bñ
ô 
ð 	
ð €KrG   )Úref_attr_nameúAttributeProto.AttributeTyper_  c               óˆ   — |€| }|st          d¦  «        ‚t          ¦   «         }| |_        ||_        ||_        |r||_        |S )aª  Make an AttributeProto holding a reference to the parent function's attribute.

    The returned attribute carries no value of its own; at instantiation time its
    value is supplied by the parent function's attribute named ``ref_attr_name``.
    When ``ref_attr_name`` is not provided, it defaults to ``name``. Reference
    attributes are only valid inside a function (sub-graph).

    Args:
        name: The name of this attribute as used inside the function body.
        attr_type: The type of the attribute.
        doc_string: Optional human-readable documentation for the attribute.
        ref_attr_name: The name of the parent function's attribute being referenced.
    Nzref_attr_name must be non-empty)rS   r   rc   rÕ   r_  rd   )rc   r,  rd   r_  r\  s        rE   Úmake_attribute_refrb  Ç  s[   € ð( ÐØˆØð <ÝÐ:Ñ;Ô;Ð;åÑÔ€DØ€D„IØ€D„IØ&€DÔØð %Ø$ˆŒØ€KrG   r\  c                óL  — | j         rt          d| › �¦  «        ‚| j        t          j        k    r| j        S | j        t          j        k    r| j        S | j        t          j        k    r| j	        S | j        t          j
        k    r| j        S | j        t          j        k    r| j        S | j        t          j        k    r| j        S | j        t          j        k    r| j        S | j        t          j        k    rt'          | j        ¦  «        S | j        t          j        k    rt'          | j        ¦  «        S | j        t          j        k    rt'          | j        ¦  «        S | j        t          j        k    rt'          | j        ¦  «        S | j        t          j        k    rt'          | j        ¦  «        S | j        t          j        k    rt'          | j        ¦  «        S | j        t          j        k    rt'          | j         ¦  «        S | j        t          j!        k    rd S t          d| › �¦  «        ‚)Nz)Cannot get value of reference attribute: zUnsupported ONNX attribute: )"r_  rS   rÕ   r   r@  r�   r=  r<  r½   rA  r  r5  r  rB  rD  rC  rF  rE  rL  rJ  rT  rK  rS  rM  rU  rN  rV  rO  rW  rP  rX  rQ  rY  r  )r\  s    rE   Úget_attribute_valuerd  é  sÔ  € ØÔð MÝÐKÀTÐKÐKÑLÔLÐLØ„y•NÔ(Ò(Ð(ØŒvˆØ„y•NÔ&Ò&Ð&ØŒvˆØ„y•NÔ)Ò)Ð)ØŒvˆØ„y•NÔ)Ò)Ð)ØŒvˆØ„y•NÔ0Ò0Ð0ØÔ!Ð!Ø„y•NÔ(Ò(Ð(ØŒvˆØ„y•NÔ-Ò-Ð-ØŒwˆØ„y•NÔ)Ò)Ð)Ý�D”KÑ Ô Ð Ø„y•NÔ'Ò'Ð'Ý�D”I‰ŒÐØ„y•NÔ*Ò*Ð*Ý�D”LÑ!Ô!Ð!Ø„y•NÔ*Ò*Ð*Ý�D”LÑ!Ô!Ð!Ø„y•NÔ1Ò1Ð1Ý�DÔ'Ñ(Ô(Ð(Ø„y•NÔ)Ò)Ð)Ý�D”KÑ Ô Ð Ø„y•NÔ.Ò.Ð.Ý�DÔ$Ñ%Ô%Ð%Ø„y•NÔ,Ò,Ð,ØˆtÝ
Ð:°DÐ:Ð:Ñ
;Ô
;Ð;rG   rq   Ú	attr_namec                óè   ‡— ˆfd„| j         D ¦   «         }t          |¦  «        dk    rt          d‰› �¦  «        ‚t          |¦  «        dk     rt          d‰› �¦  «        ‚t          |d         ¦  «        S )Nc                ó*   •— g | ]}|j         ‰k    ¯|‘ŒS r0  ©rc   )rY   rZ   re  s     €rE   ú
<listcomp>z'get_node_attr_value.<locals>.<listcomp>  s%   ø€ ÐAÐAÐA�a¨Q¬V°yÒ-@Ð-@�Ð-@Ð-@Ð-@rG   r   z'Node has multiple attributes with name z Node has no attribute with name r   )rn   rÖ   rS   rd  )rq   re  Úmatchings    ` rE   Úget_node_attr_valuerk    s€   ø€ ØAÐAÐAÐA˜4œ>ÐAÑAÔA€HÝ
ˆ8�}„}�qÒÐÝÐNÀ9ÐNÐNÑOÔOÐOÝ
ˆ8�}„}�qÒÐÝÐG¸IÐGÐGÑHÔHÐHÝ˜x¨œ{Ñ+Ô+Ð+rG   r   c                ó0   — t          ¦   «         }| |_        |S rX   )r   rc   )rc   Úvalue_info_protos     rE   Úmake_empty_tensor_value_inforn    s   € Ý%Ñ'Ô'ÐØ ÐÔØÐrG   Úshapeú!Sequence[str | int | None] | NoneÚshape_denotationúlist[str] | Noner   c                ó   — t          ¦   «         }|j        }| |_        |j        }|�Ø|j                             g ¦  «         |r/t          |¦  «        t          |¦  «        k    rt          d¦  «        ‚t          |¦  «        D ]}\  }}|j         	                    ¦   «         }|€nMt          |t          ¦  «        r||_        n0t          |t          ¦  «        r||_        nt          d|› d�¦  «        ‚|r||         |_        Œ~|S )z:Makes a Tensor TypeProto based on the data type and shape.Nú>Invalid shape_denotation. Must be of the same length as shape.úInvalid item in shape: z. Needs to be of int or str.)r   Útensor_typerý   ro  Údimrl   rÖ   rS   Ú	enumerater˜   rÊ   rL   Ú	dim_valuer_   Ú	dim_paramÚ
denotation)	rý   ro  rq  Ú
type_protoÚtensor_type_protoÚtensor_shape_protor<  Údrw  s	            rE   Úmake_tensor_type_protor€    s)  € õ ‘”€JØ"Ô.ÐØ"+ÐÔØ*Ô0ÐàÐð 	Ô×%Ò% bÑ)Ô)Ð)àð 	¥Ð$4Ñ 5Ô 5½¸U¹¼Ò CÐ CÝØPñô ð õ ˜eÑ$Ô$ð 	5ð 	5‰DˆAˆqØ$Ô(×,Ò,Ñ.Ô.ˆCØˆyØÝ˜A�sÑ#Ô#ð Ø !�”�Ý˜A�sÑ#Ô#ð Ø !�”�å ØM¨aÐMÐMÐMñô ð ð  ð 5Ø!1°!Ô!4�”øàÐrG   Ú c                ó˜   — t          ¦   «         }| |_        |r||_        t          |||¦  «        }|j                             |¦  «         |S )z8Makes a ValueInfoProto based on the data type and shape.)r   rc   rd   r€  rÕ   r–   )rc   rý   ro  rd   rq  rm  r}  s          rE   Úmake_tensor_value_inforƒ  I  s[   € õ &Ñ'Ô'ÐØ ÐÔØð 1Ø&0ÐÔ#å.¨y¸%ÐAQÑRÔRÐØÔ×"Ò"Ð#4Ñ5Ô5Ð5ØÐrG   c                ó   — t          ¦   «         }|j        }| |_        |j        }|�Ø|j                             g ¦  «         |r/t          |¦  «        t          |¦  «        k    rt          d¦  «        ‚t          |¦  «        D ]}\  }}|j         	                    ¦   «         }|€nMt          |t          ¦  «        r||_        n0t          |t          ¦  «        r||_        nt          d|› d�¦  «        ‚|r||         |_        Œ~|S )z@Makes a SparseTensor TypeProto based on the data type and shape.Nrt  ru  z. Needs to be of int or text.)r   Úsparse_tensor_typerý   ro  rw  rl   rÖ   rS   rx  r˜   rÊ   rL   ry  r_   rz  r{  )	rý   ro  rq  r|  Úsparse_tensor_type_protoÚsparse_tensor_shape_protor<  r  rw  s	            rE   Úmake_sparse_tensor_type_protorˆ  [  s)  € õ ‘”€JØ)Ô<ÐØ)2ÐÔ&Ø 8Ô >ÐàÐð 	"Ô%×,Ò,¨RÑ0Ô0Ð0àð 	¥Ð$4Ñ 5Ô 5½¸U¹¼Ò CÐ CÝØPñô ð õ ˜eÑ$Ô$ð 	5ð 	5‰DˆAˆqØ+Ô/×3Ò3Ñ5Ô5ˆCØˆyØÝ˜A�sÑ#Ô#ð Ø !�”�Ý˜A�sÑ#Ô#ð Ø !�”�å ØN¨aÐNÐNÐNñô ð ð  ð 5Ø!1°!Ô!4�”øàÐrG   c                ó¬   — t          ¦   «         }| |_        |r||_        t          |||¦  «        }|j        j                             |j        ¦  «         |S )zEMakes a SparseTensor ValueInfoProto based on the data type and shape.)r   rc   rd   rˆ  rÕ   r…  r–   )rc   rý   ro  rd   rq  rm  r†  s          rE   Úmake_sparse_tensor_value_inforŠ  ˆ  sp   € õ &Ñ'Ô'ÐØ ÐÔØð 1Ø&0ÐÔ#å<Ø�5Ð*ñ ô  Ðð ÔÔ,×5Ò5Ø Ô3ñô ð ð ÐrG   Úinner_type_protoc                ó`   — t          ¦   «         }|j        j                             | ¦  «         |S )zMakes a sequence TypeProto.)r   Úsequence_typerý   r–   ©r‹  r|  s     rE   Úmake_sequence_type_protor�  ž  ó.   € õ ‘”€JØÔÔ&×/Ò/Ð0@ÑAÔAÐAØÐrG   c                ó`   — t          ¦   «         }|j        j                             | ¦  «         |S )zMakes an optional TypeProto.)r   Úoptional_typerý   r–   rŽ  s     rE   Úmake_optional_type_protor“  §  r�  rG   Ú
value_typec                óx   — t          ¦   «         }| |j        _        |j        j                             |¦  «         |S )zMakes a map TypeProto.)r   Úmap_typer  r”  r–   )r  r”  r|  s      rE   Úmake_map_type_protor—  °  s8   € õ
 ‘”€JØ#+€JÔÔ ØÔÔ"×+Ò+¨JÑ7Ô7Ð7ØÐrG   r|  c                óv   — t          ¦   «         }| |_        |r||_        |j                             |¦  «         |S )z1Makes a ValueInfoProto with the given type_proto.)r   rc   rd   rÕ   r–   )rc   r|  rd   rm  s       rE   Úmake_value_infor™  »  sG   € õ &Ñ'Ô'ÐØ ÐÔØð 1Ø&0ÐÔ#àÔ×"Ò" :Ñ.Ô.Ð.ØÐrG   rA  c                ó  — t          | t          ¦  «        r| }n<t          | t          ¦  «        r|                      dd¬¦  «        }nt          | ¦  «        }t	          |¦  «        dk     r|S |d d…         dt	          |¦  «        dz
  › d�z   S )Nr*  Úignore)Úerrorsé@   z	...<+len=ú>)rÊ   r_   rÔ   ÚdecoderÖ   )rA  Ú	sanitizeds     rE   Ú_sanitize_strr¡  Ê  s�   € Ý�!•SÑÔð Øˆ	ˆ	Ý	�A•uÑ	Ô	ð Ø—H’H˜W¨X�HÑ6Ô6ˆ	ˆ	å˜‘F”Fˆ	Ý
ˆ9�~„~˜ÒÐØÐØ�S�b�SŒ>Ð@­¨Y©¬¸"Ñ)<Ð@Ð@Ð@Ñ@Ð@rG   Úelem_shape_denotationc                óÊ   — t          ¦   «         }| |_        |r||_        t          |||¦  «        }t	          |¦  «        }|j        j                             |j        ¦  «         |S )zJMakes a Sequence[Tensors] ValueInfoProto based on the data type and shape.)r   rc   rd   r€  r�  rÕ   r�  r–   )rc   rý   ro  rd   r¢  rm  r}  Úsequence_type_protos           rE   Úmake_tensor_sequence_value_infor¥  Ö  sp   € õ &Ñ'Ô'ÐØ ÐÔØð 1Ø&0ÐÔ#å.¨y¸%ÐAVÑWÔWÐÝ2Ð3DÑEÔEÐØÔÔ'×0Ò0Ð1DÔ1RÑSÔSÐSàÐrG   Ú	subgraphsú"str | tuple[str, list[GraphProto]]c           
     óN	  — g }|                      | j        ¦  «         |                      d¦  «         d%d„}d&d	„}t          d
¦  «        }d'd„}g }|                      d¦  «        r%|                       || j        ¦  «        ¦  «         �nð|                      d¦  «        r%|                       || j        ¦  «        ¦  «         �n¶|                      d¦  «        r6|                      t          t          | j        ¦  «        ¦  «        ¦  «         �nk|                      d¦  «        r{t          | j
        j        ¦  «        dk    r|                      d¦  «         �n"t          | j
        j        ¦  «        }|                      dt          | j
        |¦  «        › d�¦  «         �nÛ|                      d¦  «        r?|                      d| j        j        › d�¦  «         |                      | j        ¦  «         �n‡|                      d¦  «        r |                      d| j        › d�¦  «         �nR|                      d¦  «        r|                      d¦  «         �n&| j        r&|                       ||| j        ¦  «        ¦  «         �nù| j        r&|                       ||| j        ¦  «        ¦  «         �nÌ| j        rI|                      t)          t+          t-          t          | j        ¦  «        ¦  «        ¦  «        ¦  «         �n|| j        r|                      d¦  «         �n^| j        r|                      d¦  «         �n@| j        r|                      d¦  «         t5          | j        ¦  «        D ]?\  }	}
|	t          | j        ¦  «        dz
  k    rd nd!}|                      d|
› d|› �¦  «         Œ@|                      d"¦  «         nº| j        rž|                      d¦  «         t5          | j        ¦  «        D ]D\  }	}|	t          | j        ¦  «        dz
  k    rd nd!}|                      d|j        › d|› �¦  «         ŒE|                      d"¦  «         |                     | j        ¦  «         n|                      d#¦  «         |rd$                     |¦  «        |fS d$                     |¦  «        S )(Nú=r�   r?  r:   r_   c                ó
   — | d›S )Nz.15gr0  )r�   s    rE   Ú	str_floatz&printable_attribute.<locals>.str_floatñ  s   € ð ˆ{ˆ{ÐrG   r<  rL   c                ó    — t          | ¦  «        S rX   )r_   )r<  s    rE   Ústr_intz$printable_attribute.<locals>.str_int÷  s   € Ý�1‰vŒvˆrG   Ú_TÚstr_elemúCallable[[_T], str]ÚxsúSequence[_T]c                óT   — dd                      t          | |¦  «        ¦  «        z   dz   S )Nú[ú, ú])ÚjoinÚmap)r¯  r±  s     rE   Ústr_listz%printable_attribute.<locals>.str_listü  s(   € Ø�T—Y’Y�s 8¨RÑ0Ô0Ñ1Ô1Ñ1°CÑ7Ð7rG   rA  r5  r   z<Tensor>z<Scalar Tensor rž  rC  z<graph rE  z<Type Proto rB  z<Sparse Tensor>z[<Tensor>, ...]z[<Sparse Tensor>, ...]r´  r   ú,r�  r¶  z	<Unknown>ú )r�   r?  r:   r_   )r<  rL   r:   r_   )r¯  r°  r±  r²  r:   r_   )Úappendrc   r   ÚHasFieldr�   r<  Úreprr¡  rA  rÖ   r5  r²   rí   r±   rî   rC  rE  rT  rS  rU  r_   rJ  r¸  rV  rW  rY  rx  rX  rl   r·  )r\  r¦  Úcontentr«  r­  r®  r¹  rX  rô   r<  rE  ÚcommarC  s                rE   Úprintable_attributerÁ  ê  s¯  € ð €GØ‡N‚N�4”9ÑÔÐØ‡N‚N�3ÑÔÐðð ð ð ðð ð ð õ 
�‰Œ€Bð8ð 8ð 8ð 8ð €FØ‡}‚}�SÑÔð .$Ø�Š�y�y ¤Ñ(Ô(Ñ)Ô)Ð)Ñ)Ø	�Š�sÑ	Ô	ð ,$Ø�Š�w�w˜tœv‘”Ñ'Ô'Ð'Ñ'Ø	�Š�sÑ	Ô	ð *$à�Š•t�M¨$¬&Ñ1Ô1Ñ2Ô2Ñ3Ô3Ð3Ñ3Ø	�Š�sÑ	Ô	ð '$ÝˆtŒvŒ{ÑÔ˜aÒÐØ�NŠN˜:Ñ&Ô&Ð&Ñ&õ *¨$¬&Ô*:Ñ;Ô;ˆEØ�NŠNÐF­W°T´V¸UÑ-CÔ-CÐFÐFÐFÑGÔGÐGÑGØ	�Š�sÑ	Ô	ð  $Ø�ŠÐ/ ¤¤Ð/Ð/Ð/Ñ0Ô0Ð0Ø�Š�d”fÑÔÐÑØ	�Š�tÑ	Ô	ð $Ø�ŠÐ0 d¤gÐ0Ð0Ð0Ñ1Ô1Ð1Ñ1Ø	�Š�Ñ	'Ô	'ð $Ø�ŠÐ(Ñ)Ô)Ð)Ñ)Ø	Œð $Ø�Š�x�x 	¨4¬;Ñ7Ô7Ñ8Ô8Ð8Ñ8Ø	Œð $Ø�Š�x�x ¨¬Ñ3Ô3Ñ4Ô4Ð4Ñ4Ø	Œð $à�Š•s�4¥¥M°4´<Ñ @Ô @ÑAÔAÑBÔBÑCÔCÐCÑCØ	Œð $Ø�ŠÐ(Ñ)Ô)Ð)Ñ)Ø	Ô	ð $Ø�ŠÐ/Ñ0Ô0Ð0Ñ0Ø	Ô	ð $Ø�Š�sÑÔÐÝ˜tÔ/Ñ0Ô0ð 	8ð 	8‰EˆAˆrØ¥ DÔ$4Ñ 5Ô 5¸Ñ 9Ò9Ð9�C�C¸rˆEØ�NŠNÐ6¨"Ð6Ð6¨uÐ6Ð6Ñ7Ô7Ð7Ð7Ø�Š�sÑÔÐÐØ	Œð $Ø�Š�sÑÔÐÝ˜dœkÑ*Ô*ð 	7ð 	7‰DˆAˆqØ¥ D¤KÑ 0Ô 0°1Ñ 4Ò4Ð4�C�C¸"ˆEØ�NŠNÐ5 Q¤VÐ5Ð5¨eÐ5Ð5Ñ6Ô6Ð6Ð6Ø�Š�sÑÔÐØ�Š�d”kÑ"Ô"Ð"Ð"à�Š�{Ñ#Ô#Ð#Øð )Ø�xŠx˜Ñ Ô  &Ð(Ð(Ø�8Š8�GÑÔÐrG   rw  úTensorShapeProto.Dimensionc                ón   — |                       d¦  «        }|€dS t          t          | |¦  «        ¦  «        S )Nrj   ú?)Ú
WhichOneofr_   rî   )rw  Úwhichs     rE   Úprintable_dimrÇ  :  s5   € Ø�NŠN˜7Ñ#Ô#€EØ€}ØˆsÝ�w�s˜EÑ"Ô"Ñ#Ô#Ð#rG   r5  c           
     óø  — |                       d¦  «        dk    r³t          j                             | j        j        ¦  «        }| j                             d¦  «        rnt          | j        j        j	        ¦  «        rK|t          dd                     t          t          | j        j        j	        ¦  «        ¦  «        z   ¦  «        z  }n|dz  }|S |                       d¦  «        €dS d|                       d¦  «        › �S )	Nrj   rv  ro  rµ  rZ   ú, scalarr�  zUnknown type )rÅ  r   ÚDataTypeÚNamerv  rý   r½  rÖ   ro  rw  r_   r·  r¸  rÇ  ©r5  rA  s     rE   Úprintable_typerÍ  A  sÚ   € Ø‡|‚|�GÑÔ Ò-Ð-ÝÔ%×*Ò*¨1¬=Ô+BÑCÔCˆØŒ=×!Ò! 'Ñ*Ô*ð 	 Ý�1”=Ô&Ô*Ñ+Ô+ð  Ø•S˜ §¢­­]¸A¼MÔ<OÔ<SÑ)TÔ)TÑ UÔ UÑUÑVÔVÑV��à�Z‘�ØˆØ‡|‚|�GÑÔÐ$ØˆrØ2˜1Ÿ<š<¨Ñ0Ô0Ð2Ð2Ð2rG   rž   c                ó\   — d| j         › �}| j        r|› dt          | j        ¦  «        › d�}|S )Nú%r´  r¶  )rc   rÕ   rÍ  )rž   rA  s     rE   Úprintable_value_inforÐ  O  s>   € ØˆAŒFˆˆ€AØ„vð -ØÐ,Ð,•> !¤&Ñ)Ô)Ð,Ð,Ð,ˆØ€HrG   c           
     ó6  — d| j         › d�}|t          j                             | j        ¦  «        z  }| j        �Zt          | j        ¦  «        rA|t          dd                     t          t          | j        ¦  «        ¦  «        z   ¦  «        z  }n|dz  }|dz  }|S )NrÏ  r´  rµ  rZ   rÉ  r¶  )
rc   r   rÊ  rË  r±   r²   rÖ   r_   r·  r¸  rÌ  s     rE   Úprintable_tensor_protorÒ  V  sŽ   € ØˆAŒFˆˆˆ€AØ�Ô	×	"Ò	" 1¤;Ñ	/Ô	/Ñ/€AØ„vÐÝˆqŒv‰;Œ;ð 	Ø•�T˜CŸHšH¥S­¨a¬fÑ%5Ô%5Ñ6Ô6Ñ6Ñ7Ô7Ñ7ˆAˆAà�‰OˆAØˆ�H€AØ€HrG   Úprefixc                ó  — g }t          | j        ¦  «        rL|                     d                     d„ | j        D ¦   «         ¦  «        ¦  «         |                     d¦  «         g }g }| j        D ]Ï}|rzt          ||¦  «        }t          |d         t          ¦  «        st          dt          › d�¦  «        ‚| 	                    |d         ¦  «         |                     |d         ¦  «         Œ~t          |¦  «        }t          |t          ¦  «        st          dt          › d�¦  «        ‚|                     |¦  «         ŒÐd                     t          |¦  «        ¦  «        }	d                     d	„ | j        D ¦   «         ¦  «        }
| j        r$|                     | j        › d
|	› d|
› d�¦  «         n |                     | j        › d|
› d�¦  «         |r|d                     |¦  «        z   |fS |d                     |¦  «        z   S )Nrµ  c                ó   — g | ]}d |› �‘ŒS ©rÏ  r0  ©rY   rc   s     rE   ri  z"printable_node.<locals>.<listcomp>g  s   € Ð!EÐ!EÐ!E° * d * *Ð!EÐ!EÐ!ErG   r©  r   z1printed_attr_subgraphs[1] must be an instance of r¸   r   zprinted must be an instance of c                ó   — g | ]}d |› �‘ŒS rÖ  r0  r×  s     rE   ri  z"printable_node.<locals>.<listcomp>{  s   € ÐBÐBÐB¨t 
 D 
 
ÐBÐBÐBrG   r´  z](r9  ú(r»  )rÖ   rm   r¼  r·  rn   rÁ  rÊ   rJ  r¾   rl   r_   ro   rk   r^   )rq   rÓ  r¦  r¿  rX  Úprinted_attrsr\  Úprinted_attr_subgraphsÚprintedÚprinted_attributesÚprinted_inputss              rE   Úprintable_noderß  b  s&  € ð €GÝ
ˆ4Œ;ÑÔð Ø�Š�t—y’yÐ!EÐ!E¸¼Ð!EÑ!EÔ!EÑFÔFÑGÔGÐGØ�Š�sÑÔÐà!€FØ€MØ”ð *ð *ˆØð 	*Ý%8¸¸yÑ%IÔ%IÐ"ÝÐ4°QÔ7½Ñ>Ô>ð ÝØOÍÐOÐOÐOñô ð ð �MŠMÐ0°Ô3Ñ4Ô4Ð4Ø× Ò Ð!7¸Ô!:Ñ;Ô;Ð;Ð;å)¨$Ñ/Ô/ˆGÝ˜g¥sÑ+Ô+ð JÝÐ HÅ#Ð HÐ HÐ HÑIÔIÐIØ× Ò  Ñ)Ô)Ð)Ð)ØŸš¥6¨-Ñ#8Ô#8Ñ9Ô9ÐØ—Y’YÐBÐB°t´zÐBÑBÔBÑCÔC€NØ„~ð <Ø�Š˜$œ,ÐPÐPÐ);ÐPÐP¸~ÐPÐPÐPÑQÔQÐQÐQà�Š˜$œ,Ð:Ð:¨Ð:Ð:Ð:Ñ;Ô;Ð;Øð 2Ø˜Ÿš Ñ)Ô)Ñ)¨6Ð1Ð1Ø�C—H’H˜WÑ%Ô%Ñ%Ð%rG   zEDeprecated since 1.19. Consider using onnx.printer.to_text() instead.c                ó°  ‡— g }|dz   }d| j         g}d„ | j        D ¦   «         }t          | j        ¦  «        �r	|                     d¦  «         g }g }| j        D ]P}|j         |vr#|                     t          |¦  «        ¦  «         Œ.|                     t          |¦  «        ¦  «         ŒQ|rM|                     |d                     |¦  «        z   ¦  «         g }|D ]}	|                     |dz   |	z   ¦  «         Œ|                     d¦  «         |rw|                     d¦  «         |                     |d                     |¦  «        z   ¦  «         g }|D ]}	|                     |dz   |	z   ¦  «         Œ|                     d¦  «         t          |¦  «        t          |¦  «        k     r›d„ | j        D ¦   «         Šˆfd	„| j        D ¦   «         }
|                     d
¦  «         |                     |d                     |¦  «        z   ¦  «         g }|
D ]}	|                     |dz   |	z   ¦  «         Œ|                     d¦  «         |                     d¦  «         |                     |d                     |¦  «        z   ¦  «         g }| j        D ]}}t          ||d¬¦  «        }t          |d         t          ¦  «        st          dt          › d�¦  «        ‚|                     |d         ¦  «         |                     |d         ¦  «         Œ~dg}t          | j        ¦  «        r7|                     d                     d„ | j        D ¦   «         ¦  «        ¦  «         |                     |d                     |¦  «        z   ¦  «         |                     |dz   ¦  «         |D ]'}|                     dt          |¦  «        z   ¦  «         Œ(d                     |¦  «        S )a  Display a GraphProto as a string.

    .. deprecated:: 1.19
        Consider using :func:`onnx.printer.to_text` instead.

    Args:
        graph (GraphProto): the graph to display
        prefix (string): prefix of every line

    Returns:
        string
    z  r‚   c                ó   — h | ]	}|j         ’Œ
S r0  rh  )rY   r5  s     rE   r2  z"printable_graph.<locals>.<setcomp>™  s   € Ð6Ð6Ð6˜q�A”FÐ6Ð6Ð6rG   rÙ  r»  r9  z,optional inputs with matching initializers (c                ó   — h | ]	}|j         ’Œ
S r0  rh  )rY   r<  s     rE   r2  z"printable_graph.<locals>.<setcomp>µ  s   € Ð8Ð8Ð8 q˜AœFÐ8Ð8Ð8rG   c                ó@   •— g | ]}|j         ‰v¯t          |¦  «        ‘ŒS r0  )rc   rÒ  )rY   r<  Úgraph_inputss     €rE   ri  z#printable_graph.<locals>.<listcomp>¶  s8   ø€ ð ð ð àØ”6 Ð-Ð-õ ' qÑ)Ô)à-Ð-Ð-rG   zinitializers (Ú{T)r¦  r   z-contents_subgraphs[1] must be an instance of r¸   r   r:   rµ  c                ó"   — g | ]}d |j         › �‘ŒS rÖ  rh  )rY   Úouts     rE   ri  z#printable_graph.<locals>.<listcomp>Ï  s    € ÐFÐFÐF°#˜~ 3¤8˜~˜~ÐFÐFÐFrG   Ú}ú
)rc   r{   rÖ   rk   r¼  rÐ  r·  rq   rß  rÊ   rJ  r¾   rl   rm   Úprintable_graph)r‚   rÓ  r¿  ÚindentÚheaderÚinitializersÚin_strsÚin_with_init_strsÚinpÚlineÚ	init_strsrX  rq   Úcontents_subgraphsÚtailrC  rä  s                   @rE   rê  rê  …  s  ø€ ð  €GØ�d‰]€Fà�u”zÐ"€FØ6Ð6 EÔ$5Ð6Ñ6Ô6€LÝ
ˆ5Œ;ÑÔñ &Ø�Š�cÑÔÐØˆØ"$ÐØ”;ð 	Dð 	DˆCØŒx˜|Ð+Ð+Ø—’Õ3°CÑ8Ô8Ñ9Ô9Ð9Ð9à!×(Ò(Õ)=¸cÑ)BÔ)BÑCÔCÐCÐCØð 	5Ø�NŠN˜6 C§H¢H¨VÑ$4Ô$4Ñ4Ñ5Ô5Ð5ØˆFØð 5ð 5�Ø—’˜v¨™}¨tÑ3Ñ4Ô4Ð4Ð4Ø�Š�cÑÔÐàð 	Ø�MŠMÐHÑIÔIÐIØ�NŠN˜6 C§H¢H¨VÑ$4Ô$4Ñ4Ñ5Ô5Ð5ØˆFØ)ð 5ð 5�Ø—’˜v¨™}¨tÑ3Ñ4Ô4Ð4Ð4Ø�MŠM˜#ÑÔÐõ Ð Ñ!Ô!¥C¨Ñ$5Ô$5Ò5Ð5Ø8Ð8¨E¬KÐ8Ñ8Ô8ˆLðð ð ð àÔ*ðñ ô ˆIð
 �MŠMÐ*Ñ+Ô+Ð+Ø�NŠN˜6 C§H¢H¨VÑ$4Ô$4Ñ4Ñ5Ô5Ð5ØˆFØ!ð 5ð 5�Ø—’˜v¨™}¨tÑ3Ñ4Ô4Ð4Ð4Ø�MŠM˜#ÑÔÐà
‡M‚M�#ÑÔÐØ‡N‚N�6˜CŸHšH VÑ,Ô,Ñ,Ñ-Ô-Ð-Ø!€Fà”
ð -ð -ˆÝ+¨D°&ÀDÐIÑIÔIÐÝÐ,¨QÔ/µÑ6Ô6ð 	UÝÐSÍDÐSÐSÐSÑTÔTÐTØ�ŠÐ)¨!Ô,Ñ-Ô-Ð-Ø�ŠÐ(¨Ô+Ñ,Ô,Ð,Ð,àˆ:€DÝ
ˆ5Œ<ÑÔð IØ�Š�D—I’IÐFÐF¸¼ÐFÑFÔFÑGÔGÑHÔHÐHØ‡N‚N�6˜CŸHšH T™NœNÑ*Ñ+Ô+Ð+à‡N‚N�6˜C‘<Ñ Ô Ð Øð 2ð 2ˆØ�Š�t�o¨aÑ0Ô0Ñ0Ñ1Ô1Ð1Ð1Ø�9Š9�WÑÔÐrG   úgoogle.protobuf.message.Messagec                ó  — t          | t          j        j        j        ¦  «        s't          dt          j        j        j        › d�¦  «        ‚| j        j        D ]¬}|j        dk    r|  	                    |j        ¦  «         Œ(|j
        |j        k    rt|j        |j        k    r(t          | |j        ¦  «        D ]}t          |¦  «         ŒŒp|                      |j        ¦  «        r"t          t          | |j        ¦  «        ¦  «         Œ­dS )z:Empties `doc_string` field on any nested protobuf messageszproto must be an instance of r¸   rd   N)rÊ   ÚgoogleÚprotobufÚmessageÚMessager¾   Ú
DESCRIPTORÚfieldsrc   Ú
ClearFieldrÕ   ÚTYPE_MESSAGEÚlabelÚLABEL_REPEATEDrî   Ústrip_doc_stringr½  )r¦   Ú
descriptorrZ   s      rE   r  r  Ø  s  € å�e�Vœ_Ô4Ô<Ñ=Ô=ð 
ÝØN­F¬OÔ,CÔ,KÐNÐNÐNñ
ô 
ð 	
ð Ô&Ô-ð Bð Bˆ
ØŒ?˜lÒ*Ð*Ø×Ò˜Zœ_Ñ-Ô-Ð-Ð-ØŒ_ 
Ô 7Ò7Ð7ØÔ :Ô#<Ò<Ð<Ý  ¨
¬Ñ8Ô8ð (ð (�AÝ$ QÑ'Ô'Ð'Ð'ð(à—’ 
¤Ñ0Ô0ð BÝ ¥¨°
´Ñ!@Ô!@ÑAÔAÐAøðBð BrG   Ú	algorithmÚalgorithm_bindingsÚAssignmentBindingTypeÚinitializationúGraphProto | NoneÚinitialization_bindingsúAssignmentBindingType | Noner   c                óN  — t          ¦   «         }|j                             | ¦  «         |D ],\  }}|j                             ¦   «         }||_        ||_        Œ-|r|j                             |¦  «         |r/|D ],\  }}|j                             ¦   «         }||_        ||_        Œ-|S rX   )	r   r  r–   Úupdate_bindingr˜   rT   rj   r  Úinitialization_binding)r  r  r  r  Útraining_infor�   rž   Úbindings           rE   Úmake_training_infor  é  sÁ   € õ &Ñ'Ô'€MØÔ×$Ò$ YÑ/Ô/Ð/Ø"ð ð ‰ˆˆ1ØÔ.×2Ò2Ñ4Ô4ˆØˆŒØˆŒˆàð >ØÔ$×-Ò-¨nÑ=Ô=Ð=Øð Ø+ð 	ð 	‰DˆAˆqØ#Ô:×>Ò>Ñ@Ô@ˆGØˆGŒKØˆGŒMˆMàÐrG   Útensor_dtypeúnp.dtypec                ó0   — t           j        |          j        S )zÉConvert a TensorProto's data_type to corresponding numpy dtype. It can be used while making tensor.

    Args:
        tensor_dtype: TensorProto's data_type

    Returns:
        numpy's data_type
    )r   ÚTENSOR_TYPE_MAPrð   ©r  s    rE   r¿   r¿     s   € õ Ô# LÔ1Ô:Ð:rG   c                ó0   — t           j        |          j        S )z³Convert a TensorProto's data_type to corresponding data_type for storage.

    Args:
        tensor_dtype: TensorProto's data_type

    Returns:
        data_type for storage
    )r   r  Ústorage_dtyper  s    rE   Ú$tensor_dtype_to_storage_tensor_dtyper    s   € õ Ô# LÔ1Ô?Ð?rG   c                ó0   — t           j        |          j        S )z˜Get the name of given TensorProto's data_type.

    Args:
        tensor_dtype: TensorProto's data_type

    Returns:
        the name of data_type
    )r   r  rc   r  s    rE   Útensor_dtype_to_stringr    s   € õ Ô# LÔ1Ô6Ð6rG   c                óž  — t          t          j        ¦  «        dt          t          j        ¦  «        dt          t          j        ¦  «        dt          t          j        ¦  «        dt          t          j        ¦  «        dt          t          j        ¦  «        dt          t          j        ¦  «        di}|t          j
        |          j                 S )zÎConvert a TensorProto's data_type to corresponding field name for storage. It can be used while making tensors.

    Args:
        tensor_dtype: TensorProto's data_type

    Returns:
        field name
    Ú
float_dataÚ
int32_dataÚ
int64_dataÚdouble_dataÚuint64_dataÚstring_data)rL   r   r@  r  r  ÚDOUBLEr  r  r½   r   r  r  )r  Ústorage_tensor_type_to_fields     rE   rí   rí   &  s™   € õ 	�KÔÑÔ Ý�KÔÑÔ Ý�KÔÑÔ Ý�KÔÑÔ Ý�KÔÑÔ Ý�KÔÑÔ Ý�KÔÑÔ ð$Ð ð (ÝÔ  Ô.Ô<ôð rG   rð   úTensorProto.DataTypec                ó  — d„ t           j                             ¦   «         D ¦   «         }| |v rt          j        d||          ¦  «        S t          j        | t
          j        ¦  «        rt          j	        S t          d| ›d�¦  «        ‚)zÑConvert a numpy's dtype to corresponding tensor type. It can be used while converting numpy arrays to tensors.

    Args:
        np_dtype: numpy's data_type

    Returns:
        TensorsProto's data_type
    c                ó$   — i | ]\  }}|j         |“ŒS r0  )rð   )rY   r�   rž   s      rE   ú
<dictcomp>z,np_dtype_to_tensor_dtype.<locals>.<dictcomp>H  s-   € ð !ð !ð !Ù˜!˜QˆŒ
�Að!ð !ð !rG   r#  zUnable to convert type z into TensorProto element type.)r   r  rp   ÚtypingÚcastrË   Ú
issubdtypeÚstr_r   r½   rS   )rð   Ú_np_dtype_to_tensor_dtypes     rE   Únp_dtype_to_tensor_dtyper,  >  s–   € ð!ð !Ý"*Ô":×"@Ò"@Ñ"BÔ"Bð!ñ !ô !Ðð Ð,Ð,Ð,ÝŒ{Ð1Ð3LÈXÔ3VÑWÔWÐWÝ	„}�X�rœwÑ'Ô'ð "ÝÔ!Ð!å
ØM (ÐMÐMÐMñô ð rG   úKeysView[int]c                 ó>   — t           j                             ¦   «         S )zcGet all tensor types from TensorProto.

    Returns:
        all tensor types from TensorProto
    )r   r  r  r0  rG   rE   Úget_all_tensor_dtypesr/  U  s   € õ Ô#×(Ò(Ñ*Ô*Ð*rG   c                ó   — i | ]\  }}||“Œ	S r0  r0  )rY   rž   r�   s      rE   r&  r&  ^  s+   € ð *ð *ð *ÙˆQ�€A€qð*ð *ð *rG   zdict[int, str]Ú_ATTRIBUTE_TYPE_TO_STRc                ó¤   — | t           j                             ¦   «         v rt          |          S t           j                             ¦   «         d         S )z Convert AttributeProto type to string.

    Args:
        attr_type: AttributeProto type.

    Returns:
        String representing the supplied attr_type.
    r   )r   ÚAttributeTyperö   r1  r  )r,  s    rE   r[  r[  c  sC   € ð •NÔ0×7Ò7Ñ9Ô9Ð9Ð9Ý% iÔ0Ð0ÝÔ'×,Ò,Ñ.Ô.¨qÔ1Ð1rG   )r9   r7   r:   r;   )F)rH   rI   rJ   rK   r:   rL   )NNNN)r^   r_   r`   ra   rb   ra   rc   rO   rd   rO   rN   rO   re   rO   rf   r   r:   r   )rN   r_   rP   rL   r:   r   )rx   ry   rc   r_   r`   rz   rb   rz   r{   r|   rd   rO   r}   r~   r   r€   r:   r   )NNNNN)rN   r_   r‡   r_   r`   ra   rb   ra   rx   ry   rˆ   rI   r‰   rŠ   r‹   rŒ   rd   rO   re   rO   r}   r~   r:   r   )r‚   r   rf   r   r:   r   )r¦   r§   r¨   r©   r:   rª   )r›   r   r¨   r©   r:   rª   )rc   r_   r±   rL   r²   r³   r´   rµ   r¶   rK   r:   r   )rö   r   r÷   r   r²   r³   r:   rø   )rc   r_   rý   rþ   rö   rÿ   r:   r   )
rc   r_   r  rL   r  r  rö   r   r:   r	   )rc   r_   rý   r  rj   r  r:   r
   )rj   r(  r:   rÔ   )NN)
rT   r_   rj   r   rd   rO   r,  r-  r:   r   rX   )
rc   r_   r,  r`  rd   rO   r_  rO   r:   r   )r\  r   r:   r   )rq   r   re  r_   r:   r   )rc   r_   r:   r   )rý   rL   ro  rp  rq  rr  r:   r   )r�  N)rc   r_   rý   rL   ro  rp  rd   r_   rq  rr  r:   r   )r‹  r   r:   r   )r  rL   r”  r   r:   r   )r�  )rc   r_   r|  r   rd   r_   r:   r   )rA  r(  r:   r_   )rc   r_   rý   rL   ro  rp  rd   r_   r¢  rr  r:   r   )r\  r   r¦  rK   r:   r§  )rw  rÂ  r:   r_   )r5  r   r:   r_   )rž   r   r:   r_   )r5  r   r:   r_   )r�  F)rq   r   rÓ  r_   r¦  rK   r:   r§  )r‚   r   rÓ  r_   r:   r_   )r¦   rõ  r:   rª   )
r  r   r  r  r  r  r  r	  r:   r   )r  rL   r:   r  )r  rL   r:   rL   )r  rL   r:   r_   )rð   r  r:   r#  )r:   r-  )r,  rL   r:   r_   )iÚ
__future__r   Úcollections.abcrG  Ú	functoolsrÈ   r:  r'  r   r   r   Úgoogle.protobuf.messager÷  ÚnumpyrË   Útyping_extensionsr”   r   r   Úonnx.onnx_data_pbr	   r
   r   Úonnx.onnx_pbr   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú#google.protobuf.internal.containersr   Útupler_   rL   ÚVersionRowTyperJ  r7   r  r8   Ú__annotations__Údictr;   rF   rR   r]   rr   rw   rƒ   r†   r‘   rŸ   r¥   r®   r°   rõ   rü   r  r  r'  rÛ   ri   rb  rd  rk  rn  r€  rƒ  rˆ  rŠ  r�  r“  r—  r™  r¡  r¥  rÁ  rÇ  rÍ  rÐ  rÒ  rß  Ú
deprecatedrê  r  r  r¿   r  r  Ú	lru_cacherí   r,  r/  r3  rp   r1  r[  r0  rG   rE   ú<module>rC     s‹  ðð #Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð TØ<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<àSÐSÐSÐSÐSÐSà�s˜C  cÐ)Ô*¨U°3¸¸SÀ#ÀsÐ3JÔ-KÑK€Ø˜Ô'Ð Ø˜U 3¨ 8œ_Ô-Ð ð$#ð $#ð $#€ð $ð $ð $ñ $ðL �e˜C ˜H”o sÐ*Ô+€ðð ð ð ð& 6Ð5°mÑDÔDÐ ð GLðð ð ð ð ð@ Ø!ØØð.ð .ð .ð .ð .ðbð ð ð ð. 15Ø!Ø26ØBFð(ð (ð (ð (ð (ðVð ð ð ð, (,Ø8<Ø!ØØ26ð!ð !ð !ð !ð !ðH ð  ð  ð  ðJ'ð 'ð 'ð 'ðð ð ð ð$*ð *ð *ð *ð ðAð Að Að Að AðHð ð ð ð(ð ð ð ð>ð ð ð ð>ð ð ð ð>ð ð ð ð "Ø ð	[ð [ð [ð [ð [ðB "ðð
 !%ðð ð ð ð ð ðD!<ð !<ð !<ð !<ðH,ð ,ð ,ð ,ðð ð ð ð *.ð*ð *ð *ð *ð *ðb Ø)-ðð ð ð ð ð* *.ð*ð *ð *ð *ð *ðb Ø)-ðð ð ð ð ð,ð ð ð ðð ð ð ðð ð ð ð ðð ð ð ð ð	Að 	Að 	Að 	Að  Ø.2ðð ð ð ð ð* -2ðMð Mð Mð Mð Mð`$ð $ð $ð $ð3ð 3ð 3ð 3ðð ð ð ð	ð 	ð 	ð 	ð :?ð &ð  &ð  &ð  &ð  &ðF ÐÔØKñô ðMð Mð Mð Mñô ðMð`Bð Bð Bð Bð"ð ð ð ð2	;ð 	;ð 	;ð 	;ð	@ð 	@ð 	@ð 	@ð	7ð 	7ð 	7ð 	7ð €Ô�TÑÔðð ð ñ Ôðð. €Ô�TÑÔðð ð ñ Ôðð,+ð +ð +ð +ð*ð *Ø#Ô1×7Ò7Ñ9Ô9ð*ñ *ô *Ð ð ð ð ñ ð
2ð 2ð 2ð 2ð 2ð 2rG   