
    j
i;p                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlmZ d dlmZmZmZ d dlmZmZmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZm Z m!Z! d d	l"m#Z#m$Z$m%Z%m&Z& d d
l'm(Z( d dl)m*Z* d dl+Z+d dl,m-Z- d dl.m/Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 e#rd dl9m:Z: d dl5m6Z6  e-            Z;dZ< ej=        e>          Z? G d de2          Z@d ZAdZBdZCdZDdZEdZFdZGd5d ZHd6d$ZI eId%          ZJd7d*ZK G d+ d,eL          ZMe+jN        e+jO        z  e+jP        z  e+jQ        z  e+jR        z  e+jS        z  ZTd8d-ZUd9d0ZVd:d4ZWdS );    )annotationsN)deque)CallableIterableSequence)datedatetimetime	timedeltatimezone)Enum)isclass)IPv4AddressIPv4InterfaceIPv4NetworkIPv6AddressIPv6InterfaceIPv6Network)TYPE_CHECKINGAnyLiteralcast)UUID)ZoneInfo)Reviver)_msgpack)SerializerProtocol)emit_serde_event)SendProtocol)Item)AllowedMsgpackModules    c                  r    e Zd ZdZddej        ddd(dZd)dZddddd*dZd+d Z	d+d!Z
d,d"Zd-d%Zd.d'ZdS )/JsonPlusSerializera  Serializer that uses ormsgpack, with optional fallbacks.

    !!! warning

        Security note: This serializer is intended for use within the `BaseCheckpointSaver`
        class and called within the Pregel loop. It should not be used on untrusted
        python objects. If an attacker can write directly to your checkpoint database,
        they may be able to trigger code execution when data is deserialized.
    FN)pickle_fallbackallowed_json_modulesallowed_msgpack_modules__unpack_ext_hook__r%   boolr&   0Iterable[tuple[str, ...]] | Literal[True] | Noner'   ,AllowedMsgpackModules | Literal[True] | Noner(   "Callable[[int, bytes], Any] | NonereturnNonec                   |t           j        u rt           j        rd }nd}|| _        t	          |          | _        t	          |          | _        |d u| _        ||nt          | j                  | _	        d S NT)
_lg_msgpack	_SENTINELSTRICT_MSGPACK_ENABLEDr%   _normalize_allowlist_allowed_json_modules_allowed_msgpack_modules_custom_unpack_ext_hook_create_msgpack_ext_hook_unpack_ext_hook)selfr%   r&   r'   r(   s        C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langgraph/checkpoint/serde/jsonplus.py__init__zJsonPlusSerializer.__init__=   s     #k&;;;1 /*.''*.'. !566 	" )==T(U(U%':$'F$ #.  )$*GHH 	r"   extra_allowlist Iterable[tuple[str, ...] | type]c                   | j         }|du s|du r| S |rt          |          }nt                      }t          t          |                    }||z  }||k    r| S |rt          |          }n6t	          | j         t                    rt          | j                   }n| j         }t          j        |           }t          | j                  |_        t          |          |_         |j        st          |j                   |_
        |S )z8Return a new serializer with a merged msgpack allowlist.TF)r6   set_normalize_module_keystuple
isinstancecopyr4   r5   r7   r8   r9   )r:   r=   base_allowlistextramergedr'   clones          r;   with_msgpack_allowlistz)JsonPlusSerializer.with_msgpack_allowlistY   s    6T!!^u%<%<K 	# 00NN UUN&u_'='=>>%'^##K 	D&+Fmm##5s;; 	D&+D,I&J&J##&*&C#	$&:4;U&V&V#)=>U)V)V&, 	%=.& &E" r"   )methodargskwargsconstructorCallable | type[Any]rJ   !None | str | Sequence[None | str]rK   Sequence[Any] | NonerL   dict[str, Any] | Nonedict[str, Any]c                   ddg |j                             d          |j        R d}|||d<   |||d<   |||d<   |S )N   rM   .)lctypeidrJ   rK   rL   )
__module__split__name__)r:   rM   rJ   rK   rL   outs         r;   _encode_constructor_argsz+JsonPlusSerializer._encode_constructor_argsy   sn     !LK*0055L{7KLL
 

 "CMCK"CM
r"   valuer   c                j   | j         r|                    dd           dk    r|                    dd           dk    rj|                    dd           T	 |                     |          S # t          $ r1}t                              d|d         |j                   Y d }~nd }~ww xY wt          |          S )NrV   rT   rW   rM   rX   z5Object %s is not in the deserialization allowlist.
%s)r5   get_revive_lc2InvalidModuleErrorloggerwarningmessage
LC_REVIVER)r:   r^   es      r;   _reviverzJsonPlusSerializer._reviver   s    % 	IIdD!!Q&&		&$''=88		$%%1''...%   L$KI        %   s   A( (
B#2'BB#c                  	 |                      |           |d         ^ }}	 t          j        d                    |                    }t	          ||          	|                    d          }t          |t                    rt	          	|          g}n't          |t                    r	fd|D             }n	g}|                    d          }|                    d          }|D ]h}	 t          |          rt          |t                    r d S |r|r
 ||i |c S |r || c S |r
 |di |c S  |            c S # t          $ r Y ew xY wd S # t          $ r Y d S w xY w)NrX   rU   rJ   c                8    g | ]}|nt          |          S Ngetattr).0mclss     r;   
<listcomp>z2JsonPlusSerializer._revive_lc2.<locals>.<listcomp>   s)    QQQQ!)33aQQQr"   rK   rL    )_check_allowed_json_modules	importlibimport_modulejoinrm   r`   rC   strlistr   
issubclassBaseException	Exception)
r:   r^   modulenamemodrJ   methodsrK   rL   rp   s
            @r;   ra   zJsonPlusSerializer._revive_lc2   s   ((///+&$	)#((6*:*:;;C#t$$CYYx((F&#&&  "3//0FD))  QQQQ&QQQ%99V$$DYYx((F!  v $:fm+L+L $#tt ( (%vt6v66666 (%vt},,, (%v///////%vxx    H   	 	 	44	sf   CE ,$EE EE !E'E *	E3E 6	E?E 
EE EE 
E"!E"c           	        t          |d                   }|                    d          }t          |t                    r d                    d |D                       }nt          |t
                    r|}nd}d                    |          }| j        st          d| d| d	|d
          | j        du rd S || j        v rd S t          d| d| d|d          )NrX   rJ   ,c              3     K   | ]}|pd V  	dS )<init>Nrr   )rn   ro   s     r;   	<genexpr>zAJsonPlusSerializer._check_allowed_json_modules.<locals>.<genexpr>   s&      %D%Dam8%D%D%D%D%D%Dr"   r   rU   z)Refused to deserialize JSON constructor: z
 (method: ul   ). No allowed_json_modules configured.

Unblock with ONE of:
  • JsonPlusSerializer(allowed_json_modules=[u   , ...])
  • (DANGEROUS) JsonPlusSerializer(allowed_json_modules=True)

Note: Prefix allowlists are intentionally unsupported; prefer exact symbols or plain-JSON representations revived without import-time side effects.Tz). Symbol is not in the deserialization allowlist.

Add exactly this symbol to unblock:
  JsonPlusSerializer(allowed_json_modules=[zY, ...])
Or, as a last resort (DANGEROUS):
  JsonPlusSerializer(allowed_json_modules=True))rB   r`   rC   rx   rv   rw   r5   rb   )r:   r^   neededrJ   method_displaydotteds         r;   rs   z.JsonPlusSerializer._check_allowed_json_modules   sK   uT{##8$$fd## 	& XX%D%DV%D%D%DDDNN$$ 	&#NN%N&!!) 		$ZF Z Zn Z Z CIZ Z Z   %--FT///F > > >. > > ;A> > >
 
 	
r"   objtuple[str, bytes]c                   |	dt           fS t          |t                    rd|fS t          |t                    rd|fS 	 dt	          |          fS # t
          j        $ r)}| j        rdt          j	        |          fcY d }~S |d }~ww xY w)Nnullbytes	bytearraymsgpackpickle)
EMPTY_BYTESrC   r   r   _msgpack_enc	ormsgpackMsgpackEncodeErrorr%   r   dumps)r:   r   excs      r;   dumps_typedzJsonPlusSerializer.dumps_typed   s    ;;&&U## 
	C<Y'' 	## ,s"3"333/   ' 7#V\#%6%66666666	s#   A BB;BBBdatac                V   |\  }}|dk    rd S |dk    r|S |dk    rt          |          S |dk    rt          j        || j                  S |dk    r&t	          j        || j        t          j                  S | j        r|dk    rt          j        |          S t          d	|           )
Nr   r   r   json)object_hookr   ext_hookoptionr   zUnknown serialization type: )r   r   loadsrh   r   unpackbr9   OPT_NON_STR_KEYSr%   r   NotImplementedError)r:   r   type_data_s       r;   loads_typedzJsonPlusSerializer.loads_typed   s    uF??4gLk!!U###f__:e????i$ 5i>X    ! 	Nex&7&7<&&&%&LU&L&LMMMr"   )
r%   r)   r&   r*   r'   r+   r(   r,   r-   r.   )r=   r>   r-   r$   )
rM   rN   rJ   rO   rK   rP   rL   rQ   r-   rR   )r^   rR   r-   r   )r^   rR   r-   r.   )r   r   r-   r   )r   r   r-   r   )r[   rY   __qualname____doc__r1   r2   r<   rI   r]   rh   ra   rs   r   r   rr   r"   r;   r$   r$   2   s          !&QU !BF
 
 
 
 
 
8   H 59%)(,     *! ! ! !"   B"
 "
 "
 "
H   N N N N N Nr"   r$      rT               r   r   r-   str | ormsgpack.Extc                    t           d          ret           j                  rQt          j        t
          t           j        j         j        j	                                         df                    S t           d          rdt           j
                  rPt          j        t          t           j        j         j        j	         
                                f                    S t           d          rdt           j                  rPt          j        t          t           j        j         j        j	                                         f                    S t           d          rdt           j                  rPt          j        t          t           j        j         j        j	                                         f                    S t!           t"          j                  rCt          j        t&          t           j        j         j        j	         j        f                    S t!           t*          j                  r6t          j        t&          t          dd j         j        ff                    S t!           t2                    rCt          j        t          t           j        j         j        j	         j        f                    S t!           t6          j                  rKt          j        t          t           j        j         j        j	        t;                     f                    S t!           t<          t>          t@          f          rKt          j        t          t           j        j         j        j	        tC                     f                    S t!           tD          tF          tH          f          rKt          j        t          t           j        j         j        j	        t;                     f                    S t!           tJ          tL          tN          f          rKt          j        t          t           j        j         j        j	        t;                     f                    S t!           tP                    rQt          j        tR          t           j        j         j        j	         *                                df                    S t!           tV                    rPt          j        t&          t           j        j         j        j	         j,         j-         j.        ff                    S t!           t^                    rPt          j        t&          t           j        j         j        j	         j0         j1         j2        ff                    S t!           tf                    rct          j        t          t           j        j         j        j	         j4         j5         j6         j7         j8         j9        d	f                    S t!           tt                    rPt          j        t&          t           j        j         j        j	         ;                                f                    S t!           tx                    rCt          j        t          t           j        j         j        j	         j=        f                    S t!           t|                    rCt          j        t          t           j        j         j        j	         j?        f                    S t!           t                    rJt          j        t&          t           j        j         j        j	         jA         jB        ff                    S t          jD                   r\t          j        t          t           j        j         j        j	         fd
t          jE                   D             f                    S t!           t                    rOt          j        t          t           j        j         j        j	         fd jG        D             f                    S t          jI        J                    d          x}t!           |jK                  r j        jL        r j        jM        sdnd} j        jM        ryt                     }	  jO        j         jP        ||f}t          j        t          t          |                    |R                                 S # |R                                 w xY w S                    d          } jO        j         jP        ||f}t          j        t          t          |                    S t!           t                    rt                     S t          d j        j	         d          )N
model_dumpmodel_validate_jsonget_secret_valuedict_asdictrecompilefromisoformat)hourminutesecondmicrosecondtzinfofoldc                F    i | ]}|j         t          |j                   S rr   )r}   rm   )rn   fieldr   s     r;   
<dictcomp>z$_msgpack_default.<locals>.<dictcomp>  s9       ! 
GC$<$<  r"   c                2    i | ]}|t          |          S rr   rl   )rn   kr   s     r;   r   z$_msgpack_default.<locals>.<dictcomp>  s#    ???AQQ???r"   numpyFCAorderzObject of type z is not serializable)Whasattrcallabler   r   ExtEXT_PYDANTIC_V2r   	__class__rY   r[   r   EXT_CONSTRUCTOR_SINGLE_ARGr   EXT_PYDANTIC_V1r   EXT_CONSTRUCTOR_KW_ARGSrC   pathlibPathEXT_CONSTRUCTOR_POS_ARGSpartsr   Patternpatternflagsr   hexdecimalDecimalrw   r@   	frozensetr   rB   r   r   r   r   r   r   r	   EXT_METHOD_SINGLE_ARG	isoformatr   dayssecondsmicrosecondsr   yearmonthdayr
   r   r   r   r   r   r   r   __getinitargs__r   keyr   r^   r   nodeargdataclassesis_dataclassfieldsr    	__slots__sysmodulesr`   ndarrayf_contiguousc_contiguous
memoryviewdtypeshapeEXT_NUMPY_ARRAYreleasetobytesrz   repr	TypeError)r   np_modr   mvmetabufs   `     r;   _msgpack_defaultr     s	   sL!! _Xhs~&>&> _X}M,M*NN$$)	 

 

 
	
 
(	)	) SXhs7K.L.L SX}&M,M*((** 	
 	
 		
 
f		 HX(38"4"4 HX}M,M*HHJJ 	
 	
 		
 
i	 	  }XXck%:%: }X}#M,M*KKMM 	
 	
 		
 
C	&	& rX}$)3=+A39M 
 
 	
 
C	$	$ kX}$y3;	":; 
 
 	
 
C		 dX}&)3=+A37K 
 
 	
 
C	)	) ]X}&)3=+A3s88L 
 
 	
 
C#y%0	1	1 VX}&)3=+A5::N 
 
 	
 
C+}kB	C	C OX}&)3=+A3s88L 
 
 	
 
C+}kB	C	C HX}&)3=+A3s88L 
 
 	
 
C	"	" AX}!M,M*MMOO#	 

 

 
	
 
C	#	# uX}$M,M*Xs{C,<= 	
 	
 		
 
C		 jX}$M,M*Xsy#'2 	
 	
 		
 
C		 _X}#M,M* #"%*"%*'*"%* #  
 
 	
" 
C	"	" MX}$M,M*'')) 	
 	
 		
 
C	"	" BX}&)3=+A37K 
 
 	
 
C		 ;X}&)3=+A39M 
 
 	
 
C	&	& 4X}$)3=+ACHcgCVW 
 
 	
 
	!#	&	& -X}#M,M*   %0%7%<%<  	 	
 
 	
 
C		 X}#M,M*??????? 	
 	
 		
 KOOG,,
,&	9jV^? ?	9 y-Uci6LURU9! 
	FCB	sy%< }_l46H6HII



++C+((CIM39eS9D=,t2D2DEEE	C	'	' XCyyV#-*@VVVWWWs   #;d3 3e	allowed_modules+set[tuple[str, ...]] | Literal[True] | NoneCallable[[int, bytes], Any]c                2     d fddddfdS )aB  Create msgpack ext hook with allowlist.

    Args:
        allowed_modules: Set of (module, name) tuples that are allowed to be
        deserialized, or True to allow all with warnings for unregistered types, or None to only allow safe types.

    Returns:
        An ext_hook function for use with ormsgpack.unpackb.
    r|   rw   r}   r-   r)   c                   | |f}|t           j        v rdS du r3t          d| |d           t                              d| || |           dS |v rdS t          d| |d           t                              d| || |           dS )	zDCheck if type is allowed. Returns True if allowed, False if blocked.Tmsgpack_unregistered_allowed)kindr|   r}   zDeserializing unregistered type %s.%s from checkpoint. This will be blocked in a future version. Add to allowed_msgpack_modules to silence: [(%r, %r)]Nmsgpack_blockedzvBlocked deserialization of %s.%s - not in allowed_msgpack_modules. Add to allowed_msgpack_modules to allow: [(%r, %r)]F)r1   SAFE_MSGPACK_TYPESr   rc   rd   )r|   r}   r   r   s      r;   _check_allowedz0_create_msgpack_ext_hook.<locals>._check_allowed  s    tn+0004d"":$     NNH    4&o%%t)  	
 	
 	
 	B	
 	
 	
 ur"   rJ   c                    | ||f}|t           j        v rdS t          d| ||d           t                              d| ||           dS )z(Check if a method invocation is allowed.Tmsgpack_method_blocked)r  r|   r}   rJ   zMBlocked deserialization of method call %s.%s.%s - not in allowed methods set.F)r1   SAFE_MSGPACK_METHODSr   rc   rd   )r|   r}   rJ   r   s       r;   _check_allowed_methodz7_create_msgpack_ext_hook.<locals>._check_allowed_method1  sv    tV$+22240  	 	
 	
 	
 	*	
 	
 	
 ur"   codeintr   r   r   c           	     t	   | t           k    r	 t          j        |t          j                  } 
|d         |d                   s|d         S  t	          t          j        |d                   |d                   |d                   S # t          $ r Y d S w xY w| t          k    r	 t          j        |t          j                  } 
|d         |d                   s|d         S  t	          t          j        |d                   |d                   |d          S # t          $ r Y d S w xY w| t          k    r	 t          j        |t          j                  } 
|d         |d                   s|d         S  t	          t          j        |d                   |d                   di |d         S # t          $ r Y d S w xY w| t          k    r	 t          j        |t          j                  } |d         |d         |d                   s|d         S  t	          t	          t          j        |d                   |d                   |d                   |d                   S # t          $ r Y d S w xY w| t          k    r	 t          j        |t          j                  } 
|d         |d                   s|d         S t	          t          j        |d                   |d                   }	  |di |d         S # t          $ r  |j        di |d         cY S w xY w# t          $ r 	 |d         cY S # t          $ r Y Y d S w xY ww xY w| t          k    r	 t          j        |t          j                  } 
|d         |d                   s|d         S t	          t          j        |d                   |d                   }	  |di |d         S # t          $ r  |j        di |d         cY S w xY w# t          $ r 	 |d         cY S # t          $ r Y Y d S w xY ww xY w| t           k    r}	 dd l}t          j        |t          j                  \  }}}}|                    ||                    |                    }	|	                    ||          S # t          $ r Y d S w xY wd S )	Nr   r   r   rT   r   r   r   rr   )r   r   r   r   rm   rt   ru   r{   r   r   r   r   	construct	NameErrorr   model_constructr   r   
frombufferr   reshape)r
  r   tuprp   _np	dtype_strr   r   r   arrr  r	  r   s             r;   r   z*_create_msgpack_ext_hook.<locals>.ext_hookG  s   ---'8I4N   &~c!fc!f55 " q6MGwy6s1v>>AGGAOOO   tt---	'8I4N   &~c!fc!f55 "q6MGwy6s1v>>AGGQPP   tt,,,	'8I4N   &~c!fc!f55 "q6MGwy6s1v>>AGGQQ#a&QQQ   tt***'8I4N   -,SVSVSVDD "q6MwI3CF;;SVDDc!f a&      tt_$$ '8I4N   &~c!fc!f55 "q6Mi5c!f==s1vFF33==Q==(  3 3 3(3=223q6222223       q6MMM       444   _$$ '8I4N   &~c!fc!f55 "q6Mi5c!f==s1vFF93==Q==(  9 9 9.3.88Q888889       q6MMM       444   _$$	####/8/@8I4N0 0 0,	5% nnS		)0D0DnEE{{5{666   ttts!  A B <B 
BB)A D! *6D! !
D/.D/>A F9 ?9F9 9
GGAI/ AI/ /
I=<I=A L- .L- <L
 
L*'L- )L**L- -
M8M?M
MMMM$A P %.P O" "P?P PP 
P-PP-
P)$P-(P))P-<A*R' '
R54R5)r|   rw   r}   rw   r-   r)   )r|   rw   r}   rw   rJ   rw   r-   r)   r
  r  r   r   r-   r   rr   )r   r  r	  r   s   `@@@r;   r8   r8     sq    - - - - - -^   ,e e e e e e e eN Or"   )r   r
  r  r   r   c                   | t           k    r	 t          j        |t          t          j                  }|d         dk    rL|d         dk    r@|d         }|d d          d|dd	          d|d	d
          d|d
d          d|dd           	S |d         S # t
          $ r Y d S w xY w| t          k    ri	 t          j        |t          t          j                  }|d         dk    r|d         dk    rddlm}  ||d          S |d         S # t
          $ r Y d S w xY w| t          k    r@	 t          j        |t          t          j                  }|d         S # t
          $ r Y d S w xY w| t          k    r@	 t          j        |t          t          j                  }|d         S # t
          $ r Y d S w xY w| t          k    r@	 t          j        |t          t          j                  }|d         S # t
          $ r Y d S w xY w| t          k    r@	 t          j        |t          t          j                  }|d         S # t
          $ r Y d S w xY w| t          k    r	 dd l}t          j        |t          t          j                  \  }}}}	|                    |	|                    |                    }
|
                    ||                                          S # t
          $ r Y d S w xY wd S )Nr   r   uuidr   r   rT      -         zlanggraph.typesSend)r  r  r   )r   r   r   _msgpack_ext_hook_to_jsonr   r{   r   langgraph.typesr  r   r   r   r   r   r   r  r   r  tolist)r
  r   r  hex_r  r  r  r   r   r   r  s              r;   r   r     s   )))	#2 1  C
 1vCFf$4$41vBQBxVV$qt*VVtBrE{VVT"R%[VV4PRPSPS9VV q6M 	 	 	FF		)	)	)	#2 1  C
 1v***s1v/?/?000000tSV}$q6M 	 	 	FF		(	(	(		#2 1  C q6M 	 	 	FF		&	&	&		#2 1  C q6M 	 	 	FF			 	 	#2 1  C q6M 	 	 	 FF	 
	 	 		#2 1  C q6M 	 	 	FF			 	 	+4+<2 1, , ,(IueS
 ..CIIi,@,@.AAC;;uE;2299;;; 	 	 	FF	 
!	 s   A=B B 
B! B!0AD ?D 
DD$-E 
E E /-F 
F+*F+:-G( (
G65G6-H3 3
I IBK 
K K c                      e Zd ZdZddZdS )rb   z7Exception raised when a module is not in the allowlist.re   rw   c                    || _         d S rk   )re   )r:   re   s     r;   r<   zInvalidModuleError.__init__  s    r"   N)re   rw   )r[   rY   r   r   r<   rr   r"   r;   rb   rb     s.        AA     r"   rb   c                D    t          j        | t          t                    S )N)defaultr   )r   packbr   _option)r   s    r;   r   r   #  s    ?4)9'JJJJr"   	allowlistr+   c                4    | du r| S | rt          |           S d S r0   )rA   )r*  s    r;   r4   r4   '  s0     D	 %i000tr"   r   r!   set[tuple[str, ...]]c                    t                      }| D ]h}t          |          r"|                    |j        |j        f           3|                    t          t          t          df         |                     i|S )N.)r@   r   addrY   r[   r   rB   rw   )r   
normalizedr|   s      r;   rA   rA   2  sv     (+uuJ : :6?? 	:NNF-v?@@@@NN4c3h889999r"   )r   r   r-   r   )r   r   r-   r   r  )r   r   r-   r   )r*  r+   r-   r   )r   r!   r-   r,  )X
__future__r   rD   r   r   rt   r   loggingr   r   r   r   collectionsr   collections.abcr   r   r   r	   r   r
   r   r   enumr   inspectr   	ipaddressr   r   r   r   r   r   typingr   r   r   r   r  r   zoneinfor   r   langchain_core.load.loadr   langgraph.checkpoint.serder   r1   langgraph.checkpoint.serde.baser   &langgraph.checkpoint.serde.event_hooksr    langgraph.checkpoint.serde.typesr   langgraph.store.baser    #langgraph.checkpoint.serde._msgpackr!   rf   r   	getLoggerr[   rc   r$   r   r   r   r   r   r   r   r   r8   _msgpack_ext_hookr   r{   rb   r   OPT_PASSTHROUGH_DATACLASSOPT_PASSTHROUGH_DATETIMEOPT_PASSTHROUGH_ENUMOPT_PASSTHROUGH_UUIDOPT_REPLACE_SURROGATESr)  r   r4   rA   rr   r"   r;   <module>rG     s   " " " " " "               				 



       8 8 8 8 8 8 8 8 8 8 > > > > > > > > > > > > > >                            5 4 4 4 4 4 4 4 4 4 4 4                 , , , , , , > > > > > > > > > > > > C C C C C C 9 9 9 9 9 9 % % % % % % >      >=====WYY
		8	$	$RN RN RN RN RN+ RN RN RNn     `X `X `X `XFy y y yz -,TBBB Z Z Z Zz        )*() $% $	%
 &' K K K K   	 	 	 	 	 	r"   