U e5dt���@s�dZddlZGdd�dej�ZGdd�dej�ZGdd�dej�ZGd d �d eej�ZGd d �d eej�Zd d�Ze�e d��Z e � ddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcddddedfdgdhdidjdkdldmdndodpdqdrdsdtduddvdwdxdydzd{d|d}d~ddd�d�d�d�d�d�d�d�d�d�d�d�d���d�Z dd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d��d�d�d�d�d�d�d�d�d�d �d �d �d dzd}d;�d dgd�ddsd'd�d5d9da�ddHdd+d4�dddd!d#d3d�d&�dd{d:d>d2d�d�dud�d�d�d�d�ddq�ddrdo�dd)dvd-dNdVddd�dd�dddd�dd0�dd��dd"�d�d�d�d �d!�d"�d#�d$�d%d=�d&�d'd_�d(dM�d)d�d*d$�d+�d,d,�d-�d.d1dld��d/�d0�d1�d2dd�dwd8dGdydWd|dFdEdded`d d?ddd?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤Ã�ÂÀ©╣║╗â•�¢¥â”�└┴┬├─┼ãÃ╚╔╩╦╠â•�╬¤ºªÊËÈ￾Ã�ÃŽÃ�┘┌█▄¦Ì▀ÓßÔÒõÕµ￾×ÚÛÙìÿ¯´­±￾¾¶§÷¸°¨·¹³²■ ��������� � � � � ������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r���r�r�r�r�r�r�r�r�r�r�r�r�r�r�)�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFr�rSrcrBrurdr�r�r�r^rwrTrPr�rOr�r�r�r�r�r�r�r�r�r�r�rvrUrRrQr�rNr]r[r\rmr4r5r8r&rzr6rxryr�r{r|r}rKr�r�r�r�r?r�rCr�r�r�r@r�r+rFr)rlr*r,r7r-r0r(r.r/rGrGr2r1rJr;rHr9r�r:r�rAr=rIr<r'r�rLrMr>r3rDrErjrYrrerfr~rirZrhrgrkrsr`rorarnrbrrr_rqrprtr�r�r�rVrWrXr�)�__doc__rrrrrrr$�make_identity_dict�range� decoding_map�updaterrr r r r �s ����