a
�`wy �
@ s� d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm Z dd lm
Z
ejejej
ejejejejd
�Zejejejd�Zejejejejejejdd
� dd
� d�ZG dd� de�ZG dd� de �Z!G dd� de"�Z#dd� Z$G dd� de
e!e"��Z%G dd� de%�Z&G dd� de%�Z'G dd� de%�Z(G d d!� d!e&�Z)G d"d#� d#e&�Z*G d$d%� d%e&�Z+G d&d'� d'e&�Z,G d(d)� d)e&�Z-G d*d+� d+e&�Z.G d,d-� d-e&�Z/G d.d/� d/e&�Z0G d0d1� d1e&�Z1G d2d3� d3e&�Z2G d4d5� d5e&�Z3G d6d7� d7e&�Z4G d8d9� d9e&�Z5G d:d;� d;e&�Z6G d<d=� d=e&�Z7G d>d?� d?e%�Z8G d@dA� dAe8�Z9G dBdC� dCe8�Z:G dDdE� dEe8�Z;G dFdG� dGe8�Z<G dHdI� dIe8�Z=G dJdK� dKe=�Z>G dLdM� dMe=�Z?G dNdO� dOe=�Z@G dPdQ� dQe=�ZAG dRdS� dSe=�ZBG dTdU� dUe'�ZCG dVdW� dWe'�ZDG dXdY� dYe8�ZEdZd[� ZFG d\d]� d]e8�ZGG d^d_� d_e8�ZHG d`da� dae8�ZIG dbdc� dce8�ZJG ddde� dee8�ZKG dfdg� dge8�ZLG dhdi� die8�ZMG djdk� dke8�ZNG dldm� dme'�ZOeO j dndo�PeQdpdq� eRe�eRe�B eRe�B D ��� 7 _ G drds� dse9�ZSG dtdu� due9�ZTG dvdw� dwe9�ZUG dxdy� dye9�ZVG dzd{� d{e9�ZWG d|d}� d}e9�ZXG d~d� de9�ZYG d�d�� d�e9�ZZG d�d�� d�e9�Z[G d�d�� d�e:�Z\G d�d�� d�e:�Z]G d�d�� d�e:�Z^G d�d�� d�e8�Z_G d�d�� d�e8�Z`G d�d�� d�e8�ZaG d�d�� d�e8�ZbG d�d�� d�e8�ZcG d�d�� d�e8�ZdG d�d�� d�e8�ZeG d�d�� d�e8�ZfG d�d�� d�e&�ZgG d�d�� d�e&�ZhG d�d�� d�e&�ZiG d�d�� d�e&�ZjG d�d�� d�e&�ZkG d�d�� d�ek�Zld�d�� Zmenem�e!_o[mdS )�z�AST nodes generated by the parser for the compiler. Also provides
some node tree helper functions used by the parser and compiler in order
to normalize nodes.
� N)�deque)�Markup� )�izip)�PY2)� text_type)�with_metaclass)�*�/�//�**�%�+�-)�notr r c C s | |v S �N� ��a�br r �0/usr/lib/python3.9/site-packages/jinja2/nodes.py�<lambda># � r c C s | |vS r r r r r r r $ r )�eq�ne�gtZgteq�ltZlteq�inZnotinc @ s e Zd ZdZdS )�
Impossiblez8Raised if the node could not perform a requested action.N��__name__�
__module__�__qualname__�__doc__r r r r r ( s r c @ s e Zd ZdZdd� ZdS )�NodeTypez�A metaclass for nodes that handles the field and attribute
inheritance. fields and attributes from the parent class are
automatically forwarded to the child.c C s� dD ]l}g }|� t|d |d�� |� |�|d�� t|�dksHJ d��t|�tt|��ksdJ d��t|�||<