�
��g=� � �B � d dl mZ d dlmZ d dlmZ ddlmZ ddl m
Z
ddlmZ d dl
mZ d d lmZ d dlmZ d d
lmZmZ d dlmZ d dlmZmZ d d
lmZ d dlmZ d dlmZ d dl m!Z!m"Z"m#Z#m$Z$ d dl%m&Z& d dl'm(Z(m)Z) d dl*m+Z+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z?m@Z@ d dlAmBZBmCZCmDZD d dlEmFZF d dlGmHZH d d lImJZJ d d!lKmLZL d d"lMmNZNmOZO d d#lPmQZQ d d$lRZR G d%� d&e
e� � ZSd'� ZTd(� ZUd)� ZVd*� ZWd+� ZXd,� ZYd-� ZZd.� Z[d/� Z\d0� Z]d1� Z^d$S )2� )�Tuple)�
is_decreasing)�AccumulationBounds� )�ExprWithIntLimits)�
AddWithLimits)�
gosper_sum)�Expr)�Add)�
Derivative�expand)�Mul)�Float�_illegal)�Eq)�S)�ordered)�Dummy�Wild�Symbol�symbols)� factorial)� bernoulli�harmonic)�exp�log)� Piecewise)�cot�csc)�hyper)�KroneckerDelta)�zeta)�Integral)�And)�apart)�PolynomialError�PolificationFailed)�parallel_poly_from_expr�Poly�factor)�together)� limit_seq)�O��residue)� FiniteSet�Interval)�siftNc � � e Zd ZU dZdZeeeeef ed<