
    >wg5                     \    d dl mZmZmZmZ d dlZd dlZddlmZ ddl	m
Z
mZmZmZ d Zd Zy)    )unicode_literalsdivisionabsolute_importprint_functionN   )unwrap)byte_clsbytes_to_liststr_cls	type_namec           
         | t        t        j                  t        j                  g      vrNt	        t        dt        t        j                        t        t        j                        t        |                   t        |t              st        t        dt        |                  | t        j                  k(  rdnd}t        |      |k7  rt	        t        d|t        |                  | t        j                  k(  rdt        t        |            z  S t        j                  d|      }i }d}d	}t!        |d
z         D ]/  \  }}|dk7  r |||z
  }	|	|vr|||	<   t#        ||	      }d	}+|.|}1 |D 
cg c]  }
t%        |
      dd	  }}
|dk  rdj'                  |      S ||   }||z   }dj'                  |d	|       dz   dj'                  ||d	       z   S c c}
w )a  
    Windows compatibility shim for socket.inet_ntop().

    :param address_family:
        socket.AF_INET for IPv4 or socket.AF_INET6 for IPv6

    :param packed_ip:
        A byte string of the network form of an IP address

    :return:
        A unicode string of the IP address
    p
            address_family must be socket.AF_INET (%s) or socket.AF_INET6 (%s),
            not %s
            zA
            packed_ip must be a byte string, not %s
                  zA
            packed_ip must be %d bytes long - is %d
            z%d.%d.%d.%d	   !HHHHHHHHr   N)   :::)setsocketAF_INETAF_INET6
ValueErrorr   repr
isinstancer	   	TypeErrorr   lentupler
   structunpack	enumeratemaxhexjoin)address_family	packed_iprequired_lenoctetsruns_of_zerolongest_run
zero_indexioctetlengthohexed
zero_startzero_ends                 G/var/www/horilla/myenv/lib/python3.12/site-packages/asn1crypto/_inet.py	inet_ntopr5      s    S&..&//!BCC  ! 
  	 i* i 	
  	 '&..81bL
9~% 	N
  	 'u]9%=>>>]]<3FLKJfun- 	5A:%Z-+5L(!+v6!
J	 "((ASVABZ(E(Qxxk*JK'H88E+:&'$.%	:J1KKK )s   6Gc           
         | t        t        j                  t        j                  g      vrNt	        t        dt        t        j                        t        t        j                        t        |                   t        |t              st        t        dt        |                  | t        j                  k(  r|j                  d      }t        |      dk7  }|s3g }|D ],  }t        |      }|dkD  s|dk  rd} n|j                  |       . |rt	        t        dt        |                  t        j                   d	g S d
}|j#                  d      }|dkD  rd}n|dk(  r |j                  d      }t        |      dk7  }n\|j                  d      \  }}|j                  d      }	|j                  d      }
dt        |	      z
  t        |
      z
  }|	dg|z  z   |
z   }|sJg }D ]-  }t        |d      }|dkD  s|dk  rd} n|j                  |       / t        j                   dg| S t	        t        dt        |                  )a  
    Windows compatibility shim for socket.inet_ntop().

    :param address_family:
        socket.AF_INET for IPv4 or socket.AF_INET6 for IPv6

    :param ip_string:
        A unicode string of an IP address

    :return:
        A byte string of the network form of the IP address
    r   zD
            ip_string must be a unicode string, not %s
            .r      r   Tz
                ip_string must be a dotted string with four integers in the
                range of 0 to 255, got %s
                s   !BBBBFr   r   r      0r   i  r   z?
        ip_string must be a valid ipv6 string, got %s
        )r   r   r   r   r   r   r   r   r   r   r   splitr   intappendr    packcount)r&   	ip_stringr)   errorintsr0   omittedbeginendbegin_octets
end_octetsmissings               r4   	inet_ptonrI   T   sE    S&..&//!BCC  ! 
  	 i) i 	
  	 '%Fq D Fs7a!e EA V Y   {{8+d++Eood#G{	A%Fq __T*
s{{3'YYs^
c,''#j/9#1J> 	AAr
A5yAEKKN	 {{</$//
V	 	Y	      )
__future__r   r   r   r   r   r    _errorsr   _typesr	   r
   r   r   r5   rI    rJ   r4   <module>rO      s(    R R    ? ?FLRVrJ   