@j3r3mcdev/auth-service
v1.3.0
Published
Authentication utilities for Node/NestJS (hashing, tokens, validators, sanitization).
Maintainers
Readme
��#� �=��� �@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�
�
�
�
�<�p� �a�l�i�g�n�=�"�c�e�n�t�e�r�"�>�
�
�<�s�t�r�o�n�g�>�A�u�t�h�e�n�t�i�c�a�t�i�o�n�,� �S�e�c�u�r�i�t�y� �&� �W�A�F� �t�o�o�l�k�i�t� �f�o�r� �N�o�d�e�.�j�s�,� �E�x�p�r�e�s�s�,� �H�o�n�o� �&� �N�e�s�t�J�S�<�/�s�t�r�o�n�g�>�<�b�r�>�
�
�H�a�s�h�i�n�g� �" �J�W�T� �" �V�a�l�i�d�a�t�o�r�s� �" �S�a�n�i�t�i�z�a�t�i�o�n� �" �R�B�A�C� �" �W�A�F� �(�S�Q�L�i�,� �X�S�S�,� �L�F�I�,� �R�F�I�,� �P�a�t�h�,� �U�A�,� �G�e�o�I�P�,� �A�S�N�)�
�
�<�/�p�>�
�
�
�
�-�-�-�
�
�
�
�#�#� �<��� �B�a�d�g�e�s�
�
�
�
�!�[�n�p�m�]�(�h�t�t�p�s�:�/�/�i�m�g�.�s�h�i�e�l�d�s�.�i�o�/�n�p�m�/�v�/�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�)�
�
�!�[�d�o�w�n�l�o�a�d�s�]�(�h�t�t�p�s�:�/�/�i�m�g�.�s�h�i�e�l�d�s�.�i�o�/�n�p�m�/�d�m�/�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�)�
�
�!�[�l�i�c�e�n�s�e�]�(�h�t�t�p�s�:�/�/�i�m�g�.�s�h�i�e�l�d�s�.�i�o�/�n�p�m�/�l�/�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�)�
�
�!�[�b�u�i�l�d�]�(�h�t�t�p�s�:�/�/�i�m�g�.�s�h�i�e�l�d�s�.�i�o�/�b�a�d�g�e�/�b�u�i�l�d�-�p�a�s�s�i�n�g�-�b�r�i�g�h�t�g�r�e�e�n�)�
�
�!�[�c�o�v�e�r�a�g�e�]�(�h�t�t�p�s�:�/�/�i�m�g�.�s�h�i�e�l�d�s�.�i�o�/�b�a�d�g�e�/�c�o�v�e�r�a�g�e�-�1�0�0�%�2�5�-�b�r�i�g�h�t�g�r�e�e�n�)�
�
�
�
�-�-�-�
�
�
�
�#� �=��� �I�n�t�r�o�d�u�c�t�i�o�n�
�
�
�
��@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�� �e�s�t� �u�n�e� �l�i�b�r�a�i�r�i�e� ���p�r�o�f�e�s�s�i�o�n�n�e�l�l�e���,� ���m�o�d�u�l�a�i�r�e��� �e�t� ���1�0�0�%� �t�e�s�t���e���,� �c�o�n���u�e� �p�o�u�r� �f�o�u�r�n�i�r� �:�
�
�
�
�-� �u�n� �s�y�s�t���m�e� �d� a�u�t�h�e�n�t�i�f�i�c�a�t�i�o�n� �c�o�m�p�l�e�t� �(�h�a�s�h�i�n�g�,� �J�W�T�,� �e�x�t�r�a�c�t�o�r�s�)�
�
�-� �u�n� �m�o�d�u�l�e� �R�B�A�C� �s�i�m�p�l�e� �e�t� �e�f�f�i�c�a�c�e�
�
�-� �u�n� ���W�A�F� �a�v�a�n�c��� �i�n�s�p�i�r��� �d� O�W�A�S�P� �C�R�S���
�
�-� �d�e�s� �m�i�d�d�l�e�w�a�r�e�s� �d�e� �s���c�u�r�i�t��� �p�r���t�s� ��� �l� e�m�p�l�o�i�
�
�-� �d�e�s� �p�r�o�v�i�d�e�r�s� �G�e�o�I�P� �&� �A�S�N� �(�M�o�c�k�,� �M�a�x�M�i�n�d�,� �I�P�2�L�o�c�a�t�i�o�n�)�
�
�-� �u�n�e� �a�r�c�h�i�t�e�c�t�u�r�e� �m�o�d�u�l�a�i�r�e�,� �e�x�t�e�n�s�i�b�l�e�,� �f�r�a�m�e�w�o�r�k� a�g�n�o�s�t�i�c�
�
�
�
�C�o�m�p�a�t�i�b�l�e� �a�v�e�c� �:�
�
�
�
�-� ���E�x�p�r�e�s�s���
�
�-� ���H�o�n�o���
�
�-� ���N�e�s�t�J�S���
�
�-� ���N�o�d�e�.�j�s� �n�a�t�i�f���
�
�
�
�-�-�-�
�
�
�
�#� �=� �F�e�a�t�u�r�e�s�
�
�
�
�#�#� �=�� �A�u�t�h� �c�o�m�p�l�e�t�
�
�
�
�-� �H�a�s�h�i�n�g� �(�b�c�r�y�p�t�)�
�
�-� �J�W�T� �(�s�i�g�n�/�v�e�r�i�f�y�)�
�
�-� �E�x�t�r�a�c�t�o�r�s� �(�h�e�a�d�e�r�s�,� �c�o�o�k�i�e�s�,� �q�u�e�r�y�)�
�
�-� �V�a�l�i�d�a�t�o�r�s� �&� �s�a�n�i�t�i�z�e�r�s�
�
�-� �R�B�A�C� �(�r�o�l�e�s� �&� �p�e�r�m�i�s�s�i�o�n�s�)�
�
�
�
�#�#� �=��� �W�A�F� �a�v�a�n�c���
�
�
�
�-� �S�Q�L� �I�n�j�e�c�t�i�o�n� �d�e�t�e�c�t�i�o�n�
�
�-� �X�S�S� �d�e�t�e�c�t�i�o�n�
�
�-� �P�a�t�h� �T�r�a�v�e�r�s�a�l�
�
�-� �L�F�I� �/� �R�F�I�
�
�-� �U�s�e�r�-�A�g�e�n�t� �f�i�l�t�e�r�i�n�g�
�
�-� �G�e�o�I�P� �b�l�o�c�k�i�n�g�
�
�-� �A�S�N� �b�l�o�c�k�i�n�g�
�
�-� �P�i�p�e�l�i�n�e� �m�o�d�u�l�a�i�r�e�
�
�-� �P�r�o�v�i�d�e�r�s� �i�n�t�e�r�c�h�a�n�g�e�a�b�l�e�s� �(�B�a�s�i�c�,� �R�e�g�e�x�,� �H�e�u�r�i�s�t�i�c�,� �M�L�)�
�
�
�
�#�#� �<�
� �G�e�o�I�P� �P�r�o�v�i�d�e�r�s�
�
�
�
�-� �M�o�c�k�
�
�-� �M�a�x�M�i�n�d�
�
�-� �I�P�2�L�o�c�a�t�i�o�n�
�
�
�
�#�#� �=��� �A�S�N� �P�r�o�v�i�d�e�r�s�
�
�
�
�-� �M�o�c�k�
�
�-� �M�a�x�M�i�n�d�
�
�-� �I�P�2�L�o�c�a�t�i�o�n�
�
�
�
�-�-�-�
�
�
�
�#� �>��� �T�e�s�t�s� �1�0�0�%�
�
�
�
�-� ���6�4� �t�e�s�t� �s�u�i�t�e�s���
�
�-� ���1�8�6� �t�e�s�t�s���
�
�-� ���1�0�0�%� �c�o�v�e�r�a�g�e���
�
�-� �T�e�s�t�s� �u�n�i�t�a�i�r�e�s�,� �i�n�t���g�r�a�t�i�o�n�,� �f�u�l�l�-�r�u�n�t�i�m�e�
�
�
�
����b�a�s�h�
�
�n�p�m� �t�e�s�t�
�
����
�
�
�
�#� �=��� �I�n�s�t�a�l�l�a�t�i�o�n�
�
�
�
����b�a�s�h�
�
�n�p�m� �i�n�s�t�a�l�l� �@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�
�
����
�
�
�
�#� ��& �Q�u�i�c�k� �S�t�a�r�t� �(�E�x�p�r�e�s�s�)�
�
�
�
����t�s�
�
�i�m�p�o�r�t� �e�x�p�r�e�s�s� �f�r�o�m� �"�e�x�p�r�e�s�s�"�;�
�
�i�m�p�o�r�t� �{� �w�a�f� �}� �f�r�o�m� �"�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�"�;�
�
�
�
�c�o�n�s�t� �a�p�p� �=� �e�x�p�r�e�s�s�(�)�;�
�
�
�
�a�p�p�.�u�s�e�(�
�
� � �w�a�f�(�{�
�
� � � � �s�q�l�i�:� �t�r�u�e�,�
�
� � � � �x�s�s�:� �t�r�u�e�,�
�
� � � � �l�f�i�:� �t�r�u�e�,�
�
� � � � �r�f�i�:� �t�r�u�e�,�
�
� � � � �p�a�t�h�:� �t�r�u�e�,�
�
� � � � �u�s�e�r�A�g�e�n�t�:� �t�r�u�e�,�
�
� � � � �g�e�o�i�p�:� �t�r�u�e�,�
�
� � � � �b�l�o�c�k�e�d�C�o�u�n�t�r�i�e�s�:� �[�"�C�N�"�,� �"�R�U�"�]�,�
�
� � � � �a�s�n�:� �t�r�u�e�,�
�
� � � � �b�l�o�c�k�e�d�A�s�n�:� �[�1�5�1�6�9�]�,� �/�/� �G�o�o�g�l�e� �A�S�N�
�
� � �}�)�,�
�
�)�;�
�
�
�
�a�p�p�.�g�e�t�(�"�/�s�e�c�u�r�e�"�,� �(�r�e�q�,� �r�e�s�)� �=�>� �{�
�
� � �r�e�s�.�j�s�o�n�(�{� �o�k�:� �t�r�u�e� �}�)�;�
�
�}�)�;�
�
�
�
�a�p�p�.�l�i�s�t�e�n�(�3�0�0�0�)�;�
�
����
�
�
�
�#� �=�� �A�u�t�h�e�n�t�i�c�a�t�i�o�n� �M�o�d�u�l�e�
�
�
�
�#�#� �=�� �H�a�s�h�i�n�g�
�
�
�
����t�s�
�
�i�m�p�o�r�t� �{� �h�a�s�h�P�a�s�s�w�o�r�d�,� �v�e�r�i�f�y�P�a�s�s�w�o�r�d� �}� �f�r�o�m� �"�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�"�;�
�
�
�
�c�o�n�s�t� �h�a�s�h� �=� �a�w�a�i�t� �h�a�s�h�P�a�s�s�w�o�r�d�(�"�s�e�c�r�e�t�"�)�;�
�
�c�o�n�s�t� �o�k� �=� �a�w�a�i�t� �v�e�r�i�f�y�P�a�s�s�w�o�r�d�(�"�s�e�c�r�e�t�"�,� �h�a�s�h�)�;�
�
����
�
�
�
�#�#� �=�� �J�W�T�
�
�
�
����t�s�
�
�i�m�p�o�r�t� �{� �s�i�g�n�T�o�k�e�n�,� �v�e�r�i�f�y�T�o�k�e�n� �}� �f�r�o�m� �"�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�"�;�
�
�
�
�c�o�n�s�t� �t�o�k�e�n� �=� �s�i�g�n�T�o�k�e�n�(�{� �s�u�b�:� �1� �}�,� �"�s�e�c�r�e�t�"�,� �{� �e�x�p�i�r�e�s�I�n�:� �"�1�h�"� �}�)�;�
�
�c�o�n�s�t� �p�a�y�l�o�a�d� �=� �v�e�r�i�f�y�T�o�k�e�n�(�t�o�k�e�n�,� �"�s�e�c�r�e�t�"�)�;�
�
����
�
�
�
�#�#� �<؟� �E�x�t�r�a�c�t�o�r�s�
�
�
�
����t�s�
�
�i�m�p�o�r�t� �{� �e�x�t�r�a�c�t�T�o�k�e�n� �}� �f�r�o�m� �"�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�"�;�
�
�
�
�c�o�n�s�t� �t�o�k�e�n� �=� �e�x�t�r�a�c�t�T�o�k�e�n�(�r�e�q�)�;� �/�/� �h�e�a�d�e�r�,� �c�o�o�k�i�e�,� �q�u�e�r�y�
�
����
�
�
�
�#�#� �>��� �R�B�A�C�
�
�
�
����t�s�
�
�i�m�p�o�r�t� �{� �r�e�q�u�i�r�e�R�o�l�e� �}� �f�r�o�m� �"�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�"�;�
�
�
�
�a�p�p�.�g�e�t�(�"�/�a�d�m�i�n�"�,� �r�e�q�u�i�r�e�R�o�l�e�(�"�a�d�m�i�n�"�)�,� �(�r�e�q�,� �r�e�s�)� �=�>� �{�
�
� � �r�e�s�.�j�s�o�n�(�{� �a�d�m�i�n�:� �t�r�u�e� �}�)�;�
�
�}�)�;�
�
����
�
�
�
�#� �=��� �W�A�F� �M�o�d�u�l�e�
�
�
�
�#�#� �A�c�t�i�v�a�t�i�o�n�
�
�
�
����t�s�
�
�i�m�p�o�r�t� �{� �w�a�f� �}� �f�r�o�m� �"�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�"�;�
�
�
�
�a�p�p�.�u�s�e�(�
�
� � �w�a�f�(�{�
�
� � � � �s�q�l�i�:� �t�r�u�e�,�
�
� � � � �x�s�s�:� �t�r�u�e�,�
�
� � � � �p�a�t�h�:� �t�r�u�e�,�
�
� � � � �l�f�i�:� �t�r�u�e�,�
�
� � � � �r�f�i�:� �t�r�u�e�,�
�
� � � � �u�s�e�r�A�g�e�n�t�:� �t�r�u�e�,�
�
� � � � �g�e�o�i�p�:� �t�r�u�e�,�
�
� � � � �b�l�o�c�k�e�d�C�o�u�n�t�r�i�e�s�:� �[�"�C�N�"�]�,�
�
� � � � �a�s�n�:� �t�r�u�e�,�
�
� � � � �b�l�o�c�k�e�d�A�s�n�:� �[�1�5�1�6�9�]�,�
�
� � �}�)�,�
�
�)�;�
�
����
�
�
�
�#�#� �=�
� �M�i�d�d�l�e�w�a�r�e�s� �i�n�c�l�u�s�
�
�
�
�-� �S�Q�L� �I�n�j�e�c�t�i�o�n�
�
�
�
�-� �X�S�S�
�
�
�
�-� �P�a�t�h� �T�r�a�v�e�r�s�a�l�
�
�
�
�-� �L�F�I�
�
�
�
�-� �R�F�I�
�
�
�
�-� �U�s�e�r�-�A�g�e�n�t� �F�i�l�t�e�r�i�n�g�
�
�
�
�-� �G�e�o�I�P�
�
�
�
�-� �A�S�N�
�
�
�
�#�#� �<�
� �G�e�o�I�P� �F�i�l�t�e�r�i�n�g�
�
�
�
�#�#�#� �E�x�e�m�p�l�e� �E�x�p�r�e�s�s�
�
�
�
����t�s�
�
�i�m�p�o�r�t� �{� �M�a�x�M�i�n�d�P�r�o�v�i�d�e�r� �}� �f�r�o�m� �"�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�"�;�
�
�i�m�p�o�r�t� �m�a�x�m�i�n�d� �f�r�o�m� �"�m�a�x�m�i�n�d�"�;�
�
�
�
�c�o�n�s�t� �r�e�a�d�e�r� �=� �a�w�a�i�t� �m�a�x�m�i�n�d�.�o�p�e�n�(�"�G�e�o�L�i�t�e�2�-�C�o�u�n�t�r�y�.�m�m�d�b�"�)�;�
�
�
�
�a�p�p�.�u�s�e�(�
�
� � �w�a�f�(�{�
�
� � � � �g�e�o�i�p�:� �t�r�u�e�,�
�
� � � � �b�l�o�c�k�e�d�C�o�u�n�t�r�i�e�s�:� �[�"�C�N�"�]�,�
�
� � � � �g�e�o�I�p�P�r�o�v�i�d�e�r�:� �n�e�w� �M�a�x�M�i�n�d�P�r�o�v�i�d�e�r�(�r�e�a�d�e�r�)�,�
�
� � �}�)�,�
�
�)�;�
�
����
�
�
�
�#�#� �=��� �A�S�N� �F�i�l�t�e�r�i�n�g�
�
�
�
�#�#�#� �E�x�e�m�p�l�e� �E�x�p�r�e�s�s�
�
�
�
����t�s�
�
�i�m�p�o�r�t� �{� �M�a�x�M�i�n�d�A�s�n�P�r�o�v�i�d�e�r� �}� �f�r�o�m� �"�@�j�3�r�3�m�c�d�e�v�/�a�u�t�h�-�s�e�r�v�i�c�e�"�;�
�
�i�m�p�o�r�t� �m�a�x�m�i�n�d� �f�r�o�m� �"�m�a�x�m�i�n�d�"�;�
�
�
�
�c�o�n�s�t� �r�e�a�d�e�r� �=� �a�w�a�i�t� �m�a�x�m�i�n�d�.�o�p�e�n�(�"�G�e�o�L�i�t�e�2�-�A�S�N�.�m�m�d�b�"�)�;�
�
�
�
�a�p�p�.�u�s�e�(�
�
� � �w�a�f�(�{�
�
� � � � �a�s�n�:� �t�r�u�e�,�
�
� � � � �b�l�o�c�k�e�d�A�s�n�:� �[�1�5�1�6�9�]�,�
�
� � � � �a�s�n�P�r�o�v�i�d�e�r�:� �n�e�w� �M�a�x�M�i�n�d�A�s�n�P�r�o�v�i�d�e�r�(�r�e�a�d�e�r�)�,�
�
� � �}�)�,�
�
�)�;�
�
����
�
�
�
�#� �>��� �T�e�s�t�i�n�g�
�
�
�
����b�a�s�h�
�
�n�p�m� �r�u�n� �t�e�s�t�
�
����
�
�
�
�-� �6�4� �t�e�s�t� �s�u�i�t�e�s�
�
�
�
�-� �1�8�6� �t�e�s�t�s�
�
�
�
�-� �1�0�0�%� �c�o�v�e�r�a�g�e�
�
�
�
�#� �<��� �A�r�c�h�i�t�e�c�t�u�r�e� �i�n�t�e�r�n�e�
�
�
�
�S�t�r�u�c�t�u�r�e� �d�u� �d�o�s�s�i�e�r�
�
�L�e� �n�u�m���r�o� �d�e� �s���r�i�e� �d�u� �v�o�l�u�m�e� �e�s�t� �B�6�D�6�-�5�1�8�F�
�
�C�:�\�D�E�V�\�A�U�T�H�-�S�E�R�V�I�C�E�-�L�I�B�\�S�R�C�
�
�|� �i�n�d�e�x�.�t�s�
�
�|� � �
�
�+�-�-�-�a�d�a�p�t�e�r�s�
�
�|� �e�x�p�r�e�s�s�-�s�q�l�i�.�t�s�
�
�|� �e�x�p�r�e�s�s�-�x�s�s�.�t�s�
�
�|� �i�n�d�e�x�.�t�s�
�
�|� � �
�
�+�-�-�-�a�u�t�h�
�
�|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� � �
�
�|� �+�-�-�-�c�o�r�e�
�
�|� �|� �d�e�e�p�-�m�e�r�g�e�.�t�s�
�
�|� �|� �d�e�f�a�u�l�t�-�o�p�t�i�o�n�s�.�t�s�
�
�|� �|� �t�y�p�e�s�.�t�s�
�
�|� �|� � �
�
�|� �+�-�-�-�e�x�t�r�a�c�t�
�
�|� �|� �d�e�f�a�u�l�t�-�e�x�t�r�a�c�t�-�t�o�k�e�n�.�t�s�
�
�|� �|� � �
�
�|� �+�-�-�-�g�u�a�r�d�
�
�|� �|� �c�r�e�a�t�e�-�a�u�t�h�-�g�u�a�r�d�.�t�s�
�
�|� �|� � �
�
�|� �+�-�-�-�p�e�r�m�i�s�s�i�o�n�
�
�|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �p�e�r�m�i�s�s�i�o�n�-�c�h�e�c�k�e�r�.�t�s�
�
�|� �|� � �
�
�|� �+�-�-�-�u�s�e�r�
�
�|� �|� �d�e�f�a�u�l�t�-�b�u�i�l�d�-�u�s�e�r�.�t�s�
�
�|� �|� � �
�
�|� �+�-�-�-�u�s�e�r�-�o�b�j�e�c�t�
�
�|� �|� �d�e�f�a�u�l�t�-�b�u�i�l�d�-�u�s�e�r�.�t�s�
�
�|� �|� � �
�
�|� �\�-�-�-�v�a�l�i�d�a�t�e�
�
�|� �d�e�f�a�u�l�t�-�v�a�l�i�d�a�t�e�-�j�w�t�.�t�s�
�
�|� � �
�
�+�-�-�-�m�i�d�d�l�e�w�a�r�e�
�
�|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �m�i�d�d�l�e�w�a�r�e�-�t�y�p�e�s�.�t�s�
�
�|� �|� � �
�
�|� �+�-�-�-�a�d�v�a�n�c�e�d�
�
�|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�a�s�n�
�
�|� �|� �|� �|� �a�s�n�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� �a�s�n�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�a�s�n�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�r�o�v�i�d�e�r�s�
�
�|� �|� �|� �|� �i�p�2�l�o�c�a�t�i�o�n�-�a�s�n�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�a�x�m�i�n�d�-�a�s�n�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �|� �a�s�n�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �i�p�2�l�o�c�a�t�i�o�n�-�a�s�n�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�a�x�m�i�n�d�-�a�s�n�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�o�c�k�-�a�s�n�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�b�o�t�
�
�|� �|� �|� �|� �b�o�t�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� �b�o�t�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�d�e�t�e�c�t�o�r�s�
�
�|� �|� �|� �|� �b�a�s�i�c�-�b�o�t�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�b�o�t�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �|� �b�a�s�i�c�-�b�o�t�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �b�o�t�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�o�c�k�-�b�o�t�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�g�e�o�i�p�
�
�|� �|� �|� �|� �a�d�v�a�n�c�e�d�-�g�e�o�i�p�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� �g�e�o�i�p�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� �g�e�o�i�p�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �g�e�o�i�p�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�d�e�t�e�c�t�o�r�s�
�
�|� �|� �|� �|� �a�d�v�a�n�c�e�d�-�g�e�o�i�p�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�r�o�v�i�d�e�r�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �i�p�2�l�o�c�a�t�i�o�n�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�a�x�m�i�n�d�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�l�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �|� �g�e�o�i�p�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �i�p�2�l�o�c�a�t�i�o�n�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�a�x�m�i�n�d�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�o�c�k�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�l�f�i�
�
�|� �|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� �|� �l�f�i�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� �l�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�d�e�t�e�c�t�o�r�s�
�
�|� �|� �|� �|� �a�d�v�a�n�c�e�d�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �b�a�s�i�c�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �r�e�g�e�x�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�a�t�t�e�r�n�s�
�
�|� �|� �|� �|� �l�f�i�-�p�a�t�t�e�r�n�s�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�r�o�v�i�d�e�r�s�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�l�f�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�l�-�l�f�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �|� �a�d�v�a�n�c�e�d�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �b�a�s�i�c�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �l�f�i�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�o�c�k�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �r�e�g�e�x�-�l�f�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�p�a�t�h�
�
�|� �|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� �|� �p�a�t�h�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� �p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�d�e�t�e�c�t�o�r�s�
�
�|� �|� �|� �|� �a�d�v�a�n�c�e�d�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �b�a�s�i�c�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �r�e�g�e�x�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�a�t�t�e�r�n�s�
�
�|� �|� �|� �|� �p�a�t�h�-�p�a�t�t�e�r�n�s�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�r�o�v�i�d�e�r�s�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�p�a�t�h�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�l�-�p�a�t�h�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �p�a�t�h�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �r�e�g�e�x�-�p�a�t�h�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �|� �a�d�v�a�n�c�e�d�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �b�a�s�i�c�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �h�e�u�r�i�s�t�i�c�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�l�-�p�a�t�h�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �p�a�t�h�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �r�e�g�e�x�-�p�a�t�h�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�r�f�i�
�
�|� �|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� �|� �r�f�i�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� �r�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�d�e�t�e�c�t�o�r�s�
�
�|� �|� �|� �|� �a�d�v�a�n�c�e�d�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �b�a�s�i�c�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �r�e�g�e�x�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�a�t�t�e�r�n�s�
�
�|� �|� �|� �|� �r�f�i�-�p�a�t�t�e�r�n�s�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�r�o�v�i�d�e�r�s�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�r�f�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�l�-�r�f�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �r�e�g�e�x�-�r�f�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �r�f�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �|� �a�d�v�a�n�c�e�d�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �b�a�s�i�c�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �h�e�u�r�i�s�t�i�c�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�l�-�r�f�i�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�o�c�k�-�r�f�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �r�f�i�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�s�q�l�i�
�
�|� �|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� �|� �s�q�l�i�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� �s�q�l�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�d�e�t�e�c�t�o�r�s�
�
�|� �|� �|� �|� �a�d�v�a�n�c�e�d�-�s�q�l�-�i�n�j�e�c�t�i�o�n�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �a�d�v�a�n�c�e�d�-�s�q�l�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �b�a�s�i�c�-�s�q�l�-�i�n�j�e�c�t�i�o�n�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �b�a�s�i�c�-�s�q�l�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�s�q�l�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �r�e�g�e�x�-�s�q�l�i�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�a�t�t�e�r�n�s�
�
�|� �|� �|� �|� �s�q�l�i�-�p�a�t�t�e�r�n�s�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�r�o�v�i�d�e�r�s�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�s�q�l�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�l�-�s�q�l�-�i�n�j�e�c�t�i�o�n�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�l�-�s�q�l�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �r�e�g�e�x�-�s�q�l�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �s�q�l�-�i�n�j�e�c�t�i�o�n�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �s�q�l�i�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �|� �a�d�v�a�n�c�e�d�-�s�q�l�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �b�a�s�i�c�-�s�q�l�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�l�-�s�q�l�i�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �r�e�g�e�x�-�s�q�l�i�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �s�q�l�i�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �s�q�l�i�-�i�n�t�e�g�r�a�t�i�o�n�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �s�q�l�i�-�p�a�t�t�e�r�n�s�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �s�q�l�i�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�u�s�e�r�-�a�g�e�n�t�-�f�i�l�t�e�r�i�n�g�
�
�|� �|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� �|� �u�s�e�r�-�a�g�e�n�t�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �u�s�e�r�-�a�g�e�n�t�-�f�i�l�t�e�r�i�n�g�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�d�e�t�e�c�t�o�r�s�
�
�|� �|� �|� �|� �a�d�v�a�n�c�e�d�-�u�s�e�r�-�a�g�e�n�t�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �b�a�s�i�c�-�u�s�e�r�-�a�g�e�n�t�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� �m�o�c�k�-�u�s�e�r�-�a�g�e�n�t�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�a�t�t�e�r�n�s�
�
�|� �|� �|� �|� �u�s�e�r�-�a�g�e�n�t�-�p�a�t�t�e�r�n�s�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �+�-�-�-�p�r�o�v�i�d�e�r�s�
�
�|� �|� �|� �|� �h�e�u�r�i�s�t�i�c�-�u�s�e�r�-�a�g�e�n�t�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �m�l�-�u�s�e�r�-�a�g�e�n�t�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �r�e�g�e�x�-�u�s�e�r�-�a�g�e�n�t�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� �u�s�e�r�-�a�g�e�n�t�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �|� � �
�
�|� �|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �|� �b�a�s�i�c�-�u�s�e�r�-�a�g�e�n�t�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �m�o�c�k�-�u�s�e�r�-�a�g�e�n�t�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �|� �u�s�e�r�-�a�g�e�n�t�-�f�i�l�t�e�r�i�n�g�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �\�-�-�-�x�x�s�
�
�|� �|� �|� �i�n�d�e�x�.�t�s�
�
�|� �|� �|� �x�s�s�-�c�h�e�c�k�.�t�s�
�
�|� �|� �|� �x�s�s�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�d�e�t�e�c�t�o�r�s�
�
�|� �|� �|� �a�d�v�a�n�c�e�d�-�x�s�s�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �b�a�s�i�c�-�x�s�s�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �m�o�c�k�-�x�s�s�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� �r�e�g�e�x�-�x�s�s�-�d�e�t�e�c�t�o�r�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�p�a�t�t�e�r�n�s�
�
�|� �|� �|� �x�s�s�-�p�a�t�t�e�r�n�s�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �+�-�-�-�p�r�o�v�i�d�e�r�s�
�
�|� �|� �|� �h�e�u�r�i�s�t�i�c�-�x�s�s�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �m�l�-�x�s�s�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� �x�s�s�-�p�r�o�v�i�d�e�r�.�t�s�
�
�|� �|� �|� � �
�
�|� �|� �\�-�-�-���t�e�s�t�s���
�
�|� �|� �a�d�v�a�n�c�e�d�-�x�s�s�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �b�a�s�i�c�-�x�s�s�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �m�l�-�x�s�s�-�p�r�o�v�i�d�e�r�-�e�r�r�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �m�l�-�x�s�s�-�p�r�o�v�i�d�e�r�-�n�o�t�-�d�e�t�e�c�t�e�d�.�t�e�s�t�.�t�s�
�
�|� �|� �m�l�-�x�s�s�-�p�r�o�v�i�d�e�r�.�t�e�s�t�.�t�s�
�
�|� �|� �m�o�c�k�-�x�s�s�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �r�e�g�e�x�-�x�s�s�-�d�e�t�e�c�t�o�r�.�t�e�s�t�.�t�s�
�
�|� �|� �x�s�s�-�c�h�e�c�k�.�m�i�d�d�l�e�w�a�r�e�.�t�e�s�t�.�t�s�
�
�|� �|� �x�s�s�-�c�h�e�c�k�.�t�e�s�t�.�t�s�
�
�|� �|� � �
�
�|� �\�-�-�-�p�r�e�-�a�u�t�h�
�
�|� �a�n�o�m�a�l�y�_�d�e�t�e�c�t�i�o�n�.�t�s�
�
�|� �c�o�n�t�e�n�t�-�t�y�p�e�-�c�h�e�c�k�.�t�s�
�
�|� �h�e�a�d�e�r�-�v�a�l�i�d�a�t�i�o�n�.�t�s�
�
�|� �i�n�d�e�x�.�t�s�
�
�|� �i�p�-�c�h�e�c�k�.�t�s�
�
�|� �m�e�t�h�o�d�-�e�n�f�o�r�c�e�m�e�n�t�.�t�s�
�
�|� �p�a�t�h�-�n�o�r�m�a�l�i�z�a�t�i�o�n�.�t�s�
�
�|� �r�a�t�e�-�l�i�m�i�t�.�t�s�
�
�|� � �
�
�+�-�-�-�r�o�l�e�s�
�
�|� �d�e�f�a�u�l�t�-�r�o�l�e�s�.�t�s�
�
�|� �i�n�d�e�x�.�t�s�
�
�|� �r�o�l�e�-�c�h�e�c�k�e�r�.�t�s�
�
�|� �r�o�l�e�-�t�y�p�e�s�.�t�s�
�
�|� � �
�
�+�-�-�-�u�t�i�l�s�
�
�|� �h�a�s�h�i�n�g�.�t�s�
�
�|� �i�n�d�e�x�.�t�s�
�
�|� �s�a�n�i�t�i�z�e�.�t�s�
�
�|� �t�o�k�e�n�s�.�t�s�
�
�|� �v�a�l�i�d�a�t�o�r�s�.�t�s�
�
�|� � �
�
�\�-�-�-�w�a�f�
�
�|� �a�d�v�a�n�c�e�d�-�w�a�f�.�t�s�
�
�|� �i�n�d�e�x�.�t�s�
�
�|� �w�a�f�.�t�s�
�
�|� � �
�
� �\�-�-�-���t�e�s�t�s���
�
�a�d�v�a�n�c�e�d�-�w�a�f�.�t�e�s�t�.�t�s�
�
�f�u�l�l�-�r�u�n�t�i�m�e�.�t�e�s�t�.�t�s�
�
�w�a�f�.�t�e�s�t�.�t�s�
�
�
�
�#� �>��� �A�r�c�h�i�t�e�c�t�u�r�e� �m�o�d�u�l�a�i�r�e�
�
�
�
�-� �P�r�o�v�i�d�e�r�s� �i�n�t�e�r�c�h�a�n�g�e�a�b�l�e�s�
�
�
�
�-� �M�i�d�d�l�e�w�a�r�e�s� �p�u�r�s�
�
�
�
�-� �A�u�c�u�n� �f�r�a�m�e�w�o�r�k� �i�m�p�o�s���
�
�
�
�-� �C�o�m�p�a�t�i�b�l�e� �E�x�p�r�e�s�s�,� �H�o�n�o�,� �N�e�s�t�J�S�,� �N�o�d�e�.�j�s� �n�a�t�i�f�
�
�
�
�#� �=��� �R�o�a�d�m�a�p�
�
�
�
�-� �R�a�t�e� �l�i�m�i�t�i�n�g� �a�v�a�n�c���
�
�
�
�-� �F�i�n�g�e�r�p�r�i�n�t�i�n�g� �a�n�t�i� b�o�t�
�
�
�
�-� �M�o�d�e� �P�a�r�a�n�o���a� �(�O�W�A�S�P� �C�R�S� �s�t�y�l�e�)�
�
�
�
�-� �S�u�p�p�o�r�t� �F�a�s�t�i�f�y�
�
�
�
�-� �S�u�p�p�o�r�t� �C�l�o�u�d�f�l�a�r�e� �W�o�r�k�e�r�s�
�
�
�
�#� �>��� �D���t�a�i�l� �c�o�m�p�l�e�t� �d�e�s� �m�i�d�d�l�e�w�a�r�e�s� �(�W�A�F�)�
�
�
�
�C�e�t�t�e� �s�e�c�t�i�o�n� �d���c�r�i�t� ���c�h�a�q�u�e� �m�i�d�d�l�e�w�a�r�e���,� �s�o�n� ���o�b�j�e�c�t�i�f���,� �l�e�s� ���a�t�t�a�q�u�e�s� �d���t�e�c�t���e�s���,� �l�e�s� ���t�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s���,� �e�t� ���p�o�u�r�q�u�o�i� �i�l� �e�s�t� �e�s�s�e�n�t�i�e�l��� �d�a�n�s� �u�n� �W�A�F� �m�o�d�e�r�n�e�.�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �1�.� �S�Q�L� �I�n�j�e�c�t�i�o�n� �(�S�Q�L�i�)�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�E�m�p���c�h�e�r� �l� i�n�j�e�c�t�i�o�n� �S�Q�L� �d�a�n�s� �l�e�s� �p�a�r�a�m���t�r�e�s�,� �l�e� �b�o�d�y�,� �l�e�s� �h�e�a�d�e�r�s� �o�u� �l�a� �q�u�e�r�y�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� ��'� �O�R� �1�=�1� �-�-��
�
�-� ��'�;� �D�R�O�P� �T�A�B�L�E� �u�s�e�r�s�;� �-�-��
�
�-� ��U�N�I�O�N� �S�E�L�E�C�T� �p�a�s�s�w�o�r�d� �F�R�O�M� �u�s�e�r�s��
�
�-� ��O�R� �T�R�U�E��
�
�-� ��s�l�e�e�p�(�5�)�� �(�t�i�m�e�-�b�a�s�e�d� �S�Q�L�i�)�
�
�-� ��C�A�S�T�(�C�H�A�R�(�.�.�.�)�)�� �(�o�b�f�u�s�c�a�t�i�o�n�)�
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� �D���t�e�c�t�e�u�r�s� ���B�a�s�i�c��� �(�p�a�t�t�e�r�n�s� �s�i�m�p�l�e�s�)�
�
�-� �D���t�e�c�t�e�u�r�s� ���R�e�g�e�x��� �(�e�x�p�r�e�s�s�i�o�n�s� �r���g�u�l�i���r�e�s� �c�o�m�p�l�e�x�e�s�)�
�
�-� �D���t�e�c�t�e�u�r�s� ���H�e�u�r�i�s�t�i�c��� �(�s�c�o�r�e� �d�e� �d�a�n�g�e�r�o�s�i�t���)�
�
�-� �D���t�e�c�t�e�u�r�s� ���M�L��� �(�m�o�d���l�e� �e�n�t�r�a���n��� �s�u�r� �d�a�t�a�s�e�t� �S�Q�L�i�)�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�S�Q�L�i� �e�s�t� ���l� u�n�e� �d�e�s� �a�t�t�a�q�u�e�s� �l�e�s� �p�l�u�s� �d�e�s�t�r�u�c�t�r�i�c�e�s��� �:� � �
�
�e�x�f�i�l�t�r�a�t�i�o�n� �d�e� �d�o�n�n���e�s�,� �s�u�p�p�r�e�s�s�i�o�n� �d�e� �t�a�b�l�e�s�,� �e�s�c�a�l�a�d�e� �d�e� �p�r�i�v�i�l���g�e�s�.�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �2�.� �X�S�S� �(�C�r�o�s�s�-�S�i�t�e� �S�c�r�i�p�t�i�n�g�)�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�E�m�p���c�h�e�r� �l� i�n�j�e�c�t�i�o�n� �d�e� �c�o�d�e� �H�T�M�L�/�J�S� �d�a�n�s� �l�e�s� �c�h�a�m�p�s� �u�t�i�l�i�s�a�t�e�u�r�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� ��<�s�c�r�i�p�t�>�a�l�e�r�t�(�1�)�<�/�s�c�r�i�p�t�>��
�
�-� ��"�>�<�i�m�g� �s�r�c�=�x� �o�n�e�r�r�o�r�=�a�l�e�r�t�(�1�)�>��
�
�-� ��j�a�v�a�s�c�r�i�p�t�:�a�l�e�r�t�(�1�)��
�
�-� ��o�n�l�o�a�d�=�a�l�e�r�t�(�1�)��
�
�-� �X�S�S� �o�b�f�u�s�q�u��� �(��<�s�c�r�<�s�c�r�i�p�t�>�i�p�t�>��)�
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� �D���t�e�c�t�e�u�r�s� ���B�a�s�i�c���
�
�-� �D���t�e�c�t�e�u�r�s� ���R�e�g�e�x���
�
�-� �D���t�e�c�t�e�u�r�s� ���H�e�u�r�i�s�t�i�c���
�
�-� �D���t�e�c�t�e�u�r�s� ���M�L���
�
�-� �D���t�e�c�t�i�o�n� �d�e� �p�a�y�l�o�a�d�s� �H�T�M�L�/�J�S� �e�n�c�o�d���s�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�X�S�S� �p�e�r�m�e�t� �:�
�
�
�
�-� �v�o�l� �d�e� �c�o�o�k�i�e�s�
�
�-� �p�r�i�s�e� �d�e� �c�o�n�t�r���l�e� �d�e� �s�e�s�s�i�o�n�
�
�-� �r�e�d�i�r�e�c�t�i�o�n�s� �m�a�l�v�e�i�l�l�a�n�t�e�s�
�
�-� �e�x���c�u�t�i�o�n� �d�e� �J�S� �a�r�b�i�t�r�a�i�r�e�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �3�.� �P�a�t�h� �T�r�a�v�e�r�s�a�l�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�E�m�p���c�h�e�r� �l� a�c�c���s� ��� �d�e�s� �f�i�c�h�i�e�r�s� �s�y�s�t���m�e� �v�i�a� �d�e�s� �c�h�e�m�i�n�s� �m�a�n�i�p�u�l���s�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� ��.�.�/�.�.�/�e�t�c�/�p�a�s�s�w�d��
�
�-� ��/�v�a�r�/�w�w�w�/�.�.�/�.�.�/�r�o�o�t�/�.�s�s�h�/�i�d�_�r�s�a��
�
�-� ��%�2�e�%�2�e�%�2�f�� �(�e�n�c�o�d���)�
�
�-� ��.�.�%�2�F�.�.�%�2�F�.�.�%�2�F��
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� �N�o�r�m�a�l�i�s�a�t�i�o�n� �d�u� �c�h�e�m�i�n�
�
�-� �D���t�e�c�t�i�o�n� �d�e� �s���q�u�e�n�c�e�s� ��.�.�/��
�
�-� �D���t�e�c�t�i�o�n� �d� e�n�c�o�d�a�g�e�s� �m�u�l�t�i�p�l�e�s�
�
�-� �A�n�a�l�y�s�e� �h�e�u�r�i�s�t�i�q�u�e�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�P�a�t�h� �T�r�a�v�e�r�s�a�l� �p�e�r�m�e�t� �:�
�
�
�
�-� �l�e�c�t�u�r�e� �d�e� �f�i�c�h�i�e�r�s� �s�e�n�s�i�b�l�e�s�
�
�-� �f�u�i�t�e� �d�e� �s�e�c�r�e�t�s�
�
�-� �e�x���c�u�t�i�o�n� �d�e� �c�o�d�e� �d�a�n�s� �c�e�r�t�a�i�n�s� �c�a�s�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �4�.� �L�F�I� �(�L�o�c�a�l� �F�i�l�e� �I�n�c�l�u�s�i�o�n�)�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�E�m�p���c�h�e�r� �l� i�n�c�l�u�s�i�o�n� �d�e� �f�i�c�h�i�e�r�s� �l�o�c�a�u�x� �v�i�a� �d�e�s� �p�a�r�a�m���t�r�e�s�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� ��?�f�i�l�e�=�.�.�/�.�.�/�e�t�c�/�p�a�s�s�w�d��
�
�-� ��?�t�e�m�p�l�a�t�e�=�/�v�a�r�/�w�w�w�/�h�t�m�l�/�i�n�d�e�x�.�p�h�p��
�
�-� ��p�h�p�:�/�/�f�i�l�t�e�r�/�c�o�n�v�e�r�t�.�b�a�s�e�6�4�-�e�n�c�o�d�e�/�r�e�s�o�u�r�c�e�=�i�n�d�e�x�.�p�h�p��
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� �D���t�e�c�t�i�o�n� �d�e� �c�h�e�m�i�n�s� �s�u�s�p�e�c�t�s�
�
�-� �D���t�e�c�t�i�o�n� �d�e� �w�r�a�p�p�e�r�s� �P�H�P� �(��p�h�p�:�/�/��,� ��d�a�t�a�:�/�/��)�
�
�-� �D���t�e�c�t�i�o�n� �d� e�n�c�o�d�a�g�e�s�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�L�F�I� �p�e�u�t� �m�e�n�e�r� ��� �:�
�
�
�
�-� �f�u�i�t�e� �d�e� �c�o�d�e� �s�o�u�r�c�e�
�
�-� �e�x���c�u�t�i�o�n� �d�e� �c�o�d�e� �(�v�i�a� �l�o�g�s�)�
�
�-� �e�s�c�a�l�a�d�e� �d�e� �p�r�i�v�i�l���g�e�s�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �5�.� �R�F�I� �(�R�e�m�o�t�e� �F�i�l�e� �I�n�c�l�u�s�i�o�n�)�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�E�m�p���c�h�e�r� �l� i�n�c�l�u�s�i�o�n� �d�e� �f�i�c�h�i�e�r�s� �d�i�s�t�a�n�t�s�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� ��?�f�i�l�e�=�h�t�t�p�:�/�/�e�v�i�l�.�c�o�m�/�s�h�e�l�l�.�t�x�t��
�
�-� ��?�p�a�g�e�=�h�t�t�p�s�:�/�/�a�t�t�a�c�k�e�r�.�c�o�m�/�b�a�c�k�d�o�o�r�.�p�h�p��
�
�-� ��d�a�t�a�:�/�/�t�e�x�t�/�p�l�a�i�n�;�b�a�s�e�6�4�,�.�.�.��
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� �D���t�e�c�t�i�o�n� �d� U�R�L� �e�x�t�e�r�n�e�s� �d�a�n�s� �d�e�s� �p�a�r�a�m���t�r�e�s� �n�o�n� �a�t�t�e�n�d�u�s�
�
�-� �D���t�e�c�t�i�o�n� �d�e� �p�r�o�t�o�c�o�l�e�s� �(��h�t�t�p�:�/�/��,� ��h�t�t�p�s�:�/�/��,� ��f�t�p�:�/�/��)�
�
�-� �D���t�e�c�t�i�o�n� �d�e� �p�a�y�l�o�a�d�s� �e�n�c�o�d���s�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�R�F�I� �p�e�r�m�e�t� �:�
�
�
�
�-� �e�x���c�u�t�i�o�n� �d�e� �c�o�d�e� �d�i�s�t�a�n�t�
�
�-� �p�r�i�s�e� �d�e� �c�o�n�t�r���l�e� �t�o�t�a�l�e� �d�u� �s�e�r�v�e�u�r�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �6�.� �U�s�e�r�-�A�g�e�n�t� �F�i�l�t�e�r�i�n�g�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�B�l�o�q�u�e�r� �l�e�s� �U�s�e�r�-�A�g�e�n�t�s� �s�u�s�p�e�c�t�s�,� �b�o�t�s�,� �s�c�a�n�n�e�r�s�,� �s�c�r�a�p�e�r�s�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� �U�A� �v�i�d�e�s�
�
�-� �U�A� �c�o�n�n�u�s� �:� ��c�u�r�l��,� ��p�y�t�h�o�n�-�r�e�q�u�e�s�t�s��,� ��s�q�l�m�a�p��,� ��n�m�a�p��
�
�-� �U�A� �f�o�r�g���s� �o�u� �t�r�o�p� �c�o�u�r�t�s�
�
�-� �U�A� �c�o�n�t�e�n�a�n�t� �d�e�s� �p�a�t�t�e�r�n�s� �m�a�l�v�e�i�l�l�a�n�t�s�
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� �D���t�e�c�t�e�u�r�s� �B�a�s�i�c�
�
�-� �D���t�e�c�t�e�u�r�s� �R�e�g�e�x�
�
�-� �D���t�e�c�t�e�u�r�s� �M�o�c�k� �(�t�e�s�t�s�)�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�P�r�o�t���g�e� �c�o�n�t�r�e� �:�
�
�
�
�-� �s�c�a�n�s� �a�u�t�o�m�a�t�i�s���s�
�
�-� �b�r�u�t�e�-�f�o�r�c�e�
�
�-� �s�c�r�a�p�i�n�g� �m�a�s�s�i�f�
�
�-� �r�e�c�o�n�n�a�i�s�s�a�n�c�e� �d� a�t�t�a�q�u�e�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �7�.� �B�o�t� �D�e�t�e�c�t�i�o�n�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�I�d�e�n�t�i�f�i�e�r� �l�e�s� �b�o�t�s� �n�o�n� �a�u�t�o�r�i�s���s�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� �B�o�t�s� �h�e�a�d�l�e�s�s�
�
�-� �B�o�t�s� �d�e� �s�c�r�a�p�i�n�g�
�
�-� �B�o�t�s� �d�e� �b�r�u�t�e�-�f�o�r�c�e�
�
�-� �B�o�t�s� �d� ��n�u�m���r�a�t�i�o�n�
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� ��d�e�t�e�c�t�(�)�� ��! �d���t�e�c�t�i�o�n� �s�i�m�p�l�e�
�
�-� ��i�s�B�o�t�(�)�� ��! �c�l�a�s�s�i�f�i�c�a�t�i�o�n� �a�v�a�n�c���e�
�
�-� �A�n�a�l�y�s�e� �U�A� �+� �h�e�u�r�i�s�t�i�q�u�e�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�L�e�s� �b�o�t�s� �r�e�p�r���s�e�n�t�e�n�t� ���8�0�%� �d�u� �t�r�a�f�i�c� �m�a�l�v�e�i�l�l�a�n�t���.�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �8�.� �G�e�o�I�P� �F�i�l�t�e�r�i�n�g�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�B�l�o�q�u�e�r� �l�e�s� �p�a�y�s� �n�o�n� �a�u�t�o�r�i�s���s�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� �R�e�q�u���t�e�s� �p�r�o�v�e�n�a�n�t� �d�e� �p�a�y�s� �b�l�a�c�k�l�i�s�t���s�
�
�-� �R�e�q�u���t�e�s� �s�a�n�s� �I�P� �v�a�l�i�d�e�
�
�-� �I�P� �a�n�o�n�y�m�i�s���e�s� �(�s�e�l�o�n� �p�r�o�v�i�d�e�r�)�
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� �P�r�o�v�i�d�e�r�s� �:� �M�o�c�k�,� �M�a�x�M�i�n�d�,� �I�P�2�L�o�c�a�t�i�o�n�
�
�-� �L�o�o�k�u�p� �I�P� ��! �p�a�y�s�
�
�-� �C�o�m�p�a�r�a�i�s�o�n� �a�v�e�c� �l�i�s�t�e� �n�o�i�r�e�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�P�e�r�m�e�t� �:�
�
�
�
�-� �r���d�u�c�t�i�o�n� �d�u� �b�r�u�i�t�
�
�-� �b�l�o�c�a�g�e� �d�e� �r���g�i�o�n�s� ��� �r�i�s�q�u�e�
�
�-� �c�o�n�f�o�r�m�i�t��� �l���g�a�l�e�
�
�
�
�-�-�-�
�
�
�
�#�#� �=��� �9�.� �A�S�N� �F�i�l�t�e�r�i�n�g�
�
�
�
�#�#�#� �<د� �O�b�j�e�c�t�i�f�
�
�
�
�B�l�o�q�u�e�r� �d�e�s� �f�o�u�r�n�i�s�s�e�u�r�s� �r���s�e�a�u� �s�p���c�i�f�i�q�u�e�s� �(�F�A�I�,� �d�a�t�a�c�e�n�t�e�r�s�,� �V�P�N�)�.�
�
�
�
�#�#�#� �=��� �A�t�t�a�q�u�e�s� �d���t�e�c�t���e�s�
�
�
�
�-� �R�e�q�u���t�e�s� �p�r�o�v�e�n�a�n�t� �d�e� �d�a�t�a�c�e�n�t�e�r�s� �(�A�W�S�,� �O�V�H�,� �G�C�P�)�
�
�-� �R�e�q�u���t�e�s� �p�r�o�v�e�n�a�n�t� �d� A�S�N�s� �m�a�l�v�e�i�l�l�a�n�t�s�
�
�-� �V�P�N� �/� �p�r�o�x�i�e�s� �c�o�n�n�u�s�
�
�
�
�#�#�#� �>��� �T�e�c�h�n�i�q�u�e�s� �u�t�i�l�i�s���e�s�
�
�
�
�-� �P�r�o�v�i�d�e�r�s� �A�S�N� �:� �M�o�c�k�,� �M�a�x�M�i�n�d�,� �I�P�2�L�o�c�a�t�i�o�n�
�
�-� �L�o�o�k�u�p� �I�P� ��! �A�S�N�
�
�-� �C�o�m�p�a�r�a�i�s�o�n� �a�v�e�c� �l�i�s�t�e� �n�o�i�r�e�
�
�
�
�#�#�#� �P+ �P�o�u�r�q�u�o�i� �c� e�s�t� �i�m�p�o�r�t�a�n�t�
�
�
�
�P�e�r�m�e�t� �:�
�
�
�
�-� �b�l�o�c�a�g�e� �d�e�s� �V�P�N�
�
�-� �b�l�o�c�a�g�e� �d�e�s� �s�e�r�v�e�u�r�s� �d� a�t�t�a�q�u�e�
�
�-� �r���d�u�c�t�i�o�n� �d�e�s� �f�a�u�x� �p�o�s�i�t�i�f�s�
�
�
�
�-�-�-�
�
�
�
�#� �<؉� �R���s�u�m���
�
�
�
�C�e� �W�A�F� �c�o�u�v�r�e� ���t�o�u�t�e�s� �l�e�s� �a�t�t�a�q�u�e�s� �O�W�A�S�P� �T�o�p� �1�0��� �:�
�
�
�
�-� �I�n�j�e�c�t�i�o�n�
�
�-� �X�S�S�
�
�-� �P�a�t�h� �T�r�a�v�e�r�s�a�l�
�
�-� �L�F�I� �/� �R�F�I�
�
�-� �B�o�t�s�
�
�-� �R�e�c�o�n�n�a�i�s�s�a�n�c�e�
�
�-� �A�b�u�s�e� �d�e� �p�r�o�t�o�c�o�l�e�s�
�
�-� �G���o�l�o�c�a�l�i�s�a�t�i�o�n� �/� �A�S�N�
�
�
�
�I�l� �e�s�t� ���m�o�d�u�l�a�i�r�e���,� ���t�e�s�t�����,� ���t�y�p�����,� ���e�x�t�e�n�s�i�b�l�e���,� �e�t� ���p�r�o�d�u�c�t�i�o�n� r�e�a�d�y���.�
�
�
