�
I�gr� � � � d dl mZ ddlmZmZ d� ZdZeg dfd�� � Zed� � � Zed � � � Z ed
� � � Z
ed� � � Zed� � � Zed
� � � Z
ed� � � Zed� � � Zed� � � Zed� � � Zed� � � Zed� � � Zd� Zed� � � Zed� � � Zed� � � Zed� � � Zed� � � Zed� � � Zed� � � Zed$d�� � Zed� � � Zed� � � Zed � � � Zed!� � � Z ed"� � � Z! ed#� � � Z"dS )%� )�xrange� )�defun�
defun_wrappedc �� � dx}}d}g }t |� � D �]U\ }} | \ }
}}}
}}}d}t |
� � D ]4\ }}|s-| � || � � dk r|| rdx}}d}�5g d�}t ||
|g� � D ]�\ }}t |� � D ]�\ }}| � |� � \ }}|dk r�$|| j k rMd}|dk r1|D ].}| � |� � r|t |� � k rd} n�/|r�k||xx dz
cc<