%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/share/hplip/base/__pycache__/
Upload File :
Create Path :
Current File : //usr/share/hplip/base/__pycache__/status.cpython-312.pyc

�

=	f�d��H�ddlZddlZddlZddlZ	ddlmZddlZddlZddl	m
Z
mZmZm
Z
mZddl�ddlmcmZddlZ	ddlmZdZddl�ddl�dd
lmZmZej>d�Z ej>d�Z!	dZ"dZ#d
Z$dZ%dZ&dZ'dZ(ide)�de*�de+�de,�de-�de.�de/�de0�de1�de2�de3�de4�de5�de6�d e7�d!e8�d"e9�e:e;e<e=e>d#��Z?e@eAeBeCeDeAeBeCeDd$�	ZEe(geFd%�ZGe"d&e#d&e$d&e%d'e&d(iZHe"d)e#d)e$de%d)e&d)iZIe"d*e#d*e$d*e%d&e&d+iZJ�d&d,�ZKd-�ZLd.�ZMd/�ZNeOeOePeBeCeDeAeQeReSeTeUeVeWeXd0�ZYiej�e[�ej�e[�ej�e^�ej�e[�ej�ea�ej�ec�ej�ec�ej�e[�ej�eg�ej�e[�ej�e[�ej�e[�ej�e[�ej�e[�ej�en�ej�e[�ej�e[�ej�e[ej�e[ej�etej�e^ej�e[ej�exi�Zyd1�Zzd2�Z{da|e{�d3�Z}e~ee�e�e�d4�Z�e�e�e�e�e�e�d5�Z�e�e�e�e�e�e�e�e�d6�Z�d7�Z�d8�Z�d9�Z�ide*�d:e*�d;e.�d<e��d=e��d>e)�d?e)�d@e��dAe)�dBe2�dCe7�dDe2�dEe)�dFe2�dGe2�dHe;�dIe��idJe��dKe��dLe7�dMe7�dNe7�dOe7�dPe7�dQe7�dRe7�dSe7�dTe7�dUe7�dVe7�dWe7�dXe;�dYe��dZe���id[e��d\e��d]e��d^e;�d_e;�d`e;�dae;�dbe;�dce;�dde��dee*�dfe��dge;�dhe*�die��dje)�dke)��idle��dme)�dne)�doe)�dpe)�dqe)�dre.�dse-�dte-�due;�dve)�dwe��dxe7�dye7�dze7�d{e;�d|e)��id}e)�d~e;�de)�d�e)�d�e)�d�e)�d�e��d�e7�d�e;�d�e;�d�e)�d�e)�d�e)�d�e)�d�e)�d�e;�d�e)��id�e)�d�e��d�e7�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)��id�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)�d�e)��Z�d��Z�id�e*�d�e��d�e��d�e)�d�e)�d�e��d�e.�d�e��d�e��d�e)�d�e-�d�e)�d�e)�d�e-�d�e)�d�e)�d�e)�id�e)�d�e-�d�e+�d�e��d�e��d�e)�d�e7�d�e-�d�e+�d�e)�d�e)�d�e)�d�e��d�e.�d�e+�d�e��d�e���id�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e���id�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e��d�e���e�e�e�e�e*e�e*e7e�e7e�e�d���Z�d�Z�d�Z��d'd��Z�e�jLd�e�jN�Z�d��Z�eae^eaece�e^e^d��Z�eQe�eCeBeDeAeTeRd��Z�e�e�e�e�e�e�d��Z�e~e�e�e�d��Z�d��Z��d&d��Z�d��Z��d&�d�Z��d�Z��d�Z��d�Z��d�Z��d�Z��d�Z��d�Z��d�Z��d	�Z��d
�Z�dZ�dZ��dZ�eae^eaeae�e^e^e^enea�d�
Z�eCeBeDeAeAeCeBeDe@�d
�	Z�e�e�e�e�e��d�Z�e~e�e��d�Z�i�de*��de2��de7��de,��de���deǓ�de���de���deȓ�de2��deɓ�deʓ�de˓�de˓�de̓�de̓�d e͓�d!e�i�Zϐd"�ZАd#�Zѐd$�ZҐd%�Z�y#ddlmZY���xYw#e$r	ddlmZdZn
#e$rd	ZYnwxYwd	ZY���wxYw((�N)�urlopen�)�BytesIO�
to_bytes_utf8�to_bytes_latin�to_string_latin�to_long)�*)�ElementTreeT)�XMLF)�pml�utils�cupsext�hpmudext������busy�idle�prnt�offf�rprt�cncl�iost�dryw�penc�oopa�bnej�bnmz�phmz�dpmz�pajm�cars�paps)�penf�erro�pwdn�fpts�clno)	rrrrr����)�revision�agents�status-code���r/��c� �d}g}t}t}t}t}t}t
}	t
}
t}d}	g}
t|�dkDrN|jd�}|D]8}t|�dkDs�|dddk(s�|dd}|D�cgc]}t|d���}
}�:|D�cgc]}t|d���}}|d}t|cxkr
tksJ�J�t|dtd	�z�|dztd�z}t|d
td	�z�|d
ztd�z}t|dtd�z�|dztd�z}t|d
d	z�|d
zdz}|tk(rYt|dtd	�z�|dztd�z}	t|dtd	�z�|dztd�z}
n4t|dtd	�z�}	t|dtd	�z�}
t|d	td	�z�|d	td�zzt|dtd�z�dzz}t|}||dz}|dk7r||dz||dzz}|t z}it"|dzd}}}|t"|}d}t$|}t&j)d|z�t+|�D�]�}t||||zd�}||d<|dk(r�t,j/t|td�ztd�z	�d�|d<||dzkr
t0|d<n	t2|d<t|td�ztd�z	�|d<t|td�ztd�z	�|d<t|td�z�|d<d|d<�n|d	k(r�t|td�z�t|td �z�td�zz|d<t|td!�ztd"�z	�|d<t|d#ztd$�z	�|d<t|td%�ztd�z	�|d<t|td&�ztd'�z	�|d<t|td(�z�|d<nt&j5d)�t|
�dkDr�	t|dz|d
zd�|d*<t|
|d
ztd	�z�|d+<t|
|d
ztd�z�|d,<t|
|d
ztd�z�|d-<t|
|d
ztd�z�|d.<t&j)d/||fz�|dz
}|j9|�i}||z
}||z
}���	||||||||	|
|d1�
Scc}wcc}w#t6$rd|d*<d|d+<d|d,<d|d-<d|d.<Y�{wxYw#t6t:t<f$r+}t&j?d0tA|�z�Yd}~�yd}~wwxYw)2N�r-r�,r�05r3rr/rr�r,r.r4�0z
num_pens = %d�indexi��type�kindi�	�
level-triggeri��health��level��idli@i?�i��ii�r6rzPen data size error�dvc�virginzhp-ink�known�ackz	pen %d %szStatus parsing error: %s�
r0r1�top-doorr2�supply-door�duplexer�
photo-tray�in-tray1�in-tray2�
media-path)!�TOP_DOOR_NOT_PRESENT�STATUS_UNKNOWN�SUPPLY_DOOR_NOT_PRESENT�DUPLEXER_NOT_PRESENT�PHOTO_TRAY_NOT_PRESENT�IN_TRAY_NOT_PRESENT�MEDIA_PATH_NOT_PRESENT�len�split�int�
STATUS_REV_00�
STATUS_REV_04�boolr	�
STATUS_REV_02�
STATUS_POS�STATUS_PRINTER_BASE�NUM_PEN_POS�
PEN_DATA_SIZE�log�debug�range�REVISION_2_TYPE_MAP�get�AGENT_KIND_HEAD�AGENT_KIND_SUPPLY�error�
IndexError�append�
ValueError�	TypeError�warn�str)�s�zr0�pens�top_door�stat�supply_doorrQ�
photo_tray�in_tray1�in_tray2�
media_path�Z_SIZE�z1�z_fields�z_field�z1s�x�s1�
status_pos�status_byte�pen�c�d�num_pensr>�
pen_data_size�p�info�es                              �/usr/share/hplip/base/status.py�parseSStatusr��sG���H�
�D�#�H��D�)�K�#�H�'�J�"�H�"�H�'�J�
�F�_6�
���q�6�A�:��w�w�s�|�H�#�
3���w�<�!�#�����t�(;�!�!�"�+�C�.1�2��#�a��*�2�B�2�	
3�#$�
$�Q�c�!�R�j�
$��
$��a�5����9�M�9�9�9�9�9���1�����,�-��1��5����D���2�a�5�7�3�<�/�0�2�a�5�8�7�3�<�G����1�����,�-��A��6����E���"�Q�%�#�+�&��A��.��4�
��}�$��B�q�E�G�C�L�0�1�B�q�E�9�G�C�L�H�H��B�q�E�G�C�L�0�1�B�q�E�9�G�C�L�H�H��B�q�E�G�C�L�0�1�H��B�q�E�G�C�L�0�1�H��"�Q�%�'�#�,�.�/�2�a�5�7�3�<�3G�H�T�RT�UW�RX�[b�cf�[g�Rg�Mh�kl�Ll�m�
���)�
���n�a�'���"���j�>�1�,��:��>�0B�B�K��0�0����H�-�a�/���Q���k�(�+�,����%�h�/�
��	�	�/�H�,�-��x��2	�A��q��Q��.�/��4�D� �C��L���!�1�5�5�c�4�'�&�/�;Q�V]�^`�Va�:a�6b�de�f��F���H�q�L�)�"1�C��K�"3�C��K�'*�T�G�F�O�-C��PQ�
�,R�'S��O�$� #�T�G�F�O�%;���
�$J� K��H�
�"�4�'�&�/�#9�:��G�� ��D�	��!�#�"�4�'�*�*=�#=�>�4��w�Wa�Ob�Hb�Cc�fm�no�fp�Bp�q��F��!�4�'�*�*=�#=�'�"�+�"M�N��F������W�R�[� @�A��D�	�'*�D�7�7�3C�,C��PR��+S�'T��O�$� #�T�G�F�O�%;����$K� L��H�
�"�4�'�$�-�#7�8��G���	�	�/�0��2�w��{�#�!$�S��1��Q�q�S�\�2�!6�C��J�$(��A�a�C��7�3�<�)?�$@�C��M�$(��A�a�C��7�3�<�)?�$@�C��M�#'��1�Q�3��'�#�,�(>�#?�C��L�!%�b��1��g����&<�!=�C��J�
�I�I�k�U�C�L�0�1��Q�J�E��K�K����C�
���A�
��K�A�e2	�n%�!�%�!�(�%�'�%�%�'�

�

��q3��
$��H"�#�!"�C��J�$%�C��M�$%�C��M�#$�C��L�!"�C��J�#��
�
�I�.�6����+�c�!�f�4�5�5��6�sg�4W�-W�6	W�?V�W�V!�-P	W�7BV&�?W�
W�&"W�W�
W�W�X
�"!X�X
c� �gid}}}|jd�}tj|�|d}t|�dk(r�nt|�dk(�r	|D�]}|dk(r|dz
}�|dk(r|dvrtt
c|d<|d<|dz
}�1|d	k(rYt|d
<t|d<|dvr
t|d<n3|dvr
t|d<n%|d
vr
t|d<n|dvrttc|d<|d
<|dz
}��|dk(s��|dk(rd|d<nd|d<d|d<d}		||}|dd	dk(r|dtk(rt|d	d�|d<n&|dd	dk(r|dtk(rt|d	d�|d<	|dz
}�Xn		|d	|d	dk(rd}	nd	}			tj!|dj#�t$�}
t&||	|
t(t*t,t.t.t0d�
S#t$rYnwxYw|j|�i}d}���#t$rd}	Y��wxYw#t$r	t$}
Y�qwxYw)Nrr:r7r/r)�a�Ar?r@rrC)�b�B)r��C)r��D)�u�Ur�0�staterE�KP�CP�DNrN)r^rhrir]�AGENT_TYPE_NONE�AGENT_KIND_NONE�AGENT_HEALTH_OK�AGENT_KIND_HEAD_AND_SUPPLY�AGENT_TYPE_BLACK�AGENT_TYPE_CMY�AGENT_TYPE_KCM�AGENT_HEALTH_MISINSTALLEDr_rprq�
vstatus_xlaterl�lower�STATUS_PRINTER_IDLE�STATUS_REV_VrXrYrZr[�MEDIA_PATH_CUT_SHEET)rvrxr�r��fields�f0r��i�f�top_lidrzs           r��parseVStatusr�st���r�1�q�#�D�
�W�W�S�\�F��I�I�f��	���B�
�2�w�"�}�	
�	�R��A���%	�A��A�v��Q����a���
�?�/>��,�C��K��V���Q����a�� /��H�
�8��F���*�_�4D�c�&�k��*�_�N�c�&�k��*�_�N�c�&�k��*�_�?�Tm�&@�c�&�k�3�x�=��Q����a����8�A�S��\�%&�c�'�l� ��G�����6�"�1�I���R�a�5�D�=�S��[�<L�-L�+.�q���u�:�C��L��r��U�d�]�s�6�{�n�/L�+.�q���u�:�C��L���F�A��/%	�N	
���q�	��!�9����G��G�#�� � ������!2�4G�H��(� �#� �3�0�2�/�/�0�

�

��=&��������C� �������������#�"��#�s6�G�G*�0+G;�	G�G�*G8�7G8�;H
�H
c�x�d|vrt|d�Sd|vrt|d|jdd��StS)N�VSTATUS�S�Zr9)r�r�rl�STATUS_BLOCK_UNKNOWN)�DeviceIDs r��parseStatusr�gsC���H���X�i�0�1�	1�	����H�S�M�8�<�<��R�+@�A�A�#�#�c���t}|tjtjfvr�|tjzr|tj
zst}|S|tj
zrt}|S|tjzrt}|S|tjzrt}|S|tjzrt}|S|tjzrt}|S|tj k(rt"}|S|tj$zrt&}|S|tj(k(rt}|S|tj*k(rt,}|S|tj.k(rt0}|S�N)r�r
�DEVICE_STATUS_WARNING�DEVICE_STATUS_DOWN�#DETECTED_ERROR_STATE_LOW_PAPER_MASK�"DETECTED_ERROR_STATE_NO_PAPER_MASK�STATUS_PRINTER_LOW_PAPER�STATUS_PRINTER_OUT_OF_PAPER�#DETECTED_ERROR_STATE_DOOR_OPEN_MASK�STATUS_PRINTER_DOOR_OPEN� DETECTED_ERROR_STATE_JAMMED_MASK�STATUS_PRINTER_MEDIA_JAM�"DETECTED_ERROR_STATE_OUT_CART_MASK�STATUS_PRINTER_NO_TONER�"DETECTED_ERROR_STATE_LOW_CART_MASK�STATUS_PRINTER_LOW_TONER�)DETECTED_ERROR_STATE_SERVICE_REQUEST_MASK�STATUS_PRINTER_SERVICE_REQUEST�!DETECTED_ERROR_STATE_OFFLINE_MASK�STATUS_PRINTER_OFFLINE�PRINTER_STATUS_IDLE�PRINTER_STATUS_PRINTING�STATUS_PRINTER_PRINTING�PRINTER_STATUS_WARMUP�STATUS_PRINTER_WARMING_UP)�
device_status�printer_status�detected_error_staterzs    r��#LaserJetDeviceStatusToPrinterStatusr�os`���D���2�2�C�4J�4J�K�K��#�"I�"I�I�%��(N�(N�N�+�D�D�K�A"�C�$J�$J�
J�.�D�>�K�;"�C�$K�$K�
K�+�D�8�K�5"�C�$H�$H�
H�+�D�2�K�/"�C�$J�$J�
J�*�D�,�K�)"�C�$J�$J�
J�+�D�&�K�#"�S�%R�%R�
R�1�D� �K�"�C�$I�$I�
I�)�D��K��S�4�4�4�&�D��K�
�s�:�:�
:�*�D�
�K��s�8�8�
8�,�D��Kr�)�other�unknown�blue�cyan�magenta�yellow�black�
photoblack�
matteblack�	lightgray�gray�darkgray�	lightcyan�lightmagenta�redc��	|j�|jtjtj�\}}|jtj
tj�\}}|jtjtj�\}}|jtj�\}}	tjdt|d��d}gd}	}	t$j'dd|	dfz�t$j'd|	z�tj(|	ztj*f}
|j|
tj�\}}|t,k7s|�t$j'd��nt.D]}||k(s�	t.|}nt0}t$j'd	|	z�tj2|	ztj4f}
|j|
�\}}
|t,k7rt$j'd
��nrt$j'd|	|
fz�t$j'd|	z�tj6|	ztj8f}
|j|
�\}}|dk(rd}|t,k7rt$j'd
��n�t$j'd
|	|fz�t$j'd|	z�tj:|	ztj<f}
|j|
�\}}|t,k7rt$j'd
�t>}�nt$j'd|z�t$j'd|	z�tj@|ztjBf}
|j|
�\}}|t,k7rt$j'd�t>}�nx|tDtFtHtJfvrtL}�nXt>}|t,k7r�t$j'd|	z�tjN|	ztjPf}
|j|
�\}}|t,k7rt$j'd
��n(|��t$j'd|z�|jS�jU�}tVD]!}|jY|�dk\s�tV|}nyt>}nq|�Pt$j'd|z�|jS�jU�}tVj[|t>�}|t\k(r|t^k(rt>}ntL}t$j'd|	z�tj`|	ztjbf}
|j|
�\}}|t,k7r"t$j'd
�td}tf}nxtd}|�tf}ni|tjhk(rtf}nO|tjjk(rtl}n5|tjntjpfvr
tf}tr}ntf}tutw|
�|zdz�}
t$j'd|	||||
|fz�|jy||||
|d��|	dz
}	|	dkDrn���|xstz}t$j'd|z�|xstj|}t$j'd|z�|xstj~}t$j'd|z�|xstj�}t$j'd||fz�t�|||�}t$j'd|z�|t�k(rd}nd}t||||dddddd�
S#t$r(|j�tgdtddddddd�
cYSwxYw#tt f$rtj"}Y���wxYw)NrrrNr�z%s Agent: %d %sz
**********zOID_MARKER_SUPPLIES_TYPE_%d:zEnd of supply information.zOID_MARKER_SUPPLIES_LEVEL_%d:�Failedzagent%d-level: %dzOID_MARKER_SUPPLIES_MAX_%d:zagent%d-max: %dz&OID_MARKER_SUPPLIES_COLORANT_INDEX_%d:zColorant index: %dzOID_MARKER_COLORANT_VALUE_%dzFailed. Defaulting to black.z#OID_MARKER_SUPPLIES_DESCRIPTION_%d:zcolorant value: %szOID_MARKER_STATUS_%d:�dz@agent%d: kind=%d, type=%d, health=%d, level=%d, level-trigger=%d�r@r?rCrErBr7zprinter_status=%dzdevice_status=%dzcover_status=%dzdetected_error_state=%d (0x%x)zPrinter status=%d)C�openPML�getPMLr
�OID_PRINTER_STATUS�
INT_SIZE_BYTE�OID_DEVICE_STATUS�OID_COVER_STATUS�OID_DETECTED_ERROR_STATE�Error�closePML�STATUS_REV_UNKNOWNrW�struct�unpackrrprsr�rhri�OID_MARKER_SUPPLIES_TYPE_x�OID_MARKER_SUPPLIES_TYPE_x_TYPE�
ERROR_SUCCESS�%MARKER_SUPPLES_TYPE_TO_AGENT_KIND_MAP�AGENT_KIND_UNKNOWN�OID_MARKER_SUPPLIES_LEVEL_x� OID_MARKER_SUPPLIES_LEVEL_x_TYPE�OID_MARKER_SUPPLIES_MAX_x�OID_MARKER_SUPPLIES_MAX_x_TYPE�$OID_MARKER_SUPPLIES_COLORANT_INDEX_x�)OID_MARKER_SUPPLIES_COLORANT_INDEX_x_TYPEr��OID_MARKER_COLORANT_VALUE_x� OID_MARKER_COLORANT_VALUE_x_TYPE�AGENT_KIND_MAINT_KIT�AGENT_KIND_ADF_KIT�AGENT_KIND_DRUM_KIT�AGENT_KIND_TRANSFER_KIT�AGENT_TYPE_UNSPECIFIED�!OID_MARKER_SUPPLIES_DESCRIPTION_x�&OID_MARKER_SUPPLIES_DESCRIPTION_x_TYPEr��strip� COLORANT_INDEX_TO_AGENT_TYPE_MAP�findrlr��AGENT_KIND_TONER_CARTRIDGE�OID_MARKER_STATUS_x�OID_MARKER_STATUS_x_TYPE� AGENT_LEVEL_TRIGGER_SUFFICIENT_0r��OID_MARKER_STATUS_OK�OID_MARKER_STATUS_MISINSTALLEDr�� OID_MARKER_STATUS_LOW_TONER_CONT� OID_MARKER_STATUS_LOW_TONER_STOP�AGENT_LEVEL_TRIGGER_MAY_BE_LOWr_�floatrqr��DEVICE_STATUS_RUNNING�COVER_STATUS_CLOSED�DETECTED_ERROR_STATE_NO_ERRORr�r�)�dev�parsedID�result_coder�r��cover_status�valuer�r1r��oidr��
agent_kind�agent_level�	agent_max�colorant_index�
agent_type�colorant_valuer��agent_status�
agent_trigger�agent_healthrzr{s                        r��StatusType3r+�s�������
�'*�j�j�#�2H�2H�#�J[�J[�&]�#��^�%(�Z�Z��1F�1F��HY�HY�%[�"��]�$'�J�J��0D�0D�c�FW�FW�$Y�!��\� �Z�Z��)E�)E�G���U� E�%�}�}�c�>�%��(�3K�L�Q�O���A�A�F�
��	�	�$���6�':�:�;��	�	�0�1�4�5��.�.��2�C�4W�4W�Y�� �Z�Z��c�.?�.?�A���U��-�'�5�=��I�I�2�3��6�	,�A���z�B�1�E�
��	,�
,�J�	�	�	�1�A�5�6��/�/�!�3�S�5Y�5Y�[��#&�:�:�s�#4� ��[��-�'��I�I�h����	�	�&�1�k�);�;�=��	�	�/�!�3�4��-�-��1�3�3U�3U�W��!$���S�!2���Y���>�q�9��-�'��I�I�h����	�	�$��I�'7�7�9��	�	�:�Q�>�?��8�8�1�<�c�>k�>k�m��&)�j�j�#�&7�#��^��-�'��I�I�h��)�J�
�I�I�*�^�;�<��I�I�4�q�8�9��3�3�n�D�c�Fj�Fj�l�C�*-�*�*�c�*;�'�K���m�+��	�	�8�9�-�
��"6�8J�"5�7N�"P�P�"8�J�"2�J�"�m�3��	�	�"G�!�"K�L�"�D�D�q�H�#�Jt�Jt�u��69�j�j�#�6G�3��^�&�-�7��I�I�h�/�!�)�5��I�I�&:�^�&K�L�-;�-A�-A�-C�-I�-I�-K�N�%E�>��#1�#6�#6�q�#9�Q�#>�1Q�RS�1T�J�$)�>�
.>�
�*�5��I�I�&:�^�&K�L�-;�-A�-A�-C�-I�-I�-K�N�)I�)M�)M�~�_o�)q�J�%��8�)�-G�G�-=�
�-C�
��	�	�)�A�-�.��'�'�!�+�S�-I�-I�K��$'�J�J��$5�!��\��-�'��I�I�h��<�M�*�L�<�M��#�.����!9�!9�9�.����!C�!C�C�8���3�#G�#G�#&�#G�#G�"J�J� /�� >�
� /���%��,�Y�6��<�=��	�	�	�T�
�
�J��k�=�Q�R�	S�	�
�
�
� *�".�!,�)6�	9�	:�	
�Q����r�6��_�d$�:�':�N��I�I�!�N�2�3�!�>�S�%>�%>�M��I�I� �=�0�1��:�3�#:�#:�L��I�I��,�.�/�/�T�3�3T�3T���I�I�.�2F�H\�1]�]�^�.�}�n�Nb�c�D��I�I�!�D�(�)��'�'�����.�#�)�!�(������

�

��u�
�
�|�|�~�1�!#�!"�!/�!"�!"�!"�!"�!"�!"�
�
�
��"
�	�"�E�"�D�D��E�s$�C];�%^/�;.^,�+^,�/_�_c�$�td�}i}tdd�D�cgc]
}t|���c}D]}||vr|||<�
d||<�|jddddddddddd	dd
��t	d�t	d�}}t|j��}|j
�|D]O}t	d�j|t	|�g�}t	d�j|t	||�g�}�Qtj||�a
ycc}w)Nz_0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~r�� �«�»�£r
�?)�����€��‚�ƒ�…� ��=r9)�listrj�chr�updater�keys�sort�joinr�
Translator�PANEL_TRANSLATOR_FUNC)�
printables�mapr��frm�to�map_keyss      r��setup_panel_translatorrL�s&���&�'�J�
�C�#�A�c�l�
+��c�!�f�
+����
�?��C��F��C��F�	��J�J��#�#�#�#�#�#�#�#�#�#�#����R� �.��"4��C��C�H�H�J��H��M�M�O�
�C���R� �%�%�s�N�1�,=�&>�?��
�B�
�
$�
$�b�.��Q��*@�%A�
B��C�
"�,�,�S�"�5���9,s�D
c��td�d}}|jttfv�r*	|j	�t
jt
jft
jt
jfg}|D]�\}}|j|�\}}|t
jks�.t|jd��j�}td�|vr |jtd�d�\}}nT|j|�\}}|t
jks��t|jd��j�}n	t#|xs|�|xstd�|xstd�fS#t $rY�7wxYw)Nr9�utf-8�
r)r�io_mode�IO_MODE_RAW�IO_MODE_UNIr�r
�OID_HP_LINE1�OID_HP_LINE2�
OID_SPM_LINE1�
OID_SPM_LINE2r��ERROR_MAX_OKrF�encode�rstripr^r�rb)r�line1�line2�oids�oid1�oid2�results       r��
PanelCheckr`�sZ�� ��$�r�5�E�
�{�{�;��4�4�	��K�K�M�
�%�%�s�'7�'7�8��'�'��):�):�;�=�D�#�
�
��d� #�
�
�4� 0�
����C�,�,�,�1�%�,�,�w�2G�H�O�O�Q�E�$�V�,��5�',�{�{�=��3H�!�'L���u��$'�J�J�t�$4�M�F�E��� 0� 0�0� 5�e�l�l�7�6K� L� S� S� U���
� ������!;�-��*;�U�=W�m�TV�FW�W�W��/�	��	�s�E=�=	F	�F	)rrrrr)rrrrrr,))r��P)�O�<)�;�()�'�)�r7)rI�
)rAr,)r���c	��d}		|j�|tk(r�|jtj�\}}|tj
kDr<|dj
tttdtd��	|j�y|dj
ttt|td��	|j�y|jtj�\}}|jtj�\}}|��|��|tjzr�|dk\r�t D]!}|d|cxk\r	|dkDs�n�t |}n|tj"zrt$}	n |tj&zrt(}	nt}	|dj
tt|	|d��	|j�y|dj
tttdtd��	|j�yd}	|j�|t,k(rx|rv		|j3d�}
|j3d	�}|j3d
�}|dj
ttt4|
|t6|d��|j9�y|dj
tttdtd��y#t*$r#|t,k(rt.j1d�d}Y��wxYw#|j�wxYw#t*$r-|dj
tttdtd��Y��wxYw#|j9�wxYw)NFr1rr�rTz3PML channel open failed. Trying dynamic counters...������)r��STATUS_BATTERY_CHECK_PMLr�r
�OID_BATTERY_LEVEL_2rWrq�AGENT_KIND_INT_BATTERYr	�AGENT_HEALTH_UNKNOWNrr�r��OID_BATTERY_LEVEL�OID_POWER_MODE�POWER_MODE_BATTERY_LEVEL_KNOWN�BATTERY_PML_TRIGGER_MAP�POWER_MODE_CHARGING�AGENT_HEALTH_CHARGING�POWER_MODE_DISCHARGING�AGENT_HEALTH_DISCHARGINGr��STATUS_BATTERY_CHECK_STDrhri�getDynamicCounter�BATTERY_HEALTH_MAP�BATTERY_TRIGGER_MAP�
closePrint)r�status_block�
battery_check�try_dynamic_countersr_�
battery_level�
power_moder��battery_trigger_levelr*�battery_healths           r��BatteryCheckr��s.�� ��N�J	0��K�K�M�� 8�8�(+�
�
�3�3J�3J�(K�%��
��C�,�,�,� ��*�1�1�#9�#9�#7�#$�*J�3���v	����q!��*�1�1�#9�#9�#2�#0�*J�3���b	����]),�
�
�3�3H�3H�(I�%��
�&)�j�j��1C�1C�&D�"��
� �,��*�!�C�$F�$F�F�%��*�!8�&�A� ��t�}�;�q��t�;�8O�PQ�8R� 5� %�&�
&��(?�(?�?�+@�L�'�#�*D�*D�D�+C�L�,;�L�$�X�.�5�5�'=�'=�'3�'4�.C�7��� 	����%�X�.�5�5�'=�'=�';�'(�.N�7���	����,0�(�	�����0�0��	�
�!$�!6�!6�s�!;��(+�(=�(=�c�(B�%� #� 5� 5�c� :�
��X�&�-�-�5�5�1�.�A�,�&9�:O�&P�/�� 
�N�N��	�X��%�%�-�-�+��>�'�	��U�	,�� 8�8��	�	�O�P�'+�$��	,��V	�����&�
��X�&�-�-�5�5�3� �&F�/��
��
�N�N��sn�J>�A(K-�*K-�A:K-�A+K-�*K-�?K-�A#L�>)K*�'K-�)K*�*K-�-K?�3L8�5L;�7L8�8L;�;M
c��|dD�cgc]}|d��	}}tj|d��rtSt|vr>t|vrt
St|vrtSt|vrtSt|vrtStSt|vrt|vrtSt|vrt|vrtSt|vrt|vrtStScc}w)Nr1r?c��|tk(Sr�)r�)r�s r��<lambda>z%getPenConfiguration.<locals>.<lambda>{s��!�_�"4�r�)r�all�AGENT_CONFIG_NONEr�r��AGENT_CONFIG_BLACK_ONLYr��AGENT_CONFIG_COLOR_ONLYr��AGENT_CONFIG_PHOTO_ONLY�AGENT_TYPE_GGK�AGENT_CONFIG_GREY_ONLY�AGENT_CONFIG_INVALID�AGENT_CONFIG_COLOR_AND_BLACK�AGENT_CONFIG_COLOR_AND_PHOTO�AGENT_CONFIG_COLOR_AND_GREY)rvr�rxs   r��getPenConfigurationr�xs��� ��{�+�!�A�f�I�+�D�+��y�y��4�5� � ��$���t�#�*�*�
�t�
#�*�*�
�t�
#�*�*�
�t�
#�)�)�(�'��t�#��$�(>�/�/�
�t�
#��$�(>�/�/�
�t�
#��$�(>�.�.�(�'��C,s�Cc��d\}}|jttfvr�	|j�|j	t
j�\}}|tk(r&|r$|t
jt
jfvrd}|j	t
j�\}}|tk(r&|r$|t
jt
jfvrd}|j�||fS||fS#|j�wxYw)N)FFT)rPrRrQr�r�r
�OID_FAXJOB_TX_STATUSr��FAXJOB_TX_STATUS_IDLE�FAXJOB_TX_STATUS_DONE�OID_FAXJOB_RX_STATUS�FAXJOB_RX_STATUS_IDLE�FAXJOB_RX_STATUS_DONEr�)r�	tx_active�	rx_activer�tx_state�rx_states      r��getFaxStatusr��s���'��I�y�
�{�{�;��4�4�	��K�K�M�$'�J�J�s�/G�/G�$H�!�K���m�+���C�$=�$=�s�?X�?X�#Y�Y� $�I�$'�J�J�s�/G�/G�$H�!�K���m�+���C�$=�$=�s�?X�?X�#Y�Y� $�I�
�L�L�N��i���9�i����
�L�L�N�s�B2C)�)C;i(���i͵��iʹ��i˹��iϵ��i��i����i"���i���i����i��i��i��i��i#���i����i���iе��i���i���ie���i���i���i���i���i`���ia���ib���i���i����i���i����i����i¹��iù��i͹��i����i����i����iε��i����i@���i���ic���i:���i���i���iز��i����i	���i��i)���i$���i%���i+��i%��i���i
���i���i"���i&���i*��i!��i ��i"��i.��i&��i���i8���i���i���i���i���i���i���i���i���i<��i>��i?��iA��i=��i;��iB��i:��i8��i9��i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���i���c
��t�}t�}	|jd|�|jd|�|j	�}|j	�}i}i}|rX	tjdt
|��tj�j|�}tj|�|rX	tjdt
|��tj�j|�}tj|�|jdd	�}|s|jdd	�}|jd
d	�}|jdd	�}g}|jt t"d	|d	d��|j$t&k(r�|jd
d	�}	|jt t(d	|	d	d��|jdd	�}
|jt t*d	|
d	d��|jdd	�}|jt t,d	|d	d��t.|d	d	dd	dddt0j|t2�d�
S#tjd�Y��,xYw#tj$rtjd�i}Y���wxYw#tj$rtjd�i}Y���wxYw)Nz!/hp/device/info_device_status.xmlz/hp/device/info_ssp.xmlz'Failed to get Device status information�info_device_statuszDevice Status XML parse error�info_sppzSSP XML parse errorz6devicestatuspage-devicestatus-statuslist-status-code-0rz<devicestatuspage-suppliesstatus-blacksupply-percentremainingz)suppliesstatuspage-blacksupply-lowreachedr�z;devicestatuspage-suppliesstatus-cyansupply-percentremainingz>devicestatuspage-suppliesstatus-magentasupply-percentremainingz=devicestatuspage-suppliesstatus-yellowsupply-percentremainingr�
r0r1rOrPrQrRrSrTrUr2)r�	getEWSUrlrhrt�getvalue�debug_blockrr�XMLToDictParser�parseXMLri�expat�
ExpatErrorrorlrqrr��	tech_type�TECH_TYPE_COLOR_LASER�AGENT_TYPE_CYAN�AGENT_TYPE_MAGENTA�AGENT_TYPE_YELLOWr��TYPE6_STATUS_CODE_MAPr�)rr��info_sspr��ssp�status_code�black_supply_level�black_supply_lowr1�cyan_supply_level�magenta_supply_level�yellow_supply_levels            r��StatusType6r�1s��� ����y�H�
��
�
�9�;M�N��
�
�/��:�
,�4�4�6��� � �"�H��M�
�C��	��O�O�0�/�BT�2U�V�!�1�1�3�<�<�=O�P�M��I�I�m�$�
�	��O�O�J���(A�B��'�'�)�2�2�8�<�C��I�I�c�N�
 �#�#�$\�^_�`�K���g�g�V�XY�Z��&�*�*�+i�kl�m���w�w�J�A�N��
�F�
�M�M�8�.� !�1�'(�	���}�}�-�-�)�-�-�.k�mn�o���
�
�"<�"1�$%�#4�+,�	�	� -�0�0�1q�st�u���
�
�"<�"4�$%�#7�+,�	�	�,�/�/�0o�qr�s���
�
�"<�"3�$%�#6�+,�	�	�/�#��������2�6�6�{�DW�X�

�

��K
����:�;������	��I�I�5�6��M�	�����	��I�I�+�,��C�	�s1�$I�!AI)�;AJ�I&�)*J�J�*K�Ki'i'i'i'i'i'i'i'i'i'i'i'i 'i!'i"'i#'i$'i%'i&'i''i('i)'i*'i+'i,'i-'i.'i/'i0'i1'i2'i3'i4'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i�'i<(i=(i>(i?(i@(iA(iB(iC(iD(iE(iF(iG(iH(iI(iJ(iK()iL(iM(iN(i�(i�(i�(i�(i�u�U�iV�if�i��c�H�|tkrtS|�t|�}t|�dkrtStj|d�}|��>t}d|cxkrdkrQnnNt
|d�}t
|dd�}tjd|z�tjd|z��n�d|cxkrd	krQnnNt
|d�}t
|dd�}tjd
|z�tjd|z��n�d|cxkrd
kr?nn<t
|dd�}t
|d�}tjd|z�t}�n6d|cxkrdkrnnt}�n d|cxkrdkr"nntjd|z�t}n�d|cxkrdkr
nnt}n�d|cxkrdkr
nnt}n�d|cxkrdkrVnnSt
|d�}t
|dd�}tjd|z�tjd|z�t}nhd|cxkrdkr
nnt}nSd|cxkrdkr
nnt}n>d |cxkrd!kr
nnt}n)d"|cxkrd#kr
nnt}nd$|cxkrd%kr	nnt}tjd&||fz�|S)'Nr,i�*i�.rrz%Background paper loading for tray #%dzMedia code = %di�.i�2z)Background paper tray status for tray #%d�Status code = %di�:i�>rzOutput bin full for bin #%diNi`mi/uiyzAuto continuation condition #%di��i��i?�i(�i'�i�z%Foreground paper loading for tray #%di�i��i��i�i߫iȯiO�i8�i��i��z*Mapped PJL error code %d to status code %d)�MIN_PJL_ERROR_CODE�STATUS_PRINTER_BUSYrur]�PJL_STATUS_MAPrlr_rhri�STATUS_PRINTER_OUTPUT_BIN_FULLr�r�r��STATUS_PRINTER_HARD_ERROR)�
error_code�str_coder��tray�media�status�bins       r��MapPJLErrorCoder��s\���&�&�"�"����z�?��
�8�}�q��"�"� �$�$�Z��6�K���)���:�%��%��x��{�#�D������%�E��I�I�=��D�E��I�I�'�%�/�0�
�Z�
'�%�
'��x��{�#�D���!�"��&�F��I�I�A�D�H�I��I�I�(�6�1�2�
�Z�
'�%�
'��h�q��m�$�C���!��%�F��I�I�3�c�9�:�8�K�
�Z�
'�%�
'�8�K�
�Z�
'�%�
'��I�I�7�*�D�E�-�K�
�Z�
'�%�
'�8�K�
�Z�
'�%�
'�8�K�
�Z�
'�%�
'��x��{�#�D������%�E��I�I�=��D�E��I�I�'�%�/�0�5�K�
�Z�
'�%�
'�2�K�
�Z�
'�%�
'�8�K�
�Z�
'�%�
'�2�K�
�Z�
'�%�
'�3�K�
�Z�
'�%�
'�3�K��I�I�:�j�+�=V�V�W��r�z^CODE\s*=\s*(\d.*)$c�$�	|j�		|jtd��|jddd��}|j	�t
j
dt|��d}|j�D]K}|j�}tj|jd��}|��:|jd	�}nt
jd
|z�	t|�}t
jd|z�t%||�}	|j+�g}|t2t4fvrt6}	t8}
d}n&|t:k(rt<}	t8}
d}nt6}	t>}
d
}t
jd|	||
fz�|jAtBtD|	||
d��|jFtHk(�rd
}t>}
|tJk(rd}t8}
t
jd|	||
fz�|jAtBtLt6||
d��d
}t>}
|tNk(rd}t8}
t
jd|	||
fz�|jAtBtPt6||
d��d
}t>}
|tRk(rd}t8}
t
jd|	||
fz�|jAtBtTt6||
d��|dk(rd}nd	}t
jd|z�tV|||ddd	d	d	|d�
S#t $r
t"}Y��wxYw#t&$r
t(}Y��wxYw#t&$rY��wxYw#	|j+�w#t&$rYwwxYwxYw#t&$r0}t
j-|j.�t0}Yd}~��`d}~wwxYw)Nz%%-12345X@PJL INFO STATUS 
%-12345Xir,T)�timeout�allow_short_readzPJL return:�10001rNrz	Code = %szError code = %drr�z&Agent: health=%d, level=%d, trigger=%dr�r�r�r�),�	openPrint�
writePrintr�	readPrint�closerhr�r�
splitlinesr�pjl_code_pat�match�decode�grouprir_rr�DEFAULT_PJL_ERROR_CODEr�r�r�rrt�msgr�r��STATUS_PRINTER_LOW_BLACK_TONERr�rr�r�rrqrr�r�r��STATUS_PRINTER_LOW_CYAN_TONERr�� STATUS_PRINTER_LOW_MAGENTA_TONERr��STATUS_PRINTER_LOW_YELLOW_TONERr�r�)
r�
pjl_returnr��liner�r�r�r�r1rC�
level_triggerrErys
             r��StatusType8r�Csu��)��
�
��
"	�
8����}�-\�]�^� �]�]�4��T�]�R�
��	�	�����
��z�/J�K�"��&�1�1�3��D��:�:�<�D�(�.�.�t�{�{�7�/C�D�E��(�#(�;�;�q�>���
��	�	�+��0�1�8�!$�X��J��	�	�+�j�8�9�-�j�(�C��
���� ��F��/�1O�P�P� ��6�
���	�/�	/�*��6�
���!��8�
����I�I�6�&�%��9W�W�X�
�M�M�8�.� &�$�'4�	���}�}�-�-���8�
��7�7��E�:�M��	�	�:�f�e�]�=[�[�\��
�
�"<�"1�$3�#(�+8�	�	���8�
��:�:��E�:�M��	�	�:�f�e�]�=[�[�\��
�
�"<�"4�$3�#(�+8�	�	���8�
��9�9��E�:�M��	�	�:�f�e�]�=[�[�\��
�
�"<�"3�$3�#(�+8�	�	��e�������I�I� �;�.�/�/�#�%�%������(�

�

��}"�8�!7�J�8���
8�7��
8��
�
��
��
���� ���
��
��K�*��������)���*�s��M�B(L�=,L�*K5�5$L�L!�5L�L�L�L�L�L1�L�L1�!	L.�-L.�1M�3M�M�	M�
M�M�M�	N�%N
�
N)�ink�rechargeableToner�inkTank�inkCartridge�	printhead�toner�tonerCartridge)�pK�CMY�Mr��Y�K�G�mK)�ok�low�out�empty�missingr�)r��misinstalledr�r�c���|dk(r|S|dddk7rhd}td�}|rW|jtd��}t|d|dzd�}|||d	z|d	z|zz}||d	z|zd	zt|�}|r�W|}|S)
Nz404 Not Found
rr�<rjr9z
r3r)rrr_r])�data�size�tempr>s    r��ExtractXMLDatar��s����"�"����A�a�y�D�����R� ����I�I�m�F�3�4�E��t�A�e�A�g���+�D��$�u�Q�w�u�Q�w�t�|�4�4�D���a����Q��s�4�y�1�D�	�
���Kr�c�N�t�}|r||||�}|S|||�}|r�|jtd��dk7rW|jtd�d�d}|j	td��sn|jtd��dk7r�W|rt|�}|S)Nz

rjr�HTTP)rrrr^�
startswithr�)�func�url�footer�data_fpr�s     r��StatusType10FetchUrlr�s����i�G�
��C��&�)���K��C��!����)�)�M�*�5�6�"�<��z�z�-�
�";�Q�?��B�����}�V�'<�=���)�)�M�*�5�6�"�<�
�%�d�+���Kr�c�<�tgttttttt
td�
}tststjd�|St|�}i}t|�}|j|�i}t|�}|j|�|S)Nr�z=cannot get status for printer. please load ElementTree module)r�rVrYrZr[r\r��etree_loaded�elementtree_loadedrhro�StatusType10Agents�StatusType10MediarA�StatusType10Status�rr��temp_status_blocks   r��StatusType10r
s���%7�%'�%9�%9�%9�%;�%8�%8�%;�%8�
�L�� 2��	�	�Q�R���%�d�+�L���)�$�/�����)�*���*�4�0�����)�*��r�c�,�t�}||d�}|S)N�/cdm/supply/v1/suppliesPublic)r)rrrr�s    r��StatusTypeCDMFetchUrl_USBr+s���9�D���3�4�D��Kr�c�d�t|tj���}|j�}|S)N��context�r�ssl�_create_unverified_context�read)r�responser�s   r��StatusTypeCDMFetchUrl_Netr0s'���s�C�$B�$B�$D�E�H��=�=�?�D��Kr�c��i}t|d<|S)Nr2)r�)r�s r��StatusTypeCDMStatusr5s���L�"5�L����r�c��tgttttttt
td�
}t|�}i}t�}|j|�|S�Nr�)
r�rVrYrZr[r\r��StatusTypeCDMAgentsrrArs   r��StatusTypeCDM_USBr;sW��%7�%'�%9�%9�%9�%;�%8�%8�%;�%8�
�L�'�t�,�L���+�-�����)�*��r�c��tgttttttt
td�
}t|�}i}t�}|j|�|Sr)
r�rVrYrZr[r\r��StatusTypeCDMAgents_NetrrA)rr�rs   r��StatusTypeCDM_Netr"PsW��%7�%'�%9�%9�%9�%;�%8�%8�%;�%8�
�L�+�3�/�L���+�-�����)�*��r�c	���i}t|�}tj|�}tjtj
|��}g}|dD]�}t}d}d}|d}|d}	|dk(s|dk(s|dk(s|d	k(s
|d
k(s|dk(r"|d}
|	d
k7r,	|d}|dk(rd}	n|dkrd}	d}n|dk(s|dk(r�bd}
|	dk(rd}	|d}tj|t�tj|
t�tj|	t�t|�tj|	t�|d�}|j!|���||d<|S#d}Y��xYw#	|d}n#YnxYwY��xYw)N�suppliesListrr9�
supplyType�supplyStater�r�r�r�r�r��supplyColorCoder��percentLifeDisplayr�rir��Unknown�	printHead�	imageDrumr�r��
productNumber�selectabilityNumber�r@r?rCrErBz	agent-skur1)r�json�loads�ast�literal_eval�dumpsr��element_type10_xlaterlr��pen_type10_xlater��pen_health10_xlater_�pen_level10_xlaterrq)rr�r�r1�eachrC�	ink_level�	agent_skur&r��ink_type�entrys            r�r!r!ds����L�$�S�)�D��:�:�d��D����D�J�J�t�,�-�D�
�F��^�$�,�� ���	��	��,�'�
��]�#�����*��">�*�PW�BW�[e�iy�[y�~H�L_�~_�cm�qz�cz��-�.�H��	�!�	"� $�%9� :�I� �A�~� )��"�R�� %�� )�I��;�
&�*��*C���H���}��	�	��_�-�I�0�3�3�J��P�#3�#7�#7��/�#R�%7�%;�%;�E�?�%S�$'�	�N�,=�,A�,A�%�Ii�,j�(1���	�
�
�e��Y,�Z$�L������7"� !�I��	�
� �!6�7�	��
��s0�E�>E�E�E*�E!� E*�!E%�#E*c	��i}t�}t|d�}tj|j	��}tjtj|��}g}|dD]�}t}d}d}|d}|d}	|dk(s|dk(s|d	k(s|d
k(s
|dk(s|dk(r"|d
}
|	dk7r,	|d}|dk(rd}	n|dkrd}	d}n|dk(s|dk(r�bd}
|	dk(rd}	|d}tj|t�tj|
t�tj|	t�t|�t j|	t"�|d�}|j%|���||d<|S#d}Y��xYw#	|d}n#YnxYwY��xYw)Nrr$rr9r%r&r�r�r�r�r�r�r'r�r(r�rir�r)r�r+r�r�r,r-r.r1)rrr/r0rr1r2r3r�r4rlr�r5r�r6r_r7rrq)rr�r�r1r8rCr9r:r&r�r;r<s            r�rr�s����L��9�D�$�T�*I�J�D��:�:�d�j�j�l�#�D����D�J�J�t�,�-�D�
�F��^�$�-�� ���	��	��,�'�
��]�#�����*��">�*�PW�BW�[e�iy�[y�~H�L_�~_�cm�qz�cz��-�.�H��	�!�	"� $�%9� :�I� �A�~� )��"�R�� %�� )�I��;�
&�*��*C���H���}��	�	��_�-�I�0�3�3�J��P�#3�#7�#7��/�#R�%7�%;�%;�E�?�%S�$'�	�N�,=�,A�,A�%�Ii�,j�(1���	�
�
�e��[-�\$�L������9"� !�I��	�
� �!6�7�	��
��s0�+E(�E1�(E.�1F�4E:�9F�:E>�<Fc���i}t|d�}|s|S|jtd�td��jtd�td��}|jtd�td��jtd�td��jtd�td��}	trt	j
|�}tstrt|�}jd�}|D�]�}|jd	k(r
t|d
<�|jdk(r
t|d
<�6|jdk(r
t|d
<�O|jd
k(r
t|d
<�h|jdk(r
t |d
<��|jdk(r
t"|d
<��|jdk(r
t$|d
<��|jdk(r
t&|d
<��|jdk(r
t(|d
<��|jdk(s|jdk(rt*|d
<��|jdk(rt,|d
<��(|jdk(rt.|d
<��B|jdk(rt0|d
<��\|jdk(rt2|d
<��v|jdk(rt4|d
<���|jdk(rt6|d
<���|jdk(rt8|d
<���|jdk(rt:|d
<���|jdk(rt<|d
<���|jdk(rt>|d
<��|jdk(rt@|d
<��,|jd k(rtB|d
<��F|jd!k(rtD|d
<��`|jd"k(rtF|d
<��z|jd#k(rtH|d
<���|jd$k(rtJ|d
<���|jd%k(rtL|d
<���|jd&k(rtN|d
<���|jd'k(rtP|d
<���|jd(k(rtR|d
<��|jd)k(rtT|d
<��0|jd*k(rtV|d
<��J|jd+k(rtX|d
<��d|jd,k(rtZ|d
<��~|jd-k(rt\|d
<���|jd.k(rt^|d
<���|jd/k(rt`|d
<���|jd0k(rtb|d
<���|jd1k(rtd|d
<��|jd2k(rtf|d
<��|jd3k(rth|d
<��4|jd4k(rtj|d
<��N|jd5k(rtj|d
<��h|jd6k(rtl|d
<���|jd7k(rtn|d
<���|jd8k(rtp|d
<���tr|d
<���|S#tjtf$rg}Y���wxYw�9Nz/DevMgmt/ProductStatusDyn.xmlzpsdyn:r9zlocid:zpscat:�dd:zad:zStatus/StatusCategory�
processingr2�ready�closeDoorOrCover�shuttingDown�	cancelJob�trayEmptyOrOpen�jamInPrinter�	hardError�
outputBinFull�unexpectedSizeInTray�sizeMismatchInTray�insertOrCloseTray2�scannerError�scanProcessing�scannerAdfLoaded�scanToDestinationNotSet�scanWaitingForPC�
scannerAdfJam�scannerAdfDoorOpen�
faxProcessing�
faxSending�faxReceiving�
faxDialing�
faxConnecting�faxSendError�faxErrorStorageFull�faxReceiveError�faxBlocking�inPowerSave�incorrectCartridge�cartridgeMissing�missingPrintHead�scannerADFMispick�mediaTooShortToAutoDuplex�insertOrCloseTray�inkTooLowToPrime�cartridgeVeryLow�wasteMarkerCollectorAlmostFull�wasteMarkerCollectorFull�wasteMarkerCollectorFullPrompt�missingDuplexer�
printBarStall�outputBinClosed�outputBinOpened�reseatDuplexer�unexpectedTypeInTray�manuallyFeed�:r�replacerrrrr�findallr�r��UnboundLocalError�textr�r�r��STATUS_PRINTER_TURNING_OFF�STATUS_PRINTER_CANCELINGr�r�r�r��"STATUS_PRINTER_MEDIA_SIZE_MISMATCH�STATUS_PRINTER_TRAY_2_MISSING�EVENT_SCANNER_FAIL�EVENT_START_SCAN_JOB�EVENT_SCAN_ADF_LOADED� EVENT_SCAN_TO_DESTINATION_NOTSET�EVENT_SCAN_WAITING_FOR_PC�EVENT_SCAN_ADF_JAM�EVENT_SCAN_ADF_DOOR_OPEN�EVENT_START_FAX_JOB�STATUS_FAX_TX_ACTIVE�STATUS_FAX_RX_ACTIVE�EVENT_FAX_DIALING�EVENT_FAX_CONNECTING�EVENT_FAX_SEND_ERROR�EVENT_FAX_ERROR_STORAGE_FULL�EVENT_FAX_RECV_ERROR�EVENT_FAX_BLOCKING�STATUS_PRINTER_POWER_SAVE�STATUS_PRINTER_CARTRIDGE_WRONG� STATUS_PRINTER_CARTRIDGE_MISSING� STATUS_PRINTER_PRINTHEAD_MISSING�STATUS_SCANNER_ADF_MISPICK�,STATUS_PRINTER_PAPER_TOO_SHORT_TO_AUTODUPLEX�!STATUS_PRINTER_TRAY_2_3_DOOR_OPEN�#STATUS_PRINTER_INK_TOO_LOW_TO_PRIME�STATUS_PRINTER_VERY_LOW_ON_INK�0STATUS_PRINTER_SERVICE_INK_CONTAINER_ALMOST_FULL�)STATUS_PRINTER_SERVICE_INK_CONTAINER_FULL�0STATUS_PRINTER_SERVICE_INK_CONTAINER_FULL_PROMPT�$STATUS_PRINTER_DUPLEX_MODULE_MISSING�STATUS_PRINTER_PRINTHEAD_JAM� STATUS_PRINTER_CLEAR_OUTPUT_AREA�STATUS_PRINTER_RESEAT_DUPLEXER�"STATUS_PRINTER_MEDIA_TYPE_MISMATCH�STATUS_MANUALLY_FEED�STATUS_UNKNOWN_CODE�rr�r��tree�elementsr�s      r��StatusType13Statusr���X���L���&E�F�D�����<�<�
�h�/��r�1B�C�K�K�M�Zb�Lc�er�su�ev�w�D��<�<�
�h�/��r�1B�C�K�K�M�Z_�L`�bo�pr�bs�t�|�|�~K�LQ�~R�Ta�bd�Te�f�D����?�?�4�(�D�� 2��t�9�D��<�<� 7�8���q>���6�6�\�!�*A�L��'�
�V�V�w�
�*=�L��'�
�V�V�)�
)�*B�L��'�
�V�V�~�
%�*D�L��'�
�V�V�{�
"�*B�L��'�
�V�V�(�
(�*E�L��'�
�V�V�~�
%�*B�L��'�
�V�V�{�
"�*C�L��'�
�V�V��
&�*H�L��'�
�V�V�-�
-����;O�1O�*L�L��'�
�V�V�+�
+�*G�L��'�
�V�V�~�
%�*<�L��'�
�V�V�'�
'�*>�L��'�
�V�V�)�
)�*?�L��'�
�V�V�0�
0�*J�L��'�
�V�V�)�
)�*C�L��'�
�V�V��
&�*<�L��'�
�V�V�+�
+�*B�L��'�
�V�V��
&�*=�L��'�
�V�V�|�
#�*>�L��'�
�V�V�~�
%�*>�L��'�
�V�V�|�
#�*;�L��'�
�V�V��
&�*>�L��'�
�V�V�~�
%�*>�L��'�
�V�V�,�
,�*F�L��'�
�V�V�(�
(�*>�L��'�
�V�V�}�
$�*<�L��'�
�V�V�}�
$�*C�L��'�
�V�V�+�
+�*H�L��'�
�V�V�)�
)�*J�L��'�
�V�V�)�
)�*J�L��'��V�V�*�
*�*D�L��'�
�V�V�2�
2�*V�L��'�
�V�V�*�
*�*K�L��'�
�V�V�)�
)�*M�L��'�
�V�V�)�
)�*H�L��'�
�V�V�7�
7�*Z�L��'�
�V�V�1�
1�*S�L��'�
�V�V�7�
7�*Z�L��'�
�V�V�(�
(�*N�L��'�
�V�V��
&�*F�L��'�
�V�V�(�
(�*J�L��'�
�V�V�(�
(�*J�L��'�
�V�V�'�
'�*H�L��'�
�V�V�-�
-�*L�L��'�
�V�V�~�
%�*>�L��'�+>�L��'�cq>�f���m
���/�0�������AW�W*�)W*c	���i}t|d�}|s|S|jtd�td��jtd�td��}g}	trt	j
|�}tstrt|�}jd�}|D�]�}t}d}d}		|jd�j}
|jd�j}|jd	�j}|
d
k(s|
dk(s|
dk(s|
d
k(s
|
dk(s|
dk(rd|jd�j}
|dk7rX	t|jd�j�}|dk(r|dk(rd}n|dk(rd}n|dkrd}d}	n|
dk(s|
dk(r��d}
|dk(rd}	|jd�j}	tjd|
||
||	fz�tj|
t �t"j|
t$�t&j|t�t|�t(j|t*�|	d�}tjd |z�|j-|����	||d"<|S#d}Y��xYw#	|jd�j}	n#YnxYwY��xYw#t.$rtjd!�Y��*wxYw#t0j2t4f$rg}Y�}wxYw)#Nz /DevMgmt/ConsumableConfigDyn.xmlzccdyn:r9r@�ConsumableInfor�ConsumableTypeEnumz#ConsumableLifeState/ConsumableStatez)ConsumableLifeState/MeasuredQuantityStater�r�r�r�r�r��ConsumableLabelCoder��"ConsumablePercentageLevelRemainingr�r�rir�r)r�r+r�r��
ProductNumber�ConsumableSelectibilityNumberz>type '%s' state '%s' ink_type '%s' ink_level %d agent_sku = %sr.�%s�no value found for attributer1)rrqrrrrrrrr�rrtr_rhrir4rlr�r5r�r6r7rrq�AttributeErrorr�r�rs)rr�r�r1r�r�r�rCr9r:r?r��
quantityStater;r<s               r�rrbs���L���&H�I�D�����<�<�
�h�/��r�1B�C�K�K�M�Z_�L`�bo�pr�bs�t�D��F�=���?�?�4�(�D�� 2��t�9�D��<�<� 0�1���5	:�A�$�F��I��I�1
:��v�v�2�3�8�8�����D�E�J�J�� !���'R� S� X� X�
��5�=�D�N�$:�d�g�o�QU�Yi�Qi�mq�vI�nI�MQ�U^�M^� �v�v�&;�<�A�A�H��	�)�)�'*�1�6�6�2V�+W�+\�+\�']�9�'�1�n��)�1K�(1�� )�Q��'.�u� )�B��',�u�'0�9��[�(�D�K�,?��!�H���}�$'�	�� !���� 7� <� <�I��	�	�Z�^b�di�ks�u~�@I�^J�J�K�#7�#;�#;�D�/�#R�#3�#7�#7��/�#R�%7�%;�%;�E�?�%S�$'�	�N�,=�,A�,A�%�Ii�,j�(1����	�	�$��,�'��
�
�e�$�g5	:�p$�L������G)�'(�9����$%�F�F�+J�$K�$P�$P�	������"�
:��	�	�8�9�
:�����/�0�����s��AK�0BJ*�AI6�J*�
K�	J*�I?�3B8J*�+K�6I<�:J*�?J'�J�J'�J"� J'�%J*�*K�K�K�K�K-�,K-c��i}t|d�}|s|S|jtd�td��jtd�td��}	trt	j
|�}tstrt|�}jd�}|D]J}|jd�j}|dk(r
t|d<�-|d	k(r
t|d
<�<|dk(s�Bt|d<�L	jd
�}|D]}|jdk(s�t|d<�|S#tjtf$rg}Y��wxYw#t$rg}Y�PwxYw)Nz/DevMgmt/MediaHandlingDyn.xmlzmhdyn:r9r@�	InputTray�InputBin�Tray1rS�Tray2rT�	PhotoTrayrRz+Accessories/MediaHandlingDeviceFunctionType�autoDuplexorrQ)rrqrrrrrrrr�r�rsrrt�IN_TRAY_PRESENT�PHOTO_TRAY_ENGAGED�DUPLEXER_DOOR_CLOSED)rr�r�r�r�r��bin_names       r�r	r	�sY���L���&E�F�D�����<�<�
�h�/��r�1B�C�K�K�M�Z_�L`�bo�pr�bs�t�D����?�?�4�(�D�� 2��t�9�D��<�<��,���<���6�6�*�%�*�*���w��'6�L��$�
��
 �'6�L��$�
��
$�);�L��&�<���<�<� M�N���<���6�6�^�#�';�L��$�<����'
���/�0�����������s%�AD �-E� D>�=D>�E�Ec���i}t|d�}|s|S|jtd�td��jtd�td��}|jtd�td��jtd�td��jtd�td��}	trt	j
|�}tstrt|�}jd�}|D�]�}|jd	k(r
t|d
<�|jdk(r
t|d
<�6|jdk(r
t|d
<�O|jd
k(r
t|d
<�h|jdk(r
t |d
<��|jdk(r
t"|d
<��|jdk(r
t$|d
<��|jdk(r
t&|d
<��|jdk(r
t(|d
<��|jdk(s|jdk(rt*|d
<��|jdk(rt,|d
<��(|jdk(rt.|d
<��B|jdk(rt0|d
<��\|jdk(rt2|d
<��v|jdk(rt4|d
<���|jdk(rt6|d
<���|jdk(rt8|d
<���|jdk(rt:|d
<���|jdk(rt<|d
<���|jdk(rt>|d
<��|jdk(rt@|d
<��,|jd k(rtB|d
<��F|jd!k(rtD|d
<��`|jd"k(rtF|d
<��z|jd#k(rtH|d
<���|jd$k(rtJ|d
<���|jd%k(rtL|d
<���|jd&k(rtN|d
<���|jd'k(rtP|d
<���|jd(k(rtR|d
<��|jd)k(rtT|d
<��0|jd*k(rtV|d
<��J|jd+k(rtX|d
<��d|jd,k(rtZ|d
<��~|jd-k(rt\|d
<���|jd.k(rt^|d
<���|jd/k(rt`|d
<���|jd0k(rtb|d
<���|jd1k(rtd|d
<��|jd2k(rtf|d
<��|jd3k(rth|d
<��4|jd4k(rtj|d
<��N|jd5k(rtj|d
<��h|jd6k(rtl|d
<���|jd7k(rtn|d
<���|jd8k(rtp|d
<���tr|d
<���|S#tjtf$rg}Y���wxYwr?rpr�s      r�r
r
�r�r�r,)
r�r�r�r�r�r�r�ztoner-cartridge�maintenanceKitz
ink-cartridge)	zmagenta inkzcyan inkz
yellow inkz	black inkzBlack CartridgezMagenta CartridgezCyan CartridgezYellow CartridgezMaintenance Kit)r�r�r�r�r�)r�r�r��nonezmedia-neededz	media-jam�shutdownz	toner-lowztoner-emptyz
cover-openz	door-openzinput-tray-missingz	media-lowzmedia-emptyzoutput-tray-missingzoutput-area-almost-fullzoutput-area-fullzmarker-supply-lowzmarker-supply-empty�pausedr�c��i}|s|S	|dd}|dd}|tk(rt|d<|S|tk(rt|d<|S|j	dd�}|j	dd�}|j	dd�}t
j
|t�|d<	|S#t$r2}tjd	|jdz�i}Yd}~|Sd}~wwxYw)
Nz
printer-staterzprinter-state-reasonsr2z-errorr9z-warningz-reportz3Exception occured while updating printer-state [%s])�IPP_PRINTER_STATE_IDLEr��IPP_PRINTER_STATE_PROCESSINGr�rq�printer_state_reasons_xlaterl�	Exceptionrhri�args)�attrsr��
printer_state�printer_state_reasonsr�s     r��StatusTypeIPPStatusr��s���L������o�.�q�1�
� %�&=� >�q� A���2�2�*=�L��'����:�
:�*A�L��'���%:�$A�$A�(�B�$O�!�$9�$A�$A�*�b�$Q�!�$9�$A�$A�)�R�$P�!�*E�*I�*I�J_�at�*u�L��'����	���	�	�G����PQ��R�S������	�s#�"B�B�AB�	C�'C�Cc��i}g}|s|Sd}		|t|d�k\r�n|d|dk(r|dz}�&|d||d|kDrd}nd	}tj�D��cgc]\}}|d|j|�s�|��!}}}tj|d|t�t|�dkDr|dndtj|t�|d|tj|t�d
d�}tjd|z�|j|�|dz}��||d<|Scc}}w#t$rtjd
�gcYSwxYw)Nrzmarker-nameszmarker-typesr�rz
marker-levelszmarker-low-levelsr�r�r9r.r�r�r1)r]�marker_type_xlate�itemsr��marker_kind_xlaterlr��marker_state_xlater��marker_leveltrigger_xlaterrhrirqr�ro)	r�r�r1�loopcntrr��k�v�mtyper<s	         r��StatusTypeIPPAgentsr��s����L�
�F�����H�
�	��3�u�^�4�5�5���^�$�X�.�2B�B�#�a�<����_�%�h�/�%�8K�2L�X�2V�V�����#4�"9�"9�";�m�3�1�Q�u�^�?T�U]�?^�?i�?i�jk�?l�Q�m�E�m�0�4�4�U�>�5J�8�5T�Ve�f�+.�u�:��>�u�Q�x�q�!3�!7�!7���!O� %�o� 6�x� @�(A�(E�(E�e�Mm�(n�$&��E�
�I�I�d�U�l�#��M�M�%� �
�a�<��?�B$�L������)n���	��I�I�4�5��I�	�s4�D2�D2�-D2�D,�>D,�BD2�,D2�2 E�Ec��tgttttttt
td�
}tj||�}|r4|jt|��|jt|��|Sr)r�rVrYrZr[r\r�r�getStatusAttributesrAr�r�)�
device_uri�printer_namer��status_attrss    r��
StatusTypeIPPr��sl��%7�%'�%9�%9�%9�%;�%8�%8�%;�%8�
�L��.�.�z�,�G�L�����/��=�?����/��>�@��r�c�|�d}d}||z|z}t|tj���}|j�}|S)Nzhttp://rrr)�host�header�pathrrr�s      r��StatusTypeCDMFetchUrlr��s?��
�F�*�D�
�4�-�4�
�C��s�C�$B�$B�$D�E�H��=�=�?�D��Kr�)r9r�)�r/r1r�sys�urllib.requestr�urllibr��io�sixextrrrrr	�g�xml.parsers.expat�parsersr��re�	xml.etreerr�ImportError�elementtree.ElementTreerr�codesr9r
r�
import_extrrr`�
STATUS_REV_01rc�
STATUS_REV_03rar�r�r�r�r�ru�STATUS_PRINTER_REPORT_PRINTINGrv�STATUS_PRINTER_IO_STALL�STATUS_PRINTER_DRY_WAIT_TIME�STATUS_PRINTER_PEN_CHANGEr��STATUS_PRINTER_BANNER_EJECT�STATUS_PRINTER_BANNER_MISMATCH�STATUS_PRINTER_PHOTO_MISMATCH�STATUS_PRINTER_DUPLEX_MISMATCHr��STATUS_PRINTER_CARRIAGE_STALL�STATUS_PRINTER_PAPER_STALL�STATUS_PRINTER_PEN_FAILUREr��STATUS_PRINTER_POWER_DOWN�STATUS_PRINTER_FRONT_PANEL_TEST�%STATUS_PRINTER_CLEAN_OUT_TRAY_MISSINGr�r�r�r�r�r�rkrWr�rfrgrdr�r�r�r�r	�AGENT_TYPE_BLUE�AGENT_TYPE_PHOTO_BLACK�AGENT_TYPE_MATTE_BLACK�
AGENT_TYPE_LG�AGENT_TYPE_G�
AGENT_TYPE_DG�
AGENT_TYPE_LC�
AGENT_TYPE_LM�AGENT_TYPE_REDr
�OID_MARKER_SUPPLIES_TYPE_OTHERr�� OID_MARKER_SUPPLIES_TYPE_UNKNOWN�OID_MARKER_SUPPLIES_TYPE_TONERr�$OID_MARKER_SUPPLIES_TYPE_WASTE_TONER�OID_MARKER_SUPPLIES_TYPE_INKrn�!OID_MARKER_SUPPLIES_TYPE_INK_CARTr��#OID_MARKER_SUPPLIES_TYPE_INK_RIBBON�"OID_MARKER_SUPPLIES_TYPE_WASTE_INK�OID_MARKER_SUPPLIES_TYPE_OPCr�"OID_MARKER_SUPPLIES_TYPE_DEVELOPER�"OID_MARKER_SUPPLIES_TYPE_FUSER_OIL�"OID_MARKER_SUPPLIES_TYPE_SOLID_WAX�#OID_MARKER_SUPPLIES_TYPE_RIBBON_WAX�"OID_MARKER_SUPPLIES_TYPE_WASTE_WAX�OID_MARKER_SUPPLIES_TYPE_FUSERr�$OID_MARKER_SUPPLIES_TYPE_CORONA_WIRE�'OID_MARKER_SUPPLIES_TYPE_FUSER_OIL_WICK�%OID_MARKER_SUPPLIES_TYPE_CLEANER_UNIT�+OID_MARKER_SUPPLIES_TYPE_FUSER_CLEANING_PAD�&OID_MARKER_SUPPLIES_TYPE_TRANSFER_UNITr�#OID_MARKER_SUPPLIES_TYPE_TONER_CART�$OID_MARKER_SUPPLIES_TYPE_FUSER_OILER�&OID_MARKER_SUPPLIES_TYPE_ADF_MAINT_KITrr�r+rLrFr`r��AGENT_HEALTH_OVERTEMPrxr��AGENT_HEALTH_FAILEDr}r�)AGENT_LEVEL_TRIGGER_ALMOST_DEFINITELY_OUT� AGENT_LEVEL_TRIGGER_PROBABLY_OUT� AGENT_LEVEL_TRIGGER_SUFFICIENT_4� AGENT_LEVEL_TRIGGER_SUFFICIENT_2r~� AGENT_LEVEL_TRIGGER_SUFFICIENT_1� AGENT_LEVEL_TRIGGER_SUFFICIENT_3rrvr�r�r�r��STATUS_PRINTER_PEN_CLEANING�"STATUS_PRINTER_MANUAL_DUPLEX_BLOCKr��"STATUS_PRINTER_MANUAL_FEED_BLOCKED�STATUS_PRINTER_FUSER_ERROR�STATUS_PRINTER_NON_HP_INKr�r�r�r�r�r�r�r�r�r�r�r�r�r��compile�
IGNORECASEr�r�rmr4r�r5�AGENT_LEVEL_UNKNOWNr7rrr6r�rr
rrrrr"r!rr�rr	r
r�r��IPP_PRINTER_STATE_STOPPEDr�r�r�r��STATUS_PRINTER_EMPTY_TONERr�� STATUS_PRINTER_MEDIA_EMPTY_ERRORrxr�r��STATUS_PRINTER_PAUSEDr�r�r�r�r�r��r�r��<module>r0s���2�
�
��&��	�T�T��!�!�	�	�%��L����
�%�
�
�9�
%���5���J�'���8�
��
��
��
��
�����C�&�.�C��/�C��3�C��6�C��:�	C�
�4�C��3�
C��8�C��5�C��7�C��7�C��:�C��9�C��:�C��4�C��9�C� �6�!C�"7�5�5�;�A�+C�
�.+�,�+�.�-�,�+�.�-�	��&8�$&�)7���
�r���������	$�����!��!��!��!�	%�
��b��r��r��r��r�	#�
�x
�|M
�`$�)�Z1G�0F�0?�0?�0B�0A�0@�2H�3I�2?�,8�0=�1>�4A�,:�$%� �$)��&�&�6H�)��(�(�6H�)��&�&�6P�)��,�,�6H�	)�
�$�$�6G�)��)�)�6P�
)��+�+�6P�)��*�*�6H�)��$�$�6I�)��*�*�6H�)��*�*�6H�)��*�*�6H�)��+�+�6H�)��*�*�6H�)��&�&�6J�)� �,�,�6H�!)�"�/�/�6H�#)�$�-�-�6H��3�3�6H��.�.�6M��+�+�6P��,�,�6H��.�.�6H�/)�%�6M
�^"6�H����X�B*�0�0�4�.�	��<�E�<�<�<�<���6�5�5�5�5�3�5�>�	
��v�x"(�J �2y���y�
��y��$�y��%�	y�
�'�y���
y���y��.�y���y��'�y��$�y��'�y���y��'�y��'�y� �%�!y�"�$�#y�$�$�%y�&�.�'y�(�$�)y�*�$�+y�,�$�-y�.�$�/y�0�$�1y�2�$�3y�4�$�5y�6�$�7y�8�$�9y�:�$�;y�<�$�=y�>�$�?y�@�%�Ay�B�&�Cy�D�&�Ey�F�&�Gy�H�&�Iy�J�&�Ky�L�%�My�N�%�Oy�P�%�Qy�R�%�Sy�T�%�Uy�V�%�Wy�X�%�Yy�Z��[y�\�%�]y�^�%�_y�`��ay�b�$�cy�d��ey�f��gy�h�#�iy�j��ky�l��my�n��oy�p��qy�r��sy�t�$�uy�v�*�wy�x�*�yy�z�%�{y�|��}y�~�$�y�@�$�Ay�B�$�Cy�D�$�Ey�F�%�Gy�H��Iy�J��Ky�L�%�My�N��Oy�P��Qy�R��Sy�T��Uy�V�$�Wy�X�$�Yy�Z�%�[y�\�%�]y�^��_y�`��ay�b��cy�d��ey�f��gy�h�%�iy�j��ky�l��my�n�$�oy�p�$�qy�r��sy�t��uy�v��wy�x��yy�z��{y�|��}y�~��y�@��Ay�B��Cy�D��Ey�F��Gy�H��Iy�J��Ky�L��My�N��Oy�P��Qy�R��Sy�T��Uy�V��Wy�X��Yy�Z��[y�\��]y�^��_y�`��ay�b��cy�d��ey�f��gy�h��iy�j��ky�l��my�n��oy��vU
�pa�	��a�	�!�a�
�$�a�
��	a�

��a�
�#�
a�
�#�a�
�)�a�
�!�a�
��a�
�)�a�
��a�
��a�
�)�a�
��a� 
��!a�"
��#a�$
��%a�&
�)�'a�(
�"�)a�*
�)�+a�,
�)�-a�.
��/a�0
�#�1a�2
�)�3a�4
�"�5a�6
��7a�8
��9a�:
��;a�<
�)�=a�>
�#�?a�@
�"�Aa�B
�$�Ca�D
�)�Ea�F
�(�Ga�H
�+�Ia�J
�*�Ka�L
�#�Ma�N
�)�Oa�P
�(�Qa�R
�+�Sa�T
�*�Ua�V
�)�Wa�X
�(�Ya�Z
�+�[a�\
�*�]a�^
�)�_a�`
�)�aa�b
�)�ca�d
�)�ea�f
�)�ga�h
�#�ia�j
�)�ka�l
�(�ma�n
�+�oa�p
�*�qa�r
�)�sa�t
�)�ua�v
�)�wa�x
�)�ya�z
�)�{a�|
�)�}a�~
�)�a�@
�)�Aa�B
�)�Ca�D
�)�Ea�F
�)�Ga�H
�)�Ia�J*�)�)�$��)��$�$�#�#�"�ua��F����M�`�r�z�z�4�b�m�m�D��F
�R"3�/I�%6�*D�'6�#=�,F�
��3�+�-�*�,�+�'�2���>�<�G� I�"K�"5���.�(A�#<�#7����� �:�
�
��*�(6�p:�xF�TJ�X"�HF�R��#�� ��!2�/I�%6�*;�'6�#=�,F�-G�,@�+<�
��&8�"1�$5�#3�)9�+=�(7�*;�)8�	��&F�&D�&O�(Q�*S�	��.�(A�#<���
��)<��-�0K��*�-E�� *�,F�� +�-E�	�
 -�/I�� ,�.F�
� +�-E�� 4�6W�� +�-H�� -�/O�� 5�7T�� 9�;[�� 2�4T�� 3�5S�� 5�7U��  (�*?�!�" '�)<�#��(�6,�\�,��mF������#�/�!����#�"��#���L�
�sA�W1�W?�1W<�?X!�X�
X!�X�X!�X�X!� X!

Zerion Mini Shell 1.0