__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

��g�7�
���%SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
 SSKJrJ
r
 SSKJrJr SSKJrJrJrJr SSKJrJrJrJrJrJr \R8SSS:Xa�SSKrSSKrS	r\R@"\RBRDR>5 \\RBRDl\RF"\5 S
r$\$\RBRDRJl$Sq&\"SS55r'S
\(4Sjr)"SS5r*\+S:XGa-SSKJrJr \RX"5 \RZ"S5 \R\\l/\R`"\R^5 \Rb"5 S\l2S\l3Sr4\Rj"\45r6\R"5r7\*"\4\RdS9r8/r9\\'\:S'\8r;SSK<r<\="\R|5S:�a\R|Sr?OSr?\<R�"\?5R�5Vs/sHoR�5(dMUPM snH�rC\R�"\CR�55rE\8R�\6R�RV\E\ER�54S9 \8R�5Vs/sHoPM snrJ\R�"S\="\J5S\8R�5S\8R�35 \9R�\J5 M� SrO\8R�5Vs/sHoPM snrJ\="\J5S:�d\O(dL\R�"S\="\J5S \O(+S!\="\95S"\8R�5S\8R�3
5 SrO\="\J5S:XaSrO\9R�\J5 \8R�5S:XaOM�\8R�S#S$9 \Q"S%5 SSS5 \R�"S&\S"\9Vs/sHn\T"UR�5PM sn535 \R�"S'\R"5\7-
35 ggs snfs snfs snf!,(df   N�=fs snf)(�N)�Counter)�	dataclass�field)�datetime�	timedelta)�List�Optional�Dict�Iterator)�backend�config�file_naming�log�path�util�)��c�D�[R"S5 Sq[[R
RRR55nUHupUcM
UR5 M UHup1UR5 M g![a MHf=f)NzCPython 3.8 patched function concurrent.futures.process._python_exitT)r�Debug�_global_shutdown�list�
concurrent�futures�process�_threads_wakeups�items�wakeup�OSError�join)r�_�
thread_wakeup�ts    �8/usr/lib/python3/dist-packages/duplicity/backend_pool.py�_python_exitr%=s����	�	�W�X����Z�'�'�/�/�@�@�F�F�H�I�� %��A��(��!�(�(�*�!&��D�A�
�F�F�H�������s�!B�
B�Bc��URR5(a<URR5 URR5(aM;gg![a [R
"S5 gf=f)NzJPython 3.8 patched function concurrent.futures.process._ThreadWakeup.clear)�_reader�poll�
recv_bytesrrr��selfs r$�clearr,Os^��	��,�,�#�#�%�%����'�'�)��,�,�#�#�%�%���	��I�I�b�c��	�s�AA� B�Bc���\rSrSr%\\S'\\S'\"\S9r\	\
\\S'Sr\
\S'Sr\\S	'\"\R "5S
9r\\S'\"\R$S
9r\\S'S
rS\4SjrSrg)�TrackRecord�]�track_id�pid)�default_factory�
trace_backN�result��
log_prefix)�default�
start_time�	stop_timec�8�[R"5Ulg�N)r�nowr8r*s r$�
__post_init__�TrackRecord.__post_init__js��"�,�,�.����returnc�4�URUR-
$r;)r9r8r*s r$�get_runtime�TrackRecord.get_runtimems���~�~����/�/r?)r8)�__name__�
__module__�__qualname__�__firstlineno__�int�__annotations__rrr3r	r�strr4�objectr6rr<r8�minr9r=rrB�__static_attributes__�r?r$r.r.]sz���M�	�H�&+��'�J���c��#���F�F���J��� �����8�J��8�����5�I�x�5�)�0�Y�0r?r.�cmd_namec��[R"5n[XR[R
S9n[
[U5nU"U0UD6Ul[R"5Ul[R""SUS35 U$![a5nXul[R"UR5Ul
SnANpSnAff=f)a
wraps the pooled function for time tracking and exception handling.
Recording the trace back of an exception when still in process pool context
to point to the right place.
(This function can't be part of the BackendPool, as then the whole class get pickled)
)r6NzCommand done: � )�multiprocessing�current_processr.r1r�PREFIX�getattr�pool_backendr4�	Exception�	traceback�	format_tb�
__traceback__r3rr<r9r)r0rO�args�kwargs�p�trk_rcd�cmd�es        r$�	track_cmdraqs���	�'�'�)�A��(�E�E�c�j�j�A�G�B��l�H�-���d�-�f�-���!����G���I�I��w�i�q�)�*��N���B���&�0�0����A�����B�s�B�
C�+C�Cc��\rSrSrSr\"SS55rSSSjjrSrS	r	\
S
5rSSjrSr
S
rSSjrS\4SjrSS\\4SjjrSSjrSrSrg)�BackendPool�zS
uses concurrent.futures.ProcessPoolExecutor to run backend commands in background
c�V�\rSrSr%\\S'\\S'\\S'Sr\	\
\S'Sr\\S'S	r
g)
�BackendPool.CmdStatus��
function_namer[r\Nr^F�donerN)rDrErFrGrJrIr
rr^r	r.ri�boolrMrNr?r$�	CmdStatusrf�s+�����
���)-���+�&�-���d�r?rkNr@c	��[R"[5n[RR	UUR
X4[R"SS9S9Ul/Ul	SUl
/Ul/UlSUl
/UlSUlg)N�spawn)�method)�max_workers�initializer�initargs�
mp_contextr)r
�	dump_dictrr�ProcessPoolExecutor�
_process_initrR�get_context�ppe�_command_queue�	_track_id�all_results�_all_futures�
peak_in_queue�_command_throttle_stats�_last_results_reported)r+�
url_string�	processes�
config_strs    r$�__init__�BackendPool.__init__�s����%�%�f�-�
��%�%�9�9�!��*�*� �-�&�2�2�'�B�	:�
���!������.0���=?������')��$�&'��#r?c��UR$r;)rwr*s r$�	__enter__�BackendPool.__enter__�s���x�x�r?c�$�UR5 gr;)�shutdown)r+�type�valuerXs    r$�__exit__�BackendPool.__exit__�s���
�
�r?c��[R"U[5 [R"5n[R
"5RSn[R"5 SUS3[l	[R"[R5 [R[R:Xa[R"5n[R"SU35 [R "5 ["R$"5 [&R("5 [&R*"U5qg)Nr�Poolz: zStaring pool process with pid: )r
�	load_dict�os�getpidrRrS�	_identityr�setuprT�setverbosity�	verbosity�DEBUG�
log_to_stderr�Infor�
prepare_regexr�start_debuggerr�import_backends�get_backendrV)r�config_dumpr1�pool_nr�loggers     r$ru�BackendPool._process_init�s���	����f�-��i�i�k��!�1�1�3�=�=�a�@���	�	���G�9�B�'��
�����)�)�*����s�y�y�(�$�2�2�4�F����2�3�%�8�9��!�!�#��������!��*�*�:�6�r?c��Uc0nU=RS-
slURRURR"[
URU/UQ765 UR
5 UR$)a
run function in a pool of independent processes. Call function by name.
func_name: name of the backend method to execute
args: positional arguments for the method
kwds: key/value  arguments for the method

Returns a unique ID for each command, increasing int
�)ryrx�appendrw�submitra�_collect_finished_cmds)r+�	func_namer[�kwdss    r$�command�BackendPool.command�so���<��D����!������"�"��H�H�O�O������
��	
�	
�	
�#�#�%��~�~�r?c���[UR[5(a�SRUR5SUR3n[
R"SU35 [URS5(aY[
R"SURRRSURS3URRS9 g	UReg	)
zU
raise the exception stored in `track_rcrd` if it occurred while running the command
r5�
zException thrown in pool: 
�codez
Exception z in background pool zG. For trace back set loglevel to DEBUG and check output for given pool.)r�N)
�
isinstancer4rWr r3rr�hasattr�
FatalError�	__class__rDr6r�)r+�
track_rcrd�
exception_strs   r$�_raise_exception_if_any�#BackendPool._raise_exception_if_any�s����j�'�'��3�3�!�w�w�z�'<�'<�=�>�b��AR�AR�@S�T�M��I�I�4�]�O�D�E��z�(�(�&�1�1���� ��!2�!2�!<�!<�!E�!E� F�G�&�1�1�2�3\�\�$�*�*�/�/�	�!�'�'�'�4r?c��[RRURSS9nUH�nUR	SS9nURU5 URRU5 URRU5 URRU5 [UR[UR55UlM� g![RRRa gf=f)zG
store finished results in `all_results` and remove command from queue
g�������?��timeoutrN)rr�as_completedrxr4r�rzr�r{�remove�maxr|�len�_base�TimeoutError)r+�finished_commandsr4r�s    r$r��"BackendPool._collect_finished_cmds�s���
	� *� 2� 2� ?� ?��@S�@S�]`� ?� a��+��#�]�]�1�]�5�
��,�,�Z�8�� � �'�'�
�3��!�!�(�(��0��#�#�*�*�6�2�%(��);�);�S��AT�AT�=U�%V��"�
,���!�!�'�'�4�4�	��	�s�CC�(C>�=C>c��Uc0nURRU-n[R"5n[	UR
5U:�a4[RRUR
5n[U5 URR[R"5U-
R55 [R"SURSS35 URXU5nU$)a�
block, if queue gets bigger then number of workers + commands_in_buffer.
Means this function my block a while to process queue and returns if enough
queue items has been processed.
func_name: name of the backend method to execute
commands_in_buffer = number of commands that are queue for execution
args: positional arguments for the method
kwds: key/value  arguments for the method

Returns a unique ID for each command, increasing int
zCommand delayed by ���z.2f)rw�_max_workersrr<r�rxrrr��nextr}r��
total_secondsrrr�)	r+r��commands_in_bufferr[r��max_pending_queue_len�startr�r0s	         r$�command_throttled�BackendPool.command_throttled�s����<��D�!%��� 5� 5�8J� J��������t�"�"�#�'<�<� *� 2� 2� ?� ?��@S�@S� T���"�#��$�$�+�+�X�\�\�^�e�-C�,R�,R�,T�U��	�	�'��(D�(D�R�(H��'M�N�O��<�<�	��6���r?c�,�[UR5$r;)r�rxr*s r$�get_queue_length�BackendPool.get_queue_lengths���4�&�&�'�'r?c#�# �UR5 UbXl[UR5nURURUH
nUv� X lM g7f)a#
collect results from commands finished since last run of this method.
This method should be called from one receiver only, as it keep track of what was send internally.
param:
    from_pos: use to overwrite the internal pointer `__last_results_reported`

return:
    list of future results
N)r�r~r�rz)r+�from_pos�endr4s    r$�results_since_last_call�#BackendPool.results_since_last_callsX���	
�#�#�%���*2�'��$�"�"�#���&�&�t�'B�'B�S�I�F��L�*-�'�J�s�AAc���URSUVs/sH o"R5R5PM" nn[U5nUS:�a�[	U5U-n[U5n[
U5n[UR5S:�aV[	UR5[UR5-n[UR5n	[
UR5n
OS=n=p�OS=n=n=n=n=p�[URSUVs/sHo"RPM sn5n[R"SUSUSUSUSUSURS	U35 UXVUS
.X�U
S
.UURS.$s snfs snf)Nrr�zcount: z, avg: z, max: z, min: z, pool usage: z, peak in queue: z, avg throttle: )�avgr�rL)�count�time�throttle�
pool_usager|)
rzrBr�r��sumr�rLr}rr6rrr|)r+�
last_index�x�valsr��avg_time�max_time�min_time�avg_throttle�max_throttle�min_throttler�s            r$�	get_stats�BackendPool.get_stats)s���9=�9I�9I�+�:�9V�W�9V�A�
�
��-�-�/�9V��W��D�	���1�9��4�y�5�(�H��4�y�H��4�y�H��4�/�/�0�1�4�"�4�#?�#?�@�3�t�Gc�Gc�Cd�d��"�4�#?�#?�@��"�4�#?�#?�@��=?�?��?�|�l�Z\�\�H�\�x�\�(�\�\�\�L��D�4D�4D�[�j�4Q�R�4Q�q�l�l�4Q�R�S�
��	�	��e�W�G�H�:�W�X�J�g�h�Z�~�^h�]i�j�"�0�0�1�1A�,��
Q�	
�
�$�h�G� ,�,�W�$�!�/�/�
�	
��)X��Ss�'E/�E4c���[RRURSS9 [R
"S5 URR"U6 [R
"S5 g)Ng�?r�zProcess Pool: Start shutdown.zProcess Pool: Shutdown done.)rr�waitr{rrrwr�)r+r[s  r$r��BackendPool.shutdownFsM�������� 1� 1�3��?��	�	�1�2������4� ��	�	�0�1r?)r{rxr}r~ryrzr|rwr;)r@N)rNN)r�rNN)rDrErFrG�__doc__rrkr�r�r��staticmethodrur�r�r�r�rHr�rr.r�r�r�rMrNr?r$rcrc�s��������(� ���7��7�"�.(�"� �@(�#�(�.���8M�.�$
�:2r?rc�__main__)r
rz/tmp/tmp.log�zfile:///tmp/test_direct)r��resultsr�z./)r[zgot: z, cmd left: z, track_id: FTz, z, precessed z cmd left: r�)r�zPress Enter to continue...zBytes written: zTime elapsed: )V�concurrent.futuresr�loggingrR�multiprocessing.connectionr��sysr�rX�collectionsr�dataclassesrrrr�typingrr	r
r�	duplicityrr
rrrr�version_info�atexit�concurrent.futures.processr%�
unregisterrr�registerr,�
_ThreadWakeuprVr.rJrarcrDr��add_file�INFOr�r�r��async_concurrency�num_retries�urlr��bwr8�bpwr�rI�pool�pathlibr��argv�src�Path�iterdir�is_file�file�as_posix�source_pathr��
put_validated�get_filenamer��cmd_resultsr�r�ry�extend�suppress_logr��input�Noticer�rHr4)rr�s00r$�<module>rs��,���!�	�
�������������B�Q��6�!��%�����j�(�(�0�0�=�=�>�.:�J�����+�
�O�O�L�!��6;�J�����,�,�2����0�0��0�&�#��,C2�C2�N�z��%��I�I�K��L�L�� ��x�x�F�����V�%�%�&����� �F���F��
#�C�	�	�	�S�	!�B�����J�
�c�V�%=�%=�
>�C�!#�G�T�+�
�#�	����s�x�x�=�1���(�(�1�+�C��C�&-�l�l�3�&7�&?�&?�&A�T�&A�d�\�\�^�T�&A�T�D��)�)�D�M�M�O�4�K��K�K��(�(�1�1��k�F^�F^�F`�8a�K�b�&)�&A�&A�&C�D�&C��1�&C�D�K��H�H�u�S��-�.�l�3�;O�;O�;Q�:R�R^�_b�_l�_l�^m�n�o��N�N�;�'�U����&)�&A�&A�&C�D�&C��1�&C�D�K��;��!�#�<�����C��,�-�R�L�0@�/A�B!�!$�W���k�#�:N�:N�:P�9Q�Q]�^a�^k�^k�]l�n�� %���;��1�$�#���N�N�;�'��#�#�%��*���	�
�
��
�$�
�*�+�C

�H�J�J���W�%E�W��c�!�(�(�m�W�%E�!F� G�H�I��J�J���	�	��j� 8�9�:�;�m��2U��E��E�%

���H&FsF�AQ�(Q�Q�
A,Q�6Q�A&Q�'Q�2B/Q�<Q.�Q�
Q+

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 398 B 0644
__main__.cpython-313.pyc File 4.74 KB 0644
argparse311.cpython-313.pyc File 98.99 KB 0644
backend.cpython-313.pyc File 32.15 KB 0644
backend_pool.cpython-313.pyc File 18.72 KB 0644
cached_ops.cpython-313.pyc File 1.09 KB 0644
cli_data.cpython-313.pyc File 32.01 KB 0644
cli_main.cpython-313.pyc File 14.13 KB 0644
cli_util.cpython-313.pyc File 22.31 KB 0644
config.cpython-313.pyc File 5.74 KB 0644
diffdir.cpython-313.pyc File 31.95 KB 0644
dup_collections.cpython-313.pyc File 63.51 KB 0644
dup_main.cpython-313.pyc File 78.6 KB 0644
dup_tarfile.cpython-313.pyc File 432 B 0644
dup_temp.cpython-313.pyc File 12.87 KB 0644
dup_time.cpython-313.pyc File 11.17 KB 0644
errors.cpython-313.pyc File 3.53 KB 0644
file_naming.cpython-313.pyc File 16.93 KB 0644
filechunkio.cpython-313.pyc File 3.83 KB 0644
globmatch.cpython-313.pyc File 6.01 KB 0644
gpg.cpython-313.pyc File 20.98 KB 0644
gpginterface.cpython-313.pyc File 25.69 KB 0644
lazy.cpython-313.pyc File 17 KB 0644
librsync.cpython-313.pyc File 11.48 KB 0644
log.cpython-313.pyc File 19.18 KB 0644
manifest.cpython-313.pyc File 23.66 KB 0644
patchdir.cpython-313.pyc File 27.63 KB 0644
path.cpython-313.pyc File 43.08 KB 0644
progress.cpython-313.pyc File 14.45 KB 0644
robust.cpython-313.pyc File 1.91 KB 0644
selection.cpython-313.pyc File 31.35 KB 0644
statistics.cpython-313.pyc File 18.78 KB 0644
tempdir.cpython-313.pyc File 12.04 KB 0644
util.cpython-313.pyc File 16.51 KB 0644
Filemanager