Ë
    £eh1  ã                   ó  — d Z ddlZddlZej                  Z G d„ de«      Zd„ Zd„ Zd„ Z	dd„Z
d	„ Zd
„ Zd„ Zdd„Zdd„Zd„ Zd„ Zdd„Zdd„Zedk(  r4ddlZddlZ ej.                   ej0                  «       j2                  «       yy)z6fontTools.misc.textTools.py -- miscellaneous routines.é    Nc                   ó:   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)ÚTagc                 óH   — t        | t        «      r| j                  d«      } | S ©Nzlatin-1)Ú
isinstanceÚbytesÚdecode)Úblobs    úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/misc/textTools.pyÚ	transcodezTag.transcode   s   € ä�dœEÔ"Ø—;‘;˜yÓ)ˆDØˆó    c                 óL   — t         j                  | | j                  |«      «      S ©N)ÚstrÚ__new__r   )ÚselfÚcontents     r   r   zTag.__new__   s   € Ü�{‰{˜4 §¡°Ó!8Ó9Ð9r   c                 ó&   — | j                  |«       S r   )Ú__eq__©r   Úothers     r   Ú__ne__z
Tag.__ne__   s   € Ø—;‘;˜uÓ%Ð%Ð%r   c                 óL   — t         j                  | | j                  |«      «      S r   )r   r   r   r   s     r   r   z
Tag.__eq__   s   € Ü�z‰z˜$ §¡¨uÓ 5Ó6Ð6r   c                 ó,   — t         j                  | «      S r   )r   Ú__hash__©r   s    r   r   zTag.__hash__   s   € Ü�|‰|˜DÓ!Ð!r   c                 ó$   — | j                  d«      S r   )Úencoder   s    r   ÚtobyteszTag.tobytes   s   € Ø�{‰{˜9Ó%Ð%r   N)
Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r   r   r   © r   r   r   r      s-   „ Øñó ðò
:ò&ò7ò"ó&r   r   c                 ó8   — t        t        d„ | D «       «      «      S )z-Convert a list of hex strings to binary data.c              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr   )r   r   )Ú.0Úchunks     r   ú	<genexpr>zreadHex.<locals>.<genexpr>$   s   è ø€ ÒQ e¼*ÀUÌCÕ:PœEÑQùs   ‚˜)ÚdeHexStrÚstrjoin)r   s    r   ÚreadHexr,   "   s   € ä”GÑQ¨wÔQÓQÓRÐRr   c                 óþ   — t        | j                  «       «      } t        | «      dz  r| dz   } g }t        dt        | «      d«      D ],  }|j	                  t        t        | ||dz    d«      «      «       Œ. t        |«      S )z$Convert a hex string to binary data.é   Ú0r   é   )r+   ÚsplitÚlenÚrangeÚappendÚbytechrÚintÚ	bytesjoin)ÚhexdataÚdataÚis      r   r*   r*   '   su   € ä�g—m‘m“oÓ&€GÜ
ˆ7ƒ|�aÒØ˜C‘-ˆØ€DÜ�1”c˜'“l AÓ&ò :ˆØ�‰”GœC ¨¨A°©EÐ 2°BÓ7Ó8Õ9ð:ä�T‹?Ðr   c                 ó|   — t         j                  }d}| D ]$  }t        |«      }|||dz	  dz     z   ||dz     z   }Œ& |S )z$Convert binary data to a hex string.Ú é   é   )ÚstringÚ	hexdigitsÚbyteord)r9   ÚhÚrÚcr:   s        r   ÚhexStrrE   2   sU   € ä×Ñ€AØ
€AØò /ˆÜ�A‹JˆØ��1˜‘6˜S‘.Ñ!Ñ! A a¨#¡g¡JÑ.‰ð/ð €Hr   c                 ó
  — g }d}t        |«      D ]3  }| dz  rd|z   }nd|z   }| dz	  } |dz   dz  rŒ!|j                  |«       d}Œ5 |r|j                  |«       |j                  «        | dv sJ d«       ‚dj                  |«      S )	Nr<   é   Ú1r/   é   )r   éÿÿÿÿz$number doesn't fit in number of bitsú )r3   r4   ÚreverseÚjoin)ÚlÚbitsÚitemsÚbinaryr:   s        r   Ú
num2binaryrR   <   s—   € Ø€EØ€FÜ�4‹[ò ˆØˆsŠ7Ø˜6‘\‰Fà˜6‘\ˆFØ�‰FˆØ�Q‘˜!“Ø�L‰L˜Ô Ø‰Fðñ Ø�‰�VÔØ	‡M�M„OØ�‰<Ð?Ð?Ó?ˆ<Ø�8‰8�E‹?Ðr   c                 ój   — t        | j                  «       «      } d}| D ]  }|dz  }|dk7  sŒ|dz  }Œ |S )Nr   rG   r/   )r+   r1   )ÚbinrN   Údigits      r   Ú
binary2numrV   O   sF   € Ü
�#—)‘)“+Ó
€CØ	€AØò ˆØ�‰FˆØ�C‹<Ø�C‘‰Aðð €Hr   c                 óT   — 	 t        | d„ ¬«      S # t        $ r t        | «      cY S w xY w)zjReturn a sorted copy of a list. If there are only strings
    in the list, it will not consider case.
    c                 ó&   — | j                  «       | fS r   )Úlower)Úas    r   ú<lambda>zcaselessSort.<locals>.<lambda>_   s   € ¨A¯G©G«I°q¨>€ r   )Úkey)ÚsortedÚ	TypeError)Úalists    r   ÚcaselessSortr`   Y   s.   € ð
Ü�eÑ!9Ô:Ð:øÜò Ü�e‹}Òðús   ‚ �'¦'c                 ó\   — t        | «      } |dkD  rt        | «      |z  }|r| d||z
  z  z  } | S )zýPad byte string 'data' with null bytes until its length is a
    multiple of 'size'.

    >>> len(pad(b'abcd', 4))
    4
    >>> len(pad(b'abcde', 2))
    6
    >>> len(pad(b'abcde', 4))
    8
    >>> pad(b'abcdef', 4) == b'abcdef\x00\x00'
    True
    rG   ó    )r   r2   )r9   ÚsizeÚ	remainders      r   Úpadre   d   s>   € ô �4‹=€DØˆa‚xÜ˜“I Ñ$ˆ	ÙØ�E˜T IÑ-Ñ.Ñ.ˆDØ€Kr   c                 óJ   — t        | t        «      s| j                  ||«      S | S r   )r   r   r	   ©ÚsÚencodingÚerrorss      r   Útostrrk   y   s"   € Ü�aœÔØ�x‰x˜ &Ó)Ð)àˆr   c                 ó\   — t        | t        «      r| j                  ||«      S t        | «      S r   )r   r   r   r   rg   s      r   r   r   €   s&   € Ü�!”SÔØ�x‰x˜ &Ó)Ð)ä�Q‹xˆr   c                 ó   — t        | g«      S r   )r   )Úns    r   r5   r5   ‡   s   € Ü�!�‹:Ðr   c                 ó<   — t        | t        «      r| S t        | «      S r   )r   r6   Úord)rD   s    r   rA   rA   ‹   s   € Ü˜1œcÔ"ˆ1Ð.¬¨A«Ð.r   c                 ó6   — t        |«      j                  | «      S r   )rk   rM   ©ÚiterableÚjoiners     r   r+   r+   �   s   € Ü�‹=×Ñ˜hÓ'Ð'r   c                 óD   — t        |«      j                  d„ | D «       «      S )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )r   )r'   Úitems     r   r)   zbytesjoin.<locals>.<genexpr>”   s   è ø€ ÒC°$¤¨§ÑCùs   ‚)r   rM   rr   s     r   r7   r7   “   s   € Ü�6‹?×ÑÑC¸(ÔCÓCÐCr   Ú__main__)é    )ÚasciiÚstrict)r<   )r   )Ú__doc__Úastr?   Úliteral_evalÚsafeEvalr   r   r,   r*   rE   rR   rV   r`   re   rk   r   r5   rA   r+   r7   r    ÚdoctestÚsysÚexitÚtestmodÚfailedr$   r   r   ú<module>r…      s™   ðÙ <ã 
Û ð ×Ñ€ô&ˆ#ô &ò.Sò
òóò&òòó*óòò/ó(óDð ˆzÒßà€C‡H�Hˆ_ˆW�_‰_Ó×%Ñ%Õ&ð r   