+
    KV-jÀ  ã                   óò   € ^ RI t ^ RIHtHtHt ^ RIt^RIHtHtH	t	 ] P                  ! ]4      tR R ltR R lt]P                  ! RR	7      R
 R l4       tR R ltRR R lltR R ltR R ltR R ltR# )é    N)ÚTupleÚListÚUnion)Ú	LLMatcherÚ
LLExecutorÚLLInterpreterc                ó^   € V ^8„  d   QhR\         R\         R\        \         \         3,          /# ©é   Ú
batch_sizeÚ
vocab_sizeÚreturn)Úintr   )Úformats   "Úa/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/llguidance/torch.pyÚ__annotate__r      s)   € ÷ 1ñ 1¤#ð 1´3ð 1¼5ÄÄcÀ½?ñ 1ó    c                 ó$   € W^,           ^ ,          3# )é   © )r   r   s   &&r   Úget_bitmask_shaper      s   € Ø b�¨RÕ/Ð0Ð0r   c                óP   € V ^8„  d   QhR\         R\         R\        P                  /# r
   )r   ÚtorchÚTensor)r   s   "r   r   r      s*   € ÷ Jñ J¤sð J¼ð JÄÇÁñ Jr   c                 óT  € \        W4      p \        P                  ! VR\        P                  \        P                  P                  4       R7      #   \         dL   p\        P                  RT R24       \        P                  ! TR\        P                  RR7      u Rp?# Rp?ii ; i)é   )ÚdtypeÚ
pin_memoryzFailed to pin memory: z$. Falling back to non-pinned memory.FNéÿÿÿÿ)	r   r   ÚfullÚint32ÚcudaÚis_availableÚRuntimeErrorÚloggerÚwarning)r   r   ÚshapeÚes   &&  r   Úallocate_token_bitmaskr)      s„   € Ü˜jÓ5€Eð	JÜ�zŠzØØÜ—+‘+Ü—z‘z×.Ñ.Ó0ô	
ð 	
øô ô JÜ�‰Ð/°¨sÐ2VÐWÔXÜ�zŠz˜% ¬5¯;©;À5ÔIÕIûðJús   �AA ÁB'ÁA B"ÂB'Â"B'T)Údynamicc                ó\   € V ^8„  d   QhR\         P                  R\         P                  RR/# ©r   ÚlogitsÚmaskr   N©r   r   )r   s   "r   r   r      s+   € ÷ 7ñ 7¬u¯|©|ð 7Ü-2¯\©\ð7Ø>Bñ7r   c                 óp  € \         P                  ! V^ ^R7      p\         P                  ! ^ V P                  \         P                  R7      P                  VP                  ^,          4      pW#,	          ^,          pVRRV P                  ^,          13,          pV P                  V^ 8H  \        R4      4       R# )é    )Údim)Údevicer   ºNNNNú-inf)	r   Úrepeat_interleaveÚaranger3   r!   Úrepeatr'   Úmasked_fill_Úfloat)r-   r.   Úmask_expandedÚbit_indicesÚ	bit_maskss   &&   r   Ú"apply_token_bitmask_inplace_kernelr>      sŒ   € ô ×+Ò+¨D°"¸!Ô<€MÜ—,’,˜r¨&¯-©-Ü%*§[¡[ô2ß28±&¸¿¹ÀA½Ó2Gð àÕ-°Õ2€IØ˜!Ð-˜fŸl™l¨1�oÐ-Ð-Õ.€IØ
×Ñ˜	 Q™¬¨f«Ö6r   c                ó\   € V ^8„  d   QhR\         P                  R\         P                  RR/# r,   r/   )r   s   "r   r   r   %   s+   € ÷ 5ñ 5¬¯©ð 5Ü&+§l¡lð5Ø7;ñ5r   c                 óæ  € V P                  4       ^8X  d   V P                  ^ 4      p VP                  4       ^8X  d   VP                  ^ 4      pVP                  \        P                  8X  g   Q R4       hV P                  4       ^8X  g   Q R4       hV P
                  w  r#VP
                  w  rEW$8X  g   Q R4       h^ V,          pW68”  d    \        R4      V RVR13&   V RRV13,          p \        W4       R# )r   úMask must be int32zLogits must be 2DzBatch size mismatchr5   r4   N)r2   Ú	unsqueezer   r   r!   r'   r:   r>   )r-   r.   ÚbatchÚvocabÚm_batchÚm_vocabÚcutoffs   &&     r   Úapply_token_bitmask_inplacerH   %   sÖ   € à‡z�zƒ|�qÔØ×!Ñ! !Ó$ˆØ‡x�xƒz�Q„Ø�~‰~˜aÓ ˆØ�:‰:œŸ™Ô$Ð:Ð&:Ó:Ð$Ø�:‰:‹<˜1ÔÐ1Ð1Ó1ÐØ—<‘<�L€EØ—z‘zÑ€GØÔÐ2Ð2Ó2ÐØ�'�\€FØ„~Ü" 6›]ˆˆq�&‘'ˆzÑØ˜˜7˜F˜7˜
Õ#ˆÜ& vÖ4r   c                óv   € V ^8„  d   QhR\         \        \        3,          R\        P                  R\
        RR/# )r   ÚinterpÚbitmaskÚindexr   N)r   r   r   r   r   r   )r   s   "r   r   r   7   s?   € ÷ Oñ O¤E¬)´]Ð*BÕ$Cð OÜ%*§\¡\ðOä#&ðOà/3ñOr   c                 ó�  € VP                   \        P                  8X  g   Q R 4       hVP                  '       g   Q R4       hVP	                  4       ^8X  g   Q R4       hWR3,          pVP                  4       '       g   Q R4       hV P                  VP                  4       VP                  4       VP                  4       ,          4       R# )rA   úMask must be on CPUúMask must be 2Dr4   úMask must be contiguousN)
r   r   r!   Úis_cpur2   Úis_contiguousÚunsafe_compute_mask_ptrÚdata_ptrÚnumelÚelement_size)rJ   rK   rL   Úvs   &&& r   Úfill_next_token_bitmaskrX   7   s›   € ð �=‰=œEŸK™KÔ'Ð=Ð)=Ó=Ð'Ø�>�>ˆ>Ð0Ð0Ó0ˆ>Ø�;‰;‹=˜AÔÐ0Ð0Ó0ÐØ�q�Õ€AØ�?‰?×ÒÐ7Ð7Ó7ÐØ
×"Ñ" 1§:¡:£<°·±³¸Q¿^¹^Ó=MÕ1MÖNr   c                óŒ   € V ^8„  d   QhR\         R\        \        \        \        3,          ,          R\
        P                  RR/# ©r   ÚexecutorÚmatchersrK   r   N©r   r   r   r   r   r   r   )r   s   "r   r   r   B   s=   € ÷ 	,ñ 	,¬*ð 	,Ü*.¬u´YÄ°^Õ/DÕ*Eð	,ä).¯©ð	,à:>ñ	,r   c                 ób  € VP                   \        P                  8X  g   Q R 4       hVP                  '       g   Q R4       hVP	                  4       ^8X  g   Q R4       hVP
                  w  r4VP                  4       '       g   Q R4       hV P                  WP                  4       V^,          V4       R# ©rA   rN   rO   rP   N)	r   r   r!   rQ   r2   r'   rR   rS   rT   ©r[   r\   rK   rC   rD   s   &&&  r   Úfill_next_token_bitmask_parra   B   s–   € ð �=‰=œEŸK™KÔ'Ð=Ð)=Ó=Ð'Ø�>�>ˆ>Ð0Ð0Ó0ˆ>Ø�;‰;‹=˜AÔÐ0Ð0Ó0ÐØ—=‘=�L€EØ× Ñ ×"Ò"Ð=Ð$=Ó=Ð"Ø×$Ñ$ X×/?Ñ/?Ó/AÀ5È1Å9Ø%*ö,r   c          	      ó¬   € V ^8„  d   QhR\         R\        \        \        \        \        \        ,          3,          ,          R\
        P                  RR/# rZ   r]   )r   s   "r   r   r   N   sJ   € ÷ fñ f¼Jð fÜ*.¬u´YÄÄTÌ#ÅYÐ5NÕ/OÕ*Pðfä).¯©ðfà:>ñfr   c                 ób  € VP                   \        P                  8X  g   Q R 4       hVP                  '       g   Q R4       hVP	                  4       ^8X  g   Q R4       hVP
                  w  r4VP                  4       '       g   Q R4       hV P                  WP                  4       V^,          V4       R# r_   )	r   r   r!   rQ   r2   r'   rR   Ú(unsafe_compute_mask_ptr_with_draft_tokenrT   r`   s   &&&  r   Ú-fill_next_token_bitmask_par_with_draft_tokensre   N   s—   € ð �=‰=œEŸK™KÔ'Ð=Ð)=Ó=Ð'Ø�>�>ˆ>Ð0Ð0Ó0ˆ>Ø�;‰;‹=˜AÔÐ0Ð0Ó0ÐØ—=‘=�L€EØ× Ñ ×"Ò"Ð=Ð$=Ó=Ð"Ø×5Ñ5°h×@PÑ@PÓ@RÐTYÐ\]ÕT]Ð_dÖer   c                óŠ   € V ^8„  d   QhR\         R\        \        \        \        3,          ,          R\        \
        ,          /# )r   r[   r\   r   )r   r   r   r   r   Úbool)r   s   "r   r   r   Y   s5   € ÷ 0ñ 0¤
ð 0Ü $¤U¬9´c¨>Õ%:Õ ;ð0Ü@DÄTÅ
ñ0r   c                ó$   € V P                  V4      # )a�  
Consume a single token for each matcher in parallel.

Args:
    executor: The LLExecutor to use for parallel execution.
    matchers: List of tuples containing (LLMatcher, token_id).

Returns:
    List[bool]: Success/failure for each matcher (in order).

Note:
    Matchers that fail (return False) are left in an error state,
    consistent with the behavior of consume_token on a single matcher.
)Úconsume_token_par)r[   r\   s   &&r   ri   ri   Y   s   € ð  ×%Ñ% hÓ/Ð/r   )r   )ÚloggingÚtypingr   r   r   r   Ú_libr   r   r   Ú	getLoggerÚ__name__r%   r   r)   Úcompiler>   rH   rX   ra   re   ri   r   r   r   Ú<module>rp      sj   ðÛ ß %Ñ %Û ß 6Ñ 6à	×	Ò	˜8Ó	$€õ1õJð ‡‚�tÔô7ó ð7õ5÷$Oõ	,õf÷0r   