<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    \k                     @   s  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m	Z	m
Z
mZmZmZmZ errd dlmZmZ nd dlmZmZ edddZe dZ!e" Z#g Z$d	d
 Z%dd Z&edd Z'dd Z(duddZ)G dd de*Z+e
G dd de"Z,G dd de"Z-dd Z.dd Z/dd Z0dd  Z1dvd"d#Z2dwd$d%Z3d&d' Z4d(d) Z5d*d+ Z6dxd-d.Z7d/d0 Z8d1d2 Z9dyd4d5Z:dzd6d7Z;d{d8d9Z<d:d; Z=d|d<d=Z>e?e@d>ZAeArd?d@ ZBndAd@ ZBd}dBdCZCdDdE ZDdFdG ZEdHdI ZFd~dJdKZGdLdM ZHdNdO ZIddPdQZJdRdS ZKG dTdU dUe"ZLdVdW ZMdXdY ZNdZd[ ZOd\d] ZPd^d_ ZQd`da ZRG dbdc dce"ZSddde ZTddgdhZUddidjZVeVfdkdlZWd3ZXz*d dmlYmZZZ esej[dnk rd dl\Z\W n6 e]k
r   doZXd dpl^m_Z_ G dqdr dre"ZZY nX dsdt Z`dS )    N)contextmanager)datetime)urlparse	text_typeimplements_strstring_typesnumber_types	int_typesPY2)MappingSequencei     zsentry_sdk.errorsc                 C   s   t |  d S N)global_repr_processorsappend)	processor r   A/opt/alt/python38/lib/python3.8/site-packages/sentry_sdk/utils.pyadd_global_repr_processor9   s    r   c                   C   s   d S r   r   r   r   r   r   _get_debug_hub=   s    r   c                  c   s@   z
d V  W n0 t k
r:   t } | d k	r6| t  Y nX d S r   )	Exceptionr   Z_capture_internal_exceptionsysexc_info)Zhubr   r   r   capture_internal_exceptionsB   s    
r   c                 C   s   | t   S r   )epochtotal_secondsvaluer   r   r   to_timestampM   s    r   c                 C   s2   | dkrt  } nt| } | d dkr*d} d| iS )z+Creates a hint with the exc info filled in.Nr   r   )r   r   exc_info_from_errorr   r   r   r   event_hint_with_exc_infoQ   s    
r!   c                   @   s   e Zd ZdZdS )BadDsnzRaised on invalid DSNs.N)__name__
__module____qualname____doc__r   r   r   r   r"   ]   s   r"   c                   @   s6   e Zd ZdZdd Zedd ZdddZd	d
 ZdS )DsnzRepresents a DSN.c              	   C   s   t |trt|j| _d S tt|}|jdkr@td|j |j| _|j	| _
|j| _| jd krv| jdkrpdprd| _|j| _| jstd|j| _|jdd}ztt| | _W n2 ttfk
r   td	|jpd
dd   Y nX d|d | _d S )N)httphttpszUnsupported scheme %rr)     P   zMissing public key/r   zInvalid project in DSN (%r) )
isinstancer'   dict__dict__r   urlsplitr   schemer"   hostnamehostportusername
public_keypassword
secret_keypathrsplitintpop
project_id
ValueError	TypeErrorjoin)selfr   partsr:   r   r   r   __init__e   s*    


 zDsn.__init__c                 C   s(   | j }| j| jfdkr$d|| jf }|S )zThe netloc part of a DSN.))r(   r+   )r)   r*   z%s:%s)r4   r2   r5   )rB   rvr   r   r   netloc   s    z
Dsn.netlocNc              	   C   s"   t | j| j| j| j| j| j|dS )z*Returns the auth info object for this dsn.)r2   r4   r:   r>   r7   r9   client)Authr2   rF   r:   r>   r7   r9   )rB   rG   r   r   r   to_auth   s    zDsn.to_authc                 C   s.   d| j | j| jrd| j pd| j| j| jf S )Nz%s://%s%s@%s%s%s@r-   )r2   r7   r9   rF   r:   r>   rB   r   r   r   __str__   s    zDsn.__str__)N)	r#   r$   r%   r&   rD   propertyrF   rI   rL   r   r   r   r   r'   a   s   

r'   c                   @   s0   e Zd ZdZdddZedd Zdd	d
ZdS )rH   z,Helper object that represents the auth info.N   r,   c	           	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _d S r   )r2   r4   r:   r>   r7   r9   versionrG   )	rB   r2   r4   r>   r7   r9   rO   rG   r:   r   r   r   rD      s    zAuth.__init__c                 C   s   d| j | j| j| jf S )z'Returns the API url for storing events.z%s://%s%sapi/%s/store/)r2   r4   r:   r>   rK   r   r   r   store_api_url   s    zAuth.store_api_urlc                 C   s~   d| j fd| jfg}|dk	r2|dtt|f | jdk	rL|d| jf | jdk	rf|d| jf ddd	d
 |D  S )z!Returns the auth header a string.Z
sentry_keyZsentry_versionNZsentry_timestampZsentry_clientZsentry_secretzSentry z, c                 s   s   | ]\}}d ||f V  qdS )z%s=%sNr   ).0keyr   r   r   r   	<genexpr>   s     z!Auth.to_header.<locals>.<genexpr>)r7   rO   r   strr   rG   r9   rA   )rB   	timestamprE   r   r   r   	to_header   s    

zAuth.to_header)NrN   Nr,   )N)r#   r$   r%   r&   rD   rM   rP   rV   r   r   r   r   rH      s       

	rH   c                 C   s   t | dd pt | dd S )Nr%   r#   getattr)clsr   r   r   get_type_name   s    rZ   c                 C   s   t | dd }|dkr|S d S )Nr$   )Nbuiltins__builtins__rW   )rY   modr   r   r   get_type_module   s    r^   c              	   C   sj   z| j d }|dW S  ttfk
r.   Y nX dD ]0}z| j| rLW  dS W q4 tk
rb   Y q4X q4dS )Nr#   zsentry_sdk.)Z__traceback_hide____tracebackhide__TF)	f_globals
startswithAttributeErrorKeyErrorf_localsr   )framer]   Z	flag_namer   r   r   should_hide_frame   s    

rf   c                 c   s$   | d k	r t | js| V  | j} q d S r   )rf   tb_frametb_next)tbr   r   r   iter_stacks   s    
rj      c                 C   s4   | s| S t | |kr(| d |d  d S | d | S )N   ...)len)r   lengthr   r   r   slim_string   s
    rp   c              	   C   s6  d}d }|d k	rVt |drVz||}W n ttfk
rD   d }Y nX |d k	rV| }|d krzt| }W n" ttfk
r   g d g f Y S X |sg d g fS td|| }t	|d | t
|}zNdd ||| D }	t|| d}
dd ||d | D }|	|
|fW S  tk
r0   g d g f Y S X d S )	N   
get_sourcer   r   c                 S   s   g | ]}t |d qS 
rp   striprQ   liner   r   r   
<listcomp>  s    z'get_lines_from_file.<locals>.<listcomp>rt   c                 S   s   g | ]}t |d qS rs   ru   rw   r   r   r   ry     s   )hasattrrr   ImportErrorIOError
splitlines	linecachegetlinesOSErrormaxminrn   rp   rv   
IndexError)filenamelinenoloadermoduleZcontext_linessourceZ
source_strZlower_boundZupper_boundpre_contextcontext_linepost_contextr   r   r   get_lines_from_file   s:    


r   c                 C   s   z| j j}W n tk
r$   d }Y nX z| jd }W n tk
rR   g d g f Y S X z| jd }W n tk
rz   d }Y nX |d }|d k	r|rt||||S g d g fS )Nr#   
__loader__r   )f_codeco_filenamer   r`   r   )re   	tb_linenoabs_pathr   r   r   r   r   r   get_source_context'  s     

r   c                 C   s,   z
t | W S  tk
r&   t|  Y S X d S r   )r   r   	safe_reprr   r   r   r   safe_str;  s    
r   c                 C   sn   zRt | }t|tr |dd}z|ddW W S  tk
rN   | Y W S X W n tk
rh   Y dS X d S )Nutf-8replacelatin1zunicode-escape<broken repr>)reprr.   bytesdecodeencoder   )r   rE   r   r   r   r   C  s    

r      c                    s6  t  $  d krt   | r2tW  5 Q R  S zdkr d}tD ]L}t  < || |}|tk	r|W  5 Q R    W W  5 Q R  S W 5 Q R X qLt| tt	fṙ fdd| D W ^W  5 Q R  S t| t
r fddt|  D W &W  5 Q R  S t| W W  5 Q R  S  |  X W 5 Q R X dS )Nr   memoremaining_depthc                    s   g | ]}t |d   dqS r   )r   r   )object_to_json)rQ   xr   r   r   ry   r  s     z"object_to_json.<locals>.<listcomp>c                    s(   i | ] \}}t |t|d   dqS r   )r   r   rQ   kvr   r   r   
<dictcomp>z  s      z"object_to_json.<locals>.<dictcomp>r   )r   MemomemoizeCYCLE_MARKER	unmemoizer   NotImplementedr.   listtupler   itemsr   )objr   r   Zhintsr   resultr   r   r   r   _  s0    




0
r   c                 C   s,   i }| j  D ]\}}t||t|< q|S r   )rd   r   r   rT   )re   rE   rR   r   r   r   r   extract_locals  s    r   c                 C   s   zp| dr|d d }| ddd }|| kr>tj|W S tj| j}||tj	dd dd 
tj	W S  tk
r   | Y S X d S )Nz.pyc.r   r      )endswithsplitosr:   basenamer   modules__file__r;   seplstripr   )r   r   base_moduleZbase_module_pathr   r   r   filename_for_module  s    
r   Tc              	   C   s   t | dd }|r"| jj}| jj}nd }d }z| jd }W n tk
rP   d }Y nX |d kr`| j}t| |\}}}	t||p|d |rt	j
|nd |pd|||||	d}
|rt| |
d< |
S )Nr   r#   z	<unknown>)r   r   functionr   r   r   r   r   vars)rX   r   r   co_namer`   r   f_linenor   r   r   r:   abspathr   )re   r   with_localsr   r   r   r   r   r   r   rE   r   r   r   serialize_frame  s2    


r   c                    s   d fddt | D iS )Nframesc                    s   g | ]}t |j|j d qS ))r   r   )r   rg   r   )rQ   ri   r   r   r   ry     s     z-stacktrace_from_traceback.<locals>.<listcomp>)rj   )ri   r   r   r   r   stacktrace_from_traceback  s
     
r   c                 C   sJ   d}g }t  }|d k	r:t|s2|t|| d |j}q|  d|iS )NTr   r   )r   	_getframerf   r   r   f_backreverse)r   r_   r   fr   r   r   current_stacktrace  s    r   c                 C   s   t | dd S )NerrnorW   )	exc_valuer   r   r   	get_errno  s    r   c                 C   sz   |d k	rt |}nd }|d k	rB|p$i }|di }|dd|i |d krPd}n|d }t| t| t||t||dS )Nmetar   codeTr   )r   typer   	mechanism
stacktrace)r   
setdefaultr^   rZ   r   r   )exc_typer   ri   client_optionsr   r   Zmechanism_metar   r   r   r   !single_exception_from_error_tuple  s     
r   __suppress_context__c                 c   s   | \}}}g }t  }|d k	r|d k	rt||kr|||fV  || |t| |jrb|j}n|j}|d krrqt|}|}t|dd }qd S )N__traceback__)	setidr   addr   	__cause____context__r   rX   )r   r   r   ri   Zseen_exceptionsZseen_exception_idscauser   r   r   walk_exception_chain  s(    


r   c                 c   s
   | V  d S r   r   r    r   r   r   r   (  s    c              	   C   s<   | \}}}g }t | D ] \}}}|t||||| q|S r   )r   r   r   )r   r   r   r   r   ri   rE   r   r   r   exceptions_from_error_tuple-  s    
    r   c                 C   s4   z
t | W S  tk
r.   t| dd  Y S X d S )Nr   r   )r   UnicodeDecodeErrorr   r   r   r   r   	to_string>  s    
r   c                 c   sH   d| kr| d V  d| krD| d  dp*dD ]}d|kr,|d V  q,d S )Nr   	exceptionvaluesr   )geteventr   r   r   r   iter_event_stacktracesF  s    
r   c                 c   s,   t | D ]}|dpdD ]
}|V  qqd S Nr   r   )r   r   )r   r   re   r   r   r   iter_event_framesP  s    r   c                 C   s&   t | D ]}t|d||d q| S )Nr   )in_app_excludein_app_include)r   handle_in_app_implr   )r   r   r   r   r   r   r   handle_in_appW  s    r   c                 C   s   | sd S d}| D ]\}| d}|d k	r0|rd}q| d}|sBqqt||rZd|d< d}qt||rd|d< q|s| D ]}| dd krvd|d< qv| S )NFin_appTr   )r   _module_in_set)r   r   r   Z
any_in_appre   r   r   r   r   r   r   c  s,    





r   c                 C   s   t | tr"t| dkr"| \}}}nZt | trvt| dd }|d k	rNt| }| }q|t \}}}|| k	r|d }| }t| }nt |||fS )Nrl   r   )	r.   r   rn   BaseExceptionrX   r   r   r   r?   )errorr   r   ri   r   r   r   r     s    

r   c                 C   s*   t | } t| }ddt| ||id|fS )Nr   r   )levelr   )r   r!   r   )r   r   r   Zhintr   r   r   event_from_exception  s       r   c                 C   s6   |sdS |pdD ] }|| ks*|  |d r dS qdS )NFr   r   T)ra   )namer   itemr   r   r   r     s    r   c                   @   s   e Zd Zdd ZdS )AnnotatedValuec                 C   s   || _ || _d S r   r   metadata)rB   r   r   r   r   r   rD     s    zAnnotatedValue.__init__N)r#   r$   r%   rD   r   r   r   r   r     s   r   c                    s,    fdd  | \} }|d k	r(|| d< | S )Nc                    s  t | trri }i }|  D ]J\}}|dkr,q |\||< ||< || d krR||= || d kr||= q||pnd fS t | trt | ttfsg }i }t| D ]@\}} |\}|t|< || |t| d kr|t|= q||pd fS t | t	r | j
d d| jifS | d fS )Nr-   r   )r.   r   r   r   r   r   	enumeraterT   r   r   r   r   )r   Zdict_rvr   r   r   Zlist_rviZnew_vinnerr   r   r    s0    

zflatten_metadata.<locals>.innerZ_metar   )r   r   r   r   r   flatten_metadata  s
    r  c                 C   sj   t | dd  | dd }|rF|dd p.dD ]}t |dd  q0t| dd  t| dd  d S )Nr   r   r   r   requestbreadcrumbs)strip_stacktrace_mutr   strip_request_mutstrip_breadcrumbs_mutr   r   r   r   strip_event_mut  s    r  c                 C   s*   | sd S |  dd pdD ]}t| qd S r   )r   strip_frame_mut)r   re   r   r   r   r    s    r  c                 C   s,   | sd S |  dd }|sd S t|| d< d S )Ndata)r   strip_databag)r  r
  r   r   r   r    s    r  c                 C   s.   | sd S t t| D ]}t| | | |< qd S r   )rangern   r  )r  r   r   r   r   r     s    r  c                 C   s   d| krt | d | d< d S )Nr   )r  )re   r   r   r   r	    s    r	  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )r   c                 C   s
   i | _ d S r   )_innerrK   r   r   r   rD     s    zMemo.__init__c                 C   s$   t || jkrdS || jt |< dS )NTF)r   r  rB   r   r   r   r   r     s    zMemo.memoizec                 C   s   | j t|d  d S r   )r  r=   r   r  r   r   r   r     s    zMemo.unmemoizeN)r#   r$   r%   rD   r   r   r   r   r   r   r     s   r   c                 C   s   | d krd S | t krdS t| tr0t| dS t| trLdd |  D S t| trrt| ttfsrdd | D S t| t	rt	t
| j| jS t| tt st| S t| tr| ddS | S )	Nz<cyclic>z%Y-%m-%dT%H:%M:%SZc                 S   s   i | ]\}}|t |qS r   convert_typesr   r   r   r   r   %  s      z!convert_types.<locals>.<dictcomp>c                 S   s   g | ]}t |qS r   r  )rQ   r   r   r   r   ry   '  s     z!convert_types.<locals>.<listcomp>r   r   )r   r.   r   r   strftimer   r   r   r   r   r  r   r   r   r   r   r   )r   r   r   r   r    s"    



r     c                 C   s   t | trtd|dkr.td dddggiS t | tr@t| S t | tri }t|  D ]<\}\}}||krt|d|i  S t	||d |d||< qZ|S t | t
rg }t| D ]:\}}||krt|d|i  S |t	||d |d q|S | S )	Nz(bytes should have been normalized beforer   rem!limitr   rn   r   )r   max_breadth)r.   r   AssertionErrorr   r   strip_stringr   r   r   r  r   r   )r   r   r  Zrv_dictr   r   r   Zrv_listr   r   r   r  3  s<    

  
  r  c                 C   sL   | s| S t | }||krHt| d |d  d |dd|d |ggddS | S )Nrl   rm   r  r   rn   r  r   )rn   r   )r   
max_lengthro   r   r   r   r  S  s    r  c           
         sD  |  d}|stdtt|}g }d}dg }fdd |dd D ]}|| t|7 |t|7 }|s|td| }||}	t|	tr|	 fd	d
|	j
d D  |	j}	|t|7 }t|	7 ||	 qJ||d  t|d 7 |t|d 7 }d|}t|ks(t|s2|S t|||ddS )zFormat a string containing %s for placeholders and call `strip_string`
    on each parameter. The string template itself does not have a maximum
    length.

    TODO: handle other placeholders, not just %s
    z%sz No formatting placeholders foundr   c                    s    fddt | D S )Nc                    s.   g | ]&\}}t |tr&|d k r& | n|qS )r   )r.   r	   )rQ   r   r   	rv_lengthr   r   ry   v  s   z<format_and_strip.<locals>.realign_remark.<locals>.<listcomp>)r   )remarkr  r   r   realign_remarku  s    
z(format_and_strip.<locals>.realign_remarkNr   zNot enough params.c                 3   s   | ]} |V  qd S r   r   )rQ   r  )r  r   r   rS     s    z#format_and_strip.<locals>.<genexpr>r  r-   r  r   )r   r?   r   reversedr   rn   r=   r.   r   extendr   r   rA   r  )
templateparamsr  chunksZ
rv_remarksZrv_original_lengthrE   chunkparamZstripped_paramr   )r  r  r   format_and_stripd  sH    



 r%  )
ContextVar)rl   rN   F)localc                   @   s$   e Zd Zdd Zdd Zdd ZdS )r&  c                 C   s   || _ t | _d S r   )_namer'  _local)rB   r   r   r   r   rD     s    zContextVar.__init__c                 C   s   t | jd|S Nr   )rX   r)  )rB   defaultr   r   r   r     s    zContextVar.getc                 C   s   t | jd| d S r*  )setattrr)  )rB   r   r   r   r   r     s    zContextVar.setN)r#   r$   r%   rD   r   r   r   r   r   r   r&    s   r&  c                 C   s~   zd| j j| j j| jf W S  tk
r.   Y nX t| dd pJt| dd pJd }|sTd S zd| j|f W S  tk
rx   Y nX |S )Nz%s.%s.%sr%   r#   z%s.%s)Zim_classr$   r#   r   rX   )funcZfunc_qualnamer   r   r   transaction_from_function  s"    r.  )N)rk   )NN)r   N)NT)NT)T)NN)NN)NN)NN)r  r  )rk   )ar   r   r~   Zlogging
contextlibr   r   Zsentry_sdk._compatr   r   r   r   r   r	   r
   ZAnyDictUnionIteratorZTupleOptionalZListSetZTypeZClientOptionsr   ZExcInfocollectionsr   r   collections.abcr   Z	getLoggerloggerobjectr   r   r   r   r   r   r!   r?   r"   r'   rH   rZ   r^   rf   rj   rp   r   r   r   r   r   r   r   r   r   r   r   r   rz   r   ZHAS_CHAINED_EXCEPTIONSr   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r	  r   r  r  r  r%  ZHAS_REAL_CONTEXTVARSZcontextvarsr&  version_infoZaiocontextvarsr{   	threadingr'  r.  r   r   r   r   <module>   s   $



<-
  
,
(
"

	  
 

!  


  

&

 
9