Ë
    S>{iå3  ã                   ó¦  — d dl Z d dlZd dlmZ d dlmZmZmZmZmZm	Z	 d dl
mZmZmZmZmZmZ d dlmZ er_d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ ee ef   Z!eeee ef   geee f   f   Z"ee e#f   Z$erd dl%m&Z&m'Z'm(Z( eez   Z)nd dl*m&Z&m'Z'm(Z( eez   Z)dZ+dZ,dZ-dZ.g Z/d„ Z0 G d„ de1«      Z2d„ Z3y)é    N)Údatetime)ÚAnnotatedValueÚcapture_internal_exceptionÚdisable_capture_eventÚformat_timestampÚ	safe_reprÚstrip_string)Ú	text_typeÚPY2Ústring_typesÚnumber_typesÚ	iteritemsÚbinary_sequence_types)ÚTYPE_CHECKING)ÚTracebackType)ÚAny)ÚCallable)ÚContextManager)ÚDict)ÚList)ÚOptional)ÚType)ÚUnion)ÚNotImplementedTypeÚEvent)ÚMappingÚSequenceÚSeti@B é   é
   z<cyclic>c                 ó.   — t         j                  | «       y ©N)Úglobal_repr_processorsÚappend)Ú	processors    úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/serializer.pyÚadd_global_repr_processorr'   P   s   € ä×!Ñ! )Õ,ó    c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚMemo©Ú_idsÚ_objsc                 ó    — i | _         g | _        y r"   r+   )Úselfs    r&   Ú__init__zMemo.__init__X   s   € àˆŒ	Øˆ�
r(   c                 ó<   — | j                   j                  |«       | S r"   )r-   r$   ©r/   Úobjs     r&   ÚmemoizezMemo.memoize]   s   € à�
‰
×Ñ˜#ÔØˆr(   c                 ó‚   — | j                   d   }t        |«      | j                  v ry|| j                  t        |«      <   y)NéÿÿÿÿTF)r-   Úidr,   r2   s     r&   Ú	__enter__zMemo.__enter__b   s7   € à�j‰j˜‰nˆÜˆc‹7�d—i‘iÑØà!$ˆD�I‰I”b˜“gÑØr(   c                 ó~   — | j                   j                  t        | j                  j                  «       «      d «       y r"   )r,   Úpopr7   r-   )r/   ÚtyÚvalueÚtbs       r&   Ú__exit__zMemo.__exit__k   s&   € ð 	�	‰	�‰”b˜Ÿ™Ÿ™Ó)Ó*¨DÕ1r(   N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r0   r4   r8   r>   © r(   r&   r*   r*   U   s   „ Ø!€Iòò
ò
ó2r(   r*   c           
      óÊ  ‡‡‡‡‡‡‡	‡
‡‡‡‡— t        «       Šg Šg Š|j                  dd «      dk(  Š
|j                  dd «      Šˆˆfd„Šˆfd„Š	ˆˆ	ˆfd„Šˆfd„Š	 	 	 	 	 	 dˆˆˆˆfd„	Šˆfd	„Šˆˆˆˆˆˆ	ˆ
ˆˆˆf
d
„Št        j                  d«       	  ‰| fi |¤Ž}‰rt	        |t
        «      r‰d   |d<   |t        j                  d«       S # t        j                  d«       w xY w)NÚmax_request_body_sizeÚalwaysÚmax_value_lengthc                  óP  •— t        ‰«      t        ‰«      k  rY	 ‰t        ‰«      dz
     }‰d   j                  t        |«      i «      }‰j	                  |«       t        ‰«      t        ‰«      k  rŒY‰d   j                  di «      j                  | «       y # t        $ r i }Y Œ[w xY w)Né   r6   Ú )ÚlenÚ
setdefaultr
   Ú
IndexErrorr$   Úupdate)ÚmetaÚsegmentÚnodeÚ
meta_stackÚpaths      €€r&   Ú	_annotatezserialize.<locals>._annotate€   sŸ   ø€ ä�*‹o¤ T£Ò*ðØœs :›°Ñ2Ñ3�Ø! "‘~×0Ñ0´¸7Ó1CÀRÓH�ð ×Ñ˜dÔ#ô �*‹o¤ T£Ó*ð 	�2‰×!Ñ! " bÓ)×0Ñ0°Õ6øô ò Ø’ðús   š/B ÂB%Â$B%c                  ó¦   •— 	 ‰d   } | dk(  r‰d   dk(  r	‰d   dk(  ry| dv r!‰d   d	k(  r‰d   dk(  r‰d
   dk(  r	‰d   dk(  ryy# t         $ r Y yw xY w)a§  
        By default non-serializable objects are going through
        safe_repr(). For certain places in the event (local vars) we
        want to repr() even things that are JSON-serializable to
        make their type more apparent. For example, it's useful to
        see the difference between a unicode-string and a bytestring
        when viewing a stacktrace.

        For container-types we still don't do anything different.
        Generally we just try to make the Sentry UI present exactly
        what a pretty-printed repr would look like.

        :returns: `True` if we are somewhere in frame variables, and `False` if
            we are in a position where we will never encounter frame variables
            when recursing (for example, we're in `event.extra`). `None` if we
            are not (yet) in frame variables, but might encounter them when
            recursing (e.g.  we're in `event.exception`)
        r   Ú
stacktracerI   Úframesé   ÚvarsT)ÚthreadsÚ	exceptionÚvaluesé   é   NF©rM   )Úp0rS   s    €r&   Ú_should_repr_stringsz'serialize.<locals>._should_repr_strings�   s‰   ø€ ð(	Ø�a‘ˆBØ�\Ò! d¨1¡g°Ò&9¸dÀ1¹gÈÒ>OØð Ð.Ñ.Ø˜‘G˜xÒ'Ø˜‘G˜|Ò+Ø˜‘G˜xÒ'Ø˜‘G˜vÒ%àð øô ò 	Ùð	ús   ƒA ž$A Á	AÁAc                  ó˜   •— 	  ‰«       } | dv r| S  ‰«       }|dv r|S ‰d   }|dk(  r‰d   dk(  r‰d    y|dk(  ry	 y
# t         $ r Y y	w xY w)zÀ
        A databag is any value that we need to trim.

        :returns: Works like `_should_repr_strings()`. `True` for "yes",
            `False` for :"no", `None` for "maybe soon".
        )TNr   ÚbreadcrumbsrI   r\   é   TÚextraNFr_   )ÚrvÚis_request_bodyr`   Ú_is_request_bodyra   rS   s      €€€r&   Ú_is_databagzserialize.<locals>._is_databag³   s�   ø€ ð	Ù%Ó'ˆBØ�\Ñ!Ø�	á.Ó0ˆOØ ,Ñ.Ø&Ð&à�a‘ˆBØ�]Ò" t¨A¡w°(Ò':Ø�Q’Øà�WŠ}Øð ð øô ò 	Ùð	ús   ƒ= �= �= µ= ½	A	ÁA	c                  óH   •— 	 ‰ d   dk(  r	‰ d   dk(  ryy# t         $ r Y y w xY w)Nr   ÚrequestrI   ÚdataTFr_   )rS   s   €r&   rh   z#serialize.<locals>._is_request_bodyÑ   s;   ø€ ð	Ø�A‰w˜)Ò#¨¨Q©°6Ò(9Øð øô ò 	Ùð	ús   ƒ •	! !c           	      óØ  •— |�‰j                  |«       	 ‰	j                  | «      5 }|r3t        cd d d «       |�"‰j                  «        ‰
t	        ‰«      dz   d …= S S  ‰| |||||¬«      cd d d «       |�"‰j                  «        ‰
t	        ‰«      dz   d …= S S # 1 sw Y   nxY wnx# t
        $ rl t        t        j                  «       «       |r&Y |�"‰j                  «        ‰
t	        ‰«      dz   d …= yyY |�"‰j                  «        ‰
t	        ‰«      dz   d …= y y w xY w	 |�"‰j                  «        ‰
t	        ‰«      dz   d …= y y # |�"‰j                  «        ‰
t	        ‰«      dz   d …= w w xY w)NrI   )Ú
is_databagrg   Úshould_repr_stringsÚremaining_depthÚremaining_breadthz=<failed to serialize, use init(debug=True) to see error logs>)	r$   r4   ÚCYCLE_MARKERr:   rK   ÚBaseExceptionr   ÚsysÚexc_info)r3   rn   rg   ro   rP   rq   rp   ÚresultÚ_serialize_node_implÚmemorR   rS   s           €€€€r&   Ú_serialize_nodez"serialize.<locals>._serialize_nodeÛ   s‘  ø€ ð ÐØ�K‰K˜Ô ð	0Ø—‘˜cÓ"ð  fÙÜ'÷ð ð( Ð"Ø—‘”
Øœs 4›y¨1™}™Ñ/ð #ñ! ,ØØ)Ø$3Ø(;Ø$3Ø&7ô÷	ð ð( Ð"Ø—‘”
Øœs 4›y¨1™}™Ñ/ð #÷)ð úð øô ò 	Ü&¤s§|¡|£~Ô6áØVð Ð"Ø—‘”
Øœs 4›y¨1™}™Ñ/ð #ð àÐ"Ø—‘”
Øœs 4›y¨1™}™Ñ/ð #ð	úðð( Ð"Ø—‘”
Øœs 4›y¨1™}™Ñ/ð #øˆwÐ"Ø—‘”
Øœs 4›y¨1™}™Ñ/ð #úsQ   –B% §B¯	B% ÁBÁ*	B% ÂB!ÂB% Â$E Â%(DÃE Ã3E ÄDÄE Å&E)c                 ód   •— t        | t        «      r ‰di | j                  ¤Ž | j                  } | S )NrC   )Ú
isinstancer   Úmetadatar<   )r3   rT   s    €r&   Ú_flatten_annotatedz%serialize.<locals>._flatten_annotated  s*   ø€ ä�cœ>Ô*ÙÑ%˜Ÿ™Ò%Ø—)‘)ˆCØˆ
r(   c                 ó4  •
— t        | t        «      rd}|€ ‰«       }|€ ‰«       }|€ ‰«       }|r+|r‰rt        d«      }t        d«      }n|€t        }|€t        } ‰| «      } |�0|dk  r+ ‰ddgg¬«       |r ‰t        t        | «      ‰¬«      «      S y |r1t        r+‰|dœ}t        D ]  } || |«      }|t        usŒ ‰|«      c S  t        t        | «      d	d «      }	| �t        | t        t        f«      rI|s:t        | t        «      r5t        j                  | «      st        j                  | «      rt        | «      S | S t!        |	«      r |	| «      S t        | t"        «      r!|st%        t'        | «      «      S t        | «      S t        | t(        «      rtt+        t-        | «      «      } i }
d}t-        | «      D ]L  \  }}|�||k\  r ‰t/        | «      ¬
«        |
S t%        |«      } ‰||||||�|dz
  nd |¬«      }||
|<   |dz  }ŒN |
S t        | t0        «      snt        | t2        t4        f«      rXg }t7        | «      D ]F  \  }}|�||k\  r ‰t/        | «      ¬
«        |S |j9                   ‰||||||�|dz
  nd |¬«      «       ŒH |S |rt        | «      } nMt        | t:        «      st        | t<        «      r| j?                  dd«      } t        | t@        «      st        | «      } t/        ‰«      dk(  xr ‰d   dk(  xr ‰d   dk(  }|r| S  ‰t        | ‰¬«      «      S )NFÚinfr   z!limitÚx)Úrem)Ú
max_length)rx   rp   Ú__sentry_repr__)rK   rI   )rP   ro   rn   rg   rp   rq   zutf-8ÚreplacerX   Úspansr6   Údescription)!r{   r   ÚfloatÚMAX_DATABAG_DEPTHÚMAX_DATABAG_BREADTHr	   r   r#   ÚNotImplementedÚgetattrÚtypeÚboolr   ÚmathÚisinfÚisnanÚcallabler   r
   r   r   Údictr   rK   Úserializable_str_typesr   r   Ú	enumerater$   ÚbytesÚ	bytearrayÚdecoder   )r3   rn   rg   ro   rp   rq   Úhintsr%   rv   Úsentry_reprÚrv_dictÚiÚkÚvÚstr_kÚrv_listÚis_span_descriptionrT   r}   ri   rh   ry   ra   Úkeep_request_bodiesrG   rx   rS   s                    €€€€€€€€€€r&   rw   z'serialize.<locals>._serialize_node_impl  sy  ø€ ô �cœ>Ô*Ø"'ÐØÐ&Ù"6Ó"8ÐàÐÙ$›ˆJàÐ"Ù.Ó0ˆOáÙÑ#6Ü"'¨£,�Ü$)¨%£LÑ!à"Ð*Ü&7�OØ$Ð,Ü(;Ð%á  Ó%ˆàÐ&¨?¸aÒ+?Ù˜H c˜?Ð+Õ,ÙÙ)Ü ¤¨3£Ð<LÔMóð ð áÕ0Ø!°oÑFˆEÜ3ò 6�	Ù" 3¨Ó.�Ø¤Ò/Ù-¨fÓ5Ò5ð6ô
 œd 3›iÐ):¸DÓAˆàˆ;œ* S¬4´Ð*>Ô?Ù"Ü˜3¤Ô&¬D¯J©J°s¬O¼t¿z¹zÈ#¼ä  “~Ð%à�
ä�kÔ"Ù˜sÓ#Ð#ä˜œXÔ&ñ +ô Ô*¨3Ó/Ó0ðô ˜s“^ðô ˜œWÔ%ô ”y “~Ó&ˆCàˆGØˆAä! #›ò ‘��1Ø$Ð0°QÐ:KÒ5KÙ¤# c£(Õ+Øð" ˆNô " !›�Ù#ØØ!Ø(;Ø)Ø$3à&Ð2ð %4°aÒ$7àØ&7ô
�ð "#�˜‘Ø�Q‘‘ð%ð( ˆNä˜CÔ!7Ô8¼ZØ”#”x�ô>
ð ˆGä! #›ò ‘��1Ø$Ð0°QÐ:KÒ5KÙ¤# c£(Õ+Øð  ˆNð —‘Ù#ØØ !Ø,?Ø#-Ø(7à*Ð6ð )8¸!Ò(;à!Ø*;ô
õðð& ˆNáÜ˜C“.‰Cä˜#œuÔ%¬°C¼Ô)CØ—j‘j ¨)Ó4�ä˜c¤<Ô0Ü “n�ô �‹I˜‰NÒO˜t A™w¨'Ñ1ÒO°d¸2±hÀ-Ñ6Oð 	ñ ØˆJá!¤,¨sÐ?OÔ"PÓQÐQr(   Tr   Ú_metaF)NNNNNN)r*   r:   r   Úsetr{   r’   )ÚeventÚkwargsÚserialized_eventrT   r}   ri   rh   ry   rw   ra   r¡   rG   rx   rR   rS   s      @@@@@@@@@@@@r&   Ú	serializer§   u   sî   ÿû€ ä‹6€DØ€DØ€Jð 	�
‰
Ð*¨DÓ1°XÑ=ð ð —z‘zÐ"4°dÓ;Ðõ7ô$öLô<ð ØØ ØØØ÷$0ð $0ôL÷JRõ JRô^ ×Ñ˜dÔ#ð)Ù*¨5Ñ;°FÑ;ÐÙœ*Ð%5´tÔ<Ø(2°1©Ð˜WÑ%àä×!Ñ! %Õ(øÔ×!Ñ! %Õ(ús   Â$C ÃC")4rt   rŽ   r   Úsentry_sdk.utilsr   r   r   r   r   r	   Úsentry_sdk._compatr
   r   r   r   r   r   Úsentry_sdk._typesr   Útypesr   Útypingr   r   r   r   r   r   r   r   r   r   ÚstrÚSpanÚReprProcessorÚintÚSegmentÚcollectionsr   r   r   r“   Úcollections.abcÚMAX_EVENT_BYTESrˆ   r‰   rr   r#   r'   Úobjectr*   r§   rC   r(   r&   ú<module>r¶      sò   ðÛ 
Û å ÷÷ ÷÷ õ ,áÝ#åÝÝ%ÝÝÝÝÝç;à��S�‰>€Dà˜c 4¨¨S¨¡>Ð2°EÐ:LÈcÐ:QÑ4RÐRÑS€MØ�C˜�H‰o€Gñ ÷ 3Ñ2à)Ð,AÑAÑ÷
 7Ñ6ð *Ð,AÑAÐð €ð Ð ØÐ Ø€ð Ð ò-ô
2ˆ6ô 2ó@j)r(   