JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbra XC?h0@s:ddlZGdddZGdddeZGdddeZdS)Nc@sFeZdZdddZddZddZdd Zd d Zd d ZddZ dS)VersionNcCs|r||dSNparseselfvstringr 6/opt/alt/python39/lib64/python3.9/distutils/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__strrr r r __repr__*szVersion.__repr__cCs||}|tur|S|dkSNr_cmpNotImplementedrothercr r r __eq__-s zVersion.__eq__cCs||}|tur|S|dkSrrrr r r __lt__3s zVersion.__lt__cCs||}|tur|S|dkSrrrr r r __le__9s zVersion.__le__cCs||}|tur|S|dkSrrrr r r __gt__?s zVersion.__gt__cCs||}|tur|S|dkSrrrr r r __ge__Es zVersion.__ge__)N) r __module__ __qualname__r rrrrrrr r r r rs rc@s8eZdZedejejBZddZddZ ddZ dS) StrictVersionz)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|j|}|std||ddddd\}}}}}|rTttt|||g|_nttt||gd|_|r|dt|f|_nd|_dS) Nzinvalid version number '%s')rr) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrr&majorminorZpatchr-Zprerelease_numr r r rs   zStrictVersion.parsecCsb|jddkr*dtt|jdd}ndtt|j}|jr^||jdt|jd}|S)Nr!r.r )r,joinr*rr-rr r r __str__s zStrictVersion.__str__cCst|trt|}nt|ts"tS|j|jkrB|j|jkr>dSdS|jsR|jsRdS|jrb|jsbdS|jsr|jrrdS|jr|jr|j|jkrdS|j|jkrdSdSndS)Nr r) isinstancerrrr,r-rrr r r rs*           zStrictVersion._cmpN) r rrrecompileVERBOSEASCIIr%rr2rr r r r r]s %  rc@sDeZdZedejZd ddZddZddZ d d Z d d Z dS) LooseVersionz(\d+ | [a-z]+ | \.)NcCs|r||dSrrrr r r r 0szLooseVersion.__init__c Cs\||_dd|j|D}t|D],\}}zt|||<Wq$tyNYq$0q$||_dS)NcSsg|]}|r|dkr|qS)r0r ).0xr r r :s z&LooseVersion.parse..)r component_resplit enumerater+r'r,)rrZ componentsiobjr r r r5s zLooseVersion.parsecCs|jSr)rrr r r r2EszLooseVersion.__str__cCs dt|S)NzLooseVersion ('%s'))rrr r r rIszLooseVersion.__repr__cCsVt|trt|}nt|ts"tS|j|jkr2dS|j|jkrBdS|j|jkrRdSdS)Nrr3r )r4rr:rr,r5r r r rMs      zLooseVersion._cmp)N) r rrr6r7r8r>r rr2rrr r r r r: s ! r:)r6rrr:r r r r s>1