§
    ¸)ýfý  ã                   óø   — d Z g d¢Zi Zdd„Zd„ Z	 e d„ Z eeee¦  «         n# e$ r Y nw xY wd„ Z e e	e
ez  ¦  «        e¦  «         d„ ZdZ e	e
j        ¦  «        Zd	„ Zd
„ Zd„ Zd„ Zi Zi Zi Zd„ Zd„ Zd„ ZdS )z¤Helper to provide extensibility for pickle.

This is only useful to add pickle support for extension types defined in
C, not for instances of user-defined classes.
)ÚpickleÚconstructorÚadd_extensionÚremove_extensionÚclear_extension_cacheNc                 ó|   — t          |¦  «        st          d¦  «        ‚|t          | <   |�t          |¦  «         d S d S )Nz$reduction functions must be callable)ÚcallableÚ	TypeErrorÚdispatch_tabler   )Úob_typeÚpickle_functionÚconstructor_obs      úS/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/copyreg.pyr   r      sP   € Ý�OÑ$Ô$ð @ÝÐ>Ñ?Ô?Ð?Ø-…N�7Ñð Ð!Ý�NÑ#Ô#Ð#Ð#Ð#ð "Ð!ó    c                 óB   — t          | ¦  «        st          d¦  «        ‚d S )Nzconstructors must be callable)r   r	   )Úobjects    r   r   r      s+   € Ý�FÑÔð 9ÝÐ7Ñ8Ô8Ð8ð9ð 9r   c                 ó,   — t           | j        | j        ffS ©N)ÚcomplexÚrealÚimag)Úcs    r   Úpickle_complexr   "   s   € Ý˜œ ¤Ð(Ð(Ð(r   c                 ó<   — dd l }dd l}|j        |j        | j        ffS )Né    )Ú	functoolsÚoperatorÚreduceÚor_Ú__args__)Úobjr   r   s      r   Úpickle_unionr!   '   s1   € ØÐÐÐÐÐÐÐØÔ˜hœl¨C¬LÐ9Ð9Ð9r   c                 óÐ   — |t           u rt                                | ¦  «        }nA|                     | |¦  «        }|j        t           j        k    r|                     ||¦  «         |S r   )r   Ú__new__Ú__init__)ÚclsÚbaseÚstater    s       r   Ú_reconstructorr(   /   sY   € Ø�v€~€~Ý�nŠn˜SÑ!Ô!ˆˆà�lŠl˜3 Ñ&Ô&ˆØŒ=�FœOÒ+Ð+Ø�MŠM˜#˜uÑ%Ô%Ð%Ø€Jr   i   c                 óÀ  — |dk     sJ ‚| j         }|j        D ]J}t          |d¦  «        r|j        t          z  s n/|j        }t          |t          ¦  «        r|j        |u r nŒKt          }|t          u rd }n'||u rt          d|j        ›d�¦  «        ‚ || ¦  «        }|||f}	 | j        }t          | ¦  «        j        t          j        u r t          | dd ¦  «        rt          d¦  «        ‚ |¦   «         }nW# t          $ rJ t          | dd ¦  «        rt          d|j        ›d|› �¦  «        d ‚	 | j        }n# t          $ r d }Y nw xY wY nw xY w|r
t"          ||fS t"          |fS )Né   Ú	__flags__zcannot pickle z objectÚ	__slots__zNa class that defines __slots__ without defining __getstate__ cannot be pickledzf object: a class that defines __slots__ without defining __getstate__ cannot be pickled with protocol )Ú	__class__Ú__mro__Úhasattrr+   Ú	_HEAPTYPEr#   Ú
isinstanceÚ	_new_typeÚ__self__r   r	   Ú__name__Ú__getstate__ÚtypeÚgetattrÚAttributeErrorÚ__dict__r(   )	ÚselfÚprotor%   r&   Únewr'   ÚargsÚgetstateÚdicts	            r   Ú
_reduce_exr@   =   sï  € Ø�1Š9ˆ9ˆ9ˆ9Ø
Œ.€CØ”ð ð ˆÝ�4˜Ñ%Ô%ð 	¨d¬n½yÑ.Hð 	ØˆEØŒlˆÝ�c�9Ñ%Ô%ð 	¨#¬,¸$Ð*>Ð*>ØˆEøåˆØ�v€~€~Øˆˆà�3ˆ;ˆ;ÝÐD¨S¬\ÐDÐDÐDÑEÔEÐEØ��T‘
”
ˆØ��uÐ€DðØÔ$ˆõ �‰JŒJÔ#¥vÔ':Ð:Ð:Ý�D˜+ tÑ,Ô,ð ;åð Fñ Gô Gð Gàˆx‰zŒzˆˆøõ ð 	ð 	ð 	Ý�4˜ dÑ+Ô+ð 	@Ýð 5¨S¬\ð 5ð 5ð .3ð5ð 5ñ 6ô 6ð <@ð@ð	Ø”=ˆDˆDøÝð 	ð 	ð 	ØˆDˆDˆDð	øøøøøð	øøøð  ð $Ý˜t TÐ)Ð)å˜tÐ#Ð#s6   Â"C4 Ã46EÄ+D3Ä2EÄ3EÄ?EÅEÅEÅEc                 ó   —  | j         | g|¢R Ž S r   ©r#   )r%   r=   s     r   Ú
__newobj__rC   h   s   € Øˆ3Œ;�sÐ"˜TÐ"Ð"Ð"Ð"r   c                 ó$   —  | j         | g|¢R i |¤ŽS )zUsed by pickle protocol 4, instead of __newobj__ to allow classes with
    keyword-only arguments to be pickled correctly.
    rB   )r%   r=   Úkwargss      r   Ú__newobj_ex__rF   k   s&   € ð ˆ3Œ;�sÐ,˜TÐ,Ð,Ð, VÐ,Ð,Ð,r   c                 ó$  — | j                              d¦  «        }|�|S g }t          | d¦  «        snÎ| j        D ]Æ}d|j         v r»|j         d         }t	          |t
          ¦  «        r|f}|D ]“}|dv rŒ|                     d¦  «        rb|                     d¦  «        sM|j         	                    d¦  «        }|r| 
                    d|›|›�¦  «         Œh| 
                    |¦  «         Œ~| 
                    |¦  «         Œ”ŒÇ	 || _        n#  Y nxY w|S )a›  Return a list of slot names for a given class.

    This needs to find slots defined by the class and its bases, so we
    can't simply return the __slots__ attribute.  We must walk down
    the Method Resolution Order and concatenate the __slots__ of each
    class found there.  (This assumes classes don't modify their
    __slots__ attribute to misrepresent their slots after the class is
    defined.)
    Ú__slotnames__Nr,   )r9   Ú__weakref__Ú__Ú_)r9   Úgetr/   r.   r1   ÚstrÚ
startswithÚendswithr4   ÚlstripÚappendrH   )r%   Únamesr   ÚslotsÚnameÚstrippeds         r   Ú
_slotnamesrV   q   sU  € ð ŒL×Ò˜_Ñ-Ô-€EØÐØˆð €EÝ�3˜Ñ$Ô$ð +àð ”ð 	+ð 	+ˆAØ˜aœjÐ(Ð(Øœ
 ;Ô/�å˜e¥SÑ)Ô)ð %Ø"˜H�EØ!ð +ð +�DàÐ:Ð:Ð:Ø àŸš¨Ñ.Ô.ð +°t·}²}ÀTÑ7JÔ7Jð +Ø#$¤:×#4Ò#4°SÑ#9Ô#9˜Ø#ð /Ø!ŸLšL˜L°H°H¸d¸dÐ)CÑDÔDÐDÐDà!ŸLšL¨Ñ.Ô.Ð.Ð.àŸš TÑ*Ô*Ð*Ð*øðØ!ˆÔÐøðØˆøøøà€Ls   ÄD	 Ä	Dc                 ó°  — t          |¦  «        }d|cxk    rdk    sn t          d¦  «        ‚| |f}t                               |¦  «        |k    r t                               |¦  «        |k    rdS |t          v r t          d|›dt          |         ›�¦  «        ‚|t          v r t          d|›dt          |         ›�¦  «        ‚|t          |<   |t          |<   dS )	zRegister an extension code.é   iÿÿÿzcode out of rangeNúkey z! is already registered with code zcode z is already in use for key )ÚintÚ
ValueErrorÚ_extension_registryrL   Ú_inverted_registry©ÚmodulerT   ÚcodeÚkeys       r   r   r   ³   s  € åˆt‰9Œ9€DØ�Ð"Ð"Ò"Ð"˜
Ò"Ð"Ð"Ð"ÝÐ,Ñ-Ô-Ð-Ø�4ˆ.€CÝ×Ò Ñ$Ô$¨Ò,Ð,Ý×Ò˜tÑ$Ô$¨Ò+Ð+ØˆØ
Õ!Ð!Ð!ÝˆjØ˜#˜#Õ2°3Ô7Ð7ð9ñ :ô :ð 	:àÕ!Ð!Ð!ÝˆjØ˜$˜$Õ 2°4Ô 8Ð 8ð:ñ ;ô ;ð 	;à#Õ˜ÑØ"Õ�tÑÐÐr   c                 óö   — | |f}t                                |¦  «        |k    st                               |¦  «        |k    rt          d|›d|›�¦  «        ‚t           |= t          |= |t          v r
t          |= dS dS )z0Unregister an extension code.  For testing only.rY   z is not registered with code N)r\   rL   r]   r[   Ú_extension_cacher^   s       r   r   r   Å   s“   € à�4ˆ.€CÝ×Ò Ñ$Ô$¨Ò,Ð,Ý×Ò˜tÑ$Ô$¨Ò+Ð+ÝˆjØ˜#˜#˜t˜tð%ñ &ô &ð 	&å˜CÐ Ý˜4Ð ØÕÐÐÝ˜TÐ"Ð"Ð"ð  Ðr   c                  ó8   — t                                ¦   «          d S r   )rc   Úclear© r   r   r   r   Ñ   s   € Ý×ÒÑÔÐÐÐr   r   )Ú__doc__Ú__all__r
   r   r   r   r   Ú	NameErrorr!   r6   rZ   rM   r(   r0   r#   r2   r@   rC   rF   rV   r\   r]   rc   r   r   r   rf   r   r   ú<module>rj      s€  ððð ðIð Ið I€ð €ð$ð $ð $ð $ð9ð 9ð 9ð	-Ø€Gð
)ð )ð )ð €Fˆ7�N GÑ,Ô,Ð,Ð,øð ð 	ð 	ð 	Ø€Dð	øøøð:ð :ð :ð €€t€tˆC�#‰I�„˜Ñ %Ô %Ð %ðð ð ð €	ØˆD�”ÑÔ€	ð'$ð '$ð '$ðV#ð #ð #ð-ð -ð -ð1ð 1ð 1ðx Ð ØÐ ØÐ ð#ð #ð #ð$
#ð 
#ð 
#ðð ð ð ð s   ‘$ ¤,«,