THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
For Microsoft vscode-go
 
This project incorporates material from the projects listed below.  The original copyright notice 
and the license under which Microsoft received such material are set out below. Microsoft reserves 
all other rights not expressly granted, whether by implication, estoppel or otherwise.


1. json-rpc2 version 1.0.2 (https://github.com/pocesar/node-jsonrpc2)

The MIT License

       Copyright (C) 2009 Eric Florenzano <eflorenzano.com/aboutme/> and
                          Ryan Tomayko <tomayko.com/about>
 
Permission  is  hereby granted, free of charge, to any person ob-
taining a copy of  this  software  and  associated  documentation
files  (the "Software"), to deal in the Software without restric-
tion, including without limitation the rights to use, copy, modi-
fy, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is  fur-
nished to do so, subject to the following conditions:
 
The  above  copyright  notice and this permission notice shall be
included in all copies or substantial portions of the Software.
 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF  ANY  KIND,
EXPRESS  OR  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE  AND  NONIN-
FRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER  IN  AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN  THE
SOFTWARE.

