JFIF$        dd7 

Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/maxminddb/__pycache__/file.cpython-311.pyc

�

�K�P�,���j�dZddlZddlmZ	ddlmZn#e$r	ddlmZYnwxYwGd�d��ZdS)z<For internal use only. It provides a slice-like file reader.�N)�Union)�Lockc��eZdZdZdeddfd�Zdeeeffd�Z	de
d	edefd
�Zdefd�Zdd�Z
eed
��rdedede
fd�ZdSdedede
fd�ZdS)�
FileBufferzA slice-able file reader�database�returnNc���t|d��|_tj|j�����j|_ttd��st��|_	dSdS)N�rb�pread)
�open�_handle�os�fstat�fileno�st_size�_size�hasattrr�_lock)�selfrs  �n/builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/maxminddb/file.py�__init__zFileBuffer.__init__s`���H�d�+�+����X�d�l�1�1�3�3�4�4�<��
��r�7�#�#�	 ����D�J�J�J�	 �	 ��keyc��t|t��r(|�|j|jz
|j��St|t
��r|�d|��dSt
d���)N�rzInvalid argument type.)�
isinstance�slice�_read�stop�start�int�	TypeError)rrs  r�__getitem__zFileBuffer.__getitem__sm���c�5�!�!�	?��:�:�c�h���2�C�I�>�>�>��c�3���	)��:�:�a��%�%�a�(�(��0�1�1�1r�needler c��|�|j|z
dz
|���|��}|dkr|S||zS)zReverse find needle from startr���)rr�rfind)rr$r �poss    rr'zFileBuffer.rfindsG���j�j���e�+�a�/��7�7�=�=�f�E�E���"�9�9��J��s�{�rc��|jS)zSize of file)r�rs r�sizezFileBuffer.size%s
���z�rc�8�|j���dS)z
Close fileN)r
�closer*s rr-zFileBuffer.close)s����������rr�
buffersize�offsetc�\�tj|j���||��S)zread that uses pread)rrr
r�rr.r/s   rrzFileBuffer._read/s&���8�D�L�/�/�1�1�:�v�F�F�Frc��|j5|j�|��|j�|��cddd��S#1swxYwYdS)a�read with a lock

            This lock is necessary as after a fork, the different processes
            will share the same file table entry, even if we dup the fd, and
            as such the same offsets. There does not appear to be a way to
            duplicate the file table entry and we cannot re-open based on the
            original path as that file may have replaced with another or
            unlinked.
            N)rr
�seek�readr1s   rrzFileBuffer._read6s�����
5�
5���!�!�&�)�)�)��|�(�(��4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5�
5�
5s�4A	�	A
�A
)rN)�__name__�
__module__�__qualname__�__doc__�strrrrr!r#�bytesr'r+r-rrr�rrrr
s3������"�"� �� �� � � � �2�u�U�C�Z�0�2�2�2�2��E��#��#������c����������w�r�7���5�	G�C�	G��	G��	G�	G�	G�	G�	G�	G�	5�C�	5��	5��	5�	5�	5�	5�	5�	5rr)	r8r�typingr�multiprocessingr�ImportError�	threadingrr;rr�<module>r@s���B�B�	�	�	�	��������$�$�$�$�$�$�$������������������55�55�55�55�55�55�55�55�55�55s��#�#
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg