
    $gZ                         d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	 d Z
d Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&dS )     N)	IPAddress	IPNetworkIPRangeIPSetcidr_excludec                     t          dd          } t          d          dt          d          t          d          t          d          ddt          d	          t          d
          t          d          g
}t          |                                           }t          |          }|t          g d          k    sJ ||k    sJ |                                |v sJ ||k    sJ d S )N	192.0.2.1
192.0.2.15192.0.2.2/31z192.0.2.4/31	192.0.2.6	192.0.2.7	192.0.2.8	192.0.2.9
192.0.2.10
192.0.2.11z192.0.2.12/30)z192.0.2.1/32r   z192.0.2.4/30z192.0.2.8/29)r   r   r   r   cidrspop)range1ip_listset1set2s       ]/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/netaddr/tests/ip/test_ip_sets.pytest_ipset_basic_apir   
   s    [,//F 	+.!!++,,/""G   D>>D5	
 	
 	
      4<<<<88::4<<<<<<    c                      t                      t          g           k    sJ t          g           } t          g           | k    sJ t          |           dk    sJ d S )Nr   )r   len)	empty_sets    r   test_ipset_emptyr   ,   s\    77eBiib		I99	!!!!y>>Qr   c                  z   t          dg          t          dg          k    sJ t          t          d          g          t          dg          k    sJ t          t          d          g          t          dg          k    sJ t          t          d                    t          dg          k    sJ t          t          d          g          t          dg          k    sJ t          t          dg                    t          dg          k    sJ t          t          dd                    t          ddg          k    sJ t          t          d	d
                    t          dg          k    sJ t          t          dd          g          t          t          dd                    k    sJ d S )N	192.0.2.0192.0.2.0/32z	1234::/32192.0.2.0/2410.0.0.0z	10.0.1.3110.0.0.0/24z10.0.1.0/270.0.0.0255.255.255.255	0.0.0.0/0)r   r   r   r    r   r   test_ipset_constructorr)   3   s   +5.)9#:#:::::)K(()**e^4D.E.EEEEE)K(()**e^4D.E.EEEEE;''((E;-,@,@@@@@)N++,--7G1H1HHHHH'(())UN3C-D-DDDDD[1122e]M<Z6[6[[[[[$566775+;O;OOOOO'*k22344gjR]>^>^8_8_______r   c                     t          t          ddg                    g t          d          t          d          t          d          t          d          t          d          t          d          t          d	          t          d
          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d           t          d!          t          d"          k    sJ d S )#N192.0.2.0/28z::192.0.2.0/124r    r	   	192.0.2.2	192.0.2.3	192.0.2.4	192.0.2.5r   r   r   r   r   r   
192.0.2.12
192.0.2.13
192.0.2.14r
   ::192.0.2.0z::192.0.2.1::192.0.2.2z::192.0.2.3::192.0.2.4z::192.0.2.5z::192.0.2.6z::192.0.2.7z::192.0.2.8z::192.0.2.9z::192.0.2.10z::192.0.2.11z::192.0.2.12z::192.0.2.13z::192.0.2.14z::192.0.2.15)listr   r   r(   r   r   test_ipset_iterationr7   ?   s   ~'89::;; !@+!@+!@ 	+!@ 	+	!@
 	+!@ 	+!@ 	+!@ 	+!@ 	+!@ 	+!@ 	,!@ 	,!@ 	,!@ 	,!@ 	,!@  	,!!@" 	-  #!@$ 	-  %!@& 	-  '!@( 	-  )!@* 	-  +!@, 	-  -!@. 	-  /!@0 	-  1!@2 	-  3!@4 	-  5!@6 	.!!7!@8 	.!!9!@: 	.!!;!@< 	.!!=!@> 	.!!?!@@ 	.!!A!@ ! ! ! ! ! !r   c                     t                      } |                     d           | t          dg          k    sJ |                     d           | t          g           k    sJ |                     t          dd                     | t          dg          k    sJ |                     t          dd                     | t          dg          k    sJ d S )	Nr    r!   r#   
10.0.0.255r$   z
10.0.0.128z10.10.10.1010.0.0.0/25)r   addremover   s1s    r   (test_ipset_member_insertion_and_deletionr?   d   s    	BFF;'((((((IIkr????FF7:|,,---''''''IIglM22333''''''''r   c                      t          dd          } |                                 t          d          t          d          t          d          gk    sJ t          dg          fd| D             g dk    sJ d S )N192.0.1.255
192.0.2.16z192.0.1.255/32r+   z192.0.2.16/32c                 6    g | ]}t          |          |v fS r(   )str).0ipipsets     r   
<listcomp>z)test_ipset_membership.<locals>.<listcomp>~   s(    555rSWWbEk"555r   ))rA   F)r    T)r	   T)r,   T)r-   T)r.   T)r/   T)r   T)r   T)r   T)r   T)r   T)r   T)r0   T)r1   T)r2   T)r
   T)rB   F)r   r   r   r   )iprangerG   s    @r   test_ipset_membershiprJ   s   s    m\22G==??"##.!!/""     >"##E5555W555 : : :      r   c                      t          dg          } t          d          | v sJ t          d          | v sJ t          d          | v sJ t          d          | v sJ t          d          | vsJ d S )Nr'   10.0.0.1r%   z255.255.255.0r$   ::1r   r   r   rG   s    r   test_ipset_membership_largestrP      s    ;-  EZ  E))))Y5((((_%%....]##u,,,,U5((((((r   c                      t          dg          } t          d          | v sJ t          d          | v sJ t          d          | vsJ t          d          | vsJ t          d          | vsJ d S )Nz10.0.0.42/32z	10.0.0.42z	10.0.0.41z	10.0.0.43z10.0.0.42/31rN   rO   s    r   test_set_membership_smallestrR      s    >"##E[!!U****^$$----[!!....[!!....^$$E111111r   c                     t          dg          t          dg          k    sJ t          dg          t          dg          z  t          dg          k    sJ t          dg          t          dg          z  t          dg          z  t          ddg          k    sJ t          dg          t          dg          z  t          dg          z  t          dg          k    sJ t          dg          t          dg          z  t          d	g          z  t          dg          k    sJ t          d
g          t          dg          z  t          dg          z  t          ddg          k    sJ d S )Nr    r!   r	   z192.0.2.0/31r-   z192.0.2.3/32z192.0.2.3/30z192.0.2.0/30z192.0.2.3/31r"   192.0.3.0/24192.0.4.0/24z192.0.2.0/23r   r(   r   r   test_ipset_unionsrW      s   +5.)9#:#:::::+%"6"66%@P:Q:QQQQQ+%"6"66}9M9MMQV	(R R     +%"6"66?O9P9PPTY	U U     +%"6"66?O9P9PPTY	U U     .!""UN+;%<%<<unEU?V?VVZ_	([ [      r   c                     t          t          d                              d                    } | d d d         }t          |          }|t          g d          k    sJ t          dg          |z  t          g d          k    sJ t          dg          |z  }|t          g d          k    sJ ||z  t          dg          k    sJ ||z  t          g           k    sJ ||z  t          dg          k    sJ d S )Nr"         )r+   z192.0.2.32/28z192.0.2.64/28z192.0.2.96/28z192.0.2.128/28z192.0.2.160/28z192.0.2.192/28z192.0.2.224/28)z192.0.2.16/28z192.0.2.48/28z192.0.2.80/28z192.0.2.112/28z192.0.2.144/28z192.0.2.176/28z192.0.2.208/28z192.0.2.240/28)r6   r   subnetr   )	adj_cidrs
even_cidrsevensoddss       r   +test_ipset_unions_intersections_differencesr`      sc   Y~..55b99::I33Q3J*EE		
 		
 		
      .!""U*e		
 		
 		
/ /     .!""U*D5		
 		
 		
      4<5.!12222224<599$$$$4<5.!122222222r   c                     t          ddg          } t          ddg          }|                     |          sJ |                    |           sJ |                    |           rJ |                     |          rJ t          dg          }t          g d          }t          g d          }||z  }||z  }d |                                D             g d	k    sJ ||z  t          g d
          k    sJ d S )Nr"   rU   r    	192.0.4.0r'   )
10.0.0.0/8172.16.0.0/12r"   192.168.0.0/16239.192.0.0/14)225.0.0.0/8226.0.0.0/7228.0.0.0/6234.0.0.0/7236.0.0.0/7238.0.0.0/8240.0.0.0/4c                 p    g | ]3}t          t          t          ||d          |d         f                    4S )r   )tuplemaprD   )rE   cidrs     r   rH   z4test_ipset_supersets_and_subsets.<locals>.<listcomp>  s9    ZZZ4E#cD$q'4845566ZZZr   )4)z	0.0.0.0/5r%   z7.255.255.255)z	8.0.0.0/7z8.0.0.0z9.255.255.255)z
11.0.0.0/8z11.0.0.0z11.255.255.255)z
12.0.0.0/6z12.0.0.0z15.255.255.255)
16.0.0.0/4z16.0.0.0z31.255.255.255)
32.0.0.0/3z32.0.0.0z63.255.255.255)
64.0.0.0/2z64.0.0.0z127.255.255.255)z128.0.0.0/3z	128.0.0.0z159.255.255.255)z160.0.0.0/5z	160.0.0.0z167.255.255.255)z168.0.0.0/6z	168.0.0.0z171.255.255.255)z172.0.0.0/12z	172.0.0.0z172.15.255.255)z172.32.0.0/11z
172.32.0.0z172.63.255.255)z172.64.0.0/10z
172.64.0.0z172.127.255.255)z172.128.0.0/9z172.128.0.0z172.255.255.255)z173.0.0.0/8z	173.0.0.0z173.255.255.255)z174.0.0.0/7z	174.0.0.0z175.255.255.255)z176.0.0.0/4z	176.0.0.0z191.255.255.255)z192.0.0.0/23z	192.0.0.0rA   )rT   z	192.0.3.0z192.0.3.255)z192.0.4.0/22rb   z192.0.7.255)z192.0.8.0/21z	192.0.8.0z192.0.15.255)z192.0.16.0/20z
192.0.16.0z192.0.31.255)z192.0.32.0/19z
192.0.32.0z192.0.63.255)z192.0.64.0/18z
192.0.64.0z192.0.127.255)z192.0.128.0/17z192.0.128.0z192.0.255.255)z192.1.0.0/16z	192.1.0.0z192.1.255.255)z192.2.0.0/15z	192.2.0.0z192.3.255.255)z192.4.0.0/14z	192.4.0.0z192.7.255.255)z192.8.0.0/13z	192.8.0.0z192.15.255.255)z192.16.0.0/12z
192.16.0.0z192.31.255.255)z192.32.0.0/11z
192.32.0.0z192.63.255.255)z192.64.0.0/10z
192.64.0.0z192.127.255.255)z192.128.0.0/11z192.128.0.0z192.159.255.255)z192.160.0.0/13z192.160.0.0z192.167.255.255)z192.169.0.0/16z192.169.0.0z192.169.255.255)z192.170.0.0/15z192.170.0.0z192.171.255.255)z192.172.0.0/14z192.172.0.0z192.175.255.255)z192.176.0.0/12z192.176.0.0z192.191.255.255)z192.192.0.0/10z192.192.0.0z192.255.255.255)z193.0.0.0/8z	193.0.0.0z193.255.255.255)z194.0.0.0/7z	194.0.0.0z195.255.255.255)z196.0.0.0/6z	196.0.0.0z199.255.255.255)z200.0.0.0/5z	200.0.0.0z207.255.255.255)z208.0.0.0/4z	208.0.0.0z223.255.255.255)z224.0.0.0/8z	224.0.0.0z224.255.255.255)z232.0.0.0/7z	232.0.0.0z233.255.255.255)z239.0.0.0/9z	239.0.0.0z239.127.255.255)z239.128.0.0/10z239.128.0.0z239.191.255.255)z239.196.0.0/14z239.196.0.0z239.199.255.255)z239.200.0.0/13z239.200.0.0z239.207.255.255)z239.208.0.0/12z239.208.0.0z239.223.255.255)z239.224.0.0/11z239.224.0.0z239.255.255.255)rc   rd   r"   re   rg   rh   ri   rj   rk   rl   rf   rm   )r   
issupersetissubset
iter_cidrs)r>   s2ipv4_addr_spaceprivatereservedunavailable	availables          r    test_ipset_supersets_and_subsetsr      sf   	/	0	0B	[)	*	*B==;;r??}}R     {{2[M**O[[[ G 	
 	
 	

 
H W$K+-IZZ9CWCWCYCYZZZ 5_ 5_ 5_ 5 5 5 5n Y&%	
 	
 	
+ +      r   c                     t          g d          } t          g d          }| |z  t          g d          k    sJ || z  t          g d          k    sJ | |z  t          ddg          k    sJ | |z
  t          ddg          k    sJ || z
  t          dd	g          k    sJ | |z  t          g d
          k    sJ d S )Nr    r3   r,   r4   r,   r4   r.   r5   )r!   192.0.2.2/32192.0.2.4/32::192.0.2.0/128::192.0.2.2/128::192.0.2.4/128r   r   r!   r   r   r   r!   r   r   r   rV   r>   ry   s     r   "test_combined_ipv4_and_ipv6_ipsetsr   P  s-   	GGG	H	HB	GGG	H	HB7e	
 	
 	
	 	 	 	 	 	 7e	
 	
 	
	 	 	 	 	 	 7e^->?@@@@@@7e^->?@@@@@@7e^->?@@@@@@7ebbbccccccccr   c                  L   t          g d          } t          g d          }| |z  t          dg          k    sJ |                     |          rJ t          ddg          }t          ddg          }||z  t          g           k    sJ |                    |          sJ d S )N)r    r	   r,   )r,   r-   r.   r   r    r	   r-   r.   )r   
isdisjointr>   ry   s3s4s       r   test_disjointed_ipsetsr   p  s    	666	7	7B	666	7	7B7e^,------}}R     	[)	*	*B	[)	*	*B7eBii==r   c                  $   t          dg          } t          dg          }|                     |           | t          dg          k    sJ |                     g d           | t          dg          k    sJ t          ddg          }t          dg          }|                    t          dd                     ||k    sJ t          dg          }|                    t          dd	          t          d
d          g           ||k    sJ d S )Nz192.0.2.0/25z192.0.2.128/25r"   )z192.0.0.0/24192.0.1.0/24rT   z192.0.0.0/22r   r    z192.0.2.255z192.0.2.100z
192.0.2.50)r   updater   )r>   ry   expectedr   r   s        r   test_ipset_updatesr   ~  s   		 	 B	 !	"	"BIIbMMM'((((((II>>>???'((((((nn566H		 	 BIIgk=11222>>>>		 	 BIIw{M22GL-4X4XYZZZ>>>>>>r   c                      t          dg          } |                     t          dd                     | t          dg          k    sJ |                                  | t          g           k    sJ d S )N10.0.0.0/16z10.1.0.0z10.1.255.255z10.0.0.0/15)r   r   r   clearrO   s    r   test_ipset_clearr     sr    =/""E	LL^44555E=/******	KKMMME"IIr   c                  &   t          dg          } |                     d           | t          g d          k    sJ |                                 }t          |          dk    sJ t	          |          g t          d          t          d          t          d          t          d          t          d	          t          d
          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d           t          d!          t          d"          t          d#          t          d$          k    sJ |t          dd          k    sJ |                     d%           | t          g d&          k    sJ t          t	          |                                                     d'k    sJ |                     d           |                     d%           | t          dg          k    sJ d S )(Nr'   r&   ) 	0.0.0.0/1128.0.0.0/2192.0.0.0/3224.0.0.0/4240.0.0.0/5248.0.0.0/6252.0.0.0/7254.0.0.0/8255.0.0.0/9255.128.0.0/10255.192.0.0/11255.224.0.0/12255.240.0.0/13255.248.0.0/14255.252.0.0/15255.254.0.0/16255.255.0.0/17255.255.128.0/18255.255.192.0/19255.255.224.0/20255.255.240.0/21255.255.248.0/22255.255.252.0/23255.255.254.0/24255.255.255.0/25255.255.255.128/26255.255.255.192/27255.255.255.224/28255.255.255.240/29255.255.255.248/30255.255.255.252/31255.255.255.254/32    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r%   )>
0.0.0.1/32z
0.0.0.2/31z
0.0.0.4/30z
0.0.0.8/29z0.0.0.16/28z0.0.0.32/27z0.0.0.64/26z0.0.0.128/25z
0.0.1.0/24z
0.0.2.0/23z
0.0.4.0/22z
0.0.8.0/21z0.0.16.0/20z0.0.32.0/19z0.0.64.0/18z0.0.128.0/17z
0.1.0.0/16z
0.2.0.0/15z
0.4.0.0/14z
0.8.0.0/13z0.16.0.0/12z0.32.0.0/11z0.64.0.0/10z0.128.0.0/9z	1.0.0.0/8z	2.0.0.0/7z	4.0.0.0/6z	8.0.0.0/5rs   rt   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   >   )r   r<   rx   r   r6   r   r   r;   )r>   r   s     r   test_ipset_cidr_fracturingr     s   	}		BII   !	
 !	
 !	
# # # # # #J MMOOEu::;; !+!-  ! 	-  ! 	-  	!
 	-  ! 	-  ! 	-  ! 	-  ! 	-  ! 	"##! 	"##! 	"##! 	"##! 	"##! 	"##!  	"##!!" 	"###!$ 	$%%%!& 	$%%'!( 	$%%)!* 	$%%+!, 	$%%-!. 	$%%/!0 	$%%1!2 	$%%3!4 	&''5!6 	&''7!8 	&''9!: 	&'';!< 	&''=!> 	&''?!@ 	&''A! ! ! ! !F L.?@@@@@@IIi?	
 ?	
 ?	
A A A A A AF tBMMOO$$%%++++FFFF9}%%%%%%%%r   c                     t          ddg          } |                                 t          dd          k    sJ |                                 sJ |                     d           | t          g d          k    sJ |                                 rJ t          j        t                    5  |                                  d d d            n# 1 swxY w Y   t          | 	                                          t          dd          t          dd          gk    sJ t          d	g          }|                                sJ |                                t          d
d          k    sJ t                      }|                                sJ |                                J t          t          dd                    }|                                sJ d S )Nr:   10.0.0.128/25r#   r9   z	10.0.0.16)z10.0.0.0/28z10.0.0.17/32z10.0.0.18/31z10.0.0.20/30z10.0.0.24/29z10.0.0.32/27z10.0.0.64/26r   z	10.0.0.15z	10.0.0.17r'   r%   r&   z10.0.0.8)
r   rI   r   iscontiguousr<   pytestraises
ValueErrorr6   iter_iprangesr   s       r   test_ipset_with_ipranger   8  s   	/	0	0B::<<7:|<<<<<<??IIk		
 		
 		
           	z	"	"  


                 ""##
K((\**(    
 
}		B??::<<79.?@@@@@@	B??::<<	wz:..	/	/B??s   +CCCc                      t          ddg          } t          j        |           }t          j        |          }| |k    sJ d S )Nr   	fe80::/64)r   pickledumpsloads)ip_databufip_data_unpickleds      r   test_ipset_picklingr   b  sK    ]K011G
,w

CS))'''''''r   c                  v    t          dg          } t          dg          }| |k    sJ | |k     rJ | |k    sJ d S )Nzfc00::/2zfc00::/3rV   r   s     r   test_ipset_comparisonr   i  sK    	
|		B	
|		B7777Bwwww888888r   c                  ~   t          dg          } |                     d           | t          dg          k    sJ t          t          d                    }t          t          d                    }t          t          d                    }t          ||g          }|t          ddg          k    sJ |                    |           |t          g d          k    sJ |                    |           |t          dd	g          k    sJ |                    |g           |t          g d          k    sJ d S )
Nr:   r$   rL   zfe80::10.0.0.210.0.0.1/32
fe80::/128)r   10.0.0.2/32r   r   )r   r;   intr   r<   r   )r>   integer1integer2integer3ry   s        r   ;test_ipset_adding_and_removing_members_ip_addresses_as_intsr   r  sI   			BFF=''''''9Z(())H9X&&''H9Z(())H	(#	$	$B|4555555FF8CCCDDDDDDIIh}5666666IIxjCCCDDDDDDDDr   c                     t          g d          } t          g d          }t          g d          }t          ddg          }t          g d          }t          ddg          }t          d	g          }t          |          sJ t          t                                rJ || z  t          d
dg          k    sJ ||z  t          ddg          k    sJ ||z  t          ddg          k    sJ ||z  t          ddg          k    sJ ||z  t          ddg          k    sJ ||z
  t          g d          k    sJ ||z
  t          g           k    sJ ||z
  t          g d          k    sJ ||z
  t          g d          k    sJ ||z
  t          g           k    sJ || z  t          g d          k    sJ t          g           t          g           z  t          g           k    sJ t          dg          t          g           z  t          dg          k    sJ t          dg          t          dg          z  t          g           k    sJ ||z  t          g d          k    sJ ||z  t          g d          k    sJ ||z  t          g d          k    sJ ||z  t          g d          k    sJ ||z  t          g d          k    sJ d S )Nr   r   )0.0.0.1z10.0.0.64/30z255.255.255.1	10.0.0.64	10.0.0.66)r   r   z111.111.111.111z	10.0.0.65z	10.0.0.67z2405:8100::/32r   r   10.0.0.64/3210.0.0.66/3210.0.0.65/3210.0.0.67/32)r   r   r   255.255.255.1/32)r   r   r   r   r   r   )r   r   r   z111.111.111.111/32r   )r   bool)r>   ry   r   r   s4bs5s6s          r   1test_ipset_operations_with_combined_ipv4_and_ipv6r     ss   	GGG	H	HB	GGG	H	HB	;;;	<	<B	[)	*	*B
===
>
>C	[)	*	*B	 !	"	"B88OOOEGG}} 7e^->?@@@@@@7e^^<======7e^^<======7e^^<======7e^^<====== 7e^^^______7eBii8u___``````7e^^^______7eBii 7ebbbcccccc99uRyy E"II----,  599,|n0E0EEEEE,  5,#8#88E"IIEEEE7e^^^______7e^^^______8u```      7e^^^______7e^^^________r   c                     t          t                                                                g k    sJ t          t          t          d          g                                                    t	          dd          gk    sJ t          t          t          d          t          d          g                                                    t	          dd          gk    sJ d S )NrL   r   )r6   r   r   r   r   r(   r   r   "test_converting_ipsets_to_iprangesr     s    %%''((B....y,,-..<<>>??GJXbDcDcCdddddy,,i
.C.CDEESSUUVV
J''[      r   c            	         t          t          t          d          t          t          j        d                              } t          j        t                    5  t          |            d d d            n# 1 swxY w Y   t          t          t          d          t          t          j        dz
  d                              }t          |          t          j        k    sJ d S )Nz::0      )	r   r   r   sysmaxsizer   r   
IndexErrorr   r   s     r   3test_len_on_ipset_failure_with_large_ipv6_addressesr     s    	wy''3;)B)BCC	D	DB	z	"	"  B               
wy''3;?A)F)FGG	H	HBr77ck!!!!!!s   A88A<?A<c            	          t          t          t          dd          t          dd          g                                                    t	          dd          t	          dd          gk    sJ d S )Nr      r   r   rM   )r6   r   r   r   r   r(   r   r   #test_ipset_ipv4_and_ipv4_separationr     st    yA	!Q899GGIIJJ	9%%uO      r   c                  4   t          dg          } t          j        t                    5  t	          |            d d d            n# 1 swxY w Y   t          j        t                    5  |                     d           d d d            d S # 1 swxY w Y   d S NrL   *   )r   r   r   	TypeErrorhashr   r=   s    r   test_ipset_exceptionsr     s   	
|		B 
y	!	!  R               
y	!	!  
		"                 s#   AA
A
*BBBc                  B    t          dg          } | dk    rJ | dk     d S r   rV   r=   s    r   )test_ipset_comparison_with_int_is_invalidr     s+    	
|		BRxxxx"HHHHr   c                     t          t          d                    } |                     t          d                     t          |                                           t          d          t          d          gk    sJ d S )Nz
10.1.2.3/8z192.168.1.2/16rc   re   r   r   r;   r6   rx   r=   s    r   'test_ipset_converts_to_cidr_networks_v4r     s    	y&&	'	'BFF9%&&'''  ,"##%      r   c                     t          t          d                    } |                     t          d                     t          |                                           t          d          t          d          gk    sJ d S )Nzfe80::4242/64zfe90::4343/64r   z	fe90::/64r   r=   s    r   'test_ipset_converts_to_cidr_networks_v6r    s}    	y))	*	*BFF9_%%&&&  ++%      r   c                  F    t          j        t                                 d S )N)weakrefrefr   r(   r   r   test_ipset_is_weak_referencabler    s    Kr   )'r   r   r  r   netaddrr   r   r   r   r   r   r   r)   r7   r?   rJ   rP   rR   rW   r`   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r(   r   r   <module>r     s+    



   F F F F F F F F F F F F F F  D  	` 	` 	`" " "J( ( (  B) ) )2 2 2  "/3 /3 /3da a aHd d d@    *  Y& Y& Y&x' ' 'T( ( (  E E E.%` %` %`P  " " "  	 	 	          r   