Ë
    ¡ëiA=  ã                   ó~   — d dl mZ dZdZd dlmZ d dlmZ d„ Z G d„ de«      Z	d	„ Z
d
„ Zd„ Zd„ Zedk(  r e«        yy)é    )Úprint_functionz3.3.0)ÚUSPS_4State)ÚBarcode)ÚasNativec                 óz   — t        | «      }|dd |dd j                  «       z   }|j                  d«      r|dd }|S )znormalized hexNé   Úléÿÿÿÿ)ÚhexÚlowerÚendswith)ÚiÚrs     úa/var/www/html/chat/reports/venv/lib/python3.12/site-packages/reportlab/graphics/barcode/usps4s.pyÚnhexr   
   sA   € äˆA‹€AØ	ˆ"ˆ1ˆˆa��ˆe�k‰k‹mÑ€AØ‡z�z�#„˜A˜c˜r˜F˜Ø€Hó    c                   óD  — e Zd ZdZdZdZdZdZ	  edddd¬«      Z	 edd	dd	¬
«      Z
 edddd¬«      Zd>d„Zd„ Zd„ Z ee«      Zd„ Z ed„ e«      Zd„ Z ed„ e«      Zd„ Z ed„ e«      Zd„ Z ed„ e«      Zd„ Z ed„ e«      Zd„ Z ed„ e«      Zd„ Z ee«      Zd „ Z ee«      Zd!„ Z ee«      Zd"„ Z ee«      Zd#„ Z ee«      Zd$„ Z ee«      Zd%Zd&Z ed'„ «      Z ed(„ «      Z ed)„ «       Z!e!jD                  d*„ «       Z!ed+„ «       Z#e#jD                  d,„ «       Z#ed-„ «       Z$e$jD                  d.„ «       Z$ ed/„ «      Z% ed0„ «      Z&ed1„ «       Z'ed2„ «       Z(e'jD                  d3„ «       Z'e(jD                  d4„ «       Z(d5„ Z)d6„ Z*d?d7„Z+d8„ Z,d9„ Z- ee-d:„ «      Z-d;„ Z.d@d<„Z/y=)Ar   zC USPS 4-State OneView (TM) barcode. All info from USPS-B-3200A
    é   é   r   )g      °?g…ëQ¸µ?)g+‡ÙÎ÷“?gÉv¾Ÿ/�?)ÚFÚTÚAÚD)g      °¿g…ëQ¸µ¿)g+‡ÙÎ÷“¿gÉv¾Ÿ/�¿)r   r   r   r   )g¸…ëQ¸Ž?gš™™™™™™?)g”ö_˜L¥?gš™™™™™©?)ç      À?r   )çyé&1¬œ?r   )ÚwidthÚpitchÚhczÚvczc                 óZ  — | j                  «        t        |t        «      rt        |«      n
t	        |«      }|s/t        |«      dv r|d d |dd  }}n;t        dt        |«      z  «      ‚t        |«      dvrt        dt        |«      z  «      ‚|| _        || _         | j                  di |¤Ž y )N)é   é   é   é   r!   z;value+routing length must be 20, 25, 29 or 31 digits not %d)é   é	   r   z/routing length must be 5, 9 or 11 digits not %d© )
Ú_initÚ
isinstanceÚintÚstrr   ÚlenÚ
ValueErrorÚ	_trackingÚ_routingÚ_setKeywords)ÚselfÚvalueÚroutingÚkwds       r   Ú__init__zUSPS_4State.__init__?   s¤   € Ø�
‰
ŒÜ(¨¬sÔ3”�E”
¼À%»ˆÙä�5‹z˜]Ñ*Ø!& s¨ ¨U°2°3¨Z�w‘ä Ð!^ÔadÐejÓakÑ!kÓlÐlÜ�‹\ Ñ)ÜÐNÔQTÐU\ÓQ]Ñ]Ó^Ð^ØˆŒØˆŒØˆ×ÑÑ ˜CÓ r   c                 ó<   — d | _         d | _        d | _        d | _        y ©N)Ú_bvalueÚ
_codewordsÚ_charactersÚ	_barcodes©r1   s    r   r(   zUSPS_4State._initN   s   € ØˆŒØˆŒØˆÔØˆ�r   c                 ó:   — ||    }d|d   d|z
  z  ||d   z  z   z  S )NéH   r   r   r'   )Úkindr   ÚsÚVs       r   ÚscalezUSPS_4State.scaleT   s/   € Øˆd‰GˆØ�1�Q‘4˜˜1™‘:˜a  !¡™fÑ$Ñ%Ð%r   c                 ó2   — | j                  «        || _        y r7   )r(   r.   )r1   Útrackings     r   rD   zUSPS_4State.trackingY   s   € Ø�
‰
ŒØ!ˆ�r   c                 ó   — | j                   S r7   )r.   r<   s    r   ú<lambda>zUSPS_4State.<lambda>\   ó
   €  T§^¡^€ r   c                 ó2   — | j                  «        || _        y r7   )r(   r/   )r1   r3   s     r   r3   zUSPS_4State.routing^   s   € Ø�
‰
ŒØˆ�r   c                 ó   — | j                   S r7   )r/   r<   s    r   rF   zUSPS_4State.<lambda>a   s
   €  D§M¡M€ r   c                 óH   — d | _         t        t        d|«      d«      | _        y )Nr   r   )Ú_sizedÚminÚmaxÚ
_widthSize©r1   r2   s     r   Ú	widthSizezUSPS_4State.widthSizec   s   € ØˆŒÜœc ! E›l¨1Ó-ˆ�r   c                 ó   — | j                   S r7   )rN   r<   s    r   rF   zUSPS_4State.<lambda>f   s
   €  d§o¡o€ r   c                 ó    — d | _         || _        y r7   )rK   Ú_heightSizerO   s     r   Ú
heightSizezUSPS_4State.heightSizeh   s   € ØˆŒØ ˆÕr   c                 ó   — | j                   S r7   )rS   r<   s    r   rF   zUSPS_4State.<lambda>k   s   €  t×'7Ñ'7€ r   c                 ó    — d | _         || _        y r7   )rK   Ú	_fontSizerO   s     r   ÚfontSizezUSPS_4State.fontSizem   s   € ØˆŒØˆ�r   c                 ó   — | j                   S r7   )rW   r<   s    r   rF   zUSPS_4State.<lambda>p   rG   r   c                 ó    — d | _         || _        y r7   )rK   Ú_humanReadablerO   s     r   ÚhumanReadablezUSPS_4State.humanReadabler   s   € ØˆŒØ#ˆÕr   c                 ó   — | j                   S r7   )r[   r<   s    r   rF   zUSPS_4State.<lambda>u   s   € ¨$×*=Ñ*=€ r   c                 óŽ  — | j                   }|sú| j                  }t        |«      }	 |dk(  rd}nB|dk(  rt        |«      dz   }n.|dk(  rt        |«      dz   }n|dk(  rt        |«      dz   }nt        ‚| j
                  }|dd	 }	 |d
z  }|t        |d   «      z  }|dz  }|t        |d   «      z  }d	}dD ]L  \  }}|}	||z  }||	| }	 t        |«      |k7  rt        ‚t        |«      D ]  }	|d
z  }|t        ||	   «      z  }Œ ŒN || _         |S #  t	        d|z  «      ‚xY w#  t	        d|z  «      ‚xY w#  t	        d|||fz  «      ‚xY w)aè  convert the 4 state string values to binary
        >>> print(nhex(USPS_4State('01234567094987654321','').binary))
        0x1122103b5c2004b1
        >>> print(nhex(USPS_4State('01234567094987654321','01234').binary))
        0xd138a87bab5cf3804b1
        >>> print(nhex(USPS_4State('01234567094987654321','012345678').binary))
        0x202bdc097711204d21804b1
        >>> print(nhex(USPS_4State('01234567094987654321','01234567891').binary))
        0x16907b2a24abc16a2e5c004b1
        r   r%   r   r&   i¡† r   i¡Pœ;z@Problem converting %s, routing code must be 0, 5, 9 or 11 digitsr   é
   z:Problem converting %s, barcode identifier must be 2 digits))zspecial servicesé   )zcustomer identifieré   )zsequence numberr&   z+Problem converting %s, %s must be %d digits)r8   r3   r,   r*   r-   rD   Úrange)
r1   r2   r3   ÚnrD   Úsvaluer   ÚnameÚndÚjs
             r   ÚbinaryzUSPS_4State.binaryw   s¦  € ð —‘ˆÙØ—l‘lˆGÜ�G“ˆAðoØ�a’4Ø‘EØ˜’TÜ ›L¨™N‘EØ˜’TÜ ›L¨Ñ/‘EØ˜’UÜ ›L¨Ñ3‘Eä$Ð$ð —}‘}ˆHØ˜a �]ˆFðhØ˜‘�Øœ˜V A™Y›Ñ'�Ø˜‘
�Øœ˜V A™Y›Ñ'�ð ˆAØeò 
g‘��RØ�Ø�R‘�Ø! ! A˜�ðgÜ˜6“{ B’¬jÐ(8Ü" 2›Yò 0˜Ø ™˜Ø¤ V¨A¡Y£Ñ/™ñ0ð
gð !ˆDŒLØˆøð5oÜ Ð!cÐfmÑ!mÓnÐnûðhÜ Ð!]Ð`fÑ!fÓgÐgûðgÜ$Ð%RÐV\Ð]aÐbdÐUeÑ%eÓfÐfús$   §A
D Â,D Ã:D1ÄDÄD.Ä1Ec                 óT  — | j                   �s| j                  }t        |d«      \  }}t        |d«      \  }}t        |d«      \  }}t        |d«      \  }}t        |d«      \  }}t        |d«      \  }}t        |d«      \  }}	t        |d«      \  }}
t        |d«      \  }}d|cxk  rdk  s!n J dt        t	        |«      «      ›d|›�«       ‚t        |«      | _        | j                  dz  r|dz  }|d	z  }t        t        t        |||
|	||||||f
«      «      | _         | j                   S )
z¶convert binary value into codewords
        >>> print(USPS_4State('01234567094987654321','01234567891').codewords)
        (673, 787, 607, 1022, 861, 19, 816, 1294, 35, 602)
        i|  iU  r   i’  zimproper value z passed to _2codewords A-->é   i“  r   )	r9   rh   Údivmodr   r*   Ú_crc11Ú_fcsÚtupleÚmap)r1   r2   r   ÚJÚIÚHÚGr   ÚEr   ÚCÚBs               r   Ú	codewordszUSPS_4State.codewords®   s  € ð
 �‹Ø—K‘KˆEÜ˜% Ó$‰DˆAˆqÜ˜!˜D“>‰DˆAˆqÜ˜!˜D“>‰DˆAˆqÜ˜!˜D“>‰DˆAˆqÜ˜!˜D“>‰DˆAˆqÜ˜!˜D“>‰DˆAˆqÜ˜!˜D“>‰DˆAˆqÜ˜!˜D“>‰DˆAˆqÜ˜!˜D“>‰DˆAˆqØ�a”9˜”9ÑdÔRUÔVYÐZ_ÓV`ÕRaÑbcÐdÓd�9Ü˜u›ˆDŒIØ�y‰y˜Š~˜q C™x˜qØ�‰FˆAÜ#¤C¬¨Q¨q°°1°Q°q¸¸1¸Q¸qÐ,AÓ$BÓCˆDŒOØ�‰Ðr   c                 ód   — t        dd«      | j                  _        | j                  j                  S )Nr%   é  )Ú_initNof13TableÚ	__class__Útable1r<   s    r   r|   zUSPS_4State.table1Ç   s%   € Ü /°°$Ó 7ˆ�‰ÔØ�~‰~×$Ñ$Ð$r   c                 ód   — t        dd«      | j                  _        | j                  j                  S )Nr   éN   )rz   r{   Útable2r<   s    r   r   zUSPS_4State.table2Ì   s%   € Ü /°°"Ó 5ˆ�‰ÔØ�~‰~×$Ñ$Ð$r   c                 óJ  — | j                   sŒ| j                  }| j                  }g }|j                  }| j                  }| j
                  }t        d«      D ]0  }||   }|dk  r||   }	n||dz
     }	||z	  dz  r|	 dz  }	 ||	«       Œ2 t        |«      | _         | j                   S )zÐ convert own codewords to characters
        >>> print(' '.join(hex(c)[2:] for c in USPS_4State('01234567094987654321','01234567891').characters))
        dcb 85c 8e4 b06 6dd 1740 17c6 1200 123f 1b2b
        r_   i  ry   r   iÿ  )r:   rw   rm   Úappendr|   r   rb   rn   )
r1   rw   Úfcsru   ÚaCr|   r   r   ÚcwÚcs
             r   Ú
characterszUSPS_4State.charactersÑ   s¯   € ð
 ×ÒØŸ™ˆIØ—)‘)ˆCØˆAØ—‘ˆBØ—[‘[ˆFØ—[‘[ˆFÜ˜2“Yò �Ø˜q‘\�Ø�t’8Ø˜r™
‘Aà˜r $™w™�AØ˜‘F˜A’:Ø˜˜V™�AÙ�1•ðô  % Q›xˆDÔØ×ÑÐr   c                 ó  — | j                   su| j                  }g }|j                  }| j                  }| j                  D ]*  \  }}}} ||||   |z	  dz  d||   |z	  dz  z  z      «       Œ, dj                  |«      | _         | j                   S )z×Get 4 state bar codes for current routing and tracking
        >>> print(USPS_4State('01234567094987654321','01234567891').barcodes)
        AADTFFDFTDADTAADAATFDTDDAAADDTDTTDAFADADDDTFFFDDTTTADFAAADFTDAADA
        r   r   Ú )r;   r†   r�   Ú
_bits2barsÚtable4Újoin)	r1   ru   rv   ÚaBÚ	bits2barsÚdcÚdbÚacÚabs	            r   ÚbarcodeszUSPS_4State.barcodesê   s�   € ð
 �~Š~Ø—‘ˆAØˆAØ—‘ˆBØŸ™ˆIØ#Ÿ{™{ò A‘��2�b˜Ù�9˜q ™u b™y¨!™m¨Q°°2±¸±¸A±Ñ->Ñ>Ñ?Õ@ðAàŸW™W Q›ZˆDŒNØ�~‰~Ðr   )A)é   r   é   r`   )r   r_   r   r   )r&   é   r   é   )r%   r%   ra   r   )r–   r&   r`   r   )r   r   r%   r•   )r   r%   r   r–   )r”   r”   r&   r   )ra   r`   r–   r_   )r`   r&   r“   ra   )r%   r   r   r”   )r–   r%   r   r•   )r&   r_   r   r   )r“   r   ra   r“   )r`   ra   r”   r&   )r   r`   r–   ra   )ra   r”   r   r“   )r   r   r&   r&   )r“   r_   r%   r   )r”   r   r`   r–   )ra   r   r   r”   )r–   r   r   r   )r&   r–   r`   r•   )r   ra   r“   r“   )r%   r   r”   r_   )r   r•   ra   r&   )r“   r`   r–   r   )r%   r–   r&   r“   )r”   ra   r   r_   )r`   r”   r   r%   )r–   r”   r%   r“   )r“   r   r   r&   )ra   r   r&   ra   )r   ra   r”   r–   )r   r   r`   r   )r%   r&   r–   r•   )r”   r   ra   r   )r&   r%   r“   r”   )r`   r`   r   r   )r   r“   r   r   )r   r`   r”   r   )ra   r_   r`   r%   )r–   r“   r&   r”   )r   r   r%   ra   )r   r–   r“   r•   )r”   r   r–   r   )r%   r_   r`   r   )r&   r`   r   r&   )ra   r%   r   r”   )r“   r–   r   r“   )r%   r   r”   r%   )r   r`   r   r_   )ra   r•   r&   r   )r`   r   r   ra   )r–   r–   r“   r&   )r%   r”   r   r   )r   r%   r   r   )r&   r   r”   r•   )r–   r`   ra   ra   )r“   r   r`   r“   )r”   r“   r“   r%   )r   r•   r   r   )r   r&   r&   r   )ra   r–   r%   r`   )r`   r_   r–   r   ©r   r   r   r   c                 óP   — | j                  d| j                  | j                  «      S )Nr   )rB   Ú
dimensionsÚ
widthScaler<   s    r   rF   zUSPS_4State.<lambda>  s   € °·
±
¸5ÀÇÁÐQU×Q`ÑQ`Ó0a€ r   c                 óP   — | j                  d| j                  | j                  «      S )Nr   )rB   r™   ÚheightScaler<   s    r   rF   zUSPS_4State.<lambda>  s   € ¨d¯j©j¸¸t¿¹Èt×O_ÑO_Ó.`€ r   c                 óŠ   — d| j                   v r| j                   d   S | j                  d| j                  | j                  «      S )NÚ	_barWidthr   ©Ú__dict__rB   r™   rš   r<   s    r   ÚbarWidthzUSPS_4State.barWidth  s8   € à˜$Ÿ-™-Ñ'Ø—=‘= Ñ-Ð-Ø�z‰z˜' $§/¡/°$·/±/ÓBÐBr   c                 óz   — | j                   d   \  }}dt        t        |dz  |«      |«      z  | j                  d<   y )Nr   r>   ç      R@rž   ©r™   rL   rM   r    ©r1   r2   rc   Úxs       r   r¡   zUSPS_4State.barWidth  s9   € à�‰˜wÑ'‰ˆˆ1Ø%'¬¬C°°d±
¸1Ó,=¸aÓ(@Ñ%@ˆ�‰�kÒ"r   c                 óŠ   — d| j                   v r| j                   d   S | j                  d| j                  | j                  «      S )NÚ_pitchr   rŸ   r<   s    r   r   zUSPS_4State.pitch  s8   € à�t—}‘}Ñ$Ø—=‘= Ñ*Ð*Ø�z‰z˜' $§/¡/°$·/±/ÓBÐBr   c                 óz   — | j                   d   \  }}dt        t        |dz  |«      |«      z  | j                  d<   y )Nr   r>   r£   r¨   r¤   r¥   s       r   r   zUSPS_4State.pitch!  s9   € à�‰˜wÑ'‰ˆˆ1Ø"$¤S¬¨U°4©Z¸Ó):¸1Ó%=Ñ"=ˆ�‰�hÒr   c                 óÚ   — d| j                   v r| j                   d   S | j                  d| j                  | j                  «      | j                  d| j                  | j                  «      z
  S )NÚ
_barHeightr   )r    rB   Útopsrœ   Úbottomsr<   s    r   Ú	barHeightzUSPS_4State.barHeight&  sW   € à˜4Ÿ=™=Ñ(Ø—=‘= Ñ.Ð.Ø�z‰z˜#˜dŸi™i¨×(8Ñ(8Ó9¸D¿J¹JÀsÈ4Ï<É<ÐX\×XhÑXhÓ<iÑiÐir   c                 ó  — | j                   d   d   | j                  d   d   z
  }| j                   d   d   | j                  d   d   z
  }dt        t        |dz  |«      |«      z  x}| j                  d<   ||z
  ||z
  z  | _        y )Nr   r   r   r>   r£   r«   )r¬   r­   rL   rM   r    rT   r¥   s       r   r®   zUSPS_4State.barHeight,  sŠ   € à�I‰I�c‰N˜1Ñ §¡¨SÑ 1°!Ñ 4Ñ4ˆØ�I‰I�c‰N˜1Ñ §¡¨SÑ 1°!Ñ 4Ñ4ˆØ.0´´S¸¸t¹ÀAÓ5FÀqÓ1IÑ.IÐIˆ�—‘˜lÑ+Ø  1™9 q¨¡sÑ+ˆ�r   c                 óB   — t        dt        d| j                  «      «      S ©Nr   r   )rL   rM   rP   r<   s    r   rF   zUSPS_4State.<lambda>3  s   € ¤s¨1¬S°°4·>±>Ó-BÓ'C€ r   c                 óB   — t        dt        d| j                  «      «      S r±   )rL   rM   rT   r<   s    r   rF   zUSPS_4State.<lambda>4  s   € ¬¨A¬c°!°D·O±OÓ.DÓ(E€ r   c                 ó:   — | j                  «        | j                  S r7   )ÚcomputeSizeÚ_widthr<   s    r   r   zUSPS_4State.width6  s   € à×ÑÔØ�{‰{Ðr   c                 ó:   — | j                  «        | j                  S r7   )r´   Ú_heightr<   s    r   ÚheightzUSPS_4State.height;  s   € à×ÑÔØ�|‰|Ðr   c                  ó   — y r7   r'   ©r1   Úvs     r   r   zUSPS_4State.widthA  ó   € àr   c                  ó   — y r7   r'   rº   s     r   r¸   zUSPS_4State.heightD  r¼   r   c                 óx  — t        | dd «      s­| j                  }| j                  }| j                  }| j                  }| j
                  }| j                  }| j                  }d|z  |z   d|z  z   | _        d|z  |z   | _	        | j                  r%| xj                  | j                  dz  |z   z  c_	        d| _        y y )NrK   r   é@   g333333ó?T)Úgetattrrš   rœ   r®   r¡   r   ÚhorizontalClearZoneÚverticalClearZonerµ   r·   r\   rX   rK   )r1   ÚwsÚhsr®   r¡   r   r   r   s           r   r´   zUSPS_4State.computeSizeH  s¬   € Ü�t˜H TÔ*Ø—‘ˆBØ×!Ñ!ˆBØŸ™ˆIØ—}‘}ˆHØ—J‘JˆEØ×*Ñ*ˆCØ×(Ñ(ˆCØ˜C™% (Ñ*¨R°©XÑ5ˆDŒKØ˜S™5 ™?ˆDŒLØ×!Ò!Ø—’ §¡¨cÑ 1°#Ñ 5Ñ5•ØˆD�Kð +r   c                 óR   — | j                  «        | j                  | j                  fS r7   )r´   r   r¸   )r1   ÚaWÚaHs      r   ÚwrapzUSPS_4State.wrapW  s!   € Ø×ÑÔØ�z‰z˜4Ÿ;™;Ð&Ð&r   c                 óÀ   — i }| j                   }dD ]J  }| j                  || j                  |«      |z   }|| j                  || j                  |«      |z   |z
  f||<   ŒL |S )Nr—   )rœ   rB   r­   r¬   )r1   Úy0ÚvInforÄ   ÚbÚys         r   Ú_getBarVInfozUSPS_4State._getBarVInfo[  sl   € ØˆØ×ÑˆØ"ò 	;ˆAØ—
‘
˜1˜TŸ\™\¨"Ó-¨bÑ0ˆAØ˜Ÿ™ A d§i¡i°Ó3°BÑ6¸Ñ:Ð:ˆE�!ŠHð	;ð ˆr   c                 óR  — | j                  «        | j                  }| j                  }| j                  }|}|| j                  dz  z   }| j
                  }| j                  |«      }| j                  D ]#  }||   \  }	}
| j                  ||	||
«       ||z  }Œ% | j                  «        y )Ng      à?)
r´   rÁ   rÂ   r¡   r®   r   rÎ   r’   ÚrectÚdrawHumanReadable)r1   r   r   Úbwr¦   rÊ   ÚdwrË   rÌ   ÚybÚhbs              r   ÚdrawzUSPS_4State.drawc  s§   € Ø×ÑÔØ×&Ñ&ˆØ×$Ñ$ˆØ�]‰]ˆØˆØ�—‘ Ñ#Ñ#ˆØ�Z‰ZˆØ×!Ñ! "Ó%ˆØ—‘ò 	ˆAØ˜1‘X‰FˆB�Ø�I‰I�a˜˜2˜bÔ!Ø�‰G‰Að	ð 	×ÑÕ r   c                 ó�   — | j                   }| j                  }|xr |fxs d}dj                  |dd |dd |dd |dd  f|z   «      S )Nr'   ú r   r   r%   r   )rD   r3   r‹   )r1   rD   r3   s      r   r2   zUSPS_4State.valuer  s[   € Ø—=‘=ˆØ—,‘,ˆØÒ(˜w˜jÒ.¨BˆØ�x‰x˜ ! A˜ x°°! }°X¸aÀ°^ÀHÈRÈSÀMÐRÐSZÑZÓ[Ð[r   c                 ó:   — | j                   j                  d|«      S )NrD   )r    Ú__setitem__rO   s     r   rF   zUSPS_4State.<lambda>w  s   € ¨d¯m©m×.GÑ.GÈ
ÐSXÓ.Y€ r   c                 óì   — | j                   rh| j                  }| j                  }| j                  }| j                  }| j
                  d|z  z   d|z  z   }| j                  ||| j                  ||«       y y )Nr   gš™™™™™É?)r\   rÁ   rÂ   ÚfontNamerX   r®   Úannotater2   )r1   r   r   rÜ   rX   rÍ   s         r   rÑ   zUSPS_4State.drawHumanReadabley  sk   € Ø×ÒØ×*Ñ*ˆCØ×(Ñ(ˆCØ—}‘}ˆHØ—}‘}ˆHØ—‘˜q ™uÑ$ S¨¡\Ñ1ˆAØ�M‰M˜#˜a §
¡
¨8°HÕ=ð r   c           	      ó<   — t        j                  | |||||d¬«       y )NÚstart)Úanchor)r   rÝ   )r1   r¦   rÍ   ÚtextrÜ   rX   rà   s          r   rÝ   zUSPS_4State.annotate‚  s   € Ü×Ñ˜˜a  $ x°ÀÖHr   N)Ú01234567094987654321rˆ   )r   )Úmiddle)0Ú__name__Ú
__module__Ú__qualname__Ú__doc__rN   rS   rW   r[   Údictr¬   r­   r™   r5   r(   rB   ÚstaticmethodrD   Úpropertyr3   rP   rT   rX   r\   rh   rw   r|   r   r†   r’   rŠ   r‰   rÁ   rÂ   r¡   Úsetterr   r®   rš   rœ   r   r¸   r´   rÈ   rÎ   rÖ   r2   rÑ   rÝ   r'   r   r   r   r      s°  „ ñà€JØ€KØ€IØ€NØÙØØØØô	ˆñ Ø!Ø!Ø!Ø!ô	ˆñ Ø"Ø#ØØô	ˆ
ó4!òò&ñ ˜Ó€Eò"ñ Ñ3°HÓ=€Hò ñ Ñ1°'Ó:€Gò.ñ Ñ5°iÓ@€Iò!ñ Ñ7¸
ÓC€Jòñ Ñ3°HÓ=€Hò$ñ Ñ=¸mÓL€Mò4ñj �fÓ€Fòñ, ˜Ó#€Iò%ñ �fÓ€Fò%ñ �fÓ€Fò ñ. ˜*Ó%€Jòñ ˜Ó!€Hð€Fð$ !€JÙ"Ñ#aÓbÐÙ Ñ!`ÓaÐàñCó ðCð
 ‡_�_ñAó ðAð ñCó ðCð
 ‡\�\ñ>ó ð>ð ñjó ðjð
 ×Ññ,ó ð,ñ ÑCÓD€JÙÑEÓF€Kàñó ðð ñó ðð
 ‡\�\ñó ðà‡]�]ñó ðòò'óò!ò\ñ
 �UÑYÓZ€Eò>ôIr   r   c                 ó˜  — t        t        | «      «      dd }ddt        |«      z
  z  |z   }d}d}t        |dd d«      dz  }t        dd	«      D ]"  }||z  d
z  r	|dz  |z  }n|dz  }|dz  }|dz  }Œ$ t        ddd«      D ]G  }t        |||dz    d«      dz  }t        d	«      D ]"  }||z  d
z  r	|dz  |z  }n|dz  }|dz  }|dz  }Œ$ ŒI |S )aV  
    >>> usps = [USPS_4State('01234567094987654321',x).binary for x in ('','01234','012345678','01234567891')]
    >>> print(' '.join(nhex(x) for x in usps))
    0x1122103b5c2004b1 0xd138a87bab5cf3804b1 0x202bdc097711204d21804b1 0x16907b2a24abc16a2e5c004b1
    >>> print(' '.join(nhex(_crc11(x)) for x in usps))
    0x51 0x65 0x606 0x751
    r   NÚ0é   i5  iÿ  é   r%   r–   rj   r   r`   )r   r*   r,   rb   )r2   ÚhexbytesÚgpr‚   ÚdatarÌ   r¦   s          r   rl   rl   …  s  € ô ”C˜“JÓ  Ð#€HØ�B”s˜8“}Ñ$Ñ% hÑ.€HØ	€BØ
€CÜˆx˜˜ˆ|˜BÓ Ñ"€DÜ�1�Q‹Zò ˆØ�$‰J˜ÒØ˜‘6˜2‘+‰Cà�q‘&ˆCØˆu‰ˆØ�‰
‰ðô �1�T˜!‹_ò ˆÜ�8˜A˜a ™c�? 2Ó&¨Ñ)ˆÜ�q“ò 	ˆAØ�d‘
˜EÒ!Ø˜A‘v˜r‘k‘à˜1‘f�Ø�5‰LˆCØ�Q‰J‰Dñ	ðð €Jr   c                 óN   — d}t        d«      D ]  }|dz  }|| dz  z  }| dz  } Œ |S )zureverse unsigned 13 bit number
    >>> print(_ru13(7936), _ru13(31), _ru13(47), _ru13(7808))
    31 7936 7808 47
    r   é   r   )rb   )r   r   r¦   s      r   Ú_ru13rõ   ¥  sB   € ð
 	
€AÜ�2‹Yò ˆØ	ˆa‰ˆØ	ˆQ�‰U‰
ˆØ	ˆa‰‰ðð €Hr   c                 ó&  — |dgz  }d}|dz
  }t        d«      D ]]  }d}t        d«      D ]  }||d|z  z  dk7  z  }Œ || k7  rŒ)t        |«      }||k  rŒ:||k(  r|||<   |dz  }ŒJ|||<   |dz  }|||<   |dz  }Œ_ ||dz   k(  sJ d|dz   || fz  «       ‚|S )a,  create and return table of 13 bit values with N bits on
    >>> T = _initNof13Table(5,1287)
    >>> print(' '.join('T[%d]=%d' % (i, T[i]) for i in (0,1,2,3,4,1271,1272,1284,1285,1286)))
    T[0]=31 T[1]=7936 T[2]=47 T[3]=7808 T[4]=55 T[1271]=6275 T[1272]=6211 T[1284]=856 T[1285]=744 T[1286]=496
    Nr   r   i    rô   z!u+1(%d)!=l(%d) for %d of 13 table)rb   rõ   )	ÚNÚlenTr   r	   Úur…   ÚbcrÌ   r   s	            r   rz   rz   ±  sâ   € ð 	ˆdˆV‰€AØ	€AØˆQ‰€AÜ�4‹[ò ˆØˆÜ�r“ò 	 ˆAØ�1�a˜‘d‘8˜a‘-Ñ‰Bð	 àˆqŠ5�(Ü�!‹HˆØˆQŠ3�ØˆaŠ4ØˆAˆa‰DØ�‰F‰AàˆAˆa‰DØ�‰FˆAØˆAˆa‰DØ�‰F‰Aðð ˆq�‰sŠ8ÐDÐ8¸A¸a¹CÀÀ!¸9ÑDÓDˆ8Ø€Hr   c                  ó*   — dd l } | j                  «       S )Nr   )ÚdoctestÚtestmod)rü   s    r   Ú_testrþ   Ì  s   € ÛØ�?‰?ÓÐr   Ú__main__N)Ú
__future__r   Ú__version__Ú__all__Ú!reportlab.graphics.barcode.commonr   Úreportlab.lib.utilsr   r   r   rl   rõ   rz   rþ   rä   r'   r   r   ú<module>r     sY   ðõ &Ø€Ø
€å 5Ý (òôrI�'ô rIòhò@
òò6ð ˆzÒÙ	…Gð r   