+
    ˜qgjyI  ã                   óP  a € R8 t>0 t R t^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHtHtHtHt ^ RIHt ^ RIHt ^ R	IHt ^ R
I H!t!H"t" ^ RI#H$t$ ]$t%RRR]!.R]%R. /t&] ^ k RRRR.RR/t']! R4      t( ! R R4      t)]PT                  ! ]+4      t, ! R R]-4      t. ! R R]4      t/ ! R R]/4      t0 ! R  R!]/4      t1 ! R" R#]/4      t2R$ R% lt3R& R' lt4R( R) lt5R* t6R+ R, lt7R- t8R. R/ lt9R0 t:R1 R2 lt;R3 R4 lt<R5]03R6]13R7]233t=R# )9zGrowpart: Grow partitionsN)ÚABCÚabstractmethod)Úsuppress)ÚPath)ÚOptionalÚTuple)Ú	lifecycleÚperformanceÚsubpÚ
temp_utilsÚutil)ÚCloud)ÚConfig)Ú
MetaSchema)ÚALL_DISTROSÚDistro)Ú
PER_ALWAYSÚidÚcc_growpartÚdistrosÚ	frequencyÚactivate_by_schema_keysÚmodeÚautoÚdevicesÚ/Úignore_growroot_disabledFz/cc_growpart_keydatac                   ó&   € ] tR t^/tRtRtRtRtRtR# )ÚRESIZEÚSKIPPEDÚCHANGEDÚNOCHANGEÚFAILED© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r    r!   r"   Ú__static_attributes__r#   ó    Ú>/usr/lib/python3/dist-packages/cloudinit/config/cc_growpart.pyr   r   /   s   † Ø€GØ€GØ€HØ„Fr)   r   c                   ó   € ] tR t^9tRtR# )ÚResizeFailedExceptionr#   N)r$   r%   r&   r'   r(   r#   r)   r*   r,   r,   9   s   † Ûr)   r,   c                   ó^   a € ] tR t^=t o V 3R lR lt]V 3R lR l4       t]R 4       tRtV t	R# )ÚResizerc                ó    <€ V ^8„  d   QhRS[ /# )é   Údistro)r   )ÚformatÚ__classdict__s   "€r*   Ú__annotate__ÚResizer.__annotate__>   s   ø€ ÷ ñ ™vñ r)   c                ó   € Wn         R # ©N©Ú_distro)Úselfr1   s   &&r*   Ú__init__ÚResizer.__init__>   s   € ØŽr)   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r0   r   Úreturn)ÚlistÚbool)r2   r3   s   "€r*   r4   r5   B   s   ø€ ×3Ñ3¡Ð3©$Ñ3r)   c                ó   € R # r7   r#   ©r:   r   s   &&r*   Ú	availableÚResizer.availableA   s   € Ù03r)   c                ó   € R # r7   r#   )r:   ÚdiskdevÚpartnumÚpartdevÚfss   &&&&&r*   ÚresizeÚResizer.resizeD   s   € Ù58r)   r8   N)
r$   r%   r&   r'   r;   r   rC   rJ   r(   Ú__classdictcell__©r3   s   @r*   r.   r.   =   s-   ø‡ € ÷ð ð ß3ó Ø3àÙ8ó Þ8r)   r.   c                   ó8   a € ] tR t^Ht o V 3R lR ltR tRtV tR# )ÚResizeGrowPartc                ó    <€ V ^8„  d   QhRS[ /# ©r0   r   ©r?   )r2   r3   s   "€r*   r4   ÚResizeGrowPart.__annotate__I   ó   ø€ ÷ 
ñ 
¡ñ 
r)   c                óÌ   €  \         P                   ! R R.RR/R7      P                  p\        P                  ! RV4      '       d   R#  R#   \         P                   d     R# i ; i)Úgrowpartz--helpÚLANGÚC©Ú
update_envz--update\s+TF)r
   ÚstdoutÚreÚsearchÚProcessExecutionError)r:   r   Úouts   && r*   rC   ÚResizeGrowPart.availableI   sh   € ð	Ü—)’)Ø˜XÐ&°F¸C°=ôç‰fð ô �yŠy˜¨×-Ò-Ùð .ñ
 øô ×)Ñ)ô 	ØÙð	ús   ‚AA
 Á
A#Á"A#c           	     ón  € \        W44      pV P                  P                  4       p\        P                  ! VR R7      ;_uu_ 4       p\
        P                  P                  VR4      pRRRV/p	\
        P                  P                  V4      '       g   \
        P                  ! VR4        \        P                  ! RRW.V	R7        \        P                  ! RY.T	R7        R
R
R
4       T\        Y44      3#   \        P                   dR   p
T
P                  ^8w  d*   \        P                  ! \        R	TT4       \!        T
4      T
hYU3u R
p
?
uuR
R
R
4       # R
p
?
ii ; i  \        P                   d.   p
\        P                  ! \        RY4       \!        T
4      T
hR
p
?
ii ; i  + '       g   i     LË; i)T)ÚdirÚ	needs_exerV   rW   rX   ÚTMPDIRiÀ  z	--dry-runrY   z&Failed growpart --dry-run for (%s, %s)NzFailed: growpart %s %s)Úget_sizer9   Úget_tmp_exec_pathr   ÚtempdirÚosÚpathÚjoinÚexistsÚmkdirr
   r^   Ú	exit_coder   ÚlogexcÚLOGr,   )r:   rF   rG   rH   rI   ÚbeforeÚtmp_dirÚtmpdÚgrowpart_tmpÚmy_envÚes   &&&&&      r*   rJ   ÚResizeGrowPart.resizeU   s_  € Ü˜'Ó&ˆð —,‘,×0Ñ0Ó2ˆÜ×Ò G°t×<Õ<ÀÜŸ7™7Ÿ<™<¨¨jÓ9ˆLØ˜c 8¨\Ð:ˆFÜ—7‘7—>‘> ,×/Ò/Ü—’˜ uÔ-ð(Ü—	’	Ø ¨gÐ?Ø%õð6Ü—	’	˜: wÐ8ÀVÖL÷- =ð6 œ Ó-Ð.Ð.øô# ×-Ñ-ô 	(Ø—;‘; !Ô#Ü—K’KÜØ@ØØô	ô 0°Ó2¸Ð9ØÐ'Ô'÷' =Ò<ûð	(ûô ×-Ñ-ô 6Ü—’œCÐ!9¸7ÔLÜ+¨AÓ.°AÐ5ûð6ú÷/ =×<úsU   ÁA#F$Â*C6ÃEÃ6EÄ<EÅEÅF$ÅEÅF$ÅF!Å4(FÆF!Æ!F$Æ$F4	r#   N©r$   r%   r&   r'   rC   rJ   r(   rL   rM   s   @r*   rO   rO   H   s   ø‡ € ÷
ð 
÷!/ð !/r)   rO   c                   ó<   a € ] tR t^yt o RtV 3R lR ltR tRtV tR# )ÚResizeGrowFSa£  
Use FreeBSD ``growfs`` service to grow root partition to fill available
space, optionally adding a swap partition at the end.

Note that the service file warns us that it uses ``awk(1)``, and as
such requires ``/usr`` to be present. However, cloud-init is installed
into ``/usr/local``, so we should be fine.

We invoke the ``growfs`` with ``service growfs onestart``, so it
doesn't need to be enabled in ``rc.conf``.
c                ó    <€ V ^8„  d   QhRS[ /# rQ   rR   )r2   r3   s   "€r*   r4   ÚResizeGrowFS.__annotate__†   s   ø€ ÷ Gñ G¡ñ Gr)   c                ó\   € \         P                  P                  R4      ;'       d    VR.8H  # )z'growfs only works on the root partitionz/etc/rc.d/growfsr   )rh   ri   ÚisfilerB   s   &&r*   rC   ÚResizeGrowFS.available†   s%   € ä�w‰w�~‰~Ð0Ó1×FÐF°gÀ#ÀÑ6FÐFr)   c                óö   € \        W44      p V P                  P                  R RR7       T\        Y44      3#   \        P                   d-   p\
        P                  ! \        R4       \        T4      ThRp?ii ; i)ÚonestartÚgrowfs)ÚactionÚservicezFailed: service growfs onestartN)	re   r9   Úmanage_servicer
   r^   r   rn   ro   r,   )r:   rF   rG   rH   rI   rp   ru   s   &&&&&  r*   rJ   ÚResizeGrowFS.resizeŠ   sn   € Ü˜'Ó&ˆð	2Ø�L‰L×'Ñ'¨zÀ8Ð'ÔLð
 œ Ó-Ð.Ð.øô	 ×)Ñ)ô 	2Ü�KŠKœÐ>Ô?Ü'¨Ó*°Ð1ûð	2ús   �7 ·A8Á'A3Á3A8r#   N)	r$   r%   r&   r'   Ú__doc__rC   rJ   r(   rL   rM   s   @r*   ry   ry   y   s    ø‡ € ñ
÷Gð G÷/ð /r)   ry   c                   ó8   a € ] tR t^•t o V 3R lR ltR tRtV tR# )ÚResizeGpartc                ó    <€ V ^8„  d   QhRS[ /# rQ   rR   )r2   r3   s   "€r*   r4   ÚResizeGpart.__annotate__–   rT   r)   c                óÒ   €  \         P                   ! R R.RR/^ ^.R7      P                  p\        P                  ! RV4      '       d   R#  R#   \         P                   d     R# i ; i)ÚgpartÚhelprW   rX   )rZ   Úrcszgpart recover TF)r
   Ústderrr\   r]   r^   )r:   r   Úerrs   && r*   rC   ÚResizeGpart.available–   so   € ð	Ü—)’)Ø˜&Ð!¨v°s¨mÀ!ÀQÀôç‰fð ô �yŠyÐ*¨C×0Ò0Ùð 1ñ
 øô ×)Ñ)ô 	ØÙð	ús   ‚AA ÁA&Á%A&c                óÜ  €  \         P                   ! RRV.4       \        W44      p \         P                   ! RRRW!.4       T\        Y44      3#   \         P                   dD   pTP                  ^ 8w  d)   \        P                  ! \
        RT4       \        T4      Th Rp?L†Rp?ii ; i  \         P                   d.   p\        P                  ! \
        RY!4       \        T4      ThRp?ii ; i)a	  
GPT disks store metadata at the beginning (primary) and at the
end (secondary) of the disk. When launching an image with a
larger disk compared to the original image, the secondary copy
is lost. Thus, the metadata will be marked CORRUPT, and need to
be recovered.
rŒ   ÚrecoverzFailed: gpart recover %sNrJ   z-izFailed: gpart resize -i %s %s)r
   r^   rm   r   rn   ro   r,   re   )r:   rF   rG   rH   rI   ru   rp   s   &&&&&  r*   rJ   ÚResizeGpart.resize¢   sÎ   € ð	6Ü�IŠI�w 	¨7Ð3Ô4ô ˜'Ó&ˆð	2Ü�IŠI�w ¨$°ÐAÔBð
 œ Ó-Ð.Ð.øô ×)Ñ)ô 	6Ø�{‰{˜aÔÜ—’œCÐ!;¸WÔEÜ+¨AÓ.°AÐ5ô  ûð	6ûô ×)Ñ)ô 	2Ü�KŠKœÐ<¸gÔOÜ'¨Ó*°Ð1ûð	2ús.   ‚A §B) ÁB&Á#9B!Â!B&Â)C+Â>(C&Ã&C+r#   Nrw   rM   s   @r*   rˆ   rˆ   •   s   ø‡ € ÷
ð 
÷/ð /r)   rˆ   c                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r0   r   r1   r   r>   )Ústrr   r?   r.   )r2   s   "r*   r4   r4   »   s(   € ÷ ñ œ#ð ¤vð ¼ð Äñ r)   c                 óˆ  € R pV R8X  dJ   \          F)  w  rEV! V4      pVP                  VR7      '       g   K'  Tp M	  V'       g   \        R4      h V# / p\          F	  w  r‰W—V&   K  	  W9  d   \        RV ,          4      hWp,          ! V4      p
V
P                  VR7      '       d   T
pV'       g   \        RV ,          4      hV# )Nr   )r   zNo resizers availablezunknown resize mode %szmode %s not available)ÚRESIZERSrC   Ú
ValueErrorÚ	TypeError)r   r1   r   Úresize_classÚ_nameÚresizerÚcurÚmmapÚkÚvÚmclasss   &&&        r*   Úresizer_factoryr£   »   sÌ   € Ø€LØˆv„~ß&‰NˆEÙ˜&“/ˆCØ�}‰} Wˆ}×-Ô-Ø"�Ùñ	 '÷ ÜÐ4Ó5Ð5ð ð$ Ðð ˆß‰DˆAØ�‹Gñ ð ÔÜÐ4°tÕ;Ó<Ð<à–˜FÓ#ˆØ×Ñ GÐ×,Ò,Ø!ˆLçÜÐ4°tÕ;Ó<Ð<àÐr)   c                ó:   € V ^8„  d   QhR\         \        ,          /# ©r0   r>   ©r   Úint)r2   s   "r*   r4   r4   Ù   s   € ÷ ñ œh¤s�mñ r)   c                 óî  € R p \         P                  ! V \         P                  4      p\         P                  ! V^ \         P                  4      V'       d   \         P
                  ! V4       # #   \         dX    TR8X  d-   \        T 4      u T'       d   \         P
                  ! T4       # #  T'       d   \         P
                  ! T4       R # R # i ; i  T'       d   \         P
                  ! T4       i i ; i)NÚzfs)rh   ÚopenÚO_RDONLYÚlseekÚSEEK_ENDÚcloseÚFileNotFoundErrorÚget_zfs_size)ÚfilenamerI   Úfds   && r*   re   re   Ù   s¯   € Ø	€Bð	Ü�WŠW�XœrŸ{™{Ó+ˆÜ�xŠx˜˜AœrŸ{™{Ó+÷ Ü�HŠH�R�Lð øô ô Ø�Œ;Ü Ó)Ñ)÷ Ü�HŠH�R�Lð ð çÜ�HŠH�RŽLñ ðû÷
 Ü�HŠH�R�Lð ús*   „A
A. Á.CÂC Â,C ÃCÃC Ã!C4c                ó:   € V ^8„  d   QhR\         \        ,          /# r¥   r¦   )r2   s   "r*   r4   r4   ç   s   € ÷ ñ œX¤c�]ñ r)   c                 ó  € V P                  R 4      ^ ,          p \        P                  ! RRRRV.4      w  r#\        TP                  4       4      #   \        P                   d"   p\        P	                  RY4        Rp?R# Rp?ii ; i)r   ÚzpoolÚgetz	-HpovalueÚsizezFailed: zpool get size %s: %sN)Úsplitr
   r^   ro   Údebugr§   Ústrip)Údatasetrµ   r·   Ú_ru   s   &    r*   r°   r°   ç   sr   € Ø�M‰M˜#Ó˜qÕ!€EðÜ—)’)˜W e¨[¸&À%ÐHÓI‰ˆô ˆt�z‰z‹|ÓÐøô ×%Ñ%ô Ü�	‰	Ð1°5Ô<Ýûðús   šA ÁBÁ%BÂBc                 ó¾  € V P                  R 4      '       d   V R3# \        P                  ! V 4      pV'       g   \        R4      hV^ ,          pV^,          p\        P                  ! 4       pVR8X  dj   V'       gb   \        P
                  ! \        P                  ! 4       4      pVf5   \        P                  P                  V4      '       d   VR3# \        R4      hW#3# )ú/dev/Nz,Could not determine device of '%s' % dev_entz	/dev/rootz!Unable to find device '/dev/root')
Ú
startswithr   Úget_mount_infor™   Úis_containerÚrootdev_from_cmdlineÚget_cmdlinerh   ri   rk   )ÚdeventÚresultÚdevrI   Ú	containers   &    r*   Ú
devent2devrÈ   ñ   s¸   € Ø×Ñ˜×!Ò!Ø�tˆ|Ðä× Ò  Ó(€FßÜÐGÓHÐHØ
��)€CØ	��€Bä×!Ò!Ó#€Ið ˆkÔ§)Ü×'Ò'¬×(8Ò(8Ó(:Ó;ˆØŠ;Ü�w‰w�~‰~˜c×"Ò"ð ˜D�yÐ ÜÐ@ÓAÐAØˆ7€Nr)   c                ó$   € V ^8„  d   QhR\         /# r¥   )r@   )r2   s   "r*   r4   r4   	  s   € ÷ ñ ¬ñ r)   c                óR  € \         P                  ! R4      '       g   \        P                  R4       R#  \         P                   ! RRV .4       \        \         P                  4      ;_uu_ 4        \         P                   ! RRT.4       \        P                  R	T 4        RRR4       R
#   \         P                   dT   pTP
                  ^8X  d   \        P                  RT 4       M \        P                  RTP
                  4        Rp?R# Rp?ii ; i  + '       g   i     R# ; i)z€
Check if a device is an encrypted device. blockdev should have
a /dev/dm-* path whereas partition is something like /dev/sda1.
Ú
cryptsetupz6cryptsetup not found. Assuming no encrypted partitionsFÚstatusz#Determined that %s is not encryptedzZReceived unexpected exit code %s from cryptsetup status. Assuming no encrypted partitions.NÚisLukszDetermined that %s is encryptedT)r
   Úwhichro   r¹   r^   rm   Úwarningr   )ÚblockdevÚ	partitionru   s   && r*   Úis_encryptedrÒ   	  sÚ   € ô
 �:Š:�l×#Ò#Ü�	‰	ÐJÔKÙðÜ�	Š	�< ¨8Ð4Ô5ô 
”$×,Ñ,×	-Õ	-Ü�	Š	�< ¨9Ð5Ô6Ü�	‰	Ð3°XÔ>Ø÷ 
.Ñ	-øô ×%Ñ%ô 	Ø�;‰;˜!ÔÜ�I‰IÐ;¸XÕFä�K‰KðGà—‘ôõ
 ûð	ú÷ 
.Ö	-ñ ús$   µB* Á/1DÂ*DÂ?ADÄDÄD&	c                 óB  € R RRV .p\         P                   ! V4      ^ ,          pVP                  R4      '       g   \        RV 24      h RVP                  R4      ^,          P                  R4      ^ ,           2#   \         d   p\        RT R	T R
24      ThRp?ii ; i)ÚdmsetupÚdepsz--options=devnamez1 dependz5Expecting '1 dependencies' from 'dmsetup'. Received: r¾   z: (Ú)zRan `z$`, but received unexpected stdout: `Ú`N)r
   r¿   ÚRuntimeErrorr¸   Ú
IndexError)rÐ   ÚcommandÚdepru   s   &   r*   Úget_underlying_partitionrÜ   $  s°   € Ø˜&Ð"5°xÐ@€GÜ�yŠy˜Ó! !Õ$€Cð �>‰>˜*×%Ò%ÜØCÀCÀ5ÐIó
ð 	
ðØ�s—y‘y Ó'¨Õ*×0Ñ0°Ó5°aÕ8Ð9Ð:Ð:øÜô ÜØ�G�9Ð@ÀÀÀQÐGó
àð	ûðús   Á
0A; Á;BÂBÂBc                óF   € V ^8„  d   QhR\         \        \        3,          /# r¥   )r   r–   )r2   s   "r*   r4   r4   5  s   € ÷ 6ñ 6¬U´3¼°8­_ñ 6r)   c                óô  € \         P                  4       '       g   \        P                  R3#  \        P
                  ! R\          24      ;_uu_ 4        \         P                  4       ;_uu_ 4       p\        P                  ! V4      pRRR4       RRR4       XR,          p\        P                  ! V4      pVR,          p \        P                  ! RRR	R
T .TR7        \        P                  ! RRRT\        T4      .4        \         P%                  4        \        P*                  RT  R23#   + '       g   i     L®; i  + '       g   i     L¹; i  \         d   p\        R4      ThRp?ii ; i  \        P                   d!   p\         P#                  RT4        Rp?L Rp?ii ; i  \         d    \&        P(                  ! \         R4        L»i ; i   \        P                  ! RRRT\        T4      .4       M8  \        P                   d!   p\         P#                  RT4        Rp?MRp?ii ; i \         P%                  4        i   \         d    \&        P(                  ! \         R4        i i ; i; i)zÑUse 'cryptsetup resize' to resize LUKS volume.

The loaded keyfile is json formatted with 'key' and 'slot' keys.
key is base64 encoded. Example:
{"key":"XFmCwX2FHIQp0LBWaLEMiHIyfxt1SGm16VvUAVledlY=","slot":5}
zNo encryption keyfile foundzReading NÚkeyÚslotzZCould not load encryption key. This is expected if the volume has been previously resized.rË   z
--key-fileÚ-rJ   )ÚdataÚluksKillSlotz--batch-modez<Failed to kill luks slot after resizing encrypted volume: %sz8Failed to remove keyfile after resizing encrypted volumez'Successfully resized encrypted volume 'Ú')ÚKEYDATA_PATHrk   r   r   r	   ÚTimedrª   ÚjsonÚloadÚbase64Ú	b64decodeÚ	ExceptionrØ   r
   r–   r^   ro   rÏ   Úunlinkr   rn   r    )rÐ   rÑ   ÚfÚkeydatarß   Údecoded_keyrà   ru   s   &&      r*   Úresize_encryptedrð   5  s#  € ô ×Ñ× Ò Ü—‘Ð =Ð>Ð>ðÜ×ÒØ”|�nÐ%÷
õ 
ä×Ñ×Ô !Ü—i’i “lˆG÷ ÷
ð �e�nˆÜ×&Ò& sÓ+ˆØ�v�ˆðÜ�	Š	Ø˜<¨¨h¸ÐAØõ	
ð
	Ü�IŠIà Ø"Ø"ØÜ˜“Iðôð	Ü×ÑÔ!ô 	�‰Ø
1°(°¸1Ð=ðð ÷O ×ú÷
÷ 
ûô ô Üð6ó
ð ð	ûðûô, ×)Ñ)ô 	Ü�K‰KØNØ÷ñ ûð	ûô ô 	Ü�KŠKÜÐOöð	ûð#	Ü�IŠIà Ø"Ø"ØÜ˜“Iðõøô ×)Ñ)ô 	Ü�K‰KØNØ÷ñ ûð	úð
	Ü×ÑÕ!øÜô 	Ü�KŠKÜÐOöð	ýsË   ®%E ÁE Á0D-	ÂE Â0E Ã G Ã$E2 ÄF* Ä-D=Ä8E Å E	ÅE ÅE/ÅE*Å*E/Å2F'ÆF"Æ"F'Æ*&GÇGÇI7Ç$G=Ç<I7Ç=H2ÈH-È(I7È-H2È2I7È6IÉ
I7É&I4É1I7É3I4É4I7c                 óZ  € . p V P                  W#WE4      w  rxWx8X  d.   VP                  V\        P                  R V: RV: R234       V# Ve   VfD   Rp	Ve   Vf   RV: RV: R2p	M	RV,          p	VP                  V\        P                  V	34       V# Rp	Ve   Vf   RV: RV: RV: R	V: 2p	MRV: RV: R	V: 2p	VP                  V\        P                  V	34        V#   \
         d:   p
TP                  T\        P                  R
T: RT: RT
: 234        Rp
?
T# Rp
?
ii ; i)zno change necessary (z, rÖ   NÚ z	changed (z) size, new size is unknownz&changed (%s) size, new size is unknownz) from z to zfailed to resize: disk=z, ptnum=z: )rJ   Úappendr   r!   r    r,   r"   )r�   rÄ   ÚdiskÚptnumrÐ   rI   ÚinfoÚoldÚnewÚmsgru   s   &&&&&&     r*   Ú_call_resizerrú   n  s3  € Ø€Dð(
Ø—>‘> $¨xÓ<‰ˆØŒ:Ø�K‰KàÜ—O’OÛ6:»EÐBðôðL €Kð? Š[˜CšKØˆCØÒ E£MãÛð‘ð
 ?ÀÕI�Ø�K‰K˜¤§¡°Ð5Ô6ð, €Kð) ˆCØÒ E£MãÛÛÚð	‘øó 7?ÃÂSÐI�Ø�K‰K˜¤§¡°Ð5Õ6ð €Køô !ô 
Ø�‰àÜ—’Û=AÃ5Ê!ÐLð÷	
ð 	
ð €Kûð
ús&   „AC& ÁA	C& ÂAC& Ã&D*Ã1.D%Ä%D*c                ó0   € V ^8„  d   QhR\         R\        /# )r0   r�   r1   )r.   r   )r2   s   "r*   r4   r4   œ  s   € ÷ qñ qœGð q´fñ qr)   c           	      óJ  € \         P                   ! V4      p. pV'       Edì   VP                  ^ 4      pRpRp \        V4      w  rx\        P                  RT4       TR8X  d-   \        T \        4      '       d   T\        YYVYx4      ,          pKu   \        P                  ! T4      p
\        P                  ! T
P                   4      '       gS   \        P"                  ! T
P                   4      '       g-   TP	                  T\
        P                  RT,          34       EK  TP%                  T4      pT'       d­    \'        T4      p\)        Y¼4      '       df   YÃ Uu. uF  qÝ^ ,          NK  	  up9  d(   TP+                  ^ T4       TP+                  ^ T4       EK}  \-        Y|4      w  rïTP	                  TTT34       M'TP	                  T\
        P                  RT R	234        EKÉ   TP3                  T4      w  rVT\        YYVYx4      ,          pEKô  V#   \         d6   p	TP	                  T\
        P                  RT	,          34        Rp	?	EK1  Rp	?	ii ; i  \         d7   p	TP	                  T\
        P                  RT: RT	: 234        Rp	?	EKu  Rp	?	ii ; iu upi   \.         d3   p	TP	                  T\
        P0                  R
T RT	 234        Rp	?	LôRp	?	ii ; i  \4        \        3 d7   p	TP	                  T\
        P                  RT: RT	: 234        Rp	?	EK  Rp	?	ii ; i)é    Nzunable to convert to device: %szgrowpart found fs=%sr©   z	stat of 'z
' failed: zdevice '%s' not a block devicezResizing mapped device (z!) skipped as it is not encrypted.zResizing encrypted device (z
) failed: zdevice_part_info()ÚcopyÚpoprÈ   r™   ró   r   r   ro   r¹   Ú
isinstancery   rú   rh   ÚstatÚOSErrorÚS_ISBLKÚst_modeÚS_ISCHRÚget_mapped_devicerÜ   rÒ   Úinsertrð   rë   r"   Údevice_part_inforš   )r�   r   r1   rö   rÄ   rô   rõ   rÐ   rI   ru   ÚstatretÚunderlying_blockdevrÑ   ÚxrÌ   Úmessages   &&&             r*   Úresize_devicesr  œ  sÕ  € ä�iŠi˜Ó €GØ€Dç
ˆ'Ø—‘˜Q“ˆØˆØˆð
	Ü% fÓ-‰LˆHô 	�	‰	Ð(¨"Ô-ð �Œ;œ: g¬|×<Ò<Ø”M '°4ÀÓMÕMˆDÙð
	Ü—g’g˜hÓ'ˆGô �|Š|˜GŸO™O×,Ò,´T·\²\Ø�O‰O÷6
ò 6
ð �K‰KàÜ—N‘NØ4°xÕ?ðôò à$×6Ñ6°xÓ@Ðßð%ä4°XÓ>�	ÜÐ 3×?Ò?Ø °tÓ(<±t°!¨1¯¨±tÑ(<Ô<ð  Ÿ™ q¨&Ô1ØŸ™ q¨)Ô4Ú Ü&6°xÓ&K‘O�FØ—K‘Kà"Ø"Ø#ðõð —K‘Kà"Ü"ŸN™NØ6°x°jð A6ð 6ðõò$ ð
	Ø ×1Ñ1°(Ó;‰KˆDð 	”˜g¨t¸HÓIÕI‹à€KøôK ô 	Ø�K‰KàÜ—N‘NØ5¸Õ9ðôö ûð	ûô, ô 	Ø�K‰KàÜ—N’NÛ19º1Ð=ðôö ûð	üò8 )=øô4 ô Ø—‘àÜŸ™Ø5°h°Z¸zÈ!ÈÐMð÷ñ ûðûô œ:Ð&ô 	Ø�K‰KàÜ—N’NÛ9AÂ1ÐEðôö ûð	ús}   ¸H ÂI Ä7 J ÅJÅ(+J Æ!J Æ8&J Ç#K ÈIÈ)I
É
IÉJÉ*JÊJÊJ ÊKÊ&(KËKËL"Ë,*LÌL"c          
      óL   € V ^8„  d   QhR\         R\        R\        R\        RR/# )r0   ÚnameÚcfgÚcloudÚargsr>   N)r–   r   r   r?   )r2   s   "r*   r4   r4     s/   € ÷ 09ñ 09”ð 09œ6ð 09¬%ð 09´tð 09Àñ 09r)   c                 ó  € R V9  d$   \         P                  R\        4       \        VR &   VP                  R 4      p\	        V\
        4      '       g   \         P                  R4       R# VP                  RR4      p\        P                  ! V4      '       d=   VR8w  d   \        P                  ! RV R2R	R
R7       \         P                  RV4       R# \        P                  ! VP                  RR4      4      '       dR   \        P                  P                  R4      '       d-   \         P                  R4       \         P                  R4       R# \        P                  ! VRR.4      p\        V4      '       g   \         P                  R4       R#  \!        WRP"                  VR7      p\(        P*                  ! R4      ;_uu_ 4        \-        YvTP"                  4      p	RRR4       X	 FJ  w  r«pT\.        P0                  8X  d   \         P3                  RY¬4       K3  \         P                  RY«T4       KL  	  R#   \$        \&        3 d+   p\         P                  RYX4       TR8w  d   Th Rp?R# Rp?ii ; i  + '       g   i     L ; i)rV   z.No 'growpart' entry in cfg.  Using default: %sz#'growpart' in config was not a dictNr   r   Úoffz"Growpart's 'mode' key with value 'rä   z22.2zUse 'off' instead.)Ú
deprecatedÚdeprecated_versionÚextra_messagezgrowpart disabled: mode=%sr   Fz/etc/growroot-disabledz0growpart disabled: /etc/growroot-disabled existsz&use ignore_growroot_disabled to ignorer   r   zgrowpart: empty device list)r1   r   z,growpart unable to find resizer for '%s': %szResizing devicesz'%s' resized: %sz'%s' %s: %s)ro   r¹   ÚDEFAULT_CONFIGr¶   r   ÚdictrÏ   r   Úis_falser   Ú	deprecaterh   ri   r}   Úget_cfg_option_listÚlenr£   r1   r™   rš   r	   ræ   r  r   r    rö   )r  r  r  r  Úmycfgr   r   r�   ru   ÚresizedÚentryr‚   rù   s   &&&&         r*   Úhandler!    sÜ  € Ø˜ÔÜ�	‰	Ø<¼nô	
ô )ˆˆJ‰à�G‰G�JÓ€EÜ�eœT×"Ò"Ü�‰Ð9Ô:Ùà�9‰9�V˜VÓ$€DÜ‡}‚}�T×ÒØ�5Œ=Ü×ÒØ?À¸vÀQÐGØ#)Ø2õô
 	�	‰	Ð.°Ô5Ùä‡}‚}�U—Y‘YÐ9¸5ÓA×BÒBÜ�7‰7�>‰>Ð2×3Ò3Ü�I‰IÐHÔIÜ�I‰IÐ>Ô?Ùä×&Ò& u¨i¸#¸Ó?€GÜˆw�<Š<Ü�	‰	Ð/Ô0ÙðÜ! $¯|©|ÀWÔMˆô 
×	Ò	Ð-×	.Õ	.Ü  °5·<±<Ó@ˆ÷ 
/ã%Ñˆ�sØ”V—^‘^Ô#Ü�H‰HÐ'¨Ö4ä�I‰I�m U°CÖ8ó	 &øô œ	Ð"ô Ü�	‰	Ð@À$ÔJØ�6Œ>ØˆGÝûð	ú÷ 
/×	.ús$   ÆH8 ÇI6È8I3É	I.É.I3É6J	rV   r�   rŒ   c                ó@   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   # )r0   Úmeta)Ú__conditional_annotations__r   )r2   s   "r*   r4   r4      s   € × Ñ ÷.ò „jñ ò/  r)   )?r$  r†   ré   rþ   rç   Úloggingrh   Úos.pathr\   r  Úabcr   r   Ú
contextlibr   Úpathlibr   Útypingr   r   Ú	cloudinitr   r	   r
   r   r   Úcloudinit.cloudr   Úcloudinit.configr   Úcloudinit.config.schemar   Úcloudinit.distrosr   r   Úcloudinit.settingsr   r   r#  r  rå   r   Ú	getLoggerr$   ro   rë   r,   r.   rO   ry   rˆ   r£   re   r°   rÈ   rÒ   rÜ   rð   rú   r  r!  r˜   r4   )r$  s   @r*   Ú<module>r2     sD  øðö  ã Û Û Û Û 	Û Û 	Û ß #Ý Ý ß "ç DÕ DÝ !Ý #Ý .ß 1Ý )à€	àˆ-Ø�ˆ}Ø�Ø˜rð	€ó ð ˆFØ�ˆuØ ð€ñ Ð*Ó+€÷ñ ð ×Ò˜Ó!€ô	˜Iô 	ô9ˆcô 9ô./�Wô ./ôb/�7ô /ô8#/�'ô #/õLõ<õòõ0ò6õ"6òr+õ\qõh09ðh �Ð Øˆ|ÐØˆkÐð‚r)   