+\h  UdZddlmZddlZddlZddlmZmZddlm Z ddl m Z m Z m Z mZmZmZmZmZmZmZmZmZddlmZddlmZdd lmZdd lmZmZm Z dd l!m"Z"dd l#m$Z$m%Z%dd l&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/m0Z0ddl1m2Z2ddl3m4Z4m5Z5m6Z6e rddl7m8Z8eefZ9de:d<dZ;dZdZ?dZ@dZAdZBdZCdZDdZEdZFd ZGd!ZHd"ZId#ZJdZKd$ZLdZMd%e:d&<dZNd%e:d'<dZOd%e:d(<d)ZPd*ZQd*ZRd+ZSd,e:d-<d.ZTd,e:d/<d0ZUd1ZVd2ZWd3gZXdd4ZYdd5ZZddd6Z[ejejejejejd7Zadd8Zbdd9Zcdd:Zddd;Zedd<Zfdd=Zgdd>Zhdd?Zidd@ZjddAZkddBZlddCZmddDZnddEZoddFZpddGZqddHZrddIZsddJZtddKZuddLZvddMZwddNZxeygdOZzddPZ{ ddQZ|ddRZ}ddSZ~ddTZddUZddVZddWZddXZddYZddZZdd[Zdd\Zdd]Zeygd^Zdd_Zdd`ZddaZddbZddcZdddegiZdfe:dg<idhedievdje{dkeidle$dmeqdnebdoeodpebdqendreodseddtehduesdvejdweudxexidyejdzebd{ebd|ebd}epd~eqddebdebdebdefdefdejdebdebdeldeede%eieeeredZde:d<ebeeebeeefebeeweheoed Zde:d<e|e}ete+eejejeee~d Zde:d<deddiZde:d<iZde:d<ej+eej-D]\ZZeD]Zeevseeee<ej5Zde:d<ej+egdZde:d<eydjgZddZ d ddZddZ d ddZddZddZeygdZGddZGddeee fZddZy)z9Functions and classes common to multiple pymongo modules.) annotationsN) OrderedDictabc)get_close_matches) TYPE_CHECKINGAnyCallableIteratorMappingMutableMappingNoReturnOptionalSequenceTypeUnionoverload) unquote_plus)SON)UuidRepresentation) CodecOptionsDatetimeConversion TypeRegistry)RawBSONDocument)validate_compressorsvalidate_zlib_compression_level) DriverInfo)ConfigurationError)_validate_event_listeners) ReadConcern) _MONGOS_MODES _ServerMode) ServerApi)DEFAULT_WRITE_CONCERN WriteConcernvalidate_boolean)_AgnosticClientSessionzSequence[Type] ORDERED_TYPESiiliz4.2 g?<g4@d Optional[int]MAX_IDLE_TIME_MSMAX_IDLE_TIME_SECWAIT_QUEUE_TIMEOUTT);z Sequence[int]COMMAND_NOT_FOUND_CODES) i@i@UNAUTHORIZED_CODESi'mongodbautoCANONICALIZE_HOST_NAMEc|}d}|jd}|dk7r|d|t||dzd}}|jdr|dd}||fS)z5Split a host:port string into (host, int(port)) pair.ii:Nr+[)rfindint startswith)nodehostportidxs Q/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pymongo/common.pypartition_noderHs_ D D **S/C by$3ZT#')_!5d sAbz :cBt|\}}|j|fS)z6Split and normalize a node name from a hello response.)rHlower)rCrDrEs rG clean_noderLs#%JD$ ::< rIcXd|d}|r|ddj|dz }t|)z1Raise ConfigurationError with the given key name.Unknown option: .z Did you mean one of (, z:) or maybe a camelCase version of one? Refer to docstring.)joinr)key suggestionsmsgs rGraise_config_errorrUs= SE #C ' +(>'??yzz S !!rI) unspecifiedstandard pythonLegacy javaLegacy csharpLegacycjt|tr|dvrtd|d|dk(St||S)z8Validates that value is True, False, 'true', or 'false'.)truefalse The value of z must be 'true' or 'false'r\) isinstancestr ValueErrorr%optionvalues rGvalidate_boolean_or_stringresA% ) )}VH4NOP P FE **rIct|tr|St|tr t|St d|dt |#t$rtd|ddwxYw)zDValidates that 'value' is an integer (or basestring representation).r^z must be an integerNWrong type for z , value must be an integer, not r_rAr`ra TypeErrortyperbs rGvalidate_integerrksu% E3  Tu:  ofX-MdSXk][ \\ T}VH4GHIt S Ts A A#cFt||}|dkrtd|d|S)zFValidate that 'value' is a positive integer, which does not include 0.rr^z must be a positive integerrkrarcrdvals rGvalidate_positive_integerrps/ 65 )C ax=0KLMM JrIcFt||}|dkrtd|d|S)z1Validate that 'value' is a positive integer or 0.rr^z must be a non negative integerrmrns rGvalidate_non_negative_integerrrs/ 65 )C Qw=0OPQQ JrIcX||St||}t|j|S)z1Validates that 'value' is file-like and readable.)validate_stringopencloserbs rGvalidate_readablerws/ }  FE *EK LrIc"||St||S)z4Validate that 'value' is a positive integer or None.rprbs rG!validate_positive_integer_or_nonerzs } $VU 33rIc"||St||S)z9Validate that 'value' is a positive integer or 0 or None.)rrrbs rG%validate_non_negative_integer_or_noner|s } ( 77rIcZt|tr|Std|dt|)z/Validates that 'value' is an instance of `str`.rgz(, value must be an instance of str, not )r_r`rirjrbs rGrtrts2% ofX-UVZ[`VaUbc ddrIc"||St||S)z@Validates that 'value' is an instance of `basestring` or `None`.)rtrbs rGvalidate_string_or_noners } 65 ))rIct|tr|St|tr t|St d|dt |#t$r|cYSwxYw)/Validates that 'value' is an integer or string.rgz,, value must be an integer or a string, not rhrbs rGvalidate_int_or_basestringrse% E3  u:   &!MdSXk][  L s A AAct|tr|St|tr t|}t ||St d|dt |#t$r|cYSwxYw)rrgz9, value must be an non negative integer or a string, not )r_rAr`rarrrirjrns rG'validate_non_negative_int_or_basestringrst% E3  e*C-VS99  &!Z[_`e[fZgh  L s A A#"A#c|d} t|}d|cxkrdksnt|d|S#t$r t|dt$r t|dwxYw)zXValidates that 'value' is a float, or can be converted to one, and is positive. z must be an integer or floatNrgeAz1 must be greater than 0 and less than one billion)floatrari)rcrderrmsgs rGvalidate_positive_floatr$swx3 4F*e  u?s?F8#TUVV L + d* *T)*s /*Ac0|dk(s|dk(ryt||S)zgValidates that 'value' is 0 or a positive float, or can be converted to 0 or a positive float. r0rrbs rGvalidate_positive_float_or_zeror7s! zUc\ "65 11rIc(||St||dz S)cValidates a timeout specified in milliseconds returning a value in floating point seconds. @@rrbs rGvalidate_timeout_or_noner@s  } "65 1F ::rIcV|t|d|dk(s|dk(ryt||dz S)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 Nonerrr)rrrbs rGvalidate_timeout_or_zerorIs=  } F8?!;<< zUc\ "65 1F ::rIc:| |dk(s|dk(ryt||dz S)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. Nrrrrrbs rG validate_timeout_or_none_or_zerorVs*  } esl "65 1F ::rIc&|yt||dz S)rNr)rrbs rGvalidate_timeoutmsr`s } *65 9F BBrIc0|dk(s|dk(ryt||S)zBValidates maxStalenessSeconds according to the Max Staleness Spec.r>z-1ryrbs rGvalidate_max_stalenessris {etm $VU 33rIcBt|tst|d|S)zValidate a read preference.z is not a read preference)r_r!ridummyrds rGvalidate_read_preferencerqs$ e[ )5)#<=>> LrIc2|tvrt|d|S)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 rars rGvalidate_read_preference_moderxs$ M!E7"ABCC LrIcLddlm}||vrt|dt||S)z&Validate the authMechanism URI option.r) MECHANISMSz must be in )pymongo.auth_sharedrratuple)rcrdrs rGvalidate_auth_mechanismrs.. JF8<j0A/BCDD LrIcl t|S#t$rt|dttdwxYw)zS*6s*;\#&' < OOD ! T O T{*A$HIt S Ts AB  B&) SERVICE_NAME SERVICE_HOSTr; SERVICE_REALMAWS_SESSION_TOKEN ENVIRONMENTTOKEN_RESOURCEc <i}t|tst|tstdt ||j D]\}}t|tr|||<t|t rt|j||<I|dvrt|tr|||<c|dvr/ddl m }t||stdt ||||<td|dt ||St||}t|}|jd D]t}|jd \}}}|s td |tvr,d |vr td t|dt!t|dk(rddlm}||||<p|||<v|S)z!Validate authMechanismProperties.zIAuth mechanism properties must be given as a string or a dictionary, not ) ALLOWED_HOSTS) OIDC_CALLBACKOIDC_HUMAN_CALLBACKr) OIDCCallbackz-callback must be an OIDCCallback object, not z)Invalid type for auth mechanism property rPrr=z#Malformed auth mechanism propertiesrzPauth mechanism properties must be key:value pairs like AWS_SESSION_TOKEN:z< is not a supported auth mechanism property. Must be one of r;) _validate_canonicalize_host_name)r_r`dictrarjitemsboolrKrpymongo.auth_oidc_sharedrrtrr partition_MECHANISM_PROPSrrr) rcrdpropsrRropt_rors rG"validate_auth_mechanism_propertiesrsE eS !%&[\`af\g[hi  ++- cJC%%"c E4( Z--/c ))j.E"c @@A!%6$'TUYZ_U`Ta%bcc"c  #LSEQSTXY^T_S`!abb c FE *E  E{{3mmC( QBC C & &"c) E %6)*+-  * * L9#>E#JE#J/2 LrIcd} t|tj}|st|t st|d|S#t$r3t |dr$t|j tj}Y]wxYw)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) issubclassrr rihasattrrr)rcrd is_mappings rGvalidate_document_classrs JJs'9'9:  j@h5 5  L J 5, '#E$4$4c6H6HIJJsA9A<;A<cR|$t|tst|dt|S)z"Validate the type_registry option.z must be an instance of )r_rrirbs rGvalidate_type_registryrs- E>1{rI)strictreplaceignorecP|tvrt|dtt|S)zAValidate the Unicode decode error handler option of CodecOptions.z< is an invalid Unicode decode error handler. Must be one of )_UNICODE_DECODE_ERROR_HANDLERSrarrs rG%validate_unicode_decode_error_handlerr{s: 22g345 7  LrIcZ|(t|tjstd|z|S)zValidate the tzinfo optionz)%s must be an instance of datetime.tzinfo)r_datetimetzinforirs rGvalidate_tzinfors+ E8??!CCeKLL LrIcd||Sddlm}t||st|dt ||S)rr)AutoEncryptionOptsz0 must be an instance of AutoEncryptionOpts, not )pymongo.encryption_optionsrr_rirj)rcrdrs rG%validate_auto_encryption_opts_or_noners> } = e/ 06("RSWX]S^R_`aa LrIc|tjSt|tr-|j rtt |St|St|t r t|St |dt|)z%Validate a DatetimeConversion string.z; must be a str or int representing DatetimeConversion, not )rDATETIMEr_r`isdigitrArirjrbs rGvalidate_datetime_conversionrsv }!***% ==?%c%j1 1!%(( E3 !%((  (MdSXk][ rIc0|dvrt|d|d|S)z)Validate the serverMonitoringMode option.>r:pollstream=z7 is invalid. Must be one of "auto", "stream", or "poll")rarbs rGvalidate_server_monitoring_moder s0 ..hay W X   LrItlssslzdict[str, list[str]]URI_OPTIONS_ALIAS_MAPappname authmechanismauthmechanismproperties authsource compressorsconnecttimeoutmsdirectconnectionheartbeatfrequencymsjournallocalthresholdms maxidletimems maxconnecting maxpoolsizemaxstalenesssecondsreadconcernlevelreadpreferencereadpreferencetags replicaset retryreads retrywrites loadbalancedserverselectiontimeoutmssockettimeoutmstlsallowinvalidcertificatestlsallowinvalidhostnames tlscafiletlscertificatekeyfiletlscertificatekeyfilepasswordtlsdisableocspendpointcheck tlsinsecurew wtimeoutmszlibcompressionlevel)srvservicename srvmaxhosts timeoutmsservermonitoringmode$dict[str, Callable[[Any, Any], Any]]URI_OPTIONS_VALIDATOR_MAP) connectdriver server_apifsync minpoolsize tlscrlfiletz_awareunicode_decode_error_handleruuidrepresentationwaitqueuemultiplewaitqueuetimeoutmsdatetime_conversionNONSPEC_OPTIONS_VALIDATOR_MAP) document_class type_registryread_preferenceevent_listenersrusernamepasswordserver_selectorauto_encryption_optsauthoidcallowedhosts KW_VALIDATORSzdict[str, str]INTERNAL_URI_OPTION_NAME_MAPzdict[str, tuple[str, str]]URI_OPTIONS_DEPRECATION_MAP VALIDATORS)rrrrr$r%r@z list[str]TIMEOUT_OPTIONScbt||\}}|tvrtd|dt||fS)z,Validate optional authentication parameters.rNz . Must be in )validate _AUTH_OPTIONSr)rcrdrKs rGvalidate_auth_optionrT6s=FE*LE5 M! #3F8=!XYY 5=rIcl|xs|} ||S#t$rt||d}t||YywxYw)Ng?)cutoff)rrrU)rR validators normed_keyrSs rG_get_validatorrY>sE"sJ-*%% -' JsK 3 ,-s  #33c\t|t|j}|||}||fS)zGeneric validation function.rX)rYrOrK)rcrd validators rGrRrRIs,vzfllnMI fe $E 5=rIc ttrt}d d}d fd }n i}d d}d d}jD]4\}}||} t|t|}|||} | |||<6|S#t t tf$rY |dk(r&t fdtDrdt vr|r!tjt d nYd d wwxYw) aaValidate 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|SNxs rGget_normed_keyz-get_validated_options..get_normed_key_HrIc&j|Sr_) cased_key)rboptionss rGget_setter_keyz-get_validated_options..get_setter_keybs$$Q' 'rIc"|jSr_)rKras rGrcz-get_validated_options..get_normed_keyhs779 rIc|Sr_r`ras rGrhz-get_validated_options..get_setter_keykrdrIr[rc38K|]}|tvywr_)r`).0pexcs rG z(get_validated_options..vsE!SX Esz*is not a supported auth mechanism propertyr/) stacklevelN)rbr`returnr`) r__CaseInsensitiveDictionaryrrYr5rarirany_MECH_PROP_MUST_RAISEr`warningswarn) rgrvvalidated_optionsrcrhrrdrXr\ validatedrns ` @rGget_validated_optionsryPs'5668  (  mmoF U#C(  F&s,ER\]I!#u-I=F nZ8 9#F$ I'9: 77E/DEE@CP c#h156 sA;;C(AC##C(c.|jdd|dS)N escCollectionenxcol_.z.escgetencrypted_fieldsrs rG_esc_coll_namers   8D61F GGrIc.|jdd|dS)NecocCollectionr|z.ecocr}rs rG_ecoc_coll_namers    0HTF%2H IIrI)r-wtimeoutr.r9jrceZdZdZ d dZed dZed dZd dZeddZ ddZ eddZ y ) BaseObjectzA base class that provides attributes and methods common to multiple pymongo classes. SHOULD NOT BE USED BY DEVELOPERS EXTERNAL TO MONGODB. cJt|ts td||_t|tst|d||_t|t stdt|||_t|tstdt|||_ y)NzDcodec_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 ) r_rri_codec_optionsr!_read_preferencer$rj_write_concernr _read_concern)self codec_optionsrE write_concern read_concerns rG__init__zBaseObject.__init__s-6bc c+/;7"%&  !0-6_`der`s_tu ,, 4\]abn]o\pq *rIc|jS)zdRead only access to the :class:`~bson.codec_options.CodecOptions` of this instance. )rrs rGrzBaseObject.codec_optionss """rIc|jS)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. )rrs rGrzBaseObject.write_concerns"""rIcB|r|jrtS|jS)zBRead only access to the write concern of this instance or session.)in_transactionr#rrsessions rG_write_concern_forzBaseObject._write_concern_fors! w--( (!!!rIc|jS)zRead only access to the read preference of this instance. .. versionchanged:: 3.0 The :attr:`read_preference` attribute is now read only. )rrs rGrEzBaseObject.read_preferences$$$rIcZ|r|jxs |jS|jS)zDRead only access to the read preference of this instance or session.)_txn_read_preferencerrs rG_read_preference_forzBaseObject._read_preference_fors- //1JT5J5J J$$$rIc|jS)zRead only access to the :class:`~pymongo.read_concern.ReadConcern` of this instance. .. versionadded:: 3.2 )rrs rGrzBaseObject.read_concerns!!!rIN) rrrEr!rr$rrrqNone)rqr)rqr$)r Optional[_AgnosticClientSession]rqr$)rqr!)rrrqr!)rqr) __name__ __module__ __qualname____doc__rpropertyrrrrErrr`rIrGrrs *#*%*$ * " *  *>## ##"%%%""rIrceZdZddZddZddZddZddZddZddZ ddZ dd Z ddd Z dd Z d d Zd!dZedd"dZed#dZdd$dZd%dZddZy )&rrcTi|_i|_|jt|i|yr_)%_CaseInsensitiveDictionary__casedkeys _CaseInsensitiveDictionary__datarr)rargskwargss rGrz#_CaseInsensitiveDictionary.__init__s'+-&(  D$)&)*rIc:|j|jvSr_)rKrrrRs rG __contains__z'_CaseInsensitiveDictionary.__contains__syy{dkk))rIc,t|jSr_)rrrs rG__len__z"_CaseInsensitiveDictionary.__len__s4;;rIc(d|jDS)Nc3 K|]}|ywr_r`)rlrRs rGroz6_CaseInsensitiveDictionary.__iter__..s00s )rrs rG__iter__z#_CaseInsensitiveDictionary.__iter__s0t//00rIctt|Dcic]}|j||j|!c}Scc}wr_)r`rr)rks rG__repr__z#_CaseInsensitiveDictionary.__repr__s3FAD$$Q'Q7FGGFs$5c`|j}||j|<||j|<yr_rKrr)rrRrdlc_keys rG __setitem__z&_CaseInsensitiveDictionary.__setitem__s+#& # FrIc<|j|jSr_)rrKrs rG __getitem__z&_CaseInsensitiveDictionary.__getitem__s{{399;''rIcX|j}|j|=|j|=yr_r)rrRrs rG __delitem__z&_CaseInsensitiveDictionary.__delitem__s'   V $ KK rIct|tjstSt |t |k7ry|D]}||||k7syy)NFT)r_rr NotImplementedrrotherrRs rG__eq__z!_CaseInsensitiveDictionary.__eq__sP%-! ! t9E " CCyE#J& rINcV|jj|j|Sr_)rr~rKrrRdefaults rGr~z_CaseInsensitiveDictionary.gets{{syy{G44rIc|j}|jj|d|jj|g|i|Sr_)rKrpopr)rrRrrrs rGrz_CaseInsensitiveDictionary.popsB VT*t{{v7777rIcz|jj\}}|jj|}||fSr_)rpopitemrr)rrrfrds rGrz"_CaseInsensitiveDictionary.popitems8 ,,446  '%rIcl|jj|jjyr_)rclearrrs rGrz _CaseInsensitiveDictionary.clears$   rIcyr_r`rs rG setdefaultz%_CaseInsensitiveDictionary.setdefault" rIcyr_r`rs rGrz%_CaseInsensitiveDictionary.setdefault&rrIc|j}||vr|j|S||j|<||j|<|Sr_)rKrr)rrRrrs rGrz%_CaseInsensitiveDictionary.setdefault*sF $;;;v& &'*D  V $")DKK NrIct|tr|D]}||||j|<y|D] }||||< yr_)r_rrrfrs rGrz!_CaseInsensitiveDictionary.update3sQ e7 8 8-23ZU__S)* 8 '!#JS  'rIc<|j|jSr_)rrKrs rGrfz$_CaseInsensitiveDictionary.cased_key;s ,,rI)rrrr)rRr`rqr)rqrA)rqz Iterator[str])rqr`)rRr`rdrrqr)rRr`rqr)rRr`rqr)rrrqrr_)rRr`r Optional[Any]rqr)rRr`rrrrrqr)rqtuple[str, Any])rqr)rRr`rrrqr)rRr`rrrqr)rRr`rrrqr)rMapping[str, Any]rqr)rrrrrrrrrrrrr~rrrrrrrfr`rIrGrrrrs{+ * 1H$ ( 58      '-rIrrc0 ddlm}y#t$rYywxYw)zIs the C extension installed?r _cmessageTF)pymongor ImportErrorrs rGhas_cr?s% s  )rCr`rqztuple[str, int]r_)rRr`rSOptional[list]rqr )rcr`rdrrqr)rcr`rdrrqrA)rcr`rdrrq Optional[str])rcr`rdrrqr0)rcr`rdrrqr`)rcr`rdrrqUnion[int, str])rcrrdrrqr)rcr`rdrrqr)rcr`rdrrqOptional[float])rcrrdrrqr)rrrdrrqr!)rrrdrrqrA)rr`rdrrqzlist[dict[str, str]])rcr`rdrrqzdict[str, Union[bool, str]])rcr`rdrrqz2Union[Type[MutableMapping], Type[RawBSONDocument]])rcrrdrrqzOptional[TypeRegistry])rcr`rdrrqr)rcrrdrrqr)rcrrdrrqr)rcr`rdrrqr)rcrrdrrqzOptional[DriverInfo])rcrrdrrqzOptional[ServerApi])rcrrdrrqzOptional[Callable])rrrqr)rrrqr)rrrdr`rqr`)rrrdrrqzOptional[datetime.tzinfo])rcrrdrrqr)rcrrdrrqzOptional[DatetimeConversion])rcr`rdr`rqr`)rcr`rdrrqr)rRr`rWr4rXrrqr )T)rgrrvrrqzMutableMapping[str, Any])rrrr`rqr)rqr)r __future__rrru collectionsrrdifflibrtypingrrr r r r r rrrrr urllib.parserbsonr bson.binaryrbson.codec_optionsrrr bson.raw_bsonrpymongo.compression_supportrrpymongo.driver_inforpymongo.errorsrpymongo.monitoringrpymongo.read_concernrpymongo.read_preferencesr r!pymongo.server_apir"pymongo.write_concernr#r$r%pymongo.typingsr&r'__annotations__ MAX_BSON_SIZEMAX_MESSAGE_SIZEMIN_WIRE_VERSIONMAX_WIRE_VERSIONMAX_WRITE_BATCH_SIZEMIN_SUPPORTED_SERVER_VERSIONMIN_SUPPORTED_WIRE_VERSIONMAX_SUPPORTED_WIRE_VERSIONHEARTBEAT_FREQUENCYKILL_CURSOR_FREQUENCYEVENTS_QUEUE_FREQUENCYSERVER_SELECTION_TIMEOUTMIN_HEARTBEAT_INTERVALMIN_SRV_RESCAN_INTERVALCONNECT_TIMEOUT MAX_POOL_SIZE MIN_POOL_SIZEMAX_CONNECTINGr1r2r3LOCAL_THRESHOLD_MS RETRY_WRITES RETRY_READSr6r8_MAX_END_SESSIONSSRV_SERVICE_NAMESERVER_MONITORING_MODErtrHrLrU UNSPECIFIEDSTANDARD PYTHON_LEGACY JAVA_LEGACY CSHARP_LEGACYrrerkrprrrwrzr|rtrrrrrrrrrrrrrrr frozensetrrrrrrrrrrrrrrrrrrrrr rr5rBrLrMrNrroptnamealiasesaliascopyrOrPrSrTrYrRryrrWRITE_CONCERN_OPTIONSrr`rrrr`rIrGrs @"(%    &*MM)+-8,?(WW6"%k 2 ~2 # %   #'-&$(='%)M(  */.%7M6 22 "&11"++&44$00&44 + ]48e*  &2; ;;C4  * 4n 7*(   H ?"++J!K " E7/+'C ''C,'CA'C/ 'C ' 'C 8 'C2'C4'C)'C7'C-'C.'C8'C1'C/'C 3!'C"7#'C$)%'C&,''C(-)'C*.+'C, 8-'C.7/'C0 %1'C2"#=3'C4 :5'C6"7'C8.9'C:$%<;'C<"#=='C>-?'C@ 0A'CB/C'CD;E'CF&0#;M'C?'X*%- '0#*$I6>27 GC &.+/0''3A) 7 3 $ 50n ;7  !>?-335RGWR 1 1/H/Q %e ,RR 4M3Q3Q3S 0S - 456 ]a- ->-LY- -.20 0&*00fHJ ""Z[U"U"pU-S!9U-prI