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

ipa-core

v1.3.7

Published

Language-agnostic IPA core with features

Downloads

134

Readme

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