+
    QDb@  c                   sz   ^ RI t ^ RIt]P                  ! ] P                  ] P                  R7       ^ RIt^ RIt^ RIt^ RI	t	^ RI
5  ! R R4      t]R8X  d   ^ RIt]P                  ! 4       t]P                   ! ]4      t. t]P'                  4        F5  t]! ]4      t ]P-                  ]4      t]],          P1                  ]4       K7  	  ]P7                  4        ] F;  t]! ]P;                  4       4       ]P=                  4       t] F  t]! R]4       K  	  K=  	  R# R#   ] d    ]P5                  ]4        K  i ; i)    N)Zdomain	localedir)Z*c                   st   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tRtV tR# )PhysicalDevicec                s    R V n         R V n        R V n        RV n        R V n        V P                  V4       / V n        \        P                  V n	        R # )NF)
devices_network_hostdnssd_hostname_cupsserverfirsturi
add_device
_user_data	ppdippstrZbackends
_ppdippstr)selfdevice   &&2/usr/share/system-config-printer/PhysicalDevice.py__init__ZPhysicalDevice.__init__   sH    !"  #,,    c                sz   \        VR 4      '       d   VP                  P                  RR4      pVP                  P                  RR4      pVR8X  g4   VP                  4       P	                  VP                  4       4      '       d   TpMV: RV: 2pMVP
                  p\        P                  P                  V4      # )id_dictZMFG ZMDL )	hasattrr   getlower
startswithmake_and_modelcupshelpersppdsppdMakeModelSplit)r   r   mfgmdlr   s   &&   r   _canonical_idZPhysicalDevice._canonical_id)   s    FI&&..$$eR0C..$$eR0CbyCIIL33SYY\BB!$,/!5$33^11>BBr   c                sN    Vf   R # RV9   g   RV9   g   VR8w  d
   VR,           # V# )NZ.:Z	localhostz.local )r   hostnamer   r   _add_dot_local_if_neededZ'PhysicalDevice._add_dot_local_if_needed7   s0    3(?$h&&Or   c                s     \         P                  ! V^ \         P                  R7      ^ ,          ^,          ^ ,          pV#     \         P                  ! T^ \         P                  R7      ^ ,          ^,          ^ ,          p T#    Rp  T# ; i; i)r    )ZfamilyN)socketZgetaddrinfoZAF_INETZAF_INET6)r   r"   address   && r   _get_addressZPhysicalDevice._get_address@   s    	((106@@ACCDFFGIG 	 ,,Xq4:OOEEFHHIKKLN s#   <A   B<BB
B
Bc                sj   R pR pR p\         P                  P                  V4      w  rVVR8X  g   VR8X  d   R pVP                  R4      '       d)   \         P                  P	                  VR,          4      w  rgVef   VP                  R4      '       d   VR,          pM}VP                  R4      '       d   VR,          pM\VP                  R	4      '       d   VR,          pM;R# R# VR
8X  g   VR8X  d   R# \         P                  P                  V4      w  r&Vf   R# V'       d"   \         P                  P                  V4      w  r8V'       d    R p	 V P                  V4      p	V	'       d   T	pMV'       d    V P                  V4      pV P                  V4      V P                  V4      3#     L&; i   R p L/; i)NhpZhpfaxz/net/:i   NNzip=:i   NNz	hostname=:i	   NNzzc=ZdnssdZmdns)NN)	urllibZparseZ	splittyper   Z
splitqueryZ	splithostZ	splitportr'   r#   )
r   uriZhostporthost	dnssdhostZschemeZrestZipparamZportZips
   &&        r   _get_host_from_uriZ!PhysicalDevice._get_host_from_uriL   s   	//5T>Vw.G(("(,,"9"948"D"%%e,,&r{H''55&r{H''.. 'I%%!!w&F"2 %||55t<X!!!<<118<LTB&&t,D ((3 ,,T2)))45 	5s   F% &F% 2F, %F),F2c                s
   V P                   '       g   V P                  '       EdW   V P                  VP                  4      w  r#\	        VR 4      '       d   V P                  VP                  4      p\	        VR4      '       d    Vf   V P                  VP                  4      pVf   Ve   V'       d#   V P                   '       d   W P                   8X  g   V'       d#   V P                  '       d   W P                  8X  gU   V'       d#   V P                   '       d   W0P                   8X  g+   V'       dG   V P                  '       d5   W0P                  8X  d%   Vf   V P                  e   Vf   V P                   f   \        hMV P                  V4      w  rEV P                  f`   W@n        WPn        VP                  4       V n        VP                  4       V n        VP                   P#                  RR4      V n        . V n
        M}R pV! V P                  V4      V n        V! V P                  V4      V n        VP                   P#                  RR4      pVR8w  d(   V P$                  R8w  d   WpP$                  8w  d   \        hVP&                  R8X  d"   VP                  P)                  RR4      Vn        VP                  P+                  R4      '       d!   VP                  P-                  R	4      R8w  gd   VP                  P+                  R
4      '       g"   VP                  P+                  R4      '       d*   VP                  P/                  R4      '       d	   RV n        MV P0                  '       d   R# V P                   F!  pVP                  VP                  8X  g   K    R# 	  V P2                  '       g   VP                  V n        V P                  P5                  V4       V P                  P7                  4        V P                   '       d   V P                  '       gC   VP8                  R8X  d2   V P                  VP                  4      w  V n         pV'       d   W0n        \	        VR 4      '       d9   V P                   f+   VP                  p	V	'       d   V P                  V	4      V n         \	        VR4      '       d9   V P                  f+   VP                  p
V
'       d   V P                  V
4      V n        V P                  '       d&   V P                   f    V P;                  X
4      V n         \=        RVP                  : R\?        V 4      : 24       R#    RT n          L3; i)r%   r"   NZSNr   c                 s6    R  pV! V4      V! V 4      8  d   V# V # )c                 s    V P                  4       p^ p\        \        V 4      4       F!  pW,          W,          8w  g   K  V^,          pK#  	  V# )r    )r   Zrangelen)ZsZlZni   &   r   count_lowerZ>PhysicalDevice.add_device.<locals>.nicest.<locals>.count_lower   s?    GGJ!&QA tqt| !Q "1  !r   r!   )ZaZbr1   r&   r   nicestZ)PhysicalDevice.add_device.<locals>.nicest   s#    ! #Aa8 Hr   r$   z:9100ipp:
/printers/dnssd:mdns:/cupsTZnetworkzDevice z added to physical device: ) r   r   r-   r*   r   r#   r%   r"   
ValueErrorr   r   r   r   r   	mfg_lower	mdl_lowerr   r   sntypeZreplacer   findendswithr   r   appendsortZdevice_classr'   Z
debugprintZrepr)r   r   r+   r,   r   r   r2   r<   Zdr%   r"      &&         r   r   ZPhysicalDevice.add_device~   s   !4!4!4"55vzzBOD++44V^^D,,1B 99&//J	!2d000///d1110004#5#5#5"4"444#6#6#6"5"55!4!4!<!d&8&8&@  ++V4JS||#!$!$ ..,,dB7!
 "488S1!488S1^^''r282"-$$;;("++Wb9FJJJ!!&))JJOOL)R/ZZ""8,,ZZ""7++JJ((#DAuu

"  }}}"JJDMV$"""$*=*=*=)+ ''4 *D	&/#VY''D,>,>,FnnG%)%B%B7%K"VZ((T-@-@-HH&*&C&CH&M#D$6$6$>*%)%6%6x%@" 	JJT
, 	-*%)"s   U 	Uc                s    V P                   # N)r   r      &r   get_devicesZPhysicalDevice.get_devices   s    ||r   c                s   V P                   ^ ,          P                  P                  R4      '       d2   V P                   ^ ,          P                  P                  R4      R8w  g   V P                   ^ ,          P                  P                  R4      '       g3   V P                   ^ ,          P                  P                  R4      '       d   V P                   ^ ,          P                  P	                  R4      '       d   V P
                  '       g   RV P                  ,          pEM+V P                  '       d!   V P                  P                  R4      R8w  d   RV P
                  ,          pMV P                  V P
                  8w  d    V P
                  : RV P                  : R	2pMRV P                  ,          pMV P                  R
8X  g3   V P                  R8X  dY   V P                  P                  R4      '       d8   V P                  P                  V P                   ^ ,          P                  4      pMV P                  : RV P                  : 2pV P                  '       d   \        V P                  4      ^ 8  g/   V P
                  '       Ed   \        V P
                  4      ^ 8  Ed   V P                   ^ ,          P                  P                  R4      '       g3   V P                   ^ ,          P                  P                  R4      '       d3   V P                   ^ ,          P                  P	                  R4      '       g   V P                  '       d!   VP                  V P                  4      R8X  d   V P
                  '       d!   VP                  V P
                  4      R8X  d   V P
                  '       g   VRV P                  ,          ,          pV# V P                  '       g   VRV P
                  ,          ,          pV# VRV P
                  : RV P                  : R	2,          p V# \        V P                  4      ^ 8  d   VRV P                  ,          ,          pV# )r    r3   r4   r5   r6   r7   z%sr    z (Z)r   ZHPZFaxr   z (%s)z, r8   )r   r*   r   r>   r?   r   r   r   r   r   r   infor.   r<   )r   rG   s   & r   get_infoZPhysicalDevice.get_info   s	    LLO**622LLO$$\2b8\\!_  ++H55\\!_  ++G44LLO((11&&&d000'''4+=+=+B+B3+G2+Md111%%)<)<<(,(;(;T=O=OPD$"4"44DXX^HH!4!4U!;!;??&&Q(<(<=D"hh1DC););$<q$@   S$*=*=%>%Bll1o!!,,X66ll1o!!,,W55ll1o!!**733###YYt))*b0$$$YYt**+r1&&&$"4"444  '''$"5"555
  t':':D<N<NOO  $'']QGdgg%%Dr   c                s"    W P                   V&   R # rC   )r	   )r   keyZvalues   &&&r   set_dataZPhysicalDevice.set_data  s    $r   c                s8    V P                   P                  V4      # rC   )r	   r   )r   rI   r   r   get_dataZPhysicalDevice.get_data  s    ""C((r   c                s0    R V P                  4       ,          # )z(description: %s))__repr__rD   rE   r   __str__ZPhysicalDevice.__str__  s    "T]]%555r   c                s    R V P                   : RV P                  : RV P                  : RV P                  : RV P                  : RV P
                  : R2# )z <PhysicalDevice.PhysicalDevice (Z,z)>)r   r   r<   r   r   r   rD   rE   r   rL   ZPhysicalDevice.__repr__  s6    488TWWd.@.@$$dmm5 	6r   c                sF   \        V4      \        V 4      8w  d   R # V P                  '       d   \        V P                  4      ^ 8X  d   VP                  '       d   \        VP                  4      ^ 8X  d[   V P                  '       d   \        V P                  4      ^ 8X  d/   VP                  '       Ed   \        VP                  4      ^ 8X  Eg   V P                  '       dc   \        V P                  4      ^ 8  dI   VP                  '       d7   \        VP                  4      ^ 8  d   V P                  VP                  8X  Eg\   V P                  '       db   \        V P                  4      ^ 8  dH   VP                  '       d6   \        VP                  4      ^ 8  d   V P                  VP                  8X  g   V P                  '       db   \        V P                  4      ^ 8  dH   VP                  '       d6   \        VP                  4      ^ 8  d   V P                  VP                  8X  gv   V P                  '       db   \        V P                  4      ^ 8  dH   VP                  '       d6   \        VP                  4      ^ 8  d   V P                  VP                  8X  g   R # VP	                  4       pV'       dB   V P
                   Uu. uF  q3P                  NK  	  ppV F  pVP                  V9   g   K   R# 	  VP                  R8X  d   VP                  R8X  g#   V P                  R8X  d]   V P                  R8X  dL   VP                  R8X  d9   V P                  R8X  d(   V P
                  ^ ,          VP
                  ^ ,          8H  # R # R pV! V 4      w  rxV! V4      w  rWy8w  d   R # VR8X  d/   V P                  R8w  d   V P                  VP                  8X  d   R# W8w  d   R # V P                  R8X  g   VP                  R8X  d   R# V P                  VP                  8H  # u upi )FTr   c                    V P                   R 8X  gH   V P                  P                  4       P                  V P                   P                  4       4      '       d   V P                  pMV P                   : RV P                  : 2p\        P
                  P                  V4      w  r#\        P
                  P                  V4      \        P
                  P                  V4      3# r   r   r   r   r   r   r   r   r   Z	normalizedevr   r   r   r0   r   split_make_and_modelZ3PhysicalDevice.__eq__.<locals>.split_make_and_modelF      ww"} 0 ; ;SWW]]=M N N!$,/GGSWW!=$));;^LJS$$..4$$..46 6r   r(   )
r=   r   r.   r   rF   r   r*   r   r   r<   r   ZotherZdevsZxZurisrR   rS   Zour_mfgZour_mdlZ	other_mfgZ	other_mdlrB   r   __eq__ZPhysicalDevice.__eq__  s   <4;&(((C1C1C,D,I)))S%2E2E-F!-K)))S$2E2E-F!-K***u++,1###T-?-?(@1(D$$$e.A.A)BQ)F##u':'::$$$d.A.A)BQ)F%%%#u/C/C*Dq*H$$(<(<<###T-?-?(@1(D%%%#u/C/C*Dq*H##u';';;$$$d.A.A)BQ)F$$$e.A.A)BQ)F$$(;(;;  "#'<<0<aEE<D077d? 
 YY"_bXX^RyyB488r>||A%--*::: 	6 248!5u!=d?tww"}EHH1D77b=EHHNww%((""O 1s   Pc                s   \        V4      \        V 4      8w  d   R # W8X  d   R # V P                  VP                  8w  d:   V P                  f   R# VP                  f   R # V P                  VP                  8  # V P                  VP                  8w  d:   V P                  f   R# VP                  f   R # V P                  VP                  8  # VP                  4       pV'       dB   V P                   Uu. uF  q3P
                  NK  	  ppV F  pVP
                  V9   g   K   R # 	  VP                  R8X  d   VP                  R8X  g#   V P                  R8X  d   V P                  R8X  dp   VP                  R8X  d9   V P                  R8X  d(   V P                  ^ ,          VP                  ^ ,          8  # VP                  R8H  ;'       d    VP                  R8H  # R pV! V 4      w  rxV! V4      w  rWy8w  d   Wy8  # W8w  d   W8  # V P                  R8X  g   VP                  R8X  d   R # V P                  VP                  8  # u upi )FTr   c                 rN   rO   rP   rQ   r0   r   rS   Z3PhysicalDevice.__lt__.<locals>.split_make_and_model  rT   r   )	r=   r   r   rF   r   r*   r   r   r<   rU   rB   r   __lt__ZPhysicalDevice.__lt__`  s   <4;&=!4!44!!)""*%%(;(;;;%"6"66""*##+&&)=)===  "#'<<0<aEE<D077d?  
 YY"_bXX^RyyB488r>||Aq)999 99?66uyyB6	6 248!5u!=&&&&77b=EHHNww!!I 1s   2I )r   r   r   r	   r   r   r   r   r;   r   r:   r<   N)__name__Z
__module__Z__qualname__Z__firstlineno__r   r   r#   r'   r-   r   rF   rH   rJ   rK   rM   rL   rV   rW   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      sW     -C
05db-H(V%)66
@#D?" ?"r   r   Z__main__r   )ZconfigZgettextZinstallZPACKAGEr   r   Zurllib.parser)   r
   r$   Zdebugr   rX   ZauthconnZ
ConnectionZcZ
getDevicesr   ZphysicaldevicesZvaluesr   ZphysicaldeviceZindexr/   r   r9   r@   rA   ZprintrH   rF   r!   r   r   <module>rY      s#  *   v~~1A1A B     A" A"F zA$$a(GO..#'0	4%%~6AA))62	 $ )n%%() ,,/F#v  *   	4""N3	4s   )DD:9D: