�
I�gݯ �
� � d Z dZddlZddlmZ ddlZdaddlmZmZm Z m
Z
mZmZm
Z
mZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z! e
dk rd � Z"nd
� Z"d� Z# G d� d
e$� � Z% e& n# e'$ r d� Z&Y nw xY w e&d� � Z( e&d� � Z) e&d� � Z* e&d� � Z+ e&d� � Z,e,Z-d� Z.d� Z/d� Z0de ddfZ1de ddfZ2de
ddfZ3de
ddfZ4de
ddfZ5deddfZ6de
ddfZ7de ddfZ8de ddfZ9de ddfZ:dZ;d� Z< G d � d!� � Z=dgd"� e>dd#� � D � � z Z? e=� � e?gZ@e)d$e*d%e,d&e+d'iZAd(� ZBd)� ZC eDeEfZFn# e'$ r eDfZFY nw xY wd*� ZGd+� ZHe
d,k rd- eIe� � v rejJ ZBejJ ZCe
dk r ejK xZBZCereGZKeHZLneBZKeCZLde-fd.�ZM eNd/� e>d0d1� � D � � � � ZOe
d,k rd2 eIe� � v rejP ZMe
dk rejM ZMde-fd3�ZQd4� ZRdkd5�ZSd6� ZTde-fd7�ZUde-fd8�ZVde-fd9�ZWde-fd:�ZXd;e-fd<�ZYd=e-fd>�ZZde-fd?�Z[d@e-fdA�Z\e-fdB�Z]dC� Z^dD� Z_dE� Z`dF� ZadG� ZbdH� ZcdI� ZddJ� ZedK� ZfdL� ZgdM� Zhde-fdN�Zide-fdO�Zjde-fdP�ZkdQ� Zlde-dfdR�Zmde-fdS�Znde-d@fdT�Zode-fdU�Zpe-fdV�Zqde-fdW�Zre-fdX�Zse
d,k repZteqZunerZtesZudY� ZvdZ� Zwe-fd[�Zxe-fd\�Zye-fd]�Zze,e+e+e,e)e*e*e)e(e(iZ{e,e,e+e+e)e*e*e)e(e(iZ|e-fd^�Z}d_� Z~d`� Z dldb�Z�dmdd�Z�e9e9e:e8de�Z�e-fdf�Z�dg� Z�dh� Z�e-fdi�Z�e-fdj�Z�e
dk r> ddl�m�c m�c m�Z� e�jm Zme�jn Zne�jt Zte�jx Zxe�j� Z�dS # e�$ r Y dS w xY wdS )nzH
Low-level functions for arbitrary-precision floating-point arithmetic.
� plaintext� N)�bisect� )
�MPZ�MPZ_TYPE�MPZ_ZERO�MPZ_ONE�MPZ_TWO�MPZ_FIVE�BACKEND�STRICT�HASH_MODULUS� HASH_BITS�gmpy�sage�
sage_utils)
�giant_steps�
trailtable�bctable�lshift�rshift�bitcount�trailing�
sqrt_fixed�numeral�isqrt�
isqrt_fast�sqrtrem�bin_to_radixr c �6 � | \ }}}}|t |� � ||fS �N��hex��x�sign�man�exp�bcs �c/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/mpmath/libmp/libmpf.py�to_pickabler+ s% � ����c�3���S��X�X�s�B�&�&� c �F � | \ }}}}|t |� � dd � ||fS )N� r"