File: //usr/local/CyberCP/lib/python3.10/site-packages/ecdsa/__pycache__/numbertheory.cpython-310.pyc
o
�h�E � @ s8 d dl mZ d dlZd dlmZmZ d dlmZ ze W n e y' e
ZY nw zd dlmZm
Z
dZdZW n! eyW dZz
d dlm
Z
dZW n eyT dZY nw Y nw es\ergeeee
d ��f �Zd dlZd dlZd dlZd d
lmZ G dd� de�ZG d
d� de�ZG dd� de�ZG dd� de�Zdd� Zdd� Zdd� Z dd� Z!dd� Z"dd� Z#er�dd � Z$ner�d!d � Z$nej%d"kr�d#d � Z$nd$d � Z$zej&Z'W n
e(y� d%d&� Z'Y nw d'd(� Z&d)d*� Z)d+d,� Z*d-d.� Z+d/d0� Z,d1d2� Z-d3d4� Z.d5d6� Z/d7d8� Z0d9d:� Z1d;d<� Z2d=d>� Z3d?d@� Z4g dA�Z5d a6dS )B� )�divisionN)�
integer_types�PY2)�reduce)�powmod�mpzTF�r � )�
bit_lengthc @ s e Zd ZdZdS )�Errorz)Base class for exceptions in this module.N)�__name__�
__module__�__qualname__�__doc__� r r �E/usr/local/CyberCP/lib/python3.10/site-packages/ecdsa/numbertheory.pyr / s r c @ � e Zd ZdS )�JacobiErrorN�r r
r r r r r r 5 � r c @ r )�SquareRootErrorNr r r r r r 9 r r c @ r )�NegativeExponentErrorNr r r r r r = r r c C s, t �dt� |dk rtd| ��t| ||�S )z+Raise base to exponent, reducing by moduluszRFunction is unused in library code. If you use this code, change to pow() builtin.r z#Negative exponents (%d) not allowed)�warnings�warn�DeprecationWarningr �pow)�base�exponent�modulusr r r �modular_expA s ��r c C s� |d dksJ �t |�dksJ �t | �t |�krK| d dkr=tdt |�d �D ]}| | | d || | | | <