403Webshell
Server IP : 217.160.0.244  /  Your IP : 216.73.217.138
Web Server : Apache
System : Linux infong-eu155 4.4.400-icpu-108 #2 SMP Wed Feb 11 11:51:01 UTC 2026 x86_64
User : u100174116 ( 6746176)
PHP Version : 8.5.10
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/dulwich/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/dulwich/__pycache__/config.cpython-313.pyc
�

mEdg�b��P�SrSSKrSSKrSSKJrJrJrJr SSKJ	r	 SSK
JrJrJ
r
JrJr SSKJr \"5rSr"S	S
\5r\r\\\4r\\S4r\\\\\\\4S44r\r\\\4r"SS
5r"SS\\\\\\445r S\S\4Sjr!\""S5\""S5\""S5\""S5\""S5\""S5\""S5\""S5\""S5\""S50r#\""S5\""S5/r$\""S5\""S5/r%S\S\4Sjr&S\S\4Sjr'S \S\(4S!jr)S \S\(4S"jr*S#\S\4S$jr+S#\S\\\44S%jr,"S&S'\ 5r-S(r.S)r/S*r0S+r1"S,S-\5r2S.\S\\\\\44S/jr3S0\-S\\\\\44S1jr4S6S0\S2\(S\\\\44S3jjr5S6S0\S4\S2\(S\4S5jjr6g)7z�Reading and writing Git configuration files.

Todo:
 * preserve formatting when updating configuration files
 * treat subsection names as case-insensitive for [branch.foo] style
   subsections
�N)�Iterable�Iterator�KeysView�MutableMapping)�suppress)�Any�BinaryIO�Optional�Union�overload�)�GitFilec���[U[[45(aUR5$[U[5(a[U5"[
[U55$U$�N)�
isinstance�bytes�str�lowerr�type�map�	lower_key)�keys �0/usr/lib/python3/dist-packages/dulwich/config.pyrr/sG���#��s�|�$�$��y�y�{���#�x� � ��C�y��Y��,�-�-��J�c��\rSrSrSSjr\SSj5rS\4SjrS\	\
\S44SjrS	r
S
rSrSSjrSS
jrSr\4SjrSr\4SjrSrg)�CaseInsensitiveOrderedMultiDict�9�returnNc� �/Ul0Ulgr)�_real�_keyed��selfs r�__init__�(CaseInsensitiveOrderedMultiDict.__init__:s�� "��
�&(��rc��[X5(aU$U"5nUcU$[U[5(d[eUR5H	up4XBU'M U$r)rr�	TypeError�items)�cls�dict_in�outr�values     r�make�$CaseInsensitiveOrderedMultiDict.make>sU���g�#�#��N��e���?��J��'�>�2�2��O�!�-�-�/�J�C���H�*��
rc�,�[UR5$r)�lenr!r"s r�__len__�'CaseInsensitiveOrderedMultiDict.__len__Ps���4�;�;��r.c�6�URR5$r)r!�keysr"s rr4�$CaseInsensitiveOrderedMultiDict.keysSs���{�{���!�!rc�,�[UR5$r)�iterr r"s rr(�%CaseInsensitiveOrderedMultiDict.itemsVs���D�J�J��rc�6�URR5$r)r!�__iter__r"s rr:�(CaseInsensitiveOrderedMultiDict.__iter__Ys���{�{�#�#�%�%rc�6�URR5$r)r!�valuesr"s rr=�&CaseInsensitiveOrderedMultiDict.values\s���{�{�!�!�#�#rc�j�URRX45 X R[U5'gr)r �appendr!r�r#rr,s   r�__setitem__�+CaseInsensitiveOrderedMultiDict.__setitem___s&���
�
���3�,�'�&+���I�c�N�#rc���[U5nURU	[[[	UR
555H&unup4[U5U:XdMUR
U	M( gr)rr!�reversed�list�	enumerater )r#r�i�actual�unused_values     r�__delitem__�+CaseInsensitiveOrderedMultiDict.__delitem__csU����n���K�K���)1�$�y����7L�2M�)N�%�A�%���� �C�'��J�J�q�M�*Orc�2�UR[U5$r)r!r)r#�items  r�__getitem__�+CaseInsensitiveOrderedMultiDict.__getitem__js���{�{�9�T�?�+�+rc�b�X$![a Of=fU[La[U5"5$U$r)�KeyError�SENTINELr�r#r�defaults   r�get�#CaseInsensitiveOrderedMultiDict.getms<��	��9����	��	���h����:�<���s��
�c#�v# �[U5nURHup#[U5U:XdMUv� M g7fr)rr )r#rrIr,s    r�get_all�'CaseInsensitiveOrderedMultiDict.get_allxs0�����n��!�Z�Z�M�F��� �C�'���(�s�*9�	9c�X�X$![a URX5X'X$f=fr)rRrVrTs   r�
setdefault�*CaseInsensitiveOrderedMultiDict.setdefault~s6��	/��9����	/�����.�D�I��y��	/�s��)�))r!r )rNr)�__name__�
__module__�__qualname__�__firstlineno__r$�classmethodr-�intr1r�tuplerr4r(r:r=rBrKrOrSrVrYr\�__static_attributes__�rrrr9sx��)�����" �� �"�h�u�U�C�Z�0�1�"� �&�$�,�"�,� (�	��'/�rr.c
�,�\rSrSrSrS\S\S\4SjrS\S\S\	\4Sjr
\S\S\S\S\4S	j5r
\S\S\S\\4S
j5r
SS\S\S\\S\\4Sjjr
S\S\S
\\\4SS4SjrS\S\	\\\44SjrS\	\4SjrS\S\4SjrSrg)�Config�zA Git configuration.�section�namerc�,�[UR5e)z�Retrieve the contents of a configuration setting.

Args:
  section: Tuple with section name and optional subsection name
  name: Variable name
Returns:
  Contents of the setting
Raises:
  KeyError: if the value is not set
)�NotImplementedErrorrV�r#rjrks   rrV�
Config.get����"�$�(�(�+�+rc�,�[UR5e)z�Retrieve the contents of a multivar configuration setting.

Args:
  section: Tuple with section name and optional subsection namee
  name: Variable name
Returns:
  Contents of the setting as iterable
Raises:
  KeyError: if the value is not set
)rm�get_multivarrns   rrr�Config.get_multivar�s��"�$�"3�"3�4�4rrUc��grrf)r#rjrkrUs    r�get_boolean�Config.get_boolean�s��rc��grrfrns   rrurv�s��SVrNc��URX5nUR5S:XagUR5S:Xag[SU<35e![a Us$f=f)z�Retrieve a configuration setting as boolean.

Args:
  section: Tuple with section name and optional subsection name
  name: Name of the setting, including section and possible
    subsection.

Returns:
  Contents of the setting
�trueT�falseFznot a valid boolean string: )rVrRr�
ValueError)r#rjrkrUr,s     rrurv�sb��	��H�H�W�+�E��;�;�=�G�#��
�[�[�]�h�
&���7��y�A�B�B��
�	��N�	�s�A�A�Ar,c�,�[UR5e)z�Set a configuration value.

Args:
  section: Tuple with section name and optional subsection namee
  name: Name of the configuration value, including section
    and optional subsection
  value: value of the setting
)rm�set�r#rjrkr,s    rr}�
Config.set�rprc�,�[UR5e)z�Iterate over the configuration pairs for a specific section.

Args:
  section: Tuple with section name and optional subsection namee
Returns:
  Iterator over (name, value) pairs
)rmr(�r#rjs  rr(�Config.items�s��"�$�*�*�-�-rc�,�[UR5e)zBIterate over the sections.

Returns: Iterator over section tuples
)rm�sectionsr"s rr��Config.sections�s��
"�$�-�-�0�0rc�&�XR5;$)z�Check if a specified section exists.

Args:
  name: Name of section to check for
Returns:
  boolean indicating whether the section exists
)r�)r#rks  r�has_section�Config.has_section�s���}�}��&�&rrfr)r^r_r`ra�__doc__�SectionLike�NameLike�ValuerVrrrr�boolrur
r�	ValueLiker}rd�Namer(�Sectionr�r�rerfrrrhrh�s@���,�;�,�h�,�5�,�5�K�5�x�5�H�U�O�5���"��*2��=A��	
�����V�;�V�h�V�8�D�>�V��V�OS�C�"�C�*2�C�=E�d�^�C�	�$��C�.,�"�,�*2�,�;@��D��;Q�,�	
�,�.�[�.�X�e�D�%�K�6H�-I�.�1�(�7�+�1�'��'�D�'rrhc��\rSrSrSrSS\\\\\\	44S4S\\
S4SS4SjjrS\
4SjrS	\
S\4S
jrS\S\\\	44SjrS\S
\\\	4SS4SjrS\SS4SjrS\\4SjrS\4Sjr\S\
4Sj5rS\S\S\\\44SjrS\S\S\\	4SjrS\S\S\	4SjrS\S\S
\\\4SS4Sjr S\S\\\\	44Sjr!S\\4Sjr"Sr#g)�
ConfigDict��z)Git configuration stored in a dictionary.Nr=�encodingrc�t�Uc[R"5nX l[R	U5Ulg)zCreate a new ConfigDict.N)�sys�getdefaultencodingr�rr-�_values)r#r=r�s   rr$�ConfigDict.__init__�s/�����-�-�/�H� �
�6�;�;�F�C��rc�P�URRSUR<S3$)N�(�))�	__class__r^r�r"s r�__repr__�ConfigDict.__repr__s%���.�.�)�)�*�!�D�L�L�+;�1�=�=r�otherc�l�[XR5=(a URUR:H$r)rr�r�)r#r�s  r�__eq__�ConfigDict.__eq__s#���%���0�R�U�]�]�d�l�l�5R�Rrrc�8�URRU5$r)r�rO�r#rs  rrO�ConfigDict.__getitem__
����|�|�'�'��,�,rr,c�8�URRX5$r)r�rBrAs   rrB�ConfigDict.__setitem__
s���|�|�'�'��3�3rc�8�URRU5$r)r�rKr�s  rrK�ConfigDict.__delitem__r�rc�6�URR5$r)r�r:r"s rr:�ConfigDict.__iter__s���|�|�$�$�&�&rc�6�URR5$r)r�r1r"s rr1�ConfigDict.__len__s���|�|�#�#�%�%rrkc�t�URS5n[U5S:XaUSUSUS4$USSUS4$)N�.�rr
�)�splitr0)r)rk�partss   r�_parse_setting�ConfigDict._parse_settingsH���
�
�3����u�:��?��!�H�e�A�h��a��1�1��!�H�d�E�!�H�-�-rrjc	�:�[U[5(dU4n[UVs/sH5n[U[5(dURUR5OUPM7 sn5n[U[5(dURUR5nXB4$s snfr)rrdr�encoder�)r#rjrk�
subsection�checked_sections     r�_check_section_and_name�"ConfigDict._check_section_and_name!s����'�5�)�)��j�G��
#*�	
�#*�J�"�*�e�4�4��!�!�$�-�-�0�� �#*�	
�
���$��&�&��;�;�t�}�}�-�D��$�$��
s�<Bc���URX5up[U5S:�aURURU5$URUS4RU5$![a N.f=f�Nr
r)r�r0r�rYrRrns   rrr�ConfigDict.get_multivar5su���4�4�W�C�
���w�<�!��
��|�|�G�,�4�4�T�:�:��|�|�W�Q�Z�M�*�2�2�4�8�8���
��
�s�A$�$
A1�0A1c��URX5up[U5S:�aURUU$URUS4U$![a N"f=fr�)r�r0r�rRrns   rrV�ConfigDict.get@sk��
�4�4�W�C�
���w�<�!��
��|�|�G�,�T�2�2��|�|�W�Q�Z�M�*�4�0�0���
��
�s�A�
A�Ac��URX5up[U[5(aU(aSOSn[U[5(dUR	UR
5nX0RRU5U'g)Nryrz)r�rr�rr�r�r�r\r~s    rr}�ConfigDict.setOsb���4�4�W�C�
���e�T�"�"�$�G�(�E��%��'�'��L�L����/�E�16������(��.rc�T�URRU5R5$r)r�rVr(r�s  rr(�ConfigDict.items_s"���|�|����(�.�.�0�0rc�6�URR5$r)r�r4r"s rr��ConfigDict.sectionsds���|�|� � �"�"r)r�r��NN)$r^r_r`rar�rrr�r�r�rr$r��objectr�r�rOrBrKrr:rcr1rbr�r�r�rdr�rrrVr�r}r(r�rerfrrr�r��s���3�
�%)�D���7�N�4��;�$?�?�@�$�F�
�D�
��T�	�"�D�
�
D�>�#�>�S�F�S�t�S�-�w�-�>�$��+�+F�-�4�w�4�~�d�E�k�/J�4�t�4�-�w�-�4�-�'�(�7�+�'�&��&��.�#�.��.�%�"�%�*2�%�	�w��}�	�%�(	9�K�	9�x�	9�H�U�O�	9�
1��
1��
1�
�	
1�7��7��7��Y��_�%�	7�

�7� 1��1�	�%��e��$�	%�1�
#�(�7�+�#rr�r,rc��URS5(dURS5(dSU;aS[U5-S-$[U5$)N)� �	�#�")�
startswith�endswith�
_escape_value�r,s r�_format_stringr�hsI��
����'�'��>�>�-�(�(��5�=��m�E�*�*�T�1�1��U�#�#r�\r��n�
�tr��b�r��;r�c	� �[UR55n[5n[5nSnSnU[U5:a�XnU[S5:XaEUS-
n[XnU(aURU5 [5nURU5 OxU[S
5:XaU(+nOaU[;aU(dOeU[;aURU5 O3U(aURU5 [5nURU5 US-
nU[U5:aM�U(a[
S5e[U5$![
an[
SU<SUS35UeSnAf[an[
SX<SUS	U<35UeSnAff=f)NFrr�r
zescape character in z at z before end of stringz/escape character followed by unknown character z in r�zmissing end quote)
�	bytearray�stripr0�ord�
_ESCAPE_TABLE�
IndexErrorr{rR�extendr@�_COMMENT_CHARS�_WHITESPACE_CHARSr)r,�ret�
whitespace�	in_quotesrH�c�v�excs        r�
_parse_stringr�~s{���e�k�k�m�$�E�
�+�C���J��I�	�A�
�c�%�j�.��H����E�
�?�
��F�A�	
�!�%�(�+����
�
�:�&�&�[�
��J�J�q�M�
�#�d�)�^�%�
�I�
�.�
 ���
�#�
#����a� ���
�
�:�&�&�[�
��J�J�q�M�	�Q���=�c�%�j�.�@��,�-�-���:���;�
� �*�5�)�4��s�:O�P������
� �E�e�h�\�QU�VW�UX�X\�]b�\e�f�����
�s$�E�
F
�E"�"
F
�/F�F
c��URSS5nURSS5nURSS5nURSS5nURS	S
5nU$)zEscape a value.r�s\\�
s\rr�s\nr�s\tr�s\")�replacer�s rr�r��sW���M�M�%��)�E��M�M�%��(�E��M�M�%��(�E��M�M�%��(�E��M�M�$��'�E��Lrrkc��[[U55H)nXUS-nUR5(aM!US:wdM) g g)Nr
�-FT��ranger0�isalnum�rkrHr�s   r�_check_variable_namer��s;��
�3�t�9�
���Q��U�O���y�y�{�{�q�D�y���rc��[[U55H)nXUS-nUR5(aM!US;dM) g g)Nr
)r��.FTr�r�s   r�_check_section_namer��s<��
�3�t�9�
���Q��U�O���y�y�{�{�q��4���r�linec���[S5[S51n[S5nSn[[U55H(upEXR:Xa	U(+nMU(aMXQ;dM#USUs $ U$)Nr�r�r�F)r�rGr�)r��
comment_bytes�quote�string_openrH�	characters      r�_strip_commentsr��s`����Y��D�	�*�M���I�E��K�!�)�D�/�2�����)�/�K����!;����8�O�3��Krc��[U5R5nSnSn[U5HSup4U(aSnMU[S5:XaU(+nU[S5:XaSnU[S5:XdMHU(aMQUn O
 [	S5eUSURSS5nXS-Sn[
U5S	:XagUSSSS:wdUSS
SS:wa[	SUS<35eUSSS
US'[US5(d[	S
US<35eUSUS4nXp4$[US5(d[	S
US<35eUSRSS5n[
U5S	:Xa
USUS4nXp4$US4nXp4$)NFr�r�T�]zexpected trailing ]r
r�r����zInvalid subsection rzinvalid section name r�)r��rstriprGr�r{r�r0r�)r�r��escapedrHr��last�ptsrjs        r�_parse_section_header_liner�s����4� �'�'�)�D��I��G��$������G����D�	�>�%�
�I���E�
�?��G���D�	�>�)�)��D�� ��.�/�/�
�q��,�
�
�T�1�
%�C��q��
��D�
�3�x�1�}��q�6�"�1�:����Q������!4��2�3�q�6�*�=�>�>���V�A�b�\�C��F�"�3�q�6�*�*��4�S��V�J�?�@�@��q�6�3�q�6�"���=��#�3�q�6�*�*��4�S��V�J�?�@�@��!�f�l�l�4��#���s�8�q�=��1�v�s�1�v�&�G��=���1�v�i�G��=�rc��^�\rSrSrSrSS\\\\\\	44S4S\\
S4SS4U4Sjjjr\S\
SS4S	j5r\S
\
SS4Sj5rSS
\\
SS4SjjrS\
SS4S
jrSrU=r$)�
ConfigFilei�z;A Git configuration file, like .git/config or ~/.gitconfig.Nr=r�rc�.>�[TU]XS9 SUlg)N)r=r�)�superr$�path)r#r=r�r�s   �rr$�ConfigFile.__init__�s���	�����:�#'��	r�fc���U"5nSnSnSn[UR55GH�upgUS:XaURS5(aUSSnUR5nUGc[	U5S:�a1USSS:Xa([U5up7URRU5 [U5R5S:XaM�Uc[SU<S	35eURS
S5upHUR5n[U5(d[SU<35eURS
5(aUSSnGMURS5(aUSSnGM-Sn[U5nX�RUU'SnGMPURS
5(a
XWSS-
nGMpURS5(a
XWSS-
nGM�XW-
n[U5nX�RUU'SnSnGM� U$![a UnSnGN
f=f)z+Read configuration from a file-like object.Nrsr�r
�[rzsetting z without section�=ryzinvalid variable name s\
���s\
���)rG�	readlinesr��lstripr0rr�r\r�r�r{r�r�r�r�)	r)rr�rj�setting�continuation�linenor�r,s	         r�	from_file�ConfigFile.from_files����e��%)������%�a�k�k�m�4�L�F���{�t����?�?��A�B�x���;�;�=�D����t�9�q�=�T�"�1�X��%5�$>�t�$D�M�G��K�K�*�*�7�3�"�4�(�.�.�0�C�7���?�$�x��x�7G�%H�I�I�$�%)�Z�Z��a�%8�N�G�"�-�-�/��+�G�4�4�$�'=�g�[�%I�J�J��>�>�'�*�*�#(��"�:�L��^�^�I�.�.�#(��"�:�L�#'�L�)�%�0�E�49�K�K��(��1�"�G��=�=��)�)� ��"�I�-�L��]�]�9�-�-� ��"�I�-�L� �(�L�)�,�7�E�49�K�K��(��1�#'�L�"�G�O5�P�
��5"�$�"�G�#�E�$�s�G"�"G4�3G4rc��[US5nURU5nXlUsSSS5 $!,(df   g=f)z'Read configuration from a file on disk.�rbN)rrr)r)rrr�s    r�	from_path�ConfigFile.from_path8s2���T�4�
 �A��-�-��"�C��H��!�
 �
 �s�0�
>c��UcURn[US5nURU5 SSS5 g!,(df   g=f)z&Write configuration to a file on disk.N�wb)rr�
write_to_file)r#rrs   r�
write_to_path�ConfigFile.write_to_path@s6���<��9�9�D�
�T�4�
 �A����q�!�!�
 �
 �s	�7�
Ac�r�URR5H�up#UupEUcURSU-S-5 OURSU-S-U-S-5 UR5H-upg[	U5nURSU-S-U-S-5 M/ M� g![a	 UunSnN�f=f)	z*Write configuration to a file-like object.Nrs]
s "s"]
r�s = r�)r�r(r{�writer�)r#rrjr=�section_name�subsection_namerr,s        rr!�ConfigFile.write_to_fileGs���#�|�|�1�1�3�O�G�
'�07�-���&�����|�+�f�4�5�����|�+�e�3�o�E��O�P�$�l�l�n�
��&�u�-��������f�,�u�4�u�<�=�-� 4���
'�")���"&��
'�s�B#�#B6�5B6)rr�r)r^r_r`rar�rrr�r�r�rr$rbr	rrr
r"r!re�
__classcell__)r�s@rr	r	�s����E�
�%)�(���7�N�4��;�$?�?�@�$�F�
�(�
��T�	�"�(�
�
(�(��.�(�.�|�.��.�`��S��\����"�(�3�-�"�4�"�>�x�>�D�>�>rr	c��[RRS[RR	S55n[RR
"U/UQ76$)N�XDG_CONFIG_HOMEz
~/.config/)�os�environrVr�
expanduser�join)�
path_segments�xdg_config_homes  r�get_xdg_config_home_pathr2XsC���j�j�n�n��
�����<�(��O��7�7�<�<��8�-�8�8rc#�# �SH�n[RRSS5RS5H�n[RR[RR
X55(dMF[RRU5up#Uv� [RRU5upEUS:XdUS:XaUv�  M� M� g7f)N)zgit.exezgit.cmd�PATH��;�mingw32�mingw64)r,r-rVr�r�existsr/)�exer�git_dir�_bin_dir�
parent_dir�basenames      r�_find_git_in_win_pathr?`s����%���J�J�N�N�6�2�.�4�4�S�9�D��w�w�~�~�b�g�g�l�l�4�5�6�6�
%'�G�G�M�M�$�$7�!���
�')�w�w�}�}�W�'=�$�
��y�(�H�	�,A�$�$��:�&�s
�A7C�=A Cc#�# �SSKnSSKnUR5S:XaSnOSnURUR4H\n[[5 URX25nURUS5upVXaR:XaUv� SSS5 SSS5 M^ g!,(df   N=f!,(df   M�=f7f)Nr�AMD64zGSOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Git_is1z;SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Git_is1�InstallLocation)
�platform�winreg�machine�HKEY_CURRENT_USER�HKEY_LOCAL_MACHINEr�OSError�OpenKey�QueryValueEx�REG_SZ)rCrD�subkeyr�k�val�typs       r�_find_git_in_win_regrPps����������W�$�
1�	�
W���(�(�&�*C�*C�D��
�g�
�����,��!�.�.�q�2C�D����-�-�'��I�-��
�E�,�,���
�s6�AC�B.� (B�B.�
C�
B+�'B.�.
B=	�8Cc#�l# �S[R;a4[RR[RSSS5v� [	5H&n[RRUSS5v� M( [5H&n[RRUSS5v� M( g7f)N�PROGRAMDATA�Git�config�etc�	gitconfig)r,r-rr/r?rP)r;s r�get_win_system_pathsrW�sy�����
�
�"��g�g�l�l�2�:�:�m�4�e�X�F�F�(�*���g�g�l�l�7�E�;�7�7�+�'�)���g�g�l�l�7�E�;�7�7�*�s�B2B4c���\rSrSrSrSS\\S\\SS4SjjrS\	4Sjr
\SS	j5r\S\\4S
j5r
S\S\S\4S
jrS\S\S\\4SjrS\S\S\\\4SS4SjrS\\4SjrSrg)�
StackedConfigi�z6Configuration which reads from multiple config files..N�backends�writablerc��XlX lgr�rZr[)r#rZr[s   rr$�StackedConfig.__init__�s��!�
� �
rc�R�SURRSUR<S3$)N�<z for �>)r�r^rZr"s rr��StackedConfig.__repr__�s'���4�>�>�*�*�+�5����0A��C�Crc�.�U"UR55$r)�default_backends)r)s rrU�StackedConfig.default�s���3�'�'�)�*�*rc���/nUR[RRS55 UR[	SS55 S[R
;a>URS5 [RS:XaUR[55 /nUH*n[RU5nURU5 M, U$![a M=f=f)zZRetrieve the default configuration.

See git-config(1) for details on the files searched.
z~/.gitconfig�gitrT�GIT_CONFIG_NOSYSTEMz/etc/gitconfig�win32)
r@r,rr.r2r-r�rCr�rWr	r�FileNotFoundError)r)�pathsrZr�cfs     rrd�StackedConfig.default_backends�s�����
���R�W�W�'�'��7�8�
���-�e�X�>�?� ��
�
�2��L�L�)�*��|�|�w�&����1�3�4����D�
��)�)�$�/��
�O�O�B������%�
��
�s�&C�
C �C rjrkc��[U[5(dU4nURHnURX5s $ [	U5e![a M1f=fr)rrdrZrVrR�r#rjrk�backends    rrV�StackedConfig.get�sX���'�5�)�)��j�G��}�}�G�
��{�{�7�1�1�%�
�t�n����
��
�s�A	�	
A�Ac#�# �[U[5(dU4nURHnURX5Shv�N M gN	![a M1f=f7fr)rrdrZrrrRros    rrr�StackedConfig.get_multivar�sT����'�5�)�)��j�G��}�}�G�
�"�/�/��>�>�>�%�>���
��
�s9�(A�A�A	�A�A�	A�
A�A�A�Ar,c�~�URc[UR5eURRXU5$r)r[rmr}r~s    rr}�StackedConfig.set�s4���=�=� �%�d�h�h�/�/��}�}� � ���6�6rc#�# �[5nURH6nUR5HnX1;dM
URU5 Uv� M! M8 g7fr)r}rZr��add)r#�seenrprjs    rr��StackedConfig.sections�sD����u���}�}�G�"�+�+�-���&��H�H�W�%�!�M�.�%�s
�0A�Ar]r)rrY)r^r_r`rar�rFr	r
r$rr�rbrUrdr�r�r�rVrrrrr�r�r}r�r�rerfrrrYrY�s���@�LP�!��Z�(�!�4<�Z�4H�!�	
�!�D�#�D��+��+����j�!1����.�;��h��5���K��x��H�U�O��7�"�7�*2�7�;@��D��;Q�7�	
�7�"�(�7�+�"rrYrc�B�[RU5n[U5$)zRead a .gitmodules file.)r	r�parse_submodules)r�cfgs  r�read_submodulesr}�s��
�
�
�t�
$�C��C� � rrTc#��# �UR5H:nUup#US:XdMURUS5nURUS5nXEU4v� M< g![a MLf=f7f)z�Parse a gitmodules GitConfig file, returning submodules.

Args:
  config: A `ConfigFile`
Returns:
  list of tuples (submodule path, url, name),
    where name is quoted part of the section's name.
s	submodulespath�urlN)r4rVrR)rTrj�section_kindr&�sm_path�sm_urls      rr{r{�sl����;�;�=��%,�"���<�'�
� �*�*�W�g�6�����G�V�4����5�5�
!���
��	
�s(�A#�*A�
A#�
A �A#�A � A#�pushc#�# �UR5H�nUSS:waMUSn[URUS55nU(aU[URUS55-
nUH>n[	U[
5(deUR
S5UR
S54v� M@ M� g![a /nN}f=f![a Ngf=f7f)z.Iterate over insteadOf / pushInsteadOf values.rrr
�	insteadOf�
pushInsteadOfzutf-8N)r�rFrrrRrr�decode)rTr�rj�replacement�needles�needles      r�iter_instead_ofr��s�����?�?�$���1�:�����a�j��	��6�.�.�w��D�E�G��
��4�� 3� 3�G�_� M�N�N���F��f�e�,�,�,�,��-�-��(�+�*<�*<�W�*E�E�E��%���	��G�	��
�
��
�sM�$C�B1�C�
C�(A	C�1C�=C�?C�C�
C�
C�C�C�orig_urlc��SnUn[X5HIupVURU5(dM[U5[U5:dM7UnXa[U5S-nMK U$)z)Apply insteadOf / pushInsteadOf to a URL.r5N)r�r�r0)rTr�r��longest_needle�updated_urlr�r�s       r�apply_instead_ofr�sc���N��K�.�v�<����"�"�6�*�*���~���V��,�#�N�%��V���(?�?�K� =��r)F)7r�r,r��collections.abcrrrr�
contextlibr�typingrr	r
rr�filerr�rSrrrr�rr�rdr�r�r�r�rhr�r�r�r�r�r�r�r�r�r�r�r�rr	r2r?rPrWrYr}r{r�r�rfrr�<module>r�s���,�
�
�H�H������8���K�n�K�\
��������
��s�
�
���E�3��e�E�3�J�&7��&<� =�=�>��
���%��*��	�b'�b'�Jq#������e��1L�(L�M�q#�h$�%�$�E�$���J��E�
���I�s�4�y���I�s�5�z���I�s�5�z���I�s�5�z��
��d�)�S��Y�'����Z��T��+��)��)�5�)�X���5���u�����e�����%��E��%�U�%�u�W�e�^�/D�%�P[>��[>�|9�
� �48�H"�F�H"�V!�#�!�(�5���u�1D�+E�"F�!��Z��H�U�5�%��;N�5O�,P��.F�F�F�$�F�8�E�#�s�(�O�;T�F�(
�V�
�s�
�$�
�3�
r

Youez - 2016 - github.com/yon3zu
LinuXploit