+
    '(jM4                         ^ RI t ^ RIHt ^ RIHt ^ RIHtHtHt ^RI	H
t
Ht ^RIHt ]R,          tRtRtR
tRtR
tRtR	tRtRtRRRRRR
RRRR
RRRR	RRRR/	tR t ! R R]]4      t] ! R R4      4       t ! R R]RR7      tR ]P<                  R!]P>                  R"]P@                  R#]PB                  /t"/ ^
R$b^/R%b^3R&b^5R'b^9R(b^<R)b^=R*b^gR+b^kR,b^R-b^R.b^R/b^R0b^R1b^R2bR3R4bR5R6b/ R7R8bR9R:bR;R<bR=R>bR?R@bRARBbRCRDbRERFbRGRHbRIRJbRKRLbRMRNbRORPbRQRRbRSRTbRURVbRWRXbCRYRZR[R\R]R^/Ct#/ ^ R_b^R`b^Rab^Rbb^Rcb^Rdb^Reb^Rfb^Rgb^	Rhb^
Rib^Rjb^Rkb^Rlb^Rmb^Rnb^Rob/ ^Rpb^Rqb^Rrb^Rsb^Rtb^Rub^Rvb^Rwb^Rxb^Ryb^Rzb^R{b^R|b^R}b^R~b^ Rb^!RbC/ ^"Rb^#Rb^$Rb^%Rb^&Rb^'Rb^)Rb^*Rb^+Rb^,Rb^-Rb^/Rb^0Rb^1Rb^2Rb^3Rb^4RbC^6R^7R^8R^9R^:R^;R^<R^=RRRRRRRRRRR/Ct$^R^R^R^R^R^RRRRRRRRR/
t%R R lt&R# )    N)	dataclass)Enum)LiteralOptional	TypedDict)CurlOptCurlSslVersion)CurlCffiWarningedge101	chrome146chrome131_android
safari2601safari260_ios
firefox147tor145chromeedgesafari
safari_iossafari_betasafari_ios_betachrome_androidfirefoxtorc                     V R 8X  d   \         # V R8X  d   \        # V R8X  d   \        # V R8X  d   \        # V R8X  d   \        # V R8X  d   \
        # V R8X  d   \        # V R8X  d   \        # V R8X  d   \        # V # )	r   r   r   r   r   r   r   r   r   )	DEFAULT_CHROMEDEFAULT_EDGEDEFAULT_SAFARIDEFAULT_SAFARI_IOSDEFAULT_SAFARI_BETADEFAULT_SAFARI_IOS_BETADEFAULT_CHROME_ANDROIDDEFAULT_FIREFOXDEFAULT_TOR)items   &S/home/ubuntu/cf-venv/lib/python3.14/site-packages/curl_cffi/requests/impersonate.pynormalize_browser_typer'   i   s    x					!!		""	"	"&&	!	!%%			    c                       ] tR t^tRtRtRtRtRtRt	Rt
RtR	tR
tRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRt Rt!Rt"R t#R!t$R"t%R#t&R$t'R%t(R&t)R't*R(t+R)t,R*t-R+t.R,t/R-# ).BrowserTypeedge99r   chrome99	chrome100	chrome101	chrome104	chrome107	chrome110	chrome116	chrome119	chrome120	chrome123	chrome124	chrome131
chrome133a	chrome136	chrome142	chrome145r   chrome99_androidr   	safari153	safari155	safari170safari172_ios	safari180safari180_ios	safari184safari184_ios	safari260r   r   
firefox133
firefox135
firefox144r   r   
safari15_3
safari15_5
safari17_0safari17_2_ios
safari18_0safari18_0_ios N)0__name__
__module____qualname____firstlineno__r+   r   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r   r<   r   r=   r>   r?   r@   rA   rB   rC   rD   rE   r   r   rF   rG   rH   r   r   rI   rJ   rK   rL   rM   rN   __static_attributes__rO   r(   r&   r*   r*      s    FGHIIIIIIIIIIIJIIII)+III#MI#MI#MI#MJJJJJF JJJ%NJ%Nr(   r*   c                   x   a  ] tR t^t o ]P
                  tRtRtRt	Rt
Rt^ tRt^tRtRtRtRtRtV 3R ltRtV tR# )ExtraFingerprintsFbrotliN    c                0  < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[R,          ;R&   S[S[S[,          ,          ;R&   S[;R&   S[ ;R&   S[ ;R&   S[ ;R	&   S[;R
&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   #    tls_min_version
tls_greasetls_permute_extensionstls_cert_compressiontls_signature_algorithmstls_delegated_credentialtls_record_size_limithttp2_stream_weighthttp2_stream_exclusivehttp2_no_prioritysplit_cookiesform_boundaryhttp3_sig_hash_algshttp3_tls_extension_order)zlibrW   intboolr   r   liststr)format__classdict__s   "r&   __annotate__ExtraFingerprints.__annotate__   s     1    !(	 
 ""23>  'tCy18  "&  "  "   #  #  D>(  D>(  "#-   (}3 r(   rO   )rP   rQ   rR   rS   r	   TLSv1_2r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   __annotate_func__rT   __classdictcell__rr   s   @r&   rV   rV      sb     )11OJ#(6>48$&!"""##$(M$(M)-/3  r(   rV   c                   ,   a  ] tR t^t o V 3R ltRtV tR# )ExtraFpDictc                0  < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[R,          ;R&   S[S[S[,          ,          ;R&   S[;R&   S[ ;R&   S[ ;R&   S[ ;R	&   S[;R
&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # r[   rl   )rq   rr   s   "r&   rs   ExtraFpDict.__annotate__   s        !   ""233	 
 'tCy11  "!           D>!  D>!  "#&   (}, r(   rO   N)rP   rQ   rR   rS   rv   rT   rw   rx   s   @r&   rz   rz      s      r(   rz   F)totali  i  i  i  TLS_RSA_WITH_3DES_EDE_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHA256TLS_RSA_WITH_AES_256_CBC_SHA256#TLS_DHE_RSA_WITH_AES_128_CBC_SHA256#TLS_DHE_RSA_WITH_AES_256_CBC_SHA256TLS_PSK_WITH_AES_128_CBC_SHATLS_PSK_WITH_AES_256_CBC_SHATLS_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_256_GCM_SHA384#TLS_DHE_RSA_WITH_AES_128_GCM_SHA256#TLS_DHE_RSA_WITH_AES_256_GCM_SHA384i  TLS_AES_128_GCM_SHA256i  TLS_AES_256_GCM_SHA384i  TLS_CHACHA20_POLY1305_SHA256i  %TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHAi	  $TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHAi
  $TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHAi  #TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHAi  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHAi  "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHAi#  'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256i$  'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384i'  %TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256i(  %TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384i+  'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256i,  'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384i/  %TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256i0  %TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384i5  "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHAi6  "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHAi  +TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256i  -TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256i  +TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256server_namemax_fragment_lengthclient_certificate_urltrusted_ca_keystruncated_hmacstatus_requestuser_mappingclient_authzserver_authz	cert_typesupported_groupsec_point_formatssrpsignature_algorithmsuse_srtp	heartbeat&application_layer_protocol_negotiationstatus_request_v2signed_certificate_timestampclient_certificate_typeserver_certificate_typepaddingencrypt_then_macextended_master_secrettoken_bindingcached_infotls_ltscompress_certificaterecord_size_limitpwd_protect	pwd_clearpassword_saltticket_pinningtls_cert_with_extern_pskdelegated_credentialsession_ticketTLMSPTLMSP_proxyingTLMSP_delegatesupported_ekt_cipherspre_shared_key
early_datasupported_versionscookiepsk_key_exchange_modescertificate_authoritiesoid_filterspost_handshake_authsignature_algorithms_cert	key_sharetransparency_infoconnection_idexternal_id_hashexternal_session_idquic_transport_parametersticket_requestdnssec_chain%sequence_number_encryption_algorithmsrrciD  application_settingsD  zapplication_settings newi   ech_outer_extensions  encrypted_client_helloi  renegotiation_infozP-192zP-224zP-256zP-384zP-521X25519rY   	ffdhe2048i  	ffdhe3072i  X25519MLKEM768ic  X25519Kyber768Draft00c                0    V ^8  d   QhR\         R\        /# )r\   extension_idenable)rm   rn   )rq   s   "r&   rs   rs     s     C
 C
 C
d C
r(   c                    VR 8X  dM   V'       d#   V P                  \        P                  R4       R# V P                  \        P                  R4       R# V^8X  dj   V'       d@   \        P                  ! R\
        ^R7       V P                  \        P                  R4       R# V P                  \        P                  R4       R# VR8X  dM   V'       d#   V P                  \        P                  ^4       R# V P                  \        P                  ^ 4       R# VR8X  d   V'       dC   V P                  \        P                  ^4       V P                  \        P                  ^4       R# V P                  \        P                  ^ 4       V P                  \        P                  ^ 4       R# V^ 8X  d   \        R4      hV^8X  dM   V'       d#   V P                  \        P                  ^4       R# V P                  \        P                  ^ 4       R# V^8X  d-   V'       d#   V P                  \        P                  ^4       R# R# V^8X  d-   V'       d#   V P                  \        P                  ^4       R# R# V^#8X  dM   V'       d#   V P                  \        P                  ^4       R# V P                  \        P                  ^ 4       R# V^8X  d   R# VR9   d   R# \        R	V R
24      h)r   greaserX   zTCert compression setting to brotli, you had better specify which to use: zlib/brotli)
stacklevelrW   r   r   z>It's unlikely that the server_name(0) extension being changed.zThis extension(z6) can not be toggled for now, it may be updated later.N)"      )setoptr   ECHwarningswarnr
   SSL_CERT_COMPRESSIONSSL_ENABLE_ALPSTLS_USE_NEW_ALPS_CODEPOINTNotImplementedErrorSSL_ENABLE_ALPNTLS_STATUS_REQUESTTLS_SIGNED_CERT_TIMESTAMPSSSL_ENABLE_TICKET)curlr   r   s   &&&r&   toggle_extensionr     s   uKKX.KKR(		MMC	 KK44h?KK44b9		KK//3KK//3		KK//3KK::A>KK//3KK::A>		!L
 	
 
	KK//3KK//3		KK22A6  
	KK::A>  
	KK1115KK1115				!!l^ , 
 	
r(   )5r+   r   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r   r<   r   r=   r>   r?   r@   rA   rB   rC   rD   rE   r   r   rF   rG   rH   r   r   r   r   r   r   r   r   r   r   rI   rJ   rK   rL   rM   rN   
safari18_4safari18_4_ios)'r   dataclassesr   enumr   typingr   r   r   constr   r	   utilsr
   BrowserTypeLiteralr   r   r   r   r    r!   r"   r#   r$   REAL_TARGET_MAPr'   rp   r*   rV   rz   TLSv1_0TLSv1_1ru   TLSv1_3TLS_VERSION_MAPTLS_CIPHER_NAME_MAPTLS_EXTENSION_NAME_MAPTLS_EC_CURVES_MAPr   rO   r(   r&   <module>r     sh    !  / / + #9E P $ " ) ,  k
Il/<)|	8
.-&#t -&` 4 4 4"-)5 -( N""
N""
N""
N""	&
+&
*& .& *	&
 .& -& -& 1& 1& *& *& -& -& 1& 1&  $!&" $#&$ *%&& 3'&( 2)&* 2+&, 1-&. 0/&0 01&2 53&4 55&6 37&8 39&: 5;&< 5=&> 3?&@ 3A&B 0C&D 0E&F 9
;
9K& Vi}ii i 	i
 i i ~i ~i ~i {i i i i i 
i  !i" 0#i$ %i& &'i( !)i* !+i, 	-i. /i0  1i2 3i4 5i6 	7i8 9i: ;i< =i> ?i@ AiB CiD "EiF GiH IiJ KiL MiN OiP QiT UiV WiX YiZ [i\  ]i` !aib cid eif #gih iij kin #/	!	%D 
!	# 
Oi Z 
	" C
r(   