<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
ÝPfç"  ã               @   st   yd dl mZ W n  ek
r0   d dlmZ Y nX yd dlmZmZmZ W n ek
r^   Y nX G dd„ de	ƒZ
dS )é    )Ú	get_ident)ÚKeysViewÚ
ValuesViewÚ	ItemsViewc               @   s   e Zd ZdZdd„ Zejfdd„Zejfdd„Zdd	„ Zd
d„ Z	dd„ Z
d6dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZeZeƒ Zefdd „Zd7d"d#„Zi fd$d%„Zd&d'„ Zd(d)„ Zed8d*d+„ƒZd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Z d4d5„ Z!d!S )9ÚOrderedDictz)Dictionary that remembers insertion orderc             O   sn   t |ƒdkrtdt |ƒ ƒ‚y
| j W n6 tk
r\   g  | _}||dg|dd…< i | _Y nX | j||Ž dS )zÅInitialize an ordered dictionary.  Signature is the same as for
        regular dictionaries, but keyword arguments are not recommended
        because their insertion order is arbitrary.

        é   z$expected at most 1 arguments, got %dN)ÚlenÚ	TypeErrorÚ_OrderedDict__rootÚAttributeErrorÚ_OrderedDict__mapÚ_OrderedDict__update)ÚselfÚargsÚkwdsÚroot© r   ú"/usr/lib/python3.6/ordered_dict.pyÚ__init__   s    

zOrderedDict.__init__c             C   sF   || kr6| j }|d }|||g |d<  |d< | j|< || ||ƒ dS )z!od.__setitem__(i, y) <==> od[i]=yr   r   N)r
   r   )r   ÚkeyÚvalueZdict_setitemr   Úlastr   r   r   Ú__setitem__,   s
     zOrderedDict.__setitem__c             C   s0   || |ƒ | j j|ƒ\}}}||d< ||d< dS )z od.__delitem__(y) <==> del od[y]r   r   N)r   Úpop)r   r   Zdict_delitemÚ	link_prevÚ	link_nextr   r   r   Ú__delitem__6   s    
zOrderedDict.__delitem__c             c   s2   | j }|d }x||k	r,|d V  |d }qW dS )zod.__iter__() <==> iter(od)r   é   N)r
   )r   r   Úcurrr   r   r   Ú__iter__?   s
    

zOrderedDict.__iter__c             c   s2   | j }|d }x||k	r,|d V  |d }qW dS )z#od.__reversed__() <==> reversed(od)r   r   N)r
   )r   r   r   r   r   r   Ú__reversed__G   s
    

zOrderedDict.__reversed__c             C   sh   yDx| j jƒ D ]}|dd…= qW | j}||dg|dd…< | j jƒ  W n tk
rX   Y nX tj| ƒ dS )z.od.clear() -> None.  Remove all items from od.N)r   Ú
itervaluesr
   Úclearr   Údict)r   Znoder   r   r   r   r"   O   s    zOrderedDict.clearTc             C   s|   | st dƒ‚| j}|r8|d }|d }||d< ||d< n |d }|d }||d< ||d< |d }| j|= tj| |ƒ}||fS )z™od.popitem() -> (k, v), return and remove a (key, value) pair.
        Pairs are returned in LIFO order if last is true or FIFO order if false.

        zdictionary is emptyr   r   r   )ÚKeyErrorr
   r   r#   r   )r   r   r   Úlinkr   r   r   r   r   r   r   Úpopitem[   s     
zOrderedDict.popitemc             C   s   t | ƒS )zod.keys() -> list of keys in od)Úlist)r   r   r   r   Úkeyst   s    zOrderedDict.keysc                s   ‡ fdd„ˆ D ƒS )z#od.values() -> list of values in odc                s   g | ]}ˆ | ‘qS r   r   )Ú.0r   )r   r   r   ú
<listcomp>z   s    z&OrderedDict.values.<locals>.<listcomp>r   )r   r   )r   r   Úvaluesx   s    zOrderedDict.valuesc                s   ‡ fdd„ˆ D ƒS )z.od.items() -> list of (key, value) pairs in odc                s   g | ]}|ˆ | f‘qS r   r   )r)   r   )r   r   r   r*   ~   s    z%OrderedDict.items.<locals>.<listcomp>r   )r   r   )r   r   Úitems|   s    zOrderedDict.itemsc             C   s   t | ƒS )z0od.iterkeys() -> an iterator over the keys in od)Úiter)r   r   r   r   Úiterkeys€   s    zOrderedDict.iterkeysc             c   s   x| D ]}| | V  qW dS )z2od.itervalues -> an iterator over the values in odNr   )r   Úkr   r   r   r!   „   s    
zOrderedDict.itervaluesc             c   s    x| D ]}|| | fV  qW dS )z=od.iteritems -> an iterator over the (key, value) items in odNr   )r   r/   r   r   r   Ú	iteritems‰   s    
zOrderedDict.iteritemsc              O   sØ   t | ƒdkr tdt | ƒf ƒ‚n| s,tdƒ‚| d }f }t | ƒdkrL| d }t|tƒrrx^|D ]}|| ||< q\W nDt|dƒrœx8|jƒ D ]}|| ||< q†W nx|D ]\}}|||< q¢W x|jƒ D ]\}}|||< qÀW dS )aƒ  od.update(E, **F) -> None.  Update od from dict/iterable E and F.

        If E is a dict instance, does:           for k in E: od[k] = E[k]
        If E has a .keys() method, does:         for k in E.keys(): od[k] = E[k]
        Or if E is an iterable of items, does:   for k, v in E: od[k] = v
        In either case, this is followed by:     for k, v in F.items(): od[k] = v

        r   z8update() takes at most 2 positional arguments (%d given)z,update() takes at least 1 argument (0 given)r   r   r(   N)r   r	   Ú
isinstancer#   Úhasattrr(   r,   )r   r   r   Úotherr   r   r   r   r   ÚupdateŽ   s&    	


zOrderedDict.updatec             C   s0   || kr| | }| |= |S || j kr,t|ƒ‚|S )z©od.pop(k[,d]) -> v, remove specified key and return the corresponding value.
        If key is not found, d is returned if given, otherwise KeyError is raised.

        )Ú_OrderedDict__markerr$   )r   r   ÚdefaultÚresultr   r   r   r   ±   s    
zOrderedDict.popNc             C   s   || kr| | S || |< |S )zDod.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in odr   )r   r   r6   r   r   r   Ú
setdefault¾   s    zOrderedDict.setdefaultc             C   sV   t | ƒtƒ f}||krdS d||< z&| s6d| jjf S d| jj| jƒ f S ||= X dS )zod.__repr__() <==> repr(od)z...r   z%s()z%s(%r)N)ÚidÚ
_get_identÚ	__class__Ú__name__r,   )r   Z_repr_runningZcall_keyr   r   r   Ú__repr__Å   s    zOrderedDict.__repr__c                s\   ‡ fdd„ˆ D ƒ}t ˆ ƒjƒ }xt tƒ ƒD ]}|j|dƒ q*W |rPˆ j|f|fS ˆ j|ffS )z%Return state information for picklingc                s   g | ]}|ˆ | g‘qS r   r   )r)   r/   )r   r   r   r*   Ô   s    z*OrderedDict.__reduce__.<locals>.<listcomp>N)ÚvarsÚcopyr   r   r;   )r   r,   Z	inst_dictr/   r   )r   r   Ú
__reduce__Ò   s    zOrderedDict.__reduce__c             C   s
   | j | ƒS )z!od.copy() -> a shallow copy of od)r;   )r   r   r   r   r?   Ü   s    zOrderedDict.copyc             C   s    | ƒ }x|D ]}|||< qW |S )z€OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S
        and values equal to v (which defaults to None).

        r   )ÚclsÚiterabler   Údr   r   r   r   Úfromkeysà   s    
zOrderedDict.fromkeysc             C   s6   t |tƒr*t| ƒt|ƒko(| jƒ |jƒ kS tj| |ƒS )z“od.__eq__(y) <==> od==y.  Comparison to another OD is order-sensitive
        while comparison to a regular mapping is order-insensitive.

        )r1   r   r   r,   r#   Ú__eq__)r   r3   r   r   r   rE   ë   s    
 zOrderedDict.__eq__c             C   s
   | |k S )Nr   )r   r3   r   r   r   Ú__ne__ô   s    zOrderedDict.__ne__c             C   s   t | ƒS )z@od.viewkeys() -> a set-like object providing a view on od's keys)r   )r   r   r   r   Úviewkeysù   s    zOrderedDict.viewkeysc             C   s   t | ƒS )z<od.viewvalues() -> an object providing a view on od's values)r   )r   r   r   r   Ú
viewvaluesý   s    zOrderedDict.viewvaluesc             C   s   t | ƒS )zBod.viewitems() -> a set-like object providing a view on od's items)r   )r   r   r   r   Ú	viewitems  s    zOrderedDict.viewitems)T)N)N)"r<   Ú
__module__Ú__qualname__Ú__doc__r   r#   r   r   r   r    r"   r&   r(   r+   r,   r.   r!   r0   r4   r   Úobjectr5   r   r8   r=   r@   r?   ÚclassmethodrD   rE   rF   rG   rH   rI   r   r   r   r   r      s:   
	



	r   N)Zthreadr   r:   ÚImportErrorZdummy_threadZ_abcollr   r   r   r#   r   r   r   r   r   Ú<module>   s   