
    i                     Z   d dl Z d dlZ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mZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZ 	 d dlmZ n# e$ r dZY nw xY wdZg dZd	gZ d
Z!dZ"dZ#dZ$ e%d          Z&dZ' G d d          Z(ed         Z) edi deed         eee*ef                  f         de*dee*ee*e+f         f         de*dee,         de*deee*ef                  de*deed         eee*ef                  f         de)de*d e*d!ee*e*f         d"ee*         d#ed$         d%e+d&e*ee*e+f         e*eee*e+f                  ee*e+f         eee*         eed         eee*ef                  f         ee         e*ed'         ee*e+f         ee*e+f         d(d)*          Z- ed+d,d,          Z. ej/        d-          Z0d.Z1d/ Z2d0 Z3dbd1Z4 G d2 d3          Z5e
r ed4          Z6ee5e6f         Z7d5 Z8d6 Z9d7d8d9e:fd:Z;d; Z<	 	 	 dcd<Z=	 dbd=Z>d> Z?d? Z@d@ ZA	 	 dddAZBdB ZCdC ZD	 	 	 	 dedDZE eFeGdE          ZHeHrdF ZIndG ZI	 	 	 	 dfdHZJ	 dbdIZKdJ ZLdK ZMdL ZNdcdMZOdbdNZPdO ZQdP ZRdQ ZSdR ZTdS ZUdT ZVdU ZWdV ZXdW ZYdbdXZZdY Z[dZ Z\d[ Z]dbd\Z^dgd]Z_d^ Z`	 dhd_Zad` Zbda ZcdS )i    N)datetime)	FrameTypeTracebackType)TYPE_CHECKINGAnyDictIteratorListLiteralOptionalPatternSetTuple	TypedDictTypeVarUnioncast)ExceptionArgExcInfo)BaseExceptionGroup   )z(?i)passwordz
(?i)secretz
(?i)passwdz(?i)pwdz(?i)api_keyz
(?i)apikeyz(?i)authz(?i)credentialsz(?i)privatekeyz(?i)private_keyz	(?i)tokenz(?i)aws_access_key_idz	(?i)_passz(?i)sk_z(?i)jwtz^__.*z-$$_posthog_redacted_based_on_masking_rules_$$z$$_posthog_value_too_long_$$i  d   z\.^$*+?{}[]|()i P  c                   *    e Zd ZefdZd Zd Zd ZdS )VariableSizeLimiterc                 "    || _         d| _        d S )Nr   max_sizecurrent_size)selfr   s     J/var/www/icac/venv/lib/python3.11/site-packages/posthog/exception_utils.py__init__zVariableSizeLimiter.__init__L   s         c                 (    | j         |z   | j        k    S N)r   r   r   sizes     r    can_addzVariableSizeLimiter.can_addP   s     4'4=88r"   c                 &    | xj         |z  c_         d S r$   )r   r%   s     r    addzVariableSizeLimiter.addS   s    T!r"   c                      | j         | j        z
  S r$   r   )r   s    r    get_remaining_spacez'VariableSizeLimiter.get_remaining_spaceV   s    }t000r"   N)__name__
__module____qualname__"DEFAULT_TOTAL_VARIABLES_SIZE_LIMITr!   r'   r)   r+    r"   r    r   r   K   sX         B    9 9 9" " "1 1 1 1 1r"   r   )fatalcriticalerrorwarninginfodebugEventbreadcrumbsvaluescheck_in_idcontextsdistdurationenvironmenterrorsevent_id	exceptionlevelloggermessagemodulesmonitor_slugplatformpythonprofilerelease)check_intransaction)requestserver_namespans
stacktracestart_timestampstatusthreads	timestamprL   typeuser_metrics_summaryF)totali     z^[a-zA-Z0-9/+=]*$z
[Filtered]c                 :    | t           z
                                  S r$   )epochtotal_secondsvalues    r    to_timestampr_      s    EM((***r"   c                 ,    |                      d          S )Nz%Y-%m-%dT%H:%M:%S.%fZ)strftimer]   s    r    format_timestamprb      s    >>1222r"   c                 h    | t          j                    } nt          |           } | d         d} d| iS )z+Creates a hint with the exc info filled in.Nr   exc_info)sysrd   exc_info_from_errorrd   s    r    event_hint_with_exc_inforh      s>     <>>&x00{!!r"   c                   d    e Zd ZdZdZd Zd Zed             Zed             Z	ed             Z
dS )	AnnotatedValuezA
    Meta information for a data field in the event payload.
    r^   metadatac                 "    || _         || _        d S r$   rk   )r   r^   rl   s      r    r!   zAnnotatedValue.__init__   s    
 r"   c                 p    t          |t                    sdS | j        |j        k    o| j        |j        k    S )NF)
isinstancerj   r^   rl   )r   others     r    __eq__zAnnotatedValue.__eq__   s6    %00 	5zU[(LT]en-LLr"   c                 .    t          ddddggi          S )zxThe value was removed because it could not be parsed. This is done for request body values that are not json nor a form. remz!rawxrk   rj   clss    r    removed_because_raw_dataz'AnnotatedValue.removed_because_raw_data   s6     

 

 

 
	
r"   c                 .    t          ddddggi          S )zThe actual value was removed because the size of the field exceeded the configured maximum size (specified with the max_request_body_size sdk option)rs   rt   !configru   rk   rv   rw   s    r    removed_because_over_size_limitz.AnnotatedValue.removed_because_over_size_limit   s6     !

 

 

 
	
r"   c                 8    t          t          dddggi          S )zHThe actual value was removed because it contained sensitive information.rt   r{   srk   )rj   SENSITIVE_DATA_SUBSTITUTErw   s    r    +substituted_because_contains_sensitive_dataz:AnnotatedValue.substituted_because_contains_sensitive_data   s6     +!

 

 

 
	
r"   N)r,   r-   r.   __doc__	__slots__r!   rq   classmethodry   r|   r   r0   r"   r    rj   rj      s          &I! ! !
M M M 
 
 [
 
 
 [
 
 
 [
 
 
r"   rj   Tc                 F    t          | dd           pt          | dd           S )Nr.   r,   getattrrw   s    r    get_type_namer      s%    3--Oj$1O1OOr"   c                 4    t          | dd           }|dvr|S d S )Nr-   )Nbuiltins__builtins__r   )rx   mods     r    get_type_moduler      s)    
#|T
*
*C
444
4r"   framer   returnc                     	 | j         d         }|                    d          rdS n# t          t          f$ r Y nw xY wdD ]#}	 | j        |         r dS # t
          $ r Y  w xY wdS )Nr,   zsentry_sdk.T)__traceback_hide____tracebackhide__F)	f_globals
startswithAttributeErrorKeyErrorf_locals	Exception)r   r   	flag_names      r    should_hide_framer     s    oj)>>-(( 	4	H%    ?  		~i( tt 	 	 	D	 5s   "' ;;A
A! A!c              #   X   K   | }|#t          |j                  s|V  |j        }|!d S d S r$   )r   tb_frametb_next)tbtb_s     r    iter_stacksr     sA      
C
/ .. 	IIIk /////r"   c                    d}d }|Vt          |d          rF	 |                    |          }n# t          t          f$ r d }Y nw xY w||                                }|2	 t          j        |           }n# t          t          f$ r g d g fcY S w xY w|sg d g fS t          d||z
            }t          |dz   |z   t          |                    }		 fd|||         D             }
t          ||                             d                    }fd||dz   |	         D             }|
||fS # t          $ r g d g fcY S w xY w)	N   
get_sourcer   rY   c                 X    g | ]&}t          |                    d                     'S 

max_lengthstrip_stringstrip.0liner   s     r    
<listcomp>z'get_lines_from_file.<locals>.<listcomp>A  sB     
 
 
 F++
CCC
 
 
r"   r   r   c                 X    g | ]&}t          |                    d                     'S r   r   r   s     r    r   z'get_lines_from_file.<locals>.<listcomp>F  sB     
 
 
 F++
CCC
 
 
r"   )hasattrr   ImportErrorIOError
splitlines	linecachegetlinesOSErrormaxminlenr   r   
IndexError)filenamelinenor   loadermodulecontext_linessource
source_strlower_boundupper_boundpre_contextcontext_linepost_contexts     `          r    get_lines_from_filer   "  s    MFgfl;;	**622JJW% 	 	 	JJJ	!**,,F~	 '11FF! 	  	  	 tR<	   4|a-/00Kfqj=0#f++>>K
 
 
 
{612
 
 
 $F6N$8$8$@$@ZXXX
 
 
 

k9:
 
 
 L,66   4|s4   / AA!A6 6BBAD. .E ?E c                    	 | j         j        }n# t          $ r d }Y nw xY w	 | j        d         }n# t          $ r g d g fcY S w xY w	 | j        d         }n# t          $ r d }Y nw xY w|dz
  }||rt	          |||||          S g d g fS )Nr,   
__loader__rY   )r   r   )f_codeco_filenamer   r   r   )r   	tb_linenomax_value_lengthabs_pathr   r   r   s          r    get_source_contextr   P  s    <+   ,   4|.   ]Fh"f.vf
 
 
 	
 tR<s-    0 AAA A#"A#c                 `    	 t          |           S # t          $ r t          |           cY S w xY wr$   )strr   	safe_reprr]   s    r    safe_strr   j  sB     5zz       s    --c                 D    	 t          |           S # t          $ r Y dS w xY w)Nz<broken repr>)reprr   r]   s    r    r   r   r  s5    E{{   s    
c                    |r| s|S 	 |                     d          r
|d d         }|                     dd          d         }|| k    rt          j                            |          S t
          j        |         j        }|s|S |                    |                    t          j	        d          d         d          d         
                    t          j	                  S # t          $ r |cY S w xY w)Nz.pyc.rY   r      )endswithsplitospathbasenamere   rE   __file__rsplitseplstripr   )r   r   base_modulebase_module_paths       r    filename_for_moduler   z  s    6 V$$ 	%}Hll3**1-&  7##H---;{3< 	O~~.55bfa@@CQGGKRRF
 
 	
    s   AC  (C  AC   C/.C/c                 n   t          | dd           }|sd }d }n| j        j        }| j        j        }	 | j        d         }n# t
          $ r d }Y nw xY w|| j        }dt          ||          pd |rt          j	        
                    |          nd |pd||d}t          | ||          \  |d<   |d<   |d<   |S )	Nr   r,   rH   z	<unknown>)rG   r   r   functionr   r   r   r   r   )r   r   r   co_namer   r   f_linenor   r   r   abspathr   )r   r   r   r   r   r   r   rvs           r    serialize_framer     s	    UHd++F (<+<',    N	 '99AT19CBGOOH---t+
 
B ASy*A A=B}r.)2n+= Is   A   AAc                 $    t          | dd           S )Nerrnor   )	exc_values    r    	get_errnor     s    9gt,,,r"   c                 h    t          | dd          pt          | dd          p| }t          |          S )NrD   rs   detail)r   r   )r   rD   s     r    get_error_messager     sD     		9b)) 	9h++	  Gr"   c                    i }|r|                                 nddd|d<   |||d         d<   |t          |          }nd}|D|d                             di                               di                               d	|           |||d         d
<   |dk    }	|	s|||d         d<   d|d         d<   |	rd|d         vrd|d         d<   t          duot	          |t                    }
|
rd|d         d<   t          |           |d<   t          |           |d<   t          |          |d<   t          fdt          |          D             }|r|dd|d<   |S )zJ
    Creates a dict that goes into the events `exception.values` list
    genericT)rU   handled	mechanismNexception_idmetar   numberr   r   	parent_idchainedrU   is_exception_groupr   r^   c                 H    g | ]}t          |j        |j                   S ))r   r   )r   r   r   )r   r   r   s     r    r   z5single_exception_from_error_tuple.<locals>.<listcomp>  sG         	Kl-	
 	
 	
  r"   raw)framesrU   rP   )
copyr   
setdefaultr   ro   r   r   r   DEFAULT_MAX_VALUE_LENGTHr   )exc_typer   r   r   r   r   r   exception_valuer   is_root_exceptionr   r  r   s               @r    !single_exception_from_error_tupler    s    O%O	I$+O+O K  7C$^4)$$$//;;FFR	
 	

*Xu
%
%
%17$X.$) 9!64=$[1/8$V, 9V?;+GGG/8$V,+47 J%= =  B=A$%9: / 9 9OH+H55OF0;;OG/    b//  F  J395(I(I%r"   __suppress_context__c              #     K   | \  }}}g }t                      }||t          |          |vr|||fV  |                    |           |                    t          |                     |j        r|j        }n|j        }|d S t          |          }|}t          |dd           }||t          |          |vd S d S d S d S d S d S )N__traceback__)	setidappendr)   r	  	__cause____context__rU   r   )rd   r  r   r   seen_exceptionsseen_exception_idscauses          r    walk_exception_chainr    s     "*)R UU  %9%777Ir))))
 ""9---""2i==111- .!+!-}E{{HI66B)  %9%77777 ! %%77 ! %%r"   c              #      K   | V  d S r$   r0   rg   s    r    r  r  /  s      r"   c                 (   t          | ||||||          }|g}|}|dz  }t          |d          o|j        }	|	rn|ot          |d          o|j        du}
|
rP|j        }t	          t          |          |t          |dd          ||d          \  }}|                    |           nm|ot          |d          o|j        du}|rP|j        }t	          t          |          |t          |dd          ||d          \  }}|                    |           |ot          |d	          }|rgt          |j
                  D ]R\  }}t	          t          |          |t          |dd          |||d
|z            \  }}|                    |           S||fS )zx
    Creates the list of exceptions.
    This can include chained exceptions and exceptions from an ExceptionGroup.
    )r  r   r   r   r   r   r   rY   r	  r  Nr  )r  r   r   r   r   r   r  
exceptionszexceptions[%s])r  r   r	  r  exceptions_from_errorrU   r   extendr  	enumerater  )r  r   r   r   r   r   r   parentr  should_supress_contextexception_has_causer  child_exceptionsexception_has_contentcontextr   idxes                     r    r  r  4  s;    /!  F JIAL 		122Uy7U   &0  0	;//0#4/ 	
  
	0'E/De5/488#)"0 0 0,\+ .///  2	=112%T1 	
 ! 
	0+G/Dg!7OT::#)$0 0 0,\+ ./// #Gwy,'G'G 0	 455 
	0 
	0FC/Da1ot44#)#'#-0 0 0,\+ .////*%%r"   c           	      &   | \  }}}t           d uot          |t                     }|rt          ||||dd          \  }}n=g }t          |           D ]+\  }}}|                    t          ||||                     ,|                                 |S )Nr   )r  r   r   r   r   r   )r   ro   r  r  r  r  reverse)rd   r   r  r   r   r   _r  s           r    exceptions_from_error_tupler&    s    
 'Hi+47 J%= =  /
 
 
JJ 
';H'E'E 	 	#Hi1(Ir9UU    r"   c                 p    	 t          |           S # t          $ r t          |           dd         cY S w xY w)NrY   r   )r   UnicodeDecodeErrorr   r]   s    r    	to_stringr)    sI    !5zz ! ! !E{{1R4    !s    !55c              #      K   d| v r
| d         V  d| v r.| d                              d          pdD ]}d|v r
|d         V  d| v r.| d                              d          pdD ]}d|v r
|d         V  d S d S )NrP   rS   r9   r0   rA   )get)eventthreadrA   s      r    iter_event_stacktracesr.    s      uL!!!!EI&**844: 	+ 	+Fv%%\****e{+//99?R 	. 	.Iy((---- 	. 	.r"   c              #   j   K   t          |           D ] }|                    d          pdD ]}|V  !d S )Nr  r0   )r.  r+  )r,  rP   r   s      r    iter_event_framesr0    sW      ,U33  
^^H--3 	 	EKKKK	 r"   c                 v    t          |           D ](}t          |                    d          |||           )| S )Nr  )in_app_excludein_app_includeproject_root)r.  set_in_app_in_framesr+  )r,  r2  r3  r4  rP   s        r    handle_in_appr6    sT    ,U33 
 

NN8$$))%		
 	
 	
 	
 	
 Lr"   c                 P   | sd S | D ]}|                     d          }||                     d          }t          ||          rd|d<   Et          ||          rd|d<   [|                     d          }|st          |          rd|d<   t          ||          rd|d<   | S )Nin_appr   TFr   )r+  _module_in_list_is_external_source_is_in_project_root)r  r2  r3  r4  r   current_in_appr   r   s           r    r5  r5    s     t  8,,%8$$ 6>22 	"E(O 6>22 	#E(O 99Z((x(( 	#E(Ox66 	"E(O	 Mr"   c                     t          | t                    rt          | d          S t          | t                    r3t	          |           dk    r | d         d uot          | d         d          S dS )N__posthog_exception_capturedrY   F)ro   BaseExceptionr   tupler   )r3   s    r    exception_is_already_capturedrA     sz    %'' 	u<=== 
E5	!	! c%jj1nnQxt# 
!H4)
 )
 	
 ur"   c                 @   t          | t                    r$t          | dd           t          | d|           d S t          | t                    rKt	          |           dk    r:| d         4t          | d         dd           t          | d         d|           d S d S d S d S )Nr>  T__posthog_exception_uuidrY   )ro   r?  setattrr@  r   )r3   uuids     r    mark_exception_as_capturedrF    s    %'' @5t<<<1488888 
E5	!	! @c%jj1nn8E!H<dCCCE!H8$?????@ @nnr"   c                    t          | t                    rt          |           dk    r| \  }}}nt          | t                    ru	 t	          |            n# t
          $ r Y nw xY wt          | dd           }|t          |           }| }nNt          j	                    \  }}}|| urd }| }t          |           }nt          dt          |           z            |||f}t          rt          t          |          }|S )N   r  z,Expected Exception object to report, got %s!)ro   r@  r   r?  construct_artificial_tracebackr   r   rU   re   rd   
ValueErrorr   r   r   )r3   r  r   r   rd   s        r    rf   rf     s   % WCJJ!OO"')RR	E=	)	) W	*51111 	 	 	D	UOT22>E{{HII&)lnn#Hi%%!	;; G$u++UVVV)R(H + **Os   A 
A#"A#c                 R   t          | dd           d S d}g }	 	 t          j        |          }|dz  }n# t          $ r Y nw xY w|                    |           A|                                 d }|D ]#}t          j        |||j        |j	                  }$t          | d|           d S )Nr  r   TrY   )r   re   	_getframerJ  r  r$  typesr   f_lastir   rD  )r"  depthr  r   r   s        r    rI  rI  <  s    q/4((4EF	M%((EQJEE 	 	 	E	 	e NN	B K K UEM5>JJA#####s   4 
A Ac                 b    | dS |sdS |D ]#}|| k    s|                      |dz             r dS $dS )NFr   Tr   )nameitemsitems      r    r9  r9  U  sX    |u u  4<<4??4#:66<44  5r"   c                 4    t          j        d|           d u}|S )Nz [\\/](?:dist|site)-packages[\\/])research)r   external_sources     r    r:  r:  d  s&     		5x@@L  r"   c                 <    |dS |                      |          rdS dS NFTrQ  )r   r4  s     r    r;  r;  m  s/    u <(( t5r"   c                 v    |                      d          d|dz
                               dd          }|dz   S )zd
    Truncate a UTF-8-encodable string to the last full codepoint so that it fits in max_bytes.
    utf-8NrH  ignore)r?   ...)encodedecode)string	max_bytes	truncateds      r    _truncate_by_bytesrd  y  s@    
 g&&Q7>>wx>XXIur"   c                 x    	 t          |                     d                    S # t          t          f$ r Y d S w xY w)Nr\  )r   r_  UnicodeEncodeErrorr(  r]   s    r    _get_size_in_bytesrg    sI    5<<(())) 23   tts   !$ 99c                     | s| S |t           }t          |           }t          |           }|||k    rt          | |          }n|||k    r| d |dz
           dz   }n| S t	          ||p|dd|dz
  |ggd          S )NrH  r^  z!limitru   )r   rt   rk   )r  rg  r   rd  rj   )r^   r   	byte_size	text_sizetruncated_values        r    r   r     s     -
"5))IE

IZ!7!7,UJ??		9z#9#9 0*q. 01E9)	sJNJ?@
 
   r"   c                     t          j        d|           }|sd S | |                                d          }|rt          d |D                       rd S |                                S )Nz^\(\?[aiLmsux]*i[aiLmsux]*\)c              3   (   K   | ]}|t           v V  d S r$   )_REGEX_METACHARACTERS)r   cs     r    	<genexpr>z+_extract_plain_substring.<locals>.<genexpr>  s(      JJ1A!66JJJJJJr"   )rV  matchendanylower)patterninline_flags	remainders      r    _extract_plain_substringrx    sz     8;WEEL t((**,,-I JJ	JJJJJ t??r"   c                     | sd S g }g }| D ]a}t          |          }||                    |           )	 |                    t          j        |                     R# t          $ r Y ^w xY w|s|sd S ||fS r$   )rx  r  rV  compiler   )patterns
substringsregexesru  simples        r    _compile_patternsr    s     tJG  )'22f%%%%rz'223333    g t  s   'A
A*)A*c                     |dS |\  }}|r |                                  }|D ]	}||v r dS 
|D ]}|                    |           r dS dS rZ  )rt  rW  )rR  r{  r|  r}  
name_lowerr~   ru  s          r    _pattern_matchesr    s    u"J ZZ\\
 	 	AJtt   >>$ 	44	5r"   c                    s| S t          | t          t          t          f          r:t	                      t          |           }|v rdS                     |           t          | t                    rt          |           t          k    rt          S i }| 
                                D ]}\  }}t          |t                    st          |          n|}t          |          t          k    rt          ||<   Nt          |          rt          ||<   it          |          ||<   ~|S t          | t          t          f          rFt          |           t          k    rt          S fd| D             } t!          |           |          S t          | t                    r8t          |           t          k    rt          S t          |           rt          S | S | S )Nz<circular ref>c                 2    g | ]}t          |          S r0   )_mask_sensitive_data)r   rT  _seencompiled_masks     r    r   z(_mask_sensitive_data.<locals>.<listcomp>  s3     
 
 
AE }e<<
 
 
r"   )ro   dictlistr@  r  r  r)   r   _MAX_COLLECTION_ITEMS_TO_SCANCODE_VARIABLES_TOO_LONG_VALUErS  r   #_MAX_VALUE_LENGTH_FOR_PATTERN_MATCHr  CODE_VARIABLES_REDACTED_VALUEr  rU   )	r^   r  r  obj_idresultkvkey_strmasked_itemss	    ``      r    r  r    s    %$e,-- =EEEEU??##		&% u::55500KKMM 	J 	JDAq$.q#$6$6=c!fffAG7||AAA9q		!'=99 J9q		0M5IIq			ED%=	)	) u::55500
 
 
 
 
IN
 
 
 tE{{<(((	E3		 u::;;;00E=11 	100r"   c                 V   	 | d}nt          | t                    rt          |           }nt          | t          t          f          rJt          t          |                     }|                    |          sd S |                    |           | S t          | t                    r=t          |           t          k    rt          }nA|rt          | |          rt          }n'| }n$t          | |          }t          j        |          }t          |          |k    r|d |dz
           dz   }t          |          }|                    |          sd S |                    |           |S # t          $ r4 	 t!          |           }t          |          |k    r|d |dz
           dz   }t          |          }|                    |          sY d S |                    |           |cY S # t          $ r 	 dt#          |           j         d}t          |          }|                    |          sY Y d S |                    |           |cY cY S # t          $ rI d}t          |          }|                    |          sY Y Y d S |                    |           |cY cY cY S w xY ww xY ww xY w)NNonerH  r^  <>z<unserializable object>)ro   boolr   intfloatr   r'   r)   r  r  r  r  r  jsondumpsr   r   rU   r,   )	r^   limiterr   r  r  result_sizemasked_valuefallbackfallback_sizes	            r    _serialize_variable_valuer     s   8 =FFt$$ 	.ZZFFU|,, 	.c%jj//K??;// tKK$$$Ls## 		.5zz???6 #3E=#I#I 6/}EELZ--Fv;;##,j1n,-5F&kk{++ 	4K         	 %[[F6{{Z'' 0*q. 01E9f++K??;// ttKK$$$MMM 	  	  	  6tE{{3666 #H}55  444M***      4 #H}55  4444M*** 	  s   A8E) <E) B=E) E) )J(5AG'G'$J('
J$2<I.J(2IJ$	J(0J =J$>J(J J$J(J  J$$J(c                 n    t          | t          d           t          t          t          t
          f          S r$   )ro   rU   r  r  r  r   r]   s    r    _is_simple_typer  <  s#    ed4jj$UC@AAAr"   c                    |g }|g }t          |          }t          |          }	 | j                                        }n# t          $ r i cY S w xY wi }i }	|                                D ]0\  }
}t          |
|          rt          |          r|||
<   +||	|
<   1i }i ||	}t          t          |	                                                    t          t          |		                                                    z   }|D ]}}
||
         }t          |
|          rHt          }t          |          }|                    |          s n7|                    |           |||
<   bt          ||||          }| n|||
<   ~|S r$   )r  r   r  r   rS  r  r  r  sortedkeysr  r   r'   r)   r  )r   r  mask_patternsignore_patternsr   r  compiled_ignore
local_varssimple_varscomplex_varsrR  r^   r  all_varsordered_namesredacted_valueredacted_size
serializeds                     r    serialize_code_variablesr  @  s    %m44M'88O^((**

   			 KL!'')) ' 'eD/22 	5!! 	' %K!&LF.+..H 0 0 2 23344tF<CTCTCVCV<W<W7X7XXM & &D-00 	&:N//M??=11 KK&&&)F4LL2w
M J !%F4LLMs   A AAc                 N    	 t          | |||           d S # t          $ r Y d S w xY wr$   )attach_code_variables_to_framesr   )all_exceptionsrd   r  r  s       r    #try_attach_code_variables_to_framesr  v  sP    'Hm_	
 	
 	
 	
 	
    s    
$$c           	      `   |\  }}}|d S t          t          |                    }|sd S t                      }| D ]r}	|	                    d          }
|
rd|
vr|
d         }t	          ||          D ];\  }}|                    d          st          |j        |||d          }|r||d<   <sd S )NrP   r  r8  r   )r  r  r   code_variables)r  r   r   r+  zipr  r   )r  rd   r  r  r  r   	traceback	tb_framesr  rA   rP   serialized_framesserialized_frametb_item	variabless                  r    r  r    s    &."Hi[++,,I !##G# ? ?	]]<00
 	XZ77&x0),->	)J)J 	? 	?%g#''11 0 + /  I  ?5> !12	?? ?r"   r$   )NNN)NN)NNNN)Nr   r   N)r   N)NNr   )dr  r   r   rV  re   rM  r   r   r   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   posthog.argsr   r   r   r   r   r  $DEFAULT_CODE_VARIABLES_MASK_PATTERNS&DEFAULT_CODE_VARIABLES_IGNORE_PATTERNSr  r  r  r  	frozensetrn  r/   r   LogLevelStrr   objectr  r7   r[   rz  BASE64_ALPHABETr   r_   rb   rh   rj   r   	Annotatedr   r   r  r   r   r   r   r   r   r   r   r   r   r  r   r   HAS_CHAINED_EXCEPTIONSr  r  r&  r)  r.  r0  r6  r5  rA  rF  rf   rI  r9  r:  r;  rd  rg  r   rx  r  r  r  r  r  r  r  r  r0   r"   r    <module>r     s        				 				 



        * * * * * * * *                               " / . . . . . . .+++++++   
   ( ( ( $$ +3 & O  > &+ # # !	"344 %. "1 1 1 1 1 1 1 1 NO	0tHtDcN33
0 	s	0
 	Dd3;//00 	0 	HUO0 	s0 	$tCH~&0 	C0 	THtDcN33
0  	!0$ 	#%0( 	3)0* 	4S>+0. 	/00 	GH%102 	6304 	3506 V$d3;'(K
 $3- HtDcN33
 h'12S&[! f-_0 0 0b g4	 4	 4	n 	q! "*122( + + +
3 3 3
	" 	" 	" 	"A
 A
 A
 A
 A
 A
 A
 A
H  )Ana'(IP P P
  [ T    $   + + + +b    4         4 " " " "J- - -
   A A A AH !,BCC  $7 7 7 7@   W& W& W& W&x    B! ! !. . .  
 
 
 
$ $ $ $N  
@ 
@ 
@  B$ $ $2    	 	 	       :	 	 	! ! !&  ' ' ' 'T9  9  9  9 xB B B
 JN3 3 3 3l  #? #? #? #? #?s   A A! A!