403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python315/Lib/profiling/sampling/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/profiling/sampling/__pycache__/gecko_collector.cpython-315.pyc
R
>lqjr�c�0�]PHs]PHs]PHs]PHs]PHs]PHs]PHs]PHs]PH s]QH$G
s
Gs]QH0G
s
Gs]QH>GsGsGsGsGsGsQQQQQQ,-QQ	QQ
QQ,-QQQQQQ,-QQ
QQQQ,-QQQQQQ,-QQQQQQ,-QQQQQQ,-QQQQQQ,-QQQQQQ,-,	s]s]s]s]s]s]s]s]s]s ]s!] s"]9s#]s$Ps%]s&]s']s(Q%s)Q&s*\OV\*P
Q5s,QQ2s-QQ2s.QQ\
2s/Q s0Q!s1Q"s2Q'Q#ks3Q(Q$ks4P!\c]s]s]s]s]s] sK�h9h))�)�	Collector�filter_internal_frames)�get_opcode_info�
format_opcode)�THREAD_STATUS_HAS_GIL�THREAD_STATUS_ON_CPU�THREAD_STATUS_UNKNOWN�THREAD_STATUS_GIL_REQUESTED�THREAD_STATUS_HAS_EXCEPTION�THREAD_STATUS_MAIN_THREAD�name�Other�color�grey�
subcategories�Python�yellow�Native�blue�GC�orange�GIL�green�CPU�purplez	Code Type�red�Opcodes�magenta�	Exception�	lightblue)�
separators�	allow_nanc�B`�\sQs]JsnQP-QksQsQsQsQsUs	P!)�SpillColumn�buffer_bytesc��[OOV2Um[2UmUe[
UmP!SUmP!�N)�os�path�join�	bytearray�buffer�DEFAULT_SPILL_BUFFER_BYTES�
_buffer_bytes)�self�	directory�basenamer$s&&&$�7C:\Python315\\Lib\profiling\sampling\gecko_collector.py�__init__�SpillColumn.__init__Ks;���G�G�L�L��5��	��k���*6�*>�&�	
���	
��c��U9O[OU2Q*OQ2*
tm[UO2UO6�cUO2P!P!)�
�utf-8)r+�
_JSON_ENCODER�encode�lenr-�flush)r.�values&&r1�append�SpillColumn.appendTsP�����
�,�,�U�3�d�:�B�B�7�K�K���t�{�{��t�1�1�1��J�J�L�2r4c���[UOQ29^tt^2oUOUO2PPP2UOO	2P!)%fhK,9h)�ab)�openr(�writer+�clear�r.�files& r1r;�SpillColumn.flushYsC��
�$�)�)�T�
"�
"�d��J�J�t�{�{�#�#�������#�
"�s�A � A0	�)A0	c#�� �[UOQQ59^tt^2oSFDoUOQ2w�J	PPP2P!)%fhP!9h3h)r7)�encodingr6)rAr(�rstrip)r.rE�lines&  r1�iter_tokens�SpillColumn.iter_tokens^s?���
�$�)�)�g�
.�
.�$����k�k�$�'�'��/�
.�
.�
.�s"�!A �A�
A �A	�A	�	A )r-r+r()
�__name__�
__module__�__qualname__�__firstlineno__r2r=r;rK�__static_attributes__�__classdictcell__��
__classdict__s@r1r#r#Js&����
�"�
��
�
(�(r4r#c�>`�\sQs]dsnQsQsQsQsQsQs	Us
P!)�GeckoThreadSpillc��QUQ0oUOFD!vqE[V[VU*22J#	]Um]UmP!)zthread-�-)�_COLUMNS�setattrr#�sample_count�marker_count)r.r/�tid�prefix�attrr0s&&&   r1r2�GeckoThreadSpill.__init__psD���3�%�q�!��"�m�m�N�D��D��I��7H� I�J�,������r4c��UOOU2UOOU2U9O]*
tmP!��)�
samples_stackr=�samples_timer[)r.�stack_index�time_mss&&&r1�
append_sample�GeckoThreadSpill.append_samplews;�����!�!�+�.���� � ��)����Q��r4c�~�UOOU2UOOU2UOOU2UOOU2UO
OU2UOOU2U9O]*
tmP!rb)�markers_namer=�markers_start_time�markers_end_time�
markers_phase�markers_category�markers_datar\)r.�name_idx�
start_time�end_time�phase�category�datas&&&&&&&r1�
append_marker�GeckoThreadSpill.append_marker|s������ � ��*����&�&�z�2����$�$�X�.����!�!�%�(����$�$�X�.���� � ��&����Q��r4c�f�UOFDvq[V2O2J 	P!r&)rY�getattrr;)r.r_�	_basenames&  r1�prepare_read�GeckoThreadSpill.prepare_read�s#��#�}�}�O�D��D��%�%�'� -r4)r\r[))rdzsamples-stack.json)rezsamples-time.json)rkzmarkers-name.json)rlzmarkers-start-time.json)rmzmarkers-end-time.json)rnzmarkers-phase.json)rozmarkers-category.json)rpzmarkers-data.json)rMrNrOrPrYr2rhrwr|rQrRrSs@r1rVrVds%����	�H���
�(�(r4rVc��`�\sQs]�snP	sQP
QP
-QksQsQ QksQsQs	U1QkQ	ks
U1Q
kQksQsQ
s
QsQsQsQsQ!QksQsQsQsQsQsQsQsQsQsQsQsQsQsUs P!)"�GeckoCollector�	skip_idle�opcodesc��VmV mV0m[O2Q*UmQ,UmQ]-Um-UmPUm	P
Um
,Um]Um]Um
QUm-Um-Um-Um-Um-Um-Um-Um-Um-Um-Um[32Um-UmPUmP!)��z(root)��?)�sample_interval_usecr��opcodes_enabled�time�	monotonicrr�global_strings�global_string_map�threads�	spill_dir�exported�libsr[�last_sample_time�interval�
has_gil_start�no_gil_start�on_cpu_start�
off_cpu_start�python_code_start�native_code_start�gil_wait_start�exception_start�no_exception_start�gc_start_per_thread�set�initialized_threads�opcode_state�_replay_base_timestamp_us)r.r�r�r�s&&$$r1r2�GeckoCollector.__init__�s���$8�!�"��&���.�.�*�T�1��� (�j���"*�A������������
���	���� !�����
� ������������!#���!#��� ���!���"$���$&�� �$'�5�� ����*.��&r4c	�P�VO7cU%cV�U$P!V�U$P!U%c>UOV2V7c%UOVUOU2V�2P!P!UOV2V7c%UOVUOU2V�2P!P!)a�Track binary state transitions and emit markers.

Args:
    tid: Thread ID
    condition: Whether the active state is true
    active_dict: Dict tracking start time of active state
    inactive_dict: Dict tracking start time of inactive state
    active_name: Name for active state marker
    inactive_name: Name for inactive state marker
    category: Gecko category for the markers
    current_time: Current timestamp
)r��
setdefault�_add_marker�pop)	r.r]�	condition�active_dict�
inactive_dict�active_name�
inactive_nameru�current_times	&&&&&&&&&r1�_track_state_transition�&GeckoCollector._track_state_transition�s��� �.�.�.��#/�C� �
�&2�c�"����"�"�3�5��#�� � ��]�5F�5F�s�5K�+�7�$�
�$�$�S�7��!�� � ��;�?�?�3�3G�+�7�"r4c��UO%c[Q2gUe2[O2Q*UO*
oU,oLQU%fP!UO
eU]*UmUO
oSTt,tFDpfU*
Q*MJ	ooU]*oUO]6�cBUO]6�c1UP*UO*
UO*UmUP*UmU%c�[U]*Q2%c�UOU2FDnvq�o
[U2oU%fJV�O7c UOU	P
2UOU	$UOUOU	*V�VG2Jp	U9O[U2*
tmP!SFCD�oUOFCD�o[UO 2oUO"o
UO$o['U[(*2oV�O7cUOV�2UOU
$UOU
*o['U[**2o['U[,*2o['U[.*2oUO1U
UUO2UO4QQ[6U2UO1U
UUO8UO:QQ[<U2U%c2UO1U
P	UO>UO@QQ	[BU2L�U%c2UO1U
P	UO@UO>Q	Q[BU2L�V�OD7c�V�O>7c3UOGU
QUO>OIU
2U[B2V�O@7c3UOGU
Q	UO@OIU
2U[B2U%cUOJOMV�2LBV�OJ7c3UOGU
Q
UOJOIU
2U[62['U[N*2oUO1U
UUOPUORQQ[TU2[V9PIcQ
U2D%fJP	L	P
LQ
U22oU%c V�OX7cVpOXU
$LBV�OX7c3UOGU
QUOXOIU
2U[Z2UODO]U
2U%(9%cU%(oUO^%cU%cCJ�U%fCJ�UOUV�VG2CJ�	CJ�	U9O[U2*
tmP!ttoh)z�Collect samples from stack frames.

Args:
    stack_frames: List of interpreter/thread frame info
    timestamps_us: List of timestamps in microseconds (None for live sampling)
z,cannot append to GeckoCollector after exportr��
awaited_by�Has GIL�No GIL�On CPU�Off CPU�Python Code�Native Code�Waiting for GIL�
Has Exception�No Exceptionc3�D�SF �Dp]*Q6Hw�	J	P!3h)�z<GC>�)�.0�frames& r1�	<genexpr>�)GeckoCollector.collect.<locals>.<genexpr>Ps��6���6�%��8�v�#5�6�s� �
GC Collecting)0r��RuntimeErrorr�r�rrr�r[r�r��hasattr�_iter_async_framesrr��_create_thread�_record_stack_sampler:�
frame_info�	thread_id�status�boolrrrr	r�r�r��CATEGORY_GILr�r��CATEGORY_CPUr�r��CATEGORY_CODE_TYPEr�r�r�r�r�r
r�r��CATEGORY_EXCEPTION�anyr��CATEGORY_GC�addr�)r.�stack_frames�
timestamps_usr��times�base�ts�
first_time�framesr��_�interpreter_info�thread_infor]�status_flags�is_main_thread�thread_data�has_gil�on_cpu�
gil_requested�
has_exception�has_gc_frame�is_idles&&&                    r1�collect�GeckoCollector.collect�s����=�=�=��M�N�N�� � �N�N�,�t�3�t���F�L�!�N�E� ���-�-�5�1>�q�1A��.��1�1�D�2?�@�-�B�4�i�4�'�'�-�E�@��1�X�
����q� �T�%:�%:�Q�%>�"�2�Y��)>�)>�>�$�BS�BS�S�D�M� %�b�	����G�L��O�\�B�B�(,�(?�(?��(M�$��1�/��7�����L�L�0�.2�.A�.A�!�5�/�D�L�L��+��)�)��L�L��+�V���)N�
����U��+���!-��/�7�7��/��0F�0F�G��!�+�+��*�1�1��!%�l�5N�&N�!O���l�l�*�(,�(;�(;�C�(P�D�L�L��%�"�l�l�3�/���|�.C�C�D���l�-A�A�B�� $�\�4O�%O� P�
��,�,���$�"4�"4�d�6G�6G��x��z���,�,����!2�!2�D�4F�4F��i��z����0�0��T�4�#9�#9�4�;Q�;Q�%�}�6H�*����0�0��T�4�#9�#9�4�;Q�;Q�%�}�6H�*��
�6�6�6��"8�"8�8� �,�,�S�-��AW�AW�A[�A[�\_�A`�+5�7I�K��"8�"8�8� �,�,�S�-��AW�AW�A[�A[�\_�A`�+5�7I�K�!��'�'�2�2�3�C��/�/�/��$�$�S�*;�T�=P�=P�=T�=T�UX�=Y�#-�|�=�!%�\�4O�%O� P�
��,�,����(<�(<�d�>U�>U�#�^�5G��� #�s�"J�6�"J�s�s�s�"J�6�"J�J����":�":�:�8B�0�0��5���4�4�4��$�$�S�/�4�;S�;S�;W�;W�X[�;\�#-�{�<��(�(�,�,�S�1�&�+�4�4�f�*���>�>�>�g�����)�)���e��c 8�!-�l	
���S��Z�'���gAs�	W=c	�.�UOV2oUQ*oSFDoUOVh2J	UO%c�U%c�U]*o	U	vq�q�[U[2%cUvq�ooLSoPoV�UV�1oV0O
7c,UNUM3UO
U$P!UO
U*Q*U6wcHUO
U*vooooooUO
UUUUUUU2,UNUM3UO
U$P!P!P!P!)�_spill:N�N)�_process_stackrhr��
isinstance�tupler��_add_opcode_interval_marker)r.r�r�r]r�r�rf�thread_spill�t�
leaf_frame�filename�location�funcname�opcode�linenor��
col_offset�
current_state�prev_opcode�prev_lineno�prev_col�
prev_funcname�
prev_filename�
prev_starts&&&&&&                  r1r��#GeckoCollector._record_stack_sampleis/���)�)�+�>��"�8�,���A��&�&�{�6������F����J�3=�0�H���(�E�*�*�+3�(��:�q�!���
�#�Z��L�M��+�+�+�)E�=�)E�*�)E��!�!�#�&��"�"�3�'��+�}�<��%�%�c�*����h�
�!�:��0�0���k�8�]��
��*F�=�)E�*�)E��!�!�#�&�=�%+�r4c���UOe[O2Um-QQU0aQUaQ]aQPaQ]aQPaQ,aQ	[[O
22aQ
UaQQaQ
QaQQ,Q,Q,Q,Q]-aQQ,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q]-aQQ,Q ,Q!,Q",Q#,Q$,Q%,Q]-aQ&Q',Q,Q(,Q),Q]-aQ*Q+,Q,Q,Q,,Q]-aQ--aQ.-Q/-Q0-Q1[
UOOU2-AoU!)2z<Create a new thread structure with processed profile format.rzThread-�isMainThread�processStartupTime�processShutdownTime�registerTime�unregisterTime�pausedRanges�pidr]�processType�default�processNamezPython Process�
stackTabler�ru�subcategoryr^�length�
frameTable�address�func�
innerWindowID�implementation�
optimizationsrJ�column�inlineDepth�nativeSymbol�	funcTable�isJS�
relevantForJS�resource�fileName�
lineNumber�columnNumber�
resourceTable�lib�host�type�
nativeSymbols�libIndex�functionSize�_stackCache�_frameCache�
_funcCache�_resourceCacher�)r��tempfile�TemporaryDirectory�strr'�getpidrVr)r.r]r��threads&&& r1r��GeckoCollector._create_thread�s
���>�>�!�%�8�8�:�D�N�D
��g�c�U�O�D
��N�D
�
!�!�D
�
"�4�	D
�

�A�D
�
�d�
D
�
�B�D
�
�3�r�y�y�{�#�D
�
�3�D
�
�9�D
�
�+�D
�
����B��r��"��!��D
�*
��2��B��r����� �"������"��r����!�
�+D
�H
��������B��B��b����!�	�ID
�^
��r��������!��_D
�n
��B��2������!��oD
�~
�2�D
�@
�2��"��b��&�t�~�~�':�':�C�@�GD
��L�
r4c�(:�U]6�cPgQRZQRZ-!�r�r��return)r'r�)�formatrTs"�r1�__annotate__�&GeckoCollector._is_python.__annotate__�s���S�S�3�S�4�Sr4c�J�UOQ2%(9%fUQ7!)�<)z<stdin>z<string>)�
startswith�r.r�s&&r1�
_is_python�GeckoCollector._is_python�s$���&�&�s�+�+�R�R�x�;R�/R�Rr4c�(:�U]6�cPgQRZQRZ-!r,)r'�int)r.rTs"�r1r/�)GeckoCollector._get_category.__annotate__�s���Q�Q�c�Q�c�Qr4c�J�UOU2%c[![!r&)r5�CATEGORY_PYTHON�CATEGORY_NATIVEr4s&&r1�
_get_category�GeckoCollector._get_category�s��"&�/�/�(�";�";��P��Pr4c���VO7cUOU*![UO2oUOOU2V OU$U!)z+Intern a string in the global string table.)r�r:r�r=)r.�s�idxs&& r1�_intern_string�GeckoCollector._intern_string�sV���&�&�&��)�)�!�,�,��$�%�%�&�����"�"�1�%�$'���q�!��
r4c
���VO7cP!VC*
oUOU2oUOU*Q*OVsU]UQUOQP2QUQU-2P!)z-Add an interval marker for a specific thread.r�r� �durationr])r�rBrw�replace)r.r]rrrrsrurFrqs&&&&&&  r1r��GeckoCollector._add_marker�sk���l�l�"���(���&�&�t�,�����S��(�#�1�1��(�A�x�����S�"�-��H��s�:�	
r4c�B�VO7fUeP![U2o[U2o	UOU	2o
UOU*Q*O	X�S][
QQQSQS	QUQ*QUQ*QSQ	U]6�cSLPQ
UQVv*
-	2P!)z1Add an interval marker for opcode execution span.r�r�Opcoder��opname�base_opname�is_specializedrJr�functionrF)r�rrrBrw�CATEGORY_OPCODES)r.r]r�r�r�r�rrrs�opcode_info�formatted_opnamerqs&&&&&&&&   r1r��*GeckoCollector._add_opcode_interval_marker�s����l�l�"�f�n��%�f�-��(��0���&�&�'7�8�����S��(�#�1�1��(�A�/?����&��*��{�=�9� �+�.>�"?����
�a��*�T��H��H�1�
B�	
r4c�R�U%fP!UQ*oUQ*oUQ*oUQ*oUQ*oUQ*oPo	[U2FD�o
U
vq�q�[U[2%c	UvooooLSoPoPoUOVV�2oUO	UUUU2oUU	1oUU7cUU*o	Jh[U2oUO
U2UO
U	2UOU2oUO
U2UO
[2UUU$So	J�	U	!)z+Process a stack and return the stack index.r!rr�r^rur)	�reversedr�r��_get_or_create_func�_get_or_create_framer:r=r=�DEFAULT_SUBCATEGORY)r.r�r��stack_cache�stack_tabler��stack_prefix�stack_category�stack_subcategory�prefix_stack_idx�frame_tupler�r�r�r�r��
end_linenor��end_col_offset�func_idx�	frame_idx�	stack_key�	stack_idxrus&&&                     r1r��GeckoCollector._process_stacksZ����"�-�0��!�,�/��"�7�+��"�8�,��$�Z�0��'�
�6�� ��#�F�+�K�4?�0�H���(�E�*�*�AI�>��
�J��"���
�!#���/�/��x��H�
�1�1��X�v�z��I�
#�$4�5�I��K�'�#.�y�#9� � ��-�	��#�#�I�.��#�#�$4�5� �-�-�h�7���%�%�h�/�!�(�(�)<�=�)2��I�&�#,� �M,�P �r4c���UQ*oV#1oVe7c	VV*!UQ*oUQ*oUQ*o	UQ*o
UQ*oUQ*oUQ*o
UQ	*o[U2oUOU2oUOU2oUOV2oUO	U2U	O	U2U
O	U2UO	U2U%cRUO[
OOU22oUO	U2U
O	U2L"UO	P2U
O	P2UO	P2V�U$U!)
zGet or create a function entry.r#rrrrrrrr)r:rBr5�_get_or_create_resourcer=r'r(r0)r.r�r�r�r��
func_cache�func_key�
func_table�
func_names�
func_is_js�
func_relevant�func_resources�func_filenames�func_line_numbers�func_column_numbersrarq�	is_python�resource_idx�filename_idxs&&&&&               r1rU�"GeckoCollector._get_or_create_funcHsc�� ��.�
��'���!��'�'�!��-�
���'�
���'�
�"�?�3�
�#�J�/��#�J�/��&�|�4��(��8���z�?���&�&�x�0���O�O�H�-�	��3�3�K�J��	���(�#����)�$����Y�'����l�+���.�.�r�w�w�/?�/?��/I�J�L��!�!�,�/��$�$�V�,��!�!�$�'��$�$�T�*��"�"�4�(�'�8���r4c��UQ*oV#7c	V2*!UQ*oUQ*oUQ*oUQ*oUQ*o[U2o	QU7c [OOU2LSo
UO	U
2oUOP2UOU2UOP2UO[2V�U$U	!)zGet or create a resource entry.r$rrrrr�/)r:r'r(r0rBr=�RESOURCE_TYPE_LIBRARY)r.r�r��resource_cache�resource_table�
resource_libs�resource_names�resource_hosts�resource_typesrs�
resource_namerqs&&&         r1rg�&GeckoCollector._get_or_create_resourcews���$�%5�6���%�!�+�+�%�_�5��&�u�-�
�'��/��'��/��'��/���>�*��*-��/�B�G�G���X�&�x�	��&�&�}�5�����T�"����h�'����d�#����3�4�#/�x� ��r4c�P�UQ*oX#U]6�cSLP1oVe7c	VV*!UQ*oUQ*oUQ*o	UQ*o
UQ*oUQ*oUQ*o
UQ	*oUQ
*oUQ*oUQ*oUQ
*o[U2oUQ*Q*U*oU%c[L[oUO[2U	O[
2U
OU2UO[2UOU2U
OP2UOP2UOP2SOU%cSLP2SOU]6�cSLP2UOP2UVV$U!)zGet or create a frame entry.r"r
rrrurrrr
rrJrrrr)r:r;r<r=�FRAME_ADDRESS_NONE�FRAME_INLINE_DEPTH_ROOTrW)r.r�rar�r��frame_cache�	frame_key�frame_table�frame_addresses�frame_inline_depths�frame_categories�frame_subcategories�frame_funcs�frame_native_symbols�frame_inner_window_ids�frame_implementations�frame_lines�
frame_columns�frame_optimizationsrbrrrus&&&&&                 r1rV�#GeckoCollector._get_or_create_frame�s���!�-�0���Z�1�_�z�$�O�	��#��)�)�"�,�/��%�i�0��)�-�8��&�z�2��)�-�8��!�&�)��*�>�:��!,�_�!=�� +�,<� =��!�&�)��#�H�-�
�)�/�:����$�	� ��,�V�4�X�>�	�&/�?�_�����1�2��"�"�#:�;�����)��"�"�#6�7����8�$��#�#�D�)��%�%�d�+��$�$�T�*����V�6��6����:��?�Z��E��"�"�4�(�!*����r4c���UOoUOQ[1UOQ[1UOQ[
1UOQ[
1UOQ[1UOQ[1UOQ[1UOQ[1UOQ	[1UOQ
[1,
oSFDBvq4o[!UO#22FDoUO%VdV6*V2V6J 	JD	[!UO&O)22FDvqgUvq�q�q�UO+VhV�V�U2J!	UO&O-2P!)z/Close any open markers at the end of profiling.r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��list�keysr�r��itemsr�rC)r.rs�
marker_states�
state_dict�marker_namerur]�stater�r�r�r�r�rrs&             r1�_finalize_markers� GeckoCollector._finalize_markers�sR���(�(���
�
��L�9�
�
�
��,�7�
�
�
��,�7�
�
�
��L�9�
�
#�
#�]�4F�G�
�
#�
#�]�4F�G�
�
 �
 �"3�\�B�
�
%�
%���D�
�
!�
!�?�4F�G�
�
$�
$�n�6H�I�
�
�2?�-�J�X��J�O�O�-�.��� � ��:�?�H�W��O�/�2?��t�0�0�6�6�8�9�J�C�IN�F�F�J�(��,�,�S�&�h�dl�m�:�	
�����!r4c�0``	�UO]6�c4UO]6�c#UOUO*Um[O,QN2n[
O2n	UU	1Qko[
OUP	Q5oUO2PoP
oUO2[OO[OOU229%fQo[OQUP
Q59^tt^2oUO oUO#U2PPP2[O$VA2P	oP	UmR	O)2UO+QQ5[,O.Q2Ud U%f[O0U2UO52[7Q	U02[7Q
2P	!)%fhK�9h[2cKKh9hP	SmR	O)2SO+QQ5[,O.Q2Sd2S%f*[O0S2L[2cLh9hSO52h9h)z(Export the profile to a Gecko JSON file.c��:�QoRO2%fe[OOQ[	R2QU02[OO2[OQ2Jz[OOQQ[U2]***Q*2[OO2P!)zBuilding Gecko profile...�
rEg�������?)	�is_set�sys�stderrrB�nextr;r��sleepr:)�message�spinner�stop_spinners ��r1�spin�#GeckoCollector.export.<locals>.spin�s����1�G�"�)�)�+�+��
�
� � �2�d�7�m�_�A�g�Y�!?�@��
�
� � �"��
�
�3���J�J���T�C�3�w�<�!�+;�$<�<�t�C�D��J�J���r4)�target�daemon�.�w)�dir�deleter�)�timeoutg{�G�z�?zGecko profile written to z7Open in Firefox Profiler: https://profiler.firefox.com/)
u⠋u⠙u⠹u⠸u⠼u⠴u⠦u⠧u⠇u⠏)r[r�r��	itertools�cycle�	threading�Event�Thread�start�_prepare_for_serializationr'r(�dirname�abspathr%�NamedTemporaryFiler�_stream_profilerGr�r�r)r�r��unlink�FileNotFoundError�_cleanup_spills�print)
r.r�r��spinner_thread�	temp_path�replaced�
output_dirrEr�r�s
&&      @@r1�export�GeckoCollector.export�s������q� �T�%:�%:�Q�%>� �1�1�D�4E�4E�E�D�M��/�/�"h�i�� ���(��	�#�)�)��d�C�������	���	#��+�+�-������������)B�C�J�J�s�J��,�,���E���� �I�I�	��$�$�T�*�	�

�J�J�y�+��H� �D�M����������,��J�J�t���$�X���I�I�i�(�
� � �"�
�)�(��4�5�
�E�	
��1��� )�����!�D�M����������,��J�J�t���$�X���I�I�i�(��(������ � �"�sz�)AH�<$H� G+�> H�*G>�+G;	�4G;	�6H�>	H�H�H�AJ�J�I3�2J�3	J�=J�>J�J�Jc���,oUO%cSUOQQQQQ,QQQQ	Q
QQQQ
QQQQQP	-QQQQQQ-QQQQQQ-QQQQQQ-QQQQQQ-QQQQQQ-QQQQQQ-,-2U!)z5Build marker schema definitions for Firefox Profiler.rrJ�displayzmarker-tablezmarker-chart�tooltipLabelz{marker.data.opname}�
tableLabelz/{marker.data.opname} at line {marker.data.line}�
chartLabel�fields�keyrK�labelr.�string�
searchablerLzBase OpcoderM�SpecializedrJ�Line�integerr�ColumnrN�FunctionrF�Duration)r�r=)r.�schemas& r1�_build_marker_schema�#GeckoCollector._build_marker_schemas����������M�M����N�N�;�� 6��O��4���H�g�x��8�\�[_�`��M�7�M�8�X�V��,�g�}�h�PX�Y��F�G�V�X�y�I��H�g�x��9�M��J���X�x�P��J���X�z�R��
�
�"�
r4c� �UO2[O2oUOU2[O
UO
22P	UmUO2!P	SmSO2h9h)z9Build the complete profile structure in processed format.)	r��io�StringIOr��json�loads�getvaluer�r�rDs& r1�_build_profile�GeckoCollector._build_profile+sh��	#��+�+�-��;�;�=�D�� � ��&��:�:�d�m�m�o�.� �D�M�� � �"��!�D�M�� � �"�s�AA4�4B
c��Q-QUOaQUOaQ[O2aQQaQ[O2aQ[O2aQ[
aQ	[aQ
[aQPaQ[aQ
[aQPaQ[O29%f]aQ[O29%f]aQPaQQaQP	QUO2QQQQ,Q,Q,Q]--AQUO-!)�metar��	startTime�abi�misczPython profiler�oscpu�platformr�
categories�	stackwalk�toolkit�version�preprocessedProfileVersion�
appBuildID�physicalCPUs�logicalCPUs�CPUName�productr�symbolicated�markerSchema�importedFromzTachyon Sampling Profiler�
extensions�idr�baseURLr	r�)r�rrr��machine�system�PROCESS_TYPE_MAIN�GECKO_CATEGORIES�STACKWALK_DISABLED�GECKO_FORMAT_VERSION�GECKO_PREPROCESSED_VERSIONr'�	cpu_countr�r��r.s&r1�
_profile_head�GeckoCollector._profile_head6sf�����D�M�M���T�_�_���x�'�'�)���)�	�
��)�)�+���H�O�O�-�
��0���.���/���2���/��-�.H���b������� 3� 3�!���r�|�|�~�2�2��� �2�!�"�8�#�$���� 9� 9� ;�� ;���"��B��r��a�	�+�8
�D�I�I�;
�	
r4c�8�Q,QQUOQQ]Q,Q,---!)�pages�shared�stringArray�sourcesr	�uuidr�)r�rs&r1�
_profile_tail�GeckoCollector._profile_tailWs6���R���t�2�2��H�a���Z��D��
�	
r4c���UO%c[Q2gUO2UOO	2FD�oUQ*O2[
UQ*Q*2UQ*Q$[
UQ*Q*2UQ*Q$[
UQ*Q*2UQ*Q$[
UQ	*Q*2UQ	*Q$J�	P!)
z(GeckoCollector has already been exportedr�rr�r	r
rrrr)r�r�r�r��valuesr|r:)r.r�s& r1r��)GeckoCollector._prepare_for_serialization`s����=�=�=��I�J�J���� ��<�<�.�.�0�K���!�.�.�0�25�k�,�6O�PW�6X�2Y�K��%�h�/�25�k�,�6O�PV�6W�2X�K��%�h�/�14�[��5M�f�5U�1V�K��$�X�.�58��_�9U�V\�9]�5^�K��(��2�1r4c�j�UOd$UOO2PUmP!P!r&)r��cleanuprs&r1r��GeckoCollector._cleanup_spillsks(���>�>�%��N�N�"�"�$�!�D�N�&r4c�4�UOQ2P	oUO2O2FDvq4[VVB2oJ	[	UQU2oUOQ2[UOO22FD3vovqgU%cUOQ2UOVU2J5	UOQ2UO2O2FDvq4[VVB2oJ	UOQ2P!)�{r��[�,�]�})	rBrr��_write_json_member�_write_member_name�	enumerater��_stream_threadr	)r.rE�firstr�r<�indexr]r�s&&      r1r��GeckoCollector._stream_profileps����
�
�3�����,�,�.�4�4�6�J�C�&�t�%�?�E�7�#�4��E�:���
�
�3��)2�4�<�<�3E�3E�3G�)H�%�E�%�C���
�
�3������;�7�*I�	
�
�
�3���,�,�.�4�4�6�J�C�&�t�%�?�E�7��
�
�3�r4c�*�UQ*oQUQ*QUQ*QUQ*QUQ*QUQ*QUQ*QUQ*QUQ*Q	UQ	*Q
UQ
*QUQ*-oUOQ2P	oUO2FDvqx[VV�2oJ	[UQ
U2oUO	V2QFDo[VV7*U2oJ	[UQU2oUOV2UOQ2P!)r�rr�r�r�rrrrr]rrr�samples�markersr)rr
rrr)rBr�rr�_stream_samples�_stream_markers)	r.rEr]r��spill�metadatarr�r<s	&&&&     r1r�GeckoCollector._stream_thread�s���H�%���K��'��K��7� �+�.B�"C�!�;�/D�#E��K��7��k�*:�;��K��7��;�u�%��;�u�%��;�}�5��;�}�5�
��	
�
�
�3����"�.�.�*�J�C�&�t�%�?�E�+�#�4��E�:�����T�)�
�C�'�t�+�2B�E�J�E�
�#�4��E�:�����T�)��
�
�3�r4c
��[UQUOO21QUOO21QQ[	UO
2211UO
QQQUO
112P!)�stackr��
eventDelayc3�2�SF �DoQw�	J
	P!3h)�nullr�)r�r�s& r1r��1GeckoCollector._stream_samples.<locals>.<genexpr>�s��0I���0I�1��0I�s�r	)�weightN)�
weightTyper)�_stream_column_tablerdrKre�ranger[�r.rEr#s&&&r1r!�GeckoCollector._stream_samples�s}�����%�-�-�9�9�;�<���+�+�7�7�9�:��J��e�6H�6H�0I�J�K�
�

��� �)��5�-�-�.�
�
	
r4c��[UQUOO21QUOO21QUOO21QUO
O21QUOO21QUOO211UOQUO112P!)rvrr��endTimertrur	)	r.rprKrkrlrmrnror\r0s&&&r1r"�GeckoCollector._stream_markers�s�������+�+�7�7�9�:���+�+�7�7�9�:��e�6�6�B�B�D�E��E�2�2�>�>�@�A��%�-�-�9�9�;�<��U�3�3�?�?�A�B�

�
�����*�*�
+�-�	
r4)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r[r�r�r�rrr�r&)���)!rMrNrOrP�aggregatingr2r�r�r�r�r5r=rBr�r�r�rUrgrVr�r�r�r�rr	r�r�r�rr!r"rQrRrSs@r1rr�s������K�,.�%�,.��,.�\!7�FI(�VF�>K�ZS�S�Q�Q��
� 
�48 �t-�^�8+�Z"�:3�j�2	#�
�B
�	_�"�
�$ �D
� 

�

r4rc�d�[OU2FDoUOU2J	P!r&)r8�
iterencoderB)rEr<�chunks&& r1�_write_jsonr:�s#���)�)�%�0���
�
�5��1r4c�r�U%fUOQ2[V2UOQ2P
!�r�:)rBr:)rErrs&&&r1rr�s&����
�
�3������J�J�s�O�r4c�6�[VU2o[V2U!r&)rr:)rErr<rs&&&&r1rr�s���t�5�1�E�����Lr4c���UOQ2P	oSFDvqV[VU2o[VV%2J	SFDvqW[VVt2oJ	UOQ2P!)rr)rBr�
_stream_arrayr)rE�columns�expected_count�trailing_membersrr�
token_iterr<s&&&&    r1r.r.�sZ���J�J�s�O��E�#���"�4�u�5���d��=�$�(���"�4�u�<��(��J�J�s�Or4c��UOQ2]oSFD6oU%cUOQ2UOU2U]*
oJ8	VB6wc[QUQUQU02gUOQ2P!)rrz	streamed rEz items, expected r)rBr�)rErDrBr��count�tokens&&&&  r1r@r@�sy���J�J�s�O�
�E�����J�J�s�O��
�
�5��
��
��	�

�����w�a��w�&7��7G�H�
�	
�	�J�J�s�Or4ir<)r�)�array)5r�r�r�r'r�r�r%r�r��	collectorrr�opcode_utilsrr�_remote_debuggingrrrr	r
r�ImportErrorr��CATEGORY_OTHERr;r<r�r�r�r�rOr�rWr�r�rxr�r�r�r�r,�_JSON_SEPARATORS�JSONEncoderr8r#rVrr:rrr.r@r�r4r1�<module>rPs����	��	��
����8�8�	)�z�z��W�g�v���	�B��X�w��/�G�9�E��X�w���'��C��T�7�H�o��y�A��U�G�W�o��y�A��U�G�X���	�B��[�'�5�/�G�9�E��Y���O�g�Y�G��[�'�;��'��K�
������������������������������������(����� � ��5��
�
(�(�4#(�#(�Lw
�Y�w
�t�
�����g�)�#��"��#��#)��#)��!'��)�s�C?�?D�
D�D

Youez - 2016 - github.com/yon3zu
LinuXploit