§
    ±eîiN@  ã                   ó^  — U d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZmZ d dlmZ d dlmZ eeee                           Zi Zeeef         ed<   dd	„Zd
„ Zd„ Zd„ Zd„ Z  G d„ de¦  «        Z! e
de¬¦  «        Z" e
de¬¦  «        Z# G d„ dee"         ¦  «        Z$dS )é    N)Úbisect_left)	ÚDictÚGenericÚListÚ
NamedTupleÚOptionalÚTypeÚTypeVarÚcastÚoverload)ÚLiteral)Ú	constantsÚ
exceptionsÚutil)Ú	BaseImage)Ú
PyPNGImageÚprecomputed_qr_blanksc                 ól   — t          di |¤Ž}|                     | ¦  «         |                     ¦   «         S )N© )ÚQRCodeÚadd_dataÚ
make_image)ÚdataÚkwargsÚqrs      úO/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/qrcode/main.pyÚmaker      s5   € Ý	Ð	Ð	�&Ð	Ð	€BØ‡K‚K�ÑÔÐØ�=Š=‰?Œ?Ðó    c                 óR   — t          | ¦  «        dk    rt          d| › d�¦  «        ‚d S )Nr   zInvalid box size (was z, expected larger than 0)©ÚintÚ
ValueError©Úsizes    r   Ú_check_box_sizer%       s2   € Ý
ˆ4�y„y�A‚~€~ÝÐQ°$ÐQÐQÐQÑRÔRÐRð €~r   c                 óP   — t          | ¦  «        dk     rt          d| z  ¦  «        ‚d S )Nr   z=Invalid border value (was %s, expected 0 or larger than that)r    r#   s    r   Ú_check_borderr'   %   s2   € Ý
ˆ4�y„y�1‚}€}ÝØKÈdÑRñ
ô 
ð 	
ð €}r   c                 ó¶   — | €d S t          | t          ¦  «        s t          dt          | ¦  «        › d�¦  «        ‚| dk     s| dk    rt	          d| › d�¦  «        ‚d S )NzInvalid mask pattern (was z, expected int)r   é   z(Mask pattern should be in range(8) (got ú))Ú
isinstancer!   Ú	TypeErrorÚtyper"   )Úmask_patterns    r   Ú_check_mask_patternr/   ,   s€   € ØÐØˆÝ�l¥CÑ(Ô(ð 
ÝØL­¨lÑ);Ô);ÐLÐLÐLñ
ô 
ð 	
ð �aÒÐ˜<¨!Ò+Ð+ÝÐSÀLÐSÐSÐSÑTÔTÐTð ,Ð+r   c                 ó   — d„ | D ¦   «         S )Nc                 ó"   — g | ]}|d d …         ‘ŒS ©Nr   )Ú.0Úrows     r   ú
<listcomp>z!copy_2d_array.<locals>.<listcomp>8   s    € Ð Ð Ð �sˆC���ŒFÐ Ð Ð r   r   )Úxs    r   Úcopy_2d_arrayr7   7   s   € Ø Ð ˜aÐ Ñ Ô Ð r   c                   óv   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   d
efd„ZdS )ÚActiveWithNeighborsÚNWÚNÚNEÚWÚmeÚEÚSWÚSÚSEÚreturnc                 ó   — | j         S r2   )r>   ©Úselfs    r   Ú__bool__zActiveWithNeighbors.__bool__F   s	   € ØŒwˆr   N)Ú__name__Ú
__module__Ú__qualname__ÚboolÚ__annotations__rG   r   r   r   r9   r9   ;   s‚   € € € € € € Ø€H€H�HØ€G€G�GØ€H€H�HØ€G€G�GØ€H€H�HØ€G€G�GØ€H€H�HØ€G€G�GØ€H€H�Hð˜$ð ð ð ð ð ð r   r9   ÚGenericImage)ÚboundÚGenericImageLocalc                   óÖ  — e Zd ZU eed<   dZee         ed<   dej	        ddddfdee
e                  fd„Zedefd	„¦   «         Zej        d&d
„¦   «         Zed„ ¦   «         Zej        d„ ¦   «         Zd„ Zd'd„Zd(d„Zd„ Zd„ Zd)d„Zd„ Zd)d„Zd*d„Zed)ded         defd„¦   «         Ze	 d)de
e         defd„¦   «         Zd)d„Zdededefd„Zd„ Z d „ Z!d!„ Z"d"„ Z#d#„ Z$d$„ Z%dedede&fd%„Z'dS )+r   ÚmodulesNÚ_versioné
   é   Úimage_factoryc                 ó>  — t          |¦  «         t          |¦  «         || _        t          |¦  «        | _        t          |¦  «        | _        t          |¦  «        | _        || _        || _        |�t          |t          ¦  «        sJ ‚|                      ¦   «          d S r2   )r%   r'   Úversionr!   Úerror_correctionÚbox_sizeÚborderr.   rU   Ú
issubclassr   Úclear)rF   rW   rX   rY   rZ   rU   r.   s          r   Ú__init__zQRCode.__init__R   s‘   € õ 	˜Ñ!Ô!Ð!Ý�fÑÔÐØˆŒÝ #Ð$4Ñ 5Ô 5ˆÔÝ˜H™œˆŒõ ˜&‘k”kˆŒØ(ˆÔØ*ˆÔØÐ$Ý˜m­YÑ7Ô7Ð7Ð7Ð7Ø�
Š
‰Œˆˆˆr   rC   c                 ól   — | j         €|                      ¦   «          t          t          | j         ¦  «        S r2   )rR   Úbest_fitr   r!   rE   s    r   rW   zQRCode.versioni   s)   € àŒ=Ð Ø�MŠM‰OŒOˆOÝ•C˜œÑ'Ô'Ð'r   c                 ó^   — |�#t          |¦  «        }t          j        |¦  «         || _        d S r2   )r!   r   Úcheck_versionrR   )rF   Úvalues     r   rW   zQRCode.versiono   s/   € àÐÝ˜‘J”JˆEÝÔ˜uÑ%Ô%Ð%ØˆŒˆˆr   c                 ó   — | j         S r2   )Ú_mask_patternrE   s    r   r.   zQRCode.mask_patternv   s   € àÔ!Ð!r   c                 ó2   — t          |¦  «         || _        d S r2   )r/   rd   )rF   Úpatterns     r   r.   zQRCode.mask_patternz   s   € å˜GÑ$Ô$Ð$Ø$ˆÔÐÐr   c                 ó@   — g g| _         d| _        d| _        g | _        dS )z*
        Reset the internal data.
        r   N)rQ   Úmodules_countÚ
data_cacheÚ	data_listrE   s    r   r\   zQRCode.clear   s'   € ð �tˆŒØˆÔØˆŒØˆŒˆˆr   é   c                 ó8  — t          |t          j        ¦  «        r| j                             |¦  «         n]|r/| j                             t          j        ||¬¦  «        ¦  «         n,| j                             t          j        |¦  «        ¦  «         d| _        dS )a  
        Add data to this QR Code.

        :param optimize: Data will be split into multiple chunks to optimize
            the QR size by finding to more compressed modes of at least this
            length. Set to ``0`` to avoid optimizing at all.
        )ÚminimumN)r+   r   ÚQRDatarj   ÚappendÚextendÚoptimal_data_chunksri   )rF   r   Úoptimizes      r   r   zQRCode.add_dataˆ   s�   € õ �d�DœKÑ(Ô(ð 	5ØŒN×!Ò! $Ñ'Ô'Ð'Ð'Øð 	5ØŒN×!Ò!¥$Ô":¸4ÈÐ"RÑ"RÔ"RÑSÔSÐSÐSàŒN×!Ò!¥$¤+¨dÑ"3Ô"3Ñ4Ô4Ð4ØˆŒˆˆr   Tc                 óæ   — |s| j         €|                      | j         ¬¦  «         | j        €*|                      d|                      ¦   «         ¦  «         dS |                      d| j        ¦  «         dS )zÉ
        Compile the data into a QR Code array.

        :param fit: If ``True`` (or if a size has not been provided), find the
            best fit for the data to avoid data overflow errors.
        N©ÚstartF)rW   r_   r.   ÚmakeImplÚbest_mask_pattern)rF   Úfits     r   r   zQRCode.make˜   su   € ð ð 	.�4”<Ð'Ø�MŠM ¤ˆMÑ-Ô-Ð-ØÔÐ$Ø�MŠM˜% ×!7Ò!7Ñ!9Ô!9Ñ:Ô:Ð:Ð:Ð:à�MŠM˜% Ô!2Ñ3Ô3Ð3Ð3Ð3r   c                 ó  ‡ — ‰ j         dz  dz   ‰ _        ‰ j         t          v r%t          t          ‰ j                  ¦  «        ‰ _        nÀˆ fd„t          ‰ j        ¦  «        D ¦   «         ‰ _        ‰                      dd¦  «         ‰                      ‰ j        dz
  d¦  «         ‰                      d‰ j        dz
  ¦  «         ‰                      ¦   «          ‰                      ¦   «          t          ‰ j        ¦  «        t          ‰ j         <   ‰  	                    ||¦  «         ‰ j         dk    r‰  
                    |¦  «         ‰ j        €*t          j        ‰ j         ‰ j        ‰ j        ¦  «        ‰ _        ‰                      ‰ j        |¦  «         d S )NrT   é   c                 ó&   •— g | ]}d g‰j         z  ‘ŒS r2   )rh   )r3   ÚirF   s     €r   r5   z#QRCode.makeImpl.<locals>.<listcomp>¬   s0   ø€ ð ð ð Ø01��˜Ô+Ñ+ðð ð r   r   r)   )rW   rh   r   r7   rQ   ÚrangeÚsetup_position_probe_patternÚsetup_position_adjust_patternÚsetup_timing_patternÚsetup_type_infoÚsetup_type_numberri   r   Úcreate_datarX   rj   Úmap_data)rF   Útestr.   s   `  r   rv   zQRCode.makeImpl¦   s�  ø€ Ø!œ\¨AÑ-°Ñ2ˆÔàŒ<Õ0Ð0Ð0Ý(Õ)>¸t¼|Ô)LÑMÔMˆDŒLˆLðð ð ð Ý5:¸4Ô;MÑ5NÔ5Nðñ ô ˆDŒLð ×-Ò-¨a°Ñ3Ô3Ð3Ø×-Ò-¨dÔ.@À1Ñ.DÀaÑHÔHÐHØ×-Ò-¨a°Ô1CÀaÑ1GÑHÔHÐHØ×.Ò.Ñ0Ô0Ð0Ø×%Ò%Ñ'Ô'Ð'å2?ÀÄÑ2MÔ2MÕ! $¤,Ñ/à×Ò˜T <Ñ0Ô0Ð0àŒ<˜1ÒÐØ×"Ò" 4Ñ(Ô(Ð(àŒ?Ð"Ý"Ô.Ø”˜dÔ3°T´^ñô ˆDŒOð 	�Š�d”o |Ñ4Ô4Ð4Ð4Ð4r   c                 óœ  — t          dd¦  «        D ]º}||z   dk    s| j        ||z   k    rŒt          dd¦  «        D ]�}||z   dk    s| j        ||z   k    rŒd|cxk    rdk    rn n|dv s4d|cxk    rdk    rn n|dv s d|cxk    rdk    r*n n'd|cxk    rdk    rn nd| j        ||z            ||z   <   Œyd	| j        ||z            ||z   <   Œ�Œ»d S )
Néÿÿÿÿé   r   é   >   r   r‰   é   rT   TF©r}   rh   rQ   )rF   r4   ÚcolÚrÚcs        r   r~   z#QRCode.setup_position_probe_patternÂ   s.  € Ý�r˜1‘”ð 	;ð 	;ˆAà�Q‰w˜"Š}ˆ} Ô 2°c¸A±gÒ =Ð =Øå˜2˜q‘\”\ð ;ð ;�à˜‘7˜b’=�= DÔ$6¸#À¹'Ò$AÐ$AØð ˜!�[�[’[�[˜q’[�[�[�[�[ Q¨& [ [Ø˜Q˜˜š˜ !š˜˜˜˜¨¨V¨¨Ø˜Q˜˜š˜ !š˜˜˜˜¨¨Q¨¨ª¨°!ª¨¨¨¨à59�D”L  q¡Ô)¨#°©'Ñ2Ð2à5:�D”L  q¡Ô)¨#°©'Ñ2Ð2ð;ð	;ð 	;r   c                 óz  — |€d}t          j        |¦  «         t          j        |¦  «        }t          j        ¦   «         }| j        D ]`}|                     |j        d¦  «         |                     t          |¦  «        ||j                 ¦  «         |                     |¦  «         Œat          |¦  «        }t          t           j
        | j                 ||¦  «        | _        | j        dk    rt          j        ¦   «         ‚|t          j        | j        ¦  «        ur|                      | j        ¬¦  «         | j        S )zD
        Find the minimum size required to fit in the data.
        Né   rT   é)   rt   )r   ra   Úmode_sizes_for_versionÚ	BitBufferrj   ÚputÚmodeÚlenÚwriter   ÚBIT_LIMIT_TABLErX   rW   r   ÚDataOverflowErrorr_   )rF   ru   Ú
mode_sizesÚbufferr   Úneeded_bitss         r   r_   zQRCode.best_fitÖ   s  € ð ˆ=ØˆEÝÔ˜5Ñ!Ô!Ð!õ Ô0°Ñ7Ô7ˆ
Ý”Ñ!Ô!ˆØ”Nð 	ð 	ˆDØ�JŠJ�t”y !Ñ$Ô$Ð$Ø�JŠJ•s˜4‘y”y *¨T¬YÔ"7Ñ8Ô8Ð8Ø�JŠJ�vÑÔÐÐå˜&‘k”kˆÝ"ÝÔ  Ô!6Ô7¸Àeñ
ô 
ˆŒð Œ<˜2ÒÐÝÔ.Ñ0Ô0Ð0ð �TÔ8¸¼ÑFÔFÐFÐFØ�MŠM ¤ˆMÑ-Ô-Ð-ØŒ|Ðr   c                 ó°   — d}d}t          d¦  «        D ]A}|                      d|¦  «         t          j        | j        ¦  «        }|dk    s||k    r|}|}ŒB|S )z7
        Find the most efficient mask pattern.
        r   rˆ   T)r}   rv   r   Ú
lost_pointrQ   )rF   Úmin_lost_pointrf   r|   rž   s        r   rw   zQRCode.best_mask_patternô   sk   € ð ˆØˆå�q‘”ð 	ð 	ˆAØ�MŠM˜$ Ñ"Ô"Ð"åœ¨¬Ñ6Ô6ˆJà�AŠvˆv˜¨*Ò4Ð4Ø!+�Ø�øàˆr   c                 óz  — |€ddl }|j        }|                     ¦   «         st          d¦  «        ‚| j        €|                      ¦   «          | j        }|                     dd|dz  dz   z  z   dz   ¦  «         t          |¦  «        D ]|}|                     d	¦  «         t          |¦  «        D ]@}| j	        |         |         r|                     d
¦  «         Œ+|                     d	¦  «         ŒA|                     d¦  «         Œ}|                     dd|dz  dz   z  z   dz   ¦  «         | 
                    ¦   «          dS )zz
        Output the QR Code only using TTY colors.

        If the data has not been compiled yet, make it first.
        Nr   ú	Not a ttyz[1;47mÚ rŠ   rT   z[0m
z[1;47m  [40mz  z[1;47m  [0m
)ÚsysÚstdoutÚisattyÚOSErrorri   r   rh   r—   r}   rQ   Úflush)rF   Úoutr£   Úmodcountr�   rŽ   s         r   Ú	print_ttyzQRCode.print_tty  sF  € ð ˆ;ØˆJˆJˆJà”*ˆCà�zŠz‰|Œ|ð 	'Ý˜+Ñ&Ô&Ð&àŒ?Ð"Ø�IŠI‰KŒKˆKàÔ%ˆØ�	Š	�, #¨°A©¸Ñ)9Ñ":Ñ;¸kÑIÑJÔJÐJÝ�x‘”ð 	/ð 	/ˆAØ�IŠIÐ,Ñ-Ô-Ð-Ý˜8‘_”_ð 6ð 6�Ø”< ”? 1Ô%ð 6Ø—I’I˜d‘O”O�O�Oà—I’IÐ4Ñ5Ô5Ð5Ð5Ø�IŠIÐ-Ñ.Ô.Ð.Ð.Ø�	Š	�, #¨°A©¸Ñ)9Ñ":Ñ;¸kÑIÑJÔJÐJØ�	Š	‰Œˆˆˆr   Fc                 ó  ‡ ‡‡	— |€t           j        }|r#|                     ¦   «         st          d¦  «        ‚‰ j        €‰                      ¦   «          ‰ j        Š	d„ dD ¦   «         }|rdŠ‰r|                     ¦   «          dt          fˆˆ	ˆ fd„}t          ‰ j
         ‰	‰ j
        z   d¦  «        D ]È}|r=‰r|‰	‰ j
        z   d	z
  k     r|                     d
¦  «         |                     d¦  «         t          ‰ j
         ‰	‰ j
        z   ¦  «        D ]<} |||¦  «         ||d	z   |¦  «        d	z  z   }|                     ||         ¦  «         Œ=|r|                     d¦  «         |                     d¦  «         ŒÉ|                     ¦   «          dS )zË
        Output the QR Code using ASCII characters.

        :param tty: use fixed TTY color codes (forces invert=True)
        :param invert: invert the ASCII characters (solid <-> transparent)
        Nr¡   c                 óT   — g | ]%}t          |f¦  «                             d ¦  «        ‘Œ&S )Úcp437)ÚbytesÚdecode)r3   Úcodes     r   r5   z&QRCode.print_ascii.<locals>.<listcomp>5  s.   € ÐQÐQÐQ°D•˜�w‘”×&Ò& wÑ/Ô/ÐQÐQÐQr   )éÿ   éß   éÜ   éÛ   TrC   c                 óò   •— ‰r%‰j         rt          | |¦  «        ‰‰j         z   k    rdS t          | |¦  «        dk     st          | |¦  «        ‰k    rdS t          t          ‰j        |          |         ¦  «        S )Nr�   r   )rZ   ÚmaxÚminr   r!   rQ   )r6   ÚyÚinvertr©   rF   s     €€€r   Ú
get_modulez&QRCode.print_ascii.<locals>.get_module;  su   ø€ Øð ˜$œ+ð ­#¨a°©)¬)°xÀ$Ä+Ñ7MÒ*MÐ*MØ�qÝ�1�a‰yŒy˜1Š}ˆ}¥ A q¡	¤	¨XÒ 5Ð 5Ø�qÝ�˜Tœ\¨!œ_¨QÔ/Ñ0Ô0Ð0r   rŠ   r�   z[48;5;232mz[38;5;255mz[0mÚ
)r£   r¤   r¥   r¦   ri   r   rh   Úreverser!   r}   rZ   r—   r§   )
rF   r¨   Úttyr¹   Úcodesrº   r�   rŽ   Úposr©   s
   `  `     @r   Úprint_asciizQRCode.print_ascii$  sÒ  øøø€ ð ˆ;Ý”*ˆCàð 	'�s—z’z‘|”|ð 	'Ý˜+Ñ&Ô&Ð&àŒ?Ð"Ø�IŠI‰KŒKˆKàÔ%ˆØQÐQÐ<PÐQÑQÔQˆØð 	ØˆFØð 	Ø�MŠM‰OŒOˆOð	1¥ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1õ ˜œ�| X°´Ñ%;¸QÑ?Ô?ð 
	ð 
	ˆAØð ,Øð 0  X°´Ñ%;¸aÑ%?Ò!?Ð!?Ø—I’IÐ.Ñ/Ô/Ð/Ø—	’	Ð*Ñ+Ô+Ð+Ý˜DœK˜<¨°D´KÑ)?Ñ@Ô@ð &ð &�Ø �j  AÑ&Ô&¨*¨*°Q¸±U¸AÑ*>Ô*>À!Ñ*CÑD�Ø—	’	˜% œ*Ñ%Ô%Ð%Ð%Øð %Ø—	’	˜)Ñ$Ô$Ð$Ø�IŠI�d‰OŒOˆOˆOØ�	Š	‰Œˆˆˆr   c                 ó   — d S r2   r   ©rF   rU   r   s      r   r   zQRCode.make_imageO  s   € àˆr   c                 ó   — d S r2   r   rÂ   s      r   r   zQRCode.make_imageS  s	   € ð 	ˆr   c                 óD  — t          | j        ¦  «         | j        €|                      ¦   «          |�t	          |t
          ¦  «        sJ ‚n| j        }|€ddlm}m	} |r|nt          } || j        | j        | j        fd| j        i|¤Ž}|j        rwt          | j        ¦  «        D ]b}t          | j        ¦  «        D ]K}|j        r|                     ||| ¬¦  «         Œ"| j        |         |         r|                     ||¦  «         ŒLŒc|j        r|                     ¦   «          |S )zu
        Make an image from the QR Code data.

        If the data has not been compiled yet, make it first.
        Nr   )ÚImageÚPilImageÚqrcode_modules)r   )r%   rY   ri   r   r[   r   rU   Úqrcode.image.pilrÅ   rÆ   r   rZ   rh   rQ   Úneeds_drawrectr}   Úneeds_contextÚdrawrect_contextÚdrawrectÚneeds_processingÚprocess)rF   rU   r   rÅ   rÆ   Úimr�   rŽ   s           r   r   zQRCode.make_imageY  sp  € õ 	˜œÑ&Ô&Ð&ØŒ?Ð"Ø�IŠI‰KŒKˆKàÐ$Ý˜m­YÑ7Ô7Ð7Ð7Ð7Ð7à Ô.ˆMØÐ$Ø<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ð -2Ð A  µz�àˆ]ØŒKØÔØŒMð
ð 
ð  œ<ð	
ð
 ð
ð 
ˆð Ôð 	*Ý˜4Ô-Ñ.Ô.ð *ð *�Ý˜tÔ1Ñ2Ô2ð *ð *�AØÔ'ð *Ø×+Ò+¨A¨q°TÐ+Ñ:Ô:Ð:Ð:Øœ aœ¨Ô+ð *ØŸš A qÑ)Ô)Ð)øð	*ð
 Ôð 	Ø�JŠJ‰LŒLˆLàˆ	r   r4   rŒ   c                 ó†   — |dk    o;|t          | j        ¦  «        k     o#|dk    o|t          | j        |         ¦  «        k     S )Nr   )r–   rQ   )rF   r4   rŒ   s      r   Úis_constrainedzQRCode.is_constrained‚  sO   € à�1ŠHð -Ø•c˜$œ,Ñ'Ô'Ò'ð-à�q’ð-ð •c˜$œ, sÔ+Ñ,Ô,Ò,ð		
r   c                 ó  — t          d| j        dz
  ¦  «        D ]-}| j        |         d         �Œ|dz  dk    | j        |         d<   Œ.t          d| j        dz
  ¦  «        D ]-}| j        d         |         �Œ|dz  dk    | j        d         |<   Œ.d S )Nrˆ   r‰   rŠ   r   r‹   )rF   r�   rŽ   s      r   r€   zQRCode.setup_timing_patternŠ  s¬   € Ý�q˜$Ô,¨qÑ0Ñ1Ô1ð 	,ð 	,ˆAØŒ|˜AŒ˜qÔ!Ð-ØØ!" Q¡¨!¢ˆDŒL˜ŒO˜AÑÐå�q˜$Ô,¨qÑ0Ñ1Ô1ð 	,ð 	,ˆAØŒ|˜AŒ˜qÔ!Ð-ØØ!" Q¡¨!¢ˆDŒL˜ŒO˜AÑÐð	,ð 	,r   c                 óê  — t          j        | j        ¦  «        }t          t	          |¦  «        ¦  «        D ]¼}||         }t          t	          |¦  «        ¦  «        D ]•}||         }| j        |         |         �Œt          dd¦  «        D ]f}t          dd¦  «        D ]S}|dk    s|dk    s|dk    s|dk    s|dk    r|dk    rd| j        ||z            ||z   <   Œ=d| j        ||z            ||z   <   ŒTŒgŒ–Œ½d S )Néþÿÿÿé   rŠ   r   TF)r   Úpattern_positionrW   r}   r–   rQ   )rF   r¿   r|   r4   ÚjrŒ   r�   rŽ   s           r   r   z$QRCode.setup_position_adjust_pattern•  s4  € ÝÔ# D¤LÑ1Ô1ˆå•s˜3‘x”x‘”ð 	Cð 	CˆAà�a”&ˆCå�3˜s™8œ8‘_”_ð Cð C�à˜!”f�à”< Ô$ SÔ)Ð5Øå˜r 1™œð Cð C�Aå" 2 q™\œ\ð Cð C˜ð  šG˜GØ  Ašv˜vØ  Bšw˜wØ  Ašv˜vØ ! Q¢ ¨1°ª6¨6à=A˜DœL¨¨q©Ô1°#¸±'Ñ:Ð:à=B˜DœL¨¨q©Ô1°#¸±'Ñ:Ð:ðCðCðCð		Cð 	Cr   c                 óL  — t          j        | j        ¦  «        }t          d¦  «        D ]5}| o||z	  dz  dk    }|| j        |dz           |dz  | j        z   dz
  dz
  <   Œ6t          d¦  «        D ]5}| o||z	  dz  dk    }|| j        |dz  | j        z   dz
  dz
           |dz  <   Œ6d S )Né   r�   rÕ   rˆ   )r   ÚBCH_type_numberrW   r}   rQ   rh   )rF   r…   Úbitsr|   Úmods        r   r‚   zQRCode.setup_type_number²  sÜ   € ÝÔ# D¤LÑ1Ô1ˆå�r‘”ð 	Kð 	KˆAØ�(Ð5 ¨¡¨a¡°AÒ5ˆCØGJˆDŒL˜˜a™Ô   Q¡¨Ô);Ñ!;¸aÑ!?À!Ñ!CÑDÐDå�r‘”ð 	Kð 	KˆAØ�(Ð5 ¨¡¨a¡°AÒ5ˆCØGJˆDŒL˜˜Q™ Ô!3Ñ3°aÑ7¸!Ñ;Ô<¸QÀ!¹VÑDÐDð	Kð 	Kr   c                 óF  — | j         dz  |z  }t          j        |¦  «        }t          d¦  «        D ]]}| o||z	  dz  dk    }|dk     r|| j        |         d<   Œ(|dk     r|| j        |dz            d<   ŒB|| j        | j        dz
  |z            d<   Œ^t          d¦  «        D ]i}| o||z	  dz  dk    }|dk     r|| j        d         | j        |z
  dz
  <   Œ3|dk     r|| j        d         d|z
  dz
  dz   <   ŒS|| j        d         d|z
  dz
  <   Œj| | j        | j        dz
           d<   d S )NrÕ   é   r�   r‰   rˆ   é	   )rX   r   ÚBCH_type_infor}   rQ   rh   )rF   r…   r.   r   rÛ   r|   rÜ   s          r   r�   zQRCode.setup_type_info½  ss  € ØÔ%¨Ñ*¨lÑ:ˆÝÔ! $Ñ'Ô'ˆõ �r‘”ð 		Cð 		CˆAà�(Ð5 ¨¡¨a¡°AÒ5ˆCà�1ŠuˆuØ%(�”˜Q” Ñ"Ð"Ø�Q’�Ø),�”˜Q ™UÔ# AÑ&Ð&à?B�”˜TÔ/°"Ñ4°qÑ8Ô9¸!Ñ<Ð<õ �r‘”ð 		2ð 		2ˆAà�(Ð5 ¨¡¨a¡°AÒ5ˆCà�1ŠuˆuØ>A�”˜Q” Ô 2°QÑ 6¸Ñ :Ñ;Ð;Ø�Q’�Ø25�”˜Q”  Q¡¨¡
¨Q¡Ñ/Ð/à.1�”˜Q”  Q¡¨¡
Ñ+Ð+ð 7;°(ˆŒ�TÔ'¨!Ñ+Ô,¨QÑ/Ð/Ð/r   c                 óÐ  — d}| j         dz
  }d}d}t          j        |¦  «        }t          |¦  «        }t	          | j         dz
  dd¦  «        D ]˜}	|	dk    r|	dz  }	|	|	dz
  f}
	 |
D ]`}| j        |         |         €Kd}||k     r||         |z	  dz  dk    } |||¦  «        r| }|| j        |         |<   |dz  }|dk    r|dz  }d}Œa||z  }|dk     s| j         |k    r	||z  }| }nŒƒŒ™d S )	Nr‡   r�   r)   r   rÔ   r‰   TF)rh   r   Ú	mask_funcr–   r}   rQ   )rF   r   r.   Úincr4   ÚbitIndexÚ	byteIndexrâ   Údata_lenrŒ   Ú	col_rangerŽ   Údarks                r   r„   zQRCode.map_dataÜ  s\  € ØˆØÔ  1Ñ$ˆØˆØˆ	å”N <Ñ0Ô0ˆ	å�t‘9”9ˆå˜Ô+¨aÑ/°°BÑ7Ô7ð !	ð !	ˆCà�aŠxˆxØ�q‘�à˜c A™g˜ˆIðà"ð )ð )�Aà”| CÔ(¨Ô+Ð3à$˜à$ xÒ/Ð/Ø%)¨)¤_¸Ñ%@ÀAÑ$EÈ!Ò#K˜Dà$˜9 S¨!Ñ,Ô,ð ,Ø'+ 8˜Dà/3˜œ SÔ)¨!Ñ,Ø  A™˜à# rš>˜>Ø%¨™N˜IØ'(˜Høà�s‘
�à˜’7�7˜dÔ0°CÒ7Ð7Ø˜3‘J�CØ˜$�CØð5ð4 ðC!	ð !	r   c                 ót  — | j         €|                      ¦   «          | j        s| j        S t	          | j        ¦  «        | j        dz  z   }dg|z  g| j        z  }dg| j        z  }| j        D ];}|                     |t          t          t                   |¦  «        z   |z   ¦  «         Œ<|dg|z  g| j        z  z  }|S )z¦
        Return the QR Code as a multidimensional array, including the border.

        To return the array without a border, set ``self.border`` to 0 first.
        NrŠ   F)	ri   r   rZ   rQ   r–   ro   r   r   rK   )rF   Úwidthr°   Úx_borderÚmodules        r   Ú
get_matrixzQRCode.get_matrix	  sÇ   € ð Œ?Ð"Ø�IŠI‰KŒKˆKàŒ{ð 	 Ø”<Ðå�D”LÑ!Ô! D¤K°!¡OÑ3ˆØ�˜%‘Ð  4¤;Ñ.ˆØ�7˜Tœ[Ñ(ˆØ”lð 	Hð 	HˆFØ�KŠK˜¥4­­T¬
°FÑ#;Ô#;Ñ;¸hÑFÑGÔGÐGÐGØ�%�˜5‘Ð! D¤KÑ/Ñ/ˆàˆr   c                 ó  — g }t          |dz
  |dz   ¦  «        D ]d}t          |dz
  |dz   ¦  «        D ]K}|                     |                      ||¦  «        ot          | j        |         |         ¦  «        ¦  «         ŒLŒet          |Ž S )Nr�   rŠ   )r}   ro   rÑ   rK   rQ   r9   )rF   r4   rŒ   Úcontextr�   rŽ   s         r   Úactive_with_neighborszQRCode.active_with_neighbors  sœ   € Ø ˆÝ�s˜Q‘w  a¡Ñ(Ô(ð 	Wð 	WˆAÝ˜3 ™7 C¨!¡GÑ,Ô,ð Wð W�Ø—’˜t×2Ò2°1°aÑ8Ô8ÐU½TÀ$Ä,ÈqÄ/ÐRSÔBTÑ=UÔ=UÑVÔVÐVÐVðWå" GÐ,Ð,r   )rC   N)rk   )Tr2   )NFF)(rH   rI   rJ   ÚModulesTyperL   rR   r   r!   r   ÚERROR_CORRECT_Mr	   rM   r]   ÚpropertyrW   Úsetterr.   r\   r   r   rv   r~   r_   rw   rª   rÀ   r   r   r   rO   rK   rÑ   r€   r   r‚   r�   r„   rí   r9   rð   r   r   r   r   r   N   sÜ  € € € € € € ØÐÐÑØ"€Hˆh�sŒmÐ"Ð"Ñ"ð Ø"Ô2ØØØ6:Øðð ð    \Ô 2Ô3ðð ð ð ð. ð(˜ð (ð (ð (ñ „Xð(ð
 „^ðð ð ñ „^ðð ð"ð "ñ „Xð"ð Ôð%ð %ñ Ôð%ðð ð ðð ð ð ð 4ð 4ð 4ð 4ð5ð 5ð 5ð8;ð ;ð ;ð(ð ð ð ð<ð ð ð$ð ð ð ð<)ð )ð )ð )ðV ðð ¨°¬ð È<ð ð ð ñ „Xðð à7;ðð Ø!Ð"3Ô4ðà	ðð ð ñ „Xðð
&ð &ð &ð &ðR
 #ð 
¨Cð 
°Dð 
ð 
ð 
ð 
ð	,ð 	,ð 	,ðCð Cð Cð:	Kð 	Kð 	Kð;ð ;ð ;ð>+ð +ð +ðZð ð ð*-¨ð -°3ð -Ð;Nð -ð -ð -ð -ð -ð -r   r   r2   )%r£   Úbisectr   Útypingr   r   r   r   r   r	   r
   r   r   Útyping_extensionsr   Úqrcoder   r   r   Úqrcode.image.baser   Úqrcode.image.purer   rK   rñ   r   r!   rL   r   r%   r'   r/   r7   r9   rM   rO   r   r   r   r   ú<module>rû      s  ðØ 
€
€
€
€
Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð &Ð %Ð %Ð %Ð %Ð %à .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø (Ð (Ð (Ð (Ð (Ð (à�4˜ œÔ'Ô(€à02Ð �t˜C Ð,Ô-Ð 2Ð 2Ñ 2ðð ð ð ðSð Sð Sð

ð 
ð 
ðUð Uð Uð!ð !ð !ðð ð ð ð ˜*ñ ô ð ð ˆw�~¨YÐ7Ñ7Ô7€Ø�GÐ/°yÐAÑAÔAÐ ðU-ð U-ð U-ð U-ð U-ˆW�\Ô"ñ U-ô U-ð U-ð U-ð U-r   