npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@j3r3mcdev/auth-service

v1.3.0

Published

Authentication utilities for Node/NestJS (hashing, tokens, validators, sanitization).

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��.� � �