
    ui,                         S SK rS SKr\R                  S:  a	  \rS SKJr  OS SKJr  S SK	Jr  \ " S S\R                  R                  5      5       rS rg)    N)      )	immutable)OrderedDictc                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
Dict   c                 x    U(       a  [        U[        5      (       a  Xl        O[        U5      U l        SU l        g)zMake an immutable dictionary from the specified dictionary.

If *no_copy* is `True`, then *dictionary* will be wrapped instead
of copied.  Only set this if you are sure there will be no external
references to the dictionary.
N)
isinstanceodict_odict_hash)self
dictionaryno_copys      D/home/kodi/.kodi/addons/script.module.dnspython/lib/dns/immutable.py__init__Dict.__init__   s+     z*e44$K
+DK
    c                 8    U R                   R                  U5      $ N)r   __getitem__)r   keys     r   r   Dict.__getitem__    s    {{&&s++r   c                     U R                   cQ  Sn[        U R                  R                  5       5       H  nU[	        U5      -  nM     [
        R                  U SU5        U R                   $ )Nr   r   )r   sortedr   keyshashobject__setattr__)r   hr   s      r   __hash__Dict.__hash__#   sV    ::Adkk..01T#Y 2tWa0zzr   c                 ,    [        U R                  5      $ r   )lenr   r   s    r   __len__Dict.__len__,   s    4;;r   c                 ,    [        U R                  5      $ r   )iterr   r&   s    r   __iter__Dict.__iter__/   s    DKK  r   )r   r   N)F)
__name__
__module____qualname____firstlineno__r   r   r"   r'   r+   __static_attributes__ r   r   r   r      s    , !r   r   c                    [        U [        5      (       a  [        U 5      $ [        U [        5      (       a   [	        U 5        U $ [        U [        5      (       a  [        S U  5       5      $ [        U [        5      (       a<  [        5       nU R                  5        H  u  p#[        U5      X'   M     [        US5      $ U $ ! [
         a    [        S U  5       5      s $ f = f)z+
Convert mutable types to immutable types.
c              3   8   #    U  H  n[        U5      v   M     g 7fr   constify.0elts     r   	<genexpr>constify.<locals>.<genexpr>>   s     4!3#!   c              3   8   #    U  H  n[        U5      v   M     g 7fr   r5   r7   s     r   r:   r;   @   s     0asXc]]ar<   T)r   	bytearraybytestupler   	Exceptionlistdictr   itemsr6   r   )ocdictkvs       r   r6   r6   3   s     !YQx!U	5GH !T0a000!TGGIDA{EH E4  H  	54!444	5s   B> >CC)collections.abccollectionssysversion_inforC   r   dns._immutable_ctxr   r   dns._immutable_attrabcMappingr   r6   r2   r   r   <module>rQ      sX     
 vE, 1- !;??"" ! !Br   