Skip to main content

reference_after

���j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�d�i�s�a�b�l�e�C�r�o�s�s�h�a�i�r�(�)�;� � �� � � � �#�#�#� �i�s�C�r�o�s�s�h�a�i�r�V�i�s�i�b�l�e�(�)� � � � �C�h�e�c�k� �i�f� �c�r�o�s�s�h�a�i�r� �i�s� �v�i�s�i�b�l�e�.� � � � ��R�e�t�u�r�n�s�:�� �b�o�o�l�e�a�n� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �i�s�V�i�s�i�b�l�e� �=� �a�p�i�.�i�s�C�r�o�s�s�h�a�i�r�V�i�s�i�b�l�e�(�)�;� � �� � � � �#�#�#� �s�e�t�C�r�o�s�s�h�a�i�r�M�o�d�e�(�m�o�d�e�)� � � � �S�e�t� �c�r�o�s�s�h�a�i�r� �b�e�h�a�v�i�o�r�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��m�o�d�e�� �(�s�t�r�i�n�g�)� �-� �'�n�o�r�m�a�l�'�,� �'�x�-�o�n�l�y�'�,� �'�y�-�o�n�l�y�'�,� �'�h�i�d�d�e�n�'� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�s�e�t�C�r�o�s�s�h�a�i�r�M�o�d�e�(�'�x�-�o�n�l�y�'�)�;� �/�/� �O�n�l�y� �s�h�o�w� �v�e�r�t�i�c�a�l� �l�i�n�e� � �� � � � �#�#�#� �g�e�t�C�r�o�s�s�h�a�i�r�M�o�d�e�(�)� � � � �G�e�t� �c�u�r�r�e�n�t� �c�r�o�s�s�h�a�i�r� �m�o�d�e�.� � � � ��R�e�t�u�r�n�s�:�� �s�t�r�i�n�g� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �m�o�d�e� �=� �a�p�i�.�g�e�t�C�r�o�s�s�h�a�i�r�M�o�d�e�(�)�;� � �� � � � �#�#�#� �e�n�a�b�l�e�T�o�o�l�t�i�p�(�)� � � � �S�h�o�w� �t�o�o�l�t�i�p�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�e�n�a�b�l�e�T�o�o�l�t�i�p�(�)�;� � �� � � � �#�#�#� �d�i�s�a�b�l�e�T�o�o�l�t�i�p�(�)� � � � �H�i�d�e� �t�o�o�l�t�i�p�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�d�i�s�a�b�l�e�T�o�o�l�t�i�p�(�)�;� � �� � � � �-�-�-� � � � �#�#� �F�u�l�l�s�c�r�e�e�n� � � � �C�o�n�t�r�o�l� �f�u�l�l�s�c�r�e�e�n� �m�o�d�e�.� � � � �#�#�#� �t�o�g�g�l�e�F�u�l�l�s�c�r�e�e�n�(�)� � � � �T�o�g�g�l�e� �f�u�l�l�s�c�r�e�e�n� �o�n�/�o�f�f�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�t�o�g�g�l�e�F�u�l�l�s�c�r�e�e�n�(�)�;� � �� � � � �#�#�#� �e�n�t�e�r�F�u�l�l�s�c�r�e�e�n�(�)� � � � �E�n�t�e�r� �f�u�l�l�s�c�r�e�e�n� �m�o�d�e�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�e�n�t�e�r�F�u�l�l�s�c�r�e�e�n�(�)�;� � �� � � � �#�#�#� �e�x�i�t�F�u�l�l�s�c�r�e�e�n�(�)� � � � �E�x�i�t� �f�u�l�l�s�c�r�e�e�n� �m�o�d�e�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�e�x�i�t�F�u�l�l�s�c�r�e�e�n�(�)�;� � �� � � � �#�#�#� �i�s�F�u�l�l�s�c�r�e�e�n�(�)� � � � �C�h�e�c�k� �i�f� �i�n� �f�u�l�l�s�c�r�e�e�n�.� � � � ��R�e�t�u�r�n�s�:�� �b�o�o�l�e�a�n� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �i�s�F�S� �=� �a�p�i�.�i�s�F�u�l�l�s�c�r�e�e�n�(�)�;� � �� � � � �#�#�#� �o�n�F�u�l�l�s�c�r�e�e�n�C�h�a�n�g�e�(�c�a�l�l�b�a�c�k�)� � � � �L�i�s�t�e�n� �t�o� �f�u�l�l�s�c�r�e�e�n� �c�h�a�n�g�e�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�o�n�F�u�l�l�s�c�r�e�e�n�C�h�a�n�g�e�(�(�i�s�F�u�l�l�s�c�r�e�e�n�)� �=�>� �{� � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�F�u�l�l�s�c�r�e�e�n�:�'�,� �i�s�F�u�l�l�s�c�r�e�e�n�)�;� � �}�)�;� � �� � � � �-�-�-� � � � �#�#� �P�a�t�t�e�r�n� �R�e�c�o�g�n�i�t�i�o�n� � � � �D�e�t�e�c�t� �c�h�a�r�t� �p�a�t�t�e�r�n�s� �a�u�t�o�m�a�t�i�c�a�l�l�y�.� � � � �#�#�#� �e�n�a�b�l�e�P�a�t�t�e�r�n�(�p�a�t�t�e�r�n�T�y�p�e�)� � � � �E�n�a�b�l�e� �d�e�t�e�c�t�i�o�n� �f�o�r� �a� �s�p�e�c�i�f�i�c� �p�a�t�t�e�r�n�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��p�a�t�t�e�r�n�T�y�p�e�� �(�s�t�r�i�n�g�)� �-� �P�a�t�t�e�r�n� �t�y�p�e� �l�i�k�e� �'�b�e�a�r�i�s�h��f�l�a�g�'�,� �'�b�u�l�l�i�s�h��f�l�a�g�'�,� �e�t�c�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�e�n�a�b�l�e�P�a�t�t�e�r�n�(�'�b�e�a�r�i�s�h�_�f�l�a�g�'�)�;� � �� � � � �#�#�#� �d�i�s�a�b�l�e�P�a�t�t�e�r�n�(�p�a�t�t�e�r�n�T�y�p�e�)� � � � �D�i�s�a�b�l�e� �p�a�t�t�e�r�n� �d�e�t�e�c�t�i�o�n�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�d�i�s�a�b�l�e�P�a�t�t�e�r�n�(�'�b�e�a�r�i�s�h�_�f�l�a�g�'�)�;� � �� � � � �#�#�#� �i�s�P�a�t�t�e�r�n�E�n�a�b�l�e�d�(�p�a�t�t�e�r�n�T�y�p�e�)� � � � �C�h�e�c�k� �i�f� �p�a�t�t�e�r�n� �d�e�t�e�c�t�i�o�n� �i�s� �e�n�a�b�l�e�d�.� � � � ��R�e�t�u�r�n�s�:�� �b�o�o�l�e�a�n� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �e�n�a�b�l�e�d� �=� �a�p�i�.�i�s�P�a�t�t�e�r�n�E�n�a�b�l�e�d�(�'�b�e�a�r�i�s�h�_�f�l�a�g�'�)�;� � �� � � � �#�#�#� �g�e�t�D�e�t�e�c�t�e�d�P�a�t�t�e�r�n�s�(�p�a�n�e�I�d�?�)� � � � �G�e�t� �a�l�l� �d�e�t�e�c�t�e�d� �p�a�t�t�e�r�n�s�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��p�a�n�e�I�d�� �(�n�u�m�b�e�r�,� �o�p�t�i�o�n�a�l�)� �-� �P�a�n�e� �I�D� �(�d�e�f�a�u�l�t�:� �0�)� � � � ��R�e�t�u�r�n�s�:�� �A�r�r�a�y� �o�f� �d�e�t�e�c�t�e�d� �p�a�t�t�e�r�n�s� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �p�a�t�t�e�r�n�s� �=� �a�p�i�.�g�e�t�D�e�t�e�c�t�e�d�P�a�t�t�e�r�n�s�(�)�;� � �p�a�t�t�e�r�n�s�.�f�o�r�E�a�c�h�(�p�a�t�t�e�r�n� �=�>� �{� � � � �c�o�n�s�o�l�e�.�l�o�g�(�p�a�t�t�e�r�n�.�t�y�p�e�,� �p�a�t�t�e�r�n�.�p�o�i�n�t�s�)�;� � �}�)�;� � �� � � � �#�#�#� �c�l�e�a�r�P�a�t�t�e�r�n�s�(�)� � � � �C�l�e�a�r� �a�l�l� �d�e�t�e�c�t�e�d� �p�a�t�t�e�r�n�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�c�l�e�a�r�P�a�t�t�e�r�n�s�(�)�;� � �� � � � �-�-�-� � � � �#�#� �V�o�l�u�m�e� �&� �M�a�r�k�e�t� �P�r�o�f�i�l�e� � � � �A�d�d� �v�o�l�u�m�e� �a�n�d� �m�a�r�k�e�t� �p�r�o�f�i�l�e� �i�n�d�i�c�a�t�o�r�s�.� � � � �#�#�#� �a�d�d�V�o�l�u�m�e�P�r�o�f�i�l�e�(�c�o�n�f�i�g�)� � � � �A�d�d� �a� �v�o�l�u�m�e� �p�r�o�f�i�l�e� �i�n�d�i�c�a�t�o�r�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��c�o�n�f�i�g�� �(�o�b�j�e�c�t�)� �-� �V�o�l�u�m�e� �p�r�o�f�i�l�e� �c�o�n�f�i�g�u�r�a�t�i�o�n� � � � ��R�e�t�u�r�n�s�:�� �s�t�r�i�n�g� �(�i�n�d�i�c�a�t�o�r� �I�D�)� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �v�p�I�d� �=� �a�p�i�.�a�d�d�V�o�l�u�m�e�P�r�o�f�i�l�e�(�{� � � � �p�r�o�f�i�l�e�T�y�p�e�:� �'�v�i�s�i�b�l�e�_�r�a�n�g�e�'�,� � � � �v�a�l�u�e�A�r�e�a�P�e�r�c�e�n�t�:� �7�0�,� � � � �s�h�o�w�P�O�C�:� �t�r�u�e�,� � � � �s�h�o�w�V�A�H�V�A�L�:� �t�r�u�e� � �}�)�;� � �� � � � �#�#�#� �u�p�d�a�t�e�V�o�l�u�m�e�P�r�o�f�i�l�e�(�i�d�,� �c�o�n�f�i�g�)� � � � �U�p�d�a�t�e� �v�o�l�u�m�e� �p�r�o�f�i�l�e� �s�e�t�t�i�n�g�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�u�p�d�a�t�e�V�o�l�u�m�e�P�r�o�f�i�l�e�(�v�p�I�d�,� �{� � � � �v�a�l�u�e�A�r�e�a�P�e�r�c�e�n�t�:� �8�0�,� � � � �p�r�o�f�i�l�e�W�i�d�t�h�P�x�:� �2�0�0� � �}�)�;� � �� � � � �#�#�#� �r�e�m�o�v�e�V�o�l�u�m�e�P�r�o�f�i�l�e�(�i�d�)� � � � �R�e�m�o�v�e� �v�o�l�u�m�e� �p�r�o�f�i�l�e�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�r�e�m�o�v�e�V�o�l�u�m�e�P�r�o�f�i�l�e�(�v�p�I�d�)�;� � �� � � � �#�#�#� �g�e�t�A�l�l�V�o�l�u�m�e�P�r�o�f�i�l�e�s�(�)� � � � �G�e�t� �a�l�l� �v�o�l�u�m�e� �p�r�o�f�i�l�e�s�.� � � � ��R�e�t�u�r�n�s�:�� �A�r�r�a�y� �o�f� �v�o�l�u�m�e� �p�r�o�f�i�l�e� �o�b�j�e�c�t�s� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �p�r�o�f�i�l�e�s� �=� �a�p�i�.�g�e�t�A�l�l�V�o�l�u�m�e�P�r�o�f�i�l�e�s�(�)�;� � �� � � � �#�#�#� �a�d�d�M�a�r�k�e�t�P�r�o�f�i�l�e�(�c�o�n�f�i�g�)� � � � �A�d�d� �a� �m�a�r�k�e�t� �p�r�o�f�i�l�e� �(�T�P�O�)� �i�n�d�i�c�a�t�o�r�.� � � � ��R�e�t�u�r�n�s�:�� �s�t�r�i�n�g� �(�i�n�d�i�c�a�t�o�r� �I�D�)� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �m�p�I�d� �=� �a�p�i�.�a�d�d�M�a�r�k�e�t�P�r�o�f�i�l�e�(�{� � � � �p�r�o�f�i�l�e�T�y�p�e�:� �'�s�e�s�s�i�o�n�'�,� � � � �v�a�l�u�e�A�r�e�a�P�e�r�c�e�n�t�:� �7�0� � �}�)�;� � �� � � � �#�#�#� �u�p�d�a�t�e�M�a�r�k�e�t�P�r�o�f�i�l�e�(�i�d�,� �c�o�n�f�i�g�)� � � � �U�p�d�a�t�e� �m�a�r�k�e�t� �p�r�o�f�i�l�e� �s�e�t�t�i�n�g�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�u�p�d�a�t�e�M�a�r�k�e�t�P�r�o�f�i�l�e�(�m�p�I�d�,� �{� � � � �p�r�o�f�i�l�e�T�y�p�e�:� �'�r�o�l�l�i�n�g�'�,� � � � �r�o�l�l�i�n�g�B�a�r�s�:� �1�0� � �}�)�;� � �� � � � �#�#�#� �r�e�m�o�v�e�M�a�r�k�e�t�P�r�o�f�i�l�e�(�i�d�)� � � � �R�e�m�o�v�e� �m�a�r�k�e�t� �p�r�o�f�i�l�e�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�r�e�m�o�v�e�M�a�r�k�e�t�P�r�o�f�i�l�e�(�m�p�I�d�)�;� � �� � � � �#�#�#� �g�e�t�M�a�r�k�e�t�P�r�o�f�i�l�e�L�e�v�e�l�s�(�i�d�)� � � � �G�e�t� �T�P�O� �l�e�v�e�l�s� �(�P�O�C�,� �V�A�H�,� �V�A�L�,� �e�t�c�.�)�.� � � � ��R�e�t�u�r�n�s�:�� �M�a�r�k�e�t�P�r�o�f�i�l�e�L�e�v�e�l�s� �o�b�j�e�c�t� �o�r� �n�u�l�l� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �l�e�v�e�l�s� �=� �a�p�i�.�g�e�t�M�a�r�k�e�t�P�r�o�f�i�l�e�L�e�v�e�l�s�(�m�p�I�d�)�;� � �i�f� �(�l�e�v�e�l�s�)� �{� � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�P�O�C�:�'�,� �l�e�v�e�l�s�.�p�o�c�)�;� � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�V�A�H�:�'�,� �l�e�v�e�l�s�.�v�a�h�)�;� � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�V�A�L�:�'�,� �l�e�v�e�l�s�.�v�a�l�)�;� � �}� � �� � � � �-�-�-� � � � �#�#� �D�a�t�a� �A�c�c�e�s�s� � � � �A�c�c�e�s�s� �c�h�a�r�t� �d�a�t�a� �d�i�r�e�c�t�l�y�.� � � � �#�#�#� �g�e�t�C�a�n�d�l�e�B�a�r�(�i�n�d�e�x�)� � � � �G�e�t� �b�a�r� �d�a�t�a� �a�t� �a� �s�p�e�c�i�f�i�c� �i�n�d�e�x�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��i�n�d�e�x�� �(�n�u�m�b�e�r�)� �-� �B�a�r� �i�n�d�e�x� � � � ��R�e�t�u�r�n�s�:�� �B�a�r� �d�a�t�a� �o�b�j�e�c�t� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �b�a�r� �=� �a�p�i�.�g�e�t�C�a�n�d�l�e�B�a�r�(�1�0�0�)�;� � �c�o�n�s�o�l�e�.�l�o�g�(�b�a�r�.�o�p�e�n�,� �b�a�r�.�h�i�g�h�,� �b�a�r�.�l�o�w�,� �b�a�r�.�c�l�o�s�e�,� �b�a�r�.�v�o�l�u�m�e�)�;� � �� � � � �#�#�#� �g�e�t�S�e�r�i�e�s�D�a�t�a�(�s�e�r�i�e�s�N�a�m�e�,� �i�n�d�e�x�)� � � � �G�e�t� �d�a�t�a� �f�o�r� �a� �s�p�e�c�i�f�i�c� �s�e�r�i�e�s�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��s�e�r�i�e�s�N�a�m�e�� �(�s�t�r�i�n�g�)� �-� �S�e�r�i�e�s� �n�a�m�e� � �-� ��i�n�d�e�x�� �(�n�u�m�b�e�r�)� �-� �B�a�r� �i�n�d�e�x� � � � ��R�e�t�u�r�n�s�:�� �S�e�r�i�e�s� �d�a�t�a� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �s�m�a�D�a�t�a� �=� �a�p�i�.�g�e�t�S�e�r�i�e�s�D�a�t�a�(�'�S�M�A�_�2�0�'�,� �1�0�0�)�;� � �� � � � �#�#�#� �g�e�t�L�a�s�t�B�a�r�I�n�d�e�x�(�)� � � � �G�e�t� �t�h�e� �i�n�d�e�x� �o�f� �t�h�e� �l�a�s�t� �b�a�r�.� � � � ��R�e�t�u�r�n�s�:�� �n�u�m�b�e�r� �o�r� �n�u�l�l� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �l�a�s�t�I�n�d�e�x� �=� �a�p�i�.�g�e�t�L�a�s�t�B�a�r�I�n�d�e�x�(�)�;� � �� � � � �#�#�#� �g�e�t�D�a�t�a�F�e�e�d�C�o�n�f�i�g�(�)� � � � �G�e�t� �t�h�e� �d�a�t�a�f�e�e�d� �c�o�n�f�i�g�u�r�a�t�i�o�n�.� � � � ��R�e�t�u�r�n�s�:�� �D�a�t�a�F�e�e�d�C�o�n�f�i�g�u�r�a�t�i�o�n� �o�r� �n�u�l�l� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �c�o�n�f�i�g� �=� �a�p�i�.�g�e�t�D�a�t�a�F�e�e�d�C�o�n�f�i�g�(�)�;� � �� � � � �-�-�-� � � � �#�#� �L�a�y�o�u�t� �&� �W�o�r�k�s�p�a�c�e� � � � �M�a�n�a�g�e� �w�o�r�k�s�p�a�c�e� �l�a�y�o�u�t�s� �a�n�d� �p�a�n�e�l�s�.� � � � �#�#�#� �c�r�e�a�t�e�L�a�y�o�u�t�(�t�y�p�e�)� � � � �C�r�e�a�t�e� �a� �n�e�w� �w�o�r�k�s�p�a�c�e� �l�a�y�o�u�t�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��t�y�p�e�� �(�s�t�r�i�n�g�)� �-� �L�a�y�o�u�t� �t�y�p�e�:� �'�1�'�,� �'�2�h�'�,� �'�2�v�'�,� �'�4�'�,� �'�8�'� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�c�r�e�a�t�e�L�a�y�o�u�t�(�'�4�'�)�;� �/�/� �4�-�p�a�n�e�l� �l�a�y�o�u�t� � �� � � � �#�#�#� �s�e�t�A�c�t�i�v�e�P�a�n�e�l�(�p�a�n�e�l�I�d�)� � � � �S�e�t� �t�h�e� �a�c�t�i�v�e� �p�a�n�e�l�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��p�a�n�e�l�I�d�� �(�s�t�r�i�n�g�)� �-� �P�a�n�e�l� �I�D� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�s�e�t�A�c�t�i�v�e�P�a�n�e�l�(�'�p�a�n�e�l�-�1�'�)�;� � �� � � � �#�#�#� �s�e�t�S�y�n�c�M�o�d�e�(�s�e�t�t�i�n�g�s�)� � � � �S�e�t� �s�y�n�c�h�r�o�n�i�z�a�t�i�o�n� �m�o�d�e� �b�e�t�w�e�e�n� �p�a�n�e�l�s�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��s�e�t�t�i�n�g�s�� �(�o�b�j�e�c�t�)� �-� �S�y�n�c� �s�e�t�t�i�n�g�s� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�s�e�t�S�y�n�c�M�o�d�e�(�{� � � � �s�y�m�b�o�l�:� �t�r�u�e�,� � � � �i�n�t�e�r�v�a�l�:� �t�r�u�e�,� � � � �c�r�o�s�s�h�a�i�r�:� �t�r�u�e� � �}�)�;� � �� � � � �#�#�#� �u�p�d�a�t�e�P�a�n�e�S�c�a�l�e�s�(�p�a�n�e�I�d�,� �l�o�g�S�c�a�l�e�,� �a�u�t�o�S�c�a�l�e�,� �p�e�r�c�e�n�t�a�g�e�S�c�a�l�e�?�)� � � � �U�p�d�a�t�e� �p�r�i�c�e� �s�c�a�l�e� �s�e�t�t�i�n�g�s� �f�o�r� �a� �p�a�n�e�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�u�p�d�a�t�e�P�a�n�e�S�c�a�l�e�s�(�0�,� �t�r�u�e�,� �t�r�u�e�,� �f�a�l�s�e�)�;� �/�/� �L�o�g� �s�c�a�l�e� �o�n� � �� � � � �-�-�-� � � � �#�#� �E�v�e�n�t�s� � � � �S�u�b�s�c�r�i�b�e� �t�o� �c�h�a�r�t� �e�v�e�n�t�s�.� � � � �#�#�#� �o�n�C�h�a�r�t�R�e�a�d�y�(�c�a�l�l�b�a�c�k�)� � � � �L�i�s�t�e�n� �f�o�r� �c�h�a�r�t� �r�e�a�d�y� �e�v�e�n�t�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�o�n�C�h�a�r�t�R�e�a�d�y�(�(�)� �=�>� �{� � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�C�h�a�r�t� �i�s� �r�e�a�d�y�!�'�)�;� � �}�)�;� � �� � � � �#�#�#� �s�u�b�s�c�r�i�b�e�C�r�o�s�s�h�a�i�r�M�o�v�e�(�c�a�l�l�b�a�c�k�)� � � � �L�i�s�t�e�n� �f�o�r� �c�r�o�s�s�h�a�i�r� �m�o�v�e� �e�v�e�n�t�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�s�u�b�s�c�r�i�b�e�C�r�o�s�s�h�a�i�r�M�o�v�e�(�(�d�a�t�a�)� �=�>� �{� � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�C�r�o�s�s�h�a�i�r� �a�t�:�'�,� �d�a�t�a�.�t�i�m�e�,� �d�a�t�a�.�p�r�i�c�e�)�;� � �}�)�;� � �� � � � �#�#�#� �s�u�b�s�c�r�i�b�e�M�o�u�s�e�M�o�v�e�(�c�a�l�l�b�a�c�k�)� � � � �L�i�s�t�e�n� �f�o�r� �m�o�u�s�e� �m�o�v�e� �e�v�e�n�t�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�s�u�b�s�c�r�i�b�e�M�o�u�s�e�M�o�v�e�(�(�d�a�t�a�)� �=�>� �{� � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�M�o�u�s�e� �a�t�:�'�,� �d�a�t�a�.�x�,� �d�a�t�a�.�y�)�;� � �}�)�;� � �� � � � �#�#�#� �O�t�h�e�r� �M�o�u�s�e� �E�v�e�n�t�s� � � � �-� ��s�u�b�s�c�r�i�b�e�M�o�u�s�e�E�n�t�e�r�(�c�a�l�l�b�a�c�k�)�� �-� �M�o�u�s�e� �e�n�t�e�r�s� �c�h�a�r�t� � �-� ��s�u�b�s�c�r�i�b�e�M�o�u�s�e�L�e�a�v�e�(�c�a�l�l�b�a�c�k�)�� �-� �M�o�u�s�e� �l�e�a�v�e�s� �c�h�a�r�t� � �-� ��s�u�b�s�c�r�i�b�e�M�o�u�s�e�O�v�e�r�(�c�a�l�l�b�a�c�k�)�� �-� �M�o�u�s�e� �o�v�e�r� �c�h�a�r�t� � �-� ��s�u�b�s�c�r�i�b�e�M�o�u�s�e�d�o�w�n�(�c�a�l�l�b�a�c�k�)�� �-� �M�o�u�s�e� �b�u�t�t�o�n� �d�o�w�n� � �-� ��s�u�b�s�c�r�i�b�e�M�o�u�s�e�u�p�(�c�a�l�l�b�a�c�k�)�� �-� �M�o�u�s�e� �b�u�t�t�o�n� �u�p� � �-� ��s�u�b�s�c�r�i�b�e�D�b�l�c�l�i�c�k�(�c�a�l�l�b�a�c�k�)�� �-� �D�o�u�b�l�e� �c�l�i�c�k� � �-� ��s�u�b�s�c�r�i�b�e�W�h�e�e�l�(�c�a�l�l�b�a�c�k�)�� �-� �M�o�u�s�e� �w�h�e�e�l� � � � �#�#�#� �T�o�u�c�h� �E�v�e�n�t�s� � � � �-� ��s�u�b�s�c�r�i�b�e�T�o�u�c�h�s�t�a�r�t�(�c�a�l�l�b�a�c�k�)�� �-� �T�o�u�c�h� �s�t�a�r�t� � �-� ��s�u�b�s�c�r�i�b�e�T�o�u�c�h�m�o�v�e�(�c�a�l�l�b�a�c�k�)�� �-� �T�o�u�c�h� �m�o�v�e� � �-� ��s�u�b�s�c�r�i�b�e�T�o�u�c�h�e�n�d�(�c�a�l�l�b�a�c�k�)�� �-� �T�o�u�c�h� �e�n�d� � � � �#�#�#� �U�n�s�u�b�s�c�r�i�b�e� � � � �E�a�c�h� �s�u�b�s�c�r�i�b�e� �m�e�t�h�o�d� �r�e�t�u�r�n�s� �a� �s�u�b�s�c�r�i�p�t�i�o�n� �I�D�.� �U�s�e� �i�t� �t�o� �u�n�s�u�b�s�c�r�i�b�e�:� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �s�u�b�I�d� �=� �a�p�i�.�s�u�b�s�c�r�i�b�e�M�o�u�s�e�M�o�v�e�(�h�a�n�d�l�e�r�)�;� � �a�p�i�.�u�n�s�u�b�s�c�r�i�b�e�M�o�u�s�e�M�o�v�e�(�s�u�b�I�d�)�;� � �� � � � �-�-�-� � � � �#�#� �N�o�t�i�f�i�c�a�t�i�o�n�s� � � � �M�a�n�a�g�e� �c�h�a�r�t� �n�o�t�i�f�i�c�a�t�i�o�n�s�.� � � � �#�#�#� �a�d�d�N�o�t�i�f�i�c�a�t�i�o�n�(�n�o�t�i�f�i�c�a�t�i�o�n�)� � � � �A�d�d� �a� �n�o�t�i�f�i�c�a�t�i�o�n�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�a�d�d�N�o�t�i�f�i�c�a�t�i�o�n�(�{� � � � �t�i�t�l�e�:� �'�P�r�i�c�e� �A�l�e�r�t�'�,� � � � �m�e�s�s�a�g�e�:� �'�A�A�P�L� �r�e�a�c�h�e�d� �$�1�5�0�'�,� � � � �t�y�p�e�:� �'�i�n�f�o�'�,� � � � �d�u�r�a�t�i�o�n�:� �5�0�0�0� � �}�)�;� � �� � � � �#�#�#� �r�e�m�o�v�e�N�o�t�i�f�i�c�a�t�i�o�n�(�i�d�)� � � � �R�e�m�o�v�e� �a� �n�o�t�i�f�i�c�a�t�i�o�n�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�r�e�m�o�v�e�N�o�t�i�f�i�c�a�t�i�o�n�(�n�o�t�i�f�i�c�a�t�i�o�n�I�d�)�;� � �� � � � �#�#�#� �r�e�m�o�v�e�A�l�l�N�o�t�i�f�i�c�a�t�i�o�n�s�(�)� � � � �R�e�m�o�v�e� �a�l�l� �n�o�t�i�f�i�c�a�t�i�o�n�s�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�r�e�m�o�v�e�A�l�l�N�o�t�i�f�i�c�a�t�i�o�n�s�(�)�;� � �� � � � �#�#�#� �g�e�t�N�o�t�i�f�i�c�a�t�i�o�n�s�(�)� � � � �G�e�t� �a�l�l� �n�o�t�i�f�i�c�a�t�i�o�n�s�.� � � � ��R�e�t�u�r�n�s�:�� �A�r�r�a�y� �o�f� �n�o�t�i�f�i�c�a�t�i�o�n�s� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �n�o�t�i�f�i�c�a�t�i�o�n�s� �=� �a�p�i�.�g�e�t�N�o�t�i�f�i�c�a�t�i�o�n�s�(�)�;� � �� � � � �-�-�-� � � � �#�#� �T�h�e�m�e� �&� �F�e�a�t�u�r�e�s� � � � �C�o�n�t�r�o�l� �c�h�a�r�t� �t�h�e�m�e� �a�n�d� �f�e�a�t�u�r�e�s�.� � � � �#�#�#� �s�e�t�T�h�e�m�e�(�t�h�e�m�e�)� � � � �S�e�t� �t�h�e� �c�h�a�r�t� �t�h�e�m�e�.� � � � ��P�a�r�a�m�e�t�e�r�s�:�� � �-� ��t�h�e�m�e�� �(�s�t�r�i�n�g� �o�r� �o�b�j�e�c�t�)� �-� �'�l�i�g�h�t�'�,� �'�d�a�r�k�'�,� �o�r� �c�u�s�t�o�m� �t�h�e�m�e� �o�b�j�e�c�t� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�s�e�t�T�h�e�m�e�(�'�d�a�r�k�'�)�;� � �a�p�i�.�s�e�t�T�h�e�m�e�(�'�l�i�g�h�t�'�)�;� � �� � � � �#�#�#� �g�e�t�T�h�e�m�e�(�)� � � � �G�e�t� �t�h�e� �c�u�r�r�e�n�t� �t�h�e�m�e�.� � � � ��R�e�t�u�r�n�s�:�� �T�h�e�m�e� �o�b�j�e�c�t� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �c�o�n�s�t� �t�h�e�m�e� �=� �a�p�i�.�g�e�t�T�h�e�m�e�(�)�;� � �� � � � �#�#�#� �e�n�a�b�l�e�F�e�a�t�u�r�e�(�f�e�a�t�u�r�e�)� � � � �E�n�a�b�l�e� �a� �c�h�a�r�t� �f�e�a�t�u�r�e�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�e�n�a�b�l�e�F�e�a�t�u�r�e�(�'�d�r�a�w�i�n�g�T�o�o�l�s�'�)�;� � �� � � � �#�#�#� �d�i�s�a�b�l�e�F�e�a�t�u�r�e�(�f�e�a�t�u�r�e�)� � � � �D�i�s�a�b�l�e� �a� �c�h�a�r�t� �f�e�a�t�u�r�e�.� � � � ��E�x�a�m�p�l�e�:�� � ��j�a�v�a�s�c�r�i�p�t� � �a�p�i�.�d�i�s�a�b�l�e�F�e�a�t�u�r�e�(�'�d�r�a�w�i�n�g�T�o�o�l�s�'�)�;� � �� � � � �-�-�-� � � � �#�#� �Q�u�i�c�k� �E�x�a�m�p�l�e�s� � � � �#�#�#� �C�o�m�p�l�e�t�e� �S�e�t�u�p� �E�x�a�m�p�l�e� � � � ��j�a�v�a�s�c�r�i�p�t� � �/�/� �C�r�e�a�t�e� �c�h�a�r�t� � �c�o�n�s�t� �c�h�a�r�t� �=� �n�e�w� �C�h�a�r�t�(�{� � � � �c�o�n�t�a�i�n�e�r�:� �d�o�c�u�m�e�n�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�'�c�h�a�r�t�'�)�,� � � � �d�a�t�a�f�e�e�d�:� �y�o�u�r�D�a�t�a�F�e�e�d�,� � � � �s�y�m�b�o�l�:� �'�A�A�P�L�'�,� � � � �i�n�t�e�r�v�a�l�:� �'�1�D�'� � �}�)�;� � � � �/�/� �W�a�i�t� �f�o�r� �r�e�a�d�y� � �c�h�a�r�t�.�o�n�C�h�a�r�t�R�e�a�d�y�(�(�)� �=�>� �{� � � � �c�o�n�s�t� �a�p�i� �=� �c�h�a�r�t�.�g�e�t�A�p�i�(�)�;� � � � � � � � �/�/� �A�d�d� �i�n�d�i�c�a�t�o�r�s� � � � �c�o�n�s�t� �s�m�a� �=� �a�p�i�.�a�d�d�I�n�d�i�c�a�t�o�r�(�'�S�M�A�'�,� �{� �p�e�r�i�o�d�:� �2�0� �}�)�;� � � � �c�o�n�s�t� �r�s�i� �=� �a�p�i�.�a�d�d�I�n�d�i�c�a�t�o�r�(�'�R�S�I�'�,� �{� �p�e�r�i�o�d�:� �1�4� �}�)�;� � � � � � � � �/�/� �A�d�d� �d�r�a�w�i�n�g� � � � �c�o�n�s�t� �l�i�n�e� �=� �a�p�i�.�a�d�d�S�h�a�p�e�(�'�h�o�r�i�z�o�n�t�a�l�_�l�i�n�e�'�,� �[� � � � � � �{� �t�i�m�e�:� �D�a�t�e�.�n�o�w�(�)�,� �p�r�i�c�e�:� �1�5�0�.�0�0�,� �b�a�r�I�n�d�e�x�:� �1�0�0� �}� � � � �]�,� �{� �c�o�l�o�r�:� �'�#�f�f�0�0�0�0�'� �}�)�;� � � � � � � � �/�/� �S�e�t� �v�i�s�i�b�l�e� �r�a�n�g�e� � � � �a�p�i�.�s�e�t�R�a�n�g�e�P�r�e�s�e�t�(�'�3�M�'�)�;� � � � � � � � �/�/� �L�i�s�t�e�n� �t�o� �e�v�e�n�t�s� � � � �a�p�i�.�s�u�b�s�c�r�i�b�e�C�r�o�s�s�h�a�i�r�M�o�v�e�(�(�d�a�t�a�)� �=�>� �{� � � � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�C�r�o�s�s�h�a�i�r�:�'�,� �d�a�t�a�.�p�r�i�c�e�)�;� � � � �}�)�;� � � � � � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�C�h�a�r�t� �s�e�t�u�p� �c�o�m�p�l�e�t�e�!�'�)�;� � �}�)�;� � �� � � � �#�#�#� �S�a�v�e� �a�n�d� �L�o�a�d� �L�a�y�o�u�t� � � � ��j�a�v�a�s�c�r�i�p�t� � �/�/� �S�a�v�e� �l�a�y�o�u�t� � �c�h�a�r�t�.�o�n�C�h�a�r�t�R�e�a�d�y�(�(�)� �=�>� �{� � � � �c�o�n�s�t� �a�p�i� �=� �c�h�a�r�t�.�g�e�t�A�p�i�(�)�;� � � � � � � � �/�/� �S�a�v�e� � � � �c�o�n�s�t� �j�s�o�n� �=� �a�p�i�.�s�a�v�e�L�a�y�o�u�t�T�o�J�S�O�N�(�)�;� � � � �l�o�c�a�l�S�t�o�r�a�g�e�.�s�e�t�I�t�e�m�(�'�c�h�a�r�t�L�a�y�o�u�t�'�,� �j�s�o�n�)�;� � � � � � � � �/�/� �L�o�a�d� �l�a�t�e�r� � � � �c�o�n�s�t� �s�a�v�e�d� �=� �l�o�c�a�l�S�t�o�r�a�g�e�.�g�e�t�I�t�e�m�(�'�c�h�a�r�t�L�a�y�o�u�t�'�)�;� � � � �i�f� �(�s�a�v�e�d�)� �{� � � � � � �a�p�i�.�l�o�a�d�L�a�y�o�u�t�F�r�o�m�J�S�O�N�(�s�a�v�e�d�)�;� � � � �}� � �}�)�;� � �� � � � �#�#�#� �T�a�k�e� �S�c�r�e�e�n�s�h�o�t� � � � ��j�a�v�a�s�c�r�i�p�t� � �c�h�a�r�t�.�o�n�C�h�a�r�t�R�e�a�d�y�(�a�s�y�n�c� �(�)� �=�>� �{� � � � �c�o�n�s�t� �a�p�i� �=� �c�h�a�r�t�.�g�e�t�A�p�i�(�)�;� � � � � � � � �/�/� �T�a�k�e� �s�c�r�e�e�n�s�h�o�t� � � � �c�o�n�s�t� �s�c�r�e�e�n�s�h�o�t� �=� �a�w�a�i�t� �a�p�i�.�t�a�k�e�S�c�r�e�e�n�s�h�o�t�(�)�;� � � � � � � � �/�/� �D�o�w�n�l�o�a�d� �a�s� �P�N�G� � � � �a�w�a�i�t� �a�p�i�.�s�a�v�e�A�s�P�N�G�(�{� � � � � � �w�i�d�t�h�:� �1�9�2�0�,� � � � � � �h�e�i�g�h�t�:� �1�0�8�0� � � � �}�)�;� � �}�)�;� � �� � � � �-�-�-� � � � �#�#� �N�e�x�t� �S�t�e�p�s� � � � �-� �L�e�a�r�n� �a�b�o�u�t� �[�C�u�s�t�o�m� �I�n�d�i�c�a�t�o�r�s�]�(�.�.�/�c�h�a�r�t�i�n�g�/�i�n�d�i�c�a�t�o�r�s�/�c�u�s�t�o�m�)� � �-� �E�x�p�l�o�r�e� �[�C�h�a�r�t� �C�o�n�f�i�g�u�r�a�t�i�o�n�]�(�.�.�/�c�o�n�f�i�g�u�r�a�t�i�o�n�/�i�n�d�e�x�)� � �-� �C�h�e�c�k� �[�F�r�a�m�e�w�o�r�k� �S�e�t�u�p�]�(�.�.�/�g�e�t�t�i�n�g�-�s�t�a�r�t�e�d�/�f�r�a�m�e�w�o�r�k�-�s�e�t�u�p�/�v�a�n�i�l�l�a�-�j�s�)� � �