
    kKj]              	           d dl mZ d dlZd dlZd dlZd dlZddedededefdZddeez  dedefdZ	d	edefd
Z
d	edefdZd	edefdZddededz  defdZdeeef   defdZdedefdZy)    )AnyNxcharseterrorsreturnc                     t        | t              r| S t        | t              r| j                  ||      S t        | t        t
        f      rt        |       j                  ||      S t        |       S N)
isinstancebytesstrencodeintfloat)r   r   r   s      ]/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/joserfc/util.pyto_bytesr      sX    !U!Sxx((!c5\"1v}}Wf--8O    c                 H    t        | t              r| j                  |      S | S r	   )r
   r   decode)r   r   s     r   to_strr      s     !Uxx  Hr   sc                    d| v sd| v sd| v rt         j                  t        |        dz  }|dk(  rt         j                  d}|r| d   ||dz
     vrt         j                  | d|z  z  } t        j                  | d	d
      S )N   +   /   =      )s   AEIMQUYcgkosw048s   AQgw   s   -_T)validate)binasciiErrorlenbase64	b64decode)r   padsafe_endings      r   urlsafe_b64decoder'      s    qyDAInnq6'A+C
axnn0K
quKa00nnOAAut44r   c                 J    t        j                  |       j                  d      S )Nr   )r#   urlsafe_b64encoderstrip)r   s    r   r)   r)   (   s    ##A&--d33r   c           	          t        t        |             }t        j                  dt	        |      z  |      }t        dj                  |D cg c]  }d|z  	 c}      d      S c c}w )Nz%sB z%02x   )r'   r   structunpackr"   r   join)r   databufbytes       r   base64_to_intr4   ,   sU    Xa[)D
--D	)4
0Crww#6#$#67<<6s   A#num
byte_countc                     | dk  rt        d      || j                         dz   dz  }n!| j                         |dz  kD  rt        d      | j                  |dd      }t        |      j	                  d	d
      S )Nr   zMust be a positive integer      zNumber too large for byte countbigF)signedutf-8strict)
ValueError
bit_lengthr   r)   r   )r5   r6   r   s      r   int_to_base64r@   2   s|    
Qw566nn&*q0
		JN	*:;;Zu5AQ&&w99r   r1   c                 \    t        j                  | dd      }t        t        |d            S )NT),:)ensure_ascii
separatorsascii)jsondumpsr)   r   )r1   texts     r   json_b64encoderJ   ?   s&    ::d*EDXdG455r   rI   c                 >    t        j                  t        |             S r	   )rG   loadsr'   )rI   s    r   json_b64decoderM   D   s    ::'-..r   )r<   r=   )r<   r	   )typingr   r#   r.   r    rG   r   r   r   r   r'   r)   r   r4   r@   dictrJ   rM    r   r   <module>rQ      s         c S  eck C c 5 55 5 4 45 4=S =S =
:s 
:d
 
:c 
:6c3h 6E 6
/ /3 /r   