Ë
    T^(h>à  ã                   ó  — d 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m	Z	 ddl
mZmZmZ ddl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 dd
lmZmZmZmZ ddl m!Z! ddl"m#Z#  e!jH                  e%«      Z&dZ'dZ( G d„ de	jR                  «      Z*d=d„Z+ G d„ de	jR                  «      Z, G d„ de	jR                  «      Z- G d„ de	jR                  «      Z. G d„ de	jR                  «      Z/ G d„ de	jR                  «      Z0 G d„ de	jR                  «      Z1 G d„ d e	jR                  «      Z2 G d!„ d"e	jR                  «      Z3 G d#„ d$e	jR                  «      Z4d%e4iZ5 G d&„ d'e	jR                  «      Z6 G d(„ d)e	jR                  «      Z7 G d*„ d+e	jR                  «      Z8 G d,„ d-e«      Z9d.Z:d/Z; ed0e:«       G d1„ d2e9«      «       Z< ed3e:«       G d4„ d5e9«      «       Z= ed6e:«       G d7„ d8e9«      «       Z> ed9e:«       G d:„ d;e9«      «       Z?g d<¢Z@y)>zPyTorch MarkupLM model.é    N)ÚOptionalÚTupleÚUnion)Únn)ÚBCEWithLogitsLossÚCrossEntropyLossÚMSELossé   )ÚACT2FN)Úadd_start_docstringsÚ%add_start_docstrings_to_model_forwardÚreplace_return_docstrings)Ú)BaseModelOutputWithPastAndCrossAttentionsÚ,BaseModelOutputWithPoolingAndCrossAttentionsÚMaskedLMOutputÚQuestionAnsweringModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚPreTrainedModelÚapply_chunking_to_forwardÚ find_pruneable_heads_and_indicesÚprune_linear_layer)Úloggingé   )ÚMarkupLMConfigzmicrosoft/markuplm-baser   c                   ó*   ‡ — e Zd ZdZˆ fd„Zdd„Zˆ xZS )ÚXPathEmbeddingszˆConstruct the embeddings from xpath tags and subscripts.

    We drop tree-id in this version, as its info can be covered by xpath.
    c           	      óÀ  •— t         t        | �  «        |j                  | _        t	        j
                  |j                  | j                  z  |j                  «      | _        t	        j                  |j                  «      | _        t	        j                  «       | _        t	        j
                  |j                  | j                  z  d|j                  z  «      | _        t	        j
                  d|j                  z  |j                  «      | _        t	        j                   t#        | j                  «      D �cg c],  }t	        j$                  |j&                  |j                  «      ‘Œ. c}«      | _        t	        j                   t#        | j                  «      D �cg c],  }t	        j$                  |j*                  |j                  «      ‘Œ. c}«      | _        y c c}w c c}w )Né   )Úsuperr   Ú__init__Ú	max_depthr   ÚLinearÚxpath_unit_hidden_sizeÚhidden_sizeÚxpath_unitseq2_embeddingsÚDropoutÚhidden_dropout_probÚdropoutÚReLUÚ
activationÚxpath_unitseq2_innerÚ	inner2embÚ
ModuleListÚrangeÚ	EmbeddingÚmax_xpath_tag_unit_embeddingsÚxpath_tag_sub_embeddingsÚmax_xpath_subs_unit_embeddingsÚxpath_subs_sub_embeddings©ÚselfÚconfigÚ_Ú	__class__s      €úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/transformers/models/markuplm/modeling_markuplm.pyr!   zXPathEmbeddings.__init__>   s\  ø€ ÜŒo˜tÑ-Ô/Ø×)Ñ)ˆŒä)+¯©°6×3PÑ3PÐSW×SaÑSaÑ3aÐci×cuÑcuÓ)vˆÔ&ä—z‘z &×"<Ñ"<Ó=ˆŒäŸ'™'›)ˆŒÜ$&§I¡I¨f×.KÑ.KÈdÏnÉnÑ.\Ð^_Ðbh×btÑbtÑ^tÓ$uˆÔ!ÜŸ™ 1 v×'9Ñ'9Ñ#9¸6×;MÑ;MÓNˆŒä(*¯©ô ˜tŸ~™~Ó.öàô —‘˜V×AÑAÀ6×C`ÑC`Õaòó)
ˆÔ%ô *,¯©ô ˜tŸ~™~Ó.öàô —‘˜V×BÑBÀF×DaÑDaÕbòó*
ˆÕ&ùòùòs   Ä51GÆ1Gc           	      óÜ  — g }g }t        | j                  «      D ]^  }|j                   | j                  |   |d d …d d …|f   «      «       |j                   | j                  |   |d d …d d …|f   «      «       Œ` t        j                  |d¬«      }t        j                  |d¬«      }||z   }| j                  | j                  | j                  | j                  |«      «      «      «      }|S )Néÿÿÿÿ©Údim)r/   r"   Úappendr2   r4   ÚtorchÚcatr-   r)   r+   r,   )r6   Úxpath_tags_seqÚxpath_subs_seqÚxpath_tags_embeddingsÚxpath_subs_embeddingsÚiÚxpath_embeddingss          r:   ÚforwardzXPathEmbeddings.forwardX   sí   € Ø "ÐØ "Ðä�t—~‘~Ó&ò 	eˆAØ!×(Ñ(Ð)I¨×)FÑ)FÀqÑ)IÈ.ÒYZÒ\]Ð_`ÐY`ÑJaÓ)bÔcØ!×(Ñ(Ð)J¨×)GÑ)GÈÑ)JÈ>ÒZ[Ò]^Ð`aÐZaÑKbÓ)cÕdð	eô !&§	¡	Ð*?ÀRÔ HÐÜ %§	¡	Ð*?ÀRÔ HÐà0Ð3HÑHÐàŸ>™>¨$¯,©,°t·±Àt×G`ÑG`ÐaqÓGrÓ7sÓ*tÓuÐàÐó    )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   rH   Ú__classcell__©r9   s   @r:   r   r   8   s   ø„ ñô

÷4 rI   r   c                 ó¾   — | j                  |«      j                  «       }t        j                  |d¬«      j	                  |«      |z   |z  }|j                  «       |z   S )a  
    Replace non-padding symbols with their position numbers. Position numbers begin at padding_idx+1. Padding symbols
    are ignored. This is modified from fairseq's `utils.make_positions`.

    Args:
        x: torch.Tensor x:

    Returns: torch.Tensor
    r   r=   )ÚneÚintr@   ÚcumsumÚtype_asÚlong)Ú	input_idsÚpadding_idxÚpast_key_values_lengthÚmaskÚincremental_indicess        r:   Ú"create_position_ids_from_input_idsr[   k   sW   € ð �<‰<˜Ó$×(Ñ(Ó*€DÜ Ÿ<™<¨°!Ô4×<Ñ<¸TÓBÐE[Ñ[Ð_cÑcÐØ×#Ñ#Ó%¨Ñ3Ð3rI   c                   ó>   ‡ — e Zd ZdZˆ fd„Zd„ Z	 	 	 	 	 	 	 dd„Zˆ xZS )ÚMarkupLMEmbeddingszGConstruct the embeddings from word, position and token_type embeddings.c                 ól  •— t         t        | �  «        || _        t	        j
                  |j                  |j                  |j                  ¬«      | _	        t	        j
                  |j                  |j                  «      | _        |j                  | _        t        |«      | _        t	        j
                  |j                  |j                  «      | _        t	        j"                  |j                  |j$                  ¬«      | _        t	        j&                  |j(                  «      | _        | j-                  dt/        j0                  |j                  «      j3                  d«      d¬«       |j                  | _        t	        j
                  |j                  |j                  | j4                  ¬«      | _        y )N)rW   ©ÚepsÚposition_ids)r   r<   F)Ú
persistent)r    r]   r!   r7   r   r0   Ú
vocab_sizer%   Úpad_token_idÚword_embeddingsÚmax_position_embeddingsÚposition_embeddingsr"   r   rG   Útype_vocab_sizeÚtoken_type_embeddingsÚ	LayerNormÚlayer_norm_epsr'   r(   r)   Úregister_bufferr@   ÚarangeÚexpandrW   ©r6   r7   r9   s     €r:   r!   zMarkupLMEmbeddings.__init__~   s=  ø€ ÜÔ  $Ñ0Ô2ØˆŒÜ!Ÿ|™|¨F×,=Ñ,=¸v×?QÑ?QÐ_e×_rÑ_rÔsˆÔÜ#%§<¡<°×0NÑ0NÐPV×PbÑPbÓ#cˆÔ à×)Ñ)ˆŒä /°Ó 7ˆÔä%'§\¡\°&×2HÑ2HÈ&×J\ÑJ\Ó%]ˆÔ"äŸ™ f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z‘z &×"<Ñ"<Ó=ˆŒà×ÑØœEŸL™L¨×)GÑ)GÓH×OÑOÐPWÓXÐejð 	ô 	
ð "×.Ñ.ˆÔÜ#%§<¡<Ø×*Ñ*¨F×,>Ñ,>ÈD×L\ÑL\ô$
ˆÕ rI   c                 ó  — |j                  «       dd }|d   }t        j                  | j                  dz   || j                  z   dz   t        j                  |j
                  ¬«      }|j                  d«      j                  |«      S )z×
        We are provided embeddings directly. We cannot infer which are padded so just generate sequential position ids.

        Args:
            inputs_embeds: torch.Tensor

        Returns: torch.Tensor
        Nr<   r   ©ÚdtypeÚdevicer   )Úsizer@   rm   rW   rU   rs   Ú	unsqueezern   )r6   Úinputs_embedsÚinput_shapeÚsequence_lengthra   s        r:   Ú&create_position_ids_from_inputs_embedsz9MarkupLMEmbeddings.create_position_ids_from_inputs_embeds—   s€   € ð $×(Ñ(Ó*¨3¨BÐ/ˆØ% a™.ˆä—|‘|Ø×Ñ˜qÑ  /°D×4DÑ4DÑ"DÀqÑ"HÔPU×PZÑPZÐcp×cwÑcwô
ˆð ×%Ñ% aÓ(×/Ñ/°Ó<Ð<rI   c                 ó˜  — |�|j                  «       }n|j                  «       d d }|�|j                  n|j                  }	|€+|�t        || j                  |«      }n| j	                  |«      }|€&t        j                  |t
        j                  |	¬«      }|€| j                  |«      }|€]| j                  j                  t        j                  t        t        |«      | j                  gz   «      t
        j                  |	¬«      z  }|€]| j                  j                  t        j                  t        t        |«      | j                  gz   «      t
        j                  |	¬«      z  }|}
| j!                  |«      }| j#                  |«      }| j%                  ||«      }|
|z   |z   |z   }| j'                  |«      }| j)                  |«      }|S )Nr<   rq   )rt   rs   r[   rW   ry   r@   ÚzerosrU   re   r7   Ú
tag_pad_idÚonesÚtupleÚlistr"   Úsubs_pad_idrg   ri   rG   rj   r)   )r6   rV   rB   rC   Útoken_type_idsra   rv   rX   rw   rs   Úwords_embeddingsrg   ri   rG   Ú
embeddingss                  r:   rH   zMarkupLMEmbeddings.forward¨   s®  € ð Ð Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà%.Ð%:�×!Ò!À×@TÑ@TˆàÐØÐ$äAÀ)ÈT×M]ÑM]Ð_uÓv‘à#×JÑJÈ=ÓY�àÐ!Ü"Ÿ[™[¨¼E¿J¹JÈvÔVˆNàÐ Ø ×0Ñ0°Ó;ˆMð Ð!Ø!Ÿ[™[×3Ñ3´e·j±jÜ”d˜;Ó'¨4¯>©>Ð*:Ñ:Ó;Ä5Ç:Á:ÐV\ô7ñ ˆNð Ð!Ø!Ÿ[™[×4Ñ4´u·z±zÜ”d˜;Ó'¨4¯>©>Ð*:Ñ:Ó;Ä5Ç:Á:ÐV\ô8ñ ˆNð )ÐØ"×6Ñ6°|ÓDÐà $× :Ñ :¸>Ó JÐà×0Ñ0°ÀÓPÐØ%Ð(;Ñ;Ð>SÑSÐVfÑfˆ
à—^‘^ JÓ/ˆ
Ø—\‘\ *Ó-ˆ
ØÐrI   )NNNNNNr   )rJ   rK   rL   rM   r!   ry   rH   rN   rO   s   @r:   r]   r]   {   s,   ø„ ÙQô
ò2=ð& ØØØØØØ ÷2rI   r]   c                   ón   ‡ — e Zd Zˆ fd„Zdej
                  dej
                  dej
                  fd„Zˆ xZS )ÚMarkupLMSelfOutputc                 ó(  •— t         ‰| �  «        t        j                  |j                  |j                  «      | _        t        j                  |j                  |j                  ¬«      | _        t        j                  |j                  «      | _
        y ©Nr_   )r    r!   r   r#   r%   Údenserj   rk   r'   r(   r)   ro   s     €r:   r!   zMarkupLMSelfOutput.__init__ß   s`   ø€ Ü‰ÑÔÜ—Y‘Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ™ f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z‘z &×"<Ñ"<Ó=ˆ�rI   Úhidden_statesÚinput_tensorÚreturnc                 ór   — | j                  |«      }| j                  |«      }| j                  ||z   «      }|S ©N©rˆ   r)   rj   ©r6   r‰   rŠ   s      r:   rH   zMarkupLMSelfOutput.forwardå   ó7   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }°|Ñ'CÓDˆØÐrI   ©rJ   rK   rL   r!   r@   ÚTensorrH   rN   rO   s   @r:   r…   r…   Þ   ó1   ø„ ô>ð U§\¡\ð ÀÇÁð ÐRW×R^ÑR^÷ rI   r…   c                   óV   ‡ — e Zd Zˆ fd„Zdej
                  dej
                  fd„Zˆ xZS )ÚMarkupLMIntermediatec                 ó  •— t         ‰| �  «        t        j                  |j                  |j
                  «      | _        t        |j                  t        «      rt        |j                     | _        y |j                  | _        y r�   )r    r!   r   r#   r%   Úintermediate_sizerˆ   Ú
isinstanceÚ
hidden_actÚstrr   Úintermediate_act_fnro   s     €r:   r!   zMarkupLMIntermediate.__init__î   s]   ø€ Ü‰ÑÔÜ—Y‘Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬Ô-Ü'-¨f×.?Ñ.?Ñ'@ˆDÕ$à'-×'8Ñ'8ˆDÕ$rI   r‰   r‹   c                 óJ   — | j                  |«      }| j                  |«      }|S r�   )rˆ   r›   ©r6   r‰   s     r:   rH   zMarkupLMIntermediate.forwardö   s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐrI   r‘   rO   s   @r:   r•   r•   í   s#   ø„ ô9ð U§\¡\ð °e·l±l÷ rI   r•   c                   ón   ‡ — e Zd Zˆ fd„Zdej
                  dej
                  dej
                  fd„Zˆ xZS )ÚMarkupLMOutputc                 ó(  •— t         ‰| �  «        t        j                  |j                  |j
                  «      | _        t        j                  |j
                  |j                  ¬«      | _        t        j                  |j                  «      | _        y r‡   )r    r!   r   r#   r—   r%   rˆ   rj   rk   r'   r(   r)   ro   s     €r:   r!   zMarkupLMOutput.__init__þ   s`   ø€ Ü‰ÑÔÜ—Y‘Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
ÜŸ™ f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z‘z &×"<Ñ"<Ó=ˆ�rI   r‰   rŠ   r‹   c                 ór   — | j                  |«      }| j                  |«      }| j                  ||z   «      }|S r�   rŽ   r�   s      r:   rH   zMarkupLMOutput.forward  r�   rI   r‘   rO   s   @r:   rŸ   rŸ   ý   r“   rI   rŸ   c                   óV   ‡ — e Zd Zˆ fd„Zdej
                  dej
                  fd„Zˆ xZS )ÚMarkupLMPoolerc                 ó²   •— t         ‰| �  «        t        j                  |j                  |j                  «      | _        t        j                  «       | _        y r�   )r    r!   r   r#   r%   rˆ   ÚTanhr+   ro   s     €r:   r!   zMarkupLMPooler.__init__  s9   ø€ Ü‰ÑÔÜ—Y‘Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ'™'›)ˆ�rI   r‰   r‹   c                 ó\   — |d d …df   }| j                  |«      }| j                  |«      }|S )Nr   )rˆ   r+   )r6   r‰   Úfirst_token_tensorÚpooled_outputs       r:   rH   zMarkupLMPooler.forward  s6   € ð +ª1¨a¨4Ñ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐrI   r‘   rO   s   @r:   r£   r£     s#   ø„ ô$ð
 U§\¡\ð °e·l±l÷ rI   r£   c                   óV   ‡ — e Zd Zˆ fd„Zdej
                  dej
                  fd„Zˆ xZS )ÚMarkupLMPredictionHeadTransformc                 óh  •— t         ‰| �  «        t        j                  |j                  |j                  «      | _        t        |j                  t        «      rt        |j                     | _
        n|j                  | _
        t        j                  |j                  |j                  ¬«      | _        y r‡   )r    r!   r   r#   r%   rˆ   r˜   r™   rš   r   Útransform_act_fnrj   rk   ro   s     €r:   r!   z(MarkupLMPredictionHeadTransform.__init__  s{   ø€ Ü‰ÑÔÜ—Y‘Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
Ü�f×'Ñ'¬Ô-Ü$*¨6×+<Ñ+<Ñ$=ˆDÕ!à$*×$5Ñ$5ˆDÔ!ÜŸ™ f×&8Ñ&8¸f×>SÑ>SÔTˆ�rI   r‰   r‹   c                 ól   — | j                  |«      }| j                  |«      }| j                  |«      }|S r�   )rˆ   r¬   rj   r�   s     r:   rH   z'MarkupLMPredictionHeadTransform.forward&  s4   € ØŸ
™
 =Ó1ˆØ×-Ñ-¨mÓ<ˆØŸ™ }Ó5ˆØÐrI   r‘   rO   s   @r:   rª   rª     s$   ø„ ôUð U§\¡\ð °e·l±l÷ rI   rª   c                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚMarkupLMLMPredictionHeadc                 óH  •— t         ‰| �  «        t        |«      | _        t	        j
                  |j                  |j                  d¬«      | _        t	        j                  t        j                  |j                  «      «      | _        | j                  | j                  _        y )NF)Úbias)r    r!   rª   Ú	transformr   r#   r%   rc   ÚdecoderÚ	Parameterr@   r{   r±   ro   s     €r:   r!   z!MarkupLMLMPredictionHead.__init__/  sm   ø€ Ü‰ÑÔÜ8¸Ó@ˆŒô —y‘y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒä—L‘L¤§¡¨V×->Ñ->Ó!?Ó@ˆŒ	ð !ŸI™Iˆ�‰ÕrI   c                 ó:   — | j                   | j                  _         y r�   )r±   r³   ©r6   s    r:   Ú_tie_weightsz%MarkupLMLMPredictionHead._tie_weights<  s   € Ø ŸI™Iˆ�‰ÕrI   c                 óJ   — | j                  |«      }| j                  |«      }|S r�   )r²   r³   r�   s     r:   rH   z MarkupLMLMPredictionHead.forward?  s$   € ØŸ™ }Ó5ˆØŸ™ ]Ó3ˆØÐrI   )rJ   rK   rL   r!   r·   rH   rN   rO   s   @r:   r¯   r¯   .  s   ø„ ô&ò&örI   r¯   c                   óV   ‡ — e Zd Zˆ fd„Zdej
                  dej
                  fd„Zˆ xZS )ÚMarkupLMOnlyMLMHeadc                 óB   •— t         ‰| �  «        t        |«      | _        y r�   )r    r!   r¯   Úpredictionsro   s     €r:   r!   zMarkupLMOnlyMLMHead.__init__G  s   ø€ Ü‰ÑÔÜ3°FÓ;ˆÕrI   Úsequence_outputr‹   c                 ó(   — | j                  |«      }|S r�   )r¼   )r6   r½   Úprediction_scoress      r:   rH   zMarkupLMOnlyMLMHead.forwardK  s   € Ø ×,Ñ,¨_Ó=ÐØ Ð rI   r‘   rO   s   @r:   rº   rº   F  s#   ø„ ô<ð! u§|¡|ð !¸¿¹÷ !rI   rº   c                   óP  ‡ — e Zd Zdˆ fd„	Zdej
                  dej
                  fd„Z	 	 	 	 	 	 ddej
                  deej                     deej                     deej                     d	eej                     d
ee	e	ej                           dee
   de	ej
                     fd„Zˆ xZS )ÚMarkupLMSelfAttentionc                 óâ  •— t         ‰| �  «        |j                  |j                  z  dk7  r2t	        |d«      s&t        d|j                  › d|j                  › d�«      ‚|j                  | _        t        |j                  |j                  z  «      | _        | j                  | j                  z  | _        t        j                  |j                  | j                  «      | _        t        j                  |j                  | j                  «      | _        t        j                  |j                  | j                  «      | _        t        j                  |j                  «      | _        |xs t#        |dd«      | _        | j$                  dk(  s| j$                  d	k(  rF|j&                  | _        t        j(                  d
|j&                  z  dz
  | j                  «      | _        |j,                  | _        y )Nr   Úembedding_sizezThe hidden size (z6) is not a multiple of the number of attention heads (ú)Úposition_embedding_typeÚabsoluteÚrelative_keyÚrelative_key_queryé   r   )r    r!   r%   Únum_attention_headsÚhasattrÚ
ValueErrorrR   Úattention_head_sizeÚall_head_sizer   r#   ÚqueryÚkeyÚvaluer'   Úattention_probs_dropout_probr)   ÚgetattrrÅ   rf   r0   Údistance_embeddingÚ
is_decoder©r6   r7   rÅ   r9   s      €r:   r!   zMarkupLMSelfAttention.__init__R  s�  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Ñ:¸aÒ?ÌÐPVÐXhÔHiÜØ# F×$6Ñ$6Ð#7ð 8Ø ×4Ñ4Ð5°Qð8óð ð
 $*×#=Ñ#=ˆÔ Ü#& v×'9Ñ'9¸F×<VÑ<VÑ'VÓ#WˆÔ Ø!×5Ñ5¸×8PÑ8PÑPˆÔä—Y‘Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
Ü—9‘9˜V×/Ñ/°×1CÑ1CÓDˆŒÜ—Y‘Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
ä—z‘z &×"EÑ"EÓFˆŒØ'>ò (
Ä'ØÐ-¨zóC
ˆÔ$ð ×'Ñ'¨>Ò9¸T×=YÑ=YÐ]qÒ=qØ+1×+IÑ+IˆDÔ(Ü&(§l¡l°1°v×7UÑ7UÑ3UÐXYÑ3YÐ[_×[sÑ[sÓ&tˆDÔ#à ×+Ñ+ˆ�rI   Úxr‹   c                 ó¤   — |j                  «       d d | j                  | j                  fz   }|j                  |«      }|j	                  dddd«      S )Nr<   r   rÉ   r   r
   )rt   rÊ   rÍ   ÚviewÚpermute)r6   r×   Únew_x_shapes      r:   Útranspose_for_scoresz*MarkupLMSelfAttention.transpose_for_scoresl  sL   € Ø—f‘f“h˜s �m t×'?Ñ'?À×AYÑAYÐ&ZÑZˆØ�F‰F�;ÓˆØ�y‰y˜˜A˜q !Ó$Ð$rI   r‰   Úattention_maskÚ	head_maskÚencoder_hidden_statesÚencoder_attention_maskÚpast_key_valueÚoutput_attentionsc                 ó$  — | j                  |«      }|d u}	|	r|�|d   }
|d   }|}�n |	rC| j                  | j                  |«      «      }
| j                  | j                  |«      «      }|}n»|�y| j                  | j                  |«      «      }
| j                  | j                  |«      «      }t	        j
                  |d   |
gd¬«      }
t	        j
                  |d   |gd¬«      }n@| j                  | j                  |«      «      }
| j                  | j                  |«      «      }| j                  |«      }|d u}| j                  r|
|f}t	        j                  ||
j                  dd«      «      }| j                  dk(  s| j                  dk(  �r—|j                  d   |
j                  d   }}|rDt	        j                  |dz
  t        j                  |j                  ¬	«      j                  dd«      }n@t	        j                  |t        j                  |j                  ¬	«      j                  dd«      }t	        j                  |t        j                  |j                  ¬	«      j                  dd«      }||z
  }| j!                  || j"                  z   dz
  «      }|j%                  |j&                  ¬
«      }| j                  dk(  rt	        j(                  d||«      }||z   }nE| j                  dk(  r6t	        j(                  d||«      }t	        j(                  d|
|«      }||z   |z   }|t+        j,                  | j.                  «      z  }|�||z   }t0        j2                  j5                  |d¬«      }| j7                  |«      }|�||z  }t	        j                  ||«      }|j9                  dddd«      j;                  «       }|j=                  «       d d | j>                  fz   }|j                  |«      }|r||fn|f}| j                  r||fz   }|S )Nr   r   rÉ   r=   r<   éþÿÿÿrÇ   rÈ   rq   ©rr   zbhld,lrd->bhlrzbhrd,lrd->bhlrr
   ) rÏ   rÜ   rÐ   rÑ   r@   rA   rÕ   ÚmatmulÚ	transposerÅ   ÚshapeÚtensorrU   rs   rÙ   rm   rÔ   rf   Útorr   ÚeinsumÚmathÚsqrtrÍ   r   Ú
functionalÚsoftmaxr)   rÚ   Ú
contiguousrt   rÎ   )r6   r‰   rÝ   rÞ   rß   rà   rá   râ   Úmixed_query_layerÚis_cross_attentionÚ	key_layerÚvalue_layerÚquery_layerÚ	use_cacheÚattention_scoresÚquery_lengthÚ
key_lengthÚposition_ids_lÚposition_ids_rÚdistanceÚpositional_embeddingÚrelative_position_scoresÚrelative_position_scores_queryÚrelative_position_scores_keyÚattention_probsÚcontext_layerÚnew_context_layer_shapeÚoutputss                               r:   rH   zMarkupLMSelfAttention.forwardq  sç  € ð !ŸJ™J }Ó5Ðð
 3¸$Ð>Ðá .Ð"<à& qÑ)ˆIØ(¨Ñ+ˆKØ3ŠNÙØ×1Ñ1°$·(±(Ð;PÓ2QÓRˆIØ×3Ñ3°D·J±JÐ?TÓ4UÓVˆKØ3‰NØÐ'Ø×1Ñ1°$·(±(¸=Ó2IÓJˆIØ×3Ñ3°D·J±J¸}Ó4MÓNˆKÜŸ	™	 >°!Ñ#4°iÐ"@ÀaÔHˆIÜŸ)™) ^°AÑ%6¸Ð$DÈ!ÔL‰Kà×1Ñ1°$·(±(¸=Ó2IÓJˆIØ×3Ñ3°D·J±J¸}Ó4MÓNˆKà×/Ñ/Ð0AÓBˆà"¨$Ð.ˆ	Ø�?Š?ð (¨Ð5ˆNô !Ÿ<™<¨°Y×5HÑ5HÈÈRÓ5PÓQÐà×'Ñ'¨>Ò9¸T×=YÑ=YÐ]qÓ=qØ'2×'8Ñ'8¸Ñ';¸Y¿_¹_ÈQÑ=O˜*ˆLÙÜ!&§¡¨j¸1©nÄEÇJÁJÐWd×WkÑWkÔ!l×!qÑ!qØ˜ó"‘ô "'§¡¨lÄ%Ç*Á*ÐUb×UiÑUiÔ!j×!oÑ!oÐprÐtuÓ!v�Ü"Ÿ\™\¨*¼E¿J¹JÈ}×OcÑOcÔd×iÑiÐjkÐmoÓpˆNØ%¨Ñ6ˆHà#'×#:Ñ#:¸8Àd×FbÑFbÑ;bÐefÑ;fÓ#gÐ Ø#7×#:Ñ#:À×ARÑARÐ#:Ó#SÐ à×+Ñ+¨~Ò=Ü+0¯<©<Ð8HÈ+ÐWkÓ+lÐ(Ø#3Ð6NÑ#NÑ Ø×-Ñ-Ð1EÒEÜ16·±Ð>NÐP[Ð]qÓ1rÐ.Ü/4¯|©|Ð<LÈiÐYmÓ/nÐ,Ø#3Ð6TÑ#TÐWsÑ#sÐ à+¬d¯i©i¸×8PÑ8PÓ.QÑQÐØÐ%à/°.Ñ@Ðô Ÿ-™-×/Ñ/Ð0@ÀbÐ/ÓIˆð Ÿ,™, Ó7ˆð Ð Ø-°	Ñ9ˆOäŸ™ _°kÓBˆà%×-Ñ-¨a°°A°qÓ9×DÑDÓFˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸t×?QÑ?QÐ>SÑ"SÐØ%×*Ñ*Ð+BÓCˆá6G�= /Ñ2ÈmÐM]ˆà�?Š?Ø Ð 1Ñ1ˆGØˆrI   r�   ©NNNNNF)rJ   rK   rL   r!   r@   r’   rÜ   r   ÚFloatTensorr   ÚboolrH   rN   rO   s   @r:   rÁ   rÁ   Q  så   ø„ õ,ð4% e§l¡lð %°u·|±|ó %ð 7;Ø15Ø=AØ>BØDHØ,1ñcà—|‘|ðcð ! ×!2Ñ!2Ñ3ðcð ˜E×-Ñ-Ñ.ð	cð
  (¨×(9Ñ(9Ñ:ðcð !)¨×):Ñ):Ñ ;ðcð !  u¨U×->Ñ->Ñ'?Ñ!@ÑAðcð $ D™>ðcð 
ˆu�|‰|Ñ	÷crI   rÁ   Úeagerc                   ó  ‡ — e Zd Zdˆ fd„	Zd„ Z	 	 	 	 	 	 ddej                  deej                     deej                     deej                     deej                     dee	e	ej                           d	ee
   d
e	ej                     fd„Zˆ xZS )ÚMarkupLMAttentionc                 óž   •— t         ‰| �  «        t        |j                     ||¬«      | _        t        |«      | _        t        «       | _        y )N©rÅ   )	r    r!   ÚMARKUPLM_SELF_ATTENTION_CLASSESÚ_attn_implementationr6   r…   ÚoutputÚsetÚpruned_headsrÖ   s      €r:   r!   zMarkupLMAttention.__init__Þ  sC   ø€ Ü‰ÑÔÜ3°F×4OÑ4OÑPØÐ,Cô
ˆŒ	ô )¨Ó0ˆŒÜ›EˆÕrI   c                 ó>  — t        |«      dk(  ry t        || j                  j                  | j                  j                  | j
                  «      \  }}t        | j                  j                  |«      | j                  _        t        | j                  j                  |«      | j                  _        t        | j                  j                  |«      | j                  _	        t        | j                  j                  |d¬«      | j                  _        | j                  j                  t        |«      z
  | j                  _        | j                  j                  | j                  j                  z  | j                  _        | j
                  j                  |«      | _        y )Nr   r   r=   )Úlenr   r6   rÊ   rÍ   r  r   rÏ   rÐ   rÑ   r  rˆ   rÎ   Úunion)r6   ÚheadsÚindexs      r:   Úprune_headszMarkupLMAttention.prune_headsæ  s  € Üˆu‹:˜Š?ØÜ7Ø�4—9‘9×0Ñ0°$·)±)×2OÑ2OÐQU×QbÑQbó
‰ˆˆuô
 -¨T¯Y©Y¯_©_¸eÓDˆ�	‰	ŒÜ*¨4¯9©9¯=©=¸%Ó@ˆ�	‰	ŒÜ,¨T¯Y©Y¯_©_¸eÓDˆ�	‰	ŒÜ.¨t¯{©{×/@Ñ/@À%ÈQÔOˆ�‰Ôð )-¯	©	×(EÑ(EÌÈEË
Ñ(Rˆ�	‰	Ô%Ø"&§)¡)×"?Ñ"?À$Ç)Á)×B_ÑB_Ñ"_ˆ�	‰	ÔØ ×-Ñ-×3Ñ3°EÓ:ˆÕrI   r‰   rÝ   rÞ   rß   rà   rá   râ   r‹   c           	      óp   — | j                  |||||||«      }| j                  |d   |«      }	|	f|dd  z   }
|
S )Nr   r   )r6   r  )r6   r‰   rÝ   rÞ   rß   rà   rá   râ   Úself_outputsÚattention_outputr  s              r:   rH   zMarkupLMAttention.forwardø  sW   € ð —y‘yØØØØ!Ø"ØØó
ˆð  Ÿ;™; |°A¡¸ÓFÐØ#Ð%¨°Q°RÐ(8Ñ8ˆØˆrI   r�   r  )rJ   rK   rL   r!   r  r@   r’   r   r  r   r  rH   rN   rO   s   @r:   r
  r
  Ý  sÆ   ø„ õ"ò;ð* 7;Ø15Ø=AØ>BØDHØ,1ñà—|‘|ðð ! ×!2Ñ!2Ñ3ðð ˜E×-Ñ-Ñ.ð	ð
  (¨×(9Ñ(9Ñ:ðð !)¨×):Ñ):Ñ ;ðð !  u¨U×->Ñ->Ñ'?Ñ!@ÑAðð $ D™>ðð 
ˆu�|‰|Ñ	÷rI   r
  c                   ó  ‡ — e Zd Zˆ fd„Z	 	 	 	 	 	 ddej
                  deej                     deej                     deej                     deej                     deeeej                           dee	   d	eej
                     fd
„Z
d„ Zˆ xZS )ÚMarkupLMLayerc                 óf  •— t         ‰| �  «        |j                  | _        d| _        t	        |«      | _        |j                  | _        |j                  | _        | j                  r,| j                  st        | › d�«      ‚t	        |d¬«      | _	        t        |«      | _        t        |«      | _        y )Nr   z> should be used as a decoder model if cross attention is addedrÆ   r  )r    r!   Úchunk_size_feed_forwardÚseq_len_dimr
  Ú	attentionrÕ   Úadd_cross_attentionrÌ   Úcrossattentionr•   ÚintermediaterŸ   r  ro   s     €r:   r!   zMarkupLMLayer.__init__  s—   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ*¨6Ó2ˆŒØ ×+Ñ+ˆŒØ#)×#=Ñ#=ˆÔ Ø×#Ò#Ø—?’?Ü  D 6Ð)gÐ!hÓiÐiÜ"3°FÐT^Ô"_ˆDÔÜ0°Ó8ˆÔÜ$ VÓ,ˆ�rI   r‰   rÝ   rÞ   rß   rà   rá   râ   r‹   c           	      óÒ  — |�|d d nd }| j                  |||||¬«      }	|	d   }
| j                  r|	dd }|	d   }n|	dd  }d }| j                  rT|�Rt        | d«      st        d| › d�«      ‚|�|d	d  nd }| j	                  |
||||||«      }|d   }
||dd z   }|d   }|z   }t        | j                  | j                  | j                  |
«      }|f|z   }| j                  r|fz   }|S )
NrÉ   )râ   rá   r   r   r<   r"  z'If `encoder_hidden_states` are passed, z` has to be instantiated with cross-attention layers by setting `config.add_cross_attention=True`rä   )	r   rÕ   rË   rÌ   r"  r   Úfeed_forward_chunkr  r  )r6   r‰   rÝ   rÞ   rß   rà   rá   râ   Úself_attn_past_key_valueÚself_attention_outputsr  r  Úpresent_key_valueÚcross_attn_present_key_valueÚcross_attn_past_key_valueÚcross_attention_outputsÚlayer_outputs                    r:   rH   zMarkupLMLayer.forward   s}  € ð :HÐ9S >°"°1Ñ#5ÐY]Ð Ø!%§¡ØØØØ/Ø3ð "0ó "
Ðð 2°!Ñ4Ðð �?Š?Ø,¨Q¨rÐ2ˆGØ 6°rÑ :Ñà,¨Q¨RÐ0ˆGà'+Ð$Ø�?Š?Ð4Ð@Ü˜4Ð!1Ô2Ü Ø=¸d¸Vð DDð Dóð ð @NÐ?Y¨°r°sÑ(;Ð_cÐ%Ø&*×&9Ñ&9Ø ØØØ%Ø&Ø)Ø!ó'Ð#ð  7°qÑ9ÐØÐ 7¸¸"Ð =Ñ=ˆGð ,CÀ2Ñ+FÐ(Ø 1Ð4PÑ PÐä0Ø×#Ñ# T×%AÑ%AÀ4×CSÑCSÐUeó
ˆð  �/ GÑ+ˆð �?Š?ØÐ!2Ð 4Ñ4ˆGàˆrI   c                 óL   — | j                  |«      }| j                  ||«      }|S r�   )r#  r  )r6   r  Úintermediate_outputr,  s       r:   r%  z MarkupLMLayer.feed_forward_chunka  s,   € Ø"×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6Ð8HÓIˆØÐrI   r  )rJ   rK   rL   r!   r@   r’   r   r  r   r  rH   r%  rN   rO   s   @r:   r  r    sÇ   ø„ ô-ð" 7;Ø15Ø=AØ>BØDHØ,1ñ?à—|‘|ð?ð ! ×!2Ñ!2Ñ3ð?ð ˜E×-Ñ-Ñ.ð	?ð
  (¨×(9Ñ(9Ñ:ð?ð !)¨×):Ñ):Ñ ;ð?ð !  u¨U×->Ñ->Ñ'?Ñ!@ÑAð?ð $ D™>ð?ð 
ˆu�|‰|Ñ	ó?öBrI   r  c                   óD  ‡ — e Zd Zˆ fd„Z	 	 	 	 	 	 	 	 	 ddej
                  deej                     deej                     deej                     deej                     deeeej                           dee	   d	ee	   d
ee	   dee	   de
eej
                     ef   fd„Zˆ xZS )ÚMarkupLMEncoderc                 óÐ   •— t         ‰| �  «        || _        t        j                  t        |j                  «      D �cg c]  }t        |«      ‘Œ c}«      | _        d| _	        y c c}w )NF)
r    r!   r7   r   r.   r/   Únum_hidden_layersr  ÚlayerÚgradient_checkpointingr5   s      €r:   r!   zMarkupLMEncoder.__init__i  sN   ø€ Ü‰ÑÔØˆŒÜ—]‘]Ä5È×IaÑIaÓCbÖ#c¸a¤M°&Õ$9Ò#cÓdˆŒ
Ø&+ˆÕ#ùò $ds   ½A#r‰   rÝ   rÞ   rß   rà   Úpast_key_valuesrö   râ   Úoutput_hidden_statesÚreturn_dictr‹   c                 óš  — |	rdnd }|rdnd }|r| j                   j                  rdnd }| j                  r%| j                  r|rt        j                  d«       d}|rdnd }t        | j                  «      D ]¤  \  }}|	r||fz   }|�||   nd }|�||   nd }| j                  r/| j                  r#| j                  |j                  |||||||«      }n ||||||||«      }|d   }|r	||d   fz  }|sŒ|||d   fz   }| j                   j                  sŒœ||d   fz   }Œ¦ |	r||fz   }|
st        d„ |||||fD «       «      S t        |||||¬	«      S )
N© zZ`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...Fr   r<   r   rÉ   c              3   ó$   K  — | ]  }|�|–— Œ
 y ­wr�   r9  )Ú.0Úvs     r:   ú	<genexpr>z*MarkupLMEncoder.forward.<locals>.<genexpr>±  s   è ø€ ò 
àð �=ô ñ
ùs   ‚)Úlast_hidden_stater5  r‰   Ú
attentionsÚcross_attentions)r7   r!  r4  ÚtrainingÚloggerÚwarning_onceÚ	enumerater3  Ú_gradient_checkpointing_funcÚ__call__r~   r   )r6   r‰   rÝ   rÞ   rß   rà   r5  rö   râ   r6  r7  Úall_hidden_statesÚall_self_attentionsÚall_cross_attentionsÚnext_decoder_cacherF   Úlayer_moduleÚlayer_head_maskrá   Úlayer_outputss                       r:   rH   zMarkupLMEncoder.forwardo  sÎ  € ñ #7™B¸DÐÙ$5™b¸4ÐÙ%6¸4¿;¹;×;ZÒ;Z™rÐ`dÐà×&Ò&¨4¯=ª=ÙÜ×#Ñ#Øpôð "�	á#,™R°$ÐÜ(¨¯©Ó4ò #	V‰OˆAˆ|Ù#Ø$5¸Ð8HÑ$HÐ!à.7Ð.C˜i¨šlÈˆOØ3BÐ3N˜_¨QÒ/ÐTXˆNà×*Ò*¨t¯}ª}Ø $× AÑ AØ ×)Ñ)Ø!Ø"Ø#Ø)Ø*Ø"Ø%ó	!‘ñ !-Ø!Ø"Ø#Ø)Ø*Ø"Ø%ó!�ð *¨!Ñ,ˆMÙØ" }°RÑ'8Ð&:Ñ:Ð"Ú Ø&9¸]È1Ñ=MÐ<OÑ&OÐ#Ø—;‘;×2Ó2Ø+?À=ÐQRÑCSÐBUÑ+UÑ(ðG#	VñJ  Ø 1°]Ð4DÑ DÐáÜñ 
ð "Ø&Ø%Ø'Ø(ðô
ó 
ð 
ô 9Ø+Ø.Ø+Ø*Ø1ô
ð 	
rI   )	NNNNNNFFT)rJ   rK   rL   r!   r@   r’   r   r  r   r  r   r   rH   rN   rO   s   @r:   r0  r0  h  s  ø„ ô,ð 7;Ø15Ø=AØ>BØEIØ$(Ø,1Ø/4Ø&*ñS
à—|‘|ðS
ð ! ×!2Ñ!2Ñ3ðS
ð ˜E×-Ñ-Ñ.ð	S
ð
  (¨×(9Ñ(9Ñ:ðS
ð !)¨×):Ñ):Ñ ;ðS
ð " %¨¨e×.?Ñ.?Ñ(@Ñ"AÑBðS
ð ˜D‘>ðS
ð $ D™>ðS
ð ' t™nðS
ð ˜d‘^ðS
ð 
ˆu�U—\‘\Ñ"Ð$MÐMÑ	N÷S
rI   r0  c                   ód   ‡ — e Zd ZdZeZdZd„ Zede	e
eej                  f      fˆ fd„«       Zˆ xZS )ÚMarkupLMPreTrainedModelz†
    An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained
    models.
    Úmarkuplmc                 ól  — t        |t        j                  «      rm|j                  j                  j                  d| j                  j                  ¬«       |j                  �%|j                  j                  j                  «        yyt        |t        j                  «      rz|j                  j                  j                  d| j                  j                  ¬«       |j                  �2|j                  j                  |j                     j                  «        yyt        |t        j                  «      rJ|j                  j                  j                  «        |j                  j                  j                  d«       yt        |t        «      r%|j                  j                  j                  «        yy)zInitialize the weightsg        )ÚmeanÚstdNç      ð?)r˜   r   r#   ÚweightÚdataÚnormal_r7   Úinitializer_ranger±   Úzero_r0   rW   rj   Úfill_r¯   )r6   Úmodules     r:   Ú_init_weightsz%MarkupLMPreTrainedModel._init_weightsÏ  s'  € ä�fœbŸi™iÔ(ð �M‰M×Ñ×&Ñ&¨C°T·[±[×5RÑ5RÐ&ÔSØ�{‰{Ð&Ø—‘× Ñ ×&Ñ&Õ(ð 'ä˜¤§¡Ô-Ø�M‰M×Ñ×&Ñ&¨C°T·[±[×5RÑ5RÐ&ÔSØ×!Ñ!Ð-Ø—‘×"Ñ" 6×#5Ñ#5Ñ6×<Ñ<Õ>ð .ä˜¤§¡Ô-Ø�K‰K×Ñ×"Ñ"Ô$Ø�M‰M×Ñ×$Ñ$ SÕ)Ü˜Ô 8Ô9Ø�K‰K×Ñ×"Ñ"Õ$ð :rI   Úpretrained_model_name_or_pathc                 ó2   •— t        t        | �
  |g|¢­i |¤ŽS r�   )r    rO  Úfrom_pretrained)Úclsr]  Ú
model_argsÚkwargsr9   s       €r:   r_  z'MarkupLMPreTrainedModel.from_pretrainedá  s+   ø€ äÔ,¨cÑBØ)ð
Ø,6ò
Ø:@ñ
ð 	
rI   )rJ   rK   rL   rM   r   Úconfig_classÚbase_model_prefixr\  Úclassmethodr   r   rš   ÚosÚPathLiker_  rN   rO   s   @r:   rO  rO  Å  sK   ø„ ñð
 "€LØ"Ðò%ð$ ð
¸HÀUÈ3ÐPR×P[ÑP[ÐK[ÑE\Ñ<]ô 
ó ô
rI   rO  aK  
    This model is a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) sub-class. Use
    it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
    behavior.

    Parameters:
        config ([`MarkupLMConfig`]): Model configuration class with all the parameters of the model.
            Initializing with a config file does not load the weights associated with the model, only the
            configuration. Check out the [`~PreTrainedModel.from_pretrained`] method to load the model weights.
aš  
    Args:
        input_ids (`torch.LongTensor` of shape `({0})`):
            Indices of input sequence tokens in the vocabulary.

            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
            [`PreTrainedTokenizer.__call__`] for details.

            [What are input IDs?](../glossary#input-ids)

        xpath_tags_seq (`torch.LongTensor` of shape `({0}, config.max_depth)`, *optional*):
            Tag IDs for each token in the input sequence, padded up to config.max_depth.

        xpath_subs_seq (`torch.LongTensor` of shape `({0}, config.max_depth)`, *optional*):
            Subscript IDs for each token in the input sequence, padded up to config.max_depth.

        attention_mask (`torch.FloatTensor` of shape `({0})`, *optional*):
            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: `1` for
            tokens that are NOT MASKED, `0` for MASKED tokens.

            [What are attention masks?](../glossary#attention-mask)
        token_type_ids (`torch.LongTensor` of shape `({0})`, *optional*):
            Segment token indices to indicate first and second portions of the inputs. Indices are selected in `[0,
            1]`: `0` corresponds to a *sentence A* token, `1` corresponds to a *sentence B* token

            [What are token type IDs?](../glossary#token-type-ids)
        position_ids (`torch.LongTensor` of shape `({0})`, *optional*):
            Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,
            config.max_position_embeddings - 1]`.

            [What are position IDs?](../glossary#position-ids)
        head_mask (`torch.FloatTensor` of shape `(num_heads,)` or `(num_layers, num_heads)`, *optional*):
            Mask to nullify selected heads of the self-attention modules. Mask values selected in `[0, 1]`: `1`
            indicates the head is **not masked**, `0` indicates the head is **masked**.
        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This
            is useful if you want more control over how to convert *input_ids* indices into associated vectors than the
            model's internal embedding lookup matrix.
        output_attentions (`bool`, *optional*):
            If set to `True`, the attentions tensors of all attention layers are returned. See `attentions` under
            returned tensors for more detail.
        output_hidden_states (`bool`, *optional*):
            If set to `True`, the hidden states of all layers are returned. See `hidden_states` under returned tensors
            for more detail.
        return_dict (`bool`, *optional*):
            If set to `True`, the model will return a [`~file_utils.ModelOutput`] instead of a plain tuple.
zbThe bare MarkupLM Model transformer outputting raw hidden-states without any specific head on top.c                   óÂ  ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zd„ Z eej                  d«      «       e
ee¬«      	 	 	 	 	 	 	 	 	 	 	 ddeej                     deej                     d	eej                     d
eej                      deej                     deej                     deej                      deej                      dee   dee   dee   deeef   fd„«       «       Zd„ Zˆ xZS )ÚMarkupLMModelc                 óº   •— t         ‰| �  |«       || _        t        |«      | _        t        |«      | _        |rt        |«      nd | _        | j                  «        y r�   )
r    r!   r7   r]   rƒ   r0  Úencoderr£   ÚpoolerÚ	post_init)r6   r7   Úadd_pooling_layerr9   s      €r:   r!   zMarkupLMModel.__init__*  sK   ø€ Ü‰Ñ˜Ô ØˆŒä,¨VÓ4ˆŒÜ& vÓ.ˆŒá0A”n VÔ,ÀtˆŒð 	�‰ÕrI   c                 ó.   — | j                   j                  S r�   ©rƒ   re   r¶   s    r:   Úget_input_embeddingsz"MarkupLMModel.get_input_embeddings6  s   € Ø�‰×.Ñ.Ð.rI   c                 ó&   — || j                   _        y r�   rp  )r6   rÑ   s     r:   Úset_input_embeddingsz"MarkupLMModel.set_input_embeddings9  s   € Ø*/ˆ�‰Õ'rI   c                 ó˜   — |j                  «       D ]7  \  }}| j                  j                  |   j                  j	                  |«       Œ9 y)z�
        Prunes heads of the model. heads_to_prune: dict of {layer_num: list of heads to prune in this layer} See base
        class PreTrainedModel
        N)Úitemsrk  r3  r   r  )r6   Úheads_to_pruner3  r  s       r:   Ú_prune_headszMarkupLMModel._prune_heads<  sE   € ð
 +×0Ñ0Ó2ò 	C‰LˆE�5Ø�L‰L×Ñ˜uÑ%×/Ñ/×;Ñ;¸EÕBñ	CrI   úbatch_size, sequence_length©Úoutput_typerc  rV   rB   rC   rÝ   r�   ra   rÞ   rv   râ   r6  r7  r‹   c                 ó¸  — |	�|	n| j                   j                  }	|
�|
n| j                   j                  }
|�|n| j                   j                  }|�|�t	        d«      ‚|�#| j                  ||«       |j                  «       }n!|�|j                  «       dd }nt	        d«      ‚|�|j                  n|j                  }|€t        j                  ||¬«      }|€&t        j                  |t        j                  |¬«      }|j                  d«      j                  d«      }|j                  | j                  ¬	«      }d
|z
  dz  }|�ñ|j                  «       dk(  rh|j                  d«      j                  d«      j                  d«      j                  d«      }|j!                  | j                   j"                  dddd«      }nB|j                  «       dk(  r/|j                  d«      j                  d«      j                  d«      }|j                  t%        | j'                  «       «      j                  ¬	«      }ndg| j                   j"                  z  }| j)                  ||||||¬«      }| j+                  ||||	|
|¬«      }|d   }| j,                  �| j-                  |«      nd}|s
||f|dd z   S t/        |||j0                  |j2                  |j4                  ¬«      S )a`  
        Returns:

        Examples:

        ```python
        >>> from transformers import AutoProcessor, MarkupLMModel

        >>> processor = AutoProcessor.from_pretrained("microsoft/markuplm-base")
        >>> model = MarkupLMModel.from_pretrained("microsoft/markuplm-base")

        >>> html_string = "<html> <head> <title>Page Title</title> </head> </html>"

        >>> encoding = processor(html_string, return_tensors="pt")

        >>> outputs = model(**encoding)
        >>> last_hidden_states = outputs.last_hidden_state
        >>> list(last_hidden_states.shape)
        [1, 4, 768]
        ```NzDYou cannot specify both input_ids and inputs_embeds at the same timer<   z5You have to specify either input_ids or inputs_embeds)rs   rq   r   rÉ   rå   rT  g     ˆÃÀr   )rV   rB   rC   ra   r�   rv   )rÞ   râ   r6  r7  )r>  Úpooler_outputr‰   r?  r@  )r7   râ   r6  Úuse_return_dictrÌ   Ú%warn_if_padding_and_no_attention_maskrt   rs   r@   r}   r{   rU   ru   rê   rr   r>   rn   r2  ÚnextÚ
parametersrƒ   rk  rl  r   r‰   r?  r@  )r6   rV   rB   rC   rÝ   r�   ra   rÞ   rv   râ   r6  r7  rw   rs   Úextended_attention_maskÚembedding_outputÚencoder_outputsr½   r¨   s                      r:   rH   zMarkupLMModel.forwardD  sÔ  € ðH 2CÐ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ð$DÑ È$Ï+É+×JjÑJjð 	ð &1Ð%<‘kÀ$Ç+Á+×B]ÑB]ˆàÐ  ]Ð%>ÜÐcÓdÐdØÐ"Ø×6Ñ6°yÀ.ÔQØ#Ÿ.™.Ó*‰KØÐ&Ø'×,Ñ,Ó.¨s°Ð3‰KäÐTÓUÐUà%.Ð%:�×!Ò!À×@TÑ@TˆàÐ!Ü"ŸZ™Z¨¸FÔCˆNàÐ!Ü"Ÿ[™[¨¼E¿J¹JÈvÔVˆNà"0×":Ñ":¸1Ó"=×"GÑ"GÈÓ"JÐØ"9×"<Ñ"<À4Ç:Á:Ð"<Ó"NÐØ#&Ð)@Ñ#@ÀHÑ"LÐàÐ Ø�}‰}‹ !Ò#Ø%×/Ñ/°Ó2×<Ñ<¸QÓ?×IÑIÈ"ÓM×WÑWÐXZÓ[�	Ø%×,Ñ,¨T¯[©[×-JÑ-JÈBÐPRÐTVÐXZÓ[‘	Ø—‘“ AÒ%Ø%×/Ñ/°Ó2×<Ñ<¸RÓ@×JÑJÈ2ÓN�	Ø!Ÿ™¬4°·±Ó0AÓ+B×+HÑ+H˜ÓI‰Ià˜ §¡×!>Ñ!>Ñ>ˆIàŸ?™?ØØ)Ø)Ø%Ø)Ø'ð +ó 
Ðð Ÿ,™,ØØ#ØØ/Ø!5Ø#ð 'ó 
ˆð *¨!Ñ,ˆà8<¿¹Ð8O˜Ÿ™ OÔ4ÐUYˆáØ# ]Ð3°oÀaÀbÐ6IÑIÐIä;Ø-Ø'Ø)×7Ñ7Ø&×1Ñ1Ø,×=Ñ=ô
ð 	
rI   c                 óJ   ‡— d}|D ]  }|t        ˆfd„|D «       «      fz  }Œ |S )Nr9  c              3   ót   •K  — | ]/  }|j                  d ‰j                  |j                  «      «      –— Œ1 y­w)r   N)Úindex_selectrê   rs   )r;  Ú
past_stateÚbeam_idxs     €r:   r=  z/MarkupLMModel._reorder_cache.<locals>.<genexpr>²  s.   øè ø€ ÒnÐU_�j×-Ñ-¨a°·±¸Z×=NÑ=NÓ1O×PÑnùs   ƒ58)r~   )r6   r5  rˆ  Úreordered_pastÚ
layer_pasts     `  r:   Ú_reorder_cachezMarkupLMModel._reorder_cache®  s=   ø€ ØˆØ)ò 	ˆJØÜÓnÐcmÔnÓnðñ ‰Nð	ð ÐrI   )T)NNNNNNNNNNN)rJ   rK   rL   r!   rq  rs  rw  r   ÚMARKUPLM_INPUTS_DOCSTRINGÚformatr   r   Ú_CONFIG_FOR_DOCr   r@   Ú
LongTensorr  r  r   r   rH   r‹  rN   rO   s   @r:   ri  ri  $  sm  ø„ õ
ò/ò0òCñ +Ð+D×+KÑ+KÐLiÓ+jÓkÙÐ+WÐfuÔvð 15Ø59Ø59Ø6:Ø59Ø37Ø15Ø59Ø,0Ø/3Ø&*ñe
à˜E×,Ñ,Ñ-ðe
ð ! ×!1Ñ!1Ñ2ðe
ð ! ×!1Ñ!1Ñ2ð	e
ð
 ! ×!2Ñ!2Ñ3ðe
ð ! ×!1Ñ!1Ñ2ðe
ð ˜u×/Ñ/Ñ0ðe
ð ˜E×-Ñ-Ñ.ðe
ð   × 1Ñ 1Ñ2ðe
ð $ D™>ðe
ð ' t™nðe
ð ˜d‘^ðe
ð 
ˆuÐBÐBÑ	Còe
ó wó lðe
öPrI   ri  zá
    MarkupLM Model with a span classification head on top for extractive question-answering tasks like SQuAD (a linear
    layers on top of the hidden-states output to compute `span start logits` and `span end logits`).
    c            !       ó  ‡ — e Zd Zˆ fd„Z eej                  d«      «       eee	¬«      	 	 	 	 	 	 	 	 	 	 	 	 	 dde
ej                     de
ej                     de
ej                     de
ej                     de
ej                     d	e
ej                     d
e
ej                     de
ej                     de
ej                     de
ej                     de
e   de
e   de
e   deeej                     ef   fd„«       «       Zˆ xZS )ÚMarkupLMForQuestionAnsweringc                 óè   •— t         ‰| �  |«       |j                  | _        t        |d¬«      | _        t        j                  |j                  |j                  «      | _        | j                  «        y ©NF)rn  )
r    r!   Ú
num_labelsri  rP  r   r#   r%   Ú
qa_outputsrm  ro   s     €r:   r!   z%MarkupLMForQuestionAnswering.__init__À  sU   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä% fÀÔFˆŒÜŸ)™) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰ÕrI   rx  ry  rV   rB   rC   rÝ   r�   ra   rÞ   rv   Ústart_positionsÚend_positionsrâ   r6  r7  r‹   c                 ó,  — |�|n| j                   j                  }| j                  |||||||||||¬«      }|d   }| j                  |«      }|j	                  dd¬«      \  }}|j                  d«      j                  «       }|j                  d«      j                  «       }d}|	�·|
�µt        |	j                  «       «      dkD  r|	j                  d«      }	t        |
j                  «       «      dkD  r|
j                  d«      }
|j                  d«      }|	j                  d|«       |
j                  d|«       t        |¬«      } |||	«      } |||
«      }||z   dz  }|s||f|dd z   }|�|f|z   S |S t        ||||j                  |j                  ¬	«      S )
aÑ  
        start_positions (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
            Labels for position (index) of the start of the labelled span for computing the token classification loss.
            Positions are clamped to the length of the sequence (`sequence_length`). Position outside of the sequence
            are not taken into account for computing the loss.
        end_positions (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
            Labels for position (index) of the end of the labelled span for computing the token classification loss.
            Positions are clamped to the length of the sequence (`sequence_length`). Position outside of the sequence
            are not taken into account for computing the loss.

        Returns:

        Examples:

        ```python
        >>> from transformers import AutoProcessor, MarkupLMForQuestionAnswering
        >>> import torch

        >>> processor = AutoProcessor.from_pretrained("microsoft/markuplm-base-finetuned-websrc")
        >>> model = MarkupLMForQuestionAnswering.from_pretrained("microsoft/markuplm-base-finetuned-websrc")

        >>> html_string = "<html> <head> <title>My name is Niels</title> </head> </html>"
        >>> question = "What's his name?"

        >>> encoding = processor(html_string, questions=question, return_tensors="pt")

        >>> with torch.no_grad():
        ...     outputs = model(**encoding)

        >>> answer_start_index = outputs.start_logits.argmax()
        >>> answer_end_index = outputs.end_logits.argmax()

        >>> predict_answer_tokens = encoding.input_ids[0, answer_start_index : answer_end_index + 1]
        >>> processor.decode(predict_answer_tokens).strip()
        'Niels'
        ```N©
rB   rC   rÝ   r�   ra   rÞ   rv   râ   r6  r7  r   r   r<   r=   )Úignore_indexrÉ   )ÚlossÚstart_logitsÚ
end_logitsr‰   r?  )r7   r}  rP  r•  ÚsplitÚsqueezerð   r  rt   Úclamp_r   r   r‰   r?  )r6   rV   rB   rC   rÝ   r�   ra   rÞ   rv   r–  r—  râ   r6  r7  r  r½   Úlogitsrœ  r�  Ú
total_lossÚignored_indexÚloss_fctÚ
start_lossÚend_lossr  s                            r:   rH   z$MarkupLMForQuestionAnswering.forwardÊ  sÅ  € ðl &1Ð%<‘kÀ$Ç+Á+×B]ÑB]ˆà—-‘-ØØ)Ø)Ø)Ø)Ø%ØØ'Ø/Ø!5Ø#ð  ó 
ˆð " !™*ˆà—‘ Ó1ˆØ#)§<¡<°°r <Ó#:Ñ ˆ�jØ#×+Ñ+¨BÓ/×:Ñ:Ó<ˆØ×'Ñ'¨Ó+×6Ñ6Ó8ˆ
àˆ
ØÐ&¨=Ð+Dä�?×'Ñ'Ó)Ó*¨QÒ.Ø"1×"9Ñ"9¸"Ó"=�Ü�=×%Ñ%Ó'Ó(¨1Ò,Ø -× 5Ñ 5°bÓ 9�à(×-Ñ-¨aÓ0ˆMØ×"Ñ" 1 mÔ4Ø× Ñ   MÔ2ä'°]ÔCˆHÙ! ,°Ó@ˆJÙ 
¨MÓ:ˆHØ$ xÑ/°1Ñ4ˆJáØ" JÐ/°'¸!¸"°+Ñ=ˆFØ/9Ð/E�Z�M FÑ*ÐQÈ6ÐQä+ØØ%Ø!Ø!×/Ñ/Ø×)Ñ)ô
ð 	
rI   )NNNNNNNNNNNNN)rJ   rK   rL   r!   r   rŒ  r�  r   r   rŽ  r   r@   r’   r  r   r   rH   rN   rO   s   @r:   r‘  r‘  ·  s~  ø„ ôñ +Ð+D×+KÑ+KÐLiÓ+jÓkÙÐ+GÐVeÔfð -1Ø15Ø15Ø15Ø15Ø/3Ø,0Ø04Ø26Ø04Ø,0Ø/3Ø&*ñf
à˜EŸL™LÑ)ðf
ð ! §¡Ñ.ðf
ð ! §¡Ñ.ð	f
ð
 ! §¡Ñ.ðf
ð ! §¡Ñ.ðf
ð ˜uŸ|™|Ñ,ðf
ð ˜EŸL™LÑ)ðf
ð   §¡Ñ-ðf
ð " %§,¡,Ñ/ðf
ð   §¡Ñ-ðf
ð $ D™>ðf
ð ' t™nðf
ð ˜d‘^ðf
ð 
ˆu�U—\‘\Ñ"Ð$@Ð@Ñ	Aòf
ó gó lôf
rI   r‘  z9MarkupLM Model with a `token_classification` head on top.c                   óâ  ‡ — e Zd Zˆ fd„Z eej                  d«      «       eee	¬«      	 	 	 	 	 	 	 	 	 	 	 	 dde
ej                     de
ej                     de
ej                     de
ej                     de
ej                     d	e
ej                     d
e
ej                     de
ej                     de
ej                     de
e   de
e   de
e   deeej                     ef   fd„«       «       Zˆ xZS )ÚMarkupLMForTokenClassificationc                 ód  •— t         ‰| �  |«       |j                  | _        t        |d¬«      | _        |j
                  �|j
                  n|j                  }t        j                  |«      | _	        t        j                  |j                  |j                  «      | _        | j                  «        y r“  )r    r!   r”  ri  rP  Úclassifier_dropoutr(   r   r'   r)   r#   r%   Ú
classifierrm  ©r6   r7   rª  r9   s      €r:   r!   z'MarkupLMForTokenClassification.__init__8  sŠ   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä% fÀÔFˆŒà)/×)BÑ)BÐ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô —z‘zÐ"4Ó5ˆŒÜŸ)™) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰ÕrI   rx  ry  rV   rB   rC   rÝ   r�   ra   rÞ   rv   Úlabelsrâ   r6  r7  r‹   c                 óž  — |�|n| j                   j                  }| j                  |||||||||
||¬«      }|d   }| j                  |«      }d}|	�Ft	        «       } ||j                  d| j                   j                  «      |	j                  d«      «      }|s|f|dd z   }|�|f|z   S |S t        |||j                  |j                  ¬«      S )a  
        labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
            Labels for computing the token classification loss. Indices should be in `[0, ..., config.num_labels - 1]`.

        Returns:

        Examples:

        ```python
        >>> from transformers import AutoProcessor, AutoModelForTokenClassification
        >>> import torch

        >>> processor = AutoProcessor.from_pretrained("microsoft/markuplm-base")
        >>> processor.parse_html = False
        >>> model = AutoModelForTokenClassification.from_pretrained("microsoft/markuplm-base", num_labels=7)

        >>> nodes = ["hello", "world"]
        >>> xpaths = ["/html/body/div/li[1]/div/span", "/html/body/div/li[1]/div/span"]
        >>> node_labels = [1, 2]
        >>> encoding = processor(nodes=nodes, xpaths=xpaths, node_labels=node_labels, return_tensors="pt")

        >>> with torch.no_grad():
        ...     outputs = model(**encoding)

        >>> loss = outputs.loss
        >>> logits = outputs.logits
        ```Nr™  r   r<   rÉ   ©r›  r¡  r‰   r?  )
r7   r}  rP  r«  r   rÙ   r”  r   r‰   r?  )r6   rV   rB   rC   rÝ   r�   ra   rÞ   rv   r­  râ   r6  r7  r  r½   r¿   r›  r¤  r  s                      r:   rH   z&MarkupLMForTokenClassification.forwardF  sÿ   € ðX &1Ð%<‘kÀ$Ç+Á+×B]ÑB]ˆà—-‘-ØØ)Ø)Ø)Ø)Ø%ØØ'Ø/Ø!5Ø#ð  ó 
ˆð " !™*ˆØ ŸO™O¨OÓ<ÐàˆØÐÜ'Ó)ˆHÙØ!×&Ñ& r¨4¯;©;×+AÑ+AÓBØ—‘˜B“óˆDñ
 Ø'Ð)¨G°A°B¨KÑ7ˆFØ)-Ð)9�T�G˜fÑ$ÐE¸vÐEä$ØØ$Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
rI   ©NNNNNNNNNNNN)rJ   rK   rL   r!   r   rŒ  r�  r   r   rŽ  r   r@   r’   r  r   r   rH   rN   rO   s   @r:   r¨  r¨  5  sd  ø„ ôñ +Ð+D×+KÑ+KÐLiÓ+jÓkÙ¨>ÈÔXð -1Ø15Ø15Ø15Ø15Ø/3Ø,0Ø04Ø)-Ø,0Ø/3Ø&*ñN
à˜EŸL™LÑ)ðN
ð ! §¡Ñ.ðN
ð ! §¡Ñ.ð	N
ð
 ! §¡Ñ.ðN
ð ! §¡Ñ.ðN
ð ˜uŸ|™|Ñ,ðN
ð ˜EŸL™LÑ)ðN
ð   §¡Ñ-ðN
ð ˜Ÿ™Ñ&ðN
ð $ D™>ðN
ð ' t™nðN
ð ˜d‘^ðN
ð 
ˆu�U—\‘\Ñ" NÐ2Ñ	3òN
ó Yó lôN
rI   r¨  z 
    MarkupLM Model transformer with a sequence classification/regression head on top (a linear layer on top of the
    pooled output) e.g. for GLUE tasks.
    c                   óâ  ‡ — e Zd Zˆ fd„Z eej                  d«      «       eee	¬«      	 	 	 	 	 	 	 	 	 	 	 	 dde
ej                     de
ej                     de
ej                     de
ej                     de
ej                     d	e
ej                     d
e
ej                     de
ej                     de
ej                     de
e   de
e   de
e   deeej                     ef   fd„«       «       Zˆ xZS )Ú!MarkupLMForSequenceClassificationc                 ón  •— t         ‰| �  |«       |j                  | _        || _        t	        |«      | _        |j                  �|j                  n|j                  }t        j                  |«      | _
        t        j                  |j                  |j                  «      | _        | j                  «        y r�   )r    r!   r”  r7   ri  rP  rª  r(   r   r'   r)   r#   r%   r«  rm  r¬  s      €r:   r!   z*MarkupLMForSequenceClassification.__init__¢  s�   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒØˆŒä% fÓ-ˆŒà)/×)BÑ)BÐ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô —z‘zÐ"4Ó5ˆŒÜŸ)™) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰ÕrI   rx  ry  rV   rB   rC   rÝ   r�   ra   rÞ   rv   r­  râ   r6  r7  r‹   c                 óD  — |�|n| j                   j                  }| j                  |||||||||
||¬«      }|d   }| j                  |«      }| j	                  |«      }d}|	��‡| j                   j
                  €�| j                  dk(  rd| j                   _        nl| j                  dkD  rL|	j                  t        j                  k(  s|	j                  t        j                  k(  rd| j                   _        nd| j                   _        | j                   j
                  dk(  rIt        «       }| j                  dk(  r& ||j                  «       |	j                  «       «      }nŒ |||	«      }n‚| j                   j
                  dk(  r=t        «       } ||j                  d| j                  «      |	j                  d«      «      }n,| j                   j
                  dk(  rt        «       } |||	«      }|s|f|dd z   }|�|f|z   S |S t!        |||j"                  |j$                  ¬	«      S )
a&  
        labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
            Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
            config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
            `config.num_labels > 1` a classification loss is computed (Cross-Entropy).

        Returns:

        Examples:

        ```python
        >>> from transformers import AutoProcessor, AutoModelForSequenceClassification
        >>> import torch

        >>> processor = AutoProcessor.from_pretrained("microsoft/markuplm-base")
        >>> model = AutoModelForSequenceClassification.from_pretrained("microsoft/markuplm-base", num_labels=7)

        >>> html_string = "<html> <head> <title>Page Title</title> </head> </html>"
        >>> encoding = processor(html_string, return_tensors="pt")

        >>> with torch.no_grad():
        ...     outputs = model(**encoding)

        >>> loss = outputs.loss
        >>> logits = outputs.logits
        ```Nr™  r   Ú
regressionÚsingle_label_classificationÚmulti_label_classificationr<   rÉ   r¯  )r7   r}  rP  r)   r«  Úproblem_typer”  rr   r@   rU   rR   r	   rŸ  r   rÙ   r   r   r‰   r?  )r6   rV   rB   rC   rÝ   r�   ra   rÞ   rv   r­  râ   r6  r7  r  r¨   r¡  r›  r¤  r  s                      r:   rH   z)MarkupLMForSequenceClassification.forward±  sï  € ðV &1Ð%<‘kÀ$Ç+Á+×B]ÑB]ˆà—-‘-ØØ)Ø)Ø)Ø)Ø%ØØ'Ø/Ø!5Ø#ð  ó 
ˆð   ™
ˆàŸ™ ]Ó3ˆØ—‘ Ó/ˆàˆØÑØ�{‰{×'Ñ'Ð/Ø—?‘? aÒ'Ø/;�D—K‘KÕ,Ø—_‘_ qÒ(¨f¯l©l¼e¿j¹jÒ.HÈFÏLÉLÔ\a×\eÑ\eÒLeØ/L�D—K‘KÕ,à/K�D—K‘KÔ,à�{‰{×'Ñ'¨<Ò7Ü"›9�Ø—?‘? aÒ'Ù# F§N¡NÓ$4°f·n±nÓ6FÓG‘Dá# F¨FÓ3‘DØ—‘×)Ñ)Ð-JÒJÜ+Ó-�Ù §¡¨B°·±Ó @À&Ç+Á+ÈbÃ/ÓR‘Ø—‘×)Ñ)Ð-IÒIÜ,Ó.�Ù ¨Ó/�ÙØ�Y ¨¨ Ñ,ˆFØ)-Ð)9�T�G˜fÑ$ÐE¸vÐEä'ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
rI   r°  )rJ   rK   rL   r!   r   rŒ  r�  r   r   rŽ  r   r@   r’   r  r   r   rH   rN   rO   s   @r:   r²  r²  ™  sg  ø„ ôñ +Ð+D×+KÑ+KÐLiÓ+jÓkÙÐ+CÐRaÔbð -1Ø15Ø15Ø15Ø15Ø/3Ø,0Ø04Ø)-Ø,0Ø/3Ø&*ñ]
à˜EŸL™LÑ)ð]
ð ! §¡Ñ.ð]
ð ! §¡Ñ.ð	]
ð
 ! §¡Ñ.ð]
ð ! §¡Ñ.ð]
ð ˜uŸ|™|Ñ,ð]
ð ˜EŸL™LÑ)ð]
ð   §¡Ñ-ð]
ð ˜Ÿ™Ñ&ð]
ð $ D™>ð]
ð ' t™nð]
ð ˜d‘^ð]
ð 
ˆu�U—\‘\Ñ"Ð$<Ð<Ñ	=ò]
ó có lô]
rI   r²  )r‘  r²  r¨  ri  rO  )r   )ArM   rì   rf  Útypingr   r   r   r@   Útorch.utils.checkpointr   Útorch.nnr   r   r	   Úactivationsr   Ú
file_utilsr   r   r   Úmodeling_outputsr   r   r   r   r   r   Úmodeling_utilsr   r   r   r   Úutilsr   Úconfiguration_markuplmr   Ú
get_loggerrJ   rB  Ú_CHECKPOINT_FOR_DOCrŽ  ÚModuler   r[   r]   r…   r•   rŸ   r£   rª   r¯   rº   rÁ   r  r
  r  r0  rO  ÚMARKUPLM_START_DOCSTRINGrŒ  ri  r‘  r¨  r²  Ú__all__r9  rI   r:   ú<module>rÇ     s8  ðñ ã Û 	ß )Ñ )ã Û Ý ß AÑ Aå !÷ñ ÷
÷ ÷ó õ Ý 2ð 
ˆ×	Ñ	˜HÓ	%€à/Ð Ø"€ô/ �b—i‘iô / óf4ô _˜Ÿ™ô _ôF˜Ÿ™ô ô˜2Ÿ9™9ô ô �R—Y‘Yô ô�R—Y‘Yô ô  b§i¡iô ô$˜rŸy™yô ô0!˜"Ÿ)™)ô !ôC˜BŸI™Iô CðN Ð"ð#Ð ô0˜Ÿ	™	ô 0ôhS�B—I‘Iô SônZ
�b—i‘iô Z
ôz 
˜oô  
ðF	Ð ð.Ð ñb ØhØóôLÐ+ó Ló	ðLñ^ ðð óôt
Ð#:ó t
óðt
ñn ÐUÐWoÓpô`
Ð%<ó `
ó qð`
ñF ðð óôp
Ð(?ó p
óðp
òf�rI   