§
    xÅje7  ã            	       óN  — d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZ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 d dlmZ d d	lmZ d d
lmZm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'm(Z(m)Z) 	 d dl*m+Z, d dl-m.Z. d dl/m0Z0m1Z1 n# e2$ r  ed¦  «        ‚w xY wd dl3m4Z4 e4r d dl3m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z=m>Z> d dlm?Z?  G d„ de¦  «        Z@dZAe jB        d.d„¦   «         ZCd/d!„ZD	 	 	 	 d0d#„ZE e%e@¦  «        d$eFd%eGd&dddfd'„¦   «         ZH	 	 	 	 d1d+„ZI G d,„ d-e¦  «        ZJdS )2é    N)Úiscoroutinefunction)Úcontinue_trace)ÚOPÚSPANDATA)Ú0_apply_data_collection_filtering_to_query_string)ÚDidNotEnableÚIntegrationÚ_check_minimum_version)ÚRequestExtractorÚ_filter_headersÚ_is_json_content_typeÚrequest_body_within_bounds)Úignore_logger)Úshould_send_default_pii)ÚSegmentNameSourceÚStreamedSpan)ÚTransactionSource)Úhas_span_streaming_enabled)	ÚCONTEXTVARS_ERROR_MESSAGEÚHAS_REAL_CONTEXTVARSÚAnnotatedValueÚcapture_internal_exceptionsÚensure_integration_enabledÚevent_from_exceptionÚhas_data_collection_enabledÚ	parse_urlÚtransaction_from_function)Úversion_info)Ú	coroutine)Ú	HTTPErrorÚRequestHandlerzTornado not installed)ÚTYPE_CHECKING)ÚAnyÚCallableÚContextManagerÚDictÚ	GeneratorÚOptionalÚUnion)ÚEventÚEventProcessor)ÚSpanc                   ó4   — e Zd ZdZde› �Zedd„¦   «         ZdS )ÚTornadoIntegrationÚtornadoz
auto.http.ÚreturnNc                  óª  ‡‡— t          t          t          ¦  «         t          st	          dt
          z   ¦  «        ‚t          d¦  «         t          j        Št          ‰¦  «        } | r	 	 	 	 	 	 	 	 dˆfd	„}nt          	 	 	 	 	 	 	 	 dˆfd
„¦   «         }|t          _        t          j        Šdddt          dt          ddddddddfˆfd„}|t          _        d S )NzUThe tornado integration for Sentry requires Python 3.7+ or the aiocontextvars packageztornado.accessÚselfr!   Úargsr#   Úkwargsr0   c              Ÿ   ó~   •K  — t          | ¦  «        5   ‰| g|¢R i |¤Žƒ d {V —†cd d d ¦  «         S # 1 swxY w Y   d S ©N©Ú_handle_request_impl)r2   r3   r4   Úold_executes      €úPC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/tornado.pyÚsentry_execute_request_handlerzETornadoIntegration.setup_once.<locals>.sentry_execute_request_handlerJ   s¾   øè è € õ *¨$Ñ/Ô/ð Dð DØ!, ¨TÐ!C°DÐ!CÐ!CÐ!C¸FÐ!CÐ!CÐCÐCÐCÐCÐCÐCðDð Dð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð Dð Ds   “2²6¹6c              ?   ó‚   •K  — t          | ¦  «        5   ‰| g|¢R i |¤ŽE d {V —†}|cd d d ¦  «         S # 1 swxY w Y   d S r6   r7   )r2   r3   r4   Úresultr9   s       €r:   r;   zETornadoIntegration.setup_once.<locals>.sentry_execute_request_handlerR   s¯   øè è € õ *¨$Ñ/Ô/ð "ð "Ø(3¨°DÐ(J¸4Ð(JÐ(JÐ(JÀ6Ð(JÐ(JÐJÐJÐJÐJÐJÐJ�FØ!ð"ð "ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s   “4´8»8ÚtyÚvalueÚtbzOptional[Any]c                 óD   •— t          |||¦  «          ‰| |||g|¢R i |¤ŽS r6   )Ú_capture_exception)r2   r>   r?   r@   r3   r4   Úold_log_exceptions         €r:   Úsentry_log_exceptionz;TornadoIntegration.setup_once.<locals>.sentry_log_exception^   s>   ø€ õ ˜r 5¨"Ñ-Ô-Ð-Ø$Ð$ T¨2¨u°bÐJ¸4ÐJÐJÐJÀ6ÐJÐJÐJó    )r2   r!   r3   r#   r4   r#   r0   r#   )r
   r.   ÚTORNADO_VERSIONr   r   r   r   r!   Ú_executer   r   Úlog_exceptionÚtypeÚBaseException)Ú	awaitabler;   rD   r9   rC   s      @@r:   Ú
setup_oncezTornadoIntegration.setup_once5   s“  øø€ åÕ1µ?ÑCÔCÐCå#ð 	õ ØgÝ+ñ,ñô ð õ
 	Ð&Ñ'Ô'Ð'å$Ô-ˆå'¨Ñ4Ô4ˆ	àð 	"ðDØ&ðDØ/4ðDØ@EðDàðDð Dð Dð Dð Dð Dð Dõ ð"Ø&ð"Ø/4ð"Ø@Eð"àð"ð "ð "ð "ð "ñ ŒYð"ð #A�Ôå*Ô8Ðð		KØð		Kåð		Kõ !ð		Kð ð			Kð
 ð		Kð ð		Kð ð		Kð 		Kð 		Kð 		Kð 		Kð 		Kð (<�Ô$Ð$Ð$rE   )r0   N)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚoriginÚstaticmethodrL   © rE   r:   r.   r.   1   sD   € € € € € Ø€JØ&˜*Ð&Ð&€Fàð3<ð 3<ð 3<ñ „\ð3<ð 3<ð 3<rE   r.   zgeneric Tornado requestr2   r!   r0   úGenerator[None, None, None]c           
   #   óê
  K  — t          j        ¦   «                              t          ¦  «        }|€d V — d S t	          j        | ¦  «        }t          j        ¦   «         }t          |j        ¦  «        }t          j        ¦   «         5 }| j	        j
        }|                     ¦   «          t          |¦  «        }|                     |¦  «         |�r(t           j                             t!          |¦  «        ¦  «         |                     d| j	        i¦  «         | j	        j        rŠt'          |j        ¦  «        r>|j        d         d         r*|                     t*          j        | j	        j        ¦  «         n8t/          ¦   «         r*|                     t*          j        | j	        j        ¦  «         t           j                             t2          t4          j        t          j        t:          j        dœd ¬¦  «        }nTt          |t4          j        t2          t>          j        t          j        ¬¦  «        }	t          j         |	d| j	        i¬¦  «        }|5 }
	 d V — tC          |
¦  «        tD          u �r_tG          ¦   «         5  tI          | j	        ¦  «         %                    ¦   «         D ]\  }}|
                     ||¦  «         Œ	 d d d ¦  «         n# 1 swxY w Y   tG          ¦   «         5  tM          | | j	        j'         (                    ¦   «         d ¦  «        }|�8tS          |¦  «        }|r'||
_*        |
                     dt:          j+        ¦  «         d d d ¦  «         n# 1 swxY w Y   tG          ¦   «         5  |  ,                    ¦   «         }|
                     t*          j-        |¦  «         |d	k    rd
nd|
_.        d d d ¦  «         n# 1 swxY w Y   �n|# tC          |
¦  «        tD          u �r`tG          ¦   «         5  tI          | j	        ¦  «         %                    ¦   «         D ]\  }}|
                     ||¦  «         Œ	 d d d ¦  «         n# 1 swxY w Y   tG          ¦   «         5  tM          | | j	        j'         (                    ¦   «         d ¦  «        }|�8tS          |¦  «        }|r'||
_*        |
                     dt:          j+        ¦  «         d d d ¦  «         n# 1 swxY w Y   tG          ¦   «         5  |  ,                    ¦   «         }|
                     t*          j-        |¦  «         |d	k    rd
nd|
_.        d d d ¦  «         w # 1 swxY w Y   w w xY wd d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NÚtornado_requestÚdata_collectionÚ	user_info)z	sentry.opzsentry.originúsentry.segment.name.source)ÚnameÚ
attributesÚparent_span)ÚoprZ   ÚsourcerQ   )Úcustom_sampling_contextrY   i�  ÚerrorÚok)/Ú
sentry_sdkÚ
get_clientÚget_integrationr.   ÚweakrefÚrefr   ÚoptionsÚisolation_scopeÚrequestÚheadersÚclear_breadcrumbsÚ_make_event_processorÚadd_event_processorÚtracesr   ÚdictÚset_custom_sampling_contextÚ	remote_ipr   Úset_attributer   ÚUSER_IP_ADDRESSr   Ú
start_spanÚ_DEFAULT_ROOT_SPAN_NAMEr   ÚHTTP_SERVERrQ   r   ÚROUTEr   Ústart_transactionrI   r   r   Ú_get_request_attributesÚitemsÚgetattrÚmethodÚlowerr   rZ   Ú	COMPONENTÚ
get_statusÚHTTP_STATUS_CODEÚstatus)r2   ÚintegrationÚweak_handlerÚclientÚis_span_streaming_enabledÚscoperj   Ú	processorÚspan_ctxÚtransactionÚspanÚattrr?   r|   Ú	span_nameÚ
status_ints                   r:   r8   r8   o   sš  è è € åÔ'Ñ)Ô)×9Ò9Õ:LÑMÔM€KàÐØˆˆˆØˆå”;˜tÑ$Ô$€LÝÔ"Ñ$Ô$€FÝ :¸6¼>Ñ JÔ JÐå	Ô	#Ñ	%Ô	%ð KM¨Ø”,Ô&ˆà×ÒÑ!Ô!Ð!Ý)¨,Ñ7Ô7ˆ	Ø×!Ò! )Ñ,Ô,Ð,ð %ñ '	ÝÔ×,Ò,­T°'©]¬]Ñ;Ô;Ð;Ø×-Ò-Ð/@À$Ä,Ð.OÑPÔPÐPàŒ|Ô%ð 	Ý.¨v¬~Ñ>Ô>ð Ø”~Ð&7Ô8¸ÔEð Ø×+Ò+Ý$Ô4°d´lÔ6Lñô ð øõ -Ñ.Ô.ð Ø×'Ò'Ý Ô0°$´,Ô2Hñô ð õ "Ô(×3Ò3Ý,å!#¤Ý%7Ô%>Ý2CÔ2Iðð ð
 !ð 4ñ ô ˆHˆHõ )ØÝ”>õ
 -Ý(Ô.Ý)Ô0ð
ñ 
ô 
ˆKõ "Ô3ØØ):¸D¼LÐ(Iðñ ô ˆHð
 ð 	M˜ðMØ���å˜‘:”:¥Ð-Ñ-Ý4Ñ6Ô6ð <ð <Ý+BØ œLñ,ô ,çš%™'œ'ð<ð <™K˜D %ð !×.Ò.¨t°UÑ;Ô;Ð;Ð;ð<ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ 5Ñ6Ô6ð 	"ð 	"Ý!(¨¨t¬|Ô/B×/HÒ/HÑ/JÔ/JÈDÑ!QÔ!Q˜Ø!Ð-Ý(AÀ&Ñ(IÔ(I˜IØ(ð "Ø,5 ¤	Ø $× 2Ò 2Ø$@Ý$5Ô$?ñ!"ô !"ð !"ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ 5Ñ6Ô6ð Mð MØ%)§_¢_Ñ%6Ô%6˜
Ø×*Ò*­8Ô+DÀjÑQÔQÐQØ1;¸sÒ1BÐ1B g gÈ˜œðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mùøõ% ˜‘:”:¥Ð-Ñ-Ý4Ñ6Ô6ð <ð <Ý+BØ œLñ,ô ,çš%™'œ'ð<ð <™K˜D %ð !×.Ò.¨t°UÑ;Ô;Ð;Ð;ð<ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ 5Ñ6Ô6ð 	"ð 	"Ý!(¨¨t¬|Ô/B×/HÒ/HÑ/JÔ/JÈDÑ!QÔ!Q˜Ø!Ð-Ý(AÀ&Ñ(IÔ(I˜IØ(ð "Ø,5 ¤	Ø $× 2Ò 2Ø$@Ý$5Ô$?ñ!"ô !"ð !"ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ 5Ñ6Ô6ð Mð MØ%)§_¢_Ñ%6Ô%6˜
Ø×*Ò*­8Ô+DÀjÑQÔQÐQØ1;¸sÒ1BÐ1B g gÈ˜œðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð Mð% .øøøð		Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	MðeKMð KMð KMñ KMô KMð KMð KMð KMð KMð KMð KMð KMøøøð KMð KMð KMð KMð KMð KMs-  ÂGU(É
UÉOÉ%UÉ5AKÊ9UËK	Ë	UËK	ËUËA(MÍUÍMÍUÍMÍUÍ+AN;Î/UÎ;N?Î?UÏN?ÏUÏ&UÏ.AP>Ð2UÐ>QÑUÑQÑUÑA(SÒ?UÓSÓUÓSÓUÓ$AT4Ô(UÔ4T8Ô8UÔ;T8Ô<UÕUÕU(ÕU	ÕU(ÕU	ÕU(Õ(U,Õ/U,ri   r#   úDict[str, Any]c                 ó   — i }t          j        ¦   «         j        }| j        r&| j                             ¦   «         |t
          j        <   t          t          | j	        ¦  «        d¬¦  «        }| 
                    ¦   «         D ]+\  }}||t
          j        › d|                     ¦   «         › �<   Œ,t          |¦  «        r³| j        |d<   d }| j        r3t!          | j        |d         d         ¬¦  «        }|r||t
          j        <   t%          |                      ¦   «         ¦  «        }|r|j        › d|› �n|j        |t
          j        <   | j        r"|d         d	         r| j        |t
          j        <   not1          ¦   «         ra|                      ¦   «         |t
          j        <   | j        |d<   | j        r| j        |t
          j        <   | j        r| j        |t
          j        <   | j        r| j        |t
          j        <   d
}t          |¦  «        rd|d         d         v }|rdt7          ¦   «         5  t9          | ¦  «        }	t;          |	t<          ¦  «        r|	j        n|	}
|
�|
|t
          j         <   d d d ¦  «         n# 1 swxY w Y   |S )NF)Úuse_annotated_valueú.zurl.pathrW   Úurl_query_params©Úquery_stringÚ	behaviourú?rX   TÚincoming_requestÚhttp_bodies)!rb   rc   rg   r|   Úupperr   ÚHTTP_REQUEST_METHODr   ro   rj   rz   ÚHTTP_REQUEST_HEADERr}   r   ÚpathÚqueryr   Ú	URL_QUERYr   Úfull_urlÚurlÚURL_FULLrq   ÚCLIENT_ADDRESSr   ÚprotocolÚNETWORK_PROTOCOL_NAMEr   Ú_get_tornado_request_dataÚ
isinstancer   r?   ÚHTTP_REQUEST_BODY_DATA)ri   r[   Úclient_optionsrj   Úheaderr?   Úfiltered_queryÚ
parsed_urlÚrecord_incoming_request_dataÚraw_dataÚ	body_datas              r:   ry   ry   É   sû  € Ø€JÝÔ*Ñ,Ô,Ô4€Nà„~ð JØ3:´>×3GÒ3GÑ3IÔ3Iˆ
•8Ô/Ñ0å�d 7¤?Ñ3Ô3ÈÐOÑOÔO€GØ Ÿš™œð Oð O‰ˆ�ØINˆ
•hÔ2ÐEÐE°V·\²\±^´^ÐEÐEÑFÐFå" >Ñ2Ô2ð DØ!(¤ˆ
�:ÑàˆØŒ=ð 	@ÝMØ$œ]Ø(Ð):Ô;Ð<NÔOðñ ô ˆNð ð @Ø1?�
�8Ô-Ñ.å˜w×/Ò/Ñ1Ô1Ñ2Ô2ˆ
à4BÐVˆzŒ~Ð0Ð0 Ð0Ð0Ð0È
Ìð 	•8Ô$Ñ%ð Ôð 	HØÐ/Ô0°Ô=ð HØ6=Ô6G�
�8Ô2Ñ3øå	 Ñ	"Ô	"ð DØ(/×(8Ò(8Ñ(:Ô(:ˆ
•8Ô$Ñ%Ø!(¤ˆ
�:ÑàŒ=ð 	;Ø-4¬]ˆJ•xÔ)Ñ*àÔð 	DØ29Ô2CˆJ•xÔ.Ñ/àÔð FØ5<Ô5Eˆ
•8Ô1Ñ2ð $(Ð Ý" >Ñ2Ô2ð 
à .Ð1BÔ"CÀMÔ"RÐRð 	%ð $ð HÝ(Ñ*Ô*ð 	Hð 	HÝ0°Ñ9Ô9ˆHå",¨Xµ~Ñ"FÔ"FÐT�”�ÈHð ð Ð$Ø>G�
�8Ô:Ñ;ð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð Ðs   È(?I3É3I7É:I7ú$Union[Optional[str], AnnotatedValue]c                 óÆ   — | j         }|sd S t          t          j        ¦   «         t	          |¦  «        ¦  «        st          j        ¦   «         S |                     dd¦  «        S )Nzutf-8Úreplace)Úbodyr   rb   rc   Úlenr   Ú#substituted_because_over_size_limitÚdecode©ri   r²   s     r:   r¥   r¥   
  s]   € ð Œ<€DØð Øˆtå%¥jÔ&;Ñ&=Ô&=½sÀ4¹y¼yÑIÔIð DÝÔAÑCÔCÐCà�;Š;�w 	Ñ*Ô*Ð*rE   r>   r?   r@   c                 óÂ   — t          |t          ¦  «        rd S t          | ||ft          j        ¦   «         j        dddœ¬¦  «        \  }}t          j        ||¬¦  «         d S )Nr/   F)rI   Úhandled)r¨   Ú	mechanism)Úhint)r¦   r    r   rb   rc   rg   Úcapture_event)r>   r?   r@   Úeventrº   s        r:   rB   rB     sr   € å�%�Ñ#Ô#ð Øˆå&Ø	ˆU�BˆÝ!Ô,Ñ.Ô.Ô6Ø$°Ð7Ð7ðñ ô �K€Eˆ4õ Ô˜U¨Ð.Ñ.Ô.Ð.Ð.Ð.rE   rƒ   úCallable[[], RequestHandler]r+   c                 ó   ‡ — dˆ fd„}|S )Nr¼   r*   rº   údict[str, Any]r0   c                 óà  •—  ‰
¦   «         }|€| S |j         }t          ¦   «         5  t          ||j         j                             ¦   «         ¦  «        }t          |¦  «        pd| d<   dt          j        i| d<   d d d ¦  «         n# 1 swxY w Y   t          j	        ¦   «         j
        }t          ¦   «         5  t          |¦  «        }|                     | ¦  «         | d         }|j        ›d|j        ›|j        ›�|d<   t!          |¦  «        r1|j        r)t%          |j        |d         d	         ¬
¦  «        }|r||d<   n
|j        |d<   |j        |d<   t!          |¦  «        r|d         d         rd|j        i|d<   t)          t+          |j        ¦  «        ¦  «        |d<   d d d ¦  «         n# 1 swxY w Y   t!          |¦  «        rV|d         d         rG	 |j        }	n# t0          $ r d }	Y nw xY w|	r*|                      di ¦  «                             dd¦  «         nUt5          ¦   «         rG	 |j        }	n# t0          $ r d }	Y nw xY w|	r*|                      di ¦  «                             dd¦  «         | S )NÚ r‰   r^   Útransaction_infori   z://r    rW   r’   r“   r”   r|   rX   ÚREMOTE_ADDRÚenvrj   ÚuserÚis_authenticatedT)ri   r   r{   r|   r}   r   r   r~   rb   rc   rg   ÚTornadoRequestExtractorÚextract_into_eventr£   Úhostrœ   r   r�   r   rq   r   ro   rj   Úcurrent_userÚ	ExceptionÚ
setdefaultr   )r¼   rº   Úhandlerri   r|   r¨   Ú	extractorÚrequest_inforª   rÊ   rƒ   s             €r:   Útornado_processorz0_make_event_processor.<locals>.tornado_processor(  s‡  ø€ Ø�,‘.”.ˆØˆ?ØˆLà”/ˆå(Ñ*Ô*ð 	Pð 	PÝ˜W g¤oÔ&<×&BÒ&BÑ&DÔ&DÑEÔEˆFÝ#<¸VÑ#DÔ#DÐ#JÈˆE�-Ñ Ø)1Õ3DÔ3NÐ(OˆEÐ$Ñ%ð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Põ
 $Ô.Ñ0Ô0Ô8ˆÝ(Ñ*Ô*ð  	Mð  	MÝ/°Ñ8Ô8ˆIØ×(Ò(¨Ñ/Ô/Ð/à  Ô+ˆLð Ô Ð Ð Ø”�Ø”�ð#ˆL˜Ñõ +¨>Ñ:Ô:ð 	=Ø”=ð FÝ%UØ%,¤]Ø"0Ð1BÔ"CÐDVÔ"Wð&ñ &ô &�Nð &ð FØ7E˜ ^Ñ4øà/6¬}�˜^Ñ,à%,¤^ˆL˜Ñ"õ
 0°Ñ?Ô?ðIà!Ð"3Ô4°[ÔAðIð (5°gÔ6GÐ&H�˜UÑ#Ý&5µd¸7¼?Ñ6KÔ6KÑ&LÔ&LˆL˜Ñ#ðA 	Mð  	Mð  	Mñ  	Mô  	Mð  	Mð  	Mð  	Mð  	Mð  	Mð  	Møøøð  	Mð  	Mð  	Mð  	MõD ' ~Ñ6Ô6ð 	RØÐ/Ô0°Ô=ð Vð(Ø#*Ô#7�L�LøÝ ð (ð (ð (Ø#'�L�L�Lð(øøøð  ð VØ×$Ò$ V¨RÑ0Ô0×;Ò;Ð<NÐPTÑUÔUÐUøÝ$Ñ&Ô&ð 	Rð$Ø&Ô3��øÝð $ð $ð $Ø#���ð$øøøð ð RØ× Ò  ¨Ñ,Ô,×7Ò7Ð8JÈDÑQÔQÐQàˆsI   ¥ABÂBÂ
BÂ4C)F)Æ)F-Æ0F-ÇG ÇG)Ç(G)È(H0 È0H?È>H?)r¼   r*   rº   r¿   r0   r*   rS   )rƒ   rÐ   s   ` r:   rl   rl   %  s0   ø€ ðAð Að Að Að Að AðF ÐrE   c                   óZ   — e Zd Zdefd„Zdd„Zdefd„Zdd„Zde	fd„Z
dd	„Zd
ddefd„ZdS )rÇ   r0   c                 óP   — | j         j        €dS t          | j         j        ¦  «        S )Nr   )ri   r²   r³   ©r2   s    r:   Úcontent_lengthz&TornadoRequestExtractor.content_lengtho  s%   € ØŒ<ÔÐ$Ø�1Ý�4”<Ô$Ñ%Ô%Ð%rE   úDict[str, str]c                 óR   — d„ | j         j                             ¦   «         D ¦   «         S )Nc                 ó$   — i | ]\  }}||j         “ŒS rS   )r?   ©Ú.0ÚkÚvs      r:   ú
<dictcomp>z3TornadoRequestExtractor.cookies.<locals>.<dictcomp>u  s    € ÐDÐDÐD™t˜q !��1”7ÐDÐDÐDrE   )ri   Úcookiesrz   rÓ   s    r:   rÝ   zTornadoRequestExtractor.cookiest  s'   € ØDÐD t¤|Ô';×'AÒ'AÑ'CÔ'CÐDÑDÔDÐDrE   c                 ó   — | j         j        S r6   r¶   rÓ   s    r:   r­   z TornadoRequestExtractor.raw_dataw  s   € ØŒ|Ô Ð rE   rŽ   c                 óR   — d„ | j         j                             ¦   «         D ¦   «         S )Nc                 ó.   — i | ]\  }}|d „ |D ¦   «         “ŒS )c                 ó:   — g | ]}|                      d d¦  «        ‘ŒS )Úlatin1r±   )rµ   )rÙ   rÛ   s     r:   ú
<listcomp>z;TornadoRequestExtractor.form.<locals>.<dictcomp>.<listcomp>|  s&   € Ð:Ð:Ð:°!�—’˜ 9Ñ-Ô-Ð:Ð:Ð:rE   rS   )rÙ   rÚ   Úvss      r:   rÜ   z0TornadoRequestExtractor.form.<locals>.<dictcomp>{  s=   € ð 
ð 
ð 
á��2ð Ð:Ð:°rÐ:Ñ:Ô:ð
ð 
ð 
rE   )ri   Úbody_argumentsrz   rÓ   s    r:   ÚformzTornadoRequestExtractor.formz  s4   € ð
ð 
àœÔ4×:Ò:Ñ<Ô<ð
ñ 
ô 
ð 	
rE   c                 óZ   — t          | j        j                             d¦  «        ¦  «        S )Nzcontent-type)r   ri   rj   ÚgetrÓ   s    r:   Úis_jsonzTornadoRequestExtractor.is_json€  s#   € Ý$ T¤\Ô%9×%=Ò%=¸nÑ%MÔ%MÑNÔNÐNrE   c                 óR   — d„ | j         j                             ¦   «         D ¦   «         S )Nc                 ó*   — i | ]\  }}|¯||d          “ŒS )r   rS   rØ   s      r:   rÜ   z1TornadoRequestExtractor.files.<locals>.<dictcomp>„  s'   € ÐDÐDÐD™D˜A˜qÀ!ÐD��1�Q”4ÐDÐDÐDrE   )ri   Úfilesrz   rÓ   s    r:   rì   zTornadoRequestExtractor.filesƒ  s'   € ØDÐD D¤LÔ$6×$<Ò$<Ñ$>Ô$>ÐDÑDÔDÐDrE   Úfiler#   c                 ó.   — t          |j        pd¦  «        S )NrS   )r³   r²   )r2   rí   s     r:   Úsize_of_filez$TornadoRequestExtractor.size_of_file†  s   € Ý�4”9�? Ñ#Ô#Ð#rE   N)r0   rÕ   )r0   rŽ   )rM   rN   rO   ÚintrÔ   rÝ   Úbytesr­   ræ   Úboolré   rì   rï   rS   rE   r:   rÇ   rÇ   n  sÐ   € € € € € ð& ð &ð &ð &ð &ð
Eð Eð Eð Eð!˜%ð !ð !ð !ð !ð
ð 
ð 
ð 
ðO˜ð Oð Oð Oð OðEð Eð Eð Eð$ ð $¨3ð $ð $ð $ð $ð $ð $rE   rÇ   )r2   r!   r0   rT   )ri   r#   r0   rŽ   )ri   r#   r0   r¯   )rƒ   r½   r0   r+   )KÚ
contextlibre   Úinspectr   rb   Úsentry_sdk.apir   Úsentry_sdk.constsr   r   Úsentry_sdk.data_collectionr   Úsentry_sdk.integrationsr   r	   r
   Ú$sentry_sdk.integrations._wsgi_commonr   r   r   r   Úsentry_sdk.integrations.loggingr   Úsentry_sdk.scoper   Úsentry_sdk.tracesr   r   Úsentry_sdk.tracingr   Úsentry_sdk.tracing_utilsr   Úsentry_sdk.utilsr   r   r   r   r   r   r   r   r   r/   r   rF   Útornado.genr   Útornado.webr    r!   ÚImportErrorÚtypingr"   r#   r$   r%   r&   r'   r(   r)   Úsentry_sdk._typesr*   r+   r,   r.   ru   Úcontextmanagerr8   ry   r¥   rI   rJ   rB   rl   rÇ   rS   rE   r:   ú<module>r     sÌ  ðØ Ð Ð Ð Ø €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø WÐ WÐ WÐ WÐ WÐ WØ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ Uðð ð ð ð ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð0Ø7Ð7Ð7Ð7Ð7Ð7Ø%Ð%Ð%Ð%Ð%Ð%Ø5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5øØð 0ð 0ð 0Ø
ˆ,Ð.Ñ
/Ô
/Ð/ð0øøøð !Ð  Ð  Ð  Ð  Ð  àð (ØVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVà7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ø'Ð'Ð'Ð'Ð'Ð'ð8<ð 8<ð 8<ð 8<ð 8<˜ñ 8<ô 8<ð 8<ðv 4Ð ð ÔðVMð VMð VMñ ÔðVMðr>ð >ð >ð >ðB
+Øð
+à+ð
+ð 
+ð 
+ð 
+ð ÐÐ.Ñ/Ô/ð
/˜4ð 
/¨ð 
/¸5ð 
/ÀTð 
/ð 
/ð 
/ñ 0Ô/ð
/ðFØ0ðFàðFð Fð Fð FðR$ð $ð $ð $ð $Ð.ñ $ô $ð $ð $ð $s   Á4B	 Â	B