+
    &j`                       a  R= t90 t ^ RIt^ RIHtHt ^ RIHtHt ^ RIH	t	H
t
Ht ^ RIt. R>Ot]P                  ! ]4      t]
! R4      t]! R4      t]]	]P(                  ]3,          ]3,          t]]]3,          t]],          t] ! R R4      4       t]]]]],          .]],          3,          t] ! R	 R
4      4       t]! 4       t] ^ k / s] ^k ]] ]]3,          ]],          3,          t!/ s"] ^k ]]]] ]]3,          ,          3,          t#/ s$] ^k / s%] ^k / s&] ^k R R lt'RR/R R llt(R R lt)R R lt*R R lt+RRRRRR/R R llt,RRRRRR/R R  llt-R! R" lt.R# R$ lt/R%RR&R/R' R( llt0R)R/R* R+ llt1R,R/R- R. llt2R/RR0RR,R/R1 R2 llt3R,R/R3 R4 llt4R5 R6 lt5R0R/R7 R8 llt6R0R/R9 R: llt7R0R/R; R< llt8R# )?    N)CallableIterable)	dataclassfield)Concatenate	ParamSpecTypeVarPRc                   8   a  ] tR t^t o RtRtRtV 3R ltRtV t	R# )_OverrideNodezTrack function override data.FTc                b   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   S[;R&   S[;R&   # )   dsl_name	op_symboldispatch_keyoverride_fnunconditional_overrideactive)str_OpFnbool)format__classdict__s   "n/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/torch/_native/registry.py__annotate___OverrideNode.__annotate__   sQ      M	 
 N      !(        N)
__name__
__module____qualname____firstlineno____doc__r   r   __annotate_func____static_attributes____classdictcell__r   s   @r   r   r      s     ' $)F  r   r   c                      a  ] tR t^,t o Rt]! ]R7      t]! ]R7      t]! ]R7      t	V 3R lR lt
RV 3R lR lltV 3R lR ltV 3R	 lR
 ltV 3R ltRtV tR# )_FilterStatez+Manages filtering state for override nodes.)default_factoryc                &   < V ^8  d   QhRS[ RS[/# )r   nodereturn)r   r   )r   r   s   "r   r   _FilterState.__annotate__4   s      - D r   c                    VP                   V P                  9   d   R# VP                  V P                  9   d   R# VP                  V P
                  9   d   R# R# )z
Check if a node is enabled based on current filter state.

Args:
    node: The override node to check

Returns:
    bool: True if the node should be enabled, False if filtered out
FT)r   
_dsl_namesr   _op_symbolsr   _dispatch_keys)selfr-   s   &&r   check_enabled_FilterState.check_enabled4   sF     ==DOO+>>T--- 3 33r   c          
         < V ^8  d   QhRS[ S[S[ ,          ,          R,          RS[ S[S[ ,          ,          R,          RS[ S[S[ ,          ,          R,          RS[RR/# )r   	dsl_namesN
op_symbolsdispatch_keysremove_keysr.   )r   r   r   )r   r   s   "r   r   r/   I   sn     I I#&-I (3-'$.I Xc]*T1	I
 I 
Ir   c                   V'       d   V ;P                   \        \        V4      4      ,          un         V ;P                  \        \        V4      4      ,          un        V ;P                  \        \        V4      4      ,          un        R# V ;P                   \        \        V4      4      ,          un         V ;P                  \        \        V4      4      ,          un        V ;P                  \        \        V4      4      ,          un        R# )a  
Update filter sets as (current | new) or (current ~ new).

Args:
    dsl_names: DSL names to add/remove from filter
    op_symbols: Operation symbols to add/remove from filter
    dispatch_keys: Dispatch keys to add/remove from filter
    remove_keys: If True, remove keys from filter; if False, add them

Note:
    Uses set.discard as it doesn't raise an exception if the element
    wasn't in the set to begin with.
N)r1   set_resolve_iterabler2   r3   )r4   r8   r9   r:   r;   s   &&&&&r   update_FilterState.updateI   s    ( OOs#4Y#?@@O$5j$A BB3'8'G#HHOOs#4Y#?@@O$5j$A BB3'8'G#HHr   c                F   < V ^8  d   QhRS[ S[S[S[3,          ,          /# r   r.   )r=   tupler   )r   r   s   "r   r   r/   f   s!     
 
s5c?'; 
r   c                X    \        V P                  V P                  V P                  4      # )z
Build a set of dictionary keys based on the current filter state.

Returns:
    set[tuple[str, str]]: Set of (op_symbol, dispatch_key) tuples
)_build_key_setr1   r2   r3   )r4   s   &r   build_disable_key_set"_FilterState.build_disable_key_setf   s*     OO
 	
r   c                    < V ^8  d   QhRS[ /# rB   )r   )r   r   s   "r   r   r/   s   s       r   c                f   RpVR,          pVR,          p\        V P                  4       F  w  r#VRV RV R2,          pK  	  VR,          p\        V P                  4       F  w  r$VRV RV R2,          pK  	  VR,          p\        V P                  4       F  w  r%VRV RV R2,          pK  	  V# )	z-Return string representation of filter state. zFilter State:
z  === DSL: ===
    z: 
z  === OP SYMBOL: ===
z  === DISPATCH KEYS: ===
)	enumerater1   r2   r3   )r4   sidslopkeys   &     r   __str___FilterState.__str__s   s    		0FA4s"SE$$A 1	%%t//0EA4s"RD##A 1	)) 3 34FA4s"SE$$A 5 r   c                n   < V ^8  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   # )r   r1   r2   r3   )r=   r   )r   r   s   "r   r   r/   ,   s8      C5	 
 S6  H9 r   r   N)F)r    r!   r"   r#   r$   r   r=   r1   r2   r3   r5   r?   rF   rS   r%   r&   r'   r(   s   @r   r*   r*   ,   sX     5 5J!#6K$S9N *I I:
 
 O  r   r*   c                .   V ^8  d   QhR\         \        \         ,          ,          R,          R\         \        \         ,          ,          R,          R\         \        \         ,          ,          R,          R\        \        \         \         3,          ,          /# )r   r8   Nr9   r:   r.   )r   r   r=   rC   )r   s   "r   r   r      sg     ! !Xc]"T)!hsm#d*! #&-! 	sCx	!r   c                |   a \        4       oR V3R llpV! V \        4       V! V\        4       V! V\        4       S# )a+  
Build a set of dictionary keys based on filter criteria.

Args:
    dsl_names: DSL names to include in key set
    op_symbols: Operation symbols to include in key set
    dispatch_keys: Dispatch keys to include in key set

Returns:
    set[tuple[str, str]]: Set of (op_symbol, dispatch_key) tuples
c                n    V ^8  d   QhR\         \        \         ,          ,          R,          R\        RR/# )r   entriesNgraph_lib_dictr.   )r   r   _MappingType)r   s   "r   r   $_build_key_set.<locals>.__annotate__   s2     	% 	%x}$t+	%=I	%		%r   c                   < \        V 4      pV F+  pW19   g   K  W,           F  pSP                  V4       K  	  K-  	  R# )z;Helper to add matching keys from graph_lib_dict to key_set.N)r>   add)rY   rZ   resolved_entriesentryrR   key_sets   &&   r   _append_to_set&_build_key_set.<locals>._append_to_set   s<     -W5%E&)00CKK$ 1 &r   )r=   _dsl_name_to_lib_graph_op_symbol_to_lib_graph_dispatch_key_to_lib_graph)r8   r9   r:   rb   ra   s   &&& @r   rE   rE      s>      %(EG	% 	% 945:67="<=Nr   print_inactiveFc                (    V ^8  d   QhR\         RR/# )r   rg   r.   N)r   )r   s   "r   r   r      s      d t r   c                b   \         P                  4        F  w  w  rp\        RV: RV: 24       \        V4       Fl  w  rEVP                  '       g   V '       g   K!  RV RVP
                  : RVP                  : 2pV '       d   VRVP                  : 2,          p\        V4       Kn  	  K  	  R# )zn
Print all override graphs for debugging purposes.

Args:
    print_inactive: Whether to print inactive nodes
zop=z, key=rK   z: node.dsl_name=z, node.unconditional_override=z node.active=N)_graphsitemsprintrM   r   r   r   )rg   rQ   rR   	node_listrO   r-   rN   s   $      r   _print_override_graphsrn      s     !(	9Wv +GA{{{nns"3T]]$44St7R7R6TU!>T[[N++Aa , !0r   c                d    V ^8  d   QhR\         R\         R\        P                  P                  /# )r   r   r   r.   )r   torchlibraryLibrary)r   s   "r   r   r      s+      c  AVAV r   c                    W3pV\         9  d)   \        P                  P                  RRV4      \         V&   \         V,          # )z
Get or create a torch.library.Library instance for the given key.

Args:
    op_symbol: The operation symbol
    dispatch_key: The dispatch key

Returns:
    torch.library.Library: The library instance
atenIMPL)_libsrp   rq   rr   )r   r   rR   s   && r   _get_or_create_libraryrw      s:     
#C
%]]**66<Hc
:r   c                h    V ^8  d   QhR\         P                  P                  R\        R\        RR/# )r   libr-   r   r.   N)rp   rq   rr   r   r   )r   s   "r   r   r      s6      			&3CF	r   c                x    V P                  VP                  VP                  VVP                  '       * RR7       R# )z
Register a single node implementation with the library.

Args:
    lib: The torch.library.Library instance
    node: The override node to register
    dispatch_key: The dispatch key for registration
T)with_keysetallow_overrideN)implr   r   r   )ry   r-   r   s   &&&r   _register_node_implr~      s7     HH333  r   c                    V ^8  d   QhR\         \        \         ,          ,          R,          R\        \         ,          /# )r   iterableNr.   )r   r   )r   s   "r   r   r      s,      hsm 3d : x} r   c                p    V f   . # \        V \        4      '       d   \        V \        4      '       d   V 3# V # )z
Resolve various input types to a consistent iterable of strings.

Args:
    iterable: String, iterable of strings, or None

Returns:
    Iterable[str]: Consistent iterable output
)
isinstancer   r   )r   s   &r   r>   r>      s5     	h))Z#-F-F{Or   enable_dsl_namesenable_op_symbolsenable_dispatch_keysc                    V ^8  d   QhR\         \        \         ,          ,          R,          R\         \        \         ,          ,          R,          R\         \        \         ,          ,          R,          RR/# )r   r   Nr   r   r.   r   list)r   s   "r   r   r     sY     2 2DIo,2 T#Y-2 S	/D0	2
 
2r   c                    \         P                  RV VV4       \        P                  V VVRR7       \	        V VV4      pV F1  pVw  rVV\
        9   g   K  \        WV\
        V,          \        R7       K3  	  R# )aO  
Re-enable overrides by removing them from filter state and reregistering.

Args:
    enable_dsl_names: DSL names to re-enable
    enable_op_symbols: Operation symbols to re-enable
    enable_dispatch_keys: Dispatch keys to re-enable

Note:
    This function uses reverse filter state management (removing from
    filters to enable).
z>Re-registering ops by dsl: %s, op_symbol: %s, dispatch_key: %sT)r;   filter_stateN)loginfo_filter_stater?   rE   rj   _register_overrides_from_graph)r   r   r   ra   rR   r   r   s   $$$    r   reenable_op_overridesr     s    $ HHH	 	   %3%G "%	'> +M r   disable_dsl_namesdisable_op_symbolsdisable_dispatch_keysc                    V ^8  d   QhR\         \        \         ,          ,          R,          R\         \        \         ,          ,          R,          R\         \        \         ,          ,          R,          RR/# )r   r   Nr   r   r.   r   )r   s   "r   r   r   =  sY     ) )T#Y-) d3i$.) c?T1	)
 
)r   c                    \         P                  RV VV4       \        P                  WV4       \        P	                  4       pV F2  pVw  rVV\
        9   g   K  \        VV\
        V,          \        R7       K4  	  R# )aC  
De-register overrides by updating filter state and reregistering graphs.

Args:
    disable_dsl_names: DSL names to disable
    disable_op_symbols: Operation symbols to disable
    disable_dispatch_keys: Dispatch keys to disable

Note:
    This function uses filter state management to selectively disable
    operations.
z>De-registering ops by dsl: %s, op_symbol: %s, dispatch_key: %sr   N)r   r   r   r?   rF   rj   _cleanup_and_reregister_graph)r   r   r   ra   rR   r   r   s   $$$    r   deregister_op_overridesr   =  ss    $ HHH	 *@UV %2$G$G$IG "%	'>)*		 r   c                F    V ^8  d   QhR\         R\        \         ,          /# )r   r   r.   r   )r   s   "r   r   r   i  s       c r   c                    \        4       p\        P                  4        F6  w  w  r#pV F(  pVP                  V 8X  g   K  VP	                  V4        K4  	  K8  	  \        V4      # )zGet list of operations registered by a specific DSL.

Args:
    dsl_name: Name of the DSL to query.

Returns:
    Sorted list of operation names registered by the DSL.
)r=   rj   rk   r   r^   sorted)r   
operationsr   _nodesr-   s   &     r   get_dsl_operationsr   i  sT     J!(D}}(y)  "1
 *r   c          
      n    V ^8  d   QhR\         R\         R\         R\        \         \         3,          RR/# )r   r   r   r   rR   r.   N)r   rC   )r   s   "r   r   r   {  sI     #L #L#L#L #L 
sCx	#L
 
#Lr   c                `    R R lpV! \         W4       V! \        W4       V! \        W#4       R# )z
Update the registration mapping dictionaries.

Args:
    dsl_name: The DSL name
    op_symbol: The operation symbol
    dispatch_key: The dispatch key
    key: The dictionary key tuple
c                    V ^8  d   QhR\         \        \        \        \        \        3,          ,          3,          R\        R\        \        \        3,          RR/# )r   registrationsymbolrR   r.   N)dictr   r   rC   )r   s   "r   r   /_update_registration_maps.<locals>.__annotate__  sO     # #3U38_ 556## 38_# 
	#r   c                d    V P                  V4      pVf
   V.pW0V&   R# VP                  V4       R# )z;Helper to add key to registration list or create new entry.N)getappend)r   r   rR   
entry_lists   &&& r   _get_new_entry_or_append;_update_registration_maps.<locals>._get_new_entry_or_append  s7     "%%f-
J#- c"r   N)rd   re   rf   )r   r   r   rR   r   s   &&&& r   _update_registration_mapsr   {  s*    &# 3XC4iE7Kr   allow_multiple_overrider   c                    V ^8  d   QhR\         R\         R\         R\         R\        \        ,          R\        R\        RR	/# )
r   backend
lib_symbolr   r   r}   r   r   r.   N)r   _OpOverrideFn_OpReplaceFnr   )r   s   "r   r   r     sg     /I /I/I/I /I 	/I
 ,
&/I "/I !/I 
/Ir   c          
         VR8w  d   \        RV R24      hW#3p\        P                  V. 4      pVP                  \	        V VVVVR7      4       V\        V&   \        WW7R7       R# )a  
Register a passed override function to the dispatcher.

Actually a graph-building operation; real registration happens later.

Args:
    backend: The backend name (DSL name)
    lib_symbol: Library you're overriding symbols in (must be "aten")
    op_symbol: Name of the operation you're overriding
    dispatch_key: Dispatch key to override
    impl: Implementation function for the override
    allow_multiple_override: Allow overriding an existing override
    unconditional_override: Implementation doesn't have a fallback and
        doesn't require torch.DispatchKeySet as the first argument

Raises:
    ValueError: If lib_symbol is not "aten"
rt   z.Unsupported lib_symbol (must be "aten", got: "")r   r   r   r   r   )rR   N)
ValueErrorrj   r   r   r   r   )	r   r   r   r   r}   r   r   rR   op_graphs	   &&&&&$$  r   register_op_overrider     st    8 VI*UVWXX
#C {{3#HOO%#9	
 GCLg,Hr   force_reregisterc                t    V ^8  d   QhR\         \        ,          R\         \        ,          R\        R\        /# )r   original_graph	new_graphr   r.   )r   r   r   )r   s   "r   r   r     s:     ' '''M"' 	'
 
'r   c                   V'       d   R# W8g  # )a'  
Determine if a graph needs reregistration based on changes.

Args:
    original_graph: The original graph before modification
    new_graph: The graph after modification
    force_reregister: If True, always reregister regardless of changes

Returns:
    bool: True if reregistration is needed
Tr   )r   r   r   s   &&$r   _should_reregister_graphr     s    "  &&r   r   c          
      p    V ^8  d   QhR\         R\         R\        \        ,          R\        R,          RR/# r   r   r   graphr   Nr.   r   r   r   r*   )r   s   "r   r   r     sD      
  
 
 
  

 % 
 
 
r   c               b    W3pV\         9   d   \         V V'       d   \        V VVVR7       R# R# )a=  
Clean up existing library and reregister a graph.

This is the common pattern used across reorder, deregister, and reenable operations.

Args:
    op_symbol: The operation symbol
    dispatch_key: The dispatch key
    graph: The graph to register
    filter_state: Optional filter state for conditional registration
r   N)rv   r   )r   r   r   r   rR   s   &&&$ r   r   r     s:    $ 
#C e|#J &%		
 r   keys_to_processreregister_overridesc          
          V ^8  d   QhR\         R\        \        \        \        3,          ,          R,          R\        R\
        R,          RR/# )r   transformation_fnr   Nr   r   r.   )UserOrderingFnr=   rC   r   r   r*   )r   s   "r   r   r     sZ     N N%N sCx)D0N 	N
 %N 
Nr   c          	        Ve   TM\        \        P                  4       4      p\        V4       F  w  rVWV3\        9  d   K  \        \        WV3,          4      p V ! WVV4      p\        T\        4      '       g.   \        P                  R\        T4      P                  TT4       Kw  T\        YV3&   T'       g   K  \        YxRR7      '       g   K  \!        TTTTR	7       K  	  R#   \        \
        \        \        3 d    \        P                  RTTRR7        K  \         d    \        P                  RTT4        EK  i ; i)
ad  
Apply a transformation function to graphs and optionally reregister.

This is the core pattern used by reorder_graphs_from_user_function and
can be reused for other graph transformation operations.

Args:
    transformation_fn: Function to transform each graph
    keys_to_process: Keys to process, or None for all graphs
    reregister_overrides: Whether to reregister changed graphs
    filter_state: Optional filter state for conditional registration

Note:
    If transformation_fn raises an exception for a specific graph, that graph
    will be skipped and processing will continue with remaining graphs.
NAGraph transformation failed for %s/%s. Preserving original graph.Texc_infoNUnexpected error in graph transformation for %s/%s. Preserving original graph.zbGraph transformation returned invalid type %s for %s/%s. Expected list. Preserving original graph.F)r   r   )r=   rj   keysr   	TypeErrorr   AttributeErrorRuntimeErrorr   warning	Exception	exceptionr   typer    r   r   )	r   r   r   r   target_keysr   r   r   r   s	   &$$$     r   _apply_graph_transformationr     s7   6 +6C<O 
 $(#4	$G3gy&?@A	))>RI$ )T**KKtY((	  .7)*  $<%
 %
 *)	U $5 :~|D 	KKS	    	MM`
 	s   	C$$4EE$E Ec          
      p    V ^8  d   QhR\         R\         R\        \        ,          R\        R,          RR/# r   r   )r   s   "r   r   r   _  sD            
 %  
 r   c                   W3p\        V!  pV FB  pRpV'       d   VP                  V4      pV'       d   \        WVV4       RVn        K;  RVn        KD  	  R# )z
Register all overrides in a single graph.

Args:
    op_symbol: The operation symbol
    dispatch_key: The dispatch key
    graph: List of override nodes to register
    filter_state: Optional filter state for conditional registration
TFN)rw   r5   r~   r   )r   r   r   r   rR   ry   r-   enables   &&&$    r   r   r   _  sS      
#C
 #
&C!//5F<8DKDK r   c                    V ^8  d   QhRR/# )r   r.   Nr   )r   s   "r   r   r   ~  s     
 
 
r   c                 b    \         P                  4        F  w  rV w  r#\        VVV4       K  	  R# )zG
Perform all registration calls from previously-built override graphs.
N)rj   rk   r   )rR   r   r   r   s       r   _register_all_overridesr   ~  s/     mmo
"%	&	
 &r   c                4    V ^8  d   QhR\         R\        RR/# )r   fnr   r.   N)r   r   )r   s   "r   r   r     s(        
	r   c                    \        V VR7       R# )a  
Reorder override graphs using a user-provided ordering function.

Args:
    fn: User-provided function that takes (op_symbol, dispatch_key, graph)
        and returns a reordered graph
    reregister_overrides: Whether to reregister graphs that have changed

Note:
    This function uses the common graph transformation pattern and can serve
    as an example for other graph manipulation operations.
r   r   Nr   )r   r   s   &$r   !reorder_graphs_from_user_functionr     s    "  1r   c                l    V ^8  d   QhR\         \        \        \        .\        3,          R\        RR/# )r   	filter_fnr   r.   N)r   r   r   r   )r   s   "r   r   r     s9     5 5c=14785 5 
	5r   c               4   a  R V 3R llp\        VVR7       R# )a  
Apply a filter function to remove nodes from graphs.

This is a convenience function that uses the graph transformation pattern
to filter out unwanted nodes.

Args:
    filter_fn: Function that takes (op_symbol, dispatch_key, node) and
        returns True to keep the node, False to remove it
    reregister_overrides: Whether to reregister modified graphs

Example:
    # Remove all nodes with "deprecated" in the DSL name
    _apply_graph_filter(
        lambda op, dk, node: "deprecated" not in node.dsl_name,
        reregister_overrides=True
    )

Note:
    If filter_fn raises an exception for a specific graph, the original
    graph will be preserved and processing will continue.
c          	      t    V ^8  d   QhR\         R\         R\        \        ,          R\        \        ,          /# r   r   r   r   r.   r   r   r   )r   s   "r   r   )_apply_graph_filter.<locals>.__annotate__  s6      &)26}2E	m	r   c                  <  V Uu. uF  pS! WV4      '       g   K  VNK  	  up# u upi   \         \        \        \        3 d    \        P                  RT TRR7       Tu # \         d    \        P                  RT T4       Tu # i ; i)z-Apply filter_fn to graph with error handling.r   Tr   r   r   r   r   r   r   r   r   r   )r   r   r   r-   r   s   &&& r   filtering_transformation5_apply_graph_filter.<locals>.filtering_transformation  s    	%*WUTi	QU.VDDUWWW:~|D 	KKS	   L 	MM`
 L	s+   + &&+ + 6B	#B	,B	B	r   Nr   )r   r   r   s   f$ r   _apply_graph_filterr     s    8 ,  21r   c                n    V ^8  d   QhR\         \        \        .\        3,          R\        R\        RR/# )r   condition_fnordering_fnr   r.   N)r   r   r   r   )r   s   "r   r   r     sD     L LC:t+,LL 	L
 
Lr   c               8   a a R V V3R llp\        VVR7       R# )a  
Apply reordering only to graphs that match a condition.

This allows for more targeted reordering operations.

Args:
    condition_fn: Function that takes (op_symbol, dispatch_key) and
        returns True if the graph should be reordered
    ordering_fn: Ordering function to apply to matching graphs
    reregister_overrides: Whether to reregister modified graphs

Example:
    # Only reorder CUDA operations
    _apply_selective_reordering(
        condition_fn=lambda op, dk: dk == "CUDA",
        ordering_fn=lambda op, dk, g: sorted(g, key=lambda n: n.dsl_name),
        reregister_overrides=True
    )

Note:
    If condition_fn or ordering_fn raises an exception for a specific graph,
    the original graph will be preserved and processing will continue.
c          	      t    V ^8  d   QhR\         R\         R\        \        ,          R\        \        ,          /# r   r   )r   s   "r   r   1_apply_selective_reordering.<locals>.__annotate__  s6     ) ))&))26}2E)	m	)r   c                  <  S! W4      pT'       d    S! YT4      # T#   \         \        \        \        3 d    \        P                  RT TRR7       Tu # \         d    \        P                  RT T4       Tu # i ; i  \         \        \        \        3 d    \        P                  RT TRR7       Tu # \         d    \        P                  RT T4       Tu # i ; i)z=Apply ordering_fn conditionally based on condition_fn result.r   Tr   r   r   )r   r   r   should_reorderr   r   s   &&& r   conditional_transformation?_apply_selective_reordering.<locals>.conditional_transformation  s    	))BN" "9EBB" G :~|D 	KKS	   L 	MM`
 L	 z><H W !	    d 
 s8    B  6A=A= A=<A= 6C8CCCr   Nr   )r   r   r   r   s   ff$ r   _apply_selective_reorderingr     s    <) )V  41r   c                t   V ^8  d   Qh/ ^ \         9   d
   \        ;R&   ^\         9   d@   \        \        \        \        3,          \
        P                  P                  3,          ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   # )r   r   rv   rj   rd   rf   re   )
__conditional_annotations__r*   r   rC   r   rp   rq   rr   _GraphsTyper[   )r   s   "r   r   r      s    H - ,| ,I N 9 8tE#s(OU]]2223 8O V   W ` * ) )a b . -L -c d + * *e r   )r   r   r   r   r   r   ):r   loggingcollections.abcr   r   dataclassesr   r   typingr   r   r	   torch.libraryrp   __all__	getLoggerr    r   r
   r   DispatchKeySetr   r   r   r   r   r   r   r*   r   rv   r   rC   r   rj   r[   rd   rf   re   rE   rn   rw   r~   r>   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   s   @r   <module>r     sg    . ( 2 2  !cNCLU%9%91%<=q@A1~$    3T-%894;NNO T T Tp +n , 79 8 5c?D$778 CeCHo../ (*  )+-  -(*  *!HU &((&2/32 152 48	2j)04) 26) 59	)X$#LL/I %*/I $)/Id' #	'0 

 )- 
FN 48N "'	N
 )-Nb 
 )- >
 "'.5 "'5pL "'	L Lr   