Ë —+ˆ½'·ê¦ãó.—ddlmZmZmZGd„de«Zy)é)Ú IPNetworkÚ cidr_excludeÚ cidr_mergecó*—eZdZdZd„Zdd„Zd„Zd„Zy)ÚSubnetSplitterzù A handy utility class that takes a single (large) subnet and allows smaller subnet within its range to be extracted by CIDR prefix. Any leaving address space is available for subsequent extractions until all space is exhausted. có8—tt|«g«|_y)zœ Constructor. :param base_cidr: an IPv4 or IPv6 address with a CIDR prefix. (see IPNetwork.__init__ for full details). N)ÚsetrÚ_subnets)ÚselfÚ base_cidrs úD/usr/lib/python3.12/site-packages/netaddr/contrib/subnet_splitter.pyÚ__init__zSubnetSplitter.__init__s€ôœY yÓ1Ð2Ó3ˆ� óNc ó—|j«D]t}t|j||¬««}|sŒ"|j|«|jj t t|t|«d«««|_|cSgS)z;Extract 1 or more subnets of size specified by CIDR prefix.)Úcountr) Úavailable_subnetsÚlistÚsubnetÚ remove_subnetr Úunionr rr)r ÚprefixrÚcidrÚsubnetss r Úextract_subnetzSubnetSplitter.extract_subnetsz€à×*Ñ*Ö,ˆDܘ4Ÿ;™; v°U˜;Ó;Ó<ˆGÙØØ × Ñ ˜tÔ $Ø ŸM™M×/Ñ/´´LÀÄzÐRYÓGZÐ[\ÑG]Ó4^Ó0_Ó`ˆDŒMØŠNð -ðˆ rcó4—t|jd„d¬«S)z2Returns a list of the currently available subnets.có—|jS©N)Ú prefixlen)Úxs r Úz2SubnetSplitter.available_subnets..'s€°1·;²;rT)ÚkeyÚreverse)Úsortedr )r s r rz SubnetSplitter.available_subnets%s€ä�d—m‘mÑ)>ÈÔMÐMrcó:—|jj|«y)z:Remove a specified IPNetwork from available address space.N)r Úremove)r Ú ip_networks r rzSubnetSplitter.remove_subnet)s€à � ‰ ×јZÕ(rr)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr©rr rr s„ñò4ó òNó)rrN)Ú netaddr.iprrrÚobjectrr+rr Úr.sð÷ ;Ñ:ô")�Võ")r