ó
    CC˜jl£  ã                   ó¶  • S r SSKrSSKrSSKJrJr  SSKJrJr  SSK	J
r
  SSKJr  SSKJrJr  SS	KJrJr  SS
KJrJr  SSKJrJr  SSKJrJrJrJrJrJrJ r J!r!  SSK"J#r#J$r$J%r%J&r&  SSK'J(r(  SSK)J*r*J+r+  \(       a  SSK,J-r-  SSK.J/r/  S\&S\04S jr1S\&S\04S jr2S\&S\&4S jr3 " S S\&5      r4 " S S\&5      r5 " S S\45      r6 " S S\45      r7 " S  S!\45      r8g)"a‰  
Set-related variable tracking classes for PyTorch Dynamo.

This module implements variable tracking for different types of set-like objects:
- Regular Python sets (set)
- Frozen sets (frozenset)
- Ordered sets (torch.utils._ordered_set.OrderedSet)
- Dictionary key sets (dict_keys views used as sets)

These classes are responsible for tracking set operations during graph compilation,
maintaining proper guards for set mutations and element existence checks.

The implementation uses a special HashableTracker wrapper to handle set elements
while preserving proper aliasing semantics. Sets are modeled internally as
dictionaries with None values.
é    N)ÚIterableÚIterator)ÚAnyÚTYPE_CHECKING©Ú
OrderedSeté   )Ú	variables)Úcreate_call_functionÚcreate_instruction)Úraise_observed_exceptionÚraise_type_error)ÚGuardBuilderÚinstall_guard)Úis_constant_sourceÚis_from_local_source)Ú_item_debug_reprÚcmp_name_to_op_mappingÚistypeÚlazily_unpackÚraise_args_mismatchÚset_methodsÚtracked_reprÚunpack_iterableé   )ÚMemberÚMethodÚValueMutationNewÚVariableTracker)ÚConstantVariable)ÚHashableTrackerÚis_hashable)Ú	PyCodegen)ÚInstructionTranslatorBaseÚobjÚreturnc                 óJ   • [        U R                  5       [        [        45      $ ©N)Ú
issubclassÚpython_typeÚsetÚ	frozenset©r%   s    ÚªC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/_dynamo/variables/sets.pyÚpyanyset_checkr/   6   s   € Ü�c—o‘oÓ'¬#¬yÐ)9Ó:Ð:ó    c                 ó>   • [        U R                  5       [        5      $ r(   )r)   r*   r+   r-   s    r.   Úpyset_checkr2   :   s   € ä�c—o‘oÓ'¬Ó-Ð-r0   c                 óÚ   • [        U [        R                  5      (       a  U R                  OU nUc  [	        S5      eUR                  UR                  R                  5       [        5       SS9$ )aJ  Mirrors CPython's internal `set_copy` (Objects/setobject.c).

Always allocates a fresh set/frozenset with a shallow-copied items dict.
Distinct from the user-visible `.copy()` method, which preserves identity
for exact frozenset (`frozenset_copy`).  Use this for binary-op scratch
storage so mutations don't bleed into the input.
Nz_base_vt must not be None)ÚitemsÚmutation_typeÚsource)	Ú
isinstancer
   ÚUserDefinedSetVariableÚ_base_vtÚAssertionErrorÚcloner4   Úcopyr   )r%   Úbases     r.   Úset_copyr>   ?   s`   € ô & c¬9×+KÑ+K×LÑLˆ3�<Š<ÐRU€DØ�|ÜÐ8Ó9Ð9Ø�:‰:Ø�j‰j�o‰oÓÜ&Ó(Øð ð ð r0   c            
       óä  ^ • \ rS rSrSr\r\R                  r	\R                  rS\\\-     S\SS4U 4S jjrS\4S jr\S\S	   4S
 j5       r\S\4S j5       rS\4S jrS\4S jrS\4S jrS\4S jrS`S jrSaS jrS\S\4S jrS\4S jr S\S-  S\S\4S jr!SSS\"\   4S jr#S\S\4U 4S jjr$S\4S jr%SSS\&\'\4   4S jr(SSS\S\)4S jr*SSS \"\   SS4S! jr+SSS"\S \"\   S\,\\4   S\4
S# jr-SSS\SS$4S% jr.SSS\S\"\   4S& jr/SbS' jr0SSS(\S\4S) jr1SSS\S \"\   S\,\\4   SS*4
S+ jr2SSS \"\   S\,\\4   S\4S, jr3SSS \"\   S\,\\4   S\4S- jr4SSS \"\   S\,\\4   S\4S. jr5SSS \"\   S\,\\4   S\4S/ jr6SSS \"\   S\,\\4   S\4S0 jr7SSS \"\   S\,\\4   S\4S1 jr8SSS \"\   S\,\\4   S\4S2 jr9SSS \"\   S\,\\4   S\4S3 jr:SSS \"\   S\,\\4   S\4S4 jr;SSS \"\   S\,\\4   S\4S5 jr<SSS \"\   S\,\\4   S\S-  4S6 jr=SSS \"\   S\,\\4   S\4S7 jr>SSS \"\   S\,\\4   S\4S8 jr?S9 r@SSS \"\   S\,\\4   S\4S: jrASSS \"\   S\,\\4   S\4S; jrBSSS \"\   S\,\\4   S\4S< jrCSSS \"\   S\,\\4   S\4S= jrD0 S>\E" \35      _S?\E" \45      _S@\E" \55      _SA\E" \65      _SB\E" \75      _SC\E" \85      _SD\E" \95      _SE\E" \:5      _SF\E" \;5      _SG\E" \<5      _SH\E" \=5      _SI\E" \>5      _SJ\E" \?5      _SK\E" \A5      _SL\E" \B5      _SM\E" \C5      _SN\E" \D5      _rFSSSO\S\4SP jrGSSS \"\   S\,\\4   S\4SQ jrHSSS\4SR jrI ScSSS\SS\S\4ST jjrJSSS\S\4SU jrK ScSSS\SS\S\4SV jjrLSSS\S\4SW jrM ScSSS\SS\S\4SX jjrNSSS\S\4SY jrO ScSSS\SS\S\4SZ jjrPSSS\S\4S[ jrQSSS\4S\ jrRSSS\S]\S\4S^ jrSS_rTU =rU$ )dÚSetVariableéQ   z2Represents a Python set during symbolic execution.r4   Úkwargsr&   Nc                 óP  >• SU;   a  UR                  S5        SU;   a  UR                  S5        [        TU ]  " S0 UD6  / nU HS  n[        U[        5      (       a  UR                  U5        M+  UR                  [	        UR                  5       5      5        MU     [        R                  U[        R                  5       5      U l        U R                  (       a  [        U R                  5      (       + OSU l        [        R                  U[        R                  5       5      U l        g )NÚoriginal_itemsÚshould_reconstruct_allT© )ÚpopÚsuperÚ__init__r7   r!   ÚappendÚrealizeÚdictÚfromkeysr@   Ú_default_valuer4   r6   r   rE   rD   )Úselfr4   rB   Úhashable_itemsÚitemÚ	__class__s        €r.   rI   ÚSetVariable.__init__Z   sä   ø€ ð ˜vÓ%Ø�J‰JÐ'Ô(Ø# vÓ-Ø�J‰JÐ/Ô0ä‰ÒÑ"˜6Ò"ð
 ˆÛˆDÜ˜$¤×0Ñ0à×%Ñ% dÖ+ð ×%Ñ%¤o°d·l±l³nÓ&EÖFñ ô —]‘] >´;×3MÑ3MÓ3OÓPˆŒ
à59·[·[Ô$ T§[¡[Ó1Õ1Àdð 	Ô#ô #Ÿm™mØœK×6Ñ6Ó8ó
ˆÕr0   c                 óü   • U R                   (       d  g/ nU R                    HB  n[        U[        5      (       a  UR                  OUn[	        U5      nUR                  U5        MD     SSR                  U5      -   S-   $ )Nzset()Ú{ú, Ú})r4   r7   r!   Úvtr   rJ   Újoin)rO   r4   ÚvrX   Úval_strs        r.   Ú
debug_reprÚSetVariable.debug_repr}   sg   € Ø�z�zØà!ˆEØ—Z”Z�Ü'¨¬?×;Ñ;�Q—T’TÀ�Ü*¨2Ó.�Ø—‘˜WÖ%ñ  ð ˜Ÿ™ 5Ó)Ñ)¨CÑ/Ð/r0   r!   c                 óH   • [        U R                  R                  5       5      $ r(   ©r+   r4   Úkeys©rO   s    r.   Ú	set_itemsÚSetVariable.set_itemsˆ   ó   € ä�4—:‘:—?‘?Ó$Ó%Ð%r0   c                  ó.   • [         R                  " S 5      $ r(   ©r    ÚcreaterF   r0   r.   rN   ÚSetVariable._default_valueŒ   s   € ô  ×&Ò& tÓ,Ð,r0   c                 ót   • U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf r(   )rb   rX   Úas_proxy©rO   Úks     r.   rj   ÚSetVariable.as_proxy‘   s&   € Ø)-¯ªÓ8ª A—‘—‘–©Ñ8Ð8ùÒ8ó   �#5c                 ó   • [         $ r(   ©r+   ra   s    r.   r*   ÚSetVariable.python_type”   s   € Üˆ
r0   c                 ó:   • [        S U R                   5       5      $ )Nc              3   óT   #   • U  H  oR                   R                  5       v •  M      g 7fr(   )rX   Úis_python_constant)Ú.0rl   s     r.   Ú	<genexpr>Ú1SetVariable.is_python_constant.<locals>.<genexpr>›   s   é € ÐE²n°—4‘4×*Ñ*×,Ð,²nùs   ‚&()Úallrb   ra   s    r.   rt   ÚSetVariable.is_python_constant—   s   € ô ÑE°d·n²nÓEÓEÐEr0   c                 ót   • U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf r(   )rb   rX   Úas_python_constantrk   s     r.   r{   ÚSetVariable.as_python_constant�   s)   € Ø37·>²>ÓB²>¨a—‘×'Ñ'Ö)±>ÑBÐBùÒBrn   Útxr$   c                 óú   ^• U R                   (       d(  [        R                  " TU R                  5        S35      $ SR	                  U4S jU R
                   5       5      n[        R                  " TSU-   S-   5      $ )Nú()rV   c              3   óP   >#   • U  H  n[        TUR                  5      v •  M     g 7fr(   ©r   rX   ©ru   rQ   r}   s     €r.   rv   Ú+SetVariable.tp_repr_impl.<locals>.<genexpr>¤   ó   øé € ÐOÂ¸œ, r¨4¯7©7×3Ð3Âùó   ƒ#&rU   rW   ©r4   r   ÚbuildÚpython_type_namerY   rb   ©rO   r}   r4   s    ` r.   Útp_repr_implÚSetVariable.tp_repr_impl    sb   ø€ à�z�zÜ"×(Ò(¨°×0EÑ0EÓ0GÐ/HÈÐ-KÓLÐLØ—	‘	ÔOÀÇÂÓOÓOˆÜ×$Ò$ R¨¨u©°sÑ):Ó;Ð;r0   c                 óÐ   • UR                  U R                   Vs/ s H  o"R                  PM     sn5        UR                  [	        S[        U R                  5      S95        g s  snf )NÚ	BUILD_SET©Úarg)Úforeachrb   rX   Úappend_outputr   Úlen©rO   ÚcodegenÚxs      r.   ÚreconstructÚSetVariable.reconstruct§   sG   € Ø�‰ t§~¢~Ó6¢~ !Ÿœ¡~Ñ6Ô7Ø×ÑÔ0°Ä#ÀdÇnÁnÓBUÑVÕWùò 7s   šA#rX   c                 ó®   • [        U[        5      (       d  [        S[        U5       35      e[	        U5      (       d  g[        U5      nX R                  ;   $ )NzExpected VariableTracker, got F)r7   r   r:   Útyper"   r!   r4   )rO   rX   Úkeys      r.   Ú__contains__ÚSetVariable.__contains__«   sK   € Ü˜"œo×.Ñ.Ü Ð#AÄ$ÀrÃ(ÀÐ!LÓMÐMô ˜2�‰ØÜ˜bÓ!ˆØ—j‘jÑ Ð r0   c                 ó„   ^ • T R                   =(       d-    [        U 4S jT R                  R                  5        5       5      $ )Nc              3   ó’   >#   • U  H<  u  pTR                  TR                  R                  UR                  5      U5      v •  M>     g 7fr(   )Úis_new_itemrD   ÚgetrX   )ru   rš   ÚvaluerO   s      €r.   rv   Ú,SetVariable.has_new_items.<locals>.<genexpr>·   sA   øé € ð 2
ò 1‘
�ð ×Ñ˜T×0Ñ0×4Ñ4°S·V±VÓ<¸e×DÐDÚ0ùs   ƒAA)rE   Úanyr4   ra   s   `r.   Úhas_new_itemsÚSetVariable.has_new_items¶   s9   ø€ Ø×*Ñ*÷ 
¬cô 2
ð #Ÿj™j×.Ñ.Ô0ó2
ó /
ð 	
r0   r¡   Úotherc                 óø   • U(       a]  UR                  5       (       aH  UR                  5       (       a3  [        UR                  5       5      [        UR                  5       5      :g  $ [        U5      [        U5      :g  $ r(   )Úis_realizedÚidrK   )rO   r¡   r¦   s      r.   rŸ   ÚSetVariable.is_new_item½   sW   € ö �U×&Ñ&×(Ñ(¨U×->Ñ->×-@Ñ-@Ü�e—m‘m“oÓ&¬"¨U¯]©]«_Ó*=Ñ=Ð=Ü�%‹yœB˜u›IÑ%Ð%r0   c                 óX   • U R                    Vs/ s H  o"R                  PM     sn$ s  snf r(   )r4   rX   )rO   r}   r•   s      r.   Úunpack_var_sequenceÚSetVariable.unpack_var_sequenceÄ   s"   € ð #ŸjšjÓ)šj˜—”™jÑ)Ð)ùÒ)s   �'c                 ó€   >• SSK JnJn  [        UR	                  S5      X245      (       a  S US'   [
        TU ]  " S0 UD6$ )Nr   )ÚAttributeMutationNewr   r5   r6   rF   )Útorch._dynamo.variables.baser¯   r   r7   r    rH   r;   )rO   rB   r¯   r   rR   s       €r.   r;   ÚSetVariable.cloneÉ   sC   ø€ ßWäØ�J‰J�Ó'Ð*:Ð)Q÷
ñ 
ð  $ˆF�8ÑÜ‰wŠ}Ñ&˜vÑ&Ð&r0   c                 ó   • g)NFrF   ra   s    r.   r"   ÚSetVariable.is_hashableÒ   s   € Ør0   c                 óF   • SSK Jn  U" USU R                  5        S35        g )Nr	   )r   úunhashable type: 'Ú')Úexcr   rˆ   )rO   r}   r   s      r.   Ú	hash_implÚSetVariable.hash_implÕ   s#   € Ý*á˜Ð1°$×2GÑ2GÓ2IÐ1JÈ!ÐLÕMr0   Únamec                 ó`   • [         R                  " U[        U R                  5       U5      5      $ r(   )r   r‡   Úhasattrr*   )rO   r}   rº   s      r.   Úcall_obj_hasattrÚSetVariable.call_obj_hasattrÚ   s'   € ô ×$Ò$ R¬°×1AÑ1AÓ1CÀTÓ)JÓKÐKr0   Úargsc           	      óÀ  • U R                   (       d  g UR                  R                  R                  U 5      (       a  g US   U ;   nUS   R                   c‰  US   R	                  5       (       ap  U(       a  [        U 5      R                  O[        U 5      R                  n[        U R                  [        R                  " UUS   R                  5       S95      5        g g g )Nr   )rš   )r6   ÚoutputÚside_effectsÚis_modifiedrt   r™   ÚCONTAINS_GUARDÚNOT_CONTAINS_GUARDr   Ú
make_guardÚ	functoolsÚpartialr{   )rO   r}   r¿   ÚcontainsÚguard_fns        r.   Úinstall_set_contains_guardÚ&SetVariable.install_set_contains_guardß   s¹   € ð �{�{Øà�9‰9×!Ñ!×-Ñ-¨d×3Ñ3Øà˜‘7˜d‘?ˆØ�‰7�>‰>Ñ! d¨1¡g×&@Ñ&@×&BÑ&Bæ-5”�T“
×)Ò)¼4À»:×;XÑ;Xð ô Ø—‘Ü×%Ò%Ø Ø  ™G×6Ñ6Ó8ñóõð	 'CÐ!r0   Úfnc                 óx  •  U" U /UQ Vs/ s H  oUR                  5       PM     sn0 UR                  5        VVs0 s H  u  pgXgR                  5       _M     snnD6n[        R                  " UW5      $ s  snf s  snnf ! [         a1  n	[        [	        U	5      U[        U	R                  5      S9   S n	A	NXS n	A	ff = f)N©r¿   )	r{   r4   Ú	Exceptionr   r™   Úlistr¿   r   r‡   )
rO   r}   rÍ   r¿   rB   r•   rl   rZ   Úresr·   s
             r.   Ú_fast_set_methodÚSetVariable._fast_set_methodö   s¤   € ð	IÙØ37°-¸$±-Ó@²-¨Q×&Ñ&Ö(±-Ñ@ðà9?¿¹¼ÔHº±°�1×*Ñ*Ó,Ò,¹ÒHñˆCô ×$Ò$ R¨Ó-Ð-ùò AùÛHøäó 	IÜ$¤T¨#£Y°¼¸c¿h¹h»×Hûð	Iús2   ‚	A> ‹A3¤A> ºA8ÁA> Á3A> Á>
B9Â'B4Â4B9zIterator[HashableTracker]c              #   óÈ   #   • SSK Jn  [        U[        U45      (       a#  UR                  R                  5        S h  v•N   g S [        X5       5        S h  v•N   g  N  N7f)Nr   ©ÚConstDictVariablec              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr(   )r!   )ru   rQ   s     r.   rv   Ú1SetVariable._iter_operand_keys.<locals>.<genexpr>  s   é € ÐOÒ6N¨d”O D×)Ð)Ò6Nùs   ‚)Údictsr×   r7   r@   r4   r`   r   )rO   r}   r¦   r×   s       r.   Ú_iter_operand_keysÚSetVariable._iter_operand_keys  sT   é € õ 	-ä�eœkÐ+<Ð=×>Ñ>Ø—{‘{×'Ñ'Ó)×)Ð)ØáO´mÀBÔ6NÓO×OÑOñ *ñ 	Pùs!   ‚;A"½A¾A"ÁA ÁA"Á A"c                 óÖ   • SSK Jn  [        U[        U45      (       a#  [	        UR
                  R                  5       5      $ [        X5       Vs/ s H  n[        U5      PM     sn$ s  snf )Nr   rÖ   )	rÚ   r×   r7   r@   rÑ   r4   r`   r   r!   )rO   r}   r¦   r×   r•   s        r.   Ú_operand_keysÚSetVariable._operand_keys  sV   € õ 	-ä�eœkÐ+<Ð=×>Ñ>Ü˜Ÿ™×(Ñ(Ó*Ó+Ð+Ü,;¸BÔ,FÓGÒ,F q” Ö"Ñ,FÑGÐGùÒGs   ÁA&c                 óD   • [        U 5      " [        U5      [        5       S9$ )N©r5   )r™   rÑ   r   )rO   r4   s     r.   Ú_new_setÚSetVariable._new_set$  s   € ô �DŒzœ$˜u›+Ô5EÓ5GÑHÐHr0   rQ   c                 ó   • [        U5      (       dC  [        U5      (       d  [        USUR                  5        S35        [	        UR
                  5      nU R                  X/5        X ;   n[        R                  " X5      $ )Nrµ   r¶   )	r"   r2   r   rˆ   ÚFrozensetVariabler4   rË   r   r‡   )rO   r}   rQ   rÉ   s       r.   Úsq_contains_implÚSetVariable.sq_contains_impl*  ss   € ô ˜4× Ñ ô ˜t×$Ñ$Ü  Ð'9¸$×:OÑ:OÓ:QÐ9RÐRSÐ%TÔUô
 % T§Z¡ZÓ0ˆDØ×'Ñ'¨¨FÔ3Ø‘<ˆÜ×$Ò$ RÓ2Ð2r0   zVariableTracker | Nonec                 ó   ^• SSK Jn  SSKJm  [	        U4S jU 5       5      (       dW  U" X45      (       aJ  U R                  5       [        [        4;   a,  U R                  5       nU R                  U[        Xb5      X45      $ g )Nr	   )Úcheck_constant_argsr   rÖ   c              3   óH   >#   • U  H  n[        U[        T45      v •  M     g 7fr(   )r7   r@   )ru   Úar×   s     €r.   rv   Ú3SetVariable._try_fast_set_method.<locals>.<genexpr>M  s!   øé € ÐRÊTÈ”J˜q¤;Ð0AÐ"B×CÐCÊTùs   ƒ")
Úutilsré   rÚ   r×   r£   r*   r+   r,   rÓ   Úgetattr)rO   r}   rº   r¿   rB   ré   Úpy_typer×   s          @r.   Ú_try_fast_set_methodÚ SetVariable._try_fast_set_method=  sj   ø€ õ 	0Ý,ô ÔRÉTÓR×RÑRÙ# D×1Ñ1Ø× Ñ Ó"¤s¬IÐ&6Ó6à×&Ñ&Ó(ˆGØ×(Ñ(¨¬W°WÓ-CÀTÓRÐRØr0   c                 óÒ   • UR                   R                  R                  U 5        [        R	                  5       U R
                  [        US   5      '   [        R                  " S 5      $ )Nr   )	rÁ   rÂ   Úmutationr@   rN   r4   r!   r    rg   ©rO   r}   r¿   rB   s       r.   ÚaddÚSetVariable.addU  sM   € ð 	�	‰	×Ñ×'Ñ'¨Ô-Ü/:×/IÑ/IÓ/Kˆ�
‰
”? 4¨¡7Ó+Ñ,Ü×&Ò& tÓ,Ð,r0   c                 ób  •  U R                   R                  5       R                  nSU l        UR                  R                  R                  U 5        U R                  R                  [        W5      5        U$ ! [         a,  n[	        [        U[        UR                  5      S9   S nANƒS nAff = f)NrÏ   T)rb   rG   rX   ÚKeyErrorr   rÑ   r¿   rE   rÁ   rÂ   ró   r4   r!   )rO   r}   r¿   rB   ÚresultÚes         r.   rG   ÚSetVariable.pop`  s„   € ð	FØ&*§n¡n×&8Ñ&8Ó&:×&=Ñ&=ˆFð '+ˆÔ#Ø
�	‰	×Ñ×'Ñ'¨Ô-Ø�
‰
�‰” vÓ.Ô/Øˆøô ó 	FÜ$¤X¨r¼¸Q¿V¹V»×Eûð	Fús   ‚$A8 Á8
B.Â"B)Â)B.c                 óâ   • U R                  USX#5      nUb  U$ U R                  XS   5       H*  nXPR                  ;   d  M  [        R                  " S5      s  $    [        R                  " S5      $ )NÚ
isdisjointr   FT)rð   rÛ   r4   r    rg   )rO   r}   r¿   rB   Úfastrš   s         r.   rý   ÚSetVariable.isdisjointp  sj   € ð ×(Ñ(¨¨\¸4ÓHˆØÑØˆKØ×*Ñ*¨2°A©wÖ7ˆCØ—j‘jÕ Ü'×.Ò.¨uÓ5Ò5ñ 8ô  ×&Ò& tÓ,Ð,r0   c                 ó&  • U R                  USX#5      nUb  U$ [        U R                  5      nU HH  n[        U R	                  X5      5      nUR                  5        VV	s0 s H  u  p‰X‡;   d  M  X‰_M     nnn	MJ     U R                  U5      $ s  sn	nf ©NÚintersection)rð   rL   r4   r+   rÞ   râ   )
rO   r}   r¿   rB   rþ   Ú	out_itemsr¦   Ú
other_keysrl   rZ   s
             r.   r  ÚSetVariable.intersection~  s�   € ð ×(Ñ(¨¨^¸TÓJˆØÑØˆKÜ˜Ÿ™Ó$ˆ	ÛˆEÜ˜T×/Ñ/°Ó:Ó;ˆJØ*3¯/©/Ô*;ÔOÒ*;¡$ !¸q¹›˜šÑ*;ˆIÑO‰Iñ ð �}‰}˜YÓ'Ð'ùó Ps   Á BÁ/Bc                 óÂ  • [        U R                  5      nU HH  n[        U R                  X5      5      nUR                  5        VVs0 s H  u  pxXv;   d  M  Xx_M     nnnMJ     UR                  R
                  R                  U 5        SU l        U R                  R                  5         U R                  R                  U5        [        R                  " S 5      $ s  snnf ©NT)rL   r4   r+   rÞ   rÁ   rÂ   ró   rE   ÚclearÚupdater    rg   )	rO   r}   r¿   rB   Úkeptr¦   r  rl   rZ   s	            r.   Úintersection_updateÚSetVariable.intersection_update�  s²   € ô �D—J‘JÓˆÛˆEÜ˜T×/Ñ/°Ó:Ó;ˆJØ%)§Z¡Z¤\ÔE¢\™T˜Q°Q±_“D�A’D¡\ˆDÑE‰Dñ ð 	�	‰	×Ñ×'Ñ'¨Ô-Ø&*ˆÔ#Ø�
‰
×ÑÔØ�
‰
×Ñ˜$ÔÜ×&Ò& tÓ,Ð,ùó Fs   ÁCÁCc                 ó  • U R                  USX#5      nUb  U$ [        U R                  5      nU H?  nU R                  X5       H'  nUR	                  U[
        R                  5       5        M)     MA     U R                  U5      $ ©NÚunion)rð   rL   r4   rÞ   Ú
setdefaultr@   rN   râ   ©rO   r}   r¿   rB   rþ   r  r¦   rš   s           r.   r  ÚSetVariable.union�  sz   € ð ×(Ñ(¨¨W°dÓCˆØÑØˆKÜ˜Ÿ™Ó$ˆ	ÛˆEØ×)Ñ)¨"Ö4�Ø×$Ñ$ S¬+×*DÑ*DÓ*FÖGó 5ñ ð �}‰}˜YÓ'Ð'r0   c                 óä   • U R                  USX#5      nUb  U$ [        U R                  5      nU H-  nU R                  X5       H  nUR	                  US 5        M     M/     U R                  U5      $ ©NÚ
difference)rð   rL   r4   rÞ   rG   râ   r  s           r.   r  ÚSetVariable.difference¬  so   € ð ×(Ñ(¨¨\¸4ÓHˆØÑØˆKÜ˜Ÿ™Ó$ˆ	ÛˆEØ×)Ñ)¨"Ö4�Ø—‘˜c 4Ö(ó 5ñ ð �}‰}˜YÓ'Ð'r0   c                 ó   • UR                   R                  R                  U 5        SU l        U H7  nU R	                  X5       H  nU R
                  R                  US 5        M!     M9     [        R                  " S 5      $ r  )	rÁ   rÂ   ró   rE   rÞ   r4   rG   r    rg   ©rO   r}   r¿   rB   r¦   rš   s         r.   Údifference_updateÚSetVariable.difference_update»  sh   € ð 	�	‰	×Ñ×'Ñ'¨Ô-Ø&*ˆÔ#ÛˆEØ×)Ñ)¨"Ö4�Ø—
‘
—‘˜s DÖ)ó 5ñ ô  ×&Ò& tÓ,Ð,r0   c                 óÔ  • U R                  USX#5      nUb  U$ [        R                  U R                  XS   5      [        R                  5       5      nU R                  R                  5        VVs0 s H  u  pgXe;  d  M  Xg_M     nnnUR                  UR                  5        VVs0 s H  u  pgX`R                  ;  d  M  Xg_M     snn5        U R                  U5      $ s  snnf s  snnf )NÚsymmetric_differencer   )	rð   rL   rM   rÞ   r@   rN   r4   r	  râ   )	rO   r}   r¿   rB   rþ   r¦   rl   rZ   r  s	            r.   r  Ú SetVariable.symmetric_differenceÈ  sÈ   € ð ×(Ñ(¨Ð-CÀTÓRˆØÑØˆKÜ—‘Ø×Ñ˜r¨¡7Ó+¬[×-GÑ-GÓ-Ió
ˆð '+§j¡j×&6Ñ&6Ô&8ÔKÒ&8™d˜a¸A¹N“T�Q’TÑ&8ˆ	ÑKØ×Ñ¨5¯;©;¬=ÔPª=¡4 1¸AÇZÁZÑ<O›$˜!š$©=ÒPÔQØ�}‰}˜YÓ'Ð'ùó LùÛPs   Á0CÁ?CÂ&C$
Â?C$
c                 óp  • [         R                  U R                  XS   5      [        R	                  5       5      nU R
                  R                  5        VVs0 s H  u  pVXT;  d  M  XV_M     nnnUR                  UR                  5        VVs0 s H  u  pVXPR
                  ;  d  M  XV_M     snn5        UR                  R                  R                  U 5        SU l
        U R
                  R                  5         U R
                  R                  U5        [        R                  " S 5      $ s  snnf s  snnf ©Nr   T)rL   rM   rÞ   r@   rN   r4   r	  rÁ   rÂ   ró   rE   r  r    rg   )rO   r}   r¿   rB   r¦   rl   rZ   Ú	new_itemss           r.   Úsymmetric_difference_updateÚ'SetVariable.symmetric_difference_updateØ  sì   € ô —‘Ø×Ñ˜r¨¡7Ó+¬[×-GÑ-GÓ-Ió
ˆð '+§j¡j×&6Ñ&6Ô&8ÔKÒ&8™d˜a¸A¹N“T�Q’TÑ&8ˆ	ÑKØ×Ñ¨5¯;©;¬=ÔPª=¡4 1¸AÇZÁZÑ<O›$˜!š$©=ÒPÔQØ
�	‰	×Ñ×'Ñ'¨Ô-Ø&*ˆÔ#Ø�
‰
×ÑÔØ�
‰
×Ñ˜)Ô$Ü×&Ò& tÓ,Ð,ùó LùÛPs   ÁD,Á'D,ÂD2
Â'D2
c                 óB  • U R                  5       (       d  g UR                  R                  R                  U 5        U HI  nU R	                  X5       H1  nU R
                  R                  U[        R                  5       5        M3     MK     [        R                  " S 5      $ r(   )Ú
is_mutablerÁ   rÂ   ró   rÞ   r4   r  r@   rN   r    rg   r  s         r.   r	  ÚSetVariable.updateé  s{   € ð �‰× Ñ ØØ
�	‰	×Ñ×'Ñ'¨Ô-ÛˆEØ×)Ñ)¨"Ö4�Ø—
‘
×%Ñ% c¬;×+EÑ+EÓ+GÖHó 5ñ ô  ×&Ò& tÓ,Ð,r0   c                 ó   • U R                  XS   5      R                  5       (       d  [        [        XS   /S9  SU l        UR
                  R                  R                  U 5        [        US   5      (       a  US   O[        US   R                  5      nU R                  R                  [        U5      5        [        R                  " S 5      $ )Nr   rÏ   T)ræ   r{   r   rø   rE   rÁ   rÂ   ró   r"   rå   r4   rG   r!   r    rg   ©rO   r}   r¿   rB   rš   s        r.   ÚremoveÚSetVariable.remove÷  s¡   € ð ×$Ñ$ R¨a©Ó1×DÑD×FÑFÜ$¤X¨r¸a¹¸	ÒBØ&*ˆÔ#Ø
�	‰	×Ñ×'Ñ'¨Ô-ô % T¨!¡W×-Ñ-ˆd�1ŠgÔ3DÀTÈ!ÁWÇ]Á]Ó3SˆØ�
‰
�‰” sÓ+Ô,Ü×&Ò& tÓ,Ð,r0   c                 ó|  • U R                  XS   5      R                  5       (       a€  SU l        UR                  R                  R                  U 5        [        US   5      (       a  US   O[        US   R                  5      nU R                  R                  [        U5      5        [        R                  " S 5      $ r  )ræ   r{   rE   rÁ   rÂ   ró   r"   rå   r4   rG   r!   r    rg   r'  s        r.   ÚdiscardÚSetVariable.discard  s–   € ð × Ñ  ¨!¡WÓ-×@Ñ@×BÑBØ*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1ô ' t¨A¡w×/Ñ/��Q’Ô5FÀtÈAÁwÇ}Á}Ó5Uð ð �J‰J�N‰Nœ?¨3Ó/Ô0Ü×&Ò& tÓ,Ð,r0   c                 óò   • SSK Jn  US   R                  5       n[        U[        5      (       d'  UR                  U[        5      R                  X/0 5      nUR                  X5      R                  XU/0 5      $ )Nr   ©ÚSourcelessBuilderr   )Úbuilderr/  rK   r   r@   rg   r+   Úcall_function)rO   r}   r¿   Úopr/  r¦   s         r.   Ú_ordering_testÚSetVariable._ordering_test  sg   € Ý.à�Q‘—‘Ó!ˆÜ�eœ[×)Ñ)Ø%×,Ñ,¨R´Ó5×CÑCÀBÈÐQSÓTˆEØ ×'Ñ'¨Ó/×=Ñ=¸bÈÀ-ÐQSÓTÐTr0   c                 óB   • U R                  X[        R                  5      $ r(   )r3  ÚoperatorÚlerô   s       r.   ÚissubsetÚSetVariable.issubset   ó   € ð ×"Ñ" 2¬X¯[©[Ó9Ð9r0   c                 óB   • U R                  X[        R                  5      $ r(   )r3  r6  Úgerô   s       r.   Ú
issupersetÚSetVariable.issuperset(  r:  r0   c                 ó   • [        U 5      $ r(   )r>   rô   s       r.   r<   ÚSetVariable.copy0  s   € ô ˜‹~Ðr0   c                 óº   • SU l         UR                  R                  R                  U 5        U R                  R                  5         [        R                  " S 5      $ r  )rE   rÁ   rÂ   ró   r4   r  r    rg   rô   s       r.   r  ÚSetVariable.clear8  sE   € ð '+ˆÔ#Ø
�	‰	×Ñ×'Ñ'¨Ô-Ø�
‰
×ÑÔÜ×&Ò& tÓ,Ð,r0   rõ   rG   rý   r  r  r  r  r  r  r!  r	  r(  r+  r8  r=  r<   r  r�   c                 ó   • [        S5      e)NzIllegal to getitem on a set)ÚRuntimeError)rO   r}   r�   s      r.   Úgetitem_constÚSetVariable.getitem_constW  s   € ô Ð8Ó9Ð9r0   c                 óV  • SSK Jn  UR                  U[        5      R                  " U/UQ70 UD6nUR
                  R                  R                  U 5        U R                  R                  5         U R                  R                  UR                  5        [        R                  " S 5      $ )Nr   r.  )r0  r/  rg   r+   Úcall_setrÁ   rÂ   ró   r4   r  r	  r    )rO   r}   r¿   rB   r/  Útemp_set_vts         r.   Útp_init_implÚSetVariable.tp_init_impl\  s   € õ 	/à'×.Ñ.¨r´3Ó7×@Ò@ÀÐUÀdÒUÈfÑUˆØ
�	‰	×Ñ×'Ñ'¨Ô-Ø�
‰
×ÑÔØ�
‰
×Ñ˜+×+Ñ+Ô,Ü×&Ò& tÓ,Ð,r0   c                 óæ   • SSK Jn  U R                  (       aI  [        U R                  5      (       d/  UR                  R
                  R                  U R                  5        U" U R                  5      $ )Nr   )ÚSetIterator)ÚiterrM  r6   r   rÁ   Úguard_on_key_orderrõ   r4   )rO   r}   rM  s      r.   Útp_iter_implÚSetVariable.tp_iter_implj  sF   € Ý%à�;�;Ô1°$·+±+×>Ñ>Ø�I‰I×(Ñ(×,Ñ,¨T¯[©[Ô9Ù˜4Ÿ:™:Ó&Ð&r0   Úreversec                 ó  • U(       a  X 4OX4u  pE[        U5      (       a  [        U5      (       d  [        R                  " [        5      $ [	        U5      nXEL a  U$ UR
                  R                  UR
                  5        U$ r(   )r/   r    rg   ÚNotImplementedr>   r4   r	  )rO   r}   r¦   rR  Úself_Úother_rù   s          r.   Ú
nb_or_implÚSetVariable.nb_or_implq  sg   € ö *1˜™°t°m‰ˆä˜e×$Ñ$¬N¸6×,BÑ,BÜ#×*Ò*¬>Ó:Ð:ä˜%“ˆØŠ?ØˆMØ�‰×Ñ˜FŸL™LÔ)Øˆr0   c                 óî   • [        U5      (       d  [        R                  " [        5      $ UR                  R
                  R                  U 5        U R                  R                  UR                  5        U $ r(   )	r/   r    rg   rT  rÁ   rÂ   ró   r4   r	  ©rO   r}   r¦   s      r.   Únb_inplace_or_implÚSetVariable.nb_inplace_or_implƒ  sS   € ô ˜e×$Ñ$Ü#×*Ò*¬>Ó:Ð:à
�	‰	×Ñ×'Ñ'¨Ô-Ø�
‰
×Ñ˜%Ÿ+™+Ô&Øˆr0   c                 ó:  • U(       a  X 4OX4u  pE[        U5      (       a  [        U5      (       d  [        R                  " [        5      $ [	        U5      n[        UR                  R                  5       5       H  nUR                  R                  US 5        M!     U$ r(   )	r/   r    rg   rT  r>   rÑ   r4   r`   rG   )rO   r}   r¦   rR  rU  rV  rù   rl   s           r.   Únb_subtract_implÚSetVariable.nb_subtract_implŽ  sw   € ö *1˜™°t°m‰ˆä˜e×$Ñ$¬N¸6×,BÑ,BÜ#×*Ò*¬>Ó:Ð:ä˜%“ˆÜ�f—l‘l×'Ñ'Ó)Ö*ˆAØ�L‰L×Ñ˜Q Ö%ñ +àˆr0   c                 ó0  • [        U5      (       d  [        R                  " [        5      $ UR                  R
                  R                  U 5        [        UR                  R                  5       5       H  nU R                  R                  US 5        M!     U $ r(   )r/   r    rg   rT  rÁ   rÂ   ró   rÑ   r4   r`   rG   )rO   r}   r¦   rl   s       r.   Únb_inplace_subtract_implÚ$SetVariable.nb_inplace_subtract_implŸ  sk   € ô ˜e×$Ñ$Ü#×*Ò*¬>Ó:Ð:à
�	‰	×Ñ×'Ñ'¨Ô-Ü�e—k‘k×&Ñ&Ó(Ö)ˆAØ�J‰J�N‰N˜1˜dÖ#ñ *àˆr0   c                 ó¾   • U(       a  X 4OX4u  pE[        U5      (       a  [        U5      (       d  [        R                  " [        5      $ UR	                  USU/0 5      $ r  ©r/   r    rg   rT  Úcall_method©rO   r}   r¦   rR  rU  rV  s         r.   Únb_and_implÚSetVariable.nb_and_impl«  sR   € ö *1˜™°t°m‰ˆä˜e×$Ñ$¬N¸6×,BÑ,BÜ#×*Ò*¬>Ó:Ð:à× Ñ   ^°f°X¸rÓBÐBr0   c                 ó„   • [        U5      (       d  [        R                  " [        5      $ U R	                  USU/0 5        U $ )Nr  rd  rZ  s      r.   Únb_inplace_and_implÚSetVariable.nb_inplace_and_impl¹  s<   € ô ˜e×$Ñ$Ü#×*Ò*¬>Ó:Ð:à×Ñ˜Ð2°U°G¸RÔ@Øˆr0   c                 ó¾   • U(       a  X 4OX4u  pE[        U5      (       a  [        U5      (       d  [        R                  " [        5      $ UR	                  USU/0 5      $ ©Nr  rd  rf  s         r.   Únb_xor_implÚSetVariable.nb_xor_implÃ  sS   € ö *1˜™°t°m‰ˆä˜e×$Ñ$¬N¸6×,BÑ,BÜ#×*Ò*¬>Ó:Ð:à× Ñ  Ð%;¸f¸XÀrÓJÐJr0   c                 ó„   • [        U5      (       d  [        R                  " [        5      $ U R	                  USU/0 5        U $ )Nr!  rd  rZ  s      r.   Únb_inplace_xor_implÚSetVariable.nb_inplace_xor_implÑ  s<   € ô ˜e×$Ñ$Ü#×*Ò*¬>Ó:Ð:à×Ñ˜Ð:¸U¸GÀRÔHØˆr0   c                 óV   • [         R                  " U[        U R                  5      5      $ r(   )r   r‡   r’   rb   )rO   r}   s     r.   Úsq_length_implÚSetVariable.sq_length_implÛ  s   € Ü×$Ò$ R¬¨T¯^©^Ó)<Ó=Ð=r0   r2  c                 óº  • [        U[        5      (       dF   UR                  5       n[        U[        [        45      (       d  [        R
                  " [        5      $ U R                  nUR                  nUS:X  aG  [        U5      [        U5      :w  a  [        R
                  " S5      $ [        R                  " XU:*  5      $ US:X  aH  [        U5      [        U5      :w  a  [        R
                  " S5      $ [        R                  " XU::  + 5      $ [        R                  " U[        U   " XV5      5      $ ! [         a    [        R
                  " [        5      s $ f = f)zÓset_richcompare: subset/superset comparisons for all 6 ops.

https://github.com/python/cpython/blob/e76aa128fe/Objects/setobject.c#L2097
CPython uses PyAnySet_Check: only accepts set/frozenset (not dict views).
Ú__eq__FÚ__ne__T)r7   r@   r*   ÚNotImplementedErrorr    rg   rT  r)   r+   r,   rb   r’   r   r‡   r   )rO   r}   r¦   r2  Ú
other_typeÚ
self_itemsÚother_itemss          r.   Útp_richcompare_implÚSetVariable.tp_richcompare_implÞ  s   € ô ˜%¤×-Ñ-ð?Ø"×.Ñ.Ó0�
ô ˜j¬3´	Ð*:×;Ñ;Ü'×.Ò.¬~Ó>Ð>ð —^‘^ˆ
Ø—o‘oˆØ�‹>ä�:‹¤# kÓ"2Ó2Ü'×.Ò.¨uÓ5Ð5Ü"×(Ò(¨¸;Ñ-FÓGÐGØ�8‹^Ü�:‹¤# kÓ"2Ó2Ü'×.Ò.¨tÓ4Ð4Ü"×(Ò(¨ÀÒ-LÓMÐMä"×(Ò(ØÜ& rÒ*¨:ÓCóð øô+ 'ó ?Ü'×.Ò.¬~Ó>Ò>ð?ús   —D3 Ä3$EÅE)r4   rD   rE   ©r}   r$   r&   r   ©r”   r#   r&   N)r4   zIterable[HashableTracker]r&   r@   ©F)VÚ__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r+   Ú_cpython_typer   ÚSET_CONTAINSrÄ   ÚSET_NOT_CONTAINSrÅ   r   r   r!   r   rI   Ústrr\   Úpropertyrb   ÚstaticmethodrN   rj   r™   r*   Úboolrt   r{   rŠ   r–   r›   r¤   rŸ   rÑ   r¬   r;   r"   ÚtupleÚintr¸   r    r½   rË   rL   rÓ   rÛ   rÞ   râ   ræ   rð   rõ   rG   rý   r  r  r  r  r  r  r!  r	  r(  r+  r3  r8  r=  r<   r  r   Ú
tp_methodsrE  rJ  rP  rW  r[  r^  ra  rg  rj  rn  rq  rt  r}  Ú__static_attributes__Ú__classcell__©rR   s   @r.   r@   r@   Q   s˜	  ø† Ù<ð €Mà!×.Ñ.€NØ%×6Ñ6Ðð!
à˜¨/Ñ9Ñ:ð!
ð ð!
ð 
÷	!
ðF	0˜Cô 	0ð ð&˜3Ð0Ñ1ó &ó ð&ð ð-˜Oó -ó ð-ð9˜#ô 9ð˜Tô ðF Dô FðC Cô Cô<ôXð	!˜ð 	!°4ô 	!ð
˜tô 
ð&Ø$ tÑ+ð&Ø4Cð&à	ô&ð*Ø-ð*à	ˆoÑ	ô*ð
'˜cð ' o÷ 'ð˜Tô ðNÐ7ð N¸EÀ#ÀtÀ)Ñ<Lô Nð
LØ-ðLØ58ðLà	ôLð
Ø-ðØ59¸/Ñ5Jðà	ôð..à'ð.ð ð.ð �?Ñ#ð	.ð
 �S˜/Ð)Ñ*ð.ð 
ô.ð PØ-ðPØ6EðPà	$ôPð$
HØ-ð
HØ6Eð
Hà	ˆoÑ	ô
HôIð3Ø-ð3Ø5Dð3à	ô3ð&à'ðð ðð �?Ñ#ð	ð
 �S˜/Ð)Ñ*ðð 
"ôð0	-à'ð	-ð �?Ñ#ð	-ð �S˜/Ð)Ñ*ð		-ð
 
ô	-ðà'ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 
ôð -à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ð(à'ð(ð �?Ñ#ð(ð �S˜/Ð)Ñ*ð	(ð
 
ô(ð-à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ð (à'ð(ð �?Ñ#ð(ð �S˜/Ð)Ñ*ð	(ð
 
ô(ð(à'ð(ð �?Ñ#ð(ð �S˜/Ð)Ñ*ð	(ð
 
ô(ð-à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ð(à'ð(ð �?Ñ#ð(ð �S˜/Ð)Ñ*ð	(ð
 
ô(ð -à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ð"-à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
˜4Ñ	ô-ð-à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ð -à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ò"Uð:à'ð:ð �?Ñ#ð:ð �S˜/Ð)Ñ*ð	:ð
 
ô:ð:à'ð:ð �?Ñ#ð:ð �S˜/Ð)Ñ*ð	:ð
 
ô:ðà'ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 
ôð	-à'ð	-ð �?Ñ#ð	-ð �S˜/Ð)Ñ*ð		-ð
 
ô	-ðØ‰v�c‹{ðà‰v�c‹{ðð 	‘f˜ZÓ(ðð 	™˜|Ó,ð	ð
 	™vÐ&9Ó:ðð 	‘˜“ðð 	‘f˜ZÓ(ðð 	™VÐ$5Ó6ðð 	¡Ð';Ó <ðð 	&¡vÐ.IÓ'Jðð 	‘&˜“.ðð 	‘&˜“.ðð 	‘6˜'“?ðð 	‘F˜8Ó$ðð 	‘f˜ZÓ(ðð  	‘�t“ð!ð" 	‘˜“ð#€Jð(:Ø-ð:Ø4Cð:à	ô:ð
-à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ð'Ð:ð '¸ô 'ð ñ	à'ðð ðð ð	ð
 
õð$	Ø-ð	Ø6Eð	à	ô	ð ñ	à'ðð ðð ð	ð
 
õð"
Ø-ð
Ø6Eð
à	ô
ð  ñ	Cà'ðCð ðCð ð	Cð
 
õCðØ-ðØ6Eðà	ôð ñ	Kà'ðKð ðKð ð	Kð
 
õKðØ-ðØ6Eðà	ôð>Ð!<ð >Àô >ð&à'ð&ð ð&ð ð	&ð
 
÷&ò &r0   r@   c            
       ó¬   ^ • \ rS rSrS\SS4U 4S jjrS\\\      4S jrSSS	\	S
\
\   S\\	\4   S\4
U 4S jjrSSS
\
\   S\\	\4   SS4S jrSrU =r$ )ÚOrderedSetClassVariablei  rB   r&   Nc                 ó&   >• [         TU ]  " S0 UD6  g )NrF   )rH   rI   )rO   rB   rR   s     €r.   rI   Ú OrderedSetClassVariable.__init__  s   ø€ Ü‰ÒÑ"˜6Ó"r0   c                 ó   • [         $ r(   r   ra   s    r.   r{   Ú*OrderedSetClassVariable.as_python_constant  ó   € ÜÐr0   r}   r$   rº   r¿   c           
      óŒ  >• US:X  aY  [        U5      S:w  d  U(       a&  [        UUS[        U5       S[        U5       S35        [        R                  " / [	        5       S9$ [        [        U5      nU[        ;   a;  [        US   [        R                  5      (       a  US   R                  XUSS  U5      $ [        TU ])  XX45      $ )	NÚ__new__r	   z'OrderedSet.__new__ only accepts one argú
 args and ú kwargsrá   r   r   )r’   r   r
   ÚOrderedSetVariabler   rî   r+   r   r7   r@   re  rH   )rO   r}   rº   r¿   rB   Úresolved_fnrR   s         €r.   re  Ú#OrderedSetClassVariable.call_method  sº   ø€ ð �9ÓÜ�4‹y˜A‹~¦Ü#ØØØ=Ü˜4“y�k ¬C°«K¨=¸ðAôô ×/Ò/°ÔBRÓBTÑUÐUäœc 4Ó(ˆØœ+Ó%¬*°T¸!±W¼i×>SÑ>S×*TÑ*TØ˜‘7×&Ñ& r°°a°b°¸6ÓBÐBä‰wÑ" 2¨TÓ:Ð:r0   rŸ  c           
      óô   • [        U5      S:”  d  U(       a&  [        USS[        U5       S[        U5       S35        [        U5      S:X  a  / nO[        XS   5      n[        R                  " U[        5       S9$ )Nr   r   zOrderedSet only accepts one argr�  rž  r   rá   )r’   r   r   r
   rŸ  r   )rO   r}   r¿   rB   r4   s        r.   r1  Ú%OrderedSetClassVariable.call_function&  ss   € ô ˆt‹9�q‹=žFÜØØØ1Ü�t“9�+˜Z¬¨F« }°Gð=ôô ˆt‹9˜‹>à‰Eä# B¨Q©Ó0ˆEÜ×+Ò+¨EÔAQÓASÑTÐTr0   rF   )r‚  rƒ  r„  r…  r   rI   r™   r   r{   rŠ  rÑ   r   rL   re  r1  r‘  r’  r“  s   @r.   r•  r•    s´   ø† ð# ð #¨÷ #ð D¨°C©Ñ$9ô ð;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ð0Uà'ðUð �?Ñ#ðUð �S˜/Ð)Ñ*ð	Uð
 
÷Uò Ur0   r•  c            	       óN  ^ • \ rS rSr\rS\4S jrSSS\4S jr	S\
" \	S5      0rS\4S	 jrSS
 jrS\\   4S jrS\\\      4S jrSS jr SSSS\S\S\4U 4S jjjr SSSS\S\S\4U 4S jjjr SSSS\S\S\4U 4S jjjr SSSS\S\S\4S jjrSSS\S\4S jrSrU =r$ )rŸ  i<  r&   c                 ó   • [         $ r(   rp   ra   s    r.   Úmethod_flags_typeÚ$OrderedSetVariable.method_flags_type?  s	   € ô ˆ
r0   r}   r$   c                 ó@   • SSK Jn  U" U R                  [        5       S9$ )Nr   rÖ   rá   )rÚ   r×   r4   r   )rO   r}   r×   s      r.   Ú_get_internal_dictÚ%OrderedSetVariable._get_internal_dictD  s   € õ 	-á  §¡Ô;KÓ;MÑNÐNr0   Ú_dictNc                 óÊ   • U R                   (       d  g/ nU R                    H)  n[        UR                  5      nUR                  U5        M+     SSR	                  U5      -   S-   $ )NzOrderedSet([])zOrderedSet([rV   ú])©r4   r   rX   rJ   rY   ©rO   r4   rl   Úkey_strs       r.   r\   ÚOrderedSetVariable.debug_reprN  sT   € Ø�z�zØ#à!ˆEØ—Z”Z�Ü*¨1¯4©4Ó0�Ø—‘˜WÖ%ñ  ð " D§I¡I¨eÓ$4Ñ4°tÑ;Ð;r0   c                 ó¤   ^• SR                  U4S jU R                   5       5      n[        R                  " TU R	                  5        SU S35      $ )NrV   c              3   óP   >#   • U  H  n[        TUR                  5      v •  M     g 7fr(   r�   r‚   s     €r.   rv   Ú2OrderedSetVariable.tp_repr_impl.<locals>.<genexpr>Y  r„   r…   z([r­  )rY   rb   r   r‡   rˆ   r‰   s    ` r.   rŠ   ÚOrderedSetVariable.tp_repr_implX  sE   ø€ Ø—	‘	ÔOÀÇÂÓOÓOˆÜ×$Ò$ R¨D×,AÑ,AÓ,CÐ+DÀBÀuÀgÈRÐ)PÓQÐQr0   c                 ó†   • [        U R                   Vs/ s H  oR                  R                  5       PM     sn5      $ s  snf r(   )r   rb   rX   r{   rk   s     r.   r{   Ú%OrderedSetVariable.as_python_constant\  s.   € Ü¸d¿nºnÓMºn¸Ÿ4™4×2Ñ2Ö4¹nÑMÓNÐNùÒMó   ”#>c                 ó   • [         $ r(   r   ra   s    r.   r*   ÚOrderedSetVariable.python_type_  rš  r0   c                 ó2  ^• TR                  U4S j5        TR                  U R                   Vs/ s H  o"R                  PM     sn5        TR	                  [        S[        U R                  5      S95        TR                  [        SS5      5        g s  snf )Nc                  ó(   >• T R                  SS5      $ )Nztorch.utils._ordered_setr   )Úload_import_from©r”   s   €r.   Ú<lambda>Ú0OrderedSetVariable.reconstruct.<locals>.<lambda>d  s   ø€ �G×,Ñ,Ð-GÈÔVr0   Ú
BUILD_LISTrŽ   r   F)	Úadd_push_nullr�   rb   rX   r‘   r   r’   Úextend_outputr   r“   s    ` r.   r–   ÚOrderedSetVariable.reconstructb  sq   ø€ Ø×ÑÜVô	
ð 	�‰ t§~¢~Ó6¢~ !Ÿœ¡~Ñ6Ô7Ø×ÑÔ0°Ä3ÀtÇ~Á~ÓCVÑWÔXØ×ÑÔ2°1°eÓ<Õ=ùò 7s   °Br¦   rR  c                 ó*   >• [         TU ]  USU/0 5      $ r  ©rH   re  ©rO   r}   r¦   rR  rR   s       €r.   rW  ÚOrderedSetVariable.nb_or_implj  s   ø€ ô ‰wÑ" 2 w°°¸Ó<Ð<r0   c                 ó*   >• [         TU ]  USU/0 5      $ r  rÆ  rÇ  s       €r.   rg  ÚOrderedSetVariable.nb_and_implt  s   ø€ ô ‰wÑ" 2 ~¸°wÀÓCÐCr0   c                 ó*   >• [         TU ]  USU/0 5      $ rm  rÆ  rÇ  s       €r.   rn  ÚOrderedSetVariable.nb_xor_impl~  s   ø€ ô ‰wÑ" 2Ð'=À¸wÈÓKÐKr0   c                 óJ   • U(       a  X 4OX4u  pEUR                  USU/0 5      $ r  )re  rf  s         r.   r^  Ú#OrderedSetVariable.nb_subtract_implˆ  s,   € ö *1˜™°t°m‰ˆØ× Ñ   \°F°8¸RÓ@Ð@r0   c                 óz   • UR                   R                  R                  U 5        U R                  USU/0 5        U $ )Nr  )rÁ   rÂ   ró   re  rZ  s      r.   ra  Ú+OrderedSetVariable.nb_inplace_subtract_impl‘  s8   € ð 	�	‰	×Ñ×'Ñ'¨Ô-Ø×Ñ˜Ð0°5°'¸2Ô>Øˆr0   rF   r  r€  r�  )r‚  rƒ  r„  r…  r   r‡  r™   r¦  r   r©  r   Ú
tp_membersrŠ  r\   rŠ   r   r{   r*   r–   r�  rW  rg  rn  r^  ra  r‘  r’  r“  s   @r.   rŸ  rŸ  <  s  ø† Ø€Mð 4ô ð
OÐ%@ð OÀ_ô Oð ™6Ð"4°dÓ;Ð<€Jð<˜Cô <ôRðO J¨s¡Oô Oð˜T *¨S¡/Ñ2ô ô>ð ñ	=à'ð=ð ð=ð ð	=ð
 
÷=ð =ð ñ	Dà'ðDð ðDð ð	Dð
 
÷Dð Dð ñ	Là'ðLð ðLð ð	Lð
 
÷Lð Lð ñ	Aà'ðAð ðAð ð	Að
 
õAðØ-ðØ6Eðà	÷ò r0   rŸ  c                   ó²  • \ rS rSr\rSrS\4S jr\	S\
S   4S j5       rS\4S jrS\4S jrSS jrSS jrS	S
S\\   S\\\4   S\4S jrS	S
S\\   S\\\4   S\4S jrS	S
S\\   S\\\4   S\4S jrS	S
S\\   S\\\4   S\4S jr\" \5      \" \5      \" \5      \" \5      S.rS	S
S\\   S\\\4   S\4S jrS\4S jrS	S
S\\\4   4S jr Sr!g)rå   i™  Nr&   c                 óÊ   • U R                   (       d  g/ nU R                    H)  n[        UR                  5      nUR                  U5        M+     SSR	                  U5      -   S-   $ )Nzfrozenset()zfrozenset({rV   ú})r®  r¯  s       r.   r\   ÚFrozensetVariable.debug_reprŸ  sT   € Ø�z�zØ à!ˆEØ—Z”Z�Ü*¨1¯4©4Ó0�Ø—‘˜WÖ%ñ  ð ! 4§9¡9¨UÓ#3Ñ3°dÑ:Ð:r0   r!   c                 óH   • [        U R                  R                  5       5      $ r(   r_   ra   s    r.   rb   ÚFrozensetVariable.set_items©  rd   r0   c                 ó   • [         $ r(   )r,   ra   s    r.   r*   ÚFrozensetVariable.python_type­  s   € ÜÐr0   c                 ó†   • [        U R                   Vs1 s H  oR                  R                  5       iM     sn5      $ s  snf r(   )r,   rb   rX   r{   rk   s     r.   r{   Ú$FrozensetVariable.as_python_constant°  s.   € Ü¸T¿^º^ÓLº^¸Ÿ$™$×1Ñ1Ö3¹^ÑLÓMÐMùÒLr¸  r}   r$   c                 ó  ^• U R                   (       d(  [        R                  " TU R                  5        S35      $ SR	                  U4S jU R
                   5       5      n[        R                  " TU R                  5        SU S35      $ )Nr   rV   c              3   óP   >#   • U  H  n[        TUR                  5      v •  M     g 7fr(   r�   r‚   s     €r.   rv   Ú1FrozensetVariable.tp_repr_impl.<locals>.<genexpr>·  r„   r…   z({rÔ  r†   r‰   s    ` r.   rŠ   ÚFrozensetVariable.tp_repr_impl³  sp   ø€ à�z�zÜ"×(Ò(¨°×0EÑ0EÓ0GÐ/HÈÐ-KÓLÐLØ—	‘	ÔOÀÇÂÓOÓOˆÜ×$Ò$ R¨D×,AÑ,AÓ,CÐ+DÀCÈÀwÈcÐ)RÓSÐSr0   c                 ó  ^• TR                  U4S j5        TR                  U R                   Vs/ s H  o"R                  PM     sn5        TR	                  [        S[        U R                  5      S9/[        SS5      Q5        g s  snf )Nc                  óF   >• T R                  T R                  S5      /5      $ )Nr,   )rÃ  Úcreate_load_globalr¾  s   €r.   r¿  Ú/FrozensetVariable.reconstruct.<locals>.<lambda>¼  s#   ø€ �G×)Ñ)à×.Ñ.¨{Ó;ðôr0   rÁ  rŽ   r   F)rÂ  r�   rb   rX   rÃ  r   r’   r   r“   s    ` r.   r–   ÚFrozensetVariable.reconstructº  ss   ø€ Ø×Ñôô	
ð 	�‰ t§~¢~Ó6¢~ !Ÿœ¡~Ñ6Ô7Ø×Ñä" <´S¸¿¹Ó5HÑIðä% a¨Ó/ðõ	
ùò 7s   °Br¿   rB   c                 óV   • [        U 5      [        L a  U $ [        R                  XX#5      $ r(   )r™   rå   r@   r<   rô   s       r.   r<   ÚFrozensetVariable.copyÊ  s)   € ô �‹:Ô*Ò*ØˆKÜ×Ñ ¨$Ó7Ð7r0   c                 óX   • [         R                  XX#5      n[        UR                  5      $ r(   )r@   r  rå   r4   ©rO   r}   r¿   rB   Úrs        r.   r  ÚFrozensetVariable.differenceÔ  s%   € ô ×"Ñ" 4¨TÓ:ˆÜ  §¡Ó)Ð)r0   c                 óX   • [         R                  XX#5      n[        UR                  5      $ r(   )r@   r  rå   r4   rè  s        r.   r  ÚFrozensetVariable.intersectionÝ  s%   € ô ×$Ñ$ T¨tÓ<ˆÜ  §¡Ó)Ð)r0   c                 óX   • [         R                  XX#5      n[        UR                  5      $ r(   )r@   r  rå   r4   rè  s        r.   r  Ú&FrozensetVariable.symmetric_differenceæ  s%   € ô ×,Ñ,¨T°tÓDˆÜ  §¡Ó)Ð)r0   )r<   r  r  r  c                 ó.   • [         R                  " S 5      $ r(   rf   rô   s       r.   rJ  ÚFrozensetVariable.tp_init_implö  s   € ô  ×&Ò& tÓ,Ð,r0   c                 ó   • gr  rF   ra   s    r.   r"   ÚFrozensetVariable.is_hashableÿ  s   € Ør0   c                 ó@  • SSK Jn  SSKJn  U R	                  5       (       a  [        U R                  5       5      S4$ Sn/ nU R                   H9  nU" XR                  5      u  pxU=(       d    UnUR                  U" U5      5        M;     [        [        U5      5      U4$ )Nr   )ÚRawHash)Úgeneric_hash_implF)Úhashablerô  Úobject_protocolrõ  rt   Úhashr{   rb   rX   rJ   r,   )	rO   r}   rô  rõ  Úis_fakeÚ
raw_hashesrQ   ÚhÚfakes	            r.   r¸   ÚFrozensetVariable.hash_impl  sŒ   € õ 	&Ý6à×"Ñ"×$Ñ$Ü˜×/Ñ/Ó1Ó2°EÐ9Ð9ØˆØˆ
Ø—N”NˆDÙ'¨¯G©GÓ4‰GˆAØ—o ˆGØ×Ñ™g a›jÖ)ñ #ô ”I˜jÓ)Ó*¨GÐ3Ð3r0   rF   r  r€  )"r‚  rƒ  r„  r…  r,   r‡  ra  rŠ  r\   r‹  r+   rb   r™   r*   r   r{   rŠ   r–   rÑ   r   rL   r<   r  r  r  r   r�  rJ  r�  r"   rŽ  r�  r¸   r‘  rF   r0   r.   rå   rå   ™  sÓ  † à€Mà#Ðð;˜Cô ;ð ð&˜3Ð0Ñ1ó &ó ð&ð˜Tô ðN Cô NôTô
ð 8à'ð8ð �?Ñ#ð8ð �S˜/Ð)Ñ*ð	8ð
 
ô8ð*à'ð*ð �?Ñ#ð*ð �S˜/Ð)Ñ*ð	*ð
 
ô*ð*à'ð*ð �?Ñ#ð*ð �S˜/Ð)Ñ*ð	*ð
 
ô*ð*à'ð*ð �?Ñ#ð*ð �S˜/Ð)Ñ*ð	*ð
 
ô*ñ �t“Ù˜ZÓ(Ù˜|Ó,Ù &Ð';Ó <ñ	€Jð-à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ð˜Tô ð4Ð7ð 4¸EÀ#ÀtÀ)Ñ<L÷ 4r0   rå   c                   ór   • \ rS rSrS\4S jrSSS\\   SS4S jr\	S\
4S	 j5       rS\4S
 jrS\
4S jrSrg)ÚDictKeySetVariablei  r&   c                 óÊ   • U R                   (       d  g/ nU R                    H)  n[        UR                  5      nUR                  U5        M+     SSR	                  U5      -   S-   $ )Nzdict_keys([])zdict_keys([rV   r­  r®  r¯  s       r.   r\   ÚDictKeySetVariable.debug_repr  sT   € Ø�z�zØ"à!ˆEØ—Z”Z�Ü*¨1¯4©4Ó0�Ø—‘˜WÖ%ñ  ð ! 4§9¡9¨UÓ#3Ñ3°dÑ:Ð:r0   r}   r$   r¿   Nc                 ó   • g r(   rF   )rO   r}   r¿   s      r.   rË   Ú-DictKeySetVariable.install_set_contains_guard  s   € ð 	r0   c                 ó   • U R                   $ r(   )r4   ra   s    r.   rb   ÚDictKeySetVariable.set_items$  s   € à�z‰zÐr0   c                 ó   • SSK Jn  U$ )Nr	   )Ú	dict_keys)rí   r  )rO   r  s     r.   r*   ÚDictKeySetVariable.python_type(  s   € Ý%àÐr0   c                 ó¸   • [         R                  U R                   Vs1 s H  oR                  R	                  5       iM     snS 5      R                  5       $ s  snf r(   )rL   rM   rb   rX   r{   r`   rk   s     r.   r{   Ú%DictKeySetVariable.as_python_constant-  s@   € Ü�}‰}Ø04·²Ó?²¨1�T‰T×$Ñ$Ö&±Ñ?Àó
ç
‰$‹&ð	ùÚ?s   ž#ArF   )r‚  rƒ  r„  r…  rŠ  r\   rÑ   r   rË   r‹  r   rb   r™   r*   r{   r‘  rF   r0   r.   rÿ  rÿ    sc   † ð;˜Cô ;ðØ-ðØ59¸/Ñ5Jðà	ôð ð˜3ó ó ðð˜Tô ð
 C÷ r0   rÿ  )9r†  rÇ   r6  Úcollections.abcr   r   Útypingr   r   Útorch.utils._ordered_setr   Ú r
   Úbytecode_transformationr   r   r·   r   r   Úguardsr   r   r6   r   r   rí   r   r   r   r   r   r   r   r   r=   r   r   r   r   Úconstantr    rö  r!   r"   Útorch._dynamo.codegenr#   Útorch._dynamo.symbolic_convertr$   r�  r/   r2   r>   r@   r•  rŸ  rå   rÿ  rF   r0   r.   Ú<module>r     sÔ   ðñó" Û ß .ß %å /å ß Nß <ß 0ß =÷	÷ 	ó 	÷ DÓ CÝ &ß 2ö Ý/ÝHð;˜ð ;¨Dô ;ð.�_ð .¨ô .ð
�/ð  oô ô$s
�/ô s
ôl2U˜oô 2UôjZ˜ô Zôzw4˜ô w4ôt˜õ r0   