code: public function parseQueryString(Uri $uri): IImmutableDictionary
      {
          if (($queryString = $uri->getQueryString()) === null) {
              return new ImmutableHashTable([]);
          }
  
          if (!isset($this->parsedQueryStringCache[$queryString])) {
              $parsedQueryString = [];
              parse_str($queryString, $parsedQueryString);
              $kvps = [];
  
              foreach ($parsedQueryString as $key => $value) {
                  $kvps[] = new KeyValuePair($key, $value);
              }
  
              $this->parsedQueryStringCache[$queryString] = new ImmutableHashTable($kvps);
          }
  
          return $this->parsedQueryStringCache[$queryString];
      }
docs: Parses a URI's query string into a collection
  
  @param Uri $uri The URI to parse
  @return IImmutableDictionary The parsed query string