+
    4O|jt  ã                  óv  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt Rt]! R	]R
]3,          R7      tR R ltRt^
t]]3R R llt ! R R4      tR R lt]P>                  R8¼  d   ]P@                  t ]PB                  t!R# R R lt R R lt!R# )z2Miscellaneous pieces that need to be synchronized.)ÚannotationsN)ÚAnyÚCallableÚTypeVarÚcast)Ú_csot)ÚMAX_ADAPTIVE_RETRIES)ÚOperationFailure)Ú_REAUTHENTICATION_REQUIRED_CODETÚF.)Úboundc               ó    € V ^8„  d   QhRRRR/# )é   Úfuncr   Úreturn© )Úformats   "ÚTC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\pymongo/synchronous/helpers.pyÚ__annotate__r   -   s   € ÷ ñ ˜ð ˜qñ ó    c                óh   a € \         P                  ! S 4      R  V 3R ll4       p\        \        V4      # )c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úargsr   Úkwargsr   r   )r   s   "r   r   Ú$_handle_reauth.<locals>.__annotate__/   s!   € ÷ ñ �Sð  Cð ¨Cñ r   c                 ó†  <€ VP                  R R4      p^ RIHp ^ RIHp  S! V / VB #   \
         d�   pT'       d   h TP                  \        8X  di   RpT  F7  p\        Yt4      '       d   Tp M#\        Ys4      '       g   K+  TP                  p M	  T'       d   TP                  RR7       Mh S! T / TB u Rp?# h Rp?ii ; i)Ú	no_reauthF)Ú_BulkWriteContext)Ú
ConnectionNT)Úreauthenticate)ÚpopÚpymongo.messager   Úpymongo.synchronous.poolr   r	   Úcoder
   Ú
isinstanceÚconnÚauthenticate)	r   r   r   r   r   Úexcr%   Úargr   s	   *,      €r   ÚinnerÚ_handle_reauth.<locals>.inner.   s¸   ø€ à—J‘J˜{¨EÓ2ˆ	Ý5Ý7ð	Ù˜Ð( Ñ(Ð(øÜô 	ßØØ�x‰xÔ:Ô:ð �Û�CÜ! #×2Ò2Ø"˜ÙÜ! #×9Ô9Ø"Ÿx™x˜Ùñ  ÷ Ø×%Ñ%°TÐ%Õ:àÙ˜TÐ, VÑ,Õ,Øûð)	ús-   ¡) ©C ´AB;ÂB;ÂB;Â4C Â:B;Â;C )Ú	functoolsÚwrapsr   r   )r   r)   s   f r   Ú_handle_reauthr-   -   s,   ø€ Ü‡_‚_�TÓ÷ó ðô: ”�5‹>Ðr   gš™™™™™¹?c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   ÚattemptÚintÚinitial_delayÚfloatÚ	max_delayr   r   )r   s   "r   r   r   S   s2   € ÷ Añ AØðAØ!&ðAØFKðAà
ñAr   c                ón   € \         P                   ! 4       pV\        V^V ,          ,          V4      ,          # )r   )ÚrandomÚmin)r/   r1   r3   Újitters   &&& r   Ú_backoffr8   S   s*   € ô �]Š]‹_€FØ”C˜¨¨G­Õ4°iÓ@Õ@Ð@r   c                  óH   € ] tR t^ZtRt]]]3R R lltR R lt	R R lt
RtR	# )
Ú_RetryPolicyz>A retry limiter that performs exponential backoff with jitter.c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úattemptsr0   Úbackoff_initialr2   Úbackoff_maxr   )r   s   "r   r   Ú_RetryPolicy.__annotate__]   s(   € ÷ 'ñ 'àð'ð ð'ð ñ	'r   c                	ó*   € Wn         W n        W0n        R # ©N©r<   r=   r>   )Úselfr<   r=   r>   s   &&&&r   Ú__init__Ú_RetryPolicy.__init__]   s   € ð !ŒØ.ÔØ&Ör   c               ó    € V ^8„  d   QhRRRR/# )r   r/   r0   r   r2   r   )r   s   "r   r   r?   g   s   € ÷ Uñ U˜sð U uñ Ur   c                óf   € \        \        ^ V^,
          4      V P                  V P                  4      # )z2Return the backoff duration for the given attempt.)r8   Úmaxr=   r>   )rC   r/   s   &&r   ÚbackoffÚ_RetryPolicy.backoffg   s(   € äœ˜A˜w¨�{Ó+¨T×-AÑ-AÀ4×CSÑCSÓTÐTr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r/   r0   Údelayr2   r   Úboolr   )r   s   "r   r   r?   k   s!   € ÷ 	ñ 	 Cð 	°ð 	¸$ñ 	r   c                óÌ   € WP                   8”  d   R# \        P                  ! 4       '       d7   \        P                  ! 4       V,           \        P
                  ! 4       8”  d   R# R# )z[Return if we have retry attempts remaining and the next backoff would not exceed a timeout.FT)r<   r   Úget_timeoutÚtimeÚ	monotonicÚget_deadline)rC   r/   rL   s   &&&r   Úshould_retryÚ_RetryPolicy.should_retryk   sA   € à—]‘]Ô"Ùä×Ò×ÒÜ�~Š~Ó %Õ'¬%×*<Ò*<Ó*>Ô>Ùár   rB   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú_BACKOFF_INITIALÚ_BACKOFF_MAXrD   rI   rS   Ú__static_attributes__r   r   r   r:   r:   Z   s%   † ÙHð -Ø!1Ø)÷	'õU÷	ñ 	r   r:   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úhostr   Úportr   r   zlist[tuple[socket.AddressFamily, socket.SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]]r   )r   s   "r   r   r   w   s.   € ÷ 8ñ 8Ø
ð8Øð8Ø$'ð8ðñ8r   c                ó˜   € \         '       g)   \        P                  ! 4       pVP                  ! W3/ VB # \        P                  ! W3/ VB # rA   )Ú_IS_SYNCÚasyncioÚget_running_loopÚgetaddrinfoÚsocket)r^   r_   r   Úloops   &&, r   Ú_getaddrinforg   w   sC   € ÷ ‹8Ü×'Ò'Ó)ˆØ×Ò Ñ5¨fÑ5Ð5ä×!Ò! $Ñ7°Ñ7Ð7r   c               ó    € V ^8„  d   QhRRRR/# ©r   Úclsr   r   r   )r   s   "r   r   r   Ž   ó   € ÷ ñ �#ð ˜#ñ r   c                ó"   € V P                  4       # ©zhCompatibility function until we drop 3.9 support: https://docs.python.org/3/library/functions.html#next.)Ú__next__©rj   s   &r   Únextrp   Ž   ó   € à�|‰|‹~Ðr   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   r   ’   rk   r   c                ó"   € V P                  4       # rm   )Ú__iter__ro   s   &r   Úiterru   ’   rq   r   )é   é
   )"rY   Ú
__future__r   rb   Úbuiltinsr+   r5   re   ÚsysrP   Útypingr   r   r   r   Úpymongor   Úpymongo.commonr   Úpymongo.errorsr	   Úpymongo.helpers_sharedr
   ra   r   r-   rZ   r[   r8   r:   rg   Úversion_inforp   ru   r   r   r   Ú<module>r�      s¶   ðñ 9Ý "ã Û Û Û Û Û 
Û ÷ó õ Ý /õõ Cà€ñ ˆC�x  S Õ)Ô*€õðD Ð Ø€ð *:Èl÷A÷ñ õ:8ð$ ×Ñ�wÔØ�=‰=€DØ�=‰=‚Dõ÷r   