o ]Lb@sZddlmZddlZddlmZedZddeDZiZdd Z dd d Z d dZ dS))absolute_importN)pycompatsU0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~cCsg|] }tD]}||qqS) _b85chars).0abrr7/usr/lib/python3/dist-packages/mercurial/pure/base85.py sr cCsttD]\}}|t|<qdS)N) enumerater_b85dec)icrrr _mkb85decs rFcCst|}|d}|r|dd|7}t|d?}td||}ddd|D}|r.|S|d}|r8|d7}||dd 7}|d |S) zencode text in base85 formatr>%dLcss<|]}t|ddt|ddt|dVqdS)iUi9N)r _b85chars2)rwordrrr $s  zb85encode..N)lenstructunpackjoin)textpadlrlongswordsoutolenrrr b85encodes    r'c Cs tstt|}g}tdt|dD]B}|||d}t|}d}t|D]\}}z |dt|}Wq(tyEtd||w|dkrPtd|| |q|d}|rv|dd|9}|dkrr|d|d d ?7}||d <t j d t|g|R}|r|d d| }|S)zdecode base85-encoded textrrrz#bad base85 character at position %dlz+Base85 overflow in hunk starting at byte %drirrN) r rrrangerbytestrr KeyError ValueErrorappendrpack) rr!r%rchunkaccjrclrrr b85decode6s:     r4)F) __future__rrrr+rrr rr'r4rrrr s