o
    c^                     @   sl   d dl mZ ddlmZ ddlmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ G d	d
 d
eZdS )    )Union   )EUCJPDistributionAnalysis)CodingStateMachine)MachineStateProbingState)EUCJPContextAnalysis)MultiByteCharSetProber)EUCJP_SM_MODELc                       sx   e Zd Zd fddZd fddZedefddZedefd	d
Zde	e
ef defddZdefddZ  ZS )EUCJPProberreturnNc                    s0   t    tt| _t | _t | _| 	  d S N)
super__init__r   r
   	coding_smr   distribution_analyzerr   context_analyzerresetself	__class__ L/opt/certbot/lib/python3.10/site-packages/pip/_vendor/chardet/eucjpprober.pyr   '   s
   

zEUCJPProber.__init__c                    s   t    | j  d S r   )r   r   r   r   r   r   r   r   .   s   
zEUCJPProber.resetc                 C      dS )NzEUC-JPr   r   r   r   r   charset_name2      zEUCJPProber.charset_namec                 C   r   )NJapaneser   r   r   r   r   language6   r   zEUCJPProber.languagebyte_strc                 C   s@  | j d usJ | jd usJ t|D ]m\}}| j |}|tjkr2| jd| j| j	| t
j| _ nN|tjkr=t
j| _ nC|tjkr| j  }|dkra|| jd< | j| j| | j| j| q| j||d |d  | | j||d |d  | q|d | jd< | jt
jkr| j r|  | jkrt
j| _| jS )Nz!%s %s prober hit error at byte %sr   r   )r   r   	enumerate
next_stater   ERRORloggerdebugr   r   r   NOT_ME_stateITS_MEFOUND_ITSTARTget_current_charlen
_last_charr   feedstate	DETECTINGgot_enough_dataget_confidenceSHORTCUT_THRESHOLD)r   r   ibytecoding_statechar_lenr   r   r   r-   :   s@   





zEUCJPProber.feedc                 C   s,   | j d usJ | j }| j  }t||S r   )r   r   r1   max)r   context_confdistrib_confr   r   r   r1   a   s   


zEUCJPProber.get_confidence)r   N)__name__
__module____qualname__r   r   propertystrr   r   r   bytes	bytearrayr   r-   floatr1   __classcell__r   r   r   r   r   &   s    'r   N)typingr   chardistributionr   codingstatemachiner   enumsr   r   jpcntxr   mbcharsetproberr	   mbcssmr
   r   r   r   r   r   <module>   s   