+
    8i                    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   "Y/var/www/html/photoedit/myenv/lib/python3.14/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    JJ{E2	57	((( 	xx:: C!#22"!#99"xx   %%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4i@@@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(    Aw{+T-A-A4CSCS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'')5f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 CxS)*D   *:lA :8$ w==D==Dr   