+
        [
                        a  R t0 t ^ RIHt ^ RIHt ^RIHtHt ^RIH	t	 ^RI
HtHtHt ^RIHt ]! ]4      t] ^ k ]! RRR7       ! R	 R
]4      4       tR R lt ! R R]4      tR# )    )defaultdict)	dataclass)SELinuxPolicyBoolean)DiffResultDescriptor)
DifferenceDifferenceResultSymbolWrapper)SymbolCacheT)frozenorderc                   0   a  ] tR t^t o RtV 3R ltRtV tR# )ModifiedBooleanz*Difference details for a modified Boolean.c                >   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   # )   booleanadded_stateremoved_state)r   bool)format__classdict__s   "8/usr/lib64/python3.14/site-packages/setools/diff/bool.py__annotate__ModifiedBoolean.__annotate__   s,     
           N)__name__
__module____qualname____firstlineno____doc____annotate_func____static_attributes____classdictcell__r   s   @r   r   r      s      5  r   r   c                R    V ^8  d   QhR\         R\        R\        \        ,          /# )r   policyr   return)r   r   r
   )r   s   "r   r   r      s&      M G g@V r   c                     \         V ,          V,          #   \         d!    \        T4      pT\         T ,          T&   Tu # i ; i)zo
Wrap booleans from the specified policy.

This caches results to prevent duplicate wrapper
objects in memory.
)_bool_cacheKeyErrorr
   )r'   r   bs   && r   boolean_wrapperr-      sD    6"7++ '"'(FG$s    (A Ac                      a  ] tR t^,t o RtV 3R lR lt]],          ! ]4      t]],          ! ]4      t	]]
,          ! ]4      tV 3R lR ltRtV tR# )BooleansDifferencezADetermine the difference in type attributes between two policies.c                   < V ^8  d   QhRR/# r   r(   Nr   )r   r   s   "r   r   BooleansDifference.__annotate__0   s     S St Sr   c                &   V P                   P                  RV P                   RV P                   24       V P	                  R V P                  P                  4        4       R V P                  P                  4        4       4      w  V n        V n        p\        \        ,          ! 4       V n
        V F\  w  r#VP                  VP                  8w  g   K"  V P                  P                  \        VVP                  VP                  4      4       K^  	  R# )z@Generate the difference in type attributes between the policies.z$Generating Boolean differences from z to c              3   8   "   T F  p\        V4      x  K  	  R # 5iNr
   .0r,   s   & r   	<genexpr>3BooleansDifference.diff_booleans.<locals>.<genexpr>8   s     D+Caq!!+C   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir5   r6   r7   s   & r   r9   r:   9   s     E+Daq!!+Dr;   N)loginfoleft_policyright_policy	_set_diffboolsadded_booleansremoved_booleanslistr   modified_booleansstateappend)selfmatched_booleansleft_booleanright_booleans   &   r   diff_booleans BooleansDifference.diff_booleans0   s     	243C3C2DDIZIZH[\	^ NND4+;+;+A+A+CDE4+<+<+B+B+DEG 	ET24D
 "&o!6!8+;'L !!]%8%88&&--ol>K>Q>Q>J>P>P/R S	 ,<r   c                   < V ^8  d   QhRR/# r1   r   )r   r   s   "r   r   r2   L   s     # #T #r   c                H    V P                   P                  R4       V =V =V =R# )z%Reset diff results on policy changes.zResetting Boolean differencesN)r=   debugrC   rD   rF   )rI   s   &r   _reset_diffBooleansDifference._reset_diffL   s%    67!"r   )rC   rF   rD   N)r   r   r   r    r!   rM   r   r   rC   rD   r   rF   rR   r#   r$   r%   s   @r   r/   r/   ,   sO     KS S* *'2=AN+G4]C,_=mL
# #r   r/   c                V    V ^8  d   Qh/ ^ \         9   d   \        \        ,          ;R&   # )r   r*   )__conditional_annotations__r   r   )r   s   "r   r   r      s     # # 6 5[! 5 $r   N)rU   collectionsr   dataclassesr   	policyrepr   r   descriptorsr   
differencer   r	   r
   typingr   dictr*   r   r-   r/   r   )rU   s   @r   <module>r]      sc    $ # ! . - C C  %0$5 5 $d#&  $%# %#r   