# Support

This project is open sourced as an ongoing research project to facilitate wider collaboration.

## How to file issues and get help  

This project uses GitHub Issues to track bugs and feature requests. Please search the existing 
issues before filing new issues to avoid duplicates.  For new issues, file your bug or 
feature request as a new Issue.

For help and questions about using this project, please use the GitHub Discussions tab.

## Microsoft Support Policy  

Support for this project is limited to the resources listed above.
