Ë
    x[h£@  ã                   ó„  — d dl Z d dlZd dlZd dlmZmZmZ d dlmZ d dl	m	Z	 d dl
mZmZmZmZ d dlmZmZmZmZ  ej(                  e«      Z G d„ de«      Z G d	„ d
«      Z G d„ d«      Z G d„ d«      Zd„ Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z  G d„ dejB                  «      Z" G d„ de«      Z#y)é    N)ÚNoOptionErrorÚNoSectionErrorÚRawConfigParser)ÚStringIO)Útime)ÚpersistenceÚsettingsÚ
type_utilsÚutil)ÚCFG_ENV_NAMEÚ
PER_ALWAYSÚPER_INSTANCEÚPER_ONCEc                   ó   — e Zd Zy)ÚLockFailureN©Ú__name__Ú
__module__Ú__qualname__© ó    ú3/usr/lib/python3/dist-packages/cloudinit/helpers.pyr   r      ó   „ Ør   r   c                   ó   — e Zd Zy)Ú	DummyLockNr   r   r   r   r   r      r   r   r   c                   óD   — e Zd Zd„ Zej
                  dd„«       Zd„ Zd„ Zy)ÚDummySemaphoresc                  ó   — y ©Nr   ©Úselfs    r   Ú__init__zDummySemaphores.__init__!   s   € Ør   c              #   ó$   K  — t        «       –— y ­wr   )r   )r!   Ú_nameÚ_freqÚ_clear_on_fails       r   ÚlockzDummySemaphores.lock$   s   è ø€ ä‹kÓùs   ‚c                  ó   — y©NFr   ©r!   r$   r%   s      r   Úhas_runzDummySemaphores.has_run(   s   € Ør   c                  ó   — y)NTr   r*   s      r   ÚclearzDummySemaphores.clear+   s   € Ør   N©F)	r   r   r   r"   Ú
contextlibÚcontextmanagerr'   r+   r-   r   r   r   r   r       s+   „ òð ×Ñòó ðòór   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚFileLockc                 ó   — || _         y r   )Úfn)r!   r4   s     r   r"   zFileLock.__init__0   s	   € Øˆ�r   c                 óN   — dt        j                  | «      ›d| j                  ›d�S )Nú<z using file ú>)r
   Úobj_namer4   r    s    r   Ú__str__zFileLock.__str__3   s   � Ü'1×':Ñ':¸4Õ'@À$Ç'Ã'ÐJÐJr   N)r   r   r   r"   r9   r   r   r   r2   r2   /   s   „ òóKr   r2   c                 ó&   — | j                  dd«      S )Nú-Ú_)Úreplace)Únames    r   Úcanon_sem_namer?   7   s   € Ø�<‰<˜˜SÓ!Ð!r   c                   óP   — e Zd Zd„ Zej
                  dd„«       Zd„ Zd„ Zd„ Z	d„ Z
y)	ÚFileSemaphoresc                 ó   — || _         y r   )Úsem_path)r!   rC   s     r   r"   zFileSemaphores.__init__<   s	   € Ø ˆ�r   c              #   ó�   K  — t        |«      }	 | j                  ||«      –— y # t        $ r |r| j                  ||«       ‚ w xY w­wr   )r?   Ú_acquireÚ	Exceptionr-   )r!   r>   ÚfreqÚclear_on_fails       r   r'   zFileSemaphores.lock?   sH   è ø€ ä˜dÓ#ˆð	Ø—-‘-  dÓ+Ó+øÜò 	ÙØ—
‘
˜4 Ô&Øð	üs   ‚A�$ £A¤AÁAc                 óÊ   — t        |«      }| j                  ||«      }	 t        j                  |«       y# t        t
        f$ r t        j                  t        d|«       Y yw xY w)NzFailed deleting semaphore %sFT)r?   Ú	_get_pathr   Údel_fileÚIOErrorÚOSErrorÚlogexcÚLOG)r!   r>   rG   Úsem_files       r   r-   zFileSemaphores.clearI   s\   € Ü˜dÓ#ˆØ—>‘> $¨Ó-ˆð	Ü�M‰M˜(Ô#ð øô œÐ!ò 	Ü�K‰KœÐ;¸XÔFÙð	ús   Ÿ5 µ*A"Á!A"c                 ó4  — | j                  ||«      ry | j                  ||«      }t        j                  «       ›dt	        «       ›d�}	 t        j                  ||«       t        |«      S # t        t        f$ r t        j                  t        d|«       Y y w xY w)Nz: ú
z Failed writing semaphore file %s)r+   rJ   ÚosÚgetpidr   r   Ú
write_filerL   rM   rN   rO   r2   )r!   r>   rG   rP   Úcontentss        r   rE   zFileSemaphores._acquireS   s�   € à�<‰<˜˜dÔ#Øð —>‘> $¨Ó-ˆÜ!#§¡¥¬d­fÐ5ˆð	Ü�O‰O˜H hÔ/ô ˜Ó!Ð!øô œÐ!ò 	Ü�K‰KœÐ?ÀÔJÙð	ús   Á	A* Á**BÂBc                 ó’   — |r	|t         k(  ryt        |«      }| j                  ||«      }t        j                  j                  |«      S r)   )r   r?   rJ   rS   ÚpathÚexists)r!   r>   rG   ÚcnamerP   s        r   r+   zFileSemaphores.has_runc   s>   € Ù�tœzÒ)Øä˜tÓ$ˆØ—>‘> %¨Ó.ˆô �w‰w�~‰~˜hÓ'Ð'r   c                 óº   — | j                   }|r	|t        k(  r t        j                  j	                  ||«      S t        j                  j	                  ||›d|›�«      S )Nú.)rC   r   rS   rX   Újoin)r!   r>   rG   rC   s       r   rJ   zFileSemaphores._get_pathm   sD   € Ø—=‘=ˆÙ�tœ|Ò+Ü—7‘7—<‘< ¨$Ó/Ð/ä—7‘7—<‘< ²T¹4Ð*@ÓAÐAr   Nr.   )r   r   r   r"   r/   r0   r'   r-   rE   r+   rJ   r   r   r   rA   rA   ;   s6   „ ò!ð ×Ñòó ðòò"ò (óBr   rA   c                   ó    — e Zd Zd„ Zd„ Zdd„Zy)ÚRunnersc                 ó    — || _         i | _        y r   )ÚpathsÚsems)r!   ra   s     r   r"   zRunners.__init__v   s   € ØˆŒ
Øˆ�	r   c                 ó   — |t         k(  s|sy d }|t        k(  r| j                  j                  d«      }n$|t        k(  r| j                  j                  d«      }|sy || j                  vrt        |«      | j                  |<   | j                  |   S )NÚsem)r   r   ra   Ú	get_ipathr   Ú	get_cpathrb   rA   )r!   rG   rC   s      r   Ú_get_semzRunners._get_semz   s‚   € Ø”:Ò¡TØØˆØ”<Òð —z‘z×+Ñ+¨EÓ2‰HØ”XÒØ—z‘z×+Ñ+¨EÓ2ˆHÙØØ˜4Ÿ9™9Ñ$Ü"0°Ó":ˆD�I‰I�hÑØ�y‰y˜Ñ"Ð"r   Nc                 ó|  — | j                  |«      }|s
t        «       }|sg }|j                  ||«      rt        j	                  d||«       y|j                  |||«      5 }|st        d|z  «      ‚t        j	                  d||«       t        |t        «      r	 |di |¤Ž}n ||Ž }d|fcd d d «       S # 1 sw Y   y xY w)Nz%s already ran (freq=%s))FNzFailed to acquire lock for %szRunning %s using lock (%s)Tr   )	rg   r   r+   rO   Údebugr'   r   Ú
isinstanceÚdict)	r!   r>   ÚfunctorÚargsrG   rH   rd   ÚlkÚresultss	            r   ÚrunzRunners.run�   s¶   € Ø�m‰m˜DÓ!ˆÙÜ!Ó#ˆCÙØˆDØ�;‰;�t˜TÔ"Ü�I‰IÐ0°$¸Ô=Ø Ø�X‰X�d˜D -Ó0ð 		'°BÙÜ!Ð"AÀDÑ"HÓIÐIä—	‘	Ð6¸¸bÔAÜ˜d¤TÔ+Ù%™o¨™o‘Gá% t˜n�GØ˜g�÷		'÷ 		'ò 		'ús   ÁA	B2Â2B;r)   )r   r   r   r"   rg   rp   r   r   r   r_   r_   u   s   „ òò#ô&'r   r_   c                   óL   — e Zd Z	 	 	 	 	 d	d„Zd„ Zd„ Zd„ Zdefd„Ze	d„ «       Z
y)
ÚConfigMergerNc                 óX   — || _         || _        || _        || _        || _        d | _        y r   )Ú_pathsÚ_dsÚ_fnsÚ	_base_cfgÚ_include_vendorÚ_cfg)r!   ra   Ú
datasourceÚadditional_fnsÚbase_cfgÚinclude_vendors         r   r"   zConfigMerger.__init__£   s/   € ð ˆŒØˆŒØ"ˆŒ	Ø!ˆŒØ-ˆÔàˆ�	r   c                 ó  — g }| j                   r@	 | j                   j                  «       }|r!t        |t        «      r|j	                  |«       |S |S # t
        $ r) t        j                  t        d| j                   «       Y |S w xY w)Nz2Failed loading of datasource config object from %s)	ru   Úget_config_objrj   rk   ÚappendrF   r   rN   rO   )r!   Úd_cfgsÚds_cfgs      r   Ú_get_datasource_configsz$ConfigMerger._get_datasource_configs³   sy   € ØˆØ�8Š8ð	ØŸ™×0Ñ0Ó2�Ùœj¨´$Ô8Ø—M‘M &Ô)ð ˆˆvˆøô ò Ü—‘ÜØHØ—H‘Hõð
 ˆðús   �=A Á.BÂBc                 ó  — g }t         t        j                  v r>t        j                  t            }	 |j                  t	        j
                  |«      «       |S |S # t        $ r t	        j                  t        d|«       Y |S w xY w)Nz%Failed loading of env. config from %s)	r   rS   Úenvironr€   r   Ú	read_confrF   rN   rO   )r!   Úe_cfgsÚe_fns      r   Ú_get_env_configszConfigMerger._get_env_configsÂ   sp   € ØˆÜœ2Ÿ:™:Ñ%Ü—:‘:œlÑ+ˆDðPØ—‘œdŸn™n¨TÓ2Ô3ð ˆˆvˆøô ò PÜ—‘œCÐ!HÈ$ÕOØˆðPús   ±$A Á$BÂ Bc                 óð  — g }| j                   s|S dg}| j                  r"|j                  d«       |j                  d«       |D ]e  }| j                   j                  |«      }|sŒ!t        j
                  j                  |«      sŒA	 |j                  t        j                  |«      «       Œg |S # t        $ r t        j                  d|«       Y Œ‹t        $ r t        j                  t        d|«       Y Œ°w xY w)NÚcloud_configÚvendor2_cloud_configÚvendor_cloud_configz5Skipped loading cloud-config from %s due to non-root.z&Failed loading of cloud-config from %s)rt   rx   r€   Úget_ipath_currS   rX   Úisfiler   r†   ÚPermissionErrorrO   ri   rF   rN   )r!   Úi_cfgsÚcc_pathsÚcc_pÚcc_fns        r   Ú_get_instance_configsz"ConfigMerger._get_instance_configsÌ   sÛ   € Øˆð �{Š{ØˆMà"Ð#ˆØ×Òð �O‰OÐ2Ô3Ø�O‰OÐ1Ô2àò 	ˆDØ—K‘K×-Ñ-¨dÓ3ˆEÚœŸ™Ÿ™¨Õ.ðØ—M‘M¤$§.¡.°Ó"7Õ8ð		ð ˆøô 'ò Ü—I‘Ið%àöô
 !ò Ü—K‘KÜÐEÀuöðús   Â$B.Â.C5Ã#C5Ã4C5Úreturnc                 ó  — g }| j                   r6| j                   D ]'  }	 |j                  t        j                  |«      «       Œ) |j                  | j                  «       «       |j                  | j                  «       «       |j                  | j                  «       «       | j                  r|j                  | j                  «       t        j                  |«      S # t        $ r t        j
                  t        d|«       Y Œéw xY w)Nz'Failed loading of configuration from %s)rv   r€   r   r†   rF   rN   rO   Úextendr‰   r•   rƒ   rw   Úmergemanydict)r!   ÚcfgsÚc_fns      r   Ú	_read_cfgzConfigMerger._read_cfgì   sË   € ð ˆØ�9Š9ØŸ	™	ò �ðØ—K‘K¤§¡¨tÓ 4Õ5ðð 	�‰�D×)Ñ)Ó+Ô,Ø�‰�D×.Ñ.Ó0Ô1Ø�‰�D×0Ñ0Ó2Ô3Ø�>Š>Ø�K‰K˜Ÿ™Ô'Ü×!Ñ! $Ó'Ð'øô !ò Ü—K‘KÜÐFÈöðús   Ÿ$CÃ$DÄDc                 ó\   — | j                   €| j                  «       | _         | j                   S r   )ry   rœ   r    s    r   ÚcfgzConfigMerger.cfg  s&   € ð �9‰9ÐØŸ™Ó(ˆDŒIØ�y‰yÐr   )NNNNT)r   r   r   r"   rƒ   r‰   r•   rk   rœ   Úpropertyrž   r   r   r   rr   rr   ¢   sH   „ ð ØØØØóò òòð@(˜4ó (ð0 ñó ñr   rr   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd	d„Zd„ Zd„ Z	y)
ÚContentHandlersc                 ó    — i | _         g | _        y r   )Ú
registeredÚinitializedr    s    r   r"   zContentHandlers.__init__  s   € ØˆŒØˆÕr   c                 ó$   — | j                  |«      S r   )Úis_registered)r!   Úitems     r   Ú__contains__zContentHandlers.__contains__  s   € Ø×!Ñ! $Ó'Ð'r   c                 ó$   — | j                  |«      S r   )Ú_get_handler)r!   Úkeys     r   Ú__getitem__zContentHandlers.__getitem__  s   € Ø× Ñ  Ó%Ð%r   c                 ó   — || j                   v S r   ©r£   ©r!   Úcontent_types     r   r¦   zContentHandlers.is_registered  s   € Ø˜tŸ™Ð.Ð.r   c                 ó4  — t        «       }|j                  «       D ]9  }|r|j                  |«       Œ| j                  |«      rŒ)|j                  |«       Œ; |D ]  }|| j                  |<   Œ |r)|| j
                  vr| j
                  j                  |«       |S r   )ÚsetÚ
list_typesÚaddr¦   r£   r¤   r€   )r!   Úmodr¤   Ú	overwriteÚtypesÚts         r   ÚregisterzContentHandlers.register  sŽ   € Ü“ˆØ—‘Ó!ò 	!ˆAÙØ—	‘	˜!•à×)Ñ)¨!Õ,Ø—I‘I˜a•Lð	!ð ò 	%ˆAØ!$ˆD�O‰O˜AÒð	%á˜3 d×&6Ñ&6Ñ6Ø×Ñ×#Ñ# CÔ(Øˆr   c                 ó    — | j                   |   S r   r®   r¯   s     r   rª   zContentHandlers._get_handler(  s   € Ø�‰˜|Ñ,Ð,r   c                 óH   — t        | j                  j                  «       «      S r   )Úlistr£   Úitemsr    s    r   r½   zContentHandlers.items+  s   € Ü�D—O‘O×)Ñ)Ó+Ó,Ð,r   N)FT)
r   r   r   r"   r¨   r¬   r¦   r¹   rª   r½   r   r   r   r¡   r¡     s%   „ òò(ò&ò/óò-ó-r   r¡   c                   ód   — e Zd ZdZddefd„Zdeddfd„Zdd„Zdd	„Z	dd
„Z
dd„Zddefd„Zdd„Zy)ÚPathsé   NÚ	path_cfgsc           
      óØ  — || _         |j                  dd«      | _        |j                  dd«      | _        |j                  dt        j
                  «      | _        t        j                  j                  | j                  d«      | _
        t        j                  j                  | j                  d«      | _        t        j                  j                  | j                  d«      | _        |j                  d	d
«      }t        j                  j                  |d«      | _        i dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d “d!d"“d#d$“d%d&“d'd(“d)d*d+d,d-d.d/d0d1œ¥| _        || _        y )2NÚ	cloud_dirz/var/lib/cloudÚdocs_dirz/usr/share/doc/cloud-init/Úrun_dirÚinstancezboot-finishedÚseedÚtemplates_dirz/etc/cloud/templates/z%s.tmplÚ	boothooksr‹   zcloud-config.txtÚdataÚhandlersÚinstance_dataúinstance-data.jsonÚinstance_data_sensitiveúinstance-data-sensitive.jsonÚcombined_cloud_configúcombined-cloud-config.jsonÚnetwork_configznetwork-config.jsonÚinstance_idz.instance-idÚmanual_clean_markerzmanual-cleanÚobj_pklzobj.pklÚscriptsrd   Úuserdatazuser-data.txt.iÚuserdata_rawzuser-data.txtÚ
vendordatazvendor-data.txt.iÚvendordata2zvendor-data2.txt.izvendor-data2.txtzvendor-data.txtzvendor2-cloud-config.txtzvendor-cloud-config.txtzscripts/vendorÚwarningsúhotplug.enabledú.skip-network)Úvendordata2_rawÚvendordata_rawrŒ   r�   Úvendor_scriptsrÛ   rÜ   rÝ   )rš   ÚgetrÃ   rÄ   r	   ÚDEFAULT_RUN_DIRrÅ   rS   rX   r]   Úinstance_linkÚboot_finishedÚseed_dirÚtemplate_tplÚlookupsrz   )r!   rÁ   ÚdsÚtemplate_dirs       r   r"   zPaths.__init__2  sÒ  € ØˆŒ	à'Ÿm™m¨KÐ9IÓJˆŒØ&Ÿ]™]ØÐ4ó
ˆŒð &ŸM™M¨)´X×5MÑ5MÓNˆŒÜ"$§'¡'§,¡,¨t¯~©~¸zÓ"JˆÔÜ"$§'¡'§,¡,Ø×Ñ ó#
ˆÔô  ŸW™WŸ\™\¨$¯.©.¸&ÓAˆŒà%ŸM™MØÐ4ó
ˆô "$§¡§¡¨l¸IÓ!FˆÔð
Ø˜ð
àÐ.ð
ð �Fð
ð ˜
ð	
ð Ð1ð
ð &Ð'Eð
ð $Ð%Að
ð Ð3ð
ð ˜>ð
ð " >ð
ð  �yð!
ð" �yð#
ð$ �5ð%
ð& Ð)ð'
ð( ˜Oð)
ð* Ð-ð+
ð, Ð/ð-
ð.  2Ø/Ø$>Ø#<Ø.Ø"Ø0Ø,ò=
ˆŒðB ˆ�r   Úci_pkl_versionr–   c                 óf  — t        | d«      s0t        | j                  | j                  ¬«      j                  | _        d| j
                  vrd| j
                  d<   d| j
                  vrd| j
                  d<   d| j
                  vrd| j
                  d<   d	| j
                  vrd	| j
                  d	<   y
y
)z(Perform deserialization fixes for Paths.rÅ   )rÁ   rè   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÜ   N)Úhasattrr¿   rš   rz   rÅ   rç   )r!   rê   s     r   Ú	_unpicklezPaths._unpickleg  s«   € ä�t˜YÔ'ô !ØŸ)™)¨¯©ôç‰gð ŒLð  $§,¡,Ñ.Ø,@ˆD�L‰L˜Ñ)Ø$¨D¯L©LÑ8à.ð �L‰LÐ2Ñ3ð #¨$¯,©,Ñ6à,ð �L‰LÐ0Ñ1ð  D§L¡LÑ0Ø.?ˆD�L‰LÐ*Ò+ð 1r   c                 ó:   — | j                  | j                  |«      S r   )rJ   rã   ©r!   r>   s     r   rŽ   zPaths.get_ipath_cur€  s   € Ø�~‰~˜d×0Ñ0°$Ó7Ð7r   c                 ó:   — | j                  | j                  |«      S r   )rJ   rÃ   rï   s     r   rf   zPaths.get_cpath…  s   € Ø�~‰~˜dŸn™n¨dÓ3Ð3r   c                 ó|  — | j                   sy | j                   j                  «       }|€y t        |«      j                  t        j
                  d«      }t        j                  j                  | j                  d|«      }| j                  j                  |«      }|r t        j                  j                  ||«      }|S )Nr<   Ú	instances)rz   Úget_instance_idÚstrr=   rS   ÚseprX   r]   rÃ   rç   rá   )r!   r>   ÚiidÚpath_safe_iidÚipathÚadd_ons         r   Ú
_get_ipathzPaths._get_ipathŠ  sŠ   € Ø�ŠØØ�o‰o×-Ñ-Ó/ˆØˆ;ØÜ˜C›×(Ñ(¬¯©°Ó5ˆÜ—‘—‘˜TŸ^™^¨[¸-ÓHˆØ—‘×!Ñ! $Ó'ˆÙÜ—G‘G—L‘L ¨Ó/ˆEØˆr   c                 óX   — | j                  |«      }|st        j                  d«       y |S )Nz?No per instance data available, is there an datasource/iid set?)rú   rO   Úwarning)r!   r>   rø   s      r   re   zPaths.get_ipathš  s.   € Ø—‘ Ó%ˆÙÜ�K‰Kð2ôð àˆLr   Úbasec                 ód   — |€|S t         j                  j                  || j                  |   «      S r   )rS   rX   r]   rç   )r!   rý   r>   s      r   rJ   zPaths._get_path¥  s*   € Øˆ<ØˆKÜ�w‰w�|‰|˜D $§,¡,¨tÑ"4Ó5Ð5r   c                 ó:   — | j                  | j                  |«      S r   )rJ   rÅ   rï   s     r   Úget_runpathzPaths.get_runpathª  s   € Ø�~‰~˜dŸl™l¨DÓ1Ð1r   r   )r   r   r   Ú_ci_pkl_versionrk   r"   Úintrí   rŽ   rf   rú   re   rô   rJ   r   r   r   r   r¿   r¿   /  sO   „ Ø€Oñ3 $ó 3ðj@¨ð @°ó @ó28ó
4ó
ó 	ñ6˜có 6ô
2r   r¿   c                   óJ   — e Zd ZdZdZdZdZd„ Zdd„Zd„ Z	d„ Z
d	„ Zd
„ Zdd„Zy)ÚDefaultingConfigParserr   g        FNc                 ó„   — | j                   }	 t        j                  | ||«      }|S # t        $ r Y |S t        $ r Y |S w xY wr   )ÚDEF_BASEr   rá   r   r   ©r!   ÚsectionÚoptionÚvalues       r   rá   zDefaultingConfigParser.get¾  sX   € Ø—‘ˆð	Ü#×'Ñ'¨¨g°vÓ>ˆEð
 ˆøô	 ò 	Øð ˆô ò 	ØØˆð	ús   Ž' §	?³?¾?c                 óž   — | j                  |«      s$|j                  «       dk7  r| j                  |«       t        j                  | |||«       y )NÚdefault)Úhas_sectionÚlowerÚadd_sectionr   r²   r  s       r   r²   zDefaultingConfigParser.setÈ  s?   € Ø×Ñ Ô(¨W¯]©]«_À	Ò-IØ×Ñ˜WÔ%Ü×Ñ˜D '¨6°5Õ9r   c                 óX   — | j                  ||«      rt        j                  | ||«       y y r   )Ú
has_optionr   Úremove_option©r!   r  r	  s      r   r  z$DefaultingConfigParser.remove_optionÍ  s'   € Ø�?‰?˜7 FÔ+Ü×)Ñ)¨$°¸Õ@ð ,r   c                 ól   — | j                  ||«      s| j                  S t        j                  | ||«      S r   )r  ÚDEF_BOOLEANr   Ú
getbooleanr  s      r   r  z!DefaultingConfigParser.getbooleanÑ  s1   € Ø�‰˜w¨Ô/Ø×#Ñ#Ð#Ü×)Ñ)¨$°¸Ó@Ð@r   c                 ól   — | j                  ||«      s| j                  S t        j                  | ||«      S r   )r  Ú	DEF_FLOATr   Úgetfloatr  s      r   r  zDefaultingConfigParser.getfloatÖ  s/   € Ø�‰˜w¨Ô/Ø—>‘>Ð!Ü×'Ñ'¨¨g°vÓ>Ð>r   c                 ól   — | j                  ||«      s| j                  S t        j                  | ||«      S r   )r  ÚDEF_INTr   Úgetintr  s      r   r  zDefaultingConfigParser.getintÛ  s/   € Ø�‰˜w¨Ô/Ø—<‘<ÐÜ×%Ñ% d¨G°VÓ<Ð<r   c                 ó¬   — d}t        «       }| j                  |«       |j                  «        |j                  «       }|rdj	                  ||dg«      }|S )NÚ rR   )r   ÚwriteÚflushÚgetvaluer]   )r!   ÚheaderrV   Úoutputstreams       r   Ú	stringifyz DefaultingConfigParser.stringifyà  sQ   € ØˆÜ“zˆØ�
‰
�<Ô Ø×ÑÔØ×(Ñ(Ó*ˆÙØ—y‘y &¨(°BÐ!7Ó8ˆHØˆr   r   )r   r   r   r  r  r  r  rá   r²   r  r  r  r  r$  r   r   r   r  r  ¸  s;   „ Ø€GØ€IØ€KØ€Hòó:ò
AòAò
?ò
=ô
r   r  )$r/   ÚloggingrS   Úconfigparserr   r   r   Úior   r   Ú	cloudinitr   r	   r
   r   Úcloudinit.settingsr   r   r   r   Ú	getLoggerr   rO   rF   r   r   r   r2   r?   rA   r_   rr   r¡   ÚCloudInitPickleMixinr¿   r  r   r   r   ú<module>r,     s¼   ðó Û Û 	ß GÑ GÝ Ý ç =Ó =ß OÓ Oà€g×Ñ˜Ó!€ô	�)ô 	÷	ñ 	÷ñ ÷Kñ Kò"÷7Bñ 7B÷t*'ñ *'÷Zgñ g÷T -ñ  -ôF|2ˆK×,Ñ,ô |2ôR0˜_õ 0r   