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