1ÿþf�u�n�c�t�i�o�n� �r�e�s�e�t�N�a�v�L�i�n�k�s�(�)�{�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�n�a�v�-�l�i�n�k�,� �.�n�a�v�-�l�i�n�k�-�m�e�t�a�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�i�f�(�"�b�u�t�t�o�n�"�=�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�r�o�l�e�"�)�)�{�e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�"�f�a�l�s�e�"�)�;�l�e�t� �t�=�e�.�n�e�x�t�E�l�e�m�e�n�t�S�i�b�l�i�n�g�;�t�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�a�c�t�i�v�e�"�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�h�t�m�l�"�)�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�m�e�n�u�-�o�p�e�n�"�)�}�}�)�}�f�u�n�c�t�i�o�n� �r�e�s�e�t�N�a�v�S�u�b�L�i�n�k�s�(�)�{�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�n�a�v�-�s�u�b�-�l�i�n�k�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�"�b�u�t�t�o�n�"�=�=�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�r�o�l�e�"�)�&�&�(�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�"�f�a�l�s�e�"�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�s�u�b�m�e�n�u�-�l�v�l�-�2�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�a�c�t�i�v�e�"�)�}�)�)�}�)�}�!�f�u�n�c�t�i�o�n�(�t�,�e�)�{�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�&�&�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �m�o�d�u�l�e�?�e�(�e�x�p�o�r�t�s�,�r�e�q�u�i�r�e�(�"�j�q�u�e�r�y�"�)�)�:�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�"�e�x�p�o�r�t�s�"�,�"�j�q�u�e�r�y�"�]�,�e�)�:�e�(�t�.�b�o�o�t�s�t�r�a�p�=�{�}�,�t�.�j�Q�u�e�r�y�)�}�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �P�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�0�;�i�<�e�.�l�e�n�g�t�h�;�i�+�+�)�{�v�a�r� �n�=�e�[�i�]�;�n�.�e�n�u�m�e�r�a�b�l�e�=�n�.�e�n�u�m�e�r�a�b�l�e�|�|�!�1�,�n�.�c�o�n�f�i�g�u�r�a�b�l�e�=�!�0�,�"�v�a�l�u�e�"�i�n� �n�&�&�(�n�.�w�r�i�t�a�b�l�e�=�!�0�)�,�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�t�,�n�.�k�e�y�,�n�)�}�}�f�u�n�c�t�i�o�n� �i�(�t�,�e�,�i�)�{�e�&�&�P�(�t�.�p�r�o�t�o�t�y�p�e�,�e�)�,�i�&�&�P�(�t�,�i�)�}�f�u�n�c�t�i�o�n� �s�(�n�)�{�f�o�r�(�v�a�r� �t�=�1�;�t�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�t�+�+�)�{�v�a�r� �o�=�n�u�l�l�!�=�a�r�g�u�m�e�n�t�s�[�t�]�?�a�r�g�u�m�e�n�t�s�[�t�]�:�{�}�,�e�=�O�b�j�e�c�t�.�k�e�y�s�(�o�)�;�(�e�=�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�S�y�m�b�o�l�s�?�e�.�c�o�n�c�a�t�(�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�S�y�m�b�o�l�s�(�o�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�D�e�s�c�r�i�p�t�o�r�(�o�,�t�)�.�e�n�u�m�e�r�a�b�l�e�}�)�)�:�e�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�n�,�i�=�o�[�t�=�t�]�;�t� �i�n� �e�?�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�e�,�t�,�{�v�a�l�u�e�:�i�,�e�n�u�m�e�r�a�b�l�e�:�!�0�,�c�o�n�f�i�g�u�r�a�b�l�e�:�!�0�,�w�r�i�t�a�b�l�e�:�!�0�}�)�:�e�[�t�]�=�i�}�)�}�r�e�t�u�r�n� �n�}�f�t�=�e�=�e�&�&�e�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�"�d�e�f�a�u�l�t�"�)�?�e�.�d�e�f�a�u�l�t�:�e�,�m�t�=�"�t�r�a�n�s�i�t�i�o�n�e�n�d�"�,�g�t�=�{�T�R�A�N�S�I�T�I�O�N�_�E�N�D�:�"�b�s�T�r�a�n�s�i�t�i�o�n�E�n�d�"�,�g�e�t�U�I�D�:�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�;�t�+�=�~�~�(�1�e�6�*�M�a�t�h�.�r�a�n�d�o�m�(�)�)�,�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�t�)�;�)�;�r�e�t�u�r�n� �t�}�,�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�t�a�r�g�e�t�"�)�;�e�&�&�"�#�"�!�=�=�e�|�|�(�e�=�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�h�r�e�f�"�)�|�|�"�"�)�;�t�r�y�{�r�e�t�u�r�n� �d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�e�)�?�e�:�n�u�l�l�}�c�a�t�c�h�(�t�)�{�r�e�t�u�r�n� �n�u�l�l�}�}�,�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�t�)�r�e�t�u�r�n� �0�;�t�=�f�t�(�t�)�.�c�s�s�(�"�t�r�a�n�s�i�t�i�o�n�-�d�u�r�a�t�i�o�n�"�)�;�r�e�t�u�r�n� �p�a�r�s�e�F�l�o�a�t�(�t�)�?�(�t�=�t�.�s�p�l�i�t�(�"�,�"�)�[�0�]�,�1�e�3�*�p�a�r�s�e�F�l�o�a�t�(�t�)�)�:�0�}�,�r�e�f�l�o�w�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�o�f�f�s�e�t�H�e�i�g�h�t�}�,�t�r�i�g�g�e�r�T�r�a�n�s�i�t�i�o�n�E�n�d�:�f�u�n�c�t�i�o�n�(�t�)�{�f�t�(�t�)�.�t�r�i�g�g�e�r�(�m�t�)�}�,�s�u�p�p�o�r�t�s�T�r�a�n�s�i�t�i�o�n�E�n�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �B�o�o�l�e�a�n�(�m�t�)�}�,�i�s�E�l�e�m�e�n�t�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�(�t�[�0�]�|�|�t�)�.�n�o�d�e�T�y�p�e�}�,�t�y�p�e�C�h�e�c�k�C�o�n�f�i�g�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�f�o�r�(�v�a�r� �n� �i�n� �i�)�i�f�(�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�.�c�a�l�l�(�i�,�n�)�)�{�v�a�r� �o�=�i�[�n�]�,�s�=�e�[�n�]�,�s�=�s�&�&�g�t�.�i�s�E�l�e�m�e�n�t�(�s�)�?�"�e�l�e�m�e�n�t�"�:�{�}�.�t�o�S�t�r�i�n�g�.�c�a�l�l�(�s�)�.�m�a�t�c�h�(�/�\�s�(�[�a�-�z�]�+�)�/�i�)�[�1�]�.�t�o�L�o�w�e�r�C�a�s�e�(�)�;�i�f�(�!�n�e�w� �R�e�g�E�x�p�(�o�)�.�t�e�s�t�(�s�)�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�t�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�'�:� �O�p�t�i�o�n� �"�'�+�n�+�'�"� �p�r�o�v�i�d�e�d� �t�y�p�e� �"�'�+�s�+�'�"� �b�u�t� �e�x�p�e�c�t�e�d� �t�y�p�e� �"�'�+�o�+�'�"�.�'�)�}�}�}
1�,�f�t�.�f�n�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�,�i�=�!�1�;�r�e�t�u�r�n� �f�t�(�t�h�i�s�)�.�o�n�e�(�g�t�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�f�u�n�c�t�i�o�n�(�)�{�i�=�!�0�}�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�i�|�|�g�t�.�t�r�i�g�g�e�r�T�r�a�n�s�i�t�i�o�n�E�n�d�(�e�)�}�,�t�)�,�t�h�i�s�}�,�f�t�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�g�t�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�]�=�{�b�i�n�d�T�y�p�e�:�m�t�,�d�e�l�e�g�a�t�e�T�y�p�e�:�m�t�,�h�a�n�d�l�e�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�f�t�(�t�.�t�a�r�g�e�t�)�.�i�s�(�t�h�i�s�)�)�r�e�t�u�r�n� �t�.�h�a�n�d�l�e�O�b�j�.�h�a�n�d�l�e�r�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�}�}�;�f�o�r�(�v�a�r� �n�,�z�,�R�,�N�,�j�,�H�,�r�,�B�,�W�,�q�,�V�,�U�,�Y�,�d�,�Q�,�G�,�o�,�X�,�K�,�Z�,�J�,�t�t�,�u�,�h�,�e�t�,�i�t�,�l�,�n�t�,�o�t�,�s�t�,�r�t�,�a�t�,�l�t�,�a�,�c�t�,�d�t�,�u�t�,�h�t�,�p�t�,�f�t�,�m�t�,�g�t�,�p�=�g�t�,�c�=�(�c�=�"�.�"�+�(�R�=�"�b�s�.�a�l�e�r�t�"�)�,�N�=�(�n�=�e�)�.�f�n�[�z�=�"�a�l�e�r�t�"�]�,�j�=�{�C�L�O�S�E�:�"�c�l�o�s�e�"�+�c�,�C�L�O�S�E�D�:�"�c�l�o�s�e�d�"�+�c�,�C�L�I�C�K�_�D�A�T�A�_�A�P�I�:�"�c�l�i�c�k�"�+�c�+�"�.�d�a�t�a�-�a�p�i�"�}�,�(�c�=�x�t�.�p�r�o�t�o�t�y�p�e�)�.�c�l�o�s�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�_�e�l�e�m�e�n�t�;�t�&�&�(�e�=�t�h�i�s�.�_�g�e�t�R�o�o�t�E�l�e�m�e�n�t�(�t�)�)�,�t�h�i�s�.�_�t�r�i�g�g�e�r�C�l�o�s�e�E�v�e�n�t�(�e�)�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�t�h�i�s�.�_�r�e�m�o�v�e�E�l�e�m�e�n�t�(�e�)�}�,�c�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�n�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�R�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�n�u�l�l�}�,�c�.�_�g�e�t�R�o�o�t�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�t�)�,�i�=�!�1�;�r�e�t�u�r�n� �i�=�(�i�=�e�?�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�e�)�:�i�)�|�|�n�(�t�)�.�c�l�o�s�e�s�t�(�"�.�a�l�e�r�t�"�)�[�0�]�}�,�c�.�_�t�r�i�g�g�e�r�C�l�o�s�e�E�v�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�n�.�E�v�e�n�t�(�j�.�C�L�O�S�E�)�;�r�e�t�u�r�n� �n�(�t�)�.�t�r�i�g�g�e�r�(�e�)�,�e�}�,�c�.�_�r�e�m�o�v�e�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�i�=�t�h�i�s�;�n�(�e�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�,�n�(�e�)�.�h�a�s�C�l�a�s�s�(�"�f�a�d�e�"�)�?�(�t�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�e�)�,�n�(�e�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�.�_�d�e�s�t�r�o�y�E�l�e�m�e�n�t�(�e�,�t�)�}�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�t�)�)�:�t�h�i�s�.�_�d�e�s�t�r�o�y�E�l�e�m�e�n�t�(�e�)�}�,�c�.�_�d�e�s�t�r�o�y�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�n�(�t�)�.�d�e�t�a�c�h�(�)�.�t�r�i�g�g�e�r�(�j�.�C�L�O�S�E�D�)�.�r�e�m�o�v�e�(�)�}�,�x�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�n�(�t�h�i�s�)�,�e�=�t�.�d�a�t�a�(�R�)�;�e�|�|�(�e�=�n�e�w� �x�t�(�t�h�i�s�)�,�t�.�d�a�t�a�(�R�,�e�)�)�,�"�c�l�o�s�e�"�=�=�=�i�&�&�e�[�i�]�(�t�h�i�s�)�}�)�}�,�x�t�.�_�h�a�n�d�l�e�D�i�s�m�i�s�s�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�t�&�&�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�e�.�c�l�o�s�e�(�t�h�i�s�)�}�}�,�i�(�x�t�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�]�)�,�H�=�x�t�,�n�(�d�o�c�u�m�e�n�t�)�.�o�n�(�j�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�,�'�[�d�a�t�a�-�d�i�s�m�i�s�s�=�"�a�l�e�r�t�"�]�'�,�H�.�_�h�a�n�d�l�e�D�i�s�m�i�s�s�(�n�e�w� �H�)�)�,�n�.�f�n�[�z�]�=�H�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�n�.�f�n�[�z�]�.�C�o�n�s�t�r�u�c�t�o�r�=�H�,�n�.�f�n�[�z�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �n�.�f�n�[�z�]�=�N�,�H�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�H�)�,�v�t�=�(�f�=�"�.�"�+�(�W�=�"�b�s�.�b�u�t�t�o�n�"�)�,�q�=�(�r�=�e�)�.�f�n�[�B�=�"�b�u�t�t�o�n�"�]�,�V�=�"�a�c�t�i�v�e�"�,�m�=�'�[�d�a�t�a�-�t�o�g�g�l�e�^�=�"�b�u�t�t�o�n�"�]�'�,�U�=�"�.�b�t�n�"�,�f�=�{�C�L�I�C�K�_�D�A�T�A�_�A�P�I�:�"�c�l�i�c�k�"�+�f�+�(�v�t�=�"�.�d�a�t�a�-�a�p�i�"�)�,�F�O�C�U�S�_�B�L�U�R�_�D�A�T�A�_�A�P�I�:�"�f�o�c�u�s�"�+�f�+�v�t�+�"� �b�l�u�r�"�+�f�+�v�t�}�,�(�v�t�=�S�t�.�p�r�o�t�o�t�y�p�e�)�.�t�o�g�g�l�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�!�0�,�e�=�!�0�,�i�=�r�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�c�l�o�s�e�s�t�(�'�[�d�a�t�a�-�t�o�g
1�g�l�e�=�"�b�u�t�t�o�n�s�"�]�'�)�[�0�]�;�i�f�(�i�)�{�v�a�r� �n�,�o�=�t�h�i�s�.�_�e�l�e�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�i�n�p�u�t�"�)�;�i�f�(�o�)�{�i�f�(�"�r�a�d�i�o�"�=�=�=�o�.�t�y�p�e�&�&�(�o�.�c�h�e�c�k�e�d�&�&�t�h�i�s�.�_�e�l�e�m�e�n�t�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�V�)�?�t�=�!�1�:�(�n�=�i�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�.�a�c�t�i�v�e�"�)�)�&�&�r�(�n�)�.�r�e�m�o�v�e�C�l�a�s�s�(�V�)�)�,�t�)�{�i�f�(�o�.�h�a�s�A�t�t�r�i�b�u�t�e�(�"�d�i�s�a�b�l�e�d�"�)�|�|�i�.�h�a�s�A�t�t�r�i�b�u�t�e�(�"�d�i�s�a�b�l�e�d�"�)�|�|�o�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�"�d�i�s�a�b�l�e�d�"�)�|�|�i�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�"�d�i�s�a�b�l�e�d�"�)�)�r�e�t�u�r�n�;�o�.�c�h�e�c�k�e�d�=�!�t�h�i�s�.�_�e�l�e�m�e�n�t�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�V�)�,�r�(�o�)�.�t�r�i�g�g�e�r�(�"�c�h�a�n�g�e�"�)�}�o�.�f�o�c�u�s�(�)�,�e�=�!�1�}�}�e�&�&�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�p�r�e�s�s�e�d�"�,�!�t�h�i�s�.�_�e�l�e�m�e�n�t�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�V�)�)�,�t�&�&�r�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�t�o�g�g�l�e�C�l�a�s�s�(�V�)�}�,�v�t�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�r�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�W�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�n�u�l�l�}�,�S�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�r�(�t�h�i�s�)�.�d�a�t�a�(�W�)�;�t�|�|�(�t�=�n�e�w� �S�t�(�t�h�i�s�)�,�r�(�t�h�i�s�)�.�d�a�t�a�(�W�,�t�)�)�,�"�t�o�g�g�l�e�"�=�=�=�e�&�&�t�[�e�]�(�)�}�)�}�,�i�(�S�t�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�]�)�,�Y�=�S�t�,�r�(�d�o�c�u�m�e�n�t�)�.�o�n�(�f�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�,�m�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�;�t�=�t�.�t�a�r�g�e�t�;�r�(�t�)�.�h�a�s�C�l�a�s�s�(�"�b�t�n�"�)�|�|�(�t�=�r�(�t�)�.�c�l�o�s�e�s�t�(�U�)�)�,�Y�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�r�(�t�)�,�"�t�o�g�g�l�e�"�)�}�)�.�o�n�(�f�.�F�O�C�U�S�_�B�L�U�R�_�D�A�T�A�_�A�P�I�,�m�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�r�(�t�.�t�a�r�g�e�t�)�.�c�l�o�s�e�s�t�(�U�)�[�0�]�;�r�(�e�)�.�t�o�g�g�l�e�C�l�a�s�s�(�"�f�o�c�u�s�"�,�/�^�f�o�c�u�s�(�i�n�)�?�$�/�.�t�e�s�t�(�t�.�t�y�p�e�)�)�}�)�,�r�.�f�n�[�B�]�=�Y�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�r�.�f�n�[�B�]�.�C�o�n�s�t�r�u�c�t�o�r�=�Y�,�r�.�f�n�[�B�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �r�.�f�n�[�B�]�=�q�,�Y�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�Y�)�,�f�=�(�o�=�"�.�"�+�(�G�=�"�b�s�.�c�a�r�o�u�s�e�l�"�)�,�X�=�(�d�=�e�)�.�f�n�[�Q�=�"�c�a�r�o�u�s�e�l�"�]�,�K�=�{�i�n�t�e�r�v�a�l�:�5�e�3�,�k�e�y�b�o�a�r�d�:�!�0�,�s�l�i�d�e�:�!�(�f�=�"�.�d�a�t�a�-�a�p�i�"�)�,�p�a�u�s�e�:�"�h�o�v�e�r�"�,�w�r�a�p�:�!�0�}�,�Z�=�{�i�n�t�e�r�v�a�l�:�"�(�n�u�m�b�e�r�|�b�o�o�l�e�a�n�)�"�,�k�e�y�b�o�a�r�d�:�"�b�o�o�l�e�a�n�"�,�s�l�i�d�e�:�"�(�b�o�o�l�e�a�n�|�s�t�r�i�n�g�)�"�,�p�a�u�s�e�:�"�(�s�t�r�i�n�g�|�b�o�o�l�e�a�n�)�"�,�w�r�a�p�:�"�b�o�o�l�e�a�n�"�}�,�J�=�"�n�e�x�t�"�,�t�t�=�"�p�r�e�v�"�,�u�=�{�S�L�I�D�E�:�"�s�l�i�d�e�"�+�o�,�S�L�I�D�:�"�s�l�i�d�"�+�o�,�K�E�Y�D�O�W�N�:�"�k�e�y�d�o�w�n�"�+�o�,�M�O�U�S�E�E�N�T�E�R�:�"�m�o�u�s�e�e�n�t�e�r�"�+�o�,�M�O�U�S�E�L�E�A�V�E�:�"�m�o�u�s�e�l�e�a�v�e�"�+�o�,�T�O�U�C�H�E�N�D�:�"�t�o�u�c�h�e�n�d�"�+�o�,�L�O�A�D�_�D�A�T�A�_�A�P�I�:�"�l�o�a�d�"�+�o�+�f�,�C�L�I�C�K�_�D�A�T�A�_�A�P�I�:�"�c�l�i�c�k�"�+�o�+�f�}�,�h�=�"�a�c�t�i�v�e�"�,�e�t�=�"�.�a�c�t�i�v�e�.�c�a�r�o�u�s�e�l�-�i�t�e�m�"�,�(�m�=�T�t�.�p�r�o�t�o�t�y�p�e�)�.�n�e�x�t�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�i�s�S�l�i�d�i�n�g�|�|�t�h�i�s�.�_�s�l�i�d�e�(�J�)�}�,�m�.�n�e�x�t�W�h�e�n�V�i�s�i�b�l�e�=�f�u�n�c�t�i�o�n�(�)�{�!�d�o�c�u�m�e�n�t�.�h�i�d�d�e�n�&�&�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�i�s�(�"�:�v�i�s�i�b�l�e�"�)�&�&�"�h�i�d�d�e�n�"�!�=�=�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�c�s�s�(�"�v�i�s�i�b�i�l�i�t�y�"�)�&�&�t�h�i�s�.�n�e�x�t�(�)�}�,�m�.�p�r�e�v�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�i�s�S�l�i�d�i�n�g�|�|�t�h�i�s�.�_�s�l�i�d�e�(�t�t�)�}�,�m�.�p�a�u�s�e�=�f�u�n�c�t�i�o�n�(�t�)�{�t�|�|�(�t�h�i�s�.�_�i�s�P�a�u�s�e�d�=�!�0�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�.�c�a�r�o�u�s�e�l�-�i�t�e�m�-�n�e�x�t�,� �.�c�a�r�o�u�s�e�l�-�i�t�e�m�-�p�r�e�v�"�)�&�&�(�p�.�t�r�i�g�g�e�r�T�r�a�n�s�i�t�i�o�n�E�n�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�t�h�i�s�.�c�y�c�l�e�(�!�0�)�)�,�c�l�e�a�r�I�n�t�e�r�v�a�l�(�t�h�i�s�.�_�i�n�t�e�r�v�a�l�)�,�t�h�i�s�.�_�i�n�t�e�r�v�a�l�=�n�u�l�l�}�,�m�.�c�y�c�l�e�=�f�u�n�c�t�i�o�n�(�t�)�{�t�|�|�(�t�h�i�s�.�_�i�s�P�a�u�s�e�d�=�!�1�)�,�t�h�i�s�.�_�i�n�t�e�r�v�a�l�&�&�(�c�l�e�a�r�I�n�t�e�r�v�a�l�(�t�h�i�s�.�_�i�n�t�e�r�v�a�l�)�,�t�h�i�s�.�_�i�n�t�e�r�v�a�l�=�n�u�l�l�)�,�t�h�i�s�.�_�c�o�n�f�i�g�.�i�n�t�e�r�v�a�l�&�&�!�t�h�i�s�.�_�i�s�P�a�u�s�e�d�&�&�(�t�h�i�s�.�_�i�n�t�e�r�v�a�l�=�s�e�t�I�n�t�e�r�v�a�l�(�(�d�o�c�u�m�e�n�t�.�v�i�s�i�b�i�l�i�t�y�S�t
1�a�t�e�?�t�h�i�s�.�n�e�x�t�W�h�e�n�V�i�s�i�b�l�e�:�t�h�i�s�.�n�e�x�t�)�.�b�i�n�d�(�t�h�i�s�)�,�t�h�i�s�.�_�c�o�n�f�i�g�.�i�n�t�e�r�v�a�l�)�)�}�,�m�.�t�o�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�,�i�=�(�t�h�i�s�.�_�a�c�t�i�v�e�E�l�e�m�e�n�t�=�t�h�i�s�.�_�e�l�e�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�e�t�)�,�t�h�i�s�.�_�g�e�t�I�t�e�m�I�n�d�e�x�(�t�h�i�s�.�_�a�c�t�i�v�e�E�l�e�m�e�n�t�)�)�;�i�f�(�!�(�t�>�t�h�i�s�.�_�i�t�e�m�s�.�l�e�n�g�t�h�-�1�|�|�t�<�0�)�)�i�f�(�t�h�i�s�.�_�i�s�S�l�i�d�i�n�g�)�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�e�(�u�.�S�L�I�D�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�.�t�o�(�t�)�}�)�;�e�l�s�e�{�i�f�(�i�=�=�=�t�)�r�e�t�u�r�n� �t�h�i�s�.�p�a�u�s�e�(�)�,�v�o�i�d� �t�h�i�s�.�c�y�c�l�e�(�)�;�t�h�i�s�.�_�s�l�i�d�e�(�i�<�t�?�J�:�t�t�,�t�h�i�s�.�_�i�t�e�m�s�[�t�]�)�}�}�,�m�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�f�f�(�o�)�,�d�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�G�)�,�t�h�i�s�.�_�i�t�e�m�s�=�n�u�l�l�,�t�h�i�s�.�_�c�o�n�f�i�g�=�n�u�l�l�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�_�i�n�t�e�r�v�a�l�=�n�u�l�l�,�t�h�i�s�.�_�i�s�P�a�u�s�e�d�=�n�u�l�l�,�t�h�i�s�.�_�i�s�S�l�i�d�i�n�g�=�n�u�l�l�,�t�h�i�s�.�_�a�c�t�i�v�e�E�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�E�l�e�m�e�n�t�=�n�u�l�l�}�,�m�.�_�g�e�t�C�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�=�s�(�{�}�,�K�,�t�)�,�p�.�t�y�p�e�C�h�e�c�k�C�o�n�f�i�g�(�Q�,�t�,�Z�)�,�t�}�,�m�.�_�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�t�h�i�s�.�_�c�o�n�f�i�g�.�k�e�y�b�o�a�r�d�&�&�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�(�u�.�K�E�Y�D�O�W�N�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�.�_�k�e�y�d�o�w�n�(�t�)�}�)�,�"�h�o�v�e�r�"�=�=�=�t�h�i�s�.�_�c�o�n�f�i�g�.�p�a�u�s�e�&�&�(�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�(�u�.�M�O�U�S�E�E�N�T�E�R�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�.�p�a�u�s�e�(�t�)�}�)�.�o�n�(�u�.�M�O�U�S�E�L�E�A�V�E�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�.�c�y�c�l�e�(�t�)�}�)�,�"�o�n�t�o�u�c�h�s�t�a�r�t�"�i�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�&�&�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�(�u�.�T�O�U�C�H�E�N�D�,�f�u�n�c�t�i�o�n�(�)�{�e�.�p�a�u�s�e�(�)�,�e�.�t�o�u�c�h�T�i�m�e�o�u�t�&�&�c�l�e�a�r�T�i�m�e�o�u�t�(�e�.�t�o�u�c�h�T�i�m�e�o�u�t�)�,�e�.�t�o�u�c�h�T�i�m�e�o�u�t�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�.�c�y�c�l�e�(�t�)�}�,�5�0�0�+�e�.�_�c�o�n�f�i�g�.�i�n�t�e�r�v�a�l�)�}�)�)�}�,�m�.�_�k�e�y�d�o�w�n�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�/�i�n�p�u�t�|�t�e�x�t�a�r�e�a�/�i�.�t�e�s�t�(�t�.�t�a�r�g�e�t�.�t�a�g�N�a�m�e�)�)�s�w�i�t�c�h�(�t�.�w�h�i�c�h�)�{�c�a�s�e� �3�7�:�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�h�i�s�.�p�r�e�v�(�)�;�b�r�e�a�k�;�c�a�s�e� �3�9�:�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�h�i�s�.�n�e�x�t�(�)�}�}�,�m�.�_�g�e�t�I�t�e�m�I�n�d�e�x�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�i�t�e�m�s�=�t�&�&�t�.�p�a�r�e�n�t�N�o�d�e�?�[�]�.�s�l�i�c�e�.�c�a�l�l�(�t�.�p�a�r�e�n�t�N�o�d�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�c�a�r�o�u�s�e�l�-�i�t�e�m�"�)�)�:�[�]�,�t�h�i�s�.�_�i�t�e�m�s�.�i�n�d�e�x�O�f�(�t�)�}�,�m�.�_�g�e�t�I�t�e�m�B�y�D�i�r�e�c�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�=�=�=�J�,�n�=�t�=�=�=�t�t�,�o�=�t�h�i�s�.�_�g�e�t�I�t�e�m�I�n�d�e�x�(�e�)�,�s�=�t�h�i�s�.�_�i�t�e�m�s�.�l�e�n�g�t�h�-�1�;�i�f�(�(�n�&�&�0�=�=�=�o�|�|�i�&�&�o�=�=�=�s�)�&�&�!�t�h�i�s�.�_�c�o�n�f�i�g�.�w�r�a�p�)�r�e�t�u�r�n� �e�;�n�=�(�o�+�(�t�=�=�=�t�t�?�-�1�:�1�)�)�%�t�h�i�s�.�_�i�t�e�m�s�.�l�e�n�g�t�h�;�r�e�t�u�r�n�-�1�=�=�n�?�t�h�i�s�.�_�i�t�e�m�s�[�t�h�i�s�.�_�i�t�e�m�s�.�l�e�n�g�t�h�-�1�]�:�t�h�i�s�.�_�i�t�e�m�s�[�n�]�}�,�m�.�_�t�r�i�g�g�e�r�S�l�i�d�e�E�v�e�n�t�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�_�g�e�t�I�t�e�m�I�n�d�e�x�(�t�)�,�n�=�t�h�i�s�.�_�g�e�t�I�t�e�m�I�n�d�e�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�e�t�)�)�,�t�=�d�.�E�v�e�n�t�(�u�.�S�L�I�D�E�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�t�,�d�i�r�e�c�t�i�o�n�:�e�,�f�r�o�m�:�n�,�t�o�:�i�}�)�;�r�e�t�u�r�n� �d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�t�)�,�t�}�,�m�.�_�s�e�t�A�c�t�i�v�e�I�n�d�i�c�a�t�o�r�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�E�l�e�m�e�n�t�&�&�(�e�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�E�l�e�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�a�c�t�i�v�e�"�)�)�,�d�(�e�)�.�r�e�m�o�v�e�C�l�a�s�s�(�h�)�,�(�e�=�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�E�l�e�m�e�n�t�.�c�h�i�l�d�r�e�n�[�t�h�i�s�.�_�g�e�t�I�t�e�m�I�n�d�e�x�(�t�)�]�)�&�&�d�(�e�)�.�a�d�d�C�l�a�s�s�(�h�)�)�}�,�m�.�_�s�l�i�d�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�,�s�=�t�h�i�s�,�r�=�t�h�i�s�.�_�e�l�e�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�e�t�)�,�a�=�t�h�i�s�.�_�g�e�t�I�t�e�m�I�n�d�e�x�(�r�)�,�l�=�e�|�|�r�&�&�t�h�i�s�.�_�g�e�t�I�t�e�m�B�y�D�i�r�e�c�t�i�o�n�(�t�,�r�)�,�e�=�t�h�i�s�.�_�g�e�t�I�t�e�m�I�n�d�e�x�(�l�)�,�c�=�B�o�o�l�e�a�n�(�t�h�i�s�.�_�i�n�t�e�r�v�a�l�)�,�t�=�t�=�=�=�J�?�(�i�=�"�c�a�r�o�u�s�e�l�-�i�t�e�m�-�l�e�f�t�"�,�n�=�"�c�a�r�o�u�s�e�l�-�i�t�e�m�-�n�e�x�t�"�,�"�l�e�f�t�"�)�:�(�i�=�"�c�a�r�o�u�s�e�l�-�i�t�e�m�-�r�i�g�h�t�"�,�n�=�"�c�a�r�o�u�s�e�l�-�i�t�e�m�-�p�r�e�v�"�,�"�r�i�g�h�t�"�)�;�l�&�&�d�(�l�)�.�h�a�s�C�l�a�s�s�(�h�)�?�t�h�i�s�.�_�i�s�S�l�i�d�i�n�g�=�!�1�:�!�t�h�i�s�.�_�t�r�i�g�g�e�r�S�l�i�d�e�E�v�e�n�t�(�l�,�t�)�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�&�&�r
1�&�&�l�&�&�(�t�h�i�s�.�_�i�s�S�l�i�d�i�n�g�=�!�0�,�c�&�&�t�h�i�s�.�p�a�u�s�e�(�)�,�t�h�i�s�.�_�s�e�t�A�c�t�i�v�e�I�n�d�i�c�a�t�o�r�E�l�e�m�e�n�t�(�l�)�,�o�=�d�.�E�v�e�n�t�(�u�.�S�L�I�D�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�l�,�d�i�r�e�c�t�i�o�n�:�t�,�f�r�o�m�:�a�,�t�o�:�e�}�)�,�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�"�s�l�i�d�e�"�)�?�(�d�(�l�)�.�a�d�d�C�l�a�s�s�(�n�)�,�p�.�r�e�f�l�o�w�(�l�)�,�d�(�r�)�.�a�d�d�C�l�a�s�s�(�i�)�,�d�(�l�)�.�a�d�d�C�l�a�s�s�(�i�)�,�t�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�r�)�,�d�(�r�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�f�u�n�c�t�i�o�n�(�)�{�d�(�l�)�.�r�e�m�o�v�e�C�l�a�s�s�(�i�+�"� �"�+�n�)�.�a�d�d�C�l�a�s�s�(�h�)�,�d�(�r�)�.�r�e�m�o�v�e�C�l�a�s�s�(�h�+�"� �"�+�n�+�"� �"�+�i�)�,�s�.�_�i�s�S�l�i�d�i�n�g�=�!�1�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �d�(�s�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�o�)�}�,�0�)�}�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�t�)�)�:�(�d�(�r�)�.�r�e�m�o�v�e�C�l�a�s�s�(�h�)�,�d�(�l�)�.�a�d�d�C�l�a�s�s�(�h�)�,�t�h�i�s�.�_�i�s�S�l�i�d�i�n�g�=�!�1�,�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�o�)�)�,�c�&�&�t�h�i�s�.�c�y�c�l�e�(�)�)�}�,�T�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�n�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�d�(�t�h�i�s�)�.�d�a�t�a�(�G�)�,�e�=�s�(�{�}�,�K�,�d�(�t�h�i�s�)�.�d�a�t�a�(�)�)�,�i�=�(�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �n�&�&�(�e�=�s�(�{�}�,�e�,�n�)�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �n�?�n�:�e�.�s�l�i�d�e�)�;�i�f�(�t�|�|�(�t�=�n�e�w� �T�t�(�t�h�i�s�,�e�)�,�d�(�t�h�i�s�)�.�d�a�t�a�(�G�,�t�)�)�,�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �n�)�t�.�t�o�(�n�)�;�e�l�s�e� �i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �i�)�{�i�f�(�v�o�i�d� �0�=�=�=�t�[�i�]�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�'�N�o� �m�e�t�h�o�d� �n�a�m�e�d� �"�'�+�i�+�'�"�'�)�;�t�[�i�]�(�)�}�e�l�s�e� �e�.�i�n�t�e�r�v�a�l�&�&�(�t�.�p�a�u�s�e�(�)�,�t�.�c�y�c�l�e�(�)�)�}�)�}�,�T�t�.�_�d�a�t�a�A�p�i�C�l�i�c�k�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�)�;�n�&�&�(�n�=�d�(�n�)�[�0�]�)�&�&�d�(�n�)�.�h�a�s�C�l�a�s�s�(�"�c�a�r�o�u�s�e�l�"�)�&�&�(�e�=�s�(�{�}�,�d�(�n�)�.�d�a�t�a�(�)�,�d�(�t�h�i�s�)�.�d�a�t�a�(�)�)�,�(�i�=�t�h�i�s�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�s�l�i�d�e�-�t�o�"�)�)�&�&�(�e�.�i�n�t�e�r�v�a�l�=�!�1�)�,�T�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�d�(�n�)�,�e�)�,�i�&�&�d�(�n�)�.�d�a�t�a�(�G�)�.�t�o�(�i�)�,�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�)�}�,�i�(�T�t�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �K�}�}�]�)�,�i�t�=�T�t�,�d�(�d�o�c�u�m�e�n�t�)�.�o�n�(�u�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�,�"�[�d�a�t�a�-�s�l�i�d�e�]�,� �[�d�a�t�a�-�s�l�i�d�e�-�t�o�]�"�,�i�t�.�_�d�a�t�a�A�p�i�C�l�i�c�k�H�a�n�d�l�e�r�)�,�d�(�w�i�n�d�o�w�)�.�o�n�(�u�.�L�O�A�D�_�D�A�T�A�_�A�P�I�,�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�'�[�d�a�t�a�-�r�i�d�e�=�"�c�a�r�o�u�s�e�l�"�]�'�)�)�,�e�=�0�,�i�=�t�.�l�e�n�g�t�h�;�e�<�i�;�e�+�+�)�{�v�a�r� �n�=�d�(�t�[�e�]�)�;�i�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�n�,�n�.�d�a�t�a�(�)�)�}�}�)�,�d�.�f�n�[�Q�]�=�i�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�d�.�f�n�[�Q�]�.�C�o�n�s�t�r�u�c�t�o�r�=�i�t�,�d�.�f�n�[�Q�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �d�.�f�n�[�Q�]�=�X�,�i�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�i�t�)�,�m�=�(�m�=�"�.�"�+�(�o�t�=�"�b�s�.�c�o�l�l�a�p�s�e�"�)�,�s�t�=�(�l�=�e�)�.�f�n�[�n�t�=�"�c�o�l�l�a�p�s�e�"�]�,�r�t�=�{�t�o�g�g�l�e�:�!�0�,�p�a�r�e�n�t�:�"�"�}�,�a�t�=�{�t�o�g�g�l�e�:�"�b�o�o�l�e�a�n�"�,�p�a�r�e�n�t�:�"�(�s�t�r�i�n�g�|�e�l�e�m�e�n�t�)�"�}�,�l�t�=�{�S�H�O�W�:�"�s�h�o�w�"�+�m�,�S�H�O�W�N�:�"�s�h�o�w�n�"�+�m�,�H�I�D�E�:�"�h�i�d�e�"�+�m�,�H�I�D�D�E�N�:�"�h�i�d�d�e�n�"�+�m�,�C�L�I�C�K�_�D�A�T�A�_�A�P�I�:�"�c�l�i�c�k�"�+�m�+�"�.�d�a�t�a�-�a�p�i�"�}�,�a�=�"�s�h�o�w�"�,�c�t�=�"�c�o�l�l�a�p�s�e�"�,�d�t�=�"�c�o�l�l�a�p�s�i�n�g�"�,�u�t�=�"�c�o�l�l�a�p�s�e�d�"�,�h�t�=�'�[�d�a�t�a�-�t�o�g
1�g�l�e�=�"�c�o�l�l�a�p�s�e�"�]�'�,�(�m�=�g�.�p�r�o�t�o�t�y�p�e�)�.�t�o�g�g�l�e�=�f�u�n�c�t�i�o�n�(�)�{�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�a�)�?�t�h�i�s�.�h�i�d�e�(�)�:�t�h�i�s�.�s�h�o�w�(�)�}�,�m�.�s�h�o�w�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�,�o�=�t�h�i�s�;�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�|�|�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�a�)�|�|�(�t�=�t�h�i�s�.�_�p�a�r�e�n�t�&�&�0�=�=�=�(�t�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�t�h�i�s�.�_�p�a�r�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�s�h�o�w�,� �.�c�o�l�l�a�p�s�i�n�g�"�)�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�p�a�r�e�n�t�"�)�=�=�=�o�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�}�)�)�.�l�e�n�g�t�h�?�n�u�l�l�:�t�)�&�&�(�n�=�l�(�t�)�.�n�o�t�(�t�h�i�s�.�_�s�e�l�e�c�t�o�r�)�.�d�a�t�a�(�o�t�)�)�&�&�n�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�|�|�(�i�=�l�.�E�v�e�n�t�(�l�t�.�S�H�O�W�)�,�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�i�)�,�i�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�(�t�&�&�(�g�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�l�(�t�)�.�n�o�t�(�t�h�i�s�.�_�s�e�l�e�c�t�o�r�)�,�"�h�i�d�e�"�)�,�n�|�|�l�(�t�)�.�d�a�t�a�(�o�t�,�n�u�l�l�)�)�,�e�=�t�h�i�s�.�_�g�e�t�D�i�m�e�n�s�i�o�n�(�)�,�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�r�e�m�o�v�e�C�l�a�s�s�(�c�t�)�.�a�d�d�C�l�a�s�s�(�d�t�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�[�e�]�=�0�,�t�h�i�s�.�_�t�r�i�g�g�e�r�A�r�r�a�y�.�l�e�n�g�t�h�&�&�l�(�t�h�i�s�.�_�t�r�i�g�g�e�r�A�r�r�a�y�)�.�r�e�m�o�v�e�C�l�a�s�s�(�u�t�)�.�a�t�t�r�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�!�0�)�,�t�h�i�s�.�s�e�t�T�r�a�n�s�i�t�i�o�n�i�n�g�(�!�0�)�,�i�=�"�s�c�r�o�l�l�"�+�(�e�[�0�]�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�e�.�s�l�i�c�e�(�1�)�)�,�n�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�f�u�n�c�t�i�o�n�(�)�{�l�(�o�.�_�e�l�e�m�e�n�t�)�.�r�e�m�o�v�e�C�l�a�s�s�(�d�t�)�.�a�d�d�C�l�a�s�s�(�c�t�)�.�a�d�d�C�l�a�s�s�(�a�)�,�o�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�[�e�]�=�"�"�,�o�.�s�e�t�T�r�a�n�s�i�t�i�o�n�i�n�g�(�!�1�)�,�l�(�o�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�l�t�.�S�H�O�W�N�)�}�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�n�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�[�e�]�=�t�h�i�s�.�_�e�l�e�m�e�n�t�[�i�]�+�"�p�x�"�)�)�}�,�m�.�h�i�d�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�i�f�(�!�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�&�&�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�a�)�)�{�v�a�r� �e�=�l�.�E�v�e�n�t�(�l�t�.�H�I�D�E�)�;�i�f�(�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�e�)�,�!�e�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�)�{�v�a�r� �e�=�t�h�i�s�.�_�g�e�t�D�i�m�e�n�s�i�o�n�(�)�,�i�=�(�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�[�e�]�=�t�h�i�s�.�_�e�l�e�m�e�n�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�[�e�]�+�"�p�x�"�,�p�.�r�e�f�l�o�w�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�a�d�d�C�l�a�s�s�(�d�t�)�.�r�e�m�o�v�e�C�l�a�s�s�(�c�t�)�.�r�e�m�o�v�e�C�l�a�s�s�(�a�)�,�t�h�i�s�.�_�t�r�i�g�g�e�r�A�r�r�a�y�.�l�e�n�g�t�h�)�;�i�f�(�0�<�i�)�f�o�r�(�v�a�r� �n�=�0�;�n�<�i�;�n�+�+�)�{�v�a�r� �o�=�t�h�i�s�.�_�t�r�i�g�g�e�r�A�r�r�a�y�[�n�]�,�s�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�o�)�;�n�u�l�l�=�=�=�s�|�|�l�(�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�s�)�)�)�.�h�a�s�C�l�a�s�s�(�a�)�|�|�l�(�o�)�.�a�d�d�C�l�a�s�s�(�u�t�)�.�a�t�t�r�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�!�1�)�}�t�h�i�s�.�s�e�t�T�r�a�n�s�i�t�i�o�n�i�n�g�(�!�0�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�[�e�]�=�"�"�;�e�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�;�l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�f�u�n�c�t�i�o�n�(�)�{�t�.�s�e�t�T�r�a�n�s�i�t�i�o�n�i�n�g�(�!�1�)�,�l�(�t�.�_�e�l�e�m�e�n�t�)�.�r�e�m�o�v�e�C�l�a�s�s�(�d�t�)�.�a�d�d�C�l�a�s�s�(�c�t�)�.�t�r�i�g�g�e�r�(�l�t�.�H�I�D�D�E�N�)�}�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�e�)�}�}�}�,�m�.�s�e�t�T�r�a�n�s�i�t�i�o�n�i�n�g�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�=�t�}�,�m�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�l�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�o�t�)�,�t�h�i�s�.�_�c�o�n�f�i�g�=�n�u�l�l�,�t�h�i�s�.�_�p�a�r�e�n�t�=�n�u�l�l�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�_�t�r�i�g�g�e�r�A�r�r�a�y�=�n�u�l�l�,�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�=�n�u�l�l�}�,�m�.�_�g�e�t�C�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�(�t�=�s�(�{�}�,�r�t�,�t�)�)�.�t�o�g�g�l�e�=�B�o�o�l�e�a�n�(�t�.�t�o�g�g�l�e�)�,�p�.�t�y�p�e�C�h�e�c�k�C�o�n�f�i�g�(�n�t�,�t�,�a�t�)�,�t�}�,�m�.�_�g�e�t�D�i�m�e�n�s�i�o�n�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �l�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�"�w�i�d�t�h�"�)�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�}�,�m�.�_�g�e�t�P�a�r�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�=�t�h�i�s�,�t�=�n�u�l�l�,�e�=�(�p�.�i�s�E�l�e�m�e�n�t�(�t
1�h�i�s�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�)�?�(�t�=�t�h�i�s�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�,�v�o�i�d� �0�!�=�=�t�h�i�s�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�.�j�q�u�e�r�y�&�&�(�t�=�t�h�i�s�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�[�0�]�)�)�:�t�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�t�h�i�s�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�)�,�'�[�d�a�t�a�-�t�o�g�g�l�e�=�"�c�o�l�l�a�p�s�e�"�]�[�d�a�t�a�-�p�a�r�e�n�t�=�"�'�+�t�h�i�s�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�+�'�"�]�'�)�,�e�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�e�)�)�;�r�e�t�u�r�n� �l�(�e�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�.�_�a�d�d�A�r�i�a�A�n�d�C�o�l�l�a�p�s�e�d�C�l�a�s�s�(�g�.�_�g�e�t�T�a�r�g�e�t�F�r�o�m�E�l�e�m�e�n�t�(�e�)�,�[�e�]�)�}�)�,�t�}�,�m�.�_�a�d�d�A�r�i�a�A�n�d�C�o�l�l�a�p�s�e�d�C�l�a�s�s�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�&�&�(�t�=�l�(�t�)�.�h�a�s�C�l�a�s�s�(�a�)�,�e�.�l�e�n�g�t�h�&�&�l�(�e�)�.�t�o�g�g�l�e�C�l�a�s�s�(�u�t�,�!�t�)�.�a�t�t�r�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�t�)�)�}�,�g�.�_�g�e�t�T�a�r�g�e�t�F�r�o�m�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�t�)�;�r�e�t�u�r�n� �t�?�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�t�)�:�n�u�l�l�}�,�g�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�n�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�l�(�t�h�i�s�)�,�e�=�t�.�d�a�t�a�(�o�t�)�,�i�=�s�(�{�}�,�r�t�,�t�.�d�a�t�a�(�)�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �n�&�&�n�?�n�:�{�}�)�;�i�f�(�!�e�&�&�i�.�t�o�g�g�l�e�&�&�/�s�h�o�w�|�h�i�d�e�/�.�t�e�s�t�(�n�)�&�&�(�i�.�t�o�g�g�l�e�=�!�1�)�,�e�|�|�(�e�=�n�e�w� �g�(�t�h�i�s�,�i�)�,�t�.�d�a�t�a�(�o�t�,�e�)�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �n�)�{�i�f�(�v�o�i�d� �0�=�=�=�e�[�n�]�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�'�N�o� �m�e�t�h�o�d� �n�a�m�e�d� �"�'�+�n�+�'�"�'�)�;�e�[�n�]�(�)�}�}�)�}�,�i�(�g�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �r�t�}�}�]�)�,�p�t�=�g�,�l�(�d�o�c�u�m�e�n�t�)�.�o�n�(�l�t�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�,�h�t�,�f�u�n�c�t�i�o�n�(�t�)�{�"�A�"�=�=�=�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�.�t�a�g�N�a�m�e�&�&�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�;�v�a�r� �i�=�l�(�t�h�i�s�)�,�t�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�)�,�t�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�t�)�)�;�l�(�t�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�l�(�t�h�i�s�)�,�e�=�t�.�d�a�t�a�(�o�t�)�?�"�t�o�g�g�l�e�"�:�i�.�d�a�t�a�(�)�;�p�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�t�,�e�)�}�)�}�)�,�l�.�f�n�[�n�t�]�=�p�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�l�.�f�n�[�n�t�]�.�C�o�n�s�t�r�u�c�t�o�r�=�p�t�,�l�.�f�n�[�n�t�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �l�.�f�n�[�n�t�]�=�s�t�,�p�t�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�p�t�)�,�y�t�=�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�&�&�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �d�o�c�u�m�e�n�t�,�w�t�=�[�"�E�d�g�e�"�,�"�T�r�i�d�e�n�t�"�,�"�F�i�r�e�f�o�x�"�]�,�b�t�=�0�,�_�t�=�0�;�_�t�<�w�t�.�l�e�n�g�t�h�;�_�t�+�=�1�)�i�f�(�y�t�&�&�0�<�=�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�.�i�n�d�e�x�O�f�(�w�t�[�_�t�]�)�)�{�b�t�=�1�;�b�r�e�a�k�}�f�u�n�c�t�i�o�n� �g�(�e�,�t�)�{�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�=�!�1�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�e�,�t�h�i�s�.�_�c�o�n�f�i�g�=�t�h�i�s�.�_�g�e�t�C�o�n�f�i�g�(�t�)�,�t�h�i�s�.�_�t�r�i�g�g�e�r�A�r�r�a�y�=�l�.�m�a�k�e�A�r�r�a�y�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�'�[�d�a�t�a�-�t�o�g�g�l�e�=�"�c�o�l�l�a�p�s�e�"�]�[�h�r�e�f�=�"�#�'�+�e�.�i�d�+�'�"�]�,�[�d�a�t�a�-�t�o�g�g�l�e�=�"�c�o�l�l�a�p�s�e�"�]�[�d�a�t�a�-�t�a�r�g�e�t�=�"�#�'�+�e�.�i�d�+�'�"�]�'�)�)�;�f�o�r�(�v�a�r� �i�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�h�t�)�)�,�n�=�0�,�o�=�i�.�l�e�n�g�t�h�;�n�<�o�;�n�+�+�)�{�v�a�r� �s�=�i�[�n�]�,�r�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�s�)�,�a�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�r�)�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�=�=�=�e�}�)�;�n�u�l�l�!�=�=�r�&�&�0�<�a�.�l�e�n�g�t�h�&�&�(�t�h�i�s�.�_�s�e�l�e�c�t�o�r�=�r�,�t�h�i�s�.�_�t�r�i�g�g�e�r�A�r�r�a�y�.�p�u�s�h�(�s�)�)�}�t�h�i�s�.�_�p�a�r�e�n�t�=�t�h�i�s�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�?�t�h�i�s�.�_�g�e�t�P�a�r�e�n�t�(�)�:�n�u�l�l�,�t�h�i�s�.�_�c�o�n�f�i�g�.�p�a�r�e�n�t�|�|�t�h�i�s�.�_�a�d�d�A�r�i�a�A�n�d�C�o�l�l�a�p�s�e�d�C�l�a�s�s�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�t�h�i�s�.�_�t�r�i�g�g�e�r�A�r�r�a�y�)�,�t�h�i�s�.�_�c�o�n�f�i�g�.�t�o�g�g�l�e�&�&�t�h�i�s�.�t�o�g�g�l�e�(�)�}�f�u�n�c�t�i�o�n� �T�t�(�t�,�e�)�{�t�h�i�s�.�_�i�t�e�m�s�=�n�u�l�l�,�t�h�i�s�.�_�i�n�t�e�r�v�a�l�=�n�u�l�l�,�t�h�i�s�.�_�a�c�t�i�v�e�E�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�_�i�s�P�a�u�s�e�d�=�!�1�,�t�h�i�s�.�_�i�s�S�l�i�d�i�n�g�=�!�1�,�t�h�i�s�.�t�o�u�c�h�T�i�m�e�o�u�t�=�n�u�l�l�,�t�h�i�s�.�_�c�o�n�f�i�g�=�t�h�i�s�.�_�g�e�t�C�o�n�f�i�g�(�e�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�d�(�t�)�[�0�]�,�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�E�l�e�m�e�n�t�=�t�h�i�s�.�_�e�l�e�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�.�c�a�r�o�u�s�e�l�-�i�n�d�i�c�a�t�o�r�s�"�)�,�t�h�i�s�.�_�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�s�(�)�}
1�f�u�n�c�t�i�o�n� �S�t�(�t�)�{�t�h�i�s�.�_�e�l�e�m�e�n�t�=�t�}�f�u�n�c�t�i�o�n� �x�t�(�t�)�{�t�h�i�s�.�_�e�l�e�m�e�n�t�=�t�}�v�a�r� �C�t�=�y�t�&�&�w�i�n�d�o�w�.�P�r�o�m�i�s�e�?�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�!�1�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�e�|�|�(�e�=�!�0�,�w�i�n�d�o�w�.�P�r�o�m�i�s�e�.�r�e�s�o�l�v�e�(�)�.�t�h�e�n�(�f�u�n�c�t�i�o�n�(�)�{�e�=�!�1�,�t�(�)�}�)�)�}�}�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�!�1�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�e�|�|�(�e�=�!�0�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�e�=�!�1�,�t�(�)�}�,�b�t�)�)�}�}�;�f�u�n�c�t�i�o�n� �k�t�(�t�)�{�r�e�t�u�r�n� �t�&�&�"�[�o�b�j�e�c�t� �F�u�n�c�t�i�o�n�]�"�=�=�=�{�}�.�t�o�S�t�r�i�n�g�.�c�a�l�l�(�t�)�}�f�u�n�c�t�i�o�n� �E�t�(�t�,�e�)�{�i�f�(�1�!�=�=�t�.�n�o�d�e�T�y�p�e�)�r�e�t�u�r�n�[�]�;�t�=�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�t�,�n�u�l�l�)�;�r�e�t�u�r�n� �e�?�t�[�e�]�:�t�}�f�u�n�c�t�i�o�n� �A�t�(�t�)�{�r�e�t�u�r�n�"�H�T�M�L�"�=�=�=�t�.�n�o�d�e�N�a�m�e�?�t�:�t�.�p�a�r�e�n�t�N�o�d�e�|�|�t�.�h�o�s�t�}�f�u�n�c�t�i�o�n� �O�t�(�t�)�{�i�f�(�!�t�)�r�e�t�u�r�n� �d�o�c�u�m�e�n�t�.�b�o�d�y�;�s�w�i�t�c�h�(�t�.�n�o�d�e�N�a�m�e�)�{�c�a�s�e�"�H�T�M�L�"�:�c�a�s�e�"�B�O�D�Y�"�:�r�e�t�u�r�n� �t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�b�o�d�y�;�c�a�s�e�"�#�d�o�c�u�m�e�n�t�"�:�r�e�t�u�r�n� �t�.�b�o�d�y�}�v�a�r� �e�=�E�t�(�t�)�,�i�=�e�.�o�v�e�r�f�l�o�w�,�n�=�e�.�o�v�e�r�f�l�o�w�X�,�e�=�e�.�o�v�e�r�f�l�o�w�Y�;�r�e�t�u�r�n�/�(�a�u�t�o�|�s�c�r�o�l�l�|�o�v�e�r�l�a�y�)�/�.�t�e�s�t�(�i�+�e�+�n�)�?�t�:�O�t�(�A�t�(�t�)�)�}�v�a�r� �D�t�=�y�t�&�&�!�(�!�w�i�n�d�o�w�.�M�S�I�n�p�u�t�M�e�t�h�o�d�C�o�n�t�e�x�t�|�|�!�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�M�o�d�e�)�,�$�t�=�y�t�&�&�/�M�S�I�E� �1�0�/�.�t�e�s�t�(�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�)�;�f�u�n�c�t�i�o�n� �F�t�(�t�)�{�r�e�t�u�r�n� �1�1�=�=�=�t�?�D�t�:�1�0�!�=�=�t�&�&�D�t�|�|�$�t�}�f�u�n�c�t�i�o�n� �I�t�(�t�)�{�i�f�(�!�t�)�r�e�t�u�r�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�;�f�o�r�(�v�a�r� �e�=�F�t�(�1�0�)�?�d�o�c�u�m�e�n�t�.�b�o�d�y�:�n�u�l�l�,�i�=�t�.�o�f�f�s�e�t�P�a�r�e�n�t�;�i�=�=�=�e�&�&�t�.�n�e�x�t�E�l�e�m�e�n�t�S�i�b�l�i�n�g�;�)�i�=�(�t�=�t�.�n�e�x�t�E�l�e�m�e�n�t�S�i�b�l�i�n�g�)�.�o�f�f�s�e�t�P�a�r�e�n�t�;�v�a�r� �n�=�i�&�&�i�.�n�o�d�e�N�a�m�e�;�r�e�t�u�r�n� �n�&�&�"�B�O�D�Y�"�!�=�=�n�&�&�"�H�T�M�L�"�!�=�=�n�?�-�1�!�=�=�[�"�T�D�"�,�"�T�A�B�L�E�"�]�.�i�n�d�e�x�O�f�(�i�.�n�o�d�e�N�a�m�e�)�&�&�"�s�t�a�t�i�c�"�=�=�=�E�t�(�i�,�"�p�o�s�i�t�i�o�n�"�)�?�I�t�(�i�)�:�i�:�(�t�?�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�:�d�o�c�u�m�e�n�t�)�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�}�f�u�n�c�t�i�o�n� �L�t�(�t�)�{�r�e�t�u�r�n� �n�u�l�l�!�=�=�t�.�p�a�r�e�n�t�N�o�d�e�?�L�t�(�t�.�p�a�r�e�n�t�N�o�d�e�)�:�t�}�f�u�n�c�t�i�o�n� �M�t�(�t�,�e�)�{�i�f�(�!�(�t�&�&�t�.�n�o�d�e�T�y�p�e�&�&�e�&�&�e�.�n�o�d�e�T�y�p�e�)�)�r�e�t�u�r�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�;�v�a�r� �i�=�t�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�(�e�)�&�N�o�d�e�.�D�O�C�U�M�E�N�T�_�P�O�S�I�T�I�O�N�_�F�O�L�L�O�W�I�N�G�,�n�=�i�?�t�:�e�,�i�=�i�?�e�:�t�,�o�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�R�a�n�g�e�(�)�;�o�.�s�e�t�S�t�a�r�t�(�n�,�0�)�,�o�.�s�e�t�E�n�d�(�i�,�0�)�;�o�=�o�.�c�o�m�m�o�n�A�n�c�e�s�t�o�r�C�o�n�t�a�i�n�e�r�;�i�f�(�t�!�=�=�o�&�&�e�!�=�=�o�|�|�n�.�c�o�n�t�a�i�n�s�(�i�)�)�r�e�t�u�r�n�"�B�O�D�Y�"�=�=�=�(�i�=�(�n�=�o�)�.�n�o�d�e�N�a�m�e�)�|�|�"�H�T�M�L�"�!�=�=�i�&�&�I�t�(�n�.�f�i�r�s�t�E�l�e�m�e�n�t�C�h�i�l�d�)�!�=�=�n�?�I�t�(�o�)�:�o�;�i�=�L�t�(�t�)�;�r�e�t�u�r�n� �i�.�h�o�s�t�?�M�t�(�i�.�h�o�s�t�,�e�)�:�M�t�(�t�,�L�t�(�e�)�.�h�o�s�t�)�}
1�f�u�n�c�t�i�o�n� �P�t�(�t�,�e�)�{�v�a�r� �e�=�"�t�o�p�"�=�=�=�(�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�e�?�e�:�"�t�o�p�"�)�?�"�s�c�r�o�l�l�T�o�p�"�:�"�s�c�r�o�l�l�L�e�f�t�"�,�i�=�t�.�n�o�d�e�N�a�m�e�;�r�e�t�u�r�n�"�B�O�D�Y�"�=�=�=�i�|�|�"�H�T�M�L�"�=�=�=�i�?�(�i�=�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�(�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�s�c�r�o�l�l�i�n�g�E�l�e�m�e�n�t�|�|�i�)�[�e�]�)�:�t�[�e�]�}�f�u�n�c�t�i�o�n� �z�t�(�t�,�e�)�{�v�a�r� �e�=�"�x�"�=�=�=�e�?�"�L�e�f�t�"�:�"�T�o�p�"�,�i�=�"�L�e�f�t�"�=�=�e�?�"�R�i�g�h�t�"�:�"�B�o�t�t�o�m�"�;�r�e�t�u�r�n� �p�a�r�s�e�F�l�o�a�t�(�t�[�"�b�o�r�d�e�r�"�+�e�+�"�W�i�d�t�h�"�]�,�1�0�)�+�p�a�r�s�e�F�l�o�a�t�(�t�[�"�b�o�r�d�e�r�"�+�i�+�"�W�i�d�t�h�"�]�,�1�0�)�}�f�u�n�c�t�i�o�n� �R�t�(�t�,�e�,�i�,�n�)�{�r�e�t�u�r�n� �M�a�t�h�.�m�a�x�(�e�[�"�o�f�f�s�e�t�"�+�t�]�,�e�[�"�s�c�r�o�l�l�"�+�t�]�,�i�[�"�c�l�i�e�n�t�"�+�t�]�,�i�[�"�o�f�f�s�e�t�"�+�t�]�,�i�[�"�s�c�r�o�l�l�"�+�t�]�,�F�t�(�1�0�)�?�i�[�"�o�f�f�s�e�t�"�+�t�]�+�n�[�"�m�a�r�g�i�n�"�+�(�"�H�e�i�g�h�t�"�=�=�=�t�?�"�T�o�p�"�:�"�L�e�f�t�"�)�]�+�n�[�"�m�a�r�g�i�n�"�+�(�"�H�e�i�g�h�t�"�=�=�=�t�?�"�B�o�t�t�o�m�"�:�"�R�i�g�h�t�"�)�]�:�0�)�}�f�u�n�c�t�i�o�n� �N�t�(�)�{�v�a�r� �t�=�d�o�c�u�m�e�n�t�.�b�o�d�y�,�e�=�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�i�=�F�t�(�1�0�)�&�&�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�e�)�;�r�e�t�u�r�n�{�h�e�i�g�h�t�:�R�t�(�"�H�e�i�g�h�t�"�,�t�,�e�,�i�)�,�w�i�d�t�h�:�R�t�(�"�W�i�d�t�h�"�,�t�,�e�,�i�)�}�}�f�u�n�c�t�i�o�n� �j�t�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �e� �i�n� �t�?�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�t�,�e�,�{�v�a�l�u�e�:�i�,�e�n�u�m�e�r�a�b�l�e�:�!�0�,�c�o�n�f�i�g�u�r�a�b�l�e�:�!�0�,�w�r�i�t�a�b�l�e�:�!�0�}�)�:�t�[�e�]�=�i�,�t�}�v�a�r� �v�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �e�&�&�H�t�(�t�.�p�r�o�t�o�t�y�p�e�,�e�)�,�i�&�&�H�t�(�t�,�i�)�,�t�}�,�y�=�O�b�j�e�c�t�.�a�s�s�i�g�n�|�|�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�=�1�;�e�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�e�+�+�)�{�v�a�r� �i�,�n�=�a�r�g�u�m�e�n�t�s�[�e�]�;�f�o�r�(�i� �i�n� �n�)�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�.�c�a�l�l�(�n�,�i�)�&�&�(�t�[�i�]�=�n�[�i�]�)�}�r�e�t�u�r�n� �t�}�;�f�u�n�c�t�i�o�n� �H�t�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�0�;�i�<�e�.�l�e�n�g�t�h�;�i�+�+�)�{�v�a�r� �n�=�e�[�i�]�;�n�.�e�n�u�m�e�r�a�b�l�e�=�n�.�e�n�u�m�e�r�a�b�l�e�|�|�!�1�,�n�.�c�o�n�f�i�g�u�r�a�b�l�e�=�!�0�,�"�v�a�l�u�e�"�i�n� �n�&�&�(�n�.�w�r�i�t�a�b�l�e�=�!�0�)�,�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�t�,�n�.�k�e�y�,�n�)�}�}�f�u�n�c�t�i�o�n� �B�t�(�t�)�{�r�e�t�u�r�n� �y�(�{�}�,�t�,�{�r�i�g�h�t�:�t�.�l�e�f�t�+�t�.�w�i�d�t�h�,�b�o�t�t�o�m�:�t�.�t�o�p�+�t�.�h�e�i�g�h�t�}�)�}�f�u�n�c�t�i�o�n� �W�t�(�t�)�{�v�a�r� �e�=�{�}�;�t�r�y�{�F�t�(�1�0�)�?�(�e�=�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�n�=�P�t�(�t�,�"�t�o�p�"�)�,�o�=�P�t�(�t�,�"�l�e�f�t�"�)�,�e�.�t�o�p�+�=�n�,�e�.�l�e�f�t�+�=�o�,�e�.�b�o�t�t�o�m�+�=�n�,�e�.�r�i�g�h�t�+�=�o�)�:�e�=�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�}�c�a�t�c�h�(�t�)�{�}�v�a�r� �i�,�n�=�{�l�e�f�t�:�e�.�l�e�f�t�,�t�o�p�:�e�.�t�o�p�,�w�i�d�t�h�:�e�.�r�i�g�h�t�-�e�.�l�e�f�t�,�h�e�i�g�h�t�:�e�.�b�o�t�t�o�m�-�e�.�t�o�p�}�,�o�=�"�H�T�M�L�"�=�=�=�t�.�n�o�d�e�N�a�m�e�?�N�t�(�)�:�{�}�,�e�=�o�.�w�i�d�t�h�|�|�t�.�c�l�i�e�n�t�W�i�d�t�h�|�|�n�.�r�i�g�h�t�-�n�.�l�e�f�t�,�o�=�o�.�h�e�i�g�h�t�|�|�t�.�c�l�i�e�n�t�H�e�i�g�h�t�|�|�n�.�b�o�t�t�o�m�-�n�.�t�o�p�,�e�=�t�.�o�f�f�s�e�t�W�i�d�t�h�-�e�,�o�=�t�.�o�f�f�s�e�t�H�e�i�g�h�t�-�o�;�r�e�t�u�r�n�(�e�|�|�o�)�&�&�(�e�-�=�z�t�(�i�=�E�t�(�t�)�,�"�x�"�)�,�o�-�=�z�t�(�i�,�"�y�"�)�,�n�.�w�i�d�t�h�-�=�e�,�n�.�h�e�i�g�h�t�-�=�o�)�,�B�t�(�n�)�}�f�u�n�c�t�i�o�n� �q�t�(�t�,�e�,�i�)�{�v�a�r� �i�=�2�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�i�&�&�i�,�n�=�F�t�(�1�0�)�,�o�=�"�H�T�M�L�"�=�=�=�e�.�n�o�d�e�N�a�m�e�,�s�=�W�t�(�t�)�,�r�=�W�t�(�e�)�,�t�=�O�t�(�t�)�,�a�=�E�t�(�e�)�,�l�=�p�a�r�s�e�F�l�o�a�t�(�a�.�b�o�r�d�e�r�T�o�p�W�i�d�t�h�,�1�0�)�,�c�=�p�a�r�s�e�F�l�o�a�t�(�a�.�b�o�r�d�e�r�L�e�f�t�W�i�d�t�h�,�1�0�)�,�r�=�(�i�&�&�"�H�T�M�L�"�=�=�=�e�.�n�o�d�e�N�a�m�e�&�&�(�r�.�t�o�p�=�M�a�t�h�.�m�a�x�(�r�.�t�o�p�,�0�)�,�r�.�l�e�f�t�=�M�a�t�h�.�m�a�x�(�r�.�l�e�f�t�,�0�)�)�,�B�t�(�{�t�o�p�:�s�.�t�o�p�-�r�.
1�t�o�p�-�l�,�l�e�f�t�:�s�.�l�e�f�t�-�r�.�l�e�f�t�-�c�,�w�i�d�t�h�:�s�.�w�i�d�t�h�,�h�e�i�g�h�t�:�s�.�h�e�i�g�h�t�}�)�)�;�r�e�t�u�r�n� �r�.�m�a�r�g�i�n�T�o�p�=�0�,�r�.�m�a�r�g�i�n�L�e�f�t�=�0�,�!�n�&�&�o�&�&�(�s�=�p�a�r�s�e�F�l�o�a�t�(�a�.�m�a�r�g�i�n�T�o�p�,�1�0�)�,�o�=�p�a�r�s�e�F�l�o�a�t�(�a�.�m�a�r�g�i�n�L�e�f�t�,�1�0�)�,�r�.�t�o�p�-�=�l�-�s�,�r�.�b�o�t�t�o�m�-�=�l�-�s�,�r�.�l�e�f�t�-�=�c�-�o�,�r�.�r�i�g�h�t�-�=�c�-�o�,�r�.�m�a�r�g�i�n�T�o�p�=�s�,�r�.�m�a�r�g�i�n�L�e�f�t�=�o�)�,�r�=�(�n�&�&�!�i�?�e�.�c�o�n�t�a�i�n�s�(�t�)�:�e�=�=�=�t�&�&�"�B�O�D�Y�"�!�=�=�t�.�n�o�d�e�N�a�m�e�)�?�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �i�=�2�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�i�&�&�i�,�n�=�P�t�(�e�,�"�t�o�p�"�)�,�e�=�P�t�(�e�,�"�l�e�f�t�"�)�,�i�=�i�?�-�1�:�1�;�r�e�t�u�r�n� �t�.�t�o�p�+�=�n�*�i�,�t�.�b�o�t�t�o�m�+�=�n�*�i�,�t�.�l�e�f�t�+�=�e�*�i�,�t�.�r�i�g�h�t�+�=�e�*�i�,�t�}�(�r�,�e�)�:�r�}�f�u�n�c�t�i�o�n� �V�t�(�t�)�{�i�f�(�!�t�|�|�!�t�.�p�a�r�e�n�t�E�l�e�m�e�n�t�|�|�F�t�(�)�)�r�e�t�u�r�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�;�f�o�r�(�v�a�r� �e�=�t�.�p�a�r�e�n�t�E�l�e�m�e�n�t�;�e�&�&�"�n�o�n�e�"�=�=�=�E�t�(�e�,�"�t�r�a�n�s�f�o�r�m�"�)�;�)�e�=�e�.�p�a�r�e�n�t�E�l�e�m�e�n�t�;�r�e�t�u�r�n� �e�|�|�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�}�f�u�n�c�t�i�o�n� �U�t�(�t�,�e�,�i�,�n�,�o�)�{�v�a�r� �s�,�o�=�4�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�o�&�&�o�,�r�=�{�t�o�p�:�0�,�l�e�f�t�:�0�}�,�a�=�o�?�V�t�(�t�)�:�M�t�(�t�,�e�)�;�r�e�t�u�r�n�"�v�i�e�w�p�o�r�t�"�=�=�=�n�?�r�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �e�=�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�e�&�&�e�,�i�=�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�t�=�q�t�(�t�,�i�)�,�n�=�M�a�t�h�.�m�a�x�(�i�.�c�l�i�e�n�t�W�i�d�t�h�,�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�|�|�0�)�,�o�=�M�a�t�h�.�m�a�x�(�i�.�c�l�i�e�n�t�H�e�i�g�h�t�,�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�|�|�0�)�,�s�=�e�?�0�:�P�t�(�i�)�,�e�=�e�?�0�:�P�t�(�i�,�"�l�e�f�t�"�)�;�r�e�t�u�r�n� �B�t�(�{�t�o�p�:�s�-�t�.�t�o�p�+�t�.�m�a�r�g�i�n�T�o�p�,�l�e�f�t�:�e�-�t�.�l�e�f�t�+�t�.�m�a�r�g�i�n�L�e�f�t�,�w�i�d�t�h�:�n�,�h�e�i�g�h�t�:�o�}�)�}�(�a�,�o�)�:�(�s�=�v�o�i�d� �0�,�"�s�c�r�o�l�l�P�a�r�e�n�t�"�=�=�=�n�?�"�B�O�D�Y�"�=�=�=�(�s�=�O�t�(�A�t�(�e�)�)�)�.�n�o�d�e�N�a�m�e�&�&�(�s�=�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�)�:�s�=�"�w�i�n�d�o�w�"�=�=�=�n�?�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�:�n�,�e�=�q�t�(�s�,�a�,�o�)�,�"�H�T�M�L�"�!�=�=�s�.�n�o�d�e�N�a�m�e�|�|�f�u�n�c�t�i�o�n� �t�(�e�)�{�v�a�r� �i�=�e�.�n�o�d�e�N�a�m�e�;�r�e�t�u�r�n�"�B�O�D�Y�"�!�=�=�i�&�&�"�H�T�M�L�"�!�=�=�i�&�&�(�"�f�i�x�e�d�"�=�=�=�E�t�(�e�,�"�p�o�s�i�t�i�o�n�"�)�|�|�t�(�A�t�(�e�)�)�)�}�(�a�)�?�r�=�e�:�(�n�=�(�t�=�N�t�(�)�)�.�h�e�i�g�h�t�,�o�=�t�.�w�i�d�t�h�,�r�.�t�o�p�+�=�e�.�t�o�p�-�e�.�m�a�r�g�i�n�T�o�p�,�r�.�b�o�t�t�o�m�=�n�+�e�.�t�o�p�,�r�.�l�e�f�t�+�=�e�.�l�e�f�t�-�e�.�m�a�r�g�i�n�L�e�f�t�,�r�.�r�i�g�h�t�=�o�+�e�.�l�e�f�t�)�)�,�r�.�l�e�f�t�+�=�i�,�r�.�t�o�p�+�=�i�,�r�.�r�i�g�h�t�-�=�i�,�r�.�b�o�t�t�o�m�-�=�i�,�r�}�f�u�n�c�t�i�o�n� �Y�t�(�t�,�e�,�i�,�n�,�o�,�s�)�{�s�=�5�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�s�?�s�:�0�;�i�f�(�-�1�=�=�=�t�.�i�n�d�e�x�O�f�(�"�a�u�t�o�"�)�)�r�e�t�u�r�n� �t�;�v�a�r� �n�=�U�t�(�i�,�n�,�s�,�o�)�,�r�=�{�t�o�p�:�{�w�i�d�t�h�:�n�.�w�i�d�t�h�,�h�e�i�g�h�t�:�e�.�t�o�p�-�n�.�t�o�p�}�,�r�i�g�h�t�:�{�w�i�d�t�h�:�n�.�r�i�g�h�t�-�e�.�r�i�g�h�t�,�h�e�i�g�h�t�:�n�.�h�e�i�g�h�t�}�,�b�o�t�t�o�m�:�{�w�i�d�t�h�:�n�.�w�i�d�t�h�,�h�e�i�g�h�t�:�n�.�b�o�t�t�o�m�-�e�.�b�o�t�t�o�m�}�,�l�e�f�t�:�{�w�i�d�t�h�:�e�.�l�e�f�t�-�n�.�l�e�f�t�,�h�e�i�g�h�t�:�n�.�h�e�i�g�h�t�}�}�,�s�=�O�b�j�e�c�t�.�k�e�y�s�(�r�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �y�(�{�k�e�y�:�t�}�,�r�[�t�]�,�{�a�r�e�a�:�(�t�=�r�[�t�]�)�.�w�i�d�t�h�*�t�.�h�e�i�g�h�t�}�)�}�)�.�s�o�r�t�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�a�r�e�a�-�t�.�a�r�e�a�}�)�,�o�=�s�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�w�i�d�t�h�,�t�=�t�.�h�e�i�g�h�t�;�r�e�t�u�r�n� �e�>�=�i�.�c�l�i�e�n�t�W�i�d�t�h�&�&�t�>�=�i�.�c�l�i�e�n�t�H�e�i�g�h�t�}�)�,�e�=�(�0�<�o�.�l�e�n�g�t�h�?�o�:�s�)�[�0�]�.�k�e�y�,�n�=�t�.�s�p�l�i�t�(�"�-�"�)�[�1�]�;�r�e�t�u�r�n� �e�+�(�n�?�"�-�"�+�n�:�"�"�)�}�f�u�n�c�t�i�o�n� �Q�t�(�t�,�e�,�i�,�n�)�{�n�=�3�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�n�?�n�:�n�u�l�l�;�r�e�t�u�r�n� �q�t�(�i�,�n�?�V�t�(�e�)�:�M�t�(�e�,�i�)�,�n�)�}�f�u�n�c�t�i�o�n� �G�t�(�t�)�{�v�a�r� �e�=�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�t�)�,�i�=�p�a�r�s�e�F�l�o�a�t�(�e�.�m�a�r�g�i�n�T�o�p�)�+�p�a�r�s�e�F�l�o�a�t�(�e�.�m�a�r�g�i�n�B�o�t�t�o�m�)�,�e�=�p�a�r�s�e�F�l�o�a�t�(�e�.�m�a�r�g�i�n�L�e�f�t�)�+�p�a�r�s�e�F�l�o�a�t�(�e�.�m�a�r�g�i�n�R�i�g�h�t�)�;�r�e�t�u�r�n�{�w�i�d�t�h�:�t�.�o�f�f�s�e�t�W�i�d�t�h�+�e�,�h�e�i�g�h�t�:�t�.�o�f�f�s�e�t�H�e�i�g�h�t�+�i�}�}�f�u�n�c�t�i�o�n� �X�t�(�t�)�{�v�a�r� �e�=�{�l�e�f�t�:�"�r�i�g�h�t�"�,�r�i�g�h�t�:�"�l�e�f�t�"�,�b�o�t�t�o�m�:�"�t�o�p�"�,�t�o�p�:�"�b�o�t�t�o�m�"�}�;�r�e�t�u�r�n� �t�.�r�e�p�l�a�c�e�(�/�l�e�f�t�|�r�i�g�h�t�|�b�o�t�t�o�m�|�t�o�p�/�g�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�[�t�]�}�)�}
1�f�u�n�c�t�i�o�n� �K�t�(�t�,�e�,�i�)�{�i�=�i�.�s�p�l�i�t�(�"�-�"�)�[�0�]�;�v�a�r� �t�=�G�t�(�t�)�,�n�=�{�w�i�d�t�h�:�t�.�w�i�d�t�h�,�h�e�i�g�h�t�:�t�.�h�e�i�g�h�t�}�,�o�=�-�1�!�=�=�[�"�r�i�g�h�t�"�,�"�l�e�f�t�"�]�.�i�n�d�e�x�O�f�(�i�)�,�s�=�o�?�"�t�o�p�"�:�"�l�e�f�t�"�,�r�=�o�?�"�l�e�f�t�"�:�"�t�o�p�"�,�a�=�o�?�"�h�e�i�g�h�t�"�:�"�w�i�d�t�h�"�,�o�=�o�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�;�r�e�t�u�r�n� �n�[�s�]�=�e�[�s�]�+�e�[�a�]�/�2�-�t�[�a�]�/�2�,�n�[�r�]�=�i�=�=�=�r�?�e�[�r�]�-�t�[�o�]�:�e�[�X�t�(�r�)�]�,�n�}�f�u�n�c�t�i�o�n� �Z�t�(�t�,�e�)�{�r�e�t�u�r�n� �A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�f�i�n�d�?�t�.�f�i�n�d�(�e�)�:�t�.�f�i�l�t�e�r�(�e�)�[�0�]�}�f�u�n�c�t�i�o�n� �J�t�(�t�,�i�,�e�)�{�r�e�t�u�r�n�(�v�o�i�d� �0�=�=�=�e�?�t�:�t�.�s�l�i�c�e�(�0�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�f�i�n�d�I�n�d�e�x�)�r�e�t�u�r�n� �t�.�f�i�n�d�I�n�d�e�x�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�n�a�m�e�=�=�=�e�}�)�;�v�a�r� �i�=�Z�t�(�t�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�n�a�m�e�=�=�=�e�}�)�;�r�e�t�u�r�n� �t�.�i�n�d�e�x�O�f�(�i�)�}�(�t�,�e�)�)�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�f�u�n�c�t�i�o�n�&�&�c�o�n�s�o�l�e�.�w�a�r�n�(�"�`�m�o�d�i�f�i�e�r�.�f�u�n�c�t�i�o�n�`� �i�s� �d�e�p�r�e�c�a�t�e�d�,� �u�s�e� �`�m�o�d�i�f�i�e�r�.�f�n�`�!�"�)�;�v�a�r� �e�=�t�.�f�u�n�c�t�i�o�n�|�|�t�.�f�n�;�t�.�e�n�a�b�l�e�d�&�&�k�t�(�e�)�&�&�(�i�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�=�B�t�(�i�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�)�,�i�.�o�f�f�s�e�t�s�.�r�e�f�e�r�e�n�c�e�=�B�t�(�i�.�o�f�f�s�e�t�s�.�r�e�f�e�r�e�n�c�e�)�,�i�=�e�(�i�,�t�)�)�}�)�,�i�}�f�u�n�c�t�i�o�n� �t�e�(�t�,�i�)�{�r�e�t�u�r�n� �t�.�s�o�m�e�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�n�a�m�e�;�r�e�t�u�r�n� �t�.�e�n�a�b�l�e�d�&�&�e�=�=�=�i�}�)�}�f�u�n�c�t�i�o�n� �e�e�(�t�)�{�f�o�r�(�v�a�r� �e�=�[�!�1�,�"�m�s�"�,�"�W�e�b�k�i�t�"�,�"�M�o�z�"�,�"�O�"�]�,�i�=�t�.�c�h�a�r�A�t�(�0�)�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�t�.�s�l�i�c�e�(�1�)�,�n�=�0�;�n�<�e�.�l�e�n�g�t�h�;�n�+�+�)�{�v�a�r� �o�=�e�[�n�]�,�o�=�o�?�"�"�+�o�+�i�:�t�;�i�f�(�v�o�i�d� �0�!�=�=�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�t�y�l�e�[�o�]�)�r�e�t�u�r�n� �o�}�r�e�t�u�r�n� �n�u�l�l�}�f�u�n�c�t�i�o�n� �i�e�(�t�)�{�t�=�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�;�r�e�t�u�r�n� �t�?�t�.�d�e�f�a�u�l�t�V�i�e�w�:�w�i�n�d�o�w�}�f�u�n�c�t�i�o�n� �n�e�(�t�)�{�r�e�t�u�r�n�"�"�!�=�=�t�&�&�!�i�s�N�a�N�(�p�a�r�s�e�F�l�o�a�t�(�t�)�)�&�&�i�s�F�i�n�i�t�e�(�t�)�}�f�u�n�c�t�i�o�n� �o�e�(�i�,�n�)�{�O�b�j�e�c�t�.�k�e�y�s�(�n�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�"�"�;�-�1�!�=�=�[�"�w�i�d�t�h�"�,�"�h�e�i�g�h�t�"�,�"�t�o�p�"�,�"�r�i�g�h�t�"�,�"�b�o�t�t�o�m�"�,�"�l�e�f�t�"�]�.�i�n�d�e�x�O�f�(�t�)�&�&�n�e�(�n�[�t�]�)�&�&�(�e�=�"�p�x�"�)�,�i�.�s�t�y�l�e�[�t�]�=�n�[�t�]�+�e�}�)�}�f�u�n�c�t�i�o�n� �s�e�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�=�Z�t�(�t�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�n�a�m�e�=�=�=�e�}�)�,�t�=�!�!�o�&�&�t�.�s�o�m�e�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�n�a�m�e�=�=�=�i�&�&�t�.�e�n�a�b�l�e�d�&�&�t�.�o�r�d�e�r�<�o�.�o�r�d�e�r�}�)�;�r�e�t�u�r�n� �t�|�|�(�n�=�"�`�"�+�e�+�"�`�"�,�c�o�n�s�o�l�e�.�w�a�r�n�(�"�`�"�+�i�+�"�`�"�+�"� �m�o�d�i�f�i�e�r� �i�s� �r�e�q�u�i�r�e�d� �b�y� �"�+�n�+�"� �m�o�d�i�f�i�e�r� �i�n� �o�r�d�e�r� �t�o� �w�o�r�k�,� �b�e� �s�u�r�e� �t�o� �i�n�c�l�u�d�e� �i�t� �b�e�f�o�r�e� �"�+�n�+�"�!�"�)�)�,�t�}�v�a�r� �w�=�[�"�a�u�t�o�-�s�t�a�r�t�"�,�"�a�u�t�o�"�,�"�a�u�t�o�-�e�n�d�"�,�"�t�o�p�-�s�t�a�r�t�"�,�"�t�o�p�"�,�"�t�o�p�-�e�n�d�"�,�"�r�i�g�h�t�-�s�t�a�r�t�"�,�"�r�i�g�h�t�"�,�"�r�i�g�h�t�-�e�n�d�"�,�"�b�o�t�t�o�m�-�e�n�d�"�,�"�b�o�t�t�o�m�"�,�"�b�o�t�t�o�m�-�s�t�a�r�t�"�,�"�l�e�f�t�-�e�n�d�"�,�"�l�e�f�t�"�,�"�l�e�f�t�-�s�t�a�r�t�"�]�,�r�e�=�w�.�s�l�i�c�e�(�3�)�;�f�u�n�c�t�i�o�n� �a�e�(�t�,�e�)�{�e�=�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�e�&�&�e�,�t�=�r�e�.�i�n�d�e�x�O�f�(�t�)�,�t�=�r�e�.�s�l�i�c�e�(�t�+�1�)�.�c�o�n�c�a�t�(�r�e�.�s�l�i�c�e�(�0�,�t�)�)�;�r�e�t�u�r�n� �e�?�t�.�r�e�v�e�r�s�e�(�)�:�t�}�f�u�n�c�t�i�o�n� �l�e�(�t�,�a�,�l�,�e�)�{�v�a�r� �o�=�[�0�,�0�]�,�n�=�-�1�!�=�=�[�"�r�i�g�h�t�"�,�"�l�e�f�t�"�]�.�i�n�d�e�x�O�f�(�e�)�,�e�=�t�.�s�p�l�i�t�(�/�(�\�+�|�\�-�)�/�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�t�r�i�m�(�)�}�)�,�t�=�e�.�i�n�d�e�x�O�f�(�Z�t�(�e�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�-�1�!�=�=�t�.�s�e�a�r�c�h�(�/�,�|�\�s�/�)�}�)�)�,�i�=�(�e�[�t�]�&�&�-�1�=�=�=�e�[�t�]�.�i�n�d�e�x�O�f�(�"�,�"�)�&�&�c�o�n�s�o�l�e�.�w�a�r�n�(�"�O�f�f�s�e�t�s� �s�e�p�a�r�a�t�e�d� �b�y� �w�h�i�t
1�e� �s�p�a�c�e�(�s�)� �a�r�e� �d�e�p�r�e�c�a�t�e�d�,� �u�s�e� �a� �c�o�m�m�a� �(�,�)� �i�n�s�t�e�a�d�.�"�)�,�/�\�s�*�,�\�s�*�|�\�s�+�/�)�;�r�e�t�u�r�n�(�-�1�!�=�=�t�?�[�e�.�s�l�i�c�e�(�0�,�t�)�.�c�o�n�c�a�t�(�[�e�[�t�]�.�s�p�l�i�t�(�i�)�[�0�]�]�)�,�[�e�[�t�]�.�s�p�l�i�t�(�i�)�[�1�]�]�.�c�o�n�c�a�t�(�e�.�s�l�i�c�e�(�t�+�1�)�)�]�:�[�e�]�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �r�=�(�1�=�=�=�e�?�!�n�:�n�)�?�"�h�e�i�g�h�t�"�:�"�w�i�d�t�h�"�,�i�=�!�1�;�r�e�t�u�r�n� �t�.�r�e�d�u�c�e�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n�"�"�=�=�=�t�[�t�.�l�e�n�g�t�h�-�1�]�&�&�-�1�!�=�=�[�"�+�"�,�"�-�"�]�.�i�n�d�e�x�O�f�(�e�)�?�(�t�[�t�.�l�e�n�g�t�h�-�1�]�=�e�,�i�=�!�0�,�t�)�:�i�?�(�t�[�t�.�l�e�n�g�t�h�-�1�]�+�=�e�,�i�=�!�1�,�t�)�:�t�.�c�o�n�c�a�t�(�e�)�}�,�[�]�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�=�r�,�i�=�a�,�n�=�l�,�o�=�(�t�=�t�)�.�m�a�t�c�h�(�/�(�(�?�:�\�-�|�\�+�)�?�\�d�*�\�.�?�\�d�*�)�(�.�*�)�/�)�,�s�=�+�o�[�1�]�,�o�=�o�[�2�]�,�s�?�0�=�=�=�o�.�i�n�d�e�x�O�f�(�"�%�"�)�?�B�t�(�"�%�p�"�=�=�=�o�?�i�:�n�)�[�e�]�/�1�0�0�*�s�:�"�v�h�"�=�=�=�o�|�|�"�v�w�"�=�=�=�o�?�(�"�v�h�"�=�=�=�o�?�M�a�t�h�.�m�a�x�(�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�c�l�i�e�n�t�H�e�i�g�h�t�,�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�|�|�0�)�:�M�a�t�h�.�m�a�x�(�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�c�l�i�e�n�t�W�i�d�t�h�,�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�|�|�0�)�)�/�1�0�0�*�s�:�s�:�t�;�v�a�r� �e�,�i�,�n�,�o�,�s�}�)�}�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�i�,�n�)�{�i�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�n�e�(�t�)�&�&�(�o�[�n�]�+�=�t�*�(�"�-�"�=�=�=�i�[�e�-�1�]�?�-�1�:�1�)�)�}�)�}�)�,�o�}�v�a�r� �c�e�=�{�p�l�a�c�e�m�e�n�t�:�"�b�o�t�t�o�m�"�,�p�o�s�i�t�i�o�n�F�i�x�e�d�:�!�1�,�e�v�e�n�t�s�E�n�a�b�l�e�d�:�!�0�,�r�e�m�o�v�e�O�n�D�e�s�t�r�o�y�:�!�1�,�o�n�C�r�e�a�t�e�:�f�u�n�c�t�i�o�n�(�)�{�}�,�o�n�U�p�d�a�t�e�:�f�u�n�c�t�i�o�n�(�)�{�}�,�m�o�d�i�f�i�e�r�s�:�{�s�h�i�f�t�:�{�o�r�d�e�r�:�1�0�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�,�o�=�t�.�p�l�a�c�e�m�e�n�t�,�s�=�o�.�s�p�l�i�t�(�"�-�"�)�[�0�]�,�o�=�o�.�s�p�l�i�t�(�"�-�"�)�[�1�]�;�r�e�t�u�r�n� �o�&�&�(�e�=�(�i�=�t�.�o�f�f�s�e�t�s�)�.�r�e�f�e�r�e�n�c�e�,�i�=�i�.�p�o�p�p�e�r�,�n�=�(�s�=�-�1�!�=�=�[�"�b�o�t�t�o�m�"�,�"�t�o�p�"�]�.�i�n�d�e�x�O�f�(�s�)�)�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�,�s�=�{�s�t�a�r�t�:�j�t�(�{�}�,�s�=�s�?�"�l�e�f�t�"�:�"�t�o�p�"�,�e�[�s�]�)�,�e�n�d�:�j�t�(�{�}�,�s�,�e�[�s�]�+�e�[�n�]�-�i�[�n�]�)�}�,�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�=�y�(�{�}�,�i�,�s�[�o�]�)�)�,�t�}�}�,�o�f�f�s�e�t�:�{�o�r�d�e�r�:�2�0�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �e�=�e�.�o�f�f�s�e�t�,�i�=�t�.�p�l�a�c�e�m�e�n�t�,�n�=�t�.�o�f�f�s�e�t�s�,�o�=�n�.�p�o�p�p�e�r�,�n�=�n�.�r�e�f�e�r�e�n�c�e�,�i�=�i�.�s�p�l�i�t�(�"�-�"�)�[�0�]�,�e�=�n�e�(�+�e�)�?�[�+�e�,�0�]�:�l�e�(�e�,�o�,�n�,�i�)�;�r�e�t�u�r�n�"�l�e�f�t�"�=�=�=�i�?�(�o�.�t�o�p�+�=�e�[�0�]�,�o�.�l�e�f�t�-�=�e�[�1�]�)�:�"�r�i�g�h�t�"�=�=�=�i�?�(�o�.�t�o�p�+�=�e�[�0�]�,�o�.�l�e�f�t�+�=�e�[�1�]�)�:�"�t�o�p�"�=�=�=�i�?�(�o�.�l�e�f�t�+�=�e�[�0�]�,�o�.�t�o�p�-�=�e�[�1�]�)�:�"�b�o�t�t�o�m�"�=�=�=�i�&�&�(�o�.�l�e�f�t�+�=�e�[�0�]�,�o�.�t�o�p�+�=�e�[�1�]�)�,�t�.�p�o�p�p�e�r�=�o�,�t�}�,�o�f�f�s�e�t�:�0�}�,�p�r�e�v�e�n�t�O�v�e�r�f�l�o�w�:�{�o�r�d�e�r�:�3�0�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�t�,�n�)�{�v�a�r� �e�=�n�.�b�o�u�n�d�a�r�i�e�s�E�l�e�m�e�n�t�|�|�I�t�(�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�)�,�i�=�(�t�.�i�n�s�t�a�n�c�e�.�r�e�f�e�r�e�n�c�e�=�=�=�e�&�&�(�e�=�I�t�(�e�)�)�,�e�e�(�"�t�r�a�n�s�f�o�r�m�"�)�)�,�o�=�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�.�s�t�y�l�e�,�s�=�o�.�t�o�p�,�r�=�o�.�l�e�f�t�,�a�=�o�[�i�]�,�l�=�(�o�.�t�o�p�=�"�"�,�o�.�l�e�f�t�=�"�"�,�o�[�i�]�=�"�"�,�U�t�(�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�,�t�.�i�n�s�t�a�n�c�e�.�r�e�f�e�r�e�n�c�e�,�n�.�p�a�d�d�i�n�g�,�e�,�t�.�p�o�s�i�t�i�o�n�F�i�x�e�d�)�)�,�e�=�(�o�.�t�o�p�=�s�,�o�.�l�e�f�t�=�r�,�o�[�i�]�=�a�,�n�.�b�o�u�n�d�a�r�i�e�s�=�l�,�n�.�p�r�i�o�r�i�t�y�)�,�c�=�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�,�d�=�{�p�r�i�m�a�r�y�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�c�[�t�]�;�r�e�t�u�r�n� �c�[�t�]�<�l�[�t�]�&�&�!�n�.�e�s�c�a�p�e�W�i�t�h�R�e�f�e�r�e�n�c�e�&�&�(�e�=�M�a�t�h�.�m�a�x�(�c�[�t�]�,�l�[�t�]�)�)�,�j�t�(�{�}�,�t�,�e�)�}�,�s�e�c�o�n�d�a�r�y�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�"�r�i�g�h�t�"�=�=�=�t�?�"�l�e�f�t�"�:�"�t�o�p�"�,�i�=�c�[
1�e�]�;�r�e�t�u�r�n� �c�[�t�]�>�l�[�t�]�&�&�!�n�.�e�s�c�a�p�e�W�i�t�h�R�e�f�e�r�e�n�c�e�&�&�(�i�=�M�a�t�h�.�m�i�n�(�c�[�e�]�,�l�[�t�]�-�(�"�r�i�g�h�t�"�=�=�=�t�?�c�.�w�i�d�t�h�:�c�.�h�e�i�g�h�t�)�)�)�,�j�t�(�{�}�,�e�,�i�)�}�}�;�r�e�t�u�r�n� �e�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�-�1�!�=�=�[�"�l�e�f�t�"�,�"�t�o�p�"�]�.�i�n�d�e�x�O�f�(�t�)�?�"�p�r�i�m�a�r�y�"�:�"�s�e�c�o�n�d�a�r�y�"�;�c�=�y�(�{�}�,�c�,�d�[�e�]�(�t�)�)�}�)�,�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�=�c�,�t�}�,�p�r�i�o�r�i�t�y�:�[�"�l�e�f�t�"�,�"�r�i�g�h�t�"�,�"�t�o�p�"�,�"�b�o�t�t�o�m�"�]�,�p�a�d�d�i�n�g�:�5�,�b�o�u�n�d�a�r�i�e�s�E�l�e�m�e�n�t�:�"�s�c�r�o�l�l�P�a�r�e�n�t�"�}�,�k�e�e�p�T�o�g�e�t�h�e�r�:�{�o�r�d�e�r�:�4�0�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�o�f�f�s�e�t�s�,�i�=�e�.�p�o�p�p�e�r�,�e�=�e�.�r�e�f�e�r�e�n�c�e�,�n�=�t�.�p�l�a�c�e�m�e�n�t�.�s�p�l�i�t�(�"�-�"�)�[�0�]�,�o�=�M�a�t�h�.�f�l�o�o�r�,�n�=�-�1�!�=�=�[�"�t�o�p�"�,�"�b�o�t�t�o�m�"�]�.�i�n�d�e�x�O�f�(�n�)�,�s�=�n�?�"�r�i�g�h�t�"�:�"�b�o�t�t�o�m�"�,�r�=�n�?�"�l�e�f�t�"�:�"�t�o�p�"�,�n�=�n�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�;�r�e�t�u�r�n� �i�[�s�]�<�o�(�e�[�r�]�)�&�&�(�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�[�r�]�=�o�(�e�[�r�]�)�-�i�[�n�]�)�,�i�[�r�]�>�o�(�e�[�s�]�)�&�&�(�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�[�r�]�=�o�(�e�[�s�]�)�)�,�t�}�}�,�a�r�r�o�w�:�{�o�r�d�e�r�:�5�0�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�!�s�e�(�t�.�i�n�s�t�a�n�c�e�.�m�o�d�i�f�i�e�r�s�,�"�a�r�r�o�w�"�,�"�k�e�e�p�T�o�g�e�t�h�e�r�"�)�)�r�e�t�u�r�n� �t�;�e�=�e�.�e�l�e�m�e�n�t�;�i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�)�{�i�f�(�!�(�e�=�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�e�)�)�)�r�e�t�u�r�n� �t�}�e�l�s�e� �i�f�(�!�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�.�c�o�n�t�a�i�n�s�(�e�)�)�r�e�t�u�r�n� �c�o�n�s�o�l�e�.�w�a�r�n�(�"�W�A�R�N�I�N�G�:� �`�a�r�r�o�w�.�e�l�e�m�e�n�t�`� �m�u�s�t� �b�e� �c�h�i�l�d� �o�f� �i�t�s� �p�o�p�p�e�r� �e�l�e�m�e�n�t�!�"�)�,�t�;�v�a�r� �i�=�t�.�p�l�a�c�e�m�e�n�t�.�s�p�l�i�t�(�"�-�"�)�[�0�]�,�n�=�t�.�o�f�f�s�e�t�s�,�o�=�n�.�p�o�p�p�e�r�,�n�=�n�.�r�e�f�e�r�e�n�c�e�,�i�=�-�1�!�=�=�[�"�l�e�f�t�"�,�"�r�i�g�h�t�"�]�.�i�n�d�e�x�O�f�(�i�)�,�s�=�i�?�"�h�e�i�g�h�t�"�:�"�w�i�d�t�h�"�,�r�=�i�?�"�T�o�p�"�:�"�L�e�f�t�"�,�a�=�r�.�t�o�L�o�w�e�r�C�a�s�e�(�)�,�l�=�i�?�"�l�e�f�t�"�:�"�t�o�p�"�,�i�=�i�?�"�b�o�t�t�o�m�"�:�"�r�i�g�h�t�"�,�c�=�G�t�(�e�)�[�s�]�,�i�=�(�n�[�i�]�-�c�<�o�[�a�]�&�&�(�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�[�a�]�-�=�o�[�a�]�-�(�n�[�i�]�-�c�)�)�,�n�[�a�]�+�c�>�o�[�i�]�&�&�(�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�[�a�]�+�=�n�[�a�]�+�c�-�o�[�i�]�)�,�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�=�B�t�(�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�)�,�n�[�a�]�+�n�[�s�]�/�2�-�c�/�2�)�,�n�=�E�t�(�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�)�,�d�=�p�a�r�s�e�F�l�o�a�t�(�n�[�"�m�a�r�g�i�n�"�+�r�]�,�1�0�)�,�n�=�p�a�r�s�e�F�l�o�a�t�(�n�[�"�b�o�r�d�e�r�"�+�r�+�"�W�i�d�t�h�"�]�,�1�0�)�,�r�=�i�-�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�[�a�]�-�d�-�n�,�r�=�M�a�t�h�.�m�a�x�(�M�a�t�h�.�m�i�n�(�o�[�s�]�-�c�,�r�)�,�0�)�;�r�e�t�u�r�n� �t�.�a�r�r�o�w�E�l�e�m�e�n�t�=�e�,�t�.�o�f�f�s�e�t�s�.�a�r�r�o�w�=�(�j�t�(�i�=�{�}�,�a�,�M�a�t�h�.�r�o�u�n�d�(�r�)�)�,�j�t�(�i�,�l�,�"�"�)�,�i�)�,�t�}�,�e�l�e�m�e�n�t�:�"�[�x�-�a�r�r�o�w�]�"�}�,�f�l�i�p�:�{�o�r�d�e�r�:�6�0�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�l�,�c�)�{�i�f�(�t�e�(�l�.�i�n�s�t�a�n�c�e�.�m�o�d�i�f�i�e�r�s�,�"�i�n�n�e�r�"�)�)�r�e�t�u�r�n� �l�;�i�f�(�l�.�f�l�i�p�p�e�d�&�&�l�.�p�l�a�c�e�m�e�n�t�=�=�=�l�.�o�r�i�g�i�n�a�l�P�l�a�c�e�m�e�n�t�)�r�e�t�u�r�n� �l�;�v�a�r� �d�=�U�t�(�l�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�,�l�.�i�n�s�t�a�n�c�e�.�r�e�f�e�r�e�n�c�e�,�c�.�p�a�d�d�i�n�g�,�c�.�b�o�u�n�d�a�r�i�e�s�E�l�e�m�e�n�t�,�l�.�p�o�s�i�t�i�o�n�F�i�x�e�d�)�,�u�=�l�.�p�l�a�c�e�m�e�n�t�.�s�p�l�i�t�(�"�-�"�)�[�0�]�,�h�=�X�t�(�u�)�,�p�=�l�.�p�l�a�c�e�m�e�n�t�.�s�p�l�i�t�(�"�-�"�)�[�1�]�|�|�"�"�,�f�=�[�]�;�s�w�i�t�c�h�(�c�.�b�e�h�a�v�i�o�r�)�{�c�a�s�e�"�f�l�i�p�"�:�f�=�[�u�,�h�]�;�b�r�e�a�k�;�c�a�s�e�"�c�l�o�c�k�w�i�s�e�"�:�f�=�a�e�(�u�)�;�b�r�e�a�k�;�c�a�s�e�"�c�o�u�n�t�e�r�c�l�o�c�k�w�i�s�e�"�:�f�=�a�e�(�u�,�!�0�)�;�b�r�e�a�k�;�d�e�f�a�u�l�t�:�f�=�c�.�b�e�h�a�v�i�o�r�}�r�e�t�u�r�n� �f�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�u�!�=�=�t�|�|�f�.�l�e�n�g�t�h�=�=�=�e�+�1�)�r�e�t�u�r�n� �l�;�u�=�l�.�p�l�a�c�e�m�e�n�t�.�s�p�l�i�t�(�"�-�"�)�[�0�]�,�h�=�X�t�(�u�)�;�v�a�r� �t�=�l�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�,�i�=�l�.�o�f�f�s�e�t�s�.�r�e�f�e�r�e�n�c�e�,�n�=�M�a�t�h�.�f�l�o�o�r�,�i�=�"�l�e�f�t�"�=�=�=�u�&�&�n�(�t�.�r�i�g�h�t�)�>�n�(�i�.�l�e�f�t�)�|�|�"�r�i�g�h�t�"�=�=�=�u�&�&�n�(�t�.�l�e�f�t�)�<�n�(�i�.�r�i�g�h�t�)�|�|�"�t�o�p�"�=�=�=�u�&�&�n�(�t�.�b�o�t�t�o�m�)�>�n�(�i�.�t�o�p�)�|�|�"�b�o�t�t�o�m�"�=�=�=�u�&�&�n�(�t�.�t�o�p�)�<�n�(�i�.�b�o�t�t�o�m�)�,�o�=�n�(�t�.�l�e�f�t�)�<�n�(�d�.�l�e�f�t�)�,�s�=�n�(�t�.�r�i�g�h�t�)�>�n�(�d�.�r�i�g�h�t�)�,�r�=�n�(�t�.�t�o�p�)�<�n�(�d�.�t�o�p�)�,�t�=�n�(�t�.�b�o�t�t�o�m�)�>�n�(�d�.�b�o�t�t�o�m�)�,�n�=�"�l�e�f�t�"�=�=�=�u�&�&�o�|�|�"�r�i�g�h�t�"�=�=�=�u�&�&�s�|�|�"�t�o�p�"�=�=�=�u�&�&�r�|�|�"�b�o�t�t�o�m�"�=�=�=�u�&�&�t�,�a�=�-�1�!�=�=�[�"�t�o�p�"�,�"�b�o�t�t�o�m�"�]�.�i�n�d�e�x�O�f�(�u�)�,�o�=�!�!�c�.�f�l�i�p�V�a�r�i�a�t�i�o�n�s�&�&�(�a�&�&�"�s�t�a�r�t�"�=�=�=�p�&�&�o�|�|�a�&�&�"�e�n�d�"�=�=�=�p�&�&�s�|�|�!�a�&�&�"�s�t�a�r�t�"�=�=�=�p�&�&�r�|�|�!�a�&�&�"�e�n�d�"�=�=�=�p�&�&�t�)�;�(�i�|�|�n�|�|�o�)�&�&�(�l�.�f�l�i�p�p�e�d�=�!�0�,�(�i�|�|�n�)�&�&�(�u�=�f�[�e�+�1�]�)�,�o�&�&�(�p�=�"�e�n�d�"�=�=�=�p�?�"�s�t�a�r�t�"�:�"�s�t�a�r�t�"�=�=�=�p�?�"�e�n�d�"�:�p�)�,�l�.�p�l�a�c�e�m�e�n�t�=�u�+�(�p�?�"�-�"�+�p�:�"�"�)�,�l�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�=�y�(�{�}�,�l�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�,�K�t�(�l�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�,�l�.�o�f�f�s�e�t�s�.�r�e�f�e�r�e�n�c�e�,�l�.�p�l�a�c�e�m�e�n�t�)�)�,�l�=�J�t�(�l�.�i�n�s�t�a�n�c�e�.�m�o�d�i�f�i�e�r�s�,�l�,�"�f�l�i�p�"�)�)�}�)�,�l�}�,�b�e�h�a�v�i�o�r�:�"�f�l�i�p�"�,�p�a�d�d�i�n�g�:�5�,�b�o�u�n�d�a�r�i�e�s�E�l�e�m�e�n�t�:�"�v�i�e�w�p�o�r�t�"�}�,�i�n�n�e�r�:�{�o�r�d�e�r�:�7�0�0�,�e�n�a�b�l�e�d�:�!�1�,�f�n�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�p�l�a�c�e�m�e�n�t�,�i�=�e�.�s�p�l�i�t�(�"�-�"�)�[�0�]�,�n�=�t�.�o�f�f�s�e�t�s�,�o�=�n�.�p�o�p�p�e�r�,�n�=�n�.�r�e�f�e�r�e�n�c�e�,�s�=�-�1�!�=�=�[�"�l�e�f�t�"�,�"�r�i�g�h�t�"�]�.�i�n�d�e�x�O�f�(�i�)�,�r�=�-�1�=�=�=�[�"�t�o�p�"�,�"�l�e�f�t�"�]�.�i�n�d�e�x�O�f�(�i�)�;�r�e�t�u�r�n� �o�[�s�?�"�l�e�f�t�"�:�"�t�o�p�"�]�=�n�[�i�]�-�(�r�?�o�[�s�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�]�:�0�)�,�t�.
1�p�l�a�c�e�m�e�n�t�=�X�t�(�e�)�,�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�=�B�t�(�o�)�,�t�}�}�,�h�i�d�e�:�{�o�r�d�e�r�:�8�0�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�s�e�(�t�.�i�n�s�t�a�n�c�e�.�m�o�d�i�f�i�e�r�s�,�"�h�i�d�e�"�,�"�p�r�e�v�e�n�t�O�v�e�r�f�l�o�w�"�)�)�r�e�t�u�r�n� �t�;�v�a�r� �e�=�t�.�o�f�f�s�e�t�s�.�r�e�f�e�r�e�n�c�e�,�i�=�Z�t�(�t�.�i�n�s�t�a�n�c�e�.�m�o�d�i�f�i�e�r�s�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�p�r�e�v�e�n�t�O�v�e�r�f�l�o�w�"�=�=�=�t�.�n�a�m�e�}�)�.�b�o�u�n�d�a�r�i�e�s�;�i�f�(�e�.�b�o�t�t�o�m�<�i�.�t�o�p�|�|�e�.�l�e�f�t�>�i�.�r�i�g�h�t�|�|�e�.�t�o�p�>�i�.�b�o�t�t�o�m�|�|�e�.�r�i�g�h�t�<�i�.�l�e�f�t�)�{�i�f�(�!�0�=�=�=�t�.�h�i�d�e�)�r�e�t�u�r�n� �t�;�t�.�h�i�d�e�=�!�0�,�t�.�a�t�t�r�i�b�u�t�e�s�[�"�x�-�o�u�t�-�o�f�-�b�o�u�n�d�a�r�i�e�s�"�]�=�"�"�}�e�l�s�e�{�i�f�(�!�1�=�=�=�t�.�h�i�d�e�)�r�e�t�u�r�n� �t�;�t�.�h�i�d�e�=�!�1�,�t�.�a�t�t�r�i�b�u�t�e�s�[�"�x�-�o�u�t�-�o�f�-�b�o�u�n�d�a�r�i�e�s�"�]�=�!�1�}�r�e�t�u�r�n� �t�}�}�,�c�o�m�p�u�t�e�S�t�y�l�e�:�{�o�r�d�e�r�:�8�5�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�e�.�x�,�n�=�e�.�y�,�o�=�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�,�s�=�Z�t�(�t�.�i�n�s�t�a�n�c�e�.�m�o�d�i�f�i�e�r�s�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�a�p�p�l�y�S�t�y�l�e�"�=�=�=�t�.�n�a�m�e�}�)�.�g�p�u�A�c�c�e�l�e�r�a�t�i�o�n�,�s�=�(�v�o�i�d� �0�!�=�=�s�&�&�c�o�n�s�o�l�e�.�w�a�r�n�(�"�W�A�R�N�I�N�G�:� �`�g�p�u�A�c�c�e�l�e�r�a�t�i�o�n�`� �o�p�t�i�o�n� �m�o�v�e�d� �t�o� �`�c�o�m�p�u�t�e�S�t�y�l�e�`� �m�o�d�i�f�i�e�r� �a�n�d� �w�i�l�l� �n�o�t� �b�e� �s�u�p�p�o�r�t�e�d� �i�n� �f�u�t�u�r�e� �v�e�r�s�i�o�n�s� �o�f� �P�o�p�p�e�r�.�j�s�!�"�)�,�v�o�i�d� �0�!�=�=�s�?�s�:�e�.�g�p�u�A�c�c�e�l�e�r�a�t�i�o�n�)�,�e�=�W�t�(�I�t�(�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�)�)�,�r�=�{�p�o�s�i�t�i�o�n�:�o�.�p�o�s�i�t�i�o�n�}�,�o�=�{�l�e�f�t�:�M�a�t�h�.�f�l�o�o�r�(�o�.�l�e�f�t�)�,�t�o�p�:�M�a�t�h�.�r�o�u�n�d�(�o�.�t�o�p�)�,�b�o�t�t�o�m�:�M�a�t�h�.�r�o�u�n�d�(�o�.�b�o�t�t�o�m�)�,�r�i�g�h�t�:�M�a�t�h�.�f�l�o�o�r�(�o�.�r�i�g�h�t�)�}�,�i�=�"�b�o�t�t�o�m�"�=�=�=�i�?�"�t�o�p�"�:�"�b�o�t�t�o�m�"�,�n�=�"�r�i�g�h�t�"�=�=�=�n�?�"�l�e�f�t�"�:�"�r�i�g�h�t�"�,�a�=�e�e�(�"�t�r�a�n�s�f�o�r�m�"�)�,�l�=�"�b�o�t�t�o�m�"�=�=�i�?�-�e�.�h�e�i�g�h�t�+�o�.�b�o�t�t�o�m�:�o�.�t�o�p�,�e�=�"�r�i�g�h�t�"�=�=�n�?�-�e�.�w�i�d�t�h�+�o�.�r�i�g�h�t�:�o�.�l�e�f�t�,�s�=�(�s�&�&�a�?�(�r�[�a�]�=�"�t�r�a�n�s�l�a�t�e�3�d�(�"�+�e�+�"�p�x�,� �"�+�l�+�"�p�x�,� �0�)�"�,�r�[�i�]�=�0�,�r�[�n�]�=�0�,�r�.�w�i�l�l�C�h�a�n�g�e�=�"�t�r�a�n�s�f�o�r�m�"�)�:�(�o�=�"�r�i�g�h�t�"�=�=�n�?�-�1�:�1�,�r�[�i�]�=�l�*�(�"�b�o�t�t�o�m�"�=�=�i�?�-�1�:�1�)�,�r�[�n�]�=�e�*�o�,�r�.�w�i�l�l�C�h�a�n�g�e�=�i�+�"�,� �"�+�n�)�,�{�"�x�-�p�l�a�c�e�m�e�n�t�"�:�t�.�p�l�a�c�e�m�e�n�t�}�)�;�r�e�t�u�r�n� �t�.�a�t�t�r�i�b�u�t�e�s�=�y�(�{�}�,�s�,�t�.�a�t�t�r�i�b�u�t�e�s�)�,�t�.�s�t�y�l�e�s�=�y�(�{�}�,�r�,�t�.�s�t�y�l�e�s�)�,�t�.�a�r�r�o�w�S�t�y�l�e�s�=�y�(�{�}
1�,�t�.�o�f�f�s�e�t�s�.�a�r�r�o�w�,�t�.�a�r�r�o�w�S�t�y�l�e�s�)�,�t�}�,�g�p�u�A�c�c�e�l�e�r�a�t�i�o�n�:�!�0�,�x�:�"�b�o�t�t�o�m�"�,�y�:�"�r�i�g�h�t�"�}�,�a�p�p�l�y�S�t�y�l�e�:�{�o�r�d�e�r�:�9�0�0�,�e�n�a�b�l�e�d�:�!�0�,�f�n�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�;�r�e�t�u�r�n� �o�e�(�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�,�t�.�s�t�y�l�e�s�)�,�e�=�t�.�i�n�s�t�a�n�c�e�.�p�o�p�p�e�r�,�i�=�t�.�a�t�t�r�i�b�u�t�e�s�,�O�b�j�e�c�t�.�k�e�y�s�(�i�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�!�1�!�=�=�i�[�t�]�?�e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�t�,�i�[�t�]�)�:�e�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�t�)�}�)�,�t�.�a�r�r�o�w�E�l�e�m�e�n�t�&�&�O�b�j�e�c�t�.�k�e�y�s�(�t�.�a�r�r�o�w�S�t�y�l�e�s�)�.�l�e�n�g�t�h�&�&�o�e�(�t�.�a�r�r�o�w�E�l�e�m�e�n�t�,�t�.�a�r�r�o�w�S�t�y�l�e�s�)�,�t�}�,�o�n�L�o�a�d�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�)�{�o�=�Q�t�(�o�,�e�,�t�,�i�.�p�o�s�i�t�i�o�n�F�i�x�e�d�)�,�o�=�Y�t�(�i�.�p�l�a�c�e�m�e�n�t�,�o�,�e�,�t�,�i�.�m�o�d�i�f�i�e�r�s�.�f�l�i�p�.�b�o�u�n�d�a�r�i�e�s�E�l�e�m�e�n�t�,�i�.�m�o�d�i�f�i�e�r�s�.�f�l�i�p�.�p�a�d�d�i�n�g�)�;�r�e�t�u�r�n� �e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�x�-�p�l�a�c�e�m�e�n�t�"�,�o�)�,�o�e�(�e�,�{�p�o�s�i�t�i�o�n�:�i�.�p�o�s�i�t�i�o�n�F�i�x�e�d�?�"�f�i�x�e�d�"�:�"�a�b�s�o�l�u�t�e�"�}�)�,�i�}�,�g�p�u�A�c�c�e�l�e�r�a�t�i�o�n�:�v�o�i�d� �0�}�}�}�,�d�e�=�(�v�(�u�e�,�[�{�k�e�y�:�"�u�p�d�a�t�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�t�h�i�s�.�s�t�a�t�e�.�i�s�D�e�s�t�r�o�y�e�d�|�|�(�(�t�=�{�i�n�s�t�a�n�c�e�:�t�h�i�s�,�s�t�y�l�e�s�:�{�}�,�a�r�r�o�w�S�t�y�l�e�s�:�{�}�,�a�t�t�r�i�b�u�t�e�s�:�{�}�,�f�l�i�p�p�e�d�:�!�1�,�o�f�f�s�e�t�s�:�{�}�}�)�.�o�f�f�s�e�t�s�.�r�e�f�e�r�e�n�c�e�=�Q�t�(�t�h�i�s�.�s�t�a�t�e�,�t�h�i�s�.�p�o�p�p�e�r�,�t�h�i�s�.�r�e�f�e�r�e�n�c�e�,�t�h�i�s�.�o�p�t�i�o�n�s�.�p�o�s�i�t�i�o�n�F�i�x�e�d�)�,�t�.�p�l�a�c�e�m�e�n�t�=�Y�t�(�t�h�i�s�.�o�p�t�i�o�n�s�.�p�l�a�c�e�m�e�n�t�,�t�.�o�f�f�s�e�t�s�.�r�e�f�e�r�e�n�c�e�,�t�h�i�s�.�p�o�p�p�e�r�,�t�h�i�s�.�r�e�f�e�r�e�n�c�e�,�t�h�i�s�.�o�p�t�i�o�n�s�.�m�o�d�i�f�i�e�r�s�.�f�l�i�p�.�b�o�u�n�d�a�r�i�e�s�E�l�e�m�e�n�t�,�t�h�i�s�.�o�p�t�i�o�n�s�.�m�o�d�i�f�i�e�r�s�.�f�l�i�p�.�p�a�d�d�i�n�g�)�,�t�.�o�r�i�g�i�n�a�l�P�l�a�c�e�m�e�n�t�=�t�.�p�l�a�c�e�m�e�n�t�,�t�.�p�o�s�i�t�i�o�n�F�i�x�e�d�=�t�h�i�s�.�o�p�t�i�o�n�s�.�p�o�s�i�t�i�o�n�F�i�x�e�d�,�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�=�K�t�(�t�h�i�s�.�p�o�p�p�e�r�,�t�.�o�f�f�s�e�t�s�.�r�e�f�e�r�e�n�c�e�,�t�.�p�l�a�c�e�m�e�n�t�)�,�t�.�o�f�f�s�e�t�s�.�p�o�p�p�e�r�.�p�o�s�i�t�i�o�n�=�t�h�i�s�.�o�p�t�i�o�n�s�.�p�o�s�i�t�i�o�n�F�i�x�e�d�?�"�f�i�x�e�d�"�:�"�a�b�s�o�l�u�t�e�"�,�t�=�J�t�(�t�h�i�s�.�m�o�d�i�f�i�e�r�s�,�t�)�,�t�h�i�s�.�s�t�a�t�e�.�i�s�C�r�e�a�t�e�d�?�t�h�i�s�.�o�p�t�i�o�n�s�.�o�n�U�p�d�a�t�e�(�t�)�:�(�t�h�i�s�.�s�t�a�t�e�.�i�s�C�r�e�a�t�e�d�=�!�0�,�t�h�i�s�.�o�p�t�i�o�n�s�.�o�n�C�r�e�a�t�e�(�t�)�)�)�}�.�c�a�l�l�(�t�h�i�s�)�}�}�,�{�k�e�y�:�"�d�e�s�t�r�o�y�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�s�t�a�t�e�.�i�s�D�e�s�t�r�o�y�e�d�=�!�0�,�t�e�(�t�h�i�s�.�m�o�d�i�f�i�e�r�s�,�"�a�p�p�l�y�S�t�y�l�e�"�)�&�&�(�t�h�i�s�.�p�o�p�p�e�r�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�"�x�-�p�l�a�c�e�m�e�n�t�"�)�,�t�h�i�s�.�p�o�p�p�e�r�.�s�t�y�l�e�.�p�o�s�i�t�i�o�n�=�"�"�,�t�h�i�s�.�p�o�p�p�e�r�.�s�t�y�l�e�.�t�o�p�=�"�"�,�t�h�i�s�.�p�o�p�p�e�r�.�s�t�y�l�e�.�l�e�f�t�=�"�"�,�t�h�i�s�.�p�o�p�p�e�r�.�s�t�y�l�e�.�r�i�g�h�t�=�"�"�,�t�h�i�s�.�p�o�p�p�e�r�.�s�t�y�l�e�.�b�o�t�t�o�m�=�"�"�,�t�h�i�s�.�p�o�p�p�e�r�.�s�t�y�l�e�.�w�i�l�l�C�h�a�n�g�e�=�"�"�,�t�h�i�s�.�p�o�p�p�e�r�.�s�t�y�l�e�[�e�e�(�"�t�r�a�n�s�f�o�r�m�"�)�]�=�"�"�)�,�t�h�i�s�.�d�i�s�a�b�l�e�E�v�e�n�t�L�i�s�t�e�n�e�r�s�(�)�,�t�h�i�s�.�o�p�t�i�o�n�s�.�r�e�m�o�v�e�O�n�D�e�s�t�r�o�y�&�&�t�h�i�s�.�p�o�p�p�e�r�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�t�h�i�s�.�p�o�p�p�e�r�)�,�t�h�i�s�}�.�c�a�l�l�(�t�h�i�s�)�}�}�,�{�k�e�y�:�"�e�n�a�b�l�e�E�v�e�n�t�L�i�s�t�e�n�e�r�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�;�t�h�i�s�.�s�t�a�t�e�.�e�v�e�n�t�s�E�n�a�b�l�e�d�|�|�(�t�h�i�s�.�s�t�a�t�e�=�(�t�=�t�h�i�s�.�r�e�f�e�r�e�n�c�e�,�t�h�i�s�.�o�p�t�i�o�n�s�,�e�=�t�h�i�s�.�s�t�a�t�e�,�i�=�t�h�i�s�.�s�c�h�e�d�u�l�e�U�p�d�a�t�e�,
1�e�.�u�p�d�a�t�e�B�o�u�n�d�=�i�,�i�e�(�t�)�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�e�.�u�p�d�a�t�e�B�o�u�n�d�,�{�p�a�s�s�i�v�e�:�!�0�}�)�,�f�u�n�c�t�i�o�n� �t�(�e�,�i�,�n�,�o�)�{�v�a�r� �s�=�"�B�O�D�Y�"�=�=�=�e�.�n�o�d�e�N�a�m�e�,�e�=�s�?�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�e�f�a�u�l�t�V�i�e�w�:�e�;�e�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�i�,�n�,�{�p�a�s�s�i�v�e�:�!�0�}�)�,�s�|�|�t�(�O�t�(�e�.�p�a�r�e�n�t�N�o�d�e�)�,�i�,�n�,�o�)�,�o�.�p�u�s�h�(�e�)�}�(�i�=�O�t�(�t�)�,�"�s�c�r�o�l�l�"�,�e�.�u�p�d�a�t�e�B�o�u�n�d�,�e�.�s�c�r�o�l�l�P�a�r�e�n�t�s�)�,�e�.�s�c�r�o�l�l�E�l�e�m�e�n�t�=�i�,�e�.�e�v�e�n�t�s�E�n�a�b�l�e�d�=�!�0�,�e�)�)�}�.�c�a�l�l�(�t�h�i�s�)�}�}�,�{�k�e�y�:�"�d�i�s�a�b�l�e�E�v�e�n�t�L�i�s�t�e�n�e�r�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�;�t�h�i�s�.�s�t�a�t�e�.�e�v�e�n�t�s�E�n�a�b�l�e�d�&�&�(�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�t�h�i�s�.�s�c�h�e�d�u�l�e�U�p�d�a�t�e�)�,�t�h�i�s�.�s�t�a�t�e�=�(�t�=�t�h�i�s�.�r�e�f�e�r�e�n�c�e�,�e�=�t�h�i�s�.�s�t�a�t�e�,�i�e�(�t�)�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�e�.�u�p�d�a�t�e�B�o�u�n�d�)�,�e�.�s�c�r�o�l�l�P�a�r�e�n�t�s�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�e�.�u�p�d�a�t�e�B�o�u�n�d�)�}�)�,�e�.�u�p�d�a�t�e�B�o�u�n�d�=�n�u�l�l�,�e�.�s�c�r�o�l�l�P�a�r�e�n�t�s�=�[�]�,�e�.�s�c�r�o�l�l�E�l�e�m�e�n�t�=�n�u�l�l�,�e�.�e�v�e�n�t�s�E�n�a�b�l�e�d�=�!�1�,�e�)�)�}�.�c�a�l�l�(�t�h�i�s�)�}�}�]�)�,�u�e�)�;�f�u�n�c�t�i�o�n� �u�e�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�,�n�=�2�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�2�]�?�a�r�g�u�m�e�n�t�s�[�2�]�:�{�}�,�o�=�t�h�i�s�;�i�f�(�!�(�o� �i�n�s�t�a�n�c�e�o�f� �u�e�)�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�C�a�n�n�o�t� �c�a�l�l� �a� �c�l�a�s�s� �a�s� �a� �f�u�n�c�t�i�o�n�"�)�;�t�h�i�s�.�s�c�h�e�d�u�l�e�U�p�d�a�t�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�i�.�u�p�d�a�t�e�)�}�,�t�h�i�s�.�u�p�d�a�t�e�=�C�t�(�t�h�i�s�.�u�p�d�a�t�e�.�b�i�n�d�(�t�h�i�s�)�)�,�t�h�i�s�.�o�p�t�i�o�n�s�=�y�(�{�}�,�u�e�.�D�e�f�a�u�l�t�s�,�n�)�,�t�h�i�s�.�s�t�a�t�e�=�{�i�s�D�e�s�t�r�o�y�e�d�:�!�1�,�i�s�C�r�e�a�t�e�d�:�!�1�,�s�c�r�o�l�l�P�a�r�e�n�t�s�:�[�]�}�,�t�h�i�s�.�r�e�f�e�r�e�n�c�e�=�t�&�&�t�.�j�q�u�e�r�y�?�t�[�0�]�:�t�,�t�h�i�s�.�p�o�p�p�e�r�=�e�&�&�e�.�j�q�u�e�r�y�?�e�[�0�]�:�e�,�t�h�i�s�.�o�p�t�i�o�n�s�.�m�o�d�i�f�i�e�r�s�=�{�}�,�O�b�j�e�c�t�.�k�e�y�s�(�y�(�{�}�,�u�e�.�D�e�f�a�u�l�t�s�.�m�o�d�i�f�i�e�r�s�,�n�.�m�o�d�i�f�i�e�r�s�)�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�i�.�o�p�t�i�o�n�s�.�m�o�d�i�f�i�e�r�s�[�t�]�=�y�(�{�}�,�u�e�.�D�e�f�a�u�l�t�s�.�m�o�d�i�f�i�e�r�s�[�t�]�|�|�{�}�,�n�.�m�o�d�i�f�i�e�r�s�?�n�.�m�o�d�i�f�i�e�r�s�[�t�]�:�{�}�)�}�)�,�t�h�i�s�.�m�o�d�i�f�i�e�r�s�=�O�b�j�e�c�t�.�k�e�y�s�(�t�h�i�s�.�o�p�t�i�o�n�s�.�m�o�d�i�f�i�e�r�s�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �y�(�{�n�a�m�e�:�t�}�,�i�.�o�p�t�i�o�n�s�.�m�o�d�i�f�i�e�r�s�[�t�]�)�}�)�.�s�o�r�t�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�.�o�r�d�e�r�-�e�.�o�r�d�e�r�}�)�,�t�h�i�s�.�m�o�d�i�f�i�e�r�s�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�e�n�a�b�l�e�d�&�&�k�t�(�t�.�o�n�L�o�a�d�)�&�&�t�.�o�n�L�o�a�d�(�i�.�r�e�f�e�r�e�n�c�e�,�i�.�p�o�p�p�e�r�,�i�.�o�p�t�i�o�n�s�,�t�,�i�.�s�t�a�t�e�)�}�)�,�t�h�i�s�.�u�p�d�a�t�e�(�)�;�o�=�t�h�i�s�.�o�p�t�i�o�n�s�.�e�v�e�n�t�s�E�n�a�b�l�e�d�;�o�&�&�t�h�i�s�.�e�n�a�b�l�e�E�v�e�n�t�L�i�s�t�e�n�e�r�s�(�)�,�t�h�i�s�.�s�t�a�t�e�.�e�v�e�n�t�s�E�n�a�b�l�e�d�=�o�}�d�e�.�U�t�i�l�s�=�(�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�?�w�i�n�d�o�w�:�g�l�o�b�a�l�)�.�P�o�p�p�e�r�U�t�i�l�s�,�d�e�.�p�l�a�c�e�m�e�n�t�s�=�w�,�d�e�.�D�e�f�a�u�l�t�s�=�c�e�;�_�=�"�.�"�+�(�p�e�=�"�b�s�.�d�r�o�p�d�o�w�n�"�)�,�v�=�"�.�d�a�t�a�-�a�p�i�"�,�f�e�=�(�b�=�e�)�.�f�n�[�h�e�=�"�d�r�o�p�d�o�w�n�"�]�,�m�e�=�n�e�w� �R�e�g�E�x�p�(�"�3�8�|�4�0�|�2�7�"�)�,�T�=�{�H�I�D�E�:�"�h�i�d�e�"�+�_�,�H�I�D�D�E�N�:�"�h�i�d�d�e�n�"�+�_�,�S�H�O�W�:�"�s�h�o�w�"�+�_�,�S�H�O�W�N�:�"�s�h�o�w�n�"�+�_�,�C�L�I�C�K�:�"�c�l�i�c�k�"�+�_�,�C�L�I�C�K�_�D�A�T�A�_�A�P�I�:�"�c�l�i�c�k�"�+�_�+�v�,�K�E�Y�D�O�W�N�_�D�A�T�A�_�A�P�I�:�"�k�e�y�d�o�w�n�"�+�_�+�v�,�K�E�Y�U�P�_�D�A�T�A�_�A�P�I�:�"�k�e�y�u�p�"�+�_�+�v�}
1�,�g�e�=�"�d�i�s�a�b�l�e�d�"�,�v�e�=�"�s�h�o�w�"�,�y�e�=�"�d�r�o�p�d�o�w�n�-�m�e�n�u�-�r�i�g�h�t�"�,�w�e�=�'�[�d�a�t�a�-�t�o�g�g�l�e�=�"�d�r�o�p�d�o�w�n�"�]�'�,�b�e�=�"�.�d�r�o�p�d�o�w�n�-�m�e�n�u�"�,�_�e�=�{�o�f�f�s�e�t�:�0�,�f�l�i�p�:�!�0�,�b�o�u�n�d�a�r�y�:�"�s�c�r�o�l�l�P�a�r�e�n�t�"�,�r�e�f�e�r�e�n�c�e�:�"�t�o�g�g�l�e�"�,�d�i�s�p�l�a�y�:�"�d�y�n�a�m�i�c�"�}�,�T�e�=�{�o�f�f�s�e�t�:�"�(�n�u�m�b�e�r�|�s�t�r�i�n�g�|�f�u�n�c�t�i�o�n�)�"�,�f�l�i�p�:�"�b�o�o�l�e�a�n�"�,�b�o�u�n�d�a�r�y�:�"�(�s�t�r�i�n�g�|�e�l�e�m�e�n�t�)�"�,�r�e�f�e�r�e�n�c�e�:�"�(�s�t�r�i�n�g�|�e�l�e�m�e�n�t�)�"�,�d�i�s�p�l�a�y�:�"�s�t�r�i�n�g�"�}�,�(�w�=�M�.�p�r�o�t�o�t�y�p�e�)�.�t�o�g�g�l�e�=�f�u�n�c�t�i�o�n�(�)�{�i�f�(�!�t�h�i�s�.�_�e�l�e�m�e�n�t�.�d�i�s�a�b�l�e�d�&�&�!�b�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�g�e�)�)�{�v�a�r� �t�=�M�.�_�g�e�t�P�a�r�e�n�t�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�e�=�b�(�t�h�i�s�.�_�m�e�n�u�)�.�h�a�s�C�l�a�s�s�(�v�e�)�;�i�f�(�M�.�_�c�l�e�a�r�M�e�n�u�s�(�)�,�!�e�)�{�v�a�r� �e�=�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�t�h�i�s�.�_�e�l�e�m�e�n�t�}�,�i�=�b�.�E�v�e�n�t�(�T�.�S�H�O�W�,�e�)�;�i�f�(�b�(�t�)�.�t�r�i�g�g�e�r�(�i�)�,�!�i�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�)�{�i�f�(�!�t�h�i�s�.�_�i�n�N�a�v�b�a�r�)�{�i�f�(�v�o�i�d� �0�=�=�=�d�e�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�B�o�o�t�s�t�r�a�p� �d�r�o�p�d�o�w�n� �r�e�q�u�i�r�e� �P�o�p�p�e�r�.�j�s� �(�h�t�t�p�s�:�/�/�p�o�p�p�e�r�.�j�s�.�o�r�g�)�"�)�;�i�=�t�h�i�s�.�_�e�l�e�m�e�n�t�;�"�p�a�r�e�n�t�"�=�=�=�t�h�i�s�.�_�c�o�n�f�i�g�.�r�e�f�e�r�e�n�c�e�?�i�=�t�:�p�.�i�s�E�l�e�m�e�n�t�(�t�h�i�s�.�_�c�o�n�f�i�g�.�r�e�f�e�r�e�n�c�e�)�&�&�(�i�=�t�h�i�s�.�_�c�o�n�f�i�g�.�r�e�f�e�r�e�n�c�e�,�v�o�i�d� �0�!�=�=�t�h�i�s�.�_�c�o�n�f�i�g�.�r�e�f�e�r�e�n�c�e�.�j�q�u�e�r�y�&�&�(�i�=�t�h�i�s�.�_�c�o�n�f�i�g�.�r�e�f�e�r�e�n�c�e�[�0�]�)�)�,�"�s�c�r�o�l�l�P�a�r�e�n�t�"�!�=�=�t�h�i�s�.�_�c�o�n�f�i�g�.�b�o�u�n�d�a�r�y�&�&�b�(�t�)�.�a�d�d�C�l�a�s�s�(�"�p�o�s�i�t�i�o�n�-�s�t�a�t�i�c�"�)�,�t�h�i�s�.�_�p�o�p�p�e�r�=�n�e�w� �d�e�(�i�,�t�h�i�s�.�_�m�e�n�u�,�t�h�i�s�.�_�g�e�t�P�o�p�p�e�r�C�o�n�f�i�g�(�)�)�}�"�o�n�t�o�u�c�h�s�t�a�r�t�"�i�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�&�&�0�=�=�=�b�(�t�)�.�c�l�o�s�e�s�t�(�"�.�n�a�v�b�a�r�-�n�a�v�"�)�.�l�e�n�g�t�h�&�&�b�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�c�h�i�l�d�r�e�n�(�)�.�o�n�(�"�m�o�u�s�e�o�v�e�r�"�,�n�u�l�l�,�b�.�n�o�o�p�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�f�o�c�u�s�(�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�!�0�)�,�b�(�t�h�i�s�.�_�m�e�n�u�)�.�t�o�g�g�l�e�C�l�a�s�s�(�v�e�)�,�b�(�t�)�.�t�o�g�g�l�e�C�l�a�s�s�(�v�e�)�.�t�r�i�g�g�e�r�(�b�.�E�v�e�n�t�(�T�.�S�H�O�W�N�,�e�)�)�}�}�}�}�,�w�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�b�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�p�e�)�,�b�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�f�f�(�_�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�n�u�l�l�,�(�t�h�i�s�.�_�m�e�n�u�=�n�u�l�l�)�!�=�=�t�h�i�s�.�_�p�o�p�p�e�r�&�&�(�t�h�i�s�.�_�p�o�p�p�e�r�.�d�e�s�t�r�o�y�(�)�,�t�h�i�s�.�_�p�o�p�p�e�r�=�n�u�l�l�)�}�,�w�.�u�p�d�a�t�e�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�i�n�N�a�v�b�a�r�=�t�h�i�s�.�_�d�e�t�e�c�t�N�a�v�b�a�r�(�)�,�n�u�l�l�!�=�=�t�h�i�s�.�_�p�o�p�p�e�r�&�&�t�h�i�s�.�_�p�o�p�p�e�r�.�s�c�h�e�d�u�l�e�U�p�d�a�t�e�(�)�}�,�w�.�_�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�b�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�(�T�.�C�L�I�C�K�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�,�e�.�t�o�g�g�l�e�(�)�}�)�}�,�w�.�_�g�e�t�C�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�=�s�(�{�}�,�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�e�f�a�u�l�t�,�b�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�d�a�t�a�(�)�,�t�)�,�p�.�t�y�p�e�C�h�e�c�k�C�o�n�f�i�g�(�h�e�,�t�,�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�e�f�a�u�l�t�T�y�p�e�)�,�t�}�,�w�.�_�g�e�t�M�e�n�u�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�r�e�t�u�r�n� �t�h�i�s�.�_�m�e�n�u�|�|�(�t�=�M�.�_�g�e�t�P�a�r�e�n�t�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�)�&�&�(�t�h�i�s�.�_�m�e�n�u�=�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�b�e�)�)�,�t�h�i�s�.�_�m�e�n�u�}�,�w�.�_�g�e�t�P�l�a�c�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�b�(�t�h�i�s�.�_�e�l�e�m�e�n�t�.�p�a�r�e�n�t�N�o�d�e�)�,�e�=�"�b�o�t�t�o�m�-�s�t�a�r�t�"�;�r�e�t�u�r�n� �t�.�h�a�s�C�l�a�s�s�(�"�d�r�o�p�u�p�"�)�?�(�e�=�"�t�o�p�-�s�t�a�r�t�"�,�b�(�t�h�i�s�.�_�m�e�n�u�)�.�h�a�s�C�l�a�s�s�(�y�e�)�&�&�(�e�=�"�t�o�p�-�e�n�d�"�)�)�:�t
1�.�h�a�s�C�l�a�s�s�(�"�d�r�o�p�r�i�g�h�t�"�)�?�e�=�"�r�i�g�h�t�-�s�t�a�r�t�"�:�t�.�h�a�s�C�l�a�s�s�(�"�d�r�o�p�l�e�f�t�"�)�?�e�=�"�l�e�f�t�-�s�t�a�r�t�"�:�b�(�t�h�i�s�.�_�m�e�n�u�)�.�h�a�s�C�l�a�s�s�(�y�e�)�&�&�(�e�=�"�b�o�t�t�o�m�-�e�n�d�"�)�,�e�}�,�w�.�_�d�e�t�e�c�t�N�a�v�b�a�r�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �0�<�b�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�c�l�o�s�e�s�t�(�"�.�n�a�v�b�a�r�"�)�.�l�e�n�g�t�h�}�,�w�.�_�g�e�t�P�o�p�p�e�r�C�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�,�t�=�{�}�,�t�=�(�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �t�h�i�s�.�_�c�o�n�f�i�g�.�o�f�f�s�e�t�?�t�.�f�n�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�o�f�f�s�e�t�s�=�s�(�{�}�,�t�.�o�f�f�s�e�t�s�,�e�.�_�c�o�n�f�i�g�.�o�f�f�s�e�t�(�t�.�o�f�f�s�e�t�s�)�|�|�{�}�)�,�t�}�:�t�.�o�f�f�s�e�t�=�t�h�i�s�.�_�c�o�n�f�i�g�.�o�f�f�s�e�t�,�{�p�l�a�c�e�m�e�n�t�:�t�h�i�s�.�_�g�e�t�P�l�a�c�e�m�e�n�t�(�)�,�m�o�d�i�f�i�e�r�s�:�{�o�f�f�s�e�t�:�t�,�f�l�i�p�:�{�e�n�a�b�l�e�d�:�t�h�i�s�.�_�c�o�n�f�i�g�.�f�l�i�p�}�,�p�r�e�v�e�n�t�O�v�e�r�f�l�o�w�:�{�b�o�u�n�d�a�r�i�e�s�E�l�e�m�e�n�t�:�t�h�i�s�.�_�c�o�n�f�i�g�.�b�o�u�n�d�a�r�y�}�}�}�)�;�r�e�t�u�r�n�"�s�t�a�t�i�c�"�=�=�=�t�h�i�s�.�_�c�o�n�f�i�g�.�d�i�s�p�l�a�y�&�&�(�t�.�m�o�d�i�f�i�e�r�s�.�a�p�p�l�y�S�t�y�l�e�=�{�e�n�a�b�l�e�d�:�!�1�}�)�,�t�}�,�M�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�b�(�t�h�i�s�)�.�d�a�t�a�(�p�e�)�;�i�f�(�t�|�|�(�t�=�n�e�w� �M�(�t�h�i�s�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�?�e�:�n�u�l�l�)�,�b�(�t�h�i�s�)�.�d�a�t�a�(�p�e�,�t�)�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�)�{�i�f�(�v�o�i�d� �0�=�=�=�t�[�e�]�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�'�N�o� �m�e�t�h�o�d� �n�a�m�e�d� �"�'�+�e�+�'�"�'�)�;�t�[�e�]�(�)�}�}�)�}�,�M�.�_�c�l�e�a�r�M�e�n�u�s�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�t�|�|�3�!�=�=�t�.�w�h�i�c�h�&�&�(�"�k�e�y�u�p�"�!�=�=�t�.�t�y�p�e�|�|�9�=�=�=�t�.�w�h�i�c�h�)�)�f�o�r�(�v�a�r� �e�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�w�e�)�)�,�i�=�0�,�n�=�e�.�l�e�n�g�t�h�;�i�<�n�;�i�+�+�)�{�v�a�r� �o�,�s�=�M�.�_�g�e�t�P�a�r�e�n�t�F�r�o�m�E�l�e�m�e�n�t�(�e�[�i�]�)�,�r�=�b�(�e�[�i�]�)�.�d�a�t�a�(�p�e�)�,�a�=�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�e�[�i�]�}�;�t�&�&�"�c�l�i�c�k�"�=�=�=�t�.�t�y�p�e�&�&�(�a�.�c�l�i�c�k�E�v�e�n�t�=�t�)�,�r�&�&�(�r�=�r�.�_�m�e�n�u�,�!�b�(�s�)�.�h�a�s�C�l�a�s�s�(�v�e�)�|�|�t�&�&�(�"�c�l�i�c�k�"�=�=�=�t�.�t�y�p�e�&�&�/�i�n�p�u�t�|�t�e�x�t�a�r�e�a�/�i�.�t�e�s�t�(�t�.�t�a�r�g�e�t�.�t�a�g�N�a�m�e�)�|�|�"�k�e�y�u�p�"�=�=�=�t�.�t�y�p�e�&�&�9�=�=�=�t�.�w�h�i�c�h�)�&�&�b�.�c�o�n�t�a�i�n�s�(�s�,�t�.�t�a�r�g�e�t�)�|�|�(�o�=�b�.�E�v�e�n�t�(�T�.�H�I�D�E�,�a�)�,�b�(�s�)�.�t�r�i�g�g�e�r�(�o�)�,�o�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�(�"�o�n�t�o�u�c�h�s�t�a�r�t�"�i�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�&�&�b�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�c�h�i�l�d�r�e�n�(�)�.�o�f�f�(�"�m�o�u�s�e�o�v�e�r�"�,�n�u�l�l�,�b�.�n�o�o�p�)�,�e�[�i�]�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�"�f�a�l�s�e�"�)�,�b�(�r�)�.�r�e�m�o�v�e�C�l�a�s�s�(�v�e�)�,�b�(�s�)�.�r�e�m�o�v�e�C�l�a�s�s�(�v�e�)�.�t�r�i�g�g�e�r�(�b�.�E�v�e�n�t�(�T�.�H�I�D�D�E�N�,�a�)�)�)�)�)�}�}�,�M�.�_�g�e�t�P�a�r�e�n�t�F�r�o�m�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�t�)�;�r�e�t�u�r�n�(�e�=�i�?�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�i�)�:�e�)�|�|�t�.�p�a�r�e�n�t�N�o�d�e�}�,�M�.�_�d�a�t�a�A�p�i�K�e�y�d�o�w�n�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�;�(�/�i�n�p�u�t�|�t�e�x�t�a�r�e�a�/�i�.�t�e�s�t�(�t�.�t�a�r�g�e�t�.�t�a�g�N�a�m�e�)�?�3�2�=�=�=�t�.�w�h�i�c�h�|�|�2�7�!�=�=�t�.�w�h�i�c�h�&�&�(�4�0�!�=�=�t�.�w�h�i�c�h�&�&�3�8�!�=�=�t�.�w�h�i�c�h�|�|�b�(�t�.�t�a�r�g�e�t�)�.�c�l�o�s�e�s�t�(�b�e�)�.�l�e�n�g�t�h�)�:�!�m�e�.�t�e�s�t�(�t�.�w�h�i�c�h�)�)�|�|�(�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�,�t�h�i�s�.�d�i�s�a�b�l�e�d�|�|�b�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�g�e�)�)�|�|�(�e�=�M�.�_�g�e�t�P�a�r�e�n�t�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�)�,�(�(�n�=�b�(�e�)�.�h�a�s�C�l�a�s�s�(�v�e�)�)�|�|�2�7�=�=�=�t�.�w�h�i�c�h�&�&�3�2�=�=�=�t�.�w�h�i�c�h�)�&�&�(�!�n�|�|�2�7�!�=�=�t�.�w�h�i�c�h�&�&�3�2�!�=�=�t�.�w�h�i�c�h�)�?�0�!�=�=�(�n�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�d�r�o�p�d�o�w�n�-�m�e�n�u� �.�d�r�o�p�d�o�w�n�-�i�t�e�m�:�n�o�t�(�.�d�i�s�a�b�l�e�d�)�:�n�o�t�(�:�d�i�s�a�b�l�e�d�)�"�)�)�)�.�l�e�n�g�t�h�&�&�(�i�=�n�.�i�n�d�e�x�O�f�(�t�.�t�a�r�g�e�t�)�,�3�8�=�=�=�t�.�w�h�i�c�h�&�&�0�<�i�&�&�i�-�-�,�4�0�=�=�=�t�.�w�h�i�c�h�&�&�i�<�n�.�l�e�n�g�t�h�-�1�&�&�i�+�+�,�n�[�i�=�i�<�0�?�0�:�i�]�.�f�o�c�u�s�(�)�)�:�(�2�7�=�=�=�t�.�w�h�i�c�h�&�&�(�n�=�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�w�e�)�,�b�(�n�)�.�t�r�i�g�g�e�r�(�"�f�o�c�u�s�"�)�)�,�b�(�t�h�i�s�)�.�t�r�i�g�g�e�r�(�"�c�l�i�c�k�"�)�)�)�}�,�i�(�M�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �_�e�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�T�y�p�e�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �T�e�}�}�]�)�,�S�=�M�,�b�(�d�o�c�u�m�e�n�t�)�.�o�n�(�T�.�K�E�Y�D�O�W�N�_�D�A�T�A�_�A�P�I�,�w�e�,�S�.�_�d�a�t�a�A�p�i�K�e�y�d�o�w�n�H�a�n�d�l�e�r�)�.�o�n�(�T�.�K�E�Y�D�O�W�N�_�D�A�T�A�_�A�P�I�,�b�e�,�S�.�_�d�a�t�a�A�p�i�K�e�y�d�o�w�n�H�a�n�d�l�e�r�)�.�o�n�(�T�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�+�"� �"�+�T�.�K�E�Y�U�P�_�D�A�T�A�_�A�P�I�,�S�.�_�c�l�e�a�r�M�e�n�u�s�)�.�o�n�(�T�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�,�w�e�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�.
1�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�,�S�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�b�(�t�h�i�s�)�,�"�t�o�g�g�l�e�"�)�}�)�.�o�n�(�T�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�,�"�.�d�r�o�p�d�o�w�n� �f�o�r�m�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�}�)�,�b�.�f�n�[�h�e�]�=�S�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�b�.�f�n�[�h�e�]�.�C�o�n�s�t�r�u�c�t�o�r�=�S�,�b�.�f�n�[�h�e�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �b�.�f�n�[�h�e�]�=�f�e�,�S�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�;�v�a�r� �b�,�h�e�,�p�e�,�_�,�f�e�,�m�e�,�T�,�g�e�,�v�e�,�y�e�,�w�e�,�b�e�,�_�e�,�T�e�,�S�,�x�,�S�e�,�x�e�,�C�,�C�e�,�k�e�,�E�e�,�k�,�A�e�,�O�e�,�D�e�,�$�e�,�F�e�,�I�e�,�E�,�L�e�,�M�e�,�A�,�P�e�,�z�e�,�R�e�,�N�e�,�j�e�,�H�e�,�B�e�,�W�e�,�q�e�,�V�e�,�U�e�,�Y�e�,�Q�e�,�O�,�G�e�,�X�e�,�D�,�K�e�,�Z�e�,�J�e�,�t�i�,�e�i�,�i�i�,�n�i�,�$�,�o�i�,�s�i�,�r�i�,�a�i�,�l�i�,�c�i�,�d�i�,�u�i�,�h�i�,�p�i�,�f�i�,�m�i�,�g�i�,�F�,�v�i�,�y�i�,�w�i�,�b�i�,�_�i�,�T�i�,�S�i�,�x�i�,�c�e�=�S�,�w�=�(�C�=�"�.�"�+�(�x�e�=�"�b�s�.�m�o�d�a�l�"�)�,�C�e�=�(�x�=�e�)�.�f�n�[�S�e�=�"�m�o�d�a�l�"�]�,�k�e�=�{�b�a�c�k�d�r�o�p�:�!�0�,�k�e�y�b�o�a�r�d�:�!�0�,�f�o�c�u�s�:�!�0�,�s�h�o�w�:�!�0�}�,�E�e�=�{�b�a�c�k�d�r�o�p�:�"�(�b�o�o�l�e�a�n�|�s�t�r�i�n�g�)�"�,�k�e�y�b�o�a�r�d�:�"�b�o�o�l�e�a�n�"�,�f�o�c�u�s�:�"�b�o�o�l�e�a�n�"�,�s�h�o�w�:�"�b�o�o�l�e�a�n�"�}�,�k�=�{�H�I�D�E�:�"�h�i�d�e�"�+�C�,�H�I�D�D�E�N�:�"�h�i�d�d�e�n�"�+�C�,�S�H�O�W�:�"�s�h�o�w�"�+�C�,�S�H�O�W�N�:�"�s�h�o�w�n�"�+�C�,�F�O�C�U�S�I�N�:�"�f�o�c�u�s�i�n�"�+�C�,�R�E�S�I�Z�E�:�"�r�e�s�i�z�e�"�+�C�,�C�L�I�C�K�_�D�I�S�M�I�S�S�:�"�c�l�i�c�k�.�d�i�s�m�i�s�s�"�+�C�,�K�E�Y�D�O�W�N�_�D�I�S�M�I�S�S�:�"�k�e�y�d�o�w�n�.�d�i�s�m�i�s�s�"�+�C�,�M�O�U�S�E�U�P�_�D�I�S�M�I�S�S�:�"�m�o�u�s�e�u�p�.�d�i�s�m�i�s�s�"�+�C�,�M�O�U�S�E�D�O�W�N�_�D�I�S�M�I�S�S�:�"�m�o�u�s�e�d�o�w�n�.�d�i�s�m�i�s�s�"�+�C�,�C�L�I�C�K�_�D�A�T�A�_�A�P�I�:�"�c�l�i�c�k�"�+�C�+�"�.�d�a�t�a�-�a�p�i�"�}�,�A�e�=�"�m�o�d�a�l�-�o�p�e�n�"�,�O�e�=�"�f�a�d�e�"�,�D�e�=�"�s�h�o�w�"�,�$�e�=�"�.�f�i�x�e�d�-�t�o�p�,� �.�f�i�x�e�d�-�b�o�t�t�o�m�,� �.�i�s�-�f�i�x�e�d�,� �.�s�t�i�c�k�y�-�t�o�p�"�,�F�e�=�"�.�s�t�i�c�k�y�-�t�o�p�"�,�(�v�=�D�i�.�p�r�o�t�o�t�y�p�e�)�.�t�o�g�g�l�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�i�s�S�h�o�w�n�?�t�h�i�s�.�h�i�d�e�(�)�:�t�h�i�s�.�s�h�o�w�(�t�)�}�,�v�.�s�h�o�w�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�t�h�i�s�;�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�|�|�t�h�i�s�.�_�i�s�S�h�o�w�n�|�|�(�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�O�e�)�&�&�(�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�=�!�0�)�,�e�=�x�.�E�v�e�n�t�(�k�.�S�H�O�W�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�t�}�)�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�e�)�,�t�h�i�s�.�_�i�s�S�h�o�w�n�|�|�e�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�(�t�h�i�s�.�_�i�s�S�h�o�w�n�=�!�0�,�t�h�i�s�.�_�c�h�e�c�k�S�c�r�o�l�l�b�a�r�(�)�,�t�h�i�s�.�_�s�e�t�S�c�r�o�l�l�b�a�r�(�)�,�t�h�i�s�.�_�a�d�j�u�s�t�D�i�a�l�o�g�(�)�,�x�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�a�d�d�C�l�a�s�s�(�A�e�)�,�t�h�i�s�.�_�s�e�t�E�s�c�a�p�e�E�v�e�n�t�(�)�,�t�h�i�s�.�_�s�e�t�R�e�s�i�z�e�E�v�e�n�t�(�)�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�(�k�.�C�L�I�C�K�_�D�I�S�M�I�S�S�,�'�[�d�a�t�a�-�d�i�s�m�i�s�s�=�"�m�o�d�a�l�"�]�'�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�.�h�i�d�e�(�t�)�}�)�,�x�(�t�h�i�s�.�_�d�i�a�l�o�g�)�.�o�n�(�k�.�M�O�U�S�E�D�O�W�N�_�D�I�S�M�I�S�S�,�f�u�n�c�t�i�o�n�(�)�{�x�(�i�.�_�e�l�e�m�e�n�t�)�.�o�n�e�(�k�.�M�O�U�S�E�U�P�_�D�I�S�M�I�S�S�,�f�u�n�c�t�i�o�n�(�t�)�{�x�(�t�.�t�a�r�g�e�t�)�.�i�s�(�i�.�_�e�l�e�m�e�n�t�)�&�&�(�i�.�_�i�g�n�o�r�e�B�a�c�k�d�r�o�p�C�l�i�c�k�=�!�0�)�}�)�}�)�,�t�h�i�s�.�_�s�h�o�w�B�a�c�k�d�r�o�p�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �i�.�_�s�h�o�w�E�l�e�m�e�n�t�(�t�)�}�)�)�)�}�,�v�.�h�i�d�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�t�&�&�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�!�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�&�&�t�h�i�s�.�_�i�s�S�h�o�w�n�&�&�(�t�=�x�.�E�v�e�n�t�(�k�.�H�I�D�E�)�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�t�)�,�t�h�i�s�.�_�i�s�S�h�o�w�n�&�&�!�t�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�&�&�(�t�h�i�s�.�_�i�s�S�h�o�w�n�=�!�1�,�(�t�=�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�O�e�)�)�&�&�(�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�=�!�0�)�,�t�h�i�s�.�_�s�e�t�E�s�c�a�p�e�E�v�e�n�t�(�)�,�t�h�i�s�.�_�s�e�t�R�e�s�i�z�e�E�v�e�n�t�(�)�,�x�(�d�o�c�u�m�e�n�t�)�.�o�f�f�(�k�.�F�O�C�U�S�I�N�)�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�r�e�m�o�v�e�C�l�a�s�s�(�D�e�)�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�f�f�(�k�.�C�L�I�C�K�_�D�I�S�M�I�S�S�)�,�x�(�t�h�i�s�.�_�d�i�a�l�o�g�)�.�o�f�f�(�k�.�M�O�U�S�E�D�O�W�N�_�D�I�S�M�I�S�S�)�,�t�?�(�t�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�
1F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�.�_�h�i�d�e�M�o�d�a�l�(�t�)�}�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�t�)�)�:�t�h�i�s�.�_�h�i�d�e�M�o�d�a�l�(�)�)�)�}�,�v�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�x�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�x�e�)�,�x�(�w�i�n�d�o�w�,�d�o�c�u�m�e�n�t�,�t�h�i�s�.�_�e�l�e�m�e�n�t�,�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�.�o�f�f�(�C�)�,�t�h�i�s�.�_�c�o�n�f�i�g�=�n�u�l�l�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�_�d�i�a�l�o�g�=�n�u�l�l�,�t�h�i�s�.�_�b�a�c�k�d�r�o�p�=�n�u�l�l�,�t�h�i�s�.�_�i�s�S�h�o�w�n�=�n�u�l�l�,�t�h�i�s�.�_�i�s�B�o�d�y�O�v�e�r�f�l�o�w�i�n�g�=�n�u�l�l�,�t�h�i�s�.�_�i�g�n�o�r�e�B�a�c�k�d�r�o�p�C�l�i�c�k�=�n�u�l�l�,�t�h�i�s�.�_�s�c�r�o�l�l�b�a�r�W�i�d�t�h�=�n�u�l�l�}�,�v�.�h�a�n�d�l�e�U�p�d�a�t�e�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�a�d�j�u�s�t�D�i�a�l�o�g�(�)�}�,�v�.�_�g�e�t�C�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�=�s�(�{�}�,�k�e�,�t�)�,�p�.�t�y�p�e�C�h�e�c�k�C�o�n�f�i�g�(�S�e�,�t�,�E�e�)�,�t�}�,�v�.�_�s�h�o�w�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�f�u�n�c�t�i�o�n� �e�(�)�{�i�.�_�c�o�n�f�i�g�.�f�o�c�u�s�&�&�i�.�_�e�l�e�m�e�n�t�.�f�o�c�u�s�(�)�,�i�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�=�!�1�,�x�(�i�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�o�)�}�v�a�r� �i�=�t�h�i�s�,�n�=�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�O�e�)�,�o�=�(�t�h�i�s�.�_�e�l�e�m�e�n�t�.�p�a�r�e�n�t�N�o�d�e�&�&�t�h�i�s�.�_�e�l�e�m�e�n�t�.�p�a�r�e�n�t�N�o�d�e�.�n�o�d�e�T�y�p�e�=�=�=�N�o�d�e�.�E�L�E�M�E�N�T�_�N�O�D�E�|�|�d�o�c�u�m�e�n�t�.�b�o�d�y�.�a�p�p�e�n�d�C�h�i�l�d�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�"�b�l�o�c�k�"�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�h�i�d�d�e�n�"�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�c�r�o�l�l�T�o�p�=�0�,�n�&�&�p�.�r�e�f�l�o�w�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�a�d�d�C�l�a�s�s�(�D�e�)�,�t�h�i�s�.�_�c�o�n�f�i�g�.�f�o�c�u�s�&�&�t�h�i�s�.�_�e�n�f�o�r�c�e�F�o�c�u�s�(�)�,�x�.�E�v�e�n�t�(�k�.�S�H�O�W�N�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�t�}�)�)�;�n�?�(�t�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�x�(�t�h�i�s�.�_�d�i�a�l�o�g�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�e�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�t�)�)�:�e�(�)�}�,�v�.�_�e�n�f�o�r�c�e�F�o�c�u�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�x�(�d�o�c�u�m�e�n�t�)�.�o�f�f�(�k�.�F�O�C�U�S�I�N�)�.�o�n�(�k�.�F�O�C�U�S�I�N�,�f�u�n�c�t�i�o�n�(�t�)�{�d�o�c�u�m�e�n�t�!�=�=�t�.�t�a�r�g�e�t�&�&�e�.�_�e�l�e�m�e�n�t�!�=�=�t�.�t�a�r�g�e�t�&�&�0�=�=�=�x�(�e�.�_�e�l�e�m�e�n�t�)�.�h�a�s�(�t�.�t�a�r�g�e�t�)�.�l�e�n�g�t�h�&�&�e�.�_�e�l�e�m�e�n�t�.�f�o�c�u�s�(�)�}�)�}�,�v�.�_�s�e�t�E�s�c�a�p�e�E�v�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�t�h�i�s�.�_�i�s�S�h�o�w�n�&�&�t�h�i�s�.�_�c�o�n�f�i�g�.�k�e�y�b�o�a�r�d�?�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�(�k�.�K�E�Y�D�O�W�N�_�D�I�S�M�I�S�S�,�f�u�n�c�t�i�o�n�(�t�)�{�2�7�=�=�=�t�.�w�h�i�c�h�&�&�(�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�e�.�h�i�d�e�(�)�)�}�)�:�t�h�i�s�.�_�i�s�S�h�o�w�n�|�|�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�f�f�(�k�.�K�E�Y�D�O�W�N�_�D�I�S�M�I�S�S�)�}�,�v�.�_�s�e�t�R�e�s�i�z�e�E�v�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�t�h�i�s�.�_�i�s�S�h�o�w�n�?�x�(�w�i�n�d�o�w�)�.�o�n�(�k�.�R�E�S�I�Z�E�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�.�h�a�n�d�l�e�U�p�d�a�t�e�(�t�)�}�)�:�x�(�w�i�n�d�o�w�)�.�o�f�f�(�k�.�R�E�S�I�Z�E�)�}�,�v�.�_�h�i�d�e�M�o�d�a�l�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�"�n�o�n�e�"�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�h�i�d�d�e�n�"�,�!�0�)�,�t�h�i�s�.�_�i�s�T�r�a�n�s�i�t�i�o�n�i�n�g�=�!�1�,�t�h�i�s�.�_�s�h�o�w�B�a�c�k�d�r�o�p�(�f�u�n�c�t�i�o�n�(�)�{�x�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�r�e�m�o�v�e�C�l�a�s�s�(�A�e�)�,�t�.�_�r�e�s�e�t�A�d�j�u�s�t�m�e�n�t�s�(�)�,�t�.�_�r�e�s�e�t�S�c�r�o�l�l�b�a�r�(�)�,�x�(�t�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�k�.�H�I�D�D�E�N�)�}�)�}�,�v�.�_�r�e�m�o�v�e�B�a�c�k�d�r�o�p�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�b�a�c�k�d�r�o�p�&�&�(�x�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�.�r�e�m�o�v�e�(�)�,�t�h�i�s�.�_�b�a�c�k�d�r�o�p�=�n�u�l�l�)�}�,�v�.�_�s�h�o�w�B�a�c�k�d�r�o�p�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�t�h�i�s�,�n�=�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�O�e�)�?�O�e�:�"�"�;
1�t�h�i�s�.�_�i�s�S�h�o�w�n�&�&�t�h�i�s�.�_�c�o�n�f�i�g�.�b�a�c�k�d�r�o�p�?�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�t�h�i�s�.�_�b�a�c�k�d�r�o�p�.�c�l�a�s�s�N�a�m�e�=�"�m�o�d�a�l�-�b�a�c�k�d�r�o�p�"�,�n�&�&�t�h�i�s�.�_�b�a�c�k�d�r�o�p�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�n�)�,�x�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�.�a�p�p�e�n�d�T�o�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�o�n�(�k�.�C�L�I�C�K�_�D�I�S�M�I�S�S�,�f�u�n�c�t�i�o�n�(�t�)�{�i�.�_�i�g�n�o�r�e�B�a�c�k�d�r�o�p�C�l�i�c�k�?�i�.�_�i�g�n�o�r�e�B�a�c�k�d�r�o�p�C�l�i�c�k�=�!�1�:�t�.�t�a�r�g�e�t�=�=�=�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�&�&�(�"�s�t�a�t�i�c�"�=�=�=�i�.�_�c�o�n�f�i�g�.�b�a�c�k�d�r�o�p�?�i�.�_�e�l�e�m�e�n�t�.�f�o�c�u�s�(�)�:�i�.�h�i�d�e�(�)�)�}�)�,�n�&�&�p�.�r�e�f�l�o�w�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�,�x�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�.�a�d�d�C�l�a�s�s�(�D�e�)�,�t�&�&�(�n�?�(�n�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�,�x�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�t�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�n�)�)�:�t�(�)�)�)�:�!�t�h�i�s�.�_�i�s�S�h�o�w�n�&�&�t�h�i�s�.�_�b�a�c�k�d�r�o�p�?�(�x�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�.�r�e�m�o�v�e�C�l�a�s�s�(�D�e�)�,�n�=�f�u�n�c�t�i�o�n�(�)�{�i�.�_�r�e�m�o�v�e�B�a�c�k�d�r�o�p�(�)�,�t�&�&�t�(�)�}�,�x�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�O�e�)�?�(�e�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�,�x�(�t�h�i�s�.�_�b�a�c�k�d�r�o�p�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�n�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�e�)�)�:�n�(�)�)�:�t�&�&�t�(�)�}�,�v�.�_�a�d�j�u�s�t�D�i�a�l�o�g�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�c�r�o�l�l�H�e�i�g�h�t�>�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�c�l�i�e�n�t�H�e�i�g�h�t�;�!�t�h�i�s�.�_�i�s�B�o�d�y�O�v�e�r�f�l�o�w�i�n�g�&�&�t�&�&�(�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�.�p�a�d�d�i�n�g�L�e�f�t�=�t�h�i�s�.�_�s�c�r�o�l�l�b�a�r�W�i�d�t�h�+�"�p�x�"�)�,�t�h�i�s�.�_�i�s�B�o�d�y�O�v�e�r�f�l�o�w�i�n�g�&�&�!�t�&�&�(�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�.�p�a�d�d�i�n�g�R�i�g�h�t�=�t�h�i�s�.�_�s�c�r�o�l�l�b�a�r�W�i�d�t�h�+�"�p�x�"�)�}�,�v�.�_�r�e�s�e�t�A�d�j�u�s�t�m�e�n�t�s�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�.�p�a�d�d�i�n�g�L�e�f�t�=�"�"�,�t�h�i�s�.�_�e�l�e�m�e�n�t�.�s�t�y�l�e�.�p�a�d�d�i�n�g�R�i�g�h�t�=�"�"�}�,�v�.�_�c�h�e�c�k�S�c�r�o�l�l�b�a�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�d�o�c�u�m�e�n�t�.�b�o�d�y�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�;�t�h�i�s�.�_�i�s�B�o�d�y�O�v�e�r�f�l�o�w�i�n�g�=�t�.�l�e�f�t�+�t�.�r�i�g�h�t�<�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�,�t�h�i�s�.�_�s�c�r�o�l�l�b�a�r�W�i�d�t�h�=�t�h�i�s�.�_�g�e�t�S�c�r�o�l�l�b�a�r�W�i�d�t�h�(�)�}�,�v�.�_�s�e�t�S�c�r�o�l�l�b�a�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�o�=�t�h�i�s�;�t�h�i�s�.�_�i�s�B�o�d�y�O�v�e�r�f�l�o�w�i�n�g�&�&�(�t�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�$�e�)�)�,�e�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�F�e�)�)�,�x�(�t�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�e�.�s�t�y�l�e�.�p�a�d�d�i�n�g�R�i�g�h�t�,�n�=�x�(�e�)�.�c�s�s�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�)�;�x�(�e�)�.�d�a�t�a�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�,�i�)�.�c�s�s�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�,�p�a�r�s�e�F�l�o�a�t�(�n�)�+�o�.�_�s�c�r�o�l�l�b�a�r�W�i�d�t�h�+�"�p�x�"�)�}�)�,�x�(�e�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�e�.�s�t�y�l�e�.�m�a�r�g�i�n�R�i�g�h�t�,�n�=�x�(�e�)�.�c�s�s�(�"�m�a�r�g�i�n�-�r�i�g�h�t�"�)�;�x�(�e�)�.�d�a�t�a�(�"�m�a�r�g�i�n�-�r�i�g�h�t�"�,�i�)�.�c�s�s�(�"�m�a�r�g�i�n�-�r�i�g�h�t�"�,�p�a�r�s�e�F�l�o�a�t�(�n�)�-�o�.�_�s�c�r�o�l�l�b�a�r�W�i�d�t�h�+�"�p�x�"�)�}�)�,�t�=�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�t�y�l�e�.�p�a�d�d�i�n�g�R�i�g�h�t�,�e�=�x�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�c�s�s�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�)�,�x�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�d�a�t�a�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�,�t�)�.�c�s�s�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�,�p�a�r�s�e�F�l�o�a�t�(�e�)�+�t�h�i�s�.�_�s�c�r�o�l�l�b�a�r�W�i�d�t�h�+�"�p�x�"�)�)�}�,�v�.�_�r�e�s�e�t�S�c�r�o�l�l�b�a�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�[
1�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�$�e�)�)�,�t�=�(�x�(�t�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�x�(�e�)�.�d�a�t�a�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�)�;�x�(�e�)�.�r�e�m�o�v�e�D�a�t�a�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�)�,�e�.�s�t�y�l�e�.�p�a�d�d�i�n�g�R�i�g�h�t�=�i�|�|�"�"�}�)�,�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�F�e�)�)�)�,�t�=�(�x�(�t�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�x�(�e�)�.�d�a�t�a�(�"�m�a�r�g�i�n�-�r�i�g�h�t�"�)�;�v�o�i�d� �0�!�=�=�i�&�&�x�(�e�)�.�c�s�s�(�"�m�a�r�g�i�n�-�r�i�g�h�t�"�,�i�)�.�r�e�m�o�v�e�D�a�t�a�(�"�m�a�r�g�i�n�-�r�i�g�h�t�"�)�}�)�,�x�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�d�a�t�a�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�)�)�;�x�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�r�e�m�o�v�e�D�a�t�a�(�"�p�a�d�d�i�n�g�-�r�i�g�h�t�"�)�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�t�y�l�e�.�p�a�d�d�i�n�g�R�i�g�h�t�=�t�|�|�"�"�}�,�v�.�_�g�e�t�S�c�r�o�l�l�b�a�r�W�i�d�t�h�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�e�=�(�t�.�c�l�a�s�s�N�a�m�e�=�"�m�o�d�a�l�-�s�c�r�o�l�l�b�a�r�-�m�e�a�s�u�r�e�"�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�,�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�w�i�d�t�h�-�t�.�c�l�i�e�n�t�W�i�d�t�h�)�;�r�e�t�u�r�n� �d�o�c�u�m�e�n�t�.�b�o�d�y�.�r�e�m�o�v�e�C�h�i�l�d�(�t�)�,�e�}�,�D�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�i�,�n�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�x�(�t�h�i�s�)�.�d�a�t�a�(�x�e�)�,�e�=�s�(�{�}�,�k�e�,�x�(�t�h�i�s�)�.�d�a�t�a�(�)�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �i�&�&�i�?�i�:�{�}�)�;�i�f�(�t�|�|�(�t�=�n�e�w� �D�i�(�t�h�i�s�,�e�)�,�x�(�t�h�i�s�)�.�d�a�t�a�(�x�e�,�t�)�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �i�)�{�i�f�(�v�o�i�d� �0�=�=�=�t�[�i�]�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�'�N�o� �m�e�t�h�o�d� �n�a�m�e�d� �"�'�+�i�+�'�"�'�)�;�t�[�i�]�(�n�)�}�e�l�s�e� �e�.�s�h�o�w�&�&�t�.�s�h�o�w�(�n�)�}�)�}�,�i�(�D�i�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �k�e�}�}�]�)�,�I�e�=�D�i�,�x�(�d�o�c�u�m�e�n�t�)�.�o�n�(�k�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�,�'�[�d�a�t�a�-�t�o�g�g�l�e�=�"�m�o�d�a�l�"�]�'�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�t�h�i�s�,�n�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�)�,�n�=�(�n�&�&�(�e�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�n�)�)�,�x�(�e�)�.�d�a�t�a�(�x�e�)�?�"�t�o�g�g�l�e�"�:�s�(�{�}�,�x�(�e�)�.�d�a�t�a�(�)�,�x�(�t�h�i�s�)�.�d�a�t�a�(�)�)�)�,�o�=�(�"�A�"�!�=�=�t�h�i�s�.�t�a�g�N�a�m�e�&�&�"�A�R�E�A�"�!�=�=�t�h�i�s�.�t�a�g�N�a�m�e�|�|�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�x�(�e�)�.�o�n�e�(�k�.�S�H�O�W�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�o�.�o�n�e�(�k�.�H�I�D�D�E�N�,�f�u�n�c�t�i�o�n�(�)�{�x�(�i�)�.�i�s�(�"�:�v�i�s�i�b�l�e�"�)�&�&�i�.�f�o�c�u�s�(�)�}�)�}�)�)�;�I�e�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�x�(�e�)�,�n�,�t�h�i�s�)�}�)�,�x�.�f�n�[�S�e�]�=�I�e�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�x�.�f�n�[�S�e�]�.�C�o�n�s�t�r�u�c�t�o�r�=�I�e�,�x�.�f�n�[�S�e�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �x�.�f�n�[�S�e�]�=�C�e�,�I�e�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�I�e�)�,�v�=�(�A�=�"�.�"�+�(�M�e�=�"�b�s�.�t�o�o�l�t�i�p�"�)�,�P�e�=�(�E�=�e�)�.�f�n�[�L�e�=�"�t�o�o�l�t�i�p�"�]�,�z�e�=�"�b�s�-�t�o�o�l�t�i�p�"�,�R�e�=�n�e�w� �R�e�g�E�x�p�(�"�(�^�|�\�\�s�)�"�+�z�e�+�"�\�\�S�+�"�,�"�g�"�)�,�H�e�=�{�a�n�i�m�a�t�i�o�n�:�!�0�,�t�e�m�p�l�a�t�e�:�'�<�d�i�v� �c�l�a�s�s�=�"�t�o�o�l�t�i�p�"� �r�o�l�e�=�"�t�o�o�l�t�i�p�"�>�<�d�i�v� �c�l�a�s�s�=�"�a�r�r�o�w�"�>�<�/�d�i�v�>�<�d�i�v� �c�l�a�s�s�=�"�t�o�o�l�t�i�p�-�i�n�n�e�r�"�>�<�/�d�i�v�>�<�/�d�i�v�>�'�,�t�r�i�g�g�e�r�:�"�h�o�v�e�r� �f�o�c�u�s�"�,�t�i�t�l�e�:�"�"�,�d�e�l�a�y�:�0�,�h�t�m�l�:�!�(�j�e�=�{�A�U�T�O�:�"�a�u�t�o�"�,�T�O�P�:�"�t�o�p�"�,�R�I�G�H�T�:�"�r�i�g�h�t�"�,�B�O�T�T�O�M�:�"�b�o�t�t�o�m�"�,�L�E�F�T�:�"�l�e�f�t�"�}�)�,�s�e�l�e�c�t�o�r�:�!�(�N�e�=�{�a�n�i�m�a�t�i�o�n�:�"�b�o�o�l�e�a�n�"�,�t�e�m�p�l�a�t�e�:�"�s�t�r�i�n�g�"�,�t�i�t�l�e�:�"�(�s�t�r�i�n�g�|�e�l�e�m�e�n�t�|�f�u�n�c�t�i�o�n�)�"�,�t�r�i�g�g�e�r�:�"�s�t�r�i�n�g�"�,�d�e�l�a�y�:�"�(�n�u�m�b�e�r�|�o�b�j�e�c�t�)�"�,�h�t�m�l�:�"�b�o�o�l�e�a�n�"�,�s�e�l�e�c�t�o�r�:�"�(�s�t�r�i�n�g�|�b�o�o�l�e�a�n�)�"�,�p�l�a�c�e�m�e�n�t�:�"�(�s�t�r�i�n�g�|�f�u�n�c�t�i�o�n�)�"�,�o�f�f�s�e�t�:�"�(�n�u�m�b�e�r�|�s�t�r�i�n�g�)�"�,�c�o�n�t�a�i�n�e�r�:�"�(�s�t�r�i�n�g�|�e�l�e�m�e�n�t�|�b�o�o�l�e�a�n�)�"�,�f�a�l�l�b�a�c�k�P�l�a�c�e�m�e�n�t�:�"�(�s�t�r�i�n�g�|�a�r�r�a�y�)�"�,�b�o�u�n�d�a�r�y�:�"�(�s�t�r�i�n�g�|�e�l�e�m�e�n�t�)�"�}�)�,�p�l�a�c�e�m�e�n�t�:�"�t�o�p�"�,�o�f�f�s�e�t�:�0�,�c�o�n�t�a�i�n�e�r�:�!�1�,�f�a�l�l�b�a�c�k�P�l�a�c�e�m�e�n�t�:�"�f�l�i�p�"�,�b�o�u�n�d�a�r�y�:�"�s�c�r�o�l�l�P�a�r�e�n�t�"�}�,�W�e�=�{�H�I�D�E�:�"�h�i�d�e�"�+�A�,�H�I�D�D�E�N�:�"�h�i�d�d�e�n�"�+�A�,�S�H�O�W�:�(�B�e�=�"�s�h�o�w�"�)�+�A�,�S�H�O�W�N�:�"�s�h�o�w�n�"�+�A�,�I�N�S�E�R�T�E�D�:�"�i�n�s�e�r�t�e�d�"�+�A�,�C�L�I�C�K�:�"�c�l�i�c�k�"�+�A�,�F�O�C�U�S�I�N�:�"�f�o�c�u�s�i�n�"�+�A�,�F�O�C�U�S�O�U�T�:�"�f�o�c�u�s�o�u�t�"�+�A�,�M�O�U�S�E�E�N�T�E�R�:�"�m�o�u�s�e�e�n�t�e�r�"�+�A�,�M�O�U�S�E�L�E�A�V�E�:�"�m�o�u�s�e�l�e�a�v�e�"�+�A�}�,�q�e�=�"�f�a�d�e�"�,�V�e�=�"�s�h�o�w�"�,�U�e�=�"�h�o�v�e�r�"�,�Y�e�=�"�f�o�c�u�s�"�,�(�v�=�O�i�.�p�r�o�t�o�t�y�p�e�)�.�e�n�a�b�l�e�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�i�s�E�n�a�b�l�e�d�=�!�0�}
1�,�v�.�d�i�s�a�b�l�e�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�i�s�E�n�a�b�l�e�d�=�!�1�}�,�v�.�t�o�g�g�l�e�E�n�a�b�l�e�d�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�i�s�E�n�a�b�l�e�d�=�!�t�h�i�s�.�_�i�s�E�n�a�b�l�e�d�}�,�v�.�t�o�g�g�l�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�;�t�h�i�s�.�_�i�s�E�n�a�b�l�e�d�&�&�(�t�?�(�e�=�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�A�T�A�_�K�E�Y�,�(�i�=�E�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�)�.�d�a�t�a�(�e�)�)�|�|�(�i�=�n�e�w� �t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�,�t�h�i�s�.�_�g�e�t�D�e�l�e�g�a�t�e�C�o�n�f�i�g�(�)�)�,�E�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�)�.�d�a�t�a�(�e�,�i�)�)�,�i�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�.�c�l�i�c�k�=�!�i�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�.�c�l�i�c�k�,�i�.�_�i�s�W�i�t�h�A�c�t�i�v�e�T�r�i�g�g�e�r�(�)�?�i�.�_�e�n�t�e�r�(�n�u�l�l�,�i�)�:�i�.�_�l�e�a�v�e�(�n�u�l�l�,�i�)�)�:�E�(�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�)�.�h�a�s�C�l�a�s�s�(�V�e�)�?�t�h�i�s�.�_�l�e�a�v�e�(�n�u�l�l�,�t�h�i�s�)�:�t�h�i�s�.�_�e�n�t�e�r�(�n�u�l�l�,�t�h�i�s�)�)�}�,�v�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�c�l�e�a�r�T�i�m�e�o�u�t�(�t�h�i�s�.�_�t�i�m�e�o�u�t�)�,�E�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�e�l�e�m�e�n�t�,�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�A�T�A�_�K�E�Y�)�,�E�(�t�h�i�s�.�e�l�e�m�e�n�t�)�.�o�f�f�(�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�E�V�E�N�T�_�K�E�Y�)�,�E�(�t�h�i�s�.�e�l�e�m�e�n�t�)�.�c�l�o�s�e�s�t�(�"�.�m�o�d�a�l�"�)�.�o�f�f�(�"�h�i�d�e�.�b�s�.�m�o�d�a�l�"�)�,�t�h�i�s�.�t�i�p�&�&�E�(�t�h�i�s�.�t�i�p�)�.�r�e�m�o�v�e�(�)�,�t�h�i�s�.�_�i�s�E�n�a�b�l�e�d�=�n�u�l�l�,�t�h�i�s�.�_�t�i�m�e�o�u�t�=�n�u�l�l�,�t�h�i�s�.�_�h�o�v�e�r�S�t�a�t�e�=�n�u�l�l�,�(�t�h�i�s�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�=�n�u�l�l�)�!�=�=�t�h�i�s�.�_�p�o�p�p�e�r�&�&�t�h�i�s�.�_�p�o�p�p�e�r�.�d�e�s�t�r�o�y�(�)�,�t�h�i�s�.�_�p�o�p�p�e�r�=�n�u�l�l�,�t�h�i�s�.�e�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�c�o�n�f�i�g�=�n�u�l�l�,�t�h�i�s�.�t�i�p�=�n�u�l�l�}�,�v�.�s�h�o�w�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�i�f�(�"�n�o�n�e�"�=�=�=�E�(�t�h�i�s�.�e�l�e�m�e�n�t�)�.�c�s�s�(�"�d�i�s�p�l�a�y�"�)�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�P�l�e�a�s�e� �u�s�e� �s�h�o�w� �o�n� �v�i�s�i�b�l�e� �e�l�e�m�e�n�t�s�"�)�;�v�a�r� �t�,�i�,�n�=�E�.�E�v�e�n�t�(�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�S�H�O�W�)�;�t�h�i�s�.�i�s�W�i�t�h�C�o�n�t�e�n�t�(�)�&�&�t�h�i�s�.�_�i�s�E�n�a�b�l�e�d�&�&�(�E�(�t�h�i�s�.�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�n�)�,�i�=�E�.�c�o�n�t�a�i�n�s�(�t�h�i�s�.�e�l�e�m�e�n�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�t�h�i�s�.�e�l�e�m�e�n�t�)�,�!�n�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�&�&�i�&�&�(�n�=�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�,�i�=�p�.�g�e�t�U�I�D�(�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�N�A�M�E�)�,�n�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�i�d�"�,�i�)�,�t�h�i�s�.�e�l�e�m�e�n�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�d�e�s�c�r�i�b�e�d�b�y�"�,�i�)�,�t�h�i�s�.�s�e�t�C�o�n�t�e�n�t�(�)�,�t�h�i�s�.�c�o�n�f�i�g�.�a�n�i�m�a�t�i�o�n�&�&�E�(�n�)�.�a�d�d�C�l�a�s�s�(�q�e�)�,�i�=�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �t�h�i�s�.�c�o�n�f�i�g�.�p�l�a�c�e�m�e�n�t�?�t�h�i�s�.�c�o�n�f�i�g�.�p�l�a�c�e�m�e�n�t�.�c�a�l�l�(�t�h�i�s�,�n�,�t�h�i�s�.�e�l�e�m�e�n�t�)�:�t�h�i�s�.�c�o�n�f�i�g�.�p�l�a�c�e�m�e�n�t�,�i�=�t�h�i�s�.�_�g�e�t�A�t�t�a�c�h�m�e�n�t�(�i�)�,�t�h�i�s�.�a�d�d�A�t�t�a�c�h�m�e�n�t�C�l�a�s�s�(�i�)�,�t�=�!�1�=�=�=�t�h�i�s�.�c�o�n�f�i�g�.�c�o�n�t�a�i�n�e�r�?�d�o�c�u�m�e�n�t�.�b�o�d�y�:�E�(�d�o�c�u�m�e�n�t�)�.�f�i�n�d�(�t�h�i�s�.�c�o�n�f�i�g�.�c�o�n�t�a�i�n�e�r�)�,�E�(�n�)�.�d�a�t�a�(�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�A�T�A�_�K�E�Y�,�t�h�i�s�)�,�E�.�c�o�n�t�a�i�n�s�(�t�h�i�s�.�e�l�e�m�e�n�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�t�h�i�s�.�t�i�p�)�|�|�E�(�n�)�.�a�p�p�e�n�d�T�o�(�t�)�,�E�(�t�h�i�s�.�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�I�N�S�E�R�T�E�D�)�,�t�h�i�s�.�_�p�o�p�p�e�r�=�n�e�w� �d�e�(�t�h�i�s�.�e�l�e�m�e�n�t�,�n�,�{�p�l�a�c�e�m�e�n�t�:�i�,�m�o�d�i�f�i�e�r�s�:�{�o�f�f�s�e�t�:�{�o�f�f�s�e�t�:�t�h�i�s�.�c�o�n�f�i�g�.�o�f�f�s�e�t�}�,�f�l�i�p�:�{�b�e�h�a�v�i�o�r�:�t�h�i�s�.�c�o�n�f�i�g�.�f�a�l�l�b�a�c�k�P�l�a�c�e�m�e�n�t�}�,�a�r�r�o�w�:�{�e�l�e�m�e�n�t�:�"�.�a�r�r�o�w�"�}�,�p�r�e�v�e�n�t�O�v�e�r�f�l�o�w�:�{�b�o�u�n�d�a�r�i�e�s�E�l�e�m�e�n�t�:�t�h�i�s�.�c�o�n�f�i�g�.�b�o�u�n�d�a�r�y�}�}�,�o�n�C�r�e�a�t�e�:�f�u�n�c�t�i�o�n�(�t�)�{�t�.�o�r�i�g�i�n�a�l�P�l�a�c�e�m�e�n�t�!�=�=�t�.�p�l�a�c�e�m�e�n�t�&�&�e�.�_�h�a�n�d�l�e�P�o�p�p�e�r�P�l�a�c�e�m�e�n�t�C�h�a�n�g�e�(�t�)�}�,�o�n�U�p�d�a�t�e�:�f�u�n�c�t�i�o�n�(�t�)�{�e�.�_�h�a�n�d�l�e�P�o�p�p�e�r�P�l�a�c�e�m�e�n�t�C�h�a�n�g�e�(�t�)�}�}�)�,�E�(�n�)�.�a�d�d�C�l�a�s�s�(�V�e�)�,�"�o�n�t�o�u�c�h�s�t�a�r�t�"�i�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�&�&�E�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�c�h�i�l�d�r�e�n�(�)�.�o�n�(�"�m�o�u�s�e�o�v�e�r�"�,�n�u�l�l�,�E�.�n�o�o�p�)�,�t�=�f�u�n�c�t�i�o�n�(�)�{�e�.�c�o�n�f�i�g�.�a�n�i�m�a�t�i�o�n�&�&�e�.�_�f�i�x�T�r�a�n�s�i�t�i�o�n�(�)�;�v�a�r� �t�=�e�.�_�h�o�v�e�r�S�t�a�t�e�;�e�.�_�h�o�v�e�r�S�t�a�t�e�=�n�u�l�l�,�E�(�e�.�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�e�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�S�H�O�W�N�)�,�"�o�u�t�"�=�=�=�t�&�&�e�.�_�l�e�a�v�e�(�n�u�l�l�,�e�)�}�,�E�(�t�h�i�s�.�t�i�p�)�.�h�a�s�C�l�a�s�s�(�q�e�)�?�(�i�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�
1F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�t�i�p�)�,�E�(�t�h�i�s�.�t�i�p�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�t�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�i�)�)�:�t�(�)�)�)�}�,�v�.�h�i�d�e�=�f�u�n�c�t�i�o�n�(�t�)�{�f�u�n�c�t�i�o�n� �e�(�)�{�i�.�_�h�o�v�e�r�S�t�a�t�e�!�=�=�B�e�&�&�n�.�p�a�r�e�n�t�N�o�d�e�&�&�n�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�n�)�,�i�.�_�c�l�e�a�n�T�i�p�C�l�a�s�s�(�)�,�i�.�e�l�e�m�e�n�t�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�d�e�s�c�r�i�b�e�d�b�y�"�)�,�E�(�i�.�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�i�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�H�I�D�D�E�N�)�,�n�u�l�l�!�=�=�i�.�_�p�o�p�p�e�r�&�&�i�.�_�p�o�p�p�e�r�.�d�e�s�t�r�o�y�(�)�,�t�&�&�t�(�)�}�v�a�r� �i�=�t�h�i�s�,�n�=�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�,�o�=�E�.�E�v�e�n�t�(�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�H�I�D�E�)�;�E�(�t�h�i�s�.�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�o�)�,�o�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�(�E�(�n�)�.�r�e�m�o�v�e�C�l�a�s�s�(�V�e�)�,�"�o�n�t�o�u�c�h�s�t�a�r�t�"�i�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�&�&�E�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�c�h�i�l�d�r�e�n�(�)�.�o�f�f�(�"�m�o�u�s�e�o�v�e�r�"�,�n�u�l�l�,�E�.�n�o�o�p�)�,�t�h�i�s�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�.�c�l�i�c�k�=�!�1�,�t�h�i�s�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�[�Y�e�]�=�!�1�,�t�h�i�s�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�[�U�e�]�=�!�1�,�E�(�t�h�i�s�.�t�i�p�)�.�h�a�s�C�l�a�s�s�(�q�e�)�?�(�o�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�n�)�,�E�(�n�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�e�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�o�)�)�:�e�(�)�,�t�h�i�s�.�_�h�o�v�e�r�S�t�a�t�e�=�"�"�)�}�,�v�.�u�p�d�a�t�e�=�f�u�n�c�t�i�o�n�(�)�{�n�u�l�l�!�=�=�t�h�i�s�.�_�p�o�p�p�e�r�&�&�t�h�i�s�.�_�p�o�p�p�e�r�.�s�c�h�e�d�u�l�e�U�p�d�a�t�e�(�)�}�,�v�.�i�s�W�i�t�h�C�o�n�t�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �B�o�o�l�e�a�n�(�t�h�i�s�.�g�e�t�T�i�t�l�e�(�)�)�}�,�v�.�a�d�d�A�t�t�a�c�h�m�e�n�t�C�l�a�s�s�=�f�u�n�c�t�i�o�n�(�t�)�{�E�(�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�)�.�a�d�d�C�l�a�s�s�(�z�e�+�"�-�"�+�t�)�}�,�v�.�g�e�t�T�i�p�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�t�i�p�=�t�h�i�s�.�t�i�p�|�|�E�(�t�h�i�s�.�c�o�n�f�i�g�.�t�e�m�p�l�a�t�e�)�[�0�]�,�t�h�i�s�.�t�i�p�}�,�v�.�s�e�t�C�o�n�t�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�;�t�h�i�s�.�s�e�t�E�l�e�m�e�n�t�C�o�n�t�e�n�t�(�E�(�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�t�o�o�l�t�i�p�-�i�n�n�e�r�"�)�)�,�t�h�i�s�.�g�e�t�T�i�t�l�e�(�)�)�,�E�(�t�)�.�r�e�m�o�v�e�C�l�a�s�s�(�q�e�+�"� �"�+�V�e�)�}�,�v�.�s�e�t�E�l�e�m�e�n�t�C�o�n�t�e�n�t�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�c�o�n�f�i�g�.�h�t�m�l�;�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�&�&�(�e�.�n�o�d�e�T�y�p�e�|�|�e�.�j�q�u�e�r�y�)�?�i�?�E�(�e�)�.�p�a�r�e�n�t�(�)�.�i�s�(�t�)�|�|�t�.�e�m�p�t�y�(�)�.�a�p�p�e�n�d�(�e�)�:�t�.�t�e�x�t�(�E�(�e�)�.�t�e�x�t�(�)�)�:�t�[�i�?�"�h�t�m�l�"�:�"�t�e�x�t�"�]�(�e�)�}�,�v�.�g�e�t�T�i�t�l�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�l�e�m�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�o�r�i�g�i�n�a�l�-�t�i�t�l�e�"�)�|�|�(�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �t�h�i�s�.�c�o�n�f�i�g�.�t�i�t�l�e�?�t�h�i�s�.�c�o�n�f�i�g�.�t�i�t�l�e�.�c�a�l�l�(�t�h�i�s�.�e�l�e�m�e�n�t�)�:�t�h�i�s�.�c�o�n�f�i�g�.�t�i�t�l�e�)�}�,�v�.�_�g�e�t�A�t�t�a�c�h�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �j�e�[�t�.�t�o�U�p�p�e�r�C�a�s�e�(�)�]�}�,�v�.�_�s�e�t�L�i�s�t�e�n�e�r�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�=�t�h�i�s�;�t�h�i�s�.�c�o�n�f�i�g�.�t�r�i�g�g�e�r�.�s�p�l�i�t�(�"� �"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�"�c�l�i�c�k�"�=�=�=�t�?�E�(�i�.�e�l�e�m�e�n�t�)�.�o�n�(�i�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�C�L�I�C�K�,�i�.�c�o�n�f�i�g�.�s�e�l�e�c�t�o�r�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�.�t�o�g�g�l�e�(�t�)�}�)�:�"�m�a�n�u�a�l�"�!�=�=�t�&�&�(�e�=�t�=�=�=�U�e�?�i�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�M�O�U�S�E�E�N�T�E�R�:�i�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�F�O�C�U�S�I�N�,�t�=�t�=�=�=�U�e�?�i�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�M�O�U�S�E�L�E�A�V�E�:�i�.�c�o�n�s�t�r�u�c�t�o�r�.�E�v�e�n�t�.�F�O�C�U�S�O�U�T�,�E�(�i�.�e�l�e�m�e�n�t�)�.�o�n�(�e�,�i�.�c�o�n�f�i�g�.�s�e�l�e�c�t�o�r�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�.�_�e�n�t�e�r�(�t�)�}�)�.�o�n�(�t�,�i�.�c�o�n�f�i�g�.�s�e�l�e�c�t�o�r�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�.�_�l�e�a�v�e�(�t�)�}�)�)�,�E�(�i�.�e�l�e�m�e�n�t�)�.�c�l�o�s�e�s�t�(�"�.�m�o�d�a�l�"�)�.�o�n�(�"�h�i�d�e�.�b�s�.�m�o�d�a�l�"�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �i�.�h�i�d�e�(�)�}�)�}�)�,�t�h�i�s�.�c�o�n�f�i�g�.�s�e�l�e�c�t�o�r�?�t�h�i�s�.�c�o�n�f�i�g�=�s�(�{�}�,�t�h�i�s�.�c�o�n�f�i�g�,�{�t�r�i�g�g�e�r�:�"�m�a�n�u�a�l�"�,�s�e�l�e�c�t�o�r�:�"�"�}�)�:�t�h�i�s�.�_�f�i�x�T�i�t�l�e�(�)�}�,�v�.�_�f�i�x�T�i�t�l�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�y�p�e�o�f� �t�h�i�s�.�e�l�e�m�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�o�r�i�g�i�n�a�l�-�t�i�t�l�e�"�)�;�!�t�h�i�s�.�e�l�e�m�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�i�t�l�e�"�)�&�&�"�s�t�r�i�n�g�"�=�=�t�|�|�(�t�h�i�s�.�e�l�e�m�e�n�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�o�r�i�g�i�n�a�l�-�t�i�t�l�e�"�,�t�h�i�s�.�e�l�e�m�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�i�t�l�e�"�)�|�|�"�"�)�,�t�h�i�s�.�e�l�e�m�e�n�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�i�t�l�e�"�,�"�"�)�)�}�,�v�.�_�e�n�t�e�r�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�A�T�A�_�K�E�Y�;�(�e�=�e�|�|�E�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�)�.�d�a�t�a�(�i�)�)�|�|�(�e�=�n�e�w� �t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�,�t�h�i�s�.�_�g�e�t�D�e�l�e�g�a�t�e�C�o�n�f�i�g�(�)�)�,�E�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�)�.�d�a�t�a�(�i�,�e�)�)�,�t�&�&�(�e�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�[�"�f�o�c�u�s�i�n�"�=�=�=�t�.�t�y�p�e�?�Y�e�:�U�e�]�=�!�0�)�,�E�(�e�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�)�.�h�a�s�C�l�a�s�s�(�V�e�)�|�|�e�.�_�h�o�v�e�r�S�t�a�t�e�=�=�=�B�e�?�e�.�_�h�o�v�e�r�S�t�a�t�e�=�B�e�:�(�c�l�e�a�r�T�i�m�e�o�u�t�(�e�.�_�t�i�m�e�o�u�t�)�,�e�.�_�h�o�v�e�r�S�t�a�t�e�=�B�e�,�e�.�c�o�n�f�i�g�.�d�e�l�a�y�&�&�e�.�c�o�n�f�i�g�.�d�e�l�a�y�.�s�h�o�w�?�e�.�_�t�i�m�e�o�u�t�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�e�.�_�h�o�v�e�r�S�t�a�t�e�=�=�=�B�e�&�&�e�.�s�h�o�w�(�)�}�,�e�.�c�o�n�f�i�g�.�d�e�l�a�y�.�s�h�o�w�)�:�e�.�s�h�o�w�(�)�)�}�,�v�.�_�l�e�a�v�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�A�T�A�_�K�E�Y�;�(�e�=�e�|�|�E�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�)�.�d�a�t�a�(�i�)�)�|�|�(�e�=�n�e�w� �t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�,�t�h�i�s�.�_�g�e�t�D�e�l�e�g�a�t�e�C�o�n�f�i�g�(�)�)�,�E�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�)�.�d�a�t�a�(�i�,�e�)�)�,�t�&�&�(�e�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�[�"�f�o�c�u�s�o�u�t�"�=�=�=�t�.�t�y�p�e�?�Y�e�:�U�e�]�=�!�1�)�,�e�.�_�i�s�W�i�t�h�A�c�t�i�v�e�T�r�i�g�g�e�r�(�)�|�|�(�c�l�e�a�r�T�i�m�e�o�u�t�(�e�.�_�t�i�m�e�o�u�t�)�,�e�.�_�h�o�v�e�r�S�t�a�t�e�=�"�o�u�t�"�,�e�.�c�o�n�f�i�g�.�d�e�l�a�y�&�&�e�.�c�o�n�f�i�g�.�d�e�l�a�y�.�h�i�d�e�?�e�.�_�t�i�m�e�o�u�t�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�"�o�u�t�"�=�=�=�e�.�_�h�o�v�e�r�S�t�a�t�e�&�&�e�.�h�i�d�e�(�)�}�,�e�.�c�o�n�f�i�g�.�d�e�l�a�y�.�h�i�d�e�)�:�e�.�h�i�d�e�(�)�)�}�,�v�.�_�i�s�W�i�t�h�A�c�t�i�v�e�T�r�i�g�g�e�r�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t� �i�n� �t�h�i�s�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�)�i�f�(�t�h�i�s�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�[�t�]�)�r�e�t�u�r�n�!�0�;�r�e�t�u�r�n�!�1�}�,�v�.�_�g�e�t�C�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f�(�t�=�s�(�{�}�,�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�e�f�a�u�l�t�,�E�(�t�h�i�s�.�e�l�e�m�e�n�t�)�.�d�a�t�a�(�)�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�&�&�t�?�t�:�{�}�)�)�.�d�e�l�a�y�&�&�(�t�.�d�e�l�a�y�=�{�s�h�o�w�:�t�.�d�e�l�a�y�,�h�i�d�e�:�t�.�d�e�l�a�y�}�)�,�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�.�t�i�t�l�e�&�&�(�t�.�t�i�t�l�e�=�t�.�t�i�t�l�e�.�t�o�S�t�r�i�n�g�(�)�)�,�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�.�c�o�n�t�e�n�t�&�&�(�t�.�c�o�n�t�e�n�t�=�t�.�c�o�n�t�e�n�t�.�t�o�S�t�r�i�n�g�(�)�)�,�p�.�t�y�p�e�C�h�e�c�k�C�o�n�f�i�g�(�L�e�,�t�,�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�e�f�a�u�l�t�T�y�p�e�)�,�t�}�,�v�.�_�g�e�t�D�e�l�e�g�a�t�e�C�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�{�}�;�i�f�(�t�h�i�s�.�c�o�n�f�i�g�)�f�o�r�(�v�a�r� �e� �i�n� �t�h�i�s�.�c�o�n�f�i�g�)�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�.�D�e�f�a�u�l�t�[�e�]�!�=�=�t�h�i�s�.�c�o�n�f�i�g�[�e�]�&�&�(�t�[�e�]�=�t�h�i�s�.�c�o�n�f�i�g�[�e�]�)�;�r�e�t�u�r�n� �t�}�,�v�.�_�c�l�e�a�n�T�i�p�C�l�a�s�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�E�(�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�)�,�e�=�t�.�a�t�t�r�(�"�c�l�a�s�s�"�)�.�m�a�t�c�h�(�R�e�)�;�n�u�l�l�!�=�=�e�&�&�e�.�l�e�n�g�t�h�&�&�t�.�r�e�m�o�v�e�C�l�a�s�s�(�e�.�j�o�i�n�(�"�"�)�)�}�,�v�.�_�h�a�n�d�l�e�P�o�p�p�e�r�P�l�a�c�e�m�e�n�t�C�h�a�n�g�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�i�n�s�t�a�n�c�e�;�t�h�i�s�.�t�i�p�=�e�.�p�o�p�p�e�r�,�t�h�i�s�.�_�c�l�e�a�n�T�i�p�C�l�a�s�s�(�)�,�t�h�i�s�.�a�d�d�A�t�t�a�c�h�m�e�n�t�C�l�a�s�s�(�t�h�i�s�.�_�g�e�t�A�t�t�a�c�h�m�e�n�t�(�t
1�.�p�l�a�c�e�m�e�n�t�)�)�}�,�v�.�_�f�i�x�T�r�a�n�s�i�t�i�o�n�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�,�e�=�t�h�i�s�.�c�o�n�f�i�g�.�a�n�i�m�a�t�i�o�n�;�n�u�l�l�=�=�=�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�x�-�p�l�a�c�e�m�e�n�t�"�)�&�&�(�E�(�t�)�.�r�e�m�o�v�e�C�l�a�s�s�(�q�e�)�,�t�h�i�s�.�c�o�n�f�i�g�.�a�n�i�m�a�t�i�o�n�=�!�1�,�t�h�i�s�.�h�i�d�e�(�)�,�t�h�i�s�.�s�h�o�w�(�)�,�t�h�i�s�.�c�o�n�f�i�g�.�a�n�i�m�a�t�i�o�n�=�e�)�}�,�O�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�E�(�t�h�i�s�)�.�d�a�t�a�(�M�e�)�,�e�=�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �i�&�&�i�;�i�f�(�(�t�|�|�!�/�d�i�s�p�o�s�e�|�h�i�d�e�/�.�t�e�s�t�(�i�)�)�&�&�(�t�|�|�(�t�=�n�e�w� �O�i�(�t�h�i�s�,�e�)�,�E�(�t�h�i�s�)�.�d�a�t�a�(�M�e�,�t�)�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �i�)�)�{�i�f�(�v�o�i�d� �0�=�=�=�t�[�i�]�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�'�N�o� �m�e�t�h�o�d� �n�a�m�e�d� �"�'�+�i�+�'�"�'�)�;�t�[�i�]�(�)�}�}�)�}�,�i�(�O�i�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �H�e�}�}�,�{�k�e�y�:�"�N�A�M�E�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �L�e�}�}�,�{�k�e�y�:�"�D�A�T�A�_�K�E�Y�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �M�e�}�}�,�{�k�e�y�:�"�E�v�e�n�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �W�e�}�}�,�{�k�e�y�:�"�E�V�E�N�T�_�K�E�Y�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �A�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�T�y�p�e�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �N�e�}�}�]�)�,�E�.�f�n�[�L�e�]�=�(�Q�e�=�O�i�)�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�E�.�f�n�[�L�e�]�.�C�o�n�s�t�r�u�c�t�o�r�=�Q�e�,�E�.�f�n�[�L�e�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �E�.�f�n�[�L�e�]�=�P�e�,�Q�e�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�Q�e�)�,�C�i�=�(�D�=�"�.�"�+�(�X�e�=�"�b�s�.�p�o�p�o�v�e�r�"�)�,�K�e�=�(�O�=�e�)�.�f�n�[�G�e�=�"�p�o�p�o�v�e�r�"�]�,�Z�e�=�"�b�s�-�p�o�p�o�v�e�r�"�,�J�e�=�n�e�w� �R�e�g�E�x�p�(�"�(�^�|�\�\�s�)�"�+�Z�e�+�"�\�\�S�+�"�,�"�g�"�)�,�t�i�=�s�(�{�}�,�v�.�D�e�f�a�u�l�t�,�{�p�l�a�c�e�m�e�n�t�:�"�r�i�g�h�t�"�,�t�r�i�g�g�e�r�:�"�c�l�i�c�k�"�,�c�o�n�t�e�n�t�:�"�"�,�t�e�m�p�l�a�t�e�:�'�<�d�i�v� �c�l�a�s�s�=�"�p�o�p�o�v�e�r�"� �r�o�l�e�=�"�t�o�o�l�t�i�p�"�>�<�d�i�v� �c�l�a�s�s�=�"�a�r�r�o�w�"�>�<�/�d�i�v�>�<�h�3� �c�l�a�s�s�=�"�p�o�p�o�v�e�r�-�h�e�a�d�e�r�"�>�<�/�h�3�>�<�d�i�v� �c�l�a�s�s�=�"�p�o�p�o�v�e�r�-�b�o�d�y�"�>�<�/�d�i�v�>�<�/�d�i�v�>�'�}�)�,�e�i�=�s�(�{�}�,�v�.�D�e�f�a�u�l�t�T�y�p�e�,�{�c�o�n�t�e�n�t�:�"�(�s�t�r�i�n�g�|�e�l�e�m�e�n�t�|�f�u�n�c�t�i�o�n�)�"�}�)�,�i�i�=�{�H�I�D�E�:�"�h�i�d�e�"�+�D�,�H�I�D�D�E�N�:�"�h�i�d�d�e�n�"�+�D�,�S�H�O�W�:�"�s�h�o�w�"�+�D�,�S�H�O�W�N�:�"�s�h�o�w�n�"�+�D�,�I�N�S�E�R�T�E�D�:�"�i�n�s�e�r�t�e�d�"�+�D�,�C�L�I�C�K�:�"�c�l�i�c�k�"�+�D�,�F�O�C�U�S�I�N�:�"�f�o�c�u�s�i�n�"�+�D�,�F�O�C�U�S�O�U�T�:�"�f�o�c�u�s�o�u�t�"�+�D�,�M�O�U�S�E�E�N�T�E�R�:�"�m�o�u�s�e�e�n�t�e�r�"�+�D�,�M�O�U�S�E�L�E�A�V�E�:�"�m�o�u�s�e�l�e�a�v�e�"�+�D�}�,�C�i�=�x�i�=�v�,�(�I�=�A�i�)�.�p�r�o�t�o�t�y�p�e�=�O�b�j�e�c�t�.�c�r�e�a�t�e�(�C�i�.�p�r�o�t�o�t�y�p�e�)�,�(�I�.�p�r�o�t�o�t�y�p�e�.�c�o�n�s�t�r�u�c�t�o�r�=�I�)�.�_�_�p�r�o�t�o�_�_�=�C�i�,�(�I�=�A�i�.�p�r�o�t�o�t�y�p�e�)�.�i�s�W�i�t�h�C�o�n�t�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�g�e�t�T�i�t�l�e�(�)�|�|�t�h�i�s�.�_�g�e�t�C�o�n�t�e�n�t�(�)�}�,�I�.�a�d�d�A�t�t�a�c�h�m�e�n�t�C�l�a�s�s�=�f�u�n�c�t�i�o�n�(�t�)�{�O�(�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�)�.�a�d�d�C�l�a�s�s�(�Z�e�+�"�-�"�+�t�)�}�,�I�.�g�e�t�T�i�p�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�t�i�p�=�t�h�i�s�.�t�i�p�|�|�O�(�t�h�i�s�.�c�o�n�f�i�g�.�t�e�m�p�l�a�t�e�)�[�0�]�,�t�h�i�s�.�t�i�p�}�,�I�.�s�e�t�C�o�n�t�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�O�(�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�)�,�e�=�(�t�h�i�s�.�s�e�t�E�l�e�m�e�n�t�C�o�n�t�e�n�t�(�t�.�f�i�n�d�(�"�.�p�o�p�o�v�e�r�-�h�e�a�d�e�r�"�)�,�t�h�i�s�.�g�e�t�T�i�t�l�e�(�)�)�,�t�h�i�s�.�_�g�e�t�C�o�n�t�e�n�t�(�)�)�;�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �e�&�&�(�e�=�e�.�c�a�l�l�(�t�h�i�s�.�e�l�e�m�e�n�t�)�)�,�t�h�i�s�.�s�e�t�E�l�e�m�e�n�t�C�o�n�t�e�n�t�(�t
1�.�f�i�n�d�(�"�.�p�o�p�o�v�e�r�-�b�o�d�y�"�)�,�e�)�,�t�.�r�e�m�o�v�e�C�l�a�s�s�(�"�f�a�d�e� �s�h�o�w�"�)�}�,�I�.�_�g�e�t�C�o�n�t�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�l�e�m�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�c�o�n�t�e�n�t�"�)�|�|�t�h�i�s�.�c�o�n�f�i�g�.�c�o�n�t�e�n�t�}�,�I�.�_�c�l�e�a�n�T�i�p�C�l�a�s�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�O�(�t�h�i�s�.�g�e�t�T�i�p�E�l�e�m�e�n�t�(�)�)�,�e�=�t�.�a�t�t�r�(�"�c�l�a�s�s�"�)�.�m�a�t�c�h�(�J�e�)�;�n�u�l�l�!�=�=�e�&�&�0�<�e�.�l�e�n�g�t�h�&�&�t�.�r�e�m�o�v�e�C�l�a�s�s�(�e�.�j�o�i�n�(�"�"�)�)�}�,�A�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�O�(�t�h�i�s�)�.�d�a�t�a�(�X�e�)�,�e�=�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �i�?�i�:�n�u�l�l�;�i�f�(�(�t�|�|�!�/�d�e�s�t�r�o�y�|�h�i�d�e�/�.�t�e�s�t�(�i�)�)�&�&�(�t�|�|�(�t�=�n�e�w� �A�i�(�t�h�i�s�,�e�)�,�O�(�t�h�i�s�)�.�d�a�t�a�(�X�e�,�t�)�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �i�)�)�{�i�f�(�v�o�i�d� �0�=�=�=�t�[�i�]�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�'�N�o� �m�e�t�h�o�d� �n�a�m�e�d� �"�'�+�i�+�'�"�'�)�;�t�[�i�]�(�)�}�}�)�}�,�i�(�A�i�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�i�}�}�,�{�k�e�y�:�"�N�A�M�E�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �G�e�}�}�,�{�k�e�y�:�"�D�A�T�A�_�K�E�Y�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �X�e�}�}�,�{�k�e�y�:�"�E�v�e�n�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �i�i�}�}�,�{�k�e�y�:�"�E�V�E�N�T�_�K�E�Y�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �D�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�T�y�p�e�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�i�}�}�]�)�,�O�.�f�n�[�G�e�]�=�(�n�i�=�A�i�)�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�O�.�f�n�[�G�e�]�.�C�o�n�s�t�r�u�c�t�o�r�=�n�i�,�O�.�f�n�[�G�e�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �O�.�f�n�[�G�e�]�=�K�e�,�n�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�n�i�)�,�I�=�(�r�i�=�"�.�"�+�(�s�i�=�"�b�s�.�s�c�r�o�l�l�s�p�y�"�)�,�a�i�=�(�$�=�e�)�.�f�n�[�o�i�=�"�s�c�r�o�l�l�s�p�y�"�]�,�l�i�=�{�o�f�f�s�e�t�:�1�0�,�m�e�t�h�o�d�:�"�a�u�t�o�"�,�t�a�r�g�e�t�:�"�"�}�,�c�i�=�{�o�f�f�s�e�t�:�"�n�u�m�b�e�r�"�,�m�e�t�h�o�d�:�"�s�t�r�i�n�g�"�,�t�a�r�g�e�t�:�"�(�s�t�r�i�n�g�|�e�l�e�m�e�n�t�)�"�}�,�d�i�=�{�A�C�T�I�V�A�T�E�:�"�a�c�t�i�v�a�t�e�"�+�r�i�,�S�C�R�O�L�L�:�"�s�c�r�o�l�l�"�+�r�i�,�L�O�A�D�_�D�A�T�A�_�A�P�I�:�"�l�o�a�d�"�+�r�i�+�"�.�d�a�t�a�-�a�p�i�"�}�,�u�i�=�"�a�c�t�i�v�e�"�,�h�i�=�"�.�n�a�v�,� �.�l�i�s�t�-�g�r�o�u�p�"�,�p�i�=�"�.�n�a�v�-�l�i�n�k�"�,�f�i�=�"�.�l�i�s�t�-�g�r�o�u�p�-�i�t�e�m�"�,�m�i�=�"�p�o�s�i�t�i�o�n�"�,�(�I�=�E�i�.�p�r�o�t�o�t�y�p�e�)�.�r�e�f�r�e�s�h�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�,�t�=�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�=�=�=�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�.�w�i�n�d�o�w�?�"�o�f�f�s�e�t�"�:�m�i�,�n�=�"�a�u�t�o�"�=�=�=�t�h�i�s�.�_�c�o�n�f�i�g�.�m�e�t�h�o�d�?�t�:�t�h�i�s�.�_�c�o�n�f�i�g�.�m�e�t�h�o�d�,�o�=�n�=�=�=�m�i�?�t�h�i�s�.�_�g�e�t�S�c�r�o�l�l�T�o�p�(�)�:�0�;�t�h�i�s�.�_�o�f�f�s�e�t�s�=�[�]�,�t�h�i�s�.�_�t�a�r�g�e�t�s�=�[�]�,�t�h�i�s�.�_�s�c�r�o�l�l�H�e�i�g�h�t�=�t�h�i�s�.�_�g�e�t�S�c�r�o�l�l�H�e�i�g�h�t�(�)�,�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�t�h�i�s�.�_�s�e�l�e�c�t�o�r�)�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�t�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�t�)�;�i�f�(�e�=�t�?�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�t�)�:�e�)�{�v�a�r� �i�=�e�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�;�i�f�(�i�.�w�i�d�t�h�|�|�i�.�h�e�i�g�h�t�)�r�e�t�u�r�n�[�$�(�e�)�[�n�]�(�)�.�t�o�p�+�o�,�t�]�}�r�e�t�u�r�n� �n�u�l�l�}�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�}�)�.�s�o�r�t�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�[�0�]�-�e�[�0�]�}�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�e�.�_�o�f�f�s�e�t�s�.�p�u�s�h�(�t�[�0�]�)�,�e�.�_�t�a�r�g�e�t�s�.�p�u�s�h�(�t�[�1�]�)�}�)�}�,�I�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�$�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�s�i�)�,�$�(�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�)�.�o�f�f�(�r�i�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�_�c�o�n�f�i�g�=�n�u�l�l�,�t�h�i�s�.�_�s�e�l�e�c�t�o�r�=�n�u�l�l�,�t�h�i�s�.�_�o�f�f�s�e�t�s�=�n�u�l�l�,�t�h�i�s�.�_�t�a�r�g�e�t�s�=�n�u�l�l�,�t�h�i�s�.�_�a�c�t�i�v�e�T�a�r�g�e�t�=�n�u�l�l�,�t�h�i�s�.�_�s�c�r�o�l�l�H�e�i�g�h�t�=�n�u�l�l�}�,�I�.�_�g�e�t�C�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�r�e�t�u�r�n�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f�(�t�=�s�(�{�}�,�l�i�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�&�&�t�?�t�:�{�}
1�)�)�.�t�a�r�g�e�t�&�&�(�(�e�=�$�(�t�.�t�a�r�g�e�t�)�.�a�t�t�r�(�"�i�d�"�)�)�|�|�(�e�=�p�.�g�e�t�U�I�D�(�o�i�)�,�$�(�t�.�t�a�r�g�e�t�)�.�a�t�t�r�(�"�i�d�"�,�e�)�)�,�t�.�t�a�r�g�e�t�=�"�#�"�+�e�)�,�p�.�t�y�p�e�C�h�e�c�k�C�o�n�f�i�g�(�o�i�,�t�,�c�i�)�,�t�}�,�I�.�_�g�e�t�S�c�r�o�l�l�T�o�p�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�=�=�=�w�i�n�d�o�w�?�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�.�p�a�g�e�Y�O�f�f�s�e�t�:�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�.�s�c�r�o�l�l�T�o�p�}�,�I�.�_�g�e�t�S�c�r�o�l�l�H�e�i�g�h�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�.�s�c�r�o�l�l�H�e�i�g�h�t�|�|�M�a�t�h�.�m�a�x�(�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�c�r�o�l�l�H�e�i�g�h�t�,�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�s�c�r�o�l�l�H�e�i�g�h�t�)�}�,�I�.�_�g�e�t�O�f�f�s�e�t�H�e�i�g�h�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�=�=�=�w�i�n�d�o�w�?�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�:�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�h�e�i�g�h�t�}�,�I�.�_�p�r�o�c�e�s�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�_�g�e�t�S�c�r�o�l�l�T�o�p�(�)�+�t�h�i�s�.�_�c�o�n�f�i�g�.�o�f�f�s�e�t�,�e�=�t�h�i�s�.�_�g�e�t�S�c�r�o�l�l�H�e�i�g�h�t�(�)�,�i�=�t�h�i�s�.�_�c�o�n�f�i�g�.�o�f�f�s�e�t�+�e�-�t�h�i�s�.�_�g�e�t�O�f�f�s�e�t�H�e�i�g�h�t�(�)�;�i�f�(�t�h�i�s�.�_�s�c�r�o�l�l�H�e�i�g�h�t�!�=�=�e�&�&�t�h�i�s�.�r�e�f�r�e�s�h�(�)�,�i�<�=�t�)�{�e�=�t�h�i�s�.�_�t�a�r�g�e�t�s�[�t�h�i�s�.�_�t�a�r�g�e�t�s�.�l�e�n�g�t�h�-�1�]�;�t�h�i�s�.�_�a�c�t�i�v�e�T�a�r�g�e�t�!�=�=�e�&�&�t�h�i�s�.�_�a�c�t�i�v�a�t�e�(�e�)�}�e�l�s�e�{�i�f�(�t�h�i�s�.�_�a�c�t�i�v�e�T�a�r�g�e�t�&�&�t�<�t�h�i�s�.�_�o�f�f�s�e�t�s�[�0�]�&�&�0�<�t�h�i�s�.�_�o�f�f�s�e�t�s�[�0�]�)�r�e�t�u�r�n� �t�h�i�s�.�_�a�c�t�i�v�e�T�a�r�g�e�t�=�n�u�l�l�,�v�o�i�d� �t�h�i�s�.�_�c�l�e�a�r�(�)�;�f�o�r�(�v�a�r� �n�=�t�h�i�s�.�_�o�f�f�s�e�t�s�.�l�e�n�g�t�h�;�n�-�-�;�)�t�h�i�s�.�_�a�c�t�i�v�e�T�a�r�g�e�t�!�=�=�t�h�i�s�.�_�t�a�r�g�e�t�s�[�n�]�&�&�t�>�=�t�h�i�s�.�_�o�f�f�s�e�t�s�[�n�]�&�&�(�v�o�i�d� �0�=�=�=�t�h�i�s�.�_�o�f�f�s�e�t�s�[�n�+�1�]�|�|�t�<�t�h�i�s�.�_�o�f�f�s�e�t�s�[�n�+�1�]�)�&�&�t�h�i�s�.�_�a�c�t�i�v�a�t�e�(�t�h�i�s�.�_�t�a�r�g�e�t�s�[�n�]�)�}�}�,�I�.�_�a�c�t�i�v�a�t�e�=�f�u�n�c�t�i�o�n�(�e�)�{�t�h�i�s�.�_�a�c�t�i�v�e�T�a�r�g�e�t�=�e�,�t�h�i�s�.�_�c�l�e�a�r�(�)�;�v�a�r� �t�=�(�t�=�t�h�i�s�.�_�s�e�l�e�c�t�o�r�.�s�p�l�i�t�(�"�,�"�)�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�+�'�[�d�a�t�a�-�t�a�r�g�e�t�=�"�'�+�e�+�'�"�]�,�'�+�t�+�'�[�h�r�e�f�=�"�'�+�e�+�'�"�]�'�}�)�,�t�=�$�(�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�t�.�j�o�i�n�(�"�,�"�)�)�)�)�;�t�.�h�a�s�C�l�a�s�s�(�"�d�r�o�p�d�o�w�n�-�i�t�e�m�"�)�?�(�t�.�c�l�o�s�e�s�t�(�"�.�d�r�o�p�d�o�w�n�"�)�.�f�i�n�d�(�"�.�d�r�o�p�d�o�w�n�-�t
1�o�g�g�l�e�"�)�.�a�d�d�C�l�a�s�s�(�u�i�)�,�t�.�a�d�d�C�l�a�s�s�(�u�i�)�)�:�(�t�.�a�d�d�C�l�a�s�s�(�u�i�)�,�t�.�p�a�r�e�n�t�s�(�h�i�)�.�p�r�e�v�(�p�i�+�"�,� �"�+�f�i�)�.�a�d�d�C�l�a�s�s�(�u�i�)�,�t�.�p�a�r�e�n�t�s�(�h�i�)�.�p�r�e�v�(�"�.�n�a�v�-�i�t�e�m�"�)�.�c�h�i�l�d�r�e�n�(�p�i�)�.�a�d�d�C�l�a�s�s�(�u�i�)�)�,�$�(�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�d�i�.�A�C�T�I�V�A�T�E�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�e�}�)�}�,�I�.�_�c�l�e�a�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�t�h�i�s�.�_�s�e�l�e�c�t�o�r�)�)�;�$�(�t�)�.�f�i�l�t�e�r�(�"�.�a�c�t�i�v�e�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�u�i�)�}�,�E�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�$�(�t�h�i�s�)�.�d�a�t�a�(�s�i�)�;�i�f�(�t�|�|�(�t�=�n�e�w� �E�i�(�t�h�i�s�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�&�&�e�)�,�$�(�t�h�i�s�)�.�d�a�t�a�(�s�i�,�t�)�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�)�{�i�f�(�v�o�i�d� �0�=�=�=�t�[�e�]�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�'�N�o� �m�e�t�h�o�d� �n�a�m�e�d� �"�'�+�e�+�'�"�'�)�;�t�[�e�]�(�)�}�}�)�}�,�i�(�E�i�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�,�{�k�e�y�:�"�D�e�f�a�u�l�t�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �l�i�}�}�]�)�,�g�i�=�E�i�,�$�(�w�i�n�d�o�w�)�.�o�n�(�d�i�.�L�O�A�D�_�D�A�T�A�_�A�P�I�,�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�'�[�d�a�t�a�-�s�p�y�=�"�s�c�r�o�l�l�"�]�'�)�)�,�e�=�t�.�l�e�n�g�t�h�;�e�-�-�;�)�{�v�a�r� �i�=�$�(�t�[�e�]�)�;�g�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�i�,�i�.�d�a�t�a�(�)�)�}�}�)�,�$�.�f�n�[�o�i�]�=�g�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�$�.�f�n�[�o�i�]�.�C�o�n�s�t�r�u�c�t�o�r�=�g�i�,�$�.�f�n�[�o�i�]�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �$�.�f�n�[�o�i�]�=�a�i�,�g�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�g�i�)�,�L�=�(�L�=�"�.�"�+�(�v�i�=�"�b�s�.�t�a�b�"�)�,�y�i�=�(�F�=�e�)�.�f�n�.�t�a�b�,�w�i�=�{�H�I�D�E�:�"�h�i�d�e�"�+�L�,�H�I�D�D�E�N�:�"�h�i�d�d�e�n�"�+�L�,�S�H�O�W�:�"�s�h�o�w�"�+�L�,�S�H�O�W�N�:�"�s�h�o�w�n�"�+�L�,�C�L�I�C�K�_�D�A�T�A�_�A�P�I�:�"�c�l�i�c�k�"�+�L�+�"�.�d�a�t�a�-�a�p�i�"�}�,�b�i�=�"�a�c�t�i�v�e�"�,�_�i�=�"�.�a�c�t�i�v�e�"�,�T�i�=�"�>� �l�i� �>� �.�a�c�t�i�v�e�"�,�(�L�=�k�i�.�p�r�o�t�o�t�y�p�e�)�.�s�h�o�w�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�,�o�,�s�,�r�=�t�h�i�s�;�t�h�i�s�.�_�e�l�e�m�e�n�t�.�p�a�r�e�n�t�N�o�d�e�&�&�t�h�i�s�.�_�e�l�e�m�e�n�t�.�p�a�r�e�n�t�N�o�d�e�.�n�o�d�e�T�y�p�e�=�=�=�N�o�d�e�.�E�L�E�M�E�N�T�_�N�O�D�E�&�&�F�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�b�i�)�|�|�F�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�h�a�s�C�l�a�s�s�(�"�d�i�s�a�b�l�e�d�"�)�|�|�(�e�=�F�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�c�l�o�s�e�s�t�(�"�.�n�a�v�,� �.�l�i�s�t�-�g�r�o�u�p�"�)�[�0�]�,�i�=�p�.�g�e�t�S�e�l�e�c�t�o�r�F�r�o�m�E�l�e�m�e�n�t�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�,�e�&�&�(�o�=�"�U�L�"�=�=�=�e�.�n�o�d�e�N�a�m�e�?�T�i�:�_�i�,�n�=�(�n�=�F�.�m�a�k�e�A�r�r�a�y�(�F�(�e�)�.�f�i�n�d�(�o�)�)�)�[�n�.�l�e�n�g�t�h�-�1�]�)�,�o�=�F�.�E�v�e�n�t�(�w�i�.�H�I�D�E�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�t�h�i�s�.�_�e�l�e�m�e�n�t�}�)�,�s�=�F�.�E�v�e�n�t�(�w�i�.�S�H�O�W�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�n�}�)�,�n�&�&�F�(�n�)�.�t�r�i�g�g�e�r�(�o�)�,�F�(�t�h�i�s�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�s�)�,�s�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�o�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�(�i�&�&�(�t�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�i�)�)�,�t�h�i�s�.�_�a�c�t�i�v�a�t�e�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�e�)�,�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�F�.�E�v�e�n�t�(�w�i�.�H�I�D�D�E�N�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�r�.�_�e�l�e�m�e�n�t�}�)�,�e�=�F�.�E�v�e�n�t�(�w�i�.�S�H�O�W�N�,�{�r�e�l�a�t�e�d�T�a�r�g�e�t�:�n�}�)�;�F�(�n�)�.�t�r�i�g�g�e�r�(�t�)�,�F�(�r�.�_�e�l�e�m�e�n�t�)�.�t�r�i�g�g�e�r�(�e�)�}�,�t�?�t�h�i�s�.�_�a�c�t�i�v�a�t�e�(�t�,�t�.�p�a�r�e�n�t�N�o�d�e�,�s�)�:�s�(�)�)�)�}�,�L�.�d�i�s�p�o�s�e�=�f�u�n�c�t�i�o�n�(�)�{�F�.�r�e�m�o�v�e�D�a�t�a�(�t�h�i�s�.�_�e�l�e�m�e�n�t�,�v�i�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�n�u�l�l�}�,�L�.�_�a�c�t�i�v�a�t�e�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�f�u�n�c�t�i�o�n� �n�(�)�{�r�e�t�u�r�n� �o�.�_�t�r�a�n�s�i�t�i�o�n�C�o�m�p�l�e�t�e�(�t�,�s�,�i�)�}�v�a�r� �o�=�t�h�i�s�,�s�=�(�"�U�L�"�=�=�=�e�.�n�o�d�e�N�a�m�e�?�F�(�e�)�.�f�i�n�d�(�T�i�)�:�F�(�e�)�.�c�h�i�l�d�r�e�n�(�_�i�)�)�[�0�]�,�e�=�i�&�&�s�&�&�F�(�s�)�.�h�a�s�C�l�a�s�s�(�"�f�a�d�e�"�)�;
1�s�&�&�e�?�(�e�=�p�.�g�e�t�T�r�a�n�s�i�t�i�o�n�D�u�r�a�t�i�o�n�F�r�o�m�E�l�e�m�e�n�t�(�s�)�,�F�(�s�)�.�o�n�e�(�p�.�T�R�A�N�S�I�T�I�O�N�_�E�N�D�,�n�)�.�e�m�u�l�a�t�e�T�r�a�n�s�i�t�i�o�n�E�n�d�(�e�)�)�:�n�(�)�}�,�L�.�_�t�r�a�n�s�i�t�i�o�n�C�o�m�p�l�e�t�e�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�;�e�&�&�(�F�(�e�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w� �"�+�b�i�)�,�(�n�=�F�(�e�.�p�a�r�e�n�t�N�o�d�e�)�.�f�i�n�d�(�"�>� �.�d�r�o�p�d�o�w�n�-�m�e�n�u� �.�a�c�t�i�v�e�"�)�[�0�]�)�&�&�F�(�n�)�.�r�e�m�o�v�e�C�l�a�s�s�(�b�i�)�,�"�t�a�b�"�=�=�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�r�o�l�e�"�)�&�&�e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�s�e�l�e�c�t�e�d�"�,�!�1�)�)�,�F�(�t�)�.�a�d�d�C�l�a�s�s�(�b�i�)�,�"�t�a�b�"�=�=�=�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�r�o�l�e�"�)�&�&�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�s�e�l�e�c�t�e�d�"�,�!�0�)�,�p�.�r�e�f�l�o�w�(�t�)�,�F�(�t�)�.�a�d�d�C�l�a�s�s�(�"�s�h�o�w�"�)�,�t�.�p�a�r�e�n�t�N�o�d�e�&�&�F�(�t�.�p�a�r�e�n�t�N�o�d�e�)�.�h�a�s�C�l�a�s�s�(�"�d�r�o�p�d�o�w�n�-�m�e�n�u�"�)�&�&�(�(�n�=�F�(�t�)�.�c�l�o�s�e�s�t�(�"�.�d�r�o�p�d�o�w�n�"�)�[�0�]�)�&�&�(�e�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�n�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�d�r�o�p�d�o�w�n�-�t
1�o�g�g�l�e�"�)�)�,�F�(�e�)�.�a�d�d�C�l�a�s�s�(�b�i�)�)�,�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�!�0�)�)�,�i�&�&�i�(�)�}�,�k�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�=�f�u�n�c�t�i�o�n�(�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�F�(�t�h�i�s�)�,�e�=�t�.�d�a�t�a�(�v�i�)�;�i�f�(�e�|�|�(�e�=�n�e�w� �k�i�(�t�h�i�s�)�,�t�.�d�a�t�a�(�v�i�,�e�)�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �i�)�{�i�f�(�v�o�i�d� �0�=�=�=�e�[�i�]�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�'�N�o� �m�e�t�h�o�d� �n�a�m�e�d� �"�'�+�i�+�'�"�'�)�;�e�[�i�]�(�)�}�}�)�}�,�i�(�k�i�,�n�u�l�l�,�[�{�k�e�y�:�"�V�E�R�S�I�O�N�"�,�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�4�.�1�.�3�"�}�}�]�)�,�S�i�=�k�i�,�F�(�d�o�c�u�m�e�n�t�)�.�o�n�(�w�i�.�C�L�I�C�K�_�D�A�T�A�_�A�P�I�,�'�[�d�a�t�a�-�t�o�g�g�l�e�=�"�t�a�b�"�]�,� �[�d�a�t�a�-�t�o�g�g�l�e�=�"�p�i�l�l�"�]�,� �[�d�a�t�a�-�t�o�g�g�l�e�=�"�l�i�s�t�"�]�'�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�S�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�.�c�a�l�l�(�F�(�t�h�i�s�)�,�"�s�h�o�w�"�)�}�)�,�F�.�f�n�.�t�a�b�=�S�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�,�F�.�f�n�.�t�a�b�.�C�o�n�s�t�r�u�c�t�o�r�=�S�i�,�F�.�f�n�.�t�a�b�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �F�.�f�n�.�t�a�b�=�y�i�,�S�i�.�_�j�Q�u�e�r�y�I�n�t�e�r�f�a�c�e�}�,�S�i�)�;�f�u�n�c�t�i�o�n� �k�i�(�t�)�{�t�h�i�s�.�_�e�l�e�m�e�n�t�=�t�}�f�u�n�c�t�i�o�n� �E�i�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�;�t�h�i�s�.�_�e�l�e�m�e�n�t�=�t�,�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�=�"�B�O�D�Y�"�=�=�=�t�.�t�a�g�N�a�m�e�?�w�i�n�d�o�w�:�t�,�t�h�i�s�.�_�c�o�n�f�i�g�=�t�h�i�s�.�_�g�e�t�C�o�n�f�i�g�(�e�)�,�t�h�i�s�.�_�s�e�l�e�c�t�o�r�=�t�h�i�s�.�_�c�o�n�f�i�g�.�t�a�r�g�e�t�+�"� �"�+�p�i�+�"�,�"�+�t�h�i�s�.�_�c�o�n�f�i�g�.�t�a�r�g�e�t�+�"� �"�+�f�i�+�"�,�"�+�t�h�i�s�.�_�c�o�n�f�i�g�.�t�a�r�g�e�t�+�"� �.�d�r�o�p�d�o�w�n�-�i�t�e�m�"�,�t�h�i�s�.�_�o�f�f�s�e�t�s�=�[�]�,�t�h�i�s�.�_�t�a�r�g�e�t�s�=�[�]�,�t�h�i�s�.�_�a�c�t�i�v�e�T�a�r�g�e�t�=�n�u�l�l�,�t�h�i�s�.�_�s�c�r�o�l�l�H�e�i�g�h�t�=�0�,�$�(�t�h�i�s�.�_�s�c�r�o�l�l�E�l�e�m�e�n�t�)�.�o�n�(�d�i�.�S�C�R�O�L�L�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�.�_�p�r�o�c�e�s�s�(�t�)�}�)�,�t�h�i�s�.�r�e�f�r�e�s�h�(�)�,�t�h�i�s�.�_�p�r�o�c�e�s�s�(�)�}�f�u�n�c�t�i�o�n� �A�i�(�)�{�r�e�t�u�r�n� �x�i�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�|�|�t�h�i�s�}�f�u�n�c�t�i�o�n� �O�i�(�t�,�e�)�{�i�f�(�v�o�i�d� �0�=�=�=�d�e�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�B�o�o�t�s�t�r�a�p� �t�o�o�l�t�i�p�s� �r�e�q�u�i�r�e� �P�o�p�p�e�r�.�j�s� �(�h�t�t�p�s�:�/�/�p�o�p�p�e�r�.�j�s�.�o�r�g�)�"�)�;�t�h�i�s�.�_�i�s�E�n�a�b�l�e�d�=�!�0�,�t�h�i�s�.�_�t�i�m�e�o�u�t�=�0�,�t�h�i�s�.�_�h�o�v�e�r�S�t�a�t�e�=�"�"�,�t�h�i�s�.�_�a�c�t�i�v�e�T�r�i�g�g�e�r�=�{�}�,�t�h�i�s�.�_�p�o�p�p�e�r�=�n�u�l�l�,�t�h�i�s�.�e�l�e�m�e�n�t�=�t�,�t�h�i�s�.�c�o�n�f�i�g�=�t�h�i�s�.�_�g�e�t�C�o�n�f�i�g�(�e�)�,�t�h�i�s�.�t�i�p�=�n�u�l�l�,�t�h�i�s�.�_�s�e�t�L�i�s�t�e�n�e�r�s�(�)�}�f�u�n�c�t�i�o�n� �D�i�(�t�,�e�)�{�t�h�i�s�.�_�c�o�n�f�i�g�=�t�h�i�s�.�_�g�e�t�C�o�n�f�i�g�(�e�)�,�t�h�i�s�.�_�e�l�e�m�e�n�t�=�t�,�t�h�i�s�.�_�d�i�a�l�o�g�=�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�.�m�o�d�a�l�-�d�i�a�l�o�g�"�)�,�t�h�i�s�.�_�b�a�c�k�d�r�o�p�=�n�u�l�l�,�t�h�i�s�.�_�i�s�S�h�o�w�n�=�!�1�,�t�h�i�s�.�_�i�s�B�o�d�y�O�v�e�r�f�l�o�w�i�n�g�=�!�1�,�t�h�i�s�.�_�i�g�n�o�r�e�B�a�c�k�d�r�o�p�C�l�i�c�k�=�!�1�,�t�h�i�s�.�_�s�c�r�o�l�l�b�a�r�W�i�d�t�h�=�0�}�f�u�n�c�t�i�o�n� �M�(�t�,�e�)�{�t�h�i�s�.�_�e�l�e�m�e�n�t�=�t�,�t�h�i�s�.�_�p�o�p�p�e�r�=�n�u�l�l�,�t�h�i�s�.�_�c�o�n�f�i�g�=�t�h�i�s�.�_�g�e�t�C�o�n�f�i�g�(�e�)�,�t�h�i�s�.�_�m�e�n�u�=�t�h�i�s�.�_�g�e�t�M�e�n�u�E�l�e�m�e�n�t�(�)�,�t�h�i�s�.�_�i�n�N�a�v�b�a�r�=�t�h�i�s�.�_�d�e�t�e�c�t�N�a�v�b�a�r�(�)�,�t�h�i�s�.�_�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�s�(�)�}�i�f�(�v�o�i�d� �0�=�=�=�e�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�B�o�o�t�s�t�r�a�p�'�s� �J�a�v�a�S�c�r�i�p�t� �r�e�q�u�i�r�e�s� �j�Q�u�e�r�y�.� �j�Q�u�e�r�y� �m�u�s�t� �b�e� �i�n�c�l�u�d�e�d� �b�e�f�o�r�e� �B�o�o�t�s�t�r�a�p�'�s� �J�a�v�a�S�c�r�i�p�t�.�"�)�;�i�f�(�(�e�=�e�.�f�n�.�j�q�u�e�r�y�.�s�p�l�i�t�(�"� �"�)�[�0�]�.�s�p�l�i�t�(�"�.�"�)�)�[�0�]�<�2�&�&�e�[�1�]�<�9�|�|�1�=�=�=�e�[�0�]�&�&�9�=�=�=�e�[�1�]�&�&�e�[�2�]�<�1�|�|�4�<�=�e�[�0�]�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�B�o�o�t�s�t�r�a�p�'�s� �J�a�v�a�S�c�r�i�p�t� �r�e�q�u�i�r�e�s� �a�t� �l�e�a�s�t� �j�Q�u�e�r�y� �v�1�.�9�.�1� �b�u�t� �l�e�s�s� �t�h�a�n� �v�4�.�0�.�0�"�)�;�t�.�U�t�i�l�=�p�,�t�.�A�l�e�r�t�=�c�,�t�.�B�u�t�t�o�n�=�v�t�,�t�.�C�a�r�o�u�s�e�l�=�f�,�t�.�C�o�l�l�a�p�s�e�=�m�,�t�.�D�r�o�p�d�o�w�n�=�c�e�,�t�.�M�o�d�a�l�=�w�,�t�.�P�o�p�o�v�e�r�=�C�i�,�t�.�S�c�r�o�l�l�s�p�y�=�I�,�t�.
1�T�a�b�=�L�,�t�.�T�o�o�l�t�i�p�=�v�,�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�t�,�"�_�_�e�s�M�o�d�u�l�e�"�,�{�v�a�l�u�e�:�!�0�}�)�}�)�,�!�f�u�n�c�t�i�o�n�(�t�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�"�j�q�u�e�r�y�"�]�,�t�)�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�?�m�o�d�u�l�e�.�e�x�p�o�r�t�s�=�t�(�r�e�q�u�i�r�e�(�"�j�q�u�e�r�y�"�)�)�:�t�(�j�Q�u�e�r�y�)�}�(�f�u�n�c�t�i�o�n�(�c�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�v�a�r� �n�,�r�=�w�i�n�d�o�w�.�S�l�i�c�k�|�|�{�}�;�n�=�0�,�(�r�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�;�i�.�d�e�f�a�u�l�t�s�=�{�a�c�c�e�s�s�i�b�i�l�i�t�y�:�!�0�,�a�d�a�p�t�i�v�e�H�e�i�g�h�t�:�!�1�,�a�p�p�e�n�d�A�r�r�o�w�s�:�c�(�t�)�,�a�p�p�e�n�d�D�o�t�s�:�c�(�t�)�,�a�r�r�o�w�s�:�!�0�,�a�s�N�a�v�F�o�r�:�n�u�l�l�,�p�r�e�v�A�r�r�o�w�:�'�<�b�u�t�t�o�n� �c�l�a�s�s�=�"�s�l�i�c�k�-�p�r�e�v�"� �a�r�i�a�-�l�a�b�e�l�=�"�P�r�e�v�i�o�u�s�"� �t�y�p�e�=�"�b�u�t�t�o�n�"�>�P�r�e�v�i�o�u�s�<�/�b�u�t�t�o�n�>�'�,�n�e�x�t�A�r�r�o�w�:�'�<�b�u�t�t�o�n� �c�l�a�s�s�=�"�s�l�i�c�k�-�n�e�x�t�"� �a�r�i�a�-�l�a�b�e�l�=�"�N�e�x�t�"� �t�y�p�e�=�"�b�u�t�t�o�n�"�>�N�e�x�t�<�/�b�u�t�t�o�n�>�'�,�a�u�t�o�p�l�a�y�:�!�1�,�a�u�t�o�p�l�a�y�S�p�e�e�d�:�3�e�3�,�c�e�n�t�e�r�M�o�d�e�:�!�1�,�c�e�n�t�e�r�P�a�d�d�i�n�g�:�"�5�0�p�x�"�,�c�s�s�E�a�s�e�:�"�e�a�s�e�"�,�c�u�s�t�o�m�P�a�g�i�n�g�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �c�(�'�<�b�u�t�t�o�n� �t�y�p�e�=�"�b�u�t�t�o�n�"� �/�>�'�)�.�t�e�x�t�(�e�+�1�)�}�,�d�o�t�s�:�!�1�,�d�o�t�s�C�l�a�s�s�:�"�s�l�i�c�k�-�d�o�t�s�"�,�d�r�a�g�g�a�b�l�e�:�!�0�,�e�a�s�i�n�g�:�"�l�i�n�e�a�r�"�,�e�d�g�e�F�r�i�c�t�i�o�n�:�.�3�5�,�f�a�d�e�:�!�1�,�f�o�c�u�s�O�n�S�e�l�e�c�t�:�!�1�,�f�o�c�u�s�O�n�C�h�a�n�g�e�:�!�1�,�i�n�f�i�n�i�t�e�:�!�0�,�i�n�i�t�i�a�l�S�l�i�d�e�:�0�,�l�a�z�y�L�o�a�d�:�"�o�n�d�e�m�a�n�d�"�,�m�o�b�i�l�e�F�i�r�s�t�:�!�1�,�p�a�u�s�e�O�n�H�o�v�e�r�:�!�0�,�p�a�u�s�e�O�n�F�o�c�u�s�:�!�0�,�p�a�u�s�e�O�n�D�o�t�s�H�o�v�e�r�:�!�1�,�r�e�s�p�o�n�d�T�o�:�"�w�i�n�d�o�w�"�,�r�e�s�p�o�n�s�i�v�e�:�n�u�l�l�,�r�o�w�s�:�1�,�r�t�l�:�!�1�,�s�l�i�d�e�:�"�"�,�s�l�i�d�e�s�P�e�r�R�o�w�:�1�,�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�,�s�p�e�e�d�:�5�0�0�,�s�w�i�p�e�:�!�0�,�s�w�i�p�e�T�o�S�l�i�d�e�:�!�1�,�t�o�u�c�h�M�o�v�e�:�!�0�,�t�o�u�c�h�T�h�r�e�s�h�o�l�d�:�5�,�u�s�e�C�S�S�:�!�0�,�u�s�e�T�r�a�n�s�f�o�r�m�:�!�0�,�v�a�r�i�a�b�l�e�W�i�d�t�h�:�!�1�,�v�e�r�t�i�c�a�l�:�!�1�,�v�e�r�t�i�c�a�l�S�w�i�p�i�n�g�:�!�1�,�w�a�i�t�F�o�r�A�n�i�m�a�t�e�:�!�0�,�z�I�n�d�e�x�:�1�e�3�}�,�i�.�i�n�i�t�i�a�l�s�=�{�a�n�i�m�a�t�i�n�g�:�!�1�,�d�r�a�g�g�i�n�g�:�!�1�,�a�u�t�o�P�l�a�y�T�i�m�e�r�:�n�u�l�l�,�c�u�r�r�e�n�t�D�i�r�e�c�t�i�o�n�:�0�,�c�u�r�r�e�n�t�L�e�f�t�:�n�u�l�l�,�c�u�r�r�e�n�t�S�l�i�d�e�:�0�,�d�i�r�e�c�t�i�o�n�:�1�,�$�d�o�t�s�:�n�u�l�l�,�l�i�s�t�W�i�d�t�h�:�n�u�l�l�,�l�i�s�t�H�e�i�g�h�t�:�n�u�l�l�,�l�o�a�d�I�n�d�e�x�:�0�,�$�n�e�x�t�A�r�r�o�w�:�n�u�l�l�,�$�p�r�e�v�A�r�r�o�w�:�n�u�l�l�,�s�c�r�o�l�l�i�n�g�:�!�1�,�s�l�i�d�e�C�o�u�n�t�:�n�u�l�l�,�s�l�i�d�e�W�i�d�t�h�:�n�u�l�l�,�$�s�l�i�d�e�T�r�a�c�k�:�n�u�l�l�,�$�s�l�i�d�e�s�:�n�u�l�l�,�s�l�i�d�i�n�g�:�!�1�,�s�l�i�d�e�O�f�f�s�e�t�:�0�,�s�w�i�p�e�L�e�f�t�:�n�u�l�l�,�s�w�i�p�i�n�g�:�!�1�,�$�l�i�s�t�:�n�u�l�l�,�t�o�u�c�h�O�b�j�e�c�t�:�{�}�,�t�r�a�n�s�f�o�r�m�s�E�n�a�b�l�e�d�:�!�1�,�u�n�s�l�i�c�k�e�d�:�!�1�}�,�c�.�e�x�t�e�n�d�(�i�,�i�.�i�n�i�t�i�a�l�s�)�,�i�.�a�c�t�i�v�e�B�r�e�a�k�p�o�i�n�t�=�n�u�l�l�,�i�.�a�n�i�m�T�y�p�e�=�n�u�l�l�,�i�.�a�n�i�m�P�r�o�p�=�n�u�l�l�,�i�.�b�r�e�a�k�p�o�i�n�t�s�=�[�]�,�i�.�b�r�e�a�k�p�o�i�n�t�S�e�t�t�i�n�g�s�=�[�]�,�i�.�c�s�s�T�r�a�n�s�i�t�i�o�n�s�=�!�1�,�i�.�f�o�c�u�s�s�e�d�=�!�1�,�i�.�i�n�t�e�r�r�u�p�t�e�d�=�!�1�,�i�.�h�i�d�d�e�n�=�"�h�i�d�d�e�n�"�,�i�.�p�a�u�s�e�d�=�!�0�,�i�.�p�o�s�i�t�i�o�n�P�r�o�p�=�n�u�l�l�,�i�.�r�e�s�p�o�n�d�T�o�=�n�u�l�l�,�i�.�r�o�w�C�o�u�n�t�=�1�,�i�.�s�h�o�u�l�d�C�l�i�c�k�=�!�0�,�i�.�$�s�l�i�d�e�r�=�c�(�t�)�,�i�.�$�s�l�i�d�e�s�C�a�c�h�e�=�n�u�l�l�,�i�.�t�r�a�n�s�f�o�r�m�T�y�p�e�=�n�u�l�l�,�i�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�=�n�u�l�l�,�i�.�v�i�s�i�b�i�l�i�t�y�C�h�a�n�g�e�=�"�v�i�s�i�b�i�l�i�t�y�c�h�a�n�g�e�"�,�i�.�w�i�n�d�o�w�W�i�d�t�h�=�0�,�i�.�w�i�n�d�o�w�T�i�m�e�r�=�n�u�l�l�,�t�=�c�(�t�)�.�d�a�t�a�(�"�s�l�i�c�k�"�)�|�|�{�}�,�i�.�o�p�t�i�o�n�s�=�c�.�e�x�t�e�n�d�(�{�}�,�i�.�d�e�f�a�u�l�t�s�,�e�,�t�)�,�i�.�c�u�r�r�e�n�t�S�l�i�d�e�=�i�.�o�p�t�i�o�n�s�.�i�n�i�t�i�a�l�S�l�i�d�e�,�i�.�o�r�i�g�i�n�a�l�S�e�t�t�i�n�g�s�=�i�.�o�p�t�i�o�n�s�,�v�o�i�d� �0�!�=�=�d�o�c�u�m�e�n�t�.�m�o�z
1�H�i�d�d�e�n�?�(�i�.�h�i�d�d�e�n�=�"�m�o�z�H�i�d�d�e�n�"�,�i�.�v�i�s�i�b�i�l�i�t�y�C�h�a�n�g�e�=�"�m�o�z�v�i�s�i�b�i�l�i�t�y�c�h�a�n�g�e�"�)�:�v�o�i�d� �0�!�=�=�d�o�c�u�m�e�n�t�.�w�e�b�k�i�t�H�i�d�d�e�n�&�&�(�i�.�h�i�d�d�e�n�=�"�w�e�b�k�i�t�H�i�d�d�e�n�"�,�i�.�v�i�s�i�b�i�l�i�t�y�C�h�a�n�g�e�=�"�w�e�b�k�i�t�v�i�s�i�b�i�l�i�t�y�c�h�a�n�g�e�"�)�,�i�.�a�u�t�o�P�l�a�y�=�c�.�p�r�o�x�y�(�i�.�a�u�t�o�P�l�a�y�,�i�)�,�i�.�a�u�t�o�P�l�a�y�C�l�e�a�r�=�c�.�p�r�o�x�y�(�i�.�a�u�t�o�P�l�a�y�C�l�e�a�r�,�i�)�,�i�.�a�u�t�o�P�l�a�y�I�t�e�r�a�t�o�r�=�c�.�p�r�o�x�y�(�i�.�a�u�t�o�P�l�a�y�I�t�e�r�a�t�o�r�,�i�)�,�i�.�c�h�a�n�g�e�S�l�i�d�e�=�c�.�p�r�o�x�y�(�i�.�c�h�a�n�g�e�S�l�i�d�e�,�i�)�,�i�.�c�l�i�c�k�H�a�n�d�l�e�r�=�c�.�p�r�o�x�y�(�i�.�c�l�i�c�k�H�a�n�d�l�e�r�,�i�)�,�i�.�s�e�l�e�c�t�H�a�n�d�l�e�r�=�c�.�p�r�o�x�y�(�i�.�s�e�l�e�c�t�H�a�n�d�l�e�r�,�i�)�,�i�.�s�e�t�P�o�s�i�t�i�o�n�=�c�.�p�r�o�x�y�(�i�.�s�e�t�P�o�s�i�t�i�o�n�,�i�)�,�i�.�s�w�i�p�e�H�a�n�d�l�e�r�=�c�.�p�r�o�x�y�(�i�.�s�w�i�p�e�H�a�n�d�l�e�r�,�i�)�,�i�.�d�r�a�g�H�a�n�d�l�e�r�=�c�.�p�r�o�x�y�(�i�.�d�r�a�g�H�a�n�d�l�e�r�,�i�)�,�i�.�k�e�y�H�a�n�d�l�e�r�=�c�.�p�r�o�x�y�(�i�.�k�e�y�H�a�n�d�l�e�r�,�i�)�,�i�.�i�n�s�t�a�n�c�e�U�i�d�=�n�+�+�,�i�.�h�t�m�l�E�x�p�r�=�/�^�(�?�:�\�s�*�(�<�[�\�w�\�W�]�+�>�)�[�^�>�]�*�)�$�/�,�i�.�r�e�g�i�s�t�e�r�B�r�e�a�k�p�o�i�n�t�s�(�)�,�i�.�i�n�i�t�(�!�0�)�}�)�.�p�r�o�t�o�t�y�p�e�.�a�c�t�i�v�a�t�e�A�D�A�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�$�s�l�i�d�e�T�r�a�c�k�.�f�i�n�d�(�"�.�s�l�i�c�k�-�a�c�t�i�v�e�"�)�.�a�t�t�r�(�{�"�a�r�i�a�-�h�i�d�d�e�n�"�:�"�f�a�l�s�e�"�}�)�.�f�i�n�d�(�"�a�,� �i�n�p�u�t�,� �b�u�t�t�o�n�,� �s�e�l�e�c�t�"�)�.�a�t�t�r�(�{�t�a�b�i�n�d�e�x�:�"�0�"�}�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�a�d�d�S�l�i�d�e�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�A�d�d�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�=�t�h�i�s�;�i�f�(�"�b�o�o�l�e�a�n�"�=�=�t�y�p�e�o�f� �e�)�i�=�e�,�e�=�n�u�l�l�;�e�l�s�e� �i�f�(�e�<�0�|�|�e�>�=�n�.�s�l�i�d�e�C�o�u�n�t�)�r�e�t�u�r�n�!�1�;�n�.�u�n�l�o�a�d�(�)�,�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �e�?�0�=�=�=�e�&�&�0�=�=�=�n�.�$�s�l�i�d�e�s�.�l�e�n�g�t�h�?�c�(�t�)�.�a�p�p�e�n�d�T�o�(�n�.�$�s�l�i�d�e�T�r�a�c�k�)�:�i�?�c�(�t�)�.�i�n�s�e�r�t�B�e�f�o�r�e�(�n�.�$�s�l�i�d�e�s�.�e�q�(�e�)�)�:�c�(�t�)�.�i�n�s�e�r�t�A�f�t�e�r�(�n�.�$�s�l�i�d�e�s�.�e�q�(�e�)�)�:�!�0�=�=�=�i�?�c�(�t�)�.�p�r�e�p�e�n�d�T�o�(�n�.�$�s�l�i�d�e�T�r�a�c�k�)�:�c�(�t�)�.�a�p�p�e�n�d�T�o�(�n�.�$�s�l�i�d�e�T�r�a�c�k�)�,�n�.�$�s�l�i�d�e�s�=�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�,�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�.�d�e�t�a�c�h�(�)�,�n�.�$�s�l�i�d�e�T�r�a�c�k�.�a�p�p�e�n�d�(�n�.�$�s�l�i�d�e�s�)�,�n�.�$�s�l�i�d�e�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�c�(�e�)�.�a�t�t�r�(�"�d�a�t�a�-�s�l�i�c�k�-�i�n�d�e�x�"�,�t�)�}�)�,�n�.�$�s�l�i�d�e�s�C�a�c�h�e�=�n�.�$�s�l�i�d�e�s�,�n�.�r�e�i�n�i�t�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�a�n�i�m�a�t�e�H�e�i�g�h�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�=�t�h�i�s�;�1�=�=�=�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�a�d�a�p�t�i�v�e�H�e�i�g�h�t�&�&�!�1�=�=�=�e�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�&�&�(�t�=�e�.�$�s�l�i�d�e�s�.�e�q�(�e�.�c�u�r�r�e�n�t�S�l�i�d�e�)�.�o�u�t�e�r�H�e�i�g�h�t�(�!�0�)�,�e�.�$�l�i�s�t�.�a�n�i�m�a�t�e�(�{�h�e�i�g�h�t�:�t�}�,�e�.�o�p�t�i�o�n�s�.�s�p�e�e�d�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�a�n�i�m�a�t�e�S�l�i�d�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�{�}�,�n�=�t�h�i�s�;�n�.�a�n�i�m�a�t�e�H�e�i�g�h�t�(�)�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�r�t�l�&�&�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�&�&�(�t�=�-�t�)�,�!�1�=�=�=�n�.�t�r�a�n�s�f�o�r�m�s�E�n�a�b�l�e�d�?�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�?�n�.�$�s�l�i�d�e�T�r�a�c�k�.�a�n�i�m�a�t�e�(�{�l�e�f�t�:�t�}�,�n�.�o�p�t�i�o�n�s�.�s�p�e�e�d�,�n�.�o�p�t�i�o�n�s�.�e�a�s�i�n�g�,�e�)�:�n�.�$�s�l�i�d�e�T�r�a�c�k�.�a�n�i�m�a�t�e�(�{�t�o�p�:�t�}�,�n�.�o�p�t�i�o�n�s�.�s�p�e�e�d�,�n�.�o�p�t�i�o�n�s�.�e�a�s�i�n�g�,�e�)�:�!�1�=�=�=�n�.�c�s�s�T�r�a�n�s�i�t�i�o�n�s�?�(�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�r�t�l�&�&�(�n�.�c�u�r�r�e�n�t�L�e�f�t�=�-�n�.�c�u�r�r�e�n�t�L�e�f�t�)�,�c�(�{�a�n�i�m�S�t�a�r�t�:�n�.�c�u�r�r�e�n�t�L�e�f�t�}�)�.�a�n�i�m�a�t�e�(�{�a�n�i�m�S�t�a�r�t�:�t�}�,�{�d�u�r�a�t�i�o�n�:�n�.�o�p�t�i�o�n�s�.�s�p�e�e�d�,�e�a�s�i�n�g�:�n�.�o�p�t�i�o�n�s�.�e�a�s�i�n�g�,�s�t�e�p�:�f�u�n�c�t�i�o�n�(�t�)�{�t�=�M�a�t�h�.�c�e�i�l�(�t�)�,�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�?�i�[�n�.�a�n�i�m�T�y�p�e�]�=�"�t�r�a�n�s�l�a�t�e�(�"�+�t�+�"�p�x�,� �0�p�x�)�"�:�i�[�n�.�a�n�i�m�T�y�p�e�]�=�"�t�r�a�n�s�l�a�t�e�(�0�p�x�,�"�+�t�+�"�p�x�)�"�,�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�s�s�(�i�)�}�,�c�o�m�p�l�e�t�e�:�f�u�n�c�t�i�o�n�(�)�{�e�&�&�e�.�c�a�l�l�(�)�}�}�)�)�:�(�n�.�a�p�p�l�y�T�r�a�n�s�i�t�i�o�n�(�)�,�t�=�M�a�t�h�.�c�e�i�l�(�t�)�,�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�?�i�[�n�.�a�n�i�m�T�y�p�e�]�=�"�t�r�a�n�s�l�a�t�e�3�d�(�"�+�t�+�"�p�x�,� �0�p�x�,� �0�p�x�)�"�:�i�[�n�.�a�n�i�m�T�y�p�e�]�=�"�t�r�a�n�s�l�a�t�e�3�d�(�0�p�x�,�"�+�t�+�"�p�x�,� �0�p�x�)�"�,�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�s�s�(�i�)�,�e�&�&�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�n�.�d�i�s�a�b�l�e�T�r�a�n�s�i�t�i�o�n�(�)�,�e�.�c�a�l�l�(�)�}�,�n�.�o�p�t�i�o�n�s�.�s�p�e�e�d�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�e�t�N�a�v�T�a�r�g�e�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�o�p�t�i�o�n�s�.�a�s�N�a�v�F�o�r�;�r�e�t�u�r�n� �t�=�t�&�&�n�u�l�l�!�=�=�t�?�c�(�t�)�.�n�o�t�(�t�h�i�s�.�$�s�l�i�d�e�r�)�:�t�}�,�r�.�p�r�o�t�o�t�y�p�e�.�a�s�N�a�v�F�o�r�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�t�h�i�s�.�g�e�t�N�a�v�T�a�r�g�e�t�(�)�;�n�u�l�l�!�=�=�t�&�&�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�&�&�t�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�c�(�t�h�i�s�)�.�s�l�i�c�k�(�"�g�e�t�S�l�i�c�k�"�)�;�t�.�u�n�s�l�i�c�k�e�d�|�|�t�.�s�l�i�d�e�H�a�n�d�l�e�r�(�e�,�!�0�)�}�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�a�p�p�l�y�T�r�a�n�s�i�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�,�i�=�{�}�;�!�1�=�=�=�e�.�o�p�t�i�o�n�s�.�f�a�d�e�?�i�[�e�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�]�=�e�.�t�r�a�n�s�f�o�r�m�T�y�p�e�+�"� �"�+�e�.�o�p�t�i�o�n�s�.�s�p�e�e�d�+�"�m�s� �"�+�e�.�o�p�t�i�o�n�s�.�c�s�s�E�a�s�e�:�i�[�e�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�]�=�"�o�p�a�c�i�t�y� �"�+�e�.�o�p�t�i�o�n�s�.�s�p�e�e�d�+�"�m�s� �"�+�e�.�o�p�t�i�o�n�s�.�c�s�s�E�a�s�e�,�(�!�1�=�=�=�e�.�o�p�t�i�o�n�s�.�f�a�d�e�?�e�.�$�s�l�i�d�e�T�r�a�c�k�:�e�.�$�s�l�i�d�e�s�.�e�q�(�t�)�)�.�c�s�s�(�i�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�a�u�t�o�P�l�a�y�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;
1�t�.�a�u�t�o�P�l�a�y�C�l�e�a�r�(�)�,�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�t�.�a�u�t�o�P�l�a�y�T�i�m�e�r�=�s�e�t�I�n�t�e�r�v�a�l�(�t�.�a�u�t�o�P�l�a�y�I�t�e�r�a�t�o�r�,�t�.�o�p�t�i�o�n�s�.�a�u�t�o�p�l�a�y�S�p�e�e�d�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�a�u�t�o�P�l�a�y�C�l�e�a�r�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�a�u�t�o�P�l�a�y�T�i�m�e�r�&�&�c�l�e�a�r�I�n�t�e�r�v�a�l�(�t�h�i�s�.�a�u�t�o�P�l�a�y�T�i�m�e�r�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�a�u�t�o�P�l�a�y�I�t�e�r�a�t�o�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�,�e�=�t�.�c�u�r�r�e�n�t�S�l�i�d�e�+�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�;�t�.�p�a�u�s�e�d�|�|�t�.�i�n�t�e�r�r�u�p�t�e�d�|�|�t�.�f�o�c�u�s�s�e�d�|�|�(�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�(�1�=�=�=�t�.�d�i�r�e�c�t�i�o�n�&�&�t�.�c�u�r�r�e�n�t�S�l�i�d�e�+�1�=�=�=�t�.�s�l�i�d�e�C�o�u�n�t�-�1�?�t�.�d�i�r�e�c�t�i�o�n�=�0�:�0�=�=�=�t�.�d�i�r�e�c�t�i�o�n�&�&�(�e�=�t�.�c�u�r�r�e�n�t�S�l�i�d�e�-�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�,�t�.�c�u�r�r�e�n�t�S�l�i�d�e�-�1�=�=�0�&�&�(�t�.�d�i�r�e�c�t�i�o�n�=�1�)�)�)�,�t�.�s�l�i�d�e�H�a�n�d�l�e�r�(�e�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�b�u�i�l�d�A�r�r�o�w�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�r�r�o�w�s�&�&�(�t�.�$�p�r�e�v�A�r�r�o�w�=�c�(�t�.�o�p�t�i�o�n�s�.�p�r�e�v�A�r�r�o�w�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�r�r�o�w�"�)�,�t�.�$�n�e�x�t�A�r�r�o�w�=�c�(�t�.�o�p�t�i�o�n�s�.�n�e�x�t�A�r�r�o�w�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�r�r�o�w�"�)�,�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�(�t�.�$�p�r�e�v�A�r�r�o�w�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�h�i�d�d�e�n�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n� �t�a�b�i�n�d�e�x�"�)�,�t�.�$�n�e�x�t�A�r�r�o�w�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�h�i�d�d�e�n�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n� �t�a�b�i�n�d�e�x�"�)�,�t�.�h�t�m�l�E�x�p�r�.�t�e�s�t�(�t�.�o�p�t�i�o�n�s�.�p�r�e�v�A�r�r�o�w�)�&�&�t�.�$�p�r�e�v�A�r�r�o�w�.�p�r�e�p�e�n�d�T�o�(�t�.�o�p�t�i�o�n�s�.�a�p�p�e�n�d�A�r�r�o�w�s�)�,�t�.�h�t�m�l�E�x�p�r�.�t�e�s�t�(�t�.�o�p�t�i�o�n�s�.�n�e�x�t�A�r�r�o�w�)�&�&�t�.�$�n�e�x�t�A�r�r�o�w�.�a�p�p�e�n�d�T�o�(�t�.�o�p�t�i�o�n�s�.�a�p�p�e�n�d�A�r�r�o�w�s�)�,�!�0�!�=�=�t�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�t�.�$�p�r�e�v�A�r�r�o�w�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d�"�)�.�a�t�t�r�(�"�a�r�i�a�-�d�i�s�a�b�l�e�d�"�,�"�t�r�u�e�"�)�)�:�t�.�$�p�r�e�v�A�r�r�o�w�.�a�d�d�(�t�.�$�n�e�x�t�A�r�r�o�w�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�h�i�d�d�e�n�"�)�.�a�t�t�r�(�{�"�a�r�i�a�-�d�i�s�a�b�l�e�d�"�:�"�t�r�u�e�"�,�t�a�b�i�n�d�e�x�:�"�-�1�"�}�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�b�u�i�l�d�D�o�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�=�t�h�i�s�;�i�f�(�!�0�=�=�=�i�.�o�p�t�i�o�n�s�.�d�o�t�s�&�&�i�.�s�l�i�d�e�C�o�u�n�t�>�i�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�{�f�o�r�(�i�.�$�s�l�i�d�e�r�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�d�o�t�t�e�d�"�)�,�e�=�c�(�"�<�u�l� �/�>�"�)�.�a�d�d�C�l�a�s�s�(�i�.�o�p�t�i�o�n�s�.�d�o�t�s�C�l�a�s�s�)�,�t�=�0�;�t�<�=�i�.�g�e�t�D�o�t�C�o�u�n�t�(�)�;�t�+�=�1�)�e�.�a�p�p�e�n�d�(�c�(�"�<�l�i� �/�>�"�)�.�a�p�p�e�n�d�(�i�.�o�p�t�i�o�n�s�.�c�u�s�t�o�m�P�a�g�i�n�g�.�c�a�l�l�(�t�h�i�s�,�i�,�t�)�)�)�;�i�.�$�d�o�t�s�=�e�.�a�p�p�e�n�d�T�o�(�i�.�o�p�t�i�o�n�s�.�a�p�p�e�n�d�D�o�t�s�)�,�i�.�$�d�o�t�s�.�f�i�n�d�(�"�l�i�"�)�.�f�i�r�s�t�(�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�}�}�,�r�.�p�r�o�t�o�t�y�p�e�.�b�u�i�l�d�O�u�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�$�s�l�i�d�e�s�=�t�.�$�s�l�i�d�e�r�.�c�h�i�l�d�r�e�n�(�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�+�"�:�n�o�t�(�.�s�l�i�c�k�-�c�l�o�n�e�d�)�"�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�s�l�i�d�e�"�)�,�t�.�s�l�i�d�e�C�o�u�n�t�=�t�.�$�s�l�i�d�e�s�.�l�e�n�g�t�h�,�t�.�$�s�l�i�d�e�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�c�(�e�)�.�a�t�t�r�(�"�d�a�t�a�-�s�l�i�c�k�-�i�n�d�e�x�"�,�t�)�.�d�a�t�a�(�"�o�r�i�g�i�n�a�l�S�t�y�l�i�n�g�"�,�c�(�e�)�.�a�t�t�r�(�"�s�t�y�l�e�"�)�|�|�"�"�)�}�)�,�t�.�$�s�l�i�d�e�r�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�s�l�i�d�e�r�"�)�,�t�.�$�s�l�i�d�e�T�r�a�c�k�=�0�=�=�=�t�.�s�l�i�d�e�C�o�u�n�t�?�c�(�'�<�d�i�v� �c�l�a�s�s�=�"�s�l�i�c�k�-�t�r�a�c�k�"�/�>�'�)�.�a�p�p�e�n�d�T�o�(�t�.�$�s�l�i�d�e�r�)�:�t�.�$�s�l�i�d�e�s�.�w�r�a�p�A�l�l�(�'�<�d�i�v� �c�l�a�s�s�=�"�s�l�i�c�k�-�t�r�a�c�k�"�/�>
1�'�)�.�p�a�r�e�n�t�(�)�,�t�.�$�l�i�s�t�=�t�.�$�s�l�i�d�e�T�r�a�c�k�.�w�r�a�p�(�'�<�d�i�v� �c�l�a�s�s�=�"�s�l�i�c�k�-�l�i�s�t�"�/�>�'�)�.�p�a�r�e�n�t�(�)�,�t�.�$�s�l�i�d�e�T�r�a�c�k�.�c�s�s�(�"�o�p�a�c�i�t�y�"�,�0�)�,�!�0�!�=�=�t�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�!�0�!�=�=�t�.�o�p�t�i�o�n�s�.�s�w�i�p�e�T�o�S�l�i�d�e�|�|�(�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�=�1�)�,�c�(�"�i�m�g�[�d�a�t�a�-�l�a�z�y�]�"�,�t�.�$�s�l�i�d�e�r�)�.�n�o�t�(�"�[�s�r�c�]�"�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�l�o�a�d�i�n�g�"�)�,�t�.�s�e�t�u�p�I�n�f�i�n�i�t�e�(�)�,�t�.�b�u�i�l�d�A�r�r�o�w�s�(�)�,�t�.�b�u�i�l�d�D�o�t�s�(�)�,�t�.�u�p�d�a�t�e�D�o�t�s�(�)�,�t�.�s�e�t�S�l�i�d�e�C�l�a�s�s�e�s�(�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�.�c�u�r�r�e�n�t�S�l�i�d�e�?�t�.�c�u�r�r�e�n�t�S�l�i�d�e�:�0�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�d�r�a�g�g�a�b�l�e�&�&�t�.�$�l�i�s�t�.�a�d�d�C�l�a�s�s�(�"�d�r�a�g�g�a�b�l�e�"�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�b�u�i�l�d�R�o�w�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�=�t�h�i�s�,�o�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�D�o�c�u�m�e�n�t�F�r�a�g�m�e�n�t�(�)�,�s�=�n�.�$�s�l�i�d�e�r�.�c�h�i�l�d�r�e�n�(�)�;�i�f�(�0�<�n�.�o�p�t�i�o�n�s�.�r�o�w�s�)�{�f�o�r�(�i�=�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�P�e�r�R�o�w�*�n�.�o�p�t�i�o�n�s�.�r�o�w�s�,�e�=�M�a�t�h�.�c�e�i�l�(�s�.�l�e�n�g�t�h�/�i�)�,�t�=�0�;�t�<�e�;�t�+�+�)�{�f�o�r�(�v�a�r� �r�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�a�=�0�;�a�<�n�.�o�p�t�i�o�n�s�.�r�o�w�s�;�a�+�+�)�{�f�o�r�(�v�a�r� �l�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�c�=�0�;�c�<�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�P�e�r�R�o�w�;�c�+�+�)�{�v�a�r� �d�=�t�*�i�+�(�a�*�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�P�e�r�R�o�w�+�c�)�;�s�.�g�e�t�(�d�)�&�&�l�.�a�p�p�e�n�d�C�h�i�l�d�(�s�.�g�e�t�(�d�)�)�}�r�.�a�p�p�e�n�d�C�h�i�l�d�(�l�)�}�o�.�a�p�p�e�n�d�C�h�i�l�d�(�r�)�}�n�.�$�s�l�i�d�e�r�.�e�m�p�t�y�(�)�.�a�p�p�e�n�d�(�o�)�,�n�.�$�s�l�i�d�e�r�.�c�h�i�l�d�r�e�n�(�)�.�c�h�i�l�d�r�e�n�(�)�.�c�h�i�l�d�r�e�n�(�)�.�c�s�s�(�{�w�i�d�t�h�:�1�0�0�/�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�P�e�r�R�o�w�+�"�%�"�,�d�i�s�p�l�a�y�:�"�i�n�l�i�n�e�-�b�l�o�c�k�"�}�)�}�}�,�r�.�p�r�o�t�o�t�y�p�e�.�c�h�e�c�k�R�e�s�p�o�n�s�i�v�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�,�s�=�t�h�i�s�,�r�=�!�1�,�a�=�s�.�$�s�l�i�d�e�r�.�w�i�d�t�h�(�)�,�l�=�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�|�|�c�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�;�i�f�(�"�w�i�n�d�o�w�"�=�=�=�s�.�r�e�s�p�o�n�d�T�o�?�o�=�l�:�"�s�l�i�d�e�r�"�=�=�=�s�.�r�e�s�p�o�n�d�T�o�?�o�=�a�:�"�m�i�n�"�=�=�=�s�.�r�e�s�p�o�n�d�T�o�&�&�(�o�=�M�a�t�h�.�m�i�n�(�l�,�a�)�)�,�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�&�&�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�.�l�e�n�g�t�h�&�&�n�u�l�l�!�=�=�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�)�{�f�o�r�(�i� �i�n� �n�=�n�u�l�l�,�s�.�b�r�e�a�k�p�o�i�n�t�s�)�s�.�b�r�e�a�k�p�o�i�n�t�s�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�i�)�&�&�(�!�1�=�=�=�s�.�o�r�i�g�i�n�a�l�S�e�t�t�i�n�g�s�.�m�o�b�i�l�e�F�i�r�s�t�?�o�<�s�.�b�r�e�a�k�p�o�i�n�t�s�[�i�]�&�&�(�n�=�s�.�b�r�e�a�k�p�o�i�n�t�s�[�i�]�)�:�o�>�s�.�b�r�e�a�k�p�o�i�n�t�s�[�i�]�&�&�(�n�=�s�.�b�r�e�a�k�p�o�i�n�t�s�[�i�]�)�)�;�n�u�l�l�!�=�=�n�?�n�u�l�l�!�=�=�s�.�a�c�t�i�v�e�B�r�e�a�k�p�o�i�n�t�&�&�n�=�=�=�s�.�a�c�t�i�v�e�B�r�e�a�k�p�o�i�n�t�&�&�!�e�|�|�(�s�.�a�c�t�i�v�e�B�r�e�a�k�p�o�i�n�t�=�n�,�"�u�n�s�l�i�c�k�"�=�=�=�s�.�b�r�e�a�k�p�o�i�n�t�S�e�t�t�i�n�g�s�[�n�]�?�s�.�u�n�s�l�i�c�k�(�n�)�:�(�s�.�o�p�t�i�o�n�s�=�c�.�e�x�t�e�n�d�(�{�}�,�s�.�o�r�i�g�i�n�a�l�S�e�t�t�i�n�g�s�,�s�.�b�r�e�a�k�p�o�i�n�t�S�e�t�t�i�n�g�s�[�n�]�)�,�!�0�=�=�=�t�&�&�(�s�.�c�u�r�r�e�n�t�S�l�i�d�e�=�s�.�o�p�t�i�o�n�s�.�i�n�i�t�i�a�l�S�l�i�d�e�)�,�s�.�r�e�f�r�e�s�h�(�t�)�)�,�r�=�n�)�:�n�u�l�l�!�=�=�s�.�a�c�t�i�v�e�B�r�e�a�k�p�o�i�n�t�&�&�(�s�.�a�c�t�i�v�e�B�r�e�a�k�p�o�i�n�t�=�n�u�l�l�,�s�.�o�p�t�i�o�n�s�=�s�.�o�r�i�g�i�n�a�l�S�e�t�t�i�n�g�s�,�!�0�=�=�=�t�&�&�(�s�.�c�u�r�r�e�n�t�S�l�i�d�e�=�s�.�o�p�t�i�o�n�s�.�i�n�i�t�i�a�l�S�l�i�d�e�)�,�s�.�r�e�f�r�e�s�h�(�t�)�,�r�=�n�)�,�t�|�|�!�1�=�=�=�r�|�|�s�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�b�r�e�a�k�p�o�i�n�t�"�,�[�s�,�r�]�)�}�}�,�r�.�p�r�o�t�o�t�y�p�e�.�c�h�a�n�g�e�S�l�i�d�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�=�t�h�i�s�,�o�=�c�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�)�;�s�w�i�t�c�h�(�o�.�i�s�(�"�a�"�)�&�&�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�o�.�i�s�(�"�l�i�"�)�|�|�(�o�=�o�.�c�l�o�s�e�s�t�(�"�l�i�"�)�)�,�i�=�n�.�s�l�i�d�e�C�o�u�n�t�%�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�!�=�0�?�0�:�(�n�.�s�l�i�d�e�C�o�u�n�t�-�n�.�c�u�r�r�e�n�t�S�l�i�d�e�)�%�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�,�t�.�d�a�t�a�.�m�e�s�s�a�g�e�)�{�c�a�s�e�"�p�r�e�v�i�o�u�s�"�:�s�=�0�=�=�i�?�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�-�i�,�n�.�s�l�i�d�e�C�o�u�n�t�>�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�n�.�s�l�i�d�e�H�a�n�d�l�e�r�(�n�.�c�u�r�r�e�n�t�S�l�i�d�e�-�s�,�!�1�,�e�)�;�b�r�e�a�k�;�c�a�s�e�"�n�e�x�t�"�:�s�=�0�=�=�i�?�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�i�,�n�.�s�l�i�d�e�C�o�u�n�t�>�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�n�.�s�l�i�d�e�H�a�n�d�l�e�r�(�n�.�c�u�r�r�e�n�t�S�l�i�d�e�+�s�,�!�1�,�e�)�;�b�r�e�a�k�;�c�a�s�e�"�i�n�d�e�x�"�:�v�a�r� �s�=�0�=�=�=�t�.�d�a�t�a�.�i�n�d�e�x�?�0�:�t�.�d�a�t�a�.�i�n�d�e�x�|�|�o�.�i�n�d�e�x�(�)�*�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�;�n�.�s�l�i�d�e�H�a�n�d�l�e�r�(�n�.�c�h�e�c�k�N�a�v�i�g�a�b�l�e�(�s�)�,�!�1�,�e�)�,�o�.�c�h�i�l�d�r�e�n�(�)�.�t�r�i�g�g�e�r�(�"�f�o�c�u�s�"�)�;�b�r�e�a�k�;�d�e�f�a�u�l�t�:�r�e�t�u�r�n�}�}�,�r�.�p�r�o�t�o�t�y�p�e�.�c�h�e�c�k�N�a�v�i�g�a�b�l�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�g�e�t�N�a�v�i�g�a�b�l�e�I�n�d�e�x�e�s�(�)�,�i�=�0�;�i�f�(�t�>�e�[�e�.�l�e�n�g�t�h�-�1�]�)�t�=�e�[�e�.�l�e�n�g�t�h�-�1�]�;�e�l�s�e� �f�o�r�(�v�a�r� �n� �i�n� �e�)�{�i�f�(�t�<�e�[�n�]�)�{�t�=�i�;�b�r�e�a�k�}�i�=�e�[�n�]�}�r�e�t�u�r�n� �t�}�,�r�.�p�r�o�t�o�t�y�p�e�.�c�l�e�a�n�U�p�E�v�e�n�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�o�p�t�i�o�n�s�.�d�o�t�s�&�&�n�u�l�l�!�=�=�t�.�$�d�o�t�s�&�&�(�c�(�"�l�i�"�,�t�.�$�d�o�t�s�)�.�o�f�f�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�t�.�c�h�a�n�g�e�S�l�i�d�e�)�.�o�f�f�(�"�m�o�u�s�e�e�n�t�e�r�.�s�l�i�c�k�"�,�c�.�p�r�o�x�y�(�t�.�i�n�t�e�r�r�u�p�t�,�t�,�!�0�)�)�.�o�f�f�(�"�m�o�u�s�e�l�e�a�v�e�.�s�l�i�c�k�"�,�c�.�p�r�o�x�y�(�t�.�i�n�t�e�r�r�u�p�t�,�t�,�!�1�)�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�t�.�$�d�o�t�s�.�o�f�f�(�"�k�e�y�d�o�w�n�.�s�l�i�c�k�"�,�t�.�k�e�y�H�a�n�d�l�e�r�)�)�,�t�.
1�$�s�l�i�d�e�r�.�o�f�f�(�"�f�o�c�u�s�.�s�l�i�c�k� �b�l�u�r�.�s�l�i�c�k�"�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�r�r�o�w�s�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�t�.�$�p�r�e�v�A�r�r�o�w�&�&�t�.�$�p�r�e�v�A�r�r�o�w�.�o�f�f�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�t�.�c�h�a�n�g�e�S�l�i�d�e�)�,�t�.�$�n�e�x�t�A�r�r�o�w�&�&�t�.�$�n�e�x�t�A�r�r�o�w�.�o�f�f�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�t�.�c�h�a�n�g�e�S�l�i�d�e�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�(�t�.�$�p�r�e�v�A�r�r�o�w�&�&�t�.�$�p�r�e�v�A�r�r�o�w�.�o�f�f�(�"�k�e�y�d�o�w�n�.�s�l�i�c�k�"�,�t�.�k�e�y�H�a�n�d�l�e�r�)�,�t�.�$�n�e�x�t�A�r�r�o�w�&�&�t�.�$�n�e�x�t�A�r�r�o�w�.�o�f�f�(�"�k�e�y�d�o�w�n�.�s�l�i�c�k�"�,�t�.�k�e�y�H�a�n�d�l�e�r�)�)�)�,�t�.�$�l�i�s�t�.�o�f�f�(�"�t�o�u�c�h�s�t�a�r�t�.�s�l�i�c�k� �m�o�u�s�e�d�o�w�n�.�s�l�i�c�k�"�,�t�.�s�w�i�p�e�H�a�n�d�l�e�r�)�,�t�.�$�l�i�s�t�.�o�f�f�(�"�t�o�u�c�h�m�o�v�e�.�s�l�i�c�k� �m�o�u�s�e�m�o�v�e�.�s�l�i�c�k�"�,�t�.�s�w�i�p�e�H�a�n�d�l�e�r�)�,�t�.�$�l�i�s�t�.�o�f�f�(�"�t�o�u�c�h�e�n�d�.�s�l�i�c�k� �m�o�u�s�e�u�p�.�s�l�i�c�k�"�,�t�.�s�w�i�p�e�H�a�n�d�l�e�r�)�,�t�.�$�l�i�s�t�.�o�f�f�(�"�t�o�u�c�h�c�a�n�c�e�l�.�s�l�i�c�k� �m�o�u�s�e�l�e�a�v�e�.�s�l�i�c�k�"�,�t�.�s�w�i�p�e�H�a�n�d�l�e�r�)�,�t�.�$�l�i�s�t�.�o�f�f�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�t�.�c�l�i�c�k�H�a�n�d�l�e�r�)�,�c�(�d�o�c�u�m�e�n�t�)�.�o�f�f�(�t�.�v�i�s�i�b�i�l�i�t�y�C�h�a�n�g�e�,�t�.�v�i�s�i�b�i�l�i�t�y�)�,�t�.�c�l�e�a�n�U�p�S�l�i�d�e�E�v�e�n�t�s�(�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�t�.�$�l�i�s�t�.�o�f�f�(�"�k�e�y�d�o�w�n�.�s�l�i�c�k�"�,�t�.�k�e�y�H�a�n�d�l�e�r�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�f�o�c�u�s�O�n�S�e�l�e�c�t�&�&�c�(�t�.�$�s�l�i�d�e�T�r�a�c�k�)�.�c�h�i�l�d�r�e�n�(�)�.�o�f�f�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�t�.�s�e�l�e�c�t�H�a�n�d�l�e�r�)�,�c�(�w�i�n�d�o�w�)�.�o�f�f�(�"�o�r�i�e�n�t�a�t�i�o�n�c�h�a�n�g�e�.�s�l�i�c�k�.�s�l�i�c�k�-�"�+�t�.�i�n�s�t�a�n�c�e�U�i�d�,�t�.�o�r�i�e�n�t�a�t�i�o�n�C�h�a�n�g�e�)�,�c�(�w�i�n�d�o�w�)�.�o�f�f�(�"�r�e�s�i�z�e�.�s�l�i�c�k�.�s�l�i�c�k�-�"�+�t�.�i�n�s�t�a�n�c�e�U�i�d�,�t�.�r�e�s�i�z�e�)�,�c�(�"�[�d�r�a�g�g�a�b�l�e�!�=�t�r�u�e�]�"�,�t�.�$�s�l�i�d�e�T�r�a�c�k�)�.�o�f�f�(�"�d�r�a�g�s�t�a�r�t�"�,�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�)�,�c�(�w�i�n�d�o�w�)�.�o�f�f�(�"�l�o�a�d�.�s�l�i�c�k�.�s�l�i�c�k�-�"�+�t�.�i�n�s�t�a�n�c�e�U�i�d�,�t�.�s�e�t�P�o�s�i�t�i�o�n�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�c�l�e�a�n�U�p�S�l�i�d�e�E�v�e�n�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�$�l�i�s�t�.�o�f�f�(�"�m�o�u�s�e�e�n�t�e�r�.�s�l�i�c�k�"�,�c�.�p�r�o�x�y�(�t�.�i�n�t�e�r�r�u�p�t�,�t�,�!�0�)�)�,�t�.�$�l�i�s�t�.�o�f�f�(�"�m�o�u�s�e�l�e�a�v�e�.�s�l�i�c�k�"�,�c�.�p�r�o�x�y�(�t�.�i�n�t�e�r�r�u�p�t�,�t�,�!�1�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�c�l�e�a�n�U�p�R�o�w�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�0�<�t�h�i�s�.�o�p�t�i�o�n�s�.�r�o�w�s�&�&�(�(�t�=�t�h�i�s�.�$�s�l�i�d�e�s�.�c�h�i�l�d�r�e�n�(�)�.�c�h�i�l�d�r�e�n�(�)�)�.�r�e�m�o�v�e�A�t�t�r�(�"�s�t�y�l�e�"�)�,�t�h�i�s�.�$�s�l�i�d�e�r�.�e�m�p�t�y�(�)�.�a�p�p�e�n�d�(�t�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�c�l�i�c�k�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�!�1�=�=�=�t�h�i�s�.�s�h�o�u�l�d�C�l�i�c�k�&�&�(�t�.�s�t�o�p�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�(�)�,�t�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�,�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�d�e�s�t�r�o�y�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�e�.�a�u�t�o�P�l�a�y�C�l�e�a�r�(�)�,�e�.�t�o�u�c�h�O�b�j�e�c�t�=�{�}�,�e�.�c�l�e�a�n�U�p�E�v�e�n�t�s�(�)�,�c�(�"�.�s�l�i�c�k�-�c�l�o�n�e�d�"�,�e�.�$�s�l�i�d�e�r�)�.�d�e�t�a�c�h�(�)�,�e�.�$�d�o�t�s�&�&�e�.�$�d�o�t�s�.�r�e�m�o�v�e�(�)�,�e�.�$�p�r�e�v�A�r�r�o�w�&�&�e�.�$�p�r�e�v�A�r�r�o�w�.�l�e�n�g�t�h�&�&�(�e�.�$�p�r�e�v�A�r�r�o�w�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d� �s�l�i�c�k�-�a�r�r�o�w� �s�l�i�c�k�-�h�i�d�d�e�n�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n� �a�r�i�a�-�d�i�s�a�b�l�e�d� �t�a�b�i�n�d�e�x�"�)�.�c�s�s�(�"�d�i�s�p�l�a�y�"�,�"�"�)�,�e�.�h�t�m�l�E�x�p�r�.�t�e�s�t�(�e�.�o�p�t�i�o�n�s�.�p�r�e�v�A�r�r�o�w�)�&�&�e�.�$�p�r�e�v�A�r�r�o�w�.�r�e�m�o�v�e�(�)�)�,�e�.�$�n�e�x�t�A�r�r�o�w�&�&�e�.�$�n�e�x�t�A�r�r�o�w�.�l�e�n�g�t�h�&�&�(�e�.�$�n�e�x�t�A�r�r�o�w�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d� �s�l�i�c�k�-�a�r�r�o�w� �s�l�i�c�k�-�h�i�d�d�e�n�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n� �a�r�i�a�-�d�i�s�a�b�l�e�d� �t�a�b�i�n�d�e�x�"�)�.�c�s�s�(�"�d�i�s�p�l�a�y�"�,�"�"�)�,�e�.�h�t�m�l�E�x�p�r�.�t�e�s�t�(�e�.�o�p�t�i�o�n�s�.�n�e�x�t�A�r�r�o�w�)�&�&�e�.�$�n�e�x�t�A�r�r�o�w�.�r�e�m�o�v�e�(�)�)�,�e�.�$�s�l�i�d�e�s�&�&�(�e�.�$�s�l�i�d�e�s�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�s�l�i�d�e� �s�l�i�c�k�-�a�c�t�i�v�e� �s�l�i�c�k�-�c�e�n�t�e�r� �s�l�i�c�k�-�v�i�s�i�b�l�e� �s�l�i�c�k�-�c�u�r�r�e�n�t�"�
1)�.�r�e�m�o�v�e�A�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�d�a�t�a�-�s�l�i�c�k�-�i�n�d�e�x�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�c�(�t�h�i�s�)�.�a�t�t�r�(�"�s�t�y�l�e�"�,�c�(�t�h�i�s�)�.�d�a�t�a�(�"�o�r�i�g�i�n�a�l�S�t�y�l�i�n�g�"�)�)�}�)�,�e�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�.�d�e�t�a�c�h�(�)�,�e�.�$�s�l�i�d�e�T�r�a�c�k�.�d�e�t�a�c�h�(�)�,�e�.�$�l�i�s�t�.�d�e�t�a�c�h�(�)�,�e�.�$�s�l�i�d�e�r�.�a�p�p�e�n�d�(�e�.�$�s�l�i�d�e�s�)�)�,�e�.�c�l�e�a�n�U�p�R�o�w�s�(�)�,�e�.�$�s�l�i�d�e�r�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�s�l�i�d�e�r�"�)�,�e�.�$�s�l�i�d�e�r�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�i�n�i�t�i�a�l�i�z�e�d�"�)�,�e�.�$�s�l�i�d�e�r�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�d�o�t�t�e�d�"�)�,�e�.�u�n�s�l�i�c�k�e�d�=�!�0�,�t�|�|�e�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�d�e�s�t�r�o�y�"�,�[�e�]�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�d�i�s�a�b�l�e�T�r�a�n�s�i�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�{�}�;�e�[�t�h�i�s�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�]�=�"�"�,�(�!�1�=�=�=�t�h�i�s�.�o�p�t�i�o�n�s�.�f�a�d�e�?�t�h�i�s�.�$�s�l�i�d�e�T�r�a�c�k�:�t�h�i�s�.�$�s�l�i�d�e�s�.�e�q�(�t�)�)�.�c�s�s�(�e�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�f�a�d�e�S�l�i�d�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�;�!�1�=�=�=�i�.�c�s�s�T�r�a�n�s�i�t�i�o�n�s�?�(�i�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�c�s�s�(�{�z�I�n�d�e�x�:�i�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�}�)�,�i�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�a�n�i�m�a�t�e�(�{�o�p�a�c�i�t�y�:�1�}�,�i�.�o�p�t�i�o�n�s�.�s�p�e�e�d�,�i�.�o�p�t�i�o�n�s�.�e�a�s�i�n�g�,�e�)�)�:�(�i�.�a�p�p�l�y�T�r�a�n�s�i�t�i�o�n�(�t�)�,�i�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�c�s�s�(�{�o�p�a�c�i�t�y�:�1�,�z�I�n�d�e�x�:�i�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�}�)�,�e�&�&�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�i�.�d�i�s�a�b�l�e�T�r�a�n�s�i�t�i�o�n�(�t�)�,�e�.�c�a�l�l�(�)�}�,�i�.�o�p�t�i�o�n�s�.�s�p�e�e�d�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�f�a�d�e�S�l�i�d�e�O�u�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�!�1�=�=�=�e�.�c�s�s�T�r�a�n�s�i�t�i�o�n�s�?�e�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�a�n�i�m�a�t�e�(�{�o�p�a�c�i�t�y�:�0�,�z�I�n�d�e�x�:�e�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�-�2�}�,�e�.�o�p�t�i�o�n�s�.�s�p�e�e�d�,�e�.�o�p�t�i�o�n�s�.�e�a�s�i�n�g�)�:�(�e�.�a�p�p�l�y�T�r�a�n�s�i�t�i�o�n�(�t�)�,�e�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�c�s�s�(�{�o�p�a�c�i�t�y�:�0�,�z�I�n�d�e�x�:�e�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�-�2�}�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�f�i�l�t�e�r�S�l�i�d�e�s�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�F�i�l�t�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�n�u�l�l�!�=�=�t�&�&�(�e�.�$�s�l�i�d�e�s�C�a�c�h�e�=�e�.�$�s�l�i�d�e�s�,�e�.�u�n�l�o�a�d�(�)�,�e�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�.�d�e�t�a�c�h�(�)�,�e�.�$�s�l�i�d�e�s�C�a�c�h�e�.�f�i�l�t�e�r�(�t�)�.�a�p�p�e�n�d�T�o�(�e�.�$�s�l�i�d�e�T�r�a�c�k�)�,�e�.�r�e�i�n�i�t�(�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�f�o�c�u�s�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�=�t�h�i�s�;�i�.�$�s�l�i�d�e�r�.�o�f�f�(�"�f�o�c�u�s�.�s�l�i�c�k� �b�l�u�r�.�s�l�i�c�k�"�)�.�o�n�(�"�f�o�c�u�s�.�s�l�i�c�k�"�,�"�*�"�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�c�(�t�h�i�s�)�;�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�i�.�o�p�t�i�o�n�s�.�p�a�u�s�e�O�n�F�o�c�u�s�&�&�e�.�i�s�(�"�:�f�o�c�u�s�"�)�&�&�(�i�.�f�o�c�u�s�s�e�d�=�!�0�,�i�.�a�u�t�o�P�l�a�y�(�)�)�}�,�0�)�}�)�.�o�n�(�"�b�l�u�r�.�s�l�i�c�k�"�,�"�*�"�,�f�u�n�c�t�i�o�n�(�t�)�{�c�(�t�h�i�s�)�,�i�.�o�p�t�i�o�n�s�.�p�a�u�s�e�O�n�F�o�c�u�s�&�&�(�i�.�f�o�c�u�s�s�e�d�=�!�1�,�i�.�a�u�t�o�P�l�a�y�(�)�)�}�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�e�t�C�u�r�r�e�n�t�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�C�u�r�r�e�n�t�S�l�i�d�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�c�u�r�r�e�n�t�S�l�i�d�e�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�e�t�D�o�t�C�o�u�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�,�e�=�0�,�i�=�0�,�n�=�0�;�i�f�(�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�)�i�f�(�t�.�s�l�i�d�e�C�o�u�n�t�<�=�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�+�+�n�;�e�l�s�e� �f�o�r�(�;�e�<�t�.�s�l�i�d�e�C�o�u�n�t�;�)�+�+�n�,�e�=�i�+�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�,�i�+�=�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�<�=�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�;�e�l�s�e� �i�f�(�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�)�n�=�t�.�s�l�i�d�e�C�o�u�n�t�;�e�l�s�e� �i�f�(�t�.�o�p�t�i�o�n�s�.�a�s�N�a�v�F�o�r�)�f�o�r�(�;�e�<�t�.�s�l�i�d�e�C�o�u�n�t�;�)�+�+�n�,�e�=�i�+�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�,�i�+�=�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�<�=�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�;�e�l�s�e� �n�=�1�+�M�a�t�h�.�c�e�i�l�(�(�t�.�s�l�i�d�e�C�o�u�n�t�-�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�/�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�)�;�r�e�t�u�r�n� �n�-�1�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�e�t�L�e�f�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�=�t�h�i�s�,�o�=�0�;�r�e�t�u�r�n� �n�.�s�l�i�d�e�O�f�f�s�e�t�=�0�,�e�=�n�.�$�s�l�i�d�e�s�.�f�i�r�s�t�(�)�.�o�u�t�e�r
1�H�e�i�g�h�t�(�!�0�)�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�?�(�n�.�s�l�i�d�e�C�o�u�n�t�>�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�n�.�s�l�i�d�e�O�f�f�s�e�t�=�n�.�s�l�i�d�e�W�i�d�t�h�*�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�*�-�1�,�i�=�-�1�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�&�&�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�(�2�=�=�=�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�i�=�-�1�.�5�:�1�=�=�=�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�i�=�-�2�)�)�,�o�=�e�*�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�*�i�)�,�n�.�s�l�i�d�e�C�o�u�n�t�%�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�!�=�0�&�&�t�+�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�>�n�.�s�l�i�d�e�C�o�u�n�t�&�&�n�.�s�l�i�d�e�C�o�u�n�t�>�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�o�=�t�>�n�.�s�l�i�d�e�C�o�u�n�t�?�(�n�.�s�l�i�d�e�O�f�f�s�e�t�=�(�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�-�(�t�-�n�.�s�l�i�d�e�C�o�u�n�t�)�)�*�n�.�s�l�i�d�e�W�i�d�t�h�*�-�1�,�(�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�-�(�t�-�n�.�s�l�i�d�e�C�o�u�n�t�)�)�*�e�*�-�1�)�:�(�n�.�s�l�i�d�e�O�f�f�s�e�t�=�n�.�s�l�i�d�e�C�o�u�n�t�%�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�*�n�.�s�l�i�d�e�W�i�d�t�h�*�-�1�,�n�.�s�l�i�d�e�C�o�u�n�t�%�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�*�e�*�-�1�)�)�)�:�t�+�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�>�n�.�s�l�i�d�e�C�o�u�n�t�&�&�(�n�.�s�l�i�d�e�O�f�f�s�e�t�=�(�t�+�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�-�n�.�s�l�i�d�e�C�o�u�n�t�)�*�n�.�s�l�i�d�e�W�i�d�t�h�,�o�=�(�t�+�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�-�n�.�s�l�i�d�e�C�o�u�n�t�)�*�e�)�,�n�.�s�l�i�d�e�C�o�u�n�t�<�=�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�o�=�n�.�s�l�i�d�e�O�f�f�s�e�t�=�0�)�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�n�.�s�l�i�d�e�C�o�u�n�t�<�=�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�n�.�s�l�i�d�e�O�f�f�s�e�t�=�n�.�s�l�i�d�e�W�i�d�t�h�*�M�a�t�h�.�f�l�o�o�r�(�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�/�2�-�n�.�s�l�i�d�e�W�i�d�t�h�*�n�.�s�l�i�d�e�C�o�u�n�t�/�2�:�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�?�n�.�s�l�i�d�e�O�f�f�s�e�t�+�=�n�.�s�l�i�d�e�W�i�d�t�h�*�M�a�t�h�.�f�l�o�o�r�(�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�/�2�)�-�n�.�s�l�i�d�e�W�i�d�t�h�:�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�(�n�.�s�l�i�d�e�O�f�f�s�e�t�=�0�,�n�.�s�l�i�d�e�O�f�f�s�e�t�+�=�n�.�s�l�i�d�e�W�i�d�t�h�*�M�a�t�h�.�f�l�o�o�r�(�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�/�2�)�)�,�i�=�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�?�t�*�n�.�s�l�i�d�e�W�i�d�t�h�*�-�1�+�n�.�s�l�i�d�e�O�f�f�s�e�t�:�t�*�e�*�-�1�+�o�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�v�a�r�i�a�b�l�e�W�i�d�t�h�&�&�(�e�=�n�.�s�l�i�d�e�C�o�u�n�t�<�=�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�|�|�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�?�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�e�q�(�t�)�:�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�e�q�(�t�+�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�i�=�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�r�t�l�?�e�[�0�]�?�-�1�*�(�n�.�$�s�l�i�d�e�T�r�a�c�k�.�w�i�d�t�h�(�)�-�e�[�0�]�.�o�f�f�s�e�t�L�e�f�t�-�e�.�w�i�d�t�h�(�)�)�:�0�:�e�[�0�]�?�-�1�*�e�[�0�]�.�o�f�f�s�e�t�L�e�f�t�:�0�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�(�e�=�n�.�s�l�i�d�e�C�o�u�n�t�<�=�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�|�|�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�?�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�e�q�(�t�)�:�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�e�q�(�t�+�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�+�1�)�,�i�=�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�r�t�l�?�e�[�0�]�?�-�1�*�(�n�.�$�s�l�i�d�e�T�r�a�c�k�.�w�i�d�t�h�(�)�-�e�[�0�]�.�o�f�f�s�e�t�L�e�f�t�-�e�.�w�i�d�t�h�(�)�)�:�0�:�e�[�0�]�?�-�1�*�e�[�0�]�.�o�f�f�s�e�t�L�e�f�t�:�0�,�i�+�=�(�n�.�$�l�i�s�t�.�w�i�d�t�h�(�)�-�e�.�o�u�t�e�r�W�i�d�t�h�(�)�)�/�2�)�)�,�i�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�e�t�O�p�t�i�o�n�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�G�e�t�O�p�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�s�[�t�]�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�e�t�N�a�v�i�g�a�b�l�e�I�n�d�e�x�e�s�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�t�h�i�s�,�e�=�0�,�i�=�0�,�n�=�[�]�,�o�=�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�?�t�.�s�l�i�d�e�C�o�u�n�t�:�(�e�=�-�1�*�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�,�i�=�-�1�*�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�,�2�*�t�.�s�l�i�d�e�C�o�u�n�t�)�;�e�<�o�;�)�n�.�p�u�s�h�(�e�)�,�e�=�i�+�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�,�i�+�=�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�<�=�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�;�r�e�t�u�r�n� �n�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�e�t�S�l�i�c�k�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�e�t�S�l�i�d�e�C�o�u�n�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �o�,�s�=�t�h�i�s�,�t�=�!�0�=�=�=�s�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�?�M�a�t�h�.�f�l�o�o�r�(�s�.�$�l�i�s�t�.�w�i�d�t�h�(�)�/�2�)�:�0�,�r�=�-�1�*�s�.�s�w�i�p�e�L�e�f�t�+�t�;�r�e�t�u�r�n�!�0�=�=�=�s�.�o�p�t�i�o�n�s�.�s�w�i�p�e�T�o�S�l�i�d�e�?�(�s�.�$�s�l�i�d�e�T�r�a�c�k�.�f�i�n�d�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�c�(�e�)�.�o�u�t�e�r
1�W�i�d�t�h�(�)�,�n�=�e�.�o�f�f�s�e�t�L�e�f�t�;�i�f�(�!�0�!�=�=�s�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�(�n�+�=�i�/�2�)�,�r�<�n�+�i�)�r�e�t�u�r�n� �o�=�e�,�!�1�}�)�,�M�a�t�h�.�a�b�s�(�c�(�o�)�.�a�t�t�r�(�"�d�a�t�a�-�s�l�i�c�k�-�i�n�d�e�x�"�)�-�s�.�c�u�r�r�e�n�t�S�l�i�d�e�)�|�|�1�)�:�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�}�,�r�.�p�r�o�t�o�t�y�p�e�.�g�o�T�o�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�G�o�T�o�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�c�h�a�n�g�e�S�l�i�d�e�(�{�d�a�t�a�:�{�m�e�s�s�a�g�e�:�"�i�n�d�e�x�"�,�i�n�d�e�x�:�p�a�r�s�e�I�n�t�(�t�)�}�}�,�e�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�c�(�e�.�$�s�l�i�d�e�r�)�.�h�a�s�C�l�a�s�s�(�"�s�l�i�c�k�-�i�n�i�t�i�a�l�i�z�e�d�"�)�|�|�(�c�(�e�.�$�s�l�i�d�e�r�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�i�n�i�t�i�a�l�i�z�e�d�"�)�,�e�.�b�u�i�l�d�R�o�w�s�(�)�,�e�.�b�u�i�l�d�O�u�t�(�)�,�e�.�s�e�t�P�r�o�p�s�(�)�,�e�.�s�t�a�r�t�L�o�a�d�(�)�,�e�.�l�o�a�d�S�l�i�d�e�r�(�)�,�e�.�i�n�i�t�i�a�l�i�z�e�E�v�e�n�t�s�(�)�,�e�.�u�p�d�a�t�e�A�r�r�o�w�s�(�)�,�e�.�u�p�d�a�t�e�D�o�t�s�(�)�,�e�.�c�h�e�c�k�R�e�s�p�o�n�s�i�v�e�(�!�0�)�,�e�.�f�o�c�u�s�H�a�n�d�l�e�r�(�)�)�,�t�&�&�e�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�i�n�i�t�"�,�[�e�]�)�,�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�e�.�i�n�i�t�A�D�A�(�)�,�e�.�o�p�t�i�o�n�s�.�a�u�t�o�p�l�a�y�&�&�(�e�.�p�a�u�s�e�d�=�!�1�,�e�.�a�u�t�o�P�l�a�y�(�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�A�D�A�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�=�t�h�i�s�,�n�=�M�a�t�h�.�c�e�i�l�(�i�.�s�l�i�d�e�C�o�u�n�t�/�i�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�o�=�i�.�g�e�t�N�a�v�i�g�a�b�l�e�I�n�d�e�x�e�s�(�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �0�<�=�t�&�&�t�<�i�.�s�l�i�d�e�C�o�u�n�t�}�)�;�i�.�$�s�l�i�d�e�s�.�a�d�d�(�i�.�$�s�l�i�d�e�T�r�a�c�k�.�f�i�n�d�(�"�.�s�l�i�c�k�-�c�l�o�n�e�d�"�)�)�.�a�t�t�r�(�{�"�a�r�i�a�-�h�i�d�d�e�n�"�:�"�t�r�u�e�"�,�t�a�b�i�n�d�e�x�:�"�-�1�"�}�)�.�f�i�n�d�(�"�a�,� �i�n�p�u�t�,� �b�u�t�t�o�n�,� �s�e�l�e�c�t�"�)�.�a�t�t�r�(�{�t�a�b�i�n�d�e�x�:�"�-�1�"�}�)�,�n�u�l�l�!�=�=�i�.�$�d�o�t�s�&�&�(�i�.�$�s�l�i�d�e�s�.�n�o�t�(�i�.�$�s�l�i�d�e�T�r�a�c�k�.�f�i�n�d�(�"�.�s�l�i�c�k�-�c�l�o�n�e�d�"�)�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�o�.�i�n�d�e�x�O�f�(�t�)�;�c�(�t�h�i�s�)�.�a�t�t�r�(�{�r�o�l�e�:�"�t�a�b�p�a�n�e�l�"�,�i�d�:�"�s�l�i�c�k�-�s�l�i�d�e�"�+�i�.�i�n�s�t�a�n�c�e�U�i�d�+�t�,�t�a�b�i�n�d�e�x�:�-�1�}�)�,�-�1�!�=�=�e�&�&�(�t�=�"�s�l�i�c�k�-�s�l�i�d�e�-�c�o�n�t�r�o�l�"�+�i�.�i�n�s�t�a�n�c�e�U�i�d�+�e�,�c�(�"�#�"�+�t�)�.�l�e�n�g�t�h�&�&�c�(�t�h�i�s�)�.�a�t�t�r�(�{�"�a�r�i�a�-�d�e�s�c�r�i�b�e�d�b�y�"�:�t�}�)�)�}�)�,�i�.�$�d�o�t�s�.�a�t�t�r�(�"�r�o�l�e�"�,�"�t�a�b�l�i�s�t�"�)�.�f�i�n�d�(�"�l�i�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�o�[�t�]�;�c�(�t�h�i�s�)�.�a�t�t�r�(�{�r�o�l�e�:�"�p�r�e�s�e�n�t�a�t�i�o�n�"�}�)�,�c�(�t�h�i�s�)�.�f�i�n�d�(�"�b�u�t�t�o�n�"�)�.�f�i�r�s�t�(�)�.�a�t�t�r�(�{�r�o�l�e�:�"�t�a�b�"�,�i�d�:�"�s�l�i�c�k�-�s�l�i�d�e�-�c�o�n�t�r�o�l�"�+�i�.�i�n�s�t�a�n�c�e�U�i�d�+�t�,�"�a�r�i�a�-�c�o�n�t�r�o�l�s�"�:�"�s�l�i�c�k�-�s�l�i�d�e�"�+�i�.�i�n�s�t�a�n�c�e�U�i�d�+�e�,�"�a�r�i�a�-�l�a�b�e�l�"�:�t�+�1�+�"� �o�f� �"�+�n�,�"�a�r�i�a�-�s�e�l�e�c�t�e�d�"�:�n�u�l�l�,�t�a�b�i�n�d�e�x�:�"�-�1�"�}�)�}�)�.�e�q�(�i�.�c�u�r�r�e�n�t�S�l�i�d�e�)�.�f�i�n�d�(�"�b�u�t�t�o�n�"�)�.�a�t�t�r�(�{�"�a�r�i�a�-�s�e�l�e�c�t�e�d�"�:�"�t�r�u�e�"�,�t�a�b�i�n�d�e�x�:�"�0�"�}�)�.�e�n�d�(�)�)�;�f�o�r�(�v�a�r� �t�=�i�.�c�u�r�r�e�n�t�S�l�i�d�e�,�e�=�t�+�i�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�;�t�<�e�;�t�+�+�)�i�.�o�p�t�i�o�n�s�.�f�o�c�u�s�O�n�C�h�a�n�g�e�?�i�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�a�t�t�r�(�{�t�a�b�i�n�d�e�x�:�"�0�"�}�)�:�i�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�r�e�m�o�v�e�A�t�t�r�(�"�t�a�b�i�n�d�e�x�"�)�;�i�.�a�c�t�i�v�a�t�e�A�D�A�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�A�r�r�o�w�E�v�e�n�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�r�r�o�w�s�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�t�.�$�p�r�e�v�A�r�r�o�w�.�o�f�f�(�"�c�l�i�c�k�.�s�l�i�c�k�"�)�.�o�n�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�{�m�e�s�s�a�g�e�:�"�p�r�e�v�i�o�u�s�"�}
1�,�t�.�c�h�a�n�g�e�S�l�i�d�e�)�,�t�.�$�n�e�x�t�A�r�r�o�w�.�o�f�f�(�"�c�l�i�c�k�.�s�l�i�c�k�"�)�.�o�n�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�{�m�e�s�s�a�g�e�:�"�n�e�x�t�"�}�,�t�.�c�h�a�n�g�e�S�l�i�d�e�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�(�t�.�$�p�r�e�v�A�r�r�o�w�.�o�n�(�"�k�e�y�d�o�w�n�.�s�l�i�c�k�"�,�t�.�k�e�y�H�a�n�d�l�e�r�)�,�t�.�$�n�e�x�t�A�r�r�o�w�.�o�n�(�"�k�e�y�d�o�w�n�.�s�l�i�c�k�"�,�t�.�k�e�y�H�a�n�d�l�e�r�)�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�D�o�t�E�v�e�n�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�d�o�t�s�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�c�(�"�l�i�"�,�t�.�$�d�o�t�s�)�.�o�n�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�{�m�e�s�s�a�g�e�:�"�i�n�d�e�x�"�}�,�t�.�c�h�a�n�g�e�S�l�i�d�e�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�t�.�$�d�o�t�s�.�o�n�(�"�k�e�y�d�o�w�n�.�s�l�i�c�k�"�,�t�.�k�e�y�H�a�n�d�l�e�r�)�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�d�o�t�s�&�&�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�p�a�u�s�e�O�n�D�o�t�s�H�o�v�e�r�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�c�(�"�l�i�"�,�t�.�$�d�o�t�s�)�.�o�n�(�"�m�o�u�s�e�e�n�t�e�r�.�s�l�i�c�k�"�,�c�.�p�r�o�x�y�(�t�.�i�n�t�e�r�r�u�p�t�,�t�,�!�0�)�)�.�o�n�(�"�m�o�u�s�e�l�e�a�v�e�.�s�l�i�c�k�"�,�c�.�p�r�o�x�y�(�t�.�i�n�t�e�r�r�u�p�t�,�t�,�!�1�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�S�l�i�d�e�E�v�e�n�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�o�p�t�i�o�n�s�.�p�a�u�s�e�O�n�H�o�v�e�r�&�&�(�t�.�$�l�i�s�t�.�o�n�(�"�m�o�u�s�e�e�n�t�e�r�.�s�l�i�c�k�"�,�c�.�p�r�o�x�y�(�t�.�i�n�t�e�r�r�u�p�t�,�t�,�!�0�)�)�,�t�.�$�l�i�s�t�.�o�n�(�"�m�o�u�s�e�l�e�a�v�e�.�s�l�i�c�k�"�,�c�.�p�r�o�x�y�(�t�.�i�n�t�e�r�r�u�p�t�,�t�,�!�1�)�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�i�a�l�i�z�e�E�v�e�n�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�i�n�i�t�A�r�r�o�w�E�v�e�n�t�s�(�)�,�t�.�i�n�i�t�D�o�t�E�v�e�n�t�s�(�)�,�t�.�i�n�i�t�S�l�i�d�e�E�v�e�n�t�s�(�)�,�t�.�$�l�i�s�t�.�o�n�(�"�t�o�u�c�h�s�t�a�r�t�.�s�l�i�c�k� �m�o�u�s�e�d�o�w�n�.�s�l�i�c�k�"�,�{�a�c�t�i�o�n�:�"�s�t�a�r�t�"�}�,�t�.�s�w�i�p�e�H�a�n�d�l�e�r�)�,�t�.�$�l�i�s�t�.�o�n�(�"�t�o�u�c�h�m�o�v�e�.�s�l�i�c�k� �m�o�u�s�e�m�o�v�e�.�s�l�i�c�k�"�,�{�a�c�t�i�o�n�:�"�m�o�v�e�"�}�,�t�.�s�w�i�p�e�H�a�n�d�l�e�r�)�,�t�.�$�l�i�s�t�.�o�n�(�"�t�o�u�c�h�e�n�d�.�s�l�i�c�k� �m�o�u�s�e�u�p�.�s�l�i�c�k�"�,�{�a�c�t�i�o�n�:�"�e�n�d�"�}�,�t�.�s�w�i�p�e�H�a�n�d�l�e�r�)�,�t�.�$�l�i�s�t�.�o�n�(�"�t�o�u�c�h�c�a�n�c�e�l�.�s�l�i�c�k� �m�o�u�s�e�l�e�a�v�e�.�s�l�i�c�k�"�,�{�a�c�t�i�o�n�:�"�e�n�d�"�}�,�t�.�s�w�i�p�e�H�a�n�d�l�e�r�)�,�t�.�$�l�i�s�t�.�o�n�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�t�.�c�l�i�c�k�H�a�n�d�l�e�r�)�,�c�(�d�o�c�u�m�e�n�t�)�.�o�n�(�t�.�v�i�s�i�b�i�l�i�t�y�C�h�a�n�g�e�,�c�.�p�r�o�x�y�(�t�.�v�i�s�i�b�i�l�i�t�y�,�t�)�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�t�.�$�l�i�s�t�.�o�n�(�"�k�e�y�d�o�w�n�.�s�l�i�c�k�"�,�t�.�k�e�y�H�a�n�d�l�e�r�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�f�o�c�u�s�O�n�S�e�l�e�c�t�&�&�c�(�t�.�$�s�l�i�d�e�T�r�a�c�k�)�.�c�h�i�l�d�r�e�n�(�)�.�o�n�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�t�.�s�e�l�e�c�t�H�a�n�d�l�e�r�)�,�c�(�w�i�n�d�o�w�)�.�o�n�(�"�o�r�i�e�n�t�a�t�i�o�n�c�h�a�n�g�e�.�s�l�i�c�k�.�s�l�i�c�k�-�"�+�t�.�i�n�s�t�a�n�c�e�U�i�d�,�c�.�p�r�o�x�y�(�t�.�o�r�i�e�n�t�a�t�i�o�n�C�h�a�n�g�e�,�t�)�)�,�c�(�w�i�n�d�o�w�)�.�o�n�(�"�r�e�s�i�z�e�.�s�l�i�c�k�.�s�l�i�c�k�-�"�+�t�.�i�n�s�t�a�n�c�e�U�i�d�,�c�.�p�r�o�x�y�(�t�.�r�e�s�i�z�e�,�t�)�)�,�c�(�"�[�d�r�a�g�g�a�b�l�e�!�=�t�r�u�e�]�"�,�t�.�$�s�l�i�d�e�T�r�a�c�k�)�.�o�n�(�"�d�r�a�g�s�t�a�r�t�"�,�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�)�,�c�(�w�i�n�d�o�w�)�.�o�n�(�"�l�o�a�d�.�s�l�i�c�k�.�s�l�i�c�k�-�"�+�t�.�i�n�s�t�a�n�c�e�U�i�d�,�t�.�s�e�t�P�o�s�i�t�i�o�n�)�,�c�(�t�.�s�e�t�P�o�s�i�t�i�o�n�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�U�I�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�r�r�o�w�s�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�t�.�$�p�r�e�v�A�r�r�o�w�.�s�h�o�w�(�)�,�t�.�$�n�e�x�t�A�r�r�o�w�.�s�h�o�w�(�)�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�d�o�t�s�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�t�.�$�d�o�t�s�.�s�h�o�w�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�k�e�y�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�t�.�t�a�r�g�e�t�.�t�a�g�N�a�m�e�.�m�a�t�c�h�(�"�T�E�X�T�A�R�E�A�|�I�N�P�U�T�|�S�E�L�E�C�T�"�)�|�|�(�3�7�=�=�=�t�.�k�e�y�C�o�d�e�&�&�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�?�e�.�c�h�a�n�g�e�S�l�i�d�e�(�{�d�a�t�a�:�{�m�e�s�s�a�g�e�:�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�r�t�l�?�"�n�e�x�t�"�:�"�p�r�e�v�i�o�u�s�"�}�}�)�:�3�9�=�=�=�t�.�k�e�y�C�o�d�e�&�&�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�e�.�c�h�a�n�g�e�S�l�i�d�e�(�{�d�a�t�a�:�{�m�e�s�s�a�g�e�:�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�r�t�l�?�"�p�r�e�v�i�o�u�s�"�:�"�n�e�x�t�"�}�}�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�l�a�z�y�L�o�a�d�=�f�u�n�c�t�i�o�n�(�)�{�f�u�n�c�t�i�o�n� �t�(�t�)�{�c�(�"�i�m�g�[�d�a�t�a�-�l�a�z�y�]�"�,�t�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�c�(�t�h�i�s�)�,�e�=�c�(�t�h�i�s�)�.�a�t�t�r�(�"�d�a�t�a�-�l�a�z�y�"�)�,�i�=�c�(�t�h�i�s�)�.�a�t�t�r�(�"�d�a�t�a�-�s�r�c�s�e�t�"�)�,�n�=�c�(�t�h�i�s�)�.�a�t�t�r�(�"�d�a�t�a�-�s�i�z�e�s�"�)�|�|�s�.�$�s�l�i�d�e�r�.�a�t�t�r�(�"�d�a�t�a�-�s�i�z�e�s�"�)�,�o�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�m�g�"�)�;�o�.�o�n�l�o�a�d�=�f�u�n�c�t�i�o�n�(�)�{�t�.�a�n�i�m�a�t�e�(�{�o�p�a�c�i�t�y�:�0�}�,�1�0�0�,�f�u�n�c�t�i�o�n�(�)�{�i�&�&�(�t�.�a�t�t�r�(�"�s�r�c�s�e�t�"�,�i�)�,�n�&�&�t�.�a�t�t�r�(�"�s�i�z�e�s�"�,�n�)�)�,�t�.
1�a�t�t�r�(�"�s�r�c�"�,�e�)�.�a�n�i�m�a�t�e�(�{�o�p�a�c�i�t�y�:�1�}�,�2�0�0�,�f�u�n�c�t�i�o�n�(�)�{�t�.�r�e�m�o�v�e�A�t�t�r�(�"�d�a�t�a�-�l�a�z�y� �d�a�t�a�-�s�r�c�s�e�t� �d�a�t�a�-�s�i�z�e�s�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�l�o�a�d�i�n�g�"�)�}�)�,�s�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�l�a�z�y�L�o�a�d�e�d�"�,�[�s�,�t�,�e�]�)�}�)�}�,�o�.�o�n�e�r�r�o�r�=�f�u�n�c�t�i�o�n�(�)�{�t�.�r�e�m�o�v�e�A�t�t�r�(�"�d�a�t�a�-�l�a�z�y�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�l�o�a�d�i�n�g�"�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�l�a�z�y�l�o�a�d�-�e�r�r�o�r�"�)�,�s�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�l�a�z�y�L�o�a�d�E�r�r�o�r�"�,�[�s�,�t�,�e�]�)�}�,�o�.�s�r�c�=�e�}�)�}�v�a�r� �e�,�i�,�n�,�s�=�t�h�i�s�;�i�f�(�!�0�=�=�=�s�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�?�n�=�!�0�=�=�=�s�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�?�(�i�=�s�.�c�u�r�r�e�n�t�S�l�i�d�e�+�(�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�/�2�+�1�)�)�+�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�+�2�:�(�i�=�M�a�t�h�.�m�a�x�(�0�,�s�.�c�u�r�r�e�n�t�S�l�i�d�e�-�(�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�/�2�+�1�)�)�,�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�/�2�+�1�+�2�+�s�.�c�u�r�r�e�n�t�S�l�i�d�e�)�:�(�i�=�s�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�?�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�+�s�.�c�u�r�r�e�n�t�S�l�i�d�e�:�s�.�c�u�r�r�e�n�t�S�l�i�d�e�,�n�=�M�a�t�h�.�c�e�i�l�(�i�+�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�!�0�=�=�=�s�.�o�p�t�i�o�n�s�.�f�a�d�e�&�&�(�0�<�i�&�&�i�-�-�,�n�<�=�s�.�s�l�i�d�e�C�o�u�n�t�&�&�n�+�+�)�)�,�e�=�s�.�$�s�l�i�d�e�r�.�f�i�n�d�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�s�l�i�c�e�(�i�,�n�)�,�"�a�n�t�i�c�i�p�a�t�e�d�"�=�=�=�s�.�o�p�t�i�o�n�s�.�l�a�z�y�L�o�a�d�)�f�o�r�(�v�a�r� �o�=�i�-�1�,�r�=�n�,�a�=�s�.�$�s�l�i�d�e�r�.�f�i�n�d�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�,�l�=�0�;�l�<�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�;�l�+�+�)�o�<�0�&�&�(�o�=�s�.�s�l�i�d�e�C�o�u�n�t�-�1�)�,�e�=�(�e�=�e�.�a�d�d�(�a�.�e�q�(�o�)�)�)�.�a�d�d�(�a�.�e�q�(�r�)�)�,�o�-�-�,�r�+�+�;�t�(�e�)�,�s�.�s�l�i�d�e�C�o�u�n�t�<�=�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�t�(�s�.�$�s�l�i�d�e�r�.�f�i�n�d�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�)�:�s�.�c�u�r�r�e�n�t�S�l�i�d�e�>�=�s�.�s�l�i�d�e�C�o�u�n�t�-�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�t�(�s�.�$�s�l�i�d�e�r�.�f�i�n�d�(�"�.�s�l�i�c�k�-�c�l�o�n�e�d�"�)�.�s�l�i�c�e�(�0�,�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�)�:�0�=�=�=�s�.�c�u�r�r�e�n�t�S�l�i�d�e�&�&�t�(�s�.�$�s�l�i�d�e�r�.�f�i�n�d�(�"�.�s�l�i�c�k�-�c�l�o�n�e�d�"�)�.�s�l�i�c�e�(�-�1�*�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�l�o�a�d�S�l�i�d�e�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�s�e�t�P�o�s�i�t�i�o�n�(�)�,�t�.�$�s�l�i�d�e�T�r�a�c�k�.�c�s�s�(�{�o�p�a�c�i�t�y�:�1�}�)�,�t�.�$�s�l�i�d�e�r�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�l�o�a�d�i�n�g�"�)�,�t�.�i�n�i�t�U�I�(�)�,�"�p�r�o�g�r�e�s�s�i�v�e�"�=�=�=�t�.�o�p�t�i�o�n�s�.�l�a�z�y�L�o�a�d�&�&�t�.�p�r�o�g�r�e�s�s�i�v�e�L�a�z�y�L�o�a�d�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�n�e�x�t�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�N�e�x�t�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�c�h�a�n�g�e�S�l�i�d�e�(�{�d�a�t�a�:�{�m�e�s�s�a�g�e�:�"�n�e�x�t�"�}�}�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�o�r�i�e�n�t�a�t�i�o�n�C�h�a�n�g�e�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�c�h�e�c�k�R�e�s�p�o�n�s�i�v�e�(�)�,�t�h�i�s�.�s�e�t�P�o�s�i�t�i�o�n�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�p�a�u�s�e�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�P�a�u�s�e�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�a�u�t�o�P�l�a�y�C�l�e�a�r�(�)�,�t�h�i�s�.�p�a�u�s�e�d�=�!�0�}�,�r�.�p�r�o�t�o�t�y�p�e�.�p�l�a�y�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�P�l�a�y�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�a�u�t�o�P�l�a�y�(�)�,�t�.�o�p�t�i�o�n�s�.�a�u�t�o�p�l�a�y�=�!�0�,�t�.�p�a�u�s�e�d�=�!�1�,�t�.�f�o�c�u�s�s�e�d�=�!�1�,�t�.�i�n�t�e�r�r�u�p�t�e�d�=�!�1�}�,�r�.�p�r�o�t�o�t�y�p�e�.�p�o�s�t�S�l�i�d�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�!�e�.�u�n�s�l�i�c�k�e�d�&�&�(�e�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�a�f�t�e�r�C�h�a�n�g�e�"�,�[�e�,�t�]�)�,�e�.�a�n�i�m�a�t�i�n�g�=�!�1�,�e�.�s�l�i�d�e�C�o�u�n�t�>�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�e�.�s�e�t�P�o�s�i�t�i�o�n�(�)�,�e�.�s�w�i�p�e�L�e�f�t�=�n�u�l�l�,�e�.�o�p�t�i�o�n�s�.�a�u�t�o�p�l�a�y�&�&�e�.�a�u�t�o�P�l�a�y�(�)�,�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�a�c�c�e�s�s�i�b�i�l�i�t�y�&�&�(�e�.�i�n�i�t�A�D�A�(�)�,�e�.�o�p�t�i�o�n�s�.�f�o�c�u�s�O�n�C�h�a�n�g�e�)�)�&�&�c�(�e�.�$�s�l�i�d�e�s�.�g�e�t�(�e�.�c�u�r�r�e�n�t�S�l�i�d�e�)�)�.�a�t�t�r�(�"�t�a�b�i�n�d�e�x�"�,�0�)�.�f�o�c�u�s�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�p�r�e�v�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�P
1�r�e�v�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�c�h�a�n�g�e�S�l�i�d�e�(�{�d�a�t�a�:�{�m�e�s�s�a�g�e�:�"�p�r�e�v�i�o�u�s�"�}�}�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�=�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�p�r�o�g�r�e�s�s�i�v�e�L�a�z�y�L�o�a�d�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�t�|�|�1�;�v�a�r� �e�,�i�,�n�,�o�,�s�=�t�h�i�s�,�r�=�c�(�"�i�m�g�[�d�a�t�a�-�l�a�z�y�]�"�,�s�.�$�s�l�i�d�e�r�)�;�r�.�l�e�n�g�t�h�?�(�e�=�r�.�f�i�r�s�t�(�)�,�i�=�e�.�a�t�t�r�(�"�d�a�t�a�-�l�a�z�y�"�)�,�n�=�e�.�a�t�t�r�(�"�d�a�t�a�-�s�r�c�s�e�t�"�)�,�o�=�e�.�a�t�t�r�(�"�d�a�t�a�-�s�i�z�e�s�"�)�|�|�s�.�$�s�l�i�d�e�r�.�a�t�t�r�(�"�d�a�t�a�-�s�i�z�e�s�"�)�,�(�r�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�m�g�"�)�)�.�o�n�l�o�a�d�=�f�u�n�c�t�i�o�n�(�)�{�n�&�&�(�e�.�a�t�t�r�(�"�s�r�c�s�e�t�"�,�n�)�,�o�&�&�e�.�a�t�t�r�(�"�s�i�z�e�s�"�,�o�)�)�,�e�.�a�t�t�r�(�"�s�r�c�"�,�i�)�.�r�e�m�o�v�e�A�t�t�r�(�"�d�a�t�a�-�l�a�z�y� �d�a�t�a�-�s�r�c�s�e�t� �d�a�t�a�-�s�i�z�e�s�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�l�o�a�d�i�n�g�"�)�,�!�0�=�=�=�s�.�o�p�t�i�o�n�s�.�a�d�a�p�t�i�v�e�H�e�i�g�h�t�&�&�s�.�s�e�t�P�o�s�i�t�i�o�n�(�)�,�s�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�l�a�z�y�L�o�a�d�e�d�"�,�[�s�,�e�,�i�]�)�,�s�.�p�r�o�g�r�e�s�s�i�v�e�L�a�z�y�L�o�a�d�(�)�}�,�r�.�o�n�e�r�r�o�r�=�f�u�n�c�t�i�o�n�(�)�{�t�<�3�?�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�s�.�p�r�o�g�r�e�s�s�i�v�e�L�a�z�y�L�o�a�d�(�t�+�1�)�}�,�5�0�0�)�:�(�e�.�r�e�m�o�v�e�A�t�t�r�(�"�d�a�t�a�-�l�a�z�y�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�l�o�a�d�i�n�g�"�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�l�a�z�y�l�o�a�d�-�e�r�r�o�r�"�)�,�s�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�l�a�z�y�L�o�a�d�E�r�r�o�r�"�,�[�s�,�e�,�i�]�)�,�s�.�p�r�o�g�r�e�s�s�i�v�e�L�a�z�y�L�o�a�d�(�)�)�}�,�r�.�s�r�c�=�i�)�:�s�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�a�l�l�I�m�a�g�e�s�L�o�a�d�e�d�"�,�[�s�]�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�r�e�f�r�e�s�h�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�,�i�=�e�.�s�l�i�d�e�C�o�u�n�t�-�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�;�!�e�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�e�.�c�u�r�r�e�n�t�S�l�i�d�e�>�i�&�&�(�e�.�c�u�r�r�e�n�t�S�l�i�d�e�=�i�)�,�e�.�s�l�i�d�e�C�o�u�n�t�<�=�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�e�.�c�u�r�r�e�n�t�S�l�i�d�e�=�0�)�,�i�=�e�.�c�u�r�r�e�n�t�S�l�i�d�e�,�e�.�d�e�s�t�r�o�y�(�!�0�)�,�c�.�e�x�t�e�n�d�(�e�,�e�.�i�n�i�t�i�a�l�s�,�{�c�u�r�r�e�n�t�S�l�i�d�e�:�i�}�)�,�e�.�i�n�i�t�(�)�,�t�|�|�e�.�c�h�a�n�g�e�S�l�i�d�e�(�{�d�a�t�a�:�{�m�e�s�s�a�g�e�:�"�i�n�d�e�x�"�,�i�n�d�e�x�:�i�}�}�,�!�1�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�r�e�g�i�s�t�e�r�B�r�e�a�k�p�o�i�n�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�=�t�h�i�s�,�o�=�n�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�|�|�n�u�l�l�;�i�f�(�"�a�r�r�a�y�"�=�=�=�c�.�t�y�p�e�(�o�)�&�&�o�.�l�e�n�g�t�h�)�{�f�o�r�(�t� �i�n� �n�.�r�e�s�p�o�n�d�T�o�=�n�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�d�T�o�|�|�"�w�i�n�d�o�w�"�,�o�)�i�f�(�i�=�n�.�b�r�e�a�k�p�o�i�n�t�s�.�l�e�n�g�t�h�-�1�,�o�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�t�)�)�{�f�o�r�(�e�=�o�[�t�]�.�b�r�e�a�k�p�o�i�n�t�;�0�<�=�i�;�)�n�.�b�r�e�a�k�p�o�i�n�t�s�[�i�]�&�&�n�.�b�r�e�a�k�p�o�i�n�t�s�[�i�]�=�=�=�e�&�&�n�.�b�r�e�a�k�p�o�i�n�t�s�.�s�p�l�i�c�e�(�i�,�1�)�,�i�-�-�;�n�.�b�r�e�a�k�p�o�i�n�t�s�.�p�u�s�h�(�e�)�,�n�.�b�r�e�a�k�p�o�i�n�t�S�e�t�t�i�n�g�s�[�e�]�=�o�[�t�]�.�s�e�t�t�i�n�g�s�}�n�.�b�r�e�a�k�p�o�i�n�t�s�.�s�o�r�t�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �n�.�o�p�t�i�o�n�s�.�m�o�b�i�l�e�F�i�r�s�t�?�t�-�e�:�e�-�t�}�)�}�}�,�r�.�p�r�o�t�o�t�y�p�e�.�r�e�i�n�i�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�$�s�l�i�d�e�s�=�t�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�s�l�i�d�e�"�)�,�t�.�s�l�i�d�e�C�o�u�n�t�=�t�.�$�s�l�i�d�e�s�.�l�e�n�g�t�h�,�t�.�c�u�r�r�e�n�t�S�l�i�d�e�>�=�t�.�s�l�i�d�e�C�o�u�n�t�&�&�0�!�=�=�t�.�c�u�r�r�e�n�t�S�l�i�d�e�&�&�(�t�.�c�u�r�r�e�n�t�S�l�i�d�e�=�t�.�c�u�r�r�e�n�t�S�l�i�d�e�-�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�)�,�t�.�s�l�i�d�e�C�o�u�n�t�<�=�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�t�.�c�u�r�r�e�n�t�S�l�i�d�e�=�0�)�,�t�.�r�e�g�i�s�t�e�r�B�r�e�a�k�p�o�i�n�t�s�(�)�,�t�.
1�s�e�t�P�r�o�p�s�(�)�,�t�.�s�e�t�u�p�I�n�f�i�n�i�t�e�(�)�,�t�.�b�u�i�l�d�A�r�r�o�w�s�(�)�,�t�.�u�p�d�a�t�e�A�r�r�o�w�s�(�)�,�t�.�i�n�i�t�A�r�r�o�w�E�v�e�n�t�s�(�)�,�t�.�b�u�i�l�d�D�o�t�s�(�)�,�t�.�u�p�d�a�t�e�D�o�t�s�(�)�,�t�.�i�n�i�t�D�o�t�E�v�e�n�t�s�(�)�,�t�.�c�l�e�a�n�U�p�S�l�i�d�e�E�v�e�n�t�s�(�)�,�t�.�i�n�i�t�S�l�i�d�e�E�v�e�n�t�s�(�)�,�t�.�c�h�e�c�k�R�e�s�p�o�n�s�i�v�e�(�!�1�,�!�0�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�f�o�c�u�s�O�n�S�e�l�e�c�t�&�&�c�(�t�.�$�s�l�i�d�e�T�r�a�c�k�)�.�c�h�i�l�d�r�e�n�(�)�.�o�n�(�"�c�l�i�c�k�.�s�l�i�c�k�"�,�t�.�s�e�l�e�c�t�H�a�n�d�l�e�r�)�,�t�.�s�e�t�S�l�i�d�e�C�l�a�s�s�e�s�(�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�.�c�u�r�r�e�n�t�S�l�i�d�e�?�t�.�c�u�r�r�e�n�t�S�l�i�d�e�:�0�)�,�t�.�s�e�t�P�o�s�i�t�i�o�n�(�)�,�t�.�f�o�c�u�s�H�a�n�d�l�e�r�(�)�,�t�.�p�a�u�s�e�d�=�!�t�.�o�p�t�i�o�n�s�.�a�u�t�o�p�l�a�y�,�t�.�a�u�t�o�P�l�a�y�(�)�,�t�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�r�e�I�n�i�t�"�,�[�t�]�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�r�e�s�i�z�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�c�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�!�=�=�t�.�w�i�n�d�o�w�W�i�d�t�h�&�&�(�c�l�e�a�r�T�i�m�e�o�u�t�(�t�.�w�i�n�d�o�w�D�e�l�a�y�)�,�t�.
1�w�i�n�d�o�w�D�e�l�a�y�=�w�i�n�d�o�w�.�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�t�.�w�i�n�d�o�w�W�i�d�t�h�=�c�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�,�t�.�c�h�e�c�k�R�e�s�p�o�n�s�i�v�e�(�)�,�t�.�u�n�s�l�i�c�k�e�d�|�|�t�.�s�e�t�P�o�s�i�t�i�o�n�(�)�}�,�5�0�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�r�e�m�o�v�e�S�l�i�d�e�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�R�e�m�o�v�e�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�=�t�h�i�s�;�r�e�t�u�r�n� �t�=�"�b�o�o�l�e�a�n�"�=�=�t�y�p�e�o�f� �t�?�!�0�=�=�=�(�e�=�t�)�?�0�:�n�.�s�l�i�d�e�C�o�u�n�t�-�1�:�!�0�=�=�=�e�?�-�-�t�:�t�,�!�(�n�.�s�l�i�d�e�C�o�u�n�t�<�1�|�|�t�<�0�|�|�t�>�n�.�s�l�i�d�e�C�o�u�n�t�-�1�)�&�&�(�n�.�u�n�l�o�a�d�(�)�,�(�!�0�=�=�=�i�?�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�)�:�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�.�e�q�(�t�)�)�.�r�e�m�o�v�e�(�)�,�n�.�$�s�l�i�d�e�s�=�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�,�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�.�d�e�t�a�c�h�(�)�,�n�.�$�s�l�i�d�e�T�r�a�c�k�.�a�p�p�e�n�d�(�n�.�$�s�l�i�d�e�s�)�,�n�.�$�s�l�i�d�e�s�C�a�c�h�e�=�n�.�$�s�l�i�d�e�s�,�v�o�i�d� �n�.�r�e�i�n�i�t�(�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�C�S�S�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�=�t�h�i�s�,�o�=�{�}�;�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�r�t�l�&�&�(�t�=�-�t�)�,�e�=�"�l�e�f�t�"�=�=�n�.�p�o�s�i�t�i�o�n�P�r�o�p�?�M�a�t�h�.�c�e�i�l�(�t�)�+�"�p�x�"�:�"�0�p�x�"�,�i�=�"�t�o�p�"�=�=�n�.�p�o�s�i�t�i�o�n�P�r�o�p�?�M�a�t�h�.�c�e�i�l�(�t�)�+�"�p�x�"�:�"�0�p�x�"�,�o�[�n�.�p�o�s�i�t�i�o�n�P�r�o�p�]�=�t�,�!�1�!�=�=�n�.�t�r�a�n�s�f�o�r�m�s�E�n�a�b�l�e�d�&�&�(�!�(�o�=�{�}�)�=�=�=�n�.�c�s�s�T�r�a�n�s�i�t�i�o�n�s�?�o�[�n�.�a�n�i�m�T�y�p�e�]�=�"�t�r�a�n�s�l�a�t�e�(�"�+�e�+�"�,� �"�+�i�+�"�)�"�:�o�[�n�.�a�n�i�m�T�y�p�e�]�=�"�t�r�a�n�s�l�a�t�e�3�d�(�"�+�e�+�"�,� �"�+�i�+�"�,� �0�p�x�)�"�)�,�n�.�$�s�l�i�d�e�T�r�a�c�k�.�c�s�s�(�o�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�D�i�m�e�n�s�i�o�n�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�,�e�=�(�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�?�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�t�.�$�l�i�s�t�.�c�s�s�(�{�p�a�d�d�i�n�g�:�"�0�p�x� �"�+�t�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�P�a�d�d�i�n�g�}�)�:�(�t�.�$�l�i�s�t�.�h�e�i�g�h�t�(�t�.�$�s�l�i�d�e�s�.�f�i�r�s�t�(�)�.�o�u�t�e�r�H�e�i�g�h�t�(�!�0�)�*�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�t�.�$�l�i�s�t�.�c�s�s�(�{�p�a�d�d�i�n�g�:�t�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�P�a�d�d�i�n�g�+�"� �0�p�x�"�}�)�)�,�t�.�l�i�s�t�W�i�d�t�h�=�t�.�$�l�i�s�t�.�w�i�d�t�h�(�)�,�t�.�l�i�s�t�H�e�i�g�h�t�=�t�.�$�l�i�s�t�.�h�e�i�g�h�t�(�)�,�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�&�&�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�v�a�r�i�a�b�l�e�W�i�d�t�h�?�(�t�.�s�l�i�d�e�W�i�d�t�h�=�M�a�t�h�.�c�e�i�l�(�t�.�l�i�s�t�W�i�d�t�h�/�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�t�.�$�s�l�i�d�e�T�r�a�c�k�.�w�i�d�t�h�(�M�a�t�h�.�c�e�i�l�(�t�.�s�l�i�d�e�W�i�d�t�h�*�t�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�l�e�n�g�t�h�)�)�)�:�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�v�a�r�i�a�b�l�e�W�i�d�t�h�?�t�.�$�s�l�i�d�e�T�r�a�c�k�.�w�i�d�t�h�(�5�e�3�*�t�.�s�l�i�d�e�C�o�u�n�t�)�:�(�t�.�s�l�i�d�e�W�i�d�t�h�=�M�a�t�h�.�c�e�i�l�(�t�.�l�i�s�t�W�i�d�t�h�)�,�t�.�$�s�l�i�d�e�T�r�a�c�k�.�h�e�i�g�h�t�(�M�a�t�h�.�c�e�i�l�(�t�.�$�s�l�i�d�e�s�.�f�i�r�s�t�(�)�.�o�u�t�e�r�H�e�i�g�h�t�(�!�0�)�*�t�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�l�e�n�g�t�h�)�)�)�,�t�.�$�s�l�i�d�e�s�.�f�i�r�s�t�(�)�.�o�u�t�e�r�W�i�d�t�h�(�!�0�)�-�t�.�$�s�l�i�d�e�s�.�f�i�r�s�t�(�)�.�w�i�d�t�h�(�)�)�;�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�v�a�r�i�a�b�l�e�W�i�d�t�h�&�&�t�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�w�i�d�t�h�(�t�.�s�l�i�d�e�W�i�d�t�h�-�e�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�F�a�d�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�,�n�=�t�h�i�s�;�n�.�$�s�l�i�d�e�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�=�n�.�s�l�i�d�e�W�i�d�t�h�*�t�*�-�1�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�r�t�l�?�c�(�e�)�.�c�s�s�(�{�p�o�s�i�t�i�o�n�:�"�r�e�l�a�t�i�v�e�"�,�r�i�g�h�t�:�i�,�t�o�p�:�0�,�z�I�n�d�e�x�:�n�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�-�2�,�o�p�a�c�i�t�y�:�0�}�)�:�c�(�e�)�.�c�s�s�(�{�p�o�s�i�t�i�o�n�:�"�r�e�l�a�t�i�v�e�"�,�l�e�f�t�:�i�,�t�o�p�:�0�,�z�I�n�d�e�x�:�n�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�-�2�,�o�p�a�c�i�t�y�:�0�}�)�}�)�,�n�.�$�s�l�i�d�e�s�.�e�q�(�n�.�c�u�r�r�e�n�t�S�l�i�d�e�)�.�c�s�s�(�{�z�I�n�d�e�x�:�n�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�-�1�,�o�p�a�c�i�t�y�:�1�}�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�H�e�i�g�h�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�=�t�h�i�s�;�1�=�=�=�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�a�d�a�
1p�t�i�v�e�H�e�i�g�h�t�&�&�!�1�=�=�=�e�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�&�&�(�t�=�e�.�$�s�l�i�d�e�s�.�e�q�(�e�.�c�u�r�r�e�n�t�S�l�i�d�e�)�.�o�u�t�e�r�H�e�i�g�h�t�(�!�0�)�,�e�.�$�l�i�s�t�.�c�s�s�(�"�h�e�i�g�h�t�"�,�t�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�O�p�t�i�o�n�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�S�e�t�O�p�t�i�o�n�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�,�o�,�s�=�t�h�i�s�,�r�=�!�1�;�i�f�(�"�o�b�j�e�c�t�"�=�=�=�c�.�t�y�p�e�(�a�r�g�u�m�e�n�t�s�[�0�]�)�?�(�i�=�a�r�g�u�m�e�n�t�s�[�0�]�,�r�=�a�r�g�u�m�e�n�t�s�[�1�]�,�o�=�"�m�u�l�t�i�p�l�e�"�)�:�"�s�t�r�i�n�g�"�=�=�=�c�.�t�y�p�e�(�a�r�g�u�m�e�n�t�s�[�0�]�)�&�&�(�i�=�a�r�g�u�m�e�n�t�s�[�0�]�,�n�=�a�r�g�u�m�e�n�t�s�[�1�]�,�r�=�a�r�g�u�m�e�n�t�s�[�2�]�,�"�r�e�s�p�o�n�s�i�v�e�"�=�=�=�a�r�g�u�m�e�n�t�s�[�0�]�&�&�"�a�r�r�a�y�"�=�=�=�c�.�t�y�p�e�(�a�r�g�u�m�e�n�t�s�[�1�]�)�?�o�=�"�r�e�s�p�o�n�s�i�v�e�"�:�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�1�]�&�&�(�o�=�"�s�i�n�g�l�e�"�)�)�,�"�s�i�n�g�l�e�"�=�=�=�o�)�s�.�o�p�t�i�o�n�s�[�i�]�=�n�;�e�l�s�e� �i�f�(�"�m�u�l�t�i�p�l�e�"�=�=�=�o�)�c�.�e�a�c�h�(�i�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�s�.�o�p�t�i�o�n�s�[�t�]�=�e�}�)�;�e�l�s�e� �i�f�(�"�r�e�s�p�o�n�s�i�v�e�"�=�=�=�o�)�f�o�r�(�e� �i�n� �n�)�i�f�(�"�a�r�r�a�y�"�!�=�=�c�.�t�y�p�e�(�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�)�)�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�=�[�n�[�e�]�]�;�e�l�s�e�{�f�o�r�(�t�=�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�.�l�e�n�g�t�h�-�1�;�0�<�=�t�;�)�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�[�t�]�.�b�r�e�a�k�p�o�i�n�t�=�=�=�n�[�e�]�.�b�r�e�a�k�p�o�i�n�t�&�&�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�.�s�p�l�i�c�e�(�t�,�1�)�,�t�-�-�;�s�.�o�p�t�i�o�n�s�.�r�e�s�p�o�n�s�i�v�e�.�p�u�s�h�(�n�[�e�]�)�}�r�&�&�(�s�.�u�n�l�o�a�d�(�)�,�s�.�r�e�i�n�i�t�(�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�P�o�s�i�t�i�o�n�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�.�s�e�t�D�i�m�e�n�s�i�o�n�s�(�)�,�t�.�s�e�t�H�e�i�g�h�t�(�)�,�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�f�a�d�e�?�t�.�s�e�t�C�S�S�(�t�.�g�e�t�L�e�f�t�(�t�.�c�u�r�r�e�n�t�S�l�i�d�e�)�)�:�t�.�s�e�t�F�a�d�e�(�)�,�t�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�s�e�t�P�o�s�i�t�i�o�n�"�,�[�t�]�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�P�r�o�p�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�,�e�=�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�t�y�l�e�;�t�.�p�o�s�i�t�i�o�n�P�r�o�p�=�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�?�"�t�o�p�"�:�"�l�e�f�t�"�,�"�t�o�p�"�=�=�=�t�.�p�o�s�i�t�i�o�n�P�r�o�p�?�t�.�$�s�l�i�d�e�r�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�v�e�r�t�i�c�a�l�"�)�:�t�.�$�s�l�i�d�e�r�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�v�e�r�t�i�c�a�l�"�)�,�v�o�i�d� �0�=�=�=�e�.�W�e�b�k�i�t�T�r�a�n�s�i�t�i�o�n�&�&�v�o�i�d� �0�=�=�=�e�.�M�o�z�T�r�a�n�s�i�t�i�o�n�&�&�v�o�i�d� �0�=�=�=�e�.�m�s�T�r�a�n�s�i�t�i�o�n�|�|�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�u�s�e�C�S�S�&�&�(�t�.�c�s�s�T�r�a�n�s�i�t�i�o�n�s�=�!�0�)�,�t�.�o�p�t�i�o�n�s�.�f�a�d�e�&�&�(�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�?�t�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�<�3�&�&�(�t�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�=�3�)�:�t�.�o�p�t�i�o�n�s�.�z�I�n�d�e�x�=�t�.�d�e�f�a�u�l�t�s�.�z�I�n�d�e�x�)�,�v�o�i�d� �0�!�=�=�e�.�O�T�r�a�n�s�f�o�r�m�&�&�(�t�.�a�n�i�m�T�y�p�e�=�"�O�T�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�f�o�r�m�T�y�p�e�=�"�-�o�-�t�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�=�"�O�T�r�a�n�s�i�t�i�o�n�"�,�v�o�i�d� �0�=�=�=�e�.�p�e�r�s�p�e�c�t�i�v�e�P�r�o�p�e�r�t�y�&�&�v�o�i�d� �0�=�=�=�e�.�w�e�b�k�i�t�P�e�r�s�p�e�c�t�i�v�e�&�&�(�t�.�a�n�i�m�T�y�p�e�=�!�1�)�)�,�v�o�i�d� �0�!�=�=�e�.�M�o�z�T�r�a�n�s�f�o�r�m�&�&�(�t�.�a�n�i�m�T�y�p�e�=�"�M�o�z�T�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�f�o�r�m�T�y�p�e�=�"�-�m�o�z�-�t�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�=�"�M�o�z�T�r�a�n�s�i�t�i�o�n�"�,�v�o�i�d� �0�=�=�=�e�.�p�e�r�s�p�e�c�t�i�v�e�P�r�o�p�e�r�t�y�&�&�v�o�i�d� �0�=�=�=�e�.�M�o�z�P�e�r�s�p�e�c�t�i�v�e�&�&�(�t�.�a�n�i�m�T�y�p�e�=�!�1�)�)�,�v�o�i�d� �0�!�=�=�e�.�w�e�b�k�i�t�T�r�a�n�s�f�o�r�m�&�&�(�t�.�a�n�i�m�T�y�p�e�=�"�w�e�b�k�i�t�T�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�f�o�r�m�T�y�p�e�=�"�-�w�e�b�k�i�t�-�t�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�=�"�w�e�b�k�i�t�T�r�a�n�s�i�t�i�o�n�"�,�v�o�i�d� �0�=�=�=�e�.�p�e�r�s�p�e�c�t�i�v�e�P�r�o�p�e�r�t�y�&�&�v�o�i�d� �0�=�=�=�e�.�w�e�b�k�i�t�P�e�r�s�p�e�c�t�i�v�e�&�&�(�t�.�a�n�i�m�T�y�p�e�=�!�1�)�)�,�v�o�i�d� �0�!�=�=�e�.�m�s�T�r�a�n�s�f�o�r�m�&�&�(�t�.�a�n�i�m�T�y�p�e�=�"�m�s�T�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�f�o�r�m�T�y�p�e�=�"�-�m�s�-�t�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�=�"�m�s�T�r�a�n�s�i�t�i�o�n�"�,�v�o�i�d� �0�=�=�=�e�.�m�s�T�r�a�n�s�f�o�r�m�&�&�(�t�.�a�n�i�m�T�y�p�e�=�!�1�)�)�,�v�o�i�d� �0�!�=�=�e�.�t�r�a�n�s�f�o�r�m�&�&�!�1�!�=�=�t�.�a�n�i�m�T�y�p�e�&�&�(�t�.�a�n�i�m�T�y�p�e�=�"�t�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�f�o�r�m�T�y�p�e�=�"�t�r�a�n�s�f�o�r�m�"�,�t�.�t�r�a�n�s�i�t�i�o�n�T�y�p�e�=�"�t�r�a�n�s�i�t�i�o�n�"�)�,�t�.�t�r�a�n�s�f�o�r�m�s�E�n�a�b�l�e�d�=�t�.�o�p�t�i�o�n�s�.�u�s�e�T�r�a�n�s�f�o�r�m�&�&�n�u�l�l�!�=�=�t�.�a�n�i�m�T�y�p�e�&�&�!�1�!�=�=�t�.�a�n�i�m�T�y�p�e�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�S�l�i�d�e�C�l�a�s�s�e�s�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�,�o�=�t�h�i�s�,�s�=�o�.�$�s�l�i�d�e�r�.�f�i�n�d�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e� �s�l�i�c�k�-�c�e�n�t�e�r� �s�l�i�c�k�-�c�u�r�r�e�n�t�"�
1)�.�a�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n�"�,�"�t�r�u�e�"�)�;�o�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�c�u�r�r�e�n�t�"�)�,�!�0�=�=�=�o�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�?�(�i�=�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�%�2�=�=�0�?�1�:�0�,�n�=�M�a�t�h�.�f�l�o�o�r�(�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�/�2�)�,�!�0�=�=�=�o�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�(�n�<�=�t�&�&�t�<�=�o�.�s�l�i�d�e�C�o�u�n�t�-�1�-�n�?�o�.�$�s�l�i�d�e�s�.�s�l�i�c�e�(�t�-�n�+�i�,�t�+�n�+�1�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�.�a�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n�"�,�"�f�a�l�s�e�"�)�:�(�e�=�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�+�t�,�s�.�s�l�i�c�e�(�e�-�n�+�1�+�i�,�e�+�n�+�2�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�.�a�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n�"�,�"�f�a�l�s�e�"�)�)�,�0�=�=�=�t�?�s�.�e�q�(�s�.�l�e�n�g�t�h�-�1�-�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�c�e�n�t�e�r�"�)�:�t�=�=�=�o�.�s�l�i�d�e�C�o�u�n�t�-�1�&�&�s�.�e�q�(�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�c�e�n�t�e�r�"�)�)�,�o�.�$�s�l�i�d�e�s�.�e�q�(�t�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�c�e�n�t�e�r�"�)�)�:�0�<�=�t�&�&�t�<�=�o�.�s�l�i�d�e�C�o�u�n�t�-�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�o�.�$�s�l�i�d�e�s�.�s�l�i�c�e�(�t�,�t�+�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�.�a�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n�"�,�"�f�a�l�s�e�"�)�:�s�.�l�e�n�g�t�h�<�=�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�s�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�.�a�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n�"�,�"�f�a�l�s�e�"�)�:�(�i�=�o�.�s�l�i�d�e�C�o�u�n�t�%�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�,�e�=�!�0�=�=�=�o�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�?�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�+�t�:�t�,�(�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�=�=�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�&�&�o�.�s�l�i�d�e�C�o�u�n�t�-�t�<�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�s�.�s�l�i�c�e�(�e�-�(�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�-�i�)�,�e�+�i�)�:�s�.�s�l�i�c�e�(�e�,�e�+�o�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�.�a�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n�"�,�"�f�a�l�s�e�"�)�)�,�"�o�n�d�e�m�a�n�d�"�!�=�=�o�.�o�p�t�i�o�n�s�.�l�a�z�y�L�o�a�d�&�&�"�a�n�t�i�c�i�p�a�t�e�d�"�!�=�=�o�.�o�p�t�i�o�n�s�.�l�a�z�y�L�o�a�d�|�|�o�.�l�a�z�y�L�o�a�d�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�t�u�p�I�n�f�i�n�i�t�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�=�t�h�i�s�;�i�f�(�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�f�a�d�e�&�&�(�n�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�=�!�1�)�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�f�a�d�e�&�&�(�e�=�n�u�l�l�,�n�.�s�l�i�d�e�C�o�u�n�t�>�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�)�{�f�o�r�(�i�=�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�?�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�+�1�:�n�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�,�t�=�n�.�s�l�i�d�e�C�o�u�n�t�;�t�>�n�.�s�l�i�d�e�C�o�u�n�t�-�i�;�-�-�t�)�c�(�n�.�$�s�l�i�d�e�s�[�e�=�t�-�1�]�)�.�c�l�o�n�e�(�!�0�)�.�a�t�t�r�(�"�i�d�"�,�"�"�)�.�a�t�t�r�(�"�d�a�t�a�-�s�l�i�c�k�-�i�n�d�e�x�"�,�e�-�n�.�s�l�i�d�e�C�o�u�n�t�)�.�p�r�e�p�e�n�d�T�o�(�n�.�$�s�l�i�d�e�T�r�a�c�k�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�c�l�o�n�e�d�"�)�;�f�o�r�(�t�=�0�;�t�<�i�+�n�.�s�l�i�d�e�C�o�u�n�t�;�t�+�=�1�)�e�=�t�,�c�(�n�.�$�s�l�i�d�e�s�[�e�]�)�.�c�l�o�n�e�(�!�0�)�.�a�t�t�r�(�"�i�d�"�,�"�"�)�.�a�t�t�r�(�"�d�a�t�a�-�s�l�i�c�k�-�i�n�d�e�x�"�,�e�+�n�.�s�l�i�d�e�C�o�u�n�t�)�.�a�p�p�e�n�d�T�o�(�n�.�$�s�l�i�d�e�T�r�a�c�k�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�c�l�o�n�e�d�"�)�;�n�.�$�s�l�i�d�e�T�r�a�c�k�.�f�i�n�d�(�"�.�s�l�i�c�k�-�c�l�o�n�e�d�"�)�.�f�i�n�d�(�"�[�i�d�]�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�c�(�t�h�i�s�)�.�a�t�t�r�(�"�i�d�"�,�"�"�)�}�)�}�}�,�r�.�p�r�o�t�o�t�y�p�e�.�i�n�t�e�r�r�u�p�t�=�f�u�n�c�t�i�o�n�(�t�)�{�t�|�|�t�h�i�s�.�a�u�t�o�P�l�a�y�(�)�,�t�h�i�s�.�i�n�t�e�r�r�u�p�t�e�d�=�t�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�e�l�e�c�t�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�c�(�t�.�t�a�r�g�e�t�)�.�i�s�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�?�c�(�t�.�t�a�r�g�e�t�)�:�c�(�t�.�t�a�r�g�e�t�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�c�k�-�s�l�i�d�e�"�)�,�t�=�p�a�r�s�e�I�n�t�(�t�.�a�t�t�r�(�"�d�a�t�a�-�s�l�i�c�k�-�i�n�d�e�x�"�)�)�|�|�0�;�r�e�t�u�r�n� �t�h�i�s�.�s�l�i�d�e�C�o�u�n�t�<�=�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�v�o�i�d� �t�h�i�s�.�s�l�i�d�e�H�a�n�d�l�e�r�(�t�,�!�1�,�!�0�)�:�v�o�i�d� �t�h�i�s�.�s�l�i�d�e�H�a�n�d�l�e�r�(�t�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�d�e�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�=�t�h�i�s�;
1�i�f�(�e�=�e�|�|�!�1�,�!�(�!�0�=�=�=�r�.�a�n�i�m�a�t�i�n�g�&�&�!�0�=�=�=�r�.�o�p�t�i�o�n�s�.�w�a�i�t�F�o�r�A�n�i�m�a�t�e�|�|�!�0�=�=�=�r�.�o�p�t�i�o�n�s�.�f�a�d�e�&�&�r�.�c�u�r�r�e�n�t�S�l�i�d�e�=�=�=�t�)�)�r�e�t�u�r�n�!�1�=�=�=�e�&�&�r�.�a�s�N�a�v�F�o�r�(�t�)�,�n�=�t�,�e�=�r�.�g�e�t�L�e�f�t�(�n�)�,�s�=�r�.�g�e�t�L�e�f�t�(�r�.�c�u�r�r�e�n�t�S�l�i�d�e�)�,�r�.�c�u�r�r�e�n�t�L�e�f�t�=�n�u�l�l�=�=�=�r�.�s�w�i�p�e�L�e�f�t�?�s�:�r�.�s�w�i�p�e�L�e�f�t�,�!�1�=�=�=�r�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�!�1�=�=�=�r�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�(�t�<�0�|�|�t�>�r�.�g�e�t�D�o�t�C�o�u�n�t�(�)�*�r�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�)�|�|�!�1�=�=�=�r�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�!�0�=�=�=�r�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�&�&�(�t�<�0�|�|�t�>�r�.�s�l�i�d�e�C�o�u�n�t�-�r�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�)�?�v�o�i�d�(�!�1�=�=�=�r�.�o�p�t�i�o�n�s�.�f�a�d�e�&�&�(�n�=�r�.�c�u�r�r�e�n�t�S�l�i�d�e�,�!�0�!�=�=�i�&�&�r�.�s�l�i�d�e�C�o�u�n�t�>�r�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�r�.�a�n�i�m�a�t�e�S�l�i�d�e�(�s�,�f�u�n�c�t�i�o�n�(�)�{�r�.�p�o�s�t�S�l�i�d�e�(�n�)�}�)�:�r�.�p�o�s�t�S�l�i�d�e�(�n�)�)�)�:�(�r�.�o�p�t�i�o�n�s�.�a�u�t�o�p�l�a�y�&�&�c�l�e�a�r�I�n�t�e�r�v�a�l�(�r�.�a�u�t�o�P�l�a�y�T�i�m�e�r�)�,�o�=�n�<�0�?�r�.�s�l�i�d�e�C�o�u�n�t�%�r�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�!�=�0�?�r�.�s�l�i�d�e�C�o�u�n�t�-�r�.�s�l�i�d�e�C�o�u�n�t�%�r�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�r�.�s�l�i�d�e�C�o�u�n�t�+�n�:�n�>�=�r�.�s�l�i�d�e�C�o�u�n�t�?�r�.�s�l�i�d�e�C�o�u�n�t�%�r�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�!�=�0�?�0�:�n�-�r�.�s�l�i�d�e�C�o�u�n�t�:�n�,�r�.�a�n�i�m�a�t�i�n�g�=�!�0�,�r�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�b�e�f�o�r�e�C�h�a�n�g�e�"�,�[�r�,�r�.�c�u�r�r�e�n�t�S�l�i�d�e�,�o�]�)�,�t�=�r�.�c�u�r�r�e�n�t�S�l�i�d�e�,�r�.�c�u�r�r�e�n�t�S�l�i�d�e�=�o�,�r�.�s�e�t�S�l�i�d�e�C�l�a�s�s�e�s�(�r�.�c�u�r�r�e�n�t�S�l�i�d�e�)�,�r�.�o�p�t�i�o�n�s�.�a�s�N�a�v�F�o�r�&�&�(�(�s�=�(�s�=�r�.�g�e�t�N�a�v�T�a�r�g�e�t�(�)�)�.�s�l�i�c�k�(�"�g�e�t�S�l�i�c�k�"�)�)�.�s�l�i�d�e�C�o�u�n�t�<�=�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�s�.�s�e�t�S�l�i�d�e�C�l�a�s�s�e�s�(�r�.�c�u�r�r�e�n�t�S�l�i�d�e�)�)�,�r�.�u�p�d�a�t�e�D�o�t�s�(�)�,�r�.�u�p�d�a�t�e�A�r�r�o�w�s�(�)�,�!�0�=�=�=�r�.
1�o�p�t�i�o�n�s�.�f�a�d�e�?�(�!�0�!�=�=�i�?�(�r�.�f�a�d�e�S�l�i�d�e�O�u�t�(�t�)�,�r�.�f�a�d�e�S�l�i�d�e�(�o�,�f�u�n�c�t�i�o�n�(�)�{�r�.�p�o�s�t�S�l�i�d�e�(�o�)�}�)�)�:�r�.�p�o�s�t�S�l�i�d�e�(�o�)�,�v�o�i�d� �r�.�a�n�i�m�a�t�e�H�e�i�g�h�t�(�)�)�:�v�o�i�d�(�!�0�!�=�=�i�&�&�r�.�s�l�i�d�e�C�o�u�n�t�>�r�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�r�.�a�n�i�m�a�t�e�S�l�i�d�e�(�e�,�f�u�n�c�t�i�o�n�(�)�{�r�.�p�o�s�t�S�l�i�d�e�(�o�)�}�)�:�r�.�p�o�s�t�S�l�i�d�e�(�o�)�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�t�a�r�t�L�o�a�d�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�r�r�o�w�s�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�(�t�.�$�p�r�e�v�A�r�r�o�w�.�h�i�d�e�(�)�,�t�.�$�n�e�x�t�A�r�r�o�w�.�h�i�d�e�(�)�)�,�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�d�o�t�s�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�t�.�$�d�o�t�s�.�h�i�d�e�(�)�,�t�.�$�s�l�i�d�e�r�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�l�o�a�d�i�n�g�"�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�w�i�p�e�D�i�r�e�c�t�i�o�n�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�,�e�=�t�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�X�-�t�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�X�,�i�=�t�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�Y�-�t�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�Y�,�i�=�M�a�t�h�.�a�t�a�n�2�(�i�,�e�)�,�e�=�M�a�t�h�.�r�o�u�n�d�(�1�8�0�*�i�/�M�a�t�h�.�P�I�)�;�r�e�t�u�r�n�(�e�=�e�<�0�?�3�6�0�-�M�a�t�h�.�a�b�s�(�e�)�:�e�)�<�=�4�5�&�&�0�<�=�e�|�|�e�<�=�3�6�0�&�&�3�1�5�<�=�e�?�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�r�t�l�?�"�l�e�f�t�"�:�"�r�i�g�h�t�"�:�1�3�5�<�=�e�&�&�e�<�=�2�2�5�?�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�r�t�l�?�"�r�i�g�h�t�"�:�"�l�e�f�t�"�:�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�S�w�i�p�i�n�g�?�3�5�<�=�e�&�&�e�<�=�1�3�5�?�"�d�o�w�n�"�:�"�u�p�"�:�"�v�e�r�t�i�c�a�l�"�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�w�i�p�e�E�n�d�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�=�t�h�i�s�;�i�f�(�n�.�d�r�a�g�g�i�n�g�=�!�1�,�n�.�s�w�i�p�i�n�g�=�!�1�,�n�.�s�c�r�o�l�l�i�n�g�)�r�e�t�u�r�n� �n�.�s�c�r�o�l�l�i�n�g�=�!�1�;�i�f�(�n�.�i�n�t�e�r�r�u�p�t�e�d�=�!�1�,�n�.�s�h�o�u�l�d�C�l�i�c�k�=�!�(�1�0�<�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�w�i�p�e�L�e�n�g�t�h�)�,�v�o�i�d� �0�=�=�=�n�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�X�)�r�e�t�u�r�n�!�1�;�i�f�(�!�0�=�=�=�n�.�t�o�u�c�h�O�b�j�e�c�t�.�e�d�g�e�H�i�t�&�&�n�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�e�d�g�e�"�,�[�n�,�n�.�s�w�i�p�e�D�i�r�e�c�t�i�o�n�(�)�]�)�,�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�w�i�p�e�L�e�n�g�t�h�>�=�n�.�t�o�u�c�h�O�b�j�e�c�t�.�m�i�n�S�w�i�p�e�)�{�s�w�i�t�c�h�(�i�=�n�.�s�w�i�p�e�D�i�r�e�c�t�i�o�n�(�)�)�{�c�a�s�e�"�l�e�f�t�"�:�c�a�s�e�"�d�o�w�n�"�:�e�=�n�.�o�p�t�i�o�n�s�.�s�w�i�p�e�T�o�S�l�i�d�e�?�n�.�c�h�e�c�k�N�a�v�i�g�a�b�l�e�(�n�.�c�u�r�r�e�n�t�S�l�i�d�e�+�n�.�g�e�t�S�l�i�d�e�C�o�u�n�t�(�)�)�:�n�.�c�u�r�r�e�n�t�S�l�i�d�e�+�n�.�g�e�t�S�l�i�d�e�C�o�u�n�t�(�)�,�n�.�c�u�r�r�e�n�t�D�i�r�e�c�t�i�o�n�=�0�;�b�r�e�a�k�;�c�a�s�e�"�r�i�g�h�t�"�:�c�a�s�e�"�u�p�"�:�e�=�n�.�o�p�t�i�o�n�s�.�s�w�i�p�e�T�o�S�l�i�d�e�?�n�.�c�h�e�c�k�N�a�v�i�g�a�b�l�e�(�n�.�c�u�r�r�e�n�t�S�l�i�d�e�-�n�.�g�e�t�S�l�i�d�e�C�o�u�n�t�(�)�)�:�n�.�c�u�r�r�e�n�t�S�l�i�d�e�-�n�.�g�e�t�S�l�i�d�e�C�o�u�n�t�(�)�,�n�.�c�u�r�r�e�n�t�D�i�r�e�c�t�i�o�n�=�1�}�"�v�e�r�t�i�c�a�l�"�!�=�i�&�&�(�n�.�s�l�i�d�e�H�a�n�d�l�e�r�(�e�)�,�n�.�t�o�u�c�h�O�b�j�e�c�t�=�{�}�,�n�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�s�w�i�p�e�"�,�[�n�,�i�]�)�)�}�e�l�s�e� �n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�X�!�=�=�n�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�X�&�&�(�n�.�s�l�i�d�e�H�a�n�d�l�e�r�(�n�.�c�u�r�r�e�n�t�S�l�i�d�e�)�,�n�.�t�o�u�c�h�O�b�j�e�c�t�=�{�}�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�w�i�p�e�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�i�f�(�!�(�!�1�=�=�=�e�.�o�p�t�i�o�n�s�.�s�w�i�p�e�|�|�"�o�n�t�o�u�c�h�e�n�d�"�i�n� �d�o�c�u�m�e�n�t�&�&�!�1�=�=�=�e�.�o�p�t�i�o�n�s�.�s�w�i�p�e�|�|�!�1�=�=�=�e�.�o�p�t�i�o�n�s�.�d�r�a�g�g�a�b�l�e�&�&�-�1�!�=�=�t�.�t�y�p�e�.�i�n�d�e�x�O�f�(�"�m�o�u�s�e�"�)�)�)�s�w�i�t�c�h�(�e�.�t�o�u�c�h�O�b�j�e�c�t�.�f�i�n�g�e�r�C�o�u�n�t�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�&�&�v�o�i�d� �0�!�=�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�o�u�c�h�e�s�?�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�o�u�c�h�e�s�.�l�e�n�g�t�h�:�1�,�e�.�t�o�u�c�h�O�b�j�e�c�t�.�m�i�n�S�w�i�p�e�=�e�.�l�i�s�t�W�i�d�t�h�/�e�.�o�p�t�i�o�n�s�.�t�o�u�c�h�T�h�r�e�s�h�o�l�d�,�!�0�=�=�=�e�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�S�w�i�p�i�n�g�&�&�(�e�.�t�o�u�c�h�O�b�j�e�c�t�.�m�i�n�S�w�i�p�e�=�e�.�l�i�s�t�H�e�i�g�h�t�/�e�.�o�p�t�i�o�n�s�.�t�o�u�c�h�T�h�r�e�s�h�o�l�d�)�,�t�.
1�d�a�t�a�.�a�c�t�i�o�n�)�{�c�a�s�e�"�s�t�a�r�t�"�:�e�.�s�w�i�p�e�S�t�a�r�t�(�t�)�;�b�r�e�a�k�;�c�a�s�e�"�m�o�v�e�"�:�e�.�s�w�i�p�e�M�o�v�e�(�t�)�;�b�r�e�a�k�;�c�a�s�e�"�e�n�d�"�:�e�.�s�w�i�p�e�E�n�d�(�t�)�}�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�w�i�p�e�M�o�v�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�=�t�h�i�s�,�o�=�v�o�i�d� �0�!�=�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�?�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�o�u�c�h�e�s�:�n�u�l�l�;�r�e�t�u�r�n�!�(�!�n�.�d�r�a�g�g�i�n�g�|�|�n�.�s�c�r�o�l�l�i�n�g�|�|�o�&�&�1�!�=�=�o�.�l�e�n�g�t�h�)�&�&�(�e�=�n�.�g�e�t�L�e�f�t�(�n�.�c�u�r�r�e�n�t�S�l�i�d�e�)�,�n�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�X�=�v�o�i�d� �0�!�=�=�o�?�o�[�0�]�.�p�a�g�e�X�:�t�.�c�l�i�e�n�t�X�,�n�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�Y�=�v�o�i�d� �0�!�=�=�o�?�o�[�0�]�.�p�a�g�e�Y�:�t�.�c�l�i�e�n�t�Y�,�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�w�i�p�e�L�e�n�g�t�h�=�M�a�t�h�.�r�o�u�n�d�(�M�a�t�h�.�s�q�r�t�(�M�a�t�h�.�p�o�w�(�n�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�X�-�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�X�,�2�)�)�)�,�o�=�M�a�t�h�.�r�o�u�n�d�(�M�a�t�h�.�s�q�r�t�(�M�a�t�h�.�p�o�w�(�n�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�Y�-�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�Y�,�2�)�)�)�,�!�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�S�w�i�p�i�n�g�&�&�!�n�.�s�w�i�p�i�n�g�&�&�4�<�o�?�!�(�n�.�s�c�r�o�l�l�i�n�g�=�!�0�)�:�(�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�S�w�i�p�i�n�g�&�&�(�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�w�i�p�e�L�e�n�g�t�h�=�o�)�,�o�=�n�.�s�w�i�p�e�D�i�r�e�c�t�i�o�n�(�)�,�v�o�i�d� �0�!�=�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�&�&�4�<�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�w�i�p�e�L�e�n�g�t�h�&�&�(�n�.�s�w�i�p�i�n�g�=�!�0�,�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�)�,�t�=�(�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�r�t�l�?�1�:�-�1�)�*�(�n�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�X�>�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�X�?�1�:�-�1�)�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�S�w�i�p�i�n�g�&�&�(�t�=�n�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�Y�>�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�Y�?�1�:�-�1�)�,�i�=�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�w�i�p�e�L�e�n�g�t�h�,�(�n�.�t�o�u�c�h�O�b�j�e�c�t�.�e�d�g�e�H�i�t�=�!�1�)�=�=�=�n�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�(�0�=�=�=�n�.�c�u�r�r�e�n�t�S�l�i�d�e�&�&�"�r�i�g�h�t�"�=�=�=�o�|�|�n�.�c�u�r�r�e�n�t�S�l�i�d�e�>�=�n�.�g�e�t�D�o�t�C�o�u�n�t�(�)�&�&�"�l�e�f�t�"�=�=�=�o�)�&�&�(�i�=�n�.�t�o�u�c�h�O�b�j�e�c�t�.�s�w�i�p�e�L�e�n�g�t�h�*�n�.�o�p�t�i�o�n�s�.�e�d�g�e�F�r�i�c�t�i�o�n�,�n�.�t�o�u�c�h�O�b�j�e�c�t�.�e�d�g�e�H�i�t�=�!�0�)�,�!�1�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�?�n�.�s�w�i�p�e�L�e�f�t�=�e�+�i�*�t�:�n�.�s�w�i�p�e�L�e�f�t�=�e�+�i�*�(�n�.�$�l�i�s�t�.�h�e�i�g�h�t�(�)�/�n�.�l�i�s�t�W�i�d�t�h�)�*�t�,�!�0�=�=�=�n�.�o�p�t�i�o�n�s�.�v�e�r�t�i�c�a�l�S�w�i�p�i�n�g�&�&�(�n�.�s�w�i�p�e�L�e�f�t�=�e�+�i�*�t�)�,�!�0�!�=�=�n�.�o�p�t�i�o�n�s�.�f�a�d�e�&�&�!�1�!�=�=�n�.�o�p�t�i�o�n�s�.�t�o�u�c�h�M�o�v�e�&�&�(�!�0�=�=�=�n�.�a�n�i�m�a�t�i�n�g�?�(�n�.�s�w�i�p�e�L�e�f�t�=�n�u�l�l�,�!�1�)�:�v�o�i�d� �n�.�s�e�t�C�S�S�(�n�.�s�w�i�p�e�L�e�f�t�)�)�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�s�w�i�p�e�S�t�a�r�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�t�h�i�s�;�r�e�t�u�r�n� �i�.�i�n�t�e�r�r�u�p�t�e�d�=�!�0�,�1�!�=�=�i�.�t�o�u�c�h�O�b�j�e�c�t�.�f�i�n�g�e�r�C�o�u�n�t�|�|�i�.�s�l�i�d�e�C�o�u�n�t�<�=�i�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�?�!�(�i�.�t�o�u�c�h�O�b�j�e�c�t�=�{�}�)�:�(�v�o�i�d� �0�!�=�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�&�&�v�o�i�d� �0�!�=�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�o�u�c�h�e�s�&�&�(�e�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�o�u�c�h�e�s�[�0�]�)�,�i�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�X�=�i�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�X�=�v�o�i�d� �0�!�=�=�e�?�e�.�p�a�g�e�X�:�t�.�c�l�i�e�n�t�X�,�i�.�t�o�u�c�h�O�b�j�e�c�t�.�s�t�a�r�t�Y�=�i�.�t�o�u�c�h�O�b�j�e�c�t�.�c�u�r�Y�=�v�o�i�d� �0�!�=�=�e�?�e�.�p�a�g�e�Y�:�t�.�c�l�i�e�n�t�Y�,�v�o�i�d�(�i�.�d�r�a�g�g�i�n�g�=�!�0�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�u�n�f�i�l�t�e�r�S�l�i�d�e�s�=�r�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�k�U�n�f�i�l�t�e�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�n�u�l�l�!�=�=�t�.�$�s�l�i�d�e�s�C�a�c�h�e�&�&�(�t�.�u�n�l�o�a�d�(�)�,�t�.�$�s�l�i�d�e�T�r�a�c�k�.�c�h�i�l�d�r�e�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�s�l�i�d�e�)�.�d�e�t�a�c�h�(�)�,�t�.�$�s�l�i�d�e�s�C�a�c�h�e�.�a�p�p�e�n�d�T�o�(�t�.�$�s�l�i�d�e�T�r�a�c�k�)�,�t�.
1�r�e�i�n�i�t�(�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�u�n�l�o�a�d�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�c�(�"�.�s�l�i�c�k�-�c�l�o�n�e�d�"�,�t�.�$�s�l�i�d�e�r�)�.�r�e�m�o�v�e�(�)�,�t�.�$�d�o�t�s�&�&�t�.�$�d�o�t�s�.�r�e�m�o�v�e�(�)�,�t�.�$�p�r�e�v�A�r�r�o�w�&�&�t�.�h�t�m�l�E�x�p�r�.�t�e�s�t�(�t�.�o�p�t�i�o�n�s�.�p�r�e�v�A�r�r�o�w�)�&�&�t�.�$�p�r�e�v�A�r�r�o�w�.�r�e�m�o�v�e�(�)�,�t�.�$�n�e�x�t�A�r�r�o�w�&�&�t�.�h�t�m�l�E�x�p�r�.�t�e�s�t�(�t�.�o�p�t�i�o�n�s�.�n�e�x�t�A�r�r�o�w�)�&�&�t�.�$�n�e�x�t�A�r�r�o�w�.�r�e�m�o�v�e�(�)�,�t�.�$�s�l�i�d�e�s�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�s�l�i�d�e� �s�l�i�c�k�-�a�c�t�i�v�e� �s�l�i�c�k�-�v�i�s�i�b�l�e� �s�l�i�c�k�-�c�u�r�r�e�n�t�"�)�.�a�t�t�r�(�"�a�r�i�a�-�h�i�d�d�e�n�"�,�"�t�r�u�e�"�)�.�c�s�s�(�"�w�i�d�t�h�"�,�"�"�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�u�n�s�l�i�c�k�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�$�s�l�i�d�e�r�.�t�r�i�g�g�e�r�(�"�u�n�s�l�i�c�k�"�,�[�t�h�i�s�,�t�]�)�,�t�h�i�s�.�d�e�s�t�r�o�y�(�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�u�p�d�a�t�e�A�r�r�o�w�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�M�a�t�h�.�f�l�o�o�r�(�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�/�2�)�;�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�a�r�r�o�w�s�&�&�t�.�s�l�i�d�e�C�o�u�n�t�>�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�!�t�.�o�p�t�i�o�n�s�.�i�n�f�i�n�i�t�e�&�&�(�t�.�$�p�r�e�v�A�r�r�o�w�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d�"�)�.�a�t�t�r�(�"�a�r�i�a�-�d�i�s�a�b�l�e�d�"�,�"�f�a�l�s�e�"�)�,�t�.�$�n�e�x�t�A�r�r�o�w�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d�"�)�.�a�t�t�r�(�"�a�r�i�a�-�d�i�s�a�b�l�e�d�"�,�"�f�a�l�s�e�"�)�,�0�=�=�=�t�.�c�u�r�r�e�n�t�S�l�i�d�e�?�(�t�.�$�p�r�e�v�A�r�r�o�w�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d�"�)�.�a�t�t�r�(�"�a�r�i�a�-�d�i�s�a�b�l�e�d�"�,�"�t�r�u�e�"�)�,�t�.�$�n�e�x�t�A�r�r�o�w�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d�"�)�.�a�t�t�r�(�"�a�r�i�a�-�d�i�s�a�b�l�e�d�"�,�"�f�a�l�s�e�"�)�)�:�(�t�.�c�u�r�r�e�n�t�S�l�i�d�e�>�=�t�.�s�l�i�d�e�C�o�u�n�t�-�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�&�&�!�1�=�=�=�t�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�|�|�t�.�c�u�r�r�e�n�t�S�l�i�d�e�>�=�t�.�s�l�i�d�e�C�o�u�n�t�-�1�&�&�!�0�=�=�=�t�.�o�p�t�i�o�n�s�.�c�e�n�t�e�r�M�o�d�e�)�&�&�(�t�.�$�n�e�x�t�A�r�r�o�w�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d�"�)�.�a�t�t�r�(�"�a�r�i�a�-�d�i�s�a�b�l�e�d�"�,�"�t�r�u�e�"�)�,�t�.�$�p�r�e�v�A�r�r�o�w�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�d�i�s�a�b�l�e�d�"�)�.�a�t�t�r�(�"�a�r�i�a�-�d�i�s�a�b�l�e�d�"�,�"�f�a�l�s�e�"�)�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�u�p�d�a�t�e�D�o�t�s�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�n�u�l�l�!�=�=�t�.�$�d�o�t�s�&�&�(�t�.�$�d�o�t�s�.�f�i�n�d�(�"�l�i�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�.�e�n�d�(�)�,�t�.�$�d�o�t�s�.�f�i�n�d�(�"�l�i�"�)�.�e�q�(�M�a�t�h�.�f�l�o�o�r�(�t�.�c�u�r�r�e�n�t�S�l�i�d�e�/�t�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�c�r�o�l�l�)�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�)�}�,�r�.�p�r�o�t�o�t�y�p�e�.�v�i�s�i�b�i�l�i�t�y�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�o�p�t�i�o�n�s�.�a�u�t�o�p�l�a�y�&�&�(�d�o�c�u�m�e�n�t�[�t�h�i�s�.�h�i�d�d�e�n�]�?�t�h�i�s�.�i�n�t�e�r�r�u�p�t�e�d�=�!�0�:�t�h�i�s�.�i�n�t�e�r�r�u�p�t�e�d�=�!�1�)�}�,�c�.�f�n�.�s�l�i�c�k�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�,�e�=�t�h�i�s�,�i�=�a�r�g�u�m�e�n�t�s�[�0�]�,�n�=�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�)�,�o�=�e�.�l�e�n�g�t�h�,�s�=�0�;�s�<�o�;�s�+�+�)�i�f�(�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �i�|�|�v�o�i�d� �0�=�=�=�i�?�e�[�s�]�.�s�l�i�c�k�=�n�e�w� �r�(�e�[�s�]�,�i�)�:�t�=�e�[�s�]�.�s�l�i�c�k�[�i�]�.�a�p�p�l�y�(�e�[�s�]�.�s�l�i�c�k�,�n�)�,�v�o�i�d� �0�!�=�=�t�)�r�e�t�u�r�n� �t�;�r�e�t�u�r�n� �e�}�}�)�,�!�f�u�n�c�t�i�o�n�(�t�)�{�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�"�j�q�u�e�r�y�"�]�,�t�)�:�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�?�m�o�d�u�l�e�.�e�x�p�o�r�t�s�=�t�(�r�e�q�u�i�r�e�(�"�j�q�u�e�r�y�"�)�)�:�t�(�j�Q�u�e�r�y�)�}�(�f�u�n�c�t�i�o�n�(�c�)�{�v�a�r� �d�,�u�,�n�,�h�=�[�]�,�p�=�d�o�c�u�m�e�n�t�,�f�=�w�i�n�d�o�w�,�m�=�p�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�;�f�u�n�c�t�i�o�n� �e�(�)�{�i�f�(�h�.�l�e�n�g�t�h�)�{�v�a�r� �t�,�e�,
1�i�=�0�,�n�=�c�.�m�a�p�(�h�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�d�a�t�a�.�s�e�l�e�c�t�o�r�,�t�=�t�.�$�e�l�e�m�e�n�t�;�r�e�t�u�r�n� �e�?�t�.�f�i�n�d�(�e�)�:�t�}�)�;�f�o�r�(�d�=�d�|�|�(�e�=�(�e�=�{�h�e�i�g�h�t�:�f�.�i�n�n�e�r�H�e�i�g�h�t�,�w�i�d�t�h�:�f�.�i�n�n�e�r�W�i�d�t�h�}�)�.�h�e�i�g�h�t�|�|�!�(�t�=�p�.�c�o�m�p�a�t�M�o�d�e�)�&�&�c�.�s�u�p�p�o�r�t�.�b�o�x�M�o�d�e�l�?�e�:�{�h�e�i�g�h�t�:�(�t�=�"�C�S�S�1�C�o�m�p�a�t�"�=�=�=�t�?�m�:�p�.�b�o�d�y�)�.�c�l�i�e�n�t�H�e�i�g�h�t�,�w�i�d�t�h�:�t�.�c�l�i�e�n�t�W�i�d�t�h�}�)�,�u�=�u�|�|�{�t�o�p�:�f�.�p�a�g�e�Y�O�f�f�s�e�t�|�|�m�.�s�c�r�o�l�l�T�o�p�|�|�p�.�b�o�d�y�.�s�c�r�o�l�l�T�o�p�,�l�e�f�t�:�f�.�p�a�g�e�X�O�f�f�s�e�t�|�|�m�.�s�c�r�o�l�l�L�e�f�t�|�|�p�.�b�o�d�y�.�s�c�r�o�l�l�L�e�f�t�}�;�i�<�h�.�l�e�n�g�t�h�;�i�+�+�)�i�f�(�c�.�c�o�n�t�a�i�n�s�(�m�,�n�[�i�]�[�0�]�)�)�{�v�a�r� �o�=�c�(�n�[�i�]�)�,�s�=�o�[�0�]�.�o�f�f�s�e�t�H�e�i�g�h�t�,�r�=�o�[�0�]�.�o�f�f�s�e�t�W�i�d�t�h�,�a�=�o�.�o�f�f�s�e�t�(�)�,�l�=�o�.�d�a�t�a�(�"�i�n�v�i�e�w�"�)�;�i�f�(�!�u�|�|�!�d�)�r�e�t�u�r�n�;�a�.�t�o�p�+�s�>
1�u�.�t�o�p�&�&�a�.�t�o�p�<�u�.�t�o�p�+�d�.�h�e�i�g�h�t�&�&�a�.�l�e�f�t�+�r�>�u�.�l�e�f�t�&�&�a�.�l�e�f�t�<�u�.�l�e�f�t�+�d�.�w�i�d�t�h�?�l�|�|�o�.�d�a�t�a�(�"�i�n�v�i�e�w�"�,�!�0�)�.�t�r�i�g�g�e�r�(�"�i�n�v�i�e�w�"�,�[�!�0�]�)�:�l�&�&�o�.�d�a�t�a�(�"�i�n�v�i�e�w�"�,�!�1�)�.�t�r�i�g�g�e�r�(�"�i�n�v�i�e�w�"�,�[�!�1�]�)�}�}�}�c�.�e�v�e�n�t�.�s�p�e�c�i�a�l�.�i�n�v�i�e�w�=�{�a�d�d�:�f�u�n�c�t�i�o�n�(�t�)�{�h�.�p�u�s�h�(�{�d�a�t�a�:�t�,�$�e�l�e�m�e�n�t�:�c�(�t�h�i�s�)�,�e�l�e�m�e�n�t�:�t�h�i�s�}�)�,�!�n�&�&�h�.�l�e�n�g�t�h�&�&�(�n�=�s�e�t�I�n�t�e�r�v�a�l�(�e�,�2�5�0�)�)�}�,�r�e�m�o�v�e�:�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�=�0�;�e�<�h�.�l�e�n�g�t�h�;�e�+�+�)�{�v�a�r� �i�=�h�[�e�]�;�i�f�(�i�.�e�l�e�m�e�n�t�=�=�=�t�h�i�s�&�&�i�.�d�a�t�a�.�g�u�i�d�=�=�=�t�.�g�u�i�d�)�{�h�.�s�p�l�i�c�e�(�e�,�1�)�;�b�r�e�a�k�}�}�h�.�l�e�n�g�t�h�|�|�(�c�l�e�a�r�I�n�t�e�r�v�a�l�(�n�)�,�n�=�n�u�l�l�)�}�}�,�c�(�f�)�.�o�n�(�"�s�c�r�o�l�l� �r�e�s�i�z�e� �s�c�r�o�l�l�s�t�o�p�"�,�f�u�n�c�t�i�o�n�(�)�{�d�=�u�=�n�u�l�l�}�)�,�!�m�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�&�&�m�.�a�t�t�a�c�h�E�v�e�n�t�&�&�m�.�a�t�t�a�c�h�E�v�e�n�t�(�"�o�n�f�o�c�u�s�i�n�"�,�f�u�n�c�t�i�o�n�(�)�{�u�=�n�u�l�l�}�)�}�)�,�!�f�u�n�c�t�i�o�n�(�$�)�{�$�.�e�x�t�e�n�d�(�{�m�e�t�a�d�a�t�a�:�{�d�e�f�a�u�l�t�s�:�{�t�y�p�e�:�"�c�l�a�s�s�"�,�n�a�m�e�:�"�m�e�t�a�d�a�t�a�"�,�c�r�e�:�/�(�{�.�*�}�)�/�,�s�i�n�g�l�e�:�"�m�e�t�a�d�a�t�a�"�}�,�s�e�t�T�y�p�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�d�e�f�a�u�l�t�s�.�t�y�p�e�=�t�,�t�h�i�s�.�d�e�f�a�u�l�t�s�.�n�a�m�e�=�e�}�,�g�e�t�:�f�u�n�c�t�i�o�n�(�e�l�e�m�,�o�p�t�s�)�{�v�a�r� �s�e�t�t�i�n�g�s�=�$�.�e�x�t�e�n�d�(�{�}�,�t�h�i�s�.�d�e�f�a�u�l�t�s�,�o�p�t�s�)�,�d�a�t�a�=�(�s�e�t�t�i�n�g�s�.�s�i�n�g�l�e�.�l�e�n�g�t�h�|�|�(�s�e�t�t�i�n�g�s�.�s�i�n�g�l�e�=�"�m�e�t�a�d�a�t�a�"�)�,�$�.�d�a�t�a�(�e�l�e�m�,�s�e�t�t�i�n�g�s�.�s�i�n�g�l�e�)�)�,�a�t�t�r�;�i�f�(�d�a�t�a�)�r�e�t�u�r�n� �d�a�t�a�;�i�f�(�d�a�t�a�=�"�{�}�"�,�"�c�l�a�s�s�"�=�=�s�e�t�t�i�n�g�s�.�t�y�p�e�)�{�v�a�r� �m�=�s�e�t�t�i�n�g�s�.�c�r�e�.�e�x�e�c�(�e�l�e�m�.�c�l�a�s�s�N�a�m�e�)�;�m�&�&�(�d�a�t�a�=�m�[�1�]�)�}�e�l�s�e� �i�f�(�"�e�l�e�m�"�=�=�s�e�t�t�i�n�g�s�.�t�y�p�e�)�{�i�f�(�!�e�l�e�m�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�)�r�e�t�u�r�n�;�v�a�r� �e�=�e�l�e�m�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�(�s�e�t�t�i�n�g�s�.�n�a�m�e�)�;�e�.�l�e�n�g�t�h�&�&�(�d�a�t�a�=�$�.�t�r�i�m�(�e�[�0�]�.�i�n�n�e�r�H�T�M�L�)�)�}�e�l�s�e�{�n�u�l�l�!�=�e�l�e�m�.�g�e�t�A�t�t�r�i�b�u�t�e�&�&�(�a�t�t�r�=�e�l�e�m�.�g�e�t�A�t�t�r�i�b�u�t�e�(�s�e�t�t�i�n�g�s�.�n�a�m�e�)�,�a�t�t�r�&�&�(�d�a�t�a�=�a�t�t�r�)�)�}�r�e�t�u�r�n� �d�a�t�a�.�i�n�d�e�x�O�f�(�"�{�"�)�<�0�&�&�(�d�a�t�a�=�"�{�"�+�d�a�t�a�+�"�}�"�)�,�d�a�t�a�=�e�v�a�l�(�"�(�"�+�d�a�t�a�+�"�)�"�)�,�$�.�d�a�t�a�(�e�l�e�m�,�s�e�t�t�i�n�g�s�.�s�i�n�g�l�e�,�d�a�t�a�)�,�d�a�t�a�}�}�}�)�,�$�.�f�n�.�m�e�t�a�d�a�t�a�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �$�.�m�e�t�a�d�a�t�a�.�g�e�t�(�t�h�i�s�[�0�]�,�t�)�}�}�(�j�Q�u�e�r�y�)�,�!�f�u�n�c�t�i�o�n�(�l�)�{�l�.�e�x�t�e�n�d�(�l�.�f�n�,�{�v�a�l�i�d�a�t�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �i�;�{�i�f�(�t�h�i�s�.�l�e�n�g�t�h�)�r�e�t�u�r�n�(�i�=�l�.�d�a�t�a�(�t�h�i�s�[�0�]�,�"�v�a�l�i�d�a�t�o�r�"�)�)�|�|�(�t�h�i�s�.�a�t�t�r�(�"�n�o�v�a�l�i�d�a�t�e�"�,�"�n�o�v�a�l�i�d�a�t�e�"�)�,�i�=�n�e�w� �l�.�v�a�l�i�d�a�t�o�r�(�t�,�t�h�i�s�[�0�]�)�,�l�.�d�a�t�a�(�t�h�i�s�[�0�]�,�"�v�a�l�i�d�a�t�o�r�"�,�i�)�,�i�.�s�e�t�t�i�n�g�s�.�o�n�s�u�b�m�i�t�&�&�(�t�h�i�s�.�v�a�l�i�d�a�t�e�D�e�l�e�g�a�t�e�(�"�:�s�u�b�m�i�t�"�,�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�i�.�s�e�t�t�i�n�g�s�.�s�u�b�m�i�t�H�a�n�d�l�e�r�&�&�(�i�.�s�u�b�m�i�t�B�u�t�t�o�n�=�t�.�t�a�r�g�e�t�)�,�l�(�t�.�t�a�r�g�e�t�)�.�h�a�s�C�l�a�s�s�(�"�c�a�n�c�e�l�"�)�&�&�(�i�.�c�a�n�c�e�l�S�u�b�m�i�t�=�!�0�)�}�)�,�t�h�i�s�.�s�u�b�m�i�t�(�f�u�n�c�t�i�o�n�(�e�)�{�f�u�n�c�t�i�o�n� �t�(�)�{�v�a�r� �t�;�r�e�t�u�r�n�!�i�.�s�e�t�t�i�n�g�s�.�s�u�b�m�i�t�H�a�n�d�l�e�r�|�|�(�i�.�s�u�b�m�i�t�B�u�t�t�o�n�&�&�(�t�=�l�(�"�<�i�n�p�u�t� �t�y�p�e�=�'�h�i�d�d�e�n�'�/�>�"�)�.�a�t�t�r�(�"�n�a�m�e�"�,�i�.�s�u�b�m�i�t�B�u�t�t�o�n�.�n�a�m�e�)�.�v�a�l�(�i�.�s�u�b�m�i�t�B�u�t�t�o�n�.�v�a�l�u�e�)�.�a�p�p�e�n�d�T�o�(�i�.�c�u�r�r�e�n�t�F�o�r�m�)�)�,�i�.�s�e�t�t�i�n�g�s�.�s�u�b�m�i�t�H�a�n�d�l�e�r�.�c�a�l�l�(�i�,�i�.�c�u�r�r�e�n�t�F�o�r�m�,�e�)�,�i�.�s�u�b�m�i�t�B�u�t�t�o�n�&�&�t�.�r�e�m�o�v�e�(�)�,�!�1�)�}�r�e�t�u�r�n� �i�.�s�e�t�t�i�n�g�s�.�d�e�b�u�g�&�&�e�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�i�.�c�a�n�c�e�l�S�u�b�m�i�t�?�(�i�.�c�a�n�c�e�l�S�u�b�m�i�t�=�!�1�,�t�(�)�)�:�i�.�f�o�r�m�(�)�?�i�.�p�e�n�d�i�n�g�R�e�q�u�e�s�t�?�!�(�i�.�f�o�r�m�S�u�b�m�i�t�t�e�d�=�!�0�)�:�t�(�)�:�(�i�.�f�o�c�u�s�I�n�v�a�l�i�d�(�)�,�!�1�)�}�)�)�,�i�)�;�t�&�&�t�.�d�e�b�u�g�&�&�w�i�n�d�o�w�.�c�o�n�s�o�l�e�&�&�c�o�n�s�o�l�e�.�w�a�r�n�(�"�n�o�t�h�i�n�g� �s�e�l�e�c�t�e�d�,� �c�a�n�'�t� �v�a�l�i�d�a�t�e�,
1� �r�e�t�u�r�n�i�n�g� �n�o�t�h�i�n�g�"�)�}�}�,�v�a�l�i�d�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�;�r�e�t�u�r�n� �l�(�t�h�i�s�[�0�]�)�.�i�s�(�"�f�o�r�m�"�)�?�t�h�i�s�.�v�a�l�i�d�a�t�e�(�)�.�f�o�r�m�(�)�:�(�t�=�!�0�,�e�=�l�(�t�h�i�s�[�0�]�.�f�o�r�m�)�.�v�a�l�i�d�a�t�e�(�)�,�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�t�&�=�e�.�e�l�e�m�e�n�t�(�t�h�i�s�)�}�)�,�t�)�}�,�r�e�m�o�v�e�A�t�t�r�s�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �i�=�{�}�,�n�=�t�h�i�s�;�r�e�t�u�r�n� �l�.�e�a�c�h�(�t�.�s�p�l�i�t�(�/�\�s�/�)�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�[�e�]�=�n�.�a�t�t�r�(�e�)�,�n�.�r�e�m�o�v�e�A�t�t�r�(�e�)�}�)�,�i�}�,�r�u�l�e�s�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�[�0�]�;�i�f�(�t�)�{�v�a�r� �n�=�l�.�d�a�t�a�(�i�.�f�o�r�m�,�"�v�a�l�i�d�a�t�o�r�"�)�.�s�e�t�t�i�n�g�s�,�o�=�n�.�r�u�l�e�s�,�s�=�l�.�v�a�l�i�d�a�t�o�r�.�s�t�a�t�i�c�R�u�l�e�s�(�i�)�;�s�w�i�t�c�h�(�t�)�{�c�a�s�e�"�a�d�d�"�:�l�.�e�x�t�e�n�d�(�s�,�l�.�v�a�l�i�d�a�t�o�r�.�n�o�r�m�a�l�i�z�e�R�u�l�e�(�e�)�)�,�o�[�i�.�n�a�m�e�]�=�s�,�e�.�m�e�s�s�a�g�e�s�&�&�(�n�.�m�e�s�s�a�g�e�s�[�i�.�n�a�m�e�]�=�l�.�e�x�t�e�n�d�(�n�.�m�e�s�s�a�g�e�s�[�i�.�n�a�m�e�]�,�e�.�m�e�s�s�a�g�e�s�)�)�;�b�r�e�a�k�;�c�a�s�e�"�r�e�m�o�v�e�"�:�i�f�(�!�e�)�r�e�t�u�r�n� �d�e�l�e�t�e� �o�[�i�.�n�a�m�e�]�,�s�;�v�a�r� �r�=�{�}�;�r�e�t�u�r�n� �l�.�e�a�c�h�(�e�.�s�p�l�i�t�(�/�\�s�/�)�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�[�e�]�=�s�[�e�]�,�d�e�l�e�t�e� �s�[�e�]�}�)�,�r�}�}�v�a�r� �a�,�t�=�l�.�v�a�l�i�d�a�t�o�r�.�n�o�r�m�a�l�i�z�e�R�u�l�e�s�(�l�.�e�x�t�e�n�d�(�{�}�,�l�.�v�a�l�i�d�a�t�o�r�.�m�e�t�a�d�a�t�a�R�u�l�e�s�(�i�)�,�l�.�v�a�l�i�d�a�t�o�r�.�c�l�a�s�s�R�u�l�e�s�(�i�)�,�l�.�v�a�l�i�d�a�t�o�r�.�a�t�t�r�i�b�u�t�e�R�u�l�e�s�(�i�)�,�l�.�v�a�l�i�d�a�t�o�r�.�s�t�a�t�i�c�R�u�l�e�s�(�i�)�)�,�i�)�;�r�e�t�u�r�n� �t�.�r�e�q�u�i�r�e�d�&�&�(�a�=�t�.�r�e�q�u�i�r�e�d�,�d�e�l�e�t�e� �t�.�r�e�q�u�i�r�e�d�,�t�=�l�.�e�x�t�e�n�d�(�{�r�e�q�u�i�r�e�d�:�a�}�,�t�)�)�,�t�}�}�)�,�l�.�e�x�t�e�n�d�(�l�.�e�x�p�r�[�"�:�"�]�,�{�b�l�a�n�k�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�l�.�t�r�i�m�(�"�"�+�t�.�v�a�l�u�e�)�}�,�f�i�l�l�e�d�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�!�l�.�t�r�i�m�(�"�"�+�t�.�v�a�l�u�e�)�}�,�u�n�c�h�e�c�k�e�d�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�t�.�c�h�e�c�k�e�d�}�}�)�,�l�.�v�a�l�i�d�a�t�o�r�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�s�e�t�t�i�n�g�s�=�l�.�e�x�t�e�n�d�(�!�0�,�{�}�,�l�.�v�a�l�i�d�a�t�o�r�.�d�e�f�a�u�l�t�s�,�t�)�,�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�=�e�,�t�h�i�s�.�i�n�i�t�(�)�}�,�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�=�f�u�n�c�t�i�o�n�(�i�,�t�)�{�r�e�t�u�r�n� �1�=�=�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�l�.�m�a�k�e�A�r�r�a�y�(�a�r�g�u�m�e�n�t�s�)�;�r�e�t�u�r�n� �t�.�u�n�s�h�i�f�t�(�i�)�,�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�.�a�p�p�l�y�(�t�h�i�s�,�t�)�}�:�(�(�t�=�2�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�t�.�c�o�n�s�t�r�u�c�t�o�r�!�=�=�A�r�r�a�y�?�l�.�m�a�k�e�A�r�r�a�y�(�a�r�g�u�m�e�n�t�s�)�.�s�l�i�c�e�(�1�)�:�t�)�.�c�o�n�s�t�r�u�c�t�o�r�!�=�=�A�r�r�a�y�&�&�(�t�=�[�t�]�)�,�l�.�e�a�c�h�(�t�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�=�i�.�r�e�p�l�a�c�e�(�n�e�w� �R�e�g�E�x�p�(�"�\�\�{�"�+�t�+�"�\�\�}�"�,�"�g�"�)�,�e�)�}�)�,�i�)�}�,�l�.�e�x�t�e�n�d�(�l�.�v�a�l�i�d�a�t�o�r�,�{�d�e�f�a�u�l�t�s�:�{�m�e�s�s�a�g�e�s�:�{�}�,�g�r�o�u�p�s�:�{�}�,�r�u�l�e�s�:�{�}�,�e�r�r�o�r�C�l�a�s�s�:�"�e�r�r�o�r�"�,�v�a�l�i�d�C�l�a�s�s�:�"�v�a�l�i�d�"�,�e�r�r�o�r�E�l�e�m�e�n�t�:�"�l�a�b�e�l�"�,�f�o�c�u�s�I�n�v�a�l�i�d�:�!�0�,�e�r�r�o�r�C�o�n�t�a�i�n�e�r�:�l�(�[�]�)�,�e�r�r�o�r�L�a�b�e�l�C�o�n�t�a�i�n�e�r�:�l�(�[�]�)�,�o�n�s�u�b�m�i�t�:�!�0�,�i�g�n�o�r�e�:�"�:�h�i�d�d�e�n�"�,�i�g�n�o�r�e�T�i�t�l�e�:�!�1�,�o�n�f�o�c�u�s�i�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�l�a�s�t�A�c�t�i�v�e�=�t�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�f�o�c�u�s�C�l�e�a�n�u�p�&�&�!�t�h�i�s�.�b�l�o�c�k�F�o�c�u�s�C�l�e�a�n�u�p�&�&�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�u�n�h�i�g�h�l�i�g�h�t�&�&�t�h�i�s�.�s�e�t�t�i�n�g�s�.�u�n�h�i�g�h�l�i�g�h�t�.�c�a�l�l�(�t�h�i�s�,�t�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�C�l�a�s�s�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�v�a�l�i�d�C�l�a�s�s�)�,�t�h�i�s�.�a�d�d�W�r�a�p�p�e�r�(�t�h�i�s�.�e�r�r�o�r�s�F�o�r�(�t�)�)�.�h�i�d�e�(�)�)�}�,�o�n�c�l�i�c�k�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�.�n�a�m�e� �i�n� �t�h�i�s�.�s�u�b�m�i�t�t�e�d�?�t�h�i�s�.�e�l�e�m�e�n�t�(�t
1�)�:�t�.�p�a�r�e�n�t�N�o�d�e�.�n�a�m�e� �i�n� �t�h�i�s�.�s�u�b�m�i�t�t�e�d�&�&�t�h�i�s�.�e�l�e�m�e�n�t�(�t�.�p�a�r�e�n�t�N�o�d�e�)�}�,�h�i�g�h�l�i�g�h�t�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�(�"�r�a�d�i�o�"�=�=�=�t�.�t�y�p�e�?�t�h�i�s�.�f�i�n�d�B�y�N�a�m�e�(�t�.�n�a�m�e�)�:�l�(�t�)�)�.�a�d�d�C�l�a�s�s�(�e�)�.�r�e�m�o�v�e�C�l�a�s�s�(�i�)�}�,�u�n�h�i�g�h�l�i�g�h�t�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�(�"�r�a�d�i�o�"�=�=�=�t�.�t�y�p�e�?�t�h�i�s�.�f�i�n�d�B�y�N�a�m�e�(�t�.�n�a�m�e�)�:�l�(�t�)�)�.�r�e�m�o�v�e�C�l�a�s�s�(�e�)�.�a�d�d�C�l�a�s�s�(�i�)�}�}�,�s�e�t�D�e�f�a�u�l�t�s�:�f�u�n�c�t�i�o�n�(�t�)�{�l�.�e�x�t�e�n�d�(�l�.�v�a�l�i�d�a�t�o�r�.�d�e�f�a�u�l�t�s�,�t�)�}�,�m�e�s�s�a�g�e�s�:�{�r�e�q�u�i�r�e�d�:�"�T�h�i�s� �f�i�e�l�d� �i�s� �r�e�q�u�i�r�e�d�.�"�,�r�e�m�o�t�e�:�"�P�l�e�a�s�e� �f�i�x� �t�h�i�s� �f�i�e�l�d�.�"�,�e�m�a�i�l�:�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�i�d� �e�m�a�i�l� �a�d�d�r�e�s�s�.�"�,�u�r�l�:�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�i�d� �U�R�L�.�"�,�d�a�t�e�:�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�i�d� �d�a�t�e�.�"�,�d�a�t�e�I�S�O�:�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�i�d� �d�a�t�e� �(�I�S�O�)�.�"�,�n�u�m�b�e�r�:�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�i�d� �n�u�m�b�e�r�.�"�,�d�i�g�i�t�s�:�"�P�l�e�a�s�e� �e�n�t�e�r� �o�n�l�y� �d�i�g�i�t�s�.�"�,�c�r�e�d�i�t�c�a�r�d�:�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�i�d� �c�r�e�d�i�t� �c�a�r�d� �n�u�m�b�e�r�.�"�,�e�q�u�a�l�T�o�:�"�P�l�e�a�s�e� �e�n�t�e�r� �t�h�e� �s�a�m�e� �v�a�l�u�e� �a�g�a�i�n�.�"�,�m�a�x�l�e�n�g�t�h�:�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�(�"�P�l�e�a�s�e� �e�n�t�e�r� �n�o� �m�o�r�e� �t�h�a�n� �{�0�}� �c�h�a�r�a�c�t�e�r�s�.�"�)�,�m�i�n�l�e�n�g�t�h�:�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�(�"�P�l�e�a�s�e� �e�n�t�e�r� �a�t� �l�e�a�s�t� �{�0�}� �c�h�a�r�a�c�t�e�r�s�.�"�)�,�r�a�n�g�e�l�e�n�g�t�h�:�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�(�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�u�e� �b�e�t�w�e�e�n� �{�0�}� �a�n�d� �{�1�}� �c�h�a�r�a�c�t�e�r�s� �l�o�n�g�.�"�)�,�r�a�n�g�e�:�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�(�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�u�e� �b�e�t�w�e�e�n� �{�0�}� �a�n�d� �{�1�}�.�"�)�,�m�a�x�:�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�(�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�u�e� �l�e�s�s� �t�h�a�n� �o�r� �e�q�u�a�l� �t�o� �{�0�}�.�"�)�,�m�i�n�:�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�(�"�P�l�e�a�s�e� �e�n�t�e�r� �a� �v�a�l�u�e� �g�r�e�a�t�e�r� �t�h�a�n� �o�r� �e�q�u�a�l� �t�o� �{�0�}�.�"�)�}�,�a�u�t�o�C�r�e�a�t�e�R�a�n�g�e�s�:�!�1�,�p�r�o�t�o�t�y�p�e�:�{�i�n�i�t�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�l�a�b�e�l�C�o�n�t�a�i�n�e�r�=�l�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�L�a�b�e�l�C�o�n�t�a�i�n�e�r�)�,�t�h�i�s�.�e�r�r�o�r�C�o�n�t�e�x�t�=�t�h�i�s�.�l�a�b�e�l�C�o�n�t�a�i�n�e�r�.�l�e�n�g�t�h�&�&�t�h�i�s�.�l�a�b�e�l�C�o�n�t�a�i�n�e�r�|�|�l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�,�t�h�i�s�.�c�o�n�t�a�i�n�e�r�s�=�l�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�C�o�n�t�a�i�n�e�r�)�.�a�d�d�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�L�a�b�e�l�C�o�n�t�a�i�n�e�r�)�,�t�h�i�s�.�s�u�b�m�i�t�t�e�d�=�{�}�,�t�h�i�s�.�v�a�l�u�e�C�a�c�h�e�=�{�}�,�t�h�i�s�.�p�e�n�d�i�n�g�R�e�q�u�e�s�t�=�0�,�t�h�i�s�.�p�e�n�d�i�n�g�=�{�}�,�t�h�i�s�.�i�n�v�a�l�i�d�=�{�}�,�t�h�i�s�.�r�e�s�e�t�(�)�;�v�a�r� �n�=�t�h�i�s�.�g�r�o�u�p�s�=�{�}�,�i�=�(�l�.�e�a�c�h�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�g�r�o�u�p�s�,�f�u�n�c�t�i�o�n�(�i�,�t�)�{�l�.�e�a�c�h�(�t�.�s�p�l�i�t�(�/�\�s�/�)�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�n�[�e�]�=�i�}�)�}�)�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�r�u�l�e�s�)�;�f�u�n�c�t�i�o�n� �t�(�t�)�{�v�a�r� �e�=�l�.�d�a�t�a�(�t�h�i�s�[�0�]�.�f�o�r�m�,�"�v�a�l�i�d�a�t�o�r�"�)�,�i�=�"�o�n�"�+�t�.�t�y�p�e�.�r�e�p�l�a�c�e�(�/�^�v�a�l�i�d�a�t�e�/�,�"�"�)�;�e�.�s�e�t�t�i�n�g�s�[�i�]�&�&�e�.�s�e�t�t�i�n�g�s�[�i�]�.�c�a�l�l�(�e�,�t�h�i�s�[�0�]�,�t�)�}�l�.�e�a�c�h�(�i�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�[�t�]�=�l�.�v�a�l�i�d�a�t�o�r�.�n�o�r�m�a�l�i�z�e�R�u�l�e�(�e�)�}�)�,�l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�.�v�a�l�i�d�a�t�e�D�e�l�e�g�a�t�e�(�"�:�t�e�x�t�,� �[�t�y�p�e�=�'�p�a�s�s�w�o�r�d�'�]�,� �[�t�y�p�e�=�'�f�i�l�e�'�]�,� �s�e�l�e�c�t�,� �t�e�x�t�a�r�e�a�,� �[�t�y�p�e�=�'�n�u�m�b�e�r�'�]�,� �[�t�y�p�e�=�'�s�e�a�r�c�h�'�]� �,�[�t�y�p�e�=�'�t�e�l�'�]�,� �[�t�y�p�e�=�'�u�r�l�'�]�,� �[�t�y�p�e�=�'�e�m�a�i�l�'�]�,� �[�t�y�p�e�=�'�d�a�t�e�t�i�m�e�'�]�,� �[�t�y�p�e�=�'�d�a�t�e�'�]�,� �[�t�y�p�e�=�'�m�o�n�t�h�'�]�,� �[�t�y�p�e�=�'�w�e�e�k�'�]�,� �[�t�y�p�e�=�'�t�i�m�e�'�]�,� �[�t�y�p�e�=�'�d�a�t�e�t�i�m�e�-�l�o�c�a�l�'�]�,� �[�t�y�p�e�=�'�r�a�n�g�e�'�]�,� �[�t�y�p�e�=�'�c�o�l�o�r�'�]� �"�,�"�f�o�c�u�s�i�n� �f�o�c�u�s�o�u�t� �k�e�y�u�p�"�,�t�)�.�v�a�l�i�d�a�t�e�D�e�l�e�g�a�t�e�(�"�[�t�y�p�e�=�'�r�a�d�i�o�'�]�,� �[�t�y�p�e�=�'�c�h�e�c�k�b�o�x�'�]�,� �s�e�l�e�c�t�,� �o�p�t�i�o�n�"�,�"�c�l�i�c�k�"�,�t�)�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�i�n�v�a�l�i�d�H�a�n�d�l�e�r�&�&�l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�.�b�i�n�d�(�"�i�n�v�a�l�i�d�-�f�o�r�m�.�v�a�l�i�d�a�t�e�"�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�i�n�v�a�l�i�d�H�a�n�d�l�e�r�)�}�,�f�o�r�m�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�c�h�e�c�k�F�o�r�m�(�)�,�l�.�e�x�t�e�n�d�(�t�h�i�s�.�s�u�b�m�i�t�t�e�d�,�t�h�i�s�.�e�r�r�o�r�M�a�p�)�,�t�h�i�s�.�i�n�v�a�l�i�d�=�l�.�e�x�t�e�n�d�(�{�}�,�t�h�i�s�.�e�r�r�o�r�M�a�p�)�,�t�h�i�s�.�v�a�l�i�d�(�)�|�|�l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�.�t�r�i�g�g�e�r�H�a�n�d�l�e�r�(�"�i�n�v�a�l�i�d�-�f�o�r�m�"�,�[�t�h�i�s�]�)�,�t�h�i�s�.�s�h�o�w�E�r�r�o�r�s�(�)�,�t�h�i�s�.�v�a�l�i�d�(�)�}�,�c�h�e�c�k�F�o�r�m�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�p�r�e�p�a�r�e�F�o�r�m�(�)�;�f�o�r�(�v�a�r� �t�=�0�,�e�=�t�h�i�s�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�=�t�h�i�s�.�e�l�e�m�e�n�t�s�(�)�;�e�[�t�]�;�t�+�+�)�t�h�i�s�.�c�h�e�c�k�(�e�[�t�]�)�;�r�e�t�u�r�n� �t�h�i�s�.�v�a�l�i�d�(�)�}�,�e�l�e�m�e�n�t�:�f�u�n�c�t�i�o�n�(�t�)�{�t�=�t�h�i�s�.�v�a�l�i�d�a�t�i�o�n�T�a�r�g�e�t�F�o�r�(�t�h�i�s�.�c�l�e�a�n�(�t�)�)�,�t�h�i�s�.�l�a�s�t�E�l�e�m�e�n�t�=�t�,�t�h�i�s�.�p�r�e�p�a�r�e�E�l�e�m�e�n�t�(�t
1�)�,�t�h�i�s�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�=�l�(�t�)�;�v�a�r� �e�=�!�1�!�=�=�t�h�i�s�.�c�h�e�c�k�(�t�)�;�r�e�t�u�r�n� �e�?�d�e�l�e�t�e� �t�h�i�s�.�i�n�v�a�l�i�d�[�t�.�n�a�m�e�]�:�t�h�i�s�.�i�n�v�a�l�i�d�[�t�.�n�a�m�e�]�=�!�0�,�t�h�i�s�.�n�u�m�b�e�r�O�f�I�n�v�a�l�i�d�s�(�)�|�|�(�t�h�i�s�.�t�o�H�i�d�e�=�t�h�i�s�.�t�o�H�i�d�e�.�a�d�d�(�t�h�i�s�.�c�o�n�t�a�i�n�e�r�s�)�)�,�t�h�i�s�.�s�h�o�w�E�r�r�o�r�s�(�)�,�e�}�,�s�h�o�w�E�r�r�o�r�s�:�f�u�n�c�t�i�o�n�(�e�)�{�i�f�(�e�)�{�f�o�r�(�v�a�r� �t� �i�n� �l�.�e�x�t�e�n�d�(�t�h�i�s�.�e�r�r�o�r�M�a�p�,�e�)�,�t�h�i�s�.�e�r�r�o�r�L�i�s�t�=�[�]�,�e�)�t�h�i�s�.�e�r�r�o�r�L�i�s�t�.�p�u�s�h�(�{�m�e�s�s�a�g�e�:�e�[�t�]�,�e�l�e�m�e�n�t�:�t�h�i�s�.�f�i�n�d�B�y�N�a�m�e�(�t�)�[�0�]�}�)�;�t�h�i�s�.�s�u�c�c�e�s�s�L�i�s�t�=�l�.�g�r�e�p�(�t�h�i�s�.�s�u�c�c�e�s�s�L�i�s�t�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�(�t�.�n�a�m�e� �i�n� �e�)�}�)�}�t�h�i�s�.�s�e�t�t�i�n�g�s�.�s�h�o�w�E�r�r�o�r�s�?�t�h�i�s�.�s�e�t�t�i�n�g�s�.�s�h�o�w�E�r�r�o�r�s�.�c�a�l�l�(�t�h�i�s�,�t�h�i�s�.�e�r�r�o�r�M�a�p�,�t�h�i�s�.�e�r�r�o�r�L�i�s�t�)�:�t�h�i�s�.�d�e�f�a�u�l�t�S�h�o�w�E�r�r�o�r�s�(�)�}�,�r�e�s�e�t�F�o�r�m�:�f�u�n�c�t�i�o�n�(�)�{�l�.�f�n�.�r�e�s�e�t�F�o�r�m�&�&�l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�.�r�e�s�e�t�F�o�r�m�(�)�,�t�h�i�s�.�s�u�b�m�i�t�t�e�d�=�{�}�,�t�h�i�s�.�l�a�s�t�E�l�e�m�e�n�t�=�n�u�l�l�,�t�h�i�s�.�p�r�e�p�a�r�e�F�o�r�m�(�)�,�t�h�i�s�.�h�i�d�e�E�r�r�o�r�s�(�)�,�t�h�i�s�.�e�l�e�m�e�n�t�s�(�)�.�r�e�m�o�v�e�C�l�a�s�s�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�C�l�a�s�s�)�.�r�e�m�o�v�e�D�a�t�a�(�"�p�r�e�v�i�o�u�s�V�a�l�u�e�"�)�}�,�n�u�m�b�e�r�O�f�I�n�v�a�l�i�d�s�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�b�j�e�c�t�L�e�n�g�t�h�(�t�h�i�s�.�i�n�v�a�l�i�d�)�}�,�o�b�j�e�c�t�L�e�n�g�t�h�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�0�;�f�o�r�(�e� �i�n� �t�)�i�+�+�;�r�e�t�u�r�n� �i�}�,�h�i�d�e�E�r�r�o�r�s�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�a�d�d�W�r�a�p�p�e�r�(�t�h�i�s�.�t�o�H�i�d�e�)�.�h�i�d�e�(�)�}�,�v�a�l�i�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �0�=�=�=�t�h�i�s�.�s�i�z�e�(�)�}�,�s�i�z�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�r�r�o�r�L�i�s�t�.�l�e�n�g�t�h�}�,�f�o�c�u�s�I�n�v�a�l�i�d�:�f�u�n�c�t�i�o�n�(�)�{�i�f�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�f�o�c�u�s�I�n�v�a�l�i�d�)�t�r�y�{�l�(�t�h�i�s�.�f�i�n�d�L�a�s�t�A�c�t�i�v�e�(�)�|�|�t�h�i�s�.�e�r�r�o�r�L�i�s�t�.�l�e�n�g�t�h�&�&�t�h�i�s�.�e�r�r�o�r�L�i�s�t�[�0�]�.�e�l�e�m�e�n�t�|�|�[�]�)�.�f�i�l�t�e�r�(�"�:�v�i�s�i�b�l�e�"�)�.�f�o�c�u�s�(�)�.�t�r�i�g�g�e�r�(�"�f�o�c�u�s�i�n�"�)�}�c�a�t�c�h�(�t�)�{�}�}�,�f�i�n�d�L�a�s�t�A�c�t�i�v�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�.�l�a�s�t�A�c�t�i�v�e�;�r�e�t�u�r�n� �e�&�&�1�=�=�=�l�.�g�r�e�p�(�t�h�i�s�.�e�r�r�o�r�L�i�s�t�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�e�l�e�m�e�n�t�.�n�a�m�e�=�=�=�e�.�n�a�m�e�}�)�.�l�e�n�g�t�h�&�&�e�}�,�e�l�e�m�e�n�t�s�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�,�e�=�{�}�;�r�e�t�u�r�n� �l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�.�f�i�n�d�(�"�i�n�p�u�t�,� �s�e�l�e�c�t�,� �t�e�x�t�a�r�e�a�"�)�.�n�o�t�(�"�:�s�u�b�m�i�t�,� �:�r�e�s�e�t�,� �:�i�m�a�g�e�,� �[�d�i�s�a�b�l�e�d�]�"�)�.�n�o�t�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�i�g�n�o�r�e�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�t�h�i�s�.�n�a�m�e�&�&�t�.�s�e�t�t�i�n�g�s�.�d�e�b�u�g�&�&�w�i�n�d�o�w�.�c�o�n�s�o�l�e�&�&�c�o�n�s�o�l�e�.�e�r�r�o�r�(�"�%�o� �h�a�s� �n�o� �n�a�m�e� �a�s�s�i�g�n�e�d�"�,�t�h�i�s�)�,�!�(�t�h�i�s�.�n�a�m�e� �i�n� �e�|�|�!�t�.�o�b�j�e�c�t�L�e�n�g�t�h�(�l�(�t�h�i�s�)�.�r�u�l�e�s�(�)�)�)�&�&�(�e�[�t�h�i�s�.�n�a�m�e�]�=�!�0�)�}�)�}�,�c�l�e�a�n�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �l�(�t�)�[�0�]�}�,�e�r�r�o�r�s�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�C�l�a�s�s�.�r�e�p�l�a�c�e�(�"� �"�,�"�.�"�)�;�r�e�t�u�r�n� �l�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�E�l�e�m�e�n�t�+�"�.�"�+�t�,�t�h�i�s�.�e�r�r�o�r�C�o�n�t�e�x�t�)�}�,�r�e�s�e�t�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�u�c�c�e�s�s�L�i�s�t�=�[�]�,�t�h�i�s�.�e�r�r�o�r�L�i�s�t�=�[�]�,�t�h�i�s�.�e�r�r�o�r�M�a�p�=�{�}�,�t�h�i�s�.�t�o�S�h�o�w�=�l�(�[�]�)�,�t�h�i�s�.�t�o�H�i�d�e�=�l�(�[�]�)�,�t�h�i�s�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�=�l�(�[�]�)�}�,�p�r�e�p�a�r�e�F�o�r�m�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�r�e�s�e�t�(�)�,�t�h�i�s�.�t�o�H�i�d�e�=�t�h�i�s�.�e�r�r�o�r�s�(�)�.�a�d�d�(�t�h�i�s�.�c�o�n�t�a�i�n�e�r�s�)�}�,�p�r�e�p�a�r�e�E�l�e�m�e�n�t�:�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�r�e�s�e�t�(�)�,�t�h�i�s�.�t�o�H�i�d�e�=�t�h�i�s�.�e�r�r�o�r�s�F�o�r�(�t�)�}�,�e�l�e�m�e�n�t�V�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�l�(�t�)�.�a�t�t�r�(�"�t�y�p�e�"�)�,�i�=�l�(�t�)�.�v�a�l�(�)�;�r�e�t�u�r�n�"�r�a�d�i�o�"�=�=�=�e�|�|�"�c�h�e�c�k�b�o�x�"�=�=�=�e�?�l�(�'�i�n�p�u�t�[�n�a�m�e�=�"�'�+�l�(�t�)�.�a�t�t�r�(�"�n�a�m�e�"�)�+�'�"�]�:�c�h�e�c�k�e�d�'�)�.�v�a�l�(�)�:�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �i�?�i�.�r�e�p�l�a�c�e�(�/�\�r�/�g�,�"�"�)�:�i�}�,�c�h�e�c�k�:�f�u�n�c�t�i�o�n�(�e�)�{�e�=�t�h�i�s�.�v�a�l�i�d�a�t�i�o�n�T�a�r�g�e�t�F�o�r�(�t�h�i�s�.�c�l�e�a�n�(�e�)�)�;�v�a�r� �t�,�i�,�n�=�l�(�e�)�.�r�u�l�e�s�(�)�,�o�=�!�1�,�s�=�t�h�i�s�.�e�l�e�m�e�n�t�V�a�l�u�e�(�e�)�;�f�o�r�(�i� �i�n� �n�)�{�v�a�r� �r�=�{�m�e�t�h�o�d�:�i�,�p�a�r�a�m�e�t�e�r�s�:�n�[�i�]�}�;�t�r�y�{�i�f�(�"�d�e�p�e�n�d�e�n�c�y�-�m�i�s�m�a�t�c�h�"�=�=�=�(�t�=�l�.�v�a�l�i�d�a�t�o�r�.�m�e�t�h�o�d�s�[�i�]�.�c�a�l�l�(�t�h�i�s�,�s�,�e�,�r�.�p�a�r�a�m�e�t�e�r�s�)�)�)�{�o�=�!�0�;�c�o�n�t�i�n�u�e�}�i�f�(�o�=�!�1�,�"�p�e�n�d�i�n�g�"�=�=�=�t�)�r�e�t�u�r�n� �v�o�i�d�(�t�h�i�s�.�t�o�H�i�d�e�=�t�h�i�s�.�t�o�H�i�d�e�.�n�o�t�(�t�h�i�s�.�e�r�r�o�r�s�F�o�r�(�e�)�)�)�;�i�f�(�!�t�)�r�e�t�u�r�n� �t�h�i�s�.�f�o�r�m�a�t�A�n�d�A�d�d�(�e�,�r�)�,�!�1�}�c�a�t�c�h�(�t�)�{�t�h�r�o�w� �t�h�i�s�.�s�e�t�t�i�n�g�s�.�d�e�b�u�g�&�&�w�i�n�d�o�w�.�c�o�n�s�o�l�e�&�&�c�o�n�s�o�l�e�.�l�o�g�(�"�e�x�c�e�p�t�i�o�n� �o�c�c�u�r�e�d� �w�h�e�n� �c�h�e�c�k�i�n�g� �e�l�e�m�e�n�t� �"�+�e�.�i�d�+�"�,� �c�h�e�c�k� �t�h�e� �'�"�+�r�.�m�e�t�h�o�d�+�"�'� �m�e�t�h�o�d�"�,�t�)�,�t�}�}�i�f�(�!�o�)�r�e�t�u�r�n� �t�h�i�s�.�o�b�j�e�c�t�L�e�n�g�t�h�(�n�)�&�&�t�h�i�s�.�s�u�c�c�e�s�s�L�i�s�t�.�p�u�s�h�(�e�)�,�!�0�}�,�c�u�s�t�o�m�M�e�t�a�M�e�s�s�a�g�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�l�.�m�e�t�a�d�a�t�a�)�r�e�t�u�r�n� �t�=�t�h�i�s�.�s�e�t�t�i�n�g�s�.�m�e�t�a�?�l�(�t�)�.�m�e�t�a�d�a�t�a�(�)�[�t�h�i�s�.�s�e�t�t�i�n�g�s�.�m�e�t�a�]�:�l�(�t�)�.�m�e�t�a�d�a�t�a�(�)�,�t�&�&�t�.�m�e�s�s�a�g�e�s�&�&�t�.�m�e�s�s�a�g�e�s�[�e�]�}�,�c�u�s�t�o�m�D�a�t�a�M�e�s�s�a�g�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �l�(�t�)�.�d�a�t�a�(�"�m�s�g�-�"�+�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�|�|�t�.�a�t�t�r�i�b�u�t�e�s�&�&�l�(�t�)�.�a�t�t�r�(�"�d�a�t�a�-�m�s�g�-�"�+�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�}�,�c�u�s�t�o�m�M�e�s�s�a�g�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�=�t�h�i�s�.�s�e�t�t�i�n�g�s�.�m�e�s�s�a�g�e�s�[�t�]�;�r�e�t�u�r�n� �t�&�&�(�t�.�c�o�n�s�t�r�u�c�t�o�r�=�=�=�S�t�r�i�n�g�?�t�:�t�[�e�]�)�}�,�f�i�n�d�D�e�f�i�n�e�d�:�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�0�;�t�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�t�+�+�)�i�f�(�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�t�]�)�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�[�t�]�}�,�d�e�f�a�u�l�t�M�e�s�s�a�g�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�f�i�n�d�D�e�f�i�n�e�d�(�t�h�i�s�.�c�u�s�t�o�m�M�e�s�s�a�g�e�(�t�.�n�a�m�e�,�e�)�,�t�h�i�s�.�c�u�s�t�o�m�D�a�t�a�M�e�s�s�a�g�e�(�t�,�e�)�,�t�h�i�s�.�c�u�s�t�o�m�M�e�t�a�M�e�s�s�a�g�e�(�t�,�e�)�,�!�t�h�i�s�.�s�e�t�t�i�n�g�s�.�i�g�n�o�r�e�T�i�t�l�e�&�&�t�.�t�i�t�l�e�|�|�v�o�i�d� �0�,�l�.�v�a�l�i�d�a�t�o�r�.�m�e�s�s�a�g�e�s�[�e�]�,�"�<�s�t�r�o�n�g�>�W�a�r�n�i�n�g�:� �N�o� �m�e�s�s�a�g�e� �d�e�f�i�n�e�d� �f�o�r� �"�+�t�.�n�a�m�e�+�"�<�/�s�t�r�o�n�g�>�"�)�}�,�f�o�r�m�a�t�A�n�d�A�d�d�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�d�e�f�a�u�l�t�M�e�s�s�a�g�e�(�t�,�e�.�m�e�t�h�o�d�)�,�n�=�/�\�$�?�\�{�(�\�d�+�)�\�}�/�g�;�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �i�?�i�=�i�.�c�a�l�l�(�t�h�i�s�,�e�.�p�a�r�a�m�e�t�e�r�s�,�t�)�:�n�.�t�e�s�t�(�i�)�&�&�(�i�=�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�(�i�.�r�e�p�l�a�c�e�(�n�,�"�{�$�1�}�"�)�,�e�.�p�a�r�a�m�e�t�e�r�s�)�)�,�t�h�i�s�.�e�r�r�o�r�L�i�s�t�.�p�u�s�h�(�{�m�e�s�s�a�g�e�:�i�,�e�l�e�m�e�n�t�:�t�}�)�,�t�h�i�s�.�e�r�r�o�r�M�a�p�[�t�.�n�a�m�e�]�=�i�,�t�h�i�s�.�s�u�b�m�i�t�t�e�d�[�t�.�n�a�m�e�]�=�i�}�,�a�d�d�W�r�a�p�p�e�r�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�=�t�h�i�s�.�s�e�t�t�i�n�g�s�.�w�r�a�p�p�e�r�?�t�.�a�d�d�(�t�.�p�a�r�e�n�t�(�t
1�h�i�s�.�s�e�t�t�i�n�g�s�.�w�r�a�p�p�e�r�)�)�:�t�}�,�d�e�f�a�u�l�t�S�h�o�w�E�r�r�o�r�s�:�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�,�e�=�0�;�t�h�i�s�.�e�r�r�o�r�L�i�s�t�[�e�]�;�e�+�+�)�{�v�a�r� �i�=�t�h�i�s�.�e�r�r�o�r�L�i�s�t�[�e�]�;�t�h�i�s�.�s�e�t�t�i�n�g�s�.�h�i�g�h�l�i�g�h�t�&�&�t�h�i�s�.�s�e�t�t�i�n�g�s�.�h�i�g�h�l�i�g�h�t�.�c�a�l�l�(�t�h�i�s�,�i�.�e�l�e�m�e�n�t�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�C�l�a�s�s�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�v�a�l�i�d�C�l�a�s�s�)�,�t�h�i�s�.�s�h�o�w�L�a�b�e�l�(�i�.�e�l�e�m�e�n�t�,�i�.�m�e�s�s�a�g�e�)�}�i�f�(�t�h�i�s�.�e�r�r�o�r�L�i�s�t�.�l�e�n�g�t�h�&�&�(�t�h�i�s�.�t�o�S�h�o�w�=�t�h�i�s�.�t�o�S�h�o�w�.�a�d�d�(�t�h�i�s�.�c�o�n�t�a�i�n�e�r�s�)�)�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�s�u�c�c�e�s�s�)�f�o�r�(�e�=�0�;�t�h�i�s�.�s�u�c�c�e�s�s�L�i�s�t�[�e�]�;�e�+�+�)�t�h�i�s�.�s�h�o�w�L�a�b�e�l�(�t�h�i�s�.�s�u�c�c�e�s�s�L�i�s�t�[�e�]�)�;�i�f�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�u�n�h�i�g�h�l�i�g�h�t�)�f�o�r�(�e�=�0�,�t�=�t�h�i�s�.�v�a�l�i�d�E�l�e�m�e�n�t�s�(�)�;�t�[�e�]�;�e�+�+�)�t�h�i�s�.�s�e�t�t�i�n�g�s�.�u�n�h�i�g�h�l�i�g�h�t�.�c�a�l�l�(�t�h�i�s�,�t�[�e�]�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�C�l�a�s�s�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�v�a�l�i�d�C�l�a�s�s�)�;�t�h�i�s�.�t�o�H�i�d�e�=�t�h�i�s�.�t�o�H�i�d�e�.�n�o�t�(�t�h�i�s�.�t�o�S�h�o�w�)�,�t�h�i�s�.�h�i�d�e�E�r�r�o�r�s�(�)�,�t�h�i�s�.�a�d�d�W�r�a�p�p�e�r�(�t�h�i�s�.�t�o�S�h�o�w�)�.�s�h�o�w�(�)�}�,�v�a�l�i�d�E�l�e�m�e�n�t�s�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�.�n�o�t�(�t�h�i�s�.�i�n�v�a�l�i�d�E�l�e�m�e�n�t�s�(�)�)�}�,�i�n�v�a�l�i�d�E�l�e�m�e�n�t�s�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �l�(�t�h�i�s�.�e�r�r�o�r�L�i�s�t�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�l�e�m�e�n�t�}�)�}�,�s�h�o�w�L�a�b�e�l�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�e�r�r�o�r�s�F�o�r�(�t�)�;�i�.�l�e�n�g�t�h�?�(�i�.�r�e�m�o�v�e�C�l�a�s�s�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�v�a�l�i�d�C�l�a�s�s�)�.�a�d�d�C�l�a�s�s�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�C�l�a�s�s�)�,�i�.�a�t�t�r�(�"�g�e�n�e�r�a�t�e�d�"�)�&�&�i�.�h�t�m�l�(�e�)�)�:�(�i�=�l�(�"�<�"�+�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�E�l�e�m�e�n�t�+�"�/�>�"�)�.�a�t�t�r�(�{�f�o�r�:�t�h�i�s�.�i�d�O�r�N�a�m�e�(�t�)�,�g�e�n�e�r�a�t�e�d�:�!�0�}�)�.�a�d�d�C�l�a�s�s�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�C�l�a�s�s�)�.�h�t�m�l�(�e�|�|�"�"�)�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�w�r�a�p�p�e�r�&�&�(�i�=�i�.�h�i�d�e�(�)�.�s�h�o�w�(�)�.�w�r�a�p�(�"�<�"�+�t�h�i�s�.�s�e�t�t�i�n�g�s�.�w�r�a�p�p�e�r�+�"�/�>�"�)�.�p�a�r�e�n�t�(�)�)�,�t�h�i�s�.�l�a�b�e�l�C�o�n�t�a�i�n�e�r�.�a�p�p�e�n�d�(�i�)�.�l�e�n�g�t�h�|�|�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�P�l�a�c�e�m�e�n�t�?�t�h�i�s�.�s�e�t�t�i�n�g�s�.�e�r�r�o�r�P�l�a�c�e�m�e�n�t�(�i�,�l�(�t�)�)�:�i�.�i�n�s�e�r�t�A�f�t�e�r�(�t�)�)�)�,�!�e�&�&�t�h�i�s�.�s�e�t�t�i�n�g�s�.�s�u�c�c�e�s�s�&�&�(�i�.�t�e�x�t�(�"�"�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�h�i�s�.�s�e�t�t�i�n�g�s�.�s�u�c�c�e�s�s�?�i�.�a�d�d�C�l�a�s�s�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�s�u�c�c�e�s�s�)�:�t�h�i�s�.�s�e�t�t�i�n�g�s�.�s�u�c�c�e�s�s�(�i�,�t�)�)�,�t�h�i�s�.�t�o�S�h�o�w�=�t�h�i�s�.�t�o�S�h�o�w�.�a�d�d�(�i�)�}�,�e�r�r�o�r�s�F�o�r�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�i�d�O�r�N�a�m�e�(�t�)�;�r�e�t�u�r�n� �t�h�i�s�.�e�r�r�o�r�s�(�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �l�(�t�h�i�s�)�.�a�t�t�r�(�"�f�o�r�"�)�=�=�=�e�}�)�}�,�i�d�O�r�N�a�m�e�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�g�r�o�u�p�s�[�t�.�n�a�m�e�]�|�|�!�t�h�i�s�.�c�h�e�c�k�a�b�l�e�(�t�)�&�&�t�.�i�d�|�|�t�.�n�a�m�e�}�,�v�a�l�i�d�a�t�i�o�n�T�a�r�g�e�t�F�o�r�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�=�t�h�i�s�.�c�h�e�c�k�a�b�l�e�(�t�)�?�t�h�i�s�.�f�i�n�d�B�y�N�a�m�e�(�t�.�n�a�m�e�)�.�n�o�t�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�i�g�n�o�r�e�)�[�0�]�:�t�}�,�c�h�e�c�k�a�b�l�e�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�/�r�a�d�i�o�|�c�h�e�c�k�b�o�x�/�i�.�t�e�s�t�(�t�.�t�y�p�e�)�}�,�f�i�n�d�B�y�N�a�m�e�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�.�f�i�n�d�(�'�[�n�a�m�e�=�"�'�+�t�+�'�"�]�'�)�}�,�g�e�t�L�e�n�g�t�h�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�s�w�i�t�c�h�(�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�{�c�a�s�e�"�s�e�l�e�c�t�"�:�r�e�t�u�r�n� �l�(�"�o�p�t�i�o�n�:�s�e�l�e�c�t�e�d�"�,�e�)�.�l�e�n�g�t�h�;�c�a�s�e�"�i�n�p�u�t�"�:�i�f�(�t�h�i�s�.�c�h�e�c�k�a�b�l�e�(�e�)�)�r�e�t�u�r�n� �t�h�i�s�.�f�i�n�d�B�y�N�a�m�e�(�e�.�n�a�m�e�)�.�f�i�l�t�e�r
1�(�"�:�c�h�e�c�k�e�d�"�)�.�l�e�n�g�t�h�}�r�e�t�u�r�n� �t�.�l�e�n�g�t�h�}�,�d�e�p�e�n�d�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n�!�t�h�i�s�.�d�e�p�e�n�d�T�y�p�e�s�[�t�y�p�e�o�f� �t�]�|�|�t�h�i�s�.�d�e�p�e�n�d�T�y�p�e�s�[�t�y�p�e�o�f� �t�]�(�t�,�e�)�}�,�d�e�p�e�n�d�T�y�p�e�s�:�{�b�o�o�l�e�a�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�}�,�s�t�r�i�n�g�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n�!�!�l�(�t�,�e�.�f�o�r�m�)�.�l�e�n�g�t�h�}�,�f�u�n�c�t�i�o�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�(�e�)�}�}�,�o�p�t�i�o�n�a�l�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�e�l�e�m�e�n�t�V�a�l�u�e�(�t�)�;�r�e�t�u�r�n�!�l�.�v�a�l�i�d�a�t�o�r�.�m�e�t�h�o�d�s�.�r�e�q�u�i�r�e�d�.�c�a�l�l�(�t�h�i�s�,�e�,�t�)�&�&�"�d�e�p�e�n�d�e�n�c�y�-�m�i�s�m�a�t�c�h�"�}�,�s�t�a�r�t�R�e�q�u�e�s�t�:�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�p�e�n�d�i�n�g�[�t�.�n�a�m�e�]�|�|�(�t�h�i�s�.�p�e�n�d�i�n�g�R�e�q�u�e�s�t�+�+�,�t�h�i�s�.�p�e�n�d�i�n�g�[�t�.�n�a�m�e�]�=�!�0�)�}�,�s�t�o�p�R�e�q�u�e�s�t�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�p�e�n�d�i�n�g�R�e�q�u�e�s�t�-�-�,�t�h�i�s�.�p�e�n�d�i�n�g�R�e�q�u�e�s�t�<�0�&�&�(�t�h�i�s�.�p�e�n�d�i�n�g�R�e�q�u�e�s�t�=�0�)�,�d�e�l�e�t�e� �t�h�i�s�.�p�e�n�d�i�n�g�[�t�.�n�a�m�e�]�,�e�&�&�0�=�=�=�t�h�i�s�.�p�e�n�d�i�n�g�R�e�q�u�e�s�t�&�&�t�h�i�s�.�f�o�r�m�S�u�b�m�i�t�t�e�d�&�&�t�h�i�s�.�f�o�r�m�(�)�?�(�l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�.�s�u�b�m�i�t�(�)�,�t�h�i�s�.�f�o�r�m�S�u�b�m�i�t�t�e�d�=�!�1�)�:�!�e�&�&�0�=�=�=�t�h�i�s�.�p�e�n�d�i�n�g�R�e�q�u�e�s�t�&�&�t�h�i�s�.�f�o�r�m�S�u�b�m�i�t�t�e�d�&�&�(�l�(�t�h�i�s�.�c�u�r�r�e�n�t�F�o�r�m�)�.�t�r�i�g�g�e�r�H�a�n�d�l�e�r�(�"�i�n�v�a�l�i�d�-�f�o�r�m�"�,�[�t�h�i�s�]�)�,�t�h�i�s�.�f�o�r�m�S�u�b�m�i�t�t�e�d�=�!�1�)�}�,�p�r�e�v�i�o�u�s�V�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �l�.�d�a�t�a�(�t�,�"�p�r�e�v�i�o�u�s�V�a�l�u�e�"�)�|�|�l�.�d�a�t�a�(�t�,�"�p�r�e�v�i�o�u�s�V�a�l�u�e�"�,�{�o�l�d�:�n�u�l�l�,�v�a�l�i�d�:�!�0�,�m�e�s�s�a�g�e�:�t�h�i�s�.�d�e�f�a�u�l�t�M�e�s�s�a�g�e�(�t�,�"�r�e�m�o�t�e�"�)�}�)�}�}�,�c�l�a�s�s�R�u�l�e�S�e�t�t�i�n�g�s�:�{�r�e�q�u�i�r�e�d�:�{�r�e�q�u�i�r�e�d�:�!�0�}�,�e�m�a�i�l�:�{�e�m�a�i�l�:�!�0�}�,�u�r�l�:�{�u�r�l�:�!�0�}�,�d�a�t�e�:�{�d�a�t�e�:�!�0�}�,�d�a�t�e�I�S�O�:�{�d�a�t�e�I�S�O�:�!�0�}�,�n�u�m�b�e�r�:�{�n�u�m�b�e�r�:�!�0�}�,�d�i�g�i�t�s�:�{�d�i�g�i�t�s�:�!�0�}�,�c�r�e�d�i�t�c�a�r�d�:�{�c�r�e�d�i�t�c�a�r�d�:�!�0�}�}�,�a�d�d�C�l�a�s�s�R�u�l�e�s�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�.�c�o�n�s�t�r�u�c�t�o�r�=�=�=�S�t�r�i�n�g�?�t�h�i�s�.�c�l�a�s�s�R�u�l�e�S�e�t�t�i�n�g�s�[�t�]�=�e�:�l�.�e�x�t�e�n�d�(�t�h�i�s�.�c�l�a�s�s�R�u�l�e�S�e�t�t�i�n�g�s�,�t�)�}�,�c�l�a�s�s�R�u�l�e�s�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�{�}�,�t�=�l�(�t�)�.�a�t�t�r�(�"�c�l�a�s�s�"�)�;�r�e�t�u�r�n� �t�&�&�l�.�e�a�c�h�(�t�.�s�p�l�i�t�(�"� �"�)�,�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s� �i�n� �l�.�v�a�l�i�d�a�t�o�r�.�c�l�a�s�s�R�u�l�e�S�e�t�t�i�n�g�s�&�&�l�.�e�x�t�e�n�d�(�e�,�l�.�v�a�l�i�d�a�t�o�r�.�c�l�a�s�s�R�u�l�e�S�e�t�t�i�n�g�s�[�t�h�i�s�]�)�}�)�,�e�}�,�a�t�t�r�i�b�u�t�e�R�u�l�e�s�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�{�}�,�n�=�l�(�t�)�;�f�o�r�(�e� �i�n� �l�.�v�a�l�i�d�a�t�o�r�.�m�e�t�h�o�d�s�)�{�v�a�r� �o�=�"�r�e�q�u�i�r�e�d�"�=�=�=�e�?�!�!�(�o�=�"�"�=�=�=�(�o�=�n�.�g�e�t�(�0�)�.�g�e�t�A�t�t�r�i�b�u�t�e�(�e�)�)�?�!�0�:�o�)�:�n�.�a�t�t�r�(�e�)�;�o�?�i�[�e�]�=�o�:�n�[�0�]�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�y�p�e�"�)�=�=�=�e�&�&�(�i�[�e�]�=�!�0�)�}�r�e�t�u�r�n� �i�.�m�a�x�l�e�n�g�t�h�&�&�/�-�1�|�2�1�4�7�4�8�3�6�4�7�|�5�2�4�2�8�8�/�.�t�e�s�t�(�i�.�m�a�x�l�e�n�g�t�h�)�&�&�d�e�l�e�t�e� �i�.�m�a�x�l�e�n�g�t�h�,�i�}�,�m�e�t�a�d�a�t�a�R�u�l�e�s�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�l�.�m�e�t�a�d�a�t�a�)�r�e�t�u�r�n�{�}�;�v�a�r� �e�=�l�.�d�a�t�a�(�t�.�f�o�r�m�,�"�v�a�l�i�d�a�t�o�r�"�)�.�s�e�t�t�i�n�g�s�.�m�e�t�a�;�r�e�t�u�r�n� �e�?�l�(�t�)�.�m�e�t�a�d�a�t�a�(�)�[�e�]�:�l�(�t�)�.�m�e�t�a�d�a�t�a�(�)�}�,�s�t�a�t�i�c�R�u�l�e�s�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�{�}�,�i�=�l�.�d�a�t�a�(�t�.�f�o�r�m�,�"�v�a�l�i�d�a�t�o�r�"�)�;�r�e�t�u�r�n� �e�=�i�.�s�e�t�t�i�n�g�s�.�r�u�l�e�s�?�l�.�v�a�l�i�d�a�t�o�r�.�n�o�r�m�a�l�i�z�e�R�u�l�e�(�i�.�s�e�t�t�i�n�g�s�.�r�u�l�e�s�[�t�.�n�a�m�e�]�)�|�|�{�}�:�e�}�,�n�o�r�m�a�l�i�z�e�R�u�l�e�s�:�f�u�n�c�t�i�o�n�(�n�,�o�)�{�r�e�t�u�r�n� �l�.�e�a�c�h�(�n�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�!�1�=�=�=�e�)�d�e�l�e�t�e� �n�[�t�]�;�e�l�s�e� �i�f�(�e�.�p�a�r�a�m�|�|�e�.�d�e�p�e�n�d�s�)�{�v�a�r� �i�=�!�0�;�s�w�i�t�c�h�(�t�y�p�e�o�f� �e�.�d�e�p�e�n�d�s�)�{�c�a�s�e�"�s�t�r�i�n�g�"�:�i�=�!�!�l�(�e�.�d�e�p�e�n�d�s�,�o�.�f�o�r�m�)�.�l�e�n�g�t�h�;�b�r�e�a�k�;�c�a�s�e�"�f�u�n�c�t�i�o�n�"�:�i�=�e�.�d�e�p�e�n�d�s�.�c�a�l�l�(�o�,�o�)�}�i�?�n�[�t�]�=�v�o�i�d� �0�=�=�=�e�.�p�a�r�a�m�|�|�e�.�p�a�r�a�m�:�d�e�l�e�t�e� �n�[�t�]�}�}�)�,�l�.�e�a�c�h�(�n�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�n�[�t�]�=�l�.�i�s�F�u�n�c�t�i�o�n�(�e�)�?�e�(�o�)�:�e�}�)�,�l�.�e�a�c�h�(�[�"�m�i�n�l�e�n�g�t�h�"�,�"�m�a�x�l�e�n�g�t�h�"�,�"�m�i�n�"�,�"�m�a�x�"�]�,�f�u�n�c�t�i�o�n�(�)�{�n�[�t�h�i�s�]�&�&�(�n�[�t�h�i�s�]�=�N�u�m�b�e�r�(�n�[�t�h�i�s�]�)�)�}�)�,�l�.�e�a�c�h�(�[�"�r�a�n�g�e�l�e�n�g�t�h�"�,�"�r�a�n�g�e�"�]�,�f�u�n�c�t�i�o�n�(�)�{�n�[�t�h�i�s�]�&�&�(�n�[�t�h�i�s�]�=�[�N�u�m�b�e�r�(�n�[�t�h�i�s�]�[�0�]�)�,�N�u�m�b�e�r�(�n�[�t�h�i�s�]�[�1�]�)�]�)�}�)�,�l�.�v�a�l�i�d�a�t�o�r�.�a�u�t�o�C�r�e�a�t�e�R�a�n�g�e�s�&�&�(�n�.�m�i�n�&�&�n�.�m�a�x�&�&�(�n�.�r�a�n�g�e�=�[�n�.�m�i�n�,�n�.�m�a�x�]�,�d�e�l�e�t�e� �n�.�m�i�n�,�d�e�l�e�t�e� �n�.�m�a�x�)�,�n�.�m�i�n�l�e�n�g�t�h�&�&�n�.�m�a�x�l�e�n�g�t�h�&�&�(�n�.�r�a�n�g�e�l�e�n�g�t�h�=�[�n�.�m�i�n�l�e�n�g�t�h�,�n�.�m�a�x�l�e�n�g�t�h�]�,�d�e�l�e�t�e� �n�.�m�i�n�l�e�n�g�t�h�,�d�e�l�e�t�e� �n�.�m�a�x�l�e�n�g�t�h�)�)�,�n�.�m�e�s�s�a�g�e�s�&�&�d�e�l�e�t�e� �n�.�m�e�s�s�a�g�e�s�,�n�}�,�n�o�r�m�a�l�i�z�e�R�u�l�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�r�e�t�u�r�n�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�&�&�(�e�=�{�}�,�l�.�e�a�c�h�(�t�.�s�p�l�i�t�(�/�\�s�/�)�,�f�u�n�c�t�i�o�n�(�)�{�e�[�t�h�i�s�]�=�!�0�}�)�,�t�=�e�)�,�t�}�,�a�d�d�M�e�t�h�o�d�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�l�.�v�a�l�i�d�a�t�o�r�.�m�e�t�h�o�d�s�[�t�]�=�e�,�l�.�v�a�l�i�d�a�t�o�r�.�m�e�s�s�a�g�e�s�[�t�]�=�v�o�i�d� �0�!�=�=�i�?�i�:�l�.�v�a�l�i�d�a�t�o�r�.�m�e�s�s�a�g�e�s�[�t�]�,�e�.�l�e�n�g�t�h�<�3�&�&�l�.�v�a�l�i�d�a�t�o�r�.�a�d�d�C�l�a�s�s�R�u�l�e�s�(�t�,�l�.�v�a�l�i�d�a�t�o�r�.�n�o�r�m�a�l�i�z�e�R�u�l�e�(�t�)�)�}�,�m�e�t�h�o�d�s�:�{�r�e�q�u�i�r�e�d�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�d�e�p�e�n�d�(�i�,�e�)�?�"�s�e�l�e�c�t�"�=�=�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�?�(�i�=�l�(�e�)�.�v�a�l�(�)�)�&�&�0�<�i�.�l�e�n�g�t�h�:�t�h�i�s�.�c�h�e�c�k�a�b�l�e�(�e�)�?�0�<�t�h�i�s�.�g�e�t�L�e�n�g�t�h�(�t�,�e�)�:�0�<�l�.�t�r�i�m�(�t�)�.�l�e�n�g�t�h�:�"�d�e�p�e�n�d�e�n�c�y�-�m�i�s�m�a�t�c�h�"�}�,�r�e�m�o�t�e�:�f�u�n�c�t�i�o�n�(�n�,�o�,�t�)�{�i�f�(�t�h�i�s�.�o�p�t�i�o�n�a�l�(�o�)�)�r�e�t�u�r�n�"�d�e�p�e�n�d�e�n�c�y�-�m�i�s�m�a�t�c�h�"�;�v�a�r� �s�=�t�h�i�s�.�p�r�e�v�i�o�u�s�V�a�l�u�e�(�o�)�;�i�f�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�m�e�s�s�a�g�e�s�[�o�.�n�a�m�e�]�|�|�(�t�h�i�s�.�s�e�t�t�i�n�g�s�.�m�e�s�s�a�g�e�s�[�o�.�n�a�m�e�]�=�{�}�)�,�s�.�o�r�i�g�i�n�a�l�M�e�s�s�a�g�e�=�t�h�i�s�.�s�e�t�t�i�n�g�s�.�m�e�s�s�a�g�e�s�[�o�.�n�a�m�e�]�.�r�e�m�o�t�e�,�t�h�i�s�.�s�e�t�t�i�n�g�s�.�m�e�s�s�a�g�e�s�[�o�.�n�a�m�e�]�.�r�e�m�o�t�e�=�s�.�m�e�s�s�a�g�e�,�t�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�?�{�u�r�l�:�t�}
1�:�t�,�t�h�i�s�.�p�e�n�d�i�n�g�[�o�.�n�a�m�e�]�)�r�e�t�u�r�n�"�p�e�n�d�i�n�g�"�;�i�f�(�s�.�o�l�d�=�=�=�n�)�r�e�t�u�r�n� �s�.�v�a�l�i�d�;�s�.�o�l�d�=�n�;�v�a�r� �r�=�t�h�i�s�,�e�=�(�t�h�i�s�.�s�t�a�r�t�R�e�q�u�e�s�t�(�o�)�,�{�}�)�;�r�e�t�u�r�n� �e�[�o�.�n�a�m�e�]�=�n�,�l�.�a�j�a�x�(�l�.�e�x�t�e�n�d�(�!�0�,�{�u�r�l�:�t�,�m�o�d�e�:�"�a�b�o�r�t�"�,�p�o�r�t�:�"�v�a�l�i�d�a�t�e�"�+�o�.�n�a�m�e�,�d�a�t�a�T�y�p�e�:�"�j�s�o�n�"�,�d�a�t�a�:�e�,�s�u�c�c�e�s�s�:�f�u�n�c�t�i�o�n�(�t�)�{�r�.�s�e�t�t�i�n�g�s�.�m�e�s�s�a�g�e�s�[�o�.�n�a�m�e�]�.�r�e�m�o�t�e�=�s�.�o�r�i�g�i�n�a�l�M�e�s�s�a�g�e�;�v�a�r� �e�,�i�=�!�0�=�=�=�t�|�|�"�t�r�u�e�"�=�=�=�t�;�i�?�(�e�=�r�.�f�o�r�m�S�u�b�m�i�t�t�e�d�,�r�.�p�r�e�p�a�r�e�E�l�e�m�e�n�t�(�o�)�,�r�.�f�o�r�m�S�u�b�m�i�t�t�e�d�=�e�,�r�.�s�u�c�c�e�s�s�L�i�s�t�.�p�u�s�h�(�o�)�,�d�e�l�e�t�e� �r�.�i�n�v�a�l�i�d�[�o�.�n�a�m�e�]�,�r�.�s�h�o�w�E�r�r�o�r�s�(�)�)�:�(�e�=�{�}�,�t�=�t�|�|�r�.�d�e�f�a�u�l�t�M�e�s�s�a�g�e�(�o�,�"�r�e�m�o�t�e�"�)�,�e�[�o�.�n�a�m�e�]�=�s�.�m�e�s�s�a�g�e�=�l�.�i�s�F�u�n�c�t�i�o�n�(�t�)�?�t�(�n�)�:�t�,�r�.�i�n�v�a�l�i�d�[�o�.�n�a�m�e�]�=�!�0�,�r�.�s�h�o�w�E�r�r�o�r�s�(�e�)�)�,�s�.�v�a�l�i�d�=�i�,�r�.�s�t�o�p�R�e�q�u�e�s�t�(�o�,�i�)�}�}�,�t�)�)�,�"�p�e�n�d�i�n�g�"�}�,�m�i�n�l�e�n�g�t�h�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�t�=�l�.�i�s�A�r�r�a�y�(�t�)�?�t�.�l�e�n�g�t�h�:�t�h�i�s�.�g�e�t�L�e�n�g�t�h�(�l�.�t�r�i�m�(�t�)�,�e�)�;�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�i�<�=�t�}�,�m�a�x�l�e�n�g�t�h�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�t�=�l�.�i�s�A�r�r�a�y�(�t�)�?�t�.�l�e�n�g�t�h�:�t�h�i�s�.�g�e�t�L�e�n�g�t�h�(�l�.�t�r�i�m�(�t�)�,�e�)�;�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�t�<�=�i�}�,�r�a�n�g�e�l�e�n�g�t�h�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�t�=�l�.�i�s�A�r�r�a�y�(�t�)�?�t�.�l�e�n�g�t�h�:�t�h�i�s�.�g�e�t�L�e�n�g�t�h�(�l�.�t�r�i�m�(�t�)�,�e�)�;�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�t�>�=�i�[�0�]�&�&�t�<�=�i�[�1�]�}�,�m�i�n�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�i�<�=�t�}�,�m�a�x�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�t�<�=�i�}�,�r�a�n�g�e�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�t�>�=�i�[�0�]�&�&�t�<�=�i�[�1�]�}�,�e�m�a�i�l�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�/�^�(�(�(�[�a�-�z�]�|�\�d�|�[�!�#�\�$�%�&�'�\�*�\�+�\�-�\�/�=�\�?�\�^�_�`�{�\�|�}�~�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�+�(�\�.�(�[�a�-�z�]�|�\�d�|�[�!�#�\�$�%�&�'�\�*�\�+�\�-�\�/�=�\�?�\�^�_�`�{�\�|�}�~�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�+�)�*�)�|�(�(�\�x�2�2�)�(�(�(�(�\�x�2�0�|�\�x�0�9�)�*�(�\�x�0�d�\�x�0�a�)�)�?�(�\�x�2�0�|�\�x�0�9�)�+�)�?�(�(�[�\�x�0�1�-�\�x�0�8�\�x�0�b�\�x�0�c�\�x�0�e�-�\�x�1�f�\�x�7�f�]�|�\�x�2�1�|�[�\�x�2�3�-�\�x�5�b�]�|�[�\�x�5�d�-�\�x�7�e�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�\�\�(�[�\�x�0�1�-�\�x�0�9�\�x�0�b�\�x�0�c�\�x�0�d�-�\�x�7�f�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�)�)�)�*�(�(�(�\�x�2�0�|�\�x�0�9�)�*�(�\�x�0�d�\�x�0�a�)�)�?�(�\�x�2�0�|�\�x�0�9�)�+�)�?�(�\�x�2�2�)�)�)�@�(�(�(�[�a�-�z�]�|�\�d�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�(�[�a�-�z�]�|�\�d�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�*�(�[�a�-�z�]�|�\�d�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�)�)�\�.�)�+�(�(�[�a�-�z�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�(�[�a�-�z�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�*�(�[�a�-�z�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�)�)�$�/�i�.�t�e�s�t�(�t
1�)�}�,�u�r�l�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�/�^�(�h�t�t�p�s�?�|�f�t�p�)�:�\�/�\�/�(�(�(�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�%�[�\�d�a�-�f�]�{�2�}�)�|�[�!�\�$�&�'�\�(�\�)�\�*�\�+�,�;�=�]�|�:�)�*�@�)�?�(�(�(�\�d�|�[�1�-�9�]�\�d�|�1�\�d�\�d�|�2�[�0�-�4�]�\�d�|�2�5�[�0�-�5�]�)�\�.�(�\�d�|�[�1�-�9�]�\�d�|�1�\�d�\�d�|�2�[�0�-�4�]�\�d�|�2�5�[�0�-�5�]�)�\�.�(�\�d�|�[�1�-�9�]�\�d�|�1�\�d�\�d�|�2�[�0�-�4�]�\�d�|�2�5�[�0�-�5�]�)�\�.�(�\�d�|�[�1�-�9�]�\�d�|�1�\�d�\�d�|�2�[�0�-�4�]�\�d�|�2�5�[�0�-�5�]�)�)�|�(�(�(�[�a�-�z�]�|�\�d�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�(�[�a�-�z�]�|�\�d�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�*�(�[�a�-�z�]�|�\�d�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�)�)�\�.�)�+�(�(�[�a�-�z�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�(�[�a�-�z�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�*�(�[�a�-�z�]�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�)�)�\�.�?�)�(�:�\�d�*�)�?�)�(�\�/�(�(�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�%�[�\�d�a�-�f�]�{�2�}�)�|�[�!�\�$�&�'�\�(�\�)�\�*�\�+�,�;�=�]�|�:�|�@�)�+�(�\�/�(�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�%�[�\�d�a�-�f�]�{�2�}�)�|�[�!�\�$�&�'�\�(�\�)�\�*�\�+�,�;�=�]�|�:�|�@�)�*�)�*�)�?�)�?�(�\�?�(�(�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�%�[�\�d�a�-�f�]�{�2�}�)�|�[�!�\�$�&�'�\�(�\�)�\�*�\�+�,�;�=�]�|�:�|�@�)�|�[�\�u�E�0�0�0�-�\�u�F�8�F�F�]�|�\�/�|�\�?�)�*�)�?�(�\�#�(�(�(�[�a�-�z�]�|�\�d�|�-�|�\�.�|�_�|�~�|�[�\�u�0�0�A�0�-�\�u�D�7�F�F�\�u�F�9�0�0�-�\�u�F�D�C�F�\�u�F�D�F�0�-�\�u�F�F�E�F�]�)�|�(�%�[�\�d�a�-�f�]�{�2�}�)�|�[�!�\�$�&�'�\�(�\�)�\�*�\�+�,�;�=�]�|�:�|�@�)�|�\�/�|�\�?�)�*�)�?�$�/�i�.�t�e�s�t�(�t�)�}�,�d�a�t�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�!�/�I�n�v�a�l�i�d�|�N�a�N�/�.�t�e�s�t�(�n�e�w� �D�a�t�e�(�t�)�)�}�,�d�a�t�e�I�S�O�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�/�^�\�d�{�4�}�[�\�/�\�-�]�\�d�{�1�,�2�}�[�\�/�\�-�]�\�d�{�1�,�2�}�$�/�.�t�e�s�t�(�t�)�}�,�n�u�m�b�e�r�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�/�^�-�?�(�?�:�\�d�+�|�\�d�{�1�,�3�}�(�?�:�,�\�d�{�3�}�)�+�)�?�(�?�:�\�.�\�d�+�)�?�$�/�.�t�e�s�t�(�t�)�}�,�d�i�g�i�t�s�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�|�|�/�^�\�d�+�$�/�.�t�e�s�t�(�t�)�}�,�c�r�e�d�i�t�c�a�r�d�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�t�h�i�s�.�o�p�t�i�o�n�a�l�(�e�)�)�r�e�t�u�r�n�"�d�e�p�e�n�d�e�n�c�y�-�m�i�s�m�a�t�c�h�"�;�i�f�(�/�[�^�0�-�9� �\�-�]�+�/�.�t�e�s�t�(�t�)�)�r�e�t�u�r�n�!�1�;�f�o�r�(�v�a�r� �i�=�0�,�n�=�0�,�o�=�!�1�,�s�=�(�t�=�t�.�r�e�p�l�a�c�e�(�/�\�D�/�g�,�"�"�)�)�.�l�e�n�g�t�h�-�1�;�0�<�=�s�;�s�-�-�)�{�v�a�r� �r�=�t�.�c�h�a�r�A�t�(�s�)�,�n�=�p�a�r�s�e�I�n�t�(�r�,�1�0�)�;�o�&�&�9�<�(�n�*�=�2�)�&�&�(�n�-�=�9�)�,�i�+�=�n�,�o�=�!�o�}�r�e�t�u�r�n� �i�%�1�0�=�=�0�}�,�e�q�u�a�l�T�o�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�i�=�l�(�i�)�;�r�e�t�u�r�n� �t�h�i�s�.�s�e�t�t�i�n�g�s�.�o�n�f�o�c�u�s�o�u�t�&�&�i�.�u�n�b�i�n�d�(�"�.�v�a�l�i�d�a�t�e�-�e�q�u�a�l�T�o�"�)�.�b�i�n�d�(�"�b�l�u�r�.�v�a�l�i�d�a�t�e�-�e�q�u�a�l�T�o�"�,�f�u�n�c�t�i�o�n�(�)�{�l�(�e�)�.�v�a�l�i�d�(�)�}�)�,�t�=�=�=�i�.�v�a�l�(�)�}�}�}�)�,�l�.�f�o�r�m�a�t�=�l�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�}�(�j�Q�u�e�r�y�)�,�!�f�u�n�c�t�i�o�n�(�n�)�{�v�a�r� �o�,�s�=�{�}�;
1�n�.�a�j�a�x�P�r�e�f�i�l�t�e�r�?�n�.�a�j�a�x�P�r�e�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�=�t�.�p�o�r�t�;�"�a�b�o�r�t�"�=�=�=�t�.�m�o�d�e�&�&�(�s�[�n�]�&�&�s�[�n�]�.�a�b�o�r�t�(�)�,�s�[�n�]�=�i�)�}�)�:�(�o�=�n�.�a�j�a�x�,�n�.�a�j�a�x�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�(�"�m�o�d�e�"�i�n� �t�?�t�:�n�.�a�j�a�x�S�e�t�t�i�n�g�s�)�.�m�o�d�e�,�i�=�(�"�p�o�r�t�"�i�n� �t�?�t�:�n�.�a�j�a�x�S�e�t�t�i�n�g�s�)�.�p�o�r�t�;�r�e�t�u�r�n�"�a�b�o�r�t�"�=�=�=�e�?�(�s�[�i�]�&�&�s�[�i�]�.�a�b�o�r�t�(�)�,�s�[�i�]�=�o�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�)�:�o�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�}�)�}�(�j�Q�u�e�r�y�)�,�!�f�u�n�c�t�i�o�n�(�o�)�{�j�Q�u�e�r�y�.�e�v�e�n�t�.�s�p�e�c�i�a�l�.�f�o�c�u�s�i�n�|�|�j�Q�u�e�r�y�.�e�v�e�n�t�.�s�p�e�c�i�a�l�.�f�o�c�u�s�o�u�t�|�|�!�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�|�|�o�.�e�a�c�h�(�{�f�o�c�u�s�:�"�f�o�c�u�s�i�n�"�,�b�l�u�r�:�"�f�o�c�u�s�o�u�t�"�}�,�f�u�n�c�t�i�o�n�(�t�,�i�)�{�f�u�n�c�t�i�o�n� �e�(�t�)�{�r�e�t�u�r�n�(�t�=�o�.�e�v�e�n�t�.�f�i�x�(�t�)�)�.�t�y�p�e�=�i�,�o�.�e�v�e�n�t�.�h�a�n�d�l�e�.�c�a�l�l�(�t�h�i�s�,�t�)�}�o�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�i�]�=�{�s�e�t�u�p�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�t�,�e�,�!�0�)�}�,�t�e�a�r�d�o�w�n�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�t�,�e�,�!�0�)�}�,�h�a�n�d�l�e�r�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�a�r�g�u�m�e�n�t�s�;�r�e�t�u�r�n� �e�[�0�]�=�o�.�e�v�e�n�t�.�f�i�x�(�t�)�,�e�[�0�]�.�t�y�p�e�=�i�,�o�.�e�v�e�n�t�.�h�a�n�d�l�e�.�a�p�p�l�y�(�t�h�i�s�,�e�)�}�}�}�)�,�o�.�e�x�t�e�n�d�(�o�.�f�n�,�{�v�a�l�i�d�a�t�e�D�e�l�e�g�a�t�e�:�f�u�n�c�t�i�o�n�(�i�,�t�,�n�)�{�r�e�t�u�r�n� �t�h�i�s�.�b�i�n�d�(�t�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�o�(�t�.�t�a�r�g�e�t�)�;�i�f�(�e�.�i�s�(�i�)�)�r�e�t�u�r�n� �n�.�a�p�p�l�y�(�e�,�a�r�g�u�m�e�n�t�s�)�}�)�}�}�)�}�(�j�Q�u�e�r�y�)�,�!�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�o�,�i�,�n�,�s�=�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�;�f�u�n�c�t�i�o�n� �r�(�)�{�c�l�e�a�r�T�i�m�e�o�u�t�(�e�)�,�e�=�s�e�t�T�i�m�e�o�u�t�(�i�,�9�9�)�}�f�u�n�c�t�i�o�n� �a�(�)�{�r�(�)�,�n�&�&�n�.�a�d�d�L�i�s�t�e�n�e�r�&�&�n�.�a�d�d�L�i�s�t�e�n�e�r�(�r�)�}�t�.�H�T�M�L�P�i�c�t�u�r�e�E�l�e�m�e�n�t�&�&�/�e�c�k�o�/�.�t�e�s�t�(�s�)�&�&�s�.�m�a�t�c�h�(�/�r�v�\�:�(�\�d�+�)�/�)�&�&�R�e�g�E�x�p�.�$�1�<�4�5�&�&�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�(�o�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�s�o�u�r�c�e�"�)�,�i�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�p�i�c�t�u�r�e� �>� �i�m�g�,� �i�m�g�[�s�r�c�s�e�t�]�[�s�i�z�e�s�]�"�)�,�e�=�0�;�e�<�t�.�l�e�n�g�t�h�;�e�+�+�)�!�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�=�t�.�p�a�r�e�n�t�N�o�d�e�;�"�P�I�C�T�U�R�E�"�=�=�=�n�.�n�o�d�e�N�a�m�e�.�t�o�U�p�p�e�r�C�a�s�e�(�)�?�(�e�=�o�.�c�l�o�n�e�N�o�d�e�(�)�,�n�.�i�n�s�e�r�t�B�e�f�o�r�e�(�e�,�n�.�f�i�r�s�t�E�l�e�m�e�n�t�C�h�i�l�d�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�n�.�r�e�m�o�v�e�C�h�i�l�d�(�e�)�}�)�)�:�(�!�t�.�_�p�f�L�a�s�t�S�i�z�e�|�|�t�.�o�f�f�s�e�t�W�i�d�t�h�>�t�.�_�p�f�L�a�s�t�S�i�z�e�)�&�&�(�t�.�_�p�f�L�a�s�t�S�i�z�e�=�t�.�o�f�f�s�e�t�W�i�d�t�h�,�i�=�t�.�s�i�z�e�s�,�t�.�s�i�z�e�s�+�=�"�,�1�0�0�v�w�"�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�t�.�s�i�z�e�s�=�i�}�)�)�}�(�t�[�e�]�)�}�,�n�=�t�.�m�a�t�c�h�M�e�d�i�a�&�&�m�a�t�c�h�M�e�d�i�a�(�"�(�o�r�i�e�n�t�a�t�i�o�n�:� �l�a�n�d�s�c�a�p�e�)�"�)�,�o�.�s�r�c�s�e�t�=�"�d�a�t�a�:�i�m�a�g�e�/�g�i�f�;�b�a�s�e�6�4�,�R�0�l�G�O�D�l�h�A�Q�A�B�A�A�A�A�A�C�H�5�B�A�E�K�A�A�E�A�L�A�A�A�A�A�A�B�A�A�E�A�A�A�I�C�T�A�E�A�O�w�=�=�"�,�/�^�[�c�|�i�]�|�d�$�/�.�t�e�s�t�(�d�o�c�u�m�e�n�t�.�r�e�a�d�y�S�t�a�t�e�|�|�"�"�)�?�a�(�)�:�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�C�o�n�t�e�n�t�L�o�a�d�e�d�"�,�a�)�,�r�)�)�}�(�w�i�n�d�o�w�)�,�f�u�n�c�t�i�o�n�(�t�,�s�,�m�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �f�(�t�)�{�r�e�t�u�r�n�"� �"�=�=�=�t�|�|�"�\�t�"�=�=�=�t�|�|�"�\�n�"�=�=�=�t�|�|�"�\�f�"�=�=�=�t�|�|�"�\�r�"�=�=�=�t�}�f�u�n�c�t�i�o�n� �P�(�t�,�e�)�{�r�e�t�u�r�n� �t�.�r�e�s�-�e�.�r�e�s�}�f�u�n�c�t�i�o�n� �b�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�;�i�f�(�t�&�&�e�)�f�o�r�(�o�=�T�.�p�a�r�s�e�S�e�t�(�e�)�,�t�=�T�.�m�a�k�e�U�r�l�(�t�)�,�i�=�0�;�i�<�o�.�l�e�n�g�t�h�;�i�+�+�)�i�f�(�t�=�=�=�T�.�m�a�k�e�U�r�l�(�o�[�i�]�.�u�r�l�)�)�{�n�=�o�[�i�]�;�b�r�e�a�k�}�r�e�t�u�r�n� �n�}�f�u�n�c�t�i�o�n� �z�(�e�,�d�)�{�f�u�n�c�t�i�o�n� �t�(�t�)�{�v�a�r� �t�=�t�.�e�x�e�c�(�e�.�s�u�b�s�t�r�i�n�g�(�a�)�)�;�r�e�t�u�r�n� �t�?�(�t�=�t�[�0�]�,�a�+�=�t�.�l�e�n�g�t�h�,�t�)�:�v�o�i�d� �0�}
1�f�u�n�c�t�i�o�n� �i�(�)�{�f�o�r�(�v�a�r� �t�,�e�,�i�,�n�,�o�,�s�,�r�,�a�=�!�1�,�l�=�{�}�,�c�=�0�;�c�<�h�.�l�e�n�g�t�h�;�c�+�+�)�n�=�(�o�=�h�[�c�]�)�[�o�.�l�e�n�g�t�h�-�1�]�,�o�=�o�.�s�u�b�s�t�r�i�n�g�(�0�,�o�.�l�e�n�g�t�h�-�1�)�,�s�=�p�a�r�s�e�I�n�t�(�o�,�1�0�)�,�r�=�p�a�r�s�e�F�l�o�a�t�(�o�)�,�s�t�.�t�e�s�t�(�o�)�&�&�"�w�"�=�=�=�n�?�(�(�t�|�|�e�)�&�&�(�a�=�!�0�)�,�0�=�=�=�s�?�a�=�!�0�:�t�=�s�)�:�r�t�.�t�e�s�t�(�o�)�&�&�"�x�"�=�=�=�n�?�(�(�t�|�|�e�|�|�i�)�&�&�(�a�=�!�0�)�,�r�<�0�?�a�=�!�0�:�e�=�r�)�:�s�t�.�t�e�s�t�(�o�)�&�&�"�h�"�=�=�=�n�?�(�(�i�|�|�e�)�&�&�(�a�=�!�0�)�,�0�=�=�=�s�?�a�=�!�0�:�i�=�s�)�:�a�=�!�0�;�a�|�|�(�l�.�u�r�l�=�u�,�t�&�&�(�l�.�w�=�t�)�,�e�&�&�(�l�.�d�=�e�)�,�i�&�&�(�l�.�h�=�i�)�,�i�|�|�e�|�|�t�|�|�(�l�.�d�=�1�)�,�1�=�=�=�l�.�d�&�&�(�d�.�h�a�s�1�x�=�!�0�)�,�l�.�s�e�t�=�d�,�p�.�p�u�s�h�(�l�)�)�}�f�o�r�(�v�a�r� �u�,�h�,�n�,�o�,�s�,�r�=�e�.�l�e�n�g�t�h�,�a�=�0�,�p�=�[�]�;�;�)�{�i�f�(�t�(�i�t�)�,�r�<�=�a�)�r�e�t�u�r�n� �p�;�u�=�t�(�n�t�)�,�h�=�[�]�,�"�,�"�=�=�=�u�.�s�l�i�c�e�(�-�1�)�?�(�u�=�u�.�r�e�p�l�a�c�e�(�o�t�,�"�"�)�,�i�(�)�)�:�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�t�(�e�t�)�,�n�=�"�"�,�o�=�"�i�n� �d�e�s�c�r�i�p�t�o�r�"�;�;�)�{�i�f�(�s�=�e�.�c�h�a�r�A�t�(�a�)�,�"�i�n� �d�e�s�c�r�i�p�t�o�r�"�=�=�=�o�)�i�f�(�f�(�s�)�)�n�&�&�(�h�.�p�u�s�h�(�n�)�,�n�=�"�"�,�o�=�"�a�f�t�e�r� �d�e�s�c�r�i�p�t�o�r�"�)�;�e�l�s�e�{�i�f�(�"�,�"�=�=�=�s�)�r�e�t�u�r�n� �a�+�=�1�,�n�&�&�h�.�p�u�s�h�(�n�)�,�i�(�)�;�i�f�(�"�(�"�=�=�=�s�)�n�+�=�s�,�o�=�"�i�n� �p�a�r�e�n�s�"�;�e�l�s�e�{�i�f�(�"�"�=�=�=�s�)�r�e�t�u�r�n� �n�&�&�h�.�p�u�s�h�(�n�)�,�i�(�)�;�n�+�=�s�}�}�e�l�s�e� �i�f�(�"�i�n� �p�a�r�e�n�s�"�=�=�=�o�)�i�f�(�"�)�"�=�=�=�s�)�n�+�=�s�,�o�=�"�i�n� �d�e�s�c�r�i�p�t�o�r�"�;�e�l�s�e�{�i�f�(�"�"�=�=�=�s�)�r�e�t�u�r�n� �h�.�p�u�s�h�(�n�)�,�i�(�)�;�n�+�=�s�}�e�l�s�e� �i�f�(�"�a�f�t�e�r� �d�e�s�c�r�i�p�t�o�r�"�=�=�=�o�&�&�!�f�(�s�)�)�{�i�f�(�"�"�=�=�=�s�)�r�e�t�u�r�n� �i�(�)�;�o�=�"�i�n� �d�e�s�c�r�i�p�t�o�r�"�,�-�-�a�}�a�+�=�1�}�}�(�)�}�}�f�u�n�c�t�i�o�n� �R�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�,�o�=�/�^�(�?�:�[�+�-�]�?�[�0�-�9�]�+�|�[�0�-�9�]�*�\�.�[�0�-�9�]�+�)�(�?�:�[�e�E�]�[�+�-�]�?�[�0�-�9�]�+�)�?�(�?�:�c�h�|�c�m�|�e�m�|�e�x�|�i�n�|�m�m�|�p�c�|�p�t�|�p�x�|�r�e�m�|�v�h�|�v�m�i�n�|�v�m�a�x�|�v�w�)�$�/�i�,�s�=�/�^�c�a�l�c�\�(�(�?�:�[�0�-�9�a�-�z� �\�.�\�+�\�-�\�*�\�/�\�(�\�)�]�+�)�\�)�$�/�i�,�r�=�f�u�n�c�t�i�o�n�(�t�)�{�f�u�n�c�t�i�o�n� �e�(�)�{�o�&�&�(�s�.�p�u�s�h�(�o�)�,�o�=�"�"�)�}�f�u�n�c�t�i�o�n� �i�(�)�{�s�[�0�]�&�&�(�r�.�p�u�s�h�(�s�)�,�s�=�[�]�)�}�f�o�r�(�v�a�r� �n�,�o�=�"�"�,�s�=�[�]�,�r�=�[�]�,�a�=�0�,�l�=�0�,�c�=�!�1�;�;�)�{�i�f�(�"�"�=�=�=�(�n�=�t�.�c�h�a�r�A�t�(�l�)�)�)�r�e�t�u�r�n� �e�(�)�,�i�(�)�,�r�;�i�f�(�c�)�"�*�"�=�=�=�n�&�&�"�/�"�=�=�=�t�[�l�+�1�]�?�(�c�=�!�1�,�l�+�=�2�,�e�(�)�)�:�l�+�=�1�;�e�l�s�e�{�i�f�(�f�(�n�)�)�{�i�f�(�t�.�c�h�a�r�A�t�(�l�-�1�)�&�&�f�(�t�.�c�h�a�r�A�t�(�l�-�1�)�)�|�|�!�o�)�{�l�+�=�1�;�c�o�n�t�i�n�u�e�}�i�f�(�0�=�=�=�a�)�{�e�(�)�,�l�+�=�1�;�c�o�n�t�i�n�u�e�}�n�=�"� �"�}�e�l�s�e� �i�f�(�"�(�"�=�=�=�n�)�a�+�=�1�;�e�l�s�e� �i�f�(�"�)�"�=�=�=�n�)�-�-�a�;�e�l�s�e�{�i�f�(�"�,�"�=�=�=�n�)�{�e�(�)�,�i�(�)�,�l�+�=�1�;�c�o�n�t�i�n�u�e�}�i�f�(�"�/�"�=�=�=�n�&�&�"�*�"�=�=�=�t�.�c�h�a�r�A�t�(�l�+�1�)�)�{�c�=�!�0�,�l�+�=�2�;�c�o�n�t�i�n�u�e�}�}�o�+�=�n�,�l�+�=�1�}�}�}�(�t�)�,�a�=�r�.�l�e�n�g�t�h�,�l�=�0�;�l�<�a�;�l�+�+�)�i�f�(�i�=�(�e�=�r�[�l�]�)�[�e�.�l�e�n�g�t�h�-�1�]�,�n�=�i�,�o�.�t�e�s�t�(�n�)�&�&�0�<�=�p�a�r�s�e�F�l�o�a�t�(�n�)�|�|�(�s�.�t�e�s�t�(�n�)�|�|�(�"�0�"�=�=�=�n�|�|�"�-�0�"�=�=�=�n�|�|�"�+�0�"�=�=�=�n�)�)�)�{�i�f�(�n�=�i�,�e�.�p�o�p�(�)�,�0�=�=�=�e�.�l�e�n�g�t�h�)�r�e�t�u�r�n� �n�;�i�f�(�e�=�e�.�j�o�i�n�(�"� �"�)�,�T�.�m�a�t�c�h�e�s�M�e�d�i�a�(�e�)�)�r�e�t�u�r�n� �n�}�r�e�t�u�r�n�"�1�0�0�v�w�"�}�s�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�p�i�c�t�u�r�e�"�)�;�f�u�n�c�t�i�o�n� �e�(�)�{�}�f�u�n�c�t�i�o�n� �N�(�t�,�e�,�i�,�n�)�{�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�?�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�e�,�i�,�n�|�|�!�1�)�:�t�.�a�t�t�a�c�h�E�v�e�n�t�&�&�t�.�a�t�t�a�c�h�E�v�e�n�t�(�"�o�n�"�+�e�,�i�)�}�f�u�n�c�t�i�o�n� �i�(�e�)�{�v�a�r� �i�=�{�}�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t� �i�n� �i�|�|�(�i�[�t�]�=�e�(�t�)�)�,�i�[�t�]�}�}�f�u�n�c�t�i�o�n� �_�(�t�,�e�)�{�r�e�t�u�r�n� �t�.�w�?�(�t�.�c�W�i�d�t�h�=�T�.�c�a�l�c�L�i�s�t�L�e�n�g�t�h�(�e�|�|�"�1�0�0�v�w�"�)�,�t�.�r�e�s�=�t�.�w�/�t�.�c�W�i�d�t�h�)�:�t�.�r�e�s�=�t�.�d�,�t�}�v�a�r� �o�,�j�,�r�,�H�,�B�,�W�,�q�,�n�,�a�,�V�,�U�,�l�,�c�,�d�,�u�,�h�,�T�=�{�}�,�p�=�!�1�,�g�=�s�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�m�g�"�)�,�v�=�g�.�g�e�t�A�t�t�r�i�b�u�t�e�,�Y�=�g�.�s�e�t�A�t�t�r�i�b�u�t�e�,�Q�=�g�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�,�y�=�s�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�w�=�{�}�,�S�=�{�a�l�g�o�r�i�t�h�m�:�"�"�}�,�x�=�"�d�a�t�a�-�p�f�s�r�c�"�,�G�=�x�+�"�s�e�t�"�,�C�=�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�,�X�=�/�r�i�d�e�n�t�/�.�t�e�s�t�(�C�)�|�|�/�e�c�k�o�/�.�t�e�s�t�(�C�)�&�&�C�.�m�a�t�c�h�(�/�r�v�\�:�(�\�d�+�)�/�)�&�&�3�5�<�R�e�g�E�x�p�.�$�1�,�k�=�"�c�u�r�r�e�n�t�S�r�c�"�,�K�=�/�\�s�+�\�+�?�\�d�+�(�e�\�d�+�)�?�w�/�,�Z�=�/�(�\�(�[�^�)�]�+�\�)�)�?�\�s�*�(�.�+�)�/�,�E�=�t�.�p�i�c�t�u�r�e�f�i�l�l�C�F�G�,�J�=�"�f�o�n�t�-�s�i�z�e�:�1�0�0�%�!�i�m�p�o�r�t�a�n�t�;�"�,�A�=�!�0�,�O�=�{�}�,�D�=�{�}�,�$�=�t�.�d�e�v�i�c�e�P�i�x�e�l�R�a�t�i�o�,�F�=�{�p�x�:�1�,�i�n�:�9�6�}�,�t�t�=�s�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�a�"�)�,�I�=�!�1�,�e�t�=�/�^�[� �\�t�\�n�\�r�\�u�0�0�0�c�]�+�/�,�i�t�=�/�^�[�,� �\�t�\�n�\�r�\�u�0�0�0�c�]�+�/�,�n�t�=�/�^�[�^� �\�t�\�n�\�r�\�u�0�0�0�c�]�+�/�,�o�t�=�/�[�,�]�+�$�/�,�s�t�=�/�^�\�d�+�$�/�,�r�t�=�/�^�-�?�(�?�:�[�0�-�9�]�+�|�[�0�-�9�]�*�\�.�[�0�-�9�]�+�)�(�?�:�[�e�E�]�[�+�-�]�?�[�0�-�9�]�+�)�?�$�/�,�a�t�=�(�H�=�/�^�(�[�\�
1d�\�.�]�+�)�(�e�m�|�v�w�|�p�x�)�$�/�,�B�=�i�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�r�e�t�u�r�n� �"�+�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�a�r�g�u�m�e�n�t�s�,�e�=�0�,�i�=�t�[�0�]�;�+�+�e� �i�n� �t�;�)�i�=�i�.�r�e�p�l�a�c�e�(�t�[�e�]�,�t�[�+�+�e�]�)�;�r�e�t�u�r�n� �i�}�(�(�t�|�|�"�"�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�,�/�\�b�a�n�d�\�b�/�g�,�"�&�&�"�,�/�,�/�g�,�"�|�|�"�,�/�m�i�n�-�(�[�a�-�z�-�\�s�]�+�)�:�/�g�,�"�e�.�$�1�>�=�"�,�/�m�a�x�-�(�[�a�-�z�-�\�s�]�+�)�:�/�g�,�"�e�.�$�1�<�=�"�,�/�c�a�l�c�(�[�^�)�]�+�)�/�g�,�"�(�$�1�)�"�,�/�(�\�d�+�[�\�.�]�*�[�\�d�]�*�)�(�[�a�-�z�]�+�)�/�g�,�"�(�$�1� �*� �e�.�$�2�)�"�,�/�^�(�?�!�(�e�.�[�a�-�z�]�|�[�0�-�9�\�.�&�=�|�>�<�\�+�\�-�\�*�\�(�\�)�\�/�]�)�)�.�*�/�g�i�,�"�"�)�+�"�;�"�}�)�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�;�i�f�(�!�(�t� �i�n� �O�)�)�i�f�(�O�[�t�]�=�!�1�,�e�&�&�(�i�=�t�.�m�a�t�c�h�(�H�)�)�)�O�[�t�]�=�i�[�1�]�*�F�[�i�[�2�]�]�;�e�l�s�e� �t�r�y�{�O�[�t�]�=�n�e�w� �F�u�n�c�t�i�o�n�(�"�e�"�,�B�(�t�)�)�(�F�)�}�c�a�t�c�h�(�t�)�{�}�r�e�t�u�r�n� �O�[�t�]�}�)�,�L�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�p�)�{�v�a�r� �e�,�i�,�n�,�o�=�t�|�|�{�}�;�i�f�(�o�.�e�l�e�m�e�n�t�s�&�&�1�=�=�=�o�.�e�l�e�m�e�n�t�s�.�n�o�d�e�T�y�p�e�&�&�(�"�I�M�G�"�=�=�=�o�.�e�l�e�m�e�n�t�s�.�n�o�d�e�N�a�m�e�.�t�o�U�p�p�e�r�C�a�s�e�(�)�?�o�.�e�l�e�m�e�n�t�s�=�[�o�.�e�l�e�m�e�n�t�s�]�:�(�o�.�c�o�n�t�e�x�t�=�o�.�e�l�e�m�e�n�t�s�,�o�.�e�l�e�m�e�n�t�s�=�n�u�l�l�)�)�,�n�=�(�e�=�o�.�e�l�e�m�e�n�t�s�|�|�T�.�q�s�a�(�o�.�c�o�n�t�e�x�t�|�|�s�,�o�.�r�e�e�v�a�l�u�a�t�e�|�|�o�.�r�e�s�e�l�e�c�t�?�T�.�s�e�l�:�T�.�s�e�l�S�h�o�r�t�)�)�.�l�e�n�g�t�h�)�{�f�o�r�(�T�.�s�e�t�u�p�R�u�n�(�o�)�,�I�=�!�0�,�i�=�0�;�i�<�n�;�i�+�+�)�T�.�f�i�l�l�I�m�g�(�e�[�i�]�,�o�)�;�T�.�t�e�a�r�d�o�w�n�R�u�n�(�o�)�}�}�}�;�f�u�n�c�t�i�o�n� �M�(�)�{�v�a�r� �t�=�s�.�r�e�a�d�y�S�t�a�t�e�|�|�"�"�;�l�=�s�e�t�T�i�m�e�o�u�t�(�M�,�"�l�o�a�d�i�n�g�"�=�=�=�t�?�2�0�0�:�9�9�9�)�,�s�.�b�o�d�y�&�&�(�T�.�f�i�l�l�I�m�g�s�(�)�,�(�W�=�W�|�|�U�.�t�e�s�t�(�t�)�)�&�&�c�l�e�a�r�T�i�m�e�o�u�t�(�l�)�)�}�f�u�n�c�t�i�o�n� �l�t�(�)�{�v�a�r� �t�=�n�e�w� �D�a�t�e�-�V�;�t�<�n�?�a�=�s�e�t�T�i�m�e�o�u�t�(�l�t�,�n�-�t�)�:�(�a�=�n�u�l�l�,�q�(�)�)�}�f�u�n�c�t�i�o�n� �c�t�(�)�{�2�=�=�=�d�.�w�i�d�t�h�&�&�(�T�.�s�u�p�S�i�z�e�s�=�!�0�)�,�j�=�T�.�s�u�p�S�r�c�s�e�t�&�&�!�T�.�s�u�p�S�i�z�e�s�,�p�=�!�0�,�s�e�t�T�i�m�e�o�u�t�(�L�)�}�t�.�c�o�n�s�o�l�e�&�&�c�o�n�s�o�l�e�.�w�a�r�n�,�k� �i�n� �g�|�|�(�k�=�"�s�r�c�"�)�,�w�[�"�i�m�a�g�e�/�j�p�e�g�"�]�=�!�0�,�w�[�"�i�m�a�g�e�/�g�i�f�"�]�=�!�0�,�w�[�"�i�m�a�g�e�/�p�n�g�"�]�=�!�0�,�w�[�"�i�m�a�g�e�/�s�v�g�+�x�m�l�"�]�=�s�.�i�m�p�l�e�m�e�n�t�a�t�i�o�n�.�h�a�s�F�e�a�t�u�r�e�(�"�h�t�t�p�:�/�/�w�w�w�.�w�3�.�o�r�g�/�T�R�/�S�V�G�1�1�/�f�e�a�t�u�r�e�#�I�m�a�g�e�"�,�"�1�.�1�"�)�,�T�.�n�s�=�(�"�p�f�"�+�(�n�e�w� �D�a�t�e�)�.�g�e�t�T�i�m�e�(�)�)�.�s�u�b�s�t�r�(�0�,�9�)�,�T�.�s�u�p�S�r�c�s�e�t�=�"�s�r�c�s�e�t�"�i�n� �g�,�T�.�s�u�p�S�i�z�e�s�=�"�s�i�z�e�s�"�i�n� �g�,�T�.�s�u�p�P�i�c�t�u�r�e�=�!�!�t�.�H�T�M�L�P�i�c�t�u�r�e�E�l�e�m�e�n�t�,�T�.�s�u�p�S�r�c�s�e�t�&�&�T�.�s�u�p�P�i�c�t�u�r�e�&�&�!�T�.�s�u�p�S�i�z�e�s�&�&�(�C�=�s�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�m�g�"�)�,�g�.�s�r�c�s�e�t�=�"�d�a�t�a�:�,�a�"�,�C�.�s�r�c�=�"�d�a�t�a�:�,�a�"�,�T�.�s�u�p�S�r�c�s�e�t�=�g�.�c�o�m�p�l�e�t�e�=�=�=�C�.�c�o�m�p�l�e�t�e�,�T�.�s�u�p�P�i�c�t�u�r�e�=�T�.�s�u�p�S�r�c�s�e�t�&�&�T�.�s�u�p�P�i�c�t�u�r�e�)�,�T�.�s�u�p�S�r�c�s�e�t�&�&�!�T�.�s�u�p�S�i�z�e�s�?�(�g�=�"�d�a�t�a�:�i�m�a�g�e�/�g�i�f�;�b�a�s�e�6�4�,�R�0�l�G�O�D�l�h�A�Q�A�B�A�A�A�A�A�C�H�5�B�A�E�K�A�A�E�A�L�A�A�A�A�A�A�B�A�A�E�A�A�A�I�C�T�A�E�A�O�w�=�=�"�,�(�d�=�s�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�m�g�"�)�)�.�o�n�l�o�a�d�=�c�t�,�d�.�o�n�e�r�r�o�r�=�c�t�,�d�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�s�i�z�e�s�"�,�"�9�p�x�"�)�,�d�.�s�r�c�s�e�t�=�g�+�"� �1�w�,�d�a�t�a�:�i�m�a�g�e�/�g�i�f�;�b�a�s�e�6�4�,�R�0�l�G�O�D�l�h�A�g�A�B�A�P�A�A�A�P�/�/�/�w�A�A�A�C�H�5�B�A�A�A�A�A�A�A�L�A�A�A�A�A�A�C�A�A�E�A�A�A�I�C�B�A�o�A�O�w�=�=� �9�w�"�,�d�.�s�r�c�=�g�)�:�p�=�!�0�,�T�.�s�e�l�S�h�o�r�t�=�"�p�i�c�t�u�r�e�>�i�m�g�,�i�m�g�[�s�r�c�s�e�t�]�"�,�T�.�s�e�l�=�T�.�s�e�l�S�h�o�r�t�,�T�.�c�f�g�=�S�,�T�.�D�P�R�=�$�|�|�1�,�T�.�u�=�F�,�T�.�t�y�p�e�s�=�w�,�T�.�s�e�t�S�i�z�e�=�e�,�T�.�m�a�k�e�U�r�l�=�i�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�t�.
1�h�r�e�f�=�t�,�t�t�.�h�r�e�f�}�)�,�T�.�q�s�a�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n�"�q�u�e�r�y�S�e�l�e�c�t�o�r�"�i�n� �t�?�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�e�)�:�[�]�}�,�T�.�m�a�t�c�h�e�s�M�e�d�i�a�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�.�m�a�t�c�h�M�e�d�i�a�&�&�(�m�a�t�c�h�M�e�d�i�a�(�"�(�m�i�n�-�w�i�d�t�h�:� �0�.�1�e�m�)�"�)�|�|�{�}�)�.�m�a�t�c�h�e�s�?�T�.�m�a�t�c�h�e�s�M�e�d�i�a�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�t�|�|�m�a�t�c�h�M�e�d�i�a�(�t�)�.�m�a�t�c�h�e�s�}�:�T�.�m�a�t�c�h�e�s�M�e�d�i�a�=�T�.�m�M�Q�,�T�.�m�a�t�c�h�e�s�M�e�d�i�a�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�}�,�T�.�m�M�Q�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�t�|�|�a�t�(�t�)�}�,�T�.�c�a�l�c�L�e�n�g�t�h�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�a�t�(�t�,�!�0�)�|�|�!�1�;�r�e�t�u�r�n� �t�=�t�<�0�?�!�1�:�t�}�,�T�.�s�u�p�p�o�r�t�s�T�y�p�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�t�|�|�w�[�t�]�}�,�T�.�p�a�r�s�e�S�i�z�e�=�i�(�f�u�n�c�t�i�o�n�(�t�)�{�t�=�(�t�|�|�"�"�)�.�m�a�t�c�h�(�Z�)�;�r�e�t�u�r�n�{�m�e�d�i�a�:�t�&�&�t�[�1�]�,�l�e�n�g�t�h�:�t�&�&�t�[�2�]�}�}�)�,�T�.�p�a�r�s�e�S�e�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�c�a�n�d�s�|�|�(�t�.�c�a�n�d�s�=�z�(�t�.�s�r�c�s�e�t�,�t�)�)�,�t�.�c�a�n�d�s�}�,�T�.�g�e�t�E�m�V�a�l�u�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�;�r�e�t�u�r�n�!�o�&�&�(�t�=�s�.�b�o�d�y�)�&�&�(�e�=�s�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�i�=�y�.�s�t�y�l�e�.�c�s�s�T�e�x�t�,�n�=�t�.�s�t�y�l�e�.�c�s�s�T�e�x�t�,�e�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�"�p�o�s�i�t�i�o�n�:�a�b�s�o�l�u�t�e�;�l�e�f�t�:�0�;�v�i�s�i�b�i�l�i�t�y�:�h�i�d�d�e�n�;�d�i�s�p�l�a�y�:�b�l�o�c�k�;�p�a�d�d�i�n�g�:�0�;�b�o�r�d�e�r�:�n�o�n�e�;�f�o�n�t�-�s�i�z�e�:�1�e�m�;�w�i�d�t�h�:�1�e�m�;�o�v�e�r�f�l�o�w�:�h�i�d�d�e�n�;�c�l�i�p�:�r�e�c�t�(�0�p�x�,� �0�p�x�,� �0�p�x�,� �0�p�x�)�"�,�y�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�J�,�t�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�J�,�t�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�,�o�=�e�.�o�f�f�s�e�t�W�i�d�t�h�,�t�.�r�e�m�o�v�e�C�h�i�l�d�(�e�)�,�o�=�p�a�r�s�e�F�l�o�a�t�(�o�,�1�0�)�,�y�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�i�,�t�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�n�)�,�o�|�|�1�6�}�,�T�.�c�a�l�c�L�i�s�t�L�e�n�g�t�h�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�r�e�t�u�r�n� �t� �i�n� �D�&�&�!�S�.�u�T�|�|�(�e�=�T�.�c�a�l�c�L�e�n�g�t�h�(�R�(�t�)�)�,�D�[�t�]�=�e�|�|�F�.�w�i�d�t�h�)�,�D�[�t�]�}�,�T�.�s�e�t�R�e�s�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�t�)�f�o�r�(�v�a�r� �e�,�i�=�0�,�n�=�(�e�=�T�.�p�a�r�s�e�S�e�t�(�t�)�)�.�l�e�n�g�t�h�;�i�<�n�;�i�+�+�)�_�(�e�[�i�]�,�t�.�s�i�z�e�s�)�;�r�e�t�u�r�n� �e�}�,�T�.�s�e�t�R�e�s�.�r�e�s�=�_�,�T�.�a�p�p�l�y�S�e�t�C�a�n�d�i�d�a�t�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�t�.�l�e�n�g�t�h�)�{�v�a�r� �i�,�n�,�o�,�s�,�r�,�a�,�l�=�e�[�T�.�n�s�]�,�c�=�T�.�D�P�R�,�d�=�l�.�c�u�r�S�r�c�|�|�e�[�k�]�,�u�=�l�.�c�u�r�C�a�n�|�|�(�y�=�e�,�u�=�d�,�w�=�t�[�0�]�.�s�e�t�,�(�w�=�b�(�u�,�w�=�!�w�&�&�u�?�(�w�=�y�[�T�.�n�s�]�.�s�e�t�s�)�&�&�w�[�w�.�l�e�n�g�t�h�-�1�]�:�w�)�)�&�&�(�u�=�T�.�m�a�k�e�U�r�l�(�u�)�,�y�[�T�.�n�s�]�.�c�u�r�S�r�c�=�u�,�(�y�[�T�.�n�s�]�.�c�u�r�C�a�n�=�w�)�.�r�e�s�|�|�_�(�w�,�w�.�s�e�t�.�s�i�z�e�s�)�)�,�w�)�;�i�f�(�u�&�&�u�.�s�e�t�=�=�=�t�[�0�]�.�s�e�t�&�&�(�(�a�=�X�&�&�!�e�.�c�o�m�p�l�e�t�e�&�&�u�.�r�e�s�-�.�1�>�c�)�|�|�(�u�.�c�a�c�h�e�d�=�!�0�,�u�.�r�e�s�>�=�c�&�&�(�r�=�u�)�)�)�,�!�r�)�f�o�r�(�t�.�s�o�r�t�(�P�)�,�r�=�t�[�(�s�=�t�.�l�e�n�g�t�h�)�-�1�]�,�n�=�0�;�n�<�s�;�n�+�+�)�i�f�(�(�i�=�t�[�n�]�)�.�r�e�s�>�=�c�)�{�r�=�t�[�o�=�n�-�1�]�&�&�(�a�|�|�d�!�=�=�T�.�m�a�k�e�U�r�l�(�i�.�u�r�l�)�)�&�&�(�h�=�t�[�o�]�.�r�e�s�,�p�=�i�.�r�e�s�,�f�=�c�,�m�=�t�[�o�]�.�c�a�c�h�e�d�,�v�=�g�=�v�o�i�d� �0�,�m�=�"�s�a�v�e�D�a�t�a�"�=�=�=�S�.�a�l�g�o�r�i�t�h�m�?�2�.�7�<�h�?�f�+�1�:�(�v�=�(�p�-�f�)�*�(�g�=�M�a�t�h�.�p�o�w�(�h�-�.�6�,�1�.�5�)�)�,�m�&�&�(�v�+�=�.�1�*�g�)�,�h�+�v�)�:�1�<�f�?�M�a�t�h�.�s�q�r�t�(�h�*�p�)�:�h�,�f�<�m�)�?�t�[�o�]�:�i�;�b�r�e�a�k�}�r�&�&�(�y�=�T�.�m�a�k�e�U�r�l�(�r�.�u�r�l�)�,�l�.�c�u�r�S�r�c�=�y�,�l�.�c�u�r�C�a�n�=�r�,�y�!�=�=�d�&�&�T�.�s�e�t�S�r�c�(�e�,�r�)�,�T�.�s�e�t�S�i�z�e�(�e�)�)�}�v�a�r� �h�,�p�,�f�,�m�,�g�,�v�,�y�,�u�,�w�}�,�T�.�s�e�t�S�r�c�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�.�s�r�c�=�e�.�u�r�l�,�"�i�m�a�g�e�/�s�v�g�+�x�m�l�"�=�=�=�e�.�s�e�t�.�t�y�p�e�&�&�(�e�=�t�.�s�t�y�l�e�.�w�i�d�t�h�,�t�.
1�s�t�y�l�e�.�w�i�d�t�h�=�t�.�o�f�f�s�e�t�W�i�d�t�h�+�1�+�"�p�x�"�,�t�.�o�f�f�s�e�t�W�i�d�t�h�+�1�&�&�(�t�.�s�t�y�l�e�.�w�i�d�t�h�=�e�)�)�}�,�T�.�g�e�t�S�e�t�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�=�!�1�,�o�=�t�[�T�.�n�s�]�.�s�e�t�s�,�s�=�0�;�s�<�o�.�l�e�n�g�t�h�&�&�!�n�;�s�+�+�)�i�f�(�(�e�=�o�[�s�]�)�.�s�r�c�s�e�t�&�&�T�.�m�a�t�c�h�e�s�M�e�d�i�a�(�e�.�m�e�d�i�a�)�&�&�(�i�=�T�.�s�u�p�p�o�r�t�s�T�y�p�e�(�e�.�t�y�p�e�)�)�)�{�n�=�e�=�"�p�e�n�d�i�n�g�"�=�=�=�i�?�i�:�e�;�b�r�e�a�k�}�r�e�t�u�r�n� �n�}�,�T�.�p�a�r�s�e�S�e�t�s�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�,�a�=�e�&�&�"�P�I�C�T�U�R�E�"�=�=�=�e�.�n�o�d�e�N�a�m�e�.�t�o�U�p�p�e�r�C�a�s�e�(�)�,�l�=�t�[�T�.�n�s�]�;�i�f�(�l�.�s�r�c�!�=�=�m�&�&�!�i�.�s�r�c�|�|�(�l�.�s�r�c�=�v�.�c�a�l�l�(�t�,�"�s�r�c�"�)�,�l�.�s�r�c�?�Y�.�c�a�l�l�(�t�,�x�,�l�.�s�r�c�)�:�Q�.�c�a�l�l�(�t�,�x�)�)�,�l�.�s�r�c�s�e�t�!�=�=�m�&�&�!�i�.�s�r�c�s�e�t�&�&�T�.�s�u�p�S�r�c�s�e�t�&�&�!�t�.�s�r�c�s�e�t�|�|�(�n�=�v�.�c�a�l�l�(�t�,�"�s�r�c�s�e�t�"�)�,�l�.�s�r�c�s�e�t�=�n�,�r�=�!�0�)�,�l�.�s�e�t�s�=�[�]�,�a�)�{�l�.�p�i�c�=�!�0�;�f�o�r�(�v�a�r� �c�=�l�.�s�e�t�s�,�d�,�u�,�h�=�(�i�=�e�)�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�(�"�s�o�u�r�c�e�"�)�,�p�=�0�,�f�=�h�.�l�e�n�g�t�h�;�p�<�f�;�p�+�+�)�(�d�=�h�[�p�]�)�[�T�.�n�s�]�=�!�0�,�(�u�=�d�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�s�r�c�s�e�t�"�)�)�&�&�c�.�p�u�s�h�(�{�s�r�c�s�e�t�:�u�,�m�e�d�i�a�:�d�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�m�e�d�i�a�"�)�,�t�y�p�e�:�d�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�y�p�e�"�)�,�s�i�z�e�s�:�d�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�s�i�z�e�s�"�)�}�)�}�l�.�s�r�c�s�e�t�?�(�o�=�{�s�r�c�s�e�t�:�l�.�s�r�c�s�e�t�,�s�i�z�e�s�:�v�.�c�a�l�l�(�t�,�"�s�i�z�e�s�"�)�}�,�l�.�s�e�t�s�.�p�u�s�h�(�o�)�,�(�s�=�(�j�|�|�l�.�s�r�c�)�&�&�K�.�t�e�s�t�(�l�.�s�r�c�s�e�t�|�|�"�"�)�)�|�|�!�l�.�s�r�c�|�|�b�(�l�.�s�r�c�,�o�)�|�|�o�.�h�a�s�1�x�|�|�(�o�.�s�r�c�s�e�t�+�=�"�,� �"�+�l�.�s�r�c�,�o�.�c�a�n�d�s�.�p�u�s�h�(�{�u�r�l�:�l�.�s�r�c�,�d�:�1�,�s�e�t�:�o�}�)�)�)�:�l�.�s�r�c�&�&�l�.�s�e�t�s�.�p�u�s�h�(�{�s�r�c�s�e�t�:�l�.�s�r�c�,�s�i�z�e�s�:�n�u�l�l�}�)�,�l�.�c�u�r�C�a�n�=�n�u�l�l�,�l�.�c�u�r�S�r�c�=�m�,�l�.�s�u�p�p�o�r�t�e�d�=�!�(�a�|�|�o�&�&�!�T�.�s�u�p�S�r�c�s�e�t�|�|�s�&�&�!�T�.�s�u�p�S�i�z�e�s�)�,�r�&�&�T�.�s�u�p�S�r�c�s�e�t�&�&�!�l�.�s�u�p�p�o�r�t�e�d�&�&�(�n�?�(�Y�.�c�a�l�l�(�t�,�G�,�n�)�,�t�.�s�r�c�s�e�t�=�"�"�)�:�Q�.�c�a�l�l�(�t�,�G�)�)�,�l�.�s�u�p�p�o�r�t�e�d�&�&�!�l�.�s�r�c�s�e�t�&�&�(�!�l�.�s�r�c�&�&�t�.�s�r�c�|�|�t�.�s�r�c�!�=�=�T�.�m�a�k�e�U�r�l�(�l�.�s�r�c�)�)�&�&�(�n�u�l�l�=�=�=�l�.�s�r�c�?�t�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�"�s�r�c�"�)�:�t�.�s�r�c�=�l�.�s�r�c�)�,�l�.�p�a�r�s�e�d�=�!�0�}�,�T�.�f�i�l�l�I�m�g�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�=�e�.�r�e�s�e�l�e�c�t�|�|�e�.�r�e�e�v�a�l�u�a�t�e�;�t�[�T�.�n�s�]�|�|�(�t�[�T�.�n�s�]�=�{�}�)�,�i�=�t�[�T�.�n�s�]�,�!�n�&�&�i�.�e�v�a�l�e�d�=�=�=�r�|�|�(�i�.�p�a�r�s�e�d�&�&�!�e�.�r�e�e�v�a�l�u�a�t�e�|�|�T�.�p�a�r�s�e�S�e�t�s�(�t�,�t�.�p�a�r�e�n�t�N�o�d�e�,�e�)�,�i�.�s�u�p�p�o�r�t�e�d�?�i�.�e�v�a�l�e�d�=�r�:�(�n�=�t�,�e�=�T�.�g�e�t�S�e�t�(�n�)�,�i�=�!�1�,�"�p�e�n�d�i�n�g�"�!�=�=�e�&�&�(�i�=�r�,�e�&�&�(�e�=�T�.�s�e�t�R�e�s�(�e�)�,�T�.�a�p�p�l�y�S�e�t�C�a�n�d�i�d�a�t�e�(�e�,�n�)�)�)�,�n�[�T�.�n�s�]�.�e�v�a�l�e�d�=�i�)�)�}�,�T�.�s�e�t�u�p�R�u�n�=�f�u�n�c�t�i�o�n�(�)�{�I�&�&�!�A�&�&�$�=�=�=�t�.�d�e�v�i�c�e�P�i�x�e�l�R�a�t�i�o�|�|�(�A�=�!�1�,�$�=�t�.�d�e�v�i�c�e�P�i�x�e�l�R�a�t�i�o�,�O�=�{�}�,�D�=�{�}�,�T�.�D�P�R�=�$�|�|�1�,�F�.�w�i�d�t�h�=�M�a�t�h�.�m�a�x�(�t�.�i�n�n�e�r�W�i�d�t�h�|�|�0�,�y�.�c�l�i�e�n�t�W�i�d�t�h�)�,�F�.�h�e�i�g�h�t�=�M�a�t�h�.�m�a�x�(�t�.�i�n�n�e�r�H�e�i�g�h�t�|�|�0�,�y�.�c�l�i�e�n�t�H�e�i�g�h�t�)�,�F�.�v�w�=�F�.�w�i�d�t�h�/�1�0�0�,�F�.�v�h�=�F�.�h�e�i�g�h�t�/�1�0�0�,�r�=�[�F�.�h�e�i�g�h�t�,�F�.�w�i�d�t�h�,�$�]�.�j�o�i�n�(�"�-�"�)�,�F�.�e�m�=�T�.�g�e�t�E�m�V�a�l�u�e�(�)�,�F�.�r�e�m�=�F�.�e�m�)�}�,�T�.�s�u�p�P�i�c�t�u�r�e�?�(�L�=�e�,�T�.�f�i�l�l�I�m�g�=�e�)�:�(�U�=�t�.�a�t�t�a�c�h�E�v�e�n�t�?�/�d�$�|�^�c�/�:�/�d�$�|�^�c�|�^�i�/�,�l�=�s�e�t�T�i�m�e�o�u�t�(�M�,�s�.�b�o�d�y�?�9�:�9�9�)�,�c�=�y�.�c�l�i�e�n�t�H�e�i�g�h�t�,�N�(�t�,�"�r�e�s�i�z�e�"�,�(�q�=�f�u�n�c�t�i�o�n�(�)�{�A�=�M�a�t�h�.�m�a�x�(�t�.�i�n�n�e�r�W�i�d�t�h�|�|�0�,�y�.�c�l�i�e�n�t�W�i�d�t�h�)�!�=�=�F�.�w�i�d�t�h�|�|�y�.�c�l�i�e�n�t�H�e�i�g�h�t�!�=�=�c�,�c�=�y�.�c�l�i�e�n�t�H�e�i�g�h�t�,�A�&�&�T�.�f�i�l�l�I�m�g�s�(�)�}
1�,�n�=�9�9�,�f�u�n�c�t�i�o�n�(�)�{�V�=�n�e�w� �D�a�t�e�,�a�=�a�|�|�s�e�t�T�i�m�e�o�u�t�(�l�t�,�n�)�}�)�)�,�N�(�s�,�"�r�e�a�d�y�s�t�a�t�e�c�h�a�n�g�e�"�,�M�)�)�,�T�.�p�i�c�t�u�r�e�f�i�l�l�=�L�,�T�.�f�i�l�l�I�m�g�s�=�L�,�T�.�t�e�a�r�d�o�w�n�R�u�n�=�e�,�L�.�_�=�T�,�t�.�p�i�c�t�u�r�e�f�i�l�l�C�F�G�=�{�p�f�:�T�,�p�u�s�h�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�s�h�i�f�t�(�)�;�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �T�[�e�]�?�T�[�e�]�.�a�p�p�l�y�(�T�,�t�)�:�(�S�[�e�]�=�t�[�0�]�,�I�&�&�T�.�f�i�l�l�I�m�g�s�(�{�r�e�s�e�l�e�c�t�:�!�0�}�)�)�}�}�;�f�o�r�(�;�E�&�&�E�.�l�e�n�g�t�h�;�)�t�.�p�i�c�t�u�r�e�f�i�l�l�C�F�G�.�p�u�s�h�(�E�.�s�h�i�f�t�(�)�)�;�t�.�p�i�c�t�u�r�e�f�i�l�l�=�L�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �m�o�d�u�l�e�&�&�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �m�o�d�u�l�e�.�e�x�p�o�r�t�s�?�m�o�d�u�l�e�.�e�x�p�o�r�t�s�=�L�:�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�&�&�d�e�f�i�n�e�(�"�p�i�c�t�u�r�e�f�i�l�l�"�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �L�}�)�,�T�.�s�u�p�P�i�c�t�u�r�e�|�|�(�w�[�"�i�m�a�g�e�/�w�e�b�p�"�]�=�(�u�=�"�i�m�a�g�e�/�w�e�b�p�"�,�C�=�"�d�a�t�a�:�i�m�a�g�e�/�w�e�b�p�;�b�a�s�e�6�4�,�U�k�l�G�R�k�o�A�A�A�B�X�R�U�J�Q�V�l�A�4�W�A�o�A�A�A�A�Q�A�A�A�A�A�A�A�A�A�A�A�A�Q�U�x�Q�S�A�w�A�A�A�A�B�B�x�A�R�/�Q�9�E�R�P�8�D�A�A�B�W�U�D�g�g�G�A�A�A�A�D�A�B�A�J�0�B�K�g�E�A�A�Q�A�D�A�D�Q�l�p�A�A�D�c�A�D�+�+�/�1�Q�A�A�=�=�"�,�(�h�=�n�e�w� �t�.�I�m�a�g�e�)�.�o�n�e�r�r�o�r�=�f�u�n�c�t�i�o�n�(�)�{�w�[�u�]�=�!�1�,�L�(�)�}�,�h�.�o�n�l�o�a�d�=�f�u�n�c�t�i�o�n�(�)�{�w�[�u�]�=�1�=�=�=�h�.�w�i�d�t�h�,�L�(�)�}�,�h�.�s�r�c�=�C�,�"�p�e�n�d�i�n�g�"�)�)�}�(�w�i�n�d�o�w�,�d�o�c�u�m�e�n�t�)�,�!�f�u�n�c�t�i�o�n�(�r�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �e�(�t�)�{�v�a�r� �o�=�t�&�&�t�.�d�e�l�a�y�|�|�1�0�0�,�s�=�t�&�&�t�.�c�l�e�a�n�i�n�g�D�e�l�a�y�|�|�1�e�3�;�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�;�i�=�e�,�n�=�s�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�r�(�'�<�i�f�r�a�m�e� �s�t�y�l�e�=�"�d�i�s�p�l�a�y�:� �n�o�n�e�;�"� �c�l�a�s�s�=�"�m�u�l�t�i�-�d�o�w�n�l�o�a�d�-�f�r�a�m�e�"�>�<�/�i�f�r�a�m�e�>�'�)�;�t�.�a�t�t�r�(�"�s�r�c�"�,�r�(�i�)�.�a�t�t�r�(�"�h�r�e�f�"�)�|�|�r�(�i�)�.�a�t�t�r�(�"�s�r�c�"�)�)�,�r�(�i�)�.�a�f�t�e�r�(�t�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�t�.�r�e�m�o�v�e�(�)�}�,�n�)�}�,�t�*�o�)�}�)�,�t�h�i�s�}�r�.�f�n�.�m�u�l�t�i�D�o�w�n�l�o�a�d�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�.�c�a�l�l�(�t�h�i�s�,�t�)�}�}�(�j�Q�u�e�r�y�,�(�w�i�n�d�o�w�,�d�o�c�u�m�e�n�t�)�)�,�!�f�u�n�c�t�i�o�n�(�t�,�e�)�{�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�&�&�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �m�o�d�u�l�e�?�e�(�e�x�p�o�r�t�s�)�:�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�"�e�x�p�o�r�t�s�"�]�,�e�)�:�e�(�(�t�=�t�|�|�s�e�l�f�)�.�w�i�n�d�o�w�=�t�.�w�i�n�d�o�w�|�|�{�}�)�}�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�t�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �n�(�t�,�e�)�{�t�.�p�r�o�t�o�t�y�p�e�=�O�b�j�e�c�t�.�c�r�e�a�t�e�(�e�.�p�r�o�t�o�t�y�p�e�)�,�(�t�.�p�r�o�t�o�t�y�p�e�.�c�o�n�s�t�r�u�c�t�o�r�=�t�)�.�_�_�p�r�o�t�o�_�_�=�e�}�f�u�n�c�t�i�o�n� �E�(�t�)�{�i�f�(�v�o�i�d� �0�=�=�=�t�)�t�h�r�o�w� �n�e�w� �R�e�f�e�r�e�n�c�e�E�r�r�o�r�(�"�t�h�i�s� �h�a�s�n�'�t� �b�e�e�n� �i�n�i�t�i�a�l�i�s�e�d� �-� �s�u�p�e�r�(�)� �h�a�s�n�'�t� �b�e�e�n� �c�a�l�l�e�d�"�)�;�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �M�(�t�)�{�r�e�t�u�r�n�!�1�!�=�=�t�}�f�u�n�c�t�i�o�n� �s�(�)�{�r�e�t�u�r�n�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�}�f�u�n�c�t�i�o�n� �K�(�t�)�{�r�e�t�u�r�n� �u�(�t�)�|�|�B�(�t�)�}�f�u�n�c�t�i�o�n� �a�(�t�)�{�r�e�t�u�r�n�(�p�e�=�J�(�t�,�r�)�)�&�&�m�}�f�u�n�c�t�i�o�n� �Z�(�t�,�e�)�{�r�e�t�u�r�n�!�e�&�&�c�o�n�s�o�l�e�.�w�a�r�n�(�t�)�}�f�u�n�c�t�i�o�n� �l�(�t�,�e�)�{�r�e�t�u�r�n� �t�&�&�(�r�[�t�]�=�e�)�&�&�p�e�&�&�(�p�e�[�t�]�=�e�)�|�|�r�}�f�u�n�c�t�i�o�n� �c�(�)�{�r�e�t�u�r�n� �0�}�f�u�n�c�t�i�o�n� �p�(�t�,�e�)�{�r�e�t�u�r�n�(�t�=�t�.�s�p�l�i�t�(�"�,�"�)�)�.�f�o�r�E�a�c�h�(�e�)�|�|�t�}�f�u�n�c�t�i�o�n� �g�(�t�,�e�,�i�,�n�)�{�g�e�.�l�e�n�g�t�h�&�&�C�e�(�)�,�t�.�r�e�n�d�e�r�(�e�,�i�,�n�)�,�g�e�.�l�e�n�g�t�h�&�&�C�e�(�)�}�f�u�n�c�t�i�o�n� �v�(�t�)�{�v�a�r� �e�=�p�a�r�s�e�F�l�o�a�t�(�t�)�;�r�e�t�u�r�n�(�e�|�|�0�=�=�=�e�)�&�&�(�t�+�"�"�)�.�m�a�t�c�h�(�u�e�)�.�l�e�n�g�t�h�<�2�?�e�:�B�(�t�)�?�t�.�t�r�i�m�(�)�:�t�}�f�u�n�c�t�i�o�n� �y�(�t�)�{�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �P�(�t�,�e�)�{�f�o�r�(�v�a�r� �i� �i�n� �e�)�i� �i�n� �t�|�|�(�t�[�i�]�=�e�[�i�]�)�;�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �J�(�t�,�e�)�{�f�o�r�(�v�a�r� �i� �i�n� �e�)�t�[�i�]�=�e�[�i�]�;�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �w�(�t�,�e�)�{�f�o�r�(�v�a�r� �i� �i�n� �e�)�"�_�_�p�r�o�t�o�_�_�"�!�=�=�i�&�&�"�c�o�n�s�t�r�u�c�t�o�r�"�!�=�=�i�&�&�"�p�r�o�t�o�t�y�p�e�"�!�=�=�i�&�&�(�t�[�i�]�=�D�(�e�[�i�]�)�?�w�(�t�[�i�]�|�|�(�t�[�i�]�=�{�}�)�,�e�[�i�]�)�:�e�[�i�]�)�;�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �t�t�(�t�,�e�)�{�v�a�r� �i�,�n�=�{�}�;�f�o�r�(�i� �i�n� �t�)�i� �i�n� �e�|�|�(�n�[�i�]�=�t�[�i�]�)�;�r�e�t�u�r�n� �n�}�f�u�n�c�t�i�o�n� �e�t�(�t�)�{�v�a�r� �n�,�e�=�t�.�p�a�r�e�n�t�|�|�R�,�i�=�t�.�k�e�y�f�r�a�m�e�s�?�(�n�=�$�(�t�.�k�e�y�f�r�a�m�e�s�)�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�o�r�(�v�a�r� �i� �i�n� �e�)�i� �i�n� �t�|�|�"�d�u�r�a�t�i�o�n�"�=�=�=�i�&�&�n�|�|�"�e�a�s�e�"�=�=�=�i�|�|�(�t�[�i�]�=�e�[�i�]�)�}�)�:�P�;�i�f�(�M�(�t�.�i�n�h�e�r�i�t�)�)�f�o�r�(�;�e�;�)�i�(�t�,�e�.�v�a�r�s�.�d�e�f�a�u�l�t�s�)�,�e�=�e�.�p�a�r�e�n�t�|�|�e�.�_�d�p�;�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �z�(�t�,�e�)�{�!�t�.�p�a�r�e�n�t�|�|�e�&�&�!�t�.�p�a�r�e�n�t�.�a�u�t�o�R�e�m�o�v�e�C�h�i�l�d�r�e�n�|�|�t�.�p�a�r�e�n�t�.�r�e�m�o�v�e�(�t�)�,�t�.�_�a�c�t�=�0�}
1�f�u�n�c�t�i�o�n� �i�t�(�t�)�{�r�e�t�u�r�n�!�t�|�|�t�.�_�t�s�&�&�i�t�(�t�.�p�a�r�e�n�t�)�}�f�u�n�c�t�i�o�n� �b�(�t�)�{�r�e�t�u�r�n� �t�.�_�r�e�p�e�a�t�?�T�(�t�.�_�t�T�i�m�e�,�t�=�t�.�d�u�r�a�t�i�o�n�(�)�+�t�.�_�r�D�e�l�a�y�)�*�t�:�0�}�f�u�n�c�t�i�o�n� �T�(�t�,�e�)�{�r�e�t�u�r�n� �e�=�M�a�t�h�.�f�l�o�o�r�(�t�/�=�e�)�,�t�&�&�e�=�=�=�t�?�e�-�1�:�e�}�f�u�n�c�t�i�o�n� �S�(�t�,�e�)�{�r�e�t�u�r�n�(�t�-�e�.�_�s�t�a�r�t�)�*�e�.�_�t�s�+�(�0�<�=�e�.�_�t�s�?�0�:�e�.�_�d�i�r�t�y�?�e�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�:�e�.�_�t�D�u�r�)�}�f�u�n�c�t�i�o�n� �x�(�t�,�e�)�{�v�a�r� �i�;�i�f�(�(�e�.�_�t�i�m�e�|�|�e�.�_�i�n�i�t�t�e�d�&�&�!�e�.�_�d�u�r�)�&�&�(�i�=�S�(�t�.�r�a�w�T�i�m�e�(�)�,�e�)�,�(�!�e�.�_�d�u�r�|�|�l�t�(�0�,�e�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�,�i�)�-�e�.�_�t�T�i�m�e�>�H�)�&�&�e�.�r�e�n�d�e�r�(�i�,�!�0�)�)�,�E�e�(�t�,�e�)�.�_�d�p�&�&�t�.�_�i�n�i�t�t�e�d�&�&�t�.�_�t�i�m�e�>�=�t�.�_�d�u�r�&�&�t�.�_�t�s�)�{�i�f�(�t�.�_�d�u�r�<�t�.�d�u�r�a�t�i�o�n�(�)�)�f�o�r�(�i�=�t�;�i�.�_�d�p�;�)�0�<�=�i�.�r�a�w�T�i�m�e�(�)�&�&�i�.�t�o�t�a�l�T�i�m�e�(�i�.�_�t�T�i�m�e�)�,�i�=�i�.�_�d�p�;�t�.�_�z�T�i�m�e�=�-�H�}�}�f�u�n�c�t�i�o�n� �A�(�t�,�e�,�i�,�n�)�{�e�.�p�a�r�e�n�t�&�&�z�(�e�)�,�e�.�_�s�t�a�r�t�=�F�(�(�O�(�i�)�?�i�:�i�|�|�t�!�=�=�R�?�d�(�t�,�i�,�e�)�:�t�.�_�t�i�m�e�)�+�e�.�_�d�e�l�a�y�)�,�e�.�_�e�n�d�=�F�(�e�.�_�s�t�a�r�t�+�(�e�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�/�M�a�t�h�.�a�b�s�(�e�.�t�i�m�e�S�c�a�l�e�(�)�)�|�|�0�)�)�;�v�a�r� �i�=�t�,�o�=�e�,�s�=�"�_�f�i�r�s�t�"�,�r�=�"�_�l�a�s�t�"�,�a�=�t�.�_�s�o�r�t�?�"�_�s�t�a�r�t�"�:�0�;�v�o�i�d� �0�=�=�=�s�&�&�(�s�=�"�_�f�i�r�s�t�"�)�;�v�a�r� �l�,�c�=�i�[�r�=�v�o�i�d� �0�=�=�=�r�?�"�_�l�a�s�t�"�:�r�]�;�i�f�(�a�)�f�o�r�(�l�=�o�[�a�]�;�c�&�&�c�[�a�]�>�l�;�)�c�=�c�.�_�p�r�e�v�;�r�e�t�u�r�n� �c�?�(�o�.�_�n�e�x�t�=�c�.�_�n�e�x�t�,�c�.�_�n�e�x�t�=�o�)�:�(�o�.�_�n�e�x�t�=�i�[�s�]�,�i�[�s�]�=�o�)�,�o�.�_�n�e�x�t�?�o�.�_�n�e�x�t�.�_�p�r�e�v�=�o�:�i�[�r�]�=�o�,�o�.�_�p�r�e�v�=�c�,�o�.�p�a�r�e�n�t�=�o�.�_�d�p�=�i�,�o�t�(�e�)�|�|�(�t�.�_�r�e�c�e�n�t�=�e�)�,�n�|�|�x�(�t�,�e�)�,�t�}�f�u�n�c�t�i�o�n� �n�t�(�t�,�e�)�{�(�r�.�S�c�r�o�l�l�T�r�i�g�g�e�r�|�|�f�e�(�"�s�c�r�o�l�l�T�r�i�g�g�e�r�"�,�e�)�)�&�&�r�.�S�c�r�o�l�l�T�r�i�g�g�e�r�.�c�r�e�a�t�e�(�e�,�t�)�}�f�u�n�c�t�i�o�n� �C�(�t�,�e�,�i�,�n�)�{�r�e�t�u�r�n� �s�i�(�t�,�e�)�,�t�.�_�i�n�i�t�t�e�d�?�!�i�&�&�t�.�_�p�t�&�&�(�t�.�_�d�u�r�&�&�!�1�!�=�=�t�.�v�a�r�s�.�l�a�z�y�|�|�!�t�.�_�d�u�r�&�&�t�.�v�a�r�s�.�l�a�z�y�)�&�&�F�t�!�=�=�f�.�f�r�a�m�e�?�(�g�e�.�p�u�s�h�(�t�)�,�t�.�_�l�a�z�y�=�[�e�,�n�]�)�:�v�o�i�d� �0�:�1�}�f�u�n�c�t�i�o�n� �k�(�t�)�{�r�e�t�u�r�n�(�t�=�t�.�p�a�r�e�n�t�)�&�&�t�.�_�t�s�&�&�t�.�_�i�n�i�t�t�e�d�&�&�!�t�.�_�l�o�c�k�&�&�(�t�.�r�a�w�T�i�m�e�(�)�<�0�|�|�k�(�t�)�)�}�f�u�n�c�t�i�o�n� �o�t�(�t�)�{�r�e�t�u�r�n�"�i�s�F�r�o�m�S�t�a�r�t�"�=�=�=�(�t�=�t�.�d�a�t�a�)�|�|�"�i�s�S�t�a�r�t�"�=�=�=�t�}�f�u�n�c�t�i�o�n� �s�t�(�t�,�e�,�i�,�n�)�{�v�a�r� �o�=�t�.�_�r�e�p�e�a�t�,�e�=�F�(�e�)�|�|�0�,�s�=�t�.�_�t�T�i�m�e�/�t�.�_�t�D�u�r�;�r�e�t�u�r�n� �s�&�&�!�n�&�&�(�t�.�_�t�i�m�e�*�=�e�/�t�.�_�d�u�r�)�,�t�.�_�d�u�r�=�e�,�t�.�_�t�D�u�r�=�o�?�o�<�0�?�1�e�1�0�:�F�(�e�*�(�o�+�1�)�+�t�.�_�r�D�e�l�a�y�*�o�)�:�e�,�0�<�s�&�&�!�n�?�O�e�(�t�,�t�.�_�t�T�i�m�e�=�t�.�_�t�D�u�r�*�s�)�:�t�.�p�a�r�e�n�t�&�&�A�e�(�t�)�,�i�|�|�E�e�(�t�.�p�a�r�e�n�t�,�t�)�,�t�}�f�u�n�c�t�i�o�n� �r�t�(�t�)�{�r�e�t�u�r�n� �t� �i�n�s�t�a�n�c�e�o�f� �U�?�E�e�(�t�)�:�s�t�(�t�,�t�.�_�d�u�r�)�}�f�u�n�c�t�i�o�n� �d�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�=�t�.�l�a�b�e�l�s�,�a�=�t�.�_�r�e�c�e�n�t�|�|�D�e�,�l�=�t�.�d�u�r�a�t�i�o�n�(�)�>�=�j�?�a�.�e�n�d�T�i�m�e�(�!�1�)�:�t�.�_�d�u�r�;�r�e�t�u�r�n� �B�(�e�)�&�&�(�i�s�N�a�N�(�e�)�|�|�e� �i�n� �r�)�?�(�o�=�e�.�c�h�a�r�A�t�(�0�)�,�s�=�"�%�"�=�=�=�e�.�s�u�b�s�t�r�(�-�1�)�,�n�=�e�.�i�n�d�e�x�O�f�(�"�=�"�)�,�"�<�"�=�=�=�o�|�|�"�>�"�=�=�=�o�?�(�0�<�=�n�&�&�(�e�=�e�.�r�e�p�l�a�c�e�(�/�=�/�,�"�"�)�)�,�(�"�<�"�=�=�=�o�?�a�.�_�s�t�a�r�t�:�a�.�e�n�d�T�i�m�e�(�0�<�=�a�.�_�r�e�p�e�a�t�)�)�+�(�p�a�r�s�e�F�l�o�a�t�(�e�.�s�u�b�s�t�r�(�1�)�)�|�|�0�)�*�(�s�?�(�n�<�0�?�a�:�i�)�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�/�1�0�0�:�1�)�)�:�n�<�0�?�(�e� �i�n� �r�|�|�(�r�[�e�]�=�l�)�,�r�[�e�]�)�:�(�o�=�p�a�r�s�e�F�l�o�a�t�(�e�.�c�h�a�r�A�t�(�n�-�1�)�+�e�.�s�u�b�s�t�r�(�n�+�1�)�)�,�s�&�&�i�&�&�(�o�=�o�/�1�0�0�*�(�$�(�i�)�?�i�[�0�]�:�i�)�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�)�,�1�<�n�?�d�(�t�,�e�.�s�u�b�s�t�r�(�0�,�n�-�1�)�,�i�)�+�o�:�l�+�o�)�)�:�n�u�l�l�=�=�e�?�l�:�+�e�}�f�u�n�c�t�i�o�n� �a�t�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�=�O�(�e�[�1�]�)�,�r�=�(�s�?�2�:�1�)�+�(�t�<�2�?�0�:�1�)�,�a�=�e�[�r�]�;�i�f�(�s�&�&�(�a�.�d�u�r�a�t�i�o�n�=�e�[�1�]�)�,�a�.�p�a�r�e�n�t�=�i�,�t�)�{�f�o�r�(�n�=�a�,�o�=�i�;�o�&�&�!�(�"�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�"�i�n� �n�)�;�)�n�=�o�.�v�a�r�s�.�d�e�f�a�u�l�t�s�|�|�{�}�,�o�=�M�(�o�.�v�a�r�s�.�i�n�h�e�r�i�t�)�&�&�o�.�p�a�r�e�n�t�;�a�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�=�M�(�n�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�)�,�t�<�2�?�a�.�r�u�n�B�a�c�k�w�a�r�d�s�=�1�:�a�.�s�t�a�r�t�A�t�=�e�[�r�-�1�]�}�r�e�t�u�r�n� �n�e�w� �Y�(�e�[�0�]�,�a�,�e�[�1�+�r�]�)�}�f�u�n�c�t�i�o�n� �l�t�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �i�<�t�?�t�:�e�<�i�?�e�:�i�}�f�u�n�c�t�i�o�n� �c�t�(�t�)�{�i�f�(�u�(�t�)�)�r�e�t�u�r�n� �t�;�v�a�r� �p�=�D�(�t�)�?�t�:�{�e�a�c�h�:�t�}�,�f�=�U�e�(�p�.�e�a�s�e�)�,�m�=�p�.�f�r�o�m�|�|�0�,�g�=�p�a�r�s�e�F�l�o�a�t�(�p�.�b�a�s�e�)�|�|�0�,�v�=�{�}�,�t�=�0�<�m�&�&�m�<�1�,�y�=�i�s�N�a�N�(�m�)�|�|�t�,�w�=�p�.�a�x�i�s�,�b�=�m�,�_�=�m�;�r�e�t�u�r�n� �B�(�m�)�?�b�=�_�=�{�c�e�n�t�e�r�:�.�5�,�e�d�g�e�s�:�.�5�,�e�n�d�:�1�}�[�m�]�|�|�0�:�!�t�&�&�y�&�&�(�b�=�m�[�0�]�,�_�=�m�[�1�]�)�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�,�a�,�l�,�c�,�d�,�u�=�(�i�|�|�p�)�.�l�e�n�g�t�h�,�h�=�v�[�u�]�;�i�f�(�!�h�)�{�i�f�(�!�(�d�=�"�a�u�t�o�"�=�=�=�p�.�g�r�i�d�?�0�:�(�p�.�g�r�i�d�|�|�[�1�,�j�]�)�[�1�]�)�)�{�f�o�r�(�l�=�-�j�;�l�<�(�l�=�i�[�d�+�+�]�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�l�e�f�t�)�&�&�d�<�u�;�)�;�d�-�-�}�f�o�r�(�h�=�v�[�u�]�=�[�]�,�n�=�y�?�M�a�t�h�.�m�i�n�(�d�,�u�)�*�b�-�.�5�:�m�%�d�,�o�=�d�=�=�=�j�?�0�:�y�?�u�*�_�/�d�-�.�5�:�m�/�d�|�0�,�c�=�j�,�a�=�l�=�0�;�a�<�u�;�a�+�+�)�r�=�a�%�d�-�n�,�s�=�o�-�(�a�/�d�|�0�)�,�h�[�a�]�=�r�=�w�?�M�a�t�h�.�a�b�s�(�"�y�"�=�=�=�w�?�s�:�r�)�:�e�e�(�r�*�r�+�s�*�s�)�,�l�<�r�&�&�(�l�=�r�)�,�r�<�c�&�&�(�c�=�r�)�;�"�r�a�n�d�o�m�"�=�=�=�m�&�&�L�e�(�h�)�,�h�.�m�a�x�=�l�-�c�,�h�.�m�i�n�=�c�,�h�.�v�=�u�=�(�p�a�r�s�e�F�l�o�a�t�(�p�.�a�m�o�u�n�t�)�|�|�p�a�r�s�e�F�l�o�a�t�(�p�.�e�a�c�h�)�*�(�u�<�d�?�u�-�1�:�w�?�"�y�"�=�=�=�w�?�u�/�d�:�d�:�M�a�t�h�.�m�a�x�(�d�,�u�/�d�)�)�|�|�0�)�*�(�"�e�d�g�e�s�"�=�=�=�m�?�-�1�:�1�)�,�h�.�b�=�u�<�0�?�g�-�u�:�g�,�h�.�u�=�q�(�p�.�a�m�o�u�n�t�|�|�p�.�e�a�c�h�)�|�|�0�,�f�=�f�&�&�u�<�0�?�V�e�(�f�)�:�f�}�r�e�t�u�r�n� �u�=�(�h�[�t�]�-�h�.�m�i�n�)�/�h�.�m�a�x�|�|�0�,�F�(�h�.�b�+�(�f�?�f�(�u�)�:�u�)�*�h�.�v�)�+�h�.�u�}�}�f�u�n�c�t�i�o�n� �d�t�(�i�)�{�v�a�r� �n�=�M�a�t�h�.�p�o�w�(�1�0�,�(�(�i�+�"�"�)�.�s�p�l�i�t�(�"�.�"�
1)�[�1�]�|�|�"�"�)�.�l�e�n�g�t�h�)�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�M�a�t�h�.�r�o�u�n�d�(�p�a�r�s�e�F�l�o�a�t�(�t�)�/�i�)�*�i�*�n�;�r�e�t�u�r�n�(�e�-�e�%�1�)�/�n�+�(�O�(�t�)�?�0�:�q�(�t�)�)�}�}�f�u�n�c�t�i�o�n� �u�t�(�l�,�t�)�{�v�a�r� �c�,�d�,�e�=�$�(�l�)�;�r�e�t�u�r�n�!�e�&�&�D�(�l�)�&�&�(�c�=�e�=�l�.�r�a�d�i�u�s�|�|�j�,�l�.�v�a�l�u�e�s�?�(�l�=�L�(�l�.�v�a�l�u�e�s�)�,�(�d�=�!�O�(�l�[�0�]�)�)�&�&�(�c�*�=�c�)�)�:�l�=�d�t�(�l�.�i�n�c�r�e�m�e�n�t�)�)�,�$�e�(�t�,�e�?�u�(�l�)�?�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �d�=�l�(�t�)�,�M�a�t�h�.�a�b�s�(�d�-�t�)�<�=�c�?�d�:�t�}�:�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�=�p�a�r�s�e�F�l�o�a�t�(�d�?�t�.�x�:�t�)�,�o�=�p�a�r�s�e�F�l�o�a�t�(�d�?�t�.�y�:�0�)�,�s�=�j�,�r�=�0�,�a�=�l�.�l�e�n�g�t�h�;�a�-�-�;�)�(�e�=�d�?�(�e�=�l�[�a�]�.�x�-�n�)�*�e�+�(�i�=�l�[�a�]�.�y�-�o�)�*�i�:�M�a�t�h�.�a�b�s�(�l�[�a�]�-�n�)�)�<�s�&�&�(�s�=�e�,�r�=�a�)�;�r�e�t�u�r�n� �r�=�!�c�|�|�s�<�=�c�?�l�[�r�]�:�t�,�d�|�|�r�=�=�=�t�|�|�O�(�t�)�?�r�:�r�+�q�(�t�)�}�:�d�t�(�l�)�)�}�f�u�n�c�t�i�o�n� �h�t�(�t�,�e�,�i�,�n�)�{�r�e�t�u�r�n� �$�e�(�$�(�t�)�?�!�e�:�!�0�=�=�=�i�?�!�!�(�i�=�0�)�:�!�n�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �$�(�t�)�?�t�[�~�~�(�M�a�t�h�.�r�a�n�d�o�m�(�)�*�t�.�l�e�n�g�t�h�)�]�:�(�i�=�i�|�|�1�e�-�5�)�&�&�(�n�=�i�<�1�?�M�a�t�h�.�p�o�w�(�1�0�,�(�i�+�"�"�)�.�l�e�n�g�t�h�-�2�)�:�1�)�&�&�M�a�t�h�.�f�l�o�o�r�(�M�a�t�h�.�r�o�u�n�d�(�(�t�-�i�/�2�+�M�a�t�h�.�r�a�n�d�o�m�(�)�*�(�e�-�t�+�.�9�9�*�i�)�)�/�i�)�*�i�*�n�)�/�n�}�)�}�f�u�n�c�t�i�o�n� �p�t�(�e�,�i�,�t�)�{�r�e�t�u�r�n� �$�e�(�t�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�[�~�~�i�(�t�)�]�}�)�}�f�u�n�c�t�i�o�n� �f�t�(�e�,�t�,�i�)�{�v�a�r� �n�=�t�-�e�;�r�e�t�u�r�n� �$�(�e�)�?�p�t�(�e�,�f�t�(�0�,�e�.�l�e�n�g�t�h�)�,�t�)�:�$�e�(�i�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�(�n�+�(�t�-�e�)�%�n�)�%�n�+�e�}�)�}�f�u�n�c�t�i�o�n� �m�t�(�e�,�t�,�i�)�{�v�a�r� �n�=�t�-�e�,�o�=�2�*�n�;�r�e�t�u�r�n� �$�(�e�)�?�p�t�(�e�,�m�t�(�0�,�e�.�l�e�n�g�t�h�-�1�)�,�t�)�:�$�e�(�i�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�+�(�n�<�(�t�=�(�o�+�(�t�-�e�)�%�o�)�%�o�|�|�0�)�?�o�-�t�:�t�)�}�)�}�f�u�n�c�t�i�o�n� �g�t�(�e�,�t�,�i�,�n�,�o�)�{�v�a�r� �s�=�t�-�e�,�r�=�n�-�i�;�r�e�t�u�r�n� �$�e�(�o�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�+�(�(�t�-�e�)�/�s�*�r�|�|�0�)�}�)�}�f�u�n�c�t�i�o�n� �v�t�(�e�,�i�,�t�,�n�)�{�v�a�r� �o�=�i�s�N�a�N�(�e�+�i�)�?�0�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�(�1�-�t�)�*�e�+�t�*�i�}�;�i�f�(�!�o�)�{�v�a�r� �s�,�r�,�a�,�l�,�c�,�d�=�B�(�e�)�,�u�=�{�}�;�i�f�(�!�0�=�=�=�t�&�&�(�n�=�1�)�&�&�(�t�=�n�u�l�l�)�,�d�)�e�=�{�p�:�e�}�,�i�=�{�p�:�i�}�;�e�l�s�e� �i�f�(�$�(�e�)�&�&�!�$�(�i�)�)�{�f�o�r�(�a�=�[�]�,�l�=�e�.�l�e�n�g�t�h�,�c�=�l�-�2�,�r�=�1�;�r�<�l�;�r�+�+�)�a�.�p�u�s�h�(�v�t�(�e�[�r�-�1�]�,�e�[�r�]�)�)�;�l�-�-�,�o�=�f�u�n�c�t�i�o�n�(�t�)�{�t�*�=�l�;�v�a�r� �e�=�M�a�t�h�.�m�i�n�(�c�,�~�~�t�)�;�r�e�t�u�r�n� �a�[�e�]�(�t�-�e�)�}�,�t�=�i�}�e�l�s�e� �n�|�|�(�e�=�J�(�$�(�e�)�?�[�]�:�{�}�,�e�)�)�;�i�f�(�!�a�)�{�f�o�r�(�s� �i�n� �i�)�t�i�.�c�a�l�l�(�u�,�e�,�s�,�"�g�e�t�"�,�i�[�s�]�)�;�o�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �d�i�(�t�,�u�)�,�d�?�e�.�p�:�e�}�}�}�r�e�t�u�r�n� �$�e�(�t�,�o�)�}�f�u�n�c�t�i�o�n� �y�t�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�=�t�.�l�a�b�e�l�s�,�a�=�j�;�f�o�r�(�n� �i�n� �r�)�(�o�=�r�[�n�]�-�e�)�<�0�=�=�!�!�i�&�&�o�&�&�a�>�(�o�=�M�a�t�h�.�a�b�s�(�o�)�)�&�&�(�s�=�n�,�a�=�o�)�;�r�e�t�u�r�n� �s�}�f�u�n�c�t�i�o�n� �_�(�t�,�e�,�i�)�{�v�a�r� �n�=�t�.�v�a�r�s�,�o�=�n�[�e�]�;�i�f�(�o�)�e�=�n�[�e�+�"�P�a�r�a�m�s�"�]�,�n�=�n�.�c�a�l�l�b�a�c�k�S�c�o�p�e�|�|�t�,�i�&�&�g�e�.�l�e�n�g�t�h�&�&�C�e�(�)�,�e�?�o�.�a�p�p�l�y�(�n�,�e�)�:�o�.�c�a�l�l�(�n�)�}�f�u�n�c�t�i�o�n� �w�t�(�t�)�{�r�e�t�u�r�n� �z�(�t�)�,�t�.�s�c�r�o�l�l�T�r�i�g�g�e�r�&�&�t�.�s�c�r�o�l�l�T�r�i�g�g�e�r�.�k�i�l�l�(�!�1�)�,�t�.�p�r�o�g�r�e�s�s�(�)�<�1�&�&�_�(�t�,�"�o�n�I�n�t�e�r�r�u�p�t�"�)�,�t�}�f�u�n�c�t�i�o�n� �b�t�(�t�,�e�,�i�)�{�r�e�t�u�r�n�(�6�*�(�t�+�=�t�<�0�?�1�:�1�<�t�?�-�1�:�0�)�<�1�?�e�+�(�i�-�e�)�*�t�*�6�:�t�<�.�5�?�i�:�3�*�t�<�2�?�e�+�(�i�-�e�)�*�(�2�/�3�-�t�)�*�6�:�e�)�*�h�+�.�5�|�0�}�f�u�n�c�t�i�o�n� �_�t�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�,�a�=�"�"�,�l�=�(�t�+�a�)�.�m�a�t�c�h�(�N�e�)�,�c�=�e�?�"�h�s�l�a�(�"�:�"�r�g�b�a�(�"�,�d�=�0�;�i�f�(�!�l�)�r�e�t�u�r�n� �t�;�i�f�(�l�=�l�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�(�t�=�z�e�(�t�,�e�,�1�)�)�&�&�c�+�(�e�?�t�[�0�]�+�"�,�"�+�t�[�1�]�+�"�%�,�"�+�t�[�2�]�+�"�%�,�"�+�t�[�3�]�:�t�.�j�o�i�n�(�"�,�"�)�)�+�"�)�"�}�)�,�i�&�&�(�s�=�R�e�(�t�)�,�(�n�=�i�.�c�)�.�j�o�i�n�(�a�)�!�=�=�s�.�c�.�j�o�i�n�(�a�)�)�)�f�o�r�(�r�=�(�o�=�t�.�r�e�p�l�a�c�e�(�N�e�,�"�1�"�)�.�s�p�l�i�t�(�l�e�)�)�.�l�e�n�g�t�h�-�1�;�d�<�r�;�d�+�+�)�a�+�=�o�[�d�]�+�(�~�n�.�i�n�d�e�x�O�f�(�d�)�?�l�.�s�h�i�f�t�(�)�|�|�c�+�"�0�,�0�,�0�,�0�)�"�:�(�s�.�l�e�n�g�t�h�?�s�:�l�.�l�e�n�g�t�h�?�l�:�i�)�.�s�h�i�f�t�(�)�)�;�i�f�(�!�o�)�f�o�r�(�r�=�(�o�=�t�.�s�p�l�i�t�(�N�e�)�)�.�l�e�n�g�t�h�-�1�;�d�<�r�;�d�+�+�)�a�+�=�o�[�d�]�+�l�[�d�]�;�r�e�t�u�r�n� �a�+�o�[�r�]�}�f�u�n�c�t�i�o�n� �T�t�(�t�)�{�v�a�r� �e�=�t�.�j�o�i�n�(�"� �"�)�;�i�f�(�N�e�.�l�a�s�t�I�n�d�e�x�=�0�,�N�e�.�t�e�s�t�(�e�)�)�r�e�t�u�r�n� �e�=�j�e�.�t�e�s�t�(�e�)�,�t�[�1�]�=�_�t�(�t�[�1�]�,�e�)�,�t�[�0�]�=�_�t�(�t�[�0�]�,�e�,�R�e�(�t�[�1�]�)�)�,�!�0�}
1�f�u�n�c�t�i�o�n� �S�t�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�,�n�=�t�.�_�f�i�r�s�t�;�n�;�)�n� �i�n�s�t�a�n�c�e�o�f� �U�?�S�t�(�n�,�e�)�:�!�n�.�v�a�r�s�.�y�o�y�o�E�a�s�e�|�|�n�.�_�y�o�y�o�&�&�n�.�_�r�e�p�e�a�t�|�|�n�.�_�y�o�y�o�=�=�=�e�|�|�(�n�.�t�i�m�e�l�i�n�e�?�S�t�(�n�.�t�i�m�e�l�i�n�e�,�e�)�:�(�i�=�n�.�_�e�a�s�e�,�n�.�_�e�a�s�e�=�n�.�_�y�E�a�s�e�,�n�.�_�y�E�a�s�e�=�i�,�n�.�_�y�o�y�o�=�e�)�)�,�n�=�n�.�_�n�e�x�t�}�f�u�n�c�t�i�o�n� �x�t�(�t�,�e�,�i�,�n�)�{�v�a�r� �o�,�s�=�{�e�a�s�e�I�n�:�e�,�e�a�s�e�O�u�t�:�i�=�v�o�i�d� �0�=�=�=�i�?�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �1�-�e�(�1�-�t�)�}�:�i�,�e�a�s�e�I�n�O�u�t�:�n�=�v�o�i�d� �0�=�=�=�n�?�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�<�.�5�?�e�(�2�*�t�)�/�2�:�1�-�e�(�2�*�(�1�-�t�)�)�/�2�}�:�n�}�;�p�(�t�,�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e� �i�n� �V�[�t�]�=�r�[�t�]�=�s�,�V�[�o�=�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�=�i�,�s�)�V�[�o�+�(�"�e�a�s�e�I�n�"�=�=�=�e�?�"�.�i�n�"�:�"�e�a�s�e�O�u�t�"�=�=�=�e�?�"�.�o�u�t�"�:�"�.�i�n�O�u�t�"�)�]�=�V�[�t�+�"�.�"�+�e�]�=�s�[�e�]�}�)�}�f�u�n�c�t�i�o�n� �C�t�(�e�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�<�.�5�?�(�1�-�e�(�1�-�2�*�t�)�)�/�2�:�.�5�+�e�(�2�*�(�t�-�.�5�)�)�/�2�}�}�f�u�n�c�t�i�o�n� �k�t�(�i�,�t�,�e�)�{�f�u�n�c�t�i�o�n� �n�(�t�)�{�r�e�t�u�r�n� �1�=�=�=�t�?�1�:�o�*�M�a�t�h�.�p�o�w�(�2�,�-�1�0�*�t�)�*�n�e�(�(�t�-�s�)�*�r�)�+�1�}�v�a�r� �o�=�1�<�=�t�?�t�:�1�,�s�=�(�r�=�(�e�|�|�(�i�?�.�3�:�.�4�5�)�)�/�(�t�<�1�?�t�:�1�)�)�/�Z�t�*�(�M�a�t�h�.�a�s�i�n�(�1�/�o�)�|�|�0�)�,�e�=�"�o�u�t�"�=�=�=�i�?�n�:�"�i�n�"�=�=�=�i�?�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �1�-�n�(�1�-�t�)�}�:�C�t�(�n�)�,�r�=�Z�t�/�r�;�r�e�t�u�r�n� �e�.�c�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �k�t�(�i�,�t�,�e�)�}�,�e�}�f�u�n�c�t�i�o�n� �E�t�(�e�,�i�)�{�f�u�n�c�t�i�o�n� �n�(�t�)�{�r�e�t�u�r�n� �t�?�-�-�t�*�t�*�(�(�i�+�1�)�*�t�+�i�)�+�1�:�0�}�v�o�i�d� �0�=�=�=�i�&�&�(�i�=�1�.�7�0�1�5�8�)�;�v�a�r� �t�=�"�o�u�t�"�=�=�=�e�?�n�:�"�i�n�"�=�=�=�e�?�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �1�-�n�(�1�-�t�)�}�:�C�t�(�n�)�;�r�e�t�u�r�n� �t�.�c�o�n�f�i�g�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �E�t�(�e�,�t�)�}�,�t�}�v�a�r� �A�t�,�R�,�i�,�O�t�,�D�t�,�$�t�,�F�t�,�I�t�,�L�t�,�M�t�,�P�t�,�z�t�,�R�t�,�N�t�,�j�t�,�H�t�,�B�t�,�W�t�,�q�t�,�V�t�,�U�t�,�Y�t�,�Q�t�,�G�t�,�X�t�,�N�=�{�a�u�t�o�S�l�e�e�p�:�1�2�0�,�f�o�r�c�e�3�D�:�"�a�u�t�o�"�,�n�u�l�l�T�a�r�g�e�t�W�a�r�n�:�1�,�u�n�i�t�s�:�{�l�i�n�e�H�e�i�g�h�t�:�"�"�}�}�,�K�t�=�{�d�u�r�a�t�i�o�n�:�.�5�,�o�v�e�r�w�r�i�t�e�:�!�1�,�d�e�l�a�y�:�0�}�,�j�=�1�e�8�,�H�=�1�/�j�,�Z�t�=�2�*�M�a�t�h�.�P�I�,�J�t�=�Z�t�/�4�,�t�e�=�0�,�e�e�=�M�a�t�h�.�s�q�r�t�,�i�e�=�M�a�t�h�.�c�o�s�,�n�e�=�M�a�t�h�.�s�i�n�,�B�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�}�,�u�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �t�}�,�O�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�}�,�o�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �v�o�i�d� �0�=�=�=�t�}�,�D�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�}�,�s�e�=�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �A�r�r�a�y�B�u�f�f�e�r�&�&�A�r�r�a�y�B�u�f�f�e�r�.�i�s�V�i�e�w�|�|�f�u�n�c�t�i�o�n�(�)�{�}�,�$�=�A�r�r�a�y�.�i�s�A�r�r�a�y�,�r�e�=�/�(�?�:�-�?�\�.�?�\�d�|�\�.�)�+�/�g�i�,�a�e�=�/�[�-�+�=�.�]�*�\�d�+�[�.�e�\�-�+�]�*�\�d�*�[�e�\�-�+�]�*�\�d�*�/�g�,�l�e�=�/�[�-�+�=�.�]�*�\�d�+�[�.�e�-�]�*�\�d�*�[�a�-�z�%�]�*�/�g�,�c�e�=�/�[�-�+�=�.�]�*�\�d�+�\�.�?�\�d�*�(�?�:�e�-�|�e�\�+�)�?�\�d�*�/�g�i�,�d�e�=�/�[�+�-�]�=�-�?�[�.�\�d�]�+�/�,�u�e�=�/�[�^�,�'�"�\�[�\�]�\�s�]�+�/�g�i�,�h�e�=�/�[�\�d�.�+�\�-�=�]�+�(�?�:�e�[�-�+�]�\�d�*�)�*�/�i�,�r�=�{�}�,�p�e�=�{�}�,�f�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �c�o�n�s�o�l�e�.�w�a�r�n�(�"�I�n�v�a�l�i�d� �p�r�o�p�e�r�t�y�"�,�t�,�"�s�e�t� �t�o�"�,�e�,�"�M�i�s�s�i�n�g� �p�l�u�g�i�n�?� �g�s�a�p�.�r�e�g�i�s�t�e�r�P�l�u�g�i�n�(�)�"�)�}�,�m�e�=�{�}�,�g�e�=�[�]�,�v�e�=�{�}�,�W�=�{�}�,�y�e�=�{�}�,�w�e�=�3�0�,�b�e�=�[�]�,�_�e�=�"�"�,�T�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�=�t�[�0�]�;�i�f�(�D�(�n�)�|�|�u�(�n�)�|�|�(�t�=�[�t�]�)�,�!�(�e�=�(�n�.�_�g�s�a�p�|�|�{�}�)�.�h�a�r�n�e�s�s�)�)�{�f�o�r�(�i�=�b�e�.�l�e�n�g�t�h�;�i�-�-�&�&�!�b�e�[�i�]�.�t�a�r�g�e�t�T�e�s�t�(�n�)�;�)�;�e�=�b�e�[�i�]�}�f�o�r�(�i�=�t�.�l�e�n�g�t�h�;�i�-�-�;�)�t�[�i�]�&�&�(�t�[�i�]�.�_�g�s�a�p�|�|�(�t�[�i�]�.�_�g�s�a�p�=�n�e�w� �G�e�(�t�[�i�]�,�e�)�)�)�|�|�t�.�s�p�l�i�c�e�(�i�,�1�)�;�r�e�t�u�r�n� �t�}�,�S�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�_�g�s�a�p�|�|�T�e�(�L�(�t�)�)�[�0�]�.�_�g�s�a�p�}�,�x�e�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n�(�i�=�t�[�e�]�)�&�&�u�(�i�)�?�t�[�e�]�(�)�:�o�e�(�i�)�&�&�t�.�g�e�t�A�t�t�r�i�b�u�t�e�&�&�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�e�)�|�|�i�}�,�I�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �M�a�t�h�.�r�o�u�n�d�(�1�e�5�*�t�)�/�1�e�5�|�|�0�}�,�F�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �M�a�t�h�.�r�o�u�n�d�(�1�e�7�*�t�)�/�1�e�7�|�|�0�}
1�,�C�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�=�g�e�.�l�e�n�g�t�h�,�n�=�g�e�.�s�l�i�c�e�(�0�)�;�f�o�r�(�v�e�=�{�}�,�t�=�g�e�.�l�e�n�g�t�h�=�0�;�t�<�i�;�t�+�+�)�(�e�=�n�[�t�]�)�&�&�e�.�_�l�a�z�y�&�&�(�e�.�r�e�n�d�e�r�(�e�.�_�l�a�z�y�[�0�]�,�e�.�_�l�a�z�y�[�1�]�,�!�0�)�.�_�l�a�z�y�=�0�)�}�,�k�e�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�o�i�d� �0�=�=�=�i�&�&�(�i�=�"�_�f�i�r�s�t�"�)�,�v�o�i�d� �0�=�=�=�n�&�&�(�n�=�"�_�l�a�s�t�"�)�;�v�a�r� �o�=�e�.�_�p�r�e�v�,�s�=�e�.�_�n�e�x�t�;�o�?�o�.�_�n�e�x�t�=�s�:�t�[�i�]�=�=�=�e�&�&�(�t�[�i�]�=�s�)�,�s�?�s�.�_�p�r�e�v�=�o�:�t�[�n�]�=�=�=�e�&�&�(�t�[�n�]�=�o�)�,�e�.�_�n�e�x�t�=�e�.�_�p�r�e�v�=�e�.�p�a�r�e�n�t�=�n�u�l�l�}�,�E�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�t�&�&�(�!�e�|�|�e�.�_�e�n�d�>�t�.�_�d�u�r�|�|�e�.�_�s�t�a�r�t�<�0�)�)�f�o�r�(�v�a�r� �i�=�t�;�i�;�)�i�.�_�d�i�r�t�y�=�1�,�i�=�i�.�p�a�r�e�n�t�;�r�e�t�u�r�n� �t�}�,�A�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�_�e�n�d�=�F�(�t�.�_�s�t�a�r�t�+�(�t�.�_�t�D�u�r�/�M�a�t�h�.�a�b�s�(�t�.�_�t�s�|�|�t�.�_�r�t�s�|�|�H�)�|�|�0�)�)�}�,�O�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�.�_�d�p�;�r�e�t�u�r�n� �i�&�&�i�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�&�&�t�.�_�t�s�&�&�(�t�.�_�s�t�a�r�t�=�F�(�i�.�_�t�i�m�e�-�(�0�<�t�.�_�t�s�?�e�/�t�.�_�t�s�:�(�(�t�.�_�d�i�r�t�y�?�t�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�:�t�.�_�t�D�u�r�)�-�e�)�/�-�t�.�_�t�s�)�)�,�A�e�(�t�)�,�i�.�_�d�i�r�t�y�|�|�E�e�(�i�,�t�)�)�,�t�}�,�D�e�=�{�_�s�t�a�r�t�:�0�,�e�n�d�T�i�m�e�:�c�,�t�o�t�a�l�D�u�r�a�t�i�o�n�:�c�}�,�$�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�|�|�0�=�=�=�t�?�e�(�t�)�:�e�}�,�q�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �B�(�t�)�&�&�(�e�=�h�e�.�e�x�e�c�(�t�)�)�?�t�.�s�u�b�s�t�r�(�e�.�i�n�d�e�x�+�e�[�0�]�.�l�e�n�g�t�h�)�:�"�"�}�,�F�e�=�[�]�.�s�l�i�c�e�,�I�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�&�&�D�(�t�)�&�&�"�l�e�n�g�t�h�"�i�n� �t�&�&�(�!�e�&�&�!�t�.�l�e�n�g�t�h�|�|�t�.�l�e�n�g�t�h�-�1� �i�n� �t�&�&�D�(�t�[�0�]�)�)�&�&�!�t�.�n�o�d�e�T�y�p�e�&�&�t�!�=�=�i�}�,�L�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n�!�B�(�t�)�|�|�i�|�|�!�O�t�&�&�H�e�(�)�?�$�(�t�)�?�(�n�=�i�,�v�o�i�d� �0�=�=�=�o�&�&�(�o�=�[�]�)�,�t�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �B�(�t�)�&�&�!�n�|�|�I�e�(�t�,�1�)�?�o�.�p�u�s�h�.�a�p�p�l�y�(�o�,�L�(�t�)�)�:�o�.�p�u�s�h�(�t�)�}�)�|�|�o�)�:�I�e�(�t�)�?�F�e�.�c�a�l�l�(�t�,�0�)�:�t�?�[�t�]�:�[�]�:�F�e�.�c�a�l�l�(�(�e�|�|�D�t�)�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�t�)�,�0�)�;�v�a�r� �n�,�o�}�,�L�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�s�o�r�t�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�.�5�-�M�a�t�h�.�r�a�n�d�o�m�(�)�}�)�}�,�M�e�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�,�o�,�s�=�0�,�r�=�"�"�;�~�(�e�=�t�.�i�n�d�e�x�O�f�(�"�r�a�n�d�o�m�(�"�,�s�)�)�;�)�n�=�t�.�i�n�d�e�x�O�f�(�"�)�"�,�e�)�,�o�=�"�[�"�=�=�=�t�.�c�h�a�r�A�t�(�e�+�7�)�,�i�=�t�.�s�u�b�s�t�r�(�e�+�7�,�n�-�e�-�7�)�.�m�a�t�c�h�(�o�?�u�e�:�r�e�)�,�r�+�=�t�.�s�u�b�s�t�r�(�s�,�e�-�s�)�+�h�t�(�o�?�i�:�+�i�[�0�]�,�o�?�0�:�+�i�[�1�]�,�+�i�[�2�]�|�|�1�e�-�5�)�,�s�=�n�+�1�;�r�e�t�u�r�n� �r�+�t�.�s�u�b�s�t�r�(�s�,�t�.�l�e�n�g�t�h�-�s�)�}�,�h�=�2�5�5�,�P�e�=�{�a�q�u�a�:�[�0�,�h�,�h�]�,�l�i�m�e�:�[�0�,�h�,�0�]�,�s�i�l�v�e�r�:�[�1�9�2�,�1�9�2�,�1�9�2�]�,�b�l�a�c�k�:�[�0�,�0�,�0�]�,�m�a�r�o�o�n�:�[�1�2�8�,�0�,�0�]�,�t�e�a�l�:�[�0�,�1�2�8�,�1�2�8�]�,�b�l�u�e�:�[�0�,�0�,�h�]�,�n�a�v�y�:�[�0�,�0�,�1�2�8�]�,�w�h�i�t�e�:�[�h�,�h�,�h�]�,�o�l�i�v�e�:�[�1�2�8�,�1�2�8�,�0�]�,�y�e�l�l�o�w�:�[�h�,�h�,�0�]�,�o�r�a�n�g�e�:�[�h�,�1�6�5�,�0�]�,�g�r�a�y�:�[�1�2�8�,�1�2�8�,�1�2�8�]�,�p�u�r�p�l�e�:�[�1�2�8�,�0�,�1�2�8�]�,�g�r�e�e�n�:�[�0�,�1�2�8�,�0�]�,�r�e�d�:�[�h�,�0�,�0�]�,�p�i�n�k�:�[�h�,�1�9�2�,�2�0�3�]�,�c�y�a�n�:�[�0�,�h�,�h�]�,�t�r�a�n�s�p�a�r�e�n�t�:�[�h�,�h�,�h�,�0�]�}�,�z�e�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�,�a�,�l�,�c�,�d�=�t�?�O�(�t�)�?�[�t�>�>�1�6�,�t�>�>�8�&�h�,�t�&�h�]�:�0�:�P�e�.�b�l�a�c�k�;�i�f�(�!�d�)�{�i�f�(�"�,�"�=�=�=�t�.�s�u�b�s�t�r�(�-�1�)�&�&�(�t�=�t�.�s�u�b�s�t�r�(�0�,�t�.�l�e�n�g�t�h�-�1�)�)�,�P�e�[�t�]�)�d�=�P�e�[�t�]�;�e�l�s�e� �i�f�(�"�#�"�=�=�=�t�.�c�h�a�r�A�t�(�0�)�)�{�i�f�(�9�=�=�=�(�t�=�t�.�l�e�n�g�t�h�<�6�?�"�#�"�+�(�n�=�t�.�c�h�a�r�A�t�(�1�)�)�+�n�+�(�o�=�t�.�c�h�a�r�A�t�(�2�)�)�+�o�+�(�s�=�t�.�c�h�a�r�A�t�(�3�)�)�+�s�+�(�5�=�=�=�t�.�l�e�n�g�t�h�?�t�.�c�h�a�r�A�t�(�4�)�+�t�.�c�h�a�r�A�t�(�4�)�:�"�"�)�:�t�)�.�l�e�n�g�t�h�)�r�e�t�u�r�n�[�(�d�=�p�a�r�s�e�I�n�t�(�t�.�s�u�b�s�t�r�(�1�,�6�)�,�1�6�)�)�>�>�1�6�,�d�>�>�8�&�h�,�d�&�h�,�p�a�r�s�e�I�n�t�(�t�.�s�u�b�s�t�r�(�7�)�,�1�6�)�/�2�5�5�]�;
1�d�=�[�(�t�=�p�a�r�s�e�I�n�t�(�t�.�s�u�b�s�t�r�(�1�)�,�1�6�)�)�>�>�1�6�,�t�>�>�8�&�h�,�t�&�h�]�}�e�l�s�e� �i�f�(�"�h�s�l�"�=�=�=�t�.�s�u�b�s�t�r�(�0�,�3�)�)�i�f�(�d�=�c�=�t�.�m�a�t�c�h�(�r�e�)�,�e�)�{�i�f�(�~�t�.�i�n�d�e�x�O�f�(�"�=�"�)�)�r�e�t�u�r�n� �d�=�t�.�m�a�t�c�h�(�a�e�)�,�i�&�&�d�.�l�e�n�g�t�h�<�4�&�&�(�d�[�3�]�=�1�)�,�d�}�e�l�s�e� �r�=�+�d�[�0�]�%�3�6�0�/�3�6�0�,�a�=�+�d�[�1�]�/�1�0�0�,�n�=�2�*�(�l�=�+�d�[�2�]�/�1�0�0�)�-�(�o�=�l�<�=�.�5�?�l�*�(�a�+�1�)�:�l�+�a�-�l�*�a�)�,�3�<�d�.�l�e�n�g�t�h�&�&�(�d�[�3�]�*�=�1�)�,�d�[�0�]�=�b�t�(�r�+�1�/�3�,�n�,�o�)�,�d�[�1�]�=�b�t�(�r�,�n�,�o�)�,�d�[�2�]�=�b�t�(�r�-�1�/�3�,�n�,�o�)�;�e�l�s�e� �d�=�t�.�m�a�t�c�h�(�r�e�)�|�|�P�e�.�t�r�a�n�s�p�a�r�e�n�t�;�d�=�d�.�m�a�p�(�N�u�m�b�e�r�)�}�r�e�t�u�r�n� �e�&�&�!�c�&�&�(�n�=�d�[�0�]�/�h�,�o�=�d�[�1�]�/�h�,�s�=�d�[�2�]�/�h�,�l�=�(�(�t�=�M�a�t�h�.�m�a�x�(�n�,�o�,�s�)�)�+�(�e�=�M�a�t�h�.�m�i�n�(�n�,�o�,�s�)�)�)�/�2�,�t�=�=�=�e�?�r�=�a�=�0�:�(�c�=�t�-�e�,�a�=�.�5�<�l�?�c�/�(�2�-�t�-�e�)�:�c�/�(�t�+�e�)�,�r�=�t�=�=�=�n�?�(�o�-�s�)�/�c�+�(�o�<�s�?�6�:�0�)�:�t�=�=�=�o�?�(�s�-�n�)�/�c�+�2�:�(�n�-�o�)�/�c�+�4�,�r�*�=�6�0�)�,�d�[�0�]�=�~�~�(�r�+�.�5�)�,�d�[�1�]�=�~�~�(�1�0�0�*�a�+�.�5�)�,�d�[�2�]�=�~�~�(�1�0�0�*�l�+�.�5�)�)�,�i�&�&�d�.�l�e�n�g�t�h�<�4�&�&�(�d�[�3�]�=�1�)�,�d�}�,�R�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�[�]�,�i�=�[�]�,�n�=�-�1�;�r�e�t�u�r�n� �t�.�s�p�l�i�t�(�N�e�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�=�t�.�m�a�t�c�h�(�l�e�)�|�|�[�]�;�e�.�p�u�s�h�.�a�p�p�l�y�(�e�,�t�)�,�i�.�p�u�s�h�(�n�+�=�t�.�l�e�n�g�t�h�+�1�)�}�)�,�e�.�c�=�i�,�e�}�,�N�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�=�"�(�?�:�\�\�b�(�?�:�(�?�:�r�g�b�|�r�g�b�a�|�h�s�l�|�h�s�l�a�)�\�\�(�.�+�?�\�\�)�)�|�\�\�B�#�(�?�:�[�0�-�9�a�-�f�]�{�3�,�4�}�)�{�1�,�2�}�\�\�b�"�;�f�o�r�(�t� �i�n� �P�e�)�e�+�=�"�|�"�+�t�+�"�\�\�b�"�;�r�e�t�u�r�n� �n�e�w� �R�e�g�E�x�p�(�e�+�"�)�"�,�"�g�i�"�)�}�(�)�,�j�e�=�/�h�s�l�[�a�]�?�\�(�/�,�f�=�(�j�t�=�D�a�t�e�.�n�o�w�,�H�t�=�5�0�0�,�B�t�=�3�3�,�W�t�=�j�t�(�)�,�q�t�=�W�t�,�U�t�=�V�t�=�1�e�3�/�2�4�0�,�Q�t�=�{�t�i�m�e�:�0�,�f�r�a�m�e�:�0�,�t�i�c�k�:�f�u�n�c�t�i�o�n�(�)�{�Y�e�(�!�0�)�}�,�d�e�l�t�a�R�a�t�i�o�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �R�t�/�(�1�e�3�/�(�t�|�|�6�0�)�)�}�,�w�a�k�e�:�f�u�n�c�t�i�o�n�(�)�{�$�t�&�&�(�!�O�t�&�&�s�(�)�&�&�(�i�=�O�t�=�w�i�n�d�o�w�,�D�t�=�i�.�d�o�c�u�m�e�n�t�|�|�{�}�,�r�.�g�s�a�p�=�m�,�(�i�.�g�s�a�p�V�e�r�s�i�o�n�s�|�|�(�i�.�g�s�a�p�V�e�r�s�i�o�n�s�=�[�]�)�)�.�p�u�s�h�(�m�.�v�e�r�s�i�o�n�)�,�a�(�p�e�|�|�i�.�G�r�e�e�n�S�o�c�k�G�l�o�b�a�l�s�|�|�!�i�.�g�s�a�p�&�&�i�|�|�{�}�)�,�z�t�=�i�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�)�,�M�t�&�&�Q�t�.�s�l�e�e�p�(�)�,�P�t�=�z�t�|�|�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �s�e�t�T�i�m�e�o�u�t�(�t�,�U�t�-�1�e�3�*�Q�t�.�t�i�m�e�+�1�|�0�)�}�,�L�t�=�1�,�Y�e�(�2�)�)�}�,�s�l�e�e�p�:�f�u�n�c�t�i�o�n�(�)�{�(�z�t�?�i�.�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�:�c�l�e�a�r�T�i�m�e�o�u�t�)�(�M�t�)�,�L�t�=�0�,�P�t�=�c�}�,�l�a�g�S�m�o�o�t�h�i�n�g�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�H�t�=�t�|�|�1�/�H�,�B�t�=�M�a�t�h�.�m�i�n�(�e�,�H�t�,�0�)�}�,�f�p�s�:�f�u�n�c�t�i�o�n�(�t�)�{�V�t�=�1�e�3�/�(�t�|�|�2�4�0�)�,�U�t�=�1�e�3�*�Q�t�.�t�i�m�e�+�V�t�}�,�a�d�d�:�f�u�n�c�t�i�o�n�(�t�)�{�Y�t�.�i�n�d�e�x�O�f�(�t�)�<�0�&�&�Y�t�.�p�u�s�h�(�t�)�,�H�e�(�)�}�,�r�e�m�o�v�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�~�(�e�=�Y�t�.�i�n�d�e�x�O�f�(�t�)�)�&�&�Y�t�.�s�p�l�i�c�e�(�e�,�1�)�&�&�e�<�=�N�t�&�&�N�t�-�-�}�,�_�l�i�s�t�e�n�e�r�s�:�Y�t�=�[�]�}�)�,�H�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�L�t�&�&�f�.�w�a�k�e�(�)�}�,�V�=�{�}�,�B�e�=�/�^�[�\�d�.�\�-�M�]�[�\�d�.�\�-�,�\�s�]�/�,�W�e�=�/�[�"�'�]�/�g�,�q�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�,�o�=�(�t�+�"�"�)�.�s�p�l�i�t�(�"�(�"�)�,�s�=�V�[�o�[�0�]�]�;�r�e�t�u�r�n� �s�&�&�1�<�o�.�l�e�n�g�t�h�&�&�s�.�c�o�n�f�i�g�?�s�.�c�o�n�f�i�g�.�a�p�p�l�y�(�n�u�l�l�,�~�t�.�i�n�d�e�x�O�f�(�"�{�"�)�?�[�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�,�o�=�{�}�,�s�=�t�.�s�u�b�s�t�r�(�1�,�t�.�l�e�n�g�t�h�-�3�)�.�s�p�l�i�t�(�"�:�"�)�,�r�=�s�[�0�]�,�a�=�1�,�l�=�s�.�l�e�n�g�t�h�;�a�<�l�;�a�+�+�)�i�=�s�[�a�]�,�e�=�a�!�=�=�l�-�1�?�i�.�l�a�s�t�I�n�d�e�x�O�f�(�"�,�"�)�:�i�.�l�e�n�g�t�h�,�n�=�i�.�s�u�b�s�t�r�(�0�,�e�)�,�o�[�r�]�=�i�s�N�a�N�(�n�)�?�n�.�r�e�p�l�a�c�e�(�W�e�,
1�"�"�)�.�t�r�i�m�(�)�:�+�n�,�r�=�i�.�s�u�b�s�t�r�(�e�+�1�)�.�t�r�i�m�(�)�;�r�e�t�u�r�n� �o�}�(�o�[�1�]�)�]�:�(�e�=�(�o�=�t�)�.�i�n�d�e�x�O�f�(�"�(�"�)�+�1�,�i�=�o�.�i�n�d�e�x�O�f�(�"�)�"�)�,�n�=�o�.�i�n�d�e�x�O�f�(�"�(�"�,�e�)�,�o�.�s�u�b�s�t�r�i�n�g�(�e�,�~�n�&�&�n�<�i�?�o�.�i�n�d�e�x�O�f�(�"�)�"�,�i�+�1�)�:�i�)�.�s�p�l�i�t�(�"�,�"�)�.�m�a�p�(�v�)�)�)�:�V�.�_�C�E�&�&�B�e�.�t�e�s�t�(�t�)�?�V�.�_�C�E�(�"�"�,�t�)�:�s�}�,�V�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �1�-�e�(�1�-�t�)�}�}�,�U�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�&�&�(�u�(�t�)�?�t�:�V�[�t�]�|�|�q�e�(�t�)�)�|�|�e�}�;�f�u�n�c�t�i�o�n� �Y�e�(�t�)�{�v�a�r� �e�,�i�,�n�,�o�=�j�t�(�)�-�q�t�,�s�=�!�0�=�=�=�t�;�i�f�(�H�t�<�o�&�&�(�W�t�+�=�o�-�B�t�)�,�(�0�<�(�o�=�(�i�=�(�q�t�+�=�o�)�-�W�t�)�-�U�t�)�|�|�s�)�&�&�(�n�=�+�+�Q�t�.�f�r�a�m�e�,�R�t�=�i�-�1�e�3�*�Q�t�.�t�i�m�e�,�Q�t�.�t�i�m�e�=�i�/�=�1�e�3�,�U�t�+�=�o�+�(�V�t�<�=�o�?�4�:�V�t�-�o�)�,�e�=�1�)�,�s�|�|�(�M�t�=�P�t�(�Y�e�)�)�,�e�)�f�o�r�(�N�t�=�0�;�N�t�<�Y�t�.�l�e�n�g�t�h�;�N�t�+�+�)�Y�t�[�N�t�]�(�i�,�R�t�,�n�,�t�)�}�f�u�n�c�t�i�o�n� �Q�e�(�t�)�{�r�e�t�u�r�n� �t�<�X�t�?�G�t�*�t�*�t�:�t�<�.�7�2�7�2�7�2�7�2�7�2�7�2�7�2�7�3�?�G�t�*�M�a�t�h�.�p�o�w�(�t�-�1�.�5�/�2�.�7�5�,�2�)�+�.�7�5�:�t�<�.�9�0�9�0�9�0�9�0�9�0�9�0�9�0�9�2�?�G�t�*�(�t�-�=�2�.�2�5�/�2�.�7�5�)�*�t�+�.�9�3�7�5�:�G�t�*�M�a�t�h�.�p�o�w�(�t�-�2�.�6�2�5�/�2�.�7�5�,�2�)�+�.�9�8�4�3�7�5�}�p�(�"�L�i�n�e�a�r�,�Q�u�a�d�,�C�u�b�i�c�,�Q�u�a�r�t�,�Q�u�i�n�t�,�S�t�r�o�n�g�"�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�e�<�5�?�e�+�1�:�e�;�x�t�(�t�+�"�,�P�o�w�e�r�"�+�(�i�-�1�)�,�e�?�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �M�a�t�h�.�p�o�w�(�t�,�i�)�}�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�}�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �1�-�M�a�t�h�.�p�o�w�(�1�-�t�,�i�)�}�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�<�.�5�?�M�a�t�h�.�p�o�w�(�2�*�t�,�i�)�/�2�:�1�-�M�a�t�h�.�p�o�w�(�2�*�(�1�-�t�)�,�i�)�/�2�}�)�}�)�,�V�.�L�i�n�e�a�r�.�e�a�s�e�N�o�n�e�=�V�.�n�o�n�e�=�V�.�L�i�n�e�a�r�.�e�a�s�e�I�n�,�x�t�(�"�E�l�a�s�t�i�c�"�,�k�t�(�"�i�n�"�)�,�k�t�(�"�o�u�t�"�)�,�k�t�(�)�)�,�G�t�=�7�.�5�6�2�5�,�X�t�=�1�/�2�.�7�5�,�x�t�(�"�B�o�u�n�c�e�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �1�-�Q�e�(�1�-�t�)�}�,�Q�e�)�,�x�t�(�"�E�x�p�o�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�?�M�a�t�h�.�p�o�w�(�2�,�1�0�*�(�t�-�1�)�)�:�0�}�)�,�x�t�(�"�C�i�r�c�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�-�(�e�e�(�1�-�t�*�t�)�-�1�)�}�)�,�x�t�(�"�S�i�n�e�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �1�=�=�=�t�?�1�:�1�-�i�e�(�t�*�J�t�)�}�)�,�x�t�(�"�B�a�c�k�"�,�E�t�(�"�i�n�"�)�,�E�t�(�"�o�u�t�"�)�,�E�t�(�)�)�,�V�.�S�t�e�p�p�e�d�E�a�s�e�=�V�.�s�t�e�p�s�=�r�.�S�t�e�p�p�e�d�E�a�s�e�=�{�c�o�n�f�i�g�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�1�/�(�t�=�v�o�i�d� �0�=�=�=�t�?�1�:�t�)�,�n�=�t�+�(�e�?�0�:�1�)�,�o�=�e�?�1�:�0�,�s�=�1�-�H�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�(�(�n�*�l�t�(�0�,�s�,�t�)�|�0�)�+�o�)�*�i�}�}�}�,�K�t�.�e�a�s�e�=�V�[�"�q�u�a�d�.�o�u�t�"�]�,�p�(�"�o�n�C�o�m�p�l�e�t�e�,�o�n�U�p�d�a�t�e�,�o�n�S�t�a�r�t�,�o�n�R�e�p�e�a�t�,�o�n�R�e�v�e�r�s�e�C�o�m�p�l�e�t�e�,�o�n�I�n�t�e�r�r�u�p�t�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �_�e�+�=�t�+�"�,�"�+�t�+�"�P�a�r�a�m�s�,�"�}�)�;�v�a�r� �G�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�i�d�=�t�e�+�+�,�(�t�.�_�g�s�a�p�=�t�h�i�s�)�.�t�a�r�g�e�t�=�t�,�t�h�i�s�.�h�a�r�n�e�s�s�=�e�,�t�h�i�s�.�g�e�t�=�e�?�e�.�g�e�t�:�x�e�,�t�h�i�s�.�s�e�t�=�e�?�e�.�g�e�t�S�e�t�t�e�r�:�w�i�}�,�X�e�=�(�(�e�=�K�e�.�p�r�o�t�o�t�y�p�e�)�.�d�e�l�a�y�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�|�|�0�=�=�=�t�?�(�t�h�i�s�.�p�a�r�e�n�t�&�&�t�h�i�s�.�p�a�r�e�n�t�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�&�&�t�h�i�s�.�s�t�a�r�t�T�i�m�e�(�t�h�i�s�.�_�s�t�a�r�t�+�t�-�t�h�i�s�.�_�d�e�l�a�y�)�,�t�h�i�s�.�_�d�e�l�a�y�=�t�,�t�h�i�s�)�:�t�h�i�s�.�_�d�e�l�a�y�}�,�e�.�d�u�r�a�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�0�<�t�h�i�s�.�_�r�e�p�e�a�t�?�t�+�(�t�+�t�h�i�s�.�_�r�D�e�l�a�y�)�*�t�h�i�s�.�_�r�e�p�e�a�t�:�t�)�:�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�&�&�t�h�i�s�.�_�d�u�r�}�,�e�.�t�o�t�a�l�D�u�r�a�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�t�h�i�s�.�_�d�i�r�t�y�=�0�,�s�t�(�t
1�h�i�s�,�t�h�i�s�.�_�r�e�p�e�a�t�<�0�?�t�:�(�t�-�t�h�i�s�.�_�r�e�p�e�a�t�*�t�h�i�s�.�_�r�D�e�l�a�y�)�/�(�t�h�i�s�.�_�r�e�p�e�a�t�+�1�)�)�)�:�t�h�i�s�.�_�t�D�u�r�}�,�e�.�t�o�t�a�l�T�i�m�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�H�e�(�)�,�!�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�r�e�t�u�r�n� �t�h�i�s�.�_�t�T�i�m�e�;�v�a�r� �i�=�t�h�i�s�.�_�d�p�;�i�f�(�i�&�&�i�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�&�&�t�h�i�s�.�_�t�s�)�{�f�o�r�(�O�e�(�t�h�i�s�,�t�)�,�i�.�_�d�p�&�&�!�i�.�p�a�r�e�n�t�&�&�x�(�i�,�t�h�i�s�)�;�i�&�&�i�.�p�a�r�e�n�t�;�)�i�.�p�a�r�e�n�t�.�_�t�i�m�e�!�=�=�i�.�_�s�t�a�r�t�+�(�0�<�=�i�.�_�t�s�?�i�.�_�t�T�i�m�e�/�i�.�_�t�s�:�(�i�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�-�i�.�_�t�T�i�m�e�)�/�-�i�.�_�t�s�)�&�&�i�.�t�o�t�a�l�T�i�m�e�(�i�.�_�t�T�i�m�e�,�!�0�)�,�i�=�i�.�p�a�r�e�n�t�;�!�t�h�i�s�.�p�a�r�e�n�t�&�&�t�h�i�s�.�_�d�p�.�a�u�t�o�R�e�m�o�v�e�C�h�i�l�d�r�e�n�&�&�(�0�<�t�h�i�s�.�_�t�s�&�&�t�<�t�h�i�s�.�_�t�D�u�r�|�|�t�h�i�s�.�_�t�s�<�0�&�&�0�<�t�|�|�!�t�h�i�s�.�_�t�D�u�r�&�&�!�t�)�&�&�A�(�t�h�i�s�.�_�d�p�,�t�h�i�s�,�t�h�i�s�.�_�s�t�a�r�t�-�t�h�i�s�.�_�d�e�l�a�y�)�}�r�e�t�u�r�n�(�t�h�i�s�.�_�t�T�i�m�e�!�=�=�t�|�|�!�t�h�i�s�.�_�d�u�r�&�&�!�e�|�|�t�h�i�s�.�_�i�n�i�t�t�e�d�&�&�M�a�t�h�.�a�b�s�(�t�h�i�s�.�_�z�T�i�m�e�)�=�=�=�H�|�|�!�t�&�&�!�t�h�i�s�.�_�i�n�i�t�t�e�d�&�&�(�t�h�i�s�.�a�d�d�|�|�t�h�i�s�.�_�p�t�L�o�o�k�u�p�)�)�&�&�(�t�h�i�s�.�_�t�s�|�|�(�t�h�i�s�.�_�p�T�i�m�e�=�t�)�,�g�(�t�h�i�s�,�t�,�e�)�)�,�t�h�i�s�}�,�e�.�t�i�m�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�M�a�t�h�.�m�i�n�(�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�,�t�+�b�(�t�h�i�s�)�)�%�(�t�h�i�s�.�_�d�u�r�+�t�h�i�s�.�_�r�D�e�l�a�y�)�|�|�(�t�?�t�h�i�s�.�_�d�u�r�:�0�)�,�e�)�:�t�h�i�s�.�_�t�i�m�e�}�,�e�.�t�o�t�a�l�P�r�o�g�r�e�s�s�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�*�t�,�e�)�:�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�?�M�a�t�h�.�m�i�n�(�1�,�t�h�i�s�.�_�t�T�i�m�e�/�t�h�i�s�.�_�t�D�u�r�)�:�t�h�i�s�.�r�a�t�i�o�}�,�e�.�p�r�o�g�r�e�s�s�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�t�h�i�s�.�d�u�r�a�t�i�o�n�(�)�*�(�!�t�h�i�s�.�_�y�o�y�o�|�|�1�&�t�h�i�s�.�i�t�e�r�a�t�i�o�n�(�)�?�t�:�1�-�t�)�+�b�(�t�h�i�s�)�,�e�)�:�t�h�i�s�.�d�u�r�a�t�i�o�n�(�)�?�M�a�t�h�.�m�i�n�(�1�,�t�h�i�s�.�_�t�i�m�e�/�t�h�i�s�.�_�d�u�r�)�:�t�h�i�s�.�r�a�t�i�o�}�,�e�.�i�t�e�r�a�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�d�u�r�a�t�i�o�n�(�)�+�t�h�i�s�.�_�r�D�e�l�a�y�;�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�t�h�i�s�.�_�t�i�m�e�+�(�t�-�1�)�*�i�,�e�)�:�t�h�i�s�.�_�r�e�p�e�a�t�?�T�(�t�h�i�s�.�_�t�T�i�m�e�,�i�)�+�1�:�1�}�,�e�.�t�i�m�e�S�c�a�l�e�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�r�e�t�u�r�n� �t�h�i�s�.�_�r�t�s�=�=�=�-�H�?�0�:�t�h�i�s�.�_�r�t�s�;�i�f�(�t�h�i�s�.�_�r�t�s�=�=�=�t�)�r�e�t�u�r�n� �t�h�i�s�;�f�o�r�(�v�a�r� �e�=�t�h�i�s�.�p�a�r�e�n�t�&�&�t�h�i�s�.�_�t�s�?�S�(�t�h�i�s�.�p�a�r�e�n�t�.�_�t�i�m�e�,�t�h�i�s�)�:�t�h�i�s�.�_�t�T�i�m�e�,�t�=�(�t�h�i�s�.�_�r�t�s�=�+�t�|�|�0�,�t�h�i�s�.�_�t�s�=�t�h�i�s�.�_�p�s�|�|�t�=�=�=�-�H�?�0�:�t�h�i�s�.�_�r�t�s�,�t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�l�t�(�-�t�h�i�s�.�_�d�e�l�a�y�,�t�h�i�s�.�_�t�D�u�r�,�e�)�,�!�0�)�)�,�i�=�t�.�p�a�r�e�n�t�;�i�&�&�i�.�p�a�r�e�n�t�;�)�i�.�_�d�i�r�t�y�=�1�,�i�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�,�i�=�i�.�p�a�r�e�n�t�;�r�e�t�u�r�n� �A�e�(�t�h�i�s�)�,�t�h�i�s�}�,�e�.�p�a�u�s�e�d�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�t�h�i�s�.�_�p�s�!�=�=�t�&�&�(�(�t�h�i�s�.�_�p�s�=�t�)�?�(�t�h�i�s�.�_�p�T�i�m�e�=�t�h�i�s�.�_�t�T�i�m�e�|�|�M�a�t�h�.�m�a�x�(�-�t�h�i�s�.�_�d�e�l�a�y�,�t�h�i�s�.�r�a�w�T�i�m�e�(�)�)�,�t�h�i�s�.�_�t�s�=�t�h�i�s�.�_�a�c�t�=�0�)�:�(�H�e�(�)�,�t�h�i�s�.�_�t�s�=�t�h�i�s�.�_�r�t�s�,�t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�t�h�i�s�.�p�a�r�e�n�t�&�&�!�t�h�i�s�.�p�a�r�e�n�t�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�?�t�h�i�s�.�r�a�w�T�i�m�e�(�)�:�t�h�i�s�.�_�t�T�i�m�e�|�|�t�h�i�s�.�_�p�T�i�m�e�,�1�=�=�=�t�h�i�s�.�p�r�o�g�r�e�s�s�(�)�&�&�M�a�t�h�.�a�b�s�(�t�h�i�s�.�_�z�T�i�m�e�)�!�=�=�H�&�&�(�t�h�i�s�.�_�t�T�i�m�e�-�=�H�)�)�)�)�,�t�h�i�s�)�:�t�h�i�s�.�_�p�s�}�,�e�.�s�t�a�r�t�T�i�m�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�t�h�i�s�.�_�s�t�a�r�t�=�t�,�!�(�e�=�t�h�i�s�.�p�a�r�e�n�t�|�|�t�h�i�s�.�_�d�p�)�|�|�!�e�.�_�s�o�r�t�&�&�t�h�i�s�.�p�a�r�e�n�t�|�|�A�(�e�,�t�h�i�s�,�t�-�t�h�i�s�.�_�d�e�l�a�y�)�,�t�h�i�s�)�:�t�h�i�s�.�_�s�t�a�r�t�}�,�e�.�e�n�d�T�i�m�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�s�t�a�r�t�+�(�M�(�t�)�?�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�:�t�h�i�s�.�d�u�r�a�t�i�o�n�(�)�)�/�M�a�t�h�.�a�b�s�(�t�h�i�s�.�_�t�s�|�|�1�)�}�,�e�.�r�a�w�T�i�m�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�p�a�r�e�n�t�|�|�t�h�i�s�.�_�d�p�;
1�r�e�t�u�r�n� �e�?�t�&�&�(�!�t�h�i�s�.�_�t�s�|�|�t�h�i�s�.�_�r�e�p�e�a�t�&�&�t�h�i�s�.�_�t�i�m�e�&�&�t�h�i�s�.�t�o�t�a�l�P�r�o�g�r�e�s�s�(�)�<�1�)�?�t�h�i�s�.�_�t�T�i�m�e�%�(�t�h�i�s�.�_�d�u�r�+�t�h�i�s�.�_�r�D�e�l�a�y�)�:�t�h�i�s�.�_�t�s�?�S�(�e�.�r�a�w�T�i�m�e�(�t�)�,�t�h�i�s�)�:�t�h�i�s�.�_�t�T�i�m�e�:�t�h�i�s�.�_�t�T�i�m�e�}�,�e�.�g�l�o�b�a�l�T�i�m�e�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�=�t�h�i�s�,�i�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�:�e�.�r�a�w�T�i�m�e�(�)�;�e�;�)�i�=�e�.�_�s�t�a�r�t�+�i�/�(�e�.�_�t�s�|�|�1�)�,�e�=�e�.�_�d�p�;�r�e�t�u�r�n� �i�}�,�e�.�r�e�p�e�a�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�t�h�i�s�.�_�r�e�p�e�a�t�=�t�=�=�=�1�/�0�?�-�2�:�t�,�r�t�(�t�h�i�s�)�)�:�-�2�=�=�=�t�h�i�s�.�_�r�e�p�e�a�t�?�1�/�0�:�t�h�i�s�.�_�r�e�p�e�a�t�}�,�e�.�r�e�p�e�a�t�D�e�l�a�y�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�e�=�t�h�i�s�.�_�t�i�m�e�,�t�h�i�s�.�_�r�D�e�l�a�y�=�t�,�r�t�(�t�h�i�s�)�,�e�?�t�h�i�s�.�t�i�m�e�(�e�)�:�t�h�i�s�)�:�t�h�i�s�.�_�r�D�e�l�a�y�}�,�e�.�y�o�y�o�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�t�h�i�s�.�_�y�o�y�o�=�t�,�t�h�i�s�)�:�t�h�i�s�.�_�y�o�y�o�}�,�e�.�s�e�e�k�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�d�(�t�h�i�s�,�t�)�,�M�(�e�)�)�}�,�e�.�r�e�s�t�a�r�t�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�l�a�y�(�)�.�t�o�t�a�l�T�i�m�e�(�t�?�-�t�h�i�s�.�_�d�e�l�a�y�:�0�,�M�(�e�)�)�}�,�e�.�p�l�a�y�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �n�u�l�l�!�=�t�&�&�t�h�i�s�.�s�e�e�k�(�t�,�e�)�,�t�h�i�s�.�r�e�v�e�r�s�e�d�(�!�1�)�.�p�a�u�s�e�d�(�!�1�)�}�,�e�.�r�e�v�e�r�s�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �n�u�l�l�!�=�t�&�&�t�h�i�s�.�s�e�e�k�(�t�|�|�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�,�e�)�,�t�h�i�s�.�r�e�v�e�r�s�e�d�(�!�0�)�.�p�a�u�s�e�d�(�!�1�)�}�,�e�.�p�a�u�s�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �n�u�l�l�!�=�t�&�&�t�h�i�s�.�s�e�e�k�(�t�,�e�)�,�t�h�i�s�.�p�a�u�s�e�d�(�!�0�)�}�,�e�.�r�e�s�u�m�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�a�u�s�e�d�(�!�1�)�}�,�e�.�r�e�v�e�r�s�e�d�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�!�!�t�!�=�=�t�h�i�s�.�r�e�v�e�r�s�e�d�(�)�&�&�t�h�i�s�.�t�i�m�e�S�c�a�l�e�(�-�t�h�i�s�.�_�r�t�s�|�|�(�t�?�-�H�:�0�)�)�,�t�h�i�s�)�:�t�h�i�s�.�_�r�t�s�<�0�}�,�e�.�i�n�v�a�l�i�d�a�t�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�i�n�i�t�t�e�d�=�t�h�i�s�.�_�a�c�t�=�0�,�t�h�i�s�.�_�z�T�i�m�e�=�-�H�,�t�h�i�s�}�,�e�.�i�s�A�c�t�i�v�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�p�a�r�e�n�t�|�|�t�h�i�s�.�_�d�p�,�e�=�t�h�i�s�.�_�s�t�a�r�t�;�r�e�t�u�r�n�!�(�t�&�&�!�(�t�h�i�s�.�_�t�s�&�&�t�h�i�s�.�_�i�n�i�t�t�e�d�&�&�t�.�i�s�A�c�t�i�v�e�(�)�&�&�(�t�=�t�.�r�a�w�T�i�m�e�(�!�0�)�)�>�=�e�&�&�t�<�t�h�i�s�.�e�n�d�T�i�m�e�(�!�0�)�-�H�)�)�}�,�e�.�e�v�e�n�t�C�a�l�l�b�a�c�k�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�=�t�h�i�s�.�v�a�r�s�;�r�e�t�u�r�n� �1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�e�?�(�n�[�t�]�=�e�,�i�&�&�(�n�[�t�+�"�P�a�r�a�m�s�"�]�=�i�)�,�"�o�n�U�p�d�a�t�e�"�=�=�=�t�&�&�(�t�h�i�s�.�_�o�n�U�p�d�a�t�e�=�e�)�)�:�d�e�l�e�t�e� �n�[�t�]�,�t�h�i�s�)�:�n�[�t�]�}�,�e�.�t�h�e�n�=�f�u�n�c�t�i�o�n�(�n�)�{�v�a�r� �o�=�t�h�i�s�;�r�e�t�u�r�n� �n�e�w� �P�r�o�m�i�s�e�(�f�u�n�c�t�i�o�n�(�e�)�{�f�u�n�c�t�i�o�n� �t�(�)�{�v�a�r� �t�=�o�.�t�h�e�n�;�o�.�t�h�e�n�=�n�u�l�l�,�u�(�i�)�&�&�(�i�=�i�(�o�)�)�&�&�(�i�.�t�h�e�n�|�|�i�=�=�=�o�)�&�&�(�o�.�t�h�e�n�=�t�)�,�e�(�i�)�,�o�.�t�h�e�n�=�t�}�v�a�r� �i�=�u�(�n�)�?�n�:�y�;�o�.�_�i�n�i�t�t�e�d�&�&�1�=�=�=�o�.�t�o�t�a�l�P�r�o�g�r�e�s�s�(�)�&�&�0�<�=�o�.�_�t�s�|�|�!�o�.�_�t�T�i�m�e�&�&�o�.�_�t�s�<�0�?�t�(�)�:�o�.�_�p�r�o�m�=�t�}�)�}�,�e�.�k�i�l�l�=�f�u�n�c�t�i�o�n�(�)�{�w�t�(�t�h�i�s�)�}�,�K�e�)�;�f�u�n�c�t�i�o�n� �K�e�(�t�)�{�t�h�i�s�.�v�a�r�s�=�t�,�t�h�i�s�.�_�d�e�l�a�y�=�+�t�.�d�e�l�a�y�|�|�0�,�(�t�h�i�s�.�_�r�e�p�e�a�t�=�t�.�r�e�p�e�a�t�=�=�=�1�/�0�?�-�2�:�t�.�r�e�p�e�a�t�|�|�0�)�&�&�(�t�h�i�s�.�_�r�D�e�l�a�y�=�t�.�r�e�p�e�a�t�D�e�l�a�y�|�|�0�,�t�h�i�s�.�_�y�o�y�o�=�!�!�t�.�y�o�y�o�|�|�!�!�t�.�y�o�y�o�E�a�s�e�)�,�t�h�i�s�.�_�t�s�=�1�,�s�t�(�t�h�i�s�,�+�t�.�d�u�r�a�t�i�o�n�,�1�,�1�)�,�t�h�i�s�.�d�a�t�a�=�t�.�d�a�t�a�,�L�t�|�|�f�.�w�a�k�e�(�)�}�P�(�X�e�.�p�r�o�t�o�t�y�p�e�,�{�_�t�i�m�e�:�0�,�_�s�t�a�r�t�:�0�,�_�e�n�d�:�0�,�_�t�T�i�m�e�:�0�,�_�t�D�u�r�:�0�,�_�d�i�r�t�y�:�0�,�_�r�e�p�e�a�t�:�0�,�_�y�o�y�o�:�!�1�,�p�a�r�e�n�t�:�n�u�l�l�,�_�i�n�i�t�t�e�d�:�!�1�,�_�r�D�e�l�a�y�:�0�,�_�t�s�:�1�,�_�d�p�:�0�,�r�a�t�i�o�:�0�,�_�z�T�i�m�e�:�-�H�,�_�p�r�o�m�:�0�,�_�p�s�:�!�1�,�_�r�t�s�:�1�}�)�;�n�(�J�e�,�Z�e�=�X�e�)�,�(�e�=�J�e�.�p�r�o�t�o�t�y�p�e�)�.�t�o�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �a�t�(�0�,�a�r�g�u�m�e�n�t�s�,�t�h�i�s�)�,�t�h�i�s�}�,�e�.�f�r�o�m�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �a�t�(�1�,�a�r�g�u�m�e�n�t�s�,�t�h�i�s�)�,�t�h�i�s�}�,�e�.�f�r�o�m�T�o�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�r�e�t�u�r�n� �a�t�(�2�,�a�r�g�u�m�e�n�t�s�,�t�h�i�s�)�,�t�h�i�s�}�,�e�.�s�e�t�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �e�.�d�u�r�a�t�i�o�n�=�0�,�e�.�p�a�r�e�n�t�=�t�h�i�s�,�e�t�(�e�)�.�r�e�p�e�a�t�D�e�l�a�y�|�|�(�e�.�r�e�p�e�a�t�=�0�)�,�e�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�=�!�!�e�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�,�n�e�w� �Y�(�t�,�e�,�d�(�t�h�i�s�,�i�)�,�1�)�,�t�h�i�s�}�,�e�.�c�a�l�l�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �A�(�t�h�i�s�,�Y�.�d�e�l�a�y�e�d�C�a�l�l�(�0�,�t�,�e�)�,�i�)�}�,�e�.�s�t�a�g�g�e�r�T�o�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�,�s�,�r�)�{�r�e�t�u�r�n� �i�.�d�u�r�a�t�i�o�n�=�e�,�i�.�s�t�a�g�g�e�r�=�i�.�s�t�a�g�g�e�r�|�|�n�,�i�.�o�n�C�o�m�p�l�e�t�e�=�s�,�i�.�o�n�C�o�m�p�l�e�t�e�P�a�r�a�m�s�=�r�,�i�.�p�a�r�e�n�t�=�t�h�i�s�,�n�e�w� �Y�(�t�,�i�,�d�(�t�h�i�s�,�o�)�)�,�t�h�i�s�}�,�e�.�s�t�a�g�g�e�r�F�r�o�m�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�,�s�,�r�)�{�r�e�t�u�r�n� �i�.�r�u�n�B�a�c�k�w�a�r�d�s�=�1�,�e�t�(�i�)�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�=�M�(�i�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�)�,�t�h�i�s�.�s�t�a�g�g�e�r�T�o�(�t�,�e�,�i�,�n�,�o�,�s�,�r�)�}�,�e�.�s�t�a�g�g�e�r�F�r�o�m�T�o�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�,�s�,�r�,�a�)�{�r�e�t�u�r�n� �n�.�s�t�a�r�t�A�t�=�i�,�e�t�(�n�)�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�=�M�(�n�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�)�,�t�h�i�s�.�s�t�a�g�g�e�r�T�o�(�t�,�e�,�n�,�o�,�s�,�r�,�a�)�}�,�e�.�r�e�n�d�e�r�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�,�a�,�l�,�c�,�d�,�u�,�h�,�p�=�t�h�i�s�.�_�t�i�m�e�,�f�=�t�h�i�s�.�_�d�i�r�t�y�?�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�:�t�h�i�s�.�_�t�D�u�r�,�m�=�t�h�i�s�.�_�d�u�r�,�g�=�t�<�=�0�?�0�:�F�(�t�)�,�v�=�t�h�i�s�.�_�z�T�i�m�e�<�0�!�=�t�<�0�&�&�(�t�h�i�s�.�_�i�n�i�t�t�e�d�|�|�!�m�)�;�i�f�(�(�g�=�t�h�i�s�!�=�=�R�&�&�f�<�g�&�&�0�<�=�t�?�f�:�g�)�!�=�=�t�h�i�s�.�_�t�T�i�m�e�|�|�i�|�|�v�)�{�i�f�(�p�!�=�=�t�h�i�s�.�_�t�i�m�e�&�&�m�&�&�(�g�+�=�t�h�i�s�.�_�t�i�m�e�-�p�,�t�+�=�t�h�i�s�.�_�t�i�m�e�-�p�)�,�n�=�g�,�d�=�t�h�i�s�.�_�s�t�a�r�t�,�a�=�!�(�c�=�t�h�i�s�.�_�t�s�)�,�v�&�&�(�m�|�|�(�p�=�t�h�i�s�.�_�z�T�i�m�e�)�,�!�t�&�&�e�|�|�(�t�h�i�s�.�_�z�T�i�m�e�=�t�)�)�,�t�h�i�s�.�_�r
1�e�p�e�a�t�)�{�i�f�(�v�=�t�h�i�s�.�_�y�o�y�o�,�r�=�m�+�t�h�i�s�.�_�r�D�e�l�a�y�,�t�h�i�s�.�_�r�e�p�e�a�t�<�-�1�&�&�t�<�0�)�r�e�t�u�r�n� �t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�1�0�0�*�r�+�t�,�e�,�i�)�;�i�f�(�n�=�F�(�g�%�r�)�,�g�=�=�=�f�?�(�s�=�t�h�i�s�.�_�r�e�p�e�a�t�,�n�=�m�)�:�(�(�s�=�~�~�(�g�/�r�)�)�&�&�s�=�=�=�g�/�r�&�&�(�n�=�m�,�s�-�-�)�,�m�<�n�&�&�(�n�=�m�)�)�,�u�=�T�(�t�h�i�s�.�_�t�T�i�m�e�,�r�)�,�v�&�&�1�&�s�&�&�(�n�=�m�-�n�,�h�=�1�)�,�s�!�=�=�(�u�=�!�p�&�&�t�h�i�s�.�_�t�T�i�m�e�&�&�u�!�=�=�s�?�s�:�u�)�&�&�!�t�h�i�s�.�_�l�o�c�k�)�{�v�a�r� �y�=�v�&�&�1�&�u�,�v�=�y�=�=�=�(�v�&�&�1�&�s�)�,�p�=�(�y�=�s�<�u�?�!�y�:�y�)�?�0�:�m�;�i�f�(�t�h�i�s�.�_�l�o�c�k�=�1�,�t�h�i�s�.�r�e�n�d�e�r�(�p�|�|�(�h�?�0�:�F�(�s�*�r�)�)�,�e�,�!�m�)�.�_�l�o�c�k�=�0�,�t�h�i�s�.�_�t�T�i�m�e�=�g�,�!�e�&�&�t�h�i�s�.�p�a�r�e�n�t�&�&�_�(�t�h�i�s�,�"�o�n�R�e�p�e�a�t�"�)�,�t�h�i�s�.�v�a�r�s�.�r�e�p�e�a�t�R�e�f�r�e�s�h�&�&�!�h�&�&�(�t�h�i�s�.�i�n�v�a�l�i�d�a�t�e�(�)�.�_�l�o�c�k�=�1�)�,�p�&�&�p�!�=�=�t�h�i�s�.�_�t�i�m�e�|�|�a�!�=�!�t�h�i�s�.�_�t�s�|�|�t�h�i�s�.�v�a�r�s�.�o�n�R�e�p�e�a�t�&�&�!�t�h�i�s�.�p�a�r�e�n�t�&�&�!�t�h�i�s�.�_�a�c�t�)�r�e�t�u�r�n� �t�h�i�s�;�i�f�(�m�=�t�h�i�s�.�_�d�u�r�,�f�=�t�h�i�s�.�_�t�D�u�r�,�v�&�&�(�t�h�i�s�.�_�l�o�c�k�=�2�,�t�h�i�s�.�r�e�n�d�e�r�(�p�=�y�?�m�:�-�1�e�-�4�,�!�0�)�,�t�h�i�s�.�v�a�r�s�.�r�e�p�e�a�t�R�e�f�r�e�s�h�&�&�!�h�&�&�t�h�i�s�.�i�n�v�a�l�i�d�a�t�e�(�)�)�,�t�h�i�s�.�_�l�o�c�k�=�0�,�!�t�h�i�s�.�_�t�s�&�&�!�a�)�r�e�t�u�r�n� �t�h�i�s�;�S�t�(�t�h�i�s�,�h�)�}�}�i�f�(�t�h�i�s�.�_�h�a�s�P�a�u�s�e�&�&�!�t�h�i�s�.�_�f�o�r�c�i�n�g�&�&�t�h�i�s�.�_�l�o�c�k�<�2�&�&�(�l�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�;�i�f�(�e�<�i�)�f�o�r�(�n�=�t�.�_�f�i�r�s�t�;�n�&�&�n�.�_�s�t�a�r�t�<�=�i�;�)�{�i�f�(�"�i�s�P�a�u�s�e�"�=�=�=�n�.�d�a�t�a�&�&�n�.�_�s�t�a�r�t�>�e�)�r�e�t�u�r�n� �n�;�n�=�n�.�_�n�e�x�t�}�e�l�s�e� �f�o�r�(�n�=�t�.�_�l�a�s�t�;�n�&�&�n�.�_�s�t�a�r�t�>�=�i�;�)�{�i�f�(�"�i�s�P�a�u�s�e�"�=�=�=�n�.�d�a�t�a�&�&�n�.�_�s�t�a�r�t�<�e�)�r�e�t�u�r�n� �n�;�n�=�n�.�_�p�r�e�v�}�}�(�t�h�i�s�,�F�(�p�)�,�F�(�n�)�)�)�&�&�(�g�-�=�n�-�(�n�=�l�.�_�s�t�a�r�t�)�)�,�t�h�i�s�.�_�t�T�i�m�e�=�g�,�t�h�i�s�.�_�t�i�m�e�=�n�,�t�h�i�s�.�_�a�c�t�=�!�c�,�t�h�i�s�.�_�i�n�i�t�t�e�d�|�|�(�t�h�i�s�.�_�o�n�U�p�d�a�t�e�=�t�h�i�s�.�v�a�r�s�.�o�n�U�p�d�a�t�e�,�t�h�i�s�.�_�i�n�i�t�t�e�d�=�1�,�t�h�i�s�.�_�z�T�i�m�e�=�t�,�p�=�0�)�,�!�p�&�&�n�&�&�!�e�&�&�(�_�(�t�h�i�s�,�"�o�n�S�t�a�r�t�"�)�,�t�h�i�s�.�_�t�T�i�m�e�!�=�=�g�)�)�r�e�t�u�r�n� �t�h�i�s�;�i�f�(�p�<�=�n�&�&�0�<�=�t�)�f�o�r�(�w�=�t�h�i�s�.�_�f�i�r�s�t�;�w�;�)�{�i�f�(�o�=�w�.�_�n�e�x�t�,�(�w�.�_�a�c�t�|�|�n�>�=�w�.�_�s�t�a�r�t�)�&�&�w�.�_�t�s�&�&�l�!�=�=�w�)�{�i�f�(�w�.�p�a�r�e�n�t�!�=�=�t�h�i�s�)�r�e�t�u�r�n� �t�h�i�s�.�r�e�n�d�e�r�(�t�,�e�,�i�)�;�i�f�(�w�.�r�e�n�d�e�r�(�0�<�w�.�_�t�s�?�(�n�-�w�.�_�s�t�a�r�t�)�*�w�.�_�t�s�:�(�w�.�_�d�i�r�t�y�?�w�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�:�w�.�_�t�D�u�r�)�+�(�n�-�w�.�_�s�t�a�r�t�)�*�w�.�_�t�s�,�e�,�i�)�,�n�!�=�=�t�h�i�s�.�_�t�i�m�e�|�|�!�t�h�i�s�.�_�t�s�&�&�!�a�)�{�l�=�0�,�o�&�&�(�g�+�=�t�h�i�s�.�_�z�T�i�m�e�=�-�H�)�;�b�r�e�a�k�}�}�w�=�o�}�e�l�s�e� �f�o�r�(�v�a�r� �w�=�t�h�i�s�.�_�l�a�s�t�,�b�=�t�<�0�?�t�:�n�;�w�;�)�{�i�f�(�o�=�w�.�_�p�r�e�v�,�(�w�.�_�a�c�t�|�|�b�<�=�w�.�_�e�n�d�)�&�&�w�.�_�t�s�&�&�l�!�=�=�w�)�{�i�f�(�w�.�p�a�r�e�n�t�!�=�=�t�h�i�s�)�r�e�t�u�r�n� �t�h�i�s�.�r�e�n�d�e�r�(�t�,�e�,�i�)�;�i�f�(�w�.�r�e�n�d�e�r�(�0�<�w�.�_�t�s�?�(�b�-�w�.�_�s�t�a�r�t�)�*�w�.�_�t�s�:�(�w�.�_�d�i�r�t�y�?�w�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�:�w�.�_�t�D�u�r�)�+�(�b�-�w�.�_�s�t�a�r�t�)�*�w�.�_�t�s�,�e�,�i�)�,�n�!�=�=�t�h�i�s�.�_�t�i�m�e�|�|�!�t�h�i�s�.�_�t�s�&�&�!�a�)�{�l�=�0�,�o�&�&�(�g�+�=�t�h�i�s�.�_�z�T�i�m�e�=�b�?�-�H�:�H�)�;�b�r�e�a�k�}�}�w�=�o�}�i�f�(�l�&�&�!�e�&�&�(�t�h�i�s�.�p�a�u�s�e�(�)�,�l�.�r�e�n�d�e�r�(�p�<�=�n�?�0�:�-�H�)�.�_�z�T�i�m�e�=�p�<�=�n�?�1�:�-�1�,�t�h�i�s�.�_�t�s�)�)�r�e�t�u�r�n� �t�h�i�s�.�_�s�t�a�r�t�=�d�,�A�e�(�t�h�i�s�)�,�t�h�i�s�.�r�e�n�d�e�r�(�t�,�e�,�i�)�;�t�h�i�s�.�_�o�n�U�p�d�a�t�e�&�&�!�e�&�&�_�(�t�h�i�s�,�"�o�n�U�p�d�a�t�e�"�,�!�0�)�,�!�(�g�=�=�=�f�&�&�f�>�=�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�|�|�!�g�&�&�p�)�|�|�d�!�=�=�t�h�i�s�.�_�s�t�a�r�t�&�&�M�a�t�h�.�a�b�s�(�c�)�=�=�=�M�a�t�h�.�a�b�s�(�t�h�i�s�.�_�t�s�)�|�|�t�h�i�s�.�_�l�o�c�k�|�|�(�!�t�&�&�m�|�|�!�(�g�=�=�=�f�&�&�0�<�t�h�i�s�.�_�t�s�|�|�!�g�&�&�t�h�i�s�.�_�t�s�<�0�)�|�|�z�(�t�h�i�s�,�1�)�,�e�|�|�t�<�0�&�&�!�p�|�|�!�g�&�&�!�p�&�&�f�|�|�(�_�(�t�h�i�s�,�g�=�=�=�f�&�&�0�<�=�t�?�"�o�n�C�o�m�p�l�e�t�e�"�:�"�o�n�R�e�v�e�r�s�e�C�o�m�p�l�e�t�e�"�,�!�0�)�,�!�t�h�i�s�.�_�p�r�o�m�|�|�g�<�f�&�&�0�<�t�h�i�s�.�t�i�m�e�S�c�a�l�e�(�)�|�|�t�h�i�s�.�_�p�r�o�m�(�)�)�)�}�r�e�t�u�r�n� �t�h�i�s�}�,�e�.�a�d�d�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�;�i�f�(�O�(�e�)�|�|�(�e�=�d�(�t�h�i�s�,�e�,�t�)�)�,�!�(�t� �i�n�s�t�a�n�c�e�o�f� �X�e�)�)�{�i�f�(�$
1�(�t�)�)�r�e�t�u�r�n� �t�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�.�a�d�d�(�t�,�e�)�}�)�,�t�h�i�s�;�i�f�(�B�(�t�)�)�r�e�t�u�r�n� �t�h�i�s�.�a�d�d�L�a�b�e�l�(�t�,�e�)�;�i�f�(�!�u�(�t�)�)�r�e�t�u�r�n� �t�h�i�s�;�t�=�Y�.�d�e�l�a�y�e�d�C�a�l�l�(�0�,�t�)�}�r�e�t�u�r�n� �t�h�i�s�!�=�=�t�?�A�(�t�h�i�s�,�t�,�e�)�:�t�h�i�s�}�,�e�.�g�e�t�C�h�i�l�d�r�e�n�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�o�i�d� �0�=�=�=�t�&�&�(�t�=�!�0�)�,�v�o�i�d� �0�=�=�=�e�&�&�(�e�=�!�0�)�,�v�o�i�d� �0�=�=�=�i�&�&�(�i�=�!�0�)�,�v�o�i�d� �0�=�=�=�n�&�&�(�n�=�-�j�)�;�f�o�r�(�v�a�r� �o�=�[�]�,�s�=�t�h�i�s�.�_�f�i�r�s�t�;�s�;�)�s�.�_�s�t�a�r�t�>�=�n�&�&�(�s� �i�n�s�t�a�n�c�e�o�f� �Y�?�e�&�&�o�.�p�u�s�h�(�s�)�:�(�i�&�&�o�.�p�u�s�h�(�s�)�,�t�&�&�o�.�p�u�s�h�.�a�p�p�l�y�(�o�,�s�.�g�e�t�C�h�i�l�d�r�e�n�(�!�0�,�e�,�i�)�)�)�)�,�s�=�s�.�_�n�e�x�t�;�r�e�t�u�r�n� �o�}�,�e�.�g�e�t�B�y�I�d�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�=�t�h�i�s�.�g�e�t�C�h�i�l�d�r�e�n�(�1�,�1�,�1�)�,�i�=�e�.�l�e�n�g�t�h�;�i�-�-�;�)�i�f�(�e�[�i�]�.�v�a�r�s�.�i�d�=�=�=�t�)�r�e�t�u�r�n� �e�[�i�]�}�,�e�.�r�e�m�o�v�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �B�(�t�)�?�t�h�i�s�.�r�e�m�o�v�e�L�a�b�e�l�(�t�)�:�u�(�t�)�?�t�h�i�s�.�k�i�l�l�T�w�e�e�n�s�O�f�(�t�)�:�(�k�e�(�t�h�i�s�,�t�)�,�t�=�=�=�t�h�i�s�.�_�r�e�c�e�n�t�&�&�(�t�h�i�s�.�_�r�e�c�e�n�t�=�t�h�i�s�.�_�l�a�s�t�)�,�E�e�(�t�h�i�s�)�)�}�,�e�.�t�o�t�a�l�T�i�m�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�t�h�i�s�.�_�f�o�r�c�i�n�g�=�1�,�!�t�h�i�s�.�_�d�p�&�&�t�h�i�s�.�_�t�s�&�&�(�t�h�i�s�.�_�s�t�a�r�t�=�F�(�f�.�t�i�m�e�-�(�0�<�t�h�i�s�.�_�t�s�?�t�/�t�h�i�s�.�_�t�s�:�(�t�h�i�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�-�t�)�/�-�t�h�i�s�.�_�t�s�)�)�)�,�Z�e�.�p�r�o�t�o�t�y�p�e�.�t�o�t�a�l�T�i�m�e�.�c�a�l�l�(�t�h�i�s�,�t�,�e�)�,�t�h�i�s�.�_�f�o�r�c�i�n�g�=�0�,�t�h�i�s�)�:�t�h�i�s�.�_�t�T�i�m�e�}�,�e�.�a�d�d�L�a�b�e�l�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�l�a�b�e�l�s�[�t�]�=�d�(�t�h�i�s�,�e�)�,�t�h�i�s�}�,�e�.�r�e�m�o�v�e�L�a�b�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �d�e�l�e�t�e� �t�h�i�s�.�l�a�b�e�l�s�[�t�]�,�t�h�i�s�}�,�e�.�a�d�d�P�a�u�s�e�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�e�=�Y�.�d�e�l�a�y�e�d�C�a�l�l�(�0�,�e�|�|�c�,�i�)�;�r�e�t�u�r�n� �e�.�d�a�t�a�=�"�i�s�P�a�u�s�e�"�,�t�h�i�s�.�_�h�a�s�P�a�u�s�e�=�1�,�A�(�t�h�i�s�,�e�,�d�(�t�h�i�s�,�t�)�)�}�,�e�.�r�e�m�o�v�e�P�a�u�s�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�_�f�i�r�s�t�;�f�o�r�(�t�=�d�(�t�h�i�s�,�t�)�;�e�;�)�e�.�_�s�t�a�r�t�=�=�=�t�&�&�"�i�s�P�a�u�s�e�"�=�=�=�e�.�d�a�t�a�&�&�z�(�e�)�,�e�=�e�.�_�n�e�x�t�}�,�e�.�k�i�l�l�T�w�e�e�n�s�O�f�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�f�o�r�(�v�a�r� �n�=�t�h�i�s�.�g�e�t�T�w�e�e�n�s�O�f�(�t�,�i�)�,�o�=�n�.�l�e�n�g�t�h�;�o�-�-�;�)�i�i�!�=�=�n�[�o�]�&�&�n�[�o�]�.�k�i�l�l�(�t�,�e�)�;�r�e�t�u�r�n� �t�h�i�s�}�,�e�.�g�e�t�T�w�e�e�n�s�O�f�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�,�n�=�[�]�,�o�=�L�(�t�)�,�s�=�t�h�i�s�.�_�f�i�r�s�t�,�r�=�O�(�e�)�;�s�;�)�s� �i�n�s�t�a�n�c�e�o�f� �Y�?�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�e�.�l�e�n�g�t�h�,�n�=�0�;�t�.�i�n�d�e�x�O�f�(�e�[�n�]�)�<�0�&�&�+�+�n�<�i�;�)�;�r�e�t�u�r�n� �n�<�i�}�(�s�.�_�t�a�r�g�e�t�s�,�o�)�&�&�(�r�?�(�!�i�i�|�|�s�.�_�i�n�i�t�t�e�d�&�&�s�.�_�t�s�)�&�&�s�.�g�l�o�b�a�l�T�i�m�e�(�0�)�<�=�e�&�&�s�.�g�l�o�b�a�l�T�i�m�e�(�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�)�>�e�:�!�e�|�|�s�.�i�s�A�c�t�i�v�e�(�)�)�&�&�n�.�p�u�s�h�(�s�)�:�(�i�=�s�.�g�e�t�T�w�e�e�n�s�O�f�(�o�,�e�)�)�.�l�e�n�g�t�h�&�&�n�.�p�u�s�h�.�a�p�p�l�y�(�n�,�i�)�,�s�=�s�.�_�n�e�x�t�;�r�e�t�u�r�n� �n�}�,�e�.�t�w�e�e�n�T�o�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�=�e�|�|�{�}�;�v�a�r� �i�,�n�=�t�h�i�s�,�o�=�d�(�n�,�t�)�,�t�=�e�,�s�=�t�.�s�t�a�r�t�A�t�,�r�=�t�.�o�n�S�t�a�r�t�,�a�=�t�.�o�n�S�t�a�r�t�P�a�r�a�m�s�,�t�=�t�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�,�l�=�Y�.�t�o�(�n�,�P�(�{�e�a�s�e�:�e�.�e�a�s�e�|�|�"�n�o�n�e�"�,�l�a�z�y�:�!�1�,�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�:�!�1�,�t�i�m�e�:�o�,�o�v�e�r�w�r�i�t�e�:�"�a�u�t�o�"�,�d�u�r�a�t�i�o�n�:�e�.�d�u�r�a�t�i�o�n�|�|�M�a�t�h�.�a�b�s�(�(�o�-�(�s�&�&�"�t�i�m�e�"�i�n� �s�?�s�.�t�i�m�e�:�n�.�_�t�i�m�e�)�)�/�n�.�t�i�m�e�S�c�a�l�e�(�)�)�|�|�H�,�o�n�S�t�a�r�t�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�n�.�p�a�u�s�e�(�)�,�i�|�|�(�t�=�e�.�d�u�r�a�t�i�o�n�|�|�M�a�t�h�.�a�b�s�(�(�o�-�(�s�&�&�"�t�i�m�e�"�i�n� �s�?�s�.�t�i�m�e�:�n�.�_�t�i�m�e�)�)�/�n�.�t�i�m�e�S�c�a�l�e�(�)�)�,�l�.�_�d�u�r�!�=�=�t�&�&�s�t�(�l�,�t�,�0�,�1�)�.�r�e�n�d�e�r�(�l�.�_�t�i�m�e�,�!�0�,�!�0�)�,�i�=�1�)�,�r�&�&�r�.�a�p�p�l�y�(�l�,�a�|�|�[�]�)�}�}�,�e�)�)�;�r�e�t�u�r�n� �t�?�l�.�r�e�n�d�e�r�(�0�)�:�l�}�,�e�.�t�w�e�e�n�F�r�o�m�T�o�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�t�w�e�e�n�T�o�(�e�,�P�(�{�s�t�a�r�t�A�t�:�{�t�i�m�e�:�d�(�t�h�i�s�,�t�)�}�}�,�i�)�)�}�,�e�.�r�e�c�e�n�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�r
1�e�c�e�n�t�}�,�e�.�n�e�x�t�L�a�b�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �v�o�i�d� �0�=�=�=�t�&�&�(�t�=�t�h�i�s�.�_�t�i�m�e�)�,�y�t�(�t�h�i�s�,�d�(�t�h�i�s�,�t�)�)�}�,�e�.�p�r�e�v�i�o�u�s�L�a�b�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �v�o�i�d� �0�=�=�=�t�&�&�(�t�=�t�h�i�s�.�_�t�i�m�e�)�,�y�t�(�t�h�i�s�,�d�(�t�h�i�s�,�t�)�,�1�)�}�,�e�.�c�u�r�r�e�n�t�L�a�b�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�h�i�s�.�s�e�e�k�(�t�,�!�0�)�:�t�h�i�s�.�p�r�e�v�i�o�u�s�L�a�b�e�l�(�t�h�i�s�.�_�t�i�m�e�+�H�)�}�,�e�.�s�h�i�f�t�C�h�i�l�d�r�e�n�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�o�i�d� �0�=�=�=�i�&�&�(�i�=�0�)�;�f�o�r�(�v�a�r� �n�,�o�=�t�h�i�s�.�_�f�i�r�s�t�,�s�=�t�h�i�s�.�l�a�b�e�l�s�;�o�;�)�o�.�_�s�t�a�r�t�>�=�i�&�&�(�o�.�_�s�t�a�r�t�+�=�t�,�o�.�_�e�n�d�+�=�t�)�,�o�=�o�.�_�n�e�x�t�;�i�f�(�e�)�f�o�r�(�n� �i�n� �s�)�s�[�n�]�>�=�i�&�&�(�s�[�n�]�+�=�t�)�;�r�e�t�u�r�n� �E�e�(�t�h�i�s�)�}�,�e�.�i�n�v�a�l�i�d�a�t�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�_�f�i�r�s�t�;�f�o�r�(�t�h�i�s�.�_�l�o�c�k�=�0�;�t�;�)�t�.�i�n�v�a�l�i�d�a�t�e�(�)�,�t�=�t�.�_�n�e�x�t�;�r�e�t�u�r�n� �Z�e�.�p�r�o�t�o�t�y�p�e�.�i�n�v�a�l�i�d�a�t�e�.�c�a�l�l�(�t�h�i�s�)�}�,�e�.�c�l�e�a�r�=�f�u�n�c�t�i�o�n�(�t�)�{�v�o�i�d� �0�=�=�=�t�&�&�(�t�=�!�0�)�;�f�o�r�(�v�a�r� �e�,�i�=�t�h�i�s�.�_�f�i�r�s�t�;�i�;�)�e�=�i�.�_�n�e�x�t�,�t�h�i�s�.�r�e�m�o�v�e�(�i�)�,�i�=�e�;�r�e�t�u�r�n� �t�h�i�s�.�_�d�p�&�&�(�t�h�i�s�.�_�t�i�m�e�=�t�h�i�s�.�_�t�T�i�m�e�=�t�h�i�s�.�_�p�T�i�m�e�=�0�)�,�t�&�&�(�t�h�i�s�.�l�a�b�e�l�s�=�{�}�)�,�E�e�(�t�h�i�s�)�}�,�e�.�t�o�t�a�l�D�u�r�a�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�,�o�=�0�,�s�=�t�h�i�s�,�r�=�s�.�_�l�a�s�t�,�a�=�j�;�i�f�(�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�r�e�t�u�r�n� �s�.�t�i�m�e�S�c�a�l�e�(�(�s�.�_�r�e�p�e�a�t�<�0�?�s�.�d�u�r�a�t�i�o�n�(�)�:�s�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�)�/�(�s�.�r�e�v�e�r�s�e�d�(�)�?�-�t�:�t�)�)�;�i�f�(�s�.�_�d�i�r�t�y�)�{�f�o�r�(�n�=�s�.�p�a�r�e�n�t�;�r�;�)�e�=�r�.�_�p�r�e�v�,�r�.�_�d�i�r�t�y�&�&�r�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�,�a�<�(�i�=�r�.
1�_�s�t�a�r�t�)�&�&�s�.�_�s�o�r�t�&�&�r�.�_�t�s�&�&�!�s�.�_�l�o�c�k�?�(�s�.�_�l�o�c�k�=�1�,�A�(�s�,�r�,�i�-�r�.�_�d�e�l�a�y�,�1�)�.�_�l�o�c�k�=�0�)�:�a�=�i�,�i�<�0�&�&�r�.�_�t�s�&�&�(�o�-�=�i�,�(�!�n�&�&�!�s�.�_�d�p�|�|�n�&�&�n�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�)�&�&�(�s�.�_�s�t�a�r�t�+�=�i�/�s�.�_�t�s�,�s�.�_�t�i�m�e�-�=�i�,�s�.�_�t�T�i�m�e�-�=�i�)�,�s�.�s�h�i�f�t�C�h�i�l�d�r�e�n�(�-�i�,�!�1�,�-�1�/�0�)�,�a�=�0�)�,�r�.�_�e�n�d�>�o�&�&�r�.�_�t�s�&�&�(�o�=�r�.�_�e�n�d�)�,�r�=�e�;�s�t�(�s�,�s�=�=�=�R�&�&�s�.�_�t�i�m�e�>�o�?�s�.�_�t�i�m�e�:�o�,�1�,�1�)�,�s�.�_�d�i�r�t�y�=�0�}�r�e�t�u�r�n� �s�.�_�t�D�u�r�}�,�J�e�.�u�p�d�a�t�e�R�o�o�t�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�R�.�_�t�s�&�&�(�g�(�R�,�S�(�t�,�R�)�)�,�F�t�=�f�.�f�r�a�m�e�)�,�f�.�f�r�a�m�e�>�=�w�e�)�{�w�e�+�=�N�.�a�u�t�o�S�l�e�e�p�|�|�1�2�0�;�v�a�r� �e�=�R�.�_�f�i�r�s�t�;�i�f�(�(�!�e�|�|�!�e�.�_�t�s�)�&�&�N�.�a�u�t�o�S�l�e�e�p�&�&�f�.�_�l�i�s�t�e�n�e�r�s�.�l�e�n�g�t�h�<�2�)�{�f�o�r�(�;�e�&�&�!�e�.�_�t�s�;�)�e�=�e�.�_�n�e�x�t�;�e�|�|�f�.�s�l�e�e�p�(�)�}�}�}�;�v�a�r� �Z�e�,�U�=�J�e�;�f�u�n�c�t�i�o�n� �J�e�(�t�,�e�)�{�v�a�r� �i�;�r�e�t�u�r�n�(�i�=�Z�e�.�c�a�l�l�(�t�h�i�s�,�t�=�v�o�i�d� �0�=�=�=�t�?�{�}�:�t�)�|�|�t�h�i�s�)�.�l�a�b�e�l�s�=�{�}�,�i�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�=�!�!�t�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�,�i�.�a�u�t�o�R�e�m�o�v�e�C�h�i�l�d�r�e�n�=�!�!�t�.�a�u�t�o�R�e�m�o�v�e�C�h�i�l�d�r�e�n�,�i�.�_�s�o�r�t�=�M�(�t�.�s�o�r�t�C�h�i�l�d�r�e�n�)�,�R�&�&�A�(�t�.�p�a�r�e�n�t�|�|�R�,�E�(�i�)�,�e�)�,�t�.�r�e�v�e�r�s�e�d�&�&�i�.�r�e�v�e�r�s�e�(�)�,�t�.�p�a�u�s�e�d�&�&�i�.�p�a�u�s�e�d�(�!�0�)�,�t�.�s�c�r�o�l�l�T�r�i�g�g�e�r�&�&�n�t�(�E�(�i�)�,�t�.�s�c�r�o�l�l�T�r�i�g�g�e�r�)�,�i�}�P�(�U�.�p�r�o�t�o�t�y�p�e�,�{�_�l�o�c�k�:�0�,�_�h�a�s�P�a�u�s�e�:�0�,�_�f�o�r�c�i�n�g�:�0�}�)�;�f�u�n�c�t�i�o�n� �t�i�(�t�,�e�,�i�,�n�,�o�,�s�,�r�,�a�,�l�)�{�u�(�n�)�&�&�(�n�=�n�(�o�|�|�0�,�t�,�s�)�)�;�v�a�r� �c�,�o�=�t�[�e�]�,�s�=�"�g�e�t�"�!�=�=�i�?�i�:�u�(�o�)�?�l�?�t�[�e�.�i�n�d�e�x�O�f�(�"�s�e�t�"�)�|�|�!�u�(�t�[�"�g�e�t�"�+�e�.�s�u�b�s�t�r�(�3�)�]�)�?�e�:�"�g�e�t�"�+�e�.�s�u�b�s�t�r�(�3�)�]�(�l�)�:�t�[�e�]�(�)�:�o�,�i�=�u�(�o�)�?�l�?�v�i�:�g�i�:�m�i�;�i�f�(�s�!�=�=�(�n�=�!�B�(�n�)�|�|�"�=�"�!�=�=�(�n�=�~�n�.�i�n�d�e�x�O�f�(�"�r�a�n�d�o�m�(�"�)�?�M�e�(�n�)�:�n�)�.�c�h�a�r�A�t�(�1�)�|�|�!�(�c�=�p�a�r�s�e�F�l�o�a�t�(�s�)�+�p�a�r�s�e�F�l�o�a�t�(�n�.�s�u�b�s�t�r�(�2�)�)�*�(�"�-�"�=�=�=�n�.�c�h�a�r�A�t�(�0�)�?�-�1�:�1�)�+�(�q�(�s�)�|�|�0�)�)�&�&�0�!�=�=�c�?�n�:�c�)�)�r�e�t�u�r�n� �i�s�N�a�N�(�s�*�n�)�|�|�"�"�=�=�=�n�?�(�o�|�|�e� �i�n� �t�|�|�f�e�(�e�,�n�)�,�o�i�.�c�a�l�l�(�t�h�i�s�,�t�,�e�,�s�,�n�,�i�,�a�|�|�N�.�s�t�r�i�n�g�F�i�l�t�e�r�,�l�)�)�:�(�c�=�n�e�w� �Q�(�t�h�i�s�.�_�p�t�,�t�,�e�,�+�s�|�|�0�,�n�-�(�s�|�|�0�)�,�"�b�o�o�l�e�a�n�"�=�=�t�y�p�e�o�f� �o�?�_�i�:�b�i�,�0�,�i�)�,�l�&�&�(�c�.�f�p�=�l�)�,�r�&�&�c�.�m�o�d�i�f�i�e�r�(�r�,�t�h�i�s�,�t�)�,�t�h�i�s�.�_�p�t�=�c�)�}�f�u�n�c�t�i�o�n� �e�i�(�t�,�e�,�i�,�n�,�o�,�s�)�{�v�a�r� �r�,�a�,�l�,�c�;�i�f�(�W�[�t�]�&�&�!�1�!�=�=�(�r�=�n�e�w� �W�[�t�]�)�.�i�n�i�t�(�o�,�r�.�r�a�w�V�a�r�s�?�e�[�t�]�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�)�{�i�f�(�u�(�t�)�&�&�(�t�=�r�i�(�t�,�o�,�e�,�i�,�n�)�)�,�!�D�(�t�)�|�|�t�.�s�t�y�l�e�&�&�t�.�n�o�d�e�T�y�p�e�|�|�$�(�t�)�|�|�s�e�(�t�)�)�r�e�t�u�r�n� �B�(�t�)�?�r�i�(�t�,�o�,�e�,�i�,�n�)�:�t�;�v�a�r� �s�,�r�=�{�}�;�f�o�r�(�s� �i�n� �t�)�r�[�s�]�=�r�i�(�t�[�s�]�,�o�,�e�,�i�,�n�)�;�r�e�t�u�r�n� �r�}�(�e�[�t�]�,�n�,�o�,�s�,�i�)�,�i�,�n�,�s�)�&�&�(�i�.�_�p�t�=�a�=�n�e�w� �Q�(�i�.�_�p�t�,�o�,�t�,�0�,�1�,�r�.�r�e�n�d�e�r�,�r�,�0�,�r�.�p�r�i�o�r�i�t�y�)�,�i�!�=�=�I�t�)�)�f�o�r�(�l�=�i�.�_�p�t�L�o�o�k�u�p�[�i�.�_�t�a�r�g�e�t�s�.�i�n�d�e�x�O�f�(�o�)�]�,�c�=�r�.�_�p�r�o�p�s�.�l�e�n�g�t�h�;�c�-�-�;�)�l�[�r�.�_�p�r�o�p�s�[�c�]�]�=�a�;�r�e�t�u�r�n� �r�}�v�a�r� �i�i�,�n�i�,�o�i�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�,�s�,�r�)�{�v�a�r� �a�,�l�,�c�,�d�,�u�,�h�=�n�e�w� �Q�(�t�h�i�s�.�_�p�t�,�t�,�e�,�0�,�1�,�c�i�,�n�u�l�l�,�o�)�,�p�=�0�,�f�=�0�;�f�o�r�(�h�.�b�=�i�,�h�.�e�=�n�,�i�+�=�"�"�,�(�o�=�~�(�n�+�=�"�"�)�.�i�n�d�e�x�O�f�(�"�r�a�n�d�o�m�(�"�)�)�&�&�(�n�=�M�e�(�n�)�)�,�s�&�&�(�s�(�s�=�[�i�,�n�]�,�t�,�e�)�,�i�=�s�[�0�]�,�n�=�s�[�1�]�)�,�a�=�i�.�m�a�t�c�h�(�c�e�)�|�|�[�]�;�d�=�c�e�.�e�x�e�c�(�n�)�;�)�c�=�d�[�0�]�,�d�=�n�.�s�u�b�s�t�r�i�n�g�(�p�,�d�.�i�n�d�e�x�)�,�l�?�l�=�(�l�+�1�)�%�5�:�"�r�g�b�a�(�"�=�=�=�d�.�s�u�b�s�t�r�(�-�5�)�&�&�(�l�=�1�)�,�c�!�=�=�a�[�f�+�+�]�&�&�(�u�=�p�a�r�s�e�F�l�o�a�t�(�a�[�f�-�1�]�)�|�|�0�,�h�.�_�p�t�=�{�_�n�e�x�t�:�h�.�_�p�t�,�p�:�d�|�|�1�=�=�=�f�?�d�:�"�,�"�,�s�:�u�,�c�:�"�=�"�=�=�=�c�.�c�h�a�r�A�t�(�1�)�?�p�a�r�s�e�F�l�o�a�t�(�c�.�s�u�b�s�t�r�(�2�)�)�*�(�"�-�"�=�=�=�c�.�c�h�a�r�A�t�(�0�)�?�-�1�:�1�)�:�p�a�r�s�e�F�l�o�a�t�(�c�)�-�u�,�m�:�l�&�&�l�<�4�?�M�a�t�h�.�r�o�u�n�d�:�0�}�,�p�=�c�e�.�l�a�s�t�I�n�d�e�x�)�;�r�e�t�u�r�n� �h�.�c�=�p�<�n�.�l�e�n�g�t�h�?�n�.�s�u�b�s�t�r�i�n�g�(�p�,�n�.�l�e�n�g�t�h�)�:�"�"�,�h�.�f�p�=�r�,�(�d�e�.�t�e�s�t�(�n�)�|�|�o�)�&�&�(�h�.�e�=�0�)�,�t�h�i�s�.�_�p�t�=�h�}�,�s�i�=�f�u�n�c�t�i�o�n� �t�(�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�,�a�,�l�,�c�,�d�,�u�,�h�,�p�,�f�,�m�,�g�=�e�.�v�a�r�s�,�v�=�g�.�e�a�s�e�,�y�=�g�.�s�t�a�r�t�A�t�,�w�=�g�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�,�b�=�g�.�l�a�z�y�,�_�=�g�.�o�n�U�p�d�a�t�e�,
1�T�=�g�.�o�n�U�p�d�a�t�e�P�a�r�a�m�s�,�S�=�g�.�c�a�l�l�b�a�c�k�S�c�o�p�e�,�x�=�g�.�r�u�n�B�a�c�k�w�a�r�d�s�,�C�=�g�.�y�o�y�o�E�a�s�e�,�k�=�g�.�k�e�y�f�r�a�m�e�s�,�E�=�g�.�a�u�t�o�R�e�v�e�r�t�,�A�=�e�.�_�d�u�r�,�O�=�e�.�_�s�t�a�r�t�A�t�,�D�=�e�.�_�t�a�r�g�e�t�s�,�$�=�e�.�p�a�r�e�n�t�,�F�=�$�&�&�"�n�e�s�t�e�d�"�=�=�=�$�.�d�a�t�a�?�$�.�p�a�r�e�n�t�.�_�t�a�r�g�e�t�s�:�D�,�I�=�"�a�u�t�o�"�=�=�=�e�.�_�o�v�e�r�w�r�i�t�e�&�&�!�A�t�,�L�=�e�.�t�i�m�e�l�i�n�e�;�i�f�(�e�.�_�e�a�s�e�=�U�e�(�v�=�!�L�|�|�k�&�&�v�?�v�:�"�n�o�n�e�"�,�K�t�.�e�a�s�e�)�,�e�.�_�y�E�a�s�e�=�C�?�V�e�(�U�e�(�!�0�=�=�=�C�?�v�:�C�,�K�t�.�e�a�s�e�)�)�:�0�,�C�&�&�e�.�_�y�o�y�o�&�&�!�e�.�_�r�e�p�e�a�t�&�&�(�C�=�e�.�_�y�E�a�s�e�,�e�.�_�y�E�a�s�e�=�e�.�_�e�a�s�e�,�e�.�_�e�a�s�e�=�C�)�,�e�.�_�f�r�o�m�=�!�L�&�&�!�!�g�.�r�u�n�B�a�c�k�w�a�r�d�s�,�!�L�|�|�k�&�&�!�g�.�s�t�a�g�g�e�r�)�{�i�f�(�f�=�(�d�=�D�[�0�]�?�S�e�(�D�[�0�]�)�.�h�a�r�n�e�s�s�:�0�)�&�&�g�[�d�.�p�r�o�p�]�,�n�=�t�t�(�g�,�m�e�)�,�O�&�&�z�(�O�.�r�e�n�d�e�r�(�-�1�,�!�0�)�)�,�y�)�i�f�(�z�(�e�.�_�s�t�a�r�t�A�t�=�Y�.�s�e�t�(�D�,�P�(�{�d�a�t�a�:�"�i�s�S�t�a�r�t�"�,�o�v�e�r�w�r�i�t�e�:�!�1�,�p�a�r�e�n�t�:�$�,�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�:�!�0�,�l�a�z�y�:�M�(�b�)�,�s�t�a�r�t�A�t�:�n�u�l�l�,�d�e�l�a�y�:�0�,�o�n�U�p�d�a�t�e�:�_�,�o�n�U�p�d�a�t�e�P�a�r�a�m�s�:�T�,�c�a�l�l�b�a�c�k�S�c�o�p�e�:�S�,�s�t�a�g�g�e�r�:�0�}�,�y�)�)�)�,�i�<�0�&�&�!�w�&�&�!�E�&�&�e�.�_�s�t�a�r�t�A�t�.�r�e�n�d�e�r�(�-�1�,�!�0�)�,�w�)�{�i�f�(�0�<�i�&�&�!�E�&�&�(�e�.�_�s�t�a�r�t�A�t�=�0�)�,�A�&�&�i�<�=�0�)�r�e�t�u�r�n� �v�o�i�d�(�i�&�&�(�e�.�_�z�T�i�m�e�=�i�)�)�}�e�l�s�e�!�1�=�=�=�E�&�&�(�e�.�_�s�t�a�r�t�A�t�=�0�)�;�e�l�s�e� �i�f�(�x�&�&�A�)�i�f�(�O�)�E�|�|�(�e�.�_�s�t�a�r�t�A�t�=�0�)�;�e�l�s�e� �i�f�(�s�=�P�(�{�o�v�e�r�w�r�i�t�e�:�!�1�,�d�a�t�a�:�"�i�s�F�r�o�m�S�t�a�r�t�"�,�l�a�z�y�:�(�w�=�i�?�!�1�:�w�)�&�&�M�(�b�)�,�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�:�w�,�s�t�a�g�g�e�r�:�0�,�p�a�r�e�n�t�:�$�}�,�n�)�,�f�&�&�(�s�[�d�.�p�r�o�p�]�=�f�)�,�z�(�e�.�_�s�t�a�r�t�A�t�=�Y�.�s�e�t�(�D�,�s�)�)�,�i�<�0�&�&�e�.�_�s�t�a�r�t�A�t�.�r�e�n�d�e�r�(�-�1�,�!�0�)�,�e�.�_�z�T�i�m�e�=�i�,�w�)�{�i�f�(�!�i�)�r�e�t�u�r�n�}�e�l�s�e� �t�(�e�.�_�s�t�a�r�t�A�t�,�H�)�;�f�o�r�(�e�.�_�p�t�=�0�,�b�=�A�&�&�M�(�b�)�|�|�b�&�&�!�A�,�o�=�0�;�o�<�D�.�l�e�n�g�t�h�;�o�+�+�)�{�i�f�(�c�=�(�a�=�D�[�o�]�)�.�_�g�s�a�p�|�|�T�e�(�D�)�[�o�]�.�_�g�s�a�p�,�e�.�_�p�t�L�o�o�k�u�p�[�o�]�=�h�=�{�}�,�v�e�[�c�.�i�d�]�&�&�g�e�.�l�e�n�g�t�h�&�&�C�e�(�)�,�p�=�F�=�=�=�D�?�o�:�F�.�i�n�d�e�x�O�f�(�a�)�,�d�&�&�!�1�!�=�=�(�u�=�n�e�w� �d�)�.�i�n�i�t�(�a�,�f�|�|�n�,�e�,�p�,�F�)�&�&�(�e�.�_�p�t�=�r�=�n�e�w� �Q�(�e�.�_�p�t�,�a�,�u�.�n�a�m�e�,�0�,�1�,�u�.�r�e�n�d�e�r�,�u�,�0�,�u�.�p�r�i�o�r�i�t�y�)�,�u�.�_�p�r�o�p�s�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�h�[�t�]�=�r�}�)�,�u�.�p�r�i�o�r�i�t�y�&�&�(�l�=�1�)�)�,�!�d�|�|�f�)�f�o�r�(�s� �i�n� �n�)�W�[�s�]�&�&�(�u�=�e�i�(�s�,�n�,�e�,�p�,�a�,�F�)�)�?�u�.�p�r�i�o�r�i�t�y�&�&�(�l�=�1�)�:�h�[�s�]�=�r�=�t�i�.�c�a�l�l�(�e�,�a�,�s�,�"�g�e�t�"�,�n�[�s�]�,�p�,�F�,�0�,�g�.�s�t�r�i�n�g�F�i�l�t�e�r�)�;�e�.�_�o�p�&�&�e�.�_�o�p�[�o�]�&�&�e�.�k�i�l�l�(�a�,�e�.�_�o�p�[�o�]�)�,�I�&�&�e�.�_�p�t�&�&�(�i�i�=�e�,�R�.�k�i�l�l�T�w�e�e�n�s�O�f�(�a�,�h�,�e�.�g�l�o�b�a�l�T�i�m�e�(�i�)�)�,�m�=�!�e�.�p�a�r�e�n�t�,�i�i�=�0�)�,�e�.�_�p�t�&�&�b�&�&�(�v�e�[�c�.�i�d�]�=�1�)�}�l�&�&�f�i�(�e�)�,�e�.�_�o�n�I�n�i�t�&�&�e�.�_�o�n�I�n�i�t�(�e�)�}�e�.�_�o�n�U�p�d�a�t�e�=�_�,�e�.�_�i�n�i�t�t�e�d�=�(�!�e�.�_�o�p�|�|�e�.�_�p�t�)�&�&�!�m�,�k�&�&�i�<�=�0�&�&�L�.�r�e�n�d�e�r�(�j�,�!�0�,�!�0�)�}�,�r�i�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�)�{�r�e�t�u�r�n� �u�(�t�)�?�t�.�c�a�l�l�(�e�,�i�,�n�,�o�)�:�B�(�t�)�&�&�~�t�.�i�n�d�e�x�O�f�(�"�r�a�n�d�o�m�(�"�)�?�M�e�(�t�)�:�t�}�,�a�i�=�_�e�+�"�r�e�p�e�a�t�,�r�e�p�e�a�t�D�e�l�a�y�,�y�o�y�o�,�r�e�p�e�a�t�R�e�f�r�e�s�h�,�y�o�y�o�E�a�s�e�"�,�l�i�=�{�}�,�Y�=�(�p�(�a�i�+�"�,�i�d�,�s�t�a�g�g�e�r�,�d�e�l�a�y�,�d�u�r�a�t�i�o�n�,�p�a�u�s�e�d�,�s�c�r�o�l�l�T�r�i�g�g�e�r�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �l�i�[�t�]�=�1�}�)�,�n�(�o�,�n�i�=�X�e�)�,�(�e�=�o�.�p�r�o�t�o�t�y�p�e�)�.�r�e�n�d�e�r�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�=�t�h�i�s�.�_�t�i�m�e�,�r�=�t�h�i�s�.�_�t�D�u�r�,�a�=�t�h�i�s�.�_�d�u�r�,�l�=�r�-�H�<�t�&�&�0�<�=�t�?�r�:�t�<�H�?�0�:�t�;�i�f�(�a�)�{�i�f�(�l�!�=�=�t�h�i�s�.�_�t�T�i�m�e�|�|�!�t�|�|�i�|�|�!�t�h�i�s�.�_�i�n�i�t�t�e�d�&�&�t�h�i�s�.�_�t�T�i�m�e�|�|�t�h�i�s�.�_�s�t�a�r�t�A�t�&�&�t�h�i�s�.�_�z�T�i�m�e�<�0�!�=�t�<�0�)�{�i�f�(�m�=�l�,�f�=�t�h�i�s�.�t�i�m�e�l�i�n�e�,�t�h�i�s�.�_�r
1�e�p�e�a�t�)�{�i�f�(�u�=�a�+�t�h�i�s�.�_�r�D�e�l�a�y�,�t�h�i�s�.�_�r�e�p�e�a�t�<�-�1�&�&�t�<�0�)�r�e�t�u�r�n� �t�h�i�s�.�t�o�t�a�l�T�i�m�e�(�1�0�0�*�u�+�t�,�e�,�i�)�;�i�f�(�m�=�F�(�l�%�u�)�,�l�=�=�=�r�?�(�v�=�t�h�i�s�.�_�r�e�p�e�a�t�,�m�=�a�)�:�(�(�v�=�~�~�(�l�/�u�)�)�&�&�v�=�=�=�l�/�u�&�&�(�m�=�a�,�v�-�-�)�,�a�<�m�&�&�(�m�=�a�)�)�,�(�p�=�t�h�i�s�.�_�y�o�y�o�&�&�1�&�v�)�&�&�(�h�=�t�h�i�s�.�_�y�E�a�s�e�,�m�=�a�-�m�)�,�y�=�T�(�t�h�i�s�.�_�t�T�i�m�e�,�u�)�,�m�=�=�=�s�&�&�!�i�&�&�t�h�i�s�.�_�i�n�i�t�t�e�d�)�r�e�t�u�r�n� �t�h�i�s�;�v�!�=�=�y�&�&�(�f�&�&�t�h�i�s�.�_�y�E�a�s�e�&�&�S�t�(�f�,�p�)�,�!�t�h�i�s�.�v�a�r�s�.�r�e�p�e�a�t�R�e�f�r�e�s�h�|�|�p�|�|�t�h�i�s�.�_�l�o�c�k�|�|�(�t�h�i�s�.�_�l�o�c�k�=�i�=�1�,�t�h�i�s�.�r�e�n�d�e�r�(�F�(�u�*�v�)�,�!�0�)�.�i�n�v�a�l�i�d�a�t�e�(�)�.�_�l�o�c�k�=�0�)�)�}�i�f�(�!�t�h�i�s�.�_�i�n�i�t�t�e�d�)�{�i�f�(�C�(�t�h�i�s�,�t�<�0�?�t�:�m�,�i�,�e�)�)�r�e�t�u�r�n� �t�h�i�s�.�_�t�T�i�m�e�=�0�,�t�h�i�s�;�i�f�(�a�!�=�=�t�h�i�s�.�_�d�u�r�)�r�e�t�u�r�n� �t�h�i�s�.�r�e�n�d�e�r�(�t�,�e�,�i�)�}�i�f�(�t�h�i�s�.�_�t�T�i�m�e�=�l�,�t�h�i�s�.�_�t�i�m�e�=�m�,�!�t�h�i�s�.�_�a�c�t�&�&�t�h�i�s�.�_�t�s�&�&�(�t�h�i�s�.�_�a�c�t�=�1�,�t�h�i�s�.�_�l�a�z�y�=�0�)�,�t�h�i�s�.�r�a�t�i�o�=�o�=�(�h�|�|�t�h�i�s�.�_�e�a�s�e�)�(�m�/�a�)�,�t�h�i�s�.�_�f�r�o�m�&�&�(�t�h�i�s�.�r�a�t�i�o�=�o�=�1�-�o�)�,�m�&�&�!�s�&�&�!�e�&�&�(�_�(�t�h�i�s�,�"�o�n�S�t�a�r�t�"�)�,�t�h�i�s�.�_�t�T�i�m�e�!�=�=�l�)�)�r�e�t�u�r�n� �t�h�i�s�;�f�o�r�(�n�=�t�h�i�s�.�_�p�t�;�n�;�)�n�.�r�(�o�,�n�.�d�)�,�n�=�n�.�_�n�e�x�t�;�f�&�&�f�.�r�e�n�d�e�r�(�t�<�0�?�t�:�!�m�&�&�p�?�-�H�:�f�.�_�d�u�r�*�f�.�_�e�a�s�e�(�m�/�t�h�i�s�.�_�d�u�r�)�,�e�,�i�)�|�|�t�h�i�s�.�_�s�t�a�r�t�A�t�&�&�(�t�h�i�s�.�_�z�T�i�m�e�=�t�)�,�t�h�i�s�.�_�o�n�U�p�d�a�t�e�&�&�!�e�&�&�(�t�<�0�&�&�t�h�i�s�.�_�s�t�a�r�t�A�t�&�&�t�h�i�s�.�_�s�t�a�r�t�A�t�.�r�e�n�d�e�r�(�t�,�!�0�,�i�)�,�_�(�t�h�i�s�,�"�o�n�U�p�d�a�t�e�"�)�)�,�t�h�i�s�.�_�r�e�p�e�a�t�&�&�v�!�=�=�y�&�&�t�h�i�s�.�v�a�r�s�.�o�n�R�e�p�e�a�t�&�&�!�e�&�&�t�h�i�s�.�p�a�r�e�n�t�&�&�_�(�t�h�i�s�,�"�o�n�R�e�p�e�a�t�"�)�,�l�!�=�=�t�h�i�s�.�_�t�D�u�r�&�&�l�|�|�t�h�i�s�.�_�t�T�i�m�e�!�=�=�l�|�|�(�t�<�0�&�&�t�h�i�s�.�_�s�t�a�r�t�A�t�&�&�!�t�h�i�s�.�_�o�n�U�p�d�a�t�e�&�&�t�h�i�s�.�_�s�t�a�r�t�A�t�.�r�e�n�d�e�r�(�t�,�!�0�,�!�0�)�,�!�t�&�&�a�|�|�!�(�l�=�=�=�t�h�i�s�.�_�t�D�u�r�&�&�0�<�t�h�i�s�.�_�t�s�|�|�!�l�&�&�t�h�i�s�.�_�t�s�<�0�)�|�|�z�(�t�h�i�s�,�1�)�,�e�|�|�t�<�0�&�&�!�s�|�|�!�l�&�&�!�s�|�|�(�_�(�t�h�i�s�,�l�=�=�=�r�?�"�o�n�C�o�m�p�l�e�t�e�"�:�"�o�n�R�e�v�e�r�s�e�C�o�m�p�l�e�t�e�"�,�!�0�)�,�!�t�h�i�s�.�_�p�r�o�m�|�|�l�<�r�&�&�0�<�t�h�i�s�.�t�i�m�e�S�c�a�l�e�(�)�|�|�t�h�i�s�.�_�p�r�o�m�(�)�)�)�}�}�e�l�s�e�{�v�a�r� �c�,�d�,�u�=�t�h�i�s�,�h�=�t�,�p�=�e�,�f�=�i�,�m�=�u�.�r�a�t�i�o�,�g�=�h�<�0�|�|�!�h�&�&�(�!�u�.�_�s�t�a�r�t�&�&�k�(�u�)�&�&�(�u�.�_�i�n�i�t�t�e�d�|�|�!�o�t�(�u�)�)�|�|�(�u�.�_�t�s�<�0�|�|�u�.�_�d�p�.�_�t�s�<�0�)�&�&�!�o�t�(�u�)�)�?�0�:�1�,�v�=�u�.�_�r�D�e�l�a�y�,�y�=�0�;�i�f�(�v�&�&�u�.�_�r�e�p�e�a�t�&�&�(�y�=�l�t�(�0�,�u�.�_�t�D�u�r�,�h�)�,�d�=�T�(�y�,�v�)�,�u�.�_�y�o�y�o�&�&�1�&�d�&�&�(�g�=�1�-�g�)�,�d�!�=�=�T�(�u�.�_�t�T�i�m�e�,�v�)�&�&�(�m�=�1�-�g�,�u�.�v�a�r�s�.�r�e�p�e�a�t�R�e�f�r�e�s�h�&�&�u�.�_�i�n�i�t�t�e�d�&�&�u�.�i�n�v�a�l�i�d�a�t�e�(�)�)�)�,�g�!�=�=�m�|�|�f�|�|�u�.�_�z�T�i�m�e�=�=�=�H�|�|�!�h�&�&�u�.�_�z�T�i�m�e�)�{�i�f�(�u�.�_�i�n�i�t�t�e�d�|�|�!�C�(�u�,�h�,�f�,�p�)�)�{�f�o�r�(�d�=�u�.�_�z�T�i�m�e�,�u�.�_�z�T�i�m�e�=�h�|�|�(�p�?�H�:�0�)�,�p�=�p�|�|�h�&�&�!�d�,�u�.�r�a�t�i�o�=�g�,�u�.�_�f�r�o�m�&�&�(�g�=�1�-�g�)�,�u�.�_�t�i�m�e�=�0�,�u�.�_�t�T�i�m�e�=�y�,�c�=�u�.�_�p�t�;�c�;�)�c�.�r�(�g�,�c�.�d�)�,�c�=�c�.�_�n�e�x�t�;�u�.�_�s�t�a�r�t�A�t�&�&�h�<�0�&�&�u�.�_�s�t�a�r�t�A�t�.�r�e�n�d�e�r�(�h�,�!�0�,�!�0�)�,�u�.�_�o�n�U�p�d�a�t�e�&�&�!�p�&�&�_�(�u�,�"�o�n�U�p�d�a�t�e�"�)�,�y�&�&�u�.�_�r�e�p�e�a�t�&�&�!�p�&�&�u�.�p�a�r�e�n�t�&�&�_�(�u�,�"�o�n�R�e�p�e�a�t�"�)�,�(�h�>�=�u�.�_�t�D�u�r�|�|�h�<�0�)�&�&�u�.�r�a�t�i�o�=�=�=�g�&�&�(�g�&�&�z�(�u�,�1�)�,�p�|�|�(�_�(�u�,�g�?�"�o�n�C�o�m�p�l�e�t�e�"�:�"�o�n�R�e�v�e�r�s�e�C�o�m�p�l�e�t�e�"�,�!�0�)�,�u�.�_�p�r�o�m�&�&�u�.�_�p�r�o�m�(�)�)�)�}�}�e�l�s�e� �u�.�_�z�T�i�m�e�|�|�(�u�.�_�z�T�i�m�e�=�h�)�}�r�e�t�u�r�n� �t�h�i�s�}�,�e�.�t�a�r�g�e�t�s�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�t�a�r�g�e�t�s�}�,�e�.�i�n�v�a�l�i�d�a�t�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�_�p�t�=�t�h�i�s�.�_�o�p�=�t�h�i�s�.�_�s�t�a�r�t�A�t�=�t�h�i�s�.�_�o�n�U�p�d�a�t�e�=�t�h�i�s�.�_�l�a�z�y�=�t�h�i�s�.�r�a�t�i�o�=�0�,�t�h�i�s�.�_�p�t�L�o�o�k�u�p�=�[�]�,�t�h�i�s�.�t�i�m�e�l�i�n�e�&�&�t�h�i�s�.�t�i�m�e�l�i�n�e�.�i�n�v�a�l�i�d�a�t�e�(�)�,�n�i�.�p�r�o�t�o�t�y�p�e�.�i�n�v�a�l�i�d�a�t�e�.�c�a�l�l�(�t�h�i�s�)�}�,�e�.�k�i�l�l�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�v�o�i�d� �0�=�=�=�e�&�&�(�e�=�"�a�l�l�"�)�,�!�(�t�|�|�e�&�&�"�a�l�l�"�!�=�=�e�)�)�r�e�t�u�r�n� �t�h�i�s�.�_�l�a�z�y�=�t�h�i�s�.�_�p�t�=�0�,�t�h�i�s�.�p�a�r�e�n�t�?�w�t�(�t
1�h�i�s�)�:�t�h�i�s�;�i�f�(�t�h�i�s�.�t�i�m�e�l�i�n�e�)�r�e�t�u�r�n� �h�=�t�h�i�s�.�t�i�m�e�l�i�n�e�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�,�t�h�i�s�.�t�i�m�e�l�i�n�e�.�k�i�l�l�T�w�e�e�n�s�O�f�(�t�,�e�,�i�i�&�&�!�0�!�=�=�i�i�.�v�a�r�s�.�o�v�e�r�w�r�i�t�e�)�.�_�f�i�r�s�t�|�|�w�t�(�t�h�i�s�)�,�t�h�i�s�.�p�a�r�e�n�t�&�&�h�!�=�=�t�h�i�s�.�t�i�m�e�l�i�n�e�.�t�o�t�a�l�D�u�r�a�t�i�o�n�(�)�&�&�s�t�(�t�h�i�s�,�t�h�i�s�.�_�d�u�r�*�t�h�i�s�.�t�i�m�e�l�i�n�e�.�_�t�D�u�r�/�h�,�0�,�1�)�,�t�h�i�s�;�v�a�r� �i�,�n�,�o�,�s�,�r�,�a�,�l�,�c�=�t�h�i�s�.�_�t�a�r�g�e�t�s�,�d�=�t�?�L�(�t�)�:�c�,�u�=�t�h�i�s�.�_�p�t�L�o�o�k�u�p�,�h�=�t�h�i�s�.�_�p�t�;�i�f�(�(�!�e�|�|�"�a�l�l�"�=�=�=�e�)�&�&�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�t�.�l�e�n�g�t�h�,�n�=�i�=�=�=�e�.�l�e�n�g�t�h�;�n�&�&�i�-�-�&�&�t�[�i�]�=�=�=�e�[�i�]�;�)�;�r�e�t�u�r�n� �i�<�0�}�(�c�,�d�)�)�r�e�t�u�r�n�"�a�l�l�"�=�=�=�e�&�&�(�t�h�i�s�.�_�p�t�=�0�)�,�w�t�(�t�h�i�s�)�;�f�o�r�(�i�=�t�h�i�s�.�_�o�p�=�t�h�i�s�.�_�o�p�|�|�[�]�,�"�a�l�l�"�!�=�=�e�&�&�(�B�(�e�)�&�&�(�r�=�{�}�,�p�(�e�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �r�[�t�]�=�1�}�)�,�e�=�r�)�,�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�,�s�,�t�=�t�[�0�]�?�S�e�(�t�[�0�]�)�.�h�a�r�n�e�s�s�:�0�,�r�=�t�&�&�t�.�a�l�i�a�s�e�s�;�i�f�(�!�r�)�r�e�t�u�r�n� �e�;�f�o�r�(�n� �i�n� �i�=�J�(�{�}�,�e�)�,�r�)�i�f�(�n� �i�n� �i�)�f�o�r�(�o�=�(�s�=�r�[�n�]�.�s�p�l�i�t�(�"�,�"�)�)�.�l�e�n�g�t�h�;�o�-�-�;�)�i�[�s�[�o�]�]�=�i�[�n�]�;�r�e�t�u�r�n� �i�}�(�c�,�e�)�)�,�l�=�c�.�l�e�n�g�t�h�;�l�-�-�;�)�i�f�(�~�d�.�i�n�d�e�x�O�f�(�c�[�l�]�)�)�f�o�r�(�r� �i�n� �n�=�u�[�l�]�,�"�a�l�l�"�=�=�=�e�?�(�i�[�l�]�=�e�,�s�=�n�,�o�=�{�}�)�:�(�o�=�i�[�l�]�=�i�[�l�]�|�|�{�}�,�s�=�e�)�,�s�)�(�a�=�n�&�&�n�[�r�]�)�&�&�(�"�k�i�l�l�"�i�n� �a�.�d�&�&�!�0�!�=�=�a�.�d�.�k�i�l�l�(�r�)�|�|�k�e�(�t�h�i�s�,�a�,�"�_�p�t�"�)�,�d�e�l�e�t�e� �n�[�r�]�)�,�"�a�l�l�"�!�=�=�o�&�&�(�o�[�r�]�=�1�)�;�r�e�t�u�r�n� �t�h�i�s�.�_�i�n�i�t�t�e�d�&�&�!�t�h�i�s�.�_�p�t�&�&�h�&�&�w�t�(�t�h�i�s�)�,�t�h�i�s�}�,�o�.�t�o�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �n�e�w� �o�(�t�,�e�,�a�r�g�u�m�e�n�t�s�[�2�]�)�}�,�o�.�f�r�o�m�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �a�t�(�1�,�a�r�g�u�m�e�n�t�s�)�}�,�o�.�d�e�l�a�y�e�d�C�a�l�l�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�r�e�t�u�r�n� �n�e�w� �o�(�e�,�0�,�{�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�:�!�1�,�l�a�z�y�:�!�1�,�o�v�e�r�w�r�i�t�e�:�!�1�,�d�e�l�a�y�:�t�,�o�n�C�o�m�p�l�e�t�e�:�e�,�o�n�R�e�v�e�r�s�e�C�o�m�p�l�e�t�e�:�e�,�o�n�C�o�m�p�l�e�t�e�P�a�r�a�m�s�:�i�,�o�n�R�e�v�e�r�s�e�C�o�m�p�l�e�t�e�P�a�r�a�m�s�:�i�,�c�a�l�l�b�a�c�k�S�c�o�p�e�:�n�}�)�}�,�o�.�f�r�o�m�T�o�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �a�t�(�2�,�a�r�g�u�m�e�n�t�s�)�}�,�o�.�s�e�t�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�d�u�r�a�t�i�o�n�=�0�,�e�.�r�e�p�e�a�t�D�e�l�a�y�|�|�(�e�.�r�e�p�e�a�t�=�0�)�,�n�e�w� �o�(�t�,�e�)�}�,�o�.�k�i�l�l�T�w�e�e�n�s�O�f�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �R�.�k�i�l�l�T�w�e�e�n�s�O�f�(�t�,�e�,�i�)�}�,�o�)�;�f�u�n�c�t�i�o�n� �o�(�t�,�e�,�i�,�n�)�{�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �e�&�&�(�i�.�d�u�r�a�t�i�o�n�=�e�,�e�=�i�,�i�=�n�u�l�l�)�;�v�a�r� �o�,�s�,�r�,�a�,�l�,�c�,�d�,�u�,�h�,�n�=�(�o�=�n�i�.�c�a�l�l�(�t�h�i�s�,�n�?�e�:�e�t�(�e�)�)�|�|�t�h�i�s�)�.�v�a�r�s�,�p�=�n�.�d�u�r�a�t�i�o�n�,�f�=�n�.�d�e�l�a�y�,�m�=�n�.�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�,�g�=�n�.�s�t�a�g�g�e�r�,�v�=�n�.�o�v�e�r�w�r�i�t�e�,�y�=�n�.�k�e�y�f�r�a�m�e�s�,�w�=�n�.�d�e�f�a�u�l�t�s�,�b�=�n�.�s�c�r�o�l�l�T�r�i�g�g�e�r�,�_�=�n�.�y�o�y�o�E�a�s�e�,�n�=�e�.�p�a�r�e�n�t�|�|�R�,�T�=�(�$�(�t�)�|�|�s�e�(�t�)�?�O�(�t�[�0�]�)�:�"�l�e�n�g�t�h�"�i�n� �e�)�?�[�t�]�:�L�(�t�)�;�i�f�(�o�.�_�t�a�r�g�e�t�s�=�T�.�l�e�n�g�t�h�?�T�e�(�T�)�:�Z�(�"�G�S�A�P� �t�a�r�g�e�t� �"�+�t�+�"� �n�o�t� �f�o�u�n�d�.� �h�t�t�p�s�:�/�/�g�r�e�e�n�s�o�c�k�.�c�o�m�"�,�!�N�.�n�u�l�l�T�a�r�g�e�t�W�a�r�n�)�|�|�[�]�,�o�.�_�p�t�L�o�o�k�u�p�=�[�]�,�o�.�_�o�v�e�r�w�r�i�t�e�=�v�,�y�|�|�g�|�|�K�(�p�)�|�|�K�(�f�)�)�{�i�f�(�e�=�o�.�v�a�r�s�,�(�s�=�o�.�t�i�m�e�l�i�n�e�=�n�e�w� �U�(�{�d�a�t�a�:�"�n�e�s�t�e�d�"�,�d�e�f�a�u�l�t�s�:�w�|�|�{�}�}�)�)�.�k�i�l�l�(�)�,�s�.�p�a�r�e�n�t�=�s�.�_�d�p�=�E�(�o�)�,�s�.�_�s�t�a�r�t�=�0�,�g�|�|�K�(�p�)�|�|�K�(�f�)�)�{�i�f�(�l�=�T�.�l�e�n�g�t�h�,�u�=�g�&�&�c�t�(�g�)�,�D�(�g�)�)�f�o�r�(�c� �i�n� �g�)�~�a�i�.�i�n�d�e�x�O�f�(�c�)�&�&�(�(�h�=�h�|�|�{�}�)�[�c�]�=�g�[�c�]�)�;�f�o�r�(�r�=�0�;�r�<�l�;�r�+�+�)�(�a�=�t�t�(�e�,�l�i�)�)�.�s�t�a�g�g�e�r�=�0�,�_�&�&�(�a�.�y�o�y�o�E�a�s�e�=�_�)�,�h�&�&�J�(�a�,�h�)�,�d�=�T�[�r�]�,�a�.�d�u�r�a�t�i�o�n�=�+�r�i�(�p�,�E�(�o�)�,�r�,�d�,�T�)�,�
1a�.�d�e�l�a�y�=�(�+�r�i�(�f�,�E�(�o�)�,�r�,�d�,�T�)�|�|�0�)�-�o�.�_�d�e�l�a�y�,�!�g�&�&�1�=�=�=�l�&�&�a�.�d�e�l�a�y�&�&�(�o�.�_�d�e�l�a�y�=�f�=�a�.�d�e�l�a�y�,�o�.�_�s�t�a�r�t�+�=�f�,�a�.�d�e�l�a�y�=�0�)�,�s�.�t�o�(�d�,�a�,�u�?�u�(�r�,�d�,�T�)�:�0�)�,�s�.�_�e�a�s�e�=�V�.�n�o�n�e�;�s�.�d�u�r�a�t�i�o�n�(�)�?�p�=�f�=�0�:�o�.�t�i�m�e�l�i�n�e�=�0�}�e�l�s�e� �i�f�(�y�)�{�e�t�(�P�(�s�.�v�a�r�s�.�d�e�f�a�u�l�t�s�,�{�e�a�s�e�:�"�n�o�n�e�"�}�)�)�,�s�.�_�e�a�s�e�=�U�e�(�y�.�e�a�s�e�|�|�e�.�e�a�s�e�|�|�"�n�o�n�e�"�)�;�v�a�r� �S�,�x�,�C�,�k�=�0�;�i�f�(�$�(�y�)�)�y�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �s�.�t�o�(�T�,�t�,�"�>�"�)�}�)�;�e�l�s�e�{�f�o�r�(�c� �i�n� �a�=�{�}�,�y�)�"�e�a�s�e�"�!�=�=�c�&�&�"�e�a�s�e�E�a�c�h�"�!�=�=�c�&�&�f�u�n�c�t�i�o�n�(�t�,�i�,�e�,�n�)�{�v�a�r� �o�,�s�,�r�=�i�.�e�a�s�e�|�|�n�|�|�"�p�o�w�e�r�1�.�i�n�O�u�t�"�;�i�f�(�$�(�i�)�)�s�=�e�[�t�]�|�|�(�e�[�t�]�=�[�]�)�,�i�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �s�.�p�u�s�h�(�{�t�:�e�/�(�i�.�l�e�n�g�t�h�-�1�)�*�1�0�0�,�v�:�t�,�e�:�r�}�)�}�)�;�e�l�s�e� �f�o�r�(�o� �i�n� �i�)�s�=�e�[�o�]�|�|�(�e�[�o�]�=�[�]�)�,�"�e�a�s�e�"�!�=�=�o�&�&�s�.�p�u�s�h�(�{�t�:�p�a�r�s�e�F�l�o�a�t�(�t�)�,�v�:�i�[�o�]�,�e�:�r�}�)�}�(�c�,�y�[�c�]�,�a�,�y�.�e�a�s�e�E�a�c�h�)�;�f�o�r�(�c� �i�n� �a�)�f�o�r�(�S�=�a�[�c�]�.�s�o�r�t�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�.�t�-�e�.�t�}�)�,�r�=�k�=�0�;�r�<�S�.�l�e�n�g�t�h�;�r�+�+�)�(�C�=�{�e�a�s�e�:�(�x�=�S�[�r�]�)�.�e�,�d�u�r�a�t�i�o�n�:�(�x�.�t�-�(�r�?�S�[�r�-�1�]�.�t�:�0�)�)�/�1�0�0�*�p�}�)�[�c�]�=�x�.�v�,�s�.�t�o�(�T�,�C�,�k�)�,�k�+�=�C�.�d�u�r�a�t�i�o�n�;�s�.�d�u�r�a�t�i�o�n�(�)�<�p�&�&�s�.�t�o�(�{�}�,�{�d�u�r�a�t�i�o�n�:�p�-�s�.�d�u�r�a�t�i�o�n�(�)�}�)�}�}�p�|�|�o�.�d�u�r�a�t�i�o�n�(�p�=�s�.�d�u�r�a�t�i�o�n�(�)�)�}�e�l�s�e� �o�.�t�i�m�e�l�i�n�e�=�0�;�r�e�t�u�r�n�!�0�!�=�=�v�|�|�A�t�|�|�(�i�i�=�E�(�o�)�,�R�.�k�i�l�l�T�w�e�e�n�s�O�f�(�T�)�,�i�i�=�0�)�,�A�(�n�,�E�(�o�)�,�i�)�,�e�.�r�e�v�e�r�s�e�d�&�&�o�.�r�e�v�e�r�s�e�(�)�,�e�.�p�a�u�s�e�d�&�&�o�.�p�a�u�s�e�d�(�!�0�)�,�(�m�|�|�!�p�&�&�!�y�&�&�o�.�_�s�t�a�r�t�=�=�=�F�(�n�.�_�t�i�m�e�)�&�&�M�(�m�)�&�&�i�t�(�E�(�o�)�)�&�&�"�n�e�s�t�e�d�"�!�=�=�n�.�d�a�t�a�)�&�&�(�o�.�_�t�T�i�m�e�=�-�H�,�o�.�r�e�n�d�e�r�(�M�a�t�h�.�m�a�x�(�0�,�-�f�)�)�)�,�b�&�&�n�t�(�E�(�o�)�,�b�)�,�o�}�P�(�Y�.�p�r�o�t�o�t�y�p�e�,�{�_�t�a�r�g�e�t�s�:�[�]�,�_�l�a�z�y�:�0�,�_�s�t�a�r�t�A�t�:�0�,�_�o�p�:�0�,�_�o�n�I�n�i�t�:�0�}�)�,�p�(�"�s�t�a�g�g�e�r�T�o�,�s�t�a�g�g�e�r�F�r�o�m�,�s�t�a�g�g�e�r�F�r�o�m�T�o�"�,�f�u�n�c�t�i�o�n�(�i�)�{�Y�[�i�]�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�n�e�w� �U�,�e�=�F�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�0�)�;�r�e�t�u�r�n� �e�.�s�p�l�i�c�e�(�"�s�t�a�g�g�e�r�F�r�o�m�T�o�"�=�=�=�i�?�5�:�4�,�0�,�0�)�,�t�[�i�]�.�a�p�p�l�y�(�t�,�e�)�}�}�)�;�f�u�n�c�t�i�o�n� �c�i�(�t�,�e�)�{�v�a�r� �i�=�e�.�_�p�t�,�n�=�"�"�;�i�f�(�!�t�&�&�e�.�b�)�n�=�e�.�b�;�e�l�s�e� �i�f�(�1�=�=�=�t�&�&�e�.�e�)�n�=�e�.�e�;�e�l�s�e�{�f�o�r�(�;�i�;�)�n�=�i�.�p�+�(�i�.�m�?�i�.�m�(�i�.�s�+�i�.�c�*�t�)�:�M�a�t�h�.�r�o�u�n�d�(�1�e�4�*�(�i�.�s�+�i�.�c�*�t�)�)�/�1�e�4�)�+�n�,�i�=�i�.�_�n�e�x�t�;�n�+�=�e�.�c�}�e�.�s�e�t�(�e�.�t�,�e�.�p�,�n�,�e�)�}�f�u�n�c�t�i�o�n� �d�i�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�e�.�_�p�t�;�i�;�)�i�.�r�(�t�,�i�.�d�)�,�i�=�i�.�_�n�e�x�t�}�f�u�n�c�t�i�o�n� �u�i�(�t�,�e�,�i�,�n�)�{�f�o�r�(�v�a�r� �o�,�s�=�t�h�i�s�.�_�p�t�;�s�;�)�o�=�s�.�_�n�e�x�t�,�s�.�p�=�=�=�n�&�&�s�.�m�o�d�i�f�i�e�r�(�t
1�,�e�,�i�)�,�s�=�o�}�f�u�n�c�t�i�o�n� �h�i�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�=�t�h�i�s�.�_�p�t�;�n�;�)�i�=�n�.�_�n�e�x�t�,�n�.�p�=�=�=�t�&�&�!�n�.�o�p�|�|�n�.�o�p�=�=�=�t�?�k�e�(�t�h�i�s�,�n�,�"�_�p�t�"�)�:�n�.�d�e�p�|�|�(�e�=�1�)�,�n�=�i�;�r�e�t�u�r�n�!�e�}�f�u�n�c�t�i�o�n� �p�i�(�t�,�e�,�i�,�n�)�{�n�.�m�S�e�t�(�t�,�e�,�n�.�m�.�c�a�l�l�(�n�.�t�w�e�e�n�,�i�,�n�.�m�t�)�,�n�)�}�f�u�n�c�t�i�o�n� �f�i�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�,�o�,�s�=�t�.�_�p�t�;�s�;�)�{�f�o�r�(�e�=�s�.�_�n�e�x�t�,�i�=�n�;�i�&�&�i�.�p�r�>�s�.�p�r�;�)�i�=�i�.�_�n�e�x�t�;�(�s�.�_�p�r�e�v�=�i�?�i�.�_�p�r�e�v�:�o�)�?�s�.�_�p�r�e�v�.�_�n�e�x�t�=�s�:�n�=�s�,�(�s�.�_�n�e�x�t�=�i�)�?�i�.�_�p�r�e�v�=�s�:�o�=�s�,�s�=�e�}�t�.�_�p�t�=�n�}�v�a�r� �m�i�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�[�e�]�=�i�}�,�g�i�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�[�e�]�(�i�)�}�,�v�i�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�r�e�t�u�r�n� �t�[�e�]�(�n�.�f�p�,�i�)�}�,�y�i�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�e�,�i�)�}�,�w�i�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �u�(�t�[�e�]�)�?�g�i�:�o�e�(�t�[�e�]�)�&�&�t�.�s�e�t�A�t�t�r�i�b�u�t�e�?�y�i�:�m�i�}�,�b�i�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�s�e�t�(�e�.�t�,�e�.�p�,�M�a�t�h�.�r�o�u�n�d�(�1�e�6�*�(�e�.�s�+�e�.�c�*�t�)�)�/�1�e�6�,�e�)�}�,�_�i�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�s�e�t�(�e�.�t�,�e�.�p�,�!�!�(�e�.�s�+�e�.�c�*�t�)�,�e�)�}�,�Q�=�(�T�i�.�p�r�o�t�o�t�y�p�e�.�m�o�d�i�f�i�e�r�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�t�h�i�s�.�m�S�e�t�=�t�h�i�s�.�m�S�e�t�|�|�t�h�i�s�.�s�e�t�,�t�h�i�s�.�s�e�t�=�p�i�,�t�h�i�s�.�m�=�t�,�t�h�i�s�.�m�t�=�i�,�t�h�i�s�.�t�w�e�e�n�=�e�}�,�T�i�)�;�f�u�n�c�t�i�o�n� �T�i�(�t�,�e�,�i�,�n�,�o�,�s�,�r�,�a�,�l�)�{�t�h�i�s�.�t�=�e�,�t�h�i�s�.�s�=�n�,�t�h�i�s�.�c�=�o�,�t�h�i�s�.�p�=�i�,�t�h�i�s�.�r�=�s�|�|�b�i�,�t�h�i�s�.�d�=�r�|�|�t�h�i�s�,�t�h�i�s�.�s�e�t�=�a�|�|�m�i�,�t�h�i�s�.�p�r�=�l�|�|�0�,�(�t�h�i�s�.�_�n�e�x�t�=�t�)�&�&�(�t�.�_�p�r�e�v�=�t�h�i�s�)�}�p�(�_�e�+�"�p�a�r�e�n�t�,�d�u�r�a�t�i�o�n�,�e�a�s�e�,�d�e�l�a�y�,�o�v�e�r�w�r�i�t�e�,�r�u�n�B�a�c�k�w�a�r�d�s�,�s�t�a�r�t�A�t�,�y�o�y�o�,�i�m�m�e�d�i�a�t�e�R�e�n�d�e�r�,�r�e�p�e�a�t�,�r�e�p�e�a�t�D�e�l�a�y�,�d�a�t�a�,�p�a�u�s�e�d�,�r�e�v�e�r�s�e�d�,�l�a�z�y�,�c�a�l�l�b�a�c�k�S�c�o�p�e�,�s�t�r�i�n�g�F�i�l�t�e�r�,�i�d�,�y�o�y�o�E�a�s�e�,�s�t�a�g�g�e�r�,�i�n�h�e�r�i�t�,�r�e�p�e�a�t�R�e�f�r�e�s�h�,�k�e�y�f�r�a�m�e�s�,�a�u�t�o�R�e�v�e�r�t�,�s�c�r�o�l�l�T�r�i�g�g�e�r�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �m�e�[�t�]�=�1�}�)�,�r�.�T�w�e�e�n�M�a�x�=�r�.�T�w�e�e�n�L�i�t�e�=�Y�,�r�.�T�i�m�e�l�i�n�e�L�i�t�e�=�r�.�T�i�m�e�l�i�n�e�M�a�x�=�U�,�R�=�n�e�w� �U�(�{�s�o�r�t�C�h�i�l�d�r�e�n�:�!�1�,�d�e�f�a�u�l�t�s�:�K�t�,�a�u�t�o�R�e�m�o�v�e�C�h�i�l�d�r�e�n�:�!�0�,�i�d�:�"�r�o�o�t�"�,�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�:�!�0�}�)�,�N�.�s�t�r�i�n�g�F�i�l�t�e�r�=�T�t�;�f�u�n�c�t�i�o�n� �S�i�(�t�,�d�)�{�r�e�t�u�r�n�{�n�a�m�e�:�t�,�r�a�w�V�a�r�s�:�1�,�i�n�i�t�:�f�u�n�c�t�i�o�n�(�t�,�c�,�e�)�{�e�.�_�o�n�I�n�i�t�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�;�i�f�(�B�(�c�)�&�&�(�e�=�{�}�,�p�(�c�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�[�t�]�=�1�}�)�,�c�=�e�)�,�d�)�{�f�o�r�(�i� �i�n� �e�=�{�}�,�c�)�e�[�i�]�=�d�(�c�[�i�]�)�;�c�=�e�}
1�v�a�r� �n�,�o�,�s�,�r�=�t�,�a�=�c�,�l�=�r�.�_�t�a�r�g�e�t�s�;�f�o�r�(�n� �i�n� �a�)�f�o�r�(�o�=�l�.�l�e�n�g�t�h�;�o�-�-�;�)�(�s�=�(�s�=�r�.�_�p�t�L�o�o�k�u�p�[�o�]�[�n�]�)�&�&�s�.�d�)�&�&�(�s�=�s�.�_�p�t�?�e�n�(�s�,�n�)�:�s�)�&�&�s�.�m�o�d�i�f�i�e�r�&�&�s�.�m�o�d�i�f�i�e�r�(�a�[�n�]�,�r�,�l�[�o�]�,�n�)�}�}�}�}�f�u�n�c�t�i�o�n� �x�i�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�s�e�t�(�e�.�t�,�e�.�p�,�M�a�t�h�.�r�o�u�n�d�(�1�e�4�*�(�e�.�s�+�e�.�c�*�t�)�)�/�1�e�4�+�e�.�u�,�e�)�}�f�u�n�c�t�i�o�n� �C�i�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�s�e�t�(�e�.�t�,�e�.�p�,�1�=�=�=�t�?�e�.�e�:�M�a�t�h�.�r�o�u�n�d�(�1�e�4�*�(�e�.�s�+�e�.�c�*�t�)�)�/�1�e�4�+�e�.�u�,�e�)�}�f�u�n�c�t�i�o�n� �k�i�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�s�e�t�(�e�.�t�,�e�.�p�,�t�?�M�a�t�h�.�r�o�u�n�d�(�1�e�4�*�(�e�.�s�+�e�.�c�*�t�)�)�/�1�e�4�+�e�.�u�:�e�.�b�,�e�)�}�f�u�n�c�t�i�o�n� �E�i�(�t�,�e�)�{�t�=�e�.�s�+�e�.�c�*�t�,�e�.�s�e�t�(�e�.�t�,�e�.�p�,�~�~�(�t�+�(�t�<�0�?�-�.�5�:�.�5�)�)�+�e�.�u�,�e�)�}�f�u�n�c�t�i�o�n� �A�i�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�s�e�t�(�e�.�t�,�e�.�p�,�t�?�e�.�e�:�e�.�b�,�e�)�}�f�u�n�c�t�i�o�n� �O�i�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�s�e�t�(�e�.�t�,�e�.�p�,�1�!�=�=�t�?�e�.�b�:�e�.�e�,�e�)�}�f�u�n�c�t�i�o�n� �D�i�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�.�s�t�y�l�e�[�e�]�=�i�}�f�u�n�c�t�i�o�n� �$�i�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�.�s�t�y�l�e�.�s�e�t�P�r�o�p�e�r�t�y�(�e�,�i�)�}�f�u�n�c�t�i�o�n� �F�i�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�.�_�g�s�a�p�[�e�]�=�i�}�f�u�n�c�t�i�o�n� �I�i�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�.�_�g�s�a�p�.�s�c�a�l�e�X�=�t�.�_�g�s�a�p�.�s�c�a�l�e�Y�=�i�}�f�u�n�c�t�i�o�n� �L�i�(�t�,�e�,�i�,�n�,�o�)�{�(�t�=�t�.�_�g�s�a�p�)�.�s�c�a�l�e�X�=�t�.�s�c�a�l�e�Y�=�i�,�t�.�r�e�n�d�e�r�T�r�a�n�s�f�o�r�m�(�o�,�t�)�}�f�u�n�c�t�i�o�n� �M�i�(�t�,�e�,�i�,�n�,�o�)�{�(�t�=�t�.�_�g�s�a�p�)�[�e�]�=�i�,�t�.�r�e�n�d�e�r�T�r�a�n�s�f�o�r�m�(�o�,�t�)�}�f�u�n�c�t�i�o�n� �P�i�(�)�{�b�n�(�)�&�&�w�i�n�d�o�w�.�d�o�c�u�m�e�n�t�&�&�(�U�i�=�w�i�n�d�o�w�,�Y�i�=�U�i�.�d�o�c�u�m�e�n�t�,�Q�i�=�Y�i�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�X�i�=�D�n�(�"�d�i�v�"�)�|�|�{�s�t�y�l�e�:�{�}�}�,�D�n�(�"�d�i�v�"�)�,�G�=�F�n�(�G�)�,�O�n�=�G�+�"�O�r�i�g�i�n�"�,�X�i�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�"�b�o�r�d�e�r�-�w�i�d�t�h�:�0�;�l�i�n�e�-�h�e�i�g�h�t�:�0�;�p�o�s�i�t�i�o�n�:�a�b�s�o�l�u�t�e�;�p�a�d�d�i�n�g�:�0�"�,�Z�i�=�!�!�F�n�(�"�p�e�r�s�p�e�c�t�i�v�e�"�)�,�G�i�=�1�)�}�f�u�n�c�t�i�o�n� �z�i�(�t�)�{�v�a�r� �e�,�i�=�D�n�(�"�s�v�g�"�,�t�h�i�s�.�o�w�n�e�r�S�V�G�E�l�e�m�e�n�t�&�&�t�h�i�s�.�o�w�n�e�r�S�V�G�E�l�e�m�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�x�m�l�n�s�"�)�|�|�"�h�t�t�p�:�/�/�w�w�w�.�w�3�.�o�r�g�/�2�0�0�0�/�s�v�g�"�)�,�n�=�t�h�i�s�.�p�a�r�e�n�t�N�o�d�e�,�o�=�t�h�i�s�.�n�e�x�t�S�i�b�l�i�n�g�,�s�=�t�h�i�s�.�s�t�y�l�e�.�c�s�s�T�e�x�t�;�i�f�(�Q�i�.�a�p�p�e�n�d�C�h�i�l�d�(�i�)�,�i�.�a�p�p�e�n�d�C�h�i�l�d�(�t�h�i�s�)�,�t�h�i�s�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�"�b�l�o�c�k�"�,�t�)�t�r�y�{�e�=�t�h�i�s�.�g�e�t�B�B�o�x�(�)�,�t�h�i�s�.�_�g�s�a�p�B�B�o�x�=�t�h�i�s�.�g�e�t�B�B�o�x�,�t�h�i�s�.�g�e�t�B�B�o�x�=�z�i�}�c�a�t�c�h�(�t�)�{�}�e�l�s�e� �t�h�i�s�.�_�g�s�a�p�B�B�o�x�&�&�(�e�=�t�h�i�s�.�_�g�s�a�p�B�B�o�x�(�)�)�;�r�e�t�u�r�n� �n�&�&�(�o�?�n�.�i�n�s�e�r�t�B�e�f�o�r�e�(�t�h�i�s�,�o�)�:�n�.�a�p�p�e�n�d�C�h�i�l�d�(�t�h�i�s�)�)�,�Q�i�.�r�e�m�o�v�e�C�h�i�l�d�(�i�)�,�t�h�i�s�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�s�,�e�}�f�u�n�c�t�i�o�n� �R�i�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�e�.�l�e�n�g�t�h�;�i�-�-�;�)�i�f�(�t�.�h�a�s�A�t�t�r�i�b�u�t�e�(�e�[�i�]�)�)�r�e�t�u�r�n� �t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�e�[�i�]�)�}�f�u�n�c�t�i�o�n� �N�i�(�t�,�e�,�i�,�n�)�{�v�a�r� �o�;�r�e�t�u�r�n� �G�i�|�|�P�i�(�)�,�e� �i�n� �A�n�&�&�"�t�r�a�n�s�f�o�r�m�"�!�=�=�e�&�&�~�(�e�=�A�n�[�e�]�)�.�i�n�d�e�x�O�f�(�"�,�"�)�&�&�(�e�=�e�.�s�p�l�i�t�(�"�,�"�)�[�0�]�)�,�_�n�[�e�]�&�&�"�t�r�a�n�s�f�o�r�m�"�!�=�=�e�?�(�o�=�V�n�(�t�,�n�)�,�o�=�"�t�r�a�n�s�f�o�r�m�O�r�i�g�i�n�"�!�=�=�e�?�o�[�e�]�:�o�.�s�v�g�?�o�.�o�r�i�g�i�n�:�U�n�(�X�(�t�,�O�n�)�)�+�"� �"�+�o�.�z�O�r�i�g�i�n�+�"�p�x�"�)�:�(�o�=�t�.�s�t�y�l�e�[�e�]�)�&�&�"�a�u�t�o�"�!�=�=�o�&�&�!�n�&�&�!�~�(�o�+�"�"�)�.�i�n�d�e�x�O�f�(�"�c�a�l�c�(�"�)�|�|�(�o�=�j�n�[�e�]�&�&�j�n�[�e�]�(�t�,�e�,�i�)�|�|�X�(�t�,�e�)�|�|�x�e�(�t�,�e�)�|�|�(�"�o�p�a�c�i�t�y�"�=�=�=�e�?�1�:�0�)�)�,�i�&�&�!�~�(�o�+�"�"�)�.�t�r�i�m�(�)�.�i�n�d�e�x�O�f�(�"� �"�)�?�R�n�(�t�,�e�,�o�,�i�)�+�i�:�o�}�f�u�n�c�t�i�o�n� �j�i�(�t�,�e�,�i�,�n�)�{�i�&�&�"�n�o�n�e�"�!�=�=�i�|�|�(�(�o�=�(�s�=�F�n�(�e�,�t�,�1�)�)�&�&�X�(�t�,�s�,�1�)�)�&�&�o�!�=�=�i�?�(�e�=�s�,�i�=�o�)�:�"�b�o�r�d�e�r�C�o�l�o�r�"�=�=�=�e�&�&�(�i�=�X�(�t�,�"�b�o�r�d�e�r�T�o�p�C�o�l�o�r�"�)�)�)�;�v�a�r� �o�,�s�,�r�,�a�,�l�,�c�,�d�,�u�,�h�,�p�,�f�,�m�=�n�e�w� �Q�(�t�h�i�s�.�_�p�t�,�t�.�s�t�y�l�e�,�e�,�0�,�1�,�c�i�)�,�g�=�0�,�v�=�0�;
1�i�f�(�m�.�b�=�i�,�m�.�e�=�n�,�i�+�=�"�"�,�"�a�u�t�o�"�=�=�=�(�n�+�=�"�"�)�&�&�(�t�.�s�t�y�l�e�[�e�]�=�n�,�n�=�X�(�t�,�e�)�|�|�n�,�t�.�s�t�y�l�e�[�e�]�=�i�)�,�T�t�(�s�=�[�i�,�n�]�)�,�n�=�s�[�1�]�,�r�=�(�i�=�s�[�0�]�)�.�m�a�t�c�h�(�l�e�)�|�|�[�]�,�(�n�.�m�a�t�c�h�(�l�e�)�|�|�[�]�)�.�l�e�n�g�t�h�)�{�f�o�r�(�;�u�=�l�e�.�e�x�e�c�(�n�)�;�)�h�=�u�[�0�]�,�u�=�n�.�s�u�b�s�t�r�i�n�g�(�g�,�u�.�i�n�d�e�x�)�,�l�?�l�=�(�l�+�1�)�%�5�:�"�r�g�b�a�(�"�!�=�=�u�.�s�u�b�s�t�r�(�-�5�)�&�&�"�h�s�l�a�(�"�!�=�=�u�.�s�u�b�s�t�r�(�-�5�)�|�|�(�l�=�1�)�,�h�!�=�=�(�c�=�r�[�v�+�+�]�|�|�"�"�)�&�&�(�a�=�p�a�r�s�e�F�l�o�a�t�(�c�)�|�|�0�,�p�=�c�.�s�u�b�s�t�r�(�(�a�+�"�"�)�.�l�e�n�g�t�h�)�,�(�f�=�"�=�"�=�=�=�h�.�c�h�a�r�A�t�(�1�)�?�+�(�h�.�c�h�a�r�A�t�(�0�)�+�"�1�"�)�:�0�)�&�&�(�h�=�h�.�s�u�b�s�t�r�(�2�)�)�,�d�=�p�a�r�s�e�F�l�o�a�t�(�h�)�,�h�=�h�.�s�u�b�s�t�r�(�(�d�+�"�"�)�.�l�e�n�g�t�h�)�,�g�=�l�e�.�l�a�s�t�I�n�d�e�x�-�h�.�l�e�n�g�t�h�,�h�|�|�(�h�=�h�|�|�N�.�u�n�i�t�s�[�e�]�|�|�p�,�g�=�=�=�n�.�l�e�n�g�t�h�&�&�(�n�+�=�h�,�m�.�e�+�=�h�)�)�,�p�!�=�=�h�&�&�(�a�=�R�n�(�t�,�e�,�c�,�h�)�|�|�0�)�,�m�.�_�p�t�=�{�_�n�e�x�t�:�m�.�_�p�t�,�p�:�u�|�|�1�=�=�=�v�?�u�:�"�,�"�,�s�:�a�,�c�:�f�?�f�*�d�:�d�-�a�,�m�:�l�&�&�l�<�4�|�|�"�z�I�n�d�e�x�"�=�=�=�e�?�M�a�t�h�.�r�o�u�n�d�:�0�}�)�;�m�.�c�=�g�<�n�.�l�e�n�g�t�h�?�n�.�s�u�b�s�t�r�i�n�g�(�g�,�n�.�l�e�n�g�t�h�)�:�"�"�}�e�l�s�e� �m�.�r�=�"�d�i�s�p�l�a�y�"�=�=�=�e�&�&�"�n�o�n�e�"�=�=�=�n�?�O�i�:�A�i�;�r�e�t�u�r�n� �d�e�.�t�e�s�t�(�n�)�&�&�(�m�.�e�=�0�)�,�t�h�i�s�.�_�p�t�=�m�}�f�u�n�c�t�i�o�n� �H�i�(�t�,�e�)�{�i�f�(�e�.�t�w�e�e�n�&�&�e�.�t�w�e�e�n�.�_�t�i�m�e�=�=�=�e�.�t�w�e�e�n�.�_�d�u�r�)�{�v�a�r� �i�,�n�,�o�,�s�=�e�.�t�,�r�=�s�.�s�t�y�l�e�,�a�=�e�.�u�,�e�=�s�.�_�g�s�a�p�;�i�f�(�"�a�l�l�"�=�=�=�a�|�|�!�0�=�=�=�a�)�r�.�c�s�s�T�e�x�t�=�"�"�,�n�=�1�;�e�l�s�e� �f�o�r�(�o�=�(�a�=�a�.�s�p�l�i�t�(�"�,�"�)�)�.�l�e�n�g�t�h�;�-�1�<�-�-�o�;�)�i�=�a�[�o�]�,�_�n�[�i�]�&�&�(�n�=�1�,�i�=�"�t�r�a�n�s�f�o�r�m�O�r�i�g�i�n�"�=�=�=�i�?�O�n�:�G�)�,�M�n�(�s�,�i�)�;�n�&�&�(�M�n�(�s�,�G�)�,�e�&�&�(�e�.�s�v�g�&�&�s�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�)�,�V�n�(�s�,�1�)�,�e�.�u�n�c�a�c�h�e�=�1�)�)�}�}�f�u�n�c�t�i�o�n� �B�i�(�t�)�{�r�e�t�u�r�n�"�m�a�t�r�i�x�(�1�,� �0�,� �0�,� �1�,� �0�,� �0�)�"�=�=�=�t�|�|�"�n�o�n�e�"�=�=�=�t�|�|�!�t�}�f�u�n�c�t�i�o�n� �W�i�(�t�,�e�,�i�,�n�,�o�,�s�)�{�v�a�r� �r�,�a�=�t�.�_�g�s�a�p�,�o�=�o�|�|�q�n�(�t�,�!�0�)�,�l�=�a�.�x�O�r�i�g�i�n�|�|�0�,�c�=�a�.�y�O�r�i�g�i�n�|�|�0�,�d�=�a�.�x�O�f�f�s�e�t�|�|�0�,�u�=�a�.�y�O�f�f�s�e�t�|�|�0�,�h�=�o�[�0�]�,�p�=�o�[�1�]�,�f�=�o�[�2�]�,�m�=�o�[�3�]�,�g�=�o�[�4
1�]�,�v�=�o�[�5�]�,�y�=�e�.�s�p�l�i�t�(�"� �"�)�,�w�=�p�a�r�s�e�F�l�o�a�t�(�y�[�0�]�)�|�|�0�,�b�=�p�a�r�s�e�F�l�o�a�t�(�y�[�1�]�)�|�|�0�;�i�?�o�!�=�=�H�n�&�&�(�o�=�h�*�m�-�p�*�f�)�&�&�(�r�=�w�*�(�-�p�/�o�)�+�b�*�(�h�/�o�)�-�(�h�*�v�-�p�*�g�)�/�o�,�w�=�w�*�(�m�/�o�)�+�b�*�(�-�f�/�o�)�+�(�f�*�v�-�m�*�g�)�/�o�,�b�=�r�)�:�(�w�=�(�o�=�I�n�(�t�)�)�.�x�+�(�~�y�[�0�]�.�i�n�d�e�x�O�f�(�"�%�"�)�?�w�/�1�0�0�*�o�.�w�i�d�t�h�:�w�)�,�b�=�o�.�y�+�(�~�(�y�[�1�]�|�|�y�[�0�]�)�.�i�n�d�e�x�O�f�(�"�%�"�)�?�b�/�1�0�0�*�o�.�h�e�i�g�h�t�:�b�)�)�,�n�|�|�!�1�!�=�=�n�&�&�a�.�s�m�o�o�t�h�?�(�a�.�x�O�f�f�s�e�t�=�d�+�(�(�g�=�w�-�l�)�*�h�+�(�v�=�b�-�c�)�*�f�)�-�g�,�a�.�y�O�f�f�s�e�t�=�u�+�(�g�*�p�+�v�*�m�)�-�v�)�:�a�.�x�O�f�f�s�e�t�=�a�.�y�O�f�f�s�e�t�=�0�,�a�.�x�O�r�i�g�i�n�=�w�,�a�.�y�O�r�i�g�i�n�=�b�,�a�.�s�m�o�o�t�h�=�!�!�n�,�a�.�o�r�i�g�i�n�=�e�,�a�.�o�r�i�g�i�n�I�s�A�b�s�o�l�u�t�e�=�!�!�i�,�t�.�s�t�y�l�e�[�O�n�]�=�"�0�p�x� �0�p�x�"�,�s�&�&�(�P�n�(�s�,�a�,�"�x�O�r�i�g�i�n�"�,�l�,�w�)�,�P�n�(�s�,�a�,�"�y�O�r�i�g�i�n�"�,�c�,�b�)�,�P�n�(�s�,�a�,�"�x�O�f�f�s�e�t�"�,�d�,�a�.�x�O�f�f�s�e�t�)�,�P�n�(�s�,�a�,�"�y�O�f�f�s�e�t�"�,�u�,�a�.�y�O�f�f�s�e�t�)�)�,�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�s�v�g�-�o�r�i�g�i�n�"�,�w�+�"� �"�+�b�)�}�f�u�n�c�t�i�o�n� �q�i�(�t�,�e�,�i�)�{�v�a�r� �n�=�q�(�e�)�;�r�e�t�u�r�n� �I�(�p�a�r�s�e�F�l�o�a�t�(�e�)�+�p�a�r�s�e�F�l�o�a�t�(�R�n�(�t�,�"�x�"�,�i�+�"�p�x�"�,�n�)�)�)�+�n�}�f�u�n�c�t�i�o�n� �V�i�(�t�,�e�)�{�f�o�r�(�v�a�r� �i� �i�n� �e�)�t�[�i�]�=�e�[�i�]�;�r�e�t�u�r�n� �t�}�v�a�r� �U�i�,�Y�i�,�Q�i�,�G�i�,�X�i�,�K�i�,�Z�i�,�J�i�,�t�n�=�{�r�e�g�i�s�t�e�r�P�l�u�g�i�n�:�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�,�e�=�n�e�w� �A�r�r�a�y�(�t�)�,�i�=�0�;�i�<�t�;�i�+�+�)�e�[�i�]�=�a�r�g�u�m�e�n�t�s�[�i�]�;�e�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�(�t�=�!�t�.�n�a�m�e�&�&�t�.�d�e�f�a�u�l�t�|�|�t�)�.�n�a�m�e�,�i�=�u�(�t�)�,�i�=�e�&�&�!�i�&�&�t�.�i�n�i�t�?�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�p�r�o�p�s�=�[�]�}�:�t�,�n�=�{�i�n�i�t�:�c�,�r�e�n�d�e�r�:�d�i�,�a�d�d�:�t�i�,�k�i�l�l�:�h�i�,�m�o�d�i�f�i�e�r�:�u�i�,�r�a�w�V�a�r�s�:�0�}�,�o�=�{�t�a�r�g�e�t�T�e�s�t�:�0�,�g�e�t�:�0�,�g�e�t�S�e�t�t�e�r�:�w�i�,�a�l�i�a�s�e�s�:�{�}�,�r�e�g�i�s�t�e�r�:�0�}�;�i�f�(�H�e�(�)�,�t�!�=�=�i�)�{�i�f�(�W�[�e�]�)�r�e�t�u�r�n�;�P�(�i�,�P�(�t�t�(�t�,�n�)�,�o�)�)�,�J�(�i�.�p�r�o�t�o�t�y�p�e�,�J�(�n�,�t�t�(�t�,�o�)�)�)�,�W�[�i�.�p�r�o�p�=�e�]�=�i�,�t�.�t�a�r�g�e�t�T�e�s�t�&�&�(�b�e�.�p�u�s�h�(�i�)�,�m�e�[�e�]�=�1�)�,�e�=�(�"�c�s�s�"�=�=�=�e�?�"�C�S�S�"�:�e�.�c�h�a�r�A�t�(�0�)�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�e�.�s�u�b�s�t�r�(�1�)�)�+�"�P�l�u�g�i�n�"�}�l�(�e�,�i�)�,�t�.�r�e�g�i�s�t�e�r�&�&�t�.�r�e�g�i�s�t�e�r�(�m�,�i�,�Q�)�}�)�}�,�t�i�m�e�l�i�n�e�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �n�e�w� �U�(�t�)�}�,�g�e�t�T�w�e�e�n�s�O�f�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �R�.�g�e�t�T�w�e�e�n�s�O�f�(�t�,�e�)�}�,�g�e�t�P�r�o�p�e�r�t�y�:�f�u�n�c�t�i�o�n�(�n�,�t�,�e�,�i�)�{�B�(�n�)�&�&�(�n�=�L�(�n�)�[�0�]�)�;�v�a�r� �o�=�S�e�(�n�|�|�{�}�)�.�g�e�t�,�s�=�e�?�y�:�v�;�r�e�t�u�r�n�"�n�a�t�i�v�e�"�=�=�=�e�&�&�(�e�=�"�"�)�,�n�&�&�(�t�?�s�(�(�W�[�t�]�&�&�W�[�t�]�.�g�e�t�|�|�o�)�(�n�,�t�,�e�,�i�)�)�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �s�(�(�W�[�t�]�&�&�W�[�t�]�.�g�e�t�|�|�o�)�(�n�,�t�,�e�,�i�)�)�}�)�}�,�q�u�i�c�k�S�e�t�t�e�r�:�f�u�n�c�t�i�o�n�(�i�,�e�,�n�)�{�v�a�r� �o�,�s�;�i�f�(�1�<�(�i�=�L�(�i�)�)�.�l�e�n�g�t�h�)�r�e�t�u�r�n� �o�=�i�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �m�.�q�u�i�c�k�S�e�t�t�e�r�(�t�,�e�,�n�)�}�)�,�s�=�o�.�l�e�n�g�t�h�,�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�=�s�;�e�-�-�;�)�o�[�e�]�(�t�)�}�;�i�=�i�[�0�]�|�|�{�}�;�v�a�r� �r�=�W�[�e�]�,�a�=�S�e�(�i�)�,�l�=�a�.�h�a�r�n�e�s�s�&�&�(�a�.�h�a�r�n�e�s�s�.�a�l�i�a�s�e�s�|�|�{�}�)�[�e�]�|�|�e�,�c�=�r�?�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�n�e�w� �r�;�I�t�.�_�p�t�=�0�,�e�.�i�n�i�t�(�i�,�n�?�t�+�n�:�t�,�I�t�,�0�,�[�i�]�)�,�e�.�r�e�n�d�e�r�(�1�,�e�)�,�I�t�.�_�p�t�&�&�d�i�(�1�,�I�t�)�}�:�a�.�s�e�t�(�i�,�l�)�;�r�e�t�u�r�n� �r�?�c�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �c�(�i�,�l�,�n�?�t�+�n�:�t�,�a�,�1�)�}�}�,�i�s�T�w�e�e�n�i�n�g�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �0�<�R�.�g�e�t�T�w�e�e�n�s�O�f�(�t�,�!�0�)�.�l�e�n�g�t�h�}�,�d�e�f�a�u�l�t�s�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�&�&�t�.�e�a�s�e�&�&�(�t�.�e�a�s�e�=�U�e�(�t�.�e�a�s�e�,�K�t�.�e�a�s�e�)�)�,�w�(�K�t�,�t�|�|�{�}�)�}�,�c�o�n�f�i�g�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �w�(�N�,�t�|�|�{�}�)�}�,�r�e�g�i�s�t�e�r�E�f�f�e�c�t�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �n�=�t�.�n�a�m�e�,�o�=�t�.�e�f�f�e�c�t�,�e�=�t�.�p�l�u�g�i�n�s�,�s�=�t�.�d�e�f�a�u�l�t�s�,�t�=�t�.�e�x�t�e�n�d�T�i�m�e�l�i�n�e�;�(�e�|�|�"�"�)�.�s�p�l�i�t�(�"�,�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�&�&�!�W�[�t�]�&�&�!�r�[�t�]�&�&�Z�(�n�+�"� �e�f�f�e�c�t� �r�e�q�u�i�r�e�s� �"�+�t�+�"� �p�l�u�g�i�n�.�"�)�}�)�,�y�e�[�n�]�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �o�(�L�(�t�)�,�P�(�e�|�|�{�}�,�s�)�,�i�)�}�,�t�&�&�(�U�.�p�r�o�t�o�t�y�p�e�[�n�]�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�h�i�s�.�a�d�d�(�y�e�[�n�]�(�t�,�D�(�e�)�?�e�:�(�i�=�e�)�&�&�{�}�,�t�h�i�s�)�,�i�)�}�)�}�,�r�e�g�i�s�t�e�r�E�a�s�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�V�[�t�]�=�U�e�(�e�)�}�,�p�a�r�s�e�E�a�s�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�U�e�(�t�,�e�)�:�V�}�,�g�e�t�B�y�I�d�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �R�.�g�e�t�B�y�I�d�(�t�)�}�,�e�x�p�o�r�t�R�o�o�t�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�=�n�e�w� �U�(�t�=�v�o�i�d� �0�=�=�=�t�?�{�}�:�t�)�;
1�f�o�r�(�o�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�=�M�(�t�.�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�)�,�R�.�r�e�m�o�v�e�(�o�)�,�o�.�_�d�p�=�0�,�o�.�_�t�i�m�e�=�o�.�_�t�T�i�m�e�=�R�.�_�t�i�m�e�,�i�=�R�.�_�f�i�r�s�t�;�i�;�)�n�=�i�.�_�n�e�x�t�,�!�e�&�&�!�i�.�_�d�u�r�&�&�i� �i�n�s�t�a�n�c�e�o�f� �Y�&�&�i�.�v�a�r�s�.�o�n�C�o�m�p�l�e�t�e�=�=�=�i�.�_�t�a�r�g�e�t�s�[�0�]�|�|�A�(�o�,�i�,�i�.�_�s�t�a�r�t�-�i�.�_�d�e�l�a�y�)�,�i�=�n�;�r�e�t�u�r�n� �A�(�R�,�o�,�0�)�,�o�}�,�u�t�i�l�s�:�{�w�r�a�p�:�f�t�,�w�r�a�p�Y�o�y�o�:�m�t�,�d�i�s�t�r�i�b�u�t�e�:�c�t�,�r�a�n�d�o�m�:�h�t�,�s�n�a�p�:�u�t�,�n�o�r�m�a�l�i�z�e�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �g�t�(�t�,�e�,�0�,�1�,�i�)�}�,�g�e�t�U�n�i�t�:�q�,�c�l�a�m�p�:�f�u�n�c�t�i�o�n�(�e�,�i�,�t�)�{�r�e�t�u�r�n� �$�e�(�t�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �l�t�(�e�,�i�,�t�)�}�)�}�,�s�p�l�i�t�C�o�l�o�r�:�z�e�,�t�o�A�r�r�a�y�:�L�,�s�e�l�e�c�t�o�r�:�f�u�n�c�t�i�o�n�(�i�)�{�r�e�t�u�r�n� �i�=�L�(�i�)�[�0�]�|�|�Z�(�"�I�n�v�a�l�i�d� �s�c�o�p�e�"�)�|�|�{�}�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�i�.�c�u�r�r�e�n�t�|�|�i�.�n�a�t�i�v�e�E�l�e�m�e�n�t�|�|�i�;�r�e�t�u�r�n� �L�(�t�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�?�e�:�e�=�=�=�i�?�Z�(�"�I�n�v�a�l�i�d� �s�c�o�p�e�"�)�|�|�D�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�:�i�)�}�}�,�m�a�p�R�a�n�g�e�:�g�t�,�p�i�p�e�:�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�,�e�=�n�e�w� �A�r�r�a�y�(�t�)�,�i�=�0�;�i�<�t�;�i�+�+�)�e�[�i�]�=�a�r�g�u�m�e�n�t�s�[�i�]�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�.�r�e�d�u�c�e�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �e�(�t�)�}�,�t�)�}�}�,�u�n�i�t�i�z�e�:�f�u�n�c�t�i�o�n�(�e�,�i�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�(�p�a�r�s�e�F�l�o�a�t�(�t�)�)�+�(�i�|�|�q�(�t�)�)�}�}�,�i�n�t�e�r�p�o�l�a�t�e�:�v�t�,�s�h�u�f�f�l�e�:�L�e�}�,�i�n�s�t�a�l�l�:�a�,�e�f�f�e�c�t�s�:�y�e�,�t�i�c�k�e�r�:�f�,�u�p�d�a�t�e�R�o�o�t�:�U�.�u�p�d�a�t�e�R�o�o�t�,�p�l�u�g�i�n�s�:�W�,�g�l�o�b�a�l�T�i�m�e�l�i�n�e�:�R�,�c�o�r�e�:�{�P�r�o�p�T�w�e�e�n�:�Q�,�g�l�o�b�a�l�s�:�l�,�T�w�e�e�n�:�Y�,�T�i�m�e�l�i�n�e�:�U�,�A�n�i�m�a�t�i�o�n�:�X�e�,�g�e�t�C�a�c�h�e�:�S�e�,�_�r�e�m�o�v�e�L�i�n�k�e�d�L�i�s�t�I�t�e�m�:�k�e�,�s�u�p�p�r�e�s�s�O�v�e�r�w�r�i�t�e�s�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �A�t�=�t�}�}�}�,�e�n�=�(�p�(�"�t�o�,�f�r�o�m�,�f�r�o�m�T�o�,�d�e�l�a�y�e�d�C�a�l�l�,�s�e�t�,�k�i�l�l�T�w�e�e�n�s�O�f�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�n�[�t�]�=�Y�[�t�]�}�)�,�f�.�a�d�d�(�U�.�u�p�d�a�t�e�R�o�o�t�)�,�I�t�=�t�n�.�t�o�(�{�}�,�{�d�u�r�a�t�i�o�n�:�0�}�)�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�t�.�_�p�t�;�i�&�&�i�.�p�!�=�=�e�&�&�i�.�o�p�!�=�=�e�&�&�i�.�f�p�!�=�=�e�;�)�i�=�i�.�_�n�e�x�t�;�r�e�t�u�r�n� �i�}�)�,�m�=�t�n�.�r�e�g�i�s�t�e�r�P�l�u�g�i�n�(�{�n�a�m�e�:�"�a�t�t�r�"�,�i�n�i�t�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�)�{�v�a�r� �s�,�r�;�f�o�r�(�s� �i�n� �e�)�(�r�=�t�h�i�s�.�a�d�d�(�t�,�"�s�e�t�A�t�t�r�i�b�u�t�e�"�,�(�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�s�)�|�|�0�)�+�"�"�,�e�[�s�]�,�n�,�o�,�0�,�0�,�s�)�)�&�&�(�r�.�o�p�=�s�)�,�t�h�i�s�.�_�p�r�o�p�s�.�p�u�s�h�(�s�)�}�}�,�{�n�a�m�e�:�"�e�n�d�A�r�r�a�y�"�,�i�n�i�t�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�e�.�l�e�n�g�t�h�;�i�-�-�;�)�t�h�i�s�.�a�d�d�(�t�,�i�,�t�[�i�]�|�|�0�,�e�[�i�]�)�}�}�,�S�i�(�"�r�o�u�n�d�P�r�o�p�s�"�,�d�t�)�,�S�i�(�"�m�o�d�i�f�i�e�r�s�"�)�,�S�i�(�"�s�n�a�p�"�,�u�t�)�)�|�|�t�n�,�e�=�(�Y�.�v�e�r�s�i�o�n�=�U�.�v�e�r�s�i�o�n�=�m�.�v�e�r�s�i�o�n�=�"�3�.�9�.�1�"�,�$�t�=�1�,�s�(�)�&�&�H�e�(�)�,�V�.�P�o�w�e�r�0�)�,�n�n�=�V�.�P�o�w�e�r�1�,�o�n�=�V�.�P�o�w�e�r�2�,�s�n�=�V�.�P�o�w�e�r�3�,�r�n�=�V�.�P�o�w�e�r�4�,�a�n�=�V�.�L�i�n�e�a�r�,�l�n�=�V�.�Q�u�a�d�,�c�n�=�V�.�C�u�b�i�c�,�d�n�=�V�.�Q�u�a�r�t�,�u�n�=�V�.�Q�u�i�n�t�,�h�n�=�V�.�S�t�r�o�n�g�,�p�n�=�V�.�E�l�a�s�t�i�c�,�f�n�=�V�.�B�a�c�k�,�m�n�=�V�.�S�t�e�p�p�e�d�E�a�s�e�,�g�n�=�V�.�B�o�u�n�c�e�,�v�n�=�V�.�S�i�n�e�,�y�n�=�V�.�E�x�p�o�,�w�n�=�V�.�C�i�r�c�,�b�n�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�}�,�_�n�=�{�}�,�T�n�=�1�8�0�/�M�a�t�h�.�P�I�,�S�n�=�M�a�t�h�.�P�I�/�1�8�0�,�x�n�=�M�a�t�h�.�a�t�a�n�2�,�C�n�=�/�(�[�A�-�Z�]�)�/�g�,�k�n�=�/�(�?�:�l�e�f�t�|�r�i�g�h�t�|�w�i�d�t�h�|�m�a�r�g�i�n�|�p�a�d�d�i�n�g�|�x�)�/�i�,�E�n�=�/�[�\�s�,�\�(�]�\�S�/�,�A�n�=�{�a�u�t�o�A�l�p�h�a�:�"�o�p�a�c�i�t�y�,�v�i�s�i�b�i�l�i�t�y�"�,�s�c�a�l�e�:�"�s�c�a�l�e�X�,�s�c�a�l�e�Y�"�,�a�l�p�h�a�:�"�o�p�a�c�i�t�y�"�}�,�G�=�"�t�r�a�n�s�f�o�r�m�"�,�O�n�=�G�+�"�O�r�i�g�i�n�"�,�D�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�=�Y�i�.�c�r�e�a�t�e�E�l�e�m�e�n�t�N�S�?�Y�i�.�c�r�e�a�t�e�E�l�e�m�e�n�t�N�S�(�(�e�|�|�"�h�t�t�p�:�/�/�w�w�w�.�w�3�.�o�r�g�/�1�9�9�9�/�x�h�t�m�l�"�)�.�r�e�p�l�a�c�e�(�/�^�h�t�t�p�s�/�,�"�h�t�t�p�"�)�,�t�)�:�Y�i�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�t
1�)�;�r�e�t�u�r�n� �e�.�s�t�y�l�e�?�e�:�Y�i�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�t�)�}�,�X�=�f�u�n�c�t�i�o�n� �t�(�e�,�i�,�n�)�{�v�a�r� �o�=�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�e�)�;�r�e�t�u�r�n� �o�[�i�]�|�|�o�.�g�e�t�P�r�o�p�e�r�t�y�V�a�l�u�e�(�i�.�r�e�p�l�a�c�e�(�C�n�,�"�-�$�1�"�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�|�|�o�.�g�e�t�P�r�o�p�e�r�t�y�V�a�l�u�e�(�i�)�|�|�!�n�&�&�t�(�e�,�F�n�(�i�)�|�|�i�,�1�)�|�|�"�"�}�,�$�n�=�"�O�,�M�o�z�,�m�s�,�M�s�,�W�e�b�k�i�t�"�.�s�p�l�i�t�(�"�,�"�)�,�F�n�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�=�(�e�|�|�X�i�)�.�s�t�y�l�e�,�o�=�5�;�i�f�(�t� �i�n� �n�&�&�!�i�)�r�e�t�u�r�n� �t�;�f�o�r�(�t�=�t�.�c�h�a�r�A�t�(�0�)�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�t�.�s�u�b�s�t�r�(�1�)�;�o�-�-�&�&�!�(�$�n�[�o�]�+�t� �i�n� �n�)�;�)�;�r�e�t�u�r�n� �o�<�0�?�n�u�l�l�:�(�3�=�=�=�o�?�"�m�s�"�:�0�<�=�o�?�$�n�[�o�]�:�"�"�)�+�t�}�,�I�n�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �i�;�t�r�y�{�i�=�e�.�g�e�t�B�B�o�x�(�)�}�c�a�t�c�h�(�t�)�{�i�=�z�i�.�c�a�l�l�(�e�,�!�0�)�}�r�e�t�u�r�n�!�(�i�=�i�&�&�(�i�.�w�i�d�t�h�|�|�i�.�h�e�i�g�h�t�)�|�|�e�.�g�e�t�B�B�o�x�=�=�=�z�i�?�i�:�z�i�.�c�a�l�l�(�e�,�!�0�)�)�|�|�i�.�w�i�d�t�h�|�|�i�.�x�|�|�i�.�y�?�i�:�{�x�:�+�R�i�(�e�,�[�"�x�"�,�"�c�x�"�,�"�x�1�"�]�)�|�|�0�,�y�:�+�R�i�(�e�,�[�"�y�"�,�"�c�y�"�,�"�y�1�"�]�)�|�|�0�,�w�i�d�t�h�:�0�,�h�e�i�g�h�t�:�0�}�}�,�L�n�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�(�!�t�.�g�e�t�C�T�M�|�|�t�.�p�a�r�e�n�t�N�o�d�e�&�&�!�t�.�o�w�n�e�r�S�V�G�E�l�e�m�e�n�t�|�|�!�I�n�(�t�)�)�}�,�M�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�&�&�(�t�=�t�.�s�t�y�l�e�,�e� �i�n� �_�n�&�&�e�!�=�=�O�n�&�&�(�e�=�G�)�,�t�.�r�e�m�o�v�e�P�r�o�p�e�r�t�y�?�(�"�m�s�"�!�=�=�e�.�s�u�b�s�t�r�(�0�,�2�)�&�&�"�w�e�b�k�i�t�"�!�=�=�e�.�s�u�b�s�t�r�(�0�,�6�)�|�|�(�e�=�"�-�"�+�e�)�,�t�.�r�e�m�o�v�e�P�r�o�p�e�r�t�y�(�e�.�r�e�p�l�a�c�e�(�C�n�,�"�-�$�1�"�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�)�:�t�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�e�)�)�}�,�P�n�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�,�s�)�{�e�=�n�e�w� �Q�(�t�.�_�p�t�,�e�,�i�,�0�,�1�,�s�?�O�i�:�A�i�)�;�r�e�t�u�r�n�(�t�.�_�p�t�=�e�)�.�b�=�n�,�e�.�e�=�o�,�t�.�_�p�r�o�p�s�.�p�u�s�h�(�i�)�,�e�}�,�z�n�=�{�d�e�g�:�1�,�r�a�d�:�1�,�t�u�r�n�:�1�}�,�R�n�=�f�u�n�c�t�i�o�n� �t�(�e�,�i�,�n�,�o�)�{�v�a�r� �s�,�r�=�p�a�r�s�e�F�l�o�a�t�(�n�)�|�|�0�,�a�=�(�n�+�"�"�)�.�t�r�i�m�(�)�.�s�u�b�s�t�r�(�(�r�+�"�"�)�.�l�e�n�g�t�h�)�|�|�"�p�x�"�,�l�=�X�i�.�s�t�y�l�e�,�c�=�k�n�.�t�e�s�t�(�i�)�,�d�=�"�s�v�g�"�=�=�=�e�.�t�a�g�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�,�u�=�(�d�?�"�c�l�i�e�n�t�"�:�"�o�f�f�s�e�t�"�)�+�(�c�?�"�W�i�d�t�h�"�:�"�H�e�i�g�h�t�"�)�,�h�=�"�p�x�"�=�=�=�o�,�p�=�"�%�"�=�=�=�o�;�r�e�t�u�r�n� �o�=�=�=�a�|�|�!�r�|�|�z�n�[�o�]�|�|�z�n�[�a�]�?�r�:�(�"�p�x�"�=�=�=�a�|�|�h�|�|�(�r�=�t�(�e�,�i�,�n�,�"�p�x�"�)�)�,�n�=�e�.�g�e�t�C�T�M�&�&�L�n�(�e�)�,�!�p�&�&�"�%�"�!�=�=�a�|�|�!�_�n�[�i�]�&�&�!�~�i�.�i�n�d�e�x�O�f�(�"�a�d�i�u�s�"�)�?�(�l�[�c�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�]�=�1�0�0�+�(�h�?�a�:�o�)�,�i�=�~�i�.�i�n�d�e�x�O�f�(�"�a�d�i�u�s�"�)�|�|�"�e�m�"�=�=�=�o�&�&�e�.�a�p�p�e�n�d�C�h�i�l�d�&�&�!�d�?�e�:�e�.�p�a�r�e�n�t�N�o�d�e�,�(�o�=�(�i�=�(�i�=�n�?�(�e�.�o�w�n�e�r�S�V�G�E�l�e�m�e�n�t�|�|�{�}�)�.�p�a�r�e�n�t�N�o�d�e�:�i�)�&�&�i�!�=�=�Y�i�&�&�i�.�a�p�p�e�n�d�C�h�i�l�d�?�i�:�Y�i�.�b�o�d�y�)�.�_�g�s�a�p�)�&�&�p�&�&�o�.�w�i�d�t�h�&�&�c�&�&�o�.�t�i�m�e�=�=�=�f�.�t�i�m�e�?�I�(�r�/�o�.�w�i�d�t�h�*�1�0�0�)�:�(�!�p�&�&�"�%�"�!�=�=�a�|�|�(�l�.�p�o�s�i�t�i�o�n�=�X�(�e�,�"�p�o�s�i�t�i�o�n�"�)�)�,�i�=�=�=�e�&�&�(�l�.�p�o�s�i�t�i�o�n�=�"�s�t�a�t�i�c�"�)�,�i�.�a�p�p�e�n�d�C�h�i�l�d�(�X�i�)�,�s�=�X�i�[�u�]�,�i�.�r�e�m�o�v�e�C�h�i�l�d�(�X�i�)�,�l�.�p�o�s�i�t�i�o�n�=�"�a�b�s�o�l�u�t�e�"�,�c�&�&�p�&�&�(�(�o�=�S�e�(�i�)�)�.�t�i�m�e�=�f�.�t�i�m�e�,�o�.�w�i�d�t�h�=�i�[�u�]�)�,�I�(�h�?�s�*�r�/�1�0�0�:�s�&�&�r�?�1�0�0�/�s�*�r�:�0�)�)�)�:�(�s�=�n�?�e�.�g�e�t�B�B�o�x�(�)�[�c�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�]�:�e�[�u�]�,�I�(�p�?�r�/�s�*�1�0�0�:�r�/�1�0�0�*�s�)�)�)�}�,�N�n�=�{�t�o�p�:�"�0�%�"�,�b�o�t�t�o�m�:�"�1�0�0�%�"�,�l�e�f�t�:�"�0�%�"�,�r�i�g�h�t�:�"�1�0�0�%�"�,�c�e�n�t�e�r�:�"�5�0�%�"�}�,�j�n�=�{�c�l�e�a�r�P�r�o�p�s�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�)�{�i�f�(�"�i�s�F�r�o�m�S�t�a�r�t�"�!�=�=�o�.�d�a�t�a�)�r�e�t�u�r�n�(�e�=�t�.�_�p�t�=�n�e�w� �Q�(�t�.�_�p�t�,�e�,�i�,�0�,�0�,�H�i�)�)�.�u�=�n�,�e�.�p�r�=�-�1�0�,�e�.�t�w�e�e�n�=�o�,�t�.
1�_�p�r�o�p�s�.�p�u�s�h�(�i�)�,�1�}�}�,�H�n�=�[�1�,�0�,�0�,�1�,�0�,�0�]�,�B�n�=�{�}�,�W�n�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�X�(�t�,�G�)�;�r�e�t�u�r�n� �B�i�(�t�)�?�H�n�:�t�.�s�u�b�s�t�r�(�7�)�.�m�a�t�c�h�(�a�e�)�.�m�a�p�(�I�)�}�,�q�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�,�s�=�t�.�_�g�s�a�p�|�|�S�e�(�t�)�,�r�=�t�.�s�t�y�l�e�,�a�=�W�n�(�t�)�;�r�e�t�u�r�n� �s�.�s�v�g�&�&�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�)�?�"�1�,�0�,�0�,�1�,�0�,�0�"�=�=�=�(�a�=�[�(�n�=�t�.�t�r�a�n�s�f�o�r�m�.�b�a�s�e�V�a�l�.�c�o�n�s�o�l�i�d�a�t�e�(�)�.�m�a�t�r�i�x�)�.�a�,�n�.�b�,�n�.�c�,�n�.�d�,�n�.�e�,�n�.�f�]�)�.�j�o�i�n�(�"�,�"�)�?�H�n�:�a�:�(�a�!�=�=�H�n�|�|�t�.�o�f�f�s�e�t�P�a�r�e�n�t�|�|�t�=�=�=�Q�i�|�|�s�.�s�v�g�|�|�(�n�=�r�.�d�i�s�p�l�a�y�,�r�.�d�i�s�p�l�a�y�=�"�b�l�o�c�k�"�,�(�s�=�t�.�p�a�r�e�n�t�N�o�d�e�)�&�&�t�.�o�f�f�s�e�t�P�a�r�e�n�t�|�|�(�o�=�1�,�i�=�t�.�n�e�x�t�S�i�b�l�i�n�g�,�Q�i�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�)�,�a�=�W�n�(�t�)�,�n�?�r�.�d�i�s�p�l�a�y�=�n�:�M�n�(�t�,�"�d�i�s�p�l�a�y�"�)�,�o�&�&�(�i�?�s�.�i�n�s�e�r�t�B�e�f�o�r�e�(�t�,�i�)�:�s�?�s�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�:�Q�i�.�r�e�m�o�v�e�C�h�i�l�d�(�t�)�)�)�,�e�&�&�6�<�a�.�l�e�n�g�t�h�?�[�a�[�0�]�,�a�[�1�]�,�a�[�4�]�,�a�[�5�]�,�a�[�1�2�]�,�a�[�1�3�]�]�:�a�)�}�,�V�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�.�_�g�s�a�p�|�|�n�e�w� �G�e�(�t�)�;�i�f�(�"�x�"�i�n� �i�&�&�!�e�&�&�!�i�.�u�n�c�a�c�h�e�)�r�e�t�u�r�n� �i�;�v�a�r� �n�,�o�,�s�,�r�,�a�,�l�,�c�,�d�,�u�,�h�,�p�,�f�,�m�,�g�,�v�,�y�,�w�,�b�,�_�,�T�,�S�,�x�,�C�,�k�,�E�,�A�=�t�.�s�t�y�l�e�,�O�=�i�.�s�c�a�l�e�X�<�0�,�D�=�X�(�t�,�O�n�)�|�|�"�0�"�,�$�=�n�=�o�=�r�=�a�=�l�=�c�=�d�=�0�,�F�=�s�=�1�;�r�e�t�u�r�n� �i�.�s�v�g�=�!�(�!�t�.�g�e�t�C�T�M�|�|�!�L�n�(�t�)�)�,�u�=�q�n�(�t�,�i�.�s�v�g�)�,�i�.�s�v�g�&�&�(�b�=�(�!�i�.�u�n�c�a�c�h�e�|�|�"�0�p�x� �0�p�x�"�=�=�=�D�)�&�&�!�e�&�&�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�s�v�g�-�o�r�i�g�i�n�"�)�,�W�i�(�t�,�b�|�|�D�,�!�!�b�|�|�i�.�o�r�i�g�i�n�I�s�A�b�s�o�l�u�t�e�,�!�1�!�=�=�i�.�s�m�o�o�t�h�,�u�)�)�,�e�=�i�.�x�O�r�i�g�i�n�|�|�0�,�k�=�i�.�y�O�r�i�g�i�n�|�|�0�,�u�!�=�=�H�n�&�&�(�f�=�u�[�0�]�,�m�=�u�[�1�]�,�g�=�u�[�2�]�,�v�=�u�[�3�]�,�$�=�y�=�u�[�4�]�,�n�=�w�=�u�[�5�]�,�6�=�=�=�u�.�l�e�n�g�t�h�?�(�F�=�M�a�t�h�.�s�q�r�t�(�f�*�f�+�m�*�m�)�,�s�=�M�a�t�h�.�s�q�r�t�(�v�*�v�+�g�*�g�)�,�r�=�f�|�|�m�?�x�n�(�m�,�f�)�*�T�n�:�0�,�(�c�=�g�|�|�v�?�x�n�(�g�,�v�)�*�T�n�+�r�:�0�)�&�&�(�s�*�=�M�a�t�h�.�a�b�s�(�M�a�t�h�.�c�o�s�(�c�*�S�n�)�)�)�,�i�.�s�v�g�&�&�(�$�-�=�e�-�(�e�*�f�+�k�*�g�)�,�n�-�=�k�-�(�e�*�m�+�k�*�v�)�)�)�:�(�e�=�u�[�6�]�,�k�=�u�[�7�]�,�S�=�u�[�8�]�,�x�=�u�[�9�]�,�C�=�u�[�1�0�]�,�E�=�u�[�1�1�]�,�$�=�u�[�1�2�]�,�n�=�u�[�1�3�]�,�o�=�u�[�1�4�]�,�a�=�(�u�=�x�n�(�e�,�C�)�)�*�T�n�,�u�&�&�(�b�=�y�*�(�h�=�M�a�t�h�.�c�o�s�(�-�u�)�)�+�S�*�(�p�=�M�a�t�h�.�s�i�n�(�-�u�)�)�,�_�=�w�*�h�+�x�*�p�,�T�=�e�*�h�+�C�*�p�,�S�=�y�*�-�p�+�S�*�h�,�x�=�w�*�-�p�+�x�*�h�,�C�=�e�*�-�p�+�C�*�h�,�E�=�k�*�-�p�+�E�*�h�,�y�=�b�,�w�=�_�,�e�=�T�)�,�l�=�(�u�=�x�n�(�-�g�,�C�)�)�*�T�n�,�u�&�&�(�h�=�M�a�t�h�.�c�o�s�(�-�u�)�,�E�=�v�*�(�p�=�M�a�t�h�.�s�i�n�(�-�u�)�)�+�E�*�h�,�f�=�b�=�f�*�h�-�S�*�p�,�m�=�_�=�m�*�h�-�x�*�p�,�g�=�T�=�g�*�h�-�C�*�p�)�,�r�=�(�u�=�x�n�(�m�,�f�)�)�*�T�n�,�u�&�&�(�b�=�f�*�(�h�=�M�a�t�h�.�c�o�s�(�u�)�)�+�m�*�(�p�=�M�a�t�h�.�s�i�n�(�u�)�)�,�_�=�y�*�h�+�w�*�p�,�m�=�m�*�h�-�f�*�p�,�w�=�w�*�h�-�y�*�p�,�f�=�b�,�y�=�_�)�,�a�&�&�3�5�9�.�9�<�M�a�t�h�.�a�b�s�(�a�)�+�M�a�t�h�.�a�b�s�(�r�)�&�&�(�a�=�r�=�0�,�l�=�1�8�0�-�l�)�,�F�=�I�(�M�a�t�h�.�s�q�r�t�(�f�*�f�+�m�*�m�+�g�*�g�)�)�,�s�=�I�(�M�a�t�h�.�s�q�r�t�(�w�*�w�+�e�*�e�)�)�,�u�=�x�n�(�y�,�w�)�,�c�=�2�e�-�4�<�M�a�t�h�.�a�b�s�(�u�)�?�u�*�T�n�:�0�,�d�=�E�?�1�/�(�E�<�0�?�-�E�:�E�)�:�0�)�,�i�.�s�v�g�&�&�(�b�=�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�)�,�i�.�f�o�r�c�e�C�S�S�=�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�,�"�"�)�|�|�!�B�i�(�X�(�t�,�G�)�)�,�b�&�&�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�,�b�)�)�)�,�9�0�<�M�a�t�h�.�a�b�s�(�c�)�&�&�M�a�t�h�.�a�b�s�(�c�)�<�2�7�0�&�&�(�O�?�(�F�*�=�-�1�,�c�+�=�r�<�=�0�?�1�8�0�:�-�1�8�0�,�r�+�=�r�<�=�0�?�1�8�0�:�-�1�8�0�)�:�(�s�*�=�-�1�,�c�+�=�c�<�=�0�?�1�8�0�:�-�1�8�0�)�)�,�i�.�x�=�$�-�(�(�i�.�x�P�e�r�c�e�n�t�=�$�&�&�(�i�.�x�P�e�r�c�e�n�t�|�|�(�M�a�t�h�.�r�o�u�n�d�(�t�.�o�f�f�s�e�t�W�i�d�t�h�/�2�)�=�=�=�M�a�t�h�.�r�o�u�n�d�(�-�$�)�?�-�5�0�:�0�)�)�)�?�t�.�o�f�f�s�e�t�W�i�d�t�h�*�i�.�x�P�e�r�c�e�n�t�/�1�0�0�:�0�)�+�"�p�x�"�,�i�.�y�=�n�-�(�(�i�.�y�P�e�r�c�e�n�t�=�n�&�&�(�i�.�y�P�e�r�c�e�n�t�|�|�(�M�a�t�h�.�r�o�u�n�d�(�t�.�o�f�f�s�e�t�H�e�i�g�h�t�/�2�)�=�=�=�M�a�t�h�.�r�o�u�n�d�(�-�n�)�?�-�5�0�:�0�)�)�)�?�t�.�o�f�f�s�e�t�H�e�i�g�h�t�*�i�.�y�P�e�r�c�e�n�t�/�1�0�0�:�0�)�+�"�p�x�"�,�i�.�z�=�o�+�"�p�x�"�,�i�.�s�c�a�l�e�X�=�I�(�F�)�,�i�.�s�c�a�l�e�Y�=�I�(�s�)�,�i�.�r�o�t�a�t�i�o�n�=�I�(�r�)�+�"�d�e�g�"�,�i�.�r�o�t�a�t�i�o�n�X�=�I�(�a�)�+�"�d�e�g�"�,�i�.�r�o�t�a�t�i�o�n�Y�=�I�(�l�)�+�"�d�e�g�"�,�i�.�s�k�e�w�X�=�c�+�"�
1d�e�g�"�,�i�.�s�k�e�w�Y�=�"�0�d�e�g�"�,�i�.�t�r�a�n�s�f�o�r�m�P�e�r�s�p�e�c�t�i�v�e�=�d�+�"�p�x�"�,�(�i�.�z�O�r�i�g�i�n�=�p�a�r�s�e�F�l�o�a�t�(�D�.�s�p�l�i�t�(�"� �"�)�[�2�]�)�|�|�0�)�&�&�(�A�[�O�n�]�=�U�n�(�D�)�)�,�i�.�x�O�f�f�s�e�t�=�i�.�y�O�f�f�s�e�t�=�0�,�i�.�f�o�r�c�e�3�D�=�N�.�f�o�r�c�e�3�D�,�i�.�r�e�n�d�e�r�T�r�a�n�s�f�o�r�m�=�i�.�s�v�g�?�Z�n�:�Z�i�?�K�n�:�Y�n�,�i�.�u�n�c�a�c�h�e�=�0�,�i�}�,�U�n�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�(�t�=�t�.�s�p�l�i�t�(�"� �"�)�)�[�0�]�+�"� �"�+�t�[�1�]�}�,�Y�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�.�z�=�"�0�p�x�"�,�e�.�r�o�t�a�t�i�o�n�Y�=�e�.�r�o�t�a�t�i�o�n�X�=�"�0�d�e�g�"�,�e�.�f�o�r�c�e�3�D�=�0�,�K�n�(�t�,�e�)�}�,�Q�n�=�"�0�d�e�g�"�,�G�n�=�"�0�p�x�"�,�X�n�=�"�)� �"�,�K�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�,�e�=�e�|�|�t�h�i�s�,�s�=�e�.�x�P�e�r�c�e�n�t�,�r�=�e�.�y�P�e�r�c�e�n�t�,�a�=�e�.�x�,�l�=�e�.�y�,�c�=�e�.�z�,�d�=�e�.�r�o�t�a�t�i�o�n�,�u�=�e�.�r�o�t�a�t�i�o�n�Y�,�h�=�e�.�r�o�t�a�t�i�o�n�X�,�p�=�e�.�s�k�e�w�X�,�f�=�e�.�s�k�e�w�Y�,�m�=�e�.�s�c�a�l�e�X�,�g�=�e�.�s�c�a�l�e�Y�,�v�=�e�.�t�r�a�n�s�f�o�r�m�P�e�r�s�p�e�c�t�i�v�e�,�y�=�e�.�f�o�r�c�e�3�D�,�w�=�e�.�t�a�r�g�e�t�,�e�=�e�.�z�O�r�i�g�i�n�,�b�=�"�"�,�t�=�"�a�u�t�o�"�=�=�=�y�&�&�t�&�&�1�!�=�=�t�|�|�!�0�=�=�=�y�;�!�e�|�|�h�=�=�=�Q�n�&�&�u�=�=�=�Q�n�|�|�(�y�=�p�a�r�s�e�F�l�o�a�t�(�u�)�*�S�n�,�i�=�M�a�t�h�.�s�i�n�(�y�)�,�n�=�M�a�t�h�.�c�o�s�(�y�)�,�y�=�p�a�r�s�e�F�l�o�a�t�(�h�)�*�S�n�,�o�=�M�a�t�h�.�c�o�s�(�y�)�,�a�=�q�i�(�w�,�a�,�i�*�o�*�-�e�)�,�l�=�q�i�(�w�,�l�,�-�M�a�t�h�.�s�i�n�(�y�)�*�-�e�)�,�c�=�q�i�(�w�,�c�,�n�*�o�*�-�e�+�e�)�)�,�v�!�=�=�G�n�&�&�(�b�+�=�"�p�e�r�s�p�e�c�t�i�v�e�(�"�+�v�+�X�n�)�,�(�s�|�|�r�)�&�&�(�b�+�=�"�t�r�a�n�s�l�a�t�e�(�"�+�s�+�"�%�,� �"�+�r�+�"�%�)� �"�)�,�!�t�&�&�a�=�=�=�G�n�&�&�l�=�=�=�G�n�&�&�c�=�=�=�G�n�|�|�(�b�+�=�c�!�=�=�G�n�|�|�t�?�"�t�r�a�n�s�l�a�t�e�3�d�(�"�+�a�+�"�,� �"�+�l�+�"�,� �"�+�c�+�"�)� �"�:�"�t�r�a�n�s�l�a�t�e�(�"�+�a�+�"�,� �"�+�l�+�X�n�)�,�d�!�=�=�Q�n�&�&�(�b�+�=�"�r�o�t�a�t�e�(�"�+�d�+�X�n�)�,�u�!�=�=�Q�n�&�&�(�b�+�=�"�r�o�t�a�t�e�Y�(�"�+�u�+�X�n�)�,�h�!�=�=�Q�n�&�&�(�b�+�=�"�r�o�t�a�t�e�X�(�"�+�h�+�X�n�)�,�p�=�=�=�Q�n�&�&�f�=�=�=�Q�n�|�|�(�b�+�=�"�s�k�e�w�(�"�+�p�+�"�,� �"�+�f�+�X�n�)�,�1�=�=�=�m�&�&�1�=�=�=�g�|�|�(�b�+�=�"�s�c�a�l�e�(�"�+�m�+�"�,� �"�+�g�+�X�n�)�,�w�.�s�t�y�l�e�[�G�]�=�b�|�|�"�t�r�a�n�s�l�a�t�e�(�0�,� �0�)�"�}�,�Z�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�,�s�,�r�,�e�=�e�|�|�t�h�i�s�,�a�=�e�.�x�P�e�r�c�e�n�t�,�l�=�e�.�y�P�e�r�c�e�n�t�,�c�=�e�.�x�,�d�=�e�.�y�,�u�=�e�.�r�o�t�a�t�i�o�n�,�h�=�e�.�s�k�e�w�X�,�p�=�e�.�s�k�e�w�Y�,�f�=�e�.�s�c�a�l�e�X�,�m�=�e�.�s�c�a�l�e�Y�,�g�=�e�.�t�a�r�g�e�t�,�v�=�e�.�x�O�r�i�g�i�n�,�y�=�e�.�y�O�r�i�g�i�n�,�w�=�e�.�x�O�f�f�s�e�t�,�b�=�e�.�y�O�f�f�s�e�t�,�e�=�e�.�f�o�r�c�e�C�S�S�,�_�=�p�a�r�s�e�F�l�o�a�t�(�c�)�,�T�=�p�a�r�s�e�F�l�o�a�t�(�d�)�,�u�=�p�a�r�s�e�F�l�o�a�t�(�u�)�,�h�=�p�a�r�s�e�F�l�o�a�t�(�h�)�;�(�p�=�p�a�r�s�e�F�l�o�a�t�(�p�)�)�&�&�(�h�+�=�p�=�p�a�r�s�e�F�l�o�a�t�(�p�)�,�u�+�=�p�)�,�u�|�|�h�?�(�u�*�=�S�n�,�h�*�=�S�n�,�i�=�M�a�t�h�.�c�o�s�(�u�)�*�f�,�n�=�M�a�t�h�.�s�i�n�(�u�)�*�f�,�o�=�M�a�t�h�.�s�i�n�(�u�-�h�)�*�-�m�,�s�=�M�a�t�h�.�c�o�s�(�u�-�h�)�*�m�,�h�&�&�(�p�*�=�S�n�,�r�=�M�a�t�h�.�t�a�n�(�h�-�p�)�,�o�*�=�r�=�M�a�t�h�.�s�q�r�t�(�1�+�r�*�r�)�,�s�*�=�r�,�p�&�&�(�r�=�M�a�t�h�.�t�a�n�(�p�)�,�i�*�=�r�=�M�a�t�h�.�s�q�r�t�(�1�+�r�*�r�)�,�n�*�=�r�)�)�,�i�=�I�(�i�)�,�n�=�I�(�n�)�,�o�=�I�(�o�)�,�s�=�I�(�s�)�)�:�(�i�=�f�,�s�=�m�,�n�=�o�=�0�)�,�(�_�&�&�!�~�(�c�+�"�"�)�.�i�n�d�e�x�O�f�(�"�p�x�"�)�|�|�T�&�&�!�~�(�d�+�"�"�)�.�i�n�d�e�x�O�f�(�"�p�x�"�)�)�&�&�(�_�=�R�n�(�g�,�"�x�"�,�c�,�"�p�x�"�)�,�T�=�R�n�(�g�,�"�y�"�,�d�,�"�p�x�"�)�)�,�(�v�|�|�y�|�|�w�|�|�b�)�&�&�(�_�=�I�(�_�+�v�-�(�v�*�i�+�y�*�o�)�+�w�)�,�T�=�I�(�T�+�y�-�(�v�*�n�+�y�*�s�)�+�b�)�)�,�(�a�|�|�l�)�&�&�(�r�=�g�.�g�e�t�B�B�o�x�(�)�,�_�=�I�(�_�+�a�/�1�0�0�*�r�.�w�i�d�t�h�)�,�T�=�I�(�T�+�l�/�1�0�0�*�r�.�h�e�i�g�h�t�)�)�,�g�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�,�r�=�"�m�a�t�r�i�x�(�"�+�i�+�"�,�"�+�n�+�"�,�"�+�o�+�"�,�"�+�s�+�"�,�"�+�_�+�"�,�"�+�T�+�"�)�"�)�,�e�&�&�(�g�.�s�t�y�l�e�[�G�]�=�r�)�}�,�J�n�=�(�p�(�"�p�a�d�d�i�n�g�,�m�a�r�g�i�n�,�W�i�d�t�h�,�R�a�d�i�u�s�"�,�f�u�n�c�t�i�o�n�(�e�,�i�)�{�v�a�r� �t�=�"�B�o�t�t�o�m�"�,�a�=�(�i�<�3�?�[�"�T�o�p�"�,�"�R�i�g�h�t�"�,�t�,�"�L�e�f�t�"�]�:�[�"�T�o�p�L�e�f�t�"�,�"�T�o�p�R�i�g�h�t�"�,�t�+�"�R�i�g�h�t�"�,�t�+�"�L�e�f�t�"�]�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �i�<�2�?�e�+�t�:�"�b�o�r�d�e�r�"�+�t�+�e�}�)�;�j�n�[�1�<�i�?�"�b�o�r�d�e�r�"�+�e�:�e�]�=�f�u�n�c�t�i�o�n�(�e�,�t�,�i�,�n�,�o�)�{�v�a�r� �s�,�r�;�i�f�(�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�<�4�)�r�e�t�u�r�n� �s�=�a�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �N�i�(�e�,�t�,�i�)�}�)�,�5�=�=�=�(�r�=�s�.�j�o�i�n�(�"� �"�)�)�.�s�p�l�i�t�(�s�[�0�]�)�.�l�e�n�g�t�h�?�s�[�0�]�:�r�;�s�=�(�n�+�"�"�)�.�s�p�l�i�t�(�"� �"�)�,�r�=�{�}�,�a�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �r�[�t�]�=�s�[�e�]�=�s�[�e�]�|�|�s�[�(�e�-�1�)�/�2�|�0�]�}�)�,�e�.�i�n�i�t�(�t�,�r�,�o�)�}�}�)�,�{�n�a�m�e�:�"�c�s�s�"�,�r�e�g�i�s�t�e�r�:�P�i�,�t�a�r�g�e�t�T�e�s�t�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�s�t�y�l�e�&�&�t�.�n�o�d�e�T�y�p�e�}�,�i�n�i�t�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�)�{�v�a�r� �s�,�r�,�a�,�l�,�c�,�d�,�u�,�h�,�p�,�P�,�f�,�m�,�z�,�g�,�v�,�y�,�w�,�b�,�_�,�T�=�t�h�i�s�.�_�p�r�o�p�s�,�S�=�t�.�s�t�y�l�e�,�x�=�i�.�v�a�r�s�.�s�t�a�r�t�A�t�;�f�o�r�(�c� �i�n� �G�i�|�|�P�i�(�)�,�e�)�i�f�(�"�a�u�t�o�R�o�u�n�d�"�!�=�=�c�&�&�(�r�=�e�[�c�]�,�!�W�[�c�]�|�|�!�e�i�(�c�,�e�,�i�,�n�,�t�,�o�)�)�)�i�f�(�h�=�t�y�p�e�o�f� �r�,�l�=�j�n�[�c�]�,�"�s�t�r�i�n�g�"�=�=�=�(�h�=�"�f�u�n�c�t�i�o�n�"�=�=�=�h�?�t�y�p�e�o�f�(�r�=�r�.�c�a�l�l�(�i�,�n�,�t�,�o�)�)�:�h�)�&�&�~�r�.�i�n�d�e�x�O�f�(�"�r�a�n�d�o�m�(�"�)�&�&�(�r�=�M�e�(�r�)�)�,�l�)�l�(�t�h�i�s�,�t�,�c�,�r�,�i�)�&�&�(�z�=�1�)�;�e�l�s�e� �i�f�(�"�-�-�"�=�=�=�c�.�s�u�b�s�t�r�(�0�,�2�)�)�s�=�(�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�t�)�.�g�e�t�P�r�o�p�e�r�t�y�V�a�l�u�e�(�c�)�+�"�"�)�.�t�r�i�m�(�)�,�r�+�=�"�"�,�N�e�.�l�a�s�t�I�n�d�e�x�=�0�,�N�e�.�t�e�s�t�(�s�)�|�|�(�d�=�q�(�s�)�,�u�=�q�(�r�)�)�,�u�?�d�!�=�=�u�&�&�(�s�=�R�n�(�t�,�c�,�s�,�u�)�+�u�)�:�d�&�&�(�r�+�=�d�)�,�t�h�i�s�.�a�d�d�(�S�,�"�s�e�t�P�r�o�p�e�r�t�y�"�,�s�,�r�,�n�,�o�,�0�,�0�,�c�)�,�T�.�p�u�s�h�(�c�)�;�e�l�s�e� �i�f�(�"�u�n�d�e�f�i�n�e�d�"�!�=�=�h�)�{�i�f�(�x�&�&�c� �i�n� �x�?�(�s�=�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �x�[�c�]�?�x�[�c�]�.�c�a�l�l�(�i�,�n�,�t�,�o�)�:�x�[�c�]�,�B�(�s�)�&�&�~�s�.�i�n�d�e�x�O�f�(�"�r�a�n�d�o�m�(�"�)�&�&�(�s�=�M�e�(�s�)�)�,�q�(�s�+�"�"�)�|�|�(�s�+�=�N�.�u�n�i�t�s�[�c�]�|�|�q�(�N�i�(�t�,�c�)�)�|�|�"�"�)�,�"�=�"�=�=�=�(�s�+�"�"�)�.�c�h�a�r�A�t�(�1�)�&�&�(�s�=�N�i�(�t�,�c�)�)�)�:�s�=�N�i�(�t�,�c�)�,�l�=�p�a�r�s�e�F�l�o�a�t�(�s�)�,�(�h�=�"�s�t�r�i�n�g�"�=�=�=�h�&�&�"�=�"�=�=�=�r�.
1�c�h�a�r�A�t�(�1�)�?�+�(�r�.�c�h�a�r�A�t�(�0�)�+�"�1�"�)�:�0�)�&�&�(�r�=�r�.�s�u�b�s�t�r�(�2�)�)�,�a�=�p�a�r�s�e�F�l�o�a�t�(�r�)�,�c� �i�n� �A�n�&�&�(�"�a�u�t�o�A�l�p�h�a�"�=�=�=�c�&�&�(�1�=�=�=�l�&�&�"�h�i�d�d�e�n�"�=�=�=�N�i�(�t�,�"�v�i�s�i�b�i�l�i�t�y�"�)�&�&�a�&�&�(�l�=�0�)�,�P�n�(�t�h�i�s�,�S�,�"�v�i�s�i�b�i�l�i�t�y�"�,�l�?�"�i�n�h�e�r�i�t�"�:�"�h�i�d�d�e�n�"�,�a�?�"�i�n�h�e�r�i�t�"�:�"�h�i�d�d�e�n�"�,�!�a�)�)�,�"�s�c�a�l�e�"�!�=�=�c�&�&�"�t�r�a�n�s�f�o�r�m�"�!�=�=�c�&�&�~�(�c�=�A�n�[�c�]�)�.�i�n�d�e�x�O�f�(�"�,�"�)�&�&�(�c�=�c�.�s�p�l�i�t�(�"�,�"�)�[�0�]�)�)�,�p�=�c� �i�n� �_�n�)�i�f�(�P�|�|�(�(�f�=�t�.�_�g�s�a�p�)�.�r�e�n�d�e�r�T�r�a�n�s�f�o�r�m�&�&�!�e�.�p�a�r�s�e�T�r�a�n�s�f�o�r�m�|�|�V�n�(�t�,�e�.�p�a�r�s�e�T�r�a�n�s�f�o�r�m�)�,�m�=�!�1�!�=�=�e�.�s�m�o�o�t�h�O�r�i�g�i�n�&�&�f�.�s�m�o�o�t�h�,�(�P�=�t�h�i�s�.�_�p�t�=�n�e�w� �Q�(�t�h�i�s�.�_�p�t�,�S�,�G�,�0�,�1�,�f�.�r�e�n�d�e�r�T�r�a�n�s�f�o�r�m�,�f�,�0�,�-�1�)�)�.�d�e�p�=�1�)�,�"�s�c�a�l�e�"�=�=�=�c�)�t�h�i�s�.�_�p�t�=�n�e�w� �Q�(�t�h�i�s�.�_�p�t�,�f�,�"�s�c�a�l�e�Y�"�,�f�.�s�c�a�l�e�Y�,�(�h�?�h�*�a�:�a�-�f�.�s�c�a�l�e�Y�)�|�|�0�)�,�T�.�p�u�s�h�(�"�s�c�a�l�e�Y�"�,�c�)�,�c�+�=�"�X�"�;�e�l�s�e�{�i�f�(�"�t�r�a�n�s�f�o�r�m�O�r�i�g�i�n�"�=�=�=�c�)�{�_�=�b�=�w�=�v�o�i�d� �0�,�w�=�(�y�=�r�)�.�s�p�l�i�t�(�"� �"�)�,�b�=�w�[�0�]�,�_�=�w�[�1�]�|�|�"�5�0�%�"�,�"�t�o�p�"�!�=�=�b�&�&�"�b�o�t�t�o�m�"�!�=�=�b�&�&�"�l�e�f�t�"�!�=�=�_�&�&�"�r�i�g�h�t�"�!�=�=�_�|�|�(�y�=�b�,�b�=�_�,�_�=�y�)�,�w�[�0�]�=�N�n�[�b�]�|�|�b�,�w�[�1�]�=�N�n�[�_�]�|�|�_�,�r�=�w�.�j�o�i�n�(�"� �"�)�,�f�.�s�v�g�?�W�i�(�t�,�r�,�0�,�m�,�0�,�t�h�i�s�)�:�(�(�u�=�p�a�r�s�e�F�l�o�a�t�(�r�.�s�p�l�i�t�(�"� �"�)�[�2�]�)�|�|�0�)�!�=�=�f�.�z�O�r�i�g�i�n�&�&�P�n�(�t�h�i�s�,�f�,�"�z�O�r�i�g�i�n�"�,�f�.�z�O�r�i�g�i�n�,�u�)�,�P�n�(�t�h�i�s�,�S�,�c�,�U�n�(�s�)�,�U�n�(�r�)�)�)�;�c�o�n�t�i�n�u�e�}�i�f�(�"�s�v�g�O�r�i�g�i�n�"�=�=�=�c�)�{�W�i�(�t�,�r�,�1�,�m�,�0�,�t�h�i�s�)�;�c�o�n�t�i�n�u�e�}�i�f�(�c� �i�n� �B�n�)�{�y�=�t�h�i�s�,�b�=�f�,�_�=�c�,�w�=�l�,�F�=�h�,�v�=�M�=�v�o�i�d� �0�,�M�=�B�(�g�=�r�)�,�v�=�p�a�r�s�e�F�l�o�a�t�(�g�)�*�(�M�&�&�~�g�.�i�n�d�e�x�O�f�(�"�r�a�d�"�)�?�T�n�:�1�)�,�v�=�w�+�(�F�=�F�?�v�*�F�:�v�-�w�)�+�"�d�e�g�"�,�M�&�&�(�"�s�h�o�r�t�"�=�=�=�(�M�=�g�.�s�p�l�i�t�(�"�_�"�)�[�1�]�)�&�&�(�F�%�=�3�6�0�)�!�=�=�F�%�1�8�0�&�&�(�F�+�=�F�<�0�?�3�6�0�:�-�3�6�0�)�,�"�c�w�"�=�=�=�M�&�&�F�<�0�?�F�=�(�F�+�3�6�e�9�)�%�3�6�0�-�3�6�0�*�~�~�(�F�/�3�6�0�)�:�"�c�c�w�"�=�=�=�M�&�&�0�<�F�&�&�(�F�=�(�F�-�3�6�e�9�)�%�3�6�0�-�3�6�0�*�~�~�(�F�/�3�6�0�)�)�)�,�y�.�_�p�t�=�g�=�n�e�w� �Q�(�y�.�_�p�t�,�b�,�_�,�w�,�F�,�C�i�)�,�g�.�e�=�v�,�g�.�u�=�"�d�e�g�"�,�y�.�_�p�r�o�p�s�.�p�u�s�h�(�_�)�;�c�o�n�t�i�n�u�e�}�i�f�(�"�s�m�o�o�t�h�O�r�i�g�i�n�"�=�=�=�c�)�{�P�n�(�t�h�i�s�,�f�,�"�s�m�o�o�t�h�"�,�f�.�s�m�o�o�t�h�,�r�)�;�c�o�n�t�i�n�u�e�}�i�f�(�"�f�o�r�c�e�3�D�"�=�=�=�c�)�{�f�[�c�]�=�r�;�c�o�n�t�i�n�u�e�}�i�f�(�"�t�r�a�n�s�f�o�r�m�"�=�=�=�c�)�{�D�=�O�=�A�=�O�=�E�=�k�=�C�=�M�=�L�=�v�o�i�d� �0�;�v�a�r� �C�,�k�,�E�,�A�,�O�,�D�,�$�=�t�h�i�s�,�F�=�r�,�I�=�t�,�L�=�V�i�(�{�}�,�I�.�_�g�s�a�p�)�,�M�=�I�.�s�t�y�l�e�;�f�o�r�(�k� �i�n� �L�.�s�v�g�?�(�E�=�I�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�)�,�I�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�,�"�"�)�,�M�[�G�]�=�F�,�C�=�V�n�(�I�,�1�)�,�M�n�(�I�,�G�)�,�I�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�r�a�n�s�f�o�r�m�"�,�E�)�)�:�(�E�=�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�I�)�[�G�]�,�M�[�G�]�=�F�,�C�=�V�n�(�I�,�1�)�,�M�[�G�]�=�E�)�,�_�n�)�(�E�=�L�[�k�]�)�!�=�=�(�O�=�C�[�k�]�)�&�&�"�p�e�r�s�p�e�c�t�i�v�e�,�f�o�r�c�e�3�D�,�t�r�a�n�s�f�o�r�m�O�r�i�g�i�n�,�s�v�g�O�r�i�g�i�n�"�.�i�n�d�e�x�O�f�(�k�)�<�0�&�&�(�A�=�q�(�E�)�!�=�=�(�D�=�q�(�O�)�)�?�R�n�(�I�,�k�,�E�,�D�)�:�p�a�r�s�e�F�l�o�a�t�(�E�)�,�O�=�p�a�r�s�e�F�l�o�a�t�(�O�)�,�$�.�_�p�t�=�n�e�w� �Q�(�$�.�_�p�t�,�C�,�k�,�A�,�O�-�A�,�x�i�)�,�$�.�_�p�t�.�u�=�D�|�|�0�,�$�.�_�p�r�o�p�s�.�p�u�s�h�(�k�)�)�;�V�i�(�C�,�L�)�;�c�o�n�t�i�n�u�e�}�}�e�l�s�e� �c� �i�n� �S�|�|�(�c�=�F�n�(�c�)�|�|�c�)�;�i�f�(�p�|�|�(�a�|�|�0�=�=�=�a�)�&�&�(�l�|�|�0�=�=�=�l�)�&�&�!�E�n�.�t�e�s�t�(�r�)�&�&�c� �i�n� �S�)�a�=�a�|�|�0�,�(�d�=�(�s�+�"�"�)�.�s�u�b�s�t�r�(�(�l�+�"�"�)�.�l�e�n�g�t�h�)�)�!�=�=�(�u�=�q�(�r�)�|�|�(�c� �i�n� �N�.�u�n�i�t�s�?�N�.�u�n�i�t�s�[�c�]�:�d�)�)�&�&�(�l�=�R�n�(�t�,�c�,�s�,�u�)�)�,�t�h�i�s�.�_�p�t�=�n�e�w� �Q�(�t�h�i�s�.�_�p�t�,�p�?�f�:�S�,�c�,�l�,�h�?�h�*�a�:�a�-�l�,�p�|�|�"�p�x�"�!�=�=�u�&�&�"�z�I�n�d�e�x�"�!�=�=�c�|�|�!�1�=�=�=�e�.�a�u�t�o�R�o�u�n�d�?�x�i�:�E�i�)�,�t�h�i�s�.�_�p�t�.�u�=�u�|�|�0�,�d�!�=�=�u�&�&�"�%�"�!�=�=�u�&�&�(�t�h�i�s�.�_�p�t�.�b�=�s�,�t�h�i�s�.�_�p�t�.�r�=�k�i�)�;�e�l�s�e� �i�f�(�c� �i�n� �S�)�j�i�.�c�a�l�l�(�t�h�i�s�,�t�,�c�,�s�,�r�)�;�e�l�s�e�{�i�f�(�!�(�c� �i�n� �t�)�)�{�f�e�(�c�,�r�)�;�c�o�n�t�i�n�u�e�}�t�h�i�s�.�a�d�d�(�t�,�c�,�s�|�|�t�[�c�]�,�r�,�n�,�o�)�}�T�.�p�u�s�h�(�c�)�}�z�&�&�f�i�(�t�h�i�s�)�}�,�g�e�t�:�N�i�,�a�l�i�a�s�e�s�:�A�n�,�g�e�t�S�e�t�t�e�r�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�=�A�n�[�e�]�;�r�e�t�u�r�n�(�e�=�n�&�&�n�.�i�n�d�e�x�O�f�(�"�,�"�)�<�0�?�n�:�e�)�i�n� �_�n�&�&�e�!�=�=�O�n�&�&�(�t�.�_�g�s�a�p�.�x�|�|�N�i�(�t�,�"�x�"�)�)�?�i�&�&�K�i�=�=�=�i�?�"�s�c�a�l�e�"�=�=�=�e�?�I�i�:�F�i�:�(�K�i�=�i�|�|�{�}�)�&�&�(�"�s�c�a�l�e�"�=�=�=�e�?�L�i�:�M�i�)�:�t�.�s�t�y�l�e�&�&�!�o�e�(�t�.�s�t�y�l�e�[�e�]�)�?�D�i�:�~�e�.�i�n�d�e�x�O�f�(�"�-�"�)�?�$�i�:�w�i�(�t�,�e�)�}�,�c�o�r�e�:�{�_�r�e�m�o�v�e�P�r�o�p�e�r�t�y�:�M�n�,�_�g�e�t�M�a�t�r�i�x�:�q�n�}�}�)�,�t�o�=�(�m�.�u�t�i�l�s�.�c�h�e�c�k�P�r�e�f�i�x�=�F�n�,�J�i�=�p�(�(�t�o�=�"�x�,�y�,�z�,�s�c�a�l�e�,�s�c�a�l�e�X�,�s�c�a�l�e�Y�,�x�P�e�r�c�e�n�t�,�y�P�e�r�c�e�n�t�"�
1)�+�"�,�"�+�(�e�o�=�"�r�o�t�a�t�i�o�n�,�r�o�t�a�t�i�o�n�X�,�r�o�t�a�t�i�o�n�Y�,�s�k�e�w�X�,�s�k�e�w�Y�"�)�+�"�,�t�r�a�n�s�f�o�r�m�,�t�r�a�n�s�f�o�r�m�O�r�i�g�i�n�,�s�v�g�O�r�i�g�i�n�,�f�o�r�c�e�3�D�,�s�m�o�o�t�h�O�r�i�g�i�n�,�t�r�a�n�s�f�o�r�m�P�e�r�s�p�e�c�t�i�v�e�"�,�f�u�n�c�t�i�o�n�(�t�)�{�_�n�[�t�]�=�1�}�)�,�p�(�e�o�,�f�u�n�c�t�i�o�n�(�t�)�{�N�.�u�n�i�t�s�[�t�]�=�"�d�e�g�"�,�B�n�[�t�]�=�1�}�)�,�A�n�[�J�i�[�1�3�]�]�=�t�o�+�"�,�"�+�e�o�,�p�(�"�0�:�t�r�a�n�s�l�a�t�e�X�,�1�:�t�r�a�n�s�l�a�t�e�Y�,�2�:�t�r�a�n�s�l�a�t�e�Z�,�8�:�r�o�t�a�t�e�,�8�:�r�o�t�a�t�i�o�n�Z�,�8�:�r�o�t�a�t�e�Z�,�9�:�r�o�t�a�t�e�X�,�1�0�:�r�o�t�a�t�e�Y�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�=�t�.�s�p�l�i�t�(�"�:�"�)�;�A�n�[�t�[�1�]�]�=�J�i�[�t�[�0�]�]�}�)�,�p�(�"�x�,�y�,�z�,�t�o�p�,�r�i�g�h�t�,�b�o�t�t�o�m�,�l�e�f�t�,�w�i�d�t�h�,�h�e�i�g�h�t�,�f�o�n�t�S�i�z�e�,�p�a�d�d�i�n�g�,�m�a�r�g�i�n�,�p�e�r�s�p�e�c�t�i�v�e�"�,�f�u�n�c�t�i�o�n�(�t�)�{�N�.�u�n�i�t�s�[�t�]�=�"�p�x�"�}�)�,�m�.�r�e�g�i�s�t�e�r�P�l�u�g�i�n�(�J�n�)�,�m�.�r�e�g�i�s�t�e�r�P�l�u�g�i�n�(�J�n�)�|�|�m�)�,�e�o�=�t�o�.�c�o�r�e�.�T�w�e�e�n�;�t�.�B�a�c�k�=�f�n�,�t�.�B�o�u�n�c�e�=�g�n�,�t�.�C�S�S�P�l�u�g�i�n�=�J�n�,�t�.�C�i�r�c�=�w�n�,�t�.�C�u�b�i�c�=�c�n�,�t�.�E�l�a�s�t�i�c�=�p�n�,�t�.�E�x�p�o�=�y�n�,�t�.�L�i�n�e�a�r�=�a�n�,�t�.�P�o�w�e�r�0�=�e�,�t�.�P�o�w�e�r�1�=�n�n�,�t�.�P�o�w�e�r�2�=�o�n�,�t�.�P�o�w�e�r�3�=�s�n�,�t�.�P�o�w�e�r�4�=�r�n�,�t�.�Q�u�a�d�=�l�n�,�t�.�Q�u�a�r�t�=�d�n�,�t�.�Q�u�i�n�t�=�u�n�,�t�.�S�i�n�e�=�v�n�,�t�.�S�t�e�p�p�e�d�E�a�s�e�=�m�n�,�t�.�S�t�r�o�n�g�=�h�n�,�t�.�T�i�m�e�l�i�n�e�L�i�t�e�=�U�,�t�.�T�i�m�e�l�i�n�e�M�a�x�=�U�,�t�.�T�w�e�e�n�L�i�t�e�=�Y�,�t�.�T�w�e�e�n�M�a�x�=�e�o�,�t�.�d�e�f�a�u�l�t�=�t�o�,�t�.�g�s�a�p�=�t�o�,�"�u�n�d�e�f�i�n�e�d�"�=�=�t�y�p�e�o�f� �w�i�n�d�o�w�|�|�w�i�n�d�o�w�!�=�=�t�?�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�t�,�"�_�_�e�s�M�o�d�u�l�e�"�,�{�v�a�l�u�e�:�!�0�}�)�:�d�e�l�e�t�e� �w�i�n�d�o�w�.�d�e�f�a�u�l�t�}�)�,�!�f�u�n�c�t�i�o�n�(�t�,�e�)�{�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�e�)�:�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�?�m�o�d�u�l�e�.�e�x�p�o�r�t�s�=�e�(�)�:�t�.�S�c�r�o�l�l�M�a�g�i�c�=�e�(�)�}�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �P�(�)�{�N�.�l�o�g�(�2�,�"�(�C�O�M�P�A�T�I�B�I�L�I�T�Y� �N�O�T�I�C�E�)� �-�>� �A�s� �o�f� �S�c�r�o�l�l�M�a�g�i�c� �2�.�0�.�0� �y�o�u� �n�e�e�d� �t�o� �u�s�e� �'�n�e�w� �S�c�r�o�l�l�M�a�g�i�c�.�C�o�n�t�r�o�l�l�e�r�(�)�'� �t�o� �c�r�e�a�t�e� �a� �n�e�w� �c�o�n�t�r�o�l�l�e�r� �i�n�s�t�a�n�c�e�.� �U�s�e� �'�n�e�w� �S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e�(�)�'� �t�o� �i�n�s�t�a�n�c�e� �a� �s�c�e�n�e�.�"�)�}�P�.�v�e�r�s�i�o�n�=�"�2�.�0�.�8�"�,�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�&�&�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�w�h�e�e�l�"�,�v�o�i�d� �0�)�;�v�a�r� �z�=�"�d�a�t�a�-�s�c�r�o�l�l�m�a�g�i�c�-�p�i�n�-�s�p�a�c�e�r�"�,�A�=�(�P�.�C�o�n�t�r�o�l�l�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�f�u�n�c�t�i�o�n� �n�(�t�)�{�r�e�t�u�r�n� �t�.�l�e�n�g�t�h�<�=�1�?�t�:�(�(�t�=�t�.�s�l�i�c�e�(�0�)�)�.�s�o�r�t�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�.�s�c�r�o�l�l�O�f�f�s�e�t�(�)�>�e�.�s�c�r�o�l�l�O�f�f�s�e�t�(�)�?�1�:�-�1�}�)�,�t�)�}�v�a�r� �i�,�o�,�e�,�s�=�"�S�c�r�o�l�l�M�a�g�i�c�.�C�o�n�t�r�o�l�l�e�r�"�,�r�=�"�F�O�R�W�A�R�D�"�,�a�=�"�R�E�V�E�R�S�E�"�,�l�=�"�P�A�U�S�E�D�"�,�c�=�A�.�d�e�f�a�u�l�t�s�,�d�=�t�h�i�s�,�u�=�N�.�e�x�t�e�n�d�(�{�}�,�c�,�t�)�,�h�=�[�]�,�p�=�!�1�,�f�=�0�,�m�=�l�,�g�=�!�0�,�v�=�0�,�y�=�!�0�,�w�=�f�u�n�c�t�i�o�n�(�)�{�0�<�u�.�r�e�f�r�e�s�h�I�n�t�e�r�v�a�l�&�&�(�o�=�w�i�n�d�o�w�.�s�e�t�T�i�m�e�o�u�t�(�k�,�u�.�r�e�f�r�e�s�h�I�n�t�e�r�v�a�l�)�)�}�,�b�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �u�.�v�e�r�t�i�c�a�l�?�N�.�g�e�t�.�s�c�r�o�l�l�T�o�p�(�u�.�c�o�n�t�a�i�n�e�r�)�:�N�.�g�e�t�.�s�c�r�o�l�l�L�e�f�t�(�u�.�c�o�n�t�a�i�n�e�r�)�}�,�_�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �u�.�v�e�r�t�i�c�a�l�?�N�.�g�e�t�.�h�e�i�g�h�t�(�u�.�c�o�n�t�a�i�n�e�r�)�:�N�.�g�e�t�.�w�i�d�t�h�(�u�.�c�o�n�t�a�i�n�e�r�)�}�,�T�=�t�h�i�s�.�_�s�e�t�S�c�r�o�l�l�P�o�s�=�f�u�n�c�t�i�o�n�(�t�)�{�u�.�v�e�r�t�i�c�a�l�?�g�?�w�i�n�d�o�w�.�s�c�r�o�l�l�T�o�(�N�.�g�e�t�.�s�c�r�o�l�l�L�e�f�t�(�)�,�t�)�:�u�.�c�o�n�t�a�i�n�e�r�.�s�c�r�o�l�l�T�o�p�=�t�:�g�?�w�i�n�d�o�w�.�s�c�r�o�l�l�T�o�(�t�,�N�.�g�e�t�.�s�c�r�o�l�l�T�o�p�(�)�)�:�u�.�c�o�n�t�a�i�n�e�r�.�s�c�r�o�l�l�L�e�f�t�=�t�}�,�S�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�,�t�;�y�&�&�p�&�&�(�i�=�N�.�t�y�p�e�.�A�r�r�a�y�(�p�)�?�p�:�h�.�s�l�i�c�e�(�0�)�,�p�=�!�1�,�t�=�f�,�t�=�(�f�=�d�.�s�c�r�o�l�l�P�o�s�(�)�)�-�t�,�(�m�=�0�!�=�t�?�0�<�t�?�r�:�a�:�m�)�=�=�=�a�&�&�i�.�r�e�v�e�r�s�e�(�)�,�i�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�E�(�3�,�"�u�p�d�a�t�i�n�g� �S�c�e�n�e� �"�+�(�e�+�1�)�+�"�/�"�+�i�.�l�e�n�g�t�h�+�"� �(�"�+�h�.�l�e�n�g�t�h�+�"� �t�o�t�a�l�)�"�)�,�t�.�u�p�d�a�t�e�(�!�0�)�}�)�,�0�=�=�=�i�.�l�e�n�g�t�h�&�&�3�<�=�u�.�l�o�g�l�e�v�e�l�&�&�E�(�3�,�"�u�p�d�a�t�i�n�g� �0� �S�c�e�n�e�s� �(�n�o�t�h�i�n�g� �a�d�d�e�d� �t�o� �c�o�n�t�r�o�l�l�e�r�)�"�)�)�}�,�x�=�f�u�n�c�t�i�o�n�(�)�{�i�=�N�.�r�A�F�(�S�)�}�,�C�=�f�u�n�c�t�i�o�n�(�t�)�{�E�(�3�,�"�e�v�e�n�t� �f�i�r�e�d� �c�a�u�s�i�n�g� �a�n� �u�p�d�a�t�e�:�"�,�t�.�t�y�p�e�)�,�"�r�e�s�i�z�e�"�=�=�t�.�t�y�p�e�&�&�(�v�=�_�(�)�,�m�=�l�)�,�!�0�!�=�=�p�&�&�(�p�=�!�0�,�x�(�)�)�}�,�k�=�f�u�n�c�t�i�o�n�(�)�{�i�f�(�!�g�&�&�v�!�=�_�(�)�)�{�v�a�r� �e�;�t�r�y�{�e�=�n�e�w� �E�v�e�n�t�(�"�r�e�s�i�z�e�"�,�{�b�u�b�b�l�e�s�:�!�1�,�c�a�n�c�e�l�a�b�l�e�:�!�1�}�)�}�c�a�t�c�h�(�t�)�{�(�e�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�v�e�n�t�(�"�E�v�e�n�t�"�
1)�)�.�i�n�i�t�E�v�e�n�t�(�"�r�e�s�i�z�e�"�,�!�1�,�!�1�)�}�u�.�c�o�n�t�a�i�n�e�r�.�d�i�s�p�a�t�c�h�E�v�e�n�t�(�e�)�}�h�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�.�r�e�f�r�e�s�h�(�)�}�)�,�w�(�)�}�,�E�=�t�h�i�s�.�_�l�o�g�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�u�.�l�o�g�l�e�v�e�l�>�=�t�&�&�(�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�p�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�,�0�,�"�(�"�+�s�+�"�)� �-�>�"�)�,�N�.�l�o�g�.�a�p�p�l�y�(�w�i�n�d�o�w�,�a�r�g�u�m�e�n�t�s�)�)�}�;�t�h�i�s�.�_�o�p�t�i�o�n�s�=�u�;�f�o�r�(�e� �i�n� �t�h�i�s�.�a�d�d�S�c�e�n�e�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�N�.�t�y�p�e�.�A�r�r�a�y�(�t�)�)�t�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�d�.�a�d�d�S�c�e�n�e�(�t�)�}�)�;�e�l�s�e� �i�f�(�t� �i�n�s�t�a�n�c�e�o�f� �P�.�S�c�e�n�e�)�{�i�f�(�t�.�c�o�n�t�r�o�l�l�e�r�(�)�!�=�=�d�)�t�.�a�d�d�T�o�(�d�)�;�e�l�s�e� �i�f�(�h�.�i�n�d�e�x�O�f�(�t�)�<�0�)�{�f�o�r�(�v�a�r� �e� �i�n� �h�.�p�u�s�h�(�t�)�,�h�=�n�(�h�)�,�t�.�o�n�(�"�s�h�i�f�t�.�c�o�n�t�r�o�l�l�e�r�_�s�o�r�t�"�,�f�u�n�c�t�i�o�n�(�)�{�h�=�n�(�h�)�}�)�,�u�.�g�l�o�b�a�l�S�c�e�n�e�O�p�t�i�o�n�s�)�t�[�e�]�&�&�t�[�e�]�.�c�a�l�l�(�t�,�u�.�g�l�o�b�a�l�S�c�e�n�e�O�p�t�i�o�n�s�[�e�]�)�;�E�(�3�,�"�a�d�d�i�n�g� �S�c�e�n�e� �(�n�o�w� �"�+�h�.�l�e�n�g�t�h�+�"� �t�o�t�a�l�)�"�)�}�}�e�l�s�e� �E�(�1�,�"�E�R�R�O�R�:� �i�n�v�a�l�i�d� �a�r�g�u�m�e�n�t� �s�u�p�p�l�i�e�d� �f�o�r� �'�.�a�d�d�S�c�e�n�e�(�)�'�"�)�;�r�e�t�u�r�n� �d�}�,�t�h�i�s�.�r�e�m�o�v�e�S�c�e�n�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�r�e�t�u�r�n� �N�.�t�y�p�e�.�A�r�r�a�y�(�t�)�?�t�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�d�.�r�e�m�o�v�e�S�c�e�n�e�(�t�)�}�)�:�-�1�<�(�e�=�h�.�i�n�d�e�x�O�f�(�t�)�)�&�&�(�t�.�o�f�f�(�"�s�h�i�f�t�.�c�o�n�t�r�o�l�l�e�r�_�s�o�r�t�"�)�,�h�.�s�p�l�i�c�e�(�e�,�1�)�,�E�(�3�,�"�r�e�m�o�v�i�n�g� �S�c�e�n�e� �(�n�o�w� �"�+�h�.�l�e�n�g�t�h�+�"� �l�e�f�t�)�"�)�,�t�.�r�e�m�o�v�e�(�)�)�,�d�}�,�t�h�i�s�.�u�p�d�a�t�e�S�c�e�n�e�=�f�u�n�c�t�i�o�n�(�t�,�i�)�{�r�e�t�u�r�n� �N�.�t�y�p�e�.�A�r�r�a�y�(�t�)�?�t�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�d�.�u�p�d�a�t�e�S�c�e�n�e�(�t�,�i�)�}�)�:�i�?�t�.�u�p�d�a�t�e�(�!�0�)�:�!�0�!�=�=�p�&�&�t� �i�n�s�t�a�n�c�e�o�f� �P�.�S�c�e�n�e�&�&�(�-�1�=�=�(�p�=�p�|�|�[�]�)�.�i�n�d�e�x�O�f�(�t�)�&�&�p�.�p�u�s�h�(�t�)�,�p�=�n�(�p�)�,�x�(�)�)�,�d�}�,�t�h�i�s�.�u�p�d�a�t�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �C�(�{�t�y�p�e�:�"�r�e�s�i�z�e�"�}�)�,�t�&�&�S�(�)�,�d�}�,�t�h�i�s�.�s�c�r�o�l�l�T�o�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�N�.�t�y�p�e�.�N�u�m�b�e�r�(�t�)�)�T�.�c�a�l�l�(�u�.�c�o�n�t�a�i�n�e�r�,�t�,�e�)�;�e�l�s�e� �i�f�(�t� �i�n�s�t�a�n�c�e�o�f� �P�.�S�c�e�n�e�)�t�.�c�o�n�t�r�o�l�l�e�r�(�)�=�=�=�d�?�d�.�s�c�r�o�l�l�T�o�(�t�.�s�c�r�o�l�l�O�f�f�s�e�t�(�)�,�e�)�:�E�(�2�,�"�s�c�r�o�l�l�T�o�(�)�:� �T�h�e� �s�u�p�p�l�i�e�d� �s�c�e�n�e� �d�o�e�s� �n�o�t� �b�e�l�o�n�g� �t�o� �t�h�i�s� �c�o�n�t�r�o�l�l�e�r�.� �S�c�r�o�l�l� �c�a�n�c�e�l�l�e�d�.�"�,�t�)�;�e�l�s�e� �i�f�(�N�.�t�y�p�e�.�F�u�n�c�t�i�o�n�(�t�)�)�T�=�t�;�e�l�s�e�{�v�a�r� �i�=�N�.�g�e�t�.�e�l�e�m�e�n�t�s�(�t�)�[�0�]�;�i�f�(�i�)�{�f�o�r�(�;�i�.�p�a�r�e�n�t�N�o�d�e�.�h�a�s�A�t�t�r�i�b�u�t�e�(�z�)�;�)�i�=�i�.�p�a�r�e�n�t�N�o�d�e�;�v�a�r� �n�=�u�.�v�e�r�t�i�c�a�l�?�"�t�o�p�"�:�"�l�e�f�t�"�,�o�=�N�.�g�e�t�.�o�f�f�s�e�t�(�u�.�c�o�n�t�a�i�n�e�r�)�,�s�=�N�.�g�e�t�.�o�f�f�s�e�t�(�i�)�;�g�|�|�(�o�[�n�]�-�=�d�.�s�c�r�o�l�l�P�o�s�(�)�)�,�d�.�s�c�r�o�l�l�T�o�(�s�[�n�]�-�o�[�n�]�,�e�)�}�e�l�s�e� �E�(�2�,�"�s�c�r�o�l�l�T�o�(�)�:� �T�h�e� �s�u�p�p�l�i�e�d� �a�r�g�u�m�e�n�t� �i�s� �i�n�v�a�l�i�d�.� �S�c�r�o�l�l� �c�a�n�c�e�l�l�e�d�.�"�,�t�)�}�r�e�t�u�r�n� �d�}�,�t�h�i�s�.�s�c�r�o�l�l�P�o�s�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�N�.�t�y�p�e�.�F�u�n�c�t�i�o�n�(�t�)�?�b�=�t�:�E�(�2�,�"�P�r�o�v�i�d�e�d� �v�a�l�u�e� �f�o�r� �m�e�t�h�o�d� �'�s�c�r�o�l�l�P�o�s�'� �i�s� �n�o�t� �a� �f�u�n�c�t�i�o�n�.� �T�o� �c�h�a�n�g�e� �t�h�e� �c�u�r�r�e�n�t� �s�c�r�o�l�l� �p�o�s�i�t�i�o�n� �u�s�e� �'�s�c�r�o�l�l�T�o�(�)�'�.�"�)�,�d�)�:�b�.�c�a�l�l�(�d�)�}�,�t�h�i�s�.�i�n�f�o�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�{�s�i�z�e�:�v�,�v�e�r�t�i�c�a�l�:�u�.�v�e�r�t�i�c�a�l�,�s�c�r�o�l�l�P�o�s�:�f�,�s�c�r�o�l�l�D�i�r�e�c�t�i�o�n�:�m�,�c�o�n�t�a�i�n�e�r�:�u�.�c�o�n�t�a�i�n�e�r�,�i�s�D�o�c�u�m�e�n�t�:�g�}�;�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�v�o�i�d� �0�!�=�=�e�[�t�]�?�e�[�t�]�:�v�o�i�d� �E�(�1�,�'�E�R�R�O�R�:� �o�p�t�i�o�n� �"�'�+�t�+�'�"� �i�s� �n�o�t� �a�v�a�i�l�a�b�l�e�'�)�:�e�}�,�t�h�i�s�.�l�o�g�l�e�v�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�u�.�l�o�g�l�e�v�e�l�!�=�t�&�&�(�u�.�l�o�g�l�e�v�e�l�=�t�)�,�d�)�:�u�.�l�o�g�l�e�v�e�l�}�,�t�h�i�s�.�e�n�a�b�l�e�d�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�y�!�=�t�&�&�(�y�=�!�!�t�,�d�.�u�p�d�a�t�e�S�c�e�n�e�(�h�,�!�0�)�)�,�d�)�:�y�}�,�t�h�i�s�.�d�e�s�t�r�o�y�=�f�u�n�c�t�i�o�n�(�t�)�{�w�i�n�d�o�w�.�c�l�e�a�r�T�i�m�e�o�u�t�(�o�)�;�f�o�r�(�v�a�r� �e�=�h�.�l�e�n�g�t�h�;�e�-�-�;�)�h�[�e�]�.�d�e�s�t�r�o�y�(�t�)�;�r�e�t�u�r�n� �u�.�c�o�n�t�a�i�n�e�r�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�C�)�,�u�.�c�o�n�t�a�i�n�e�r�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�C�)�,�N�.�c�A�F�(�i�)�,�E�(�3�,�"�d�e�s�t�r�o�y�e�d� �"�+�s�+�"� �(�r�e�s�e�t�:� �"�+�(�t�?�"�t�r�u�e�"�:�"�f�a�l�s�e�"�)�+�"�)�"�)�,�n�u�l�l�}�,�u�)�c�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�e�)�|�|�(�E�(�2�,�'�W�A�R�N�I�N�G�:� �U�n�k�n�o�w�n� �o�p�t�i�o�n� �"�'�+�e�+�'�"�'�)�,�d�e�l�e�t�e� �u�[�e�]�)�;�i�f�(�u�.�c�o�n�t�a�i�n�e�r�=�N�.�g�e�t�.�e�l�e�m�e�n�t�s�(�u�.�c�o�n�t�a�i�n�e�r�)�[�0�]�,�!�u�.�c�o�n�t�a�i�n�e�r�)�t�h�r�o�w� �E�(�1�,�"�E�R�R�O�R� �c�r�e�a�t�i�n�g� �o�b�j�e�c�t� �"�+�s�+�"�:� �N�o� �v�a�l�i�d� �s�c�r�o�l�l� �c�o�n�t�a�i�n�e�r� �s�u�p�p�l�i�e�d�"�)�,�s�+�"� �i�n�i�t� �f�a�i�l�e�d�.�"�;�(�g�=�u�.�c�o�n�t�a�i�n�e�r�=�=�=�w�i�n�d�o�w�|�|�u�.�c�o�n�t�a�i�n�e�r�=�=�=�d�o�c�u�m�e�n�t�.�b�o�d�y�|�|�!�d�o�c�u�m�e�n�t�.�b�o�d�y�.�c�o�n�t�a�i�n�s�(�u�.�c�o�n�t�a�i�n�e�r�)�)�&�&�(�u�.�c�o�n�t�a�i�n�e�r�=�w�i�n�d�o�w�)�,�v�=�_�(�)�,�u�.�c�o�n�t�a�i�n�e�r�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�C�)�,�u�.�c�o�n�t�a�i�n�e�r�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�C�)�;�t�=�p�a�r�s�e�I�n�t�(�u�.�r�e�f�r�e�s�h�I�n�t�e�r�v�a�l�,�1�0�)�;�r�e�t�u�r�n� �u�.�r�e�f�r�e�s�h�I�n�t�e�r�v�a�l�=�N�.�t�y�p�e�.�N�u�m�b�e�r�(�t�)�?�t�:�c�.�r�e�f�r�e�s�h�I�n�t�e�r�v�a�l�,�w�(�)�,�E�(�3�,�"�a�d�d�e�d� �n�e�w� �"�+�s�+�"� �c�o�n�t�r�o�l�l�e�r� �(�v�"�+�P�.�v�e�r�s�i�o�n�+�"�)�"�)�,�d�}�,�{�d�e�f�a�u�l�t�s�:�{�c�o�n�t�a�i�n�e�r�:�w�i�n�d�o�w�,�v�e�r�t�i�c�a�l�:�!�0�,�g�l�o�b�a�l�S�c�e�n�e�O�p�t�i�o�n�s�:�{�}�,�l�o�g�l�e�v�e�l�:�2�,�r�e�f�r�e�s�h�I�n�t�e�r�v�a�l�:�1�0�0�}�}�)�,�R�=�(�P�.�C�o�n�t�r�o�l�l�e�r�.�a�d�d�O�p�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�A�.�d�e�f�a�u�l�t�s�[
1�t�]�=�e�}�,�P�.�C�o�n�t�r�o�l�l�e�r�.�e�x�t�e�n�d�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�P�.�C�o�n�t�r�o�l�l�e�r�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�,�t�h�i�s�.�$�s�u�p�e�r�=�N�.�e�x�t�e�n�d�(�{�}�,�t�h�i�s�)�,�t�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�|�|�t�h�i�s�}�,�N�.�e�x�t�e�n�d�(�P�.�C�o�n�t�r�o�l�l�e�r�,�e�)�,�P�.�C�o�n�t�r�o�l�l�e�r�.�p�r�o�t�o�t�y�p�e�=�e�.�p�r�o�t�o�t�y�p�e�,�P�.�C�o�n�t�r�o�l�l�e�r�.�p�r�o�t�o�t�y�p�e�.�c�o�n�s�t�r�u�c�t�o�r�=�P�.�C�o�n�t�r�o�l�l�e�r�}�,�{�d�e�f�a�u�l�t�s�:�{�d�u�r�a�t�i�o�n�:�0�,�o�f�f�s�e�t�:�0�,�t�r�i�g�g�e�r�E�l�e�m�e�n�t�:�v�o�i�d� �0�,�t�r�i�g�g�e�r�H�o�o�k�:�.�5�,�r�e�v�e�r�s�e�:�!�0�,�l�o�g�l�e�v�e�l�:�2�}�,�v�a�l�i�d�a�t�e�:�{�o�f�f�s�e�t�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�t�=�p�a�r�s�e�F�l�o�a�t�(�t�)�,�N�.�t�y�p�e�.�N�u�m�b�e�r�(�t�)�)�r�e�t�u�r�n� �t�;�t�h�r�o�w�[�'�I�n�v�a�l�i�d� �v�a�l�u�e� �f�o�r� �o�p�t�i�o�n� �"�o�f�f�s�e�t�"�:�'�,�t�]�}�,�t�r�i�g�g�e�r�E�l�e�m�e�n�t�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�t�=�t�|�|�v�o�i�d� �0�)�{�v�a�r� �e�=�N�.�g�e�t�.�e�l�e�m�e�n�t�s�(�t�)�[�0�]�;�i�f�(�!�e�|�|�!�e�.�p�a�r�e�n�t�N�o�d�e�)�t�h�r�o�w�[�'�E�l�e�m�e�n�t� �d�e�f�i�n�e�d� �i�n� �o�p�t�i�o�n� �"�t�r�i�g�g�e�r�E�l�e�m�e�n�t�"� �w�a�s� �n�o�t� �f�o�u�n�d�:�'�,�t�]�;�t�=�e�}�r�e�t�u�r�n� �t�}�,�t�r�i�g�g�e�r�H�o�o�k�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�{�o�n�C�e�n�t�e�r�:�.�5�,�o�n�E�n�t�e�r�:�1�,�o�n�L�e�a�v�e�:�0�}�;�i�f�(�N�.�t�y�p�e�.�N�u�m�b�e�r�(�t�)�)�t�=�M�a�t�h�.�m�a�x�(�0�,�M�a�t�h�.�m�i�n�(�p�a�r�s�e�F�l�o�a�t�(�t�)�,�1�)�)�;�e�l�s�e�{�i�f�(�!�(�t� �i�n� �e�)�)�t�h�r�o�w�[�'�I�n�v�a�l�i�d� �v�a�l�u�e� �f�o�r� �o�p�t�i�o�n� �"�t�r�i�g�g�e�r�H�o�o�k�"�:� �'�,�t�]�;�t�=�e�[�t�]�}�r�e�t�u�r�n� �t�}�,�r�e�v�e�r�s�e�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�!�t�}�,�l�o�g�l�e�v�e�l�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�t�=�p�a�r�s�e�I�n�t�(�t�)�,�!�N�.�t�y�p�e�.�N�u�m�b�e�r�(�t�)�|�|�t�<�0�|�|�3�<�t�)�t�h�r�o�w�[�'�I�n�v�a�l�i�d� �v�a�l�u�e� �f�o�r� �o�p�t�i�o�n� �"�l�o�g�l�e�v�e�l�"�:�'�,�t�]�;�r�e�t�u�r�n� �t�}�}�,�s�h�i�f�t�s�:�[�"�d�u�r�a�t�i�o�n�"�,�"�o�f�f�s�e�t�"�,�"�t�r�i�g�g�e�r�H�o�o�k�"�]�}�)�,�N�=�(�(�P�.�S�c�e�n�e�=�f�u�n�c�t�i�o�n�(�t�)�{�f�u�n�c�t�i�o�n� �c�(�)�{�a�&�&�h�&�&�v�=�=�=�l�&�&�!�a�.�i�n�f�o�(�"�i�s�D�o�c�u�m�e�n�t�"�)�&�&�D�(�)�}�f�u�n�c�t�i�o�n� �d�(�)�{�a�&�&�h�&�&�v�=�=�=�l�&�&�(�(�p�.�r�e�l�S�i�z�e�.�w�i�d�t�h�|�|�p�.�r�e�l�S�i�z�e�.�a�u�t�o�F�u�l�l�W�i�d�t�h�)�&�&�N�.�g�e�t�.�w�i�d�t�h�(�w�i�n�d�o�w�)�!�=�N�.�g�e�t�.�w�i�d�t�h�(�p�.�s�p�a�c�e�r�.�p�a�r�e�n�t�N�o�d�e�)�|�|�p�.�r�e�l�S�i�z�e�.�h�e�i�g�h�t�&�&�N�.�g�e�t�.�h�e�i�g�h�t�(�w�i�n�d�o�w�)�!�=�N�.�g�e�t�.�h�e�i�g�h�t�(�p�.�s�p�a�c�e�r�.�p�a�r�e�n�t�N�o�d�e�)�)�&�&�$�(�)�}�f�u�n�c�t�i�o�n� �u�(�t�)�{�a�&�&�h�&�&�v�=�=�=�l�&�&�!�a�.�i�n�f�o�(�"�i�s�D�o�c�u�m�e�n�t�"�)�&�&�(�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�a�.�_�s�e�t�S�c�r�o�l�l�P�o�s�(�a�.�i�n�f�o�(�"�s�c�r�o�l�l�P�o�s�"�)�-�(�(�t�.�w�h�e�e�l�D�e�l�t�a�|�|�t�[�a�.�i�n�f�o�(�"�v�e�r�t�i�c�a�l�"�)�?�"�w�h�e�e�l�D�e�l�t�a�Y�"�:�"�w�h�e�e�l�D�e�l�t�a�X�"�]�)�/�3�|�|�3�0�*�-�t�.�d�e�t�a�i�l�)�)�)�}�v�a�r� �i�,�a�,�h�,�p�,�n�=�"�S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e�"�,�r�=�"�B�E�F�O�R�E�"�,�l�=�"�D�U�R�I�N�G�"�,�f�=�"�A�F�T�E�R�"�,�o�=�R�.�d�e�f�a�u�l�t�s�,�m�=�t�h�i�s�,�g�=�N�.�e�x�t�e�n�d�(�{�}�,�o�,�t�)�,�v�=�r�,�y�=�0�,�s�=�{�s�t�a�r�t�:�0�,�e�n�d�:�0�}�,�w�=�0�,�b�=�!�0�,�_�=�{�}�,�T�=�(�t�h�i�s�.�o�n�=�f�u�n�c�t�i�o�n�(�t�,�i�)�{�r�e�t�u�r�n� �N�.�t�y�p�e�.�F�u�n�c�t�i�o�n�(�i�)�?�(�t�=�t�.�t�r�i�m�(�)�.�s�p�l�i�t�(�"� �"�)�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �t�=�t�.�s�p�l�i�t�(�"�.�"�)�,�e�=�t�[�0�]�,�t�=�t�[�1�]�;�"�*�"�!�=�e�&�&�(�_�[�e�]�|�|�(�_�[�e�]�=�[�]�)�,�_�[�e�]�.�p�u�s�h�(�{�n�a�m�e�s�p�a�c�e�:�t�|�|�"�"�,�c�a�l�l�b�a�c�k�:�i�}�)�)�}�)�:�T�(�1�,�"�E�R�R�O�R� �w�h�e�n� �c�a�l�l�i�n�g� �'�.�o�n�(�)�'�:� �S�u�p�p�l�i�e�d� �c�a�l�l�b�a�c�k� �f�o�r� �'�"�+�t�+�"�'� �i�s� �n�o�t� �a� �v�a�l�i�d� �f�u�n�c�t�i�o�n�!�"�)�,�m�}�,�t�h�i�s�.�o�f�f�=�f�u�n�c�t�i�o�n�(�t�,�s�)�{�r�e�t�u�r�n� �t�?�(�t�=�t�.�t�r�i�m�(�)�.�s�p�l�i�t�(�"� �"�)�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �t�=�t�.�s�p�l�i�t�(�"�.�"�
1)�,�i�=�t�[�0�]�,�o�=�t�[�1�]�|�|�"�"�;�(�"�*�"�=�=�=�i�?�O�b�j�e�c�t�.�k�e�y�s�(�_�)�:�[�i�]�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�=�_�[�t�]�|�|�[�]�,�i�=�e�.�l�e�n�g�t�h�;�i�-�-�;�)�{�v�a�r� �n�=�e�[�i�]�;�!�n�|�|�o�!�=�=�n�.�n�a�m�e�s�p�a�c�e�&�&�"�*�"�!�=�=�o�|�|�s�&�&�s�!�=�n�.�c�a�l�l�b�a�c�k�|�|�e�.�s�p�l�i�c�e�(�i�,�1�)�}�e�.�l�e�n�g�t�h�|�|�d�e�l�e�t�e� �_�[�t�]�}�)�}�)�:�T�(�1�,�"�E�R�R�O�R�:� �I�n�v�a�l�i�d� �e�v�e�n�t� �n�a�m�e� �s�u�p�p�l�i�e�d�.�"�)�,�m�}�,�t�h�i�s�.�t�r�i�g�g�e�r�=�f�u�n�c�t�i�o�n�(�t�,�i�)�{�v�a�r� �n�,�o�;�r�e�t�u�r�n� �t�?�(�t�=�t�.�t�r�i�m�(�)�.�s�p�l�i�t�(�"�.�"�)�,�n�=�t�[�0�]�,�o�=�t�[�1�]�,�t�=�_�[�n�]�,�T�(�3�,�"�e�v�e�n�t� �f�i�r�e�d�:�"�,�n�,�i�?�"�-�>�"�:�"�"�,�i�|�|�"�"�)�,�t�&�&�t�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�o�&�&�o�!�=�=�t�.�n�a�m�e�s�p�a�c�e�|�|�t�.�c�a�l�l�b�a�c�k�.�c�a�l�l�(�m�,�n�e�w� �P�.�E�v�e�n�t�(�n�,�t�.�n�a�m�e�s�p�a�c�e�,�m�,�i�)�)�}�)�)�:�T�(�1�,�"�E�R�R�O�R�:� �I�n�v�a�l�i�d� �e�v�e�n�t� �n�a�m�e� �s�u�p�p�l�i�e�d�.�"�)�,�m�}�,�m�.�o�n�(�"�c�h�a�n�g�e�.�i�n�t�e�r�n�a�l�"�,�f�u�n�c�t�i�o�n�(�t�)�{�"�l�o�g�l�e�v�e�l�"�!�=�=�t�.�w�h�a�t�&�&�"�t�w�e�e�n�C�h�a�n�g�e�s�"�!�=�=�t�.�w�h�a�t�&�&�(�"�t�r�i�g�g�e�r�E�l�e�m�e�n�t�"�=�=�=�t�.�w�h�a�t�?�x�(�)�:�"�r�e�v�e�r�s�e�"�=�=�=�t�.�w�h�a�t�&�&�m�.�u�p�d�a�t�e�(�)�)�}�)�.�o�n�(�"�s�h�i�f�t�.�i�n�t�e�r�n�a�l�"�,�f�u�n�c�t�i�o�n�(�t�)�{�e�(�)�,�m�.�u�p�d�a�t�e�(�)�}�)�,�t�h�i�s�.�_�l�o�g�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�g�.�l�o�g�l�e�v�e�l�>�=�t�&�&�(�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�p�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�,�0�,�"�(�"�+�n�+�"�)� �-�>�"�)�,�N�.�l�o�g�.�a�p�p�l�y�(�w�i�n�d�o�w�,�a�r�g�u�m�e�n�t�s�)�)�}�)�,�e�=�(�t�h�i�s�.�a�d�d�T�o�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t� �i�n�s�t�a�n�c�e�o�f� �P�.�C�o�n�t�r�o�l�l�e�r�?�a�!�=�t�&�&�(�a�&�&�a�.�r�e�m�o�v�e�S�c�e�n�e�(�m�)�,�a�=�t�,�E�(�)�,�S�(�!�0�)�,�x�(�!�0�)�,�e�(�)�,�a�.�i�n�f�o�(�"�c�o�n�t�a�i�n�e�r�"�)�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�C�)�,�t�.
1�a�d�d�S�c�e�n�e�(�m�)�,�m�.�t�r�i�g�g�e�r�(�"�a�d�d�"�,�{�c�o�n�t�r�o�l�l�e�r�:�a�}�)�,�T�(�3�,�"�a�d�d�e�d� �"�+�n�+�"� �t�o� �c�o�n�t�r�o�l�l�e�r�"�)�,�m�.�u�p�d�a�t�e�(�)�)�:�T�(�1�,�"�E�R�R�O�R�:� �s�u�p�p�l�i�e�d� �a�r�g�u�m�e�n�t� �o�f� �'�a�d�d�T�o�(�)�'� �i�s� �n�o�t� �a� �v�a�l�i�d� �S�c�r�o�l�l�M�a�g�i�c� �C�o�n�t�r�o�l�l�e�r�"�)�,�m�}�,�t�h�i�s�.�e�n�a�b�l�e�d�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�b�!�=�t�&�&�(�b�=�!�!�t�,�m�.�u�p�d�a�t�e�(�!�0�)�)�,�m�)�:�b�}�,�t�h�i�s�.�r�e�m�o�v�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�r�e�t�u�r�n� �a�&�&�(�a�.�i�n�f�o�(�"�c�o�n�t�a�i�n�e�r�"�)�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�C�)�,�t�=�a�,�a�=�v�o�i�d� �0�,�t�.�r�e�m�o�v�e�S�c�e�n�e�(�m�)�,�m�.�t�r�i�g�g�e�r�(�"�r�e�m�o�v�e�"�)�,�T�(�3�,�"�r�e�m�o�v�e�d� �"�+�n�+�"� �f�r�o�m� �c�o�n�t�r�o�l�l�e�r�"�)�)�,�m�}�,�t�h�i�s�.�d�e�s�t�r�o�y�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �m�.�t�r�i�g�g�e�r�(�"�d�e�s�t�r�o�y�"�,�{�r�e�s�e�t�:�t�}�)�,�m�.�r�e�m�o�v�e�(�)�,�m�.�o�f�f�(�"�*�.�*�"�)�,�T�(�3�,�"�d�e�s�t�r�o�y�e�d� �"�+�n�+�"� �(�r�e�s�e�t�:� �"�+�(�t�?�"�t�r�u�e�"�:�"�f�a�l�s�e�"�)�+�"�)�"�)�,�n�u�l�l�}�,�t�h�i�s�.�u�p�d�a�t�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�r�e�t�u�r�n� �a�&�&�(�t�?�a�.�e�n�a�b�l�e�d�(�)�&�&�b�?�(�t�=�a�.�i�n�f�o�(�"�s�c�r�o�l�l�P�o�s�"�)�,�e�=�0�<�g�.�d�u�r�a�t�i�o�n�?�(�t�-�s�.�s�t�a�r�t�)�/�(�s�.�e�n�d�-�s�.�s�t�a�r�t�)�:�t�>�=�s�.�s�t�a�r�t�?�1�:�0�,�m�.�t�r�i�g�g�e�r�(�"�u�p�d�a�t�e�"�,�{�s�t�a�r�t�P�o�s�:�s�.�s�t�a�r�t�,�e�n�d�P�o�s�:�s�.�e�n�d�,�s�c�r�o�l�l�P�o�s�:�t�}�)�,�m�.�p�r�o�g�r�e�s�s�(�e�)�)�:�h�&�&�v�=�=�=�l�&�&�D�(�!�0�)�:�a�.�u�p�d�a�t�e�S�c�e�n�e�(�m�,�!�1�)�)�,�m�}�,�t�h�i�s�.�r�e�f�r�e�s�h�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �S�(�)�,�x�(�)�,�m�}�,�t�h�i�s�.�p�r�o�g�r�e�s�s�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�,�o�,�s�;�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�e�=�!�1�,�i�=�v�,�n�=�a�?�a�.�i�n�f�o�(�"�s�c�r�o�l�l�D�i�r�e�c�t�i�o�n�"�)�:�"�P�A�U�S�E�D�"�,�s�=�g�.�r�e�v�e�r�s�e�|�|�y�<�=�t�,�0�=�=�=�g�.�d�u�r�a�t�i�o�n�?�(�e�=�y�!�=�t�,�v�=�0�=�=�=�(�y�=�t�<�1�&�&�s�?�0�:�1�)�?�r�:�l�)�:�t�<�0�&�&�v�!�=�=�r�&�&�s�?�(�v�=�r�,�e�=�!�(�y�=�0�)�)�:�0�<�=�t�&�&�t�<�1�&�&�s�?�(�y�=�t�,�v�=�l�,�e�=�!�0�)�:�1�<�=�t�&�&�v�!�=�=�f�?�(�y�=�1�,�v�=�f�,�e�=�!�0�)�:�v�!�=�=�l�|�|�s�|�|�D�(�)�,�e�&�&�(�o�=�{�p�r�o�g�r�e�s�s�:�y�,�s�t�a�t�e�:�v�,�s�c�r�o�l�l�D�i�r�e�c�t�i�o�n�:�n�}�,�t�=�f�u�n�c�t�i�o�n�(�t�)�{�m�.�t�r�i�g�g�e�r�(�t�,�o�)�}�,�(�s�=�v�!�=�i�)�&�&�i�!�=�=�l�&�&�(�t�(�"�e�n�t�e�r�"�)�,�t�(�i�=�=�=�r�?�"�s�t�a�r�t�"�:�"�e�n�d�"�)�)�,�t�(�"�p�r�o�g�r�e�s�s�"�)�,�s�&�&�v�!�=�=�l�&�&�(�t�(�v�=�=�=�r�?�"�s�t�a�r�t�"�:�"�e�n�d�"�)�,�t�(�"�l�e�a�v�e�"�)�)�)�,�m�)�:�y�}�,�f�u�n�c�t�i�o�n�(�)�{�s�=�{�s�t�a�r�t�:�w�+�g�.�o�f�f�s�e�t�}�,�a�&�&�g�.�t�r�i�g�g�e�r�E�l�e�m�e�n�t�&�&�(�s�.�s�t�a�r�t�-�=�a�.�i�n�f�o�(�"�s�i�z�e�"�)�*�g�.�t�r�i�g�g�e�r�H�o�o�k�)�,�s�.�e�n�d�=�s�.�s�t�a�r�t�+�g�.�d�u�r�a�t�i�o�n�}�)�,�S�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�i�&�&�A�(�e�=�"�d�u�r�a�t�i�o�n�"�,�i�.�c�a�l�l�(�m�)�)�&�&�!�t�&�&�(�m�.�t�r�i�g�g�e�r�(�"�c�h�a�n�g�e�"�,�{�w�h�a�t�:�e�,�n�e�w�v�a�l�:�g�[�e�]�}�)�,�m�.�t�r�i�g�g�e�r�(�"�s�h�i�f�t�"�,�{�r�e�a�s�o�n�:�e�}�)�)�}�,�x�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�0�,�i�=�g�.�t�r�i�g�g�e�r�E�l�e�m�e�n�t�;�i�f�(�a�&�&�(�i�|�|�0�<�w�)�)�{�i�f�(�i�)�i�f�(�i�.�p�a�r�e�n�t�N�o�d�e�)�{�f�o�r�(�v�a�r� �n�=�a�.�i�n�f�o�(�)�,�o�=�N�.�g�e�t�.�o�f�f�s�e�t�(�n�.�c�o�n�t�a�i�n�e�r�)�,�s�=�n�.�v�e�r�t�i�c�a�l�?�"�t�o�p�"�:�"�l�e�f�t�"�;�i�.�p�a�r�e�n�t�N�o�d�e�.�h�a�s�A�t�t�r�i�b�u�t�e�(�z�)�;�)�i�=�i�.�p�a�r�e�n�t�N�o�d�e�;�v�a�r� �r�=�N�.�g�e�t�.�o�f�f�s�e�t�(�i�)�;�n�.�i�s�D�o�c�u�m�e�n�t�|�|�(�o�[�s�]�-�=�a�.�s�c�r�o�l�l�P�o�s�(�)�)�,�e�=�r�[�s�]�-�o�[�s�]�}�e�l�s�e� �T�(�2�,�"�W�A�R�N�I�N�G�:� �t�r�i�g�g�e�r�E�l�e�m�e�n�t� �w�a�s� �r�e�m�o�v�e�d� �f�r�o�m� �D�O�M� �a�n�d� �w�i�l�l� �b�e� �r�e�s�e�t� �t�o�"�,�v�o�i�d� �0�)�,�m�.�t�r�i�g�g�e�r�E�l�e�m�e�n�t�(�v�o�i�d� �0�)�;�n�=�e�!�=�w�;�w�=�e�,�n�&�&�!�t�&�&�m�.�t�r�i�g�g�e�r�(�"�s�h�i�f�t�"�,�{�r�e�a�s�o�n�:�"�t�r�i�g�g�e�r�E�l�e�m�e�n�t�P�o�s�i�t�i�o�n�"�}�)�}�}�,�C�=�f�u�n�c�t�i�o�n�(�t�)�{�0�<�g�.�t�r�i�g�g�e�r�H�o�o�k�&�&�m�.�t�r�i�g�g�e�r�(�"�s�h�i�f�t�"�,�{�r�e�a�s�o�n�:�"�c�o�n�t�a�i�n�e�r�R�e�s�i�z�e�"�}�)�}
1�,�k�=�N�.�e�x�t�e�n�d�(�R�.�v�a�l�i�d�a�t�e�,�{�d�u�r�a�t�i�o�n�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�i�f�(�N�.�t�y�p�e�.�S�t�r�i�n�g�(�e�)�&�&�e�.�m�a�t�c�h�(�/�^�(�\�.�|�\�d�)�*�\�d�+�%�$�/�)�&�&�(�t�=�p�a�r�s�e�F�l�o�a�t�(�e�)�/�1�0�0�,�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �a�?�a�.�i�n�f�o�(�"�s�i�z�e�"�)�*�t�:�0�}�)�,�N�.�t�y�p�e�.�F�u�n�c�t�i�o�n�(�e�)�)�{�i�=�e�;�t�r�y�{�e�=�p�a�r�s�e�F�l�o�a�t�(�i�.�c�a�l�l�(�m�)�)�}�c�a�t�c�h�(�t�)�{�e�=�-�1�}�}�i�f�(�e�=�p�a�r�s�e�F�l�o�a�t�(�e�)�,�!�N�.�t�y�p�e�.�N�u�m�b�e�r�(�e�)�|�|�e�<�0�)�t�h�r�o�w� �i�?�(�i�=�v�o�i�d� �0�,�[�'�I�n�v�a�l�i�d� �r�e�t�u�r�n� �v�a�l�u�e� �o�f� �s�u�p�p�l�i�e�d� �f�u�n�c�t�i�o�n� �f�o�r� �o�p�t�i�o�n� �"�d�u�r�a�t�i�o�n�"�:�'�,�e�]�)�:�[�'�I�n�v�a�l�i�d� �v�a�l�u�e� �f�o�r� �o�p�t�i�o�n� �"�d�u�r�a�t�i�o�n�"�:�'�,�e�]�;�r�e�t�u�r�n� �e�}�}�)�,�E�=�f�u�n�c�t�i�o�n�(�t�)�{�(�t�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�[�t�]�:�O�b�j�e�c�t�.�k�e�y�s�(�k�)�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�k�[�e�]�)�t�r�y�{�i�=�k�[�e�]�(�g�[�e�]�)�}�c�a�t�c�h�(�t�)�{�v�a�r� �i�=�o�[�e�]�,�n�=�N�.�t�y�p�e�.�S�t�r�i�n�g�(�t�)�?�[�t�]�:�t�;�N�.�t�y�p�e�.�A�r�r�a�y�(�n�)�?�(�n�[�0�]�=�"�E�R�R�O�R�:� �"�+�n�[�0�]�,�n�.�u�n�s�h�i�f�t�(�1�)�,�T�.�a�p�p�l�y�(�t�h�i�s�,�n�)�)�:�T�(�1�,�"�E�R�R�O�R�:� �P�r�o�b�l�e�m� �e�x�e�c�u�t�i�n�g� �v�a�l�i�d�a�t�i�o�n� �c�a�l�l�b�a�c�k� �f�o�r� �o�p�t�i�o�n� �'�"�+�e�+�"�'�:�"�,�t�.�m�e�s�s�a�g�e�)�}�f�i�n�a�l�l�y�{�g�[�e�]�=�i�}�}�)�}�,�A�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�!�1�,�n�=�g�[�t�]�;�r�e�t�u�r�n� �g�[�t�]�!�=�e�&�&�(�g�[�t�]�=�e�,�E�(�t�)�,�i�=�n�!�=�g�[�t�]�)�,�i�}�,�O�=�f�u�n�c�t�i�o�n�(�e�)�{�m�[�e�]�|�|�(�m�[�e�]�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�"�d�u�r�a�t�i�o�n�"�=�=�=�e�&�&�(�i�=�v�o�i�d� �0�)�,�A�(�e�,�t�)�&�&�(�m�.�t�r�i�g�g�e�r�(�"�c�h�a�n�g�e�"�,�{�w�h�a�t�:�e�,�n�e�w�v�a�l�:�g�[�e�]�}�)�,�-�1�<�R�.�s�h�i�f�t�s�.�i�n�d�e�x�O�f�(�e�)�&�&�m�.�t�r�i�g�g�e�r�(�"�s�h�i�f�t�"�,�{�r�e�a�s�o�n�:�e�}�)�)�,�m�)�:�g�[�e�]�}�)�}�,�D�=�(�t�h�i�s�.�c�o�n�t�r�o�l�l�e�r�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �a�}�,�t�h�i�s�.�s�t�a�t�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �v�}�,�t�h�i�s�.�s�c�r�o�l�l�O�f�f�s�e�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �s�.�s�t�a�r�t�}�,�t�h�i�s�.�t�r�i�g�g�e�r�P�o�s�i�t�i�o�n�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�g�.�o�f�f�s�e�t�;�r�e�t�u�r�n� �a�&�&�(�g�.�t�r�i�g�g�e�r�E�l�e�m�e�n�t�?�t�+�=�w�:�t�+�=�a�.�i�n�f�o�(�"�s�i�z�e�"�)�*�m�.�t�r�i�g�g�e�r�H�o�o�k�(�)�)�,�t�}�,�m�.�o�n�(�"�s�h�i�f�t�.�i�n�t�e�r�n�a�l�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�=�"�d�u�r�a�t�i�o�n�"�=�=�=�t�.�r�e�a�s�o�n�;�(�v�=�=�=�f�&�&�t�|�|�v�=�=�=�l�&�&�0�=�=�=�g�.�d�u�r�a�t�i�o�n�)�&�&�D�(�)�,�t�&�&�$�(�)�}�)�.�o�n�(�"�p�r�o�g�r�e�s�s�.�i�n�t�e�r�n�a�l�"�,�f�u�n�c�t�i�o�n�(�t�)�{�D�(�)�}�)�.�o�n�(�"�a�d�d�.�i�n�t�e�r�n�a�l�"�,�f�u�n�c�t�i�o�n�(�t�)�{�$�(�)�}�)�.�o�n�(�"�d�e�s�t�r�o�y�.�i�n�t�e�r�n�a�l�"�,�f�u�n�c�t�i�o�n�(�t�)�{�m�.�r�e�m�o�v�e�P�i�n�(�t�.�r�e�s�e�t�)�}�)�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�;�h�&�&�a�&�&�(�e�=�a�.�i�n�f�o�(�)�,�i�=�p�.�s�p�a�c�e�r�.�f�i�r�s�t�C�h�i�l�d�,�t�|�|�v�!�=�=�l�?�(�t�=�{�p�o�s�i�t�i�o�n�:�p�.�i�n�F�l�o�w�?�"�r�e�l�a�t�i�v�e�"�:�"�a�b�s�o�l�u�t�e�"�,�t�o�p�:�0�,�l�e�f�t�:�0�}�,�n�=�N�.�c�s�s�(�i�,�"�p�o�s�i�t�i�o�n�"�)�!�=�t�.�p�o�s�i�t�i�o�n�,�p�.�p�u�s�h�F�o�l�l�o�w�e�r�s�?�0�<�g�.�d�u�r�a�t�i�o�n�&�&�(�v�=�=�=�f�&�&�0�=�=�=�p�a�r�s�e�F�l�o�a�t�(�N�.�c�s�s�(�p�.�s�p�a�c�e�r�,�"�p�a�d�d�i�n�g�-�t�o�p�"�)�)�|�|�v�=�=�=�r�&�&�0�=�=�=�p�a�r�s�e�F�l�o�a�t�(�N�.�c�s�s�(�p�.�s�p�a�c�e�r�,�"�p�a�d�d�i�n�g�-�b�o�t�t�o�m�"�)�)�)�&�&�(�n�=�!�0�)�:�t�[�e�.�v�e�r�t�i�c�a�l�?�"�t�o�p�"�:�"�l�e�f�t�"�]�=�g�.�d�u�r�a�t�i�o�n�*�y�,�N�.�c�s�s�(�i�,�t�)�,�n�&�&�$�(�)�)�:�(�"�f�i�x�e�d�"�!�=�N�.�c�s�s�(�i�,�"�p�o�s�i�t�i�o�n�"�)�&�&�(�N�.�c�s�s�(�i�,�{�p�o�s�i�t�i�o�n�:�"�f�i�x�e�d�"�}�)�,�$�(�)�)�,�t�=�N�.�g�e�t�.�o�f�f�s�e�t�(�p�.�s�p�a�c�e�r�,�!�0�)�,�n�=�g�.�r�e�v�e�r�s�e�|�|�0�=�=�=�g�.�d�u�r�a�t�i�o�n�?�e�.�s�c�r�o�l�l�P�o�s�-�s�.�s�t�a�r�t�:�M�a�t�h�.�r�o�u�n�d�(�y�*�g�.�d�u�r�a�t�i�o�n�*�1�0�)�/�1�0�,�t�[�e�.�v�e�r�t�i�c�a�l�?�"�t�o�p�"�:�"�l�e�f�t�"�]�+�=�n�,�N�.�c�s�s�(�p�.�s�p�a�c�e�r�.�f�i�r�s�t�C�h�i�l�d�,�{�t�o�p�:�t�.�t�o�p�,�l�e�f�t�:�t�.�l�e�f�t�}�)�)�)�}
1�)�,�$�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�,�o�;�h�&�&�a�&�&�p�.�i�n�F�l�o�w�&�&�(�t�=�v�=�=�=�l�,�e�=�a�.�i�n�f�o�(�"�v�e�r�t�i�c�a�l�"�)�,�i�=�p�.�s�p�a�c�e�r�.�f�i�r�s�t�C�h�i�l�d�,�n�=�N�.�i�s�M�a�r�g�i�n�C�o�l�l�a�p�s�e�T�y�p�e�(�N�.�c�s�s�(�p�.�s�p�a�c�e�r�,�"�d�i�s�p�l�a�y�"�)�)�,�o�=�{�}�,�p�.�r�e�l�S�i�z�e�.�w�i�d�t�h�|�|�p�.�r�e�l�S�i�z�e�.�a�u�t�o�F�u�l�l�W�i�d�t�h�?�t�?�N�.�c�s�s�(�h�,�{�w�i�d�t�h�:�N�.�g�e�t�.�w�i�d�t�h�(�p�.�s�p�a�c�e�r�)�}�)�:�N�.�c�s�s�(�h�,�{�w�i�d�t�h�:�"�1�0�0�%�"�}�)�:�(�o�[�"�m�i�n�-�w�i�d�t�h�"�]�=�N�.�g�e�t�.�w�i�d�t�h�(�e�?�h�:�i�,�!�0�,�!�0�)�,�o�.�w�i�d�t�h�=�t�?�o�[�"�m�i�n�-�w�i�d�t�h�"�]�:�"�a�u�t�o�"�)�,�p�.�r�e�l�S�i�z�e�.�h�e�i�g�h�t�?�t�?�N�.�c�s�s�(�h�,�{�h�e�i�g�h�t�:�N�.�g�e�t�.�h�e�i�g�h�t�(�p�.�s�p�a�c�e�r�)�-�(�p�.�p�u�s�h�F�o�l�l�o�w�e�r�s�?�g�.�d�u�r�a�t�i�o�n�:�0�)�}�)�:�N�.�c�s�s�(�h�,�{�h�e�i�g�h�t�:�"�1�0�0�%�"�}�)�:�(�o�[�"�m�i�n�-�h�e�i�g�h�t�"�]�=�N�.�g�e�t�.�h�e�i�g�h�t�(�e�?�i�:�h�,�!�0�,�!�n�)�,�o�.�h�e�i�g�h�t�=�t�?�o�[�"�m�i�n�-�h�e�i�g�h�t�"�]�:�"�a�u�t�o�"�)�,�p�.�p�u�s�h�F�o�l�l�o�w�e�r�s�&�&�(�o�[�"�p�a�d�d�i�n�g�"�+�(�e�?�"�T�o�p�"�:�"�L�e�f�t�"�)�]�=�g�.�d�u�r�a�t�i�o�n�*�y�,�o�[�"�p�a�d�d�i�n�g�"�+�(�e�?�"�B�o�t�t�o�m�"�:�"�R�i�g�h�t�"�)�]�=�g�.�d�u�r�a�t�i�o�n�*�(�1�-�y�)�)�,�N�.�c�s�s�(�p�.�s�p�a�c�e�r�,�o�)�)�}�;�t�h�i�s�.�s�e�t�P�i�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�e�&�&�e�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�"�p�u�s�h�F�o�l�l�o�w�e�r�s�"�)�;�i�f�(�e�=�N�.�e�x�t�e�n�d�(�{�}�,�{�p�u�s�h�F�o�l�l�o�w�e�r�s�:�!�0�,�s�p�a�c�e�r�C�l�a�s�s�:�"�s�c�r�o�l�l�m�a�g�i�c�-�p�i�n�-�s�p�a�c�e�r�"�}�,�e�)�,�!�(�t�=�N�.�g�e�t�.�e�l�e�m�e�n�t�s�(�t�)�[�0�]�)�)�r�e�t�u�r�n� �T�(�1�,�"�E�R�R�O�R� �c�a�l�l�i�n�g� �m�e�t�h�o�d� �'�s�e�t�P�i�n�(�)�'�:� �I�n�v�a�l�i�d� �p�i�n� �e�l�e�m�e�n�t� �s�u�p�p�l�i�e�d�.�"�)�,�m�;�i�f�(�"�f�i�x�e�d�"�=�=�=�N�.�c�s�s�(�t�,�"�p�o�s�i�t�i�o�n�"�)�)�r�e�t�u�r�n� �T�(�1�,�"�E�R�R�O�R� �c�a�l�l�i�n�g� �m�e�t�h�o�d� �'�s�e�t�P�i�n�(�)�'�:� �P�i�n� �d�o�e�s� �n�o�t� �w�o�r�k� �w�i�t�h� �e�l�e�m�e�n�t�s� �t�h�a�t� �a�r�e� �p�o�s�i�t�i�o�n�e�d� �'�f�i�x�e�d�'�.�"�)�,�m�;�i�f�(�h�)�{�i�f�(�h�=�=�=�t�)�r�e�t�u�r�n� �m�;�m�.�r�e�m�o�v�e�P�i�n�(�)�}�v�a�r� �n�,�t�=�(�h�=�t�)�.�p�a�r�e�n�t�N�o�d�e�.�s�t�y�l�e�.�d�i�s�p�l�a�y�,�o�=�[�"�t�o�p�"�,�"�l�e�f�t�"�,�"�b�o�t�t�o�m�"�,�"�r�i�g�h�t�"�,�"�m�a�r�g�i�n�"�,�"�m�a�r�g�i�n�L�e�f�t�"�,�"�m�a�r�g�i�n�R�i�g�h�t�"�,�"�m�a�r�g�i�n�T�o�p�"�,�"�m�a�r�g�i�n�B�o�t�t�o�m�"�]�,�s�=�(�h�.�p�a�r�e�n�t�N�o�d�e�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�"�n�o�n�e�"�,�"�a�b�s�o�l�u�t�e�"�!�=�N�.�c�s�s�(�h�,�"�p�o�s�i�t�i�o�n�"�)�)�,�r�=�N�.�c�s�s�(�h�,�o�.�c�o�n�c�a�t�(�[�"�d�i�s�p�l�a�y�"�]�)�)�,�a�=�N�.�c�s�s�(�h�,�[�"�w�i�d�t�h�"�,�"�h�e�i�g�h�t�"�]�)�,�t�=�(�h�.�p�a�r�e�n�t�N�o�d�e�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�t�,�!�s�&�&�e�.�p�u�s�h�F�o�l�l�o�w�e�r�s�&�&�(�T�(�2�,�"�W�A�R�N�I�N�G�:� �I�f� �t�h�e� �p�i�n�n�e�d� �e�l�e�m�e�n�t� �i�s� �p�o�s�i�t�i�o�n�e�d� �a�b�s�o�l�u�t�e�l�y� �p�u�s�h�F�o�l�l�o�w�e�r�s� �w�i�l�l� �b�e� �d�i�s�a�b�l�e�d�.�"�)�,�e�.�p�u�s�h�F�o�l�l�o�w�e�r�s�=�!�1�)�,�w�i�n�d�o�w�.�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�h�&�&�0�=�=�=�g�.�d�u�r�a�t�i�o�n�&�&�i�&�&�e�.�p�u�s�h�F�o�l�l�o�w�e�r�s�&�&�T�(�2�,�"�W�A�R�N�I�N�G�:� �p�u�s�h�F�o�l�l�o�w�e�r�s� �=�"�,�!�0�,�"�h�a�s� �n�o� �e�f�f�e�c�t�,� �w�h�e�n� �s�c�e�n�e� �d�u�r�a�t�i�o�n� �i�s� �0�.�"�)�}�,�0�)�,�h�.�p�a�r�e�n�t�N�o�d�e�.�i�n�s�e�r�t�B�e�f�o�r�e�(�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�h�)�)�,�l�=�N�.�e�x�t�e�n�d�(�r�,�{�p�o�s�i�t�i�o�n�:�s�?�"�r�e�l�a�t�i�v�e�"�:�"�a�b�s�o�l�u�t�e�"�,�b�o�x�S�i�z�i�n�g�:�"�c�o�n�t�e�n�t�-�b�o�x�"�,�m�o�z�B�o�x�S�i�z�i�n�g�:�"�c�o�n�t�e�n�t�-�b�o�x�"�,�w�e�b�k�i�t�B�o�x�S�i�z�i�n�g�:�"�c�o�n�t�e�n�t�-�b�o�x�"�}�)�;�r�e�t�u�r�n� �s�|�|�N�.�e�x�t�e�n�d�(�l�,�N�.�c�s�s�(�h�,�[�"�w�i�d�t�h�"�,�"�h�e�i�g�h�t�"�]�)�)�,�N�.�c�s�s�(�t�,�l�)�,�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�z�,�"�"�)�,�N�.�a�d�d�C�l�a�s�s�(�t�,�e�.�s�p�a�c�e�r�C�l�a�s�s�)�,�p�=�{�s�p�a�c�e�r�:�t�,�r�e�l�S�i�z�e�:�{�w�i�d�t�h�:�"�%�"�=�=�=�a�.�w�i�d�t�h�.�s�l�i�c�e�(�-�1�)�,�h�e�i�g�h�t�:�"�%�"�=�=�=�a�.�h�e�i�g�h�t�.�s�l�i�c�e�(�-�1�)�,�a�u�t�o�F�u�l�l�W�i�d�t�h�:�"�a�u�t�o�"�=�=�=�a�.�w�i�d�t�h�&�&�s�&�&�N�.�i�s�M�a�r�g�i�n�C�o�l�l�a�p�s�e�T�y�p�e�(�r�.
1�d�i�s�p�l�a�y�)�}�,�p�u�s�h�F�o�l�l�o�w�e�r�s�:�e�.�p�u�s�h�F�o�l�l�o�w�e�r�s�,�i�n�F�l�o�w�:�s�}�,�h�.�_�_�_�o�r�i�g�S�t�y�l�e�|�|�(�h�.�_�_�_�o�r�i�g�S�t�y�l�e�=�{�}�,�n�=�h�.�s�t�y�l�e�,�o�.�c�o�n�c�a�t�(�[�"�w�i�d�t�h�"�,�"�h�e�i�g�h�t�"�,�"�p�o�s�i�t�i�o�n�"�,�"�b�o�x�S�i�z�i�n�g�"�,�"�m�o�z�B�o�x�S�i�z�i�n�g�"�,�"�w�e�b�k�i�t�B�o�x�S�i�z�i�n�g�"�]�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�h�.�_�_�_�o�r�i�g�S�t�y�l�e�[�t�]�=�n�[�t�]�|�|�"�"�}�)�)�,�p�.�r�e�l�S�i�z�e�.�w�i�d�t�h�&�&�N�.�c�s�s�(�t�,�{�w�i�d�t�h�:�a�.�w�i�d�t�h�}�)�,�p�.�r�e�l�S�i�z�e�.�h�e�i�g�h�t�&�&�N�.�c�s�s�(�t�,�{�h�e�i�g�h�t�:�a�.�h�e�i�g�h�t�}�)�,�t�.�a�p�p�e�n�d�C�h�i�l�d�(�h�)�,�N�.�c�s�s�(�h�,�{�p�o�s�i�t�i�o�n�:�s�?�"�r�e�l�a�t�i�v�e�"�:�"�a�b�s�o�l�u�t�e�"�,�m�a�r�g�i�n�:�"�a�u�t�o�"�,�t�o�p�:�"�a�u�t�o�"�,�l�e�f�t�:�"�a�u�t�o�"�,�b�o�t�t�o�m�:�"�a�u�t�o�"�,�r�i�g�h�t�:�"�a�u�t�o�"�}�)�,�(�p�.�r�e�l�S�i�z�e�.�w�i�d�t�h�|�|�p�.�r�e�l�S�i�z�e�.�a�u�t�o�F�u�l�l�W�i�d�t�h�)�&�&�N�.�c�s�s�(�h�,�{�b�o�x�S�i�z�i�n�g�:�"�b�o�r�d�e�r�-�b�o�x�"�,�m�o�z�B�o�x�S�i�z�i�n�g�:�"�b�o�r�d�e�r�-�b�o�x�"�,�w�e�b�k�i�t�B�o�x�S�i�z�i�n�g�:�"�b�o�r�d�e�r�-�b�o�x�"�}�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�c�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�c�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�d�)�,�h�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�w�h�e�e�l�"�,�u�)�,�h�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�M�o�u�s�e�S�c�r�o�l�l�"�,�u�)�,�T�(�3�,�"�a�d�d�e�d� �p�i�n�"�)�,�D�(�)�,�m�}�,�t�h�i�s�.�r�e�m�o�v�e�P�i�n�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�;�r�e�t�u�r�n� �h�&�&�(�v�=�=�=�l�&�&�D�(�!�0�)�,�!�t�&�&�a�|�|�(�(�e�=�p�.�s�p�a�c�e�r�.�f�i�r�s�t�C�h�i�l�d�)�.�h�a�s�A�t�t�r�i�b�u�t�e�(�z�)�&�&�(�i�=�p�.�s�p�a�c�e�r�.�s�t�y�l�e�,�n�=�{�}�,�[�"�m�a�r�g�i�n�"�,�"�m�a�r�g�i�n�L�e�f�t�"�,�"�m�a�r�g�i�n�R�i�g�h�t�"�,�"�m�a�r�g�i�n�T�o�p�"�,�"�m�a�r�g�i�n�B�o�t�t�o�m�"�]�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�n�[�t�]�=�i�[�t�]�|�|�"�"�}�)�,�N�.�c�s�s�(�e�,�n�)�)�,�p�.�s�p�a�c�e�r�.�p�a�r�e�n�t�N�o�d�e�.�i�n�s�e�r�t�B�e�f�o�r�e�(�e�,�p�.�s�p�a�c�e�r�)�,�p�.�s�p�a�c�e�r�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�p�.�s�p�a�c�e�r�)�,�h�.�p�a�r�e�n�t�N�o�d�e�.�h�a�s�A�t�t�r�i�b�u�t�e�(�z�)�|�|�(�N�.�c�s�s�(�h�,�h�.�_�_�_�o�r�i�g�S�t�y�l�e�)�,�d�e�l�e�t�e� �h�.�_�_�_�o�r�i�g�S�t�y�l�e�)�)�,�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�c�)�,�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�c�)�,�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�d�)�,�h�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�w�h�e�e�l�"�,�u�)�,�h�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�M�o�u�s�e�S�c�r�o�l�l�"�,�u�)�,�h�=�v�o�i�d� �0�,�T�(�3�,�"�r�e�m�o�v�e�d� �p�i�n� �(�r�e�s�e�t�:� �"�+�(�t�?�"�t�r�u�e�"�:�"�f�a�l�s�e�"�)�+�"�)�"�)�)�,�m�}�;�v�a�r� �F�,�I�,�L�,�M�=�[�]�;�f�o�r�(�I� �i�n� �m�.�o�n�(�"�d�e�s�t�r�o�y�.�i�n�t�e�r�n�a�l�"�,�f�u�n�c�t�i�o�n�(�t�)�{�m�.�r�e�m�o�v�e�C�l�a�s�s�T�o�g�g�l�e�(�t�.�r�e�s�e�t�)�}�)�,�t�h�i�s�.�s�e�t�C�l�a�s�s�T�o�g�g�l�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�=�N�.�g�e�t�.�e�l�e�m�e�n�t�s�(�t�)�;�r�e�t�u�r�n� �0�!�=�=�t�.�l�e�n�g�t�h�&�&�N�.�t�y�p�e�.�S�t�r�i�n�g�(�e�)�?�(�0�<�M�.�l�e�n�g�t�h�&�&�m�.�r�e�m�o�v�e�C�l�a�s�s�T�o�g�g�l�e�(�)�,�F�=�e�,�M�=�t�,�m�.�o�n�(�"�e�n�t�e�r�.�i�n�t�e�r�n�a�l�_�c�l�a�s�s� �l�e�a�v�e�.�i�n�t�e�r�n�a�l�_�c�l�a�s�s�"�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �i�=�"�e�n�t�e�r�"�=�=�=�t�.�t�y�p�e�?�N�.�a�d�d�C�l�a�s�s�:�N�.�r�e�m�o�v�e�C�l�a�s�s�;�M�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�(�t�,�F�)�}�)�}�)�)�:�T�(�1�,�"�E�R�R�O�R� �c�a�l�l�i�n�g� �m�e�t�h�o�d� �'�s�e�t�C�l�a�s�s�T�o�g�g�l�e�(�)�'�:� �I�n�v�a�l�i�d� �"�+�(�0�=�=�=�t�.�l�e�n�g�t�h�?�"�e�l�e�m�e�n�t�"�:�"�c�l�a�s�s�e�s�"�)�+�"� �s�u�p�p�l�i�e�d�.�"�)�,�m�}�,�t�h�i�s�.�r�e�m�o�v�e�C�l�a�s�s�T�o�g�g�l�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�&�&�M�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�N�.�r�e�m�o�v�e�C�l�a�s�s�(�t�,�F�)�}�)�,�m�.�o�f�f�(�"�s�t�a�r�t�.�i�n�t�e�r�n�a�l�_�c�l�a�s�s� �e�n�d�.�i�n�t�e�r�n�a�l�_�c�l�a�s�s�"�)�,�F�=�v�o�i�d� �0�,�M�=�[�]�,�m�}�,�g�)�o�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�I�)�|�|�(�T�(�2�,�'�W�A�R�N�I�N�G�:� �U�n�k�n�o�w�n� �o�p�t�i�o�n� �"�'�+�I�+�'�"�'�)�,�d�e�l�e�t�e� �g�[�I�]�)�;�f�o�r�(�L� �i�n� �o�)�O�(�L�)�;�r�e�t�u�r�n� �E�(�)�,�m�}�)�.�a�d�d�O�p�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�t� �i�n� �R�.�d�e�f�a�u�l�t�s�?�P�.�_�u�t�i�l�.�l�o�g�(�1�,�"�[�s�t�a�t�i�c�]� �S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e� �-�>� �C�a�n�n�o�t� �a�d�d� �S�c�e�n�e� �o�p�t�i�o�n� �'�"�+�t�+�"�'�,� �b�e�c�a�u�s�e� �i�t� �a�l�r�e�a�d�y� �e�x�i�s�t�s�.�"�)�:�(�R�.�d�e�f�a�u�l�t�s�[
1�t�]�=�e�,�R�.�v�a�l�i�d�a�t�e�[�t�]�=�i�,�n�&�&�R�.�s�h�i�f�t�s�.�p�u�s�h�(�t�)�)�}�,�P�.�S�c�e�n�e�.�e�x�t�e�n�d�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�P�.�S�c�e�n�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�,�t�h�i�s�.�$�s�u�p�e�r�=�N�.�e�x�t�e�n�d�(�{�}�,�t�h�i�s�)�,�t�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�|�|�t�h�i�s�}�,�N�.�e�x�t�e�n�d�(�P�.�S�c�e�n�e�,�e�)�,�P�.�S�c�e�n�e�.�p�r�o�t�o�t�y�p�e�=�e�.�p�r�o�t�o�t�y�p�e�,�P�.�S�c�e�n�e�.�p�r�o�t�o�t�y�p�e�.�c�o�n�s�t�r�u�c�t�o�r�=�P�.�S�c�e�n�e�}�,�P�.�E�v�e�n�t�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�f�o�r�(�v�a�r� �o� �i�n� �n�=�n�|�|�{�}�)�t�h�i�s�[�o�]�=�n�[�o�]�;�r�e�t�u�r�n� �t�h�i�s�.�t�y�p�e�=�t�,�t�h�i�s�.�t�a�r�g�e�t�=�t�h�i�s�.�c�u�r�r�e�n�t�T�a�r�g�e�t�=�i�,�t�h�i�s�.�n�a�m�e�s�p�a�c�e�=�e�|�|�"�"�,�t�h�i�s�.�t�i�m�e�S�t�a�m�p�=�t�h�i�s�.�t�i�m�e�s�t�a�m�p�=�D�a�t�e�.�n�o�w�(�)�,�t�h�i�s�}�,�P�.�_�u�t�i�l�=�f�u�n�c�t�i�o�n�(�s�)�{�f�o�r�(�v�a�r� �t�=�{�}�,�r�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �p�a�r�s�e�F�l�o�a�t�(�t�)�|�|�0�}�,�a�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�c�u�r�r�e�n�t�S�t�y�l�e�|�|�s�.�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�t�)�}�,�n�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�i�f�(�(�e�=�e�=�=�=�d�o�c�u�m�e�n�t�?�s�:�e�)�=�=�=�s�)�n�=�!�1�;�e�l�s�e� �i�f�(�!�f�.�D�o�m�E�l�e�m�e�n�t�(�e�)�)�r�e�t�u�r�n� �0�;�t�=�t�.�c�h�a�r�A�t�(�0�)�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�t�.�s�u�b�s�t�r�(�1�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�;�v�a�r� �o�=�(�i�?�e�[�"�o�f�f�s�e�t�"�+�t�]�|�|�e�[�"�o�u�t�e�r�"�+�t�]�:�e�[�"�c�l�i�e�n�t�"�+�t�]�|�|�e�[�"�i�n�n�e�r�"�+�t�]�)�|�|�0�;�r�e�t�u�r�n� �i�&�&�n�&�&�(�i�=�a�(�e�)�,�o�+�=�"�H�e�i�g�h�t�"�=�=�=�t�?�r�(�i�.�m�a�r�g�i�n�T�o�p�)�+�r�(�i�.�m�a�r�g�i�n�B�o�t�t�o�m�)�:�r�(�i�.�m�a�r�g�i�n�L�e�f�t�)�+�r�(�i�.�m�a�r�g�i�n�R�i�g�h�t�)�)�,�o�}�,�l�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�r�e�p�l�a�c�e�(�/�^�[�^�a�-�z�]�+�(�[�a�-�z�]�)�/�g�,�"�$�1�"�)�.�r�e�p�l�a�c�e�(�/�-�(�[�a�-�z�]�)�/�g�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�[�1�]�.�t�o�U�p�p�e�r�C�a�s�e�(�)�}�)�}�,�o�=�(�t�.�e�x�t�e�n�d�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�t�=�t�|�|�{�}�,�d�=�1�;�d�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�d�+�+�)�i�f�(�a�r�g�u�m�e�n�t�s�[�d�]�)�f�o�r�(�v�a�r� �e� �i�n� �a�r�g�u�m�e�n�t�s�[�d�]�)�a�r�g�u�m�e�n�t�s�[�d�]�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�e�)�&�&�(�t�[�e�]�=�a�r�g�u�m�e�n�t�s�[�d�]�[�e�]�)�;�r�e�t�u�r�n� �t�}�,�t�.�i�s�M�a�r�g�i�n�C�o�l�l�a�p�s�e�T�y�p�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�-�1�<�[�"�b�l�o�c�k�"�,�"�f�l�e�x�"�,�"�l�i�s�t�-�i�t�e�m�"�,�"�t�a�b�l�e�"�,�"�-�w�e�b�k�i�t�-�b�o�x�"�]�.�i�n�d�e�x�O�f�(�t�)�}�,�0�)�,�e�=�[�"�m�s�"�,�"�m�o�z�"�,�"�w�e�b�k�i�t�"�,�"�o�"�]�,�i�=�s�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�,�c�=�s�.�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�,�d�=�0�;�!�i�&�&�d�<�e�.�l�e�n�g�t�h�;�+�+�d�)�i�=�s�[�e�[�d�]�+�"�R�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�"�]�,�c�=�s�[�e�[�d�]�+�"�C�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�"�]�|�|�s�[�e�[�d�]�+�"�C�a�n�c�e�l�R�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�"�]�;�c�=�c�|�|�f�u�n�c�t�i�o�n�(�t�)�{�s�.�c�l�e�a�r�T�i�m�e�o�u�t�(�t�)�}�,�t�.�r�A�F�=�(�i�=�i�|�|�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�(�n�e�w� �D�a�t�e�)�.�g�e�t�T�i�m�e�(�)�,�i�=�M�a�t�h�.�m�a�x�(�0�,�1�6�-�(�e�-�o�)�)�,�n�=�s�.�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�t�(�e�+�i�)�}�,�i�)�;�r�e�t�u�r�n� �o�=�e�+�i�,�n�}
1�)�.�b�i�n�d�(�s�)�,�t�.�c�A�F�=�c�.�b�i�n�d�(�s�)�;�v�a�r� �u�=�[�"�e�r�r�o�r�"�,�"�w�a�r�n�"�,�"�l�o�g�"�]�,�h�=�s�.�c�o�n�s�o�l�e�|�|�{�}�;�f�o�r�(�h�.�l�o�g�=�h�.�l�o�g�|�|�f�u�n�c�t�i�o�n�(�)�{�}�,�d�=�0�;�d�<�u�.�l�e�n�g�t�h�;�d�+�+�)�{�v�a�r� �p�=�u�[�d�]�;�h�[�p�]�|�|�(�h�[�p�]�=�h�.�l�o�g�)�}�t�.�l�o�g�=�f�u�n�c�t�i�o�n�(�t�)�{�(�u�.�l�e�n�g�t�h�<�t�|�|�t�<�=�0�)�&�&�(�t�=�u�.�l�e�n�g�t�h�)�;�v�a�r� �e�=�n�e�w� �D�a�t�e�,�e�=�(�"�0�"�+�e�.�g�e�t�H�o�u�r�s�(�)�)�.�s�l�i�c�e�(�-�2�)�+�"�:�"�+�(�"�0�"�+�e�.�g�e�t�M�i�n�u�t�e�s�(�)�)�.�s�l�i�c�e�(�-�2�)�+�"�:�"�+�(�"�0�"�+�e�.�g�e�t�S�e�c�o�n�d�s�(�)�)�.�s�l�i�c�e�(�-�2�)�+�"�:�"�+�(�"�0�0�"�+�e�.�g�e�t�M�i�l�l�i�s�e�c�o�n�d�s�(�)�)�.�s�l�i�c�e�(�-�3�)�,�t�=�u�[�t�-�1�]�,�i�=�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�p�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�)�,�t�=�F�u�n�c�t�i�o�n�.�p�r�o�t�o�t�y�p�e�.�b�i�n�d�.�c�a�l�l�(�h�[�t�]�,�h�)�;�i�.�u�n�s�h�i�f�t�(�e�)�,�t�.�a�p�p�l�y�(�h�,�i�)�}�;�v�a�r� �f�=�t�.�t�y�p�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�t�o�S�t�r�i�n�g�.�c�a�l�l�(�t�)�.�r�e�p�l�a�c�e�(�/�^�\�[�o�b�j�e�c�t� �(�.�+�)�\�]�$�/�,�"�$�1�"�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�}�,�m�=�(�f�.�S�t�r�i�n�g�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�s�t�r�i�n�g�"�=�=�=�f�(�t�)�}�,�f�.�F�u�n�c�t�i�o�n�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�f�u�n�c�t�i�o�n�"�=�=�=�f�(�t�)�}�,�f�.�A�r�r�a�y�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �A�r�r�a�y�.�i�s�A�r�r�a�y�(�t�)�}�,�f�.�N�u�m�b�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�f�.�A�r�r�a�y�(�t�)�&�&�0�<�=�t�-�p�a�r�s�e�F�l�o�a�t�(�t�)�+�1�}�,�f�.�D�o�m�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �H�T�M�L�E�l�e�m�e�n�t�|�|�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �H�T�M�L�E�l�e�m�e�n�t�?�t� �i�n�s�t�a�n�c�e�o�f� �H�T�M�L�E�l�e�m�e�n�t�|�|�t� �i�n�s�t�a�n�c�e�o�f� �S�V�G�E�l�e�m�e�n�t�:�t�&�&�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�&�&�n�u�l�l�!�=�=�t�&�&�1�=�=�=�t�.�n�o�d�e�T�y�p�e�&�&�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�n�o�d�e�N�a�m�e�}�,�t�.�g�e�t�=�{�}�)�;�r�e�t�u�r�n� �m�.�e�l�e�m�e�n�t�s�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�[�]�;�i�f�(�f�.�S�t�r�i�n�g�(�t�)�)�t�r�y�{�t�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�t�)�}�c�a�t�c�h�(�t�)�{�r�e�t�u�r�n� �e�}�i�f�(�"�n�o�d�e�l�i�s�t�"�=�=�=�f�(�t�)�|�|�f�.�A�r�r�a�y�(�t�)�|�|�t� �i�n�s�t�a�n�c�e�o�f� �N�o�d�e�L�i�s�t�)�f�o�r�(�v�a�r� �i�=�0�,�n�=�e�.�l�e�n�g�t�h�=�t�.�l�e�n�g�t�h�;�i�<�n�;�i�+�+�)�{�v�a�r� �o�=�t�[�i�]�;�e�[�i�]�=�f�.�D�o�m�E�l�e�m�e�n�t�(�o�)�?�o�:�m�.�e�l�e�m�e�n�t�s�(�o�)�}�e�l�s�e�!�f�.�D�o�m�E�l�e�m�e�n�t�(�t�)�&�&�t�!�=�=�d�o�c�u�m�e�n�t�&�&�t�!�=�=�s�|�|�(�e�=�[�t�]�)�;�r�e�t�u�r�n� �e�}�,�m�.�s�c�r�o�l�l�T�o�p�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�&�&�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�.�s�c�r�o�l�l�T�o�p�?�t�.�s�c�r�o�l�l�T�o�p�:�s�.�p�a�g�e�Y�O�f�f�s�e�t�|�|�0�}�,�m�.�s�c�r�o�l�l�L�e�f�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�&�&�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�.�s�c�r�o�l�l�L�e�f�t�?�t�.�s�c�r�o�l�l�L�e�f�t�:�s�.�p�a�g�e�X�O�f�f�s�e�t�|�|�0�}�,�m�.�w�i�d�t�h�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �n�(�"�w�i�d�t�h�"�,�t�,�e�,�i�)�}�,�m�.�h�e�i�g�h�t�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �n�(�"�h�e�i�g�h�t�"�,�t�,�e�,�i�)�}�,�m�.�o�f�f�s�e�t�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�{�t�o�p�:�0�,�l�e�f�t�:�0�}�;�r�e�t�u�r�n� �t�&�&�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�&�&�(�t�=�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�i�.�t�o�p�=�t�.�t�o�p�,�i�.�l�e�f�t�=�t�.�l�e�f�t�,�e�|�|�(�i�.�t�o�p�+�=�m�.�s�c�r�o�l�l�T�o�p�(�)�,�i�.�l�e�f�t�+�=�m�.�s�c�r�o�l�l�L�e�f�t�(�)�)�)�,�i�}�,�t�.�a�d�d�C�l�a�s�s�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�&�&�(�t�.�c�l�a�s�s�L�i�s�t�?�t�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�e�)�:�t�.�c�l�a�s�s�N�a�m�e�+�=�"� �"�+�e�)�}�,�t�.�r�e�m�o�v�e�C�l�a�s�s�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�&�&�(�t�.�c�l�a�s�s�L�i�s�t�?�t�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�e�)�:�t�.�c�l�a�s�s�N�a�m�e�=�t�.�c�l�a�s�s�N�a�m�e�.�r�e�p�l�a�c�e�(�n�e�w� �R�e�g�E�x�p�(�"�(�^�|�\�\�b�)�"�+�e�.�s�p�l�i�t�(�"� �"�)�.�j�o�i�n�(�"�|�"�)�+�"�(�\�\�b�|�$�)�"�,�"�g�i�"�)�,�"� �"�)�)�}�,�t�.�c�s�s�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�f�.�S�t�r�i�n�g�(�e�)�)�r�e�t�u�r�n� �a�(�t�)�[�l�(�e�)�]�;�v�a�r� �i�,�n�,�o�;�i�f�(�f�.�A�r�r�a�y�(�e�)�)�r�e�t�u�r�n� �i�=�{�}�,�n�=�a�(�t�)�,�e�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�[�t�]�=�n�[�l�(�t�)�]�}�)�,�i�;�f�o�r�(�o� �i�n� �e�)�{�v�a�r� �s�=�e�[�o�]�;�s�=�=�p�a�r�s�e�F�l�o�a�t�(�s�)�&�&�(�s�+�=�"�p�x�"�)�,�t�.�s�t�y�l�e�[�l�(�o�)�]�=�s�}�}�,�t�}�(�w�i�n�d�o�w�|�|�{�}�)�)�;�r�e�t�u�r�n� �P�.�S�c�e�n�e�.�p�r�o�t�o�t�y�p�e�.�a�d�d�I�n�d�i�c�a�t�o�r�s�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �P�.�_�u�t�i�l�.�l�o�g�(�1�,�"�(�S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e�)� �-�>� �E�R�R�O�R� �c�a�l�l�i�n�g� �a�d�d�I�n�d�i�c�a�t�o�r�s�(�)� �d�u�e� �t�o� �m�i�s�s�i�n�g� �P�l�u�g�i�n� �'�d�e�b�u�g�.�a�d�d�I�n�d�i�c�a�t�o�r�s�'�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �t�o� �i�n�c�l�u�d�e� �p�l�u�g�i�n�s�/�d�e�b�u�g�.�a�d�d�I�n�d�i�c�a�t�o�r�s�.�j�s�"�)�,�t�h�i�s�}�,�P�.�S�c�e�n�e�.�p�r�o�t�o�t�y�p�e�.�r�e�m�o�v�e�I�n�d�i�c�a�t�o�r�s�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �P�.�_�u�t�i�l�.�l�o�g�(�1�,�"�(�S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e�)� �-�>� �E�R�R�O�R� �c�a�l�l�i�n�g� �r�e�m�o�v�e�I�n�d�i�c�a�t�o�r�s�(�)� �d�u�e� �t�o� �m�i�s�s�i�n�g� �P�l�u�g�i�n� �'�d�e�b�u�g�.�a�d�d�I�n�d�i�c�a�t�o�r�s�'�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �t�o� �i�n�c�l�u�d�e� �p�l�u�g�i�n�s�/�d�e�b�u�g�.�a�d�d�I�n�d�i�c�a�t�o�r�s�.�j�s�"�)�,�t�h�i�s�}�,�P�.�S�c�e�n�e�.�p�r�o�t�o�t�y�p�e�.�s�e�t�T�w�e�e�n�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �P�.�_�u�t�i�l�.�l�o�g�(�1�,�"�(�S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e�)� �-�>� �E�R�R�O�R� �c�a�l�l�i�n�g� �s�e�t�T�w�e�e�n�(�)� �d�u�e� �t�o� �m�i�s�s�i�n�g� �P�l�u�g�i�n� �'�a�n�i�m�a�t�i�o�n�.�g�s�a�p�'�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �t�o� �i�n�c�l�u�d�e� �p�l�u�g�i�n�s�/�a�n�i�m�a�t�i�o�n�.�g�s�a�p�.�j�s�"�)�,�t�h�i�s�}�,�P�.�S�c�e�n�e�.�p�r�o�t�o�t�y�p�e�.�r�e�m�o�v�e�T�w�e�e�n�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �P�.�_�u�t�i�l�.�l�o�g�(�1�,�"�(�S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e�)� �-�>� �E�R�R�O�R� �c�a�l�l�i�n�g� �r�e�m�o�v�e�T�w�e�e�n�(�)� �d�u�e� �t�o� �m�i�s�s�i�n�g� �P�l�u�g�i�n� �'�a�n�i�m�a�t�i�o�n�.�g�s�a�p�'�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �t�o� �i�n�c�l�u�d�e� �p�l�u�g�i�n�s�/�a�n�i�m�a�t�i�o�n�.�g�s�a�p�.�j�s�"�)�,�t�h�i�s�}�,�P�.�S�c�e�n�e�.�p�r�o�t�o�t�y�p�e�.�s�e�t�V�e�l�o�c�i�t�y�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �P�.�_�u�t�i�l�.�l�o�g�(�1�,�"�(�S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e�)� �-�>� �E�R�R�O�R� �c�a�l�l�i�n�g� �s�e�t�V�e�l�o�c�i�t�y�(�)� �d�u�e� �t�o� �m�i�s�s�i�n�g� �P�l�u�g�i�n� �'�a�n�i�m�a�t�i�o�n�.�v�e�l�o�c�i�t�y�'�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �t�o� �i�n�c�l�u�d�e� �p�l�u�g�i�n�s�/�a�n�i�m�a�t�i�o�n�.�v�e�l�o�c�i�t�y�.�j�s�"�)�,�t�h�i�s�}�,�P�.�S�c�e�n�e�.�p�r�o�t�o�t�y�p�e�.�r�e�m�o�v�e�V�e�l�o�c�i�t�y�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �P�.�_�u�t�i�l�.�l�o�g�(�1�,�"�(�S�c�r�o�l�l�M�a�g�i�c�.�S�c�e�n�e�)� �-�>� �E�R�R�O�R� �c�a�l�l�i�n�g� �r�e�m�o�v�e�V�e�l�o�c�i�t�y�(�)� �d�u�e� �t�o� �m�i�s�s�i�n�g� �P�l�u�g�i�n� �'�a�n�i�m�a�t�i�o�n�.�v�e�l�o�c�i�t�y�'�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �t�o� �i�n�c�l�u�d�e� �p�l�u�g�i�n�s�/�a�n�i�m�a�t�i�o�n�.�v�e�l�o�c�i�t�y�.�j�s�"�)�,�t�h�i�s�}�,�P�}�)�,�!�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�;�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�"�S�c�r�o�l�l�M�a�g�i�c�"�,�"�g�s�a�p�"�,�"�T�w�e�e�n�M�a�x�"�,�"�T�i�m�e�l�i�n�e�M�a�x�"�]�,�e�)�:�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�?�(�i�=�r�e�q�u�i�r�e�(�"�g�s�a�p�/�d�i�s�t�/�g�s�a�p�"�)�|�|�r�e�q�u�i�r�e�(�"�g�s�a�p�"�)�,�e�(�r�e�q�u�i�r�e�(�"�s�c�r�o�l�l�m�a�g�i�c�"�)�,�i�,�T�w�e�e�n�M�a�x�|�|�i�,�T�i�m�e�l�i�n�e�M�a�x�|�|�i�)�)�:�e�(�t�.�S�c�r�o�l�l�M�a�g�i�c�|�|�t�.�j�Q�u�e�r�y�&�&�t�.�j�Q�u�e�r�y�.�S�c�r�o�l�l�M�a�g�i�c�,�t�.�g�s�a�p�,�t�.�g�s�a�p�|�|�t�.�T�w�e�e�n�M�a�x�|�|�t�.�T�w�e�e�n�L�i�t�e�,�t�.�g�s�a�p�|�|�t�.�T�i�m�e�l�i�n�e�M�a�x�|�|�t�.�T�i�m�e�l�i�n�e�L�i�t�e�)�}�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�t�,�e�,�g�,�v�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�v�a�r� �i�=�"�a�n�i�m�a�t�i�o�n�.�g�s�a�p�"�,�y�=�e�&�&�3�<�=�p�a�r�s�e�F�l�o�a�t�(�e�.�v�e�r�s�i�o�n�)�,�e�=�w�i�n�d�o�w�.�c�o�n�s�o�l�e�|�|�{�}�,�e�=�F�u�n�c�t�i�o�n�.�p�r�o�t�o�t�y�p�e�.�b�i�n�d�.�c�a�l�l�(�e�.�e�r�r�o�r�|�|�e�.�l�o�g�|�|�f�u�n�c�t�i�o�n�(�)�{�}�,�e�)�;�t�|�|�e�(�"�(�"�+�i�+�"�)� �-�>� �E�R�R�O�R�:� �T�h�e� �S�c�r�o�l�l�M�a�g�i�c� �m�a�i�n� �m�o�d�u�l�e� �c�o�u�l�d� �n�o�t� �b�e� �f�o�u�n�d�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �i�t�'�s� �l�o�a�d�e�d� �b�e�f�o�r�e� �t�h�i�s� �p�l�u�g�i�n� �o�r� �u�s�e� �a�n� �a�s�y�n�c�h�r�o�n�o�u�s� �l�o�a�d�e�r� �l�i�k�e� �r�e�q�u�i�r�e�j�s�.�"�)�,�g�|�|�e�(�"�(�"�+�i�+�"�)� �-�>� �E�R�R�O�R�:� �T�w�e�e�n�L�i�t�e� �o�r� �T�w�e�e�n�M�a�x� �c�o�u�l�d� �n�o�t� �b�e� �f�o�u�n�d�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �G�S�A�P� �i�s� �l�o�a�d�e�d� �b�e�f�o�r�e� �S�c�r�o�l�l�M�a�g�i�c� �o�r� �u�s�e� �a�n� �a�s�y�n�c�h�r�o�n�o�u�s� �l�o�a�d�e�r� �l�i�k�e� �r�e�q�u�i�r�e�j�s�.�"�)�,�t�.�S�c�e�n�e�.�a�d�d�O�p�t�i�o�n�(�"�t�w�e�e�n�C�h�a�n�g�e�s�"�,�!�1�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�!�!�t�}
1�)�,�t�.�S�c�e�n�e�.�e�x�t�e�n�d�(�f�u�n�c�t�i�o�n�(�)�{�f�u�n�c�t�i�o�n� �h�(�)�{�f�.�_�l�o�g�&�&�(�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�p�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�,�0�,�"�(�"�+�i�+�"�)�"�,�"�-�>�"�)�,�f�.�_�l�o�g�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�)�}�v�a�r� �p�,�f�=�t�h�i�s�,�m�=�(�f�.�o�n�(�"�p�r�o�g�r�e�s�s�.�p�l�u�g�i�n�_�g�s�a�p�"�,�f�u�n�c�t�i�o�n�(�)�{�m�(�)�}�)�,�f�.�o�n�(�"�d�e�s�t�r�o�y�.�p�l�u�g�i�n�_�g�s�a�p�"�,�f�u�n�c�t�i�o�n�(�t�)�{�f�.�r�e�m�o�v�e�T�w�e�e�n�(�t�.�r�e�s�e�t�)�}�)�,�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�;�p�&�&�(�t�=�f�.�p�r�o�g�r�e�s�s�(�)�,�e�=�f�.�s�t�a�t�e�(�)�,�p�.�r�e�p�e�a�t�&�&�-�1�=�=�=�p�.�r�e�p�e�a�t�(�)�?�"�D�U�R�I�N�G�"�=�=�=�e�&�&�p�.�p�a�u�s�e�d�(�)�?�p�.�p�l�a�y�(�)�:�"�D�U�R�I�N�G�"�=�=�=�e�|�|�p�.�p�a�u�s�e�d�(�)�|�|�p�.�p�a�u�s�e�(�)�:�t�!�=�p�.�p�r�o�g�r�e�s�s�(�)�&�&�(�0�=�=�=�f�.�d�u�r�a�t�i�o�n�(�)�?�0�<�t�?�p�.�p�l�a�y�(�)�:�p�.�r�e�v�e�r�s�e�(�)�:�f�.�t�w�e�e�n�C�h�a�n�g�e�s�(�)�&�&�p�.�t�w�e�e�n�T�o�?�p�.�t�w�e�e�n�T�o�(�t�*�p�.�d�u�r�a�t�i�o�n�(�)�)�:�p�.�p�r�o�g�r�e�s�s�(�t�)�.�p�a�u�s�e�(�)�)�)�}�)�;�f�.�s�e�t�T�w�e�e�n�=�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�;�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�(�o�=�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �a�r�g�u�m�e�n�t�s�[�1�]�,�y�?�(�i�=�o�?�i�:�e�)�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�"�d�u�r�a�t�i�o�n�"�)�|�|�(�i�.�d�u�r�a�t�i�o�n�=�o�?�e�:�1�)�:�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�<�3�&�&�(�i�=�e�,�e�=�1�)�,�t�=�y�?�g�.�t�o�(�t�,�i�)�:�g�.�t�o�(�t�,�e�,�i�)�)�;�t�r�y�{�(�n�=�v�&�&�!�y�?�n�e�w� �v�(�{�s�m�o�o�t�h�C�h�i�l�d�T�i�m�i�n�g�:�!�0�}�)�.�a�d�d�(�t�)�:�t�)�.�p�a�u�s�e�(�)�}�c�a�t�c�h�(�t�)�{�r�e�t�u�r�n� �h�(�1�,�"�E�R�R�O�R� �c�a�l�l�i�n�g� �m�e�t�h�o�d� �'�s�e�t�T�w�e�e�n�(�)�'�:� �S�u�p�p�l�i�e�d� �a�r�g�u�m�e�n�t� �i�s� �n�o�t� �a� �v�a�l�i�d� �T�w�e�e�n�O�b�j�e�c�t�"�)�,�f�}�i�f�(�p�&�&�f�.�r�e�m�o�v�e�T�w�e�e�n�(�)�,�p�=�n�,�t�.�r�e�p�e�a�t�&�&�-�1�=�=�=�t�.�r�e�p�e�a�t�(�)�&�&�(�p�.�r�e�p�e�a�t�(�-�1�)�,�p�.�y�o�y�o�(�t�.�y�o�y�o�(�)�)�)�,�f�.�t�w�e�e�n�C�h�a�n�g�e�s�(�)�&�&�!�p�.�t�w�e�e�n�T�o�&�&�h�(�2�,�"�W�A�R�N�I�N�G�:� �t�w�e�e�n�C�h�a�n�g�e�s� �w�i�l�l� �o�n�l�y� �w�o�r�k� �i�f� �t�h�e� �T�i�m�e�l�i�n�e�M�a�x� �o�b�j�e�c�t� �i�s� �a�v�a�i�l�a�b�l�e� �f�o�r� �S�c�r�o�l�l�M�a�g�i�c�.�"�)�,�p�&�&�f�.�c�o�n�t�r�o�l�l�e�r�(�)�&�&�f�.�t�r�i�g�g�e�r�E�l�e�m�e�n�t�(�)�&�&�2�<�=�f�.�l�o�g�l�e�v�e�l�(�)�&�&�(�o�=�g�.�g�e�t�T�w�e�e�n�s�O�f�(�f�.�t�r�i�g�g�e�r�E�l�e�m�e�n�t�(�)�)�,�s�=�f�.�c�o�n�t�r�o�l�l�e�r�(�)�.�i�n�f�o�(�"�v�e�r�t�i�c�a�l�"�)�,�o�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�=�t�.�v�a�r�s�.�c�s�s�|�|�t�.�v�a�r�s�;�i�f�(�s�?�v�o�i�d� �0�!�=�=�t�.�t�o�p�|�|�v�o�i�d� �0�!�=�=�t�.�b�o�t�t�o�m�:�v�o�i�d� �0�!�=�=�t�.�l�e�f�t�|�|�v�o�i�d� �0�!�=�=�t�.�r�i�g�h�t�)�r�e�t�u�r�n� �h�(�2�,�"�W�A�R�N�I�N�G�:� �T�w�e�e�n�i�n�g� �t�h�e� �p�o�s�i�t�i�o�n� �o�f� �t�h�e� �t�r�i�g�g�e�r� �e�l�e�m�e�n�t� �a�f�f�e�c�t�s� �t�h�e� �s�c�e�n�e� �t�i�m�i�n�g� �a�n�d� �s�h�o�u�l�d� �b�e� �a�v�o�i�d�e�d�!�"�)�,�!�1�}�)�)�,�1�.�1�4�<�=�p�a�r�s�e�F�l�o�a�t�(�T�w�e�e�n�L�i�t�e�.�v�e�r�s�i�o�n�)�)�f�o�r�(�v�a�r� �r�,�a�,�l�=�y�?�"�o�n�I�n�t�e�r�r�u�p�t�"�:�"�o�n�O�v�e�r�w�r�i�t�e�"�,�c�=�p�.�g�e�t�C�h�i�l�d�r�e�n�?�p�.�g�e�t�C�h�i�l�d�r�e�n�(�!�0�,�!�0�,�!�1�)�:�[�p�]�,�d�=�f�u�n�c�t�i�o�n�(�)�{�h�(�2�,�"�W�A�R�N�I�N�G�:� �t�w�e�e�n� �w�a�s� �o�v�e�r�w�r�i�t�t�e�n� �b�y� �a�n�o�t�h�e�r�.� �T�o� �l�e�a�r�n� �h�o�w� �t�o� �a�v�o�i�d� �t�h�i�s� �i�s�s�u�e� �s�e�e� �h�e�r�e�:� �h�t�t�p�s�:�/�/�g�i�t�h�u�b�.�c�o�m�/�j�a�n�p�a�e�p�k�e�/�S�c�r�o�l�l�M�a�g�i�c�/�w�i�k�i�/�W�A�R�N�I�N�G�:�-�t�w�e�e�n�-�w�a�s�-�o�v�e�r�w�r�i�t�t�e�n�-�b�y�-�a�n�o�t�h�e�r�"�
1)�}�,�u�=�0�;�u�<�c�.�l�e�n�g�t�h�;�u�+�+�)�r�=�c�[�u�]�,�a�!�=�=�d�&�&�(�a�=�r�.�v�a�r�s�[�l�]�,�r�.�v�a�r�s�[�l�]�=�f�u�n�c�t�i�o�n�(�)�{�a�&�&�a�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�,�d�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�}�)�;�r�e�t�u�r�n� �h�(�3�,�"�a�d�d�e�d� �t�w�e�e�n�"�)�,�m�(�)�,�f�}�,�f�.�r�e�m�o�v�e�T�w�e�e�n�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �p�&�&�(�t�&�&�p�.�p�r�o�g�r�e�s�s�(�0�)�.�p�a�u�s�e�(�)�,�p�.�k�i�l�l�(�)�,�p�=�v�o�i�d� �0�,�h�(�3�,�"�r�e�m�o�v�e�d� �t�w�e�e�n� �(�r�e�s�e�t�:� �"�+�(�t�?�"�t�r�u�e�"�:�"�f�a�l�s�e�"�)�+�"�)�"�)�)�,�f�}�}�)�}�)�,�!�f�u�n�c�t�i�o�n�(�t�,�e�)�{�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�"�S�c�r�o�l�l�M�a�g�i�c�"�]�,�e�)�:�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�?�e�(�r�e�q�u�i�r�e�(�"�s�c�r�o�l�l�m�a�g�i�c�"�)�)�:�e�(�t�.�S�c�r�o�l�l�M�a�g�i�c�|�|�t�.�j�Q�u�e�r�y�&�&�t�.�j�Q�u�e�r�y�.�S�c�r�o�l�l�M�a�g�i�c�)�}�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�n�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�v�a�r� �w�=�"�d�e�b�u�g�.�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�t�=�w�i�n�d�o�w�.�c�o�n�s�o�l�e�|�|�{�}�,�t�=�F�u�n�c�t�i�o�n�.�p�r�o�t�o�t�y�p�e�.�b�i�n�d�.�c�a�l�l�(�t�.�e�r�r�o�r�|�|�t�.�l�o�g�|�|�f�u�n�c�t�i�o�n�(�)�{�}�,�t�)�,�b�=�(�n�|�|�t�(�"�(�"�+�w�+�"�)� �-�>� �E�R�R�O�R�:� �T�h�e� �S�c�r�o�l�l�M�a�g�i�c� �m�a�i�n� �m�o�d�u�l�e� �c�o�u�l�d� �n�o�t� �b�e� �f�o�u�n�d�.� �P�l�e�a�s�e� �m�a�k�e� �s�u�r�e� �i�t�'�s� �l�o�a�d�e�d� �b�e�f�o�r�e� �t�h�i�s� �p�l�u�g�i�n� �o�r� �u�s�e� �a�n� �a�s�y�n�c�h�r�o�n�o�u�s� �l�o�a�d�e�r� �l�i�k�e� �r�e�q�u�i�r�e�j�s�.�"�)�,�n�.�_�u�t�i�l�)�,�_�=�0�,�o�=�(�n�.�S�c�e�n�e�.�e�x�t�e�n�d�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�,�i�=�t�h�i�s�;�i�.�a�d�d�I�n�d�i�c�a�t�o�r�s�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�|�|�(�t�=�b�.�e�x�t�e�n�d�(�{�}�,�{�n�a�m�e�:�"�"�,�i�n�d�e�n�t�:�0�,�p�a�r�e�n�t�:�v�o�i�d� �0�,�c�o�l�o�r�S�t�a�r�t�:�"�g�r�e�e�n�"�,�c�o�l�o�r�E�n�d�:�"�r�e�d�"�,�c�o�l�o�r�T�r�i�g�g�e�r�:�"�b�l�u�e�"�}�,�t�)�,�_�+�+�,�e�=�n�e�w� �o�(�i�,�t�)�,�i�.�o�n�(�"�a�d�d�.�p�l�u�g�i�n�_�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�e�.�a�d�d�)�,�i�.�o�n�(�"�r�e�m�o�v�e�.�p�l�u�g�i�n�_�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�e�.�r�e�m�o�v�e�)�,�i�.�o�n�(�"�d�e�s�t�r�o�y�.�p�l�u�g�i�n�_�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�i�.�r�e�m�o�v�e�I�n�d�i�c�a�t�o�r�s�)�,�i�.�c�o�n�t�r�o�l�l�e�r�(�)�&�&�e�.�a�d�d�(�)�)�,�i�}�,�i�.�r�e�m�o�v�e�I�n�d�i�c�a�t�o�r�s�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�&�&�(�e�.�r�e�m�o�v�e�(�)�,�t�h�i�s�.�o�f�f�(�"�*�.�p�l�u�g�i�n�_�a�d�d�I�n�d�i�c�a�t�o�r�s�"�)�,�e�=�v�o�i�d� �0�)�,�i�}�}�)�,�n�.�C�o�n�t�r�o�l�l�e�r�.�a�d�d�O�p�t�i�o�n�(�"�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�!�1�)�,�n�.�C�o�n�t�r�o�l�l�e�r�.�e�x�t�e�n�d�(�f�u�n�c�t�i�o�n�(�)�{�f�u�n�c�t�i�o�n� �t�(�)�{�m�.�u�p�d�a�t�e�B�o�u�n�d�s�P�o�s�i�t�i�o�n�s�(�)�}�f�u�n�c�t�i�o�n� �e�(�)�{�m�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�P�o�s�i�t�i�o�n�s�(�)�}�v�a�r� �u�=�t�h�i�s�,�i�=�u�.�i�n�f�o�(�)�,�h�=�i�.�c�o�n�t�a�i�n�e�r�,�p�=�i�.�i�s�D�o�c�u�m�e�n�t�,�f�=�i�.�v�e�r�t�i�c�a�l�,�m�=�{�g�r�o�u�p�s�:�[�]�}�;�u�.�_�i�n�d�i�c�a�t�o�r�s�&�&�!�f�u�n�c�t�i�o�n�(�)�{�u�.�_�l�o�g�&�&�(�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�p�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�,�0�,�"�(�"�+�w�+�"�)�"�,�"�-�>�"�)�,�u�.�_�l�o�g�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�)�}�(�2�,�"�W�A�R�N�I�N�G�:� �S�c�e�n�e� �a�l�r�e�a�d�y� �h�a�s� �a� �p�r�o�p�e�r�t�y� �'�_�i�n�d�i�c�a�t�o�r�s�'�,� �w�h�i�c�h� �w�i�l�l� �b�e� �o�v�e�r�w�r�i�t�t�e�n� �b�y� �p�l�u�g�i�n�.�"�)�,�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�=�m�;�r�e�t�u�r�n� �h�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�e�)�,�p�|�|�(�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�e�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�e�)�)�,�h�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�t�)�,�h�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�t�)�,�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�B�o�u�n�d�s�P�o�s�i�t�i�o�n�s�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�,�o�=�t�?�[�b�.�e�x�t�e�n�d�(�{�}
1�,�t�.�t�r�i�g�g�e�r�G�r�o�u�p�,�{�m�e�m�b�e�r�s�:�[�t�]�}�)�]�:�m�.�g�r�o�u�p�s�,�s�=�o�.�l�e�n�g�t�h�,�r�=�{�}�,�a�=�f�?�"�l�e�f�t�"�:�"�t�o�p�"�,�l�=�f�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�,�c�=�f�?�b�.�g�e�t�.�s�c�r�o�l�l�L�e�f�t�(�h�)�+�b�.�g�e�t�.�w�i�d�t�h�(�h�)�-�1�5�:�b�.�g�e�t�.�s�c�r�o�l�l�T�o�p�(�h�)�+�b�.�g�e�t�.�h�e�i�g�h�t�(�h�)�-�1�5�;�s�-�-�;�)�f�o�r�(�e�=�(�n�=�o�[�s�]�)�.�m�e�m�b�e�r�s�.�l�e�n�g�t�h�,�i�=�b�.�g�e�t�[�l�]�(�n�.�e�l�e�m�e�n�t�.�f�i�r�s�t�C�h�i�l�d�)�;�e�-�-�;�)�r�[�a�]�=�c�-�i�,�b�.�c�s�s�(�n�.�m�e�m�b�e�r�s�[�e�]�.�b�o�u�n�d�s�,�r�)�}�,�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�P�o�s�i�t�i�o�n�s�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�,�o�,�s�=�t�?�[�t�]�:�m�.�g�r�o�u�p�s�,�r�=�s�.�l�e�n�g�t�h�,�t�=�p�?�d�o�c�u�m�e�n�t�.�b�o�d�y�:�h�,�a�=�p�?�{�t�o�p�:�0�,�l�e�f�t�:�0�}�:�b�.�g�e�t�.�o�f�f�s�e�t�(�t�,�!�0�)�,�l�=�f�?�b�.�g�e�t�.�w�i�d�t�h�(�h�)�-�1�5�:�b�.�g�e�t�.�h�e�i�g�h�t�(�h�)�-�1�5�,�c�=�f�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�,�d�=�f�?�"�Y�"�:�"�X�"�;�r�-�-�;�)�i�=�(�e�=�s�[�r�]�)�.�e�l�e�m�e�n�t�,�n�=�e�.�t�r�i�g�g�e�r�H�o�o�k�*�u�.�i�n�f�o�(�"�s�i�z�e�"�)�,�o�=�b�.�g�e�t�[�c�]�(�i�.�f�i�r�s�t�C�h�i�l�d�.�f�i�r�s�t�C�h�i�l�d�)�<�n�?�"�t�r�a�n�s�l�a�t�e�"�+�d�+�"�(�-�1�0�0�%�)�"�:�"�"�,�b�.�c�s�s�(�i�,�{�t�o�p�:�a�.�t�o�p�+�(�f�?�n�:�l�-�e�.�m�e�m�b�e�r�s�[�0�]�.�o�p�t�i�o�n�s�.�i�n�d�e�n�t�)�,�l�e�f�t�:�a�.�l�e�f�t�+�(�f�?�l�-�e�.�m�e�m�b�e�r�s�[�0�]�.�o�p�t�i�o�n�s�.�i�n�d�e�n�t�:�n�)�}�)�,�b�.�c�s�s�(�i�.�f�i�r�s�t�C�h�i�l�d�.�f�i�r�s�t�C�h�i�l�d�,�{�"�-�m�s�-�t�r�a�n�s�f�o�r�m�"�:�o�,�"�-�w�e�b�k�i�t�-�t�r�a�n�s�f�o�r�m�"�:�o�,�t�r�a�n�s�f�o�r�m�:�o�}�)�}�,�t�h�i�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�L�a�b�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�"�t�r�i�g�g�e�r�"�+�(�1�<�t�.�m�e�m�b�e�r�s�.�l�e�n�g�t�h�?�"�"�:�"� �"�+�t�.�m�e�m�b�e�r�s�[�0�]�.�o�p�t�i�o�n�s�.�n�a�m�e�)�,�t�=�t�.�e�l�e�m�e�n�t�.�f�i�r�s�t�C�h�i�l�d�.�f�i�r�s�t�C�h�i�l�d�;�t�.�t�e�x�t�C�o�n�t�e�n�t�!�=�=�e�&�&�(�t�.�t�e�x�t�C�o�n�t�e�n�t�=�e�,�f�&�&�m�.�u�p�d�a�t�e�B�o�u�n�d�s�P�o�s�i�t�i�o�n�s�(�)�)�}�,�t�h�i�s�.�a�d�d�S�c�e�n�e�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�_�o�p�t�i�o�n�s�.�a�d�d�I�n�d�i�c�a�t�o�r�s�&�&�t� �i�n�s�t�a�n�c�e�o�f� �n�.�S�c�e�n�e�&�&�t�.�c�o�n�t�r�o�l�l�e�r�(�)�=�=�=�u�&�&�t�.�a�d�d�I�n�d�i�c�a�t�o�r�s�(�)�,�t�h�i�s�.�$�s�u�p�e�r�.�a�d�d�S�c�e�n�e�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�}�,�t�h�i�s�.�d�e�s�t�r�o�y�=�f�u�n�c�t�i�o�n�(�)�{�h�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�e�)�,�p�|�|�(�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�e�)�,�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�e�)�)�,�h�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�t�)�,�h�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�t�)�,�t�h�i�s�.�$�s�u�p�e�r�.�d�e�s�t�r�o�y�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�}�,�u�}�)�,�f�u�n�c�t�i�o�n�(�o�,�i�)�{�f�u�n�c�t�i�o�n� �e�(�)�{�o�.�_�l�o�g�&�&�(�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�p�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�,�0�,�"�(�"�+�w�+�"�)�"�,�"�-�>�"�)�,�o�.�_�l�o�g�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�)�}�v�a�r� �n�,�s�,�r�=�t�h�i�s�,�a�=�T�.�b�o�u�n�d�s�(�)�,�l�=�T�.�s�t�a�r�t�(�i�.�c�o�l�o�r�S�t�a�r�t�)�,�c�=�T�.�e�n�d�(�i�.�c�o�l�o�r�E�n�d�)�,�d�=�i�.�p�a�r�e�n�t�&�&�b�.�g�e�t�.�e�l�e�m�e�n�t�s�(�i�.�p�a�r�e�n�t�)�[�0�]�,�u�=�(�i�.�n�a�m�e�=�i�.�n�a�m�e�|�|�_�,�l�.�f�i�r�s�t�C�h�i�l�d�.�t�e�x�t�C�o�n�t�e�n�t�+�=�"� �"�+�i�.�n�a�m�e�,�c�.�t�e�x�t�C�o�n�t�e�n�t�+�=�"� �"�+�i�.�n�a�m�e�,�a�.�a�p�p�e�n�d�C�h�i�l�d�(�l�)�,�a�.�a�p�p�e�n�d�C�h�i�l�d�(�c�)�,�r�.�o�p�t�i�o�n�s�=�i�,�r�.�b�o�u�n�d�s�=�a�,�r�.�t�r�i�g�g�e�r�G�r�o�u�p�=�v�o�i�d� �0�,�t�h�i�s�.�a�d�d�=�f�u�n�c�t�i�o�n�(�)�{�s�=�o�.�c�o�n�t�r�o�l�l�e�r�(�)�,�n�=�s�.�i�n�f�o�(�"�v�e�r�t�i�c�a�l�"�)�;�v�a�r� �t�=�s�.�i�n�f�o�(�"�i�s�D�o�c�u�m�e�n�t�"�)�;�d�=�d�|�|�(�t�?�d�o�c�u�m�e�n�t�.�b�o�d�y�:�s�.�i�n�f�o�(�"�c�o�n�t�a�i�n�e�r�"�)�)�,�t�|�|�"�s�t�a�t�i�c�"�!�=�=�b�.�c�s�s�(�d�,�"�p�o�s�i�t�i�o�n�"�)�|�|�b�.�c�s�s�(�d�,�{�p�o�s�i�t�i�o�n�:�"�r�e�l�a�t�i�v�e�"�}�)�,�o�.�o�n�(�"�c�h�a�n�g�e�.�p�l�u�g�i�n�_�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�h�)�,�o�.�o�n�(�"�s�h�i�f�t�.�p�l�u�g�i�n�_�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�u�)�,�y�(�)�,�m�(�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�B�o�u�n�d�s�P�o�s�i�t�i�o�n�s�(�r�)�}�,�0�)�,�e�(�3�,�"�a�d�d�e�d� �i�n�d�i�c�a�t�o�r�s�"�)�}�,�t�h�i�s�.�r�e�m�o�v�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�r�.�t�r�i�g�g�e�r�G�r�o�u�p�&�&�(�o�.�o�f�f�(�"�c�h�a�n�g�e�.�p�l�u�g�i�n�_�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�h�)�,�o�.�o�f�f�(�"�s�h�i�f�t�.�p�l�u�g�i�n�_�a�d�d�I�n�d�i�c�a�t�o�r�s�"�,�u�)�,�1�<�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�m�e�m�b�e�r�s�.�l�e�n�g�t�h�?�(�(�t�=�r�.�t�r�i�g�g�e�r�G�r�o�u�p�)�.�m�e�m�b�e�r�s�.�s�p�l�i�c�e�(�t�.�m�e�m�b�e�r�s�.�i�n�d�e�x�O�f�(�r�)�,�1�)�,�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�L�a�b�e�l�(�t�)�,�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�P�o�s�i�t�i�o�n�s�(�t�)�,�r�.�t�r�i�g�g�e�r�G�r�o�u�p�=�v�o�i�d� �0�)�:�v�(�)�,�f�(�)�,�e�(�3�,�"�r�e�m�o�v�e�d� �i�n�d�i�c�a�t�o�r�s�"�)�)�}�,�f�u�n�c�t�i�o�n�(�)�{�m�(�)�}�)�,�h�=�f�u�n�c�t�i�o�n�(�t�)�{�"�t�r�i�g�g�e�r�H�o�o�k�"�=�=�=�t�.�w�h�a�t�&�&�y�(�)�}�,�p�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�s�.�i�n�f�o�(�"�v�e�r�t�i�c�a�l�"�)�;�b�.�c�s�s�(�l�.�f�i�r�s�t�C�h�i�l�d�,�{�"�b�o�r�d�e�r�-�b�o�t�t�o�m�-�w�i�d�t�h�"�:�t�?�1�:�0�,�"�b�o�r�d�e�r�-�r�i�g�h�t�-�w�i�d�t�h�"�:�t�?�0�:�1�,�b�o�t�t�o�m�:�t�?�-�1�:�i�.�i�n�d�e�n�t�,�r�i�g�h�t�:�t�?�i�.�i�n�d�e�n�t�:�-�1�,�p�a�d�d�i�n�g�:�t�?�"�0� �8�p�x�"�:�"�2�p�x� �4�p�x�"�}�)�,�b�.�c�s�s�(�c�,�{�"�b�o�r�d�e�r�-�t�o�p�-�w�i�d�t�h�"�:�t�?�1�:�0�,�"�b�o�r�d�e�r�-�l�e�f�t�-�w�i�d�t�h�"�:�t�?�0�:�1�,�t�o�p�:�t�?�"�1�0�0�%�"�:�"�"�,�r�i�g�h�t�:�t�?�i�.�i�n�d�e�n�t�:�"�"�,�b�o�t�t�o�m�:�t�?�"�"�:�i�.�i�n�d�e�n�t�,�l�e�f�t�:�t�?�"�"�:�"�1�0�0�%�"�,�p�a�d�d�i�n�g�:�t�?�"�0� �8�p�x�"�:�"�2�p�x� �4�p�x�"�}�)�,�d�.�a�p�p�e�n�d�C�h�i�l�d�(�a�)�}�,�f�=�f�u�n�c�t�i�o�n�(�)�{�a�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�a�)�}�,�m�=�f�u�n�c�t�i�o�n�(�)�{�a�.�p�a�r�e�n�t�N�o�d�e�!�=�=�d�&�&�p�(�)�;�v�a�r� �t�=�{�}�;�t�[�n�?�"�t�o�p�"�:�"�l�e�f�t�"�]�=�o�.�t�r�i�g�g�e�r�P�o�s�i�t�i�o�n�(�)�,�t�[�n�?�"�h�e�i�g�h�t�"�:�"�w�i�d�t�h�"�]�=�o�.�d�u�r�a�t�i�o�n�(�)�,�b�.�c�s�s�(�a�,�t�)�,�b�.�c�s�s�(�c�,�{�d�i�s�p�l�a�y�:�0�<�o�.�d�u�r�a�t�i�o�n�(�)�?�"�"�:�"�n�o�n�e�"�}�)�}�,�g�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�T�.�t�r�i�g�g�e�r�(�i�.�c�o�l�o�r�T�r�i�g�g�e�r�)�,�e�=�{�}�,�e�=�(�e�[�n�?�"�r�i�g�h�t�"�:�"�b�o�t�t�o�m�"�]�=�0�,�e�[�n�?�"�b�o�r�d�e�r�-�t�o�p�-�w�i�d�t�h�"�:�"�b�o�r�d�e�r�-�l�e�f�t�-�w�i�d�t�h�"�]�=�1�,�b�.�c�s�s�(�t�.�f�i�r�s�t�C�h�i�l�d�,�e�)�,�b�.�c�s�s�(�t�.�f�i�r�s�t�C�h�i�l�d�.�f�i�r�s�t�C�h�i�l�d�,�{�p�a�d�d�i�n�g�:�n�?�"�0� �8�p�x� �3�p�x� �8�p�x�"�:�"�3�p�x� �4�p�x�"�}�)�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�,�{�t�r�i�g�g�e�r�H�o�o�k�:�o�.�t�r�i�g�g�e�r�H�o�o�k�(�)�,�e�l�e�m�e�n�t�:�t�,�m�e�m�b�e�r�s�:�[�r�]�}�)�;�s�.�_�i�n�d�i�c�a�t�o�r�s�.�g�r�o�u�p�s�.�p�u�s�h�(�e�)�,�r�.�t�r�i�g�g�e�r�G�r�o�u�p�=�e�,�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�L�a�b�e�l�(�e�)�,�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�P�o�s�i�t�i�o�n�s�(�e�)�}�,�v�=�f�u�n�c�t�i�o�n�(�)�{�s�.�_�i�n�d�i�c�a�t�o�r�s�.�g�r�o�u�p�s�.�s�p�l�i�c�e�(�s�.�_�i�n�d�i�c�a�t�o�r�s�.�g�r�o�u�p�s�.�i�n�d�e�x�O�f�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�)�,�1�)�,�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�e�l�e�m�e�n�t�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�e�l�e�m�e�n�t�)�,�r�.�t�r�i�g�g�e�r�G�r�o�u�p�=�v�o�i�d� �0�}�,�y�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�o�.�t�r�i�g�g�e�r�H�o�o�k�(�)�;�i�f�(�!�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�&�&�M�a�t�h�.�a�b�s�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�t�r�i�g�g�e�r�H�o�o�k�-�t�)�<�1�e�-�4�)�)�{�f�o�r�(�v�a�r� �e�,�i�=�s�.�_�i�n�d�i�c�a�t�o�r�s�.�g�r�o�u�p�s�,�n�=�i�.�l�e�n�g�t�h�;�n�-�-�;�)�i�f�(�e�=�i�[�n�]�,�M�a�t�h�.�a�b�s�(�e�.�t�r�i�g�g�e�r�H�o�o�k�-�t�)�<�1�e�-�4�)�r�e�t�u�r�n� �r�.�t�r�i�g�g�e�r�G�r�o�u�p�&�&�(�1�=�=�=�r�.
1�t�r�i�g�g�e�r�G�r�o�u�p�.�m�e�m�b�e�r�s�.�l�e�n�g�t�h�?�v�(�)�:�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�m�e�m�b�e�r�s�.�s�p�l�i�c�e�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�m�e�m�b�e�r�s�.�i�n�d�e�x�O�f�(�r�)�,�1�)�,�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�L�a�b�e�l�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�)�,�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�P�o�s�i�t�i�o�n�s�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�)�)�)�,�e�.�m�e�m�b�e�r�s�.�p�u�s�h�(�r�)�,�r�.�t�r�i�g�g�e�r�G�r�o�u�p�=�e�,�v�o�i�d� �s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�L�a�b�e�l�(�e�)�;�i�f�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�)�{�i�f�(�1�=�=�=�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�m�e�m�b�e�r�s�.�l�e�n�g�t�h�)�r�e�t�u�r�n� �r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�t�r�i�g�g�e�r�H�o�o�k�=�t�,�v�o�i�d� �s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�P�o�s�i�t�i�o�n�s�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�)�;�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�m�e�m�b�e�r�s�.�s�p�l�i�c�e�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�.�m�e�m�b�e�r�s�.�i�n�d�e�x�O�f�(�r�)�,�1�)�,�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�L�a�b�e�l�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�)�,�s�.�_�i�n�d�i�c�a�t�o�r�s�.�u�p�d�a�t�e�T�r�i�g�g�e�r�G�r�o�u�p�P�o�s�i�t�i�o�n�s�(�r�.�t�r�i�g�g�e�r�G�r�o�u�p�)�,�r�.�t�r�i�g�g�e�r�G�r�o�u�p�=�v�o�i�d� �0�}�g�(�)�}�}�}�)�,�T�=�{�s�t�a�r�t�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�t�=�(�e�.�t�e�x�t�C�o�n�t�e�n�t�=�"�s�t�a�r�t�"�,�b�.�c�s�s�(�e�,�{�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�,�o�v�e�r�f�l�o�w�:�"�v�i�s�i�b�l�e�"�,�"�b�o�r�d�e�r�-�w�i�d�t�h�"�:�0�,�"�b�o�r�d�e�r�-�s�t�y�l�e�"�:�"�s�o�l�i�d�"�,�c�o�l�o�r�:�t�,�"�b�o�r�d�e�r�-�c�o�l�o�r�"�:�t�}�)�,�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�)�;�r�e�t�u�r�n� �b�.�c�s�s�(�t�,�{�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�,�o�v�e�r�f�l�o�w�:�"�v�i�s�i�b�l�e�"�,�w�i�d�t�h�:�0�,�h�e�i�g�h�t�:�0�}�)�,�t�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�,�t�}�,�e�n�d�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�;�r�e�t�u�r�n� �e�.�t�e�x�t�C�o�n�t�e�n�t�=�"�e�n�d�"�,�b�.�c�s�s�(�e�,�{�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�,�o�v�e�r�f�l�o�w�:�"�v�i�s�i�b�l�e�"�,�"�b�o�r�d�e�r�-�w�i�d�t�h�"�:�0�,�"�b�o�r�d�e�r�-�s�t�y�l�e�"�:�"�s�o�l�i�d�"�,�c�o�l�o�r�:�t�,�"�b�o�r�d�e�r�-�c�o�l�o�r�"�:�t�}�)�,�e�}�,�b�o�u�n�d�s�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�;�r�e�t�u�r�n� �b�.�c�s�s�(�t�,�{�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�,�o�v�e�r�f�l�o�w�:�"�v�i�s�i�b�l�e�"�,�"�w�h�i�t�e�-�s�p�a�c�e�"�:�"�n�o�w�r�a�p�"�,�"�p�o�i�n�t�e�r�-�e�v�e�n�t�s�"�:�"�n�o�n�e�"�,�"�f�o�n�t�-�s�i�z�e�"�:�"�0�.�8�5�e�m�"�}�)�,�t�.�s�t�y�l�e�.�z�I�n�d�e�x�=�"�9�9�9�9�"�,�t�}�,�t�r�i�g�g�e�r�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�i�=�(�e�.�t�e�x�t�C�o�n�t�e�n�t�=�"�t�r�i�g�g�e�r�"�,�b�.�c�s�s�(�e�,�{�p�o�s�i�t�i�o�n�:�"�r�e�l�a�t�i�v�e�"�}�)�,�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�)�,�t�=�(�b�.�c�s�s�(�i�,�{�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�,�o�v�e�r�f�l�o�w�:�"�v�i�s�i�b�l�e�"�,�"�b�o�r�d�e�r�-�w�i�d�t�h�"�:�0�,�"�b�o�r�d�e�r�-�s�t�y�l�e�"�:�"�s�o�l�i�d�"�,�c�o�l�o�r�:�t�,�"�b�o�r�d�e�r�-�c�o�l�o�r�"�:�t�}�)�,�i�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�,�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�)�;�r�e�t�u�r�n� �b�.�c�s�s�(�t�,�{�p�o�s�i�t�i�o�n�:�"�f�i�x�e�d�"�,�o�v�e�r�f�l�o�w�:�"�v�i�s�i�b�l�e�"�,�"�w�h�i�t�e�-�s�p�a�c�e�"�:�"�n�o�w�r�a�p�"�,�"�p�o�i�n�t�e�r�-�e�v�e�n�t�s�"�:�"�n�o�n�e�"�,�"�f�o�n�t�-�s�i�z�e�"�:�"�0�.�8�5�e�m�"�}�)�,�t�.�s�t�y�l�e�.�z�I�n�d�e�x�=�"�9�9�9�9�"�,�t�.�a�p�p�e�n�d�C�h�i�l�d�(�i�)�,�t�}�}�}�)�,�!�f�u�n�c�t�i�o�n�(�t�)�{�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�&�&�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �m�o�d�u�l�e�?�m�o�d�u�l�e�.�e�x�p�o�r�t�s�=�t�(�)�:�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�]�,�t�)�:�(�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�?�w�i�n�d�o�w�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �g�l�o�b�a�l�?�g�l�o�b�a�l�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �s�e�l�f�?�s�e�l�f�:�t�h�i�s�)�.�S�c�r�o�l�l�t�r�i�g�g�e�r�=�t�(�)�}�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n� �n�(�o�,�s�,�r�)�{�f�u�n�c�t�i�o�n� �a�(�i�,�t�)�{�i�f�(�!�s�[�i�]�)�{�i�f�(�!�o�[�i�]�)�{�v�a�r� �e�=�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �r�e�q�u�i�r�e�&�&�r�e�q�u�i�r�e�;�i�f�(�!�t�&�&�e�)�r�e�t�u�r�n� �e�(�i�,�!�0�)�;�i�f�(�l�)�r�e�t�u�r�n� �l�(�i�,�!�0�)�;�t�=�n�e�w� �E�r�r�o�r�(�"�C�a�n�n�o�t� �f�i�n�d� �m�o�d�u�l�e� �'�"�+�i�+�"�'�"�)�;�t�h�r�o�w� �t�.�c�o�d�e�=�"�M�O�D�U�L�E�_�N�O�T�_�F�O�U�N�D�"�,�t�}�e�=�s�[�i�]�=�{�e�x�p�o�r�t�s�:�{�}�}�;�o�[�i�]�[�0�]�.�c�a�l�l�(�e�.�e�x�p�o�r�t�s�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�o�[�i�]�[�1�]�[�t�]�;�r�e�t�u�r�n� �a�(�e�|�|�t�)�}�,�e�,�e�.�e�x�p�o�r�t�s�,�n�,�o�,�s�,�r�)�}�r�e�t�u�r�n� �s�[�i�]�.�e�x�p�o�r�t�s�}�f�o�r�(�v�a�r� �l�=�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �r�e�q�u�i�r�e�&�&�r�e�q�u�i�r�e�,�t�=�0�;�t�<�r�.�l�e�n�g�t�h�;�t�+�+�)�a�(�r�[�t�]�)�;�r�e�t�u�r�n� �a�}�(�{�1�:�[�f�u�n�c�t�i�o�n�(�o�,�d�,�t�)�{�!�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �s�=�o�(�"�
1d�e�f�i�n�e�d�"�)�,�i�=�o�(�"�x�t�e�n�d�/�m�u�t�a�b�l�e�"�)�,�r�=�t�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�,�e�=�t�.�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�,�a�=�{�y�:�[�"�s�c�r�o�l�l�Y�"�,�"�p�a�g�e�Y�O�f�f�s�e�t�"�,�"�s�c�r�o�l�l�T�o�p�"�]�,�x�:�[�"�s�c�r�o�l�l�X�"�,�"�p�a�g�e�X�O�f�f�s�e�t�"�,�"�s�c�r�o�l�l�L�e�f�t�"�]�}�;�f�u�n�c�t�i�o�n� �l�(�t�,�e�)�{�t�h�i�s�.�c�o�n�t�a�i�n�e�r�=�t�|�|�w�i�n�d�o�w�,�t�h�i�s�.�a�x�i�s�=�e�|�|�"�y�"�,�t�h�i�s�.�p�o�i�n�t�s�=�[�]�,�t�h�i�s�.�i�m�m�e�d�i�a�t�e�P�r�e�v�i�o�u�s�S�c�r�o�l�l�=�0�,�t�h�i�s�.�l�i�s�t�e�n�(�)�}�f�u�n�c�t�i�o�n� �n�(�t�,�e�)�{�t�h�i�s�.�p�r�e�v�i�o�u�s�S�c�r�o�l�l�=�e�,�t�h�i�s�.�t�h�r�e�s�h�o�l�d�=�t�.�t�h�r�e�s�h�o�l�d�,�t�h�i�s�.�c�a�l�l�b�a�c�k�=�t�.�c�a�l�l�b�a�c�k�,�i�(�t�h�i�s�,�t�)�,�t�h�i�s�.�r�e�f�r�e�s�h�(�)�}�f�u�n�c�t�i�o�n� �c�(�)�{�r�e�t�u�r�n�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�&�&�"�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�"�i�n� �w�i�n�d�o�w�}�(�d�.�e�x�p�o�r�t�s�=�l�)�.�l�o�o�p�=�f�u�n�c�t�i�o�n�(�i�)�{�v�a�r� �n�=�i�.�c�o�n�t�a�i�n�e�r�,�o�=�a�[�i�.�a�x�i�s�]�;�i�.�r�e�q�u�e�s�t�I�d�=�r�(�f�u�n�c�t�i�o�n� �t�(�)�{�v�a�r� �e�=�s�(�n�[�o�[�0�]�]�,�n�[�o�[�1�]�]�,�n�[�o�[�2�]�]�)�;�i�f�(�v�o�i�d� �0�=�=�=�e�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�C�o�u�l�d�n�� t� �g�e�t� �s�c�r�o�l�l� �p�o�s�i�t�i�o�n� �f�r�o�m� �c�o�n�t�a�i�n�e�r� �e�l�e�m�e�n�t�"�)�;�i�.�i�m�m�e�d�i�a�t�e�P�r�e�v�i�o�u�s�S�c�r�o�l�l�!�=�=�e�&�&�i�.�p�o�i�n�t�s�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�u�p�d�a�t�e�(�e�)�}�)�;�i�.�i�m�m�e�d�i�a�t�e�P�r�e�v�i�o�u�s�S�c�r�o�l�l�=�e�;�i�.�r�e�q�u�e�s�t�I�d�=�r�(�t�)�}�)�}�,�l�.�F�O�R�W�A�R�D�=�1�,�l�.�B�A�C�K�W�A�R�D�=�-�1�,�l�.�p�r�o�t�o�t�y�p�e�.�a�d�d�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�n�e�w� �n�(�t�,�t�h�i�s�.�i�m�m�e�d�i�a�t�e�P�r�e�v�i�o�u�s�S�c�r�o�l�l�)�;�r�e�t�u�r�n� �t�h�i�s�.�p�o�i�n�t�s�.�p�u�s�h�(�t�)�,�t�}�,�l�.�p�r�o�t�o�t�y�p�e�.�r�e�m�o�v�e�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�t�h�i�s�.�p�o�i�n�t�s�.�i�n�d�e�x�O�f�(�t�)�;�t�h�i�s�.�p�o�i�n�t�s�.�s�p�l�i�c�e�(�t�,�1�)�}�,�l�.�p�r�o�t�o�t�y�p�e�.�r�e�f�r�e�s�h�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�p�o�i�n�t�s�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�r�e�f�r�e�s�h�(�)�}�)�}�,�l�.�p�r�o�t�o�t�y�p�e�.�l�i�s�t�e�n�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�,�n�,�o�;�l�.�l�o�o�p�(�t�h�i�s�)�,�c�(�)�&�&�(�t�h�i�s�.�r�e�s�i�z�e�H�a�n�d�l�e�r�=�(�i�=�t�h�i�s�.�r�e�f�r�e�s�h�.�b�i�n�d�(�t�h�i�s�)�,�n�=�1�5�0�,�o�=�n�u�l�l�,�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�,�e�=�a�r�g�u�m�e�n�t�s�;�c�l�e�a�r�T�i�m�e�o�u�t�(�o�)�,�o�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�i�.�a�p�p�l�y�(�t�,�e�)�}�,�n�)�}�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�t�h�i�s�.�r�e�s�i�z�e�H�a�n�d�l�e�r�)�)�}�,�l�.�p�r�o�t�o�t�y�p�e�.�s�t�o�p�L�i�s�t�e�n�i�n�g�=�f�u�n�c�t�i�o�n�(�)�{�e�(�t�h�i�s�.�r�e�q�u�e�s�t�I�d�)�,�c�(�)�&�&�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�t�h�i�s�.�r�e�s�i�z�e�H�a�n�d�l�e�r�)�}�,�n�.�p�r�o�t�o�t�y�p�e�.�u�p�d�a�t�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�p�r�e�v�i�o�u�s�S�c�r�o�l�l�,�i�=�t�h�i�s�.�_�_�t�h�r�e�s�h�o�l�d�,�n�=�e�<�i�,�i�=�i�<�=�t�;�(�n�&�&�i�|�|�!�n�&�&�!�i�)�&�&�t�h�i�s�.�c�a�l�l�b�a�c�k�(�e�<�t�?�1�:�-�1�,�t�h�i�s�)�,�t�h�i�s�.�p�r�e�v�i�o�u�s�S�c�r�o�l�l�=�t�}�,�n�.�p�r�o�t�o�t�y�p�e�.�r�e�f�r�e�s�h�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�_�t�h�r�e�s�h�o�l�d�=�t�h�i�s�.�t�h�r�e�s�h�o�l�d�(�)�}�}�.�c�a�l�l�(�t�h�i�s�,�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �g�l�o�b�a�l�?�g�l�o�b�a�l�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �s�e�l�f�?�s�e�l�f�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�?�w�i�n�d�o�w�:�{�}�)�}�,�{�d�e�f�i�n�e�d�:�2�,�"�x�t�e�n�d�/�m�u�t�a�b�l�e�"�:�3�}�]�,�2�:�[�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�e�.�e�x�p�o�r�t�s�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�0�;�t�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�t�+�+�)�i�f�(�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�t�]�)�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�[�t�]�}�}�,�{�}�]�,�3�:�[�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�e�.�e�x�p�o�r�t�s�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�=�1�;�e�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�e�+�+�)�{�v�a�r� �i�,�n�=�a�r�g�u�m�e�n�t�s�[�e�]�;�f�o�r�(�i� �i�n� �n�)�o�.�c�a�l�l�(�n�,�i�)�&�&�(�t�[�i�]�=�n�[�i�]�)�}�r�e�t�u�r�n� �t�}�;�v�a�r� �o�=�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�}�,�{�}�]�}�,�{�}�,�[�1�]�)�(�1�)�}�)�,�!�f�u�n�c�t�i�o�n�(�t�,�e�)�{�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�&�&�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �m�o�d�u�l�e�?�m�o�d�u�l�e�.�e�x�p�o�r�t�s�=�e�(�)�:�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�e�)�:�(�t�=�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �g�l�o�b�a�l�T�h�i�s�?�g�l�o�b�a�l�T�h�i�s�:�t�|�|�s�e�l�f�)�.�L�o�c�o�m�o�t�i�v�e�S�c�r�o�l�l�=�e�(�)�}�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �n�(�t�,�e�)�{�i�f�(�!�(�t� �i�n�s�t�a�n�c�e�o�f� �e�)�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�C�a�n�n�o�t� �c�a�l�l� �a� �c�l�a�s�s� �a�s� �a� �f�u�n�c�t�i�o�n�"�)�}
1�f�u�n�c�t�i�o�n� �o�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�=�0�;�i�<�e�.�l�e�n�g�t�h�;�i�+�+�)�{�v�a�r� �n�=�e�[�i�]�;�n�.�e�n�u�m�e�r�a�b�l�e�=�n�.�e�n�u�m�e�r�a�b�l�e�|�|�!�1�,�n�.�c�o�n�f�i�g�u�r�a�b�l�e�=�!�0�,�"�v�a�l�u�e�"�i�n� �n�&�&�(�n�.�w�r�i�t�a�b�l�e�=�!�0�)�,�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�t�,�n�.�k�e�y�,�n�)�}�}�f�u�n�c�t�i�o�n� �t�(�t�,�e�,�i�)�{�e�&�&�o�(�t�.�p�r�o�t�o�t�y�p�e�,�e�)�,�i�&�&�o�(�t�,�i�)�}�f�u�n�c�t�i�o�n� �e�(�e�,�t�)�{�v�a�r� �i�,�n�=�O�b�j�e�c�t�.�k�e�y�s�(�e�)�;�r�e�t�u�r�n� �O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�S�y�m�b�o�l�s�&�&�(�i�=�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�S�y�m�b�o�l�s�(�e�)�,�t�&�&�(�i�=�i�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�D�e�s�c�r�i�p�t�o�r�(�e�,�t�)�.�e�n�u�m�e�r�a�b�l�e�}�)�)�,�n�.�p�u�s�h�.�a�p�p�l�y�(�n�,�i�)�)�,�n�}�f�u�n�c�t�i�o�n� �s�(�n�)�{�f�o�r�(�v�a�r� �t�=�1�;�t�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�t�+�+�)�{�v�a�r� �o�=�n�u�l�l�!�=�a�r�g�u�m�e�n�t�s�[�t�]�?�a�r�g�u�m�e�n�t�s�[�t�]�:�{�}�;�t�%�2�?�e�(�O�b�j�e�c�t�(�o�)�,�!�0�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�;�e�=�n�,�i�=�o�[�t�=�t�]�,�t� �i�n� �e�?�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�e�,�t�,�{�v�a�l�u�e�:�i�,�e�n�u�m�e�r�a�b�l�e�:�!�0�,�c�o�n�f�i�g�u�r�a�b�l�e�:�!�0�,�w�r�i�t�a�b�l�e�:�!�0�}�)�:�e�[�t�]�=�i�}�)�:�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�D�e�s�c�r�i�p�t�o�r�s�?�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�i�e�s�(�n�,�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�D�e�s�c�r�i�p�t�o�r�s�(�o�)�)�:�e�(�O�b�j�e�c�t�(�o�)�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�n�,�t�,�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�D�e�s�c�r�i�p�t�o�r�(�o�,�t�)�)�}�)�}�r�e�t�u�r�n� �n�}�f�u�n�c�t�i�o�n� �r�(�t�,�e�)�{�i�f�(�"�f�u�n�c�t�i�o�n�"�!�=�t�y�p�e�o�f� �e�&�&�n�u�l�l�!�=�=�e�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�S�u�p�e�r� �e�x�p�r�e�s�s�i�o�n� �m�u�s�t� �e�i�t�h�e�r� �b�e� �n�u�l�l� �o�r� �a� �f�u�n�c�t�i�o�n�"�)�;�t�.�p�r�o�t�o�t�y�p�e�=�O�b�j�e�c�t�.�c�r�e�a�t�e�(�e�&�&�e�.�p�r�o�t�o�t�y�p�e�,�{�c�o�n�s�t�r�u�c�t�o�r�:�{�v�a�l�u�e�:�t�,�w�r�i�t�a�b�l�e�:�!�0�,�c�o�n�f�i�g�u�r�a�b�l�e�:�!�0�}�}�)�,�e�&�&�i�(�t�,�e�)�}�f�u�n�c�t�i�o�n� �a�(�t�)�{�r�e�t�u�r�n�(�a�=�O�b�j�e�c�t�.�s�e�t�P�r�o�t�o�t�y�p�e�O�f�?�O�b�j�e�c�t�.�g�e�t�P�r�o�t�o�t�y�p�e�O�f�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�_�_�p�r�o�t�o�_�_�|�|�O�b�j�e�c�t�.�g�e�t�P�r�o�t�o�t�y�p�e�O�f�(�t�)�}�)�(�t�)�}�f�u�n�c�t�i�o�n� �i�(�t�,�e�)�{�r�e�t�u�r�n�(�i�=�O�b�j�e�c�t�.�s�e�t�P�r�o�t�o�t�y�p�e�O�f�|�|�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�.�_�_�p�r�o�t�o�_�_�=�e�,�t�}�)�(�t�,�e�)�}�f�u�n�c�t�i�o�n� �l�(�t�)�{�i�f�(�v�o�i�d� �0�=�=�=�t�)�t�h�r�o�w� �n�e�w� �R�e�f�e�r�e�n�c�e�E�r�r�o�r�(�"�t�h�i�s� �h�a�s�n�'�t� �b�e�e�n� �i�n�i�t�i�a�l�i�s�e�d� �-� �s�u�p�e�r�(�)� �h�a�s�n�'�t� �b�e�e�n� �c�a�l�l�e�d�"�)�;�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �c�(�n�)�{�v�a�r� �o�=�f�u�n�c�t�i�o�n�(�)�{�i�f�(�"�u�n�d�e�f�i�n�e�d�"�=�=�t�y�p�e�o�f� �R�e�f�l�e�c�t�|�|�!�R�e�f�l�e�c�t�.�c�o�n�s�t�r�u�c�t�)�r�e�t�u�r�n�!�1�;�i�f�(�R�e�f�l�e�c�t�.�c�o�n�s�t�r�u�c�t�.�s�h�a�m�)�r�e�t�u�r�n�!�1�;�i�f�(�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �P�r�o�x�y�)�r�e�t�u�r�n�!�0�;�t�r�y�{�r�e�t�u�r�n� �D�a�t�e�.�p�r�o�t�o�t�y�p�e�.�t�o�S�t�r�i�n�g�.�c�a�l�l�(�R�e�f�l�e�c�t�.�c�o�n�s�t�r�u�c�t�(�D�a�t�e�,�[�]�,�f�u�n�c�t�i�o�n�(�)�{�}�)�)�,�!�0�}�c�a�t�c�h�(�t�)�{�r�e�t�u�r�n�!�1�}�}�(�)�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�=�a�(�n�)�;�r�e�t�u�r�n� �t�=�o�?�(�t�=�a�(�t�h�i�s�)�.�c�o�n�s�t�r�u�c�t�o�r�,�R�e�f�l�e�c�t�.�c�o�n�s�t�r�u�c�t�(�i�,�a�r�g�u�m�e�n�t�s�,�t�)�)�:�i�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�,�i�=�t�h�i�s�,�!�(�e�=�t�)�|�|�"�o�b�j�e�c�t�"�!�=�t�y�p�e�o�f� �e�&�&�"�f�u�n�c�t�i�o�n�"�!�=�t�y�p�e�o�f� �e�?�l�(�i�)�:�e�}�}�f�u�n�c�t�i�o�n� �d�(�t�,�e�,�i�)�{�r�e�t�u�r�n�(�d�=�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �R�e�f�l�e�c�t�&�&�R�e�f�l�e�c�t�.�g�e�t�?�R�e�f�l�e�c�t�.�g�e�t�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �t�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�o�r�(�;�!�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�.�c�a�l�l�(�t�,�e�)�&�&�n�u�l�l�!�=�=�(�t�=�a�(�t�)�)�;�)�;�r�e�t�u�r�n� �t�}�(�t�,�e�)�;�i�f�(�t�)�r�e�t�u�r�n� �t�=�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�D�e�s�c�r�i�p�t�o�r�(�t�,�e�)�,�t�.�g�e�t�?�t�.�g�e�t�.�c�a�l�l�(�i�)�:�t�.�v�a�l�u�e�}�)�(�t�,�e�,�i�|�|�t�)�}�f�u�n�c�t�i�o�n� �C�(�t�,�e�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�A�r�r�a�y�.�i�s�A�r�r�a�y�(�t�)�)�r�e�t�u�r�n� �t�}�(�t�)�|�|�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �S�y�m�b�
1o�l�&�&�S�y�m�b�o�l�.�i�t�e�r�a�t�o�r� �i�n� �O�b�j�e�c�t�(�t�)�)�{�v�a�r� �i�=�[�]�,�n�=�!�0�,�o�=�!�1�,�s�=�v�o�i�d� �0�;�t�r�y�{�f�o�r�(�v�a�r� �r�,�a�=�t�[�S�y�m�b�o�l�.�i�t�e�r�a�t�o�r�]�(�)�;�!�(�n�=�(�r�=�a�.�n�e�x�t�(�)�)�.�d�o�n�e�)�&�&�(�i�.�p�u�s�h�(�r�.�v�a�l�u�e�)�,�!�e�|�|�i�.�l�e�n�g�t�h�!�=�=�e�)�;�n�=�!�0�)�;�}�c�a�t�c�h�(�t�)�{�o�=�!�0�,�s�=�t�}�f�i�n�a�l�l�y�{�t�r�y�{�n�|�|�n�u�l�l�=�=�a�.�r�e�t�u�r�n�|�|�a�.�r�e�t�u�r�n�(�)�}�f�i�n�a�l�l�y�{�i�f�(�o�)�t�h�r�o�w� �s�}�}�r�e�t�u�r�n� �i�}�}�(�t�,�e�)�|�|�u�(�t�,�e�)�|�|�f�u�n�c�t�i�o�n�(�)�{�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�I�n�v�a�l�i�d� �a�t�t�e�m�p�t� �t�o� �d�e�s�t�r�u�c�t�u�r�e� �n�o�n�-�i�t�e�r�a�b�l�e� �i�n�s�t�a�n�c�e�.�\�n�I�n� �o�r�d�e�r� �t�o� �b�e� �i�t�e�r�a�b�l�e�,� �n�o�n�-�a�r�r�a�y� �o�b�j�e�c�t�s� �m�u�s�t� �h�a�v�e� �a� �[�S�y�m�b�o�l�.�i�t�e�r�a�t�o�r�]�(�)� �m�e�t�h�o�d�.�"�)�}�(�)�}�f�u�n�c�t�i�o�n� �m�(�t�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�A�r�r�a�y�.�i�s�A�r�r�a�y�(�t�)�)�r�e�t�u�r�n� �h�(�t�)�}�(�t�)�|�|�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �S�y�m�b�o�l�&�&�S�y�m�b�o�l�.�i�t�e�r�a�t�o�r� �i�n� �O�b�j�e�c�t�(�t�)�)�r�e�t�u�r�n� �A�r�r�a�y�.�f�r�o�m�(�t�)�}�(�t�)�|�|�u�(�t�)�|�|�f�u�n�c�t�i�o�n�(�)�{�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�I�n�v�a�l�i�d� �a�t�t�e�m�p�t� �t�o� �s�p�r�e�a�d� �n�o�n�-�i�t�e�r�a�b�l�e� �i�n�s�t�a�n�c�e�.�\�n�I�n� �o�r�d�e�r� �t�o� �b�e� �i�t�e�r�a�b�l�e�,� �n�o�n�-�a�r�r�a�y� �o�b�j�e�c�t�s� �m�u�s�t� �h�a�v�e� �a� �[�S�y�m�b�
1o�l�.�i�t�e�r�a�t�o�r�]�(�)� �m�e�t�h�o�d�.�"�)�}�(�)�}�f�u�n�c�t�i�o�n� �u�(�t�,�e�)�{�i�f�(�t�)�{�i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�)�r�e�t�u�r�n� �h�(�t�,�e�)�;�v�a�r� �i�=�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�t�o�S�t�r�i�n�g�.�c�a�l�l�(�t�)�.�s�l�i�c�e�(�8�,�-�1�)�;�r�e�t�u�r�n�"�M�a�p�"�=�=�=�(�i�=�"�O�b�j�e�c�t�"�=�=�=�i�&�&�t�.�c�o�n�s�t�r�u�c�t�o�r�?�t�.�c�o�n�s�t�r�u�c�t�o�r�.�n�a�m�e�:�i�)�|�|�"�S�e�t�"�=�=�=�i�?�A�r�r�a�y�.�f�r�o�m�(�t�)�:�"�A�r�g�u�m�e�n�t�s�"�=�=�=�i�|�|�/�^�(�?�:�U�i�|�I�)�n�t�(�?�:�8�|�1�6�|�3�2�)�(�?�:�C�l�a�m�p�e�d�)�?�A�r�r�a�y�$�/�.�t�e�s�t�(�i�)�?�h�(�t�,�e�)�:�v�o�i�d� �0�}�}�f�u�n�c�t�i�o�n� �h�(�t�,�e�)�{�(�n�u�l�l�=�=�e�|�|�e�>�t�.�l�e�n�g�t�h�)�&�&�(�e�=�t�.�l�e�n�g�t�h�)�;�f�o�r�(�v�a�r� �i�=�0�,�n�=�n�e�w� �A�r�r�a�y�(�e�)�;�i�<�e�;�i�+�+�)�n�[�i�]�=�t�[�i�]�;�r�e�t�u�r�n� �n�}�v�a�r� �p�=�{�e�l�:�d�o�c�u�m�e�n�t�,�n�a�m�e�:�"�s�c�r�o�l�l�"�,�o�f�f�s�e�t�:�[�0�,�0�]�,�r�e�p�e�a�t�:�!�1�,�s�m�o�o�t�h�:�!�1�,�i�n�i�t�P�o�s�i�t�i�o�n�:�{�x�:�0�,�y�:�0�}�,�d�i�r�e�c�t�i�o�n�:�"�v�e�r�t�i�c�a�l�"�,�g�e�s�t�u�r�e�D�i�r�e�c�t�i�o�n�:�"�v�e�r�t�i�c�a�l�"�,�r�e�l�o�a�d�O�n�C�o�n�t�e�x�t�C�h�a�n�g�e�:�!�1�,�l�e�r�p�:�.�1�,�c�l�a�s�s�:�"�i�s�-�i�n�v�i�e�w�"�,�s�c�r�o�l�l�b�a�r�C�o�n�t�a�i�n�e�r�:�!�1�,�s�c�r�o�l�l�b�a�r�C�l�a�s�s�:�"�c�-�s�c�r�o�l�l�b�a�r�"�,�s�c�r�o�l�l�i�n�g�C�l�a�s�s�:�"�h�a�s�-�s�c�r�o�l�l�-�s�c�r�o�l�l�i�n�g�"�,�d�r�a�g�g�i�n�g�C�l�a�s�s�:�"�h�a�s�-�s�c�r�o�l�l�-�d�r�a�g�g�i�n�g�"�,�s�m�o�o�t�h�C�l�a�s�s�:�"�h�a�s�-�s�c�r�o�l�l�-�s�m�o�o�t�h�"�,�i�n�i�t�C�l�a�s�s�:�"�h�a�s�-�s�c�r�o�l�l�-�i�n�i�t�"�,�g�e�t�S�p�e�e�d�:�!�1�,�g�e�t�D�i�r�e�c�t�i�o�n�:�!�1�,�s�c�r�o�l�l�F�r�o�m�A�n�y�w�h�e�r�e�:�!�1�,�m�u�l�t�i�p�l�i�e�r�:�1�,�f�i�r�e�f�o�x�M�u�l�t�i�p�l�i�e�r�:�5�0�,�t�o�u�c�h�M�u�l�t�i�p�l�i�e�r�:�2�,�r�e�s�e�t�N�a�t�i�v�e�S�c�r�o�l�l�:�!�0�,�t�a�b�l�e�t�:�{�s�m�o�o�t�h�:�!�1�,�d�i�r�e�c�t�i�o�n�:�"�v�e�r�t�i�c�a�l�"�,�g�e�s�t�u�r�e�D�i�r�e�c�t�i�o�n�:�"�v�e�r�t�i�c�a�l�"�,�b�r�e�a�k�p�o�i�n�t�:�1�0�2�4�}�,�s�m�a�r�t�p�h�o�n�e�:�{�s�m�o�o�t�h�:�!�1�,�d�i�r�e�c�t�i�o�n�:�"�v�e�r�t�i�c�a�l�"�,�g�e�s�t�u�r�e�D�i�r�e�c�t�i�o�n�:�"�v�e�r�t�i�c�a�l�"�}�}�,�f�=�f�u�n�c�t�i�o�n�(�)�{�f�u�n�c�t�i�o�n� �e�(�)�{�v�a�r� �t�=�0�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�?�a�r�g�u�m�e�n�t�s�[�0�]�:�{�}�;�n�(�t�h�i�s�,�e�)�,�O�b�j�e�c�t�.�a�s�s�i�g�n�(�t�h�i�s�,�p�,�t�)�,�t�h�i�s�.�s�m�a�r�t�p�h�o�n�e�=�p�.�s�m�a�r�t�p�h�o�n�e�,�t�.�s�m�a�r�t�p�h�o�n�e�&�&�O�b�j�e�c�t�.�a�s�s�i�g�n�(�t�h�i�s�.�s�m�a�r�t�p�h�o�n�e�,�t�.�s�m�a�r�t�p�h�o�n�e�)�,�t�h�i�s�.�t�a�b�l�e�t�=�p�.�t�a�b�l�e�t�,�t�.�t�a�b�l�e�t�&�&�O�b�j�e�c�t�.�a�s�s�i�g�n�(�t�h�i�s�.�t�a�b�l�e�t�,�t�.�t�a�b�l�e�t�)�,�t�h�i�s�.�n�a�m�e�s�p�a�c�e�=�"�l�o�c�o�m�o�t�i�v�e�"�,�t�h�i�s�.�h�t�m�l�=�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�,�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�=�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�,�t�h�i�s�.�w�i�n�d�o�w�M�i�d�d�l�e�=�{�x�:�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�/�2�,�y�:�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�/�2�}�,�t�h�i�s�.�e�l�s�=�{�}�,�t�h�i�s�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�=�{�}�,�t�h�i�s�.�l�i�s�t�e�n�e�r�s�=�{�}�,�t�h�i�s�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�=�!�1�,�t�h�i�s�.�h�a�s�C�a�l�l�E�v�e�n�t�S�e�t�=�!�1�,�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�=�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�.�b�i�n�d�(�t�h�i�s�)�,�t�h�i�s�.�c�h�e�c�k�R�e�s�i�z�e�=�t�h�i�s�.�c�h�e�c�k�R�e�s�i�z�e�.�b�i�n�d�(�t�h�i�s�)�,�t�h�i�s�.�c�h�e�c�k�E�v�e�n�t�=�t�h�i�s�.�c�h�e�c�k�E�v�e�n�t�.�b�i�n�d�(�t�h�i�s�)�,�t�h�i�s�.�i�n�s�t�a�n�c�e�=�{�s�c�r�o�l�l�:�{�x�:�0�,�y�:�0�}�,�l�i�m�i�t�:�{�x�:�t�h�i�s�.�h�t�m�l�.�o�f�f�s�e�t�W�i�d�t�h�,�y�:�t�h�i�s�.�h�t�m�l�.�o�f�f�s�e�t�H�e�i�g�h�t�}�,�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�:�t�h�i�s�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�}�,�t�h�i�s�.�i�s�M�o�b�i�l�e�?�t�h�i�s�.�i�s�T�a�b�l�e�t�?�t�h�i�s�.�c�o�n�t�e�x�t�=�"�t�a�b�l�e�t�"�:�t�h�i�s�.�c�o�n�t�e�x�t�=�"�s�m�a�r�t�p�h�o�n�e�"�:�t�h�i�s�.�c�o�n�t�e�x�t�=�"�d�e�s�k�t�o�p�"�,�t�h�i�s�.�i�s�M�o�b�i�l�e�&�&�(�t�h�i�s�.�d�i�r�e�c�t�i�o�n�=�t�h�i�s�[�t�h�i�s�.�c�o�n�t�e�x�t�]�.�d�i�r�e�c�t�i�o�n�)�,�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�?�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�=�"�x�"�:�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�=�"�y�"�,�t�h�i�s�.�g�e�t�D�i�r�e�c�t�i�o�n�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�=�n�u�l�l�)�,�t�h�i�s�.�g�e�t�D�i�r�e�c�t�i�o�n�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�p�e�e�d�=�0�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�t�h�i�s�.�i�n�i�t�C�l�a�s�s�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�t�h�i�s�.�c�h�e�c�k�R�e�s�i�z�e�,
1�!�1�)�}�r�e�t�u�r�n� �t�(�e�,�[�{�k�e�y�:�"�i�n�i�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�i�n�i�t�E�v�e�n�t�s�(�)�}�}�,�{�k�e�y�:�"�c�h�e�c�k�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�d�i�s�p�a�t�c�h�S�c�r�o�l�l�(�)�}�}�,�{�k�e�y�:�"�c�h�e�c�k�R�e�s�i�z�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�t�h�i�s�.�r�e�s�i�z�e�T�i�c�k�|�|�(�t�h�i�s�.�r�e�s�i�z�e�T�i�c�k�=�!�0�,�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�f�u�n�c�t�i�o�n�(�)�{�t�.�r�e�s�i�z�e�(�)�,�t�.�r�e�s�i�z�e�T�i�c�k�=�!�1�}�)�)�}�}�,�{�k�e�y�:�"�r�e�s�i�z�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�}�}�,�{�k�e�y�:�"�c�h�e�c�k�C�o�n�t�e�x�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�t�h�i�s�.�r�e�l�o�a�d�O�n�C�o�n�t�e�x�t�C�h�a�n�g�e�&�&�(�t�h�i�s�.�i�s�M�o�b�i�l�e�=�/�A�n�d�r�o�i�d�|�i�P�h�o�n�e�|�i�P�a�d�|�i�P�o�d�|�B�l�a�c�k�B�e�r�r�y�|�I�E�M�o�b�i�l�e�|�O�p�e�r�a� �M�i�n�i�/�i�.�t�e�s�t�(�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�)�|�|�"�M�a�c�I�n�t�e�l�"�=�=�=�n�a�v�i�g�a�t�o�r�.�p�l�a�t�f�o�r�m�&�&�1�<�n�a�v�i�g�a�t�o�r�.�m�a�x�T�o�u�c�h�P�o�i�n�t�s�|�|�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�<�t�h�i�s�.�t�a�b�l�e�t�.�b�r�e�a�k�p�o�i�n�t�,�t�h�i�s�.�i�s�T�a�b�l�e�t�=�t�h�i�s�.�i�s�M�o�b�i�l�e�&�&�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�>�=�t�h�i�s�.�t�a�b�l�e�t�.�b�r�e�a�k�p�o�i�n�t�,�t�=�t�h�i�s�.�c�o�n�t�e�x�t�,�t�h�i�s�.�i�s�M�o�b�i�l�e�?�t�h�i�s�.�i�s�T�a�b�l�e�t�?�t�h�i�s�.�c�o�n�t�e�x�t�=�"�t�a�b�l�e�t�"�:�t�h�i�s�.�c�o�n�t�e�x�t�=�"�s�m�a�r�t�p�h�o�n�e�"�:�t�h�i�s�.�c�o�n�t�e�x�t�=�"�d�e�s�k�t�o�p�"�,�t�!�=�t�h�i�s�.�c�o�n�t�e�x�t�&�&�(�"�d�e�s�k�t�o�p�"�=�=�t�?�t�h�i�s�:�t�h�i�s�[�t�]�)�.�s�m�o�o�t�h�!�=�(�"�d�e�s�k�t�o�p�"�=�=�t�h�i�s�.�c�o�n�t�e�x�t�?�t�h�i�s�:�t�h�i�s�[�t�h�i�s�.�c�o�n�t�e�x�t�]�)�.�s�m�o�o�t�h�&�&�w�i�n�d�o�w�.�l�o�c�a�t�i�o�n�.�r�e�l�o�a�d�(�)�)�}�}�,�{�k�e�y�:�"�i�n�i�t�E�v�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�t�h�i�s�.�s�c�r�o�l�l�T�o�E�l�s�=�t�h�i�s�.�e�l�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�d�a�t�a�-�"�.�c�o�n�c�a�t�(�t�h�i�s�.�n�a�m�e�,�"�-�t�o�]�"�)�)�,�t�h�i�s�.�s�e�t�S�c�r�o�l�l�T�o�=�t�h�i�s�.�s�e�t�S�c�r�o�l�l�T�o�.�b�i�n�d�(�t�h�i�s�)�,�t�h�i�s�.�s�c�r�o�l�l�T�o�E�l�s�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�e�.�s�e�t�S�c�r�o�l�l�T�o�,�!�1�)�}�)�}�}�,�{�k�e�y�:�"�s�e�t�S�c�r�o�l�l�T�o�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�h�i�s�.�s�c�r�o�l�l�T�o�(�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�"�.�c�o�n�c�a�t�(�t�h�i�s�.�n�a�m�e�,�"�-�h�r�e�f�"�)�)�|�|�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�h�r�e�f�"�)�,�{�o�f�f�s�e�t�:�t�.�c�u�r�r�e�n�t�T�a�r�g�e�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�"�.�c�o�n�c�a�t�(�t�h�i�s�.�n�a�m�e�,�"�-�o�f�f�s�e�t�"�)�)�}�)�}�}�,�{�k�e�y�:�"�a�d�d�E�l�e�m�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�}�}�,�{�k�e�y�:�"�d�e�t�e�c�t�E�l�e�m�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�n�)�{�v�a�r� �o�=�t�h�i�s�,�s�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�,�r�=�s�+�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�,�a�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�,�l�=�a�+�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�;�O�b�j�e�c�t�.�e�n�t�r�i�e�s�(�t�h�i�s�.�e�l�s�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�t�=�C�(�t�,�2�)�,�i�=�t�[�0�]�,�t�=�t�[�1�]�;�!�t�|�|�t�.�i�n�V�i�e�w�&�&�!�n�|�|�(�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�o�.�d�i�r�e�c�t�i�o�n�?�l�>�=�t�.�l�e�f�t�&�&�a�<�t�.�r�i�g�h�t�&�&�o�.�s�e�t�I�n�V�i�e�w�(�t�,�i�)�:�r�>�=�t�.�t�o�p�&�&�s�<�t�.�b�o�t�t�o�m�&�&�o�.�s�e�t�I�n�V�i�e�w�(�t�,�i�)�)�,�t�&�&�t�.�i�n�V�i�e�w�&�&�(�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�o�.�d�i�r�e�c�t�i�o�n�?�(�e�=�t�.�r�i�g�h�t�-�t�.�l�e�f�t�,�t�.�p�r�o�g�r�e�s�s�=�(�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�-�(�t�.�l�e�f�t�-�o�.�w�i�n�d�o�w�W�i�d�t�h�)�)�/�(�e�+�o�.�w�i�n�d�o�w�W�i�d�t�h�)�,�(�l�<�t�.�l�e�f�t�|�|�a�>�t�.�r�i�g�h�t�)�&�&�o�.�s�e�t�O�u�t�O�f�V�i�e�w�(�t�,�i�)�)�:�(�e�=�t�.�b�o�t�t�o�m�-�t�.�t�o�p�,�t�.�p�r�o�g�r�e�s�s�=�(�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�-�(�t�.�t�o�p�-�o�.�w�i�n�d�o�w�H�e�i�g�h�t�)�)�/�(�e�+�o�.�w�i�n�d�o�w�H�e�i�g�h�t�)�,�(�r�<�t�.�t�o�p�|�|�s�>�t�.�b�o�t�t�o�m�)�&�&�o�.�s�e�t�O�u�t�O�f�V�i�e�w�(�t�,�i�)�)�)�}�)�,�t�h�i�s�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�=�!�1�}�}�,�{�k�e�y�:�"�s�e�t�I�n�V�i�e�w�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�e�l�s�[�e�]�.�i�n�V�i�e�w�=�!�0�,�t�.�e�l�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�t�.�c�l�a�s�s�)�,�(�t�h�i�s�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�[�e�]�=�t�)�.�c�a�l�l�&�&�t�h�i�s�.�h�a�s�C�a�l�l�E�v�e�n�t�S�e�t�&�&�(�t�h�i�s�.�d�i�s�p�a�t�c�h�C�a�l�l�(�t�,�"�e�n�t�e�r�"�)�,�t�.�r�e�p�e�a�t�|�|�(�t�h�i�s�.�e�l�s�[�e�]�.�c�a�l�l�=�!�1�)�)�}�}�,�{�k�e�y�:�"�s�e�t�O�u�t�O�f�V�i�e�w�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�;�t�h�i�s�.�e�l�s�[�e�]�.�i�n�V�i�e�w�=�!�1�,�O�b�j�e�c�t�.�k�e�y�s�(�t�h�i�s�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�=�=�=�e�&�&�d�e�l�e�t�e� �i�.�c�u�r�r�e�n�t�E�l�e�m�e�n�t�s�[�t�]�}
1�)�,�t�.�c�a�l�l�&�&�t�h�i�s�.�h�a�s�C�a�l�l�E�v�e�n�t�S�e�t�&�&�t�h�i�s�.�d�i�s�p�a�t�c�h�C�a�l�l�(�t�,�"�e�x�i�t�"�)�,�t�.�r�e�p�e�a�t�&�&�t�.�e�l�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�t�.�c�l�a�s�s�)�}�}�,�{�k�e�y�:�"�d�i�s�p�a�t�c�h�C�a�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�c�a�l�l�W�a�y�=�e�,�t�h�i�s�.�c�a�l�l�V�a�l�u�e�=�t�.�c�a�l�l�.�s�p�l�i�t�(�"�,�"�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�t�r�i�m�(�)�}�)�,�t�h�i�s�.�c�a�l�l�O�b�j�=�t�,�1�=�=�t�h�i�s�.�c�a�l�l�V�a�l�u�e�.�l�e�n�g�t�h�&�&�(�t�h�i�s�.�c�a�l�l�V�a�l�u�e�=�t�h�i�s�.�c�a�l�l�V�a�l�u�e�[�0�]�)�;�e�=�n�e�w� �E�v�e�n�t�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�+�"�c�a�l�l�"�)�;�t�h�i�s�.�e�l�.�d�i�s�p�a�t�c�h�E�v�e�n�t�(�e�)�}�}�,�{�k�e�y�:�"�d�i�s�p�a�t�c�h�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�n�e�w� �E�v�e�n�t�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�+�"�s�c�r�o�l�l�"�)�;�t�h�i�s�.�e�l�.�d�i�s�p�a�t�c�h�E�v�e�n�t�(�t�)�}�}�,�{�k�e�y�:�"�s�e�t�E�v�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�l�i�s�t�e�n�e�r�s�[�t�]�|�|�(�t�h�i�s�.�l�i�s�t�e�n�e�r�s�[�t�]�=�[�]�)�;�v�a�r� �i�=�t�h�i�s�.�l�i�s�t�e�n�e�r�s�[�t�]�;�i�.�p�u�s�h�(�e�)�,�1�=�=�=�i�.�l�e�n�g�t�h�&�&�t�h�i�s�.�e�l�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�+�t�,�t�h�i�s�.�c�h�e�c�k�E�v�e�n�t�,�!�1�)�,�"�c�a�l�l�"�=�=�=�t�&�&�(�t�h�i�s�.�h�a�s�C�a�l�l�E�v�e�n�t�S�e�t�=�!�0�,�t�h�i�s�.�d�e�t�e�c�t�E�l�e�m�e�n�t�s�(�!�0�)�)�}�}�,�{�k�e�y�:�"�u�n�s�e�t�E�v�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�;�!�t�h�i�s�.�l�i�s�t�e�n�e�r�s�[�t�]�|�|�(�e�=�(�i�=�t�h�i�s�.�l�i�s�t�e�n�e�r�s�[�t�]�)�.�i�n�d�e�x�O�f�(�e�)�)�<�0�|�|�(�i�.�s�p�l�i�c�e�(�e�,�1�)�,�0�=�=�=�i�.�i�n�d�e�x�&�&�t�h�i�s�.�e�l�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�+�t�,�t�h�i�s�.�c�h�e�c�k�E�v�e�n�t�,�!�1�)�)�}�}�,�{�k�e�y�:�"�c�h�e�c�k�E�v�e�n�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�,�i�=�t�.�t�y�p�e�.�r�e�p�l�a�c�e�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�,�"�"�)�,�t�=�t�h�i�s�.�l�i�s�t�e�n�e�r�s�[�i�]�;�t�&�&�0�!�=�=�t�.�l�e�n�g�t�h�&�&�t�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�s�w�i�t�c�h�(�i�)�{�c�a�s�e�"�s�c�r�o�l�l�"�:�r�e�t�u�r�n� �t�(�e�.�i�n�s�t�a�n�c�e�)�;�c�a�s�e�"�c�a�l�l�"�:�r�e�t�u�r�n� �t�(�e�.�c�a�l�l�V�a�l�u�e�,�e�.�c�a�l�l�W�a�y�,�e�.�c�a�l�l�O�b�j�)�;�d�e�f�a�u�l�t�:�r�e�t�u�r�n� �t�(�)�}�}�)�}�}�,�{�k�e�y�:�"�s�t�a�r�t�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�}�}�,�{�k�e�y�:�"�s�t�o�p�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�}�}�,�{�k�e�y�:�"�s�e�t�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�=�{�x�:�0�,�y�:�0�}�}�}�,�{�k�e�y�:�"�d�e�s�t�r�o�y�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�t�h�i�s�.�c�h�e�c�k�R�e�s�i�z�e�,�!�1�)�,�O�b�j�e�c�t�.�k�e�y�s�(�t�h�i�s�.�l�i�s�t�e�n�e�r�s�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�e�.�e�l�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�e�.�n�a�m�e�s�p�a�c�e�+�t�,�e�.�c�h�e�c�k�E�v�e�n�t�,�!�1�)�}�)�,�t�h�i�s�.�l�i�s�t�e�n�e�r�s�=�{�}�,�t�h�i�s�.�s�c�r�o�l�l�T�o�E�l�s�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�e�.�s�e�t�S�c�r�o�l�l�T�o�,�!�1�)�}�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�t�h�i�s�.�i�n�i�t�C�l�a�s�s�)�}�}�]�)�,�e�}�(�)�,�g�=�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �g�l�o�b�a�l�T�h�i�s�?�g�l�o�b�a�l�T�h�i�s�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�?�w�i�n�d�o�w�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �g�l�o�b�a�l�?�g�l�o�b�a�l�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �s�e�l�f�?�s�e�l�f�:�{�}�;�f�u�n�c�t�i�o�n� �v�(�t�,�e�)�{�r�e�t�u�r�n� �t�(�e�=�{�e�x�p�o�r�t�s�:�{�}�}�,�e�.�e�x�p�o�r�t�s�)�,�e�.�e�x�p�o�r�t�s�}�v�a�r� �y�=�v�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�u�n�c�t�i�o�n� �i�(�)�{�v�a�r� �t�,�n�,�a�,�l�,�i�,�e�,�c�=�w�i�n�d�o�w�,�d�=�d�o�c�u�m�e�n�t�;�f�u�n�c�t�i�o�n� �u�(�t�,�e�)�{�t�h�i�s�.�s�c�r�o�l�l�L�e�f�t�=�t�,�t�h�i�s�.�s�c�r�o�l�l�T�o�p�=�e�}�f�u�n�c�t�i�o�n� �o�(�t�)�{�i�f�(�n�u�l�l�=�=�=�t�|�|�"�o�b�j�e�c�t�"�!�=�t�y�p�e�o�f� �t�|�|�v�o�i�d� �0�=�=�=�t�.�b�e�h�a�v�i�o�r�|�|�"�a�u�t�o�"�=�=�=�t�.�b�e�h�a�v�i�o�r�|�|�"�i�n�s�t�a�n�t�"�=�=�=�t�.�b�e�h�a�v�i�o�r�)�r�e�t�u�r�n�!�0�;�i�f�(�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�&�&�"�s�m�o�o�t�h�"�=�=�=�t�.�b�e�h�a�v�i�o�r�)�r�e�t�u�r�n�!�1�;�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�b�e�h�a�v�i�o�r� �m�e�m�b�e�r� �o�f� �S�c�r�o�l�l�O�p�t�i�o�n�s� �"�+�t�.�b�e�h�a�v�i�o�r�+�"� �i�s� �n�o�t� �a� �v�a�l�i�d� �v�a�l�u�e� �f�o�r� �e�n�u�m�e�r�a�t�i�o�n� �S�c�r�o�l�l�B�e�h�a�v�i�o�r�.�"�)�}�f�u�n�c�t�i�o�n� �s�(�t�,�e�)�{�r�e�t�u�r�n�"�Y�"�=�=�=�e�?�t�.�c�l�i�e�n�t�H�e�i�g�h�t�+�i�<�t�.�s�c�r�o�l�l�H�e�i�g�h�t�:�"�X�"�=�=�=�e�?�t�.�c�l�i�e�n�t�W�i�d�t�h�+�i�<�t�.�s�c�r�o�l�l�W�i�d�t�h�:�v�o�i�d� �0�}
1�f�u�n�c�t�i�o�n� �r�(�t�,�e�)�{�t�=�c�.�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�t�,�n�u�l�l�)�[�"�o�v�e�r�f�l�o�w�"�+�e�]�;�r�e�t�u�r�n�"�a�u�t�o�"�=�=�=�t�|�|�"�s�c�r�o�l�l�"�=�=�=�t�}�f�u�n�c�t�i�o�n� �h�(�t�)�{�f�o�r�(�;�t�!�=�=�d�.�b�o�d�y�&�&�!�1�=�=�=�(�i�=�v�o�i�d� �0�,�i�=�s�(�e�=�t�,�"�Y�"�)�&�&�r�(�e�,�"�Y�"�)�,�e�=�s�(�e�,�"�X�"�)�&�&�r�(�e�,�"�X�"�)�,�i�|�|�e�)�;�)�t�=�t�.�p�a�r�e�n�t�N�o�d�e�|�|�t�.�h�o�s�t�;�v�a�r� �e�,�i�;�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �p�(�t�)�{�v�a�r� �e�,�i�=�(�l�(�)�-�t�.�s�t�a�r�t�T�i�m�e�)�/�n�;�i�=�i�=�1�<�i�?�1�:�i�,�i�=�.�5�*�(�1�-�M�a�t�h�.�c�o�s�(�M�a�t�h�.�P�I�*�i�)�)�,�e�=�t�.�s�t�a�r�t�X�+�(�t�.�x�-�t�.�s�t�a�r�t�X�)�*�i�,�i�=�t�.�s�t�a�r�t�Y�+�(�t�.�y�-�t�.�s�t�a�r�t�Y�)�*�i�,�t�.�m�e�t�h�o�d�.�c�a�l�l�(�t�.�s�c�r�o�l�l�a�b�l�e�,�e�,�i�)�,�e�=�=�=�t�.�x�&�&�i�=�=�=�t�.�y�|�|�c�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�p�.�b�i�n�d�(�c�,�t�)�)�}�f�u�n�c�t�i�o�n� �f�(�t�,�e�,�i�)�{�v�a�r� �n�,�o�,�s�,�r�=�l�(�)�,�t�=�t�=�=�=�d�.�b�o�d�y�?�(�o�=�(�n�=�c�)�.�s�c�r�o�l�l�X�|�|�c�.�p�a�g�e�X�O�f�f�s�e�t�,�s�=�c�.�s�c�r�o�l�l�Y�|�|�c�.�p�a�g�e�Y�O�f�f�s�e�t�,�a�.�s�c�r�o�l�l�)�:�(�o�=�(�n�=�t�)�.�s�c�r�o�l�l�L�e�f�t�,�s�=�t�.�s�c�r�o�l�l�T�o�p�,�u�)�;�p�(�{�s�c�r�o�l�l�a�b�l�e�:�n�,�m�e�t�h�o�d�:�t�,�s�t�a�r�t�T�i�m�e�:�r�,�s�t�a�r�t�X�:�o�,�s�t�a�r�t�Y�:�s�,�x�:�e�,�y�:�i�}�)�}�"�s�c�r�o�l�l�B�e�h�a�v�i�o�r�"�i�n� �d�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�s�t�y�l�e�&�&�!�0�!�=�=�c�.�_�_�f�o�r�c�e�S�m�o�o�t�h�S�c�r�o�l�l�P�o�l�y�f�i�l�l�_�_�|�|�(�t�=�c�.�H�T�M�L�E�l�e�m�e�n�t�|�|�c�.�E�l�e�m�e�n�t�,�n�=�4�6�8�,�a�=�{�s�c�r�o�l�l�:�c�.�s�c�r�o�l�l�|�|�c�.�s�c�r�o�l�l�T�o�,�s�c�r�o�l�l�B�y�:�c�.�s�c�r�o�l�l�B�y�,�e�l�e�m�e�n�t�S�c�r�o�l�l�:�t�.�p�r�o�t�o�t�y�p�e�.�s�c�r�o�l�l�|�|�u�,�s�c�r�o�l�l�I�n�t�o�V�i�e�w�:�t�.�p�r�o�t�o�t�y�p�e�.�s�c�r�o�l�l�I�n�t�o�V�i�e�w�}�,�l�=�c�.�p�e�r�f�o�r�m�a�n�c�e�&�&�c�.�p�e�r�f�o�r�m�a�n�c�e�.�n�o�w�?�c�.�p�e�r�f�o�r�m�a�n�c�e�.�n�o�w�.�b�i�n�d�(�c�.�p�e�r�f�o�r�m�a�n�c�e�)�:�D�a�t�e�.�n�o�w�,�e�=�c�.�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�,�i�=�n�e�w� �R�e�g�E�x�p�(�[�"�M�S�I�E� �"�,�"�T�r�i�d�e�n�t�/�"�,�"�E�d�g�e�/�"�]�.�j�o�i�n�(�"�|�"�)�)�.�t�e�s�t�(�e�)�?�1�:�0�,�c�.�s�c�r�o�l�l�=�c�.�s�c�r�o�l�l�T�o�=�f�u�n�c�t�i�o�n�(�)�{�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�&�&�(�!�0�=�=�=�o�(�a�r�g�u�m�e�n�t�s�[�0�]�)�?�a�.�s�c�r�o�l�l�.�c�a�l�l�(�c�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�?�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�:�"�o�b�j�e�c�t�"�!�=�t�y�p�e�o�f� �a�r�g�u�m�e�n�t�s�[�0�]�?�a�r�g�u�m�e�n�t�s�[�0�]�:�c�.�s�c�r�o�l�l�X�|�|�c�.�p�a�g�e�X�O�f�f�s�e�t�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�?�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�:�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�1�]�?�a�r�g�u�m�e�n�t�s�[�1�]�:�c�.�s�c�r�o�l�l�Y�|�|�c�.�p�a�g�e�Y�O�f�f�s�e�t�)�:�f�.�c�a�l�l�(�c�,�d�.�b�o�d�y�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�?�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�:�c�.�s�c�r�o�l�l�X�|�|�c�.�p�a�g�e�X�O�f�f�s�e�t�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�?�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�:�c�.�s�c�r�o�l�l�Y�|�|�c�.�p�a�g�e�Y�O�f�f�s�e�t�)�)�}�,�c�.�s�c�r�o�l�l�B�y�=�f�u�n�c�t�i�o�n�(�)�{�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�&�&�(�o�(�a�r�g�u�m�e�n�t�s�[�0�]�)�?�a�.�s�c�r�o�l�l�B�y�.�c�a�l�l�(�c�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�?�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�:�"�o�b�j�e�c�t�"�!�=�t�y�p�e�o�f� �a�r�g�u�m�e�n�t�s�[�0�]�?�a�r�g�u�m�e�n�t�s�[�0�]�:�0�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�?�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�:�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�1�]�?�a�r�g�u�m�e�n�t�s�[�1�]�:�0�)�:�f�.�c�a�l�l�(�c�,�d�.�b�o�d�y�,�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�+�(�c�.�s�c�r�o�l�l�X�|�|�c�.�p�a�g�e�X�O�f�f�s�e�t�)�,�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�+�(�c�.�s�c�r�o�l�l�Y�|�|�c�.�p�a�g�e�Y�O�f�f�s�e�t�)�)�)�}�,�t�.�p�r�o�t�o�t�y�p�e�.�s�c�r�o�l�l�=�t�.�p�r�o�t�o�t�y�p�e�.�s�c�r�o�l�l�T�o�=�f�u�n�c�t�i�o�n�(�)�{�i�f�(�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�)�i�f�(�!�0�=�=�=�o�(�a�r�g�u�m�e�n�t�s�[�0�]�)�)�{�i�f�(�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �a�r�g�u�m�e�n�t�s�[�0�]�&�&�v�o�i�d� �0�=�=�=�a�r�g�u�m�e�n�t�s�[�1�]�)�t�h�r�o�w� �n�e�w� �S�y�n�t�a�x�E�r�r�o�r�(�"�V�a�l�u�e� �c�o�u�l�d� �n�o�t� �b�e� �c�o�n�v�e�r�t�e�d�"�)�;�a�.�e�l�e�m�e�n�t�S�c�r�o�l�l�.�c�a�l�l�(�t�h�i�s�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�?�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�:�"�o�b�j�e�c�t�"�!�=�t�y�p�e�o�f� �a�r�g�u�m�e�n�t�s�[�0�]�?�~�~�a�r�g�u�m�e�n�t�s�[�0�]�:�t�h�i�s�.�s�c�r�o�l�l�L�e�f�t�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�?�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�:�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�1�]�?�~�~�a�r�g�u�m�e�n�t�s�[�1�]�:�t�h�i�s�.�s�c�r�o�l�l�T�o�p�)�}�e�l�s�e�{�v�a�r� �t�=�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�,�e�=�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�;�f�.�c�a�l�l�(�t�h�i�s�,�t�h�i�s�,�v�o�i�d� �0�=�=�=�t�?�t�h�i�s�.�s�c�r�o�l�l�L�e�f�t�:�~�~�t�,�v�o�i�d� �0�=�=�=�e�?�t�h�i�s�.�s�c�r�o�l�l�T�o�p�:�~�~�e�)�}�}�,�t�.�p�r�o�t�o�t�y�p�e�.�s�c�r�o�l�l�B�y�=�f�u�n�c�t�i�o�n�(�)�{�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�&�&�(�!�0�=�=�=�o�(�a�r�g�u�m�e�n�t�s�[�0�]�)�?�a�.�e�l�e�m�e�n�t�S�c�r�o�l�l�.�c�a�l�l�(�t�h�i�s�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�?�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�+�t�h�i�s�.�s�c�r�o�l�l�L�e�f�t�:�~�~�a�r�g�u�m�e�n�t�s�[�0�]�+�t�h�i�s�.�s�c�r�o�l�l�L�e�f�t�,�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�?�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�+�t�h�i�s�.�s�c�r�o�l�l�T�o�p�:�~�~�a�r�g�u�m�e�n�t�s�[�1�]�+�t�h�i�s�.�s�c�r�o�l�l�T�o�p�)�:�t
1�h�i�s�.�s�c�r�o�l�l�(�{�l�e�f�t�:�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�l�e�f�t�+�t�h�i�s�.�s�c�r�o�l�l�L�e�f�t�,�t�o�p�:�~�~�a�r�g�u�m�e�n�t�s�[�0�]�.�t�o�p�+�t�h�i�s�.�s�c�r�o�l�l�T�o�p�,�b�e�h�a�v�i�o�r�:�a�r�g�u�m�e�n�t�s�[�0�]�.�b�e�h�a�v�i�o�r�}�)�)�}�,�t�.�p�r�o�t�o�t�y�p�e�.�s�c�r�o�l�l�I�n�t�o�V�i�e�w�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�;�!�0�=�=�=�o�(�a�r�g�u�m�e�n�t�s�[�0�]�)�?�a�.�s�c�r�o�l�l�I�n�t�o�V�i�e�w�.�c�a�l�l�(�t�h�i�s�,�v�o�i�d� �0�=�=�=�a�r�g�u�m�e�n�t�s�[�0�]�|�|�a�r�g�u�m�e�n�t�s�[�0�]�)�:�(�e�=�(�t�=�h�(�t�h�i�s�)�)�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�i�=�t�h�i�s�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�t�!�=�=�d�.�b�o�d�y�?�(�f�.�c�a�l�l�(�t�h�i�s�,�t�,�t�.�s�c�r�o�l�l�L�e�f�t�+�i�.�l�e�f�t�-�e�.�l�e�f�t�,�t�.�s�c�r�o�l�l�T�o�p�+�i�.�t�o�p�-�e�.�t�o�p�)�,�"�f�i�x�e�d�"�!�=�=�c�.�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�t�)�.�p�o�s�i�t�i�o�n�&�&�c�.�s�c�r�o�l�l�B�y�(�{�l�e�f�t�:�e�.�l�e�f�t�,�t�o�p�:�e�.�t�o�p�,�b�e�h�a�v�i�o�r�:�"�s�m�o�o�t�h�"�}�)�)�:�c�.�s�c�r�o�l�l�B�y�(�{�l�e�f�t�:�i�.�l�e�f�t�,�t�o�p�:�i�.�t�o�p�,�b�e�h�a�v�i�o�r�:�"�s�m�o�o�t�h�"�}�)�)�}�)�}�t�.�e�x�p�o�r�t�s�=�{�p�o�l�y�f�i�l�l�:�i�}�}�)�,�w�=�(�y�.�p�o�l�y�f�i�l�l�,�f�u�n�c�t�i�o�n�(�)�{�r�(�i�,�f�)�;�v�a�r� �e�=�c�(�i�)�;�f�u�n�c�t�i�o�n� �i�(�)�{�v�a�r� �t�=�0�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�?�a�r�g�u�m�e�n�t�s�[�0�]�:�{�}�;�r�e�t�u�r�n� �n�(�t�h�i�s�,�i�)�,�(�t�=�e�.�c�a�l�l�(�t�h�i�s�,�t�)�)�.�r�e�s�e�t�N�a�t�i�v�e�S�c�r�o�l�l�&�&�(�h�i�s�t�o�r�y�.�s�c�r�o�l�l�R�e�s�t�o�r�a�t�i�o�n�&�&�(�h�i�s�t�o�r�y�.�s�c�r�o�l�l�R�e�s�t�o�r�a�t�i�o�n�=�"�m�a�n�u�a�l�"�)�,�w�i�n�d�o�w�.�s�c�r�o�l�l�T�o�(�0�,�0�)�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�t�.�c�h�e�c�k�S�c�r�o�l�l�,�!�1�)�,�v�o�i�d� �0�=�=�=�w�i�n�d�o�w�.�s�m�o�o�t�h�s�c�r�o�l�l�P�o�l�y�f�i�l�l�&�&�(�w�i�n�d�o�w�.�s�m�o�o�t�h�s�c�r�o�l�l�P�o�l�y�f�i�l�l�=�y�,�w�i�n�d�o�w�.�s�m�o�o�t�h�s�c�r�o�l�l�P�o�l�y�f�i�l�l�.�p�o�l�y�f�i�l�l�(�)�)�,�t�}�r�e�t�u�r�n� �t�(�i�,�[�{�k�e�y�:�"�i�n�i�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�=�w�i�n�d�o�w�.�p�a�g�e�Y�O�f�f�s�e�t�,�t�h�i�s�.�a�d�d�E�l�e�m�e�n�t�s�(�)�,�t�h�i�s�.�d�e�t�e�c�t�E�l�e�m�e�n�t�s�(�)�,�d�(�a�(�i�.�p�r�o�t�o�t�y�p�e�)�,�"�i�n�i�t�"�,�t�h�i�s�)�.�c�a�l�l�(�t�h�i�s�)�}�}�,�{�k�e�y�:�"�c�h�e�c�k�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�d�(�a�(�i�.�p�r�o�t�o�t�y�p�e�)�,�"�c�h�e�c�k�S�c�r�o�l�l�"�,�t�h�i�s�)�.�c�a�l�l�(�t�h�i�s�)�,�t�h�i�s�.�g�e�t�D�i�r�e�c�t�i�o�n�&�&�t�h�i�s�.�a�d�d�D�i�r�e�c�t�i�o�n�(�)�,�t�h�i�s�.�g�e�t�S�p�e�e�d�&�&�(�t�h�i�s�.�a�d�d�S�p�e�e�d�(�)�,�t�h�i�s�.�s�p�e�e�d�T�s�=�D�a�t�e�.�n�o�w�(�)�)�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�=�w�i�n�d�o�w�.�p�a�g�e�Y�O�f�f�s�e�t�,�O�b�j�e�c�t�.�e�n�t�r�i�e�s�(�t�h�i�s�.�e�l�s�)�.�l�e�n�g�t�h�&�&�!�t�h�i�s�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�&�&�(�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�f�u�n�c�t�i�o�n�(�)�{�t�.�d�e�t�e�c�t�E�l�e�m�e�n�t�s�(�)�}�)�,�t�h�i�s�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�=�!�0�)�}�}�,�{�k�e�y�:�"�a�d�d�D�i�r�e�c�t�i�o�n�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�w�i�n�d�o�w�.�p�a�g�e�Y�O�f�f�s�e�t�>�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�?�"�d�o�w�n�"�!�=�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�=�"�d�o�w�n�"�)�:�w�i�n�d�o�w�.�p�a�g�e�Y�O�f�f�s�e�t�<�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�&�&�"�u�p�"�!�=�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�=�"�u�p�"�)�}�}�,�{�k�e�y�:�"�a�d�d�S�p�e�e�d�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�w�i�n�d�o�w�.�p�a�g�e�Y�O�f�f�s�e�t�!�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�?�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�p�e�e�d�=�(�w�i�n�d�o�w�.�p�a�g�e�Y�O�f�f�s�e�t�-�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�)�/�M�a�t�h�.�m�a�x�(�1�,�D�a�t�e�.�n�o�w�(�)�-�t�h�i�s�.�s�p�e�e�d�T�s�)�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�p�e�e�d�=�0�}�}�,�{�k�e�y�:�"�r�e�s�i�z�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�O�b�j�e�c�t�.�e�n�t�r�i�e�s�(�t�h�i�s�.�e�l�s�)�.�l�e�n�g�t�h�&�&�(�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�,�t�h�i�s�.�u�p�d�a�t�e�E�l�e�m�e�n�t�s�(�)�)�}�}�,�{�k�e�y�:�"�a�d�d�E�l�e�m�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �h�=�t
1�h�i�s�;�t�h�i�s�.�e�l�s�=�{�}�,�t�h�i�s�.�e�l�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�d�a�t�a�-�"�+�t�h�i�s�.�n�a�m�e�+�"�]�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�;�v�a�r� �i�=�t�.�d�a�t�a�s�e�t�[�h�.�n�a�m�e�+�"�C�l�a�s�s�"�]�|�|�h�.�c�l�a�s�s�,�e�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�d�a�t�a�s�e�t�[�h�.�n�a�m�e�+�"�I�d�"�]�?�t�.�d�a�t�a�s�e�t�[�h�.�n�a�m�e�+�"�I�d�"�]�:�e�,�n�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�d�a�t�a�s�e�t�[�h�.�n�a�m�e�+�"�O�f�f�s�e�t�"�]�?�t�.�d�a�t�a�s�e�t�[�h�.�n�a�m�e�+�"�O�f�f�s�e�t�"�]�.�s�p�l�i�t�(�"�,�"�)�:�h�.�o�f�f�s�e�t�,�o�=�t�.�d�a�t�a�s�e�t�[�h�.�n�a�m�e�+�"�R�e�p�e�a�t�"�]�,�s�=�t�.�d�a�t�a�s�e�t�[�h�.�n�a�m�e�+�"�C�a�l�l�"�]�,�r�=�t�.�d�a�t�a�s�e�t�[�h�.�n�a�m�e�+�"�T�a�r�g�e�t�"�]�,�r�=�v�o�i�d� �0�!�=�=�r�?�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�"�.�c�o�n�c�a�t�(�r�)�)�:�t�,�a�=�r�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�l�=�a�.�t�o�p�+�h�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�,�a�=�a�.�l�e�f�t�+�h�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�,�c�=�l�+�r�.�o�f�f�s�e�t�H�e�i�g�h�t�,�d�=�a�+�r�.�o�f�f�s�e�t�W�i�d�t�h�,�o�=�"�f�a�l�s�e�"�!�=�o�&�&�(�n�u�l�l�!�=�o�|�|�h�.�r�e�p�e�a�t�)�,�u�=�h�.�g�e�t�R�e�l�a�t�i�v�e�O�f�f�s�e�t�(�n�)�,�r�=�{�e�l�:�t�,�t�a�r�g�e�t�E�l�:�r�,�i�d�:�e�,�c�l�a�s�s�:�i�,�t�o�p�:�l�+�=�u�[�0�]�,�b�o�t�t�o�m�:�c�-�=�u�[�1�]�,�l�e�f�t�:�a�,�r�i�g�h�t�:�d�,�o�f�f�s�e�t�:�n�,�p�r�o�g�r�e�s�s�:�0�,�r�e�p�e�a�t�:�o�,�i�n�V�i�e�w�:�!�1�,�c�a�l�l�:�s�}�;�h�.�e�l�s�[�e�]�=�r�,�t�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�i�)�&�&�h�.�s�e�t�I�n�V�i�e�w�(�h�.�e�l�s�[�e�]�,�e�)�}�)�}�}�,�{�k�e�y�:�"�u�p�d�a�t�e�E�l�e�m�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �o�=�t�h�i�s�;�O�b�j�e�c�t�.�e�n�t�r�i�e�s�(�t�h�i�s�.�e�l�s�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �t�=�C�(�t�,�2�)�,�e�=�t�[�0�]�,�t�=�t�[�1�]�,�i�=�t�.�t�a�r�g�e�t�E�l�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�t�o�p�+�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�,�n�=�i�+�t�.�t�a�r�g�e�t�E�l�.�o�f�f�s�e�t�H�e�i�g�h�t�,�t�=�o�.�g�e�t�R�e�l�a�t�i�v�e�O�f�f�s�e�t�(�t�.�o�f�f�s�e�t�)�;�o�.�e�l�s�[�e�]�.�t�o�p�=�i�+�t�[�0�]�,�o�.�e�l�s�[�e�]�.�b�o�t�t�o�m�=�n�-�t�[�1�]�}�)�,�t�h�i�s�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�=�!�1�}�}�,�{�k�e�y�:�"�g�e�t�R�e�l�a�t�i�v�e�O�f�f�s�e�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�[�0�,�0�]�;�i�f�(�t�)�f�o�r�(�v�a�r� �i�=�0�;�i�<�t�.�l�e�n�g�t�h�;�i�+�+�)�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�[�i�]�?�t�[�i�]�.�i�n�c�l�u�d�e�s�(�"�%�"�)�?�e�[�i�]�=�p�a�r�s�e�I�n�t�(�t�[�i�]�.�r�e�p�l�a�c�e�(�"�%�"�,�"�"�)�*�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�/�1�0�0�)�:�e�[�i�]�=�p�a�r�s�e�I�n�t�(�t�[�i�]�)�:�e�[�i�]�=�t�[�i�]�;�r�e�t�u�r�n� �e�}�}�,�{�k�e�y�:�"�s�c�r�o�l�l�T�o�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�1�]�?�a�r�g�u�m�e�n�t�s�[�1�]�:�{�}�,�i�=�p�a�r�s�e�I�n�t�(�e�.�o�f�f�s�e�t�)�|�|�0�,�n�=�e�.�c�a�l�l�b�a�c�k�|�|�!�1�;�i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�)�{�i�f�(�"�t�o�p�"�=�=�=�t�)�t�=�t�h�i�s�.�h�t�m�l�;�e�l�s�e� �i�f�(�"�b�o�t�t�o�m�"�=�=�=�t�)�t�=�t�h�i�s�.�h�t�m�l�.�o�f�f�s�e�t�H�e�i�g�h�t�-�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�;�e�l�s�e� �i�f�(�!�(�t�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�t�)�)�)�r�e�t�u�r�n�}�e�l�s�e� �i�f�(�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�)�t�=�p�a�r�s�e�I�n�t�(�t�)�;�e�l�s�e� �i�f�(�!�t�|�|�!�t�.�t�a�g�N�a�m�e�)�r�e�t�u�r�n� �v�o�i�d� �c�o�n�s�o�l�e�.�w�a�r�n�(�"�`�t�a�r�g�e�t�`� �p�a�r�a�m�e�t�e�r� �i�s� �n�o�t� �v�a�l�i�d�"�)�;�v�a�r� �i�=�"�n�u�m�b�e�r�"�!�=�t�y�p�e�o�f� �t�?�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�t�o�p�+�i�+�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�:�t�+�i�,�o�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �p�a�r�s�e�I�n�t�(�w�i�n�d�o�w�.�p�a�g�e�Y�O�f�f�s�e�t�)�=�=�=�p�a�r�s�e�I�n�t�(�i�)�}�;�i�f�(�n�)�{�i�f�(�o�(�)�)�r�e�t�u�r�n� �v�o�i�d� �n�(�)�;�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�f�u�n�c�t�i�o�n� �t�(�)�{�o�(�)�&�&�(�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�t�)�,�n�(�)�)�}�)�}�w�i�n�d�o�w�.�s�c�r�o�l�l�T�o�(�{�t�o�p�:�i�,�b�e�h�a�v�i�o�r�:�0�=�=�=�e�.�d�u�r�a�t�i�o�n�?�"�a�u�t�o�"�:�"�s�m�o�o�t�h�"�}�)�}�}�,�{�k�e�y�:�"�u�p�d�a�t�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�a�d�d�E�l�e�m�e�n�t�s�(�)�,�t�h�i�s�.�d�e�t�e�c�t�E�l�e�m�e�n�t�s�(�)�}�}�,�{�k�e�y�:�"�d�e�s�t�r�o�y�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�d�(�a�(�i�.�p�r�o�t�o�t�y�p�e�)�,�"�d�e�s�t�r�o�y�"�,�t�h�i�s�)�.�c�a�l�l�(�t�h�i�s�)�,�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�,�!�1�)�}�}�]�)�,�i�}
1�(�)�)�,�b�=�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�S�y�m�b�o�l�s�,�_�=�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�,�T�=�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�p�r�o�p�e�r�t�y�I�s�E�n�u�m�e�r�a�b�l�e�;�v�a�r� �S�=�f�u�n�c�t�i�o�n�(�)�{�t�r�y�{�i�f�(�!�O�b�j�e�c�t�.�a�s�s�i�g�n�)�r�e�t�u�r�n�;�v�a�r� �t�=�n�e�w� �S�t�r�i�n�g�(�"�a�b�c�"�)�;�i�f�(�t�[�5�]�=�"�d�e�"�,�"�5�"�=�=�=�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�N�a�m�e�s�(�t�)�[�0�]�)�r�e�t�u�r�n�;�f�o�r�(�v�a�r� �e�=�{�}�,�i�=�0�;�i�<�1�0�;�i�+�+�)�e�[�"�_�"�+�S�t�r�i�n�g�.�f�r�o�m�C�h�a�r�C�o�d�e�(�i�)�]�=�i�;�i�f�(�"�0�1�2�3�4�5�6�7�8�9�"�!�=�=�O�b�j�e�c�t�.�g�e�t�O�w�n�P�r�o�p�e�r�t�y�N�a�m�e�s�(�e�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�[�t�]�}�)�.�j�o�i�n�(�"�"�)�)�r�e�t�u�r�n�;�v�a�r� �n�=�{�}�;�r�e�t�u�r�n�"�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�"�.�s�p�l�i�t�(�"�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�n�[�t�]�=�t�}�)�,�"�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�"�!�=�=�O�b�j�e�c�t�.�k�e�y�s�(�O�b�j�e�c�t�.�a�s�s�i�g�n�(�{�}�,�n�)�)�.�j�o�i�n�(�"�"�)�?�v�o�i�d� �0�:�1�}�c�a�t�c�h�(�t�)�{�r�e�t�u�r�n�}�}�(�)�?�O�b�j�e�c�t�.�a�s�s�i�g�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�o�r�(�v�a�r� �i�,�n�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�n�u�l�l�=�=�t�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�O�b�j�e�c�t�.�a�s�s�i�g�n� �c�a�n�n�o�t� �b�e� �c�a�l�l�e�d� �w�i�t�h� �n�u�l�l� �o�r� �u�n�d�e�f�i�n�e�d�"�)�;�r�e�t�u�r�n� �O�b�j�e�c�t�(�t�)�}�(�t�)�,�o�=�1�;�o�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�o�+�+�)�{�f�o�r�(�v�a�r� �s� �i�n� �i�=�O�b�j�e�c�t�(�a�r�g�u�m�e�n�t�s�[�o�]�)�)�_�.�c�a�l�l�(�i�,�s�)�&�&�(�n�[�s�]�=�i�[�s�]�)�;�i�f�(�b�)�f�o�r�(�v�a�r� �r�=�b�(�i�)�,�a�=�0�;�a�<�r�.�l�e�n�g�t�h�;�a�+�+�)�T�.�c�a�l�l�(�i�,�r�[�a�]�)�&�&�(�n�[�r�[�a�]�]�=�i�[�r�[�a�]�]�)�}�r�e�t�u�r�n� �n�}�;�f�u�n�c�t�i�o�n� �x�(�)�{�}�x�.�p�r�o�t�o�t�y�p�e�=�{�o�n�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�=�t�h�i�s�.�e�|�|�(�t�h�i�s�.�e�=�{�}�)�;�r�e�t�u�r�n�(�n�[�t�]�|�|�(�n�[�t�]�=�[�]�)�)�.�p�u�s�h�(�{�f�n�:�e�,�c�t�x�:�i�}�)�,�t�h�i�s�}�,�o�n�c�e�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�v�a�r� �n�=�t�h�i�s�;�f�u�n�c�t�i�o�n� �o�(�)�{�n�.�o�f�f�(�t�,�o�)�,�e�.�a�p�p�l�y�(�i�,�a�r�g�u�m�e�n�t�s�)�}�r�e�t�u�r�n� �o�.�_�=�e�,�t�h�i�s�.�o�n�(�t�,�o�,�i�)�}�,�e�m�i�t�:�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�=�[�]�.�s�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�)�,�i�=�(�(�t�h�i�s�.�e�|�|�(�t�h�i�s�.�e�=�{�}�)�)�[�t�]�|�|�[�]�)�.�s�l�i�c�e�(�)�,�n�=�0�,�o�=�i�.�l�e�n�g�t�h�;�n�<�o�;�n�+�+�)�i�[�n�]�.�f�n�.�a�p�p�l�y�(�i�[�n�]�.�c�t�x�,�e�)�;�r�e�t�u�r�n� �t�h�i�s�}�,�o�f�f�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�e�|�|�(�t�h�i�s�.�e�=�{�}�)�,�n�=�i�[�t�]�,�o�=�[�]�;�i�f�(�n�&�&�e�)�f�o�r�(�v�a�r� �s�=�0�,�r�=�n�.�l�e�n�g�t�h�;�s�<�r�;�s�+�+�)�n�[�s�]�.�f�n�!�=�=�e�&�&�n�[�s�]�.�f�n�.�_�!�=�=�e�&�&�o�.�p�u�s�h�(�n�[�s�]�)�;�r�e�t�u�r�n� �o�.�l�e�n�g�t�h�?�i�[�t�]�=�o�:�d�e�l�e�t�e� �i�[�t�]�,�t�h�i�s�}�}�;�f�u�n�c�t�i�o�n� �P�(�t�)�{�i�f�(�!�t�)�r�e�t�u�r�n� �c�o�n�s�o�l�e�.�w�a�r�n�(�"�b�i�n�d�A�l�l� �r�e�q�u�i�r�e�s� �a�t� �l�e�a�s�t� �o�n�e� �a�r�g�u�m�e�n�t�.�"�)�;�v�a�r� �e�=�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�)�;�i�f�(�0�=�=�=�e�.�l�e�n�g�t�h�)�f�o�r�(�v�a�r� �i� �i�n� �t�)�j�.�c�a�l�l�(�t�,�i�)�&�&�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �t�[�i�]�&�&�"�[�o�b�j�e�c�t� �F�u�n�c�t�i�o�n�]�"�=�=�N�.�c�a�l�l�(�t�[�i�]�)�&�&�e�.�p�u�s�h�(�i�)�;�f�o�r�(�v�a�r� �n�=�0�;�n�<�e�.�l�e�n�g�t�h�;�n�+�+�)�{�v�a�r� �o�=�e�[�n�]�;�t�[�o�]�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�.�a�p�p�l�y�(�e�,�a�r�g�u�m�e�n�t�s�)�}�}�(�t�[�o�]�,�t�)�}�}�v�a�r� �z�=�x�,�R�=�v�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�!�f�u�n�c�t�i�o�n�(�)�{�f�u�n�c�t�i�o�n� �t�(�t�,�e�,�i�,�n�)�{�t�h�i�s�.�s�t�a�b�i�l�i�t�y�=�n�u�l�l�!�=�t�?�M�a�t�h�.�a�b�s�(�t�)�:�8�,�t�h�i�s�.�s�e�n�s�i�t�i�v�i�t�y�=�n�u�l�l�!�=�e�?�1�+�M�a�t�h�.�a�b�s�(�e�)�:�1�0�0�,�t�h�i�s�.�t�o�l�e�r�a�n�c�e�=�n�u�l�l�!�=�i�?�1�+�M�a�t�h�.�a�b�s�(�i�)�:�1�.�1�,�t�h�i�s�.�d�e�l�a�y�=�n�u�l�l�!�=�n�?�n�:�1�5�0�,�t�h�i�s�.�l�a�s�t�U�p�D�e�l�t�a�s�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�[
1�]�,�e�=�1�,�i�=�2�*�t�h�i�s�.�s�t�a�b�i�l�i�t�y�;�1�<�=�i�?�e�<�=�i�:�i�<�=�e�;�1�<�=�i�?�e�+�+�:�e�-�-�)�t�.�p�u�s�h�(�n�u�l�l�)�;�r�e�t�u�r�n� �t�}�.�c�a�l�l�(�t�h�i�s�)�,�t�h�i�s�.�l�a�s�t�D�o�w�n�D�e�l�t�a�s�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�[�]�,�e�=�1�,�i�=�2�*�t�h�i�s�.�s�t�a�b�i�l�i�t�y�;�1�<�=�i�?�e�<�=�i�:�i�<�=�e�;�1�<�=�i�?�e�+�+�:�e�-�-�)�t�.�p�u�s�h�(�n�u�l�l�)�;�r�e�t�u�r�n� �t�}�.�c�a�l�l�(�t�h�i�s�)�,�t�h�i�s�.�d�e�l�t�a�s�T�i�m�e�s�t�a�m�p�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�[�]�,�e�=�1�,�i�=�2�*�t�h�i�s�.�s�t�a�b�i�l�i�t�y�;�1�<�=�i�?�e�<�=�i�:�i�<�=�e�;�1�<�=�i�?�e�+�+�:�e�-�-�)�t�.�p�u�s�h�(�n�u�l�l�)�;�r�e�t�u�r�n� �t�}�.�c�a�l�l�(�t�h�i�s�)�}�(�n�u�l�l�!�=�=�e�?�e�:�t�h�i�s�)�.�L�e�t�h�a�r�g�y�=�(�t�.�p�r�o�t�o�t�y�p�e�.�c�h�e�c�k�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�r�e�t�u�r�n� �n�u�l�l�!�=�(�t�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�|�|�t�)�.�w�h�e�e�l�D�e�l�t�a�?�e�=�t�.�w�h�e�e�l�D�e�l�t�a�:�n�u�l�l�!�=�t�.�d�e�l�t�a�Y�?�e�=�-�4�0�*�t�.�d�e�l�t�a�Y�:�n�u�l�l�=�=�t�.�d�e�t�a�i�l�&�&�0�!�=�=�t�.�d�e�t�a�i�l�|�|�(�e�=�-�4�0�*�t�.�d�e�t�a�i�l�)�,�t�h�i�s�.�d�e�l�t�a�s�T�i�m�e�s�t�a�m�p�.�p�u�s�h�(�D�a�t�e�.�n�o�w�(�)�)�,�t�h�i�s�.�d�e�l�t�a�s�T�i�m�e�s�t�a�m�p�.�s�h�i�f�t�(�)�,�0�<�e�?�(�t�h�i�s�.�l�a�s�t�U�p�D�e�l�t�a�s�.�p�u�s�h�(�e�)�,�t�h�i�s�.�l�a�s�t�U�p�D�e�l�t�a�s�.�s�h�i�f�t�(�)�,�t�h�i�s�.�i�s�I�n�e�r�t�i�a�(�1�)�)�:�(�t�h�i�s�.�l�a�s�t�D�o�w�n�D�e�l�t�a�s�.�p�u�s�h�(�e�)�,�t�h�i�s�.�l�a�s�t�D�o�w�n�D�e�l�t�a�s�.�s�h�i�f�t�(�)�,�t�h�i�s�.�i�s�I�n�e�r�t�i�a�(�-�1�)�)�}�,�t�.�p�r�o�t�o�t�y�p�e�.�i�s�I�n�e�r�t�i�a�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�,�o�=�-�1�=�=�=�t�?�t�h�i�s�.�l�a�s�t�D�o�w�n�D�e�l�t�a�s�:�t�h�i�s�.�l�a�s�t�U�p�D�e�l�t�a�s�;�r�e�t�u�r�n� �n�u�l�l�=�=�=�o�[�0�]�?�t�:�!�(�t�h�i�s�.�d�e�l�t�a�s�T�i�m�e�s�t�a�m�p�[�2�*�t�h�i�s�.�s�t�a�b�i�l�i�t�y�-�2�]�+�t�h�i�s�.�d�e�l�a�y�>�D�a�t�e�.�n�o�w�(�)�&�&�o�[�0�]�=�=�=�o�[�2�*�t�h�i�s�.�s�t�a�b�i�l�i�t�y�-�1�]�)�&�&�(�e�=�o�.�s�l�i�c�e�(�0�,�t�h�i�s�.�s�t�a�b�i�l�i�t�y�)�,�o�=�o�.�s�l�i�c�e�(�t�h�i�s�.�s�t�a�b�i�l�i�t�y�,�2�*�t�h�i�s�.�s�t�a�b�i�l�i�t�y�)�,�n�=�e�.�r�e�d�u�c�e�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�+�e�}�)�,�i�=�o�.�r�e�d�u�c�e�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �t�+�e�}�)�,�n�=�n�/�e�.�l�e�n�g�t�h�,�e�=�i�/�o�.�l�e�n�g�t�h�,�M�a�t�h�.�a�b�s�(�n�)�<�M�a�t�h�.�a�b�s�(�e�*�t�h�i�s�.�t�o�l�e�r�a�n�c�e�)�&�&�t�h�i�s�.�s�e�n�s�i�t�i�v�i�t�y�<�M�a�t�h�.�a�b�s�(�e�)�&�&�t�)�}�,�t�.�p�r�o�t�o�t�y�p�e�.�s�h�o�w�L�a�s�t�U�p�D�e�l�t�a�s�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�l�a�s�t�U�p�D�e�l�t�a�s�}�,�t�.�p�r�o�t�o�t�y�p�e�.�s�h�o�w�L�a�s�t�D�o�w�n�D�e�l�t�a�s�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�l�a�s�t�D�o�w�n�D�e�l�t�a�s�}�,�t�)�}�.�c�a�l�l�(�g�)�}�)�,�k�=�{�h�a�s�W�h�e�e�l�E�v�e�n�t�:�"�o�n�w�h�e�e�l�"�i�n� �d�o�c�u�m�e�n�t�,�h�a�s�M�o�u�s�e�W�h�e�e�l�E�v�e�n�t�:�"�o�n�m�o�u�s�e�w�h�e�e�l�"�i�n� �d�o�c�u�m�e�n�t�,�h�a�s�T�o�u�c�h�:�"�o�n�t�o�u�c�h�s�t�a�r�t�"�i�n� �w�i�n�d�o�w�|�|�w�i�n�d�o�w�.�T�o�u�c�h�E�v�e�n�t�|�|�w�i�n�d�o�w�.�D�o�c�u�m�e�n�t�T�o�u�c�h�&�&�d�o�c�u�m�e�n�t� �i�n�s�t�a�n�c�e�o�f� �D�o�c�u�m�e�n�t�T�o�u�c�h�,�h�a�s�T�o�u�c�h�W�i�n�:�n�a�v�i�g�a�t�o�r�.�m�s�M�a�x�T�o�u�c�h�P�o�i�n�t�s�&�&�1�<�n�a�v�i�g�a�t�o�r�.�m�s�M�a�x�T�o�u�c�h�P�o�i�n�t�s�,�h�a�s�P�o�i�n�t�e�r�:�!�!�w�i�n�d�o�w�.�n�a�v�i�g�a�t�o�r�.�m�s�P�o�i�n�t�e�r�E�n�a�b�l�e�d�,�h�a�s�K�e�y�D�o�w�n�:�"�o�n�k�e�y�d�o�w�n�"�i�n� �d�o�c�u�m�e�n�t�,�i�s�F�i�r�e�f�o�x�:�-�1�<�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�.�i�n�d�e�x�O�f�(�"�F�i�r�e�f�o�x�"�)�}�,�N�=�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�t�o�S�t�r�i�n�g�,�j�=�O�b�j�e�c�t�.�p�r�o�t�o�t�y�p�e�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�;�v�a�r� �H�=�R�.�L�e�t�h�a�r�g�y�,�E�=�"�v�i�r�t�u�a�l�s�c�r�o�l�l�"�,�B�=�A�,�W�=�3�7�,�q�=�3�8�,�V�=�3�9�,�U�=�4�0�,�Y�=�3�2�;�f�u�n�c�t�i�o�n� �A�(�t�)�{�P�(�t�h�i�s�,�"�_�o�n�W�h�e�e�l�"�,�"�_�o�n�M�o�u�s�e�W�h�e�e�l�"�,�"�_�o�n�T�o�u�c�h�S�t�a�r�t�"�,�"�_�o�n�T�o�u�c�h�M�o�v�e�"�,�"�_�o�n�K�e�y�D�o�w�n�"�)�,�t�h�i�s�.�e�l�=�w�i�n�d�o�w�,�t�&�&�t�.�e�l�&�&�(�t�h�i�s�.�e�l�=�t�.�e�l�,�d�e�l�e�t�e� �t�.�e�l�)�,�t�h�i�s�.�o�p�t�i�o�n�s�=�S�(�{�m�o�u�s�e�M�u�l�t�i�p�l�i�e�r�:�1�,�t�o�u�c�h�M�u�l�t�i�p�l�i�e�r�:�2�,�f�i�r�e�f�o�x�M�u�l�t�i�p�l�i�e�r�:�1�5�,�k�e�y�S�t�e�p�:�1�2�0�,�p�r�e�v�e�n�t�T�o�u�c�h�:�!�1�,�u�n�p�r�e�v�e�n�t�T�o�u�c�h�C�l�a�s�s�:�"�v�s�-�t�o�u�c�h�m�o�v�e�-�a�l�l�o�w�e�d�"�,�l�i�m�i�t�I�n�e�r�t�i�a�:�!�1�,�u�s�e�K�e�y�b�o�a�r�d�:�!�0�,�u�s�e�T�o�u�c�h�:�!�0�}�,�t�)�,�t�h�i�s�.�o�p�t�i�o�n�s�.�l�i�m�i�t�I�n�e�r�t�i�a�&�&�(�t�h�i�s�.�_�l�e�t�h�a�r�g�y�=�n�e�w� �H�)�,�t�h�i�s�.�_�e�m�i�t�t�e�r�=�n�e�w� �z�,�t�h�i�s�.�_�e�v�e�n�t�=�{�y�:�0�,�x�:�0�,�d�e�l�t�a�X�:�0�,�d�e�l�t�a�Y�:�0�}�,�t�h�i�s�.�t�o�u�c�h�S�t�a�r�t�X�=�n�u�l�l�,�t�h�i�s�.�t�o�u�c�h�S�t�a�r�t�Y�=�n�u�l�l�,�t�h�i�s�.�b�o�d�y�T�o�u�c�h�A�c�t�i�o�n�=�n�u�l�l�,�v�o�i�d� �0�!�=�=�t�h�i�s�.�o�p�t�i�o�n�s�.�p�a�s�s�i�v�e�&�&�(�t�h�i�s�.�l�i�s�t�e�n�e�r�O�p�t�i�o�n�s�=�{�p�a�s�s�i�v�e�:�t�h�i�s�.�o�p�t�i�o�n�s�.�p�a�s�s�i�v�e�}�)�}�f�u�n�c�t�i�o�n� �O�(�t�,�e�,�i�)�{�r�e�t�u�r�n�(�1�-�i�)�*�t�+�i�*�e�}�f�u�n�c�t�i�o�n� �D�(�t�)�{�v�a�r� �e�,�i�=�{�}�;�i�f�(�w�i�n�d�o�w�.�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�)�r�e�t�u�r�n� �t�=�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�t�)�,�t�=�t�.�t�r�a�n�s�f�o�r�m�|�|�t�.�w�e�b�k�i�t�T�r�a�n�s�f�o�r�m�|�|�t�.�m�o�z
1�T�r�a�n�s�f�o�r�m�,�e�=�t�.�m�a�t�c�h�(�/�^�m�a�t�r�i�x�3�d�\�(�(�.�+�)�\�)�$�/�)�,�e�?�(�i�.�x�=�e�?�p�a�r�s�e�F�l�o�a�t�(�e�[�1�]�.�s�p�l�i�t�(�"�,� �"�)�[�1�2�]�)�:�0�,�i�.�y�=�e�?�p�a�r�s�e�F�l�o�a�t�(�e�[�1�]�.�s�p�l�i�t�(�"�,� �"�)�[�1�3�]�)�:�0�)�:�(�e�=�t�.�m�a�t�c�h�(�/�^�m�a�t�r�i�x�\�(�(�.�+�)�\�)�$�/�)�,�i�.�x�=�e�?�p�a�r�s�e�F�l�o�a�t�(�e�[�1�]�.�s�p�l�i�t�(�"�,� �"�)�[�4�]�)�:�0�,�i�.�y�=�e�?�p�a�r�s�e�F�l�o�a�t�(�e�[�1�]�.�s�p�l�i�t�(�"�,� �"�)�[�5�]�)�:�0�)�,�i�}�f�u�n�c�t�i�o�n� �$�(�t�)�{�f�o�r�(�v�a�r� �e�=�[�]�;�t�&�&�t�!�=�=�d�o�c�u�m�e�n�t�;�t�=�t�.�p�a�r�e�n�t�N�o�d�e�)�e�.�p�u�s�h�(�t�)�;�r�e�t�u�r�n� �e�}�A�.�p�r�o�t�o�t�y�p�e�.�_�n�o�t�i�f�y�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�_�e�v�e�n�t�;�e�.�x�+�=�e�.�d�e�l�t�a�X�,�e�.�y�+�=�e�.�d�e�l�t�a�Y�,�t�h�i�s�.�_�e�m�i�t�t�e�r�.�e�m�i�t�(�E�,�{�x�:�e�.�x�,�y�:�e�.�y�,�d�e�l�t�a�X�:�e�.�d�e�l�t�a�X�,�d�e�l�t�a�Y�:�e�.�d�e�l�t�a�Y�,�o�r�i�g�i�n�a�l�E�v�e�n�t�:�t�}�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�_�o�n�W�h�e�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�t�h�i�s�.�o�p�t�i�o�n�s�;�t�h�i�s�.�_�l�e�t�h�a�r�g�y�&�&�!�1�=�=�=�t�h�i�s�.�_�l�e�t�h�a�r�g�y�.�c�h�e�c�k�(�t�)�|�|�(�(�e�=�t�h�i�s�.�_�e�v�e�n�t�)�.�d�e�l�t�a�X�=�t�.�w�h�e�e�l�D�e�l�t�a�X�|�|�-�1�*�t�.�d�e�l�t�a�X�,�e�.�d�e�l�t�a�Y�=�t�.�w�h�e�e�l�D�e�l�t�a�Y�|�|�-�1�*�t�.�d�e�l�t�a�Y�,�k�.�i�s�F�i�r�e�f�o�x�&�&�1�=�=�t�.�d�e�l�t�a�M�o�d�e�&�&�(�e�.�d�e�l�t�a�X�*�=�i�.�f�i�r�e�f�o�x�M�u�l�t�i�p�l�i�e�r�,�e�.�d�e�l�t�a�Y�*�=�i�.�f�i�r�e�f�o�x�M�u�l�t�i�p�l�i�e�r�)�,�e�.�d�e�l�t�a�X�*�=�i�.�m�o�u�s�e�M�u�l�t�i�p�l�i�e�r�,�e�.�d�e�l�t�a�Y�*�=�i�.�m�o�u�s�e�M�u�l�t�i�p�l�i�e�r�,�t�h�i�s�.�_�n�o�t�i�f�y�(�t�)�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�_�o�n�M�o�u�s�e�W�h�e�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�t�h�i�s�.�o�p�t�i�o�n�s�.�l�i�m�i�t�I�n�e�r�t�i�a�&�&�!�1�=�=�=�t�h�i�s�.�_�l�e�t�h�a�r�g�y�.�c�h�e�c�k�(�t�)�|�|�(�(�e�=�t�h�i�s�.�_�e�v�e�n�t�)�.�d�e�l�t�a�X�=�t�.�w�h�e�e�l�D�e�l�t�a�X�|�|�0�,�e�.�d�e�l�t�a�Y�=�t�.�w�h�e�e�l�D�e�l�t�a�Y�|�|�t�.�w�h�e�e�l�D�e�l�t�a�,�t�h�i�s�.�_�n�o�t�i�f�y�(�t�)�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�_�o�n�T�o�u�c�h�S�t�a�r�t�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�t�.�t�a�r�g�e�t�T�o�u�c�h�e�s�?�t�.�t�a�r�g�e�t�T�o�u�c�h�e�s�[�0�]�:�t�;�t�h�i�s�.�t�o�u�c�h�S�t�a�r�t�X�=�t�.�p�a�g�e�X�,�t�h�i�s�.�t�o�u�c�h�S�t�a�r�t�Y�=�t�.�p�a�g�e�Y�}�,�A�.�p�r�o�t�o�t�y�p�e�.�_�o�n�T�o�u�c�h�M�o�v�e�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�o�p�t�i�o�n�s�,�i�=�(�e�.�p�r�e�v�e�n�t�T�o�u�c�h�&�&�!�t�.�t�a�r�g�e�t�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�e�.�u�n�p�r�e�v�e�n�t�T�o�u�c�h�C�l�a�s�s�)�&�&�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�h�i�s�.�_�e�v�e�n�t�)�,�n�=�t�.�t�a�r�g�e�t�T�o�u�c�h�e�s�?�t�.�t�a�r�g�e�t�T�o�u�c�h�e�s�[�0�]�:�t�;�i�.�d�e�l�t�a�X�=�(�n�.�p�a�g�e�X�-�t�h�i�s�.�t�o�u�c�h�S�t�a�r�t�X�)�*�e�.�t�o�u�c�h�M�u�l�t�i�p�l�i�e�r�,�i�.�d�e�l�t�a�Y�=�(�n�.�p�a�g�e�Y�-�t�h�i�s�.�t�o�u�c�h�S�t�a�r�t�Y�)�*�e�.�t�
1o�u�c�h�M�u�l�t�i�p�l�i�e�r�,�t�h�i�s�.�t�o�u�c�h�S�t�a�r�t�X�=�n�.�p�a�g�e�X�,�t�h�i�s�.�t�o�u�c�h�S�t�a�r�t�Y�=�n�.�p�a�g�e�Y�,�t�h�i�s�.�_�n�o�t�i�f�y�(�t�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�_�o�n�K�e�y�D�o�w�n�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�.�_�e�v�e�n�t�,�i�=�(�e�.�d�e�l�t�a�X�=�e�.�d�e�l�t�a�Y�=�0�,�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�-�4�0�)�;�s�w�i�t�c�h�(�t�.�k�e�y�C�o�d�e�)�{�c�a�s�e� �W�:�c�a�s�e� �q�:�e�.�d�e�l�t�a�Y�=�t�h�i�s�.�o�p�t�i�o�n�s�.�k�e�y�S�t�e�p�;�b�r�e�a�k�;�c�a�s�e� �V�:�c�a�s�e� �U�:�e�.�d�e�l�t�a�Y�=�-�t�h�i�s�.�o�p�t�i�o�n�s�.�k�e�y�S�t�e�p�;�b�r�e�a�k�;�c�a�s�e� �t�.�s�h�i�f�t�K�e�y�:�e�.�d�e�l�t�a�Y�=�i�;�b�r�e�a�k�;�c�a�s�e� �Y�:�e�.�d�e�l�t�a�Y�=�-�i�;�b�r�e�a�k�;�d�e�f�a�u�l�t�:�r�e�t�u�r�n�}�t�h�i�s�.�_�n�o�t�i�f�y�(�t�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�_�b�i�n�d�=�f�u�n�c�t�i�o�n�(�)�{�k�.�h�a�s�W�h�e�e�l�E�v�e�n�t�&�&�t�h�i�s�.�e�l�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�w�h�e�e�l�"�,�t�h�i�s�.�_�o�n�W�h�e�e�l�,�t�h�i�s�.�l�i�s�t�e�n�e�r�O�p�t�i�o�n�s�)�,�k�.�h�a�s�M�o�u�s�e�W�h�e�e�l�E�v�e�n�t�&�&�t�h�i�s�.�e�l�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�w�h�e�e�l�"�,�t�h�i�s�.�_�o�n�M�o�u�s�e�W�h�e�e�l�,�t�h�i�s�.�l�i�s�t�e�n�e�r�O�p�t�i�o�n�s�)�,�k�.�h�a�s�T�o�u�c�h�&�&�t�h�i�s�.�o�p�t�i�o�n�s�.�u�s�e�T�o�u�c�h�&�&�(�t�h�i�s�.�e�l�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�t�o�u�c�h�s�t�a�r�t�"�,�t�h�i�s�.�_�o�n�T�o�u�c�h�S�t�a�r�t�,�t�h�i�s�.�l�i�s�t�e�n�e�r�O�p�t�i�o�n�s�)�,�t�h�i�s�.�e�l�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�t�o�u�c�h�m�o�v�e�"�,�t�h�i�s�.�_�o�n�T�o�u�c�h�M�o�v�e�,�t�h�i�s�.�l�i�s�t�e�n�e�r�O�p�t�i�o�n�s�)�)�,�k�.�h�a�s�P�o�i�n�t�e�r�&�&�k�.�h�a�s�T�o�u�c�h�W�i�n�&�&�(�t�h�i�s�.�b�o�d�y�T�o�u�c�h�A�c�t�i�o�n�=�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�t�y�l�e�.�m�s�T�o�u�c�h�A�c�t�i�o�n�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�t�y�l�e�.�m�s�T�o�u�c�h�A�c�t�i�o�n�=�"�n�o�n�e�"�,�t�h�i�s�.�e�l�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�M�S�P�o�i�n�t�e�r�D�o�w�n�"�,�t�h�i�s�.�_�o�n�T�o�u�c�h�S�t�a�r�t�,�!�0�)�,�t�h�i�s�.�e�l�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�M�S�P�o�i�n�t�e�r�M�o�v�e�"�,�t�h�i�s�.�_�o�n�T�o�u�c�h�M�o�v�e�,�!�0�)�)�,�k�.�h�a�s�K�e�y�D�o�w�n�&�&�t�h�i�s�.�o�p�t�i�o�n�s�.�u�s�e�K�e�y�b�o�a�r�d�&�&�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�k�e�y�d�o�w�n�"�,�t�h�i�s�.�_�o�n�K�e�y�D�o�w�n�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�_�u�n�b�i�n�d�=�f�u�n�c�t�i�o�n�(�)�{�k�.�h�a�s�W�h�e�e�l�E�v�e�n�t�&�&�t�h�i�s�.�e�l�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�w�h�e�e�l�"�,�t�h�i�s�.�_�o�n�W�h�e�e�l�)�,�k�.�h�a�s�M�o�u�s�e�W�h�e�e�l�E�v�e�n�t�&�&�t�h�i�s�.�e�l�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�w�h�e�e�l�"�,�t�h�i�s�.�_�o�n�M�o�u�s�e�W�h�e�e�l�)�,�k�.�h�a�s�T�o�u�c�h�&�&�(�t�h�i�s�.�e�l�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�t�o�u�c�h�s�t�a�r�t�"�,�t�h�i�s�.�_�o�n�T�o�u�c�h�S�t�a�r�t�)�,�t�h�i�s�.�e�l�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�t�o�u�c�h�m�o�v�e�"�,�t�h�i�s�.�_�o�n�T�o�u�c�h�M�o�v�e�)�)�,�k�.�h�a�s�P�o�i�n�t�e�r�&�&�k�.�h�a�s�T�o�u�c�h�W�i�n�&�&�(�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�t�y�l�e�.�m�s�T�o�u�c�h�A�c�t�i�o�n�=�t�h�i�s�.�b�o�d�y�T�o�u�c�h�A�c�t�i�o�n�,�t�h�i�s�.�e�l�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�M�S�P�o�i�n�t�e�r�D�o�w�n�"�,�t�h�i�s�.�_�o�n�T�o�u�c�h�S�t�a�r�t�,�!�0�)�,�t�h�i�s�.�e�l�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�M�S�P�o�i�n�t�e�r�M�o�v�e�"�,�t�h�i�s�.�_�o�n�T�o�u�c�h�M�o�v�e�,�!�0�)�)�,�k�.�h�a�s�K�e�y�D�o�w�n�&�&�t�h�i�s�.�o�p�t�i�o�n�s�.�u�s�e�K�e�y�b�o�a�r�d�&�&�d�o�c�u�m�e�n�t�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�k�e�y�d�o�w�n�"�,�t�h�i�s�.�_�o�n�K�e�y�D�o�w�n�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�o�n�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�_�e�m�i�t�t�e�r�.�o�n�(�E�,�t�,�e�)�;�t�=�t�h�i�s�.�_�e�m�i�t�t�e�r�.�e�;�t�&�&�t�[�E�]�&�&�1�=�=�=�t�[�E�]�.�l�e�n�g�t�h�&�&�t�h�i�s�.�_�b�i�n�d�(�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�o�f�f�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�_�e�m�i�t�t�e�r�.�o�f�f�(�E�,�t�,�e�)�;�t�=�t�h�i�s�.�_�e�m�i�t�t�e�r�.�e�;�(�!�t�[�E�]�|�|�t�[�E�]�.�l�e�n�g�t�h�<�=�0�)�&�&�t�h�i�s�.�_�u�n�b�i�n�d�(�)�}�,�A�.�p�r�o�t�o�t�y�p�e�.�r�e�s�e�t�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�_�e�v�e�n�t�;�t�.�x�=�0�,�t�.�y�=�0�}�,�A�.�p�r�o�t�o�t�y�p�e�.�d�e�s�t�r�o�y�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�_�e�m�i�t�t�e�r�.�o�f�f�(�)�,�t�h�i�s�.�_�u�n�b�i�n�d�(�)�}�;�v�a�r� �Q�=�4�,�G�=�1�e�-�7�,�X�=�1�0�,�K�=�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �F�l�o�a�t�3�2�A�r�r�a�y�;�f�u�n�c�t�i�o�n� �F�(�t�,�e�)�{�r�e�t�u�r�n� �1�-�3�*�e�+�3�*�t�}�f�u�n�c�t�i�o�n� �I�(�t�,�e�,�i�)�{�r�e�t�u�r�n�(�(�F�(�e�,�i�)�*�t�+�(�3�*�i�-�6�*�e�)�)�*�t�+�3�*�e�)�*�t�}�f�u�n�c�t�i�o�n� �L�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �3�*�F�(�e�,�i�)�*�t�*�t�+�2�*�(�3�*�i�-�6�*�e�)�*�t�+�3�*�e�}�f�u�n�c�t�i�o�n� �Z�(�t�)�{�r�e�t�u�r�n� �t�}�f�u�n�c�t�i�o�n� �J�(�w�,�e�,�b�,�i�)�{�i�f�(�!�(�0�<�=�w�&�&�w�<�=�1�&�&�0�<�=�b�&�&�b�<�=�1�)�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�b�e�z�i�e�r� �x� �v�a�l�u�e�s� �m�u�s�t� �b�e� �i�n� �[�0�,� �1�]� �r�a�n�g�e�"�)�;�i�f�(�w�=�=�=�e�&�&�b�=�=�=�i�)�r�e�t�u�r�n� �Z�;�f�o�r�(�v�a�r� �_�=�n�e�w�(�K�?�F�l�o�a�t�3�2�A�r�r�a�y�:�A�r�r�a�y�)�(�1�1�)�,�t�=�0�;�t�<�1�1�;�+�+�t�)�_�[�t�]�=�I�(�.�1�*�t�,�w�,�b�)�;�f�u�n�c�t�i�o�n� �n�(�t�)�{�f�o�r�(�v�a�r� �e�=�0�,�i�=�1�;�1�0�!�=�=�i�&�&�_�[�i�]�<�=�t�;�+�+�i�)�e�+�=�.�1�;�v�a�r� �n�=�e�+�.�1�*�(�(�t�-�_�[�-�-�i�]�)�/�(�_�[�i�+�1�]�-�_�[�i�]�)�)�,�o�=�L�(�n�,�w�,�b�)�;�i�f�(�.�0�0�1�<�=�o�)�{�f�o�r�(�v�a�r� �s�=�t�,�r�=�n�,�a�=�w�,�l�=�b�,�c�=�0�;�c�<�Q�;�+�+�c�)�{�v�a�r� �d�=�L�(�r�,�a�,�l�)�;�i�f�(�0�=�=�=�d�)�r�e�t�u�r�n� �r�;�r�-�=�(�I�(�r�,�a�,�l�)�-�s�)�/�d�}�r�e�t�u�r�n� �r�}�i�f�(�0�=�=�=�o�)�r�e�t�u�r�n� �n�;�f�o�r�(�v�a�r� �u�,�h�,�p�=�t�,�f�=�e�,�m�=�e�+�.�1�,�g�=�w�,�v�=�b�,�y�=�0�;�0�<�(�u�=�I�(�h�=�f�+�(�m�-�f�)�/�2�,�g�,�v�)�-�p�)�?�m�=�h�:�f�=�h�,�M�a�t�h�.�a�b�s�(�u�)�>�G�&�&�+�+�y�<�X�;�)�;�r�e�t�u�r�n� �h�}�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �0�=�=�=�t�?�0�:�1�=�=�=�t�?�1�:�I�(�n�(�t�)�,�e�,�i�)�}�}�v�a�r� �t�t�=�3�8�,�e�t�=�4�0�,�i�t�=�3�2�,�M�=�9�,�n�t�=�3�3�,�o�t�=�3�4�,�s�t�=�3�6�,�r�t�=�3�5�,�a�t�=�f�u�n�c�t�i�o�n�(�)�{�r�(�o�,�f�)�;�v�a�r� �i�=�c�(�o�)�;�f�u�n�c�t�i�o�n� �o�(�)�{�v�a�r� �t�,�e�=�0�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�?�a�r�g�u�m�e�n�t�s�[�0�]�:�{�}�;�r�e�t�u�r�n� �n�(�t�h�i�s�,�o�)�,�h�i�s�t�o�r�y�.�s�c�r�o�l�l�R�e�s�t�o�r�a�t�i�o�n�&�&�(�h�i�s�t�o�r�y�.�s�c�r�o�l�l�R�e�s�t�o�r�a�t�i�o�n�=�"�m�a�n�u�a�l�"�)�,�w�i�n�d�o�w�.�s�c�r�o�l�l�T�o�(�0�,�0�)�,�(�t�=�i�.�c�a�l�l�(�t�h�i�s�,�e�)�)�.�i�n�e�r�t�i�a�&�&�(�t�.�l�e�r�p�=�.�1�*�t�.�i�n�e�r�t�i�a�)�,�t�.
1�i�s�S�c�r�o�l�l�i�n�g�=�!�1�,�t�.�i�s�D�r�a�g�g�i�n�g�S�c�r�o�l�l�b�a�r�=�!�1�,�t�.�i�s�T�i�c�k�i�n�g�=�!�1�,�t�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�=�!�1�,�t�.�p�a�r�a�l�l�a�x�E�l�e�m�e�n�t�s�=�{�}�,�t�.�s�t�o�p�=�!�1�,�t�.�s�c�r�o�l�l�b�a�r�C�o�n�t�a�i�n�e�r�=�e�.�s�c�r�o�l�l�b�a�r�C�o�n�t�a�i�n�e�r�,�t�.�c�h�e�c�k�K�e�y�=�t�.�c�h�e�c�k�K�e�y�.�b�i�n�d�(�l�(�t�)�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�k�e�y�d�o�w�n�"�,�t�.�c�h�e�c�k�K�e�y�,�!�1�)�,�t�}�r�e�t�u�r�n� �t�(�o�,�[�{�k�e�y�:�"�i�n�i�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�t�h�i�s�.�s�m�o�o�t�h�C�l�a�s�s�)�,�t�h�i�s�.�h�t�m�l�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�"�.�c�o�n�c�a�t�(�t�h�i�s�.�n�a�m�e�,�"�-�d�i�r�e�c�t�i�o�n�"�)�,�t�h�i�s�.�d�i�r�e�c�t�i�o�n�)�,�t�h�i�s�.�i�n�s�t�a�n�c�e�=�s�(�{�d�e�l�t�a�:�{�x�:�t�h�i�s�.�i�n�i�t�P�o�s�i�t�i�o�n�.�x�,�y�:�t�h�i�s�.�i�n�i�t�P�o�s�i�t�i�o�n�.�y�}�,�s�c�r�o�l�l�:�{�x�:�t�h�i�s�.�i�n�i�t�P�o�s�i�t�i�o�n�.�x�,�y�:�t�h�i�s�.�i�n�i�t�P�o�s�i�t�i�o�n�.�y�}�}�,�t�h�i�s�.�i�n�s�t�a�n�c�e�)�,�t�h�i�s�.�v�s�=�n�e�w� �B�(�{�e�l�:�t�h�i�s�.�s�c�r�o�l�l�F�r�o�m�A�n�y�w�h�e�r�e�?�d�o�c�u�m�e�n�t�:�t�h�i�s�.�e�l�,�m�o�u�s�e�M�u�l�t�i�p�l�i�e�r�:�-�1�<�n�a�v�i�g�a�t�o�r�.�p�l�a�t�f�o�r�m�.�i�n�d�e�x�O�f�(�"�W�i�n�"�)�?�1�:�.�4�,�f�i�r�e�f�o�x�M�u�l�t�i�p�l�i�e�r�:�t�h�i�s�.�f�i�r�e�f�o�x�M�u�l�t�i�p�l�i�e�r�,�t�o�u�c�h�M�u�l�t�i�p�l�i�e�r�:�t�h�i�s�.�t�o�u�c�h�M�u�l�t�i�p�l�i�e�r�,�u�s�e�K�e�y�b�o�a�r�d�:�!�1�,�p�a�s�s�i�v�e�:�!�0�}�)�,�t�h�i�s�.�v�s�.�o�n�(�f�u�n�c�t�i�o�n�(�t�)�{�e�.�s�t�o�p�|�|�e�.�i�s�D�r�a�g�g�i�n�g�S�c�r�o�l�l�b�a�r�|�|�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�f�u�n�c�t�i�o�n�(�)�{�e�.�u�p�d�a�t�e�D�e�l�t�a�(�t�)�,�e�.�i�s�S�c�r�o�l�l�i�n�g�|�|�e�.�s�t�a�r�t�S�c�r�o�l�l�i�n�g�(�)�}�)�}�)�,�t�h�i�s�.�s�e�t�S�c�r�o�l�l�L�i�m�i�t�(�)�,�t�h�i�s�.�i�n�i�t�S�c�r�o�l�l�B�a�r�(�)�,�t�h�i�s�.�a�d�d�S�e�c�t�i�o�n�s�(�)�,�t�h�i�s�.�a�d�d�E�l�e�m�e�n�t�s�(�)�,�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�(�!�0�)�,�t�h�i�s�.�t�r�a�n�s�f�o�r�m�E�l�e�m�e�n�t�s�(�!�0�,�!�0�)�,�d�(�a�(�o�.�p�r�o�t�o�t�y�p�e�)�,�"�i�n�i�t�"�,�t�h�i�s�)�.�c�a�l�l�(�t�h�i�s�)�}�}�,�{�k�e�y�:�"�s�e�t�S�c�r�o�l�l�L�i�m�i�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�i�f�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�y�=�t�h�i�s�.�e�l�.�o�f�f�s�e�t�H�e�i�g�h�t�-�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�,�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�)�{�f�o�r�(�v�a�r� �t�=�0�,�e�=�t�h�i�s�.�e�l�.�c�h�i�l�d�r�e�n�,�i�=�0�;�i�<�e�.�l�e�n�g�t�h�;�i�+�+�)�t�+�=�e�[�i�]�.�o�f�f�s�e�t�W�i�d�t�h�;�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�x�=�t�-�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�}�}�}�,�{�k�e�y�:�"�s�t�a�r�t�S�c�r�o�l�l�i�n�g�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�t�a�r�t�S�c�r�o�l�l�T�s�=�D�a�t�e�.�n�o�w�(�)�,�t�h�i�s�.�i�s�S�c�r�o�l�l�i�n�g�=�!�0�,�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�(�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�t�h�i�s�.�s�c�r�o�l�l�i�n�g�C�l�a�s�s�)�}�}�,�{�k�e�y�:�"�s�t�o�p�S�c�r�o�l�l�i�n�g�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�R�a�f�)�,�t�h�i�s�.�s�t�a�r�t�S�c�r�o�l�l�T�s�=�v�o�i�d� �0�,�t�h�i�s�.�s�c�r�o�l�l�T�o�R�a�f�&�&�(�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�t�h�i�s�.�s�c�r�o�l�l�T�o�R�a�f�)�,�t�h�i�s�.�s�c�r�o�l�l�T�o�R�a�f�=�n�u�l�l�)�,�t�h�i�s�.�i�s�S�c�r�o�l�l�i�n�g�=�!�1�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�=�M�a�t�h�.�r�o�u�n�d�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�t�h�i�s�.�s�c�r�o�l�l�i�n�g�C�l�a�s�s�)�}�}�,�{�k�e�y�:�"�c�h�e�c�k�K�e�y�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�h�i�s�;�i�f�(�t�h�i�s�.�s�t�o�p�)�t�.�k�e�y�C�o�d�e�=�=�M�&�&�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�f�u�n�c�t�i�o�n�(�)�{�e�.�h�t�m�l�.�s�c�r�o�l�l�T�o�p�=�0�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�c�r�o�l�l�T�o�p�=�0�,�e�.�h�t�m�l�.�s�c�r�o�l�l�L�e�f�t�=�0�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�c�r�o�l�l�L�e�f�t�=�0�}�)�;�e�l�s�e�{�s�w�i�t�c�h�(�t�.�k�e�y�C�o�d�e�)�{�c�a�s�e� �M�:�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�
1F�r�a�m�e�(�f�u�n�c�t�i�o�n�(�)�{�e�.�h�t�m�l�.�s�c�r�o�l�l�T�o�p�=�0�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�c�r�o�l�l�T�o�p�=�0�,�e�.�h�t�m�l�.�s�c�r�o�l�l�L�e�f�t�=�0�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�c�r�o�l�l�L�e�f�t�=�0�,�e�.�s�c�r�o�l�l�T�o�(�d�o�c�u�m�e�n�t�.�a�c�t�i�v�e�E�l�e�m�e�n�t�,�{�o�f�f�s�e�t�:�-�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�/�2�}�)�}�)�;�b�r�e�a�k�;�c�a�s�e� �t�t�:�t�h�i�s�.�i�s�A�c�t�i�v�e�E�l�e�m�e�n�t�S�c�r�o�l�l�S�e�n�s�i�t�i�v�e�(�)�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�=�2�4�0�)�;�b�r�e�a�k�;�c�a�s�e� �e�t�:�t�h�i�s�.�i�s�A�c�t�i�v�e�E�l�e�m�e�n�t�S�c�r�o�l�l�S�e�n�s�i�t�i�v�e�(�)�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�+�=�2�4�0�)�;�b�r�e�a�k�;�c�a�s�e� �n�t�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�;�b�r�e�a�k�;�c�a�s�e� �o�t�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�+�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�;�b�r�e�a�k�;�c�a�s�e� �s�t�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�;�b�r�e�a�k�;�c�a�s�e� �r�t�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�+�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�;�b�r�e�a�k�;�c�a�s�e� �i�t�:�t�h�i�s�.�i�s�A�c�t�i�v�e�E�l�e�m�e�n�t�S�c�r�o�l�l�S�e�n�s�i�t�i�v�e�(�)�&�&�(�t�.�s�h�i�f�t�K�e�y�?�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�+�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�)�;�b�r�e�a�k�;�d�e�f�a�u�l�t�:�r�e�t�u�r�n�}�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�<�0�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�=�0�)�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�>�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�,�t�h�i�s�.�s�t�o�p�S�c�r�o�l�l�i�n�g�(�)�,�t�h�i�s�.�i�s�S�c�r�o�l�l�i�n�g�=�!�0�,�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�(�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�t�h�i�s�.�s�c�r�o�l�l�i�n�g�C�l�a�s�s�)�}�}�}�,�{�k�e�y�:�"�i�s�A�c�t�i�v�e�E�l�e�m�e�n�t�S�c�r�o�l�l�S�e�n�s�i�t�i�v�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�(�d�o�c�u�m�e�n�t�.�a�c�t�i�v�e�E�l�e�m�e�n�t� �i�n�s�t�a�n�c�e�o�f� �H�T�M�L�I�n�p�u�t�E�l�e�m�e�n�t�|�|�d�o�c�u�m�e�n�t�.�a�c�t�i�v�e�E�l�e�m�e�n�t� �i�n�s�t�a�n�c�e�o�f� �H�T�M�L�T�e�x�t�A�r�e�a�E�l�e�m�e�n�t�|�|�d�o�c�u�m�e�n�t�.�a�c�t�i�v�e�E�l�e�m�e�n�t� �i�n�s�t�a�n�c�e�o�f� �H�T�M�L�B�u�t�t�o�n�E�l�e�m�e�n�t�|�|�d�o�c�u�m�e�n�t�.�a�c�t�i�v�e�E�l�e�m�e�n�t� �i�n�s�t�a�n�c�e�o�f� �H�T�M�L�S�e�l�e�c�t�E�l�e�m�e�n�t�)�}�}�,�{�k�e�y�:�"�c�h�e�c�k�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�=�t�h�i�s�,�n�=�0�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�&�&�a�r�g�u�m�e�n�t�s�[�0�]�;�(�n�|�|�t�h�i�s�.�i�s�S�c�r�o�l�l�i�n�g�|�|�t�h�i�s�.�i�s�D�r�a�g�g�i�n�g�S�c�r�o�l�l�b�a�r�)�&�&�(�t�h�i�s�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�|�|�(�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�R�a�f�=�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �i�.�c�h�e�c�k�S�c�r�o�l�l�(�)�}�)�,�t�h�i�s�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�=�!�0�)�,�t�h�i�s�.�u�p�d�a�t�e�S�c�r�o�l�l�(�)�,�t�=�M�a�t�h�.�a�b�s�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�,�e�=�D�a�t�e�.�n�o�w�(�)�-�t�h�i�s�.�s�t�a�r�t�S�c�r�o�l�l�T�s�,�!�t�h�i�s�.�a�n�i�m�a�t�i�n�g�S�c�r�o�l�l�&�&�1�0�0�<�e�&�&�(�t�<�.�5�&�&�0�!�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�|�|�t�<�.�5�&�&�0�=�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�&�&�t�h�i�s�.�s�t�o�p�S�c�r�o�l�l�i�n�g�(�)�,�O�b�j�e�c�t�.�e�n�t�r�i�e�s�(�t�h�i�s�.�s�e�c�t�i�o�n�s�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�=�C�(�t�,�2�)�,�t�[�0�]�,�t�=�t�[�1�]�;�t�.�p�e�r�s�i�s�t�e�n�t�|�|�i�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�i�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�>�t�.�o�f�f�s�e�t�[�i�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�&�&�i�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�i�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�<�t�.�l�i�m�i�t�[�i�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�?�(�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�i�.�d�i�r�e�c�t�i�o�n�?�i�.�t�r�a�n�s�f�o�r�m�(�t�.�e�l�,�-�i�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�i�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�0�)�:�i�.�t�r�a�n�s�f�o�r�m�(�t�.�e�l�,�0�,�-�i�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�i�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�,�t�.
1�i�n�V�i�e�w�|�|�(�t�.�i�n�V�i�e�w�=�!�0�,�t�.�e�l�.�s�t�y�l�e�.�o�p�a�c�i�t�y�=�1�,�t�.�e�l�.�s�t�y�l�e�.�p�o�i�n�t�e�r�E�v�e�n�t�s�=�"�a�l�l�"�,�t�.�e�l�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�"�.�c�o�n�c�a�t�(�i�.�n�a�m�e�,�"�-�s�e�c�t�i�o�n�-�i�n�v�i�e�w�"�)�,�"�"�)�)�)�:�(�(�t�.�i�n�V�i�e�w�|�|�n�)�&�&�(�t�.�i�n�V�i�e�w�=�!�1�,�t�.�e�l�.�s�t�y�l�e�.�o�p�a�c�i�t�y�=�0�,�t�.�e�l�.�s�t�y�l�e�.�p�o�i�n�t�e�r�E�v�e�n�t�s�=�"�n�o�n�e�"�,�t�.�e�l�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�"�.�c�o�n�c�a�t�(�i�.�n�a�m�e�,�"�-�s�e�c�t�i�o�n�-�i�n�v�i�e�w�"�)�)�)�,�i�.�t�r�a�n�s�f�o�r�m�(�t�.�e�l�,�0�,�0�)�)�}�)�,�t�h�i�s�.�g�e�t�D�i�r�e�c�t�i�o�n�&�&�t�h�i�s�.�a�d�d�D�i�r�e�c�t�i�o�n�(�)�,�t�h�i�s�.�g�e�t�S�p�e�e�d�&�&�(�t�h�i�s�.�a�d�d�S�p�e�e�d�(�)�,�t�h�i�s�.�s�p�e�e�d�T�s�=�D�a�t�e�.�n�o�w�(�)�)�,�t�h�i�s�.�d�e�t�e�c�t�E�l�e�m�e�n�t�s�(�)�,�t�h�i�s�.�t�r�a�n�s�f�o�r�m�E�l�e�m�e�n�t�s�(�)�,�t�h�i�s�.�h�a�s�S�c�r�o�l�l�b�a�r�&�&�(�e�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�/�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�*�t�h�i�s�.�s�c�r�o�l�l�B�a�r�L�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�?�t�h�i�s�.�t�r�a�n�s�f�o�r�m�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�,�e�,�0�)�:�t�h�i�s�.�t�r�a�n�s�f�o�r�m�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�,�0�,�e�)�)�,�d�(�a�(�o�.�p�r�o�t�o�t�y�p�e�)�,�"�c�h�e�c�k�S�c�r�o�l�l�"�,�t�h�i�s�)�.�c�a�l�l�(�t�h�i�s�)�,�t�h�i�s�.�h�a�s�S�c�r�o�l�l�T�i�c�k�i�n�g�=�!�1�)�}�}�,�{�k�e�y�:�"�r�e�s�i�z�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�,�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�=�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�,�t�h�i�s�.�c�h�e�c�k�C�o�n�t�e�x�t�(�)�,�t�h�i�s�.�w�i�n�d�o�w�M�i�d�d�l�e�=�{�x�:�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�/�2�,�y�:�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�/�2�}�,�t�h�i�s�.�u�p�d�a�t�e�(�)�}�}�,�{�k�e�y�:�"�u�p�d�a�t�e�D�e�l�t�a�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�(�t�h�i�s�[�t�h�i�s�.�c�o�n�t�e�x�t�]�&�&�t�h�i�s�[�t�h�i�s�.�c�o�n�t�e�x�t�]�.�g�e�s�t�u�r�e�D�i�r�e�c�t�i�o�n�?�t�h�i�s�[�t�h�i�s�.�c�o�n�t�e�x�t�]�:�t�h�i�s�)�.�g�e�s�t�u�r�e�D�i�r�e�c�t�i�o�n�,�e�=�"�b�o�t�h�"�=�=�=�e�?�t�.�d�e�l�t�a�X�+�t�.�d�e�l�t�a�Y�:�"�v�e�r�t�i�c�a�l�"�!�=�=�e�&�&�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�e�?�t�.�d�e�l�t�a�X�:�t�.�d�e�l�t�a�Y�;�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�=�e�*�t�h�i�s�.�m�u�l�t�i�p�l�i�e�r�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�<�0�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�=�0�)�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�>�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�}�}�,�{�k�e�y�:�"�u�p�d�a�t�e�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�i�s�S�c�r�o�l�l�i�n�g�|�|�t�h�i�s�.�i�s�D�r�a�g�g�i�n�g�S�c�r�o�l�l�b�a�r�?�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�=�O�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�t�h�i�s�.�l�e�r�p�)�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�>�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�?�t�h�i�s�.�s�e�t�S�c�r�o�l�l�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�<�0�?�t�h�i�s�.�s�e�t�S�c�r�o�l�l�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�0�)�:�t�h�i�s�.�s�e�t�S�c�r�o�l�l�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�}�}�,�{�k�e�y�:�"�a�d�d�D�i�r�e�c�t�i�o�n�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�.�y�>�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�?�"�d�o�w�n�"�!�=�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�=�"�d�o�w�n�"�)�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�.�y�<�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�&�&�"�u�p�"�!�=�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�=�"�u�p�"�)�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�.�x�>�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�?�"�r�i�g�h�t�"�!�=�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�=�"�r�i�g�h�t�"�)�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�.�x�<�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�&�&�"�l�e�f�t�"�!�=�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�&�&�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�i�r�e�c�t�i�o�n�=�"�l�e�f�t�"�)�}�}�,�{�k�e�y�:�"�a�d�d�S�p�e�e�d�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�!�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�?�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�p�e�e�d�=�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�/�M�a�t�h�.�m�a�x�(�1�,�D�a�t�e�.�n�o�w�(�)�-�t�h�i�s�.�s�p�e�e�d�T�s�)�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�p�e�e�d�=�0�}�}�,�{�k�e�y�:�"�i�n�i�t�S�c�r�o�l�l�B�a�r�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�i�f�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�s�p�a�n�"�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�s�p�a�n�"�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�"�.�c�o�n�c�a�t�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�C�l�a�s�s�)�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�"�.�c�o�n�c�a�t�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�C�l�a�s�s�,�"�_�t�h�u�m�b�"�)�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�.�a�p�p�e�n�d�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�)�,�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�C�o�n�t�a�i�n�e�r�|�|�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�a�p�p�e�n�d�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�)�,�t�h�i�s�.�g�e�t�S�c�r�o�l�l�B�a�r�=�t�h�i�s�.�g�e�t�S�c�r�o�l�l�B�a�r�.�b�i�n�d�(�t�h�i�s�)�,�t�h�i�s�.�r�e�l�e�a�s�e�S�c�r�o�l�l�B�a�r�=�t�h�i�s�.�r�e�l�e�a�s�e�S�c�r�o�l�l�B�a�r�.�b�i�n�d�(�t�h�i�s�)�,�t�h�i�s�.�m�o�v�e�S�c�r�o�l�l�B�a�r�=�t�h�i�s�.�m�o�v�e�S�c�r�o�l�l�B�a�r�.�b�i�n�d�(�t�h�i�s�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�d�o�w�n�"�,�t�h�i�s�.�g�e�t�S�c�r�o�l�l�B�a�r�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�u�p�"�,�t�h�i�s�.�r�e�l�e�a�s�e�S�c�r�o�l�l�B�a�r�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�m�o�v�e�"�,�t�h�i�s�.�m�o�v�e�S�c�r�o�l�l�B�a�r�)�,�t�h�i�s�.�h�a�s�S�c�r�o�l�l�b�a�r�=�!�1�,�"�h�o�r�i�z�o�n�t�a�l�"�=�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�)�{�i�f�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�x�+�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�<�=�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�)�r�e�t�u�r�n�}�e�l�s�e� �i�f�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�y�+�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�<�=�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�)�r�e�t�u�r�n�;�t�h�i�s�.�h�a�s�S�c�r�o�l�l�b�a�r�=�!�0�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�B�C�R�=�t�h�i�s�.�s�c�r�o�l�l�b�a�r�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�=�t�h�i�s�.�s�c�r�o�l�l�b�a�r�B�C�R�.�h�e�i�g�h�t�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�=�t�h�i�s�.�s�c�r�o�l�l�b�a�r�B�C�R�.�w�i�d�t�h�,�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�?�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�s�t�y�l�e�.�w�i�d�t�h�=�"�"�.�c�o�n�c�a�t�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�*�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�/�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�x�+�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�)�,�"�p�x�"�)�:�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�s�t�y�l�e�.�h�e�i�g�h�t�=�"�"�.�c�o�n�c�a�t�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�*�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�/�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�y�+�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�)�,�"�p�x�"�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�B�C�R�=�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�t�h�i�s�.�s�c�r�o�l�l�B�a�r�L�i�m�i�t�=�{�x�:�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�-�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�B�C�R�.�w�i�d�t�h�,�y�:�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�-�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�B�C�R�.�h�e�i�g�h�t�}�}�}�,�{�k�e�y�:�"�r�e�i�n�i�t�S�c�r�o�l�l�B�a�r�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�i�f�(�t�h�i�s�.�h�a�s�S�c�r�o�l�l�b�a�r�=�!�1�,�"�h�o�r�i�z�o�n�t�a�l�"�=�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�)�{�i�f�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�x�+�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�<�=�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�)�r�e�t�u�r�n�}�e�l�s�e� �i�f�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�y�+�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�<�=�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�)�r�e�t�u�r�n�;�t�h�i�s�.�h�a�s�S�c�r�o�l�l�b�a�r�=�!�0�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�B�C�R�=�t�h�i�s�.�s�c�r�o�l�l�b�a�r�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�=�t�h�i�s�.�s�c�r�o�l�l�b�a�r�B�C�R�.�h�e�i�g�h�t�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�=�t�h�i�s�.�s�c�r�o�l�l�b�a�r�B�C�R�.�w�i�d�t�h�,�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�?�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�s�t�y�l�e�.�w�i�d�t�h�=�"�"�.�c�o�n�c�a�t�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�*�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�/�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�x�+�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�)�,�"�p�x�"�)�:�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�s�t�y�l�e�.�h�e�i�g�h�t�=�"�"�.�c�o�n�c�a�t�(�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�*�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�/�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�y�+�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�)�,�"�p�x�"�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�B�C�R�=�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�t�h�i�s�.�s�c�r�o�l�l�B�a�r�L�i�m�i�t�=�{�x�:�t�h�i�s�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�-�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�B�C�R�.�w�i�d�t�h�,�y�:�t�h�i�s�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�-�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�B�C�R�.�h�e�i�g�h�t�}�}�}�,�{�k�e�y�:�"�d�e�s�t�r�o�y�S�c�r�o�l�l�B�a�r�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�c�r�o�l�l�b�a�r�T�h�u�m�b�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�d�o�w�n�"�,�t�h�i�s�.�g�e�t�S�c�r�o�l�l�B�a�r�)�,�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�u�p�"�,�t�h�i�s�.�r�e�l�e�a�s�e�S�c�r�o�l�l�B�a�r�)�,�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�m�o�u�s�e�m�o�v�e�"�,�t�h�i�s�.�m�o�v�e�S�c�r�o�l�l�B�a�r�)�,�t�h�i�s�.�s�c�r�o�l�l�b�a�r�.�r�e�m�o�v�e�(�)�}�}�,�{�k�e�y�:�"�g�e�t�S�c�r�o�l�l�B�a�r�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�i�s�D�r�a�g�g�i�n�g�S�c�r�o�l�l�b�a�r�=�!�0�,�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�(�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�t�h�i�s�.�s�c�r�o�l�l�i�n�g�C�l�a�s�s�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�t�h�i�s�.�d�r�a�g�g�i�n�g�C�l�a�s�s�)�}�}�,�{�k�e�y�:�"�r�e�l�e�a�s�e�S�c�r�o�l�l�B�a�r�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�i�s�D�r�a�g�g�i�n�g�S�c�r�o�l�l�b�a�r�=�!�1�,�t�h�i�s�.�i�s�S�c�r�o�l�l�i�n�g�&�&�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�t�h�i�s�.�s�c�r�o�l�l�i�n�g�C�l�a�s�s�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�t�h�i�s�.�d�r�a�g�g�i�n�g�C�l�a�s�s�)�}�}�,�{�k�e�y�:�"�m�o�v�e�S�c�r�o�l�l�B�a�r�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�i�)�{�v�a�r� �n�=�t�h�i�s�;�t�h�i�s�.�i�s�D�r�a�g�g�i�n�g�S�c�r�o�l�l�b�a�r�&�&�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�
1F�r�a�m�e�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�1�0�0�*�(�i�.�c�l�i�e�n�t�X�-�n�.�s�c�r�o�l�l�b�a�r�B�C�R�.�l�e�f�t�)�/�n�.�s�c�r�o�l�l�b�a�r�W�i�d�t�h�*�n�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�x�/�1�0�0�,�e�=�1�0�0�*�(�i�.�c�l�i�e�n�t�Y�-�n�.�s�c�r�o�l�l�b�a�r�B�C�R�.�t�o�p�)�/�n�.�s�c�r�o�l�l�b�a�r�H�e�i�g�h�t�*�n�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�y�/�1�0�0�;�0�<�e�&�&�e�<�n�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�y�&�&�(�n�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�.�y�=�e�)�,�0�<�t�&�&�t�<�n�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�x�&�&�(�n�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�.�x�=�t�)�}�)�}�}�,�{�k�e�y�:�"�a�d�d�E�l�e�m�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �x�=�t�h�i�s�;�t�h�i�s�.�e�l�s�=�{�}�,�t�h�i�s�.�p�a�r�a�l�l�a�x�E�l�e�m�e�n�t�s�=�{�}�,�t�h�i�s�.�e�l�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�d�a�t�a�-�"�.�c�o�n�c�a�t�(�t�h�i�s�.�n�a�m�e�,�"�]�"�)�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�,�s�=�$�(�t�)�,�r�=�O�b�j�e�c�t�.�e�n�t�r�i�e�s�(�x�.�s�e�c�t�i�o�n�s�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�t�=�C�(�t�,�2�)�;�t�[�0�]�;�r�e�t�u�r�n� �t�[�1�]�}�)�.�f�i�n�d�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �s�.�i�n�c�l�u�d�e�s�(�t�.�e�l�)�}�)�,�a�=�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�C�l�a�s�s�"�]�|�|�x�.�c�l�a�s�s�,�e�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�I�d�"�]�?�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�I�d�"�]�:�"�e�l�"�+�e�,�l�=�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�R�e�p�e�a�t�"�]�,�c�=�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�C�a�l�l�"�]�,�d�=�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�P�o�s�i�t�i�o�n�"�]�,�u�=�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�D�e�l�a�y�"�]�,�h�=�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�D�i�r�e�c�t�i�o�n�"�]�,�p�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�S�t�i�c�k�y�"�]�,�f�=�!�!�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�S�p�e�e�d�"�]�&�&�p�a�r�s�e�F�l�o�a�t�(�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�S�p�e�e�d�"�]�)�/�1�0�,�m�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�O�f�f�s�e�t�"�]�?�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�O�f�f�s�e�t�"�]�.�s�p�l�i�t�(�"�,�"�)�:�x�.�o�f�f�s�e�t�,�g�=�t�.�d�a�t�a�s�e�t�[�x�.�n�a�m�e�+�"�T�a�r�g�e�t�"�]�,�g�=�v�o�i�d� �0�!�=�=�g�?�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�"�.�c�o�n�c�a�t�(�g�)�)�:�t�,�v�=�g�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�v�=�n�u�l�l�=�=�=�r�|�|�r�.�i�n�V�i�e�w�?�(�i�=�v�.�t�o�p�+�x�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�-�D�(�g�)�.�y�,�v�.�l�e�f�t�+�x�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�-�D�(�g�)�.�x�)�:�(�i�=�v�.�t�o�p�-�D�(�r�.�e�l�)�.�y�-�D�(�g�)�.�y�,�v�.�l�e�f�t�-�D�(�r�.�e�l�)�.�x�-�D�(�g�)�.�x�)�,�y�=�i�+�g�.�o�f�f�s�e�t�H�e�i�g�h�t�,�w�=�v�+�g�.�o�f�f�s�e�t�W�i�d�t�h�,�b�=�{�x�:�(�w�-�v�)�/�2�+�v�,�y�:�(�y�-�i�)�/�2�+�i�}�,�_�=�(�p�&�&�(�S�=�(�n�=�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�)�.�t�o�p�,�o�=�{�x�:�(�n�=�n�.�l�e�f�t�)�-�v�,�y�:�S�-�i�}�,�i�+�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�,�v�+�=�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�,�y�=�S�+�g�.�o�f�f�s�e�t�H�e�i�g�h�t�-�t�.�o�f�f�s�e�t�H�e�i�g�h�t�-�o�[�x�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�b�=�{�x�:�(�(�w�=�n�+�g�.�o�f�f�s�e�t�W�i�d�t�h�-�t�.�o�f�f�s�e�t�W�i�d�t�h�-�o�[�x�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�-�v�)�/�2�+�v�,�y�:�(�y�-�i�)�/�2�+�i�}�)�,�l�=�"�f�a�l�s�e�"�!�=�l�&�&�(�n�u�l�l�!�=�l�|�|�x�.�r�e�p�e�a�t�)�,�[�0�,�0�]�)�;�i�f�(�m�)�i�f�(�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�x�.�d�i�r�e�c�t�i�o�n�)�{�f�o�r�(�v�a�r� �T�=�0�;�T�<�m�.�l�e�n�g�t�h�;�T�+�+�)�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �m�[�T�]�?�m�[�T�]�.�i�n�c�l�u�d�e�s�(�"�%�"�)�?�_�[�T�]�=�p�a�r�s�e�I�n�t�(�m�[�T�]�.�r�e�p�l�a�c�e�(�"�%�"�,�"�"�)�*�x�.�w�i�n�d�o�w�W�i�d�t�h�/�1�0�0�)�:�_�[�T�]�=�p�a�r�s�e�I�n�t�(�m�[�T�]�)�:�_�[�T�]�=�m�[�T�]�;�v�+�=�_�[�0�]�,�w�-�=�_�[�1�]�}�e�l�s�e�{�f�o�r�(�T�=�0�;�T�<�m�.�l�e�n�g�t�h�;�T�+�+�)�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �m�[�T�]�?�m�[�T�]�.�i�n�c�l�u�d�e�s�(�"�%�"�)�?�_�[�T�]�=�p�a�r�s�e�I�n�t�(�m�[�T�]�.�r�e�p�l�a�c�e�(�"�%�"�,�"�"�)�*�x�.�w�i�n�d�o�w�H�e�i�g�h�t�/�1�0�0�)�:�_�[�T�]�=�p�a�r�s�e�I�n�t�(�m�[�T�]�)�:�_�[�T�]�=�m�[�T�]�;�i�+�=�_�[�0�]�,�y�-�=�_�[�1�]�}�v�a�r� �S�=�{�e�l�:�t�,�i�d�:�e�,�c�l�a�s�s�:�a�,�s�e�c�t�i�o�n�:�r�,�t�
1o�p�:�i�,�m�i�d�d�l�e�:�b�,�b�o�t�t�o�m�:�y�,�l�e�f�t�:�v�,�r�i�g�h�t�:�w�,�o�f�f�s�e�t�:�m�,�p�r�o�g�r�e�s�s�:�0�,�r�e�p�e�a�t�:�l�,�i�n�V�i�e�w�:�!�1�,�c�a�l�l�:�c�,�s�p�e�e�d�:�f�,�d�e�l�a�y�:�u�,�p�o�s�i�t�i�o�n�:�d�,�t�a�r�g�e�t�:�g�,�d�i�r�e�c�t�i�o�n�:�h�,�s�t�i�c�k�y�:�p�}�;�x�.�e�l�s�[�e�]�=�S�,�t�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�a�)�&�&�x�.�s�e�t�I�n�V�i�e�w�(�x�.�e�l�s�[�e�]�,�e�)�,�!�1�=�=�=�f�&�&�!�p�|�|�(�x�.�p�a�r�a�l�l�a�x�E�l�e�m�e�n�t�s�[�e�]�=�S�)�}�)�}�}�,�{�k�e�y�:�"�a�d�d�S�e�c�t�i�o�n�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �s�=�t�h�i�s�,�t�=�(�t�h�i�s�.�s�e�c�t�i�o�n�s�=�{�}�,�t�h�i�s�.�e�l�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�d�a�t�a�-�"�.�c�o�n�c�a�t�(�t�h�i�s�.�n�a�m�e�,�"�-�s�e�c�t�i�o�n�]�"�)�)�)�;�(�t�=�0�=�=�=�t�.�l�e�n�g�t�h�?�[�t�h�i�s�.�e�l�]�:�t�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �e�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�d�a�t�a�s�e�t�[�s�.�n�a�m�e�+�"�I�d�"�]�?�t�.�d�a�t�a�s�e�t�[�s�.�n�a�m�e�+�"�I�d�"�]�:�"�s�e�c�t�i�o�n�"�+�e�,�i�=�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�n�=�{�x�:�i�.�l�e�f�t�-�1�.�5�*�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�-�D�(�t�)�.�x�,�y�:�i�.�t�o�p�-�1�.�5�*�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�-�D�(�t�)�.�y�}�,�i�=�{�x�:�n�.�x�+�i�.�w�i�d�t�h�+�2�*�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�,�y�:�n�.�y�+�i�.�h�e�i�g�h�t�+�2�*�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�}�,�o�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�d�a�t�a�s�e�t�[�s�.�n�a�m�e�+�"�P�e�r�s�i�s�t�e�n�t�"�]�;�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�d�a�t�a�-�s�c�r�o�l�l�-�s�e�c�t�i�o�n�-�i�d�"�,�e�)�,�s�.�s�e�c�t�i�o�n�s�[�e�]�=�{�e�l�:�t�,�o�f�f�s�e�t�:�n�,�l�i�m�i�t�:�i�,�i�n�V�i�e�w�:�!�1�,�p�e�r�s�i�s�t�e�n�t�:�o�,�i�d�:�e�}�}�)�}�}�,�{�k�e�y�:�"�t�r�a�n�s�f�o�r�m�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�a�r� �o�,�s�;�n�=�n�?�(�o�=�O�(�(�s�=�D�(�t�)�)�.�x�,�e�,�n�)�,�s�=�O�(�s�.�y�,�i�,�n�)�,�"�m�a�t�r�i�x�3�d�(�1�,�0�,�0�.�0�0�,�0�,�0�.�0�0�,�1�,�0�.�0�0�,�0�,�0�,�0�,�1�,�0�,�"�.�c�o�n�c�a�t�(�o�,�"�,�"�)�.�c�o�n�c�a�t�(�s�,�"�,�0�,�1�)�"�)�)�:�"�m�a�t�r�i�x�3�d�(�1�,�0�,�0�.�0�0�,�0�,�0�.�0�0�,�1�,�0�.�0�0�,�0�,�0�,�0�,�1�,�0�,�"�.�c�o�n�c�a�t�(�e�,�"�,�"�)�.�c�o�n�c�a�t�(�i�,�"�,�0�,�1�)�"�)�,�t�.�s�t�y�l�e�.�w�e�b�k�i�t�T�r�a�n�s�f�o�r�m�=�n�,�t�.�s�t�y�l�e�.�m�s�T�r�a�n�s�f�o�r�m�=�n�,�t�.�s�t�y�l�e�.�t�r�a�n�s�f�o�r�m�=�n�}�}�,�{�k�e�y�:�"�t�r�a�n�s�f�o�r�m�E�l�e�m�e�n�t�s�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�n�)�{�v�a�r� �o�=�t�h�i�s�,�s�=�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�1�]�&�&�a�r�g�u�m�e�n�t�s�[�1�]�,�r�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�+�t�h�i�s�.�w�i�n�d�o�w�W�i�d�t�h�,�a�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�+�t�h�i�s�.�w�i�n�d�o�w�H�e�i�g�h�t�,�l�=�{�x�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�+�t�h�i�s�.�w�i�n�d�o�w�M�i�d�d�l�e�.�x�,�y�:�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�+�t�h�i�s�.�w�i�n�d�o�w�M�i�d�d�l�e�.�y�}�;�O�b�j�e�c�t�.�e�n�t�r�i�e�s�(�t�h�i�s�.�p�a�r�a�l�l�a�x�E�l�e�m�e�n�t�s�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �t�=�C�(�t�,�2�)�,�e�=�(�t�[�0�]�,�t�[�1�]�)�,�i�=�n�?�0�:�!�1�;�i�f�(�e�.�i�n�V�i�e�w�|�|�s�)�s�w�i�t�c�h�(�e�.�p�o�s�i�t�i�o�n�)�{�c�a�s�e�"�t�o�p�"�:�i�=�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�o�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�*�-�e�.�s�p�e�e�d�;�b�r�e�a�k�;�c�a�s�e�"�e�l�e�m�e�n�t�T�o�p�"�:�i�=�(�a�-�e�.�t�o�p�)�*�-�e�.�s�p�e�e�d�;�b�r�e�a�k�;�c�a�s�e�"�b�o�t�t�o�m�"�:�i�=�(�o�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�o�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�a�+�o�.�w�i�n�d�o�w�H�e�i�g�h�t�)�*�e�.�s�p�e�e�d�;�b�r�e�a�k�;�c�a�s�e�"�l�e�f�t�"�:�i�=�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�o�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�*�-�e�.�s�p�e�e�d�;�b�r�e�a�k�;�c�a�s�e�"�e�l�e�m�e�n�t�L�e�f�t�"�:�i�=�(�r�-�e�.�l�e�f�t�)�*�-�e�.�s�p�e�e�d�;�b�r�e�a�k�;�c�a�s�e�"�r�i�g�h�t�"�:�i�=�(�o�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�o�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�r�+�o�.�w�i�n�d�o�w�H�e�i�g�h�t�)�*�e�.�s�p�e�e�d�;�b�r�e�a�k�;�d�e�f�a�u�l�t�:�i�=�(�l�[�o�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�-�e�.�m�i�d�d�l�e�[�o�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�*�-�e�.�s�p�e�e�d�}�!�1�!�=�=�(�i�=�e�.�s�t�i�c�k�y�?�e�.�i�n�V�i�e�w�?�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�o�.�d�i�r�e�c�t�i�o�n�?�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�-�e�.�l�e�f�t�+�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�:�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�-�e�.�t�o�p�+�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�:�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�o�.�d�i�r�e�c�t�i�o�n�?�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�<�e�.�l�e�f�t�-�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�&�&�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�<�e�.�l�e�f�t�-�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�/�2�?�0�:�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�>�e�.�r�i�g�h�t�&�&�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�x�>�e�.�r�i�g�h�t�+�1�0�0�&�&�e�.�r�i�g�h�t�-�e�.�l�e�f�t�+�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�:�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�<�e�.�t�o�p�-�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�&�&�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�<�e�.�t�o�p�-�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�/�2�?�0�:�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�>�e�.�b�o�t�t�o�m�&�&�o�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�.�y�>�e�.�b�o�t�t�o�m�+�1�0�0�&�&�e�.�b�o�t�t�o�m�-�e�.�t�o�p�+�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�:�i�)�&�&�(�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�e�.�d�i�r�e�c�t�i�o�n�|�|�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�o�.�d�i�r�e�c�t�i�o�n�&�&�"�v�e�r�t�i�c�a�l�"�!�=�=�e�.�d�i�r�e�c�t�i�o�n�?�o�.�t�r�a�n�s�f�o�r�m�(�e�.�e�l�,�i�,�0�,�!�n�&�&�e�.�d�e�l�a�y�)�:�o�.�t�r�a�n�s�f�o�r�m�(�e�.�e�l�,�0�,�i�,�!�n�&�&�e�.�d�e�l�a�y�)�)�}�)�}�}�,�{�k�e�y�:�"�s�c�r�o�l�l�T�o�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �i�=�t�h�i�s�,�e�=�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�1�]�?�a�r�g�u�m�e�n�t�s�[�1�]�:�{�}�,�n�=�p�a�r�s�e�I�n�t�(�e�.�o�f�f�s�e�t�)�|�|�0�,�o�=�i�s�N�a�N�(�p�a�r�s�e�I�n�t�(�e�.�d�u�r�a�t�i�o�n�)�)�?�1�e�3�:�p�a�r�s�e�I�n�t�(�e�.�d�u�r�a�t�i�o�n�)�,�s�=�e�.�e�a�s�i�n�g�|�|�[�.�2�5�,�0�,�.�3�5�,�1�]�,�r�=�!�!�e�.�d�i�s�a�b�l�e�L�e�r�p�,�a�=�e�.�c�a�l�l�b�a�c�k�|�|�!�1�,�s�=�J�.�a�p�p�l�y�(�v�o�i�d� �0�,�m�(�s�)�)�;�i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�)�{�i�f�(�"�t�o�p�"�=�=�=�t�)�t�=�0�;�e�l�s�e� �i�f�(�"�b�o�t�t�o�m�"�=�=�=�t�)�t�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�y�;�e�l�s�e� �i�f�(�"�l�e�f�t�"�=�=�=�t�)�t�=�0�;�e�l�s�e� �i�f�(�"�r�i�g�h�t�"�=�=�=�t�)�t�=�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�.�x�;�e�l�s�e� �i�f�(�!�(�t�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�t�)�)�)�r�e�t�u�r�n�}�e�l�s�e� �i�f�(�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�)�t�=�p�a�r�s�e�I�n�t�(�t�)�;�e�l�s�e� �i�f�(�!�t�|�|�!�t�.�t�a�g�N�a�m�e�)�r�e�t�u�r�n� �v�o�i�d� �c�o�n�s�o�l�e�.�w�a�r�n�(�"�`�t�a�r�g�e�t�`� �p�a�r�a�m�e�t�e�r� �i�s� �n�o�t� �v�a�l�i�d�"�)�;
1�i�f�(�"�n�u�m�b�e�r�"�!�=�t�y�p�e�o�f� �t�)�{�i�f�(�!�$�(�t�)�.�i�n�c�l�u�d�e�s�(�t�h�i�s�.�e�l�)�)�r�e�t�u�r�n�;�v�a�r� �e�=�t�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�l�=�e�.�t�o�p�,�e�=�e�.�l�e�f�t�,�c�=�$�(�t�)�.�f�i�n�d�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �O�b�j�e�c�t�.�e�n�t�r�i�e�s�(�i�.�s�e�c�t�i�o�n�s�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�t�)�{�t�=�C�(�t�,�2�)�;�t�[�0�]�;�r�e�t�u�r�n� �t�[�1�]�}�)�.�f�i�n�d�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�e�l�=�=�e�}�)�}�)�,�d�=�0�,�d�=�c�?�D�(�c�)�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�:�-�t�h�i�s�.�i�n�s�t�a�n�c�e�.�s�c�r�o�l�l�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�,�n�=�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�?�e�+�n�-�d�:�l�+�n�-�d�}�e�l�s�e� �n�=�t�+�n�;�v�a�r� �u�=�p�a�r�s�e�F�l�o�a�t�(�t�h�i�s�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�,�h�=�M�a�t�h�.�m�a�x�(�0�,�M�a�t�h�.�m�i�n�(�n�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�l�i�m�i�t�[�t�h�i�s�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�)�)�-�u�,�p�=�f�u�n�c�t�i�o�n�(�t�)�{�r�?�"�h�o�r�i�z�o�n�t�a�l�"�=�=�=�i�.�d�i�r�e�c�t�i�o�n�?�i�.�s�e�t�S�c�r�o�l�l�(�u�+�h�*�t�,�i�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�.�y�)�:�i�.�s�e�t�S�c�r�o�l�l�(�i�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�.�x�,�u�+�h�*�t�)�:�i�.�i�n�s�t�a�n�c�e�.�d�e�l�t�a�[�i�.�d�i�r�e�c�t�i�o�n�A�x�i�s�]�=�u�+�h�*�t�}�,�f�=�(�t�h�i�s�.�a�n�i�m�a�t�i�n�g�S�c�r�o�l�l�=�!�0�,�t�h�i�s�.�s�t�o�p�S�c�r�o�l�l�i�n�g�(�)�,�t�h�i�s�.�s�t�a�r�t�S�c�r�o�l�l�i�n�g�(�)�,�D�a�t�e�.�n�o�w�(�)�)�;�(�f�u�n�c�t�i�o�n� �t�(�)�{�v�a�r� �e�=�(�D�a�t�e�.�n�o�w�(�)�-�f�)�/�o�;�1�<�e�?�(�p�(�1�)�,�i�.�a�n�i�m�a�t�i�n�g�S�c�r�o�l�l�=�!�1�,�0�=�=�o�&�&�i�.�u�p�d�a�t�e�(�)�,�a�&�&�a�(�)�)�:�(�i�.�s�c�r�o�l�l�T�o�R�a�f�=�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�t�)�,�p�(�s�(�e�)�)�)�}�)�(�)�}�}�,�{�k�e�y�:�"�u�p�d�a�t�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�e�t�S�c�r�o�l�l�L�i�m�i�t�(�)�,�t�h�i�s�.�a�d�d�S�e�c�t�i�o�n�s�(�)�,�t�h�i�s�.�a�d�d�E�l�e�m�e�n�t�s�(�)�,�t�h�i�s�.�d�e�t�e�c�t�E�l�e�m�e�n�t�s�(�)�,�t�h�i�s�.�u�p�d�a�t�e�S�c�r�o�l�l�(�)�,�t�h�i�s�.�t�r�a�n�s�f�o�r�m�E�l�e�m�e�n�t�s�(�!�0�)�,�t�h�i�s�.�r�e�i�n�i�t�S�c�r�o�l�l�B�a�r�(�)�,�t�h�i�s�.�c�h�e�c�k�S�c�r�o�l�l�(�!�0�)�}�}�,�{�k�e�y�:�"�s�t�a�r�t�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�t�o�p�=�!�1�}�}�,�{�k�e�y�:�"�s�t�o�p�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�t�o�p�=�!�0�}�}�,�{�k�e�y�:�"�s�e�t�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�i�n�s�t�a�n�c�e�=�s�(�s�(�{�}�,�t�h�i�s�.�i�n�s�t�a�n�c�e�)�,�{�}�,�{�s�c�r�o�l�l�:�{�x�:�t�,�y�:�e�}�,�d�e�l�t�a�:�{�x�:�t�,�y�:�e�}�,�s�p�e�e�d�:�0�}�)�}�}�,�{�k�e�y�:�"�d�e�s�t�r�o�y�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�d�(�a�(�o�.�p�r�o�t�o�t�y�p�e�)�,�"�d�e�s�t�r�o�y�"�,�t�h�i�s�)�.�c�a�l�l�(�t�h�i�s�)�,�t�h�i�s�.�s�t�o�p�S�c�r�o�l�l�i�n�g�(�)�,�t�h�i�s�.�h�t�m�l�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�t�h�i�s�.�s�m�o�o�t�h�C�l�a�s�s�)�,�t�h�i�s�.�v�s�.�d�e�s�t�r�o�y�(�)�,�t�h�i�s�.�d�e�s�t�r�o�y�S�c�r�o�l�l�B�a�r�(�)�,�w�i�n�d�o�w�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�k�e�y�d�o�w�n�"�,�t�h�i�s�.�c�h�e�c�k�K�e�y�,�!�1�)�}�}�]�)�,�o�}�(�)�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�f�u�n�c�t�i�o�n� �e�(�)�{�v�a�r� �t�=�0�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�v�o�i�d� �0�!�=�=�a�r�g�u�m�e�n�t�s�[�0�]�?�a�r�g�u�m�e�n�t�s�[�0�]�:�{�}�;�n�(�t�h�i�s�,�e�)�,�t�h�i�s�.�o�p�t�i�o�n�s�=�t�,�O�b�j�e�c�t�.�a�s�s�i�g�n�(�t�h�i�s�,�p�,�t�)�,�t�h�i�s�.�s�m�a�r�t�p�h�o�n�e�=�p�.�s�m�a�r�t�p�h�o�n�e�,�t�.�s�m�a�r�t�p�h�o�n�e�&�&�O�b�j�e�c�t�.�a�s�s�i�g�n�(�t�h�i�s�.�s�m�a�r�t�p�h�o�n�e�,�t�.�s�m�a�r�t�p�h�o�n�e�)�,�t�h�i�s�.�t�a�b�l�e�t�=�p�.�t�a�b�l�e�t�,�t�.�t�a�b�l�e�t�&�&�O�b�j�e�c�t�.�a�s�s�i�g�n�(�t�h�i�s�.�t�a�b�l�e�t�,�t�.�t�a�b�l�e�t�)�,�t�h�i�s�.�s�m�o�o�t�h�|�|�"�h�o�r�i�z�o�n�t�a�l�"�!�=�t�h�i�s�.�d�i�r�e�c�t�i�o�n�|�|�c�o�n�s�o�l�e�.�w�a�r�n�(�"�=Ø¨Þ �`�s�m�o�o�t�h�:�f�a�l�s�e�`� �&� �`�h�o�r�i�z�o�n�t�a�l�`� �d�i�r�e�c�t�i�o�n� �a�r�e� �n�o�t� �y�e�t� �c�o�m�p�a�t�i�b�l�e�"�)�,�t�h�i�s�.�t�a�b�l�e�t�.�s�m�o�o�t�h�|�|�"�h�o�r�i�z�o�n�t�a�l�"�!�=�t�h�i�s�.�t�a�b�l�e�t�.�d�i�r�e�c�t�i�o�n�|�|�c�o�n�s�o�l�e�.�w�a�r�n�(�"�=Ø¨Þ �`�s�m�o�o�t�h�:�f�a�l�s�e�`� �&� �`�h�o�r�i�z�o�n�t�a�l�`� �d�i�r�e�c�t�i�o�n� �a�r�e� �n�o�t� �y�e�t� �c�o�m�p�a�t�i�b�l�e� �(�t�a�b�l�e�t�)�"�)�,�t�h�i�s�.�s�m�a�r�t�p�h�o�n�e�.�s�m�o�o�t�h�|�|�"�h�o�r�i�z�o�n�t�a�l�"�!�=�t�h�i�s�.�s�m�a�r�t�p�h�o�n�e�.�d�i�r�e�c�t�i�o�n�|�|�c�o�n�s�o�l�e�.�w�a�r�n�(�"�=Ø¨Þ �`�s�m�o�o�t�h�:�f�a�l�s�e�`� �&� �`�h�o�r�i�z�o�n�t�a�l�`� �d�i�r�e�c�t�i�o�n� �a�r�e� �n�o�t� �y�e�t� �c�o�m�p�a�t�i�b�l�e� �(�s�m�a�r�t�p�h�o�n�e�)�"�)�,�t�h�i�s�.�i�n�i�t�(�)�}�r�e�t�u�r�n� �t�(�e�,�[�{�k�e�y�:�"�i�n�i�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�t�h�i�s�.�o�p�t�i�o�n�s�.�i�s�M�o�b�i�l�e�=�/�A�n�d�r�o�i�d�|�i�P�h�o�n�e�|�i�P�a�d�|�i�P�o�d�|�B�l�a�c�k�B�e�r�r�y�|�I�E�M�o�b�i�l�e�|�O�p�e�r�a� �M�i�n�i�/�i�.�t�e�s�t�(�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�)�|�|�"�M�a�c�I�n�t�e�l�"�=�=�=�n�a�v�i�g�a�t�o�r�.�p�l�a�t�f�o�r�m�&�&�1�<�n�a�v�i�g�a�t�o�r�.�m�a�x�T�o�u�c�h�P�o�i�n�t�s�|�|�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�<�t�h�i�s�.�t�a�b�l�e�t�.�b�r�e�a�k�p�o�i�n�t�,�t�h�i�s�.�o�p�t�i�o�n�s�.�i�s�T�a�b
1�l�e�t�=�t�h�i�s�.�o�p�t�i�o�n�s�.�i�s�M�o�b�i�l�e�&�&�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�>�=�t�h�i�s�.�t�a�b�l�e�t�.�b�r�e�a�k�p�o�i�n�t�,�t�h�i�s�.�s�m�o�o�t�h�&�&�!�t�h�i�s�.�o�p�t�i�o�n�s�.�i�s�M�o�b�i�l�e�|�|�t�h�i�s�.�t�a�b�l�e�t�.�s�m�o�o�t�h�&�&�t�h�i�s�.�o�p�t�i�o�n�s�.�i�s�T�a�b�l�e�t�|�|�t�h�i�s�.�s�m�a�r�t�p�h�o�n�e�.�s�m�o�o�t�h�&�&�t�h�i�s�.�o�p�t�i�o�n�s�.�i�s�M�o�b�i�l�e�&�&�!�t�h�i�s�.�o�p�t�i�o�n�s�.�i�s�T�a�b�l�e�t�?�t�h�i�s�.�s�c�r�o�l�l�=�n�e�w� �a�t�(�t�h�i�s�.�o�p�t�i�o�n�s�)�:�t�h�i�s�.�s�c�r�o�l�l�=�n�e�w� �w�(�t�h�i�s�.�o�p�t�i�o�n�s�)�,�t�h�i�s�.�s�c�r�o�l�l�.�i�n�i�t�(�)�,�w�i�n�d�o�w�.�l�o�c�a�t�i�o�n�.�h�a�s�h�&�&�(�t�=�w�i�n�d�o�w�.�l�o�c�a�t�i�o�n�.�h�a�s�h�.�s�l�i�c�e�(�1�,�w�i�n�d�o�w�.�l�o�c�a�t�i�o�n�.�h�a�s�h�.�l�e�n�g�t�h�)�,�(�t�=�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�t�)�)�&�&�t�h�i�s�.�s�c�r�o�l�l�.�s�c�r�o�l�l�T�o�(�t�)�)�}�}�,�{�k�e�y�:�"�u�p�d�a�t�e�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�c�r�o�l�l�.�u�p�d�a�t�e�(�)�}�}�,�{�k�e�y�:�"�s�t�a�r�t�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�c�r�o�l�l�.�s�t�a�r�t�S�c�r�o�l�l�(�)�}�}�,�{�k�e�y�:�"�s�t�o�p�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�c�r�o�l�l�.�s�t�o�p�S�c�r�o�l�l�(�)�}�}�,�{�k�e�y�:�"�s�c�r�o�l�l�T�o�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�s�c�r�o�l�l�.�s�c�r�o�l�l�T�o�(�t�,�e�)�}�}�,�{�k�e�y�:�"�s�e�t�S�c�r�o�l�l�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�s�c�r�o�l�l�.�s�e�t�S�c�r�o�l�l�(�t�,�e�)�}�}�,�{�k�e�y�:�"�o�n�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�s�c�r�o�l�l�.�s�e�t�E�v�e�n�t�s�(�t�,�e�)�}�}�,�{�k�e�y�:�"�o�f�f�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�s�c�r�o�l�l�.�u�n�s�e�t�E�v�e�n�t�s�(�t�,�e�)�}�}�,�{�k�e�y�:�"�d�e�s�t�r�o�y�"�,�v�a�l�u�e�:�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�s�c�r�o�l�l�.�d�e�s�t�r�o�y�(�)�}�}�]�)�,�e�}�(�)�}�)�,�!�f�u�n�c�t�i�o�n�(�t�)�{�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�"�j�q�u�e�r�y�"�]�,�t�)�:�t�(�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�?�r�e�q�u�i�r�e�(�"�j�q�u�e�r�y�"�)�:�w�i�n�d�o�w�.�j�Q�u�e�r�y�|�|�w�i�n�d�o�w�.�Z�e�p�t�o�)�}�(�f�u�n�c�t�i�o�n�(�c�)�{�f�u�n�c�t�i�o�n� �t�(�)�{�}�f�u�n�c�t�i�o�n� �d�(�t�,�e�)�{�f�.�e�v�.�o�n�(�"�m�f�p�"�+�t�+�i�,�e�)�}�f�u�n�c�t�i�o�n� �u�(�t�,�e�,�i�,�n�)�{�v�a�r� �o�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�;�r�e�t�u�r�n� �o�.�c�l�a�s�s�N�a�m�e�=�"�m�f�p�-�"�+�t�,�i�&�&�(�o�.�i�n�n�e�r�H�T�M�L�=�i�)�,�n�?�e�&�&�e�.�a�p�p�e�n�d�C�h�i�l�d�(�o�)�:�(�o�=�c�(�o�)�,�e�&�&�o�.�a�p�p�e�n�d�T�o�(�e�)�)�,�o�}�f�u�n�c�t�i�o�n� �h�(�t�,�e�)�{�f�.�e�v�.�t�r�i�g�g�e�r�H�a�n�d�l�e�r�(�"�m�f�p�"�+�t�,�e�)�,�f�.�s�t�.�c�a�l�l�b�a�c�k�s�&�&�(�t�=�t�.�c�h�a�r�A�t�(�0�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�+�t�.�s�l�i�c�e�(�1�)�,�f�.�s�t�.�c�a�l�l�b�a�c�k�s�[�t�]�&�&�f�.�s�t�.�c�a�l�l�b�a�c�k�s�[�t�]�.�a�p�p�l�y�(�f�,�c�.�i�s�A�r�r�a�y�(�e�)�?�e�:�[�e�]�)�)�}�f�u�n�c�t�i�o�n� �p�(�t�)�{�r�e�t�u�r�n� �t�=�=�=�e�&�&�f�.�c�u�r�r�T�e�m�p�l�a�t�e�.�c�l�o�s�e�B�t�n�|�|�(�f�.�c�u�r�r�T�e�m�p�l�a�t�e�.�c�l�o�s�e�B�t�n�=�c�(�f�.�s�t�.�c�l�o�s�e�M�a�r�k�u�p�.�r�e�p�l�a�c�e�(�"�%�t�i�t�l�e�%�"�,�f�.�s�t�.�t�C�l�o�s�e�)�)�,�e�=�t�)�,�f�.�c�u�r�r�T�e�m�p�l�a�t�e�.�c�l�o�s�e�B�t�n�}�f�u�n�c�t�i�o�n� �s�(�)�{�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�i�n�s�t�a�n�c�e�|�|�(�(�f�=�n�e�w� �t�)�.�i�n�i�t�(�)�,�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�i�n�s�t�a�n�c�e�=�f�)�}�v�a�r� �f�,�n�,�m�,�o�,�g�,�e�,�a�=�"�C�l�o�s�e�"�,�l�=�"�B�e�f�o�r�e�C�l�o�s�e�"�,�v�=�"�M�a�r�k�u�p�P�a�r�s�e�"�,�i�=�"�.�m�f�p�"�,�y�=�"�m�f�p�-�r�e�a�d�y�"�,�r�=�"�m�f�p�-�r�e�m�o�v�i�n�g�"�,�w�=�"�m�f�p�-�p�r�e�v�e�n�t�-�c�l�o�s�e�"�,�b�=�!�!�w�i�n�d�o�w�.�j�Q�u�e�r�y�,�_�=�c�(�w�i�n�d�o�w�)�;�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�=�{�i�n�s�t�a�n�c�e�:�n�u�l�l�,�p�r�o�t�o�:�t�.�p�r�o�t�o�t�y�p�e�=�{�c�o�n�s�t�r�u�c�t�o�r�:�t�,�i�n�i�t�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�n�a�v�i�g�a�t�o�r�.�a�p�p�V�e�r�s�i�o�n�;�f�.�i�s�L�o�w�I�E�=�f�.�i�s�I�E�8�=�d�o�c�u�m�e�n�t�.�a�l�l�&�&�!�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�,�f�.�i�s�A�n�d�r�o�i�d�=�/�a�n�d�r�o�i�d�/�g�i�.�t�e�s�t�(�t
1�)�,�f�.�i�s�I�O�S�=�/�i�p�h�o�n�e�|�i�p�a�d�|�i�p�o�d�/�g�i�.�t�e�s�t�(�t�)�,�f�.�s�u�p�p�o�r�t�s�T�r�a�n�s�i�t�i�o�n�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�p�"�)�.�s�t�y�l�e�,�e�=�[�"�m�s�"�,�"�O�"�,�"�M�o�z�"�,�"�W�e�b�k�i�t�"�]�;�i�f�(�v�o�i�d� �0�!�=�=�t�.�t�r�a�n�s�i�t�i�o�n�)�r�e�t�u�r�n�!�0�;�f�o�r�(�;�e�.�l�e�n�g�t�h�;�)�i�f�(�e�.�p�o�p�(�)�+�"�T�r�a�n�s�i�t�i�o�n�"�i�n� �t�)�r�e�t�u�r�n�!�0�;�r�e�t�u�r�n�!�1�}�(�)�,�f�.�p�r�o�b�a�b�l�y�M�o�b�i�l�e�=�f�.�i�s�A�n�d�r�o�i�d�|�|�f�.�i�s�I�O�S�|�|�/�(�O�p�e�r�a� �M�i�n�i�)�|�K�i�n�d�l�e�|�w�e�b�O�S�|�B�l�a�c�k�B�e�r�r�y�|�(�O�p�e�r�a� �M�o�b�i�)�|�(�W�i�n�d�o�w�s� �P�h�o�n�e�)�|�I�E�M�o�b�i�l�e�/�i�.�t�e�s�t�(�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�)�,�m�=�c�(�d�o�c�u�m�e�n�t�)�,�f�.�p�o�p�u�p�s�C�a�c�h�e�=�{�}�}�,�o�p�e�n�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�1�=�=�=�t�.�i�s�O�b�j�)�{�f�.�i�t�e�m�s�=�t�.�i�t�e�m�s�.�t�o�A�r�r�a�y�(�)�,�f�.�i�n�d�e�x�=�0�;�f�o�r�(�v�a�r� �e�,�i�=�t�.�i�t�e�m�s�,�n�=�0�;�n�<�i�.�l�e�n�g�t�h�;�n�+�+�)�i�f�(�(�e�=�(�e�=�i�[�n�]�)�.�p�a�r�s�e�d�?�e�.�e�l�[�0�]�:�e�)�=�=�=�t�.�e�l�[�0�]�)�{�f�.�i�n�d�e�x�=�n�;�b�r�e�a�k�}�}�e�l�s�e� �f�.�i�t�e�m�s�=�c�.�i�s�A�r�r�a�y�(�t�.�i�t�e�m�s�)�?�t�.�i�t�e�m�s�:�[�t�.�i�t�e�m�s�]�,�f�.�i�n�d�e�x�=�t�.�i�n�d�e�x�|�|�0�;�i�f�(�!�f�.�i�s�O�p�e�n�)�{�f�.�t�y�p�e�s�=�[�]�,�g�=�"�"�,�t�.�m�a�i�n�E�l�&�&�t�.�m�a�i�n�E�l�.�l�e�n�g�t�h�?�f�.�e�v�=�t�.�m�a�i�n�E�l�.�e�q�(�0�)�:�f�.�e�v�=�m�,�t�.�k�e�y�?�(�f�.�p�o�p�u�p�s�C�a�c�h�e�[�t�.�k�e�y�]�|�|�(�f�.�p�o�p�u�p�s�C�a�c�h�e�[�t�.�k�e�y�]�=�{�}�)�,�f�.�c�u�r�r�T�e�m�p�l�a�t�e�=�f�.�p�o�p�u�p�s�C�a�c�h�e�[�t�.�k�e�y�]�)�:�f�.�c�u�r�r�T�e�m�p�l�a�t�e�=�{�}�,�f�.�s�t�=�c�.�e�x�t�e�n�d�(�!�0�,�{�}�,�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�d�e�f�a�u�l�t�s�,�t�)�,�f�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�=�"�a�u�t�o�"�=�=�=�f�.�s�t�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�?�!�f�.�p�r�o�b�a�b�l�y�M�o�b�i�l�e�:�f�.�s�t�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�,�f�.�s�t�.�m�o�d�a�l�&�&�(�f�.�s�t�.�c�l�o�s�e�O�n�C�o�n�t�e�n�t�C�l�i�c�k�=�!�1�,�f�.�s�t�.�c�l�o�s�e�O�n�B�g�C�l�i�c�k�=�!�1�,�f�.�s�t�.�s�h�o�w�C�l�o�s�e�B�t�n�=�!�1�,�f�.�s�t�.�e�n�a�b�l�e�E�s�c�a�p�e�K�e�y�=�!�1�)�,�f�.�b�g�O�v�e�r�l�a�y�|�|�(�f�.�b�g�O�v�e�r�l�a�y�=�u�(�"�b�g�"�)�.�o�n�(�"�c�l�i�c�k�.�m�f�p�"�,�f�u�n�c�t�i�o�n�(�)�{�f�.�c�l�o�s�e�(�)�}�)�,�f�.�w�r�a�p�=�u�(�"�w�r�a�p�"�)�.�a�t�t�r�(�"�t�a�b�i�n�d�e�x�"�,�-�1�)�.�o�n�(�"�c�l�i�c�k�.�m�f�p�"�,�f�u�n�c�t�i�o�n�(�t�)�{�f�.�_�c�h�e�c�k�I�f�C�l�o�s�e�(�t�.�t�a�r�g�e�t�)�&�&�f�.�c�l�o�s�e�(�)�}�)�,�f�.�c�o�n�t�a�i�n�e�r�=�u�(�"�c�o�n�t�a�i�n�e�r�"�,�f�.�w�r�a�p�)�)�,�f�.�c�o�n�t�e�n�t�C�o�n�t�a�i�n�e�r�=�u�(�"�c�o�n�t�e�n�t�"�)�,�f�.�s�t�.�p�r�e�l�o�a�d�e�r�&�&�(�f�.�p�r�e�l�o�a�d�e�r�=�u�(�"�p�r�e�l�o�a�d�e�r�"�,�f�.�c�o�n�t�a�i�n�e�r�,�f�.�s�t�.�t�L�o�a�d�i�n�g�)�)�;�v�a�r� �o�=�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�m�o�d�u�l�e�s�;�f�o�r�(�n�=�0�;�n�<�o�.�l�e�n�g�t�h�;�n�+�+�)�{�v�a�r� �s�=�(�s�=�o�[�n�]�)�.�c�h�a�r�A�t�(�0�)�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�s�.�s�l�i�c�e�(�1�)�;�f�[�"�i�n�i�t�"�+�s�]�.�c�a�l�l�(�f�)�}�h�(�"�B�e�f�o�r�e�O�p�e�n�"�)�,�f�.�s�t�.�s�h�o�w�C�l�o�s�e�B�t�n�&�&�(�f�.�s�t�.�c�l�o�s�e�B�t�n�I�n�s�i�d�e�?�(�d�(�v�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�i�.�c�l�o�s�e�_�r�e�p�l�a�c�e�W�i�t�h�=�p�(�n�.�t�y�p�e�)�}�)�,�g�+�=�"� �m�f�p�-�c�l�o�s�e�-�b�t�n�-�i�n�"�)�:�f�.�w�r�a�p�.�a�p�p�e�n�d�(�p�(�)�)�)�,�f�.�s�t�.�a�l�i�g�n�T�o�p�&�&�(�g�+�=�"� �m�f�p�-�a�l�i�g�n�-�t�o�p�"�)�,�f�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�?�f�.�w�r�a�p�.�c�s�s�(�{�o�v�e�r�f�l�o�w�:�f�.�s�t�.�o�v�e�r�f�l�o�w�Y�,�o�v�e�r�f�l�o�w�X�:�"�h�i�d�d�e�n�"�,�o�v�e�r�f�l�o�w�Y�:�f�.�s�t�.�o�v�e�r�f�l�o�w�Y�}�)�:�f�.�w�r�a�p�.�c�s�s�(�{�t�o�p�:�_�.�s�c�r�o�l�l�T�o�p�(�)�,�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�}�)�,�!�1�!�=�=�f�.�s�t�.�f�i�x�e�d�B�g�P�o�s�&�&�(�"�a�u�t�o�"�!�=�=�f�.�s�t�.�f�i�x�e�d�B�g�P�o�s�|�|�f�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�)�|�|�f�.�b�g�O�v�e�r�l�a�y�.�c�s�s�(�{�h�e�i�g�h�t�:�m�.�h�e�i�g�h�t�(�)�,�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�}�)�,�f�.�s�t�.�e�n�a�b�l�e�E�s�c�a�p�e�K�e�y�&�&�m�.�o�n�(�"�k�e�y�u�p�.�m�f�p�"�,�f�u�n�c�t�i�o�n�(�t�)�{�2�7�=�=�=�t�.�k�e�y�C�o�d�e�&�&�f�.�c�l�o�s�e�(�)�}�)�,�_�.�o�n�(�"�r�e�s�i�z�e�.�m�f�p�"�,�f�u�n�c�t�i�o�n�(�)�{�f�.
1�u�p�d�a�t�e�S�i�z�e�(�)�}�)�,�f�.�s�t�.�c�l�o�s�e�O�n�C�o�n�t�e�n�t�C�l�i�c�k�|�|�(�g�+�=�"� �m�f�p�-�a�u�t�o�-�c�u�r�s�o�r�"�)�,�g�&�&�f�.�w�r�a�p�.�a�d�d�C�l�a�s�s�(�g�)�;�v�a�r� �r�=�f�.�w�H�=�_�.�h�e�i�g�h�t�(�)�,�a�=�{�}�,�l�=�(�f�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�&�&�f�.�_�h�a�s�S�c�r�o�l�l�B�a�r�(�r�)�&�&�(�(�l�=�f�.�_�g�e�t�S�c�r�o�l�l�b�a�r�S�i�z�e�(�)�)�&�&�(�a�.�m�a�r�g�i�n�R�i�g�h�t�=�l�)�)�,�f�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�&�&�(�f�.�i�s�I�E�7�?�c�(�"�b�o�d�y�,� �h�t�m�l�"�)�.�c�s�s�(�"�o�v�e�r�f�l�o�w�"�,�"�h�i�d�d�e�n�"�)�:�a�.�o�v�e�r�f�l�o�w�=�"�h�i�d�d�e�n�"�)�,�f�.�s�t�.�m�a�i�n�C�l�a�s�s�)�;�r�e�t�u�r�n� �f�.�i�s�I�E�7�&�&�(�l�+�=�"� �m�f�p�-�i�e�7�"�)�,�l�&�&�f�.�_�a�d�d�C�l�a�s�s�T�o�M�F�P�(�l�)�,�f�.�u�p�d�a�t�e�I�t�e�m�H�T�M�L�(�)�,�h�(�"�B�u�i�l�d�C�o�n�t�r�o�l�s�"�)�,�c�(�"�h�t�m�l�"�)�.�c�s�s�(�a�)�,�f�.�b�g�O�v�e�r�l�a�y�.�a�d�d�(�f�.�w�r�a�p�)�.�p�r�e�p�e�n�d�T�o�(�f�.�s�t�.�p�r�e�p�e�n�d�T�o�|�|�c�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�)�,�f�.�_�l�a�s�t�F�o�c�u�s�e�d�E�l�=�d�o�c�u�m�e�n�t�.�a�c�t�i�v�e�E�l�e�m�e�n�t�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�f�.�c�o�n�t�e�n�t�?�(�f�.�_�a�d�d�C�l�a�s�s�T�o�M�F�P�(�y�)�,�f�.�_�s�e�t�F�o�c�u�s�(�)�)�:�f�.�b�g�O�v�e�r�l�a�y�.�a�d�d�C�l�a�s�s�(�y�)�,�m�.�o�n�(�"�f�o�c�u�s�i�n�.�m�f�p�"�,�f�.�_�o�n�F�o�c�u�s�I�n�)�}�,�1�6�)�,�f�.�i�s�O�p�e�n�=�!�0�,�f�.�u�p�d�a�t�e�S�i�z�e�(�r�)�,�h�(�"�O�p�e�n�"�)�,�t�}�f�.�u�p�d�a�t�e�I�t�e�m�H�T�M�L�(�)�}�,�c�l�o�s�e�:�f�u�n�c�t�i�o�n�(�)�{�f�.�i�s�O�p�e�n�&�&�(�h�(�l�)�,�f�.�i�s�O�p�e�n�=�!�1�,�f�.�s�t�.�r�e�m�o�v�a�l�D�e�l�a�y�&�&�!�f�.�i�s�L�o�w�I�E�&�&�f�.�s�u�p�p�o�r�t�s�T�r�a�n�s�i�t�i�o�n�?�(�f�.�_�a�d�d�C�l�a�s�s�T�o�M�F�P�(�r�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�f�.�_�c�l�o�s�e�(�)�}�,�f�.�s�t�.�r�e�m�o�v�a�l�D�e�l�a�y�)�)�:�f�.�_�c�l�o�s�e�(�)�)�}�,�_�c�l�o�s�e�:�f�u�n�c�t�i�o�n�(�)�{�h�(�a�)�;�v�a�r� �t�=�r�+�"� �"�+�y�+�"� �"�;�f�.�b�g�O�v�e�r�l�a�y�.�d�e�t�a�c�h�(�)�,�f�.�w�r�a�p�.�d�e�t�a�c�h�(�)�,�f�.�c�o�n�t�a�i�n�e�r�.�e�m�p�t�y�(�)�,�f�.�s�t�.�m�a�i�n�C�l�a�s�s�&�&�(�t�+�=�f�.�s�t�.�m�a�i�n�C�l�a�s�s�+�"� �"�)�,�f�.�_�r�e�m�o�v�e�C�l�a�s�s�F�r�o�m�M�F�P�(�t�)�,�f�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�&�&�(�t�=�{�m�a�r�g�i�n�R�i�g�h�t�:�"�"�}�,�f�.�i�s�I�E�7�?�c�(�"�b�o�d�y�,� �h�t�m�l�"�)�.�c�s�s�(�"�o�v�e�r�f�l�o�w�"�,�"�"�)�:�t�.�o�v�e�r�f�l�o�w�=�"�"�,�c�(�"�h�t�m�l�"�)�.�c�s�s�(�t�)�)�,�m�.�o�f�f�(�"�k�e�y�u�p�.�m�f�p� �f�o�c�u�s�i�n�.�m�f�p�"�)�,�f�.�e�v�.�o�f�f�(�i�)�,�f�.�w�r�a�p�.�a�t�t�r�(�"�c�l�a�s�s�"�,�"�m�f�p�-�w�r�a�p�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�s�t�y�l�e�"�)�,�f�.�b�g�O�v�e�r�l�a�y�.�a�t�t�r�(�"�c�l�a�s�s�"�,�"�m�f�p�-�b�g�"�)�,�f�.�c�o�n�t�a�i�n�e�r�.�a�t�t�r�(�"�c�l�a�s�s�"�,�"�m�f�p�-�c�o�n�t�a�i�n�e�r�"�)�,�!�f�.�s�t�.�s�h�o�w�C�l�o�s�e�B�t�n�|�|�f�.�s�t�.�c�l�o�s�e�B�t�n�I�n�s�i�d�e�&�&�!�0�!�=�=�f�.�c�u�r�r�T�e�m�p�l�a�t�e�[�f�.�c�u�r�r�I�t�e�m�.�t�y�p�e�]�|�|�f�.�c�u�r�r�T�e�m�p�l�a�t�e�.�c�l�o�s�e�B�t�n�&�&�f�.�c�u�r�r�T�e�m�p�l�a�t�e�.�c�l�o�s�e�B�t�n�.�d�e�t�a�c�h�(�)�,�f�.�s�t�.�a�u�t�o�F�o�c�u�s�L�a�s�t�&�&�f�.�_�l�a�s�t�F�o�c�u�s�e�d�E�l�&�&�c�(�f�.�_�l�a�s�t�F�o�c�u�s�e�d�E�l�)�.�f�o�c�u�s�(�)�,�f�.�c�u�r�r�I�t�e�m�=�n�u�l�l�,�f�.�c�o�n�t�e�n�t�=�n�u�l�l�,�f�.�c�u�r�r�T�e�m�p�l�a�t�e�=�n�u�l�l�,�f�.�p�r�e�v�H�e�i�g�h�t�=�0�,�h�(�"�A�f�t�e�r�C�l�o�s�e�"�)�}�,�u�p�d�a�t�e�S�i�z�e�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�f�.�i�s�I�O�S�?�(�e�=�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�c�l�i�e�n�t�W�i�d�t�h�/�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�,�e�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�*�e�,�f�.�w�r�a�p�.�c�s�s�(�"�h�e�i�g�h�t�"�,�e�)�,�f�.�w�H�=�e�)�:�f�.�w�H�=�t�|�|�_�.�h�e�i�g�h�t�(�)�,�f�.�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�|�|�f�.�w�r�a�p�.�c�s�s�(�"�h�e�i�g�h�t�"�,�f�.�w�H�)�,�h�(�"�R�e�s�i�z�e�"�)�}�,�u�p�d�a�t�e�I�t�e�m�H�T�M�L�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�f�.�i�t�e�m�s�[�f�.�i�n�d�e�x�]�,�e�=�(�f�.�c�o�n�t�e�n�t�C�o�n�t�a�i�n�e�r�.�d�e�t�a�c�h�(�)�,�f�.�c�o�n�t�e�n�t�&�&�f�.�c�o�n�t�e�n�t�.�d�e�t�a�c�h�(�)�,�(�t�=�t�.�p�a�r�s�e�d�?�t�:�f�.�p�a�r�s�e�E�l�(�f�.�i�n�d�e�x�)�)�.�t�y�p�e�)�,�i�=�(�h�(�"�B�e�f�o�r�e�C�h�a�n�g�e�"�,�[�f�.�c�u�r�r�I�t�e�m�?�f�.�c�u�r�r�I�t�e�m�.�t�y�p�e�:�"�"�,�e�]�)�,�f�.�c�u�r�r�I�t�e�m�=�t�,�f�.�c�u�r�r�T�e�m�p�l�a�t�e�[�e�]�|�|�(�i�=�!�!�f�.�s�t�[�e�]�&�&�f�.�s�t�[�e�]�.�m�a�r�k�u�p�,�h�(�"�F�i�r�s�t�M�a�r�k�u�p�P�a�r�s�e�"�,�i�)�,�f�.�c�u�r�r�T�e�m�p�l�a�t�e�[�e�]�=�!�i�|�|�c�(�i�)�)�,�o�&�&�o�!�=�=�t�.�t�y�p�e�&�&�f�.�c�o�n�t�a�i�n�e�r�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�f�p�-�"�+�o�+�"�-�h�o�l�d�e�r�"�
1)�,�f�[�"�g�e�t�"�+�e�.�c�h�a�r�A�t�(�0�)�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�e�.�s�l�i�c�e�(�1�)�]�(�t�,�f�.�c�u�r�r�T�e�m�p�l�a�t�e�[�e�]�)�)�;�f�.�a�p�p�e�n�d�C�o�n�t�e�n�t�(�i�,�e�)�,�t�.�p�r�e�l�o�a�d�e�d�=�!�0�,�h�(�"�C�h�a�n�g�e�"�,�t�)�,�o�=�t�.�t�y�p�e�,�f�.�c�o�n�t�a�i�n�e�r�.�p�r�e�p�e�n�d�(�f�.�c�o�n�t�e�n�t�C�o�n�t�a�i�n�e�r�)�,�h�(�"�A�f�t�e�r�C�h�a�n�g�e�"�)�}�,�a�p�p�e�n�d�C�o�n�t�e�n�t�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�(�f�.�c�o�n�t�e�n�t�=�t�)�?�f�.�s�t�.�s�h�o�w�C�l�o�s�e�B�t�n�&�&�f�.�s�t�.�c�l�o�s�e�B�t�n�I�n�s�i�d�e�&�&�!�0�=�=�=�f�.�c�u�r�r�T�e�m�p�l�a�t�e�[�e�]�?�f�.�c�o�n�t�e�n�t�.�f�i�n�d�(�"�.�m�f�p�-�c�l�o�s�e�"�)�.�l�e�n�g�t�h�|�|�f�.�c�o�n�t�e�n�t�.�a�p�p�e�n�d�(�p�(�)�)�:�f�.�c�o�n�t�e�n�t�=�t�:�f�.�c�o�n�t�e�n�t�=�"�"�,�h�(�"�B�e�f�o�r�e�A�p�p�e�n�d�"�)�,�f�.�c�o�n�t�a�i�n�e�r�.�a�d�d�C�l�a�s�s�(�"�m�f�p�-�"�+�e�+�"�-�h�o�l�d�e�r�"�)�,�f�.�c�o�n�t�e�n�t�C�o�n�t�a�i�n�e�r�.�a�p�p�e�n�d�(�f�.�c�o�n�t�e�n�t�)�}�,�p�a�r�s�e�E�l�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�f�.�i�t�e�m�s�[�t�]�;�i�f�(�(�i�=�i�.�t�a�g�N�a�m�e�?�{�e�l�:�c�(�i�)�}�:�(�e�=�i�.�t�y�p�e�,�{�d�a�t�a�:�i�,�s�r�c�:�i�.�s�r�c�}�)�)�.�e�l�)�{�f�o�r�(�v�a�r� �n�=�f�.�t�y�p�e�s�,�o�=�0�;�o�<�n�.�l�e�n�g�t�h�;�o�+�+�)�i�f�(�i�.�e�l�.�h�a�s�C�l�a�s�s�(�"�m�f�p�-�"�+�n�[�o�]�)�)�{�e�=�n�[�o�]�;�b�r�e�a�k�}�i�.�s�r�c�=�i�.�e�l�.�a�t�t�r�(�"�d�a�t�a�-�m�f�p�-�s�r�c�"�)�,�i�.�s�r�c�|�|�(�i�.�s�r�c�=�i�.�e�l�.�a�t�t�r�(�"�h�r�e�f�"�)�)�}�r�e�t�u�r�n� �i�.�t�y�p�e�=�e�|�|�f�.�s�t�.�t�y�p�e�|�|�"�i�n�l�i�n�e�"�,�i�.�i�n�d�e�x�=�t�,�i�.�p�a�r�s�e�d�=�!�0�,�f�.�i�t�e�m�s�[�t�]�=�i�,�h�(�"�E�l�e�m�e�n�t�P�a�r�s�e�"�,�i�)�,�f�.�i�t�e�m�s�[�t�]�}�,�a�d�d�G�r�o�u�p�:�f�u�n�c�t�i�o�n�(�e�,�i�)�{�f�u�n�c�t�i�o�n� �t�(�t�)�{�t�.�m�f�p�E�l�=�t�h�i�s�,�f�.�_�o�p�e�n�C�l�i�c�k�(�t�,�e�,�i�)�}�v�a�r� �n�=�"�c�l�i�c�k�.�m�a�g�n�i�f�i�c�P�o�p�u�p�"�;�(�i�=�i�|�|�{�}�)�.�m�a�i�n�E�l�=�e�,�i�.�i�t�e�m�s�?�(�i�.�i�s�O�b�j�=�!�0�,�e�.�o�f�f�(�n�)�.�o�n�(�n�,�t�)�)�:�(�i�.�i�s�O�b�j�=�!�1�,�i�.�d�e�l�e�g�a�t�e�?�e�.�o�f�f�(�n�)�.�o�n�(�n�,�i�.�d�e�l�e�g�a�t�e�,�t�)�:�(�i�.�i�t�e�m�s�=�e�)�.�o�f�f�(�n�)�.�o�n�(�n�,�t�)�)�}�,�_�o�p�e�n�C�l�i�c�k�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�i�f�(�(�v�o�i�d� �0�!�=�=�i�.�m�i�d�C�l�i�c�k�?�i�:�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�d�e�f�a�u�l�t�s�)�.�m�i�d�C�l�i�c�k�|�|�!�(�2�=�=�=�t�.�w�h�i�c�h�|�|�t�.�c�t�r�l�K�e�y�|�|�t�.�m�e�t�a�K�e�y�|�|�t�.�a�l�t�K�e�y�|�|�t�.�s�h�i�f�t�K�e�y�)�)�{�v�a�r� �n�=�(�v�o�i�d� �0�!�=�=�i�.�d�i�s�a�b�l�e�O�n�?�i�:�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�d�e�f�a�u�l�t�s�)�.�d�i�s�a�b�l�e�O�n�;�i�f�(�n�)�i�f�(�c�.�i�s�F�u�n�c�t�i�o�n�(�n�)�)�{�i�f�(�!�n�.�c�a�l�l�(�f�)�)�r�e�t�u�r�n�!�0�}�e�l�s�e� �i�f�(�_�.�w�i�d�t�h�(�)�<�n�)�r�e�t�u�r�n�!�0�;�t�.�t�y�p�e�&�&�(�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�f�.�i�s�O�p�e�n�&�&�t�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�)�,�i�.�e�l�=�c�(�t�.�m�f�p�E�l�)�,�i�.�d�e�l�e�g�a�t�e�&�&�(�i�.�i�t�e�m�s�=�e�.�f�i�n�d�(�i�.�d�e�l�e�g�a�t�e�)�)�,�f�.�o�p�e�n�(�i�)�}�}�,�u�p�d�a�t�e�S�t�a�t�u�s�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�;�f�.�p�r�e�l�o�a�d�e�r�&�&�(�n�!�=�=�t�&�&�f�.�c�o�n�t�a�i�n�e�r�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�f�p�-�s�-�"�+�n�)�,�i�=�{�s�t�a�t�u�s�:�t�,�t�e�x�t�:�e�=�e�|�|�"�l�o�a�d�i�n�g�"�!�=�=�t�?�e�:�f�.�s�t�.�t�L�o�a�d�i�n�g�}�,�h�(�"�U�p�d�a�t�e�S�t�a�t�u�s�"�,�i�)�,�t�=�i�.�s�t�a�t�u�s�,�f�.�p�r�e�l�o�a�d�e�r�.�h�t�m�l�(�e�=�i�.�t�e�x�t�)�,�f�.�p�r�e�l�o�a�d�e�r�.�f�i�n�d�(�"�a�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�s�t�o�p�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�(�)�}�)�,�f�.�c�o�n�t�a�i�n�e�r�.�a�d�d�C�l�a�s�s�(�"�m�f�p�-�s�-�"�+�t�)�,�n�=�t�)�}�,�_�c�h�e�c�k�I�f�C�l�o�s�e�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�c�(�t�)�.�h�a�s�C�l�a�s�s�(�w�)�)�{�v�a�r� �e�=�f�.�s�t�.�c�l�o�s�e�O�n�C�o�n�t�e�n�t�C�l�i�c�k�,�i�=�f�.�s�t�.�c�l�o�s�e�O�n�B�g�C�l�i�c�k�;�i�f�(�e�&�&�i�)�r�e�t�u�r�n�!�0�;�i�f�(�!�f�.�c�o�n�t�e�n�t�|�|�c�(�t�)�.�h�a�s�C�l�a�s�s�(�"�m�f�p�-�c�l�o�s�e�"�)�|�|�f�.�p�r�e�l�o�a�d�e�r�&�&�t�=�=�=�f�.�p�r�e�l�o�a�d�e�r�[�0�]�)�r�e�t�u�r�n�!�0�;�i�f�(�t�=�=�=�f�.�c�o�n�t�e�n�t�[�0�]�|�|�c�.�c�o�n�t�a�i�n�s�(�f�.�c�o�n�t�e�n�t�[�0�]�,�t�)�)�{�i�f�(�e�)�r�e�t�u�r�n�!�0�}�e�l�s�e� �i�f�(�i�&�&�c�.�c�o�n�t�a�i�n�s�(�d�o�c�u�m�e�n�t�,�t�)�)�r�e�t�u�r�n�!�0�;�r�e�t�u�r�n�!�1�}�}�,�_�a�d�d�C�l�a�s�s�T�o�M�F�P�:�f�u�n�c�t�i�o�n�(�t�)�{�f�.�b�g�O�v�e�r�l�a�y�.�a�d�d�C�l�a�s�s�(�t�)�,�f�.�w�r�a�p�.�a�d�d�C�l�a�s�s�(�t�)�}
1�,�_�r�e�m�o�v�e�C�l�a�s�s�F�r�o�m�M�F�P�:�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�b�g�O�v�e�r�l�a�y�.�r�e�m�o�v�e�C�l�a�s�s�(�t�)�,�f�.�w�r�a�p�.�r�e�m�o�v�e�C�l�a�s�s�(�t�)�}�,�_�h�a�s�S�c�r�o�l�l�B�a�r�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�(�f�.�i�s�I�E�7�?�m�.�h�e�i�g�h�t�(�)�:�d�o�c�u�m�e�n�t�.�b�o�d�y�.�s�c�r�o�l�l�H�e�i�g�h�t�)�>�(�t�|�|�_�.�h�e�i�g�h�t�(�)�)�}�,�_�s�e�t�F�o�c�u�s�:�f�u�n�c�t�i�o�n�(�)�{�(�f�.�s�t�.�f�o�c�u�s�?�f�.�c�o�n�t�e�n�t�.�f�i�n�d�(�f�.�s�t�.�f�o�c�u�s�)�.�e�q�(�0�)�:�f�.�w�r�a�p�)�.�f�o�c�u�s�(�)�}�,�_�o�n�F�o�c�u�s�I�n�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�t�a�r�g�e�t�=�=�=�f�.�w�r�a�p�[�0�]�|�|�c�.�c�o�n�t�a�i�n�s�(�f�.�w�r�a�p�[�0�]�,�t�.�t�a�r�g�e�t�)�?�v�o�i�d� �0�:�(�f�.�_�s�e�t�F�o�c�u�s�(�)�,�!�1�)�}�,�_�p�a�r�s�e�M�a�r�k�u�p�:�f�u�n�c�t�i�o�n�(�o�,�t�,�e�)�{�v�a�r� �s�;�e�.�d�a�t�a�&�&�(�t�=�c�.�e�x�t�e�n�d�(�e�.�d�a�t�a�,�t�)�)�,�h�(�v�,�[�o�,�t�,�e�]�)�,�c�.�e�a�c�h�(�t�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�i�f�(�v�o�i�d� �0�=�=�=�e�|�|�!�1�=�=�=�e�)�r�e�t�u�r�n�!�0�;�v�a�r� �i�,�n�;�1�<�(�s�=�t�.�s�p�l�i�t�(�"�_�"�)�)�.�l�e�n�g�t�h�?�0�<�(�i�=�o�.�f�i�n�d�(�"�.�m�f�p�-�"�+�s�[�0�]�)�)�.�l�e�n�g�t�h�&�&�(�"�r�e�p�l�a�c�e�W�i�t�h�"�=�=�=�(�n�=�s�[�1�]�)�?�i�[�0�]�!�=�=�e�[�0�]�&�&�i�.�r�e�p�l�a�c�e�W�i�t�h�(�e�)�:�"�i�m�g�"�=�=�=�n�?�i�.�i�s�(�"�i�m�g�"�)�?�i�.�a�t�t�r�(�"�s�r�c�"�,�e�)�:�i�.�r�e�p�l�a�c�e�W�i�t�h�(�c�(�"�<�i�m�g�>�"�)�.�a�t�t�r�(�"�s�r�c�"�,�e�)�.�a�t�t�r�(�"�c�l�a�s�s�"�,�i�.�a�t�t�r�(�"�c�l�a�s�s�"�)�)�)�:�i�.�a�t�t�r�(�s�[�1�]�,�e�)�)�:�o�.�f�i�n�d�(�"�.�m�f�p�-�"�+�t�)�.�h�t�m�l�(�e�)�}�)�}�,�_�g�e�t�S�c�r�o�l�l�b�a�r�S�i�z�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�r�e�t�u�r�n� �v�o�i�d� �0�=�=�=�f�.�s�c�r�o�l�l�b�a�r�S�i�z�e�&�&�(�(�t�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�)�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�"�w�i�d�t�h�:� �9�9�p�x�;� �h�e�i�g�h�t�:� �9�9�p�x�;� �o�v�e�r�f�l�o�w�:� �s�c�r�o�l�l�;� �p�o�s�i�t�i�o�n�:� �a�b�s�o�l�u�t�e�;� �t�o�p�:� �-�9�9�9�9�p�x�;�"�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�,�f�.�s�c�r�o�l�l�b�a�r�S�i�z�e�=�t�.�o�f�f�s�e�t�W�i�d�t�h�-�t�.�c�l�i�e�n�t�W�i�d�t�h�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�r�e�m�o�v�e�C�h�i�l�d�(�t�)�)�,�f�.�s�c�r�o�l�l�b�a�r�S�i�z�e�}�}�,�m�o�d�u�l�e�s�:�[�]�,�o�p�e�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�r�e�t�u�r�n� �s�(�)�,�(�t�=�t�?�c�.�e�x�t�e�n�d�(�!�0�,�{�}�,�t�)�:�{�}�)�.�i�s�O�b�j�=�!�0�,�t�.�i�n�d�e�x�=�e�|�|�0�,�t�h�i�s�.�i�n�s�t�a�n�c�e�.�o�p�e�n�(�t�)�}�,�c�l�o�s�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�i�n�s�t�a�n�c�e�&�&�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�i�n�s�t�a�n�c�e�.�c�l�o�s�e�(�)�}�,�r�e�g�i�s�t�e�r�M�o�d�u�l�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�.�o�p�t�i�o�n�s�&�&�(�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�d�e�f�a�u�l�t�s�[�t�]�=�e�.�o�p�t�i�o�n�s�)�,�c�.�e�x�t�e�n�d�(�t�h�i�s�.�p�r�o�t�o�,�e�.�p�r�o�t�o�)�,�t�h�i�s�.�m�o�d�u�l�e�s�.�p�u�s�h�(�t�)�}�,�d�e�f�a�u�l�t�s�:�{�d�i�s�a�b�l�e�O�n�:�0�,�k�e�y�:�n�u�l�l�,�m�i�d�C�l�i�c�k�:�!�1�,�m�a�i�n�C�l�a�s�s�:�"�"�,�p�r�e�l�o�a�d�e�r�:�!�0�,�f�o�c�u�s�:�"�"�,�c�l�o�s�e�O�n�C�o�n�t�e�n�t�C�l�i�c�k�:�!�1�,�c�l�o�s�e�O�n�B�g�C�l�i�c�k�:�!�0�,�c�l�o�s�e�B�t�n�I�n�s�i�d�e�:�!�0�,�s�h�o�w�C�l�o�s�e�B�t�n�:�!�0�,�e�n�a�b�l�e�E�s�c�a�p�e�K�e�y�:�!�0�,�m�o�d�a�l�:�!�1�,�a�l�i�g�n�T�o�p�:�!�1�,�r�e�m�o�v�a�l�D�e�l�a�y�:�0�,�p�r�e�p�e�n�d�T�o�:�n�u�l�l�,�f�i�x�e�d�C�o�n�t�e�n�t�P�o�s�:�"�a�u�t�o�"�,�f�i�x�e�d�B�g�P�o�s�:�"�a�u�t�o�"�,�o�v�e�r�f�l�o�w�Y�:�"�a�u�t�o�"�,�c�l�o�s�e�M�a�r�k�u�p�:�'�<�b�u�t�t�o�n� �t�i�t�l�e�=�"�%�t�i�t�l�e�%�"� �t�y�p�e�=�"�b�u�t�t�o�n�"� �c�l�a�s�s�=�"�m�f�p�-�c�l�o�s�e�"�>�&�#�2�1�5�;�<�/�b�u�t�t�o�n�>�'�,�t�C�l�o�s�e�:�"�C�l�o�s�e� �(�E�s�c�)�"�,�t�L�o�a�d�i�n�g�:�"�L�o�a�d�i�n�g�.�.�.�"�,�a�u�t�o�F�o�c�u�s�L�a�s�t�:�!�0�}�}�,�c�.�f�n�.�m�a�g�n�i�f�i�c�P�o�p�u�p�=�f�u�n�c�t�i�o�n�(�t�)�{�s�(�)�;�v�a�r� �e�,�i�,�n�,�o�=�c�(�t�h�i�s�)�;�r�e�t�u�r�n�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�?�"�o�p�e�n�"�=�=�=�t�?�(�e�=�b�?�o�.�d�a�t�a�(�"�m�a�g�n�i�f�i�c�P�o�p�u�p�"�)�:�o�[�0�]�.�m�a�g�n�i�f�i�c�P�o�p�u�p�,�i�=�p�a�r�s�e�I�n�t�(�a�r�g�u�m�e�n�t�s�[�1�]�,�1�0�)�|�|�0�,�n�=�e�.�i�t�e�m�s�?�e�.�i�t�e�m�s�[�i�]�:�(�n�=�o�,�(�n�=�e�.�d�e�l�e�g�a�t�e�?�n�.�f�i�n�d�(�e�.�d�e�l�e�g�a�t�e�)�:�n�)�.�e�q�(�i�)�)�,�f�.�_�o�p�e�n�C�l�i�c�k�(�{�m�f�p�E�l�:�n�}�,�o�,�e�)�)�:�f�.�i�s�O�p�e�n�&�&�f�[�t�]�.�a�p�p�l�y�(�f�,�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�1�)�)�:�(�t�=�c�.�e�x�t�e�n�d�(�!�0�,�{�}�,�t�)�,�b�?�o�.�d�a�t�a�(�"�m�a�g�n�i�f�i�c�P�o�p�u�p�"�,�t�)�:�o�[�0�]�.�m�a�g�n�i�f�i�c�P�o�p�u�p�=�t�,�f�.�a�d�d�G�r�o�u�p�(�o�,�t�)�)�,�o�}�;�f�u�n�c�t�i�o�n� �T�(�)�{�C�&�&�(�x�.�a�f�t�e�r�(�C�.�a�d�d�C�l�a�s�s�(�S�)�)�.�d�e�t�a�c�h�(�)�,�C�=�n�u�l�l�)�}�v�a�r� �S�,�x�,�C�,�k�=�"�i�n�l�i�n�e�"�;�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�r�e�g�i�s�t�e�r�M�o�d�u�l�e�(�k�,�{�o�p�t�i�o�n�s�:�{�h�i�d�d�e�n�C�l�a�s�s�:�"�h�i�d�e�"�,�m�a�r�k�u�p�:�"�"�,�t�N�o�t�F�o�u�n�d�:�"�C�o�n�t�e�n�t� �n�o�t� �f�o�u�n�d�"�}�,�p�r�o�t�o�:�{�i�n�i�t�I�n�l�i�n�e�:�f�u�n�c�t�i�o�n�(�)�{�f�.
1�t�y�p�e�s�.�p�u�s�h�(�k�)�,�d�(�a�+�"�.�"�+�k�,�f�u�n�c�t�i�o�n�(�)�{�T�(�)�}�)�}�,�g�e�t�I�n�l�i�n�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�,�n�,�o�;�r�e�t�u�r�n� �T�(�)�,�t�.�s�r�c�?�(�i�=�f�.�s�t�.�i�n�l�i�n�e�,�(�n�=�c�(�t�.�s�r�c�)�)�.�l�e�n�g�t�h�?�(�(�o�=�n�[�0�]�.�p�a�r�e�n�t�N�o�d�e�)�&�&�o�.�t�a�g�N�a�m�e�&�&�(�x�|�|�(�S�=�i�.�h�i�d�d�e�n�C�l�a�s�s�,�x�=�u�(�S�)�,�S�=�"�m�f�p�-�"�+�S�)�,�C�=�n�.�a�f�t�e�r�(�x�)�.�d�e�t�a�c�h�(�)�.�r�e�m�o�v�e�C�l�a�s�s�(�S�)�)�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�r�e�a�d�y�"�)�)�:�(�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�e�r�r�o�r�"�,�i�.�t�N�o�t�F�o�u�n�d�)�,�n�=�c�(�"�<�d�i�v�>�"�)�)�,�t�.�i�n�l�i�n�e�E�l�e�m�e�n�t�=�n�)�:�(�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�r�e�a�d�y�"�)�,�f�.�_�p�a�r�s�e�M�a�r�k�u�p�(�e�,�{�}�,�t�)�,�e�)�}�}�}�)�;�f�u�n�c�t�i�o�n� �E�(�)�{�A�&�&�c�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�r�e�m�o�v�e�C�l�a�s�s�(�A�)�}�f�u�n�c�t�i�o�n� �P�(�)�{�E�(�)�,�f�.�r�e�q�&�&�f�.�r�e�q�.�a�b�o�r�t�(�)�}�v�a�r� �A�,�O�=�"�a�j�a�x�"�;�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�r�e�g�i�s�t�e�r�M�o�d�u�l�e�(�O�,�{�o�p�t�i�o�n�s�:�{�s�e�t�t�i�n�g�s�:�n�u�l�l�,�c�u�r�s�o�r�:�"�m�f�p�-�a�j�a�x�-�c�u�r�"�,�t�E�r�r�o�r�:�'�<�a� �h�r�e�f�=�"�%�u�r�l�%�"�>�T�h�e� �c�o�n�t�e�n�t�<�/�a�>� �c�o�u�l�d� �n�o�t� �b�e� �l�o�a�d�e�d�.�'�}�,�p�r�o�t�o�:�{�i�n�i�t�A�j�a�x�:�f�u�n�c�t�i�o�n�(�)�{�f�.�t�y�p�e�s�.�p�u�s�h�(�O�)�,�A�=�f�.�s�t�.�a�j�a�x�.�c�u�r�s�o�r�,�d�(�a�+�"�.�"�+�O�,�P�)�,�d�(�"�B�e�f�o�r�e�C�h�a�n�g�e�.�a�j�a�x�"�,�P�)�}�,�g�e�t�A�j�a�x�:�f�u�n�c�t�i�o�n�(�n�)�{�A�&�&�c�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�a�d�d�C�l�a�s�s�(�A�)�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�l�o�a�d�i�n�g�"�)�;�v�a�r� �t�=�c�.�e�x�t�e�n�d�(�{�u�r�l�:�n�.�s�r�c�,�s�u�c�c�e�s�s�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�t�=�{�d�a�t�a�:�t�,�x�h�r�:�i�}�;�h�(�"�P�a�r�s�e�A�j�a�x�"�,�t�)�,�f�.�a�p�p�e�n�d�C�o�n�t�e�n�t�(�c�(�t�.�d�a�t�a�)�,�O�)�,�n�.�f�i�n�i�s�h�e�d�=�!�0�,�E�(�)�,�f�.�_�s�e�t�F�o�c�u�s�(�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�f�.�w�r�a�p�.�a�d�d�C�l�a�s�s�(�y�)�}�,�1�6�)�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�r�e�a�d�y�"�)�,�h�(�"�A�j�a�x�C�o�n�t�e�n�t�A�d�d�e�d�"�)�}�,�e�r�r�o�r�:�f�u�n�c�t�i�o�n�(�)�{�E�(�)�,�n�.�f�i�n�i�s�h�e�d�=�n�.�l�o�a�d�E�r�r�o�r�=�!�0�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�e�r�r�o�r�"�,�f�.�s�t�.�a�j�a�x�.�t�E�r�r�o�r�.�r�e�p�l�a�c�e�(�"�%�u�r�l�%�"�,�n�.�s�r�c�)�)�}�}�,�f�.�s�t�.�a�j�a�x�.�s�e�t�t�i�n�g�s�)�;�r�e�t�u�r�n� �f�.�r�e�q�=�c�.�a�j�a�x�(�t�)�,�"�"�}�}�}�)�;�v�a�r� �D�;�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�r�e�g�i�s�t�e�r�M�o�d�u�l�e�(�"�i�m�a�g�e�"�,�{�o�p�t�i�o�n�s�:�{�m�a�r�k�u�p�:�'�<�d�i�v� �c�l�a�s�s�=�"�m�f�p�-�f�i�g�u�r�e�"�>�<�d�i�v� �c�l�a�s�s�=�"�m�f�p�-�c�l�o�s�e�"�>�<�/�d�i�v�>�<�f�i�g�u�r�e�>�<�d�i�v� �c�l�a�s�s�=�"�m�f�p�-�i�m�g�"�>�<�/�d�i�v�>�<�f�i�g�c�a�p�t�i�o�n�>�<�d�i�v� �c�l�a�s�s�=�"�m�f�p�-�b�o�t�t�o�m�-�b�a�r�"�>�<�d�i�v� �c�l�a�s�s�=�"�m�f�p�-�t�i�t�l�e�"�>�<�/�d�i�v�>�<�d�i�v� �c�l�a�s�s�=�"�m�f�p�-�c�o�u�n�t�e�r�"�>�<�/�d�i�v�>�<�/�d�i�v�>�<�/�f�i�g�c�a�p�t�i�o�n�>�<�/�f�i�g�u�r�e�>�<�/�d�i�v�>�'�,�c�u�r�s�o�r�:�"�m�f�p�-�z�o�o�m�-�o�u�t�-�c�u�r�"�,�t�i�t�l�e�S�r�c�:�"�t�i�t�l�e�"�,�v�e�r�t�i�c�a�l�F�i�t�:�!�0�,�t�E�r�r�o�r�:�'�<�a� �h�r�e�f�=�"�%�u�r�l�%�"�>�T�h�e� �i�m�a�g�e�<�/�a�>� �c�o�u�l�d� �n�o�t� �b�e� �l�o�a�d�e�d�.�'�}�,�p�r�o�t�o�:�{�i�n�i�t�I�m�a�g�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�f�.�s�t�.�i�m�a�g�e�,�e�=�"�.�i�m�a�g�e�"�;�f�.�t�y�p�e�s�.�p�u�s�h�(�"�i�m�a�g�e�"�)�,�d�(�"�O�p�e�n�"�+�e�,�f�u�n�c�t�i�o�n�(�)�{�"�i�m�a�g�e�"�=�=�=�f�.�c�u�r�r�I�t�e�m�.�t�y�p�e�&�&�t�.�c�u�r�s�o�r�&�&�c�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�a�d�d�C�l�a�s�s�(�t�.�c�u�r�s�o�r�)�}�)�,�d�(�a�+�e�,�f�u�n�c�t�i�o�n�(�)�{�t�.�c�u�r�s�o�r�&�&�c�(�d�o�c�u�m�e�n�t�.�b�o�d�y�)�.�r�e�m�o�v�e�C�l�a�s�s�(�t�.�c�u�r�s�o�r�)�,�_�.�o�f�f�(�"�r�e�s�i�z�e�.�m�f�p�"�)�}�)�,�d�(�"�R�e�s�i�z�e�"�+�e�,�f�.�r�e�s�i�z�e�I�m�a�g�e�)�,�f�.�i�s�L�o�w�I�E�&�&�d�(�"�A�f�t�e�r�C�h�a�n�g�e�"�,�f�.�r�e�s�i�z�e�I�m�a�g�e�)�}�,�r�e�s�i�z�e�I�m�a�g�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�=�f�.�c�u�r�r�I�t�e�m�;�e�&�&�e�.�i�m�g�&�&�f�.�s�t�.�i�m�a�g�e�.�v�e�r�t�i�c�a�l�F�i�t�&�&�(�t�=�0�,�f�.�i�s�L�o�w�I�E�&�&�(�t�=�p�a�r�s�e�I�n�t�(�e�.�i�m�g�.�c�s�s�(�"�p�a�d�d�i�n�g�-�t�o�p�"�)�,�1�0�)�+�p�a�r�s�e�I�n�t�(�e�.�i�m�g�.�c�s�s�(�"�p�a�d�d�i�n�g�-�b�o�t�t�o�m�"�)�,�1�0�)�)�,�e�.�i�m�g�.�c�s�s�(�"�m�a�x�-�h�e�i�g�h�t�"�,�f�.�w�H�-�t�)�)�}�,�_�o�n�I�m�a�g�e�H�a�s�S�i�z�e�:�f�u�n�c�t�i�o�n�(�t�)�{�t�.�i�m�g�&�&�(�t�.�h�a�s�S�i�z�e�=�!�0�,�D�&�&�c�l�e�a�r�I�n�t�e�r�v�a�l�(�D�)�,�t�.
1�i�s�C�h�e�c�k�i�n�g�I�m�g�S�i�z�e�=�!�1�,�h�(�"�I�m�a�g�e�H�a�s�S�i�z�e�"�,�t�)�,�t�.�i�m�g�H�i�d�d�e�n�&�&�(�f�.�c�o�n�t�e�n�t�&�&�f�.�c�o�n�t�e�n�t�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�f�p�-�l�o�a�d�i�n�g�"�)�,�t�.�i�m�g�H�i�d�d�e�n�=�!�1�)�)�}�,�f�i�n�d�I�m�a�g�e�S�i�z�e�:�f�u�n�c�t�i�o�n�(�e�)�{�f�u�n�c�t�i�o�n� �i�(�t�)�{�D�&�&�c�l�e�a�r�I�n�t�e�r�v�a�l�(�D�)�,�D�=�s�e�t�I�n�t�e�r�v�a�l�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �0�<�o�.�n�a�t�u�r�a�l�W�i�d�t�h�?�v�o�i�d� �f�.�_�o�n�I�m�a�g�e�H�a�s�S�i�z�e�(�e�)�:�(�2�0�0�<�n�&�&�c�l�e�a�r�I�n�t�e�r�v�a�l�(�D�)�,�v�o�i�d�(�3�=�=�=�+�+�n�?�i�(�1�0�)�:�4�0�=�=�=�n�?�i�(�5�0�)�:�1�0�0�=�=�=�n�&�&�i�(�5�0�0�)�)�)�}�,�t�)�}�v�a�r� �n�=�0�,�o�=�e�.�i�m�g�[�0�]�;�i�(�1�)�}�,�g�e�t�I�m�a�g�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�f�u�n�c�t�i�o�n� �i�(�)�{�t�&�&�(�t�.�i�m�g�[�0�]�.�c�o�m�p�l�e�t�e�?�(�t�.�i�m�g�.�o�f�f�(�"�.�m�f�p�l�o�a�d�e�r�"�)�,�t�=�=�=�f�.�c�u�r�r�I�t�e�m�&�&�(�f�.�_�o�n�I�m�a�g�e�H�a�s�S�i�z�e�(�t�)�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�r�e�a�d�y�"�)�)�,�t�.�h�a�s�S�i�z�e�=�!�0�,�t�.�l�o�a�d�e�d�=�!�0�,�h�(�"�I�m�a�g�e�L�o�a�d�C�o�m�p�l�e�t�e�"�)�)�:�+�+�s�<�2�0�0�?�s�e�t�T�i�m�e�o�u�t�(�i�,�1�0�0�)�:�n�(�)�)�}�f�u�n�c�t�i�o�n� �n�(�)�{�t�&�&�(�t�.�i�m�g�.�o�f�f�(�"�.�m�f�p�l�o�a�d�e�r�"�)�,�t�=�=�=�f�.�c�u�r�r�I�t�e�m�&�&�(�f�.�_�o�n�I�m�a�g�e�H�a�s�S�i�z�e�(�t�)�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�e�r�r�o�r�"�,�r�.�t�E�r�r�o�r�.�r�e�p�l�a�c�e�(�"�%�u�r�l�%�"�,�t�.�s�r�c�)�)�)�,�t�.�h�a�s�S�i�z�e�=�!�0�,�t�.�l�o�a�d�e�d�=�!�0�,�t�.�l�o�a�d�E�r�r�o�r�=�!�0�)�}�v�a�r� �o�,�s�=�0�,�r�=�f�.�s�t�.�i�m�a�g�e�,�a�=�e�.�f�i�n�d�(�"�.�m�f�p�-�i�m�g�"�)�;�r�e�t�u�r�n� �a�.�l�e�n�g�t�h�&�&�(�(�o�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�m�g�"�)�)�.�c�l�a�s�s�N�a�m�e�=�"�m�f�p�-�i�m�g�"�,�t�.�e�l�&�&�t�.�e�l�.�f�i�n�d�(�"�i�m�g�"�)�.�l�e�n�g�t�h�&�&�(�o�.�a�l�t�=�t�.�e�l�.�f�i�n�d�(�"�i�m�g�"�)�.�a�t�t�r�(�"�a�l�t�"�)�)�,�t�.�i�m�g�=�c�(�o�)�.�o�n�(�"�l�o�a�d�.�m�f�p�l�o�a�d�e�r�"�,�i�)�.�o�n�(�"�e�r�r�o�r�.�m�f�p�l�o�a�d�e�r�"�,�n�)�,�o�.�s�r�c�=�t�.�s�r�c�,�a�.�i�s�(�"�i�m�g�"�)�&�&�(�t�.�i�m�g�=�t�.�i�m�g�.�c�l�o�n�e�(�)�)�,�0�<�(�o�=�t�.�i�m�g�[�0�]�)�.�n�a�t�u�r�a�l�W�i�d�t�h�?�t�.�h�a�s�S�i�z�e�=�!�0�:�o�.�w�i�d�t�h�|�|�(�t�.�h�a�s�S�i�z�e�=�!�1�)�)�,�f�.�_�p�a�r�s�e�M�a�r�k�u�p�(�e�,�{�t�i�t�l�e�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�t�.�d�a�t�a�&�&�v�o�i�d� �0�!�=�=�t�.�d�a�t�a�.�t�i�t�l�e�)�r�e�t�u�r�n� �t�.�d�a�t�a�.�t�i�t�l�e�;�v�a�r� �e�=�f�.�s�t�.�i�m�a�g�e�.�t�i�t�l�e�S�r�c�;�i�f�(�e�)�{�i�f�(�c�.�i�s�F�u�n�c�t�i�o�n�(�e�)�)�r�e�t�u�r�n� �e�.�c�a�l�l�(�f�,�t�)�;�i�f�(�t�.�e�l�)�r�e�t�u�r�n� �t�.�e�l�.�a�t�t�r�(�e�)�|�|�"�"�}�r�e�t�u�r�n�"�"�}�(�t�)�,�i�m�g�_�r�e�p�l�a�c�e�W�i�t�h�:�t�.�i�m�g�}
1�,�t�)�,�f�.�r�e�s�i�z�e�I�m�a�g�e�(�)�,�t�.�h�a�s�S�i�z�e�?�(�D�&�&�c�l�e�a�r�I�n�t�e�r�v�a�l�(�D�)�,�t�.�l�o�a�d�E�r�r�o�r�?�(�e�.�a�d�d�C�l�a�s�s�(�"�m�f�p�-�l�o�a�d�i�n�g�"�)�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�e�r�r�o�r�"�,�r�.�t�E�r�r�o�r�.�r�e�p�l�a�c�e�(�"�%�u�r�l�%�"�,�t�.�s�r�c�)�)�)�:�(�e�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�f�p�-�l�o�a�d�i�n�g�"�)�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�r�e�a�d�y�"�)�)�)�:�(�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�l�o�a�d�i�n�g�"�)�,�t�.�l�o�a�d�i�n�g�=�!�0�,�t�.�h�a�s�S�i�z�e�|�|�(�t�.�i�m�g�H�i�d�d�e�n�=�!�0�,�e�.�a�d�d�C�l�a�s�s�(�"�m�f�p�-�l�o�a�d�i�n�g�"�)�,�f�.�f�i�n�d�I�m�a�g�e�S�i�z�e�(�t�)�)�)�,�e�}�}�}�)�;�f�u�n�c�t�i�o�n� �$�(�t�)�{�v�a�r� �e�;�f�.�c�u�r�r�T�e�m�p�l�a�t�e�[�L�]�&�&�(�e�=�f�.�c�u�r�r�T�e�m�p�l�a�t�e�[�L�]�.�f�i�n�d�(�"�i�f�r�a�m�e�"�)�)�.�l�e�n�g�t�h�&�&�(�t�|�|�(�e�[�0�]�.�s�r�c�=�"�/�/�a�b�o�u�t�:�b�l�a�n�k�"�)�,�f�.�i�s�I�E�8�&�&�e�.�c�s�s�(�"�d�i�s�p�l�a�y�"�,�t�?�"�b�l�o�c�k�"�:�"�n�o�n�e�"�)�)�}�f�u�n�c�t�i�o�n� �F�(�t�)�{�v�a�r� �e�=�f�.�i�t�e�m�s�.�l�e�n�g�t�h�;�r�e�t�u�r�n� �e�-�1�<�t�?�t�-�e�:�t�<�0�?�e�+�t�:�t�}�f�u�n�c�t�i�o�n� �z�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �t�.�r�e�p�l�a�c�e�(�/�%�c�u�r�r�%�/�g�i�,�e�+�1�)�.�r�e�p�l�a�c�e�(�/�%�t�o�t�a�l�%�/�g�i�,�i�)�}�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�r�e�g�i�s�t�e�r�M�o�d�u�l�e�(�"�z�o�o�m�"�,�{�o�p�t�i�o�n�s�:�{�e�n�a�b�l�e�d�:�!�1�,�e�a�s�i�n�g�:�"�e�a�s�e�-�i�n�-�o�u�t�"�,�d�u�r�a�t�i�o�n�:�3�0�0�,�o�p�e�n�e�r�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�i�s�(�"�i�m�g�"�)�?�t�:�t�.�f�i�n�d�(�"�i�m�g�"�)�}�}�,�p�r�o�t�o�:�{�i�n�i�t�Z�o�o�m�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�,�o�,�s�,�r�=�f�.�s�t�.�z�o�o�m�;�r�.�e�n�a�b�l�e�d�&�&�f�.�s�u�p�p�o�r�t�s�T�r�a�n�s�i�t�i�o�n�&�&�(�n�=�r�.�d�u�r�a�t�i�o�n�,�o�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �t�=�t�.�c�l�o�n�e�(�)�.�r�e�m�o�v�e�A�t�t�r�(�"�s�t�y�l�e�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�c�l�a�s�s�"�)�.�a�d�d�C�l�a�s�s�(�"�m�f�p�-�a�n�i�m�a�t�e�d�-�i�m�a�g�e�"�)�,�e�=�"�a�l�l� �"�+�r�.�d�u�r�a�t�i�o�n�/�1�e�3�+�"�s� �"�+�r�.�e�a�s�i�n�g�,�i�=�{�p�o�s�i�t�i�o�n�:�"�f�i�x�e�d�"�,�z�I�n�d�e�x�:�9�9�9�9�,�l�e�f�t�:�0�,�t�o�p�:�0�,�"�-�w�e�b�k�i�t�-�b�a�c�k�f�a�c�e�-�v�i�s�i�b�i�l�i�t�y�"�:�"�h�i�d�d�e�n�"�}�,�n�=�"�t�r�a�n�s�i�t�i�o�n�"�;�r�e�t�u�r�n� �i�[�"�-�w�e�b�k�i�t�-�"�+�n�]�=�i�[�"�-�m�o�z�-�"�+�n�]�=�i�[�"�-�o�-�"�+�n�]�=�i�[�n�]�=�e�,�t�.�c�s�s�(�i�)�,�t�}�,�s�=�f�u�n�c�t�i�o�n�(�)�{�f�.�c�o�n�t�e�n�t�.�c�s�s�(�"�v�i�s�i�b�i�l�i�t�y�"�,�"�v�i�s�i�b�l�e�"�)�}�,�d�(�"�B�u�i�l�d�C�o�n�t�r�o�l�s�.�z�o�o�m�"�,�f�u�n�c�t�i�o�n�(�)�{�f�.�_�a�l�l�o�w�Z�o�o�m�(�)�&�&�(�c�l�e�a�r�T�i�m�e�o�u�t�(�e�)�,�f�.�c�o�n�t�e�n�t�.�c�s�s�(�"�v�i�s�i�b�i�l�i�t�y�"�,�"�h�i�d�d�e�n�"�)�,�(�t�=�f�.�_�g�e�t�I�t�e�m�T�o�Z�o�o�m�(�)�)�?�(�(�i�=�o�(�t�)�)�.�c�s�s�(�f�.�_�g�e�t�O�f�f�s�e�t�(�)�)�,�f�.�w�r�a�p�.�a�p�p�e�n�d�(�i�)�,�e�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�i�.�c�s�s�(�f�.�_�g�e�t�O�f�f�s�e�t�(�!�0�)�)�,�e�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�s�(�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�i�.�r�e�m�o�v�e�(�)�,�t�=�i�=�n�u�l�l�,�h�(�"�Z�o�o�m�A�n�i�m�a�t�i�o�n�E�n�d�e�d�"�)�}�,�1�6�)�}�,�n�)�}�,�1�6�)�)�:�s�(�)�)�}�)�,�d�(�l�+�"�.�z�o�o�m�"�,�f�u�n�c�t�i�o�n�(�)�{�i�f�(�f�.�_�a�l�l�o�w�Z�o�o�m�(�)�)�{�i�f�(�c�l�e�a�r�T�i�m�e�o�u�t�(�e�)�,�f�.�s�t�.�r�e�m�o�v�a�l�D�e�l�a�y�=�n�,�!�t�)�{�i�f�(�!�(�t�=�f�.�_�g�e�t�I�t�e�m�T�o�Z�o�o�m�(�)�)�)�r�e�t�u�r�n�;�i�=�o�(�t�)�}�i�.�c�s�s�(�f�.�_�g�e�t�O�f�f�s�e�t�(�!�0�)�)�,�f�.�w�r�a�p�.�a�p�p�e�n�d�(�i�)�,�f�.�c�o�n�t�e�n�t�.�c�s�s�(�"�v�i�s�i�b�i�l�i�t�y�"�,�"�h�i�d�d�e�n�"�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�i�.�c�s�s�(�f�.�_�g�e�t�O�f�f�s�e�t�(�)�)�}�,�1�6�)�}�}�)�,�d�(�a�+�"�.�z�o�o�m�"�,�f�u�n�c�t�i�o�n�(�)�{�f�.�_�a�l�l�o�w�Z�o�o�m�(�)�&�&�(�s�(�)�,�i�&�&�i�.�r�e�m�o�v�e�(�)�,�t�=�n�u�l�l�)�}�)�)�}�,�_�a�l�l�o�w�Z�o�o�m�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�i�m�a�g�e�"�=�=�=�f�.�c�u�r�r�I�t�e�m�.�t�y�p�e�}�,�_�g�e�t�I�t�e�m�T�o�Z�o�o�m�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�!�f�.�c�u�r�r�I�t�e�m�.�h�a�s�S�i�z�e�&�&�f�.�c�u�r�r�I�t�e�m�.�i�m�g�}�,�_�g�e�t�O�f�f�s�e�t�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �t�=�t�?�f�.�c�u�r�r�I�t�e�m�.�i�m�g�:�f�.�s�t�.�z�o�o�m�.�o�p�e�n�e�r�(�f�.�c�u�r�r�I�t�e�m�.�e�l�|�|�f�.�c�u�r�r�I�t�e�m�)�,�e�=�t�.�o�f�f�s�e�t�(�)�,�i�=�p�a�r�s�e�I�n�t�(�t�.�c�s�s�(�"�p�a�d�d�i�n�g�-�t�o�p�"�)�,�1�0�)�,�n�=�p�a�r�s�e�I�n�t�(�t�.�c�s�s�(�"�p�a�d�d�i�n�g�-�b�o�t�t�o�m�"�)�,�1�0�)�,�t�=�(�e�.�t�o�p�-�=�c�(�w�i�n�d�o�w�)�.�s�c�r�o�l�l�T�o�p�(�)�-�i�,�{�w�i�d�t�h�:�t�.�w�i�d�t�h�(�)�,�h�e�i�g�h�t�:�(�b�?�t�.�i�n�n�e�r�H�e�i�g�h�t�(�)�:�t�[�0�]�.�o�f�f�s�e�t�H�e�i�g�h�t�)�-�n�-�i�}�)�;�r�e�t�u�r�n�(�I�=�v�o�i�d� �0�=�=�=�I�?�v�o�i�d� �0�!�=�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�p�"�)�.�s�t�y�l�e�.�M�o�z�T�r�a�n�s�f�o�r�m�:�I�)�?�t�[�"�-�m�o�z�-�t�r�a�n�s�f�o�r�m�"�]�=�t�.�t�r�a�n�s�f�o�r�m�=�"�t�r�a�n�s�l�a�t�e�(�"�+�e�.�l�e�f�t�+�"�p�x�,�"�+�e�.�t�o�p�+�"�p�x�)�"�:�(�t�.�l�e�f�t�=�e�.�l�e�f�t�,�t�.�t�o�p�=�e�.�t�o�p�)�,�t�}�}�}�)�;�v�a�r� �I�,�L�=�"�i�f�r�a�m�e�"�,�M�=�(�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�r�e�g�i�s�t�e�r�M�o�d�u�l�e�(�L�,�{�o�p�t�i�o�n�s�:�{�m�a�r�k�u�p�:�'�<�d�i�v� �c�l�a�s�s�=�"�m�f�p�-�i�f�r�a�m�e�-�s�c�a�l�e�r�"�>�<�d�i�v� �c�l�a�s�s�=�"�m�f�p�-�c�l�o�s�e�"�>�<�/�d�i�v�>�<�i�f�r�a�m�e� �c�l�a�s�s�=�"�m�f�p�-�i�f�r�a�m�e�"� �s�r�c�=�"�/�/�a�b�o�u�t�:�b�l�a�n�k�"� �f�r�a�m�e�b�o�r�d�e�r�=�"�0�"� �a�l�l�o�w�f�u�l�l�s�c�r�e�e�n�>�<�/�i�f�r�a�m�e�>�<�/�d�i�v�>�'�,�s�r�c�A�c�t�i�o�n�:�"�i�f�r�a�m�e�_�s�r�c�"�,�p�a�t�t�e�r�n�s�:�{�y�o�u�t�u�b�e�:�{�i�n�d�e�x�:�"�y�o�u�t�u�b�e�.�c�o�m�"�,�i�d�:�"�v�=�"�,�s�r�c�:�"�/�/�w�w�w�.�y�o�u�t�u�b�e�.�c�o�m�/�e�m�b�e�d�/�%�i�d�%�?�a�u�t�o�p�l�a�y�=�1�"�}�,�v�i�m�e�o�:�{�i�n�d�e�x�:�"�v�i�m�e�o�.�c�o�m�/�"�,�i�d�:�"�/�"�,�s�r�c�:�"�/�/�p�l�a�y�e�r�.�v�i�m�e�o�.�c�o�m�/�v�i�d�e�o�/�%�i�d�%�?�a�u�t�o�p�l�a�y�=�1�"�}�,�g�m�a�p�s�:�{�i�n�d�e�x�:�"�/�/�m�a�p�s�.�g�o�o�g�l�e�.�"�,�s�r�c�:�"�%�i�d�%�&�o�u�t�p�u�t�=�e�m�b�e�d�"�}�}�}�,�p�r�o�t�o�:�{�i�n�i�t�I�f�r�a�m�e�:�f�u�n�c�t�i�o�n�(�)�{�f�.
1�t�y�p�e�s�.�p�u�s�h�(�L�)�,�d�(�"�B�e�f�o�r�e�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�e�!�=�=�i�&�&�(�e�=�=�=�L�?�$�(�)�:�i�=�=�=�L�&�&�$�(�!�0�)�)�}�)�,�d�(�a�+�"�.�"�+�L�,�f�u�n�c�t�i�o�n�(�)�{�$�(�)�}�)�}�,�g�e�t�I�f�r�a�m�e�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�.�s�r�c�,�n�=�f�.�s�t�.�i�f�r�a�m�e�,�o�=�(�c�.�e�a�c�h�(�n�.�p�a�t�t�e�r�n�s�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�-�1�<�i�.�i�n�d�e�x�O�f�(�t�h�i�s�.�i�n�d�e�x�)�?�(�t�h�i�s�.�i�d�&�&�(�i�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�h�i�s�.�i�d�?�i�.�s�u�b�s�t�r�(�i�.�l�a�s�t�I�n�d�e�x�O�f�(�t�h�i�s�.�i�d�)�+�t�h�i�s�.�i�d�.�l�e�n�g�t�h�,�i�.�l�e�n�g�t�h�)�:�t�h�i�s�.�i�d�.�c�a�l�l�(�t�h�i�s�,�i�)�)�,�i�=�t�h�i�s�.�s�r�c�.�r�e�p�l�a�c�e�(�"�%�i�d�%�"�,�i�)�,�!�1�)�:�v�o�i�d� �0�}�)�,�{�}�)�;�r�e�t�u�r�n� �n�.�s�r�c�A�c�t�i�o�n�&�&�(�o�[�n�.�s�r�c�A�c�t�i�o�n�]�=�i�)�,�f�.�_�p�a�r�s�e�M�a�r�k�u�p�(�e�,�o�,�t�)�,�f�.�u�p�d�a�t�e�S�t�a�t�u�s�(�"�r�e�a�d�y�"�)�,�e�}�}�}�)�,�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�r�e�g�i�s�t�e�r�M�o�d�u�l�e�(�"�g�a�l�l�e�r�y�"�,�{�o�p�t�i�o�n�s�:�{�e�n�a�b�l�e�d�:�!�1�,�a�r�r�o�w�M�a�r�k�u�p�:�'�<�b�u�t�t�o�n� �t�i�t�l�e�=�"�%�t�i�t�l�e�%�"� �t�y�p�e�=�"�b�u�t�t�o�n�"� �c�l�a�s�s�=�"�m�f�p�-�a�r�r�o�w� �m�f�p�-�a�r�r�o�w�-�%�d�i�r�%�"�>�<�/�b�u�t�t�o�n�>�'�,�p�r�e�l�o�a�d�:�[�0�,�2�]�,�n�a�v�i�g�a�t�e�B�y�I�m�g�C�l�i�c�k�:�!�0�,�a�r�r�o�w�s�:�!�0�,�t�P�r�e�v�:�"�P�r�e�v�i�o�u�s� �(�L�e�f�t� �a�r�r�o�w� �k�e�y�)�"�,�t�N�e�x�t�:�"�N�e�x�t� �(�R�i�g�h�t� �a�r�r�o�w� �k�e�y�)�"�,�t�C�o�u�n�t�e�r�:�"�%�c�u�r�r�%� �o�f� �%�t�o�t�a�l�%�"�}�,�p�r�o�t�o�:�{�i�n�i�t�G�a�l�l�e�r�y�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �s�=�f�.�s�t�.�g�a�l�l�e�r�y�,�t�=�"�.�m�f�p�-�g�a�l�l�e�r�y�"�;�r�e�t�u�r�n� �f�.�d�i�r�e�c�t�i�o�n�=�!�0�,�!�(�!�s�|�|�!�s�.�e�n�a�b�l�e�d�)�&�&�(�g�+�=�"� �m�f�p�-�g�a�l�l�e�r�y�"�,�d�(�"�O�p�e�n�"�+�t�,�f�u�n�c�t�i�o�n�(�)�{�s�.�n�a�v�i�g�a�t�e�B�y�I�m�g�C�l�i�c�k�&�&�f�.�w�r�a�p�.�o�n�(�"�c�l�i�c�k�"�+�t�,�"�.�m�f�p�-�i�m�g�"�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �1�<�f�.�i�t�e�m�s�.�l�e�n�g�t�h�?�(�f�.�n�e�x�t�(�)�,�!�1�)�:�v�o�i�d� �0�}�)�,�m�.�o�n�(�"�k�e�y�d�o�w�n�"�+�t�,�f�u�n�c�t�i�o�n�(�t�)�{�3�7�=�=�=�t�.�k�e�y�C�o�d�e�?�f�.�p�r�e�v�(�)�:�3�9�=�=�=�t�.�k�e�y�C�o�d�e�&�&�f�.�n�e�x�t�(�)�}�)�}�)�,�d�(�"�U�p�d�a�t�e�S�t�a�t�u�s�"�+�t�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�.�t�e�x�t�&�&�(�e�.�t�e�x�t�=�z�(�e�.�t�e�x�t�,�f�.�c�u�r�r�I�t�e�m�.�i�n�d�e�x�,�f�.�i�t�e�m�s�.�l�e�n�g�t�h�)�)�}�)�,�d�(�v�+�t�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�a�r� �o�=�f�.�i�t�e�m�s�.�l�e�n�g�t�h�;�i�.�c�o�u�n�t�e�r�=�1�<�o�?�z�(�s�.�t�C�o�u�n�t�e�r�,�n�.�i�n�d�e�x�,�o�)�:�"�"�}�)�,�d�(�"�B�u�i�l�d�C�o�n�t�r�o�l�s�"�+�t�,�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�;�1�<�f�.�i�t�e�m�s�.�l�e�n�g�t�h�&�&�s�.�a�r�r�o�w�s�&�&�!�f�.�a�r�r�o�w�L�e�f�t�&�&�(�e�=�s�.�a�r�r�o�w�M�a�r�k�u�p�,�t�=�f�.�a�r�r�o�w�L�e�f�t�=�c�(�e�.�r�e�p�l�a�c�e�(�/�%�t�i�t�l�e�%�/�g�i�,�s�.�t�P�r�e�v�)�.�r�e�p�l�a�c�e�(�/�%�d�i�r�%�/�g�i�,�"�l�e�f�t�"�)�)�.�a�d�d�C�l�a�s�s�(�w�)�,�e�=�f�.�a�r�r�o�w�R�i�g�h�t�=�c�(�e�.�r�e�p�l�a�c�e�(�/�%�t�i�t�l�e�%�/�g�i�,�s�.�t�N�e�x�t�)�.�r�e�p�l�a�c�e�(�/�%�d�i�r�%�/�g�i�,�"�r�i�g�h�t�"�)�)�.�a�d�d�C�l�a�s�s�(�w�)�,�t�.�c�l�i�c�k�(�f�u�n�c�t�i�o�n�(�)�{�f�.�p�r�e�v�(�)�}�)�,�e�.�c�l�i�c�k�(�f�u�n�c�t�i�o�n�(�)�{�f�.�n�e�x�t�(�)�}�)�,�f�.�c�o�n�t�a�i�n�e�r�.�a�p�p�e�n�d�(�t�.�a�d�d�(�e�)�)�)�}�)�,�d�(�"�C�h�a�n�g�e�"�+�t�,�f�u�n�c�t�i�o�n�(�)�{�f�.�_�p�r�e�l�o�a�d�T�i�m�e�o�u�t�&�&�c�l�e�a�r�T�i�m�e�o�u�t�(�f�.�_�p�r�e�l�o�a�d�T�i�m�e�o�u�t�)�,�f�.�_�p�r�e�l�o�a�d�T�i�m�e�o�u�t�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�f�.�p�r�e�l�o�a�d�N�e�a�r�b�y�I�m�a�g�e�s�(�)�,�f�.�_�p�r�e�l�o�a�d�T�i�m�e�o�u�t�=�n�u�l�l�}�,�1�6�)�}�)�,�v�o�i�d� �d�(�a�+�t�,�f�u�n�c�t�i�o�n�(�)�{�m�.�o�f�f�(�t�)�,�f�.�w�r�a�p�.�o�f�f�(�"�c�l�i�c�k�"�+�t�)�,�f�.�a�r�r�o�w�R�i�g�h�t�=�f�.�a�r�r�o�w�L�e�f�t�=�n�u�l�l�}�)�)�}�,�n�e�x�t�:�f�u�n�c�t�i�o�n�(�)�{�f�.�d�i�r�e�c�t�i�o�n�=�!�0�,�f�.�i�n�d�e�x�=�F�(�f�.�i�n�d�e�x�+�1�)�,�f�.�u�p�d�a�t�e�I�t�e�m�H�T�M�L�(�)�}�,�p�r�e�v�:�f�u�n�c�t�i�o�n�(�)�{�f�.�d�i�r�e�c�t�i�o�n�=�!�1�,�f�.�i�n�d�e�x�=�F�(�f�.�i�n�d�e�x�-�1�)�,�f�.�u�p�d�a�t�e�I�t�e�m�H�T�M�L�(�)�}�,�g�o�T�o�:�f�u�n�c�t�i�o�n�(�t�)�{�f�.�d�i�r�e�c�t�i�o�n�=�t�>�=�f�.�i�n�d�e�x�,�f�.�i�n�d�e�x�=�t�,�f�.�u�p�d�a�t�e�I�t�e�m�H�T�M�L�(�)�}�,�p�r�e�l�o�a�d�N�e�a�r�b�y�I�m�a�g�e�s�:�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t�=�f�.�s�t�.�g�a�l�l�e�r�y�.�p�r�e�l�o�a�d�,�e�=�M�a�t�h�.�m�i�n�(�t�[�0�]�,�f�.�i�t�e�m�s�.�l�e�n�g�t�h�)�,�i�=�M�a�t�h�.�m�i�n�(�t�[�1�]�,�f�.�i�t�e�m�s�.�l�e�n�g�t�h�)�,�n�=�1�;�n�<�=�(�f�.�d�i�r�e�c�t�i�o�n�?�i�:�e�)�;�n�+�+�)�f�.�_�p�r�e�l�o�a�d�I�t�e�m�(�f�.�i�n�d�e�x�+�n�)�;�f�o�r�(�n�=�1�;�n�<�=�(�f�.�d�i�r�e�c�t�i�o�n�?�e�:�i�)�;�n�+�+�)�f�.�_�p�r�e�l�o�a�d�I�t�e�m�(�f�.�i�n�d�e�x�-�n�)�}�,�_�p�r�e�l�o�a�d�I�t�e�m�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�;�t�=�F�(�t�)�,�f�.�i�t�e�m�s�[�t�]�.�p�r�e�l�o�a�d�e�d�|�|�(�(�e�=�f�.�i�t�e�m�s�[�t�]�)�.�p�a�r�s�e�d�|�|�(�e�=�f�.�p�a�r�s�e�E�l�(�t�)�)�,�h�(�"�L�a�z�y�L�o�a�d�"�,�e�)�,�"�i�m�a�g�e�"�=�=�=�e�.�t�y�p�e�&�&�(�e�.�i�m�g�=�c�(�'�<�i�m�g� �c�l�a�s�s�=�"�m�f�p�-�i�m�g�"� �/�>�'�)�.�o�n�(�"�l�o�a�d�.�m�f�p�l�o�a�d�e�r�"�,�f�u�n�c�t�i�o�n�(�)�{�e�.�h�a�s�S�i�z�e�=�!�0�}�)�.�o�n�(�"�e�r�r�o�r�.�m�f�p�l�o�a�d�e�r�"�,�f�u�n�c�t�i�o�n�(�)�{�e�.�h�a�s�S�i�z�e�=�!�0�,�e�.�l�o�a�d�E�r�r�o�r�=�!�0�,�h�(�"�L�a�z�y�L�o�a�d�E�r�r�o�r�"�,�e�)�}�)�.�a�t�t�r�(�"�s�r�c�"�,�e�.�s�r�c�)�)�,�e�.�p�r�e�l�o�a�d�e�d�=�!�0�)�}�}�}�)�,�"�r�e�t�i�n�a�"�)�;�c�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�r�e�g�i�s�t�e�r�M�o�d�u�l�e�(�M�,�{�o�p�t�i�o�n�s�:�{�r�e�p�l�a�c�e�S�r�c�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�s�r�c�.�r�e�p�l�a�c�e�(�/�\�.�\�w�+�$�/�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n�"�@�2�x�"�+�t�}�)�}�,�r�a�t�i�o�:�1�}�,�p�r�o�t�o�:�{�i�n�i�t�R�e�t�i�n�a�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�,�n�;�1�<�w�i�n�d�o�w�.�d�e�v�i�c�e�P�i�x�e�l�R�a�t�i�o�&�&�(�i�=�f�.�s�t�.�r�e�t�i�n�a�,�n�=�i�.�r�a�t�i�o�,�1�<�(�n�=�i�s�N�a�N�(�n�)�?�n�(�)�:�n�)�&�&�(�d�(�"�I�m�a�g�e�H�a�s�S�i�z�e�.�"�+�M�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�.�i�m�g�.�c�s�s�(�{�"�m�a�x�-�w�i�d�t�h�"�:�e�.�i�m�g�[�0�]�.�n�a�t�u�r�a�l�W�i�d�t�h�/�n�,�w�i�d�t�h�:�"�1�0�0�%�"�}�)�}�)�,�d�(�"�E�l�e�m�e�n�t�P�a�r�s�e�.�"�+�M�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�.�s�r�c�=�i�.�r�e�p�l�a�c�e�S�r�c�(�e�,�n�)�}�)�)�)�}�}�}�)�,�s�(�)�}�)�,�!�f�u�n�c�t�i�o�n�(�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�v�a�r� �e�=�0�,�s�=�{�}�;�f�u�n�c�t�i�o�n� �i�(�t�)�{�i�f�(�!�t�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�N�o� �o�p�t�i�o�n�s� �p�a�s�s�e�d� �t�o� �W�a�y�p�o�i�n�t� �c�o�n�s�t�r�u�c�t�o�r�"�)�;�i�f�(�!�t�.�e�l�e�m�e�n�t�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�N�o� �e�l�e�m�e�n�t� �o�p�t�i�o�n� �p�a�s�s�e�d� �t�o� �W�a�y�p�o�i�n�t� �c�o�n�s�t�r�u�c�t�o�r�"�)�;�i�f�(�!�t�.�h�a�n�d�l�e�r�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�N�o� �h�a�n�d�l�e�r� �o�p�t�i�o�n� �p�a�s�s�e�d� �t�o� �W�a�y�p�o�i�n�t� �c�o�n�s�t�r�u�c�t�o�r�"�)�;�t�h�i�s�.�k�e�y�=�"�w�a�y�p�o�i�n�t�-�"�+�e�,�t�h�i�s�.�o�p�t�i�o�n�s�=�i�.�A�d�a�p�t�e�r�.�e�x�t�e�n�d�(�{�}�,�i�.�d�e�f�a�u�l�t�s�,�t�)�,�t�h�i�s�.�e�l�e�m�e�n�t�=�t�h�i�s�.�o�p�t�i�o�n�s�.�e�l�e�m�e�n�t�,�t�h�i�s�.�a�d�a�
1p�t�e�r�=�n�e�w� �i�.�A�d�a�p�t�e�r�(�t�h�i�s�.�e�l�e�m�e�n�t�)�,�t�h�i�s�.�c�a�l�l�b�a�c�k�=�t�.�h�a�n�d�l�e�r�,�t�h�i�s�.�a�x�i�s�=�t�h�i�s�.�o�p�t�i�o�n�s�.�h�o�r�i�z�o�n�t�a�l�?�"�h�o�r�i�z�o�n�t�a�l�"�:�"�v�e�r�t�i�c�a�l�"�,�t�h�i�s�.�e�n�a�b�l�e�d�=�t�h�i�s�.�o�p�t�i�o�n�s�.�e�n�a�b�l�e�d�,�t�h�i�s�.�t�r�i�g�g�e�r�P�o�i�n�t�=�n�u�l�l�,�t�h�i�s�.�g�r�o�u�p�=�i�.�G�r�o�u�p�.�f�i�n�d�O�r�C�r�e�a�t�e�(�{�n�a�m�e�:�t�h�i�s�.�o�p�t�i�o�n�s�.�g�r�o�u�p�,�a�x�i�s�:�t�h�i�s�.�a�x�i�s�}�)�,�t�h�i�s�.�c�o�n�t�e�x�t�=�i�.�C�o�n�t�e�x�t�.�f�i�n�d�O�r�C�r�e�a�t�e�B�y�E�l�e�m�e�n�t�(�t�h�i�s�.�o�p�t�i�o�n�s�.�c�o�n�t�e�x�t�)�,�i�.�o�f�f�s�e�t�A�l�i�a�s�e�s�[�t�h�i�s�.�o�p�t�i�o�n�s�.�o�f�f�s�e�t�]�&�&�(�t�h�i�s�.�o�p�t�i�o�n�s�.�o�f�f�s�e�t�=�i�.�o�f�f�s�e�t�A�l�i�a�s�e�s�[�t�h�i�s�.�o�p�t�i�o�n�s�.�o�f�f�s�e�t�]�)�,�t�h�i�s�.�g�r�o�u�p�.�a�d�d�(�t�h�i�s�)�,�t�h�i�s�.�c�o�n�t�e�x�t�.�a�d�d�(�t�h�i�s�)�,�s�[�t�h�i�s�.�k�e�y�]�=�t�h�i�s�,�e�+�=�1�}�i�.�p�r�o�t�o�t�y�p�e�.�q�u�e�u�e�T�r�i�g�g�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�g�r�o�u�p�.�q�u�e�u�e�T�r�i�g�g�e�r�(�t�h�i�s�,�t�)�}�,�i�.�p�r�o�t�o�t�y�p�e�.�t�r�i�g�g�e�r�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�e�n�a�b�l�e�d�&�&�t�h�i�s�.�c�a�l�l�b�a�c�k�&�&�t�h�i�s�.�c�a�l�l�b�a�c�k�.�a�p�p�l�y�(�t�h�i�s�,�t�)�}�,�i�.�p�r�o�t�o�t�y�p�e�.�d�e�s�t�r�o�y�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�c�o�n�t�e�x�t�.�r�e�m�o�v�e�(�t�h�i�s�)�,�t�h�i�s�.�g�r�o�u�p�.�r�e�m�o�v�e�(�t�h�i�s�)�,�d�e�l�e�t�e� �s�[�t�h�i�s�.�k�e�y�]�}�,�i�.�p�r�o�t�o�t�y�p�e�.�d�i�s�a�b�l�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�n�a�b�l�e�d�=�!�1�,�t�h�i�s�}�,�i�.�p�r�o�t�o�t�y�p�e�.�e�n�a�b�l�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�c�o�n�t�e�x�t�.�r�e�f�r�e�s�h�(�)�,�t�h�i�s�.�e�n�a�b�l�e�d�=�!�0�,�t�h�i�s�}�,�i�.�p�r�o�t�o�t�y�p�e�.�n�e�x�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�g�r�o�u�p�.�n�e�x�t�(�t�h�i�s�)�}�,�i�.�p�r�o�t�o�t�y�p�e�.�p�r�e�v�i�o�u�s�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�g�r�o�u�p�.�p�r�e�v�i�o�u�s�(�t�h�i�s�)�}�,�i�.�i�n�v�o�k�e�A�l�l�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�=�[�]�;�f�o�r�(�e� �i�n� �s�)�i�.�p�u�s�h�(�s�[�e�]�)�;�f�o�r�(�v�a�r� �n�=�0�,�o�=�i�.�l�e�n�g�t�h�;�n�<�o�;�n�+�+�)�i�[�n�]�[�t�]�(�)�}�,�i�.�d�e�s�t�r�o�y�A�l�l�=�f�u�n�c�t�i�o�n�(�)�{�i�.�i�n�v�o�k�e�A�l�l�(�"�d�e�s�t�r�o�y�"�)�}�,�i�.�d�i�s�a�b�l�e�A�l�l�=�f�u�n�c�t�i�o�n�(�)�{�i�.�i�n�v�o�k�e�A�l�l�(�"�d�i�s�a�b�l�e�"�)�}�,�i�.�e�n�a�b�l�e�A�l�l�=�f�u�n�c�t�i�o�n�(�)�{�i�.�i�n�v�o�k�e�A�l�l�(�"�e�n�a�b�l�e�"�)�}�,�i�.�r�e�f�r�e�s�h�A�l�l�=�f�u�n�c�t�i�o�n�(�)�{�i�.�C�o�n�t�e�x�t�.�r�e�f�r�e�s�h�A�l�l�(�)�}�,�i�.�v�i�e�w�p�o�r�t�H�e�i�g�h�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�|�|�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�c�l�i�e�n�t�H�e�i�g�h�t�}�,�i�.�v�i�e�w�p�o�r�t�W�i�d�t�h�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�c�l�i�e�n�t�W�i�d�t�h�}�,�i�.�a�d�a�p�t�e�r�s�=�[�]�,�i�.�d�e�f�a�u�l�t�s�=�{�c�o�n�t�e�x�t�:�w�i�n�d�o�w�,�c�o�n�t�i�n�u�o�u�s�:�!�0�,�e�n�a�b�l�e�d�:�!�0�,�g�r�o�u�p�:�"�d�e�f�a�u�l�t�"�,�h�o�r�i�z�o�n�t�a�l�:�!�1�,�o�f�f�s�e�t�:�0�}�,�i�.�o�f�f�s�e�t�A�l�i�a�s�e�s�=�{�"�b�o�t�t�o�m�-�i�n�-�v�i�e�w�"�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�c�o�n�t�e�x�t�.�i�n�n�e�r�H�e�i�g�h�t�(�)�-�t�h�i�s�.�a�d�a�p�t�e�r�.�o�u�t�e�r�H�e�i�g�h�t�(�)�}�,�"�r�i�g�h�t�-�i�n�-�v�i�e�w�"�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�c�o�n�t�e�x�t�.�i�n�n�e�r�W�i�d�t�h�(�)�-�t�h�i�s�.�a�d�a�p�t�e�r�.�o�u�t�e�r�W�i�d�t�h�(�)�}�}�,�w�i�n�d�o�w�.�W�a�y�p�o�i�n�t�=�i�}�(�)�,�!�f�u�n�c�t�i�o�n�(�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �e�(�t�)�{�w�i�n�d�o�w�.�s�e�t�T�i�m�e�o�u�t�(�t�,�1�e�3�/�6�0�)�}�v�a�r� �i�=�0�,�n�=�{�}�,�p�=�w�i�n�d�o�w�.�W�a�y�p�o�i�n�t�,�t�=�w�i�n�d�o�w�.�o�n�l�o�a�d�;�f�u�n�c�t�i�o�n� �o�(�t�)�{�t�h�i�s�.�e�l�e�m�e�n�t�=�t�,�t�h�i�s�.�A�d�a�p�t�e�r�=�p�.�A�d�a�p�t�e�r�,�t�h�i�s�.�a�d�a�p�t�e�r�=�n�e�w� �t�h�i�s�.�A�d�a�p�t�e�r�(�t�)�,�t�h�i�s�.�k�e�y�=�"�w�a�y�p�o�i�n�t�-�c�o�n�t�e�x�t�-�"�+�i�,�t�h�i�s�.�d�i�d�S�c�r�o�l�l�=�!�1�,�t�h�i�s�.�d�i�d�R�e�s�i�z�e�=�!�1�,�t�h�i�s�.�o�l�d�S�c�r�o�l�l�=�{�x�:�t�h�i�s�.�a�d�a�
1p�t�e�r�.�s�c�r�o�l�l�L�e�f�t�(�)�,�y�:�t�h�i�s�.�a�d�a�p�t�e�r�.�s�c�r�o�l�l�T�o�p�(�)�}�,�t�h�i�s�.�w�a�y�p�o�i�n�t�s�=�{�v�e�r�t�i�c�a�l�:�{�}�,�h�o�r�i�z�o�n�t�a�l�:�{�}�}�,�t�.�w�a�y�p�o�i�n�t�C�o�n�t�e�x�t�K�e�y�=�t�h�i�s�.�k�e�y�,�n�[�t�.�w�a�y�p�o�i�n�t�C�o�n�t�e�x�t�K�e�y�]�=�t�h�i�s�,�i�+�=�1�,�t�h�i�s�.�c�r�e�a�t�e�T�h�r�o�t�t�l�e�d�S�c�r�o�l�l�H�a�n�d�l�e�r�(�)�,�t�h�i�s�.�c�r�e�a�t�e�T�h�r�o�t�t�l�e�d�R�e�s�i�z�e�H�a�n�d�l�e�r�(�)�}�o�.�p�r�o�t�o�t�y�p�e�.�a�d�d�=�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�o�p�t�i�o�n�s�.�h�o�r�i�z�o�n�t�a�l�?�"�h�o�r�i�z�o�n�t�a�l�"�:�"�v�e�r�t�i�c�a�l�"�;�t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�e�]�[�t�.�k�e�y�]�=�t�,�t�h�i�s�.�r�e�f�r�e�s�h�(�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�c�h�e�c�k�E�m�p�t�y�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�A�d�a�p�t�e�r�.�i�s�E�m�p�t�y�O�b�j�e�c�t�(�t�h�i�s�.�w�a�y�p�o�i�n�t�s�.�h�o�r�i�z�o�n�t�a�l�)�,�e�=�t�h�i�s�.�A�d�a�p�t�e�r�.�i�s�E�m�p�t�y�O�b�j�e�c�t�(�t�h�i�s�.�w�a�y�p�o�i�n�t�s�.�v�e�r�t�i�c�a�l�)�;�t�&�&�e�&�&�(�t�h�i�s�.�a�d�a�p�t�e�r�.�o�f�f�(�"�.�w�a�y�p�o�i�n�t�s�"�)�,�d�e�l�e�t�e� �n�[�t�h�i�s�.�k�e�y�]�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�c�r�e�a�t�e�T�h�r�o�t�t�l�e�d�R�e�s�i�z�e�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�f�u�n�c�t�i�o�n� �e�(�)�{�t�.�h�a�n�d�l�e�R�e�s�i�z�e�(�)�,�t�.
1�d�i�d�R�e�s�i�z�e�=�!�1�}�t�h�i�s�.�a�d�a�p�t�e�r�.�o�n�(�"�r�e�s�i�z�e�.�w�a�y�p�o�i�n�t�s�"�,�f�u�n�c�t�i�o�n�(�)�{�t�.�d�i�d�R�e�s�i�z�e�|�|�(�t�.�d�i�d�R�e�s�i�z�e�=�!�0�,�p�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�e�)�)�}�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�c�r�e�a�t�e�T�h�r�o�t�t�l�e�d�S�c�r�o�l�l�H�a�n�d�l�e�r�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�;�f�u�n�c�t�i�o�n� �e�(�)�{�t�.�h�a�n�d�l�e�S�c�r�o�l�l�(�)�,�t�.�d�i�d�S�c�r�o�l�l�=�!�1�}�t�h�i�s�.�a�d�a�p�t�e�r�.�o�n�(�"�s�c�r�o�l�l�.�w�a�y�p�o�i�n�t�s�"�,�f�u�n�c�t�i�o�n�(�)�{�t�.�d�i�d�S�c�r�o�l�l�&�&�!�p�.�i�s�T�o�u�c�h�|�|�(�t�.�d�i�d�S�c�r�o�l�l�=�!�0�,�p�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�e�)�)�}�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�h�a�n�d�l�e�R�e�s�i�z�e�=�f�u�n�c�t�i�o�n�(�)�{�p�.�C�o�n�t�e�x�t�.�r�e�f�r�e�s�h�A�l�l�(�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�h�a�n�d�l�e�S�c�r�o�l�l�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�=�{�}�,�n�=�{�h�o�r�i�z�o�n�t�a�l�:�{�n�e�w�S�c�r�o�l�l�:�t�h�i�s�.�a�d�a�p�t�e�r�.�s�c�r�o�l�l�L�e�f�t�(�)�,�o�l�d�S�c�r�o�l�l�:�t�h�i�s�.�o�l�d�S�c�r�o�l�l�.�x�,�f�o�r�w�a�r�d�:�"�r�i�g�h�t�"�,�b�a�c�k�w�a�r�d�:�"�l�e�f�t�"�}�,�v�e�r�t�i�c�a�l�:�{�n�e�w�S�c�r�o�l�l�:�t�h�i�s�.�a�d�a�p�t�e�r�.�s�c�r�o�l�l�T�o�p�(�)�,�o�l�d�S�c�r�o�l�l�:�t�h�i�s�.�o�l�d�S�c�r�o�l�l�.�y�,�f�o�r�w�a�r�d�:�"�d�o�w�n�"�,�b�a�c�k�w�a�r�d�:�"�u�p�"�}�}�;�f�o�r�(�t� �i�n� �n�)�{�v�a�r� �o�,�s�=�n�[�t�]�,�r�=�s�.�n�e�w�S�c�r�o�l�l�>�s�.�o�l�d�S�c�r�o�l�l�?�s�.�f�o�r�w�a�r�d�:�s�.�b�a�c�k�w�a�r�d�;�f�o�r�(�o� �i�n� �t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�t�]�)�{�v�a�r� �a�=�t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�t�]�[�o�]�,�l�=�s�.�o�l�d�S�c�r�o�l�l�<�a�.�t�r�i�g�g�e�r�P�o�i�n�t�,�c�=�s�.�n�e�w�S�c�r�o�l�l�>�=�a�.�t�r�i�g�g�e�r�P�o�i�n�t�;�(�l�&�&�c�|�|�!�l�&�&�!�c�)�&�&�(�a�.�q�u�e�u�e�T�r�i�g�g�e�r�(�r�)�,�i�[�a�.�g�r�o�u�p�.�i�d�]�=�a�.�g�r�o�u�p�)�}�}�f�o�r�(�e� �i�n� �i�)�i�[�e�]�.�f�l�u�s�h�T�r�i�g�g�e�r�s�(�)�;�t�h�i�s�.�o�l�d�S�c�r�o�l�l�=�{�x�:�n�.�h�o�r�i�z�o�n�t�a�l�.�n�e�w�S�c�r�o�l�l�,�y�:�n�.�v�e�r�t�i�c�a�l�.�n�e�w�S�c�r�o�l�l�}�}�,�o�.�p�r�o�t�o�t�y�p�e�.�i�n�n�e�r�H�e�i�g�h�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�l�e�m�e�n�t�=�=�t�h�i�s�.�e�l�e�m�e�n�t�.�w�i�n�d�o�w�?�p�.�v�i�e�w�p�o�r�t�H�e�i�g�h�t�(�)�:�t�h�i�s�.�a�d�a�p�t�e�r�.�i�n�n�e�r�H�e�i�g�h�t�(�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�r�e�m�o�v�e�=�f�u�n�c�t�i�o�n�(�t�)�{�d�e�l�e�t�e� �t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�t�.�a�x�i�s�]�[�t�.�k�e�y�]�,�t�h�i�s�.�c�h�e�c�k�E�m�p�t�y�(�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�i�n�n�e�r�W�i�d�t�h�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�l�e�m�e�n�t�=�=�t�h�i�s�.�e�l�e�m�e�n�t�.�w�i�n�d�o�w�?�p�.�v�i�e�w�p�o�r�t�W�i�d�t�h�(�)�:�t�h�i�s�.�a�d�a�p�t�e�r�.�i�n�n�e�r�W�i�d�t�h�(�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�d�e�s�t�r�o�y�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�=�[�]�;�f�o�r�(�t� �i�n� �t�h�i�s�.�w�a�y�p�o�i�n�t�s�)�f�o�r�(�v�a�r� �i� �i�n� �t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�t�]�)�e�.�p�u�s�h�(�t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�t�]�[�i�]�)�;�f�o�r�(�v�a�r� �n�=�0�,�o�=�e�.�l�e�n�g�t�h�;�n�<�o�;�n�+�+�)�e�[�n�]�.�d�e�s�t�r�o�y�(�)�}�,�o�.�p�r�o�t�o�t�y�p�e�.�r�e�f�r�e�s�h�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�=�t�h�i�s�.�e�l�e�m�e�n�t�=�=�t�h�i�s�.�e�l�e�m�e�n�t�.�w�i�n�d�o�w�,�n�=�i�?�v�o�i�d� �0�:�t�h�i�s�.�a�d�a�p�t�e�r�.�o�f�f�s�e�t�(�)�,�o�=�{�}�;�f�o�r�(�e� �i�n� �t�h�i�s�.�h�a�n�d�l�e�S�c�r�o�l�l�(�)�,�t�=�{�h�o�r�i�z�o�n�t�a�l�:�{�c�o�n�t�e�x�t�O�f�f�s�e�t�:�i�?�0�:�n�.�l�e�f�t�,�c�o�n�t�e�x�t�S�c�r�o�l�l�:�i�?�0�:�t�h�i�s�.�o�l�d�S�c�r�o�l�l�.�x�,�c�o�n�t�e�x�t�D�i�m�e�n�s�i�o�n�:�t�h�i�s�.�i�n�n�e�r�W�i�d�t�h�(�)�,�o�l�d�S�c�r�o�l�l�:�t�h�i�s�.�o�l�d�S�c�r�o�l�l�.�x�,�f�o�r�w�a�r�d�:�"�r�i�g�h�t�"�,�b�a�c�k�w�a�r�d�:�"�l�e�f�t�"�,�o�f�f�s�e�t�P�r�o�p�:�"�l�e�f�t�"�}�,�v�e�r�t�i�c�a�l�:�{�c�o�n�t�e�x�t�O�f�f�s�e�t�:�i�?�0�:�n�.�t�o�p�,�c�o�n�t�e�x�t�S�c�r�o�l�l�:�i�?�0�:�t�h�i�s�.�o�l�d�S�c�r�o�l�l�.�y�,�c�o�n�t�e�x�t�D�i�m�e�n�s�i�o�n�:�t�h�i�s�.�i�n�n�e�r�H�e�i�g�h�t�(�)�,�o�l�d�S�c�r�o�l�l�:�t�h�i�s�.�o�l�d�S�c�r�o�l�l�.�y�,�f�o�r�w�a�r�d�:�"�d�o�w�n�"�,�b�a�c�k�w�a�r�d�:�"�u�p�"�,�o�f�f�s�e�t�P�r�o�p�:�"�t�o�p�"�}�}�)�{�v�a�r� �s�,�r�=�t�[�e�]�;�f�o�r�(�s� �i�n� �t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�e�]�)�{�v�a�r� �a�,�l�=�t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�e�]�[�s�]�,�c�=�l�.�o�p�t�i�o�n�s�.�o�f�f�s�e�t�,�d�=�l�.�t�r�i�g�g�e�r�P�o�i�n�t�,�u�=�0�,�h�=�n�u�l�l�=�=�d�;�l�.�e�l�e�m�e�n�t�!�=�=�l�.�e�l�e�m�e�n�t�.�w�i�n�d�o�w�&�&�(�u�=�l�.�a�d�a�
1p�t�e�r�.�o�f�f�s�e�t�(�)�[�r�.�o�f�f�s�e�t�P�r�o�p�]�)�,�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �c�?�c�=�c�.�a�p�p�l�y�(�l�)�:�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �c�&�&�(�c�=�p�a�r�s�e�F�l�o�a�t�(�c�)�,�-�1�<�l�.�o�p�t�i�o�n�s�.�o�f�f�s�e�t�.�i�n�d�e�x�O�f�(�"�%�"�)�&�&�(�c�=�M�a�t�h�.�c�e�i�l�(�r�.�c�o�n�t�e�x�t�D�i�m�e�n�s�i�o�n�*�c�/�1�0�0�)�)�)�,�a�=�r�.�c�o�n�t�e�x�t�S�c�r�o�l�l�-�r�.�c�o�n�t�e�x�t�O�f�f�s�e�t�,�l�.�t�r�i�g�g�e�r�P�o�i�n�t�=�u�+�a�-�c�,�u�=�d�<�r�.�o�l�d�S�c�r�o�l�l�,�a�=�l�.�t�r�i�g�g�e�r�P�o�i�n�t�>�=�r�.�o�l�d�S�c�r�o�l�l�,�c�=�!�u�&�&�!�a�,�!�h�&�&�(�u�&�&�a�)�?�(�l�.�q�u�e�u�e�T�r�i�g�g�e�r�(�r�.�b�a�c�k�w�a�r�d�)�,�o�[�l�.�g�r�o�u�p�.�i�d�]�=�l�.�g�r�o�u�p�)�:�(�!�h�&�&�c�|�|�h�&�&�r�.�o�l�d�S�c�r�o�l�l�>�=�l�.�t�r�i�g�g�e�r�P�o�i�n�t�)�&�&�(�l�.�q�u�e�u�e�T�r�i�g�g�e�r�(�r�.�f�o�r�w�a�r�d�)�,�o�[�l�.�g�r�o�u�p�.�i�d�]�=�l�.�g�r�o�u�p�)�}�}�r�e�t�u�r�n� �p�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t� �i�n� �o�)�o�[�t�]�.�f�l�u�s�h�T�r�i�g�g�e�r�s�(�)�}�)�,�t�h�i�s�}�,�o�.�f�i�n�d�O�r�C�r�e�a�t�e�B�y�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �o�.�f�i�n�d�B�y�E�l�e�m�e�n�t�(�t�)�|�|�n�e�w� �o�(�t�)�}�,�o�.�r�e�f�r�e�s�h�A�l�l�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t� �i�n� �n�)�n�[�t�]�.�r�e�f�r�e�s�h�(�)�}�,�o�.�f�i�n�d�B�y�E�l�e�m�e�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �n�[�t�.�w�a�y�p�o�i�n�t�C�o�n�t�e�x�t�K�e�y�]�}�,�w�i�n�d�o�w�.�o�n�l�o�a�d�=�f�u�n�c�t�i�o�n�(�)�{�t�&�&�t�(�)�,�o�.�r�e�f�r�e�s�h�A�l�l�(�)�}�,�p�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�=�f�u�n�c�t�i�o�n�(�t�)�{�(�w�i�n�d�o�w�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�|�|�w�i�n�d�o�w�.�m�o�z�R�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�|�|�w�i�n�d�o�w�.�w�e�b�k�i�t�R�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�|�|�e�)�.�c�a�l�l�(�w�i�n�d�o�w�,�t�)�}�,�p�.�C�o�n�t�e�x�t�=�o�}�(�)�,�!�f�u�n�c�t�i�o�n�(�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �s�(�t�,�e�)�{�r�e�t�u�r�n� �t�.�t�r�i�g�g�e�r�P�o�i�n�t�-�e�.�t�r�i�g�g�e�r�P�o�i�n�t�}�f�u�n�c�t�i�o�n� �r�(�t�,�e�)�{�r�e�t�u�r�n� �e�.�t�r�i�g�g�e�r�P�o�i�n�t�-�t�.�t�r�i�g�g�e�r�P�o�i�n�t�}�v�a�r� �e�=�{�v�e�r�t�i�c�a�l�:�{�}�,�h�o�r�i�z�o�n�t�a�l�:�{�}�}�,�i�=�w�i�n�d�o�w�.�W�a�y�p�o�i�n�t�;�f�u�n�c�t�i�o�n� �n�(�t�)�{�t�h�i�s�.�n�a�m�e�=�t�.�n�a�m�e�,�t�h�i�s�.�a�x�i�s�=�t�.�a�x�i�s�,�t�h�i�s�.�i�d�=�t�h�i�s�.�n�a�m�e�+�"�-�"�+�t�h�i�s�.�a�x�i�s�,�t�h�i�s�.�w�a�y�p�o�i�n�t�s�=�[�]�,�t�h�i�s�.�c�l�e�a�r�T�r�i�g�g�e�r�Q�u�e�u�e�s�(�)�,�e�[�t�h�i�s�.�a�x�i�s�]�[�t�h�i�s�.�n�a�m�e�]�=�t�h�i�s�}�n�.�p�r�o�t�o�t�y�p�e�.�a�d�d�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�w�a�y�p�o�i�n�t�s�.�p�u�s�h�(�t�)�}�,�n�.�p�r�o�t�o�t�y�p�e�.�c�l�e�a�r�T�r�i�g�g�e�r�Q�u�e�u�e�s�=�f�u�n�c�t�i�o�n�(�)�{�t�h�i�s�.�t�r�i�g�g�e�r�Q�u�e�u�e�s�=�{�u�p�:�[�]�,�d�o�w�n�:�[�]�,�l�e�f�t�:�[�]�,�r�i�g�h�t�:�[�]�}�}�,�n�.�p�r�o�t�o�t�y�p�e�.�f�l�u�s�h�T�r�i�g�g�e�r�s�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �t� �i�n� �t�h�i�s�.�t�r�i�g�g�e�r�Q�u�e�u�e�s�)�{�v�a�r� �e�=�t�h�i�s�.�t�r�i�g�g�e�r�Q�u�e�u�e�s�[�t�]�;�e�.�s�o�r�t�(�"�u�p�"�=�=�=�t�|�|�"�l�e�f�t�"�=�=�=�t�?�r�:�s�)�;�f�o�r�(�v�a�r� �i�=�0�,�n�=�e�.�l�e�n�g�t�h�;�i�<�n�;�i�+�=�1�)�{�v�a�r� �o�=�e�[�i�]�;�!�o�.�o�p�t�i�o�n�s�.�c�o�n�t�i�n�u�o�u�s�&�&�i�!�=�=�e�.�l�e�n�g�t�h�-�1�|�|�o�.�t�r�i�g�g�e�r�(�[�t�]�)�}�}�t�h�i�s�.�c�l�e�a�r�T�r�i�g�g�e�r�Q�u�e�u�e�s�(�)�}�,�n�.�p�r�o�t�o�t�y�p�e�.�n�e�x�t�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�w�a�y�p�o�i�n�t�s�.�s�o�r�t�(�s�)�;�t�=�i�.�A�d�a�p�t�e�r�.�i�n�A�r�r�a�y�(�t�,�t�h�i�s�.�w�a�y�p�o�i�n�t�s�)�;�r�e�t�u�r�n� �t�=�=�=�t�h�i�s�.�w�a�y�p�o�i�n�t�s�.�l�e�n�g�t�h�-�1�?�n�u�l�l�:�t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�t�+�1�]�}�,�n�.�p�r�o�t�o�t�y�p�e�.�p�r�e�v�i�o�u�s�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�w�a�y�p�o�i�n�t�s�.�s�o�r�t�(�s�)�;�t�=�i�.�A�d�a�p�t�e�r�.�i�n�A�r�r�a�y�(�t�,�t�h�i�s�.�w�a�y�p�o�i�n�t�s�)�;�r�e�t�u�r�n� �t�?�t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�t�-�1�]�:�n�u�l�l�}�,�n�.�p�r�o�t�o�t�y�p�e�.�q�u�e�u�e�T�r�i�g�g�e�r�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�t�h�i�s�.�t�r�i�g�g�e�r�Q�u�e�u�e�s�[�e�]�.�p�u�s�h�(�t�)�}�,�n�.�p�r�o�t�o�t�y�p�e�.�r�e�m�o�v�e�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�i�.�A�d�a�p�t�e�r�.�i�n�A�r�r�a�y�(�t�,�t�h�i�s�.�w�a�y�p�o�i�n�t�s�)�;�-�1�<�t�&�&�t�h�i�s�.�w�a�y�p�o�i�n�t�s�.�s�p�l�i�c�e�(�t�,�1�)�}�,�n�.�p�r�o�t�o�t�y�p�e�.�f�i�r�s�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�0�]�}�,�n�.�p�r�o�t�o�t�y�p�e�.�l�a�s�t�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�w�a�y�p�o�i�n�t�s�[�t�h�i�s�.�w�a�y�p�o�i�n�t�s�.�l�e�n�g�t�h�-�1�]�}�,�n�.�f�i�n�d�O�r�C�r�e�a�t�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �e�[�t�.
1�a�x�i�s�]�[�t�.�n�a�m�e�]�|�|�n�e�w� �n�(�t�)�}�,�i�.�G�r�o�u�p�=�n�}�(�)�,�!�f�u�n�c�t�i�o�n�(�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�v�a�r� �i�=�w�i�n�d�o�w�.�j�Q�u�e�r�y�,�t�=�w�i�n�d�o�w�.�W�a�y�p�o�i�n�t�;�f�u�n�c�t�i�o�n� �n�(�t�)�{�t�h�i�s�.�$�e�l�e�m�e�n�t�=�i�(�t�)�}�i�.�e�a�c�h�(�[�"�i�n�n�e�r�H�e�i�g�h�t�"�,�"�i�n�n�e�r�W�i�d�t�h�"�,�"�o�f�f�"�,�"�o�f�f�s�e�t�"�,�"�o�n�"�,�"�o�u�t�e�r�H�e�i�g�h�t�"�,�"�o�u�t�e�r�W�i�d�t�h�"�,�"�s�c�r�o�l�l�L�e�f�t�"�,�"�s�c�r�o�l�l�T�o�p�"�]�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�n�.�p�r�o�t�o�t�y�p�e�[�e�]�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�A�r�r�a�y�.�p�r�o�t�o�t�y�p�e�.�s�l�i�c�e�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�)�;�r�e�t�u�r�n� �t�h�i�s�.�$�e�l�e�m�e�n�t�[�e�]�.�a�p�p�l�y�(�t�h�i�s�.�$�e�l�e�m�e�n�t�,�t�)�}�}�)�,�i�.�e�a�c�h�(�[�"�e�x�t�e�n�d�"�,�"�i�n�A�r�r�a�y�"�,�"�i�s�E�m�p�t�y�O�b�j�e�c�t�"�]�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�n�[�e�]�=�i�[�e�]�}�)�,�t�.�a�d�a�p�t�e�r�s�.�p�u�s�h�(�{�n�a�m�e�:�"�j�q�u�e�r�y�"�,�A�d�a�p�t�e�r�:�n�}�)�,�t�.�A�d�a�p�t�e�r�=�n�}�(�)�,�!�f�u�n�c�t�i�o�n�(�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�v�a�r� �o�=�w�i�n�d�o�w�.�W�a�y�p�o�i�n�t�;�f�u�n�c�t�i�o�n� �t�(�n�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�[�]�,�i�=�a�r�g�u�m�e�n�t�s�[�0�]�;�r�e�t�u�r�n� �n�.�i�s�F�u�n�c�t�i�o�n�(�a�r�g�u�m�e�n�t�s�[�0�]�)�&�&�(�(�i�=�n�.�e�x�t�e�n�d�(�{�}�,�a�r�g�u�m�e�n�t�s�[�1�]�)�)�.�h�a�n�d�l�e�r�=�a�r�g�u�m�e�n�t�s�[�0�]�)�,�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�n�.�e�x�t�e�n�d�(�{�}�,�i�,�{�e�l�e�m�e�n�t�:�t�h�i�s�}�)�;�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�.�c�o�n�t�e�x�t�&�&�(�t�.�c�o�n�t�e�x�t�=�n�(�t�h�i�s�)�.�c�l�o�s�e�s�t�(�t�.�c�o�n�t�e�x�t�)�[�0�]�)�,�e�.�p�u�s�h�(�n�e�w� �o�(�t�)�)�}�)�,�e�}�}�w�i�n�d�o�w�.�j�Q�u�e�r�y�&�&�(�w�i�n�d�o�w�.�j�Q�u�e�r�y�.�f�n�.�w�a�y�p�o�i�n�t�=�t�(�w�i�n�d�o�w�.�j�Q�u�e�r�y�)�)�,�w�i�n�d�o�w�.�Z�e�p�t�o�&�&�(�w�i�n�d�o�w�.�Z�e�p�t�o�.�f�n�.�w�a�y�p�o�i�n�t�=�t�(�w�i�n�d�o�w�.�Z�e�p�t�o�)�)�}�(�)�,�!�f�u�n�c�t�i�o�n�(�t�,�e�)�{�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�e�)�:�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�x�p�o�r�t�s�?�m�o�d�u�l�e�.�e�x�p�o�r�t�s�=�e�(�r�e�q�u�i�r�e�,�e�x�p�o�r�t�s�,�m�o�d�u�l�e�)�:�t�.�C�o�u�n�t�U�p�=�e�(�)�}�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�,�o�,�s�)�{�v�a�r� �r�=�t�h�i�s�;�i�f�(�r�.�v�e�r�s�i�o�n�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�"�1�.�9�.�3�"�}�,�r�.�o�p�t�i�o�n�s�=�{�u�s�e�E�a�s�i�n�g�:�!�0�,�u�s�e�G�r�o�u�p�i�n�g�:�!�0�,�s�e�p�a�r�a�t�o�r�:�"�,�"�,�d�e�c�i�m�a�l�:�"�.�"�,�e�a�s�i�n�g�F�n�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�r�e�t�u�r�n� �i�*�(�1�-�M�a�t�h�.�p�o�w�(�2�,�-�1�0�*�t�/�n�)�)�*�1�0�2�4�/�1�0�2�3�+�e�}�,�f�o�r�m�a�t�t�i�n�g�F�n�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�i�,�n�,�o�,�s�=�t�<�0�;�i�f�(�t�=�M�a�t�h�.�a�b�s�(�t�)�.�t�o�F�i�x�e�d�(�r�.�d�e�c�i�m�a�l�s�)�,�t�=�(�t�+�=�"�"�)�.�s�p�l�i�t�(�"�.�"�)�,�e�=�t�[�0�]�,�t�=�1�<�t�.�l�e�n�g�t�h�?�r�.�o�p�t�i�o�n�s�.�d�e�c�i�m�a�l�+�t�[�1�]�:�"�"�,�r�.�o�p�t�i�o�n�s�.�u�s�e�G�r�o�u�p�i�n�g�)�{�f�o�r�(�i�=�"�"�,�n�=�0�,�o�=�e�.�l�e�n�g�t�h�;�n�<�o�;�+�+�n�)�0�!�=�=�n�&�&�n�%�3�=�=�0�&�&�(�i�=�r�.�o�p�t�i�o�n�s�.�s�e�p�a�r�a�t�o�r�+�i�)�,�i�=�e�[�o�-�n�-�1�]�+�i�;�e�=�i�}�r�.�o�p�t�i�o�n�s�.�n�u�m�e�r�a�l�s�.�l�e�n�g�t�h�&�&�(�e�=�e�.�r�e�p�l�a�c�e�(�/�[�0�-�9�]�/�g�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �r�.�o�p�t�i�o�n�s�.�n�u�m�e�r�a�l�s�[�+�t�]�}�)�,�t�=�t�.�r�e�p�l�a�c�e�(�/�[�0�-�9�]�/�g�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �r�.�o�p�t�i�o�n�s�.�n�u�m�e�r�a�l�s�[�+�t�]�}�)�)�;�r�e�t�u�r�n�(�s�?�"�-�"�:�"�"�)�+�r�.�o�p�t�i�o�n�s�.�p�r�e�f�i�x�+�e�+�t�+�r�.�o�p�t�i�o�n�s�.�s�u�f�f�i�x�}�,�p�r�e�f�i�x�:�"�"�,�s�u�f�f�i�x�:�"�"�,�n�u�m�e�r�a�l�s�:�[�]�}�,�s�&�&�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �s�)�f�o�r�(�v�a�r� �a� �i�n� �r�.�o�p�t�i�o�n�s�)�s�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�a�)�&�&�n�u�l�l�!�=�=�s�[�a�]�&�&�(�r�.�o�p�t�i�o�n�s�[�a�]�=�s�[�a�]�)�;�"�"�=�=�=�r�.�o�p�t�i�o�n�s�.�s�e�p�a�r�a�t�o�r�?�r�.�o�p�t�i�o�n�s�.�u�s�e�G�r�o�u�p�i�n�g�=�!�1�:�r�.�o�p�t�i�o�n�s�.�s�e�p�a�r�a�t�o�r�=�"�"�+�r�.�o�p�t�i�o�n�s�.�s�e�p�a�r�a�t�o�r�;�f�o�r�(�v�a�r� �l�=�0�,�c�=�[�"�w�e�b�k�i�t�"�,�"�m�o�z�"�,�"�m�s�"�,�"�o�"�]�,�d�=�0�;�d�<�c�.�l�e�n�g�t�h�&�&�!�w�i�n�d�o�w�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�
1F�r�a�m�e�;�+�+�d�)�w�i�n�d�o�w�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�=�w�i�n�d�o�w�[�c�[�d�]�+�"�R�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�"�]�,�w�i�n�d�o�w�.�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�=�w�i�n�d�o�w�[�c�[�d�]�+�"�C�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�"�]�|�|�w�i�n�d�o�w�[�c�[�d�]�+�"�C�a�n�c�e�l�R�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�"�]�;�f�u�n�c�t�i�o�n� �u�(�t�)�{�r�e�t�u�r�n�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�&�&�!�i�s�N�a�N�(�t�)�}�w�i�n�d�o�w�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�|�|�(�w�i�n�d�o�w�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�=�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�(�n�e�w� �D�a�t�e�)�.�g�e�t�T�i�m�e�(�)�,�n�=�M�a�t�h�.�m�a�x�(�0�,�1�6�-�(�i�-�l�)�)�,�o�=�w�i�n�d�o�w�.�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�t�(�i�+�n�)�}�,�n�)�;�r�e�t�u�r�n� �l�=�i�+�n�,�o�}�)�,�w�i�n�d�o�w�.�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�|�|�(�w�i�n�d�o�w�.�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�=�f�u�n�c�t�i�o�n�(�t�)�{�c�l�e�a�r�T�i�m�e�o�u�t�(�t�)�}�)�,�r�.�i�n�i�t�i�a�l�i�z�e�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�!�r�.�i�n�i�t�i�a�l�i�z�e�d�|�|�(�r�.�e�r�r�o�r�=�"�"�,�r�.�d�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�?�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�t�)�:�t�,�r�.�d�?�(�r�.�s�t�a�r�t�V�a�l�=�N�u�m�b�e�r�(�e�)�,�r�.�e�n�d�V�a�l�=�N�u�m�b�e�r�(�i�)�,�u�(�r�.�s�t�a�r�t�V�a�l�)�&�&�u�(�r�.�e�n�d�V�a�l�)�?�(�r�.�d�e�c�i�m�a�l�s�=�M�a�t�h�.�m�a�x�(�0�,�n�|�|�0�)�,�r�.�d�e�c�=�M�a�t�h�.�p�o�w�(�1�0�,�r�.�d�e�c�i�m�a�l�s�)�,�r�.�d�u�r�a�t�i�o�n�=�1�e�3�*�N�u�m�b�e�r�(�o�)�|�|�2�e�3�,�r�.�c�o�u�n�t�D�o�w�n�=�r�.�s�t�a�r�t�V�a�l�>�r�.�e�n�d�V�a�l�,�r�.�f�r�a�m�e�V�a�l�=�r�.�s�t�a�r�t�V�a�l�,�r�.�i�n�i�t�i�a�l�i�z�e�d�=�!�0�)�:�(�r�.�e�r�r�o�r�=�"�[�C�o�u�n�t�U�p�]� �s�t�a�r�t�V�a�l� �(�"�+�e�+�"�)� �o�r� �e�n�d�V�a�l� �(�"�+�i�+�"�)� �i�s� �n�o�t� �a� �n�u�m�b�e�r�"�,�!�1�)�)�:�!�(�r�.�e�r�r�o�r�=�"�[�C�o�u�n�t�U�p�]� �t�a�r�g�e�t� �i�s� �n�u�l�l� �o�r� �u�n�d�e�f�i�n�e�d�"�)�)�}�,�r�.�p�r�i�n�t�V�a�l�u�e�=�f�u�n�c�t�i�o�n�(�t�)�{�t�=�r�.�o�p�t�i�o�n�s�.�f�o�r�m�a�t�t�i�n�g�F�n�(�t�)�;�"�I�N�P�U�T�"�=�=�=�r�.�d�.�t�a�g�N�a�m�e�?�t�h�i�s�.�d�.�v�a�l�u�e�=�t�:�"�t�e�x�t�"�=�=�=�r�.�d�.�t�a�g�N�a�m�e�|�|�"�t�s�p�a�n�"�=�=�=�r�.�d�.�t�a�g�N�a�m�e�?�t�h�i�s�.�d�.�t�e�x�t�C�o�n�t�e�n�t�=�t�:�t�h�i�s�.�d�.�i�n�n�e�r�H�T�M�L�=�t�}�,�r�.�c�o�u�n�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�.�s�t�a�r�t�T�i�m�e�|�|�(�r�.�s�t�a�r�t�T�i�m�e�=�t�)�;
1�t�=�(�r�.�t�i�m�e�s�t�a�m�p�=�t�)�-�r�.�s�t�a�r�t�T�i�m�e�;�r�.�r�e�m�a�i�n�i�n�g�=�r�.�d�u�r�a�t�i�o�n�-�t�,�r�.�o�p�t�i�o�n�s�.�u�s�e�E�a�s�i�n�g�?�r�.�c�o�u�n�t�D�o�w�n�?�r�.�f�r�a�m�e�V�a�l�=�r�.�s�t�a�r�t�V�a�l�-�r�.�o�p�t�i�o�n�s�.�e�a�s�i�n�g�F�n�(�t�,�0�,�r�.�s�t�a�r�t�V�a�l�-�r�.�e�n�d�V�a�l�,�r�.�d�u�r�a�t�i�o�n�)�:�r�.�f�r�a�m�e�V�a�l�=�r�.�o�p�t�i�o�n�s�.�e�a�s�i�n�g�F�n�(�t�,�r�.�s�t�a�r�t�V�a�l�,�r�.�e�n�d�V�a�l�-�r�.�s�t�a�r�t�V�a�l�,�r�.�d�u�r�a�t�i�o�n�)�:�r�.�c�o�u�n�t�D�o�w�n�?�r�.�f�r�a�m�e�V�a�l�=�r�.�s�t�a�r�t�V�a�l�-�(�r�.�s�t�a�r�t�V�a�l�-�r�.�e�n�d�V�a�l�)�*�(�t�/�r�.�d�u�r�a�t�i�o�n�)�:�r�.�f�r�a�m�e�V�a�l�=�r�.�s�t�a�r�t�V�a�l�+�(�r�.�e�n�d�V�a�l�-�r�.�s�t�a�r�t�V�a�l�)�*�(�t�/�r�.�d�u�r�a�t�i�o�n�)�,�r�.�c�o�u�n�t�D�o�w�n�?�r�.�f�r�a�m�e�V�a�l�=�r�.�f�r�a�m�e�V�a�l�<�r�.�e�n�d�V�a�l�?�r�.�e�n�d�V�a�l�:�r�.�f�r�a�m�e�V�a�l�:�r�.�f�r�a�m�e�V�a�l�=�r�.�f�r�a�m�e�V�a�l�>�r�.�e�n�d�V�a�l�?�r�.�e�n�d�V�a�l�:�r�.�f�r�a�m�e�V�a�l�,�r�.�f�r�a�m�e�V�a�l�=�M�a�t�h�.�r�o�u�n�d�(�r�.�f�r�a�m�e�V�a�l�*�r�.�d�e�c�)�/�r�.�d�e�c�,�r�.�p�r�i�n�t�V�a�l�u�e�(�r�.�f�r�a�m�e�V�a�l�)�,�t�<�r�.�d�u�r�a�t�i�o�n�?�r�.�r�A�F�=�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�r�.�c�o�u�n�t�)�:�r�.�c�a�l�l�b�a�c�k�&�&�r�.�c�a�l�l�b�a�c�k�(�)�}�,�r�.�s�t�a�r�t�=�f�u�n�c�t�i�o�n�(�t�)�{�r�.�i�n�i�t�i�a�l�i�z�e�(�)�&�&�(�r�.�c�a�l�l�b�a�c�k�=�t�,�r�.�r�A�F�=�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�r�.�c�o�u�n�t�)�)�}�,�r�.�p�a�u�s�e�R�e�s�u�m�e�=�f�u�n�c�t�i�o�n�(�)�{�r�.�p�a�u�s�e�d�?�(�r�.�p�a�u�s�e�d�=�!�1�,�d�e�l�e�t�e� �r�.�s�t�a�r�t�T�i�m�e�,�r�.�d�u�r�a�t�i�o�n�=�r�.�r�e�m�a�i�n�i�n�g�,�r�.�s�t�a�r�t�V�a�l�=�r�.�f�r�a�m�e�V�a�l�,�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�r�.�c�o�u�n�t�)�)�:�(�r�.�p�a�u�s�e�d�=�!�0�,�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�r�.�r�A�F�)�)�}�,�r�.�r�e�s�e�t�=�f�u�n�c�t�i�o�n�(�)�{�r�.�p�a�u�s�e�d�=�!�1�,�d�e�l�e�t�e� �r�.�s�t�a�r�t�T�i�m�e�,�r�.�i�n�i�t�i�a�l�i�z�e�d�=�!�1�,�r�.�i�n�i�t�i�a�l�i�z�e�(�)�&�&�(�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�r�.�r�A�F�)�,�r�.�p�r�i�n�t�V�a�l�u�e�(�r�.�s�t�a�r�t�V�a�l�)�)�}�,�r�.�u�p�d�a�t�e�=�f�u�n�c�t�i�o�n�(�t�)�{�r�.�i�n�i�t�i�a�l�i�z�e�(�)�&�&�(�u�(�t�=�N�u�m�b�e�r�(�t�)�)�?�(�r�.�e�r�r�o�r�=�"�"�,�t�!�=�=�r�.�f�r�a�m�e�V�a�l�&�&�(�c�a�n�c�e�l�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�r�.�r�A�F�)�,�r�.�p�a�u�s�e�d�=�!�1�,�d�e�l�e�t�e� �r�.�s�t�a�r�t�T�i�m�e�,�r�.�s�t�a�r�t�V�a�l�=�r�.�f�r�a�m�e�V�a�l�,�r�.�e�n�d�V�a�l�=�t�,�r�.�c�o�u�n�t�D�o�w�n�=�r�.�s�t�a�r�t�V�a�l�>�r�.�e�n�d�V�a�l�,�r�.�r�A�F�=�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�r�.�c�o�u�n�t�)�)�)�:�r�.�e�r�r�o�r�=�"�[�C�o�u�n�t�U�p�]� �u�p�d�a�t�e�(�)� �-� �n�e�w� �e�n�d�V�a�l� �i�s� �n�o�t� �a� �n�u�m�b�e�r�:� �"�+�t�)�}�,�r�.�i�n�i�t�i�a�l�i�z�e�(�)�&�&�r�.�p�r�i�n�t�V�a�l�u�e�(�r�.�s�t�a�r�t�V�a�l�)�}�}�)�,�!�f�u�n�c�t�i�o�n�(�t�,�e�)�{�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�?�d�e�f�i�n�e�(�[�"�j�q�u�e�r�y�"�]�,�e�)�:�e�(�t�.�j�Q�u�e�r�y�)�}�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�v�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�f�u�n�c�t�i�o�n� �t�(�t�)�{�v�a�r� �e�;�c�.�s�c�r�o�l�l�|�|�(�c�.�o�v�e�r�l�a�y�=�!�(�(�e�=�s�(�!�0�)�)�.�h�e�i�g�h�t�|�|�e�.�w�i�d�t�h�)�,�c�.�s�c�r�o�l�l�=�s�(�)�,�d�(�)�,�v�(�w�i�n�d�o�w�)�.�r�e�s�i�z�e�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�=�!�1�;�!�c�.�s�c�r�o�l�l�|�|�!�c�.�s�c�r�o�l�l�.�h�e�i�g�h�t�&�&�!�c�.�s�c�r�o�l�l�.�w�i�d�t�h�|�|�(�t�=�s�(�)�)�.�h�e�i�g�h�t�=�=�=�c�.�s�c�r�o�l�l�.�h�e�i�g�h�t�&�&�t�.�w�i�d�t�h�=�=�=�c�.�s�c�r�o�l�l�.�w�i�d�t�h�|�|�(�c�.�s�c�r�o�l�l�=�t�,�e�=�!�0�)�,�d�(�e�)�}�)�)�,�t�h�i�s�.�c�o�n�t�a�i�n�e�r�=�t�,�t�h�i�s�.�n�a�m�e�s�p�a�c�e�=�"�.�s�c�r�o�l�l�b�a�r�_�"�+�c�.�d�a�t�a�.�i�n�d�e�x�+�+�,�t�h�i�s�.�o�p�t�i�o�n�s�=�v�.�e�x�t�e�n�d�(�{�}�,�n�,�w�i�n�d�o�w�.�j�Q�u�e�r�y�S�c�r�o�l�l�b�a�r�O�p�t�i�o�n�s�|�|�{�}�)�,�t�h�i�s�.�s�c�r�o�l�l�T�o�=�n�u�l�l�,�t�h�i�s�.�s�c�r�o�l�l�x�=�{�}�,�t�h�i�s�.�s�c�r�o�l�l�y�=�{�}�,�t�.�d�a�t�a�(�c�.�d�a�t�a�.�n�a�m�e�,�t�h�i�s�)�,�c�.�s�c�r�o�l�l�s�.�a�d�d�(�t�h�i�s�)�}�v�a�r� �l�,�i�,�c�=�{�d�a�t�a�:�{�i�n�d�e�x�:�0�,�n�a�m�e�:�"�s�c�r�o�l�l�b�a�r�"�}�,�m�a�c�o�s�x�:�/�m�a�c�/�i�.�t�e�s�t�(�n�a�v�i�g�a�t�o�r�.�p�l�a�t�f�o�r�m�)�,�m�o�b�i�l�e�:�/�a�n�d�r�o�i�d�|�w�e�b�o�s�|�i�p�h�o�n�e�|�i�p�a�d�|�i�p�o�d�|�b�l�a�c�k�b�e�r�r�y�/�i�.�t�e�s�t�(�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�)�,�o�v�e�r�l�a�y�:�n�u�l�l�,�s�c�r�o�l�l�:�n�u�l�l�,�s�c�r�o�l�l�s�:�[�]�,�w�e�b�k�i�t�:�/�w�e�b�k�i�t�/�i�.�t�e�s�t�(�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�)�&�&�!�/�e�d�g�e�\�/�\�d�+�/�i�.�t�e�s�t�(�n�a�v�i�g�a�t�o�r�.�u�s�e�r�A�g�e�n�t�)�}�,�n�=�(�c�.�s�c�r�o�l�l�s�.�a�d�d�=�f�u�n�c�t�i�o�n�(�t�)�{�t�h�i�s�.�r�e�m�o�v�e�(�t�)�.�p�u�s�h�(�t�)�}�,�{�a�u�t�o�S�c�r�o�l�l�S�i�z�e�:�!�0�,�a�u�t�o�U�p�d�a�t�e�:�!�0�,�d�e�b�u�g�:�!�(�c�.�s�c�r�o�l�l�s�.�r�e�m�o�v�e�=�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�;�0�<�=�v�.�i�n�A�r�r�a�y�(�t�,�t�h�i�s�)�;�)�t�h�i�s�.�s�p�l�i�c�e�(�v�.�i�n�A�r�r�a�y�(�t�,�t�h�i�s�)�,�1�)�;�r�e�t�u�r�n� �t�h�i�s�}�)�,�d�i�s�a�b�l�e�B�o�d�y�S�c�r�o�l�l�:�!�1�,�d�u�r�a�t�i�o�n�:�2�0�0�,�i�g�n�o�r�e�M�o�b�i�l�e�:�!�1�,�i�g�n�o�r�e�O�v�e�r�l�a�y�:�!�1�,�s�c�r�o�l�l�S�t�e�p�:�3�0�,�s�h�o�w�A�r�r�o�w�s�:�!�1�,�s�t�e�p�S�c�r�o�l�l�i�n�g�:�!�0�,�s�c�r�o�l�l�x�:�n�u�l�l�,�s�c�r�o�l�l�y�:�n�u�l�l�,�o�n�D�e�s�t�r�o�y�:�n�u�l�l�,�o�n�I�n�i�t�:�n�u�l�l�,�o�n�S�c�r�o�l�l�:�n�u�l�l�,�o�n�U�p�d�a�t�e�:�n�u�l�l�}�)�,�o�=�(�t�.�p�r�o�t�o�t�y�p�e�=�{�d�e�s�t�r�o�y�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�;�t�h�i�s�.�w�r�a�p�p�e�r�&�&�(�t�h�i�s�.�c�o�n�t�a�i�n�e�r�.�r�e�m�o�v�e�D�a�t�a�(�c�.�d�a�t�a�.�n�a�m�e�)�,�c�.�s�c�r�o�l�l�s�.�r�e�m�o�v�e�(�t�h�i�s�)�,�t�=�t�h�i�s�.�c�o�n�t�a�i�n�e�r�.�s�c�r�o�l�l�L�e�f�t�(�)�,�e�=�t�h�i�s�.�c�o�n�t�a�i�n�e�r�.�s�c�r�o�l�l�T�o�p�(�)�,�t�h�i�s�.�c�o�n�t�a�i�n�e�r�.�i�n�s�e�r�t�B�e�f�
1o�r�e�(�t�h�i�s�.�w�r�a�p�p�e�r�)�.�c�s�s�(�{�h�e�i�g�h�t�:�"�"�,�m�a�r�g�i�n�:�"�"�,�"�m�a�x�-�h�e�i�g�h�t�"�:�"�"�}�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�c�r�o�l�l�-�c�o�n�t�e�n�t� �s�c�r�o�l�l�-�s�c�r�o�l�l�x�_�v�i�s�i�b�l�e� �s�c�r�o�l�l�-�s�c�r�o�l�l�y�_�v�i�s�i�b�l�e�"�)�.�o�f�f�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�)�.�s�c�r�o�l�l�L�e�f�t�(�t�)�.�s�c�r�o�l�l�T�o�p�(�e�)�,�t�h�i�s�.�s�c�r�o�l�l�x�.�s�c�r�o�l�l�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�c�r�o�l�l�-�s�c�r�o�l�l�x�_�v�i�s�i�b�l�e�"�)�.�f�i�n�d�(�"�d�i�v�"�)�.�a�n�d�S�e�l�f�(�)�.�o�f�f�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�)�,�t�h�i�s�.�s�c�r�o�l�l�y�.�s�c�r�o�l�l�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�c�r�o�l�l�-�s�c�r�o�l�l�y�_�v�i�s�i�b�l�e�"�)�.�f�i�n�d�(�"�d�i�v�"�)�.�a�n�d�S�e�l�f�(�)�.�o�f�f�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�)�,�t�h�i�s�.�w�r�a�p�p�e�r�.�r�e�m�o�v�e�(�)�,�v�(�d�o�c�u�m�e�n�t�)�.�a�d�d�(�"�b�o�d�y�"�)�.�o�f�f�(�t�h�i�s�.�n�a�m�e�s�p�a�c�e�)�,�v�.�i�s�F�u�n�c�t�i�o�n�(�t�h�i�s�.�o�p�t�i�o�n�s�.�o�n�D�e�s�t�r�o�y�)�&�&�t�h�i�s�.�o�p�t�i�o�n�s�.�o�n�D�e�s�t�r�o�y�.�a�p�p�l�y�(�t�h�i�s�,�[�t�h�i�s�.�c�o�n�t�a�i�n�e�r�]�)�)�}�,�i�n�i�t�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�h�=�t�h�i�s�,�p�=�t�h�i�s�.�c�o�n�t�a�i�n�e�r�,�n�=�t�h�i�s�.�c�o�n�t�a�i�n�e�r�W�r�a�p�p�e�r�|�|�p�,�f�=�t�h�i�s�.�n�a�m�e�s�p�a�c�e�,�m�=�v�.�e�x�t�e�n�d�(�t�h�i�s�.�o�p�t�i�o�n�s�,�t�|�|�{�}�)�,�g�=�{�x�:�t�h�i�s�.�s�c�r�o�l�l�x�,�y�:�t�h�i�s�.�s�c�r�o�l�l�y�}�,�i�=�t�h�i�s�.�w�r�a�p�p�e�r�,�t�=�{�s�c�r�o�l�l�L�e�f�t�:�p�.�s�c�r�o�l�l�L�e�f�t�(�)�,�s�c�r�o�l�l�T�o�p�:�p�.�s�c�r�o�l�l�T�o�p�(�)�}�;�i�f�(�c�.�m�o�b�i�l�e�&�&�m�.�i�g�n�o�r�e�M�o�b�i�l�e�|�|�c�.�o�v�e�r�l�a�y�&�&�m�.�i�g�n�o�r�e�O�v�e�r�l�a�y�|�|�c�.�m�a�c�o�s�x�&�&�!�c�.�w�e�b�k�i�t�)�r�e�t�u�r�n�!�1�;�i�?�n�.�c�s�s�(�{�h�e�i�g�h�t�:�"�a�u�t�o�"�,�"�m�a�r�g�i�n�-�b�o�t�t�o�m�"�:�-�1�*�c�.�s�c�r�o�l�l�.�h�e�i�g�h�t�+�"�p�x�"�,�"�m�a�r�g�i�n�-�r�i�g�h�t�"�:�-�1�*�c�.�s�c�r�o�l�l�.�w�i�d�t�h�+�"�p�x�"�,�"�m�a�x�-�h�e�i�g�h�t�"�:�"�"�}�)�:�(�t�h�i�s�.�w�r�a�p�p�e�r�=�i�=�v�(�"�<�d�i�v�>�"�)�.�a�d�d�C�l�a�s�s�(�"�s�c�r�o�l�l�-�w�r�a�p�p�e�r�"�)�.�a�d�d�C�l�a�s�s�(�p�.�a�t�t�r�(�"�c�l�a�s�s�"�)�)�.�c�s�s�(�"�p�o�s�i�t�i�o�n�"�,�"�a�b�s�o�l�u�t�e�"�=�=�p�.�c�s�s�(�"�p�o�s�i�t�i�o�n�"�)�?�"�a�b�s�o�l�u�t�e�"�:�"�r�e�l�a�t�i�v�e�"�)�.�i�n�s�e�r�t�B�e�f�o�r�e�(�p�)�.�a�p�p�e�n�d�(�p�)�,�p�.�i�s�(�"�t�e�x�t�a�r�e�a�"�)�&�&�(�t�h�i�s�.�c�o�n�t�a�i�n�e�r�W�r�a�p�p�e�r�=�n�=�v�(�"�<�d�i�v�>�"�)�.�i�n�s�e�r�t�B�e�f�o�r�e�(�p�)�.�a�p�p�e�n�d�(�p�)�,�i�.�a�d�d�C�l�a�s�s�(�"�s�c�r�o�l�l�-�t�e�x�t�a�r�e�a�"�)�)�,�n�.�a�d�d�C�l�a�s�s�(�"�s�c�r�o�l�l�-�c�o�n�t�e�n�t�"�)�.�c�s�s�(�{�h�e�i�g�h�t�:�"�a�u�t�o�"�,�"�m�a�r�g�i�n�-�b�o�t�t�o�m�"�:�-�1�*�c�.�s�c�r�o�l�l�.�h�e�i�g�h�t�+�"�p�x�"�,�"�m�a�r�g�i�n�-�r�i�g�h�t�"�:�-�1�*�c�.�s�c�r�o�l�l�.�w�i�d�t�h�+�"�p�x�"�,�"�m�a�x�-�h�e�i�g�h�t�"�:�"�"�}�)�,�p�.�o�n�(�"�s�c�r�o�l�l�"�+�f�,�f�u�n�c�t�i�o�n�(�t�)�{�v�.�i�s�F�u�n�c�t�i�o�n�(�m�.�o�n�S�c�r�o�l�l�)�&�&�m�.�o�n�S�c�r�o�l�l�.�c�a�l�l�(�h�,�{�m�a�x�S�c�r�o�l�l�:�g�.�y�.�m�a�x�S�c�r�o�l�l�O�f�f�s�e�t�,�s�c�r�o�l�l�:�p�.�s�c�r�o�l�l�T�o�p�(�)�,�s�i�z�e�:�g�.�y�.�s�i�z�e�,�v�i�s�i�b�l�e�:�g�.�y�.�v�i�s�i�b�l�e�}�,�{�m�a�x�S�c�r�o�l�l�:�g�.�x�.�m�a�x�S�c�r�o�l�l�O�f�f�s�e�t�,�s�c�r�o�l�l�:�p�.�s�c�r�o�l�l�L�e�f�t�(�)�,�s�i�z�e�:�g�.�x�.�s�i�z�e�,�v�i�s�i�b�l�e�:�g�.�x�.�v�i�s�i�b�l�e�}�)�,�g�.�x�.�i�s�V�i�s�i�b�l�e�&�&�g�.�x�.�s�c�r�o�l�l�.�b�a�r�.�c�s�s�(�"�l�e�f�t�"�,�p�.�s�c�r�o�l�l�L�e�f�t�(�)�*�g�.�x�.�k�x�+�"�p�x�"�)�,�g�.�y�.�i�s�V�i�s�i�b�l�e�&�&�g�.�y�.�s�c�r�o�l�l�.�b�a�r�.�c�s�s�(�"�t�o�p�"�,�p�.�s�c�r�o�l�l�T�o�p�(�)�*�g�.�y�.�k�x�+�"�p�x�"�)�}�)�,�i�.�o�n�(�"�s�c�r�o�l�l�"�+�f�,�f�u�n�c�t�i�o�n�(�)�{�i�.�s�c�r�o�l�l�T�o�p�(�0�)�.�s�c�r�o�l�l�L�e�f�t�(�0�)�}�)�,�m�.�d�i�s�a�b�l�e�B�o�d�y�S�c�r�o�l�l�&�&�(�i�.�o�n�(�"�M�o�z�M�o�u�s�e�P�i�x�e�l�S�c�r�o�l�l�"�+�f�,�e�=�f�u�n�c�t�i�o�n�(�t�)�{�y�(�t�)�?�g�.�y�.�i�s�V�i�s�i�b�l�e�&�&�g�.�y�.�m�o�u�s�e�w�h�e�e�l�(�t�)�:�g�.�x�.�i�s�V�i�s�i�b�l�e�&�&�g�.�x�.�m�o�u�s�e�w�h�e�e�l�(�t�)�}�)�,�i�.�o�n�(�"�m�o�u�s�e�w�h�e�e�l�"�+�f�,�e�)�,�c�.�m�o�b�i�l�e�&�&�i�.�o�n�(�"�t�o�u�c�h�s�t�a�r�t�"�+�f�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �t�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�o�u�c�h�e�s�&�&�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�o�u�c�h�e�s�[�0�]�|�|�t�,�i�=�t�.�p�a�g�e�X�,�n�=�t�.�p�a�g�e�Y�,�o�=�p�.�s�c�r�o�l�l�L�e�f�t�(�)�,�s�=�p�.�s�c�r�o�l�l�T�o�p�(�)�;�v�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�t�o�u�c�h�m�o�v�e�"�+�f�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�a�r�g�e�t�T�o�u�c�h�e�s�&�&�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�t�a�r�g�e�t�T�o�u�c�h�e�s�[�0�]�|�|�t�;�p�.�s�c�r�o�l�l�L�e�f�t�(�o�+�i�-�e�.�p�a�g�e�X�)�,�p�.�s�c�r�o�l�l�T�o�p�(�s�+�n�-�e�.�p�a�g�e�Y�)�,�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�}�)�,�v�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�t�o�u�c�h�e�n�d�"�+�f�,�f�u�n�c�t�i�o�n�(�)�{�v�(�d�o�c�u�m�e�n�t�)�.�o�f�f�(�f�)�}�)�}�)�)�,�v�.�i�s�F�u�n�c�t�i�o�n�(�m�.�o�n�I�n�i�t�)�&�&�m�.�o�n�I�n�i�t�.�a�p�p�l�y�(�t�h�i�s�,�[�p�]�)�)�,�v�.�e�a�c�h�(�g�,�f�u�n�c�t�i�o�n�(�o�,�s�)�{�f�u�n�c�t�i�o�n� �r�(�)�{�v�a�r� �t�=�p�[�c�]�(�)�;�p�[�c�]�(�t�+�d�)�,�1�=�=�l�&�&�u�<�=�t�+�d�&�&�(�t�=�p�[�c�]�(�)�)�,�-�1�=�=�l�&�&�t�+�d�<�=�u�&�&�(�t�=�p�[�c�]�(�)�)�,�p�[�c�]�(�)�=�=�t�&�&�a�&�&�a�(�)�}�v�a�r� �a�=�n�u�l�l�,�l�=�1�,�c�=�"�x�"�=�=�=�o�?�"�s�c�r�o�l�l�L�e�f�t�"�:�"�s�c�r�o�l�l�T�o�p�"�,�d�=�m�.�s�c�r�o�l�l�S�t�e�p�,�u�=�0�;�s�.�s�c�r�o�l�l�|�|�(�s�.�s�c�r�o�l�l�=�h�.�_�g�e�t�S�c�r�o�l�l�(�m�[�"�s�c�r�o�l�l�"�+�o�]�)�.�a�d�d�C�l�a�s�s�(�"�s�c�r�o�l�l�-�"�+�o�)�,�m�.�s�h�o�w�A�r�r�o�w�s�&�&�s�.�s�c�r�o�l�l�.�a�d�d�C�l�a�s�s�(�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�a�r�r�o�w�s�_�v�i�s�i�b�l�e�"�)�,�s�.�m�o�u�s�e�w�h�e�e�l�=�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�!�s�.�i�s�V�i�s�i�b�l�e�|�|�"�x�"�=�=�=�o�&�&�y�(�t�)�)�r�e�t�u�r�n�!�0�;�i�f�(�"�y�"�=�=�=�o�&�&�!�y�(�t�)�)�r�e�t�u�r�n� �g�.�x�.�m�o�u�s�e�w�h�e�e�l�(�t�)�,�!�0�;�v�a�r� �e�=�-�1�*�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�w�h�e�e�l�D�e�l�t�a�|�|�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�d�e�t�a�i�l�,�i�=�s�.�s�i�z�e�-�s�.�v�i�s�i�b�l�e�-�s�.�o�f�f�s�e�t�;�r�e�t�u�r�n�(�0�<�e�&�&�u�<�i�|�|�e�<�0�&�&�0�<�u�)�&�&�(�i�<�(�u�=�(�u�+�=�e�)�<�0�?�0�:�u�)�&�&�(�u�=�i�)�,�h�.�s�c�r�o�l�l�T�o�=�h�.�s�c�r�o�l�l�T�o�|�|�{�}�,�h�.�s�c�r�o�l�l�T�o�[�c�]�=�u�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�h�.�s�c�r�o�l�l�T�o�&�&�(�p�.�s�t�o�p�(�)�.�a�n�i�m�a�t�e�(�h�.�s�c�r�o�l�l�T�o�,�2�4�0�,�"�l�i�n�e�a�r�"�,�f�u�n�c�t�i�o�n�(�)�{�u�=�p�[�c�]�(�)�}�)�,�h�.�s�c�r�o�l�l�T�o�=�n�u�l�l�)�}
1�,�1�)�)�,�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�!�1�}�,�s�.�s�c�r�o�l�l�.�o�n�(�"�M�o�z�M�o�u�s�e�P�i�x�e�l�S�c�r�o�l�l�"�+�f�,�s�.�m�o�u�s�e�w�h�e�e�l�)�.�o�n�(�"�m�o�u�s�e�w�h�e�e�l�"�+�f�,�s�.�m�o�u�s�e�w�h�e�e�l�)�.�o�n�(�"�m�o�u�s�e�e�n�t�e�r�"�+�f�,�f�u�n�c�t�i�o�n�(�)�{�u�=�p�[�c�]�(�)�}�)�,�s�.�s�c�r�o�l�l�.�f�i�n�d�(�"�.�s�c�r�o�l�l�-�a�r�r�o�w�,� �.�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�t�r�a�c�k�"�)�.�o�n�(�"�m�o�u�s�e�d�o�w�n�"�+�f�,�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�1�!�=�t�.�w�h�i�c�h�)�r�e�t�u�r�n�!�0�;�l�=�1�;�v�a�r� �e�=�{�e�v�e�n�t�O�f�f�s�e�t�:�t�[�"�x�"�=�=�=�o�?�"�p�a�g�e�X�"�:�"�p�a�g�e�Y�"�]�,�m�a�x�S�c�r�o�l�l�V�a�l�u�e�:�s�.�s�i�z�e�-�s�.�v�i�s�i�b�l�e�-�s�.�o�f�f�s�e�t�,�s�c�r�o�l�l�b�a�r�O�f�f�s�e�t�:�s�.�s�c�r�o�l�l�.�b�a�r�.�o�f�f�s�e�t�(�)�[�"�x�"�=�=�=�o�?�"�l�e�f�t�"�:�"�t�o�p�"�]�,�s�c�r�o�l�l�b�a�r�S�i�z�e�:�s�.�s�c�r�o�l�l�.�b�a�r�[�"�x�"�=�=�=�o�?�"�o�u�t�e�r�W�i�d�t�h�"�:�"�o�u�t�e�r�H�e�i�g�h�t�"�]�(�)�}�,�i�=�0�,�n�=�0�;�r�e�t�u�r�n� �u�=�v�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�s�c�r�o�l�l�-�a�r�r�o�w�"�)�?�(�l�=�v�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�s�c�r�o�l�l�-�a�r�r�o�w�_�m�o�r�e�"�)�?�1�:�-�1�,�d�=�m�.�s�c�r�o�l�l�S�t�e�p�*�l�,�0�<�l�?�e�.�m�a�x�S�c�r�o�l�l�V�a�l�u�e�:�0�)�:�(�l�=�e�.�s�c�r�o�l�l�b�a�r�O�f�f�s�e�t�+�e�.�s�c�r�o�l�l�b�a�r�S�i�z�e�<�e�.�e�v�e�n�t�O�f�f�s�e�t�?�1�:�e�.�e�v�e�n�t�O�f�f�s�e�t�<�e�.�s�c�r�o�l�l�b�a�r�O�f�f�s�e�t�?�-�1�:�0�,�d�=�M�a�t�h�.�r�o�u�n�d�(�.�7�5�*�s�.�v�i�s�i�b�l�e�)�*�l�,�u�=�e�.�e�v�e�n�t�O�f�f�s�e�t�-�e�.�s�c�r�o�l�l�b�a�r�O�f�f�s�e�t�-�(�m�.�s�t�e�p�S�c�r�o�l�l�i�n�g�?�1�=�=�l�?�e�.�s�c�r�o�l�l�b�a�r�S�i�z�e�:�0�:�M�a�t�h�.�r�o�u�n�d�(�e�.�s�c�r�o�l�l�b�a�r�S�i�z�e�/�2�)�)�,�p�[�c�]�(�)�+�u�/�s�.�k�x�)�,�h�.�s�c�r�o�l�l�T�o�=�h�.�s�c�r�o�l�l�T�o�|�|�{�}�,�h�.�s�c�r�o�l�l�T�o�[�c�]�=�m�.�s�t�e�p�S�c�r�o�l�l�i�n�g�?�p�[�c�]�(�)�+�d�:�u�,�m�.�s�t�e�p�S�c�r�o�l�l�i�n�g�&�&�(�a�=�f�u�n�c�t�i�o�n�(�)�{�u�=�p�[�c�]�(�)�,�c�l�e�a�r�I�n�t�e�r�v�a�l�(�n�)�,�c�l�e�a�r�T�i�m�e�o�u�t�(�i�)�,�n�=�i�=�0�}�,�i�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�n�=�s�e�t�I�n�t�e�r�v�a�l�(�r�,�4�0�)�}�,�m�.�d�u�r�a�t�i�o�n�+�1�0�0�)�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�h�.�s�c�r�o�l�l�T�o�&�&�(�p�.�a�n�i�m�a�t�e�(�h�.�s�c�r�o�l�l�T�o�,�m�.�d�u�r�a�t�i�o�n�)�,�h�.�s�c�r�o�l�l�T�o�=�n�u�l�l�)�}�,�1�)�,�h�.�_�h�a�n�d�l�e�M�o�u�s�e�D�o�w�n�(�a�,�t�)�}�)�,�s�.�s�c�r�o�l�l�.�b�a�r�.�o�n�(�"�m�o�u�s�e�d�o�w�n�"�+�f�,�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�1�!�=�t�.�w�h�i�c�h�)�r�e�t�u�r�n�!�0�;�v�a�r� �e�=�t�[�"�x�"�=�=�=�o�?�"�p�a�g�e�X�"�:�"�p�a�g�e�Y�"�]�,�i�=�p�[�c�]�(�)�;�r�e�t�u�r�n� �s�.�s�c�r�o�l�l�.�a�d�d�C�l�a�s�s�(�"�s�c�r�o�l�l�-�d�r�a�g�g�a�b�l�e�"�)�,�v�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�m�o�u�s�e�m�o�v�e�"�+�f�,�f�u�n�c�t�i�o�n�(�t�)�{�t�=�p�a�r�s�e�I�n�t�(�(�t�[�"�x�"�=�=�=�o�?�"�p�a�g�e�X�"�:�"�p�a�g�e�Y�"�]�-�e�)�/�s�.�k�x�,�1�0�)�;�p�[�c�]�(�i�+�t�)�}�)�,�h�.�_�h�a�n�d�l�e�M�o�u�s�e�D�o�w�n�(�f�u�n�c�t�i�o�n�(�)�{�s�.�s�c�r�o�l�l�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�c�r�o�l�l�-�d�r�a�g�g�a�b�l�e�"�)�,�u�=�p�[�c�]�(�)�}�,�t�)�}�)�)�}�)�,�v�.�e�a�c�h�(�g�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�"�s�c�r�o�l�l�-�s�c�r�o�l�l�"�+�t�+�"�_�v�i�s�i�b�l�e�"�,�t�=�"�x�"�=�=�t�?�g�.�y�:�g�.�x�;�e�.�s�c�r�o�l�l�.�r�e�m�o�v�e�C�l�a�s�s�(�i�)�,�t�.�s�c�r�o�l�l�.�r�e�m�o�v�e�C�l�a�s�s�(�i�)�,�n�.�r�e�m�o�v�e�C�l�a�s�s�(�i�)�}�)�,�v�.�e�a�c�h�(�g�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�.�e�x�t�e�n�d�(�e�,�"�x�"�=�=�t�?�{�o�f�f�s�e�t�:�p�a�r�s�e�I�n�t�(�p�.�c�s�s�(�"�l�e�f�t�"�)�,�1�0�)�|�|�0�,�s�i�z�e�:�p�.�p�r�o�p�(�"�s�c�r�o�l�l�W�i�d�t�h�"�)�,�v�i�s�i�b�l�e�:�i�.�w�i�d�t�h�(�)�}�:�{�o�f�f�s�e�t�:�p�a�r�s�e�I�n�t�(�p�.�c�s�s�(�"�t�o�p�"�)�,�1�0�)�|�|�0�,�s�i�z�e�:�p�.�p�r�o�p�(�"�s�c�r�o�l�l�H�e�i�g�h�t�"�)�,�v�i�s�i�b�l�e�:�i�.�h�e�i�g�h�t�(�)�}�)�}�)�,�t�h�i�s�.�_�u�p�d�a�t�e�S�c�r�o�l�l�(�"�x�"�,�t�h�i�s�.�s�c�r�o�l�l�x�)�,�t�h�i�s�.�_�u�p�d�a�t�e�S�c�r�o�l�l�(�"�y�"�,�t�h�i�s�.�s�c�r�o�l�l�y�)�,�v�.�i�s�F�u�n�c�t�i�o�n�(�m�.�o�n�U�p�d�a�t�e�)�&�&�m�.�o�n�U�p�d�a�t�e�.�a�p�p�l�y�(�t�h�i�s�,�[�p�]�)�,�v�.�e�a�c�h�(�g�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�"�x�"�=�=�=�t�?�"�l�e�f�t�"�:�"�t�o�p�"�,�n�=�"�x�"�=�=�=�t�?�"�o�u�t�e�r
1�W�i�d�t�h�"�:�"�o�u�t�e�r�H�e�i�g�h�t�"�,�t�=�"�x�"�=�=�=�t�?�"�w�i�d�t�h�"�:�"�h�e�i�g�h�t�"�,�o�=�p�a�r�s�e�I�n�t�(�p�.�c�s�s�(�i�)�,�1�0�)�|�|�0�,�s�=�e�.�s�i�z�e�,�o�=�e�.�v�i�s�i�b�l�e�+�o�,�i�=�e�.�s�c�r�o�l�l�.�s�i�z�e�[�n�]�(�)�+�(�p�a�r�s�e�I�n�t�(�e�.�s�c�r�o�l�l�.�s�i�z�e�.�c�s�s�(�i�)�,�1�0�)�|�|�0�)�;�m�.�a�u�t�o�S�c�r�o�l�l�S�i�z�e�&�&�(�e�.�s�c�r�o�l�l�b�a�r�S�i�z�e�=�p�a�r�s�e�I�n�t�(�i�*�o�/�s�,�1�0�)�,�e�.�s�c�r�o�l�l�.�b�a�r�.�c�s�s�(�t�,�e�.�s�c�r�o�l�l�b�a�r�S�i�z�e�+�"�p�x�"�)�)�,�e�.�s�c�r�o�l�l�b�a�r�S�i�z�e�=�e�.�s�c�r�o�l�l�.�b�a�r�[�n�]�(�)�,�e�.�k�x�=�(�i�-�e�.�s�c�r�o�l�l�b�a�r�S�i�z�e�)�/�(�s�-�o�)�|�|�1�,�e�.�m�a�x�S�c�r�o�l�l�O�f�f�s�e�t�=�s�-�o�}�)�,�p�.�s�c�r�o�l�l�L�e�f�t�(�t�.�s�c�r�o�l�l�L�e�f�t�)�.�s�c�r�o�l�l�T�o�p�(�t�.�s�c�r�o�l�l�T�o�p�)�.�t�r�i�g�g�e�r�(�"�s�c�r�o�l�l�"�)�}�,�_�g�e�t�S�c�r�o�l�l�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�{�a�d�v�a�n�c�e�d�:�[�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�"�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�c�o�r�n�e�r�"�>�<�/�d�i�v�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�a�r�r�o�w� �s�c�r�o�l�l�-�a�r�r�o�w�_�l�e�s�s�"�>�<�/�d�i�v�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�a�r�r�o�w� �s�c�r�o�l�l�-�a�r�r�o�w�_�m�o�r�e�"�>�<�/�d�i�v�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�o�u�t�e�r
1�"�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�s�i�z�e�"�>�<�/�d�i�v�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�i�n�n�e�r�-�w�r�a�p�p�e�r�"�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�i�n�n�e�r� �s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�t�r�a�c�k�"�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�i�n�n�e�r�-�b�o�t�t�o�m�"�>�<�/�d�i�v�>�'�,�"�<�/�d�i�v�>�"�,�"�<�/�d�i�v�>�"�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�b�a�r�"�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�b�a�r�_�b�o�d�y�"�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�b�a�r�_�b�o�d�y�-�i�n�n�e�r�"�>�<�/�d�i�v�>�'�,�"�<�/�d�i�v�>�"�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�b�a�r�_�b�o�t�t�o�m�"�>�<�/�d�i�v�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�b�a�r�_�c�e�n�t�e�r�"�>�<�/�d�i�v�>�'�,�"�<�/�d�i�v�>�"�,�"�<�/�d�i�v�>�"�,�"�<�/�d�i�v�>�"�]�.�j�o�i�n�(�"�"�)�,�s�i�m�p�l�e�:�[�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�"�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�o�u�t�e�r�"�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�s�i�z�e�"�>�<�/�d�i�v�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�t�r�a�c�k�"�>�<�/�d�i�v�>�'�,�'�<�d�i�v� �c�l�a�s�s�=�"�s�c�r�o�l�l�-�b�a�r�"�>�<�/�d�i�v�>�'�,�"�<�/�d�i�v�>�"�,�"�<�/�d�i�v�>�"�]�.�j�o�i�n�(�"�"�)�}�;�r�e�t�u�r�n� �t�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f�(�t�=�(�t�=�e�[�t�]�?�e�[�t�]�:�t�)�|�|�e�.�s�i�m�p�l�e�)�?�v�(�t�)�.�a�p�p�e�n�d�T�o�(�t�h�i�s�.�w�r�a�p�p�e�r�)�:�v�(�t�)�,�v�.�e�x�t�e�n�d�(�t�,�{�b�a�r�:�t�.�f�i�n�d�(�"�.�s�c�r�o�l�l�-�b�a�r�"�)�,�s�i�z�e�:�t�.�f�i�n�d�(�"�.�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�s�i�z�e�"�)�,�t�r�a�c�k�:�t�.�f�i�n�d�(�"�.�s�c�r�o�l�l�-�e�l�e�m�e�n�t�_�t�r�a�c�k�"�)�}�)�,�t�}�,�_�h�a�n�d�l�e�M�o�u�s�e�D�o�w�n�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�n�a�m�e�s�p�a�c�e�;�r�e�t�u�r�n� �v�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�b�l�u�r�"�+�i�,�f�u�n�c�t�i�o�n�(�)�{�v�(�d�o�c�u�m�e�n�t�)�.�a�d�d�(�"�b�o�d�y�"�)�.�o�f�f�(�i�)�,�t�&�&�t�(�)�}�)�,�v�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�d�r�a�g�s�t�a�r�t�"�+�i�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�!�1�}�)�,�v�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�m�o�u�s�e�u�p�"�+�i�,�f�u�n�c�t�i�o�n�(�)�{�v�(�d�o�c�u�m�e�n�t�)�.�a�d�d�(�"�b�o�d�y�"�)�.�o�f�f�(�i�)�,�t�&�&�t�(�)�}�)�,�v�(�"�b�o�d�y�"�)�.�o�n�(�"�s�e�l�e�c�t�s�t�a�r�t�"�+�i�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�!�1�}�)�,�e�&�&�e�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�!�1�}�,�_�u�p�d�a�t�e�S�c�r�o�l�l�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�v�a�r� �i�=�t�h�i�s�.�c�o�n�t�a�i�n�e�r�,�n�=�t�h�i�s�.�c�o�n�t�a�i�n�e�r�W�r�a�p�p�e�r�|�|�i�,�o�=�"�s�c�r�o�l�l�-�s�c�r�o�l�l�"�+�t�+�"�_�v�i�s�i�b�l�e�"�,�s�=�"�x�"�=�=�=�t�?�t�h�i�s�.�s�c�r�o�l�l�y�:�t�h�i�s�.�s�c�r�o�l�l�x�,�r�=�p�a�r�s�e�I�n�t�(�t�h�i�s�.�c�o�n�t�a�i�n�e�r�.�c�s�s�(�"�x�"�=�=�=�t�?�"�l�e�f�t�"�:�"�t�o�p�"�)�,�1�0�)�|�|�0�,�a�=�t�h�i�s�.�w�r�a�p�p�e�r�,�l�=�e�.�s�i�z�e�,�r�=�e�.�v�i�s�i�b�l�e�+�r�;�e�.�i�s�V�i�s�i�b�l�e�=�1�<�l�-�r�,�e�.�i�s�V�i�s�i�b�l�e�?�(�e�.�s�c�r�o�l�l�.�a�d�d�C�l�a�s�s�(�o�)�,�s�.�s�c�r�o�l�l�.�a�d�d�C�l�a�s�s�(�o�)�,�n�.�a�d�d�C�l�a�s�s�(�o�)�)�:�(�e�.�s�c�r�o�l�l�.�r�e�m�o�v�e�C�l�a�s�s�(�o�)�,�s�.�s�c�r�o�l�l�.�r�e�m�o�v�e�C�l�a�s�s�(�o�)�,�n�.�r�e�m�o�v�e�C�l�a�s�s�(�o�)�)�,�"�y�"�=�=�=�t�&�&�(�i�.�i�s�(�"�t�e�x�t�a�r�e�a�"�)�|�|�l�<�r�?�n�.�c�s�s�(�{�h�e�i�g�h�t�:�r�+�c�.�s�c�r�o�l�l�.�h�e�i�g�h�t�+�"�p�x�"�,�"�m�a�x�-�h�e�i�g�h�t�"�:�"�n�o�n�e�"�}�)�:�n�.�c�s�s�(�{�"�m�a�x�-�h�e�i�g�h�t�"�:�r�+�c�.�s�c�r�o�l�l�.�h�e�i�g�h�t�+�"�p�x�"�}�)�)�,�e�.�s�i�z�e�=�=�i�.�p�r�o�p�(�"�s�c�r�o�l�l�W�i�d�t�h�"�)�&�&�s�.�s�i�z�e�=�=�i�.�p�r�o�p�(�"�s�c�r�o�l�l�H�e�i�g�h�t�"�)�&�&�e�.�v�i�s�i�b�l�e�=�=�a�.�w�i�d�t�h�(�)�&�&�s�.�v�i�s�i�b�l�e�=�=�a�.�h�e�i�g�h�t�(�)�&�&�e�.�o�f�f�s�e�t�=�=�(�p�a�r�s�e�I�n�t�(�i�.�c�s�s�(�"�l�e�f�t�"�)�,�1�0�)�|�|�0�)�&�&�s�.�o�f�f�s�e�t�=�=�(�p�a�r�s�e�I�n�t�(�i�.�c�s�s�(�"�t�o�p�"�)�,�1�0�)�|�|�0�)�|�|�(�v�.�e�x�t�e�n�d�(�t�h�i�s�.�s�c�r�o�l�l�x�,�{�o�f�f�s�e�t�:�p�a�r�s�e�I�n�t�(�i�.�c�s�s�(�"�l�e�f�t�"�)�,�1�0�)�|�|�0�,�s�i�z�e�:�i�.�p�r�o�p�(�"�s�c�r�o�l�l�W�i�d�t�h�"�)�,�v�i�s�i�b�l�e�:�a�.�w�i�d�t�h�(�)�}�)�,�v�.�e�x�t�e�n�d�(�t�h�i�s�.�s�c�r�o�l�l�y�,�{�o�f�f�s�e�t�:�p�a�r�s�e�I�n�t�(�i�.�c�s�s�(�"�t�o�p�"�)�,�1�0�)�|�|�0�,�s�i�z�e�:�t�h�i�s�.�c�o�n�t�a�i�n�e�r�.�p�r�o�p�(�"�s�c�r�o�l�l�H�e�i�g�h�t�"�)�,�v�i�s�i�b�l�e�:�a�.�h�e�i�g�h�t�(�)�}�)�,�t�h�i�s�.�_�u�p�d�a�t�e�S�c�r�o�l�l�(�"�x�"�=�=�=�t�?�"�y�"�:�"�x�"�,�s�)�)�}�}�,�t�)�,�d�=�(�v�.�f�n�.�s�c�r�o�l�l�b�a�r�=�f�u�n�c�t�i�o�n�(�i�,�n�)�{�r�e�t�u�r�n�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �i�&�&�(�n�=�i�,�i�=�"�i�n�i�t�"�)�,�v�o�i�d� �0�=�=�=�n�&�&�(�n�=�[�]�)�,�v�.�i�s�A�r�r�a�y�(�n�)�|�|�(�n�=�[�n�]�)�,�t�h�i�s�.�n�o�t�(�"�b�o�d�y�,� �.�s�c�r�o�l�l�-�w�r�a�p�p�e�r�"�
1)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�v�(�t�h�i�s�)�,�e�=�t�.�d�a�t�a�(�c�.�d�a�t�a�.�n�a�m�e�)�;�(�e�|�|�"�i�n�i�t�"�=�=�=�i�)�&�&�(�e�=�e�|�|�n�e�w� �o�(�t�)�)�[�i�]�&�&�e�[�i�]�.�a�p�p�l�y�(�e�,�n�)�}�)�,�t�h�i�s�}�,�v�.�f�n�.�s�c�r�o�l�l�b�a�r�.�o�p�t�i�o�n�s�=�n�,�l�=�0�,�f�u�n�c�t�i�o�n�(�t�)�{�f�o�r�(�v�a�r� �e�,�i�,�n�,�o�,�s�,�r�,�a�=�0�;�a�<�c�.�s�c�r�o�l�l�s�.�l�e�n�g�t�h�;�a�+�+�)�e�=�(�n�=�c�.�s�c�r�o�l�l�s�[�a�]�)�.�c�o�n�t�a�i�n�e�r�,�i�=�n�.�o�p�t�i�o�n�s�,�o�=�n�.�w�r�a�p�p�e�r�,�s�=�n�.�s�c�r�o�l�l�x�,�r�=�n�.�s�c�r�o�l�l�y�,�(�t�|�|�i�.�a�u�t�o�U�p�d�a�t�e�&�&�o�&�&�o�.�i�s�(�"�:�v�i�s�i�b�l�e�"�)�&�&�(�e�.�p�r�o�p�(�"�s�c�r�o�l�l�W�i�d�t�h�"�)�!�=�s�.�s�i�z�e�|�|�e�.�p�r�o�p�(�"�s�c�r�o�l�l�H�e�i�g�h�t�"�)�!�=�r�.�s�i�z�e�|�|�o�.�w�i�d�t�h�(�)�!�=�s�.�v�i�s�i�b�l�e�|�|�o�.�h�e�i�g�h�t�(�)�!�=�r�.�v�i�s�i�b�l�e�)�)�&�&�(�n�.�i�n�i�t�(�)�,�i�.�d�e�b�u�g�&�&�(�w�i�n�d�o�w�.�c�o�n�s�o�l�e�&�&�c�o�n�s�o�l�e�.�l�o�g�(�{�s�c�r�o�l�l�H�e�i�g�h�t�:�e�.�p�r�o�p�(�"�s�c�r�o�l�l�H�e�i�g�h�t�"�)�+�"�:�"�+�n�.�s�c�r�o�l�l�y�.�s�i�z�e�,�s�c�r�o�l�l�W�i�d�t�h�:�e�.�p�r�o�p�(�"�s�c�r�o�l�l�W�i�d�t�h�"�)�+�"�:�"�+�n�.�s�c�r�o�l�l�x�.�s�i�z�e�,�v�i�s�i�b�l�e�H�e�i�g�h�t�:�o�.�h�e�i�g�h�t�(�)�+�"�:�"�+�n�.�s�c�r�o�l�l�y�.�v�i�s�i�b�l�e�,�v�i�s�i�b�l�e�W�i�d�t�h�:�o�.�w�i�d�t�h�(�)�+�"�:�"�+�n�.�s�c�r�o�l�l�x�.�v�i�s�i�b�l�e�}�,�!�0�)�,�0�)�)�;�c�l�e�a�r�T�i�m�e�o�u�t�(�l�)�,�l�=�s�e�t�T�i�m�e�o�u�t�(�d�,�3�0�0�)�}�)�;�f�u�n�c�t�i�o�n� �s�(�t�)�{�r�e�t�u�r�n� �c�.�w�e�b�k�i�t�&�&�!�t�?�{�h�e�i�g�h�t�:�0�,�w�i�d�t�h�:�0�}�:�(�c�.�d�a�t�a�.�o�u�t�e�r�|�|�(�t�=�{�b�o�r�d�e�r�:�"�n�o�n�e�"�,�"�b�o�x�-�s�i�z�i�n�g�"�:�"�c�o�n�t�e�n�t�-�b�o�x�"�,�h�e�i�g�h�t�:�"�2�0�0�p�x�"�,�m�a�r�g�i�n�:�"�0�"�,�p�a�d�d�i�n�g�:�"�0�"�,�w�i�d�t�h�:�"�2�0�0�p�x�"�}�,�c�.�d�a�t�a�.�i�n�n�e�r�=�v�(�"�<�d�i�v�>�"�)�.�c�s�s�(�v�.�e�x�t�e�n�d�(�{�}�,�t�)�)�,�c�.�d�a�t�a�.�o�u�t�e�r�=�v�(�"�<�d�i�v�>�"�)�.�c�s�s�(�v�.�e�x�t�e�n�d�(�{�l�e�f�t�:�"�-�1�0�0�0�p�x�"�,�o�v�e�r�f�l�o�w�:�"�s�c�r�o�l�l�"�,�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�,�t�o�p�:�"�-�1�0�0�0�p�x�"�}�,�t�)�)�.�a�p�p�e�n�d�(�c�.�d�a�t�a�.�i�n�n�e�r�)�.�a�p�p�e�n�d�T�o�(�"�b�o�d�y�"�)�)�,�c�.�d�a�t�a�.�o�u�t�e�r�.�s�c�r�o�l�l�L�e�f�t�(�1�e�3�)�.�s�c�r�o�l�l�T�o�p�(�1�e�3�)�,�{�h�e�i�g�h�t�:�M�a�t�h�.�c�e�i�l�(�c�.�d�a�t�a�.�o�u�t�e�r�.�o�f�f�s�e�t�(�)�.�t�o�p�-�c�.�d�a�t�a�.�i�n�n�e�r�.�o�f�f�s�e�t�(�)�.�t�o�p�|�|�0�)�,�w�i�d�t�h�:�M�a�t�h�.�c�e�i�l�(�c�.�d�a�t�a�.�o�u�t�e�r�.�o�f�f�s�e�t�(�)�.�l�e�f�t�-�c�.�d�a�t�a�.�i�n�n�e�r�.�o�f�f�s�e�t�(�)�.�l�e�f�t�|�|�0�)�}�)�}�f�u�n�c�t�i�o�n� �y�(�t�)�{�t�=�t�.�o�r�i�g�i�n�a�l�E�v�e�n�t�;�r�e�t�u�r�n�(�!�t�.�a�x�i�s�|�|�t�.�a�x�i�s�!�=�=�t�.�H�O�R�I�Z�O�N�T�A�L�_�A�X�I�S�)�&�&�!�t�.�w�h�e�e�l�D�e�l�t�a�X�}�w�i�n�d�o�w�.�a�n�g�u�l�a�r�&�&�(�i�=�w�i�n�d�o�w�.�a�n�g�u�l�a�r�)�.�m�o�d�u�l�e�(�"�j�Q�u�e�r�y�S�c�r�o�l�l�b�a�r�"�,�[�]�)�.�p�r�o�v�i�d�e�r�(�"�j�Q�u�e�r�y�S�c�r�o�l�l�b�a�r�"�,�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�n�;�r�e�t�u�r�n�{�s�e�t�O�p�t�i�o�n�s�:�f�u�n�c�t�i�o�n�(�t�)�{�i�.�e�x�t�e�n�d�(�e�,�t�)�}�,�$�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�{�o�p�t�i�o�n�s�:�i�.�c�o�p�y�(�e�)�}�}�}�}�)�.�d�i�r�e�c�t�i�v�e�(�"�j�q�u�e�r�y�S�c�r�o�l�l�b�a�r�"�,�[�"�j�Q�u�e�r�y�S�c�r�o�l�l�b�a�r�"�,�"�$�p�a�r�s�e�"�,�f�u�n�c�t�i�o�n�(�n�,�o�)�{�r�e�t�u�r�n�{�r�e�s�t�r�i�c�t�:�"�A�C�"�,�l�i�n�k�:�f�u�n�c�t�i�o�n�(�t�,�e�,�i�)�{�i�=�o�(�i�.�j�q�u�e�r�y�S�c�r�o�l�l�b�a�r�)�(�t�)�;�e�.�s�c�r�o�l�l�b�a�r�(�i�|�|�n�.�o�p�t�i�o�n�s�)�.�o�n�(�"�$�d�e�s�t�r�o�y�"�,�f�u�n�c�t�i�o�n�(�)�{�e�.�s�c�r�o�l�l�b�a�r�(�"�d�e�s�t�r�o�y�"�)�}�)�}�}�}�]�)�}�)�;�c�o�n�s�t� �n�a�v�b�a�r�T�o�g�g�l�e�r�=�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�"�n�a�v�b�a�r�-�t�o�g�g�l�e�r�"�)�,�m�a�i�n�N�a�v�=�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�"�n�a�v�b�a�r�S�u�p�p�o�r�t�e�d�C�o�n�t�e�n�t�"�)�,�h�t�m�l�T�a�g�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�h�t�m�l�"�)�;�f�u�n�c�t�i�o�n� �r�e�s�e�t�N�a�v�(�)�{�r�e�s�e�t�N�a�v�L�i�n�k�s�(�)�,�r�e�s�e�t�N�a�v�S�u�b�L�i�n�k�s�(�)�,�n�a�v�b�a�r�T�o�g�g�l�e�r�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�"�f�a�l�s�e�"�)�,�m�a�i�n�N�a�v�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�s�h�o�w�"�)�}
1�f�u�n�c�t�i�o�n� �r�e�s�i�z�e�R�e�s�e�t�(�)�{�r�e�s�e�t�N�a�v�(�)�}�f�u�n�c�t�i�o�n� �c�h�e�c�k�W�i�n�d�o�w�S�i�z�e�(�)�{�v�a�r� �t�=�w�i�n�d�o�w�.�i�n�n�e�r�W�i�d�t�h�<�1�0�2�4�;�t�!�=�=�c�h�e�c�k�W�i�n�d�o�w�S�i�z�e�.�i�s�S�m�a�l�l�W�i�n�d�o�w�&�&�(�r�e�s�i�z�e�R�e�s�e�t�(�)�,�c�h�e�c�k�W�i�n�d�o�w�S�i�z�e�.�i�s�S�m�a�l�l�W�i�n�d�o�w�=�t�)�}�n�a�v�b�a�r�T�o�g�g�l�e�r�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�h�t�m�l�T�a�g�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�"�m�e�n�u�-�o�p�e�n�"�)�?�(�r�e�s�e�t�N�a�v�L�i�n�k�s�(�)�,�r�e�s�e�t�N�a�v�S�u�b�L�i�n�k�s�(�)�,�h�t�m�l�T�a�g�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�m�e�n�u�-�o�p�e�n�"�)�)�:�h�t�m�l�T�a�g�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�m�e�n�u�-�o�p�e�n�"�)�}�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�n�a�v�-�l�i�n�k�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�"�b�u�t�t�o�n�"�=�=�t�.�t�a�r�g�e�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�r�o�l�e�"�)�&�&�(�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�=�t�.�t�a�r�g�e�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�)�,�r�e�s�e�t�N�a�v�L�i�n�k�s�(�)�,�"�f�a�l�s�e�"�=�=�t�&�&�(�t�h�i�s�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�"�t�r�u�e�"�)�,�t�h�i�s�.�n�e�x�t�E�l�e�m�e�n�t�S�i�b�l�i�n�g�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�a�c�t�i�v�e�"�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�h�t�m�l�"�)�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�m�e�n�u�-�o�p�e�n�"�)�)�)�}�)�}�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�n�a�v�-�l�i�n�k�-�m�e�t�a�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�r�e�s�e�t�N�a�v�(�)�,�t�h�i�s�.�n�e�x�t�E�l�e�m�e�n�t�S�i�b�l�i�n�g�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�a�c�t�i�v�e�"�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�h�t�m�l�"�)�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�m�e�n�u�-�o�p�e�n�"�)�}�)�}�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�n�a�v�-�s�u�b�-�l�i�n�k�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�"�b�u�t�t�o�n�"�=�=�t�.�t�a�r�g�e�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�r�o�l�e�"�)�&�&�(�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�r�e�s�e�t�N�a�v�S�u�b�L�i�n�k�s�(�)�,�t�h�i�s�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�"�t�r�u�e�"�)�,�t�h�i�s�.�n�e�x�t�E�l�e�m�e�n�t�S�i�b�l�i�n�g�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�a�c�t�i�v�e�"�)�)�}�)�}�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�c�l�o�s�e�-�f�l�y�o�u�t�,� �.�c�l�o�s�e�-�s�e�a�r�c�h�-�f�l�y�o�u�t�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�r�e�s�e�t�N�a�v�L�i�n�k�s�(�)�,�r�e�s�e�t�N�a�v�S�u�b�L�i�n�k�s�(�)�}�)�}�)�,�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�c�l�o�s�e�-�m�o�b�i�l�e�-�s�u�b�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�n�)�{�n�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�l�e�t� �e�=�n�.�c�l�o�s�e�s�t�(�"�.�s�u�b�m�e�n�u�,� �.�s�u�b�m�e�n�u�-�l�v�l�-�2�"�)�,�i�=�e�.�c�l�o�s�e�s�t�(�"�l�i�"�)�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�.�n�a�v�-�l�i�n�k�,� �.�n�a�v�-�s�u�b�-�l�i�n�k�"�)�;�e�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�a�c�t�i�v�e�"�)�,�i�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�a�r�i�a�-�e�x�p�a�n�d�e�d�"�,�"�f�a�l�s�e�"�)�}�)�}�)�,�c�h�e�c�k�W�i�n�d�o�w�S�i�z�e�(�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�c�h�e�c�k�W�i�n�d�o�w�S�i�z�e�)�;�c�o�n�s�t� �n�a�v�H�e�i�g�h�t�=�(�)�=�>�{�c�o�n�s�t� �t�=�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�;�v�a�r� �e�=�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�"�m�a�i�n�n�a�v�"�)�.�c�l�i�e�n�t�H�e�i�g�h�t�;�t�.�s�t�y�l�e�.�s�e�t�P�r�o�p�e�r�t�y�(�"�-�-�n�a�v�-�h�e�i�g�h�t�"�,�e�+�"�p�x�"�)�}�;�f�u�n�c�t�i�o�n� �g�e�t�S�c�r�o�l�l�b�a�r�W�i�d�t�h�(�)�{�c�o�n�s�t� �t�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�;�t�.�s�t�y�l�e�.�v�i�s�i�b�i�l�i�t�y�=�"�h�i�d�d�e�n�"�,�t�.�s�t�y�l�e�.�w�i�d�t�h�=�"�1�0�0�p�x�"�,�t�.�s�t�y�l�e�.�m�s�O�v�e�r�f�l�o�w�S�t�y�l�e�=�"�s�c�r�o�l�l�b�a�r�"�,�d�o�c�u�m�e�n�t�.�b�o�d�y�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�;�v�a�r� �e�=�t�.�o�f�f�s�e�t�W�i�d�t�h�;�t�.�s�t�y�l�e�.�o�v�e�r�f�l�o�w�=�"�s�c�r�o�l�l�"�;�c�o�n�s�t� �i�=�d�o�c�u�m�e�n�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�;�i�.�s�t�y�l�e�.�w�i�d�t�h�=�"�1�0�0�%�"�,�t�.�a�p�p�e�n�d�C�h�i�l�d�(�i�)�;�v�a�r� �n�=�i�.�o�f�f�s�e�t�W�i�d�t�h�;�r�e�t�u�r�n� �t�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�t�)�,�e�-�n�}�f�u�n�c�t�i�o�n� �u�p�d�a�t�e�S�c�r�o�l�l�b�a�r�W�i�d�t�h�(�)�{�v�a�r� �t�=�g�e�t�S�c�r�o�l�l�b�a�r�W�i�d�t�h�(�)�;�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�s�t�y�l�e�.�s�e�t�P�r�o�p�e�r�t�y�(�"�-�-�s�c�r�o�l�l�b�a�r�-�w�i�d�t�h�"�,�t�+�"�p�x�"�)�}
1�f�u�n�c�t�i�o�n� �r�e�s�e�t�(�)�{�$�(�"�b�o�d�y�,� �.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�o�b�i�l�e�o�p�e�n� �m�e�n�u�o�p�e�n� �s�e�a�r�c�h�o�p�e�n�"�)�,�$�(�"�.�n�a�v�-�i�t�e�m�.�d�r�o�p�d�o�w�n�,� �.�d�r�o�p�d�o�w�n�-�m�e�n�u�,� �.�n�a�v�b�a�r�-�c�o�l�l�a�p�s�e� �"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�,�$�(�"�.�s�u�b�h�o�l�d�e�r�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�s�t�y�l�e�"�)�,�$�(�"�.�s�u�b�h�o�l�d�e�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�}�v�a�r� �n�a�v�b�a�r�F�u�l�l�,�n�a�v�b�a�r�S�e�m�i�,�f�i�l�t�e�r�S�e�l�e�c�t�e�d�=�(�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�n�a�v�H�e�i�g�h�t�)�,�n�a�v�H�e�i�g�h�t�(�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�l�o�a�d�"�,�u�p�d�a�t�e�S�c�r�o�l�l�b�a�r�W�i�d�t�h�)�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�u�p�d�a�t�e�S�c�r�o�l�l�b�a�r�W�i�d�t�h�)�,�j�Q�u�e�r�y�(�d�o�c�u�m�e�n�t�)�.�r�e�a�d�y�(�f�u�n�c�t�i�o�n�(�)�{�j�Q�u�e�r�y�(�"�.�s�c�r�o�l�l�b�a�r�-�i�n�n�e�r�-�n�a�v�"�)�.�s�c�r�o�l�l�b�a�r�(�)�}�)�,�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�C�o�n�t�e�n�t�L�o�a�d�e�d�"�,�f�u�n�c�t�i�o�n�(�)�{�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�v�i�d�e�o�-�c�o�n�t�a�i�n�e�r� �.�j�s�-�s�h�o�w�-�v�i�d�e�o�-�i�n�l�i�n�e�"�)�.�f�o�r�E�a�c�h�(�o�=�>�{�o�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�(�)�=�>�{�c�o�n�s�t� �t�=�o�.�c�l�o�s�e�s�t�(�"�.�v�i�d�e�o�-�c�o�n�t�a�i�n�e�r�"�)�;�c�o�n�s�o�l�e�.�l�o�g�(�t�)�;�v�a�r� �e�,�i�=�o�;�i�f�(�c�o�n�s�o�l�e�.�l�o�g�(�i�)�,�t�)�{�c�o�n�s�t� �n�=�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�i�f�r�a�m�e�"�)�;�n�&�&�(�c�o�n�s�o�l�e�.�l�o�g�(�n�.�s�r�c�)�,�"�"�!�=�=�n�.�s�r�c�.�t�r�i�m�(�)�&�&�(�e�=�i�,�c�o�n�s�o�l�e�.�l�o�g�(�"�h�i�d�e� �c�o�n�t�a�i�n�e�r�"�)�,�e�.�s�t�y�l�e�.�o�p�a�c�i�t�y�=�"�0�"�,�e�.�s�t�y�l�e�.�t�r�a�n�s�i�t�i�o�n�=�"�o�p�a�c�i�t�y� �0�.�5�s� �e�a�s�e�"�,�s�e�t�T�i�m�e�o�u�t�(�(�)�=�>�{�e�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�"�n�o�n�e�"�}�,�5�0�0�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�t�=�n�,�c�o�n�s�o�l�e�.�l�o�g�(�"�s�t�a�r�t�v�i�d�e�o�"�)�,�-�1�=�=�=�t�.�s�r�c�.�i�n�d�e�x�O�f�(�"�?�"�)�?�t�.�s�r�c�+�=�"�?�a�u�t�o�p�l�a�y�=�1�"�:�t�.�s�r�c�+�=�"�&�a�u�t�o�p�l�a�y�=�1�"�}�,�5�0�0�)�,�n�.�c�l�i�c�k�(�)�)�)�}�}�)�}�)�}�)�,�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�C�o�n�t�e�n�t�L�o�a�d�e�d�"�,�f�u�n�c�t�i�o�n�(�)�{�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�#�f�a�s�t�E�n�t�r�y�E�n�t�r�i�e�s� �a�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�.�t�e�x�t�C�o�n�t�e�n�t�;�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�"�f�a�s�t�E�n�t�r�y�B�u�t�t�o�n�"�)�.�t�e�x�t�C�o�n�t�e�n�t�=�t�}�)�}�)�}�)�,�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�C�o�n�t�e�n�t�L�o�a�d�e�d�"�,�f�u�n�c�t�i�o�n�(�)�{�c�o�n�s�t� �t�=�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�"�s�t�i�c�k�y�-�t�o�-�t�o�p�"�)�;�t�&�&�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�;�v�a�r� �t�=�t�h�i�s�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�h�r�e�f�"�)�.�s�u�b�s�t�r�i�n�g�(�1�)�,�t�=�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�t�)�;�t�&�&�(�t�=�t�.�o�f�f�s�e�t�T�o�p�-�1�2�0�,�w�i�n�d�o�w�.�s�c�r�o�l�l�(�{�t�o�p�:�t�,�b�e�h�a�v�i�o�r�:�"�s�m�o�o�t�h�"�}�)�)�}�)�}�)�,�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�C�o�n�t�e�n�t�L�o�a�d�e�d�"�,�f�u�n�c�t�i�o�n�(�)�{�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�.�s�t�a�g�e�_�f�u�l�l� �.�t�a�g�s� �.�b�t�n�-�t�a�g�-�a�l�l�"�)�.�f�o�r�E�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�t�.�c�l�o�s�e�s�t�(�"�u�l�"�)�.�c�l�a�s�s�L�i�s�t�.�t�o�g�g�l�e�(�"�s�h�o�w�a�l�l�"�)�}�)�}�)�}�)�,�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�C�o�n�t�e�n�t�L�o�a�d�e�d�"�,�(�)�=�>�{�c�o�n�s�t� �n�=�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�"�s�c�r�o�l�l�F�i�x�B�t�n�"�)�,�o�=�d�o�c�u�m�e�n�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�(�"�h�e�a�d�e�r�"�)�,�s�=�d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�"�e�m�p�l�o�y�e�r�-�d�e�t�a�i�l�-�c�o�n�t�a�c�t�"�
1)�;�v�a�r� �t�;�n�&�&�o�&�&�s�&�&�(�t�=�(�)�=�>�{�v�a�r� �t�=�n�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�t�o�p�,�e�=�s�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�b�o�t�t�o�m�,�i�=�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�;�t�<�=�0�&�&�o�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�"�i�s�-�c�l�o�s�e�d�"�)�|�|�t�<�=�1�0�0�&�&�!�o�.�c�l�a�s�s�L�i�s�t�.�c�o�n�t�a�i�n�s�(�"�i�s�-�c�l�o�s�e�d�"�)�?�n�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�s�c�r�o�l�l�-�f�i�x�e�d�"�)�:�n�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�s�c�r�o�l�l�-�f�i�x�e�d�"�)�,�e�<�=�i�-�2�4�&�&�n�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�s�c�r�o�l�l�-�f�i�x�e�d�"�)�}�,�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�s�c�r�o�l�l�"�,�t�)�,�t�(�)�)�}�)�,�0�)�,�f�i�l�t�e�r�F�e�s�e�t�B�u�t�t�o�n�=�{�}�,�w�=�0�;�f�u�n�c�t�i�o�n� �c�a�l�c�u�l�a�t�e�N�a�v�b�a�r�(�)�{�$�(�"�.�n�a�v�b�a�r�-�c�o�l�l�a�p�s�e�"�)�.�c�s�s�(�"�v�i�s�i�b�i�l�i�t�y�"�,�"�h�i�d�d�e�n�"�)�,�$�(�"�.�n�a�v�b�a�r�-�c�o�l�l�a�p�s�e�"�)�.�a�d�d�C�l�a�s�s�(�"�s�h�o�w�"�)�,�$�(�"�.�n�a�v�b�a�r�-�n�a�v�"�)�.�c�s�s�(�"�f�l�e�x�-�d�i�r�e�c�t�i�o�n�"�,�"�r�o�w�"�)�,�$�(�"�h�e�a�d�e�r�,� �n�a�v�.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�a�v�b�a�r�-�s�e�m�i�-�m�o�b�i�l�e� �n�a�v�b�a�r�-�m�o�b�i�l�e�"�)�;�v�a�r� �t�=�0�,�e�=�0�,�i�=�0�,�n�=�0�;�$�(�"�.�n�a�v�-�i�t�e�m�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�t�+�=�$�(�t�h�i�s�)�.�o�u�t�e�r�W�i�d�t�h�(�)�}�)�,�$�(�"�.�f�o�r�m�-�i�n�l�i�n�e� �.�c�o�l�m�o�b�i�l�e�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�e�+�=�$�(�t�h�i�s�)�.�o�u�t�e�r�W�i�d�t�h�(�)�}�)�,�n�a�v�b�a�r�F�u�l�l�=�t�+�e�,�$�(�"�h�e�a�d�e�r�"�)�.�a�d�d�C�l�a�s�s�(�"�n�a�v�b�a�r�-�s�e�m�i�-�m�o�b�i�l�e�"�)�,�$�(�"�.�n�a�v�-�i�t�e�m�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�i�+�=�$�(�t�h�i�s�)�.�i�n�n�e�r�W�i�d�t�h�(�)�}�)�,�$�(�"�.�f�o�r�m�-�i�n�l�i�n�e� �.�c�o�l�m�o�b�i�l�e�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�n�+�=�$�(�t�h�i�s�)�.�i�n�n�e�r�W�i�d�t�h�(�)�}�)�,�n�a�v�b�a�r�S�e�m�i�=�i�+�n�,�$�(�"�h�e�a�d�e�r�,� �n�a�v�.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�a�v�b�a�r�-�s�e�m�i�-�m�o�b�i�l�e� �n�a�v�b�a�r�-�m�o�b�i�l�e�"�)�,�$�(�"�.�n�a�v�b�a�r�-�c�o�l�l�a�p�s�e�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�,�$�(�"�.�n�a�v�b�a�r�-�c�o�l�l�a�p�s�e�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�s�t�y�l�e�"�)�,�$�(�"�.�n�a�v�b�a�r�-�n�a�v�"�)�.�r�e�m�o�v�e�A�t�t�r�(�"�s�t�y�l�e�"�)�}�f�u�n�c�t�i�o�n� �n�a�v�b�a�r�C�o�l�l�a�p�s�e�(�)�{�v�a�r� �t�=�$�(�"�n�a�v�.�n�a�v�b�a�r�"�)�.�w�i�d�t�h�(�)�-�$�(�"�.�n�a�v�b�a�r�-�b�r�a�n�d�"�)�.�w�i�d�t�h�(�)�-�1�2�0�;�1�2�0�0�<�=�$�(�w�i�n�d�o�w�)�.�o�u�t�e�r�W�i�d�t�h�(�)�?�(�$�(�"�h�e�a�d�e�r�,� �n�a�v�.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�a�v�b�a�r�-�m�o�b�i�l�e�"�)�,�t�<�=�n�a�v�b�a�r�F�u�l�l�&�&�n�a�v�b�a�r�S�e�m�i�<�t�|�|�t�<�=�n�a�v�b�a�r�S�e�m�i�?�$�(�"�h�e�a�d�e�r�"�)�.�h�a�s�C�l�a�s�s�(�"�n�a�v�b�a�r�-�s�e�m�i�-�m�o�b�i�l�e�"�)�|�|�$�(�"�h�e�a�d�e�r�"�)�.�a�d�d�C�l�a�s�s�(�"�n�a�v�b�a�r�-�s�e�m�i�-�m�o�b�i�l�e�"�)�:�$�(�"�h�e�a�d�e�r�,� �n�a�v�.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�a�v�b�a�r�-�s�e�m�i�-�m�o�b�i�l�e� �n�a�v�b�a�r�-�m�o�b�i�l�e�"�)�)�:�(�$�(�"�h�e�a�d�e�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�a�v�b�a�r�-�s�e�m�i�-�m�o�b�i�l�e�"�)�,�$�(�"�h�e�a�d�e�r�"�)�.�h�a�s�C�l�a�s�s�(�"�n�a�v�b�a�r�-�m�o�b�i�l�e�"�)�|�|�$�(�"�h�e�a�d�e�r�,� �n�a�v�.�n�a�v�b�a�r�"�)�.�a�d�d�C�l�a�s�s�(�"�n�a�v�b�a�r�-�m�o�b�i�l�e�"�)�)�,�$�(�"�.�n�a�v�b�a�r�"�)�.�c�s�s�(�"�o�p�a�c�i�t�y�"�,�"�1�"�)�}�f�u�n�c�t�i�o�n� �e�q�u�a�l�H�e�i�g�h�t�(�)�{�v�a�r� �t�;�$�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�<�=�1�0�2�3�?�(�t�=�0�,�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�o�v�e�r�l�a�y� �.�i�n�n�e�r�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�c�s�s�(�"�h�e�i�g�h�t�"�,�"�a�u�t�o�"�)�,�$�(�t�h�i�s�)�.�i�n�n�e�r�H�e�i�g�h�t�(�)�>�t�&�&�(�t�=�$�(�t�h�i�s�)�.�i�n�n�e�r�H�e�i�g�h�t�(�)�)�}�)�,�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�o�v�e�r�l�a�y� �.�i�n�n�e�r�"�)�.�c�s�s�(�"�h�e�i�g�h�t�"�,�t�+�2�0�)�)�:�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�o�v�e�r�l�a�y� �.�i�n�n�e�r�"�)�.�c�s�s�(�"�h�e�i�g�h�t�"�,�"�a�u�t�o�"�)�}
1�f�u�n�c�t�i�o�n� �s�l�i�d�e�r�E�m�p�l�o�y�e�r�(�)�{�7�6�8�<�=�$�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�?�0�<�$�(�"�.�t�e�a�s�e�r�-�e�m�p�l�o�y�e�r� �.�s�l�i�c�k�-�i�n�i�t�i�a�l�i�z�e�d�"�)�.�l�e�n�g�t�h�&�&�$�(�"�.�t�e�a�s�e�r�-�e�m�p�l�o�y�e�r� �.�s�l�i�d�e�r�"�)�.�s�l�i�c�k�(�"�u�n�s�l�i�c�k�"�)�:�$�(�"�.�t�e�a�s�e�r�-�e�m�p�l�o�y�e�r� �.�s�l�i�d�e�r�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�o�n�(�"�i�n�i�t� �r�e�I�n�i�t� �a�f�t�e�r�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�a�r� �i�=�(�i�|�|�0�)�+�1�,�o�=�M�a�t�h�.�c�e�i�l�(�e�.�s�l�i�d�e�C�o�u�n�t�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�i�=�M�a�t�h�.�c�e�i�l�(�i�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�e�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�i�n�g�I�n�f�o�"�)�;�e�.�t�e�x�t�(�i�+�"�/�"�+�o�)�,�1�=�=�i�&�1�=�=�o�?�e�.�h�i�d�e�(�)�:�e�.�s�h�o�w�(�)�}�)�,�$�(�t�h�i�s�)�.�s�l�i�c�k�(�{�d�o�t�s�:�!�1�,�a�r�r�o�w�s�:�!�0�,�i�n�f�i�n�i�t�e�:�!�1�,�s�p�e�e�d�:�5�0�0�,�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�,�c�e�n�t�e�r�M�o�d�e�:�!�1�,�m�o�b�i�l�e�F�i�r�s�t�:�!�0�,�a�p�p�e�n�d�A�r�r�o�w�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�e�r� �.�i�n�n�e�r�"�)�,�p�r�e�v�A�r�r�o�w�:�"�<�b�u�t�t�o�n� �t�y�p�e�=�'�b�u�t�t�o�n�'� �c�l�a�s�s�=�'�s�l�i�c�k�-�p�r�e�v� �p�u�l�l�-�l�e�f�t�'�>�<�i� �c�l�a�s�s�=�'�i�c�o�n�-�i�c�-�c�h�e�v�r�o�n�-�l�e�f�t�-�2�0�'� �a�r�i�a�-�h�i�d�d�e�n�=�'�t�r�u�e�'�>�<�/�i�>�<�/�b�u�t�t�o�n�>�"�,�n�e�x�t�A�r�r�o�w�:�"�<�b�u�t�t�o�n� �t�y�p�e�=�'�b�u�t�t�o�n�'� �c�l�a�s�s�=�'�s�l�i�c�k�-�n�e�x�t� �p�u�l�l�-�r�i�g�h�t�'�>�<�i� �c�l�a�s�s�=�'�i�c�o�n�-�i�c�-�c�h�e�v�r�o�n�-�r�i�g�h�t�-�2�0�'� �a�r�i�a�-�h�i�d�d�e�n�=�'�t�r�u�e�'�>�<�/�i�>�<�/�b�u�t�t�o�n�>�"�,�r�o�w�s�:�0�}�)�}�)�}�f�u�n�c�t�i�o�n� �s�l�i�d�e�r�E�m�p�l�o�y�e�r�D�e�s�k�t�o�p�(�)�{�$�(�"�.�t�e�a�s�e�r�-�e�m�p�l�o�y�e�r� �.�s�l�i�d�e�r�D�e�s�k�t�o�p�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�o�n�(�"�i�n�i�t� �r�e�I�n�i�t� �a�f�t�e�r�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�a�r� �i�=�(�i�|�|�0�)�+�1�,�o�=�M�a�t�h�.�c�e�i�l�(�e�.�s�l�i�d�e�C�o�u�n�t�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�i�=�M�a�t�h�.�c�e�i�l�(�i�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�e�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�i�n�g�I�n�f�o�"�)�;�e�.�t�e�x�t�(�i�+�"�/�"�+�o�)�,�1�=�=�i�&�1�=�=�o�?�e�.�h�i�d�e�(�)�:�e�.�s�h�o�w�(�)�}�)�,�$�(�t�h�i�s�)�.�s�l�i�c�k�(�{�d�o�t�s�:�!�0�,�a�r�r�o�w�s�:�!�0�,�i�n�f�i�n�i�t�e�:�!�1�,�s�p�e�e�d�:�5�0�0�,�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�,�c�e�n�t�e�r�M�o�d�e�:�!�1�,�m�o�b�i�l�e�F�i�r�s�t�:�!�0�,�a�p�p�e�n�d�D�o�t�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�e�r� �.�d�o�t�s�"�)�,�a�p�p�e�n�d�A�r�r�o�w�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�e�r� �.�i�n�n�e�r�"�)�,�p�r�e�v�A�r�r�o�w�:�"�<�b�u�t�t�o�n� �t�y�p�e�=�'�b�u�t�t�o�n�'� �c�l�a�s�s�=�'�s�l�i�c�k�-�p�r�e�v� �p�u�l�l�-�l�e�f�t�'�>�<�i� �c�l�a�s�s�=�'�i�c�o�n�-�i�c�-�c�h�e�v�r�o�n�-�l�e�f�t�-�2�0�'� �a�r�i�a�-�h�i�d�d�e�n�=�'�t�r�u�e�'�>�<�/�i�>�<�/�b�u�t�t�o�n�>�"�,�n�e�x�t�A�r�r�o�w�:�"�<�b�u�t�t�o�n� �t�y�p�e�=�'�b�u�t�t�o�n�'� �c�l�a�s�s�=�'�s�l�i�c�k�-�n�e�x�t� �p�u�l�l�-�r�i�g�h�t�'�>�<�i� �c�l�a�s�s�=�'�i�c�o�n�-�i�c�-�c�h�e�v�r�o�n�-�r�i�g�h�t�-�2�0�'� �a�r�i�a�-�h�i�d�d�e�n�=�'�t�r�u�e�'�>�<�/�i�>�<�/�b�u�t�t�o�n�>�"�,�r�o�w�s�:�0�,�r�e�s�p�o�n�s�i�v�e�:�[�{�b�r�e�a�k�p�o�i�n�t�:�4�7�9�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�7�6�7�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�2�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�2�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�1�0�2�4�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�3�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�3�}�}�]�}�)�}�)�}�$�(�d�o�c�u�m�e�n�t�)�.�r�e�a�d�y�(�f�u�n�c�t�i�o�n�(�)�{�c�a�l�c�u�l�a�t�e�N�a�v�b�a�r�(�)�,�n�a�v�b�a�r�C�o�l�l�a�p�s�e�(�)�;�v�a�r� �t�,�e�,�i�,�n�,�o�,�s�=�7�;�f�u�n�c�t�i�o�n� �r�(�)�{�t�.�c�s�s�(�{�w�i�d�t�h�:�"�0�%�"�}�)�,�c�l�e�a�r�T�i�m�e�o�u�t�(�n�)�,�o�=�0�,�i�=�!�1�,�n�=�s�e�t�I�n�t�e�r�v�a�l�(�a�,�1�0�)�}�f�u�n�c�t�i�o�n� �a�(�)�{�!�1�=�=�=�i�&�&�(�o�+�=�1�/�(�s�+�.�1�)�,�t�.
1�c�s�s�(�{�w�i�d�t�h�:�o�+�"�%�"�}�)�,�1�0�0�<�=�o�&�&�(�e�.�s�l�i�c�k�(�"�s�l�i�c�k�N�e�x�t�"�)�,�r�(�)�)�)�}�(�e�=�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r�"�)�.�n�o�t�(�"�.�n�o�s�l�i�d�e�.�l�o�w�_�c�o�n�t�e�n�t�"�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�"�)�)�.�s�l�i�c�k�(�{�d�r�a�g�g�a�b�l�e�:�!�0�,�a�d�a�p�t�i�v�e�H�e�i�g�h�t�:�!�1�,�d�o�t�s�:�!�1�,�a�r�r�o�w�s�:�!�1�,�m�o�b�i�l�e�F�i�r�s�t�:�!�0�,�p�a�u�s�e�O�n�D�o�t�s�H�o�v�e�r�:�!�1�,�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�,�c�e�n�t�e�r�M�o�d�e�:�!�1�,�f�a�d�e�:�!�0�,�a�s�N�a�v�F�o�r�:�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�s�l�i�d�e�r�-�n�a�v�-�t�e�x�t�"�,�i�n�f�i�n�i�t�e�:�!�0�,�a�u�t�o�p�l�a�y�:�!�1�}�)�,�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�s�l�i�d�e�r�-�n�a�v�-�t�e�x�t�"�)�.�s�l�i�c�k�(�{�s�p�e�e�d�:�5�0�0�,�d�r�a�g�g�a�b�l�e�:�!�0�,�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�,�a�s�N�a�v�F�o�r�:�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�s�l�i�d�e�r�"�,�d�o�t�s�:�!�1�,�a�r�r�o�w�s�:�!�1�,�r�o�w�s�:�0�,�f�o�c�u�s�O�n�S�e�l�e�c�t�:�!�0�,�f�a�d�e�:�!�1�,�i�n�f�i�n�i�t�e�:�!�0�,�a�u�t�o�p�l�a�y�:�!�1�,�m�o�b�i�l�e�F�i�r�s�t�:�!�0�,�r�e�s�p�o�n�s�i�v�e�:�[�{�b�r�e�a�k�p�o�i�n�t�:�4�8�0�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�7�6�8�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�3�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�}�}�]�}�)�,�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�s�l�i�d�e�r�-�n�a�v�-�t�e�x�t� �.�s�l�i�d�e�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�e�.�s�l�i�c�k�(�"�s�l�i�c�k�S�e�t�O�p�t�i�o�n�"�,�{�a�u�t�o�p�l�a�y�:�!�1�}�,�!�1�)�,�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�s�l�i�d�e�r�-�n�a�v�-�t�e�x�t�"�)�.�s�l�i�c�k�(�"�s�l�i�c�k�S�e�t�O�p�t�i�o�n�"�,�{�a�u�t�o�p�l�a�y�:�!�1�}�,�!�1�)�}�)�,�t�=�$�(�"�.�s�l�i�d�e�r�-�p�r�o�g�r�e�s�s� �.�s�l�i�d�e�p�r�o�g�r�e�s�s�"�)�,�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r� �.�s�l�i�c�k�-�s�l�i�d�e�"�)�.�o�n�(�{�c�l�i�c�k�:�f�u�n�c�t�i�o�n�(�)�{�!�1�=�=�=�i�&�&�(�i�=�!�0�,�$�(�"�.�s�t�a�g�e�_�s�l�i�d�e�r�"�)�.�a�d�d�C�l�a�s�s�(�"�p�a�u�s�e�d�"�)�)�}�}�)�,�r�(�)�,�e�q�u�a�l�H�e�i�g�h�t�(�)�,�$�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r� �.�s�l�i�d�e�r�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�,�o�;�$�(�t�h�i�s�)�.�o�n�(�"�i�n�i�t� �r�e�I�n�i�t� �a�f�t�e�r�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�a�r� �i�=�(�i�|�|�0�)�+�1�,�o�=�M�a�t�h�.�c�e�i�l�(�e�.�s�l�i�d�e�C�o�u�n�t�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�i�=�M�a�t�h�.�c�e�i�l�(�i�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�e�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�i�n�g�I�n�f�o�"�)�,�s�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�l�i�n�k�h�o�l�d�e�r�"�)�,�r�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�;�e�.�t�e�x�t�(�i�+�"�/�"�+�o�)�,�1�=�=�i�&�1�=�=�o�?�(�e�.�h�i�d�e�(�)�,�r�.�a�d�d�C�l�a�s�s�(�"�n�o�s�l�i�d�e�"�)�,�"�"�=�=�s�.�h�t�m�l�(�)�&�&�r�.�a�d�d�C�l�a�s�s�(�"�n�o�s�l�i�d�e�n�a�v�"�)�)�:�(�e�.�s�h�o�w�(�)�,�r�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�o�s�l�i�d�e� �n�o�s�l�i�d�e�n�a�v�"�)�)�,�$�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r� �.�s�l�i�c�k�-�s�l�i�d�e� �.�c�a�r�d�"�)�.�b�l�u�r�(�)�}�)�,�1�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�o�=�n�=�i�=�e�=�t�=�1�:�2�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�(�e�=�t�=�1�,�o�=�n�=�i�=�2�)�:�3�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�(�e�=�t�=�1�,�i�=�2�,�o�=�n�=�3�)�:�4�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�(�e�=�t�=�1�,�i�=�2�,�o�=�n�=�4�)�:�"�4�m�a�x�"�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�(�t�=�1�,�e�=�2�,�i�=�3�,�o�=�n�=�4�)�:�5�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�(�e�=�t�=�2�,�i�=�4�,�o�=�n�=�5�)�:�6�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�(�t�=�2�,�e�=�3�,�i�=�4�,�o�=�n�=�6�)�:�"�m�o�b�i�l�e�o�n�l�y�"�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�
1)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�(�t�=�1�,�e�=�2�,�o�=�n�=�i�=�2�0�)�:�1�0�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�&�&�(�t�=�2�,�e�=�3�,�n�=�i�=�6�,�o�=�1�0�)�,�$�(�t�h�i�s�)�.�s�l�i�c�k�(�{�d�o�t�s�:�!�0�,�a�r�r�o�w�s�:�!�0�,�i�n�f�i�n�i�t�e�:�!�1�,�s�p�e�e�d�:�5�0�0�,�s�l�i�d�e�s�T�o�S�h�o�w�:�t�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�t�,�c�e�n�t�e�r�M�o�d�e�:�!�1�,�m�o�b�i�l�e�F�i�r�s�t�:�!�0�,�a�p�p�e�n�d�D�o�t�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�d�o�t�s�"�)�,�a�p�p�e�n�d�A�r�r�o�w�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�p�a�g�e�r� �.�i�n�n�e�r�"�)�,�r�o�w�s�:�0�,�r�e�s�p�o�n�s�i�v�e�:�[�{�b�r�e�a�k�p�o�i�n�t�:�4�7�9�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�e�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�e�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�7�6�7�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�i�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�i�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�1�0�2�4�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�n�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�n�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�1�4�4�0�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�o�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�o�}�}�]�}�)�,�$�(�t�h�i�s�)�.�f�i�n�d�(�"�.�s�l�i�d�e�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�$�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�s�l�i�c�k�-�a�c�t�i�v�e�"�)�|�|�(�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�t�=�$�(�t�h�i�s�)�.�i�n�d�e�x�(�)�,�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�"�)�.�s�l�i�c�k�(�"�s�l�i�c�k�G�o�T�o�"�,�t�,�!�1�)�,�$�(�t�h�i�s�)�.�b�l�u�r�(�)�)�}�)�}�)�,�$�(�"�.�e�v�e�n�t�s�_�q�u�o�t�e�_�v�i�s�u�a�l�_�s�l�i�d�e�r� �.�s�l�i�d�e�r�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�n�,�o�;�$�(�t�h�i�s�)�.�o�n�(�"�i�n�i�t� �r�e�I�n�i�t� �a�f�t�e�r�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�a�r� �o�=�(�i�|�|�0�)�+�1�,�i�=�M�a�t�h�.�c�e�i�l�(�e�.�s�l�i�d�e�C�o�u�n�t�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�e�=�M�a�t�h�.�c�e�i�l�(�o�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�s�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�i�n�g�I�n�f�o�"�)�,�r�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�l�i�n�k�h�o�l�d�e�r�"�)�,�a�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�;�s�.�t�e�x�t�(�e�+�"�/�"�+�i�)�,�1�=�=�e�&�1�=�=�i�?�(�s�.�h�i�d�e�(�)�,�a�.�a�d�d�C�l�a�s�s�(�"�n�o�s�l�i�d�e�"�)�,�"�"�=�=�r�.�h�t�m�l�(�)�&�&�a�.�a�d�d�C�l�a�s�s�(�"�n�o�s�l�i�d�e�n�a�v�"�)�)�:�(�s�.�s�h�o�w�(�)�,�a�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�o�s�l�i�d�e� �n�o�s�l�i�d�e�n�a�v�"�)�)�,�$�(�"�.�s�l�i�d�e�r�h�o�l�d�e�r� �.�s�l�i�c�k�-�s�l�i�d�e� �.�c�a�r�d�"�)�.�b�l�u�r�(�)�,�2�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�_�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�&�&�(�7�6�8�<�=�$�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�?�o�=�e�:�(�o�=�e�/�2�+�.�5�,�c�o�n�s�o�l�e�.�l�o�g�(�o�)�)�)�;�l�e�t� �l�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�v�i�s�u�a�l�"�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�-�e�v�e�n�t�s�-�v�i�s�u�a�l� �.�v�i�s�u�a�l�-�s�l�i�d�e�"�)�;�l�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�)�{�t�+�1�!�=�o�&�&�t�+�1�!�=�o�-�.�5�|�|�(�l�.�r�e�m�o�v�e�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�,�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�)�}�)�}�)�,�1�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�_�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�?�o�=�n�=�i�=�e�=�t�=�1�:�2�=�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�l�i�d�e�r�_�h�o�l�d�e�r�"�)�.�d�a�t�a�(�"�c�o�u�n�t�"�)�&�&�(�e�=�t�=�1�,�o�=�n�=�i�=�2�)�,�$�(�t�h�i�s�)�.�s�l�i�c�k�(�{�d�o�t�s�:�!�0�,�a�r�r�o�w�s�:�!�0�,�i�n�f�i�n�i�t�e�:�!�1�,�s�p�e�e�d�:�5�0�0�,�s�l�i�d�e�s�T�o�S�h�o�w�:�t�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�t�,�c�e�n�t�e�r�M�o�d�e�:�!�1�,�m�o�b�i�l�e�F�i�r�s�t�:�!�0�,�a�p�p�e�n�d�D�o�t�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�d�o�t�s�"�)�,�a�p�p�e�n�d�A�r�r�o�w�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�p�a�g�e�r� �.�i�n�n�e�r�"�)�,�r�o�w�s�:�0�,�r�e�s�p�o�n�s�i�v�e�:�[�{�b�r�e�a�k�p�o�i�n�t�:�4�7�9�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�e�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�e�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�7�6�7�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�i�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�i�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�1�0�2�4�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�n�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�n�}�}�,�{�b�r�e�a�k�p�o�i�n�t�:�1�4�4�0�,�s�e�t�t�i�n�g�s�:�{�s�l�i�d�e�s�T�o�S�h�o�w�:�o�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�o�}�}�]�}�)�}�)�,�$�(�"�.�g�a�l�e�r�i�e�_�s�l�i�d�e�r� �.�g�a�l�e�r�i�e�s�l�i�d�e�r�"�
1)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�c�o�n�s�t� �s�=�$�(�t�h�i�s�)�;�f�u�n�c�t�i�o�n� �o�(�t�)�{�c�o�n�s�t� �e�=�s�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�c�k�-�d�o�t�s�"�)�,�i�=�e�.�f�i�n�d�(�"�l�i�"�)�.�l�e�n�g�t�h�,�n�=�e�.�f�i�n�d�(�"�l�i�:�f�i�r�s�t�"�)�.�o�u�t�e�r�W�i�d�t�h�(�!�0�)�,�o�=�n�*�t�;�e�.�c�s�s�(�"�m�a�r�g�i�n�L�e�f�t�"�,�-�1�*�o�-�M�a�t�h�.�c�e�i�l�(�n�/�2�)�)�,�e�.�f�i�n�d�(�"�l�i�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�l�i�c�k�-�s�e�c�o�n�d�a�r�y�"�)�,�0�<�t�&�&�e�.�f�i�n�d�(�"�l�i�:�n�t�h�-�o�f�-�t�y�p�e�(�"�+�t�+�"�)�"�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�s�e�c�o�n�d�a�r�y�"�)�,�t�<�i�-�1�&�&�e�.�f�i�n�d�(�"�l�i�:�n�t�h�-�o�f�-�t�y�p�e�(�"�+�(�t�+�2�)�+�"�)�"�)�.�a�d�d�C�l�a�s�s�(�"�s�l�i�c�k�-�s�e�c�o�n�d�a�r�y�"�)�}�$�(�t�h�i�s�)�.�o�n�(�"�i�n�i�t� �r�e�I�n�i�t� �a�f�t�e�r�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�v�a�r� �i�=�(�i�|�|�0�)�+�1�,�o�=�M�a�t�h�.�c�e�i�l�(�e�.�s�l�i�d�e�C�o�u�n�t�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�i�=�M�a�t�h�.�c�e�i�l�(�i�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�e�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�i�n�g�I�n�f�o�"�)�,�s�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�;�e�.�t�e�x�t�(�i�+�"�/�"�+�o�)�,�1�=�=�i�&�1�=�=�o�?�(�e�.�h�i�d�e�(�)�,�s�.�a�d�d�C�l�a�s�s�(�"�n�o�s�l�i�d�e�"�)�)�:�(�e�.�s�h�o�w�(�)�,�s�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�o�s�l�i�d�e�"�)�)�}�)�,�$�(�t�h�i�s�)�.�o�n�(�"�i�n�i�t�"�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�o�(�0�)�}�)�,�$�(�t�h�i�s�)�.�o�n�(�"�b�e�f�o�r�e�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�o�(�n�)�}�)�,�$�(�t�h�i�s�)�.�s�l�i�c�k�(�{�d�o�t�s�:�!�0�,�a�r�r�o�w�s�:�!�0�,�i�n�f�i�n�i�t�e�:�!�1�,�s�p�e�e�d�:�5�0�0�,�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�,�c�e�n�t�e�r�M�o�d�e�:�!�0�,�m�o�b�i�l�e�F�i�r�s�t�:�!�0�,�a�p�p�e�n�d�D�o�t�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�d�o�t�s� �.�d�o�t�s�-�h�o�l�d�e�r�"�)�,�a�p�p�e�n�d�A�r�r�o�w�s�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�p�a�g�e�r� �.�i�n�n�e�r�"�)�,�r�o�w�s�:�0�,�a�s�N�a�v�F�o�r�:�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�c�a�p�t�i�o�n�_�s�l�i�d�e�r�"�)�}�)�}�)�,�$�(�"�.�g�a�l�e�r�i�e�_�s�l�i�d�e�r� �.�c�a�p�t�i�o�n�_�s�l�i�d�e�r�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�s�l�i�c�k�(�{�d�o�t�s�:�!�1�,�a�r�r�o�w�s�:�!�1�,�i�n�f�i�n�i�t�e�:�!�1�,�s�p�e�e�d�:�5�0�0�,�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�,�f�a�d�e�:�!�0�,�c�e�n�t�e�r�M�o�d�e�:�!�0�,�r�o�w�s�:�0�}�)�}�)�,�$�(�"�.�g�a�l�e�r�i�e�_�s�l�i�d�e�r� �.�g�a�l�e�r�i�e�s�l�i�d�e�r� �.�s�l�i�d�e�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�;�t�=�$�(�t�h�i�s�)�.�i�n�d�e�x�(�)�;�c�o�n�s�o�l�e�.�l�o�g�(�t�)�,�$�(�"�.�g�a�l�e�r�i�e�_�s�l�i�d�e�r� �.�g�a�l�e�r�i�e�s�l�i�d�e�r�"�)�.�s�l�i�c�k�(�"�s�l�i�c�k�G�o�T�o�"�,�t�,�!�1�)�}�)�,�$�(�"�.�f�o�o�t�e�r� �.�t�o�g�g�l�e�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�o�p�e�n�"�)�?�(�$�(�t�h�i�s�)�.�n�e�x�t�(�)�.�f�i�n�d�(�"�u�l�"�)�.�s�l�i�d�e�U�p�(�)�,�$�(�t�h�i�s�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�o�p�e�n�"�)�)�:�(�$�(�t�h�i�s�)�.�n�e�x�t�(�)�.�f�i�n�d�(�"�u�l�"�)�.�s�l�i�d�e�D�o�w�n�(�)�,�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�o�p�e�n�"�)�)�}�)�,�$�(�"�.�t�o�g�g�l�e�u�p�d�o�w�n�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�o�p�e�n�"�)�?�(�$�(�"�.�"�+�$�(�t�h�i�s�)�.�d�a�t�a�(�"�t�a�r�g�e�t�"�)�)�.�s�l�i�d�e�U�p�(�)�,�$�(�t�h�i�s�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�o�p�e�n�"�)�)�:�(�$�(�"�.�"�+�$�(�t�h�i�s�)�.�d�a�t�a�(�"�t�a�r�g�e�t�"�)�)�.�s�l�i�d�e�D�o�w�n�(�)�,�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�o�p�e�n�"�)�)�}�)�,�$�(�"�.�f�e�e�d�b�a�c�k� �.�r�a�t�i�n�g�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�f�e�e�d�b�a�c�k� �.�r�a�t�i�n�g�"�)�.�a�d�d�C�l�a�s�s�(�"�i�n�a�c�t�i�v�e�"�)�,�$�(�t�h�i�s�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�i�n�a�c�t�i�v�e�"�)�,�$�(�"�.�f�e�e�d�b�a�c�k�f�o�r�m�"�)�.�s�l�i�d�e�D�o�w�n�(�)�}�)�,�$�(�"�.�a�n�k�e�r�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�h�t�m�l�,� �b�o�d�y�"�)�.�a�n�i�m�a�t�e�(�{�s�c�r�o�l�l�T�o�p�:�$�(�$�(�t�h�i�s�)�.�d�a�t�a�(�"�t�a�r�g�e�t�"�)�)�.�o�f�f�s�e�t�(�)�.�t�o�p�}�,�"�s�l�o�w�"�)�}
1�)�,�$�(�"�.�n�a�v�-�l�i�n�k�.�d�r�o�p�d�o�w�n�-�t�o�g�g�l�e�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�h�e�a�d�e�r�"�)�.�h�a�s�C�l�a�s�s�(�"�n�a�v�b�a�r�-�m�o�b�i�l�e�"�)�|�|�(�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�h�a�s�C�l�a�s�s�(�"�s�h�o�w�"�)�?�(�$�(�"�b�o�d�y� �,�.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�e�n�u�o�p�e�n�"�)�,�$�(�"�b�o�d�y�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�e�a�r�c�h�o�p�e�n�"�)�)�:�$�(�"�b�o�d�y� �,�.�n�a�v�b�a�r�"�)�.�a�d�d�C�l�a�s�s�(�"�m�e�n�u�o�p�e�n�"�)�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�$�(�t�.�t�a�r�g�e�t�)�.�c�l�o�s�e�s�t�(�"�.�d�r�o�p�d�o�w�n�-�m�e�n�u� �.�c�o�n�t�a�i�n�e�r�"�)�.�l�e�n�g�t�h�|�|�(�$�(�"�b�o�d�y� �,�.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�e�n�u�o�p�e�n�"�)�,�$�(�"�.�d�r�o�p�d�o�w�n�-�m�e�n�u�.�s�h�o�w�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�,�$�(�"�.�n�a�v�b�a�r� �.�n�a�v�-�i�t�e�m�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�)�}�)�,�$�(�"�.�s�e�a�r�c�h�h�o�l�d�e�r�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�b�o�d�y� �,�.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�e�n�u�o�p�e�n�"�)�,�$�(�"�b�o�d�y�"�)�.�a�d�d�C�l�a�s�s�(�"�s�e�a�r�c�h�o�p�e�n�"�)�}�)�,�$�(�"�.�s�e�a�r�c�h�t�o�g�g�l�e�r�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�b�o�d�y�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�e�a�r�c�h�o�p�e�n�"�)�}�)�,�$�(�"�.�s�e�a�r�c�h�l�a�y�e�r� �.�c�l�o�s�e�s�e�a�r�c�h�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�,�$�(�"�b�o�d�y�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�e�a�r�c�h�o�p�e�n�"�)�}�)�,�$�(�"�.�n�a�v�b�a�r�-�t�o�g�g�l�e�r�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�b�o�d�y�"�)�.�t�o�g�g�l�e�C�l�a�s�s�(�"�m�o�b�i�l�e�o�p�e�n�"�)�}�)�,�$�(�"�.�n�a�v�b�a�r�-�c�o�l�l�a�p�s�e� �.�c�l�o�s�e�m�o�b�i�l�e�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�b�o�d�y�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�o�b�i�l�e�o�p�e�n�"�)�,�$�(�"�.�n�a�v�b�a�r�-�c�o�l�l�a�p�s�e�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�,�$�(�"�.�d�r�o�p�d�o�w�n�-�m�e�n�u�,� �.�d�r�o�p�d�o�w�n�-�m�e�n�u� �.�s�u�b�h�o�l�d�e�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w� �m�f�s�h�o�w�"�)�}�)�,�$�(�"�.�d�r�o�p�d�o�w�n�"�)�.�o�n�(�"�s�h�o�w�.�b�s�.�d�r�o�p�d�o�w�n�"�,�f�u�n�c�t�i�o�n�(�)�{�}�)�,�$�(�"�.�d�r�o�p�d�o�w�n�"�)�.�o�n�(�"�h�i�d�e�.�b�s�.�d�r�o�p�d�o�w�n�"�,�f�u�n�c�t�i�o�n�(�)�{�}�)�,�$�(�"�.�s�h�a�r�e�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�"�.�s�h�a�r�e�h�o�l�d�e�r�"�)�.�t�o�g�g�l�e�C�l�a�s�s�(�"�o�p�e�n�"�)�}�)�;�v�a�r� �l�,�c�=�w�i�n�d�o�w�.�l�o�c�a�t�i�o�n�.�h�a�s�h�.�s�u�b�s�t�r�i�n�g�(�1�)�;�c�.�l�e�n�g�t�h�?�(�l�=�$�(�"�#�"�+�c�)�)�.�l�e�n�g�t�h�&�&�(�w�i�n�d�o�w�.�s�c�r�o�l�l�T�o�(�0�,�0�)�,�$�(�"�.�c�o�l�l�a�p�s�e�.�s�h�o�w�"�)�.�c�o�l�l�a�p�s�e�(�"�t�o�g�g�l�e�"�)�,�c�o�n�s�o�l�e�.�l�o�g�(�"�c�o�l�l�a�p�s�e� �a�l�l� �i�n� �t�i�m�e�o�u�t�"�)�,�c�o�n�s�o�l�e�.�l�o�g�(�"�a�n�i�m�a�t�e�"�)�,�c�o�n�s�o�l�e�.�l�o�g�(�l�.�o�f�f�s�e�t�(�)�.�t�o�p�)�,�$�(�"�h�t�m�l�,�b�o�d�y�"�)�.�a�n�i�m�a�t�e�(�{�s�c�r�o�l�l�T�o�p�:�l�.�o�f�f�s�e�t�(�)�.�t�o�p�}�,�"�s�l�o�w�"�,�f�u�n�c�t�i�o�n�(�)�{�l�.�s�i�b�l�i�n�g�s�(�"�.�c�o�l�l�a�p�s�e�"�)�.�c�o�l�l�a�p�s�e�(�"�t�o�g�g�l�e�"�)�}�)�)�:�$�(�"�.�a�c�c�o�r�d�i�o�n�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�e�v�e�n�t�s�"�)�|�|�$�(�t�h�i�s�)�.�f�i�n�d�(�"�.�a�c�c�o�r�d�i�o�n�-�i�t�e�m�"�)�.�f�i�r�s�t�(�)�.�f�i�n�d�(�"�.�a�c�c�o�r�d�i�o�n�-�t�o�g�g�l�e�"�)�.�c�l�i�c�k�(�)�}�)�,�$�(�"�#�t�o�g�g�l�e�-�f�o�r�m�"�)�.�c�l�i�c�k�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �$�(�t�h�i�s�)�.�t�o�g�g�l�e�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�,�$�(�"�.�t�o�g�g�l�e�-�f�o�r�m�-�w�r�a�p�p�e�r�"�)�.�s�l�i�d�e�T�o�g�g�l�e�(�)�,�!�1�}�)�,�$�(�"�.�d�r�o�p�d�o�w�n�-�m�e�n�u�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�}�)�,�j�Q�u�e�r�y�.�e�x�t�e�n�d�(�j�Q�u�e�r�y�.�v�a�l�i�d�a�t�o�r�.�m�e�s�s�a�g�e�s�,�{�r�e�q�u�i�r�e�d�:�"�D�i�e�s�e�s� �F�e�l�d� �i�s�t� �e�r�f�o�r�d�e�r�l�i�c�h�.�"�,�m�i�n�l�e�n�g�t�h�:�j�Q�u�e�r�y�.�v�a�l�i�d�a�t�o�r�.�f�o�r�m�a�t�(�"�G�e�b�e�n� �S�i�e� �m�i�n�d�e�s�t�e�n�s� �{�0�}� �Z�e�i�c�h�e�n� �e�i�n�.�"�)�}�)�,�$�(�"�#�c�a�l�l�b�a�c�k�"�)�.�v�a�l�i�d�a�t�e�(�{�}
1�)�,�$�.�m�e�t�a�d�a�t�a�.�s�e�t�T�y�p�e�(�"�a�t�t�r�"�,�"�v�a�l�i�d�a�t�e�"�)�,�$�(�"�#�b�t�n�-�s�e�n�d�"�)�.�c�l�i�c�k�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�1�}�)�,�$�(�"�.�d�o�w�n�l�o�a�d�_�a�l�l�"�)�.�c�l�i�c�k�(�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�m�p�d�w�n�l�"�)�.�m�u�l�t�i�D�o�w�n�l�o�a�d�(�)�}�)�,�$�(�'�.�c�l�i�c�k�d�f�o�r�m� �f�o�r�m� �b�u�t�t�o�n�[�t�y�p�e�=�"�s�u�b�m�i�t�"�]�'�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�c�l�i�c�k�d�f�o�r�m� �i�n�p�u�t�,� �.�c�l�i�c�k�d�f�o�r�m� �s�e�l�e�c�t�,� �.�c�l�i�c�k�d�f�o�r�m� �t�e�x�t�a�r�e�a�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�a�t�t�r�(�"�r�e�q�u�i�r�e�d�"�)�&�&�(�$�(�t�h�i�s�)�[�0�]�.�c�h�e�c�k�V�a�l�i�d�i�t�y�(�)�,�$�(�t�h�i�s�)�[�0�]�.�v�a�l�i�d�a�t�i�o�n�M�e�s�s�a�g�e�,�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�v�a�l�i�d�a�t�e�d�"�)�)�}�)�}�)�,�$�(�'�.�c�l�i�c�k�d�f�o�r�m� �i�n�p�u�t�[�t�y�p�e�=�"�r�a�d�i�o�"�]�'�)�.�o�n�(�"�b�l�u�r�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�a�t�t�r�(�"�n�a�m�e�"�)�;�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�v�a�l�i�d�a�t�e�d�"�)�}�)�,�$�(�"�.�v�i�s�u�a�l�.�s�t�a�g�e�l�o�w�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�n�e�x�t�(�"�s�e�c�t�i�o�n�"�)�.�h�a�s�C�l�a�s�s�(�"�c�o�n�t�e�n�t�"�)�&�&�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�c�o�n�t�e�n�t�"�)�}�)�,�d�e�a�l�R�e�s�e�t�B�u�t�t�o�n�(�)�,�$�(�"�.�w�r�a�p�p�e�r�"�)�.�o�n�(�"�c�h�a�n�g�e�"�,�"�.�p�e�r�s�p�e�c�t�i�v�e�s�-�m�a�g�a�z�i�n�-�f�i�l�t�e�r� �i�n�p�u�t�"�,�f�u�n�c�t�i�o�n�(�)�{�d�e�a�l�R�e�s�e�t�B�u�t�t�o�n�(�)�}�)�,�$�(�f�u�n�c�t�i�o�n�(�)�{�$�(�'�[�d�a�t�a�-�t�o�g�g�l�e�=�"�t�o�o�l�t�i�p�"�]�'�)�.�t�o�o�l�t�i�p�(�)�}�)�,�$�(�"�.�w�r�a�p�p�e�r�"�)�.�o�n�(�"�c�l�i�c�k�"�,�"�.�p�e�r�s�p�e�c�t�i�v�e�s�-�m�a�g�a�z�i�n�-�f�i�l�t�e�r� �.�r�e�s�e�t� �i�n�p�u�t�"�,�f�u�n�c�t�i�o�n�(�)�{�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�d�e�a�l�R�e�s�e�t�B�u�t�t�o�n�(�)�}�,�1�0�0�)�}�)�,�$�(�"�.�w�r�a�p�p�e�r�"�)�.�o�n�(�"�c�l�i�c�k�"�,�"�.�p�e�r�s�p�e�c�t�i�v�e�s�-�m�a�g�a�z�i�n�-�f�i�l�t�e�r� �.�t�o�g�g�l�e�-�f�i�l�t�e�r�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�7�6�8�<�=�(�w�=�$�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�)�|�|�$�(�"�.�w�r�a�p�p�e�r�"�)�.�f�i�n�d�(�"�.�t�o�g�g�l�e�-�f�i�l�t�e�r�-�u�l�"�)�.�s�l�i�d�e�T�o�g�g�l�e�(�)�}�)�,�$�(�"�.�s�t�a�n�d�o�r�t�-�l�i�s�t�e� �a�"�)�.�o�n�(�"�m�o�u�s�e�o�v�e�r�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�s�t�a�n�d�o�r�t�-�p�i�n�s� �a�"�)�.�t�o�o�l�t�i�p�(�"�h�i�d�e�"�)�,�$�(�"�.�s�t�a�n�d�o�r�t�-�p�i�n�s� �a�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�;�v�a�r� �t�=�$�(�t�h�i�s�)�.�d�a�t�a�(�"�p�i�n�"�)�,�e�=�$�(�"�.�s�t�a�n�d�o�r�t�-�p�i�n�s� �[�d�a�t�a�-�p�i�n�=�"�+�t�+�"�]�"�)�;�$�(�e�)�.�a�d�d�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�,�$�(�e�)�.�t�o�o�l�t�i�p�(�"�s�h�o�w�"�)�,�$�(�t�h�i�s�)�.�o�n�(�"�m�o�u�s�e�o�u�t�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�e�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�,�$�(�e�)�.�t�o�o�l�t�i�p�(�"�h�i�d�e�"�)�}�)�}�)�,�$�(�"�.�s�t�a�n�d�o�r�t�k�a�r�t�e�"�)�.�m�a�g�n�i�f�i�c�P�o�p�u�p�(�{�d�e�l�e�g�a�t�e�:�"�a�"�,�t�y�p�e�:�"�i�n�l�i�n�e�"�,�s�h�o�w�C�l�o�s�e�B�t�n�:�!�1�,�c�l�o�s�e�O�n�B�g�C�l�i�c�k�:�!�0�,�e�n�a�b�l�e�E�s�c�a�p�e�K�e�y�:�!�0�,�m�a�i�n�C�l�a�s�s�:�"�m�f�p�-�f�a�d�e�"�,�r�e�m�o�v�a�l�D�e�l�a�y�:�3�0�0�}�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�r�e�a�d�y�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�a�n�i�m�a�t�i�o�n�V�i�e�w�p�o�r�t�"�)�.�o�n�(�"�i�n�v�i�e�w�"�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�e�&�&�(�$�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�l�o�g�i�s�t�i�c�s�_�a�c�t�i�v�i�t�y�"�)�&�&�(�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�s�v�g�-�a�n�i�m�a�t�i�o�n�"�)�.�a�d�d�C�l�a�s�s�(�"�j�s�-�i�n�i�t�i�a�l�"�)�}�,�1�e�3�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�s�v�g�-�a�n�i�m�a�t�i�o�n�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�j�s�-�i�n�i�t�i�a�l�"�)�}�,�2�e�3�)�)�,�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�i�n�V�i�e�w�p�o�r�t�"�)�)�}�)�,�$�(�"�.�a�n�i�m�a�t�i�o�n�C�o�u�n�t�e�r�"�)�.�o�n�(�"�i�n�v�i�e�w�"�,�f�u�n�c�t�i�o�n�(�t�,�e�)�{�!�e�|�|�$�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�i�n�V�i�e�w�p�o�r�t�"�)�|�|�(�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�i�n�V�i�e�w�p�o�r�t�"�)�,�i�n�V�i�e�w�C�o�u�n�t�(�)�)�}�)�}
1�)�,�!�f�u�n�c�t�i�o�n�(�e�)�{�j�Q�u�e�r�y�.�f�n�[�e�]�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�?�t�h�i�s�.�b�i�n�d�(�"�r�e�s�i�z�e�"�,�(�i�=�t�,�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�t�h�i�s�,�e�=�a�r�g�u�m�e�n�t�s�;�s�?�c�l�e�a�r�T�i�m�e�o�u�t�(�s�)�:�o�&�&�i�.�a�p�p�l�y�(�t�,�e�)�,�s�=�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�o�|�|�i�.�a�p�p�l�y�(�t�,�e�)�,�s�=�n�u�l�l�}�,�n�|�|�1�0�0�)�}�)�)�:�t�h�i�s�.�t�r�i�g�g�e�r�(�e�)�;�v�a�r� �i�,�n�,�o�,�s�}�}�(�(�j�Q�u�e�r�y�,�"�s�m�a�r�t�r�e�s�i�z�e�"�)�)�,�$�(�w�i�n�d�o�w�)�.�s�m�a�r�t�r�e�s�i�z�e�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�$�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�;�t�!�=�(�c�h�e�c�k�w�=�"�u�n�d�e�f�i�n�e�d�"�=�=�t�y�p�e�o�f� �c�h�e�c�k�w�?�t�:�c�h�e�c�k�w�)�&�&�(�c�h�e�c�k�w�=�t�,�n�a�v�b�a�r�C�o�l�l�a�p�s�e�(�)�,�r�e�s�e�t�(�)�,�e�q�u�a�l�H�e�i�g�h�t�(�)�,�s�l�i�d�e�r�E�m�p�l�o�y�e�r�(�)�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�r�e�a�d�y�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�;�0�<�$�(�"�.�k�a�r�r�i�e�r�e�-�t�o�p�i�c� �.�s�l�i�c�k�-�i�n�i�t�i�a�l�i�z�e�d�"�)�.�l�e�n�g�t�h�&�&�$�(�"�.�k�a�r�r�i�e�r�e�-�t�o�p�i�c� �.�s�l�i�d�e�r�"�)�.�s�l�i�c�k�(�"�u�n�s�l�i�c�k�"�)�,�$�(�"�.�m�a�g�n�i�f�i�c�-�i�m�a�g�e�"�)�.�m�a�g�n�i�f�i�c�P�o�p�u�p�(�{�t�y�p�e�:�"�i�m�a�g�e�"�}�)�,�$�(�"�.�t�e�a�s�e�r�_�k�a�r�r�i�e�r�e� �.�s�l�i�d�e� �a�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�i�=�$�(�t�h�i�s�)�,�t�=�$�(�t�h�i�s�)�.�a�t�t�r�(�"�h�r�e�f�"�)�,�e�=�$�(�t�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�"�)�}�)�,�$�(�"�.�t�e�a�s�e�r�_�k�a�r�r�i�e�r�e� �.�s�l�i�d�e� �a�"�)�.�m�a�g�n�i�f�i�c�P�o�p�u�p�(�{�t�y�p�e�:�"�i�n�l�i�n�e�"�,�s�h�o�w�C�l�o�s�e�B�t�n�:�!�1�,�c�l�o�s�e�O�n�B�g�C�l�i�c�k�:�!�1�,�e�n�a�b�l�e�E�s�c�a�p�e�K�e�y�:�!�1�,�c�a�l�l�b�a�c�k�s�:�{�o�p�e�n�:�f�u�n�c�t�i�o�n�(�)�{�e�.�s�l�i�c�k�(�{�d�o�t�s�:�!�0�,�a�p�p�e�n�d�D�o�t�s�:�e�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�d�o�t�s�"�)�,�a�p�p�e�n�d�A�r�r�o�w�s�:�e�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�p�a�g�e�r� �.�i�n�n�e�r�"�)�}�)�,�i�.�d�a�t�a�(�"�c�o�u�n�t�"�)�&�&�e�.�s�l�i�c�k�(�"�s�l�i�c�k�G�o�T�o�"�,�i�.�d�a�t�a�(�"�c�o�u�n�t�"�)�-�1�,�!�0�)�}�,�b�e�f�o�r�e�C�l�o�s�e�:�f�u�n�c�t�i�o�n�(�)�{�}�}�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�c�l�i�c�k�"�,�"�.�k�a�r�r�i�e�r�e�-�t�o�p�i�c� �.�c�l�o�s�e�-�b�t�n�,� �.�s�i�n�g�l�e�-�s�t�a�n�d�o�r�t� �.�c�l�o�s�e�-�b�t�n�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�$�.�m�a�g�n�i�f�i�c�P�o�p�u�p�.�c�l�o�s�e�(�)�,�0�<�$�(�"�.�k�a�r�r�i�e�r�e�-�t�o�p�i�c� �.�s�l�i�c�k�-�i�n�i�t�i�a�l�i�z�e�d�"�)�.�l�e�n�g�t�h�&�&�$�(�"�.�k�a�r�r�i�e�r�e�-�t�o�p�i�c� �.�s�l�i�d�e�r�"�)�.�s�l�i�c�k�(�"�u�n�s�l�i�c�k�"�)�}�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�r�e�a�d�y�(�f�u�n�c�t�i�o�n�(�)�{�s�l�i�d�e�r�E�m�p�l�o�y�e�r�(�)�,�s�l�i�d�e�r�E�m�p�l�o�y�e�r�D�e�s�k�t�o�p�(�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�r�e�a�d�y�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�,�i�,�o�,�s�;�$�(�"�.�t�e�a�s�e�r�_�v�i�d�e�o� �.�s�l�i�d�e� �a�"�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�)�{�i�=�$�(�t�h�i�s�)�,�t�=�$�(�t�h�i�s�)�.�a�t�t�r�(�"�h�r�e�f�"�)�,�e�=�$�(�t�)�.�f�i�n�d�(�"�.�v�i�d�e�o�-�s�l�i�d�e�r�"�)�}�)�;�$�(�"�.�m�a�g�n�i�f�i�c�-�v�i�d�e�o�-�g�a�l�l�e�r�y�"�)�.�m�a�g�n�i�f�i�c�P�o�p�u�p�(�{�t�y�p�e�:�"�i�n�l�i�n�e�"�,�s�h�o�w�C�l�o�s�e�B�t�n�:�!�0�,�c�l�o�s�e�B�t�n�I�n�s�i�d�e�:�!�0�,�c�l�o�s�e�O�n�B�g�C�l�i�c�k�:�!�0�,�e�n�a�b�l�e�E�s�c�a�p�e�K�e�y�:�!�0�,�m�a�i�n�C�l�a�s�s�:�"�v�i�d�e�o�s�l�i�d�e�r�"�,�c�a�l�l�b�a�c�k�s�:�{�o�p�e�n�:�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�v�i�d�e�o�-�s�l�i�d�e�r�-�o�v�e�r�l�a�y�"�)�.�o�n�(�"�i�n�i�t� �r�e�I�n�i�t� �a�f�t�e�r�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�i�=�(�i�|�|�0�)�+�1�,�o�=�M�a�t�h�.�c�e�i�l�(�e�.�s�l�i�d�e�C�o�u�n�t�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�s�=�M�a�t�h�.�c�e�i�l�(�i�/�e�.�o�p�t�i�o�n�s�.�s�l�i�d�e�s�T�o�S�h�o�w�)�,�i�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�p�a�g�i�n�g�I�n�f�o�"�)�,�e�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�;�i�.�t�e�x�t�(�s�+�"�/�"�+�o�)�,�1�=�=�s�&�1�=�=�o�?�(�i�.�h�i�d�e�(�)�,�e�.�a�d�d�C�l�a�s�s�(�"�n�o�s�l�i�d�e�"�)�)�:�(�i�.�s�h�o�w�(�)�,�e�.�r�e�m�o�v�e�C�l�a�s�s�(�"�n�o�s�l�i�d�e�"�)�)�}�)�,�$�(�"�.�v�i�d�e�o�-�s�l�i�d�e�r�-�o�v�e�r�l�a�y�"�)�.�o�n�(�"�b�e�f�o�r�e�C�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�,�e�,�i�,�n�)�{�$�(�"�.�v�i�d�e�o�-�s�l�i�d�e�r� �.�s�l�i�c�k�-�a�c�t�i�v�e� �i�f�r�a�m�e�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�,�e�;
1�$�(�t�h�i�s�)�.�a�t�t�r�(�"�s�r�c�"�)�&�&�(�t�=�$�(�t�h�i�s�)�,�e�=�t�.�p�r�o�p�(�"�s�r�c�"�)�,�t�.�p�r�o�p�(�"�s�r�c�"�,�"�"�)�,�t�.�p�r�o�p�(�"�s�r�c�"�,�e�)�)�}�)�}�)�,�e�.�s�l�i�c�k�(�{�d�o�t�s�:�!�0�,�a�r�r�o�w�s�:�!�0�,�i�n�f�i�n�i�t�e�:�!�1�,�s�p�e�e�d�:�5�0�0�,�s�l�i�d�e�s�T�o�S�h�o�w�:�1�,�s�l�i�d�e�s�T�o�S�c�r�o�l�l�:�1�,�c�e�n�t�e�r�M�o�d�e�:�!�1�,�m�o�b�i�l�e�F�i�r�s�t�:�!�0�,�a�p�p�e�n�d�D�o�t�s�:�e�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�d�o�t�s�"�)�,�a�p�p�e�n�d�A�r�r�o�w�s�:�e�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�l�i�d�e�r�n�a�v� �.�p�a�g�e�r� �.�i�n�n�e�r�"�)�,�r�o�w�s�:�0�}�)�,�i�.�d�a�t�a�(�"�c�o�u�n�t�"�)�&�&�e�.�s�l�i�c�k�(�"�s�l�i�c�k�G�o�T�o�"�,�i�.�d�a�t�a�(�"�c�o�u�n�t�"�)�-�1�,�!�0�)�}�,�c�l�o�s�e�:�f�u�n�c�t�i�o�n�(�)�{�e�.�s�l�i�c�k�(�"�u�n�s�l�i�c�k�"�)�}�}�}�)�}�)�,�$�(�f�u�n�c�t�i�o�n�(�)�{�$�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�c�l�i�c�k�"�,�"�.�n�a�v�b�a�r� �.�l�v�l�-�2�.�h�a�s�s�u�b�"�,�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�=�$�(�t�h�i�s�)�.�p�a�r�e�n�t�(�)�.�f�i�n�d�(�"�.�s�u�b�h�o�l�d�e�r�"�)�,�i�=�$�(�"�.�n�a�v�b�a�r� �.�s�c�r�o�l�l�m�i�n�h�e�i�g�h�t�"�)�.�i�n�n�e�r�H�e�i�g�h�t�(�)�;�i�f�(�$�(�"�h�e�a�d�e�r�"�)�.�h�a�s�C�l�a�s�s�(�"�n�a�v�b�a�r�-�m�o�b�i�l�e�"�)�)�r�e�t�u�r�n� �e�.�a�d�d�C�l�a�s�s�(�"�s�h�o�w�"�)�,�!�1�;�$�(�t�h�i�s�)�.�t�o�g�g�l�e�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�,�$�(�"�.�n�a�v�b�a�r� �.�s�u�b�h�o�l�d�e�r�"�)�.�n�o�t�(�e�)�.�f�a�d�e�O�u�t�(�)�,�$�(�t�h�i�s�)�.�h�a�s�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�&�&�(�$�(�"�.�n�a�v�b�a�r� �.�s�c�r�o�l�l�h�o�l�d�e�r�"�)�.�c�s�s�(�"�h�e�i�g�h�t�"�,�"�a�u�t�o�"�)�,�e�.�i�n�n�e�r�H�e�i�g�h�t�(�)�>�i�?�$�(�"�.�n�a�v�b�a�r� �.�s�c�r�o�l�l�h�o�l�d�e�r�"�)�.�c�s�s�(�"�h�e�i�g�h�t�"�,�e�.�i�n�n�e�r�H�e�i�g�h�t�(�)�)�:�$�(�"�.�n�a�v�b�a�r� �.�s�c�r�o�l�l�h�o�l�d�e�r�"�)�.�c�s�s�(�"�h�e�i�g�h�t�"�,�i�)�,�e�.�f�a�d�e�I�n�(�)�,�$�(�"�.�n�a�v�b�a�r� �.�l�v�l�-�2�"�)�.�n�o�t�(�t�h�i�s�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�,�$�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�c�l�i�c�k�"�,�"�.�n�a�v�b�a�r� �.�j�s�-�b�a�c�k�-�l�v�l�1�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�d�r�o�p�d�o�w�n�-�m�e�n�u�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�c�l�i�c�k�"�,�"�.�n�a�v�b�a�r� �.�c�l�o�s�e�m�f�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�d�r�o�p�d�o�w�n�-�m�e�n�u�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�,�$�(�"�b�o�d�y� �,�.�n�a�v�b�a�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�m�e�n�u�o�p�e�n�"�)�,�$�(�"�.�n�a�v�b�a�r� �.�s�u�b�h�o�l�d�e�r�"�)�.�a�t�t�r�(�"�s�t�y�l�e�"�,�"�"�)�,�$�(�"�.�n�a�v�b�a�r� �.�s�c�r�o�l�l�h�o�l�d�e�r�"�)�.�c�s�s�(�"�h�e�i�g�h�t�"�,�"�a�u�t�o�"�)�,�$�(�"�.�n�a�v�b�a�r� �.�l�v�l�-�2�.�a�c�t�i�v�e�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�a�c�t�i�v�e�"�)�,�$�(�"�.�n�a�v�b�a�r� �.�n�a�v�-�i�t�e�m�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�c�l�i�c�k�"�,�"�.�n�a�v�b�a�r� �.�j�s�-�b�a�c�k�-�l�v�l�2�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�t�h�i�s�)�.�p�a�r�e�n�t�s�(�"�.�s�u�b�h�o�l�d�e�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�s�h�o�w�"�)�}�)�,�$�(�d�o�c�u�m�e�n�t�)�.�o�n�(�"�c�l�i�c�k�"�,�f�u�n�c�t�i�o�n�(�t�)�{�}�)�}�)�,�$�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�d�r�o�p�d�o�w�n�"�)�.�o�n�(�{�c�l�i�c�k�:�f�u�n�c�t�i�o�n�(�t�)�{�$�(�t�.�t�a�r�g�e�t�)�.�c�l�o�s�e�s�t�(�"�.�d�r�o�p�d�o�w�n�-�t
1�o�g�g�l�e�"�)�.�l�e�n�g�t�h�?�$�(�t�h�i�s�)�.�d�a�t�a�(�"�c�l�o�s�a�b�l�e�"�,�!�0�)�:�$�(�t�h�i�s�)�.�d�a�t�a�(�"�c�l�o�s�a�b�l�e�"�,�!�1�)�}�,�"�h�i�d�e�.�b�s�.�d�r�o�p�d�o�w�n�"�:�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �h�i�d�e�=�$�(�t�h�i�s�)�.�d�a�t�a�(�"�c�l�o�s�a�b�l�e�"�)�,�$�(�t�h�i�s�)�.�d�a�t�a�(�"�c�l�o�s�a�b�l�e�"�,�!�0�)�,�h�i�d�e�}�}�)�}�)�;�v�a�r� �l�a�s�t�S�c�r�o�l�l�T�o�p�=�0�;�f�u�n�c�t�i�o�n� �d�e�a�l�R�e�s�e�t�B�u�t�t�o�n�(�)�{�f�i�l�t�e�r�S�e�l�e�c�t�e�d�=�$�(�"�.�p�e�r�s�p�e�c�t�i�v�e�s�-�m�a�g�a�z�i�n�-�f�i�l�t�e�r� �i�n�p�u�t�:�c�h�e�c�k�e�d�"�)�.�l�e�n�g�t�h�,�f�i�l�t�e�r�F�e�s�e�t�B�u�t�t�o�n�=�$�(�"�.�w�r�a�p�p�e�r�"�)�.�f�i�n�d�(�"�l�i�.�r�e�s�e�t�"�)�,�f�i�l�t�e�r�S�e�l�e�c�t�e�d�<�1�?�f�i�l�t�e�r�F�e�s�e�t�B�u�t�t�o�n�.�a�d�d�C�l�a�s�s�(�"�i�s�-�h�i�d�d�e�n�"�)�:�f�i�l�t�e�r�F�e�s�e�t�B�u�t�t�o�n�.�r�e�m�o�v�e�C�l�a�s�s�(�"�i�s�-�h�i�d�d�e�n�"�)�}�f�u�n�c�t�i�o�n� �i�n�V�i�e�w�C�o�u�n�t�(�)�{�v�a�r� �t�=�h�t�m�l�T�a�g�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�l�a�n�g�"�)�;�s�i�t�e�L�a�n�g�T�o�L�o�c�a�l�=�t�|�|�"�d�e�"�,�$�(�"�.�c�o�u�n�t�U�p�S�t�a�t�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�=�$�(�t�h�i�s�)�,�e�=�t�.�a�t�t�r�(�"�d�a�t�a�-�c�o�u�n�t�"�)�,�i�=�e�.�l�a�s�t�I�n�d�e�x�O�f�(�"�.�"�)�,�n�=�e�.�l�e�n�g�t�h�-�i�-�1�;�$�(�{�c�o�u�n�t�N�u�m�:�t�.�t�e�x�t�(�)�}�)�.�a�n�i�m�a�t�e�(�{�c�o�u�n�t�N�u�m�:�e�}�,�{�d�u�r�a�t�i�o�n�:�4�e�3�,�e�a�s�i�n�g�:�"�l�i�n�e�a�r�"�,�s�t�e�p�:�f�u�n�c�t�i�o�n�(�)�{�e�%�1�=�=�0�?�t�.�t�e�x�t�(�M�a�t�h�.�r�o�u�n�d�(�1�0�0�*�t�h�i�s�.�c�o�u�n�t�N�u�m�/�1�0�0�)�.�t�o�L�o�c�a�l�e�S�t�r�i�n�g�(�s�i�t�e�L�a�n�g�T�o�L�o�c�a�l�)�)�:�t�.�t�e�x�t�(�t�h�i�s�.�c�o�u�n�t�N�u�m�.�t�o�L�o�c�a�l�e�S�t�r�i�n�g�(�s�i�t�e�L�a�n�g�T�o�L�o�c�a�l�,�{�m�a�x�i�m�u�m�F�r�a�c�t�i�o�n�D�i�g�i�t�s�:�n�}�)�)�}�,�c�o�m�p�l�e�t�e�:�f�u�n�c�t�i�o�n�(�)�{�t�.�t�e�x�t�(�t�h�i�s�.�c�o�u�n�t�N�u�m�.�t�o�L�o�c�a�l�e�S�t�r�i�n�g�(�s�i�t�e�L�a�n�g�T�o�L�o�c�a�l�)�)�}�}�)�}�)�}�f�u�n�c�t�i�o�n� �s�c�r�o�l�l�p�o�s�(�)�{�w�i�n�d�o�w�.�s�c�r�o�l�l�Y�>�=�.�7�*�$�(�d�o�c�u�m�e�n�t�)�.�h�e�i�g�h�t�(�)�&�&�$�(�"�#�n�e�w�s�l�e�t�t�e�r�-�m�o�d�a�l�"�)�.�m�o�d�a�l�(�)�}�$�(�w�i�n�d�o�w�)�.�b�i�n�d�(�"�s�c�r�o�l�l�"�,�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �t�;�$�(�"�h�e�a�d�e�r�"�)�.�h�a�s�C�l�a�s�s�(�"�n�o�s�t�i�c�k�y�"�)�|�|�(�1�2�0�<�$�(�w�i�n�d�o�w�)�.�s�c�r�o�l�l�T�o�p�(�)�?�$�(�"�h�e�a�d�e�r�"�)�.�h�a�s�C�l�a�s�s�(�"�i�s�-�f�i�x�e�d�"�)�|�|�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�h�e�a�d�e�r�"�)�.�a�d�d�C�l�a�s�s�(�"�i�s�-�f�i�x�e�d�"�)�,�$�(�"�b�o�d�y�"�)�.�a�d�d�C�l�a�s�s�(�"�h�e�a�d�e�r�-�i�s�-�f�i�x�e�d�"�)�,�n�a�v�H�e�i�g�h�t�(�)�}�,�3�0�0�)�:�$�(�w�i�n�d�o�w�)�.�s�c�r�o�l�l�T�o�p�(�)�<�=�5�0�&�&�(�$�(�"�h�e�a�d�e�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�i�s�-�f�i�x�e�d�"�)�,�$�(�"�b�o�d�y�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�h�e�a�d�e�r�-�i�s�-�f�i�x�e�d�"�)�,�n�a�v�H�e�i�g�h�t�(�)�)�,�t�=�$�(�t�h�i�s�)�.�s�c�r�o�l�l�T�o�p�(�)�,�l�a�s�t�S�c�r�o�l�l�T�o�p�<�t�?�1�2�0�<�$�(�w�i�n�d�o�w�)�.�s�c�r�o�l�l�T�o�p�(�)�&�&�(�$�(�"�h�e�a�d�e�r�"�)�.�a�d�d�C�l�a�s�s�(�"�i�s�-�c�l�o�s�e�d�"�)�,�$�(�"�b�o�d�y�"�)�.�a�d�d�C�l�a�s�s�(�"�h�e�a�d�e�r�-�i�s�-�c�l�o�s�e�d�"�)�)�:�(�$�(�"�h�e�a�d�e�r�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�i�s�-�c�l�o�s�e�d�"�)�,�$�(�"�b�o�d�y�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�h�e�a�d�e�r�-�i�s�-�c�l�o�s�e�d�"�)�,�n�a�v�H�e�i�g�h�t�(�)�)�,�l�a�s�t�S�c�r�o�l�l�T�o�p�=�t�)�}�)�,�$�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�p�o�i�n�t�-�1�"�)�.�o�n�(�"�m�o�u�s�e�e�n�t�e�r�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�s�v�g�-�a�n�i�m�a�t�i�o�n�"�)�.�a�d�d�C�l�a�s�s�(�"�j�s�-�p�o�i�n�t�-�1�-�h�o�v�e�r�"�)�}�)�,�$�(�"�#�j�s�-�p�o�i�n�t�-�1�"�)�.�o�n�(�"�m�o�u�s�e�l�e�a�v�e�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�s�v�g�-�a�n�i�m�a�t�i�o�n�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�j�s�-�p�o�i�n�t�-�1�-�h�o�v�e�r�"�)�}�)�,�$�(�"�#�j�s�-�p�o�i�n�t�-�2�"�)�.�o�n�(�"�m�o�u�s�e�e�n�t�e�r�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�s�v�g�-�a�n�i�m�a�t�i�o�n�"�)�.�a�d�d�C�l�a�s�s�(�"�j�s�-�p�o�i�n�t�-�2�-�h�o�v�e�r�"�)�}�)�,�$�(�"�#�j�s�-�p�o�i�n�t�-�2�"�)�.�o�n�(�"�m�o�u�s�e�l�e�a�v�e�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�s�v�g�-�a�n�i�m�a�t�i�o�n�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�j�s�-�p�o�i�n�t�-�2�-�h�o�v�e�r�"�)�}�)�,�$�(�"�#�j�s�-�p�o�i�n�t�-�3�"�)�.�o�n�(�"�m�o�u�s�e�e�n�t�e�r�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�s�v�g�-�a�n�i�m�a�t�i�o�n�"�)�.�a�d�d�C�l�a�s�s�(�"�j�s�-�p�o�i�n�t�-�3�-�h�o�v�e�r�"�)�}�)�,�$�(�"�#�j�s�-�p�o�i�n�t�-�3�"�)�.�o�n�(�"�m�o�u�s�e�l�e�a�v�e�"�,�f�u�n�c�t�i�o�n�(�)�{�$�(�"�#�j�s�-�s�v�g�-�a�n�i�m�a�t�i�o�n�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�j�s�-�p�o�i�n�t�-�3�-�h�o�v�e�r�"�)�}�)�}�)�,�$�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�j�s�-�f�a�d�e�-�i�n�"�)�.�f�a�d�e�I�n�(�"�s�l�o�w�"�)�.�a�n�i�m�a�t�e�(�{�o�p�a�c�i�t�y�:�1�}�,�1�e�3�)�,�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�j�s�-�f�a�d�e�-�i�n�"�)�.�a�d�d�C�l�a�s�s�(�"�e�x�p�a�n�d�e�d�"�)�}�,�2�e�3�)�,�$�(�w�i�n�d�o�w�)�.�w�i�d�t�h�(�)�<�=�7�6�8�&�&�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�$�(�"�.�j�s�-�f�a�d�e�-�i�n�"�)�.�r�e�m�o�v�e�C�l�a�s�s�(�"�e�x�p�a�n�d�e�d�"�)�}�,�8�e�3�)�}�)�,�j�Q�u�e�r�y�(�d�o�c�u�m�e�n�t�)�.�r�e�a�d�y�(�f�u�n�c�t�i�o�n�(�)�{�j�Q�u�e�r�y�(�"�i�m�g�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�t�,�e�)�{�-�1�!�=�e�.�s�r�c�.�i�n�d�e�x�O�f�(�"�.�g�i�f�"�)�&�&�(�e�.�s�r�c�=�e�.�s�r�c�.�r�e�p�l�a�c�e�(�"�.�g�i�f�"�,�"�.�g�i�f�?�v�=�"�+�D�a�t�e�.�n�o�w�(�)�)�)�}�)�}�)�;�c�o�n�s�t� �a�p�p�H�e�i�g�h�t�=�(�)�=�>�{�c�o�n�s�t� �t�=�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�;�t�.�s�t�y�l�e�.�s�e�t�P�r�o�p�e�r�t�y�(�"�-�-�a�p�p�-�h�e�i�g�h�t�"�,�w�i�n�d�o�w�.�i�n�n�e�r�H�e�i�g�h�t�+�"�p�x�"�)�}�;�f�u�n�c�t�i�o�n� �c�h�e�c�k�A�n�d�S�e�t�C�l�a�s�s�(�t�)�{�c�o�n�s�t� �e�=�t�.�c�l�o�s�e�s�t�(�"�d�i�v�"�)�;�e�&�&�"�h�i�d�d�e�n�"�!�=�=�t�.�t�y�p�e�&�&�(�"�"�!�=�=�t�.�v�a�l�u�e�.�t�r�i�m�(�)�?�e�.�c�l�a�s�s�L�i�s�t�.�a�d�d�(�"�f�i�l�l�e�d�"�)�:�e�.�c�l�a�s�s�L�i�s�t�.�r�e�m�o�v�e�(�"�f�i�l�l�e�d�"�)�)�}�w�i�n�d�o�w�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�r�e�s�i�z�e�"�,�a�p�p�H�e�i�g�h�t�)�,�a�p�p�H�e�i�g�h�t�(�)�,�j�Q�u�e�r�y�(�d�o�c�u�m�e�n�t�)�.�r�e�a�d�y�(�f�u�n�c�t�i�o�n�(�)�{�j�Q�u�e�r�y�(�"�.�s�c�r�o�l�l�b�a�r�-�i�n�n�e�r�"�)�.�s�c�r�o�l�l�b�a�r�(�)�}�)�,�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�i�n�p�u�t�"�,�f�u�n�c�t�i�o�n�(�t�)�{�c�o�n�s�t� �e�=�t�.�t�a�r�g�e�t�.�c�l�o�s�e�s�t�(�"�.�c�l�i�c�k�d�f�o�r�m�"�)�;�i�f�(�e�)�{�c�o�n�s�t� �i�=�A�r�r�a�y�.�f�r�o�m�(�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�i�n�p�u�t�,� �s�e�l�e�c�t�,� �t�e�x�t�a�r�e�a�"�)�)�;�i�.�f�o�r�E�a�c�h�(�t�=�>�{�c�h�e�c�k�A�n�d�S�e�t�C�l�a�s�s�(�t�)�}�)�}�}�)�,�d�o�c�u�m�e�n�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�c�h�a�n�g�e�"�,�f�u�n�c�t�i�o�n�(�t�)�{�t�.�t�a�r�g�e�t�.�c�l�o�s�e�s�t�(�"�.�c�l�i�c�k�d�f�o�r�m�"�)�&�&�"�S�E�L�E�C�T�"�=�=�=�t�.�t�a�r�g�e�t�.�t�a�g�N�a�m�e�&�&�c�h�e�c�k�A�n�d�S�e�t�C�l�a�s�s�(�t�.�t�a�r�g�e�t�)�}�)�;��� 2�/�/�#� �s�o�u�r�c�e�M�a�p�p�i�n�g�U�R�L�=�s�o�u�r�c�e�-�m�a�p�s�/�l�i�b�.�j�s�.�m�a�p��� 3�
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.