a
´i„l ã @ sz d Z ddlZddlZddlZddlZddlZddlZddlmZ ej
dv rXddlmZ
ndZ
ddlZddlmZmZmZmZ h d£Zeedƒr¦e ej¡ e ej¡ d ZeZeed
ƒp¾ejjZeZd6dd„Zdd„ Zz
ej Z W n e!� yø eZ Y n0 G dd„ dƒZ"G dd„ dƒZ#z
ej$Z$W n& e!�yF G dd„ de%e&ƒZ$Y n0 G dd„ dej'd�Z(ej( )e(¡ G dd„ de(ƒZ*ej* )e*¡ ddl+m,Z, e* )e,¡ G dd„ de(ƒZ-ej- )e-¡ G d d!„ d!e-ƒZ.G d"d#„ d#e-ƒZ/G d$d%„ d%e.ƒZ0G d&d'„ d'e.ƒZ1G d(d)„ d)e-ƒZ2G d*d+„ d+e1e0ƒZ3G d,d-„ d-e*ƒZ,G d.d/„ d/e(ƒZ4ej4 )e4¡ G d0d1„ d1ej5ƒZ6G d2d3„ d3e4ƒZ7G d4d5„ d5e7ƒZ8dS )7z)
Python implementation of the io module.
é N)Ú
allocate_lock> ÚcygwinÚwin32)Úsetmode)Ú__all__ÚSEEK_SETÚSEEK_CURÚSEEK_END> r é é Ú SEEK_HOLEi ZgettotalrefcountÚréÿÿÿÿTc C s¤ t | tƒst | ¡} t | tttfƒs0td| ƒ‚t |tƒsFtd| ƒ‚t |tƒs\td| ƒ‚|durzt |tƒsztd| ƒ‚|dur˜t |tƒs˜td| ƒ‚t|ƒ}|tdƒ s¼t|ƒt|ƒkrÈt d| ƒ‚d|v } d |v }
d
|v }d|v }d|v }
d
|v }d|v }d|v �rD| �s"|�s"|�s"|
�r*t dƒ‚ddl
}| dtd¡ d}
|�rX|�rXt dƒ‚| |
| | dk�rvt dƒ‚| �s–|
�s–|�s–|�s–t dƒ‚|�r®|du�r®t dƒ‚|�rÆ|du�rÆt dƒ‚|�rÞ|du�rÞt dƒ‚|�r|dk�rddl
}| dt
d¡ t| | �rd�pd|
�r"d �p$d |�r2d
�p4d |�rBd�pDd |
�rRd�pTd ||d�}|}�z"d}|dk�sŠ|dk �r’| ¡ �r’d }d}|dk �rÜt}zt | ¡ ¡j}W n ttf�yÌ Y n0 |dk�rÜ|}|dk �rît d!ƒ‚|dk�r|�r|W S t d"ƒ‚|
�rt||ƒ}n<| �s0|�s0|�r