+
    Brh$                         R t . ROt/ tRR ltR tR t]! ]]]4       R t]! ]! ]	]
,          4      ]4       R t]! ]]4       R tRt]! ]	P                  4      tR tR	 tR
 tR t/ t/ t/ tR tR tR tR# )zHelper 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.
Nc                 r    \        V4      '       g   \        R 4      hV\        V &   Ve   \        V4       R# R# )z$reduction functions must be callableN)callable	TypeErrordispatch_tableconstructor)ob_typepickle_functionconstructor_obs   &&&$/usr/local/lib/python3.14/copyreg.pypickler      s8    O$$>??-N7 !N# "    c                 >    \        V 4      '       g   \        R 4      hR# )zconstructors must be callableN)r   r   )objects   &r
   r   r      s    F788 r   c                 >    \         V P                  V P                  33# N)complexrealimag)cs   &r
   pickle_complexr      s    QVVQVV$$$r   c                 Z    ^ RI p^ RIpVP                  VP                  V P                  33# )    N)typingoperatorgetitemUnion__args__)objr   r   s   &  r
   pickle_unionr   !   s#    fllCLL999r   c                 >    \         V P                  V P                  33# r   )super__thisclass____self__)r   s   &r
   pickle_superr#   '   s    3$$cll333r   c                     V\         J d   \         P                  V 4      pV# VP                  W4      pVP                  \         P                  8w  d   VP                  W24       V# r   )r   __new____init__)clsbasestater   s   &&& r
   _reconstructorr*   .   sO    v~nnS!
 J ll3&==FOO+MM#%Jr   c                 B   V^8  g   Q hV P                   pVP                   Fj  p\        VR4      '       d    VP                  \        ,          '       g    M@VP
                  p\        V\        4      '       g   KX  VP                  VJ g   Kj   M	  \        pV\        J d   RpM'W2J d   \        RVP                  : R24      hV! V 4      pW#V3p V P                  p\        V 4      P                  \        P                  J d   \        V RR4      '       d   \        R4      hV! 4       pT'       d	   \"        Yh3# \"        T3#   \         dU    \        T RR4      '       d   \        RTP                  : RT 24      Rh T P                   p Lb  \         d    Rp  Lri ; ii ; i)   	__flags__Nz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_typer"   r   r   __name____getstate__typegetattrAttributeError__dict__r*   )	selfprotor'   r(   newr)   argsgetstatedicts	   &&       r
   
_reduce_exrA   <   s   199
..C4%%dnny.H.Hllc9%%#,,$*>  v~;nS\\,<GDEET
uD$$ J##v':'::D+t,, F G Gzt))t##'  	4d++nS\\,< =- .3G5 6 <@@	==D 	D		s*   D? ?;F;F		FFFFc                 *    V P                   ! V .VO5!  # r   r%   )r'   r>   s   &*r
   
__newobj__rD   g   s    ;;s"T""r   c                .    V P                   ! V .VO5/ VB # )zwUsed by pickle protocol 4, instead of __newobj__ to allow classes with
keyword-only arguments to be pickled correctly.
rC   )r'   r>   kwargss   &&&r
   __newobj_ex__rG   j   s     ;;s,T,V,,r   c                v   V P                   P                  R4      pVe   V# . p\        V R4      '       g   MV P                   F  pRVP                   9   g   K  VP                   R,          p\	        V\
        4      '       d   V3pV F  pVR9   d   K  VP                  R4      '       dh   VP                  R4      '       gQ   VP                  P                  R4      pV'       d   VP                  RV: V: 24       Kw  VP                  V4       K  VP                  V4       K  	  K  	   Wn        V#     T# ; i)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__r.   ___)r:   __weakref__)r:   getr1   r0   r3   str
startswithendswithr5   lstripappendrI   )r'   namesr   slotsnamestrippeds   &     r
   
_slotnamesrW   p   s    LL_-E E3$$ Aajj(

;/eS))"HE!D:: ..t}}T7J7J#$::#4#4S#9#!LLHd)CD!LL.T* " *! LLs   +D3 3D8c                   \        V4      p^Tu;8:  d   R8:  g   M \        R4      hW3p\        P                  V4      V8X  d   \        P                  V4      V8X  d   R# V\        9   d   \        RV: R\        V,          : 24      hV\        9   d   \        RV: R\        V,          : 24      hV\        V&   V\        V&   R# )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_registryrM   _inverted_registrymodulerU   codekeys   &&& r
   add_extensionrb      s    t9D"
",--.C$,t$+
!!2379 : 	:!! 24 8: ; 	;#"tr   c                    W3p\         P                  V4      V8w  g   \        P                  V4      V8w  d   \        RV: RV: 24      h\         V \        V V\        9   d
   \        V R# R# )z0Unregister an extension code.  For testing only.rY   z is not registered with code N)r\   rM   r]   r[   _extension_cacher^   s   &&& r
   remove_extensionre      sl    .C$,t$+t% & 	&C 4 T"  r   c                  .    \         P                  4        R # r   )rd   clear r   r
   clear_extension_cacheri      s    r   )r   r   rb   re   ri   r   i   )__doc____all__r   r   r   r   r   r   r7   rZ   rN   r#   r    r*   r2   r%   r4   rA   rD   rG   rW   r\   r]   rd   rb   re   ri   rh   r   r
   <module>rl      s   I $9% w (: tC#I %4 ul  		'$V#-1x    #$
#r   