HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //opt/osm/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/utils.cpython-310.pyc
o

=i�/�@s�ddlmZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZddl
mZddlmZd	d
lmZmZmZmZmZmZmZe
ed�didd��Ze
ed�djdd��Ze
ed�dkdd��Ze
ed�didd��Ze
ed�didd��Ze
ed�didd��Ze
ed�didd��Ze
ed�didd ��Z e
ed�did!d"��Z!e
ed�did#d$��Z"e
ed�did%d&��Z#e
ed�did'd(��Z$e
ed�did)d*��Z%e
ed�did+d,��Z&e
ed�did-d.��Z'e
ed�did/d0��Z(e
ed�did1d2��Z)e
e*e�d�dld4d5��Z+e
ed�did6d7��Z,dmdnd=d>�Z-e
d?d�dodAdB��Z.dpdDdE�Z/dqdGdH�Z0drdsdLdM�Z1dtdQdR�Z2dudSdT�Z3dUej4dVfdvdZd[�Z5	dwdxdgdh�Z6dS)y�)�annotationsN)�IncrementalDecoder)�aliases)�	lru_cache)�findall)�	Generator)�MultibyteIncrementalDecoder�)�ENCODING_MARKS�IANA_SUPPORTED_SIMILAR�RE_POSSIBLE_ENCODING_INDICATION�UNICODE_RANGES_COMBINED�UNICODE_SECONDARY_RANGE_KEYWORD�UTF8_MAXIMAL_ALLOCATION�COMMON_CJK_CHARACTERS)�maxsize�	character�str�return�boolcCsdzt�|�}Wn
tyYdSwd|vp1d|vp1d|vp1d|vp1d|vp1d|vp1d|vp1d	|vS)
NFz
WITH GRAVEz
WITH ACUTEzWITH CEDILLAzWITH DIAERESISzWITH CIRCUMFLEXz
WITH TILDEzWITH MACRONzWITH RING ABOVE��unicodedata�name�
ValueError�r�description�r�F/opt/osm/venv/lib/python3.10/site-packages/charset_normalizer/utils.py�is_accentuateds(��������rcCs.t�|�}|s	|S|�d�}tt|dd��S)N� r�)r�
decomposition�split�chr�int)rZ
decomposed�codesrrr�
remove_accent-s


r&�
str | NonecCs.t|�}t��D]\}}||vr|SqdS)zK
    Retrieve the Unicode range official name from a single character.
    N)�ordr
�items)rZ
character_ord�
range_nameZ	ord_rangerrr�
unicode_range8s�r+cC�*z
t�|�}Wd|vStyYdSw)NFZLATINrrrrr�is_latinFs��r-cCs2t�|�}d|vrdSt|�}|durdSd|vS)N�PTF�Punctuation�r�categoryr+�r�character_category�character_rangerrr�is_punctuationOs
r5cCsBt�|�}d|vs
d|vrdSt|�}|durdSd|vo |dkS)N�S�NTFZFormsZLor0r2rrr�	is_symbol^s
r8cCs$t|�}|dur
dSd|vpd|vS)NFZ	EmoticonsZPictographs)r+)rr4rrr�is_emoticonmsr9cCs.|��s|dvr
dSt�|�}d|vp|dvS)N>�<�>�+u|T�Z>ZPcZPdZPo)�isspacerr1)rr3rrr�is_separatorws
r?cCs|��|��kS�N)�islower�isupper�rrrr�is_case_variable�srDcCr,)NFZCJKr�rZcharacter_namerrr�is_cjk����rFcCr,)NFZHIRAGANArrErrr�is_hiragana�rGrHcCr,)NFZKATAKANArrErrr�is_katakana�rGrIcCr,)NFZHANGULrrErrr�	is_hangul�rGrJcCr,)NFZTHAIrrErrr�is_thai�rGrKcCr,)NF�ARABICrrErrr�	is_arabic�rGrMcCs4zt�|�}Wn
tyYdSwd|vod|vS)NFrLz
ISOLATED FORMrrErrr�is_arabic_isolated_form�s�rNcCs|tvSr@)rrCrrr�is_cjk_uncommon�srOr*cst�fdd�tD��S)Nc3s�|]}|�vVqdSr@r)�.0�keyword�r*rr�	<genexpr>�s�z-is_unicode_range_secondary.<locals>.<genexpr>)�anyrrRrrRr�is_unicode_range_secondary�srUcCs(|��duo|��duo|dko|dkS)NF�u)r>�isprintablerCrrr�is_unprintable�s
���rX� �sequence�bytes�search_zoner$cCs�t|t�st�t|�}tt|dt||��jddd��}t|�dkr$dS|D]'}|���	dd�}t
��D]\}}||krB|S||krL|Sq4q&dS)zW
    Extract using ASCII-only decoder any specified encoding in the first n-bytes.
    N�ascii�ignore��errorsr�-�_)�
isinstancer[�	TypeError�lenrr�min�decode�lower�replacerr))rZr\Zseq_len�resultsZspecified_encoding�encoding_alias�
encoding_ianarrr�any_specified_encoding�s&
���rm�rcCs |dvptt�d|���jt�S)zQ
    Verify is a specific encoding is a multi byte one based on it IANA name
    >	�utf_8�	utf_16_leZ	utf_8_sig�utf_16�	utf_16_be�utf_32�	utf_32_be�utf_7�	utf_32_le�
encodings.)�
issubclass�	importlib�
import_modulerr)rrrr�is_multi_byte_encodings
��r{�tuple[str | None, bytes]cCsJtD] }t|}t|t�r|g}|D]}|�|�r!||fSqqdS)z9
    Identify and extract SIG/BOM in given sequence.
    )N�)r
rcr[�
startswith)rZ�
iana_encodingZmarks�markrrr�identify_sig_or_boms

��r�rcCs|dvS)N>rsrqr)rrrr�should_strip_sig_or_bom(sr�T�cp_name�strictcCsN|���dd�}t��D]\}}|||fvr|Sq|r%td|�d���|S)zIReturns the Python normalized encoding name (Not the IANA official name).rarbzUnable to retrieve IANA for '�')rhrirr)r)r�r�rkrlrrr�	iana_name,s�r��iana_name_a�iana_name_b�floatc	Cs�t|�st|�r
dSt�d|���j}t�d|���j}|dd�}|dd�}d}td�D]}t|g�}|�|�|�|�krA|d7}q,|dS)	Ngrwr^r_r�r	�)r{ryrzr�ranger[rg)	r�r�Z	decoder_aZ	decoder_bZid_aZid_bZcharacter_match_count�iZ
to_be_decodedrrr�
cp_similarity=s


�r�cCs|tvo	|t|vS)z�
    Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using
    the function cp_similarity.
    )r)r�r�rrr�
is_cp_similarQs
�r�Zcharset_normalizerz)%(asctime)s | %(levelname)s | %(message)s�level�
format_string�NonecCs:t�|�}|�|�t��}|�t�|��|�|�dSr@)�logging�	getLogger�setLevel�
StreamHandler�setFormatter�	Formatter�
addHandler)rr�r��logger�handlerrrr�set_logging_handler\s


r��	sequencesrl�offsetsr��
chunk_size�bom_or_sig_available�strip_sig_or_bom�sig_payload�is_multi_byte_decoder�decoded_payload�Generator[str, None, None]c	cs&�|r|dur|D]}	||	|	|�}
|
sdS|
Vq	dS|D]p}	|	|}|t|�dkr/q ||	|	|�}|rA|durA||}|j||rHdndd�}
|r�|	dkr�t|d�}
|r�|
d|
�|vr�t|	|	dd	�D]#}|||�}|r{|dur{||}|j|dd�}
|
d|
�|vr�nqi|
Vq dS)
NF�r^r�r_rr ����)rergrfr�)r�rlr�r�r�r�r�r�r�r��chunkZ	chunk_endZcut_sequenceZchunk_partial_size_chk�jrrr�cut_sequence_chunksisD��
�
���r�)rrrr)rrrr)rrrr')r*rrr)rY)rZr[r\r$rr')rrrr)rZr[rr|)rrrr)T)r�rr�rrr)r�rr�rrr�)r�rr�rrr)rrr�r$r�rrr�r@)r�r[rlrr�r�r�r$r�rr�rr�r[r�rr�r'rr�)7�
__future__rryr�r�codecsrZencodings.aliasesr�	functoolsr�rer�typingrZ_multibytecodecrZconstantr
rrr
rrrrr&r+r-r5r8r9r?rDrFrHrIrJrKrMrNrOrerUrXrmr{r�r�r�r�r��INFOr�r�rrrr�<module>s~$

									
 



��