JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrU e5d;@sGdddZdS)c@sZeZdZdddZddZddZd d Zd d ZdddZddZ dddZ ddZ dS)ChunkTFc Csddl}d|_||_|rd}nd}||_|d|_t|jdkrFtz ||d|dd|_ Wn|j k rtdYnX|r|j d|_ d|_ z|j |_ Wnttfk rd|_YnXd|_dS) NF><LT)structclosedalignfileread chunknamelenEOFErrorZ unpack_from chunksizeerror size_readtelloffsetAttributeErrorOSErrorseekable)selfr r Z bigendianZ inclheaderrZstrflagr/usr/lib64/python3.8/chunk.py__init__4s,     zChunk.__init__cCs|jSN)r rrrrgetnameNsz Chunk.getnamecCs|jSr)rrrrrgetsizeRsz Chunk.getsizecCs |jsz |W5d|_XdS)NT)r skiprrrrcloseVs z Chunk.closecCs|jrtddS)NI/O operation on closed fileF)r ValueErrorrrrrisatty]sz Chunk.isattyrcCsv|jrtd|jstd|dkr0||j}n|dkrB||j}|dksT||jkrXt|j|j |d||_dS)Nr"z cannot seekr) r r#rrrr RuntimeErrorr seekr)rposwhencerrrr(bs  z Chunk.seekcCs|jrtd|jS)Nr")r r#rrrrrrusz Chunk.tellcCs|jrtd|j|jkrdS|dkr2|j|j}||j|jkrN|j|j}|j|}|jt||_|j|jkr|jr|jd@r|jd}|jt||_|S)Nr"rr%)r r#rrr r rr )rsizedatadummyrrrr zs$      z Chunk.readcCs|jrtd|jrnzD|j|j}|jr:|jd@r:|d}|j|d|j||_WdStk rlYnX|j|jkrt d|j|j}| |}|snt qndS)Nr"r%i ) r r#rrrr r r(rminr r)rnr/rrrr s"    z Chunk.skipN)TTF)r)r+) __name__ __module__ __qualname__rrrr!r$r(rr r rrrrr3s   rN)rrrrr3r,