private bool OsProcess(NameValueCollection headers, HttpBrowserCapabilities browserCaps)
 {
     IDictionary capabilities = browserCaps.Capabilities;
     string target = headers["UA-OS"];
     RegexWorker worker = new RegexWorker(browserCaps);
     if (!worker.ProcessRegex(target, "(?'os'.+)"))
     {
         return false;
     }
     browserCaps.DisableOptimizedCacheKey();
     capabilities["platform"] = worker["${os}"];
     this.OSProcessGateways(headers, browserCaps);
     bool ignoreApplicationBrowsers = false;
     this.OSProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
     return true;
 }
 public override void DisableOptimizedCacheKey()
 {
     w.DisableOptimizedCacheKey();
 }
 private bool MonoProcess(NameValueCollection headers, HttpBrowserCapabilities browserCaps)
 {
     IDictionary capabilities = browserCaps.Capabilities;
     string str = headers["UA-COLOR"];
     if (string.IsNullOrEmpty(str))
     {
         return false;
     }
     str = headers["UA-COLOR"];
     RegexWorker worker = new RegexWorker(browserCaps);
     if (!worker.ProcessRegex(str, @"mono(?'colorDepth'\d+)"))
     {
         return false;
     }
     browserCaps.DisableOptimizedCacheKey();
     capabilities["isColor"] = "false";
     capabilities["screenBitDepth"] = worker["${colorDepth}"];
     this.MonoProcessGateways(headers, browserCaps);
     bool ignoreApplicationBrowsers = false;
     this.MonoProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
     return true;
 }
 private bool DefaultXhtmlmpProcess(NameValueCollection headers, HttpBrowserCapabilities browserCaps)
 {
     IDictionary capabilities = browserCaps.Capabilities;
     string target = headers["Accept"];
     RegexWorker worker = new RegexWorker(browserCaps);
     if (!worker.ProcessRegex(target, @"application/xhtml\+xml; profile|application/vnd\.wap\.xhtml\+xml"))
     {
         return false;
     }
     target = headers["Accept"];
     if (worker.ProcessRegex(target, "text/hdml"))
     {
         return false;
     }
     target = headers["Accept"];
     if (worker.ProcessRegex(target, @"text/vnd\.wap\.wml"))
     {
         return false;
     }
     browserCaps.DisableOptimizedCacheKey();
     capabilities["preferredRenderingMime"] = "text/html";
     capabilities["preferredRenderingType"] = "xhtml-mp";
     browserCaps.HtmlTextWriter = "System.Web.UI.XhtmlTextWriter";
     bool ignoreApplicationBrowsers = false;
     this.DefaultXhtmlmpProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
     return true;
 }
 private bool VoiceProcess(NameValueCollection headers, HttpBrowserCapabilities browserCaps)
 {
     IDictionary capabilities = browserCaps.Capabilities;
     string str = headers["UA-VOICE"];
     if (string.IsNullOrEmpty(str))
     {
         return false;
     }
     str = headers["UA-VOICE"];
     RegexWorker worker = new RegexWorker(browserCaps);
     if (!worker.ProcessRegex(str, "(?i:TRUE)"))
     {
         return false;
     }
     browserCaps.DisableOptimizedCacheKey();
     capabilities["canInitiateVoiceCall"] = "true";
     this.VoiceProcessGateways(headers, browserCaps);
     bool ignoreApplicationBrowsers = false;
     this.VoiceProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
     return true;
 }
 private bool PixelsProcess(NameValueCollection headers, HttpBrowserCapabilities browserCaps)
 {
     IDictionary capabilities = browserCaps.Capabilities;
     string str = headers["UA-PIXELS"];
     if (string.IsNullOrEmpty(str))
     {
         return false;
     }
     str = headers["UA-PIXELS"];
     RegexWorker worker = new RegexWorker(browserCaps);
     if (!worker.ProcessRegex(str, @"(?'screenWidth'\d+)x(?'screenHeight'\d+)"))
     {
         return false;
     }
     browserCaps.DisableOptimizedCacheKey();
     capabilities["screenPixelsHeight"] = worker["${screenHeight}"];
     capabilities["screenPixelsWidth"] = worker["${screenWidth}"];
     this.PixelsProcessGateways(headers, browserCaps);
     bool ignoreApplicationBrowsers = false;
     this.PixelsProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
     return true;
 }
 public override void DisableOptimizedCacheKey()
 {
     _browser.DisableOptimizedCacheKey();
 }