�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%||jkrtdy|jStk r8tdYnXdS)Nzaccessing lines out of orderzend of input reached)rrrErC IndexError)r9irrr __getitem__s  zFileInput.__getitem__c%Cs|j}d|_|r|t_|j}d|_z|r0|jWd|j}d|_y|`Wntk r\YnXz|rt|j rt|jWd|j }d|_ |r|j ryt j |Wnt k rYnXd|_XXdS)NF)r.r%stdoutr/rrrBAttributeErrorr3r4r*osunlinkOSError)r9Z savestdoutoutputfileZbackupfilenamerrrr s4    zFileInput.nextfilecCs:x4|j}|r |jd7_|S|js*|S|jqWdS)Nr)rBr2rr)r9rDrrrreadline)szFileInput.readlinecCs|jsd|jkrdSdS|jd|_|jdd|_|j|_d|_d|_d|_d|_|jdkrd|_d|jkrt t j d t j |_nt j |_d |_nV|j r|j|j pd |_ytj|jWntk rYnXtj|j|jt|j|j|_ytj|jjj}Wn$tk r0t|jd |_Yn~XtjtjBtjB}ttd rZ|tjO}tj|j||}tj|d |_yttdrtj|j|Wntk rYnXt j|_|jt _n,|j r|j |j|j|_nt|j|j|_|jj!|_"|j"S)NbrrrFrzbufferTz.bakwO_BINARYchmod)#r(r6r0rr1r2rr3r4getattrr%stdinr)r*rKrLrMrenameopenfstatrst_moder/O_CREATO_WRONLYO_TRUNChasattrrUfdopenrVrIr.r8rPrB)r9ZpermrfdrrrrB4s\           zFileInput._readlinecCs|jS)N)r0)r9rrrrnszFileInput.filenamecCs |j|jS)N)r1r2)r9rrrrqszFileInput.linenocCs|jS)N)r2)r9rrrrtszFileInput.filelinenoc Cs0|jr(y |jjStk r$dSXndSdS)Nrrc)rrr5)r9rrrrws  zFileInput.filenocCs |jdkS)Nr)r2)r9rrrr szFileInput.isfirstlinecCs|jS)N)r3)r9rrrr szFileInput.isstdin)NFrrrN)__name__ __module__ __qualname____doc__r:r;rr<r@rArErHrrPrBrrrrr r rrrrr s&  )  : cCsVtjj|d}|dkr,ddl}|j||S|dkrHddl}|j||St||SdS)Nrz.gzrz.bz2)rKpathsplitextgziprZbz2ZBZ2File)rrZextrjrkrrrr s  csfdd}|S)Ncst||dS)N)encodingerrors)rZ)rr)rlrmrrrszhook_encoded..openhookr)rlrmrr)rlrmrr scCsddl}d}d}|jtjddd\}}x(|D] \}}|dkrDd}|dkr0|}q0Wxtt|||dD]b}|ddd kr|dd}|ddd kr|dd}td ttttrd pd |fqdWtdtttfdS)NrFrzib:z-iTz-b)rr  z%d: %s[%d]%s %s*rz %d: %s[%d]rcrcrcrc) getoptr%r&rprintrrrr )rqrrZoptsargsoarDrrr_tests"  rv__main__)NFrrrN)N)rgr%rK__all__rrrrrrrrr r r r r rvrdrrrrIs,         Y