QfG  dZdZy)c\ ddl}ddl}|jdd}d|vrH|dddk(r|dd}|jd}|jj dj |S|jd}t|dk7s|dd |jvrd |z}t||dd j}|d jd}|dz}|D]&}|s|dz|jj |z}(|jdr|jdr|dz }|S) N:|z/////\z Bad URL: ) string urllib.parsereplacesplitparseunquotejoinlen ascii_lettersOSErrorupperendswith)urlr urllib componentscomperrordrivepaths 1/opt/alt/python312/lib64/python3.12/nturl2path.py url2pathnamer s,? ++c3 C #: r7f ab'CYYs^ ||##DIIj$9:: 99S>D 4yA~aF,@,@@c!en GBK   Eas#J 3;D $;!5!5d!;;D }}Scll3/   Kc ddl}|dddk(r:|dd}|ddjdk(r d|ddz}n|dddk7rtd |zd|vrH|ddd k(rd |z}|jd}|jj d j |S|jdd }t|dk7st|ddkDrd |z}t||jj |dj}|djd}d |zdz}|D]&}|s|d z|jj |z}(|S)Nrrz\\?\zUNC\r r rrz Bad path: z\\r)maxsplitz///)r rrrrquoterr)prrrrrrs r pathname2urlr&-s`>  !u  abE Ra5;;=G #qu A qVs],*+ + !8 Ra5F? AWWT] ||!!#((:"677 7737 #D 4yA~T!W)q en LL  tAw}} /Eat$J 5=3 D #: 2 24 88D Kr!N)r r&r!rr(s#J$r!