
    /I_                         S SK r  " S S5      r " S S\5      r " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      rg)    Nc                      \ rS rSrSr\R                  \R                  \R                  S.r	SS jr
S rS\4S jrS	 r\r\S
 5       r\S 5       r\S 5       r\S\4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       rS rSrg)	IPNetwork      )r         Nc                    [        U[        5      (       a0  UR                  nUR                  nUR                  nUR
                  nX0l        SU l        [        U[        5      (       a  U R                  U   " U5      U l
        O6U(       d   UR                  S5      u  p[        R                  " U5      U l
        U(       d$  U R
                  R                  S:X  a  SOSU l        g  [        U5      U l        U R
                  R                  S:X  a  U R                  S:w  d*  U R
                  R                  S
:X  a1  U R                  S:w  a   U =R                  U R&                  -  sl        g g g ! [         a    S n Nf = f! [         a]    [        U[         5      (       aF  SU;   a@  [        R"                  " SR%                  U R
                  U5      SS	9R                  U l         Ne f = f)Nr   /r          .{}/{}F)strictr   )
isinstancer   	prefixlenscopeversionip_IPNetwork__scope_IPNetwork__flagsintip_family_handler_ipsplit
ValueError	ipaddress
ip_address_IPNetwork__prefixlenstr
ip_networkformat_IPNetwork__INIT_WITH_PREFIXLEN)selfr   r   r   familys        +/usr/share/ifupdown2/nlmanager/ipnetwork.py__init__IPNetwork.__init__$   s~   b)$$IHHEZZFBb#--f5b9DH%$&HHSMMB !++B/DH%)WW__%9rsD#&y>  1$2)=477??VWCW\`\j\jnq\q : :: ]rCW! " % $I%  i--#2B'0';';GNN477T]<^gl'm'w'wD$	s%   E+ %E= +E:9E:=A#G$"G$c                 `    [        U R                  5      U R                  -  U R                  -  $ N)r   r   r   r   r#   s    r%   __hash__IPNetwork.__hash__H   s$    488}t///$,,>>    returnc                     U=(       aY    U R                   UR                   :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r)   )r   r   r   r   r   )r#   others     r%   __eq__IPNetwork.__eq__K   sM     7<<5==0788uxx'7 ##u6	7r-   c                 N    SR                  U R                  U R                  5      $ )Nr   )r!   r   r   r*   s    r%   __repr__IPNetwork.__repr__Q   s    ~~dhh(8(899r-   c                     U R                   $ r)   r   r*   s    r%   r   IPNetwork.ipV   s    xxr-   c                 .    U R                   R                  $ r)   )r   packedr*   s    r%   r:   IPNetwork.packedZ   s    xxr-   c                 .    U R                   R                  $ r)   )r   is_multicastr*   s    r%   r=   IPNetwork.is_multicast^   s    xx$$$r-   c                     U R                   $ r)   )r   r*   s    r%   r   IPNetwork.prefixlenb   s    r-   c                 .    U R                   R                  $ r)   )r   r   r*   s    r%   r   IPNetwork.versionf   s    xxr-   c                     U R                   $ r)   )r   r*   s    r%   r   IPNetwork.scopej   s    ||r-   c                 4    U R                   U R                  -  $ r)   )r   r"   r*   s    r%   initialized_with_prefixlen$IPNetwork.initialized_with_prefixlenn   s    ||d8888r-   c                 V    U R                   R                  S:X  a  SU l        g SU l        g )Nr   r   r   )r   r   r   r*   s    r%   ignore_prefixlenIPNetwork.ignore_prefixlenr   s     !%A!523r-   )__flags__prefixlen__scoper   )Nr   r   )__name__
__module____qualname____firstlineno__r"   r   r   IPv4AddressIPv6Addressr   r&   r+   boolr1   r4   __str__propertyr   r:   r=   r   r   r   r   rF   rI   __static_attributes__ r-   r%   r   r      s          ";H?7t 7: G    % %  3           s   9C 9 9?r-   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )IPv4Networkv   c                    > [         [        U ]
  " USS0UD6  U R                  S:w  a&  [        R
                  " U R                  5      U l        g g )Nr$   r   )superrZ   r&   r   r   rR   r   r#   argskwargs	__class__s      r%   r&   IPv4Network.__init__w   C    k4)TDDVD<<1 ,,TXX6DH r-   r7   rN   rO   rP   rQ   r&   rW   __classcell__ra   s   @r%   rZ   rZ   v       7 7r-   rZ   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )IPv6Network~   c                    > [         [        U ]
  " USS0UD6  U R                  S:w  a&  [        R
                  " U R                  5      U l        g g )Nr$   r   )r]   ri   r&   r   r   rS   r   r^   s      r%   r&   IPv6Network.__init__   rc   r-   r7   rd   rf   s   @r%   ri   ri   ~   rg   r-   ri   c                   8   ^  \ rS rSrSU 4S jjrS rS rSrU =r$ )	IPAddress   c                   > [        U[        5      (       a  [        eUb!  U R                  SR	                  X5      5        OSU;   a  U R                  U5        [
        [        U ]  " X/UQ70 UD6  U R                  5         g )Nr   r
   )	r   r   NotImplementedError_IPAddress__raise_exceptionr!   r]   rn   r&   rI   )r#   r   r   r_   r`   ra   s        r%   r&   IPAddress.__init__   sm    b#%% ""7>>"#@ABY""2&i'GGGr-   c                 ,    [        U R                  5      $ r)   r   r   r*   s    r%   r4   IPAddress.__repr__       488}r-   c                     [        SU-  5      e)Nz2'%s' does not appear to be an IPv4 or IPv6 address)r   )r#   r   s     r%   __raise_exceptionIPAddress.__raise_exception   s    @
 	
r-   rX   r)   )	rN   rO   rP   rQ   r&   r4   rr   rW   re   rf   s   @r%   rn   rn      s     
 
r-   rn   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )rR      c                 N   > [         [        U ]
  " U0 UD6  U R                  5         g r)   )r]   rR   r&   rI   r^   s      r%   r&   IPv4Address.__init__   #    k4)4:6:r-   c                 ,    [        U R                  5      $ r)   ru   r*   s    r%   r4   IPv4Address.__repr__   rw   r-   rX   rN   rO   rP   rQ   r&   r4   rW   re   rf   s   @r%   rR   rR            r-   rR   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )rS      c                 N   > [         [        U ]
  " U0 UD6  U R                  5         g r)   )r]   rS   r&   rI   r^   s      r%   r&   IPv6Address.__init__   r   r-   c                 ,    [        U R                  5      $ r)   ru   r*   s    r%   r4   IPv6Address.__repr__   rw   r-   rX   r   rf   s   @r%   rS   rS      r   r-   rS   )r   r   rZ   ri   rn   rR   rS   rX   r-   r%   <module>r      sS   . Y? Y?x7) 77) 7
	 
0+ + r-   