+
    diE                         ^ RI t ^ RIt^ RIt^ RIt^ RIH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 ^ RIHtHt ^ RIHtHt ^RIHtHtHtHtHt  ! R R]4      t ! R	 R
]4      t  ! R R]4      t!]"R8X  d   ]!! RR4      t#R# R# )    N)BadStatusLine)quote)Requesturlopen)	HTTPErrorURLError)get_langget_distget_dist_versionget_ubuntu_flavorget_ubuntu_flavor_namec                       ] tR t^3tRtR# )MetaReleaseParseError N)__name__
__module____qualname____firstlineno____static_attributes__r       9/usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.pyr   r   3   s    r   r   c                   &   a  ] tR t^7t o R tRtV tR# )Distc                |    Wn         W n        W0n        W@n        R V n        R V n        R V n        R V n        R V n        R # N)	nameversiondate	supportedreleaseNotesURIreleaseNotesHtmlUriupgradeToolupgradeToolSigupgrade_broken)selfr   r   r   r   s   &&&&&r   __init__Dist.__init__8   s>    		"##' ""r   )	r   r   r!   r    r   r"   r#   r$   r   N)r   r   r   r   r&   r   __classdictcell____classdict__s   @r   r   r   7   s     
# 
#r   r   c                      a  ] tR t^Et o RtR]P                  9   tRtRt	RR lt
R tR tR	 tR
 tR t]R 4       tR tR tR tRtV tR# )MetaReleaseCorezH
A MetaReleaseCore object abstracts the list of released
distributions.
DEBUG_UPDATE_MANAGERz$/etc/update-manager/release-upgradesz /etc/update-manager/meta-releaseNc           	     B	   V'       d   R V n         V P                  RV: RV: 24       WPn        Wn        \        P
                  ! 4       V n        RV n        RV n        Vf   \        P                  ! 4       p\        VR7      V n        \        VR7      V n        \        4       V n        \#        4       V n        RV n        RV n        RpVR,           V n        VR,           V n        RV n        R	V n        \2        P4                  ! 4       p\6        P8                  P;                  V P<                  4      '       d    VP?                  V P<                  4       TPI                  R4      '       dy   Rp
R Fp  pTPK                  Y4      '       g   K  T P                  T P<                  : RTPM                  Y4      : R24       \O        Y
: RT: 2TPM                  Y4      4       Kr  	  . p\6        P8                  P;                  V PP                  4      '       d   VPS                  V PP                  4       \6        P8                  P;                  V PP                  R,           4      '       dI   V PP                  R,           pVPU                  \W        \X        PX                  ! VR,           4      4      4       V F  pV P[                  V4       K  	  V P(                  R9   d   V P                  P]                  4        R# V P(                  R8X  dZ   \^        P`                  ! 4       pVPc                  V P                   4      '       d   V P,                  V n        MV P                  R4       V'       d   V P,                  V n        V'       d%   V ;P*                  V P.                  ,          un        M+V'       d$   V ;P*                  V P0                  ,          un        V P                  RV P*                  ,          4       RV n2        V Pg                  4       '       g   V P                  R4       R# \        Ph                  ! V Pj                  R7      Pm                  4        R#   \2        P@                   d=   p	\B        PD                  PG                  R
T P<                  : RT	: 24        Rp	?	R# Rp	?	ii ; i)Tz MetaRelease.__init__() useDevel=z useProposed=N)cachezhttps://changelogs.ubuntu.com/zmeta-releasezmeta-release-ltsz-developmentz	-proposedERROR: failed to read '':
METARELEASEz:  _z.dz/*.cfgltsz Prompt=lts for non-LTS, ignoringzmetarelease-uri: %sz_buildMetaReleaseFile failed)target)URIURI_LTSURI_UNSTABLE_POSTFIXURI_PROPOSED_POSTFIXneverno)7DEBUG_debugforceDownloaduseDevelopmentRelease	threadingEvent
downloadedupgradable_tonew_distaptCacher   flavorr   flavor_namer
   current_dist_namer   current_dist_versionno_longer_supportedpromptMETARELEASE_URIMETARELEASE_URI_LTS METARELEASE_URI_UNSTABLE_POSTFIX METARELEASE_URI_PROPOSED_POSTFIXconfigparserConfigParserospathexistsCONF_METARELEASEreadErrorsysstderrwritehas_section
has_optiongetsetattrCONFappendextendsortedglob
_parse_cfgsetdistro_infoUbuntuDistroInfois_ltsmetarelease_information_buildMetaReleaseFileThreaddownloadstart)r%   rA   useProposeddebugforceLTSr@   r/   base_uriparsereseckconfigs_listdrop_in_dircfg_filedis   &&&&&&&         r   r&   MetaReleaseCore.__init__Q   sh    DJ$k3	

 +%:"#//+!=IIKE'e41>!)$4$6!#'  4'.8#+.@#@ 0>-0;- **,77>>$//00D112 !!-00#A ((00#44fjj6HJ  a&8&**S:LM 77>>$))$$		* 77>>$))d*++))d*Ktyyx1G'H IJ$HOOH% % ;;/)OO!;;% --/Byy//00'+'?'?$>? #'#;#;D    D$I$II   D$I$II )D,@,@@A'+$))++KK67.446E  %% 

  ,,a1 s   5Q R"1RRc                L   \         P                  P                  R \         P                  P                  V P                  4      4      V n         \        V P
                  R4      P                  4         \         P                  P'                  T P
                  4      ^ 8X  d!   \         P(                  ! T P
                  4       R	#   \         EdC    \         P                  ! R\         P                  P                  R4      4      p\         P                  P                  T4      ^ ,          p\         P                  P                  T4      '       gY    \         P                  ! T4       M@  \         d3   p\        P                   P#                  RT,          4        Rp? R# Rp?ii ; i\         P                  P                  T4      '       gZ    \         P$                  ! TR4       M@  \         d3   p\        P                   P#                  RT,          4        Rp? R# Rp?ii ; i\         P                  P                  TR4      p\         P                  P                  T4      '       gY    \         P$                  ! T4       M@  \         d3   p\        P                   P#                  RT,          4        Rp? R# Rp?ii ; i\         P                  P                  T\         P                  P                  T P                  4      4      T n         ELi ; i  \*         d     R	# i ; i)
z/var/lib/update-manager/aXDG_CACHE_HOMEz~/.cachezmkdir() failed: '%s'NFi  zupdate-manager-coreT)rU   rV   joinbasenamerO   METARELEASE_FILEopencloseIOErrorgetenv
expandusersplitrW   makedirsOSErrorr[   r\   r]   mkdirgetsizeunlink	Exception)r%   	cache_dircache_parent_dirrv   rV   s   &    r   rm   %MetaReleaseCore._buildMetaReleaseFile   s&    "&(8(89M9M(N!

	&&,224@	wwt445:		$//0 I  			 "''"4"4Z"@I  "ww}}Y7:77>>"233!KK 01 !JJ$$%;a%?@ ! 77>>),,!HHY. !JJ$$%;a%?@ ! 77<<	+@AD77>>$''!HHTN !JJ$$%;a%?@ ! %'GGLLbgg&&t';';<%D!7	D  		s   $C 3AL B
LE&%L&F#1&FLF##'LG$#L$H!/&HLH!!AL*J LJ>&J92L9J>>ALLL#"L#c                    Wn         R# )zGvirtual function that is called when the distro is no longer
supported
N)rM   r%   dists   &&r   dist_no_longer_supported(MetaReleaseCore.dist_no_longer_supported   s
     $( r   c                    Wn         R# )zGvirtual function that is called when a new distro release
is available
N)rF   r   s   &&r   new_dist_available"MetaReleaseCore.new_dist_available   s	     r   c                   V P                  R 4       V P                  pV P                  RV,          4       Rp. p\        P                  ! V P                  4      p VP                  4       '       EdA   R F%  pWTP                  9  g   K  \        RV,          4      h	  VP                  R,          pV P                  RV,          4       VP                  R,          p\        \        P                  P                  V4      4      p^ V^&   \        P                  ! \        V4      4      p	\        VP                  R,          4      p
VP                  R,          p\!        WkW4      pR	VP                  9   dK   VP                  R	,          Vn        \%        4       pV'       d!   V;P"                  R
V,          ,          un        RVP                  9   dK   VP                  R,          Vn        V P)                  V4      pV'       d   V;P&                  V,          un        RVP                  9   d   VP                  R,          Vn        RVP                  9   d   VP                  R,          Vn        RVP                  9   d   VP                  R,          Vn        VP1                  V4       Wa8X  g   EKR  TpEKW   T P                  P7                  4        RT n        Tf   T P                  R4       R# RpT F`  pTP8                  TP8                  8  g   K   TP:                  '       g   T P<                  '       g   KF  TpT P                  RT,          4        M	  TR8w  d*   TP:                  '       g   Yn        T PA                  T4       TR8w  d   Yn        T PC                  T4       R#   \        P2                   d    \        RT P4                  ,          4      hi ; i)zMetaRelease.parse()zcurrent dist name: '%s'Nr   Version	SupportedDatezRequired key '%s' missingzfound distro name: '%s'ReleaseNotesz?lang=%sReleaseNotesHtmlUpgradeToolUpgradeToolSignatureUpgradeBrokenzUnable to parse %sz,current dist not found in meta-release file
F znew dist: %sT)r   r   r   r   )"r?   rK   apt_pkgTagFilerl   stepsectionr   listemailutils	parsedatetimemktimetupleintr   r    r	   r!   #_get_release_notes_uri_query_stringr"   r#   r$   rc   rZ   rO   r   r   r   rA   rE   r   r   )r%   rK   current_distdists	index_tagrequired_keyr   rawdate
parseddater   r   r   r   langqueryrE   s   &               r   parseMetaReleaseCore.parse   s;   )* 22-0AAB OOD$@$@A	+	..""$LL#+<+<<37,F  %M
 !((05<=#++F3!%++"7"7"@A
 !
1{{5#45	 1 1+ >?	#++I6D4;!Y%6%66+4+<+<^+LD(#:D,,
T0AA,%):)::/8/@/@*0D, !DDTJE00E90 I$5$55'0'8'8'GD$)Y->->>*3*;*;.+D' #i&7&77*3*;*;O*LD'T",#'LM #X 	$$**,'+$
 KKGH Dyy<,,,
 ~~~d.H.H.H $N]:;  B|'='='=!.)),7B!.##M2 O }} 	'$t';';; 	s&   N# 2N# 	E5N# ?B(N# -N# #2Oc                	   V P                  R 4       ^ p\        V P                  4      pVP                  RR4       VP                  RR4       \        P
                  ! V P                  \        P                  4      '       d,    \        P                  ! V P                  4      P                  pV^ 8  dM   V P                  '       g;   VP                  R\        P                  ! \        P                  ! V4      4      4        \        V^R7      p\        P                   P#                  V P                  4      '       dW   \        P
                  ! V P                  \        P                  4      '       g"    \        P$                  ! V P                  4        \)        V P                  R4      pVP+                  4        F#  pVP-                  VP/                  R4      4       K%  	  VP1                  4        VP3                  ^ ^ 4       WPn        VP9                  4        V P4                  er   V P                  R4        V PG                  4        V PP                  '       d=   V PP                  PR                  '       d!   \        PN                  ! V P                  4       MV P                  R4       V PT                  PW                  4        R
#   \         d     EL&i ; i  \         d*   p\'        RT P                  : RT: R	24        R
p?ELsR
p?ii ; i  \6         d     ELi ; i  \:         d   pTP<                  R8X  ds   \        P                   P#                  T P                  4      '       dD   T P                  RT P                  ,          4       \)        T P                  R4      T n         R
p?ELT P                  RT,          4        R
p?ELR
p?i\>        \@        \B        PD                  3 d@   pT P                  RT,          4       \'        RT P                  ,          4        R
p?ELR
p?ii ; i  \H         dL    \J        PL                  ! RT P                  ,          4       \        PN                  ! T P                  4        EL=i ; i)zMetaRelease.download()zCache-ControlzNo-CachePragmazno-cachezIf-Modified-Since)timeoutzCan't unlink 'z' ()Nzw+zUTF-8i0  zreading file '%s'rz%result of meta-release download: '%s'zIFailed to connect to %s. Check your Internet connection or proxy settingsz!have self.metarelease_informationzparse failed for '%s'zNO self.metarelease_information),r?   r   rO   
add_headerrU   accessr   W_OKstatst_mtimer   r@   r   asctimegmtimer   rV   rW   r   printr   	readlinesr]   decodeflushseekrl   r   r   r   coder   r   socketr   r   r   logging	exceptionremoverF   r$   rD   rh   )r%   lastmodifiedrequrirv   flines   &      r   ro   MetaReleaseCore.downloadX  s>   ,-d**+
3x,99T**BGG44!wwt'<'<=FF !D$6$6$6NN#T\\$++l2K%L(	#r*C ww~~d3344RYY%%rww> >IId334..5MMODGGDKK01 ,	q!/0, IIK" ''3KK;<1

 }}}!=!=!=		$//0KK9:C  "  484I4I1M     	Ivv}0E0E!F!F/$2G2GGH/3D4I4I3/O,,CaGHH-8 	KK?!CD$&*&:&:; 	  1!!+d.C.CC 		$//01s   *K A0L  3 K A5L 	L  9P1 KKL"L L  LL  LL  LL   P.+?O+=O.O!P..P./4P))P.1ARRc                @    V P                   P                  4       '       * # r   )rD   is_set)r%   s   &r   downloadingMetaReleaseCore.downloading  s    ??))+++r   c                    R p\        4       pV'       d   VRV,          ,          pVRV P                  ,          ,          pVRVP                  ,          ,          p\        VR4      # )?zlang=%s&zos=%s&zver=%sz/?)r	   rI   r   r   )r%   r   qr   s   &&  r   r   3MetaReleaseCore._get_release_notes_uri_query_string  sR    zd""A	X##	X$$Q~r   c                z    V P                   '       d)   \        P                  P                  VR ,           4       R# R# )
N)r>   r[   r\   r]   )r%   msgs   &&r   r?   MetaReleaseCore._debug  s&    :::JJS4Z( r   c                   \         P                  ! 4       p VP                  V4       TP                  RR4      '       dJ   TP                  RR4      P                  4       pTR9   d
   RT n
        R# TR8X  d
   RT n
        R# RT n
        R# R#   \         P                   d3   p\        P
                  P                  R T: RT: 24        Rp?R# Rp?ii ; i)	r0   r1   NDEFAULTPromptr<   r5   normalr;   )rS   rT   rY   rZ   r[   r\   r]   r_   r`   lowerrN   )r%   conffileru   rv   rN   s   &&   r   rg   MetaReleaseCore._parse_cfg  s    **,	KK! Y11ZZ	84::<F(%5#& 2 !! 	JJ5=qA 		s   B C 'CC)r>   r   rO   rP   rR   rQ   rK   rL   rD   rI   rJ   r@   rl   rF   rM   rN   rE   rA   )FFFFFN)r   r   r   r   __doc__rU   environr>   rb   rX   r&   rm   r   r   r   ro   propertyr   r   r?   rg   r   r(   r)   s   @r   r,   r,   E   st     
 #bjj0E 2D9m7`-^(XxKZ , ,)' 'r   r,   __main__F)$rG   r   ri   rS   http.clientr   r   email.utilsr   rf   rU   r   r[   r   rB   urllib.parser   urllib.requestr   r   urllib.errorr   r   r   r	   r
   r   r   r   r   r   objectr   r,   r   metar   r   r   <module>r      s   .     %    	  
    + , 	I 	#6 #F'f F'R z5%(D r   