+
    IiU                    L  a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
Ht ^ RIHtHtHt ^ RIHtHtHtHt ^RIHtHtHt ^RIHtHtHtHtHtHtHtH t H!t! ^R	IH"t" ]'       g    ]#! ]PH                  ! R
R4      4      '       d_   ^ RI%t%]%PL                  R8  d   ^ RIH't' M^ RI(H't' ^RI)H*t*H+t+ ^RI,H-t- ^RI.H/t/H0t0H1t1 ]]*]-]2]33,          t4R]5R&   ]]+]-]2]33,          t6R]5R&    ! R R4      t7]7! 4       t8]]8n9        ]8Pt                  t:]8Pv                  t;]8Px                  t<R# )    )annotationsN)timegm)	ContainerIterableSequence)datetime	timedeltatimezone)TYPE_CHECKINGAnyUnioncast)PyJWS_ALGORITHM_UNSET_jws_global_obj)	DecodeErrorExpiredSignatureErrorImmatureSignatureErrorInvalidAudienceErrorInvalidIssuedAtErrorInvalidIssuerErrorInvalidJTIErrorInvalidSubjectErrorMissingRequiredClaimError)RemovedInPyjwt3WarningSPHINX_BUILD )	TypeAlias)AllowedPrivateKeysAllowedPublicKeys)PyJWK)FullOptionsOptions
SigOptionsr   AllowedPrivateKeyTypesAllowedPublicKeyTypesc                  (   ] tR t^*tR*R R llt]R R l4       tR R ltR*R R	 llt]	RRR
3R R llt
R+R R lltR,R R lltR R ltR,R R lltR-R R lltR R ltR*R R lltR R ltR R ltR R  ltR! R" ltR#R$/R% R& lltR' R( ltR)tR# ).PyJWTNc                    V ^8  d   QhRRRR/# )   optionsOptions | NonereturnNone )formats   "tC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\jwt/api_jwt.py__annotate__PyJWT.__annotate__+   s     ; ; ;$ ;    c                	    V  V P                  4       V n        Ve   V P                  V4      V n        \        V P	                  4       R7      V n        R # )N)r+   )_get_default_optionsr+   _merge_optionsr   _get_sig_options_jwsselfr+   s   &&r1   __init__PyJWT.__init__+   sB    002..w7DL$"7"7"9:	r4   c                   V ^8  d   QhRR/# )r*   r-   r"   r/   )r0   s   "r1   r2   r3   4   s     
 
+ 
r4   c                 	2    R RRRRRRRRRRRRRRRR	. R
RRR/# )verify_signatureT
verify_exp
verify_nbf
verify_iat
verify_aud
verify_iss
verify_sub
verify_jtirequire
strict_audFenforce_minimum_key_lengthr/   r/   r4   r1   r6   PyJWT._get_default_options3   sE     $$$$$$$r%(%
 	
r4   c                   V ^8  d   QhRR/# )r*   r-   r$   r/   )r0   s   "r1   r2   r3   C   s     
 
* 
r4   c                	d    R V P                   R ,          RV P                   P                  RR4      /# )r@   rJ   Fr+   get)r;   s   &r1   r8   PyJWT._get_sig_optionsC   s4    -? @($,,*:*:,e+
 	
r4   c                    V ^8  d   QhRRRR/# )r*   r+   r,   r-   r"   r/   )r0   s   "r1   r2   r3   K   s     + +n + +r4   c                	   Vf   V P                   # VP                  RR4      '       g   VP                  RR4      VR&   VP                  RR4      VR&   VP                  RR4      VR&   VP                  RR4      VR&   VP                  RR4      VR&   VP                  R	R4      VR	&   VP                  R
R4      VR
&   / V P                   CVC# )Nr@   TrA   FrB   rC   rD   rE   rF   rG   rN   r:   s   &&r1   r7   PyJWT._merge_optionsK   s    ?<< {{-t44$+KKe$DGL!$+KKe$DGL!$+KKe$DGL!$+KKe$DGL!$+KKe$DGL!$+KKe$DGL!$+KKe$DGL!*$,,*'**r4   Tc               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r*   payloaddict[str, Any]keyr%   	algorithm
str | Noneheadersdict[str, Any] | Nonejson_encodertype[json.JSONEncoder] | Nonesort_headersboolr-   strr/   )r0   s   "r1   r2   r3   Z   sY     @
 @
@
 $@
 	@

 '@
 4@
 @
 
@
r4   c           	        \        V\        4      '       g   \        R4      hVP                  4       pR FK  p\        VP	                  V4      \
        4      '       g   K*  \        W,          P                  4       4      W&   KM  	  RV9   d)   \        VR,          \        4      '       g   \        R4      hV P                  VVVR7      pV P                  P                  VVVVVVR7      # )a  Encode the ``payload`` as JSON Web Token.

:param payload: JWT claims, e.g. ``dict(iss=..., aud=..., sub=...)``
:type payload: dict[str, typing.Any]
:param key: a key suitable for the chosen algorithm:

    * for **asymmetric algorithms**: PEM-formatted private key, a multiline string
    * for **symmetric algorithms**: plain string, sufficiently long for security

:type key: str or bytes or PyJWK or :py:class:`jwt.algorithms.AllowedPrivateKeys`
:param algorithm: algorithm to sign the token with, e.g. ``"ES256"``.
    If ``headers`` includes ``alg``, it will be preferred to this parameter.
    If ``key`` is a :class:`PyJWK` object, by default the key algorithm will be used.
:type algorithm: str or None
:param headers: additional JWT header fields, e.g. ``dict(kid="my-key-id")``.
:type headers: dict[str, typing.Any] or None
:param json_encoder: custom JSON encoder for ``payload`` and ``headers``
:type json_encoder: json.JSONEncoder or None

:rtype: str
:returns: a JSON Web Token

:raises TypeError: if ``payload`` is not a ``dict``
zGExpecting a dict object, as JWT only supports JSON objects as payloads.isszIssuer (iss) must be a string.)rZ   r\   )r^   )expiatnbf)
isinstancedict	TypeErrorcopyrO   r   r   utctimetupler`   _encode_payloadr9   encode)	r;   rU   rW   rX   rZ   r\   r^   
time_claimjson_payloads	   &&&&&&&  r1   rl   PyJWT.encodeZ   s    D '4((,  ,,./J'++j18<<&,W-@-M-M-O&P# 0 GJwu~s$C$C<==++% , 
 yy%   
 	
r4   c               (    V ^8  d   QhRRRRRRRR/# )	r*   rU   rV   rZ   r[   r\   r]   r-   bytesr/   )r0   s   "r1   r2   r3      s2       ' 4	
 
r4   c                R    \         P                  ! VRVR7      P                  R4      # )z
Encode a given payload to the bytes to be signed.

This method is intended to be overridden by subclasses that need to
encode the payload in a different way, e.g. compress the payload.
)
separatorsclszutf-8),:)jsondumpsrl   )r;   rU   rZ   r\   s   &&&&r1   rk   PyJWT._encode_payload   s)     zz!
 &/		r4   c               H    V ^8  d   Qh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*   jwtstr | bytesrW   r&   
algorithmsSequence[str] | Noner+   r,   verifybool | Nonedetached_payloadbytes | Noneaudiencestr | Iterable[str] | Noneissuerstr | Container[str] | NonesubjectrY   leewayfloat | timedeltakwargsr   r-   rV   r/   )r0   s   "r1   r2   r3      s     l ll #l )	l
  l l 'l -l ,l l "l" #l$ 
%lr4   c           	        V'       d8   \         P                  ! R\        VP                  4       4       2\        ^R7       Vf   RpMVP                  RR4      pVe$   W\8w  d   \         P                  ! R\        ^R7       V P                  V4      pRV/pV P                  P                  VVVVVR7      pV P                  V4      pV P                  VVVVV
V	R7       VVR	&   V# )
u,  Identical to ``jwt.decode`` except for return value which is a dictionary containing the token header (JOSE Header),
the token payload (JWT Payload), and token signature (JWT Signature) on the keys "header", "payload",
and "signature" respectively.

:param jwt: the token to be decoded
:type jwt: str or bytes
:param key: the key suitable for the allowed algorithm
:type key: str or bytes or PyJWK or :py:class:`jwt.algorithms.AllowedPublicKeys`

:param algorithms: allowed algorithms, e.g. ``["ES256"]``

    .. warning::

       Do **not** compute the ``algorithms`` parameter based on
       the ``alg`` from the token itself, or on any other data
       that an attacker may be able to influence, as that might
       expose you to various vulnerabilities (see `RFC 8725 §2.1
       <https://www.rfc-editor.org/rfc/rfc8725.html#section-2.1>`_). Instead,
       either hard-code a fixed value for ``algorithms``, or
       configure it in the same place you configure the
       ``key``. Make sure not to mix symmetric and asymmetric
       algorithms that interpret the ``key`` in different ways
       (e.g. HS\* and RS\*).
:type algorithms: typing.Sequence[str] or None

:param jwt.types.Options options: extended decoding and validation options
    Refer to :py:class:`jwt.types.Options` for more information.

:param audience: optional, the value for ``verify_aud`` check
:type audience: str or typing.Iterable[str] or None
:param issuer: optional, the value for ``verify_iss`` check
:type issuer: str or typing.Container[str] or None
:param leeway: a time margin in seconds for the expiration check
:type leeway: float or datetime.timedelta
:rtype: dict[str, typing.Any]
:returns: Decoded JWT with the JOSE Header on the key ``header``, the JWS
 Payload on the key ``payload``, and the JWS Signature on the key ``signature``.
zypassing additional kwargs to decode_complete() is deprecated and will be removed in pyjwt version 3. Unsupported kwargs: 
stacklevelTr@   zThe `verify` argument to `decode` does nothing in PyJWT 2.0 and newer. The equivalent is setting `verify_signature` to False in the `options` dictionary. This invocation has a mismatch between the kwarg and the option entry.)categoryr   )rW   r}   r+   r   )r   r   r   r   rU   )warningswarntuplekeysr   rO   DeprecationWarningr7   r9   decode_complete_decode_payload_validate_claims)r;   r{   rW   r}   r+   r   r   r   r   r   r   r   r@   merged_optionssig_optionsdecodedrU   s   &&&&&&&&&&&,     r1   r   PyJWT.decode_complete   s   r MM'',V[[]';&<> ' ?#&{{+=tD
 &"<MMY , ,,W5  0#
 ))++!- , 
 &&w/ 	 	
 %	r4   c                    V ^8  d   QhRRRR/# )r*   r   rV   r-   r/   )r0   s   "r1   r2   r3     s      ~ . r4   c                     \         P                  ! VR,          4      p\	        T\
        4      '       g   \        R4      hT#   \         d   p\        RT 24      ThRp?ii ; i)z
Decode the payload from a JWS dictionary (payload, signature, header).

This method is intended to be overridden by subclasses that need to
decode the payload in a different way, e.g. decompress compressed
payloads.
rU   zInvalid payload string: Nz-Invalid payload string: must be a json object)rw   loads
ValueErrorr   rf   rg   )r;   r   rU   es   &&  r1   r   PyJWT._decode_payload  sd    	E&*jj1C&DG '4((MNN	  	E 8<=1D	Es   A A!AA!c               H    V ^8  d   Qh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|   rW   z'AllowedPublicKeys | PyJWK | str | bytesr}   r~   r+   r,   r   r   r   r   r   r   r   rY   r   r   r   r   r   r   r-   rV   r/   )r0   s   "r1   r2   r3   ,  s     M8 M8M8 5M8 )	M8
  M8 M8 'M8 -M8 M8 ,M8 "M8" #M8$ 
%M8r4   c                   V'       d8   \         P                  ! R\        VP                  4       4       2\        ^R7       V P                  VVVVVVVVV	V
R7
      p\        \        \        \        3,          VR,          4      # )u  Verify the ``jwt`` token signature and return the token claims.

:param jwt: the token to be decoded
:type jwt: str or bytes
:param key: the key suitable for the allowed algorithm
:type key: str or bytes or PyJWK or :py:class:`jwt.algorithms.AllowedPublicKeys`

:param algorithms: allowed algorithms, e.g. ``["ES256"]``
    If ``key`` is a :class:`PyJWK` object, allowed algorithms will default to the key algorithm.

    .. warning::

       Do **not** compute the ``algorithms`` parameter based on
       the ``alg`` from the token itself, or on any other data
       that an attacker may be able to influence, as that might
       expose you to various vulnerabilities (see `RFC 8725 §2.1
       <https://www.rfc-editor.org/rfc/rfc8725.html#section-2.1>`_). Instead,
       either hard-code a fixed value for ``algorithms``, or
       configure it in the same place you configure the
       ``key``. Make sure not to mix symmetric and asymmetric
       algorithms that interpret the ``key`` in different ways
       (e.g. HS\* and RS\*).
:type algorithms: typing.Sequence[str] or None

:param jwt.types.Options options: extended decoding and validation options
    Refer to :py:class:`jwt.types.Options` for more information.

:param audience: optional, the value for ``verify_aud`` check
:type audience: str or typing.Iterable[str] or None
:param subject: optional, the value for ``verify_sub`` check
:type subject: str or None
:param issuer: optional, the value for ``verify_iss`` check
:type issuer: str or typing.Container[str] or None
:param leeway: a time margin in seconds for the expiration check
:type leeway: float or datetime.timedelta
:rtype: dict[str, typing.Any]
:returns: the JWT claims
zppassing additional kwargs to decode() is deprecated and will be removed in pyjwt version 3. Unsupported kwargs: r   )r   r   r   r   r   r   rU   )
r   r   r   r   r   r   r   rg   r`   r   )r;   r{   rW   r}   r+   r   r   r   r   r   r   r   r   s   &&&&&&&&&&&, r1   decodePyJWT.decode,  s    r MM'',V[[]';&<> ' &&- ' 
 DcNGI$677r4   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r*   rU   rV   r+   r"   r   zIterable[str] | str | Noner   Container[str] | str | Noner   rY   r   r   r-   r.   r/   )r0   s   "r1   r2   r3   {  sP     (( (((( (( -	((
 ,(( (( "(( 
((r4   c                	V   \        V\        4      '       d   VP                  4       pVe(   \        V\        \        34      '       g   \        R4      hV P                  WR,          4       \        P                  ! \        P                  R7      P                  4       pRV9   d"   VR,          '       d   V P                  WV4       RV9   d"   VR,          '       d   V P                  WV4       RV9   d"   VR	,          '       d   V P                  WV4       VR
,          '       d   V P                  W4       VR,          '       d$   V P!                  WVP#                  RR4      R7       VR,          '       d   V P%                  W4       VR,          '       d   V P'                  V4       R # R # )Nz+audience must be a string, iterable or NonerH   )tzrd   rC   re   rB   rc   rA   rE   rD   rI   F)strictrF   rG   )rf   r	   total_secondsr`   r   rh   _validate_required_claimsr   nowr
   utc	timestamp_validate_iat_validate_nbf_validate_exp_validate_iss_validate_audrO   _validate_sub_validate_jti)r;   rU   r+   r   r   r   r   r   s   &&&&&&& r1   r   PyJWT._validate_claims{  sU    fi(())+F
8c8_(M(MIJJ&&w	0BCllhll+557G 5 5wV4G 5 5wV4G 5 5wV4<  w/<  '++lE*J   <  w0<  w' !r4   c               $    V ^8  d   QhRRRRRR/# )r*   rU   rV   claimszIterable[str]r-   r.   r/   )r0   s   "r1   r2   r3     s(     7 77 7 
	7r4   c                	T    V F!  pVP                  V4      e   K  \        V4      h	  R # N)rO   r   )r;   rU   r   claims   &&& r1   r   PyJWT._validate_required_claims  s(    
 E{{5!)/66 r4   c               $    V ^8  d   QhRRRRRR/# )r*   rU   rV   r   rY   r-   r.   r/   )r0   s   "r1   r2   r3     s$     = =%=0:=	=r4   c                    RV9  d   R# \        VR,          \        4      '       g   \        R4      hVe$   VP                  R4      V8w  d   \        R4      hR# R# )z
Checks whether "sub" if in the payload is valid or not.
This is an Optional claim

:param payload(dict): The payload which needs to be validated
:param subject(str): The subject of the token
subNzSubject must be a stringzInvalid subject)rf   r`   r   rO   )r;   rU   r   s   &&&r1   r   PyJWT._validate_sub  sY     '%.#..%&@AA{{5!W,)*;<< - r4   c                    V ^8  d   QhRRRR/# )r*   rU   rV   r-   r.   r/   )r0   s   "r1   r2   r3     s     = =^ = =r4   c                x    RV9  d   R# \        VP                  R4      \        4      '       g   \        R4      hR# )z
Checks whether "jti" if in the payload is valid or not
This is an Optional claim

:param payload(dict): The payload which needs to be validated
jtiNzJWT ID must be a string)rf   rO   r`   r   )r;   rU   s   &&r1   r   PyJWT._validate_jti  s6     '++e,c22!";<< 3r4   c               (    V ^8  d   QhRRRRRRRR/# r*   rU   rV   r   floatr   r-   r.   r/   )r0   s   "r1   r2   r3     s8     M MM M 	M
 
Mr4   c                	     \        VR ,          4      pYBT,           8  d   \        R4      hR#   \         d    \        R4      Rhi ; i)rd   z)Issued At claim (iat) must be an integer.Nz The token is not yet valid (iat))intr   r   r   )r;   rU   r   r   rd   s   &&&& r1   r   PyJWT._validate_iat  sV    	gen%C
 ,()KLL  	  	&;		   . Ac               (    V ^8  d   QhRRRRRRRR/# r   r/   )r0   s   "r1   r2   r3     s8     M MM M 	M
 
Mr4   c                	     \        VR ,          4      pYBT,           8  d   \        R4      hR#   \         d    \        R4      Rhi ; i)re   z*Not Before claim (nbf) must be an integer.Nz The token is not yet valid (nbf))r   r   r   r   )r;   rU   r   r   re   s   &&&& r1   r   PyJWT._validate_nbf  sU    	Vgen%C ,()KLL    	VJKQUU	Vr   c               (    V ^8  d   QhRRRRRRRR/# r   r/   )r0   s   "r1   r2   r3     s8     A AA A 	A
 
Ar4   c                	     \        VR ,          4      pYBT,
          8:  d   \        R4      hR#   \         d    \        R4      Rhi ; i)rc   z/Expiration Time claim (exp) must be an integer.NzSignature has expired)r   r   r   r   )r;   rU   r   r   rc   s   &&&& r1   r   PyJWT._validate_exp  sV    	gen%C < '(?@@ !  	A	r   r   Fc               (    V ^8  d   QhRRRRRRRR/# )	r*   rU   rV   r   r   r   r_   r-   r.   r/   )r0   s   "r1   r2   r3     s8     0A 0A0A -0A
 0A 
0Ar4   c               	,  a Vf$   RV9  g   VR,          '       g   R # \        R4      hRV9  g   VR,          '       g   \        R4      hVR,          oV'       dW   \        V\        4      '       g   \        R4      h\        S\        4      '       g   \        R4      hVS8w  d   \        R4      hR # \        S\        4      '       d   S.o\        S\        4      '       g   \        R4      h\
        ;QJ d    R S 4       F  '       g   K   RM	  R	M! R S 4       4      '       d   \        R4      h\        V\        4      '       d   V.p\        ;QJ d    V3R
 lV 4       F  '       d   K   R	M	  RM! V3R
 lV 4       4      '       d   \        R4      hR # )NaudzInvalid audiencezInvalid audience (strict)z&Invalid claim format in token (strict)zAudience doesn't match (strict)zInvalid claim format in tokenc              3  L   "   T F  p\        V\        4      '       * x  K  	  R # 5ir   )rf   r`   ).0cs   & r1   	<genexpr>&PyJWT._validate_aud.<locals>.<genexpr>'  s     ?!:a%%%s   "$TFc              3  ,   <"   T F	  qS9  x  K  	  R # 5ir   r/   )r   r   audience_claimss   & r1   r   r   -  s     >Xc/)Xs   zAudience doesn't match)r   r   rf   r`   listanyall)r;   rU   r   r   r   s   &&&$@r1   r   PyJWT._validate_aud  sC    G#75>> ''9::wu~~ ,E22!%. h,,*+FGG os33*+STT?**+LMMos++./O/400&'FGG3??333????&'FGGh$$ zH3>X>333>X>>>&'?@@ ?r4   c               $    V ^8  d   QhRRRRRR/# )r*   rU   rV   r   r   r-   r.   r/   )r0   s   "r1   r2   r3   0  s$      %/J	r4   c                	6   Vf   R # RV9  d   \        R4      hVR,          p\        V\        4      '       g   \        R4      h\        V\        4      '       d   W28w  d   \        R4      hR #  W29  d   \        R4      hR #   \         d    \        R4      R hi ; i)Nrb   z%Payload Issuer (iss) must be a stringzInvalid issuerz.Issuer param must be "str" or "Container[str]")r   rf   r`   r   rh   )r;   rU   r   rb   s   &&& r1   r   PyJWT._validate_iss0  s     >+E22en#s##$%LMMfc""}()9:: $,-=>> % (Ds   -B   B)r9   r+   r   )NN)	r   NNNNNNNr   )NNNr   )__name__
__module____qualname____firstlineno__r<   staticmethodr6   r8   r7   r   rl   rk   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r/   r4   r1   r(   r(   *   s    ; 
 

+& !1)-6:!@
D$l\ M8^((T7=*=MMA 0A
 0Ad r4   r(   )   
   )=__conditional_annotations__
__future__r   rw   osr   calendarr   collections.abcr   r   r   r   r	   r
   typingr   r   r   r   api_jwsr   r   r   
exceptionsr   r   r   r   r   r   r   r   r   r   r_   getenvsysversion_infor   typing_extensionsr}   r   r    api_jwkr!   typesr"   r#   r$   r`   rq   r%   __annotations__r&   r(   _jwt_global_objr9   rl   r   r   )r   s   @r1   <module>r      s    " "  	   9 9 2 2 2 2 = =
 
 
 -D>2677
7"$ 	0A77(-.@%e.S(TIT',->sE-Q'R9R] ]@ '& 			!11			r4   