ó
    Ð]j¨W  ã            
      ó*  • % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJrJr  S SKJr  S SKJr  S SKJrJrJr  S SKrS SKJr  S SKJr  S S	KJrJr  S S
KJr  S SK J!r!  S SK"J#r#  S SK$J%r%  S SK&J'r'  \S   r(\S   r)\S   r*\S   r+\S   r,\RZ                  \R\                  \R^                  \R`                  \Rb                  \S.r2S\3S'   SSSS.r4S\3S'   SSSSSS.r5S \3S!'   S"S"S#S.r6S\3S$'   SS%S&S'S.r7S \3S('   / SQr8S)\3S*'   \	Rr                  r:S+\3S,'   S-S.S/S0SS1.S2S3S4.S5.S6S7S8S9.S:S7S;S9.S5.S6/S<S.S=.S>S<0S:/S<S.S=.S?.S@.r;SA\3SB'   \Rx                  " SC5      r=                SJSD jr>SKSE jr?SLSF jr@SMSG jrA " SH SI5      rBg)Né    )ÚannotationsN)Ú	AwaitableÚCallable)ÚRawConfigParser)ÚPath)ÚIOÚAnyÚLiteral)Úiscoroutinefunction)ÚASGIApplication)ÚImportFromStringErrorÚimport_from_string)ÚTRACE_LOG_LEVEL)ÚASGI2Middleware)ÚMessageLoggerMiddleware)ÚProxyHeadersMiddleware)ÚWSGIMiddleware)ÚautoÚh11Ú	httptools)r   ÚnoneÚ
websocketszwebsockets-sansioÚwsproto)r   ÚonÚoff)r   r   ÚasyncioÚuvloop)r   Úasgi3Úasgi2Úwsgi)ÚcriticalÚerrorÚwarningÚinfoÚdebugÚtracezdict[str, int]Ú
LOG_LEVELSz,uvicorn.protocols.http.auto:AutoHTTPProtocolz+uvicorn.protocols.http.h11_impl:H11Protocolz7uvicorn.protocols.http.httptools_impl:HttpToolsProtocolzdict[str, str]ÚHTTP_PROTOCOLSz8uvicorn.protocols.websockets.auto:AutoWebSocketsProtocolz>uvicorn.protocols.websockets.websockets_impl:WebSocketProtocolzLuvicorn.protocols.websockets.websockets_sansio_impl:WebSocketsSansIOProtocolz4uvicorn.protocols.websockets.wsproto_impl:WSProtocolzdict[str, str | None]ÚWS_PROTOCOLSzuvicorn.lifespan.on:LifespanOnz uvicorn.lifespan.off:LifespanOffÚLIFESPANz$uvicorn.loops.auto:auto_loop_factoryz*uvicorn.loops.asyncio:asyncio_loop_factoryz(uvicorn.loops.uvloop:uvloop_loop_factoryÚLOOP_FACTORIESzlist[InterfaceType]Ú
INTERFACESÚintÚSSL_PROTOCOL_VERSIONé   Fz uvicorn.logging.DefaultFormatterz%(levelprefix)s %(message)s)ú()ÚfmtÚ
use_colorszuvicorn.logging.AccessFormatterzD%(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s)r0   r1   )ÚdefaultÚaccessr3   zlogging.StreamHandlerzext://sys.stderr)Ú	formatterÚclassÚstreamr4   zext://sys.stdoutÚINFO)ÚhandlersÚlevelÚ	propagater:   )Úuvicornúuvicorn.errorúuvicorn.access)ÚversionÚdisable_existing_loggersÚ
formattersr9   Úloggerszdict[str, Any]ÚLOGGING_CONFIGr=   c                ó  ^• [         R                  " U5      nT(       a  U4S jOS nUR                  XU5        [         R                  " U5      Ul        U(       a  UR                  U5        U(       a  UR                  U5        U$ )Nc                 ó   >• T $ ©N© )Úpasswords   €ÚK/home/mande/repo/quber/.venv/lib/python3.13/site-packages/uvicorn/config.pyÚ<lambda>Ú$create_ssl_context.<locals>.<lambda>s   s   ø€ ™Hó    )ÚsslÚ
SSLContextÚload_cert_chainÚ
VerifyModeÚverify_modeÚload_verify_locationsÚset_ciphers)	ÚcertfileÚkeyfilerH   Ússl_versionÚ	cert_reqsÚca_certsÚciphersÚctxÚget_passwords	     `      rI   Úcreate_ssl_contextr\   i   sb   ø€ ô �.Š.˜Ó
%€CÞ)1Õ$°t€LØ×Ñ˜¨<Ô8Ü—n’n YÓ/€C„OÞØ×!Ñ! (Ô+ÞØ�‰˜Ô Ø€JrL   c                óŽ   •  U R                  5       (       d  U R                  5       n U R                  5       $ ! [         a     gf = f)NF)Úis_absoluteÚresolveÚis_dirÚOSError)Úpaths    rI   r`   r`   }   s?   € ðØ×Ñ×!Ñ!Ø—<‘<“>ˆDØ�{‰{‹}ÐøÜó Ùðús   ‚47 ·
AÁAc           	     ó\  • [        [        [        [        UR	                  5       5      5      5      nU R	                  5       n[        R
                  " 5       nU  HŒ  nUS:X  a  M  UR                  U5        [        [        U5      5      (       a  UR                  [        U5      5        MQ  UR                  U5       H&  n[        U5      (       d  M  UR                  U5        M(     MŽ     [        [        U5      5      n[        [        [        U5      5      n[        [        S U5      5      n[        U Vs1 s H  n[        U5      (       d  M  UiM     sn5      n/ n[        [        U5      5       Ht  n	[        U	S-   [        U5      5       HU  n
X)   X*   R                  ;   a  UR                  X*   5        M,  X*   X)   R                  ;   d  MB  UR                  X)   5        MW     Mv     [        [        U5      R                  [        U5      5      5      n[        [        U5      5      U4$ s  snf )Nz.*c                ó"   • U R                  5       $ rF   )r_   )Úxs    rI   rJ   Ú)resolve_reload_patterns.<locals>.<lambda>š   s
   €  Q§Y¡Y¤[rL   r/   )ÚlistÚsetÚmapr   ÚcopyÚcwdÚappendr`   ÚglobÚrangeÚlenÚparentsÚ
difference)Úpatterns_listÚdirectories_listÚdirectoriesÚpatternsÚcurrent_working_directoryÚpatternÚmatchÚreload_pathÚchildrenÚjÚks              rI   Úresolve_reload_patternsr}   †   s­  € Ü"¤3¤s¬4Ð1A×1FÑ1FÓ1HÓ'IÓ#JÓK€KØ'×,Ñ,Ó.€Hä $§¢£
ÐÛ ˆð �d‹?ÙØ�‰˜Ô Ü”$�w“-× Ñ Ø×Ñœt G›}Ö-à2×7Ñ7¸Ö@�Ü˜%—=“=Ø×&Ñ& uÖ-ó Añ !ô ”s˜;Ó'Ó(€KÜ”sœ4 Ó-Ó.€KÜ”sÑ0°+Ó>Ó?€KÜ±{ÓZ²{¨ÄfÈ[×FYŸ±{ÑZÓ[€Kà€HÜ”3�{Ó#Ö$ˆÜ�q˜1‘uœc +Ó.Ö/ˆAØ‰~ ¡×!7Ñ!7Ó7Ø—‘ ¡Ö/Ø‘ ;¡>×#9Ñ#9Õ9Ø—‘ ¡Ö/ó	 0ñ %ô ”s˜;Ó'×2Ñ2´3°x³=ÓAÓB€Kä”�H“Ó Ð+Ð+ùò [s   Ä4H)ÅH)c                ód   • U c  / $ [        U [        5      (       a  U /$ [        [        U 5      5      $ rF   )Ú
isinstanceÚstrrg   rh   )Údirss    rI   Ú_normalize_dirsr‚   ª   s.   € Ø�|Øˆ	Ü�$œ×ÑØˆvˆÜ”�D“	‹?ÐrL   c            2      óæ  • \ rS rSrSSSSSSSSSSSS	SS\SS	SSS
SSSSSS	S	S	SSSSSSSSSSSSSS\\R                  SSSS
SS
42                                                                                                     SS jjr\	SS j5       r
\	SS j5       r\	SS j5       rS S jrS S jrS S jrS!S jrS"S jr\	SS j5       rSrg)#ÚConfigé²   ú	127.0.0.1i@  Nr   i   é    g      4@TFg      Ð?Ú r   i   é   é   ÚTLSv1c4                ó\  • Xl         X l        X0l        X@l        XPl        X`l        Xpl        X€l        X�l        X l	        X°l
        XÀl        XÐl        Xàl        UU l        UU l        UU l        UU l        UU l        UU l        UU l        U=(       d    SU l        UU l        UU l        UU l        UU l        U U l        U!U l        U"U l        U#U l        U$U l        U%U l        U&U l         U'U l!        U(U l"        U)U l#        U*U l$        U+U l%        U,U l&        U-U l'        U.U l(        U/U l)        U0=(       d    / U l*        / U l+        U1U l,        U2U l-        U3U l.        SU l/        U Ra                  5         / U l1        / U l2        / U l3        / U l4        U(       d  U(       d  U(       a&  U Rj                  (       d  [l        Ro                  S5        U Rj                  (       Ga†  [q        U5      n[q        U5      n[q        U5      n[s        UU5      u  U l3        U l1        [s        U/ 5      u  U l4        U l2        U Rb                  Ru                  5       n4U Rd                   H@  n5U4 H7  n6U5U6:X  d  U5U6Rv                  ;   d  M   U Rb                  Ry                  U65        M9     MB     U Rh                   H0  n7U7U Rf                  ;   d  M  U Rf                  Ry                  U75        M2     U Rb                  (       d8  U(       a  [l        Ro                  SU5        [|        R~                  " 5       /U l1        [l        R�                  S[ƒ        […        [‡        [ˆ        U Rb                  5      5      5      5        Ub"  SSKEJFn8  [l        R�                  SU5        U8" US	9  Uc5  S
[Ž        R�                  ;   a!  [“        [Ž        R�                  S
   5      U l        U   Uc&  [Ž        R�                  R•                  SS5      U lK        OUU lK        U R&                  (       a'  U R*                  S:”  a  [l        Ro                  S5        g g g ! [z         a     GMÞ  f = f)Nr/   FzcCurrent configuration will not reload as not all conditions are met, please refer to documentation.zeProvided reload directories %s did not contain valid directories, watching current working directory.z/Will watch for changes in these directories: %sr   )Úload_dotenvzLoading environment from '%s')Údotenv_pathÚWEB_CONCURRENCYÚFORWARDED_ALLOW_IPSr†   z4"workers" flag is ignored when reloading is enabled.)LÚappÚhostÚportÚudsÚfdÚloopÚhttpÚwsÚws_max_sizeÚws_max_queueÚws_ping_intervalÚws_ping_timeoutÚws_per_message_deflateÚlifespanÚ
log_configÚ	log_levelÚ
access_logr2   Ú	interfaceÚreloadÚreload_delayÚworkersÚproxy_headersÚserver_headerÚdate_headerÚ	root_pathÚlimit_concurrencyÚlimit_max_requestsÚlimit_max_requests_jitterÚbacklogÚtimeout_keep_aliveÚtimeout_notifyÚtimeout_graceful_shutdownÚtimeout_worker_healthcheckÚcallback_notifyÚssl_keyfileÚssl_certfileÚssl_keyfile_passwordrV   Ússl_cert_reqsÚssl_ca_certsÚssl_ciphersÚheadersÚencoded_headersÚfactoryÚh11_max_incomplete_event_sizeÚreset_contextvarsÚloadedÚconfigure_loggingÚreload_dirsÚreload_dirs_excludesÚreload_includesÚreload_excludesÚshould_reloadÚloggerr#   r‚   r}   rj   rp   ÚremoveÚ
ValueErrorr   rk   r$   Úsortedrg   ri   r€   Údotenvr�   ÚosÚenvironr-   ÚgetÚforwarded_allow_ips)9Úselfr‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   Úenv_filerŸ   r    r¡   r2   r¢   r£   rÀ   r¤   rÂ   rÃ   r¥   r¦   r§   r¨   rÍ   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   rµ   rV   r¶   r·   r¸   r¹   r»   r¼   r½   Úreload_dirs_tmpÚ	directoryÚreload_directoryrw   r�   s9                                                            rI   Ú__init__ÚConfig.__init__³   s¢  € ðl ŒØŒ	ØŒ	ØŒØŒØŒ	ØŒ	ØŒØ&ÔØ(ÔØ 0ÔØ.ÔØ&<Ô#Ø ŒØ$ˆŒØ"ˆŒØ$ˆŒØ$ˆŒØ"ˆŒØˆŒØ(ˆÔØ—| !ˆŒØ*ˆÔØ*ˆÔØ&ˆÔØ"ˆŒØ!2ˆÔØ"4ˆÔØ)BˆÔ&ØˆŒØ"4ˆÔØ,ˆÔØ)BˆÔ&Ø*DˆÔ'Ø.ˆÔØ&ˆÔØ(ˆÔØ$8ˆÔ!Ø&ˆÔØ*ˆÔØ(ˆÔØ&ˆÔØ.5¯m¸ˆŒØ:<ˆÔØˆŒØ-JˆÔ*Ø!2ˆÔàˆŒØ×ÑÔ à')ˆÔØ02ˆÔ!Ø*,ˆÔØ*,ˆÔæž?®oÀt×GY×GYÜ�N‰NØuôð ××ÐÜ)¨+Ó6ˆKÜ-¨oÓ>ˆOÜ-¨oÓ>ˆOä5LÈ_Ð^iÓ5jÑ2ˆDÔ  $Ô"2ä>UÐVeÐgiÓ>jÑ;ˆDÔ  $Ô";à"×.Ñ.×3Ñ3Ó5ˆOà!×6Ô6�	Û(7Ð$Ø Ð$4Ó4¸	ÐEU×E]ÑE]Õ8]ð!Ø ×,Ñ,×3Ñ3Ð4DÖEó )8ñ 7ð  ×/Ô/�Ø˜d×2Ñ2Õ2Ø×(Ñ(×/Ñ/°Ö8ñ 0ð ×#×#ÞÜ—N‘NðMà#ôô
 %)§H¢H£J <�Ô ä�K‰KØAÜ”tœC¤ T×%5Ñ%5Ó6Ó7Ó8ôð
 ÑÝ*ä�K‰KÐ7¸ÔBÙ HÒ-à‰?Ð0´B·J±JÓ>ÜœrŸz™zÐ*;Ñ<Ó=ˆDŒLáØÑ&Ü')§z¡z§~¡~Ð6KÈ[Ó'YˆDÕ$à':ˆDÔ$à�;�;˜4Ÿ<™<¨!Ó+Ü�N‰NÐQÕRð ,ˆ;øôI  *ó !Û ð!ús   É(PÐ
P+Ð*P+c                ó*   • SSSS.nXR                      $ )Nz2.0z3.0)r   r   r    )r¢   )rÎ   Úmappings     rI   Úasgi_versionÚConfig.asgi_version]  s#   € ð ØØñ5
ˆð
 —~‘~Ñ&Ð&rL   c                óR   • [        U R                  =(       d    U R                  5      $ rF   )Úboolr³   r´   ©rÎ   s    rI   Úis_sslÚConfig.is_sslf  s   € ä�D×$Ñ$×9¨×(9Ñ(9Ó:Ð:rL   c                óX   • [        U R                  =(       d    U R                  S:„  5      $ )Nr/   )rÚ   r£   r¥   rÛ   s    rI   Úuse_subprocessÚConfig.use_subprocessj  s   € ä�D—K‘K×3 4§<¡<°!Ñ#3Ó4Ð4rL   c                ó`  • [         R                  " [        S5        U R                  Gb4  [	        U R                  [
        R                  5      (       a%  [
        R                  " U R                  5      U l        [	        U R                  [        5      (       ay  U R                  S;   a>  U R                  U R                  S   S   S'   U R                  U R                  S   S   S'   [         R                  R                  U R                  5        GON[	        U R                  [        5      (       at  U R                  R                  S5      (       aT  [        U R                  5       n[        R                   " U5      n[         R                  R                  U5        S S S 5        O»[	        U R                  [        5      (       at  U R                  R                  S5      (       aT   S	S Kn[        U R                  5       nUR'                  U5      n[         R                  R                  U5        S S S 5        O([         R                  R)                  U R                  SS9  U R*                  b¼  [	        U R*                  [        5      (       a"  [,        U R*                  R/                  5          nOU R*                  n[         R0                  " S5      R3                  U5        [         R0                  " S5      R3                  U5        [         R0                  " S5      R3                  U5        U R4                  SL a7  / [         R0                  " S5      l        S[         R0                  " S5      l        g g ! , (       d  f       GN= f! [$         a  n[%        S
5      UeS nAff = f! , (       d  f       GNO= f)NÚTRACE)TFrA   r3   r2   r4   z.json)z.yamlz.ymlr   zVInstall the PyYAML package or uvicorn[standard] to use `--log-config` with YAML files.F)r@   r=   r>   zuvicorn.asgi)ÚloggingÚaddLevelNamer   rŸ   r   rÊ   ÚPathLikeÚfspathÚdictr2   ÚconfigÚ
dictConfigr€   ÚendswithÚopenÚjsonÚloadÚyamlÚImportErrorÚ	safe_loadÚ
fileConfigr    r'   ÚlowerÚ	getLoggerÚsetLevelr¡   r9   r;   )rÎ   ÚfileÚloaded_configrî   Úer    s         rI   r¿   ÚConfig.configure_loggingn  s†  € Ü×Òœ_¨gÔ6à�?‰?Ò&Ü˜$Ÿ/™/¬2¯;©;×7Ñ7Ü"$§)¢)¨D¯O©OÓ"<�”ä˜$Ÿ/™/¬4×0Ñ0Ø—?‘? mÓ3ØMQÏ_É_�D—O‘O LÑ1°)Ñ<¸\ÑJØLPÏOÉO�D—O‘O LÑ1°(Ñ;¸LÑIÜ—‘×)Ñ)¨$¯/©/Ö:Ü˜DŸO™O¬S×1Ñ1°d·o±o×6NÑ6NÈw×6WÑ6WÜ˜$Ÿ/™/Ô*¨dÜ$(§I¢I¨d£O�MÜ—N‘N×-Ñ-¨mÔ<÷ +Ð*ô ˜DŸO™O¬S×1Ñ1°d·o±o×6NÑ6NÐO`×6aÑ6aðÛô ˜$Ÿ/™/Ô*¨dØ$(§N¡N°4Ó$8�MÜ—N‘N×-Ñ-¨mÔ<÷ +Ð*ô —‘×)Ñ)¨$¯/©/ÐTYÐ)ÑZà�>‰>Ñ%Ü˜$Ÿ.™.¬#×.Ñ.Ü& t§~¡~×';Ñ';Ó'=Ñ>‘	à ŸN™N�	Ü×Ò˜oÓ.×7Ñ7¸	ÔBÜ×ÒÐ.Ó/×8Ñ8¸ÔCÜ×Ò˜nÓ-×6Ñ6°yÔAØ�?‰?˜eÒ#Ø;=ŒG×ÒÐ.Ó/Ô8Ø<AŒG×ÒÐ.Ó/Õ9ð $÷7 +Ö*ûô #ó Ü%Øpóàðûðú÷
 +Ö*ús0   Å$6M.Ç#N  Ç<1NÍ.
M=Î 
NÎ
NÎNÎ
N-c           
     ó	  • U R                   (       a   eU R                  (       an  U R                  (       d   e[        U R                  U R                  U R
                  U R                  U R                  U R                  U R                  S9U l
        OS U l
        U R                   VVs/ s H5  u  pUR                  5       R                  S5      UR                  S5      4PM7     nnnS[        U5      ;  a  U R                  (       a  S/U-   OUU l        [#        U R$                  [&        5      (       a:  [)        [*        R-                  U R$                  U R$                  5      5      nX@l        OU R$                  U l        [#        U R0                  [&        5      (       a:  [)        [2        R-                  U R0                  U R0                  5      5      nXPl        OU R0                  U l        [)        [6        U R8                     5      U l         [)        U R<                  5      U l         U R?                  5       U l        U RJ                  (       d  [B        RM                  S5        U RP                  S	:X  a©  [R        RT                  " U R>                  5      (       a  [W        U R>                  S
5      nO][R        RX                  " U R>                  5      (       a  [[        U R>                  5      nO"[]        U R>                  SS 5      n[[        U5      nU(       a  SOSU l(        U RP                  S:X  a"  [_        U R>                  5      U l        S U l        O*U RP                  S:X  a  [a        U R>                  5      U l        [B        Rc                  5       [d        ::  a  [g        U R>                  5      U l        U Rh                  (       a#  [k        U R>                  U Rl                  S9U l        SU l         g s  snnf ! [@         a9  n[B        RE                  SU-  5        [F        RH                  " S5         S nAGNS nAff = f! [N         aH  nU RJ                  (       a,  [B        RE                  SU5        [F        RH                  " S5         S nAGN S nAff = f)N)rU   rT   rH   rV   rW   rX   rY   Úlatin1ó   server)rû   s   uvicornzError loading ASGI app. %sr/   z_ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.z"Error loading ASGI app factory: %sr   Ú	__await__Ú__call__r   r   r    )Útrusted_hostsT)7r¾   rÜ   r´   r\   r³   rµ   rV   r¶   r·   r¸   rM   r¹   rò   Úencoderç   r§   rº   r   r—   r€   r   r(   rÌ   Úhttp_protocol_classr˜   r)   Úws_protocol_classr*   rž   Úlifespan_classr‘   Ú
loaded_appr   rÅ   r"   ÚsysÚexitr»   r#   Ú	TypeErrorr¢   ÚinspectÚisclassÚhasattrÚ
isfunctionr   Úgetattrr   r   ÚgetEffectiveLevelr   r   r¦   r   rÍ   )	rÎ   ÚkeyÚvaluerº   r   r  ÚexcÚ
use_asgi_3Úcalls	            rI   rí   ÚConfig.loadš  s7  € Ø—;—;Ðˆà�;�;Ø×$×$Ð$Ð$Ü.@Ø×(Ñ(Ø×*Ñ*Ø×2Ñ2Ø ×,Ñ,Ø×,Ñ,Ø×*Ñ*Ø×(Ñ(ñ/ˆD�Hð ˆDŒHàdh×dpÒdpÔqÒdpÑV`ÐVY˜CŸI™I›K×.Ñ.¨xÓ8¸%¿,¹,ÀxÓ:PÓQÑdpˆÑqð ¤ _Ó 5Ó5¸$×:L×:Lð %Ð%¨Ò7à ð 	Ôô �d—i‘i¤×%Ñ%Ü"4´^×5GÑ5GÈÏ	É	ÐSW×S\ÑS\Ó5]Ó"^ÐØ?RÕ$à'+§y¡yˆDÔ$ä�d—g‘gœs×#Ñ#Ü 2´<×3CÑ3CÀDÇGÁGÈTÏWÉWÓ3UÓ VÐØDUÕ"à%)§W¡WˆDÔ"ä0´¸$¿-¹-Ñ1HÓIˆÔð	Ü0°·±Ó:ˆDŒOð

	Ø"Ÿo™oÓ/ˆDŒOð —<—<Ü—‘Øuôð �>‰>˜VÓ#Ü�Š˜tŸ™×/Ñ/Ü$ T§_¡_°kÓB‘
Ü×#Ò# D§O¡O×4Ñ4Ü0°·±ÓA‘
ä˜tŸ™°
¸DÓA�Ü0°Ó6�
Þ(2™W¸ˆDŒNà�>‰>˜VÓ#Ü,¨T¯_©_Ó=ˆDŒOØ%)ˆDÕ"Ø�^‰^˜wÓ&Ü-¨d¯o©oÓ>ˆDŒOä×#Ñ#Ó%¬Ó8Ü5°d·o±oÓFˆDŒOØ××Ü4°T·_±_ÐTX×TlÑTlÑmˆDŒOàˆ�ùóy røô. %ó 	Ü�L‰LÐ5¸Ñ;Ô<Ü�HŠH�Q�KŠKûð	ûô ó 	Ø�|�|Ü—‘ÐAÀ3ÔGÜ—’˜”ÿùð	ús6   Â)<O(ÈO. È&P4 Ï.
P1Ï8.P,Ð,P1Ð4
RÐ>=RÒRc                ó   • [        S5      e)Na  The `setup_event_loop` method was replaced by `get_loop_factory` in uvicorn 0.36.0.
None of those methods are supposed to be used directly. If you are doing it, please let me know here: https://github.com/Kludex/uvicorn/discussions/2706. Thank you, and sorry for the inconvenience.)ÚAttributeErrorrÛ   s    rI   Úsetup_event_loopÚConfig.setup_event_loopé  s   € Üðnó
ð 	
rL   c                óB  • U R                   [        ;   a  [        [        U R                      5      nO [        U R                   5      $ Wc  g U" U R                  S9$ ! [         a8  n[        R                  SU-  5        [        R                  " S5         S nANQS nAff = f)Nz,Error loading custom loop setup function. %sr/   )rß   )	r–   r+   r   r   rÅ   r"   r  r  rß   )rÎ   Úloop_factoryr  s      rI   Úget_loop_factoryÚConfig.get_loop_factoryð  s…   € Ø�9‰9œÓ&Ü6HÌÐX\×XaÑXaÑIbÓ6c‰LðÜ)¨$¯)©)Ó4Ð4ð ÑØÙ¨4×+>Ñ+>Ñ?Ð?øô )ó Ü—‘ÐKÈcÑQÔRÜ—’˜—‘ûðús   ³A Á
BÁ&.BÂBc                óÞ  • U R                   (       a¢  U R                   n[        R                  " [        R                  [        R                  5      n UR	                  U5        Sn[
        R                  " U R                   U5        SnSnS[        R                  " USS9-   S-   nU R                   /nGO†U R                  (       ap  [        R                  " U R                  [        R                  [        R                  5      nS	nSn	S[        R                  " U	SS9-   S-   nUR!                  5       /nGO[        R"                  n
S
nU R$                  (       a"  SU R$                  ;   a  [        R&                  n
Sn[        R                  " U
S9nUR)                  [        R*                  [        R,                  S5         UR	                  U R$                  U R.                  45        SU S3nS[        R                  " USS9-   S-   nU R0                  (       a  SOSnXÀR$                  UR!                  5       S   /n[        R2                  " U/UQ7SSU006  UR5                  S5        U$ ! [         a6  n[        R                  U5        [        R                  " S5         S nAGNS nAff = f! [         a6  n[        R                  U5        [        R                  " S5         S nAGNS nAff = f)Ni¶  r/   z8Uvicorn running on unix socket %s (Press CTRL+C to quit)z%szUvicorn running on T)Úboldz (Press CTRL+C to quit)z3Uvicorn running on socket %s (Press CTRL+C to quit)z
%s://%s:%dÚ:z%s://[%s]:%d)ÚfamilyÚhttpsr—   ÚextraÚcolor_message)r”   ÚsocketÚAF_UNIXÚSOCK_STREAMÚbindrÊ   Úchmodra   rÅ   r"   r  r  ÚclickÚstyler•   ÚfromfdÚgetsocknameÚAF_INETr’   ÚAF_INET6Ú
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRr“   rÜ   r$   Úset_inheritable)rÎ   rb   ÚsockÚ	uds_permsr  ÚmessageÚsock_name_formatr!  Úlogger_argsÚfd_name_formatr  Úaddr_formatÚprotocol_names                rI   Úbind_socketÚConfig.bind_socketý  s7  € à�8�8Ø—8‘8ˆDÜ—=’=¤§¡´×1CÑ1CÓDˆDðØ—	‘	˜$”Ø!�	Ü—’˜Ÿ™ 9Ô-ð
 QˆGØ#ÐØ1´E·K²KÐ@PÐW[Ñ4\Ñ\Ð_xÑxˆMØŸ8™8˜*ŠKØ�W�WÜ—=’= §¡¬&¯.©.¼&×:LÑ:LÓMˆDØKˆGØ!ˆNØ1´E·K²KÀÐUYÑ4ZÑZÐ]vÑvˆMØ×+Ñ+Ó-Ð.ŠKä—^‘^ˆFØ&ˆKà�y�y˜S D§I¡IÓ-äŸ™�Ø,�ä—=’=¨Ñ/ˆDØ�O‰OœF×-Ñ-¬v×/BÑ/BÀAÔFðØ—	‘	˜4Ÿ9™9 d§i¡iÐ0Ô1ð
 ,¨K¨=Ð8OÐPˆGØ1´E·K²KÀÐRVÑ4WÑWÐZsÑsˆMØ'+§{§{™G¸ˆMØ(¯)©)°T×5EÑ5EÓ5GÈÑ5JÐKˆKÜ�Š�GÐR˜kÒR°/À=Ð1QÒRØ×Ñ˜TÔ"ØˆøôK ó Ü—‘˜SÔ!Ü—’˜—’ûðûô6 ó Ü—‘˜SÔ!Ü—’˜—’ûðús0   Á4I) Æ>'J, É)
J)É3+J$Ê$J)Ê,
K,Ê6+K'Ë'K,c                ó\   • [        U R                  [        5      =(       a    U R                  $ rF   )r   r‘   r€   r£   rÛ   s    rI   rÄ   ÚConfig.should_reload-  s   € ä˜$Ÿ(™(¤CÓ(×8¨T¯[©[Ð8rL   ):r¡   r‘   r­   r²   r¨   rº   r»   r•   rÍ   r¼   r¹   r’   r—   r   r¢   rž   r  rª   r«   r¬   r¾   r  rŸ   r    r–   r“   r¦   r£   r¤   rÀ   rÁ   rÃ   rÂ   r½   r©   r§   rM   r·   r¶   r´   r¸   r³   rµ   rV   r°   r®   r¯   r±   r”   r2   r¥   r˜   rš   r™   r�   r›   rœ   r  )fr‘   z*ASGIApplication | Callable[..., Any] | strr’   r€   r“   r-   r”   ú
str | Noner•   ú
int | Noner–   zLoopFactoryType | strr—   z/type[asyncio.Protocol] | HTTPProtocolType | strr˜   z-type[asyncio.Protocol] | WSProtocolType | strr™   r-   rš   r-   r›   úfloat | Nonerœ   r?  r�   rÚ   rž   ÚLifespanTyperÏ   ústr | os.PathLike[str] | NonerŸ   zJdict[str, Any] | str | os.PathLike[str] | RawConfigParser | IO[Any] | Noner    zstr | int | Noner¡   rÚ   r2   zbool | Noner¢   ÚInterfaceTyper£   rÚ   rÀ   úlist[str] | str | Noner¤   ÚfloatrÂ   rC  rÃ   rC  r¥   r>  r¦   rÚ   r§   rÚ   r¨   rÚ   rÍ   rC  r©   r€   rª   r>  r«   r>  r¬   r-   r­   r-   r®   r-   r¯   r-   r°   r>  r±   r-   r²   z%Callable[..., Awaitable[None]] | Noner³   rA  r´   rA  rµ   r=  rV   r-   r¶   r-   r·   rA  r¸   r€   r¹   zlist[tuple[str, str]] | Noner»   rÚ   r¼   r>  r½   rÚ   )ÚreturnzLiteral['2.0', '3.0'])rE  rÚ   )rE  ÚNone)rE  z.Callable[[], asyncio.AbstractEventLoop] | None)rE  zsocket.socket)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rC   r.   rM   Ú	CERT_NONErÓ   Úpropertyr×   rÜ   rß   r¿   rí   r  r  r9  rÄ   Ú__static_attributes__rG   rL   rI   r„   r„   ²   s£  † ð  ØØØØ&,Ø@FØ<BØ+ØØ)-Ø(,Ø'+Ø!'Ø26ØaoØ&*ØØ"&Ø#)ØØ.2Ø"Ø26Ø26Ø"Ø"Ø"Ø Ø6:ØØ(,Ø)-Ø)*ØØ"#Ø Ø04Ø*+ØAEØ59Ø6:Ø+/Ø/Ø Ÿ]™]Ø6:Ø"Ø04ØØ48Ø"'ðihSà7ðhSð ðhSð ð	hSð
 ðhSð ðhSð $ðhSð >ðhSð :ðhSð ðhSð ðhSð 'ðhSð &ðhSð !%ðhSð ðhSð  0ð!hSð" _ð#hSð$ $ð%hSð& ð'hSð(  ð)hSð* !ð+hSð, ð-hSð. ,ð/hSð0 ð1hSð2 0ð3hSð4 0ð5hSð6 ð7hSð8 ð9hSð: ð;hSð< ð=hSð> 4ð?hSð@ ðAhSðB &ðChSðD 'ðEhSðF $'ðGhSðH ðIhSðJ  ðKhSðL ðMhSðN $.ðOhSðP %(ðQhSðR ?ðShSðT 3ðUhSðV 4ðWhSðX )ðYhSðZ ð[hSð\ ð]hSð^ 4ð_hSð` ðahSðb .ðchSðd ðehSðf (2ðghSðh  õihSðT ó'ó ð'ð ó;ó ð;ð ó5ó ð5ô*BôXMô^
ô@ô.ð` ó9ó ó9rL   r„   )rT   zstr | os.PathLike[str]rU   rA  rH   r=  rV   r-   rW   r-   rX   rA  rY   r=  rE  zssl.SSLContext)rb   r   rE  rÚ   )rr   ú	list[str]rs   rN  rE  ztuple[list[str], list[Path]])r�   rC  rE  rN  )CÚ
__future__r   r   r  rì   rã   Úlogging.configrÊ   r"  rM   r  Úcollections.abcr   r   Úconfigparserr   Úpathlibr   Útypingr   r	   r
   r'  Úuvicorn._compatr   Úuvicorn._typesr   Úuvicorn.importerr   r   Úuvicorn.loggingr   Úuvicorn.middleware.asgi2r   Ú!uvicorn.middleware.message_loggerr   Ú uvicorn.middleware.proxy_headersr   Úuvicorn.middleware.wsgir   ÚHTTPProtocolTypeÚWSProtocolTyper@  ÚLoopFactoryTyperB  ÚCRITICALÚERRORÚWARNINGr8   ÚDEBUGr'   Ú__annotations__r(   r)   r*   r+   r,   ÚPROTOCOL_TLS_SERVERr.   rC   ró   rÅ   r\   r`   r}   r‚   r„   rG   rL   rI   Ú<module>rf     sQ  ðÞ "ã Û Û Û Û Û 	Û Û 
Û 
ß /Ý (Ý ß #Ñ #ã å /Ý *ß FÝ +Ý 4Ý EÝ CÝ 2àÐ5Ñ6Ð ØÐUÑV€ØÐ*Ñ+€ØÐ=Ñ>€ØÐ8Ñ9€ð × Ñ Ø�]‰]Ø�‰Ø�L‰LØ�]‰]Øñ€
ˆNó ð ;Ø8ØJñ"€�ó ð GØØRØgØEñ'€Ð#ó ð -Ø
*Ø-ñ€ˆ.ó ð Ø2Ø;Ø8ñ	)€Ð%ó ò #E€
ÐÓ Dà×3Ñ3Ð �cÓ 3ð Ø %ð 5Ø0Øñ
ð 4ØYñ
ñ
ð #Ø,Ø(ñ
ð "Ø,Ø(ñ
ñð "+ °fÈ5ÑQØ! 6Ð*Ø(0 z¸FÐQVÑWññ5"€�ó ðB 
×	Ò	˜?Ó	+€ðØ$ðà*ðð ðð ð	ð
 ðð ,ðð ðð ôô(ô!,ôH÷}9ò }9rL   