Ë
    +Œ:j™  ã                   ó¤   — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZ d dlmZmZmZmZmZ dZdZd	Zd
ZdZdZ G d„ d«      Zy)é    N)Úis_async_callable)Úrun_in_threadpool)ÚRequest)ÚHTMLResponseÚPlainTextResponseÚResponse)ÚASGIAppÚMessageÚReceiveÚScopeÚSenda‹  
p {
    color: #211c1c;
}
.traceback-container {
    border: 1px solid #038BB8;
}
.traceback-title {
    background-color: #038BB8;
    color: lemonchiffon;
    padding: 12px;
    font-size: 20px;
    margin-top: 0px;
}
.frame-line {
    padding-left: 10px;
    font-family: monospace;
}
.frame-filename {
    font-family: monospace;
}
.center-line {
    background-color: #038BB8;
    color: #f9f6e1;
    padding: 5px 0px 5px 5px;
}
.lineno {
    margin-right: 5px;
}
.frame-title {
    font-weight: unset;
    padding: 10px 10px 10px 10px;
    background-color: #E4F4FD;
    margin-right: 10px;
    color: #191f21;
    font-size: 17px;
    border: 1px solid #c7dce8;
}
.collapse-btn {
    float: right;
    padding: 0px 5px 1px 5px;
    border: solid 1px #96aebb;
    cursor: pointer;
}
.collapsed {
  display: none;
}
.source-code {
  font-family: courier;
  font-size: small;
  padding-bottom: 10px;
}
aÇ  
<script type="text/javascript">
    function collapse(element){
        const frameId = element.getAttribute("data-frame-id");
        const frame = document.getElementById(frameId);

        if (frame.classList.contains("collapsed")){
            element.innerHTML = "&#8210;";
            frame.classList.remove("collapsed");
        } else {
            element.innerHTML = "+";
            frame.classList.add("collapsed");
        }
    }
</script>
a†  
<html>
    <head>
        <style type='text/css'>
            {styles}
        </style>
        <title>Starlette Debugger</title>
    </head>
    <body>
        <h1>500 Server Error</h1>
        <h2>{error}</h2>
        <div class="traceback-container">
            <p class="traceback-title">Traceback</p>
            <div>{exc_html}</div>
        </div>
        {js}
    </body>
</html>
aŒ  
<div>
    <p class="frame-title">File <span class="frame-filename">{frame_filename}</span>,
    line <i>{frame_lineno}</i>,
    in <b>{frame_name}</b>
    <span class="collapse-btn" data-frame-id="{frame_filename}-{frame_lineno}" onclick="collapse(this)">{collapse_button}</span>
    </p>
    <div id="{frame_filename}-{frame_lineno}" class="source-code {collapsed}">{code_context}</div>
</div>
zV
<p><span class="frame-line">
<span class="lineno">{lineno}.</span> {line}</span></p>
zv
<p class="center-line"><span class="frame-line center-line">
<span class="lineno">{lineno}.</span> {line}</span></p>
c            
       ó  — e Zd ZdZ	 	 ddedej                  ej                     deddfd„Z	de
d	ed
eddfd„Zdededededef
d„Zdej$                  dedefd„Zddededefd„Zdedefd„Zdededefd„Zdededefd„Zy)ÚServerErrorMiddlewareaz  
    Handles returning 500 responses when a server error occurs.

    If 'debug' is set, then traceback responses will be returned,
    otherwise the designated 'handler' will be called.

    This middleware class should generally be used to wrap *everything*
    else up, so that unhandled exceptions anywhere in the stack
    always result in an appropriate 500 response.
    NÚappÚhandlerÚdebugÚreturnc                 ó.   — || _         || _        || _        y ©N)r   r   r   )Úselfr   r   r   s       ú]/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/starlette/middleware/errors.pyÚ__init__zServerErrorMiddleware.__init__‰   s   € ð ˆŒØˆŒØˆ�
ó    ÚscopeÚreceiveÚsendc              ƒ   ó>  ‡‡K  — |d   dk7  r| j                  ||‰«      ƒ d {  –—†  y dŠdt        dd fˆˆfd„}	 | j                  |||«      ƒ d {  –—†  y 7 Œ37 Œ# t        $ r¶}t        |«      }| j                  r| j                  ||«      }np| j                  €| j                  ||«      }nQt        | j                  «      r| j                  ||«      ƒ d {  –—†7  }n t        | j                  ||«      ƒ d {  –—†7  }‰s |||‰«      ƒ d {  –—†7   |‚d }~ww xY w­w)NÚtypeÚhttpFÚmessager   c              “   óF   •K  — | d   dk(  rdŠ ‰| «      ƒ d {  –—†  y 7 Œ­w)Nr   zhttp.response.startT© )r    Úresponse_startedr   s    €€r   Ú_sendz-ServerErrorMiddleware.__call__.<locals>._sendš   s)   øè ø€ ð �v‰Ð"7Ò7Ø#'Ð Ù�w“-×Òús   ƒ!™š!)
r   r
   Ú	Exceptionr   r   Údebug_responser   Úerror_responser   r   )	r   r   r   r   r$   ÚexcÚrequestÚresponser#   s	      `    @r   Ú__call__zServerErrorMiddleware.__call__“   s  ùè ø€ Ø�‰=˜FÒ"Ø—(‘(˜5 '¨4Ó0×0Ð0Øà Ðð	 ¤ð 	 ¨Tö 	 ð	Ø—(‘(˜5 '¨5Ó1×1Ñ1ð 1øð 2ùÜò 	Ü˜e“nˆGØ�zŠzà×.Ñ.¨w¸Ó<‘Ø—‘Ð%à×.Ñ.¨w¸Ó<‘ô % T§\¡\Ô2Ø%)§\¡\°'¸3Ó%?×?Ð?‘Hä%6°t·|±|ÀWÈcÓ%R×RÐR�Há#Ù˜u g¨tÓ4×4Ñ4ð
 ˆIûð+	üsi   „D£A¤D»A ÁAÁA ÁDÁA Á	DÁ$A3DÃCÃ DÃ8C;Ã9DÄDÄDÄDÄDÚindexÚlineÚframe_linenoÚframe_indexc                 ó¼   — t        j                  |«      j                  dd«      ||z
  |z   dœ}||k7  rt        j                  di |¤ŽS t        j                  di |¤ŽS )Nú z&nbsp)r-   Úlinenor"   )ÚhtmlÚescapeÚreplaceÚLINEÚformatÚCENTER_LINE)r   r,   r-   r.   r/   Úvaluess         r   Úformat_linez!ServerErrorMiddleware.format_lineº   sa   € ô
 —K‘K Ó%×-Ñ-¨c°7Ó;Ø# kÑ1°UÑ:ñ
ˆð �KÒÜ—;‘;Ñ( Ñ(Ð(Ü×!Ñ!Ñ+ FÑ+Ð+r   ÚframeÚis_collapsedc                 ó>  ‡ ‡— dj                  ˆˆ fd„t        ‰j                  xs g «      D «       «      }t        j                  ‰j
                  «      ‰j                  t        j                  ‰j                  «      ||rdnd|rdnddœ}t        j                  di |¤ŽS )NÚ c              3   ót   •K  — | ]/  \  }}‰j                  ||‰j                  ‰j                  «      –— Œ1 y ­wr   )r:   r2   r,   )Ú.0r,   r-   r;   r   s      €€r   ú	<genexpr>z<ServerErrorMiddleware.generate_frame_html.<locals>.<genexpr>È   s;   øè ø€ ò 
ñ ��tð ×ÑØ�t˜UŸ\™\¨5¯;©;÷ñ
ùs   ƒ58Ú	collapsedú+z&#8210;)Úframe_filenamer.   Ú
frame_nameÚcode_contextrB   Úcollapse_buttonr"   )
ÚjoinÚ	enumeraterF   r3   r4   Úfilenamer2   ÚfunctionÚFRAME_TEMPLATEr7   )r   r;   r<   rF   r9   s   ``   r   Úgenerate_frame_htmlz)ServerErrorMiddleware.generate_frame_htmlÇ   s‰   ù€ Ø—w‘wô 
ô  )¨×);Ñ);Ò)A¸rÓBô	
ó 
ˆô #Ÿk™k¨%¯.©.Ó9Ø!ŸL™Lô Ÿ+™+ e§n¡nÓ5Ø(Ù(4™¸"Ù&2™s¸	ñ
ˆô ×$Ñ$Ñ. vÑ.Ð.r   r(   Úlimitc                 ó¸  — t         j                  j                  |d¬«      }d}d}|j                  }|�=t	        j
                  ||«      }t        |«      D ]  }|| j                  ||«      z  }d}Œ t        j                  |j                  j                  «      › dt        j                  t        |«      «      › �}	t        j                  t        t         |	|¬«      S )NT)Úcapture_localsr>   Fz: )ÚstylesÚjsÚerrorÚexc_html)Ú	tracebackÚTracebackExceptionÚfrom_exceptionÚ__traceback__ÚinspectÚgetinnerframesÚreversedrM   r3   r4   Úexc_typeÚ__name__ÚstrÚTEMPLATEr7   ÚSTYLESÚJS)
r   r(   rN   Útraceback_objrT   r<   Úexc_tracebackÚframesr;   rS   s
             r   Úgenerate_htmlz#ServerErrorMiddleware.generate_htmlÝ   sØ   € Ü!×4Ñ4×CÑCØ ð Dó 
ˆð ˆØˆØ×)Ñ)ˆØÐ$Ü×+Ñ+¨M¸5ÓAˆFÜ! &Ó)ò $�Ø˜D×4Ñ4°U¸LÓIÑI�Ø#‘ð$ô �{‰{˜=×1Ñ1×:Ñ:Ó;Ð<¸BÜ�{‰{œ3˜}Ó-Ó.Ð/ð1ð 	ô
 �‰¤f´¸5È8ˆÓTÐTr   c                 ót   — dj                  t        j                  t        |«      ||j                  «      «      S )Nr>   )rH   rU   Úformat_exceptionr   rX   )r   r(   s     r   Úgenerate_plain_textz)ServerErrorMiddleware.generate_plain_textó   s*   € Ø�w‰w”y×1Ñ1´$°s³)¸SÀ#×BSÑBSÓTÓUÐUr   r)   c                 óº   — |j                   j                  dd«      }d|v r| j                  |«      }t        |d¬«      S | j	                  |«      }t        |d¬«      S )NÚacceptr>   z	text/htmléô  ©Ústatus_code)ÚheadersÚgetre   r   rh   r   )r   r)   r(   rj   Úcontents        r   r&   z$ServerErrorMiddleware.debug_responseö   sZ   € Ø—‘×$Ñ$ X¨rÓ2ˆà˜&Ñ Ø×(Ñ(¨Ó-ˆGÜ °SÔ9Ð9Ø×*Ñ*¨3Ó/ˆÜ  °cÔ:Ð:r   c                 ó   — t        dd¬«      S )NzInternal Server Errorrk   rl   )r   )r   r)   r(   s      r   r'   z$ServerErrorMiddleware.error_responseÿ   s   € Ü Ð!8ÀcÔJÐJr   )NF)é   )r]   Ú
__module__Ú__qualname__Ú__doc__r	   ÚtypingÚOptionalÚCallableÚboolr   r   r   r   r+   Úintr^   r:   rY   Ú	FrameInforM   r%   re   rh   r   r   r&   r'   r"   r   r   r   r   }   s#  „ ñ	ð 59Øñ	àðð —‘ §¡Ñ1ðð ð	ð
 
óð% Eð %°Gð %À4ð %ÈDó %ðN,Øð,Ø #ð,Ø36ð,ØEHð,à	ó,ð/¨×):Ñ):ð /È$ð /ÐSVó /ñ,U ð U°3ð U¸só Uð,V yð V°Só Vð; gð ;°Ið ;À(ó ;ðK gð K°Ið KÀ(ô Kr   r   )r3   rY   rU   rv   Ústarlette._utilsr   Ústarlette.concurrencyr   Ústarlette.requestsr   Ústarlette.responsesr   r   r   Ústarlette.typesr	   r
   r   r   r   r`   ra   r_   rL   r6   r8   r   r"   r   r   ú<module>r�      s_   ðÛ Û Û Û å .Ý 3Ý &ß IÑ Iß BÕ Bð4
€ðl€ð"€ð(	€ð€ð
€÷CKò CKr   