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

decentravault

v0.2.5

Published

Encrypted decentralized file storage — one API key, zero complexity, maximum security.

Readme

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