PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  lYoQ@sddlZddlZddlZddlZyddlZWnek rZdZYnXddddddgZdd d d d d dd dg Z da da GdddZ dddZ dddZdddZdddZdddZddZddZeedkrddlZdZddd Zy5ejejd!dd"d#d$d%g\ZZWn5ejk rZzed!eWYddZ[XnXd!ZdZxTeD]L\ZZ ed/kredqed0krdZqed1krd!ZqWxeD]|Z!er_ee!eZ"e"sRe#d,e!qe#e"q!e e!e\Z"Z$e"se#d,e!q!e#d-e"d.e$q!WdS)2N guess_typeguess_extensionguess_all_extensionsadd_typeread_mime_typesinitz/etc/mime.typesz/etc/httpd/mime.typesz/etc/httpd/conf/mime.typesz/etc/apache/mime.typesz/etc/apache2/mime.typesz$/usr/local/etc/httpd/conf/mime.typesz"/usr/local/lib/netscape/mime.typesz/usr/local/etc/mime.typesFc@seZdZfdddZdddZdddZddd Zdd d Zdd d ZdddZ dddZ dS) MimeTypesTcCsts ttj|_tj|_iif|_iif|_x-tjD]\}}|j||dqVWx-t jD]\}}|j||dqWx|D]}|j ||qWdS)NTF) initedr encodings_mapcopy suffix_map types_map types_map_invitemsr common_typesread)self filenamesstrictexttypenamer(/opt/python35/lib/python3.5/mimetypes.py__init__@s zMimeTypes.__init__cCsG||j||<|j|j|g}||krC|j|dS)N)r r setdefaultappend)rrrrZextsrrrrNs  zMimeTypes.add_typec Cstjj|\}}|dkr|jd}|dkrCd S|jdd|}|dkrw|d|}n|d|}d|ksd|krd}|dfStj|\}}x3||jkrtj||j|\}}qW||jkr.|j|} tj|\}}nd} |jd} || kr[| || fS|j | kr| |j | fS|rd| fS|jd } || kr| || fS|j | kr| |j | fSd| fSdS) Ndata,r;=/z text/plainTF)NN) urllibparseZ splittypefind posixpathsplitextr r r lower) rurlrschemeZcommaZsemirbaserencodingr rrrr_s@    $      zMimeTypes.guess_typecCsl|j}|jdj|g}|shx:|jdj|gD]}||krE|j|qEW|S)NTF)r'rgetr)rrr extensionsrrrrrs   zMimeTypes.guess_all_extensionscCs$|j||}|sdS|dS)Nr)r)rrrr-rrrrs zMimeTypes.guess_extensionc Cs0t|dd}|j||WdQRXdS)Nr+zutf-8)openreadfp)rfilenamerfprrrrszMimeTypes.readc Csx|j}|sP|j}x<tt|D](}||ddkr5||d=Pq5W|sjq|d|dd}}x%|D]}|j|d||qWqWdS)Nr#.)readlinesplitrangelenr) rr1rlineZwordsirsuffixesZsuffrrrr/s    zMimeTypes.readfpcCsts dSdd}tjtjd}x||D]}yotj||V}|jdskw;tj|d\}}|tjkrw;|j|||WdQRXWq;tk rw;Yq;Xq;WWdQRXdS)Nc ssXd}xKytj||}Wntk r4PYnXd|krF|V|d7}q WdS)Nrr3)_winregZEnumKeyEnvironmentError)Zmimedbr:Zctyperrr enum_typess  z3MimeTypes.read_windows_registry..enum_typesr4z Content Type)r=OpenKeyZHKEY_CLASSES_ROOT startswithZ QueryValueExZREG_SZrr>)rrr?ZhkcrZ subkeynameZsubkeyZmimetypeZdatatyperrrread_windows_registrys   zMimeTypes.read_windows_registryN) __name__ __module__ __qualname__rrrrrrr/rCrrrrr8s > rTcCs#tdkrttj||S)N)_dbrr)r(rrrrr s cCs#tdkrttj||S)N)rGrr)rrrrrr$s cCs#tdkrttj||S)N)rGrr)rrrrrr5s cCs&tdkrttj|||S)N)rGrr)rrrrrrrEs cCsdat}|dkr1tr+|jt}x-|D]%}tjj|r8|j|q8W|j a |j a |j da |j da |a dS)NTF)r rr=rC knownfilesospathisfilerr r r rrG)filesdbfilerrrrVs        cCs_yt|}Wntk r(dSYnX|)t}|j|d|jdSWdQRXdS)NT)r.OSErrorrr/r )rNfrMrrrrjs   cCsddddddddddd d iad d d dddddiadddddddddddddddd d!d"d#dd$d%d&d d'd(d'd)d*d+d,d-d.d/d0d1d2dd3d4d5d4d6d7d8d9d:dd;d<d=dd>d?d@dAdBd dCdDdEdFdGdFdHdIdJdKdLdMdNdMdOdMdPdQdRd dSdTdUdVdWdXdYdXdZd[d\d]d^d9d_d9d`dadbdcdddedfdgdhdgdidjdkdVdldVdmdVdndVdodpdqd)drd9dsddtddudvdwdxdydzd{d|d}d~ddxdddd ddddddddddddddddddddddddddcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd dddddddddd4ddddddddddddddddddddddiadOdddddddddddddddiadS)Nz.svgzz.svg.gzz.tgzz.tar.gzz.tazz.tzz.tbz2z.tar.bz2z.txzz.tar.xzz.gzgzipz.Zcompressz.bz2bzip2z.xzxzz.azapplication/octet-streamz.aizapplication/postscriptz.aifz audio/x-aiffz.aifcz.aiffz.auz audio/basicz.avizvideo/x-msvideoz.batz text/plainz.bcpiozapplication/x-bcpioz.binz.bmpzimage/x-ms-bmpz.cz.cdfzapplication/x-cdfzapplication/x-netcdfz.cpiozapplication/x-cpioz.cshzapplication/x-cshz.cssztext/cssz.csvztext/csvz.dllz.doczapplication/mswordz.dotz.dvizapplication/x-dviz.emlzmessage/rfc822z.epsz.etxz text/x-setextz.exez.gifz image/gifz.gtarzapplication/x-gtarz.hz.hdfzapplication/x-hdfz.htmz text/htmlz.htmlz.icozimage/vnd.microsoft.iconz.iefz image/iefz.jpez image/jpegz.jpegz.jpgz.jszapplication/javascriptz.kshz.latexzapplication/x-latexz.m1vz video/mpegz.m3uzapplication/vnd.apple.mpegurlz.m3u8z.manzapplication/x-troff-manz.mezapplication/x-troff-mez.mhtz.mhtmlz.mifzapplication/x-mifz.movzvideo/quicktimez.moviezvideo/x-sgi-moviez.mp2z audio/mpegz.mp3z.mp4z video/mp4z.mpaz.mpez.mpegz.mpgz.mszapplication/x-troff-msz.ncz.nwsz.oz.objz.odazapplication/odaz.p12zapplication/x-pkcs12z.p7czapplication/pkcs7-mimez.pbmzimage/x-portable-bitmapz.pdfzapplication/pdfz.pfxz.pgmzimage/x-portable-graymapz.plz.pngz image/pngz.pnmzimage/x-portable-anymapz.potzapplication/vnd.ms-powerpointz.ppaz.ppmzimage/x-portable-pixmapz.ppsz.pptz.psz.pwzz.pyz text/x-pythonz.pyczapplication/x-python-codez.pyoz.qtz.razaudio/x-pn-realaudioz.ramzapplication/x-pn-realaudioz.raszimage/x-cmu-rasterz.rdfzapplication/xmlz.rgbz image/x-rgbz.roffzapplication/x-troffz.rtxz text/richtextz.sgmz text/x-sgmlz.sgmlz.shzapplication/x-shz.sharzapplication/x-sharz.sndz.soz.srczapplication/x-wais-sourcez.sv4cpiozapplication/x-sv4cpioz.sv4crczapplication/x-sv4crcz.svgz image/svg+xmlz.swfzapplication/x-shockwave-flashz.tz.tarzapplication/x-tarz.tclzapplication/x-tclz.texzapplication/x-texz.texizapplication/x-texinfoz.texinfoz.tifz image/tiffz.tiffz.trz.tsvztext/tab-separated-valuesz.txtz.ustarzapplication/x-ustarz.vcfz text/x-vcardz.wavz audio/x-wavz.webmz video/webmz.wizz.wsdlz.xbmzimage/x-xbitmapz.xlbzapplication/vnd.ms-excelz.xlszapplication/excelz.xmlztext/xmlz.xpdlz.xpmzimage/x-xpixmapz.xslz.xwdzimage/x-xwindowdumpz.zipzapplication/zipz image/jpgz.midz audio/midiz.midiz.pctz image/pictz.picz.pictz.rtfzapplication/rtfz.xulztext/xul)r r r rrrrr_default_mime_typesus$   rU__main__a4Usage: mimetypes.py [options] type Options: --help / -h -- print this message and exit --lenient / -l -- additionally search of some common, but non-standard types. --extension / -e -- guess extension instead of type More than one type argument may be given. r@cCs+tt|rt|tj|dS)N)printUSAGEsysexit)codemsgrrrusage7s  r]r3ZhlehelpZlenient extension-h--help-l --lenient-e --extensionz I don't know anything about typeztype:z encoding:)r`ra)rbrc)rdre)%rIrYr%Z urllib.parser"winregr= ImportError__all__rHr rGrrrrrrrrUrDZgetoptrXr]argvZoptsargserrorr\rr_optargZgtypeZguessrWr+rrrrsr