ó
    ¡7�jìT  ã                   ó�  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJr  S SKJr  SSKJr  SSKJ r   SSK!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,  \RZ                  " \.5      r/\R`                  " 5       S	\1S
\\1   4S j5       r2S\1S
\14S jr3\R`                  " 5       S
\14S j5       r4\" S\#\$5      r5S\5S
\54S jr6 " S S\5      r7 " S S5      r8 " S S\9\#5      r: " S S5      r; " S S\9\#5      r< " S S5      r= " S S5      r> " S  S!\R~                  S"S#9r@g)$é    N)ÚPath)ÚBinaryIOÚCallableÚClassVarÚDictÚIterableÚListÚ
NamedTupleÚOptionalÚPatternÚSequenceÚTupleÚTypeVar)Úbusé   )Úconfig)Ú__version__)Ú	JsonErrorÚ
JsonObjectÚ	JsonValueÚget_boolÚget_dictÚget_intÚget_objvÚget_strÚget_strvÚjson_merge_patchÚtypecheckedÚaccept_languageÚreturnc                 óÆ  • [         R                  SU 5        / nU R                  S5       H®  nUR                  5       R	                  5       n[         R                  SU5        UR                  S5      u  p4n [        U=(       d    S5      nU(       d  Mi  [         R                  SX65        UR                  X645        UR                  S5      u  p4nU(       a  ME  M°     UR                  S S	S
9  [         R                  SU5        / nU H%  u  p9US:X  a    OX8;  d  M  UR                  U5        M'     [         R                  SU5        [        U5      $ ! [         a     GM5  f = f)a4  Parse the Accept-Language header, if it exists.

Returns an ordered list of languages, with fallbacks inserted, and
truncated to the position where 'en' would have otherwise appeared, if
applicable.

https://tools.ietf.org/html/rfc7231#section-5.3.5
https://datatracker.ietf.org/doc/html/rfc4647#section-3.4
zparse_accept_language(%r)Ú,z
  entry %rz;q=g      ð?z    adding %r q=%rÚ-c                 ó   • U S   $ )Nr   © )Úpairs    Ú2/usr/lib/python3/dist-packages/cockpit/packages.pyÚ<lambda>Ú'parse_accept_language.<locals>.<lambda>c   s   € ¨¨aªó    T©ÚkeyÚreversez  sorted list is %rÚenz  results list is %r)ÚloggerÚdebugÚsplitÚstripÚlowerÚ	partitionÚfloatÚ
ValueErrorÚappendÚ
rpartitionÚsortÚtuple)
r   Úlocales_with_qÚentryÚlocaleÚ_ÚqstrÚqÚ_regionÚresultsÚ_qs
             r'   Úparse_accept_languagerD   E   s9  € ô ‡L�LÐ,¨oÔ>Ø€NØ ×&Ñ& sÖ+ˆØ—‘“×#Ñ#Ó%ˆÜ�‰�\ 5Ô)ØŸ/™/¨%Ó0‰ˆ�4ð	Ü�d—k˜cÓ"ˆA÷ ˆfÜ�L‰LÐ-¨vÔ9Ø×!Ñ! 6 +Ô.à!'×!2Ñ!2°3Ó!7ÑˆF�w÷	 Šfñ ,ð  ×ÑÑ0¸$ÐÑ?Ü
‡L�LÐ&¨Ô7ð €GÛ$‰
ˆØ�T‹>ÙØÕ Ø�N‰N˜6Ö"ñ	 %ô ‡L�LÐ'¨Ô1Ü�‹>Ðøô5 ó 	Ûð	ús   Á6EÅ
E ÅE Úversionc                 óP   • SR                  S U R                  S5       5       5      $ )z7Convert a version string to a form that can be comparedÚ.c              3   óB   #   • U  H  oR                  S 5      v •  M     g7f)é   N)Úzfill)Ú.0Úparts     r'   Ú	<genexpr>Ú"sortify_version.<locals>.<genexpr>y   s   é € ÐAÒ.@ d—J‘J˜q—M�MÒ.@ùs   ‚)Újoinr1   )rE   s    r'   Úsortify_versionrP   v   s"   € ð �8‰8ÑA¨g¯m©m¸CÔ.@ÓAÓAÐAr*   c                  óÌ   • S HI  n [         R                  R                  [         R                  R                  U S5      5      (       d  MG  U s  $    [        R                  S5        g)zcDetect libexecdir on current machine

This only works for systems which have cockpit-ws installed.
)z/usr/local/libexecz/usr/libexecz/usr/local/lib/cockpitz/usr/lib/cockpitúcockpit-askpasszCould not detect libexecdirz/nonexistent/libexec)ÚosÚpathÚexistsrO   r/   Úwarning)Ú	candidates    r'   Úget_libexecdirrX   |   sK   € ó jˆ	Ü�7‰7�>‰>œ"Ÿ'™'Ÿ,™, yÐ2CÓD×EÓEØÒñ jô 	�‰Ð4Ô5à%r*   ÚJÚobjc                 óÆ  • [        U [        5      (       aK  SU ;   a+  [        R                  " S5      nUb  U R	                  SU5      $ U R	                  S[        5       5      $ [        U [        5      (       a/  U R                  5        VVs0 s H  u  p#U[        U5      _M     snn$ [        U [        5      (       a  U  Vs/ s H  n[        U5      PM     sn$ U $ s  snnf s  snf )Nz${libexecdir}/cockpit-askpassrR   z${libexecdir})
Ú
isinstanceÚstrÚshutilÚwhichÚreplacerX   ÚdictÚitemsÚpatch_libexecdirÚlist)rZ   Úabs_askpassr,   ÚvalueÚitems        r'   rc   rc   ‘   s½   € Ü�#”s×ÑØ*¨cÓ1ä Ÿ,š,Ð'8Ó9ˆKØÑ&Ø—{‘{Ð#BÀKÓPÐPØ�{‰{˜?¬NÓ,<Ó=Ð=Ü	�Cœ×	Ñ	Ø?B¿y¹y¼{ÔKº{±°�Ô% eÓ,Ò,¹{ÒKÐKÜ	�Cœ×	Ñ	Ù36Ó7²3¨4Ô  Ö&±3Ñ7Ð7àˆ
ùó	 Lùâ7s   Â	CÂ>Cc                   óR   • \ rS rSr% \\S'   \\S'   Sr\\   \S'   Sr	\\   \S'   Sr
g)ÚDocumenté£   ÚdataÚcontent_typeNÚcontent_encodingÚcontent_security_policyr%   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__annotations__r]   rm   r   rn   Ú__static_attributes__r%   r*   r'   ri   ri   £   s+   ‡ Ø
ƒNØÓØ&*Ð�h˜s‘mÓ*Ø-1Ð˜X c™]Ö1r*   ri   c                   ó   • \ rS rSrSS jrSrg)ÚPackagesListeneréª   Nc                 ó   • g)z+Called when the packages have been reloadedNr%   ©Úselfs    r'   Úpackages_loadedÚ PackagesListener.packages_loaded«   s   � r*   r%   ©r    N)ro   rp   rq   rr   r{   rt   r%   r*   r'   rv   rv   ª   s   † ÷:r*   rv   c                   ó0   ^ • \ rS rSrS\4U 4S jjrSrU =r$ )ÚBridgeConfigé¯   rf   c                 ó¶  >• [         TU ]  U5        [        U SS 5      U l        [	        U SSS9U l        [        U S0 5      U l        U R
                  (       d  U R                  (       d  [        US5      e[        U SS5      U l
        [        U S	5      U l        U R                  (       d  [        US
5      eU R                  =(       d    U R                  S   U l        g )NÚlabelÚ
privilegedF)ÚdefaultÚmatchz&must have match rules or be privilegedÚenvironr%   Úspawnzspawn vector must be non-emptyr   )ÚsuperÚ__init__r   r‚   r   rƒ   r   r…   r   r   r†   r‡   Úname)rz   rf   Ú	__class__s     €r'   r‰   ÚBridgeConfig.__init__°   s¦   ø€ Ü‰Ñ˜Ôä˜T 7¨DÓ1ˆŒ
ä" 4¨¸uÑEˆŒÜ˜d G¨RÓ0ˆŒ
Ø�� t§z§zÜ˜EÐ#KÓLÐLä  i°Ó4ˆŒÜ˜d GÓ,ˆŒ
Ø�z�zÜ˜EÐ#CÓDÐDà—J‘J×/ $§*¡*¨Q¡-ˆ�	r*   )r†   r‚   r…   rŠ   rƒ   r‡   )ro   rp   rq   rr   r   r‰   rt   Ú__classcell__©r‹   s   @r'   r   r   ¯   s   ø† ð0˜j÷ 0õ 0r*   r   c                   ó"   • \ rS rSrS\4S jrSrg)Ú	ConditionéÂ   rf   c                 ó‚   •  UR                  5       u  u  U l        U l        g ! [         a  n[	        US5      UeS nAff = f)Nz'must contain exactly one key/value pair)rb   rŠ   rf   r6   r   )rz   rf   Úexcs      r'   r‰   ÚCondition.__init__Ã   sB   € ð	WØ',§{¡{£}Ñ$Ñ#ˆTŒY˜�
øÜó 	WÜ˜EÐ#LÓMÐSVÐVûð	Wús   ‚" ¢
>¬9¹>)rŠ   rf   N)ro   rp   rq   rr   r   r‰   rt   r%   r*   r'   r�   r�   Â   s   † ðW˜j÷ Wr*   r�   c                   óV   ^ • \ rS rSr\=(       a    \" \5      rS\S\4U 4S jjr	Sr
U =r$ )ÚManifestéÊ   rT   rf   c                 ó  >• [         TU ]  U5        Xl        [        U SU R                  R                  5      U l        [        U S[        5      U l        [        U SS5      U l	        [        U SS5      U l
        [        U S[        5      U l        U R                  bp  [        U S0 5      nUR                  5        HN  u  pEUS	:w  a  [!        US
5      e[#        [%        U[&        5      5      U R                  :”  d  M@  [!        USU S35      e   g g )NrŠ   ÚbridgesÚpriorityr   zcontent-security-policyÚ Ú
conditionsÚrequiresÚcockpitznon-cockpit requirement listedzrequired cockpit version (z	) not met)rˆ   r‰   rT   r   rŠ   r   r   r™   r   rš   Úcspr�   rœ   ÚCOCKPIT_VERSIONr   rb   r   rP   r   r]   )rz   rT   rf   r�   rŠ   rE   r‹   s         €r'   r‰   ÚManifest.__init__Î   sê   ø€ Ü‰Ñ˜ÔØŒ	Ü˜D &¨$¯)©)¯.©.Ó9ˆŒ	Ü  i´Ó>ˆŒÜ  j°!Ó4ˆŒÜ˜4Ð!:¸BÓ?ˆŒÜ" 4¨´yÓAˆŒð ×ÑÑ+Ü  j°"Ó5ˆHØ!)§¡Ö!1‘�Ø˜9Ó$Ü# DÐ*JÓKÐKÜ"¤;¨w¼Ó#<Ó=À×@TÑ@TÕTÜ# GÐ/IÈ'ÈÐR[Ð-\Ó]Ð]ò	 "2ð ,r*   )r™   rœ   rŸ   rŠ   rT   rš   )ro   rp   rq   rr   r   rP   r    r   r   r‰   rt   r�   rŽ   s   @r'   r–   r–   Ê   s.   ø† à!×B¡o°kÓ&B€Oð^˜Tð ^¨*÷ ^õ ^r*   r–   c                   ó"  • \ rS rSr% \R
                  " S5      r\\   \	S'   \
\	S'   \\	S'   \\	S'   \\	S'   Sr\\\\\\4   4      \	S	'   Sr\\\\4      \	S
'   S\
4S jrSS jrS\4S jrS\S\4S jrS\S\\   S\4S jrS\S\S\4S jrSrg)ÚPackageéá   z%(po|po\.manifest)\.([^.]+)\.js(\.gz)?ÚPO_JS_REÚmanifestrŠ   rT   rš   NÚtranslationsÚfilesc                 óv   • Xl         UR                  U l        UR                  U l        UR                  U l        g ©N)r¦   rŠ   rT   rš   )rz   r¦   s     r'   r‰   ÚPackage.__init__ï   s*   € Ø ŒØ—M‘MˆŒ	Ø—M‘MˆŒ	Ø ×)Ñ)ˆ�r*   r    c                 ó>  • U R                   b  g0 U l         0 0 S.U l        U R                  R                  S5       GH-  n[	        UR                  U R                  5      5      nUS;   a  M0  [        R                  R                  U5      nU(       ao  UR                  S5      nUR                  S5      nUR                  5       R                  SS5      n[        R                  S	XFU5        X R                  U S
3   U'   MÅ  [        R                  " SSU5      n[        R                  SXB5        X R                   U'   U R                   R!                  UR                  SS5      U5        GM0     U R                  S   (       d  U R                  S   U R                  S'   gg)z�Ensure that the package has been scanned.

This allows us to defer scanning the files of the package until we know
that we'll actually use it.
N)úpo.jsúpo.manifest.jsÚ*)rG   z..zmanifest.jsonr   é   r>   r#   zAdding translation %r %r -> %rz.jsz.gz$r›   zAdding content %r -> %rz.min.rG   r®   r­   )r¨   r§   rT   Úrglobr]   Úrelative_tor£   r¥   Ú	fullmatchÚgroupr3   r`   r/   r0   ÚreÚsubÚ
setdefault)rz   ÚfilerŠ   Úpo_matchÚbasenamer=   Úlower_locales          r'   Úensure_scannedÚPackage.ensure_scannedõ   s^  € ð �:‰:Ñ!ØàˆŒ
Ø&(¸BÑ?ˆÔà—I‘I—O‘O C×(ˆDÜ�t×'Ñ'¨¯	©	Ó2Ó3ˆDØÐ3Ó3Ùä×'Ñ'×1Ñ1°$Ó7ˆHÞØ#Ÿ>™>¨!Ó,�Ø!Ÿ™¨Ó*�à%Ÿ|™|›~×5Ñ5°c¸3Ó?�ä—‘Ð=¸xÐW[Ô\ØDH×!Ñ! X J¨cÐ"2Ñ3°LÓAô Ÿ6š6 '¨2¨tÓ4�Ü—‘Ð6¸ÔGØ'+—
‘
˜8Ñ$ð —
‘
×%Ñ% h×&6Ñ&6°wÀÓ&DÀd×Kñ5 )ð: × Ñ Ð!1×2Ø26×2CÑ2CÀGÑ2LˆD×ÑÐ.Ò/ð 3r*   c                 ó>  • SSSSSSSS.nU R                   R                  R                  S5       HB  nUR                  5       nU(       d  M  UR                  5       R	                  S5      u  p4nXQU'   MD     SR                  S UR                  5        5       5      S-   $ )	Nz'self'z'none'z'self' data:)zdefault-srczconnect-srczform-actionzbase-uriz
object-srczfont-srczimg-srcÚ;Ú c              3   ó6   #   • U  H  u  pU S U S3v •  M     g7f)rÀ   r¿   Nr%   )rK   ÚkÚvs      r'   rM   Ú6Package.get_content_security_policy.<locals>.<genexpr>3  s   é € Ð?²©¨˜1˜#˜Q˜q˜c �²ùs   ‚z block-all-mixed-content)r¦   rŸ   r1   r2   r4   rO   rb   )rz   Úpolicyrg   r,   r>   rf   s         r'   Úget_content_security_policyÚ#Package.get_content_security_policy"  s“   € à#Ø#Ø#Ø Ø"Ø&Ø%ñ
ˆð —M‘M×%Ñ%×+Ñ+¨CÖ0ˆDØ—:‘:“<ˆDßˆtØ $§
¡
£× 6Ñ 6°sÓ ;‘�˜Ø#�s“ñ	 1ð �x‰xÑ?°·±´Ó?Ó?ÐB\Ñ\Ð\r*   Úfilenamec                 ó  • [         R                  " U5      u  p#S nUc  SnO&UR                  S5      (       a  U R                  5       nU R                  U-  n[
        R                  SU5        [        UR                  S5      X#U5      $ )Nz
text/plainz	text/htmlz  loading data from %sÚrb)	Ú	mimetypesÚ
guess_typeÚ
startswithrÆ   rT   r/   r0   ri   Úopen)rz   rÈ   rl   rm   rn   rT   s         r'   Ú	load_fileÚPackage.load_file5  s{   € Ü)2×)=Ò)=¸hÓ)GÑ&ˆØ"&ÐàÑØ'‰LØ×$Ñ$ [×1Ñ1Ø&*×&FÑ&FÓ&HÐ#à�y‰y˜8Ñ#ˆÜ�‰Ð-¨tÔ4ä˜Ÿ	™	 $›¨ÐI`ÓaÐar*   Úlocalesc                 ó>  • U R                  5         U R                  c   eU HH  n[        R                  " [        5         U R                  U R                  U   U   5      sS S S 5        s  $    [        [        R                  " 5       S5      $ ! , (       d  f       Mz  = f)Nútext/javascript)	r¼   r§   Ú
contextlibÚsuppressÚKeyErrorrÏ   ri   ÚioÚBytesIO)rz   rT   rÑ   r=   s       r'   Úload_translationÚPackage.load_translationC  s}   € Ø×ÑÔØ× Ñ Ñ,Ð,Ð,ó ˆFÜ×$Ò$¤XÕ.Ø—~‘~ d×&7Ñ&7¸Ñ&=¸fÑ&EÓF÷ /Ó.ñ ô œŸ
š
›Ð&7Ó8Ð8÷ /Ö.ús   ¿!BÂ
B	Úheadersc                 ó  • U R                  5         U R                  c   eU R                  c   eXR                  ;   a'  [        [	        USS5      5      nU R                  X5      $ U R                  U R                  U   5      $ )NúAccept-Languager›   )r¼   r¨   r§   rD   r   rÙ   rÏ   )rz   rT   rÛ   rÑ   s       r'   Ú	load_pathÚPackage.load_pathP  sz   € Ø×ÑÔØ�z‰zÑ%Ð%Ð%Ø× Ñ Ñ,Ð,Ð,à×$Ñ$Ó$Ü+¬G°GÐ=NÐPRÓ,SÓTˆGØ×(Ñ(¨Ó7Ð7à—>‘> $§*¡*¨TÑ"2Ó3Ð3r*   )r¨   r¦   rŠ   rT   rš   r§   r}   )ro   rp   rq   rr   rµ   Úcompiler¥   r   r   rs   r–   r]   r   Úintr§   r   r   r¨   r‰   r¼   rÆ   ri   rÏ   r   rÙ   r   rÞ   rt   r%   r*   r'   r£   r£   á   sÛ   ‡ à"$§*¢*Ð-UÓ"V€Hˆh�wÑÓVð ÓØ
ƒIØ
ƒJØƒMð 9=€L�(˜4  T¨#¨s¨(¡^Ð 3Ñ4Ñ5Ó<Ø&*€Eˆ8�D˜˜c˜‘NÑ#Ó*ð* ô *ô+MðZ]¨Sô ]ð&b #ð b¨(ô bð9 Sð 9°8¸C±=ð 9ÀXô 9ð	4˜cð 	4¨Jð 	4¸8÷ 	4r*   r£   c                   ó  • \ rS rSr% \R
                  R                  S S.r\\	\
\\
/\4   4      \S'   \S\\
   4S j5       r\S\S\S\4S	 j5       r\S\\   4S
 j5       rS\
S\S\4S jrS\S\4S jrS\\\
\4      4S jrSrg)ÚPackagesLoaderi\  c                 óJ   • [         R                  R                  U 5      (       + $ rª   )rS   rT   rU   )Úps    r'   r(   ÚPackagesLoader.<lambda>_  s   € ¬¯©¯©¸Ó):Õ%:r*   )zpath-existszpath-not-existsÚ
CONDITIONSr    c              #   ó*  #   •  [         R                  S   v •   [         R                  S   R                  S5       S h  v•N   g ! [         a$    [         R                  R	                  S5      v •   NYf = f N6! [         a    S S h  v•N     g f = f7f)NÚXDG_DATA_HOMEz~/.local/shareÚXDG_DATA_DIRSÚ:)z/usr/local/sharez
/usr/share)rS   r†   rÖ   rT   Ú
expanduserr1   )Úclss    r'   Úget_xdg_data_dirsÚ PackagesLoader.get_xdg_data_dirsb  s~   é € ð	7Ü—*‘*˜_Ñ-Ò-ð	:Ü—z‘z /Ñ2×8Ñ8¸Ó=×=Ñ=øô	 ó 	7Ü—'‘'×$Ñ$Ð%5Ó6Ô6ð	7úñ >øÜó 	:Ø9×9Ó9ð	:üsb   ‚B„A š%A8 ¿A6Á A8 ÁBÁ+A3Á0BÁ2A3Á3BÁ6A8 Á8BÂB
ÂBÂBÂBÂBr¦   Úparentc                 óø  • US-  [         R                  " UR                   S35      [         R                  UR                   S3-  /nU H`  n [        R
                  " UR                  5       5      n[        W[        5      (       d  [        R                  SU5        MU  [        X5      nMb     [        U5      $ ! [         a     M|  [        R                   a   n[        R                  SXF5         S nAN‚S nAff = f)Nzoverride.jsonz.override.jsonú%s: %sz%%s: override file is not a dictionary)r   Úlookup_configrŠ   ÚDOT_CONFIG_COCKPITÚjsonÚloadsÚ
read_bytesÚFileNotFoundErrorÚJSONDecodeErrorr/   rV   r\   ra   r   rc   )rí   r¦   rð   Úoverride_filesÚoverride_fileÚoverrider“   s          r'   Úpatch_manifestÚPackagesLoader.patch_manifestn  sÙ   € ð �_Ñ$Ü× Ò  F§K¡K =°Ð!?Ó@Ü×%Ñ%¨6¯;©;¨-°~Ð(FÑFð
ˆó ,ˆMð=Ü&*§j¢j°×1IÑ1IÓ1KÓ&L�ô ˜h¬×-Ñ-Ü—‘ÐFÈÔVÙä'¨Ó;ŠHñ ,ô   Ó)Ð)øô %ó ÚÜ×'Ñ'ó =ä—‘˜x¨×<Ñ<ûð=ús   Á$B9Â9
C9ÃC9ÃC4Ã4C9c              #   óš  #   • U R                  5        HÍ  n[        R                  SU5        [        U5      R	                  S5       H–  n[        R                  SU5         [
        R                  " UR                  5       5      n[        U[        5      (       d  [        R                  SU5        Mk  UR                  nU R                  X55      n [        XS5      v •  M˜     MÏ     g ! [
        R                   a!  n[        R                  SX$5         S nAMÏ  S nAff = f! [         a!  n[        R!                  SX$5         S nAMý  S nAff = f7f)Nz$Scanning for manifest files under %szcockpit/*/manifest.jsonzConsidering file %srò   z!%s: json document isn't an objectz%s %s)rî   r/   r0   r   Úglobrõ   rö   Ú	read_textrù   Úerrorr\   ra   rð   rý   r–   r   rV   )rí   Údatadirr¸   r¦   r“   rð   s         r'   Úload_manifestsÚPackagesLoader.load_manifests‡  sÿ   é € à×,Ñ,Ö.ˆGÜ�L‰LÐ?ÀÔIÜ˜W›×*Ñ*Ð+DÖE�Ü—‘Ð2°DÔ9ðÜ#Ÿzšz¨$¯.©.Ó*:Ó;�Hô " (¬D×1Ñ1Ü—L‘LÐ!DÀdÔKÙàŸ™�Ø×-Ñ-¨hÓ?�ð7Ü" 6Ó4Ô4ó Fò /øô ×+Ñ+ó Ü—L‘L ¨4Ô5Ýûðûô !ó 7Ü—N‘N 7¨D×6Ò6ûð7üs[   ‚AEÁ $C%ÂA
EÃDÃ	EÃ%DÃ9DÄEÄDÄEÄ
EÄ'EÄ=EÅEÅEÚ	conditionrf   c                 ó\   • U R                   U   n[        U[        5      (       d  gU" U5      $ ©NF)rç   r\   r]   )rz   r  rf   Úcheck_fns       r'   Úcheck_conditionÚPackagesLoader.check_condition�  s,   € Ø—?‘? 9Ñ-ˆô ˜%¤×%Ñ%Øá˜‹Ðr*   c                 óD  • UR                    HT  n U R                  UR                  UR                  5      nU(       a  M3  [
        R                  SUR                  U5          g   g! [         a/    [
        R                  SUR                  UR                  5         M‘  f = f)Nz0  %s: ignoring unknown predicate in manifest: %sz2  hiding package %s as its %s condition is not metFT)	rœ   r
  rŠ   rf   rÖ   r/   rV   rT   r0   )rz   r¦   r  Úokays       r'   Úcheck_conditionsÚPackagesLoader.check_conditions¦  sŒ   € Ø!×,Ô,ˆIðØ×+Ñ+¨I¯N©N¸I¿O¹OÓL�÷ �4Ü—‘ÐQÐS[×S`ÑS`ÐbkÔlÙñ -ð øô ó ä—‘ÐQÐS[×S`ÑS`Ðbk×bpÑbpÔqÚðús   ‘&A&Á&5BÂBc              #   ó  #   • [         R                  S5        [        R                  " [        5      nU R                  5        H@  n[         R                  SUR                  5        XR                     R                  U5        MB     [         R                  S5        [         R                  S5        UR                  5        H‚  u  p4[        US SS9 Hm  n U R                  U5      (       a2  [         R                  SX5R                  5        U[        U5      4v •    M]   [         R                  S
UR                  5        Mo     M„     [         R                  S5        g ! [         a#    [         R                  S	UR                  5         Njf = f7f)Nz)Scanning for available package manifests:z  %s/manifest.jsonzdone.zSelecting packages to serve:c                 ó   • U R                   $ rª   ©rš   )r¦   s    r'   r(   Ú.PackagesLoader.load_packages.<locals>.<lambda>Â  s
   € ÀX×EVÒEVr*   Tr+   z  creating package %s -> %sz1  %s: ignoring package with invalid manifest filez  ignoring %s: unmet conditions)r/   r0   ÚcollectionsÚdefaultdictrd   r  rT   rŠ   r7   rb   Úsortedr  r£   r   rV   )rz   Únamesr¦   rŠ   Ú
candidatesrW   s         r'   Úload_packagesÚPackagesLoader.load_packagesµ  s0  é € Ü�‰Ð@ÔAä+6×+BÒ+BÄ4Ó+HˆØ×+Ñ+Ö-ˆHÜ�L‰LÐ-¨x¯}©}Ô=Ø—-‘-Ñ ×'Ñ'¨Ö1ñ .ô 	�‰�WÔä�‰Ð3Ô4Ø %§¡¦ÑˆDô $ JÑ4VÐ`dÔe�	ðhØ×,Ñ,¨Y×7Ñ7ÜŸ™Ð%BÀDÏ.É.ÔYØ"¤G¨IÓ$6Ð6Ò6Úð 8ô —‘Ð>À	ÇÁÖOó fñ !.ô 	�‰�WÕøô	 !ó hÜ—N‘NÐ#VÐXa×XfÑXfÖgðhüs,   ‚CFÃAEÄAFÅ*F	ÆFÆF	Æ	Fr%   N)ro   rp   rq   rr   rS   rT   rU   rç   r   r   r]   r   Úboolrs   Úclassmethodr   rî   r   r   rý   r–   r  Úobjectr
  r  r   r£   r  rt   r%   r*   r'   rã   rã   \  sç   ‡ à—w‘w—~‘~Ù:ñ>€J�˜˜c 8¨S¨E°4¨KÑ#8Ð8Ñ9Ñ:ó ð
 ð	: (¨3¡-ó 	:ó ð	:ð ð* jð *¸$ð *À:ó *ó ð*ð0 ð7˜x¨Ñ1ó 7ó ð7ð*¨ð °Vð Àô ð¨ð °dô ð˜x¨¨c°7¨lÑ(;Ñ<÷ r*   rã   c                   ó¦  • \ rS rSr% \\S'   \\   \S'   \\	\
4   \S'   \\S'   SS\\   S\\   4S jjrSS	 jrS
 rS\\   4S jr\R&                  R)                  SSS9r\R&                  R-                  5       S 5       r\R&                  R-                  5       S 5       rS\S\S\4S jrS\4S jr\R<                  " S5      rS\	S\S\4S jr Sr!g)ÚPackagesiÏ  ÚloaderÚlistenerÚpackagesÚsaw_first_reload_hintNc                 ón   • Xl         U=(       d
    [        5       U l        U R                  5         SU l        g r  )r!  rã   r   Úloadr#  )rz   r!  r   s      r'   r‰   ÚPackages.__init__Õ  s)   € Ø ŒØ×0¤Ó 0ˆŒØ�	‰	Œð &+ˆÕ"r*   r    c           
      ój  • [        U R                  R                  5       5      U l        [        R
                  " U R                  R                  5        VVs0 s H  u  pU[        UR                  5      _M     snn5      U l        [        R                  S[        U R                  5      5        g s  snnf )NzPackages loaded: %s)ra   r   r  r"  rõ   Údumpsrb   r¦   Ú	manifestsr/   r0   rd   )rz   rŠ   Úpackages      r'   r%  ÚPackages.loadâ  s|   € Ü˜TŸ[™[×6Ñ6Ó8Ó9ˆŒÜŸšÐW[×WdÑWd×WjÑWjÔWlÔ$mÒWlÁmÀd T¬4°×0@Ñ0@Ó+AÒ%AÑWlÒ$mÓnˆŒÜ�‰Ð*¬D°·±Ó,?Õ@ùó %ns   Á"B/
c                 ó(  • [        U R                  5       Hç  nU R                  U   n/ n[        R                  " UR                  R                  S0 5      R                  5       UR                  R                  S0 5      R                  5       5       H:  n[        R                  " [        5         UR                  US   5        S S S 5        M<     [        US SSR                  U5      S SUR                   35        Mé     g ! , (       d  f       M€  = f)NÚmenuÚtoolsr‚   Ú20rÀ   z, Ú40)r  r"  Ú	itertoolsÚchainr¦   ÚgetÚvaluesrÔ   rÕ   rÖ   r7   ÚprintrO   rT   )rz   rŠ   r*  Ú	menuitemsr<   s        r'   ÚshowÚPackages.showç  sÛ   € Ü˜4Ÿ=™=Ö)ˆDØ—m‘m DÑ)ˆGØˆIÜ"ŸšØ×$Ñ$×(Ñ(¨°Ó4×;Ñ;Ó=Ø×$Ñ$×(Ñ(¨°"Ó5×<Ñ<Ó>ö@�ô  ×(Ò(¬Õ2Ø×$Ñ$ U¨7¡^Ô4÷ 3Ñ2ñ@ô
 �T˜"�I˜Q˜tŸy™y¨Ó3°BÐ7°q¸¿¹¸ÐGÖHò *÷ 3Ö2ús   Â.DÄ
Dc                 ó0   ^ • U 4S jn[        U" 5       5      $ )Nc               3   ó¢   >#   • [        TR                  R                  5       S S9 H!  n U R                  R                   S h  v•N   M#     g  N	7f)Nc                 ó   • U R                   * $ rª   r  )r*  s    r'   r(   ÚDPackages.get_bridge_configs.<locals>.yield_configs.<locals>.<lambda>ô  s   € Èw×O_ÑO_ÑN_r*   )r,   )r  r"  r4  r¦   r™   )r*  rz   s    €r'   Úyield_configsÚ2Packages.get_bridge_configs.<locals>.yield_configsó  s>   øé € Ü! $§-¡-×"6Ñ"6Ó"8Ñ>_Ô`�Ø"×+Ñ+×3Ñ3×3Ò3ò aÙ3ùs   ƒA AÁAÁ
A)r:   )rz   r=  s   ` r'   Úget_bridge_configsÚPackages.get_bridge_configsò  s   ø€ õ	4ô ‘]“_Ó%Ð%r*   Úsz{})rf   c                 ót   • U R                  5         U R                  b  U R                  R                  5         g g rª   )r%  r!  r{   ry   s    r'   ÚreloadÚPackages.reloadû  s*   € à�	‰	ŒØ�=‰=Ñ$Ø�M‰M×)Ñ)Õ+ð %r*   c                 óT   • U R                   (       a  U R                  5         SU l         g )NT)r#  rC  ry   s    r'   Úreload_hintÚPackages.reload_hint  s   € à×%×%Ø�K‰KŒMØ%)ˆÕ"r*   rÛ   Úi18nc                óÀ  • [         R                  S5        / nU(       aÒ  [        [        USS5      5      nU R                  R                  5        Hž  u  pVUS;   a  M  UR                  SU5      nUR                     UR                  S:X  a/  [        R                  " UR                  R                  5       5      nOUR                  R                  5       nS S S 5        UR                  W5        M      UR                  SU R                  R                  5       -   S-   5        [        [         R"                  " S	R%                  U5      5      S
5      $ ! , (       d  f       N�= f)NzServing /manifests.jsrÝ   r›   )ÚstaticÚbase1r®   Úgzipsh  
            (function (root, data) {
                if (typeof define === 'function' && define.amd) {
                    define(data);
                }

                if (typeof cockpit === 'object') {
                    cockpit.manifests = data;
                } else {
                    root.manifests = data;
                }
            }(this, s   ))ó   
rÓ   )r/   r0   rD   r   r"  rb   rÙ   rk   rm   rL  Ú
decompressÚreadr7   r)  Úencoderi   r×   rØ   rO   )	rz   rÛ   rH  ÚchunksrÑ   rŠ   r*  Útranslationrk   s	            r'   Úload_manifests_jsÚPackages.load_manifests_js  s"  € Ü�‰Ð,Ô-à ˆö Ü+¬G°GÐ=NÐPRÓ,SÓTˆGØ!%§¡×!4Ñ!4Ö!6‘�ØÐ.Ó.Ùð &×6Ñ6Ð7GÈÓQ�Ø ×%Ó%Ø"×3Ñ3°vÓ=Ü#Ÿš¨{×/?Ñ/?×/DÑ/DÓ/FÓG™à*×/Ñ/×4Ñ4Ó6˜÷	 &ð —‘˜dÖ#ñ "7ð 	�‰ð ð Ÿ.™.×/Ñ/Ó1ñ2ð 5>ñ>ô 	?ô œŸ
š
 5§:¡:¨fÓ#5Ó6Ð8IÓJÐJ÷+ &Õ%ús   Á:AEÅ
E	c                 óœ   • [         R                  S5        [        [        R                  " U R
                  R                  5       5      S5      $ )NzServing /manifests.jsonzapplication/json)r/   r0   ri   r×   rØ   r)  rP  ry   s    r'   Úload_manifests_jsonÚPackages.load_manifests_json,  s3   € Ü�‰Ð.Ô/ÜœŸ
š
 4§>¡>×#8Ñ#8Ó#:Ó;Ð=OÓPÐPr*   z /(?:([^/]+)/)?((?:[^/]+/)*[^/]+)rT   c                 ó|  • [         R                  SU5        U R                  R                  U5      nUc  [	        SU 35      eUR                  5       u  pEUb  U R                  U   R                  XR5      $ US:X  a  U R                  USS9$ US:X  a  U R                  USS9$ US:X  a  U R                  5       $ [        e)	Nzpackages: serving %szInvalid HTTP path zmanifests.jsF)rH  zmanifests-i18n.jsTzmanifests.json)r/   r0   ÚPATH_REr³   r6   Úgroupsr"  rÞ   rS  rV  rÖ   )rz   rT   rÛ   r…   ÚpackagenamerÈ   s         r'   rÞ   ÚPackages.load_path6  sÅ   € Ü�‰Ð+¨TÔ2à—‘×&Ñ& tÓ,ˆØ‰=ÜÐ1°$°Ð8Ó9Ð9Ø %§¡£ÑˆàÑ"Ø—=‘= Ñ-×7Ñ7¸ÓJÐJØ˜Ó'Ø×)Ñ)¨'¸Ð)Ð>Ð>ØÐ,Ó,Ø×)Ñ)¨'¸Ð)Ð=Ð=ØÐ)Ó)Ø×+Ñ+Ó-Ð-äˆNr*   )r!  r   r)  r"  r#  )NNr}   )"ro   rp   rq   rr   rã   rs   r   rv   r   r]   r£   r  r‰   r%  r7  r   r   r?  r   Ú	InterfaceÚPropertyr)  ÚMethodrC  rF  r   ri   rS  rV  rµ   rà   rY  rÞ   rt   r%   r*   r'   r  r  Ï  s  ‡ ØÓØÐ'Ñ(Ó(Ø�3˜�<Ñ Ó ØÓñ+ Ð*:Ñ!;ð +ÈHÐUcÑLdõ +ôAò
	Ið& H¨\Ñ$:ô &ð —‘×&Ñ& s°$Ð&Ð7€Ià‡]�]×ÑÓñ,ó ð,ð
 	‡]�]×ÑÓñ*ó ð*ð
#K¨ð #K¸dð #KÀxô #KðJQ Xô Qð �jŠjð	ó€Gð˜cð ¨Jð ¸8÷ r*   r  zcockpit.Packages)Ú	interface)Ar  rÔ   Ú	functoolsrL  r×   r1  rõ   ÚloggingrË   rS   rµ   r^   Úpathlibr   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   Úcockpit._vendor.systemd_ctypesr   r›   r   Ú_versionr   Újsonutilr   r   r   r   r   r   r   r   r   r   r   Ú	getLoggerro   r/   Ú	lru_cacher]   rD   rP   rX   rY   rc   ri   rv   ra   r   r�   r–   r£   rã   ÚObjectr  r%   r*   r'   Ú<module>rk     so  ðó$ Û Û Û Û 	Û Û Û Û Û 	Û 	Û Ý ÷÷ ÷ ó õ /å Ý !÷÷ ÷ ñ ð 
×	Ò	˜8Ó	$€ð
 ×ÒÓð-¨3ð -°8¸C±=ó -ó ð-ð`B˜Sð B Sô Bð ×ÒÓð&˜ó &ó ð&ñ" ˆC�˜YÓ'€ð˜!ð  ô ô$2ˆzô 2÷:ñ :ô
0�4˜ô 0÷&Wñ Wô^ˆt�Zô ^÷.x4ñ x4÷vpñ pôfxˆs�z‰zÐ%7ó xr*   