+
    8it                    J  a  0 t $ R t^ RIHt ^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ^ RIHtHt ^ RIHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ R	IH t  ^ R
I!H"t"H#t#H$t$ ^ RI%H&t& ^ RI'H(t(H)t) ^ RI*H+t+ ^ RI,H-t- ^ RI.H/t/ ^ RI0H1t1 ^ RI2H3t3H4t4 ^ RI5H6t6 ^ RI7H8t8H9t9H:t: ]'       d   ^ RI;H<t< ]]3t=R]>R&   Rt?Rt@^ tA^ tBRtCRtD^tE^tF^
tG^tH^tI^tJRtK^<tLRtM^dtN^ tO^tPRtQR]>R&   RtRR]>R&   RtSR]>R&   ^tTRtURtVRtWR ]>R!&   RtXR ]>R"&   R#tYR$tZR%t[^t\R&t]R'.t^R( R) lt_R* R+ lt`RR, R- lltaR.] P                  R/] P                  R0] P                  R1] P                  R2] P                  /tgR3 R4 lthR5 R6 ltiR7 R8 ltjR9 R: ltkR; R< ltlR= R> ltmR? R@ ltnRA RB ltoRC RD ltpRE RF ltqRG RH ltrRI RJ ltsRK RL lttRM RN ltuRO RP ltvRQ RR ltwRS RT ltxRU RV ltyRW RX ltzRY RZ lt{R[ R\ lt|]}! . RO4      t~R] R^ ltR_ R` ltRa Rb ltRc Rd ltRe Rf ltRg Rh ltRi Rj ltRk Rl ltRm Rn ltRo Rp ltRq Rr ltRs Rt ltRu Rv ltRw Rx lt]}! . RO4      tRy Rz ltR{ R| ltR} R~ ltR R ltR R ltRR./tR]>R&   / R]bR]zbR]bR]nbR](bR]ubR]hbR]sbR]hbR]rbR]sbR]jbR]mbR]wbR]obR]ybR]|b/ R]obR]hbR]hbR]hbR]tbR]ubR]hbR]hbR]hbR]lbR]lbR]obR]hbR]hbR]pbR]kbR])bCR]nR]kR]vR]R]kR]h/CtR]>R&   R]hR]R]R]hR]kR]lR]hR]R]{R]mR]sR]/tR]>R&   R]R]R]xR]/R]R]oR]oR]R]R]R]kR]h/tR]>R&   RR/tR]>R&   / tR]>R&   ]EP3                  ]4       ]EP5                  4        F$  w  tt] F  t]]9  g   K  ]],          ]]&   K  	  K&  	  ]EP=                  4       tR]>R&   ]EP3                  ]4       . ROtR]>R&   RR R lltR R ltRR R lltR R ltR R lt]}! . RO4      t ! R R4      t ! R R]]]3,          4      tR R lt ! R R]]R3,          4      tR R ltR# )z9Functions and classes common to multiple pymongo modules.)annotationsN)OrderedDictabc)get_close_matches)requiresversion)TYPE_CHECKINGAnyCallableIteratorMappingMutableMappingNoReturnOptionalSequenceTypeUnionoverload)unquote_plus)SON)UuidRepresentation)CodecOptionsDatetimeConversionTypeRegistry)RawBSONDocument)validate_compressorsvalidate_zlib_compression_level)
DriverInfo)ConfigurationError)_validate_event_listeners)ReadConcern)_MONGOS_MODES_ServerMode)	ServerApi)DEFAULT_WRITE_CONCERNWriteConcernvalidate_boolean)_AgnosticClientSessionzSequence[Type[Any]]ORDERED_TYPESi z4.2g      ?g      4@Optional[int]MAX_IDLE_TIME_MSMAX_IDLE_TIME_SECWAIT_QUEUE_TIMEOUTTzSequence[int]COMMAND_NOT_FOUND_CODESUNAUTHORIZED_CODESi'  mongodbautoFCANONICALIZE_HOST_NAMEc                    V ^8  d   QhRRRR/#    nodestrreturnztuple[str, int] )formats   "L/var/www/html/photoedit/myenv/lib/python3.14/site-packages/pymongo/common.py__annotate__r;      s     	 	 	 	    c                    T pRpV P                  R4      pVR8w  d   V RV \        W^,           R 4      r!VP                  R4      '       d   V^R pW3# )z5Split a host:port string into (host, int(port)) pair.ii  :N[)rfindint
startswith)r5   hostportidxs   &   r:   partition_noderG      s\    DD
**S/C
by$3ZT')_!5dsAbz:r<   c                    V ^8  d   QhRRRR/# r3   r8   )r9   s   "r:   r;   r;      s      S _ r<   c                @    \        V 4      w  rVP                  4       V3# )z6Split and normalize a node name from a hello response.)rG   lower)r5   rD   rE   s   &  r:   
clean_noderK      s!    %JD ::<r<   c               $    V ^8  d   QhRRRRRR/# )r4   keyr6   suggestionszOptional[list[str]]r7   r   r8   )r9   s   "r:   r;   r;      s"     " "C ".A "X "r<   c                l    RV  R2pV'       d   VRRP                  V4       R2,          p\        V4      h)z1Raise ConfigurationError with the given key name.zUnknown option: .z Did you mean one of (, z:) or maybe a camelCase version of one? Refer to docstring.)joinr   )rM   rN   msgs   && r:   raise_config_errorrT      s=    SE
#C'		+(>'??yzz
S
!!r<   unspecifiedstandardpythonLegacy
javaLegacycsharpLegacyc               $    V ^8  d   QhRRRRRR/# )r4   optionr6   valuer	   r7   boolr8   )r9   s   "r:   r;   r;      s!     + +s +3 +4 +r<   c                z    \        V\        4      '       d   VR9  d   \        RV  R24      hVR8H  # \        W4      # )z8Validates that value is True, False, 'true', or 'false'.trueThe value of z must be 'true' or 'false')r_   false)
isinstancer6   
ValueErrorr&   r[   r\   s   &&r:   validate_boolean_or_stringre      sB    %))}VH4NOPPF**r<   c               $    V ^8  d   QhRRRRRR/# r4   r[   r6   r\   r	   r7   rB   r8   )r9   s   "r:   r;   r;      s&     	] 	]S 	] 	] 	]r<   c                    \        V\        4      '       d   V# \        V\        4      '       d    \        V4      # \	        RV  R\        V4       24      h  \         d    \        RT  R24      Rhi ; i)zDValidates that 'value' is an integer (or basestring representation).r`   z must be an integerNWrong type for z , value must be an integer, not )rb   rB   r6   rc   	TypeErrortyperd   s   &&r:   validate_integerrl      s{    %	E3			Tu: ofX-MdSXk][
\\  	T}VH4GHItS	Ts   
A A1c               $    V ^8  d   QhRRRRRR/# rg   r8   )r9   s   "r:   r;   r;      s!      c # # r<   c                H    \        W4      pV^ 8:  d   \        RV  R24      hV# )zFValidate that 'value' is a positive integer, which does not include 0.r`   z must be a positive integerrl   rc   r[   r\   vals   && r:   validate_positive_integerrr      s-    
6
)C
ax=0KLMMJr<   c               $    V ^8  d   QhRRRRRR/# rg   r8   )r9   s   "r:   r;   r;      s!      # c c r<   c                H    \        W4      pV^ 8  d   \        RV  R24      hV# )z1Validate that 'value' is a positive integer or 0.r`   z must be a non negative integerro   rp   s   && r:   validate_non_negative_integerru      s-    
6
)C
Qw=0OPQQJr<   c               $    V ^8  d   QhRRRRRR/# r4   r[   r6   r\   r	   r7   Optional[str]r8   )r9   s   "r:   r;   r;      s!      c # - r<   c                Z    Vf   V# \        W4      p\        V4      P                  4        V# )z1Validates that 'value' is file-like and readable.)validate_stringopencloserd   s   &&r:   validate_readabler}      s-    } F*EKLr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r6   r\   r	   r7   r)   r8   )r9   s   "r:   r;   r;      s!     8 8# 8c 8m 8r<   c                $    Vf   V# \        W4      # )z9Validate that 'value' is a positive integer or 0 or None.)ru   rd   s   &&r:   %validate_non_negative_integer_or_noner      s    }(77r<   c               $    V ^8  d   QhRRRRRR/# r4   r[   r6   r\   r	   r7   r8   )r9   s   "r:   r;   r;      s&     e eC e e er<   c                f    \        V\        4      '       d   V# \        RV  R\        V4       24      h)z/Validates that 'value' is an instance of `str`.ri   z(, value must be an instance of str, not )rb   r6   rj   rk   rd   s   &&r:   rz   rz      s5    %
ofX-UVZ[`VaUbc
ddr<   c               $    V ^8  d   QhRRRRRR/# rw   r8   )r9   s   "r:   r;   r;      s!     * *C * * *r<   c                $    Vf   V# \        W4      # )z@Validates that 'value' is an instance of `basestring` or `None`.)rz   rd   s   &&r:   validate_string_or_noner      s    }6))r<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   zUnion[int, str]r8   )r9   s   "r:   r;   r;     s!      C   r<   c                    \        V\        4      '       d   V# \        V\        4      '       d    \        V4      p\	        Y4      # \        RV  R\        V4       24      h  \         d    Tu # i ; i)z/Validates that 'value' is an integer or string.ri   z9, value must be an non negative integer or a string, not )rb   rB   r6   rc   ru   rj   rk   rp   s   && r:   'validate_non_negative_int_or_basestringr     sx    %	E3			e*C -V99

&!Z[_`e[fZgh   	L	s   A   A0/A0c               $    V ^8  d   QhRRRRRR/# r4   r[   r6   r\   r	   r7   floatr8   )r9   s   "r:   r;   r;     s!      C   r<   c                    V  R2p \        V4      p^ Tu;8  d   R8  g   M \        T  R24      hT#   \         d    \        T4      Rh\         d    \        T4      Rhi ; i)zPValidates that 'value' is a float, or can be converted to one, and is
positive.
z must be an integer or floatNg    eAz1 must be greater than 0 and less than one billion)r   rc   rj   )r[   r\   errmsgs   && r:   validate_positive_floatr     sw     x34F*e u?s?F8#TUVVL  + d* *T)*s   3 A!A!c               $    V ^8  d   QhRRRRRR/# r   r8   )r9   s   "r:   r;   r;   )  s!     2 2C 2 2 2r<   c                8    V^ 8X  g   VR8X  d   ^ # \        W4      # )z_Validates that 'value' is 0 or a positive float, or can be converted to
0 or a positive float.
0r   rd   s   &&r:   validate_positive_float_or_zeror   )  s     zUc\"611r<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r6   r\   r	   r7   Optional[float]r8   )r9   s   "r:   r;   r;   2  s!     ; ;S ; ; ;r<   c                2    Vf   V# \        W4      R,          # )[Validates a timeout specified in milliseconds returning
a value in floating point seconds.
     @@r   rd   s   &&r:   validate_timeout_or_noner   2  s     }"61F::r<   c               $    V ^8  d   QhRRRRRR/# r   r8   )r9   s   "r:   r;   r;   ;  s!     
; 
;S 
; 
; 
;r<   c                j    Vf   \        V  R24      hV^ 8X  g   VR8X  d   ^ # \        W4      R,          # )zValidates a timeout specified in milliseconds returning
a value in floating point seconds for the case where None is an error
and 0 is valid. Setting the timeout to nothing in the URI string is a
config error.
z cannot be Noner   r   )r   r   rd   s   &&r:   validate_timeout_or_zeror   ;  s;     } F8?!;<<zUc\"61F::r<   c               $    V ^8  d   QhRRRRRR/# r4   r[   r	   r\   r7   r   r8   )r9   s   "r:   r;   r;   H  s!     ; ;S ; ; ;r<   c                N    Ve   V^ 8X  g   VR8X  d   R# \        W4      R,          # )zValidates a timeout specified in milliseconds returning
a value in floating point seconds. value=0 and value="0" are treated the
same as value=None which means unlimited timeout.
Nr   r   r   rd   s   &&r:    validate_timeout_or_none_or_zeror   H  s(    
 }
esl"61F::r<   c               $    V ^8  d   QhRRRRRR/# r   r8   )r9   s   "r:   r;   r;   R  s&     C Cs C3 C? Cr<   c                2    Vf   R# \        W4      R,          # )r   Nr   )r   rd   s   &&r:   validate_timeoutmsr   R  s     }*69FBBr<   c               $    V ^8  d   QhRRRRRR/# rg   r8   )r9   s   "r:   r;   r;   [  s!     4 43 4s 4s 4r<   c                8    VR8X  g   VR8X  d   R# \        W4      # )zBValidates maxStalenessSeconds according to the Max Staleness Spec.z-1r@   )rr   rd   s   &&r:   validate_max_stalenessr   [  s    {etm	$V33r<   c               $    V ^8  d   QhRRRRRR/# r4   dummyr	   r\   r7   r"   r8   )r9   s   "r:   r;   r;   c  s!      C   r<   c                P    \        V\        4      '       g   \        V: R24      hV# )zValidate a read preference.z is not a read preference)rb   r"   rj   r   r\   s   &&r:   validate_read_preferencer   c  s'    e[))5)#<=>>Lr<   c               $    V ^8  d   QhRRRRRR/# r   r8   )r9   s   "r:   r;   r;   j  s!     	 	 	S 	[ 	r<   c                8    V\         9  d   \        V R24      hV# )zValidate read preference mode for a MongoClient.

.. versionchanged:: 3.5
   Returns the original ``value`` instead of the validated read preference
   mode.
z is not a valid read preference)r!   rc   r   s   &&r:   validate_read_preference_moder   j  s$     M!E7"ABCCLr<   c               $    V ^8  d   QhRRRRRR/# r   r8   )r9   s   "r:   r;   r;   v  s!      C   r<   c                P    ^ RI Hp W9  d   \        V  R\        V4       24      hV# )z&Validate the authMechanism URI option.)
MECHANISMSz must be in )pymongo.auth_sharedr   rc   tuple)r[   r\   r   s   && r:   validate_auth_mechanismr   v  s,    .F8<j0A/BCDDLr<   c               $    V ^8  d   QhRRRRRR/# )r4   r   r	   r\   r7   rB   r8   )r9   s   "r:   r;   r;     s!     	 	 	C 	C 	r<   c                x     \         V,          #   \         d     \        T R\        \         4       24      Rhi ; i)z<Validate the uuid representation option selected in the URI.z3 is an invalid UUID representation. Must be one of N)_UUID_REPRESENTATIONSKeyErrorrc   r   r   s   &&r:   validate_uuid_representationr     sN    $U++ g *+,.
 		s    *9c               $    V ^8  d   QhRRRRRR/# )r4   namer6   r\   r	   r7   zlist[dict[str, str]]r8   )r9   s   "r:   r;   r;     s"       C <P r<   c                p   \        V\        4      '       g   V.p. pV Fs  pVR8X  d   VP                  / 4       K   / pVP                  R4       F-  pVP                  R4      w  rg\	        V4      V\	        V4      &   K/  	  VP                  V4       Ku  	  V#   \
         d    \        T: RT  24      Rhi ; i)z5Parse readPreferenceTags if passed as a client kwarg. ,r>   z not a valid value for N)rb   listappendsplitr   	Exceptionrc   )r   r\   tag_setstag_settagstagrM   rq   s   &&      r:   validate_read_preference_tagsr     s    eT""%'Hb=OOB	TD}}S)99S>*6s*;\#&' * OOD!  O  	T{*A$HItS	Ts   ABB5c               $    V ^8  d   QhRRRRRR/# )r4   r[   r6   r\   r	   r7   zdict[str, Union[bool, str]]r8   )r9   s   "r:   r;   r;     s"     4 4s 43 4C^ 4r<   c           	        / p\        V\        4      '       Eg   \        V\        4      '       g   \        R\	        V4       24      hVP                  4        F  w  r1\        V\        4      '       d   WV&   K!  \        V\        4      '       d   \        V4      P                  4       W#&   KT  VR9   d   \        V\        4      '       d   WV&   Kw  VR9   d5   ^ RI	H
p \        W4      '       g   \        R\	        V4       24      hWV&   K  \        RV R\	        V4       24      h	  V# \        W4      p\        V4      pVP                  R4       F  pVP                  R4      w  r6pV'       g   \        R4      hV\        9  d0   R	V9   d   \        R
4      h\        V R\!        \        4       24      hVR8X  d   ^ RIHp V! V4      W#&   K}  WrV&   K  	  V# )z!Validate authMechanismProperties.zIAuth mechanism properties must be given as a string or a dictionary, not )OIDCCallbackz-callback must be an OIDCCallback object, not z)Invalid type for auth mechanism property rQ   r   r>   z#Malformed auth mechanism propertiesAWS_SESSION_TOKENzPauth mechanism properties must be key:value pairs like AWS_SESSION_TOKEN:<token>z< is not a supported auth mechanism property. Must be one of r1   ) _validate_canonicalize_host_name)ALLOWED_HOSTS)OIDC_CALLBACKOIDC_HUMAN_CALLBACK)rb   r6   dictrc   rk   itemsr]   rJ   r   pymongo.auth_oidc_sharedr   rz   r   r   	partition_MECHANISM_PROPSr   r   r   )	r[   r\   propsrM   r   opt_rq   r   s	   &&       r:   "validate_auth_mechanism_propertiesr     s   EeS!!%&&[\`af\g[hi   ++-JC%%%"c
E4(( Z--/
))j.E.E"c
@@A!%66$'TUYZ_U`Ta%bcc"c
 #LSEQSTXY^T_S`!abb ( F*EE{{3mmC(BCC&&"c) E 
 % 6)*+-  **L9#>EJ#J/  2 Lr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r6   r\   r	   r7   z<Union[Type[MutableMapping[str, Any]], Type[RawBSONDocument]]r8   )r9   s   "r:   r;   r;     s$      Ar<   c                &   Rp \        V\        P                  4      pV'       g%   \        V\        4      '       g   \        V  R24      hV#   \         d:    \	        TR4      '       d%   \        TP
                  \        P                  4      p Lqi ; i)z#Validate the document_class option.F
__origin__zg must be dict, bson.son.SON, bson.raw_bson.RawBSONDocument, or a subclass of collections.MutableMapping)
issubclassr   r   rj   hasattrr   r   )r[   r\   
is_mappings   && r:   validate_document_classr     s     JJs'9'9:
 j@@h 5 5
 	

 L  J5,''#E$4$4c6H6HIJJs   A ABBc               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   zOptional[TypeRegistry]r8   )r9   s   "r:   r;   r;     s"      3 s 7M r<   c                b    Ve+   \        V\        4      '       g   \        V  R\         24      hV# )z"Validate the type_registry option.z must be an instance of )rb   r   rj   rd   s   &&r:   validate_type_registryr     s0    E<!@!@6(":<.IJJLr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r6   r\   r	   r7   z	list[Any]r8   )r9   s   "r:   r;   r;      s!      # c i r<   c                d    \        V\        4      '       g   \        V  R\        V4       24      hV# )z!Validates that 'value' is a list.z must be a list, not )rb   r   rj   rk   rd   s   &&r:   validate_listr      s/    eT""6("7U}EFFLr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   zOptional[list[Any]]r8   )r9   s   "r:   r;   r;     s"     ( (# (c (6I (r<   c                $    Vf   V# \        W4      # )z)Validates that 'value' is a list or None.)r   rd   s   &&r:   validate_list_or_noner     s    }''r<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   Noner8   )r9   s   "r:   r;   r;     s!     
 
S 
 
 
r<   c                n    \        V\        P                  \        34      '       g   \	        V  R24      hR# )z/Validates that 'value' is a list or a document.zu must either be a list or an instance of dict, bson.son.SON, or any other type that inherits from collections.MappingN)rb   r   r   r   rj   rd   s   &&r:   validate_list_or_mappingr     s9    eckk4011h " "
 	
 2r<   c               $    V ^8  d   QhRRRRRR/# r4   r[   r6   r\   r	   r7   r   r8   )r9   s   "r:   r;   r;     s!     
 
 
C 
D 
r<   c                b    \        V\        P                  4      '       g   \        V  R24      hR# )z=Validate the type of method arguments that expect a document.zd must be an instance of dict, bson.son.SON, or any other type that inherits from collections.MappingN)rb   r   r   rj   rd   s   &&r:   validate_is_mappingr     s4    eS[[))h " "
 	
 *r<   c               $    V ^8  d   QhRRRRRR/# r   r8   )r9   s   "r:   r;   r;   "  s!     
 
c 
# 
$ 
r<   c                n    \        V\        P                  \        34      '       g   \	        V  R24      hR# )zEValidate the type of method arguments that expect a MongoDB document.z must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument, or a type that inherits from collections.MutableMappingN)rb   r   r   r   rj   rd   s   &&r:   validate_is_document_typer   "  s<    ec00/BCCh ) )
 	
 Dr<   c               $    V ^8  d   QhRRRRRR/# rw   r8   )r9   s   "r:   r;   r;   -  s!      S   r<   c                    Vf   V# \        W4       \        VP                  R4      4      ^8  d   \        V  R24      hV# )zValidate the appname option.zutf-8z must be <= 128 bytes)rz   lenencoderc   rd   s   &&r:   validate_appname_or_noner   -  sB    }F"
5<< !C'F8#89::Lr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   zOptional[DriverInfo]r8   )r9   s   "r:   r;   r;   8  s"      C  8L r<   c                Z    Vf   V# \        V\        4      '       g   \        V  R24      hV# ) Validate the driver keyword arg.z" must be an instance of DriverInfo)rb   r   rj   rd   s   &&r:   validate_driver_or_noner   8  s1    }eZ((6("DEFFLr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   zOptional[ServerApi]r8   )r9   s   "r:   r;   r;   A  s"       C <O r<   c                p    Vf   V# \        V\        4      '       g   \        V  R\        V4       24      hV# )z$Validate the server_api keyword arg.z' must be an instance of ServerApi, not )rb   r#   rj   rk   rd   s   &&r:   validate_server_api_or_noner  A  s9    }eY''6("I$u+WXXLr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   zOptional[Callable[..., Any]]r8   )r9   s   "r:   r;   r;   J  s"       S =Y r<   c                f    Vf   V# \        V4      '       g   \        V  R\        V4       24      hV# )z%Validates that 'value' is a callable.z must be a callable, not )callablerc   rk   rd   s   &&r:   validate_is_callable_or_noner  J  s5    }E??F8#<T%[MJKKLr<   c                    V ^8  d   QhRRRR/# )r4   replacementMapping[str, Any]r7   r   r8   )r9   s   "r:   r;   r;   S  s     H H): Ht Hr<   c                    \        RV 4       V '       dQ   \        V \        4      '       g9   \        \	        V 4      4      pVP                  R4      '       d   \        R4      hR# R# R# )z Validate a replacement document.r  $z'replacement can not include $ operatorsN)r   rb   r   nextiterrC   rc   )r  firsts   & r:   validate_ok_for_replacer  S  sT    {3:k?CCT+&'C  FGG ! D{r<   c                    V ^8  d   QhRRRR/# )r4   updater	   r7   r   r8   )r9   s   "r:   r;   r;   ]  s     
? 
?3 
?4 
?r<   c                    \        RV 4       V '       g   \        R4      h\        V \        4      '       * p\	        \        V 4      4      pV'       d%   VP                  R4      '       g   \        R4      hR# R# )zValidate an update document.r  zupdate cannot be emptyr
  z"update only works with $ operatorsN)r   rc   rb   r   r  r  rC   )r  is_documentr  s   &  r:   validate_ok_for_updater  ]  s^    Xv.122 ..KfE5++C00=>> 1{r<   c               $    V ^8  d   QhRRRRRR/# )r4   r   r	   r\   r6   r7   r8   )r9   s   "r:   r;   r;   m  s!       S S r<   c                V    V\         9  d   \        V R\        \         4       24      hV# )zAValidate the Unicode decode error handler option of CodecOptions.z< is an invalid Unicode decode error handler. Must be one of )_UNICODE_DECODE_ERROR_HANDLERSrc   r   r   s   &&r:   %validate_unicode_decode_error_handlerr  m  s:    22g 3457
 	

 Lr<   c               $    V ^8  d   QhRRRRRR/# )r4   r   r	   r\   r7   zOptional[datetime.tzinfo]r8   )r9   s   "r:   r;   r;   x  s"      3 s /H r<   c                r    Ve3   \        V\        P                  4      '       g   \        RV,          4      hV# )zValidate the tzinfo optionz)%s must be an instance of datetime.tzinfo)rb   datetimetzinforj   r   s   &&r:   validate_tzinfor  x  s.    E8??!C!CCeKLLLr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   Optional[Any]r8   )r9   s   "r:   r;   r;     s!     	 	# 	c 	m 	r<   c                r    Vf   V# ^ RI Hp \        W4      '       g   \        V  R\	        V4       24      hV# )r   )AutoEncryptionOptsz0 must be an instance of AutoEncryptionOpts, not )pymongo.encryption_optionsr   rb   rj   rk   )r[   r\   r   s   && r:   %validate_auto_encryption_opts_or_noner"    s>    }=e006("RSWX]S^R_`aaLr<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r	   r\   r7   zOptional[DatetimeConversion]r8   )r9   s   "r:   r;   r;     s"       S =Y r<   c                8   Vf   \         P                  # \        V\        4      '       d8   VP	                  4       '       d   \        \        V4      4      # \         V,          # \        V\
        4      '       d   \        V4      # \        V  R\        V4       24      h)z%Validate a DatetimeConversion string.z; must be a str or int representing DatetimeConversion, not )r   DATETIMErb   r6   isdigitrB   rj   rk   rd   s   &&r:   validate_datetime_conversionr'    s~    }!***%==??%c%j11!%((	E3		!%((
(MdSXk][ r<   c               $    V ^8  d   QhRRRRRR/# )r4   r[   r6   r\   r7   r8   )r9   s   "r:   r;   r;     s!      C   r<   c                8    VR9  d   \        V  RV: R24      hV# )z)Validate the serverMonitoringMode option.=z7 is invalid. Must be one of "auto", "stream", or "poll">   r0   pollstream)rc   rd   s   &&r:   validate_server_monitoring_moder-    s0    ..hay WX
 	
 Lr<   tlssslzdict[str, list[str]]URI_OPTIONS_ALIAS_MAPappnameauthmechanismauthmechanismproperties
authsourcecompressorsconnecttimeoutmsdirectconnectionheartbeatfrequencymsjournallocalthresholdmsmaxidletimemsmaxconnectingmaxpoolsizemaxstalenesssecondsreadconcernlevelreadpreferencereadpreferencetags
replicaset
retryreadsretrywritesloadbalancedserverselectiontimeoutmssockettimeoutmstlsallowinvalidcertificatestlsallowinvalidhostnames	tlscafiletlscertificatekeyfiletlscertificatekeyfilepasswordtlsdisableocspendpointchecktlsinsecurew
wtimeoutmszlibcompressionlevelsrvservicenamesrvmaxhosts	timeoutmsservermonitoringmodemaxadaptiveretriesenableoverloadretargeting$dict[str, Callable[[Any, Any], Any]]URI_OPTIONS_VALIDATOR_MAPconnectdriver
server_apifsyncminpoolsize
tlscrlfiletz_awareunicode_decode_error_handleruuidrepresentationwaitqueuemultiplewaitqueuetimeoutmsdatetime_conversionNONSPEC_OPTIONS_VALIDATOR_MAPdocument_classtype_registryread_preferenceevent_listenersr  usernamepasswordserver_selectorauto_encryption_optsauthoidcallowedhostsmax_adaptive_retriesenable_overload_retargetingKW_VALIDATORSzdict[str, str]INTERNAL_URI_OPTION_NAME_MAPzdict[str, tuple[str, str]]URI_OPTIONS_DEPRECATION_MAP
VALIDATORSz	list[str]TIMEOUT_OPTIONSc               (    V ^8  d   QhRRRRRRRR/# )	r4   rM   r6   
validatorsrX  
normed_keyrx   r7   zCallable[[Any, Any], Any]r8   )r9   s   "r:   r;   r;   *  s,     - -	->-LY--r<   c                    T;'       g    T p W,          #   \          d    \        Y!R R7      p\        Y4        R# i ; i)g?)cutoffN)r   r   rT   )rM   rx  ry  rN   s   &&& r:   _get_validatorr|  *  sB     ""sJ-%% -'
sK3,-s    #==c               $    V ^8  d   QhRRRRRR/# )r4   r[   r6   r\   r	   r7   tuple[str, Any]r8   )r9   s   "r:   r;   r;   5  s!      S   r<   c                X    \        V \        V P                  4       R7      pV! W4      pW3# )zGeneric validation function.ry  )r|  ru  rJ   )r[   r\   	validators   && r:   validater  5  s(    vzfllnMIf$E=r<   c               $    V ^8  d   QhRRRRRR/# )r4   optionsr  warnr]   r7   zMutableMapping[str, Any]r8   )r9   s   "r:   r;   r;   <  s$     0 00&*00r<   c                n  a a
 \        S \        4      '       d   \        4       pR R lpR V 3R llpM/ pR R lpR R lpS P                  4        F2  w  rVV! V4      p \        V\        VR	7      pV! WV4      p	WV! V4      &   K4  	  V#   \
        \        \        3 d   o
TR
8X  dZ   \        ;QJ d#    T
3R l\         4       F  '       g   K   RM	  RM! T
3R l\         4       4      '       d   R\        S
4      9  d   h T'       d(   \        P                  ! \        S
4      ^R7        Ro
>
K  h Ro
>
ii ; i)aI  Validate each entry in options and raise a warning if it is not valid.
Returns a copy of options with invalid entries removed.

:param opts: A dict containing MongoDB URI options.
:param warn: If ``True`` then warnings will be logged and
      invalid options will be ignored. Otherwise, invalid options will
      cause errors.
c                    V ^8  d   QhRRRR/# r4   xr6   r7   r8   )r9   s   "r:   r;   +get_validated_options.<locals>.__annotate__K       	 	c 	c 	r<   c                    V # Nr8   r  s   &r:   get_normed_key-get_validated_options.<locals>.get_normed_keyK      Hr<   c                    V ^8  d   QhRRRR/# r  r8   )r9   s   "r:   r;   r  N  s     	( 	(c 	(c 	(r<   c                &   < SP                  V 4      # r  )	cased_key)r  r  s   &r:   get_setter_key-get_validated_options.<locals>.get_setter_keyN  s    $$Q''r<   c                    V ^8  d   QhRRRR/# r  r8   )r9   s   "r:   r;   r  T  s     	 	c 	c 	r<   c                "    V P                  4       # r  )rJ   r  s   &r:   r  r  T  s    779r<   c                    V ^8  d   QhRRRR/# r  r8   )r9   s   "r:   r;   r  W  r  r<   c                    V # r  r8   r  s   &r:   r  r  W  r  r<   r  r3  c              3  >   <"   T F  q\        S4      9   x  K  	  R # 5ir  )r6   ).0pexcs   & r:   	<genexpr>(get_validated_options.<locals>.<genexpr>b  s     E/D!SX/Ds   TFz*is not a supported auth mechanism property)
stacklevelN)rb   _CaseInsensitiveDictionaryr   r|  rY  rc   rj   r   any_MECH_PROP_MUST_RAISEr6   warningsr  )r  r  validated_optionsr  r  r   r\   ry  r  	validatedr  s   f&        @r:   get_validated_optionsr  <  s    '56668		( 	( 		 mmo
#C(
	F&s,ER\]I!#-I =FnZ89# &$  I'9: 
	77CE/DECCCE/DEEE@CPc#h155
	s6   B		D4D/1D/!D/.D/!D/.D//D4c               $    V ^8  d   QhRRRRRR/# r4   encrypted_fieldsr  r   r6   r7   r	   r8   )r9   s   "r:   r;   r;   o  s'     H H%6 Hc Hc Hr<   c                .    V P                  R RV R24      # )escCollectionenxcol_.z.escgetr  r   s   &&r:   _esc_coll_namer  o  s    8D61FGGr<   c               $    V ^8  d   QhRRRRRR/# r  r8   )r9   s   "r:   r;   r;   s  s'     J J&7 Js Js Jr<   c                .    V P                  R RV R24      # )ecocCollectionr  z.ecocr  r  s   &&r:   _ecoc_coll_namer  s  s     0HTF%2HIIr<   c                      ] tR tRtRtR R lt]R R l4       t]R R l4       tR	 R
 lt	]R R l4       t
R R lt]R R l4       tRtR# )
BaseObjecti{  zA base class that provides attributes and methods common
to multiple pymongo classes.

SHOULD NOT BE USED BY DEVELOPERS EXTERNAL TO MONGODB.
c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r4   codec_optionsCodecOptions[Any]ri  r"   write_concernr%   read_concernr    r7   r   r8   )r9   s   "r:   r;   BaseObject.__annotate__  s<     * *(* %* $	*
 "* 
*r<   c                	v   \        V\        4      '       g   \        R 4      hWn        \        V\        4      '       g   \        V: R24      hW n        \        V\        4      '       g   \        R\        V4       24      hW0n        \        V\        4      '       g   \        R\        V4       24      hW@n
        R# )zDcodec_options must be an instance of bson.codec_options.CodecOptionszR is not valid for read_preference. See pymongo.read_preferences for valid options.zMwrite_concern must be an instance of pymongo.write_concern.WriteConcern, not zJread_concern must be an instance of pymongo.read_concern.ReadConcern, not N)rb   r   rj   _codec_optionsr"   _read_preferencer%   rk   _write_concernr    _read_concern)selfr  ri  r  r  s   &&&&&r:   __init__BaseObject.__init__  s     -66bcc+/;77"% &  
 !0-66_`der`s_tu  ,,44\]abn]o\pq  *r<   c                   V ^8  d   QhRR/# )r4   r7   r  r8   )r9   s   "r:   r;   r    s     # #0 #r<   c                    V P                   # )zTRead only access to the :class:`~bson.codec_options.CodecOptions`
of this instance.
)r  r  s   &r:   r  BaseObject.codec_options  s    
 """r<   c                   V ^8  d   QhRR/# )r4   r7   r%   r8   )r9   s   "r:   r;   r    s     # #| #r<   c                    V P                   # )zRead only access to the :class:`~pymongo.write_concern.WriteConcern`
of this instance.

.. versionchanged:: 3.0
  The :attr:`write_concern` attribute is now read only.
)r  r  s   &r:   r  BaseObject.write_concern  s     """r<   c                    V ^8  d   QhRRRR/# )r4   session Optional[_AgnosticClientSession]r7   r%   r8   )r9   s   "r:   r;   r    s     " "*J "| "r<   c                Z    V'       d   VP                   '       d   \        # V P                  # )zBRead only access to the write concern of this instance or session.)in_transactionr$   r  r  r  s   &&r:   _write_concern_forBaseObject._write_concern_for  s$     w---((!!!r<   c                   V ^8  d   QhRR/# )r4   r7   r"   r8   )r9   s   "r:   r;   r    s     % % %r<   c                    V P                   # )zRead only access to the read preference of this instance.

.. versionchanged:: 3.0
  The :attr:`read_preference` attribute is now read only.
)r  r  s   &r:   ri  BaseObject.read_preference  s     $$$r<   c                    V ^8  d   QhRRRR/# )r4   r  r  r7   r"   r8   )r9   s   "r:   r;   r    s     % %,L %Q\ %r<   c                r    V'       d%   VP                  4       ;'       g    V P                  # V P                  # )zDRead only access to the read preference of this instance or session.)_txn_read_preferencer  r  s   &&r:   _read_preference_forBaseObject._read_preference_for  s0     //1JJT5J5JJ$$$r<   c                   V ^8  d   QhRR/# )r4   r7   r    r8   )r9   s   "r:   r;   r    s     " "k "r<   c                    V P                   # )zlRead only access to the :class:`~pymongo.read_concern.ReadConcern`
of this instance.

.. versionadded:: 3.2
)r  r  s   &r:   r  BaseObject.read_concern  s     !!!r<   )r  r  r  r  N)__name__
__module____qualname____firstlineno____doc__r  propertyr  r  r  ri  r  r  __static_attributes__r8   r<   r:   r  r  {  sf    *> # # # #" % %% " "r<   r  c                     ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR(R R lltR R ltR R ltR R lt]R(R R ll4       t]R R  l4       tR(R! R" lltR# R$ ltR% R& ltR'tR# ))r  i  c                    V ^8  d   QhRRRR/# )r4   argsr	   kwargsr8   )r9   s   "r:   r;   '_CaseInsensitiveDictionary.__annotate__  s     + +c +S +r<   c                	V    / V n         / V n        V P                  \        V/ VB 4       R # r  )%_CaseInsensitiveDictionary__casedkeys _CaseInsensitiveDictionary__datar  r   )r  r  r  s   &*,r:   r  #_CaseInsensitiveDictionary.__init__  s'    +-&(D$)&)*r<   c                    V ^8  d   QhRRRR/# )r4   rM   r6   r7   r]   r8   )r9   s   "r:   r;   r    s     * * * *r<   c                	<    VP                  4       V P                  9   # r  )rJ   r  r  rM   s   &&r:   __contains__'_CaseInsensitiveDictionary.__contains__  s    yy{dkk))r<   c                   V ^8  d   QhRR/# )r4   r7   rB   r8   )r9   s   "r:   r;   r    s          r<   c                	,    \        V P                  4      # r  )r   r  r  s   &r:   __len__"_CaseInsensitiveDictionary.__len__  s    4;;r<   c                   V ^8  d   QhRR/# )r4   r7   zIterator[str]r8   )r9   s   "r:   r;   r    s     1 1- 1r<   c                	(    R  V P                    4       # )c              3  $   "   T F  qx  K  	  R # 5ir  r8   )r  rM   s   & r:   r  6_CaseInsensitiveDictionary.__iter__.<locals>.<genexpr>  s     0//s   )r  r  s   &r:   __iter__#_CaseInsensitiveDictionary.__iter__  s    0t//00r<   c                   V ^8  d   QhRR/# r4   r7   r6   r8   )r9   s   "r:   r;   r    s     H H# Hr<   c                	    \        V  Uu/ uF'  qP                  V,          V P                  V,          bK)  	  up4      # u upi r  )r6   r  r  )r  ks   & r:   __repr__#_CaseInsensitiveDictionary.__repr__  s5    FA$$Q'Q7FGGFs   ->c               $    V ^8  d   QhRRRRRR/# )r4   rM   r6   r\   r	   r7   r   r8   )r9   s   "r:   r;   r    s!     $ $s $3 $4 $r<   c                	^    VP                  4       pWP                  V&   W P                  V&   R # r  rJ   r  r  )r  rM   r\   lc_keys   &&& r:   __setitem__&_CaseInsensitiveDictionary.__setitem__  s'    #& #Fr<   c                    V ^8  d   QhRRRR/# r4   rM   r6   r7   r	   r8   )r9   s   "r:   r;   r    s     ( (s (s (r<   c                	D    V P                   VP                  4       ,          # r  )r  rJ   r  s   &&r:   __getitem__&_CaseInsensitiveDictionary.__getitem__  s    {{399;''r<   c                    V ^8  d   QhRRRR/# )r4   rM   r6   r7   r   r8   )r9   s   "r:   r;   r    s        s  t  r<   c                	Z    VP                  4       pV P                  V V P                  V R # r  r  )r  rM   r	  s   && r:   __delitem__&_CaseInsensitiveDictionary.__delitem__  s'    V$KKr<   c                    V ^8  d   QhRRRR/# )r4   otherr	   r7   r]   r8   )r9   s   "r:   r;   r    s     	 	C 	D 	r<   c                	    \        V\        P                  4      '       g   \        # \	        V 4      \	        V4      8w  d   R # V F  pW,          W,          8w  g   K   R # 	  R# )FT)rb   r   r   NotImplementedr   r  r  rM   s   && r:   __eq__!_CaseInsensitiveDictionary.__eq__  sJ    %--!!t9E
"CyEJ&  r<   Nc               $    V ^8  d   QhRRRRRR/# )r4   rM   r6   defaultr  r7   r	   r8   )r9   s   "r:   r;   r    s!     5 5s 5] 5c 5r<   c                	V    V P                   P                  VP                  4       V4      # r  )r  r  rJ   r  rM   r  s   &&&r:   r  _CaseInsensitiveDictionary.get  s    {{syy{G44r<   c               (    V ^8  d   QhRRRRRRRR/# )r4   rM   r6   r  r	   r  r7   r8   )r9   s   "r:   r;   r     s(     8 8s 83 8# 8# 8r<   c                	    VP                  4       pV P                  P                  VR 4       V P                  P                  ! V.VO5/ VB # r  )rJ   r  popr  )r  rM   r  r  r	  s   &&*, r:   r#  _CaseInsensitiveDictionary.pop   s@    VT*{{v7777r<   c                   V ^8  d   QhRR/# )r4   r7   r~  r8   )r9   s   "r:   r;   r    s          r<   c                	v    V P                   P                  4       w  rV P                  P                  V4      pW#3# r  )r  popitemr  r#  )r  r	  r  r\   s   &   r:   r'  "_CaseInsensitiveDictionary.popitem  s4     ,,446'r<   c                   V ^8  d   QhRR/# )r4   r7   r   r8   )r9   s   "r:   r;   r  
  s      t r<   c                	n    V P                   P                  4        V P                  P                  4        R # r  )r  clearr  r  s   &r:   r+   _CaseInsensitiveDictionary.clear
  s$     r<   c               $    V ^8  d   QhRRRRRR/# )r4   rM   r6   r  r   r7   r  r8   )r9   s   "r:   r;   r    s!      c D M r<   c                	    R # r  r8   r  s   &&&r:   
setdefault%_CaseInsensitiveDictionary.setdefault      r<   c               $    V ^8  d   QhRRRRRR/# )r4   rM   r6   r  r	   r7   r8   )r9   s   "r:   r;   r    s!      c C C r<   c                	    R # r  r8   r  s   &&&r:   r/  r0    r1  r<   c               $    V ^8  d   QhRRRRRR/# )r4   rM   r6   r  r  r7   r8   )r9   s   "r:   r;   r    s!      c M ] r<   c                	    VP                  4       pW9   d   V P                  V,          # WP                  V&   W P                  V&   V# r  )rJ   r  r  )r  rM   r  r	  s   &&& r:   r/  r0    s@    ;;;v&&'*V$")KKNr<   c                    V ^8  d   QhRRRR/# )r4   r  r  r7   r   r8   )r9   s   "r:   r;   r    s     ' '- '$ 'r<   c                	    \        V\        4      '       d%   V F  pW,          WP                  V4      &   K  	  R # V F  pW,          W&   K  	  R # r  )rb   r  r  r  s   && r:   r  !_CaseInsensitiveDictionary.update  sB    e788-2Z__S)*  !J	 r<   c                    V ^8  d   QhRRRR/# r  r8   )r9   s   "r:   r;   r  '  s     - -S -S -r<   c                	D    V P                   VP                  4       ,          # r  )r  rJ   r  s   &&r:   r  $_CaseInsensitiveDictionary.cased_key'  s    		,,r<   )__casedkeys__datar  )r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r#  r'  r+  r   r/  r  r  r  r8   r<   r:   r  r    s    +
* 1H$
( 
	58
 
    '- -r<   r  c                   V ^8  d   QhRR/# )r4   r7   r]   r8   )r9   s   "r:   r;   r;   +  s      t r<   c                 8     ^ RI Hp  R#   \         d     R# i ; i)zIs the C extension installed?	_cmessageTF)pymongorA  ImportErrorr@  s    r:   has_crD  +  s    % s   
 c                     a  ] tR tRtRtR V 3R llt]RR R ll4       t]R R l4       t]R	 R
 l4       t	R R lt
R R ltRtV ;t# )Versioni5  z4A class that can be used to compare version strings.c                    V ^8  d   QhRRRR/# )r4   r   rB   r7   rF  r8   )r9   s   "r:   r;   Version.__annotate__8  s     ; ;s ;w ;r<   c                	Z   < V P                  V^4      p\        SV `	  V \        V4      4      # )   )_paddedsuper__new__r   )clsr   padded_version	__class__s   &* r:   rM  Version.__new__8  s)    Wa0wsE.$9::r<   c               (    V ^8  d   QhRRRRRRRR/# )r4   r  r	   lengthrB   paddingr7   z	list[int]r8   )r9   s   "r:   r;   rH  =  s(      3  c ) r<   c                	    \        V4      p\        V4      V8  d4   \        V\        V4      ,
          4       F  pVP                  V4       K  	  V# r  )r   r   ranger   )rN  r  rS  rT  as_listr   s   &&&&  r:   rK  Version._padded<  s@    t*w<& 6CL01w' 2r<   c                    V ^8  d   QhRRRR/# )r4   version_stringr6   r7   rF  r8   )r9   s   "r:   r;   rH  E  s     %! %! %! %!r<   c                	f   ^ pRpVP                  R4      '       d	   V^ R	 p^pM=VP                  R4      '       d	   V^ R
 pR	pMVP                  R4      '       d   V^ R	 pR	pRV9   d   V^ VP                  R4       pR	pRV9   d   V^ VP                  R4       pR	pMRV9   d   V^ VP                  R4       pR	pRpVP                  R4       Uu. uF  p\        V4      NK  	  ppV P	                  V^4      pV'       d   VR	;;,          ^,          uu&   VP
                  ! V4       \        V!  # u upi )    F+z-pre--z.devz-rcTrP   r@   )endswithfindr   rB   rK  r   rF  )rN  rZ  modbump_patch_levelpartr   s   &&    r:   from_stringVersion.from_stringD  sJ    ""3''+Ab1NC$$W--+Ab1NC$$S))+Ab1NC^#+A0C0CF0KLNCN"+A0C0CE0JKNCN"+A0C0CC0HINC#)7)=)=c)BC)B3t9)BC++gq) BK1Ks   Ds   D.c                    V ^8  d   QhRRRR/# )r4   version_arrayr	   r7   rF  r8   )r9   s   "r:   r;   rH  m  s     ! !s !w !r<   c                	t    \        V4      pVR,          ^ 8  d   RVR&   V P                  V^4      p\        V!  # )   r@   )r   rK  rF  )rN  rh  r   s   && r:   from_version_arrayVersion.from_version_arrayl  s;    }%2;?GBK++gq)  r<   c                    V ^8  d   QhRRRR/# )r4   other_versionr	   r7   r]   r8   )r9   s   "r:   r;   rH  t  s     / /s /t /r<   c                	    V \        V!  8  # r  )rF  )r  rn  s   &*r:   at_leastVersion.at_leastt  s    w...r<   c                   V ^8  d   QhRR/# r  r8   )r9   s   "r:   r;   rH  w  s     ( ( (r<   c                	@    R P                  \        \        V 4      4      # )rP   )rR   mapr6   r  s   &r:   __str__Version.__str__w  s    xxC''r<   r8   )r\  )r  r  r  r  r  rM  classmethodrK  re  rk  rp  ru  r  __classcell__)rP  s   @r:   rF  rF  5  s\    >; ;   %! %!N ! !/( (r<   rF  .c                    V ^8  d   QhRRRR/# )r4   package_namer6   r7   ztuple[str, str, bool]r8   )r9   s   "r:   r;   r;   {  s     ; ; ;0E ;r<   c                z   \        V 4      p\        P                  V4      p\        R4      pVf   Q hV Uu. uF  qDP	                  V 4      '       g   K  VNK  	  up^ ,          pRV9   d   VP                  R4      ^ ,          pWUP                  R4      ^,           R pV\        P                  V4      8  pWV3# u upi )z<Test whether an installed package is of the desired version.rB  N;z>=)r   rF  re  r   rC   r   ra  )rz  package_version_strpackage_versionrequirementsirequirementrequired_versionis_valids   &       r:   check_for_min_versionr  {  s    !,/))*=>O
 I&L###*Illl<.H11lI!LK
k!'',Q/"#3#3D#9A#=#?@'"5"56F"GGH(:: Js   B8B8i   i l);   )   i@  i@  r  )SERVICE_NAMESERVICE_HOSTr1   SERVICE_REALMr   ENVIRONMENTTOKEN_RESOURCE)strictreplaceignore)r6  r8  r;  r>  rF  rG  rd  )T)rO  wtimeoutrP  r]  jr9  )__conditional_annotations__r  
__future__r   r  r  collectionsr   r   difflibr   importlib.metadatar   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   urllib.parser   bsonr   bson.binaryr   bson.codec_optionsr   r   r   bson.raw_bsonr   pymongo.compression_supportr   r   pymongo.driver_infor   pymongo.errorsr   pymongo.monitoringr   pymongo.read_concernr    pymongo.read_preferencesr!   r"   pymongo.server_apir#   pymongo.write_concernr$   r%   r&   pymongo.typingsr'   r(   __annotations__MAX_BSON_SIZEMAX_MESSAGE_SIZEMIN_WIRE_VERSIONMAX_WIRE_VERSIONMAX_WRITE_BATCH_SIZEMIN_SUPPORTED_SERVER_VERSIONMIN_SUPPORTED_WIRE_VERSIONMAX_SUPPORTED_WIRE_VERSIONHEARTBEAT_FREQUENCYKILL_CURSOR_FREQUENCYEVENTS_QUEUE_FREQUENCYSERVER_SELECTION_TIMEOUTMIN_HEARTBEAT_INTERVALMIN_SRV_RESCAN_INTERVALCONNECT_TIMEOUTMAX_POOL_SIZEMIN_POOL_SIZEMAX_CONNECTINGr*   r+   r,   LOCAL_THRESHOLD_MSRETRY_WRITESRETRY_READSr-   r.   _MAX_END_SESSIONSSRV_SERVICE_NAMESERVER_MONITORING_MODEMAX_ADAPTIVE_RETRIESENABLE_OVERLOAD_RETARGETINGr  rG   rK   rT   UNSPECIFIEDSTANDARDPYTHON_LEGACYJAVA_LEGACYCSHARP_LEGACYr   re   rl   rr   ru   r}   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	frozensetr   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r"  r'  r-  r0  rY  rf  rr  rs  rt  r  r   optnamealiasesaliascopyru  rv  r|  r  r  r  r  WRITE_CONCERN_OPTIONSr  r6   r  rD  r   rB   rF  r  )r  s   @r:   <module>r     s    @ "   ( % 0    &  * M M ) + - 8 , ? ( W W6 '*;%7" 7 #      %                    #' - & $( = ' %) M (     */  . %7 M 6          $  22 	" %11"++&44$00&44 +	]8e*&2;
;;C4		* 
 4n*(


H
? "++J!K 	" 
E7/ + )C')C,)C A)C /	)C
 ')C 8)C 2)C 4)C ))C 7)C -)C .)C 8)C 1)C /)C  3!)C" 7#)C$ )%)C& ,')C( -))C* .+)C,  8-)C. 7/)C0 
%1)C2 "#=3)C4  :5)C6 "7)C8 .9)C: $%<;)C< "#==)C> -?)C@ 	0A)CB /C)CD ;E)CF o0#;7!;Q)C ? )\ )%-'0#*"$I6>27G C & -+/0o''3AM9!#=73 ( 
50 n 	; 7 	     !> ?-335GW11/H/Q%e,  6 4M3Q3Q3S
0 S 
  -   -0fHJ
 ""Z[ U" U"pU-S!9 U-pC(eCHo C(L;r<   