anchor.diff:  "java.net.HttpURLConnection,
   java.net.URL,
   java.net.URLEncoder,
  +java.net.URLDecoder,
   java.io.BufferedReader,
   java.io.ByteArrayOutputStream,
   java.io.DataInputStream,
  
positive.code: 
          out.clear();
          out = pageContext.pushBody();
  
          if (uri == null || uri.isEmpty()){
              response.sendError(500,"This operation does not support empty parameters.");
              return;
          }
  
          String[] allowedReferers = getConfig().getAllowedReferers();
          if (allowedReferers != null && allowedReferers.length > 0 && request.getHeader("referer") != null){
              setReferer(request.getHeader("referer")); //replace PROXY_REFERER with real proxy
  
negative.code: 
      public ServerUrl getConfigServerUrl(String uri) {
      	//if either uri or proxy.config don't end in a slash, lets add them (just for comparing)
          String slashedConfigUrl = null;    
          String slashedUri = uri;        
      	
      	if (!uri.substring(uri.length()-1).equalsIgnoreCase("/"))
      		slashedUri = uri.indexOf("?") == -1 ? uri + "/" : uri.substring(0, uri.indexOf("?")) + "/" + uri.substring(uri.indexOf("?"), uri.length());
  
          for (ServerUrl su : serverUrls) {
          	if(!(su.getUrl().substring(su.getUrl().length()-1).equals("/"))) 
          		slashedConfigUrl = su.getUrl() + "/";
          		
              if (
                  su.getMatchAll() && 
                  (isUrlPrefixMatch(su.getUrl(), uri) && (isUrlPrefixMatch(slashedConfigUrl, slashedUri)))
  				)
  				
                  return su;
          }
          if (this.mustMatch)
          	return null; //return null then send 403 forbidden
          else
          	return new ServerUrl(uri); //if mustMatch is false send the server url back that is the same the uri to pass thru     
      }
  