{ "log": { "version": "1.2", "creator": { "name": "WebInspector", "version": "537.36" }, "pages": [ { "startedDateTime": "2021-02-05T13:29:57.183Z", "id": "page_3", "title": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "pageTimings": { "onContentLoad": 3645.4480000029434, "onLoad": 4258.820000002743 } } ], "entries": [ { "_initiator": { "type": "other" }, "_priority": "VeryHigh", "_resourceType": "document", "cache": {}, "connection": "244374", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Host", "value": "halo.bungie.net" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Upgrade-Insecure-Requests", "value": "1" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" }, { "name": "Accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-AU,en;q=0.9" }, { "name": "Cookie", "value": "__cfduid=df7c32cc9b1a9f9c4fc6ccfda6582dc251611803782; ibbblob=dtLastVisit=2/3/2021 10:21:01 PM&sLastURL=/Stats/Reach/FileDetails.aspx?fid=27007958&SubjectText=&BodyText=; BlamDotNet=EDM=2107048267" }, { "name": "dnt", "value": "1" } ], "queryString": [ { "name": "player", "value": "test" } ], "cookies": [ { "name": "__cfduid", "value": "df7c32cc9b1a9f9c4fc6ccfda6582dc251611803782", "expires": null, "httpOnly": false, "secure": false }, { "name": "ibbblob", "value": "dtLastVisit=2/3/2021 10:21:01 PM&sLastURL=/Stats/Reach/FileDetails.aspx?fid=27007958&SubjectText=&BodyText=", "expires": null, "httpOnly": false, "secure": false }, { "name": "BlamDotNet", "value": "EDM=2107048267", "expires": null, "httpOnly": false, "secure": false } ], "headersSize": 682, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:30:00 GMT" }, { "name": "Content-Type", "value": "text/html; charset=utf-8" }, { "name": "Content-Length", "value": "8445" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Cache-Control", "value": "no-cache, no-store" }, { "name": "Pragma", "value": "no-cache" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Expires", "value": "-1" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-AspNet-Version", "value": "4.0.30319" }, { "name": "Set-Cookie", "value": "BlamDotNet=EDM=1910558835; domain=bungie.net; path=/" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "CF-Cache-Status", "value": "DYNAMIC" }, { "name": "cf-request-id", "value": "0813fba4f9000016ad9c8f3000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61ccfbb4cfc716ad-SYD" }, { "name": "X-DNS-Prefetch-Control", "value": "off" } ], "cookies": [ { "name": "BlamDotNet", "value": "EDM=1910558835", "path": "/", "domain": "bungie.net", "expires": null, "httpOnly": false, "secure": false } ], "content": { "size": 30621, "mimeType": "text/html", "compression": 22205, "text": "\r\n\r\n\r\n\r\n\r\n\tBungie.net : Reach : Service Record\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n\n\n\r\n\r\n\t \r\n \r\n \r\n\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n
\r\n\t\t\r\n\r\n\t\t\r\n\t\t
\r\n\t\r\n
\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\r\n\t\t\t
\r\n\t\r\n\r\n\t
\r\n\t\t\r\n
\r\n\t\t\t
\r\n \r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
  • Don't have a Windows Live™ ID?
  • \r\n\t\t\t\t
  • \r\n\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
      \t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
  • \r\n\t\t\t
\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\t\r\n\r\n
\r\n
\r\n\t
\r\n \r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n\t
\r\n

www.bungie.net | halo.bungie.net | bungiestore.com

\r\n \r\n
\r\n
\r\n \r\n\t\r\n\t
    \r\n\t\t\r\n\t\t\t\t
  • \r\n\t\t\t\t\tProjects\r\n\t\t\t\t\t
      \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t

      Halo Universe

      \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t

      Myth Universe

      \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t

      Marathon Universe

      \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t

      Bungie Aerospace

      \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t

      Crimson: Steam Pirates

      \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n
    \r\n\t\t\t\t
  • \r\n\t\t\t\r\n\t\t\t\t
  • \r\n\t\t\t\t\tStats\r\n\t\t\t\t\t
      \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t

      Halo: Reach Stats

      \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t

      Halo 3 / ODST Stats

      \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n
    \r\n\t\t\t\t
  • \r\n\t\t\t\r\n\t\t\t\t
  • \r\n\t\t\t\t\tCommunity\r\n\t\t\t\t\t
      \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t

      News Archives

      \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n
    \r\n\t\t\t\t
  • \r\n\t\t\t\r\n\t \r\n\t
  • \r\n
    \"My
    \r\n\t
  • \r\n\t
\r\n
\r\n
\r\n\t\r\n\r\n
\r\n
The data on this page is no longer being updated. The last update was 03/31/2012. For live Halo data, visit halo.xbox.com
\r\n\t\t\t
\r\n \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n \r\n
\r\n\r\n
\r\n\t\r\n\t\r\n \r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

Looking For This?

\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\tFile Search\r\n\t\t\t\t\t\t\t\t\t

    Find screenshots, maps,films gametypes and render videos!

    \r\n\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\tPlaylists\r\n\t\t\t\t\t\t\t\t\t

    Learn about current and upcoming playlists

    \r\n\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\tChallenges\r\n\t\t\t\t\t\t\t\t\t

    View current weekly and daily challenges.

    \r\n\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n \r\n\r\n
\r\n
\r\n\t
\r\n
\r\n\t\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\t\t\t\t\t \"Error\r\n

There was an error loading the service record. Please try again later.

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n\t\t\r\n\r\n \r\n \r\n
\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\t\t\t\t \r\n\r\n\t\r\n\r\n\r\n\t\t\t\t
\r\n\t\t\t\t \r\n
\r\n\t\"ESRB\r\n
\r\n

© 2021 Bungie, Inc. All rights reserved.

\r\n\t \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n
\r\n\r\n\r\n" }, "redirectURL": "", "headersSize": 527, "bodySize": 8416, "_transferSize": 8943, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:29:57.178Z", "time": 3095.197000002372, "timings": { "blocked": 8.30699999980675, "dns": -1, "ssl": -1, "connect": -1, "send": 0.1339999999999999, "wait": 2923.347000001882, "receive": 163.4090000006836, "_blocked_queueing": 5.479999999806751 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 12 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "574", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/javascript/rad3.js?ver=2.0.4777.31696", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "ver", "value": "2.0.4777.31696" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Age", "value": "390" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "1759" }, { "name": "cf-request-id", "value": "0813ef142a0000fd3afd2ea000000001" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:48:06 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "ETag", "value": "\"0f2a92bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61cce799db52fd3a-SYD" } ], "cookies": [], "content": { "size": 4994, "mimeType": "application/javascript", "text": "/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\n// Standard get self reference for a rad window\r\nfunction GetRadWindow() {\r\n\tvar oWindow = null;\r\n\tif (window.radWindow) oWindow = window.radWindow;\r\n\telse if (window.frameElement && window.frameElement.radWindow) oWindow = window.frameElement.radWindow;\r\n\treturn oWindow;\r\n}\r\n\r\n// Standard reload call on modal window close - reload parent to update state with modal dialog changes. It forces a reload with .reload(true).\r\nfunction ModalWindow_OnClientClose(radWindow) {\r\n\tradWindow.BrowserWindow.location.href = radWindow.BrowserWindow.location.href;\r\n}\r\n\r\nfunction SelfWindow_Redirect(url) {\r\n GetRadWindow().BrowserWindow.location.replace(url);\r\n}\r\n\r\n// Self close rad window\r\nfunction SelfCloseRadWindow() {\r\n\tvar oWindow = GetRadWindow();\r\n\toWindow.close();\r\n}\r\n\r\n// shows a web banhammer utility window.\r\nfunction showWebBanHammerWindow(url,windowName,offsetElementId) {\r\n\tvar oManager = GetRadWindowManager();\r\n\tvar oWindow = oManager.getWindowByName(windowName);\r\n\tif (!oWindow.isClosed())\r\n\t\toWindow.close();\r\n\toWindow.setUrl(url);\r\n\toWindow.set_status(url);\r\n\toWindow.set_offsetElementID(offsetElementId);\r\n\toWindow.show();\r\n\treturn false;\r\n}\r\n\r\n//disable stupid keyboard shortcuts in an editor \r\nfunction DisableBadKeyboardShortcuts(editor, args) {\r\n\tif (args.get_commandName) {\r\n\t\tvar cn = args.get_commandName();\r\n\t\tif (cn == \"Help\") {\r\n\t\t\targs.set_cancel(true);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction ShowTopStoryPreview() {\r\n\tvar oWindow = GetRadWindow();\r\n\tdocument.getElementById('topStoryPreviewDiv').innerHTML = unescape(oWindow.TopStory);\r\n}\r\n\r\nfunction ShowNewsPreviewFirehose() {\r\n var oWindow = GetRadWindow();\r\n document.getElementById('topStoryPreviewHeading').innerHTML = unescape(oWindow.HeadingText);\r\n document.getElementById('topStoryPreviewDiv').innerHTML = \"\" + unescape(oWindow.SummaryText) + \"


\" + unescape(oWindow.FullText);\r\n if (oWindow.TopIcon != '')\r\n $telerik.$(\".colLast.newsStoryHolder.topNewsIconMarker\").css(\"background-image\", \"url(\" + unescape(oWindow.TopIcon) + \")\");\r\n if (oWindow.SecondaryImage != '') \r\n $telerik.$(\".secondaryimage\").css(\"background-image\",\"url(\" + (oWindow.SecondaryImage) + \")\");\r\n}\r\n\r\nfunction openBanWindow(userToBan,loginToBan,groupPath,urlOfBan) {\r\n\tGetRadWindowManager().open(groupPath + \"/Forums/BanDialog.aspx?uid=\" + userToBan + \"&login=\" + loginToBan + \"&url=\" + urlOfBan, \"BanWindow\");\r\n\treturn false;\r\n}\r\n\r\nfunction openFileSetAddWindow(fileID, isGallery, windowClientId) {\r\n\tvar fileWindow = $find(windowClientId);\r\n\tfileWindow.setUrl(\"/Stats/Halo3/FileSetWindowUI.aspx?h3fileid=\" + fileID + \"&isGallery=\" + isGallery);\r\n\tfileWindow.show();\r\n\treturn false;\r\n}\r\n\r\nfunction openFileSetAddWindowReach(fileID, windowClientId) {\r\n var fileWindow = $find(windowClientId);\r\n fileWindow.setUrl(\"/Stats/Reach/FileSetWindowUI.aspx?fid=\" + fileID);\r\n fileWindow.show();\r\n return false;\r\n}\r\n\r\nfunction openRenderToVideoWindow(fileID, windowClientId) {\r\n var fileWindow = $find(windowClientId);\r\n fileWindow.setUrl(\"/Stats/Halo3/RenderToVideoWindowUI.aspx?h3fileid=\" + fileID);\r\n fileWindow.show();\r\n return false;\r\n}\r\n\r\n// make sure the user wants to go to the bungie store when clicked on in the nav.\r\nfunction OnBungieStoreNavItemClickingHandler(sender, eventArgs) {\r\n\tif (eventArgs.get_item().get_value() == \"BungieStore\") {\r\n\t\treturn confirm(\"This will take you to the Bungie Store, an external site. Are you sure you wish to navigate away from bungie.net?\");\r\n\t}\r\n\telse {\r\n\t\treturn true;\r\n\t}\r\n}\r\n\r\n// forcibly scroll the page to 0,0\r\nfunction scrollToTop() {\r\n\twindow.scrollTo(0,0);\r\n}\r\n\r\nfunction tagSearchBox_OnClientDropDownOpeningHandler(senderClientID) {\r\n\tvar comboBox = $find(senderClientID);\r\n\tvar comboBoxValue = comboBox.get_text();\r\n\tif (comboBoxValue.length > 2 && comboBoxValue.charAt(comboBoxValue.length - 1) != ';')\r\n\t\tcomboBox.set_text(comboBoxValue + ';');\r\n}\r\n\r\nfunction radEditorLimiterDisplay(editorClientId, counterFieldId, maxLimit) {\r\n\t\r\n if ( editorClientId && counterFieldId != null && counterFieldId != '' && (maxLimit > 0)) {\r\n\t\t \r\n\t\tvar editor = $find(editorClientId);\r\n\t\tvar counterField = $get(counterFieldId);\r\n\t\t \r\n\t\tif (editor && counterField) {\r\n\t\t \r\n\t\t\tvar content = editor.get_html(true);\r\n\t\t \r\n\t\t if (content != null && content.length > maxLimit)\r\n\t\t\t\tcounterField.innerHTML = '' + (content.length - maxLimit) + ' characters over limit';\r\n\t\t\telse\r\n\t\t\t counterField.innerHTML = (maxLimit - content.length) + ' characters remaining';\r\n\t\t}\r\n\t}\r\n\t\r\n}" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.302Z", "time": 0.08499999967170879, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.07300000288523734, "receive": 0.011999996786471456, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 15 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "1639", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/javascript/cookie.js?ver=2.0.4777.31696", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "ver", "value": "2.0.4777.31696" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Age", "value": "390" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "932" }, { "name": "cf-request-id", "value": "0813ef15a3000016d50d1ce000000001" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:48:04 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "ETag", "value": "\"0e2f890bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61cce79c3c5716d5-SYD" } ], "cookies": [], "content": { "size": 2294, "mimeType": "application/javascript", "text": "/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\n// name - name of the desired cookie, creates a new cookie.\r\n// value - the value the cookie is going to hold.\r\nfunction setCookie(name, value)\r\n{\r\n document.cookie= name + \"=\" + escape(value) + \";path=/\";\r\n}\r\n\r\nfunction setCookieWithExpires(name, value, expires) {\r\n\tdocument.cookie = name + \"=\" + escape(value) + \";path=/;domain=\" + domain + \";expires=\" + expires.toUTCString();\r\n}\r\n\r\n// name - name of the desired cookie, returns null if name is not a valid cookie.\r\nfunction getCookie(name) {\r\n\tvar results = document.cookie.match(name + '=(.*?)(;|$)');\r\n\tif (results)\r\n\t\treturn (unescape(results[1]));\r\n\telse\r\n\t\treturn null;\r\n}\r\n\r\n// name - name of the cookie to be deleted, deletes the cookie so it is no longer valid.\r\nfunction deleteCookie(name)\r\n{\r\n if (getCookie(name))\r\n {\r\n\t\tvar eDate = new Date();\r\n\t\teDate.setTime(eDate.getTime() - 1);\r\n document.cookie = name + \"=\" + \";path=/;expires=\" + eDate.toUTCString();\r\n }\r\n}\r\n\r\n// Assigns the correct message to Login Welcome message.\r\nfunction writeDisplayNameFromCookie() {\r\n\tvar dName = getCookie(\"BungieDisplayName\");\r\n\tif (dName == null) {\r\n\t\tdocument.write(\"Welcome!\");\r\n\t}\r\n\telse {\r\n\t\tdocument.write(dName);\r\n\t}\r\n\treturn true;\r\n}\r\n\r\n// updates the dash-live cookie with friends and message strings. Valid values for each are any postive integer (as a string), and the value '-' for friends.\r\nfunction updateDashLiveCookie(friends,messages,gt) {\r\n\tvar dashLiveArray = new Array(3);\r\n\tdashLiveArray[0] = friends;\r\n\tdashLiveArray[1] = messages;\r\n\tdashLiveArray[2] = gt;\r\n\tvar expires = new Date();\r\n\texpires.setTime(expires.getTime() + (5 * 60 * 1000)); // 5 minutes\r\n\tsetCookieWithExpiresAndDomain('dash-live',dashLiveArray.join('&'),expires);\r\n}\r\n\r\nfunction showFriends()\r\n{\r\n window.open('/Stats/LiveFriends.aspx', 'FriendsList', 'scrollbars, resizable, width=430, height=520');\r\n return false;\r\n}\r\n" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.302Z", "time": 0.07800000457791612, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.06199999916134402, "receive": 0.016000005416572094, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 18 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "1643", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/javascript/utility.js?ver=2.0.4777.31696", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "ver", "value": "2.0.4777.31696" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Age", "value": "389" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "4208" }, { "name": "cf-request-id", "value": "0813ef15ac0000fe645725e000000001" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:48:06 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "ETag", "value": "\"0f2a92bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61cce79c483afe64-SYD" } ], "cookies": [], "content": { "size": 17953, "mimeType": "application/javascript", "text": "/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nvar counterField;\r\nvar fieldToLimit;\r\n\r\nfunction delegate(instance, method) {\r\n return function() {\r\n return method.apply(instance, arguments);\r\n }\r\n}\r\n\r\n// Contains bungie.net 2007 utility functions \r\nfunction bodyVisiblity(bodyElementId) {\r\n\tif (document.getElementById && bodyElementId)\r\n\t\tdocument.getElementById(bodyElementId).className = 'loaded';\r\n}\r\n\r\n\r\n// targetDate is a datestring (not milliseconds), the others are the elements of each component to update.\r\nfunction genericCountdownUpdate(targetDate, dayClientId, hourClientId, minuteClientId, secClientId, zeroClientId, counterClientId) {\r\n\tvar currentDate = new Date();\r\n\tcurrentDate.setMinutes(currentDate.getMinutes() + currentDate.getTimezoneOffset());\r\n\tvar timeLeft = (new Date(targetDate).getTime()) - currentDate.getTime();\r\n\t\r\n\tif (timeLeft <= 0) {\r\n\t\tvar zeroMessage = document.getElementById(zeroClientId);\r\n\t\tvar counterEl = document.getElementById(counterClientId);\r\n\t\tif (zeroMessage)\r\n\t\tzeroMessage.style.display = 'inline';\r\n\t\tif (counterEl)\r\n\t\tcounterEl.style.display = 'none';\r\n\t}\r\n\telse {\r\n\t\tvar dayEl = document.getElementById(dayClientId);\r\n\t\tvar hourEl = document.getElementById(hourClientId);\r\n\t\tvar minEl = document.getElementById(minuteClientId);\r\n\t\tvar secEl = document.getElementById(secClientId);\r\n\r\n\t\tvar days = Math.floor(timeLeft / 86400000);\r\n\t\ttimeLeft = timeLeft - (days * 86400000);\r\n\t\tvar hours = Math.floor(timeLeft / 3600000);\r\n\t\ttimeLeft = timeLeft - (hours * 3600000);\r\n\t\tvar minutes = Math.floor(timeLeft / 1000 / 60);\r\n\t\ttimeLeft = timeLeft - (minutes * 60000);\r\n\t\tvar seconds = Math.floor(timeLeft / 1000);\r\n\t \r\n\t if (days > 9){\r\n\t\tdayEl.innerHTML = days; // days\r\n\t\t} else{\r\n\t\tdayEl.innerHTML = '0' + days; // days\r\n\t\t}\r\n\t\tif (hours > 9){\r\n\t\thourEl.innerHTML = hours; // hours\r\n\t\t} else {\r\n\t\thourEl.innerHTML = '0' + hours; // hours\r\n\t\t}\r\n\t\t\r\n\t\tif (minutes > 9){\r\n\t\tminEl.innerHTML = minutes; // minutes\r\n\t\t} else {\r\n\t\tminEl.innerHTML = '0' + minutes; // minutes\r\n\t\t}\r\n\t\t\r\n\t\tif (seconds > 9){\r\n\t\tsecEl.innerHTML = seconds; // seconds.\r\n\t\t} else {\r\n\t\t secEl.innerHTML = '0' + seconds; // seconds\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\nfunction randomizeErrorImage(imageToRandomizeId) {\r\n\tvar imgSrcArray = new Array(\r\n\t\t/* slide = 0 */\"/images/errors/gonefishing.jpg\",\r\n\t\t/* slide = 1 */\"/images/errors/blessthismess.jpg\",\r\n\t\t/* slide = 2 */\"/images/errors/hegemony.jpg\"\r\n\t);\r\n\tif (document.getElementById && imageToRandomizeId) {\r\n\t\trandomNumber = Math.round(Math.random()*(imgSrcArray.length-1));\r\n\t\tdocument.getElementById(imageToRandomizeId).src = imgSrcArray[randomNumber];\r\n\t}\r\n}\r\n\r\nfunction toggleTreeState(titleElementId, repeaterElementId, titleStateOne, titleStateTwo) {\r\n\tif (document.getElementById && titleElementId && repeaterElementId && titleStateOne && titleStateTwo) {\r\n\t\tvar repeater = document.getElementById(repeaterElementId);\r\n\t\tvar title = document.getElementById(titleElementId);\r\n\t\tif (repeater && title) {\r\n\t\t\trepeater.style.display = (repeater.style.display == 'none') ? 'block' : 'none';\r\n\t\t\ttitle.className = (title.className == titleStateOne) ? titleStateTwo : titleStateOne;\r\n\t\t}\r\n\t}\r\n\treturn;\r\n}\r\n\r\nfunction isiPhone(userAgent) { \r\n var agent = userAgent || this.getAgent(); \r\n return agent.match(/iPhone/i); \r\n}\r\n\r\nfunction characterLimiterDisplay(evt) {\r\n if (forumCounterField == null)\r\n forumCounterField = $get('bodyCharacterCountDisplay');\r\n clearTimeout(forumCounterTimer);\r\n forumCounterTimer = setTimeout(function() {\r\n if (fieldToLimit.value.length > forumBodyMaxLimit)\r\n forumCounterField.innerHTML = '' + (fieldToLimit.value.length - forumBodyMaxLimit) + ' characters over limit';\r\n else\r\n forumCounterField.innerHTML = (forumBodyMaxLimit - fieldToLimit.value.length) + ' characters remaining';\r\n }, 100);\r\n}\r\n\r\nfunction openAssetPopupWindow(pageUrl) {\r\n\twindow.open(pageUrl,'_blank', 'height=595,left=75,location=1,resizable=1,toolbar=0,top=100,width=730,scrollbars=1',false);\r\n}\r\n\r\nfunction openScreenshotPopupWindow(pageUrl) {\r\n\t var playerScreenshotPopup = window.open(pageUrl,'playerScreenshotsPopup', 'height=600,left=75,location=1,resizable=1,toolbar=0,top=100,width=595,scrollbars=0,status=1',false);\r\n\t playerScreenshotPopup.focus();\r\n}\r\n\r\nfunction gameOpen(game)\r\n{\r\n\twindow.open('/Stats/Halo2WebMaps/richgame.aspx?g=' + game, 'GameDetails', 'scrollbars, width=870, height=868');\r\n\treturn false;\r\n}\r\n\r\nfunction gameOpenH3(game)\r\n{\r\n\twindow.open('/Stats/WebMaps/richgameH3.aspx?g=' + game, 'GameDetails', 'scrollbars, width=870, height=868');\r\n\treturn false;\r\n}\r\n\r\nfunction toggleAll(id)\r\n{\r\n\t//alert(\"This document contains: \" + document.forms.length + \" form(s).\")\r\n var selectAll = document.getElementById(id);\r\n\tif (document.forms[0])\r\n\t{\r\n\t\t//alert(\"This form contains: \" + document.forms[0].elements.length + \" element(s).\")\r\n \r\n\t\tvar element;\r\n\t\tvar length = document.forms[0].elements.length;\r\n\t\tfor (var i = 0; i < length; i++)\r\n\t\t{\r\n\t\t element = document.forms[0].elements[i];\r\n\t\t if (element.type == \"checkbox\" && element.name != id)\r\n\t\t {\r\n\t\t //alert('element changed: ' + element.name);\r\n\t\t if (selectAll && selectAll.checked == true)\r\n\t\t {\r\n\t\t element.checked = true;\r\n\t\t }\r\n\t\t else\r\n\t\t {\r\n\t\t element.checked = false;\r\n\t\t } \r\n\t\t }\r\n\t\t}\r\n\t}\r\n}\r\n\t\r\nfunction unsetAll(id)\r\n{\r\n //alert(document.getElementById(id));\r\n document.getElementById(id).checked = false;\r\n}\r\n\r\nfunction ToggleOverLay(id){\r\n\tif(document.getElementById){\r\n\t\tvar cId = id.toString();\r\n\t\tif (id < 10) {\r\n\t\t\tcId = '0' + cId;\r\n\t\t}\r\n\t\tvar elem = document.getElementById('ctl00_MainContentArea_bnetpgd_RadPanelbar1_p2_p0_vs_ctl' + cId + '_pnlVsDisplay');\r\n\t\tif(elem){\r\n\t\t\tif(elem.style.display == 'none'){\r\n\t\t\t\telem.style.display = 'block';\r\n\t\t\t\tdocument.getElementById('VsArrow' + id).style.backgroundPosition = '0px -20px';\r\n\t\t\t}else{\r\n\t\t\t\telem.style.display = 'none';\r\n\t\t\t\tdocument.getElementById('VsArrow' + id).style.backgroundPosition = '0px 0px';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction CPToggle(objId)\r\n{\r\n\t\tvar obj;\r\n\t\t\r\n \r\n\t\tobj = document.getElementById('divResults');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\tobj = document.getElementById('divCarnage');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\tobj = document.getElementById('divEnemyKills');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\tobj = document.getElementById('divVehicleKills');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\t\r\n\t\tobj = document.getElementById('divCOOPOverview');\r\n\t\tif (obj){ obj.className = 'show_section';}\r\n\t\t\r\n\t\t\r\n\t\tobj = document.getElementById(objId);\r\n\t\tif (obj) obj.className = 'show_section';\r\n\t\t\r\n}\r\n\r\nfunction CPToggleTabs(objId, tabId)\r\n{\r\n\t\tvar obj;\r\n\t\t\r\n \r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_rptGamePlayers_ctl01_pnlPlayerDetails');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_rptGamePlayers_ctl02_pnlPlayerDetails');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_rptGamePlayers_ctl03_pnlPlayerDetails');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_rptGamePlayers_ctl04_pnlPlayerDetails');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\tobj = document.getElementById('divCOOPOverview');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\tobj = document.getElementById('divFiles');\r\n\t\tif (obj){ obj.className = 'hide_section';}\r\n\t\t\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_rptPlayerTabs_ctl01_hypPlayerTab');\r\n\t\tif (obj){ obj.className = 'tab160';}\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_rptPlayerTabs_ctl02_hypPlayerTab');\r\n\t\tif (obj){ obj.className = 'tab160';}\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_rptPlayerTabs_ctl03_hypPlayerTab');\r\n\t\tif (obj){ obj.className = 'tab160';}\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_rptPlayerTabs_ctl04_hypPlayerTab');\r\n\t\tif (obj){ obj.className = 'tab160';}\r\n\t\t\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpcgd_lnkFileViewer');\r\n\t\tif (obj){ obj.className = 'tab80';}\r\n\t\t\r\n\t\tobj = document.getElementById('coopTab');\r\n\t\tif (obj){ obj.className = 'tab60';}\r\n\t\t\r\n\t\t\r\n\t\tif (tabId == \"coopTab\"){ obj.className = 'tab60_active';}else{\r\n\t\t\r\n\t\t if (tabId == \"ctl00_mainContent_bnetpcgd_lnkFileViewer\"){\r\n\t\t obj = document.getElementById('ctl00_mainContent_bnetpcgd_lnkFileViewer');\r\n\t\t if (obj){ obj.className = 'tab80_active';}\r\n\t\t }else{\r\n\t\t obj = document.getElementById(tabId);\r\n\t\t if (obj){ obj.className = 'tab160_active';}\r\n\t\t }\r\n\t\t }\r\n\t\t\r\n\t\t\r\n\t\tobj = document.getElementById(objId);\r\n\t\tif (obj){ obj.className = 'show_section';}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n}\r\n\r\nfunction StatsToggleSection(objId, tabId)\r\n{\r\n\t\tvar obj;\r\n\t\tvar selected = \"#231f20\";\r\n var unselected = \"#535151\";\r\n\r\n\t\tobj = document.getElementById('tabOverview');\r\n\t\tif (obj){ obj.className = 'tab100';}\r\n\t\tobj = document.getElementById('tabKills');\r\n\t\tif (obj){ obj.className = 'tab100';}\r\n\t\tobj = document.getElementById('tabBreakdown');\r\n\t\tif (obj){ obj.className = 'tab100';}\r\n\t\tobj = document.getElementById('tabFieldStats');\r\n\t\tif (obj){ obj.className = 'tab100';}\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_lnkFileViewer');\r\n\t\tif (obj){ obj.className = 'tab80';}\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_lnkGameViewer');\r\n\t\tif (obj){ obj.className = 'tab80';}\r\n\r\n\t\tobj = document.getElementById(tabId);\r\n\t\tif (obj) obj.className = obj.className + '_active';\r\n\t\t\r\n\t\t\t\t\t\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_pnlOverview');\r\n\t\tif (obj) obj.style.display = 'none';\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_pnlKills');\r\n\t\tif (obj) obj.style.display = 'none';\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_pnlBreakdown');\r\n\t\tif (obj) obj.style.display = 'none';\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_pnlFieldStats');\r\n\t\tif (obj) obj.style.display = 'none';\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_pnlGameViewer');\r\n\t\tif (obj) obj.style.display = 'none';\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_pnlFiles');\r\n\t\tif (obj) obj.style.display = 'none';\r\n\t\t\r\n\t\t\r\n\t\tobj = document.getElementById('ctl00_mainContent_bnetpgd_' + objId);\r\n\t\tif (obj) obj.style.display = 'block';\r\n\t\t\r\n}\r\n\r\nfunction MouseOver(objId, tabId) {\r\n var obj;\r\n var over = \"#e08421\";\r\n obj = document.getElementById(tabId);\r\n \r\n if(obj.className != \"selected_tab\")\r\n obj.style.background = over;\r\n}\r\n\r\nfunction MouseOut(objId, tabId)\r\n{\r\n var obj;\r\n var over = \"#e08421\";\r\n var unselected = \"#535151\";\r\n obj = document.getElementById(tabId);\r\n \r\n if(obj.className != \"selected_tab\")\r\n obj.style.background = unselected; }\r\n\r\n\r\n\r\nfunction showObject(id) \r\n{\r\n\tvar obj = document.getElementById(id)\r\n\tif (obj != null)\r\n\t\tobj.style.visibility = \"visible\";\r\n\treturn obj;\r\n}\r\n\r\nfunction showOneObjectHideAnother(showObjId, hideObjId) {\r\n\tvar s_obj = document.getElementById(showObjId);\r\n\tvar h_obj = document.getElementById(hideObjId);\r\n\tif (s_obj != null && h_obj != null) {\r\n\t\ts_obj.style.display = \"inline\";\r\n\t\th_obj.style.display = \"none\";\r\n\t}\r\n}\r\n\r\nfunction hideObject(id) \r\n{\r\n\tvar obj = document.getElementById(id)\r\n\tif (obj != null)\r\n\t\tobj.style.visibility = \"hidden\";\r\n\treturn obj;\r\n}\r\n\r\n// should never return a value.\r\nfunction hideBlockObject(id) \r\n{\r\n\tvar obj = document.getElementById(id)\r\n\tif (obj != null)\r\n\t\tobj.style.display = \"none\";\r\n}\r\n\r\n\r\nfunction clearText(id) \r\n{\r\n document.getElementById(id).value = \"\";\r\n} \r\n\r\nfunction ChangeClass(objId, objClass)\r\n\t{\r\n\r\n var obj = document.getElementById(objId);\r\n\tif (obj != null)\r\n\t\tobj.className = objClass;\r\n\r\n\t}\r\n\t\r\nfunction open_parent(url)\r\n{\r\n\tif (opener && !opener.closed)\r\n\t{\r\n\t opener.location.href = url;\r\n\t}\r\n\telse\r\n\t{\r\n\t window.open(url, '_blank', 'scrollbars, resizable, width=1024, height=768');\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\nfunction fileItemArrowExpander(arrowElementId, divToAlterElementId) {\r\n\tvar arrowElement = document.getElementById(arrowElementId);\r\n\tvar divToAlter = document.getElementById(divToAlterElementId);\r\n\t\r\n\tif (arrowElement.className == 'expanded_arrows_collapsed') {\r\n\t\tarrowElement.className = 'expanded_arrows_expanded';\r\n\t\tdivToAlter.style.display = 'block';\r\n\t}\r\n\telse {\r\n\t\tarrowElement.className = 'expanded_arrows_collapsed';\r\n\t\tdivToAlter.style.display = 'none';\r\n\t}\r\n}\r\n\r\nfunction forumPostArrowExpander(arrowElementId, divToAlterElementId) {\r\n\tvar arrowElement = document.getElementById(arrowElementId);\r\n\tvar divToAlter = document.getElementById(divToAlterElementId);\r\n\t\r\n\tif (arrowElement.className == 'expanded_arrows_collapsed') {\r\n\t\tarrowElement.className = 'expanded_arrows_expanded';\r\n\t\tdivToAlter.style.display = 'block';\r\n\t}\r\n\telse {\r\n\t\tarrowElement.className = 'expanded_arrows_collapsed';\r\n\t\tdivToAlter.style.display = 'none';\r\n\t}\r\n}\r\n\r\nfunction swapBlockState(blockOneElementId, blockTwoElementId) {\r\n\tvar b1 = document.getElementById(blockOneElementId);\r\n\tvar b2 = document.getElementById(blockTwoElementId);\r\n\t\r\n\tif (b1 != null && b2 != null) {\r\n\t\tvar s1 = b1.style.display;\r\n\t\tb1.style.display = b2.style.display;\r\n\t\tb2.style.display = s1;\t\t\t\t\t\r\n\t}\r\n}\r\n\r\n\r\nfunction screenshot_thumbnail_hover(imgObj, pipElementId, isWidescreen) {\r\n\tvar pip = showObject(pipElementId);\r\n\t\r\n\tpip.src = imgObj.src;\r\n\t\r\n\tif (isWidescreen) \r\n\t\tpip.style.width = \"160\";\r\n\telse \r\n\t\tpip.style.width = \"120\";\r\n\t\t\t\r\n}\r\n\r\nfunction screenshot_thumbnail_hover_highlight(imgObj, pipElementId, isWidescreen, highlightElementId) {\r\n\tvar pip = showObject(pipElementId);\r\n\t\r\n\tvar hlight = document.getElementById(highlightElementId);\r\n\tif (hlight != null) {\r\n\t\thlight.style.zIndex = 4;\r\n\t}\r\n\t\r\n\t\r\n\tpip.src = imgObj.src;\r\n\t\r\n\tif (isWidescreen) \r\n\t\tpip.style.width = \"160\";\r\n\telse \r\n\t\tpip.style.width = \"120\";\r\n\t\t\t\r\n}\r\n\r\nfunction screenshot_thumbnail_no_hover(highlightElementId) {\r\n\r\n\tvar hlight = document.getElementById(highlightElementId);\r\n\tif (hlight != null) {\r\n\t\thlight.style.zIndex = 1;\r\n\t}\r\n}\r\n\r\nfunction searchmini_execute(queryId) {\r\n\tvar queryBox = document.getElementById(queryId);\r\n\tvar searchQuery = \"/Search/default.aspx?q=\" + queryBox.value;\r\n\twindow.location = searchQuery;\r\n}\r\n\r\nfunction defaultLinkButtonForFirefox(lbClientID) {\r\n var lb = $get(lbClientID);\r\n if (lb && typeof (lb.click) == 'undefined') {\r\n lb.click = function() {\r\n var result = true;\r\n if (lb.onclick)\r\n result = lb.onclick();\r\n if (typeof (result) == 'undefined' || result) \r\n eval(lb.getAttribute('href'));\r\n };\r\n }\r\n}\r\n\r\nfunction scrubString(str) {\r\n if (str)\r\n return str.replace(/[,—]/g,\"\");\r\n else\r\n return 0;\r\n}\r\n\r\nfunction prepSortsInt(a, b, index) {\r\n var h1 = a.getElementsByTagName(\"li\")[index].innerHTML.toLowerCase();\r\n var h2 = b.getElementsByTagName(\"li\")[index].innerHTML.toLowerCase()\r\n if (h1 == '—')\r\n h1 = 0;\r\n if (h2 == '—')\r\n h2 = 0;\r\n return sortString(parseInt(scrubString(h1)), parseInt(scrubString(h2)), -1);\r\n}\r\nfunction prepSortsSpanInt(a, b, index) {\r\n var h1 = a.getElementsByTagName(\"span\")[index].innerHTML.toLowerCase();\r\n var h2 = b.getElementsByTagName(\"span\")[index].innerHTML.toLowerCase()\r\n if (h1 == '—')\r\n h1 = 0;\r\n if (h2 == '—')\r\n h2 = 0;\r\n return sortString(parseInt(scrubString(h1)), parseInt(scrubString(h2)), -1);\r\n}\r\nfunction prepSortsPInt(a, b, index) {\r\n var h1 = a.getElementsByTagName(\"p\")[index].innerHTML.toLowerCase();\r\n var h2 = b.getElementsByTagName(\"p\")[index].innerHTML.toLowerCase()\r\n return sortString(parseInt(h1), parseInt(h2), -1);\r\n}\r\nfunction prepSortsFloat(a, b, index) {\r\n var h1 = a.getElementsByTagName(\"li\")[index].innerHTML.toLowerCase();\r\n var h2 = b.getElementsByTagName(\"li\")[index].innerHTML.toLowerCase()\r\n if (h1 == '—')\r\n h1 = 0;\r\n if (h2 == '—')\r\n h2 = 0;\r\n return sortString(parseFloat(h1), parseFloat(h2), -1);\r\n}\r\n\r\n\r\nfunction sortPointsStringDescending(a, b) {\r\n return prepSortsInt(a, b, 1);\r\n};\r\nfunction sortKillsStringDescending(a, b) {\r\n return prepSortsInt(a, b, 2);\r\n};\r\nfunction sortPDStringDescending(a, b) {\r\n return prepSortsFloat(a, b, 3);\r\n};\r\nfunction sortKDStringDescending(a, b) {\r\n return prepSortsFloat(a, b, 4);\r\n};\r\nfunction sortDeathsStringDescending(a, b) {\r\n\r\n return prepSortsFloat(a, b, 5);\r\n};\r\nfunction sortAchTimeStringDescending(a, b) {\r\n return prepSortsSpanInt(a, b, 1);\r\n};\r\nfunction sortAchScoreStringDescending(a, b) {\r\n\treturn prepSortsPInt(a, b, 0);\r\n};\r\nfunction sortReachAchScoreStringDescending(a, b) {\r\n return prepSortsPInt(a, b, 2);\r\n};\r\n\r\nfunction sortString(h1, h2, direction) {\r\n\r\n\r\n if (h1 > h2) {\r\n r = 1 * direction;\r\n } else if (h2 > h1) {\r\n r = -1 * direction;\r\n }\r\n else {\r\n r = 0;\r\n }\r\n return r;\r\n};\r\n\r\nfunction FixRadioRepeater(nRegex, hiddenField, vItem, current) {\r\n re = new RegExp(nRegex);\r\n for (i = 0; i < document.forms[0].elements.length; i++) {\r\n elm = document.forms[0].elements[i];\r\n if (elm.type == 'radio') {\r\n if (re.test(elm.name))\r\n elm.checked = false;\r\n }\r\n }\r\n current.checked = true;\r\n $get(hiddenField).value = vItem;\r\n}\r\n\t" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.302Z", "time": 0.07500000356230885, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.06299999949987978, "receive": 0.01200000406242907, "_blocked_queueing": -1 } }, { "_fromCache": "disk", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 22 }, "_priority": "VeryHigh", "_resourceType": "stylesheet", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/base_css/base.css?ver=2.0.4777.31696", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "ver", "value": "2.0.4777.31696" } ], "cookies": [], "headersSize": 251, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Type", "value": "text/css" }, { "name": "Content-Length", "value": "20951" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:47:52 GMT" }, { "name": "ETag", "value": "\"0d4d189bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "cf-request-id", "value": "0813ef143e000016d53f27a000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61cce799f92116d5-SYD" } ], "cookies": [], "content": { "size": 108090, "mimeType": "text/css", "text": "@font-face {\r\n font-family: 'CabinRegular';\r\n src: url('/fonts/Cabin-Regular-webfont.eot');\r\n src: url('/fonts/Cabin-Regular-webfont.eot?#iefix') format('embedded-opentype'),\r\n url('/fonts/Cabin-Regular-webfont.woff') format('woff'),\r\n url('/fonts/Cabin-Regular-webfont.ttf') format('truetype'),\r\n url('/fonts/Cabin-Regular-webfont.svg#CabinRegular') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n\r\n}\r\nhtml\r\n{\r\n height:100%;\r\n background:url(/images/dark/ohmygodiseestars.gif) fixed;\r\n background:url(/images/base_struct_images/top_nav/bg_nav_total.jpg) repeat-x 0 0, url(/images/dark/ohmygodiseestars.gif) fixed;\r\n}\r\n\r\nbody { height:100%;margin:0; background: #000; font: 12px/15px Arial, Helvetica, sans-serif; color: #bbb; background:url(/images/dark/upper_neb.png) no-repeat center top fixed;}\r\nbody > div:first-child\r\n{\r\n height:100%;\r\n background:url(/images/dark/lower_neb.png) no-repeat center bottom fixed;\r\n}\r\nbody.popup { background: #000; margin:0; font: 12px/15px Arial, Helvetica, sans-serif; color: #bbb; width: 680px; overflow-x:hidden; }\r\n\r\na {font: 12px Arial, Helvetica, sans-serif; color: #71caef; line-height /*\\**/:inherit\\9; outline-style:none;}\r\na:link { color: #71caef; text-decoration: none;outline-style: none; }\r\na:visited { color: #71caef; text-decoration: none; outline-style: none; }\r\na:hover { color: #fff; text-decoration: underline; }\r\na:active { color: #71caef; outline-style: none;}\r\n\r\ndl,dt,dd{margin:0;padding:0;}\r\n\r\ndiv { margin: 0; padding: 0; }\r\ndiv h1 { font: bold 14px/20px Arial, Helvetica, sans-serif; color: #fefefe; margin: 0; padding: 0; }\r\ndiv h2 { font: 14px/20px Arial, Helvetica, sans-serif; color: #fefefe; text-transform: uppercase; margin: 0; padding: 0; }\r\ndiv h3 { font: 14px/14px Arial, Helvetica, sans-serif; color: #fefefe; margin: 1em 0 1em 0; padding: 0; text-transform: uppercase;}\r\ndiv h4 { font: 14px/15px Arial, Helvetica, sans-serif; color: #fefefe; margin: 1em 0 1em 0; padding: 0; width: 100%;}\r\ndiv h5 { font: bold 12px/15px Arial, Helvetica, sans-serif; color: #fefefe; margin: 0; padding: 0; }\r\ndiv h6 { font: 12px/15px Arial, Helvetica, sans-serif; color: #bbb; margin: 0 0 .5em 0; padding: 0; }\r\ndiv p {font: 12px/18px Arial, Helvetica, sans-serif; color:#bbb; margin: 0 0 1em 0; padding: 0; }\r\ndiv p strong {font:bold 13px/18px Arial, Helvetica, sans-serif; color:#eee; }\r\ndiv blockquote { padding: 0 0 0 20px; margin:0; line-height: 18px;}\r\ndiv blockquote.quote { text-indent: -8px;}\r\ndiv form { margin: 0; padding: 0; }\r\ndiv ul { margin:0; padding: 0; }\r\ndiv li { margin:0; padding: 0; }\r\ndiv ol { margin: 0; padding: 0; list-style: none;}\r\ndiv img { border: 0px solid #000; } \r\ndiv hr { display:block; border:0; border-top: 1px solid #5b5b5b; height: 0; margin: .5em 0 .5em 0; padding: 0; clear:both}\r\nhr { display:block; border:0; border-top: 1px solid #5b5b5b; height: 0; margin: .5em 0 .5em 0; padding: 0; clear:both}\r\nsup { vertical-align: baseline; font-size: 89%; position: relative; top: -.4em; } \r\nsub { vertical-align: baseline; font-size: 89%; position: relative; top: +.20em; }\r\n\r\n/* Utility Classes */\r\ndiv img.left { float:left; margin: 3px 10px 5px 0;}\r\ndiv img.right { float:left; margin: 3px 0 5px 10px;}\r\ndiv p.indent { text-indent: 0; }\r\ndiv p.gap { margin-bottom: 30px }\r\ndiv p.compact { margin: 0; padding: 0; }\r\ndiv p a.more { display:block; margin: 2px 0 0 0;}\r\ndiv a.arrowPre:before { content:\"\\00BB \\00A0\" }\r\ndiv a.arrowPost:after { content:\"\\00A0 \\00BB\" }\r\ndiv a.def:link { color: #71caef; text-decoration: none; border-bottom: 1px dashed #71caef; }\r\ndiv a.def:visited { color: #71caef; text-decoration: none; border-bottom: 1px dashed #71caef; }\r\ndiv a.def:hover { color: #004061; text-decoration: none; border-bottom: 1px dashed #004061; }\r\ndiv a.def:active { color: #71caef; }\r\nli a.guest {color: #aaaaaa; cursor: default;}\r\nli a.guest:hover {text-decoration: none;} \r\ndiv ul.icons { list-style-type: none; padding: 2px 0 0 0; margin:0}\r\ndiv ul.icons li { padding: 2px 0 2px 0; margin: 0}\r\ndiv ul.icons li img { vertical-align: middle; display: inline; margin: 0 .5em 0 0}\r\ndiv ul.compact { list-style-type: none; padding: 0; margin:0}\r\ndiv ul.compact li { padding: 0; margin: 0}\r\ndiv ul.arrow { list-style: url(../images/arrow.gif); }\r\ndiv table.gap { margin-bottom: 30px }\r\ndiv hr.thick { border-top: 2px solid #ccc; margin: 21px 0 7px 0;}\r\n.rightAlign{text-align: right;}\r\n.inLine{display:inline;}\r\n.rFloat{float:right;}\r\n.lFloat{float:left;}\r\n.textInput { color: #333; border: 1px solid #666; padding: 2px; margin: 0 0 2px 0; width: 200px; background: #d3d3d3; }\r\n.noback { background: none !important; }\r\n.restrict_text {overflow:hidden;}\r\n.hide { visibility:hidden; }\r\n.clear { visibility: visible !important; height: 0 !important; clear: both; margin-bottom: 0 !important; font-size:0; line-height:0;}\r\nbr.clear { clear:both; height: 0 !important; margin: 0 !important; padding: 0; }\r\ndiv.clear { clear: both; }\r\n.clear {clear: both; }\r\n.bold { font-weight: bold; }\r\n.larger { font-size: 12px;}\r\n.largest { font-size: 15px; }\r\n.label_container { height: 25px; overflow: hidden; }\r\n.label { margin: 5px 0 5px 10px; font-size: 14px}\r\n.left_image { padding: 5px 0px 0 0; float: left; }\r\n.right_image { padding: 0px 5px 0 0; float: right; }\r\n.left_list { margin: 0; padding: 0; float: left; list-style: none; }\r\n.left_list li { padding: 0 0 2px 0; }\r\n.font_white { color: #ffffff;}\r\n.font_orange { color: #f26122;}\r\n.font_red{color:#f00;}\r\n.previous { float: left; margin-top: 3px;}\r\n.next { float: right; margin-top: 3px;}\r\n.jumpAnchor{/*position:absolute;top:0;left:0;*/}\r\ndiv.alert { padding: 10px; margin-bottom: 10px; background: #ddd; border-left: 10px solid #f99c20; }\r\ndiv.alert p { color: #900; }\r\ndiv.alert p.success { color: #488100; }\r\nspan.requiredfield { color: #cc0000; font-style: italic; font-weight: bold; } \r\nspan.validatormsg { color: #cc0000; font-weight: bold; }\r\nspan.banneduserlabel { color: #cc0000; font-style: italic; }\r\n\r\n.wrap { word-wrap: break-word; }\r\n.long_text {width: 385px; overflow: hidden; word-wrap: break-word;}\r\n\r\n/* structural elements */\r\ndiv.main { width: 100%; height: auto;}\r\n\tdiv.bgRepeat { width: 100%; margin: 0 auto; clear:both;}\r\n\t\tdiv.sContent-head { width: 100%; float: left; background: #000 url(/images/base_struct_images/top_nav/bg_nav.jpg) repeat-x 0 33px; height:98px; position:relative; z-index:11;border-bottom:9px solid #000;}\r\n\t\t div.navWrapper{border-bottom:1px solid #1a1a1a;height:98px;}\r\n\t\tdiv.sContent { width: 902px; margin: 0 auto; padding:0;}\r\n\t\t\tdiv.cols { width: 902px; padding:0; margin:0; }\r\n\t\t\t\tdiv.col { float:left; padding:0; margin:0; overflow:hidden; }\r\n\t\t\t\tdiv.colLast { float:left; padding:0;margin:0;overflow:hidden; }\r\n\t\t\t\tdiv.bgRepeatAdmin div.colLast { background: url(/images/base_struct_images/bg_repeat2.png) repeat-y center center; overflow:hidden; height: auto; }\r\ndiv.popup { width: 770px; margin: 0 auto; }\r\ndiv.bgRepeatAdmin { background: url(/images/base_struct_images/bg_repeat2.png) repeat-y center center; overflow:hidden; }\r\ndiv.sContentpopup {width: 100%; float: left; background: #000 url(/images/base_struct_images/themes/default/brandnav_bg1px2.jpg) repeat-x;}\r\n\r\n/* forms */\r\nfieldset{border:0;padding:0;margin:0;}\r\nfieldset ul{list-style:none;}\r\nfieldset .radioList input{margin:0 5px 0 0;vertical-align:text-top;}\r\n\r\na.bluebutton { display: block; height: 24px; width: 100px; background: transparent url(/images/base_struct_images/bluebutton-left.gif) no-repeat left top; padding-left: 10px; line-height: 24px;}\r\n\ta.bluebutton span { display: block; height: 24px; width: auto; background: transparent url(/images/base_struct_images/bluebutton-right.gif) no-repeat right top; padding-right: 20px;cursor:pointer; }\r\n\ta.bluebutton:hover { text-decoration: none; color:#71caef; background-position: left bottom; }\r\n\ta.bluebutton:hover span { background-position: right bottom; }\r\n.button { color: #A3A3A4; border: 1px solid #5c5d5f; padding: 1px; margin: 0 0 2px 0; background:#1b1d1f;cursor:pointer; }\r\n\t.button:hover { background: #17668a; border-color: #56aacd; color: #dce8ee; } \r\n\r\ndiv.formgroup1 { padding: 10px; margin-bottom: 10px; background: #161617; border: 1px solid #414547; border-left: 10px solid #203660;}\r\n\tdiv.formgroup1 p { margin-bottom: 7px; }\r\n\tdiv.list-c div.formgroup1 { width: auto; }\r\ndiv.formgroup2 { padding: 10px; margin-bottom: 10px; background: #161617; border: 1px solid #414547; border-left: 10px solid #203660; }\r\n\tdiv.formgroup2 p { margin-bottom: 7px; }\r\n\tdiv.formgroup2 table { font-weight: bold; color: #f2f2f2; margin: 0; padding: 0; }\r\n\tdiv.list-c div.formgroup2 { width: auto; }\r\ndiv.formgroup3 { padding: 10px; margin-bottom: 10px; background: #161617; border: 1px solid #414547; border-left: 10px solid #203660; display: inline-block; width:auto;}\r\n\tdiv.formgroup3 .create-post-actions ul { margin: 0; padding: 5px 0 0 0; }\r\n\tdiv.block-a div.list-c div.formgroup3 { width: auto; clear: both; }\r\ndiv.forum_main_col div.block-a div.list-c div.formgroup1, div.forum_main_col div.block-a div.formgroup3, div.forum_main_col div.block-a div.formgroup2 { width: 530px !important; }\r\n\r\ndiv ul.arrow1 { list-style-type: none; margin: 0 0 2px 0; padding: 0;}\r\n\tdiv ul.arrow1 li { background: url(/images/base_struct_images/arrow_1.gif) no-repeat; text-align: left; margin: 0 0 1px 0; }\r\n\tdiv ul.arrow1 li.not-a { padding: 0 0 0 13px }\r\n\tdiv ul.arrow1 li a { color: #71caef; font-weight: bold; padding: 0 0 0 13px; }\r\ndiv ul.arrow2 { list-style-type: none; margin: 0; padding: 0; float: left; width: 100%; margin-bottom: 10px; clear: both;}\r\n\tdiv ul.arrow2 li { background: url(/images/base_struct_images/arrow_2.gif) no-repeat; text-align: left; margin: 0 0 1px 0; float: left;width: 100%;}\r\n\tdiv.list-c ul.arrow2 li { background-position: top left;}\r\n\tdiv ul.arrow2 li a { color: #71caef; padding: 0 0 0 13px;}\r\n\tdiv ul.arrow2 li .not-a { padding: 0 0 0 13px;}\r\ndiv ul.arrow3 { list-style-type: none; margin: 0; padding: 0;}\r\n\tdiv ul.arrow3 li { background: url(/images/base_struct_images/arrow_3.gif) no-repeat; text-align: left; margin: 0 0 1px 0; }\r\n\tdiv ul.arrow3 li a { color: #71caef; padding: 0 0 0 13px; }\r\ndiv ul.buttons { list-style-type: none; margin: 0 0 0 10px; padding: 0;}\r\n\tdiv ul.buttons li {height:18px; width:262px; margin:0px 0 0px 0;}\r\n\tdiv ul.buttons li a span {background: url(/images/base_struct_images/arrow_3.gif) no-repeat; font-size:12px; padding: 0 0 0 20px;}\r\n\tdiv ul.buttons li a { color: #71caef; height:13px; width:242px; display:block; padding:5px 0 0 10px; }\r\ndiv ul.arrow4 { list-style-type: none; margin: 0; padding: 0;}\r\n\tdiv ul.arrow4 li { background: url(/images/base_struct_images/arrow_4.gif) no-repeat; text-align: left; margin: 3px 0 1px 0; }\r\n\tdiv ul.arrow4 li a { color: #71caef; padding: 0 0 0 13px; }\r\ndiv ul.arrow5 { list-style-type: none; margin: 0; padding: 0;}\r\n\tdiv ul.arrow5 li { background: url(/images/base_struct_images/arrow_5.gif) no-repeat; text-align: left; margin: 0 0 1px 0; }\r\n\tdiv ul.arrow5 li a { color: #71caef; padding: 0 0 0 13px; }\r\ndiv ul.more { list-style-type: none; margin: 0 0 1px 0; padding: 5px 5px 4px 5px; background-color:#203660; }\r\n\tdiv ul.more li { background: url(/images/base_struct_images/more.gif) no-repeat; text-align: left; margin: 0 0 0 0; }\r\n\tdiv ul.more li a { color: #71caef; font-weight: bold; text-decoration: none; padding: 0 0 0 13px; }\r\n\tdiv ul.more li a:hover { color: #fff; text-decoration: none;}\r\ndiv ul.less { list-style-type: none; margin: 0; padding: 5px 5px 4px 5px; background-color:#002233; }\r\n\tdiv ul.less li { background: url(/images/base_struct_images/less.gif) no-repeat; font-weight: bold; color: #fff; text-align: left; margin: 0 0 0 0; }\r\n\tdiv ul.less li a { color: #71caef; font-weight: bold; text-decoration: none; padding: 0 0 0 13px; }\r\n\tdiv ul.less li a:hover { color: #fff; text-decoration: none;}\r\ndiv ul.ticker { list-style-type: none; margin: 0; padding: 5px 5px 4px 5px; background-color:#d84a0a; }\r\n\tdiv ul.ticker li { font-weight: bold; color: #fff; text-align: left; margin: 0 0 0 0; padding: 0 0 0 10px; }\r\ndiv p a.arrow3 { display:block; background: url(/images/base_struct_images/arrow_3.gif) no-repeat; text-align: left; margin: .5em 0 0 0; padding: 0 0 0 11px; text-decoration: none; }\r\n\tdiv p a.arrow3:hover { color: #fff; text-decoration: underline; }\r\ndiv ul.next { list-style-type: none; margin: 0; padding: 5px 5px 2px 5px; }\r\n\tdiv ul.next li { text-align: right;}\r\ndiv ul.arrowrss { list-style-type: none; margin: 0; padding: 0;}\r\n\tdiv ul.arrowrss li { background: url(/images/base_struct_images/arrow_rss.gif) no-repeat; text-align: left; margin: 0 0 1px 0; }\r\n\tdiv ul.arrowrss li a { color: #71caef; text-decoration: none; padding: 0 0 0 13px; }\r\n\tdiv ul.arrowrss li a:hover { color: #fff; text-decoration: underline; }\r\na.disabledLink {font: 14px/14px Arial, Helvetica, sans-serif; color: #999; text-decoration: none; }\r\n\ta.disabledLink:hover { color: #999; text-decoration: none; }\r\n/* blue arrow link */\r\na.linkArrow\r\n{\r\n\tbackground:url(\"/images/reachStatsNew/bg_linkArrow.png\") no-repeat scroll right center transparent;\r\n\tdisplay:block;\r\n\tfont-size:11px;\r\n\tfont-weight:normal;\r\n\theight:42px;\r\n\tline-height:42px;\r\n\tpadding-right:20px;\r\n\ttext-transform:none;\r\n}\r\n\ta.linkArrow:hover\r\n\t{\r\n\t\tbackground:url(\"/images/reachStatsNew/bg_linkArrow_on.png\") no-repeat scroll right center transparent;\r\n\t}\r\n\t\r\na.linkArrow_reverse\r\n{\r\n\tbackground:url(\"/images/reachStatsNew/bg_linkArrowReverse.png\") no-repeat scroll left center transparent;\r\n\tdisplay:block;\r\n\tfont-size:11px;\r\n\tfont-weight:normal;\r\n\theight:42px;\r\n\tline-height:42px;\r\n\tpadding-left:20px;\r\n\ttext-transform:none;\r\n}\r\n\ta.linkArrow_reverse:hover\r\n\t{\r\n\t\tbackground:url(\"/images/reachStatsNew/bg_linkArrowReverse_on.png\") no-repeat scroll left center transparent;\r\n\t}\r\n\r\n\r\n/* carousel used in home, halo 3, reach */\r\na.rotateleft { display: block; width: 56px; height: 93px; background: black url(/images/base_struct_images/news/carousel-left.gif) no-repeat top left; }\r\na.rotateright { display: block; width: 56px; height: 93px; background: black url(/images/base_struct_images/news/carousel-right.gif) no-repeat top left; }\r\na.rotateleft:hover, a.rotateright:hover { background-position: bottom left; cursor: pointer; }\r\ndiv.carousel { float: left; width: 790px; height: 123px; list-style: none;overflow: hidden; display: block; }\r\ndiv.carousel ul li.rrItem { margin: 0 0 0 30px; }\r\ndiv.carousel a { width: 100%; text-align: center; display: block; line-height: 40px; }\r\ndiv.carousel a.adblock { width: 160px; height: 90px; display: block; background-position: top left; }\r\ndiv.carousel a.adblock:hover { background-position: bottom left; }\r\ndiv.carousel a.rrButton { display: none; }\r\n\r\n/* footer */\r\n\r\ndiv.footer { margin: 0;padding:14px 0 28px;border-top:1px solid #2a2a2a;} \r\ndiv.footer p { font:Cabin,Arial, Sans-serif;font-size: 12px; color: #fff;text-transform:none;line-height:29px;padding-left:12px;margin-bottom:0;}\r\ndiv.footer ul.menu { float:right;padding-right:10px;}\r\ndiv.footer ul.menu li { float:left; border-left:1px solid #404040;padding:0 5px;height:11px;position:relative;list-style:none;margin-top:10px;}\r\n\tdiv.footer ul.menu li:first-child{border-left:0;}\r\n\tdiv.footer ul.menu li a{display:block;font-size:12px;position:relative;top:-3px;}\r\ndiv.fContent { width: 902px; margin: 0 auto; padding:0;} \r\n\r\n\r\n\r\n\r\ndiv.passport_footer div.fl { background-color: #2E3032; background-image: none; } \r\ndiv.passport_footer div.fr { background-color: #2E3032; background-image: none; }\r\ndiv.fContent_cont_passport div.footer { margin: 0; width: 892px; float: left; background: black;}\r\n\r\ndiv.footer-menu .footer-esrb {margin:79px 0 0 13px;height:72px; float:left;}\r\n\r\n\r\n\r\n\r\ndiv.nav { width: 873px; margin: 0 auto; position:relative;}\r\n\tdiv.nav div.pagetop\r\n\t{\r\n\t\twidth:100%;\t\r\n\t\theight:33px;\r\n\t}\r\n\t\tdiv.nav div.pagetop p\r\n\t\t{\r\n\t\t\tcolor:#fff;\r\n\t\t\tfloat:left;\r\n\t\t\tline-height:31px;\r\n\t\t\tmargin-bottom:0;\r\n\t\t}\r\n\t\t\tdiv.nav div.pagetop p em\r\n\t\t\t{\r\n\t\t\t\tcolor:#7e7e7e;\r\n\t\t\t\tfont-size:11px;\r\n\t\t\t\tfont-style:normal;\r\n\t\t\t}\r\n\t\t\tdiv.nav div.pagetop p a\r\n\t\t\t{\r\n\t\t\t\tfont-size:11px;\r\n\t\t\t\tline-height:31px;\r\n\t\t\t}\r\n\tdiv.pagetop div.search{float:right;height:31px;line-height:31px;width:50%;}\r\n\t\t\r\n\t\tdiv.pagetop div.search fieldset\r\n\t\t{\r\n border:0;\r\n margin:0;\r\n padding:0;\r\n z-index:2;\r\n position:relative;\r\n width:auto;\r\n float:right;\r\n\t\t}\r\n\t\t\tdiv.pagetop div.search fieldset label\r\n\t\t\t{\r\n\t\t\t\tcolor:#7e7e7e;\r\n\t\t\t\tfloat:left;\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tline-height:31px;\r\n\t\t\t}\r\n\t\t\tdiv.pagetop div.search fieldset input.text\r\n\t\t\t{\r\n background:none repeat scroll 0 0 #fff;\r\n\t\t\t\tborder:0 none;\r\n\t\t\t\theight:13px;\r\n\t\t\t\tpadding-right:10px;\r\n\t\t\t\tpadding-left:3px;\r\n\t\t\t\twidth:132px;\r\n\t\t\t\tz-index:1;\r\n\t\t\t\tcolor:#000;\r\n\t\t\t\tfloat:left;\r\n\t\t\t\tmargin-top:8px;\r\n\t\t\t\tfont-size:11px;\r\n\t\t\t}\r\n\t\t\tdiv.pagetop div.search fieldset input.submit\r\n\t\t\t{\r\n background:url(\"/images/base_struct_images/top_nav/btn_search.gif\") no-repeat scroll left top transparent;\r\n\t\t\t\tborder:0 none;\r\n\t\t\t\tcursor:pointer;\r\n\t\t\t\theight:16px;\r\n\t\t\t\tpadding:0;\r\n\t\t\t\twidth:20px;\r\n\t\t\t\tz-index:2;\r\n\t\t\t\tfont-size:0px;\r\n\t\t\t\tline-height:0;\r\n\t\t\t\toverflow:hidden;\r\n\t\t\t\tfloat:left;\r\n\t\t\t\tmargin-top:8px;\r\n\t\t\t}\r\n\t\t\t\tdiv.pagetop div.search fieldset input.submit:hover{background-position:left bottom;}\r\n\t\t\r\n\t\t\r\n\t\tdiv.pagetop div.search ul.dropDown\r\n\t\t{\r\n \tposition:relative;\r\n \tbackground:url(\"/images/base_struct_images/search/bg_searchDrop.jpg\") repeat-x;\r\n \twidth:51px;\r\n \tz-index:2;\r\n \tfloat:left;\r\n \tpadding:0;\r\n \tmargin:7px 0 0 0;\r\n\t\t}\r\n\t\t\tdiv.pagetop div.search ul.dropDown li\r\n\t\t\t{\r\n \tbackground:none;\r\n \tmargin-bottom:0;\r\n \twidth:auto;\r\n \tpadding:0;\r\n \tfloat:left;\r\n\t\t\t}\r\n\t\t\t\tdiv.pagetop div.search ul.dropDown li ul\r\n\t\t\t\t{\r\n \t\tdisplay:none;\r\n \t\tposition:absolute;\r\n \tbackground:#000;\r\n \tborder:#183757 1px solid;\r\n \t\twidth:182px;\r\n \t\ttop:30px;\r\n \t\tleft:0;\r\n \t\tpadding:5px;\r\n \t\t-moz-border-radius:0;\r\n \t\t-webkit-border-radius:0;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li{width:100%;float:none;}\r\n\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul a\r\n\t\t\t\t\t\t{\r\n \t\tpadding:0px;\r\n \t\tline-height:32px;\r\n \t\theight:32px;\r\n \t\tfloat:none;\r\n \t\twhite-space:nowrap;\r\n \t\tpadding-left:34px;\r\n \t\tdisplay:block;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li.reach a{background:url(/images/base_struct_images/search/reach.gif) no-repeat 7px 6px;}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li.halo3 a{background:url(/images/base_struct_images/search/halo3.gif) no-repeat 7px 6px;}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li.users a{background:url(/images/base_struct_images/search/bungienetuser.gif) no-repeat 7px 6px;}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li.halo2 a{background:url(/images/base_struct_images/search/halo2.gif) no-repeat 7px 6px;}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li.files a{background:url(/images/base_struct_images/search/files.gif) no-repeat 7px 6px;}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li.forums a{background:url(/images/base_struct_images/search/forums.gif) no-repeat 7px 6px;}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li.groups a{background:url(/images/base_struct_images/search/groups.gif) no-repeat 7px 6px;}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li.news a{background:url(/images/base_struct_images/search/news.gif) no-repeat 7px 6px;}\r\n\t\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul a:hover{text-decoration:none;}\r\n\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li ul li:hover{background:#333;}\r\n\t\t\t\tdiv.pagetop div.search ul.dropDown li p\r\n\t\t\t\t{\r\n \t\tmargin-bottom:0;\r\n \t\tpadding-right:22px;\r\n \t\theight:18px;\r\n \t\twidth:25px;\r\n \t\tcursor:pointer;\r\n \t\tfloat:left;\r\n \t\t/*default selection*/\r\n\t\t\t\t\tbackground-image:url(/images/base_struct_images/search/reach.gif);\r\n\t\t\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t\t\tbackground-position: 7px 0px;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.pagetop div.search ul.dropDown li p span\r\n\t\t\t\t\t{\r\n \t\theight:7px;\r\n\t\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\t\tright:9px;\r\n\t\t\t\t\t\ttop:4px;\r\n\t\t\t\t\t\twidth:8px;\r\n \t\tbackground:url(\"/images/base_struct_images/top_nav/sprite_mainNavIcons.png\") no-repeat scroll 0 0 transparent;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.pagetop div.search ul.dropDown li:hover p span{background-position:0 -8px;}\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\r\n\t.nav .top_logo_bungie\r\n\t{\r\n\t\tposition:absolute;\r\n\t\twidth:113px;\r\n\t\ttext-indent:-9999px;\r\n\t\toverflow:hidden;\r\n\t\theight:33px;\r\n\t\ttop:47px;\r\n\t\tleft:0;\r\n\t\tbackground:url(/images/base_struct_images/top_nav/logo_bungie.png) no-repeat 0 0;\r\n\t}\r\n\t.mainNav{float:right;width:auto;}\r\n\t\t.mainNav li\r\n\t\t{\r\n \t\tfloat:left;\r\n \t\twidth:auto;\r\n \t\tlist-style:none;\r\n \t\tposition:relative;\r\n\t\t}\r\n\t\t\t.mainNav li a\r\n\t\t\t{\r\n \t\tdisplay:block;\r\n \t\tfloat:left;\r\n \t\twidth:auto;\r\n \t\tpadding:0 24px 0 5px;\r\n \t\theight:68px;\r\n \t\tline-height:68px;\r\n \t\tposition:relative;\r\n\t\t\t}\r\n\t\t\t .mainNav > li > a\r\n\t\t\t {\r\n\t\t\t margin:0 2px;\r\n\t\t\t }\r\n\t\t\t\t.mainNav > li:hover > a,\r\n\t\t\t\t.mainNav > li.on > a\r\n\t\t\t\t{\r\n \t\t background:#000;\r\n \t\t text-decoration:none;\r\n \t\t border-left:2px solid #1e1919;\r\n \t\t border-right:2px solid #0d0d0d;\r\n \t\t margin:0;\t \t\r\n\t\t\t\t}\r\n\t\t\t\t.mainNav li a em\r\n\t\t\t\t{\r\n\t\t\t\t\tdisplay:block;\r\n\t\t\t\t\ttext-indent:-9999px;\r\n\t\t\t\t\tbackground:url(/images/base_struct_images/top_nav/sprite_topNavHeadings.png) no-repeat;\r\n\t\t\t\t\theight:14px;\r\n\t\t\t\t\toverflow:hidden;\r\n\t\t\t\t\tmargin-top:27px;\r\n\t\t\t\t\tmargin-left:8px;\r\n\t\t\t\t\tfloat:left;\r\n\t\t\t\t}\r\n\t\t\t\t\t.mainNav li a.Projects em\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:0 -17px;\r\n\t\t\t\t\t\twidth:52px;\r\n\t\t\t\t\t\theight:14px;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.mainNav li a.Stats em\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:0 -31px;\r\n\t\t\t\t\t\twidth:48px;\r\n\t\t\t\t\t\theight:14px;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.mainNav li a.About em\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:0 0;\r\n\t\t\t\t\t\twidth:72px;\r\n\t\t\t\t\t\theight:17px;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.mainNav li a.Community em\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:0 -45px;\r\n\t\t\t\t\t\twidth:89px;\r\n\t\t\t\t\t\theight:17px;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.mainNav li a.Account em\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:0 -62px;\r\n\t\t\t\t\t\twidth:59px;\r\n\t\t\t\t\t\theight:13px;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t.mainNav li a span\r\n\t\t\t\t{\r\n \t\tdisplay:block;\r\n \t\twidth:8px;\r\n \t\theight:7px;\r\n \t\tposition:absolute;\r\n \t\tright:11px;\r\n \t\ttop:31px;\r\n\t\t\t\t\tbackground:url(/images/base_struct_images/top_nav/sprite_mainNavIcons.png) no-repeat 0 0;\r\n\t\t\t\t}\r\n\t\t\t\t\t.mainNav li a:hover span,\r\n\t\t\t\t\t.mainNav li a.on span{background-position:0 -8px;}\r\n\t\t\t.mainNav li ul.flyOut\r\n\t\t\t{\r\n \t\tposition:absolute;\r\n \t\tleft:-99999px;\r\n \t\ttop:65px;\r\n \t\tborder:2px solid #1e1919;\r\n \t\tborder-top:0;\r\n \t\tborder-bottom:0;\r\n \t\tbackground:#000;\r\n \t\tz-index:100;\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\t.mainNav li ul.flyOut li\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdisplay:block;\r\n\t\t\t\t\t\tfloat:none;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\twidth:auto;\r\n\t\t\t\t\t\tclear:both;\r\n\t\t\t\t\t\t/*overflow:hidden; */\r\n\t\t\t\t\t\tposition:relative; \t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\t.mainNav li ul.flyOut li h4{line-height:34px;width:auto;margin:0;border-bottom:2px solid #1e1919;padding:1px 0;}\r\n\t\t\t\t\t\t\t.mainNav li ul.flyOut li h4:hover{background:#0e0e0e;padding:0;}\r\n\t\t\t\t\t\t\t.mainNav li ul.flyOut li h4:hover a{border-top:1px solid #000;border-bottom:1px solid #000;}\r\n\t\t\t\t\t\t.mainNav li ul.flyOut li a\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\theight:34px;\r\n\t\t\t\t\t\t\tline-height:34px;\r\n\t\t\t\t\t\t\tdisplay:block;\r\n\t\t\t\t\t\t\twhite-space:nowrap;\r\n\t\t\t\t\t\t\tpadding-left:43px;\r\n\t\t\t\t\t\t\tmargin:0;\r\n\t\t\t\t\t\t\ttext-indent:0;\r\n\t\t\t\t\t\t\twidth:auto;\r\n\t\t\t\t\t\t\tfloat:none;\r\n\t\t\t\t\t\t\tfont-size:15px;\r\n\t\t\t\t\t\t\tbackground:none;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t.mainNav li ul.flyOut li a.subsubmenuTrigger\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tbackground:url(/images/base_struct_images/top_nav/subnavArrows.png) 95% center no-repeat;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t.mainNav li ul.flyOut li a:hover\r\n\t\t\t\t\t\t\t{\r\n \t\t\r\n \t\ttext-decoration:none;\r\n \t\tcolor:#FFF;\r\n \t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t.mainNav li ul.flyOut li ul{width:auto;border-bottom:2px solid #1e1919;}\r\n\t\t\t\t\t\t\t.mainNav li ul.flyOut li ul li\r\n\t\t\t\t\t\t\t{\r\n \t\t\tmargin-bottom:0px;\r\n \t\t\tfloat:none;\r\n \t\t\t\r\n \t\t\twidth:auto;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t.mainNav li ul.flyOut li ul li:hover{}\r\n\t\t\t\t\t\t\t\t\t.mainNav li ul.flyOut li ul li:hover a{background:none;}\r\n \t\t\t\t.mainNav li ul.flyOut li ul li a\r\n \t\t\t\t{\r\n \t \t\t\tbackground:none;\r\n \t \t\t\tfont-size:13px;\r\n \t \t\t\tfloat:none;\r\n \t \t\t\twidth:auto;\r\n \t \t\t\theight:auto;\r\n \t \t\t\tline-height:25px;\r\n \t\t\t\t} \r\n \t\t\t\t\t.mainNav li ul.flyOut li ul li a:hover{text-decoration:none;background:#0b0b0b;}\r\n \t\t\t\t\t.mainNav li ul.flyOut li ul li a span{display:none;} \r\n\t\t\t\t.mainNav > li:hover ul.flyOut{left:0px;}\r\n\t\t\t\t.mainNav li ul.flyOut li ul.subsubmenu li a\r\n\t\t\t\t{\r\n\t\t\t\t\tpadding-left:24px;\r\n\t\t\t\t}\r\n\t\t\t.mainNav div.imgAvatar\r\n\t\t\t{\r\n\t\t\t\tposition:absolute;\r\n\t\t\t\tright:-52px;\r\n\t\t\t\ttop:7px;\r\n\t\t\t\twidth:52px;\r\n\t\t\t\theight:52px;\r\n\t\t\t}\r\n\tul.utilityNav{float:right;width:158px;padding-left:58px;overflow:hidden;}\r\n\t\tul.utilityNav li{list-style:none;margin-bottom:3px;}\r\n\t\t\tul.utilityNav li.signedOut\r\n\t\t\t{\r\n \t\tline-height:68px;\r\n\t\t\t\theight:68px;\r\n\t\t\t\tfont-size:15px;\r\n\t\t\t\tmargin-bottom:0;\r\n\t\t\t}\r\n\t\t\t\tul.utilityNav li.signedOut a img{vertical-align:middle;}\r\n\t\t\t\tul.utilityNav li.signedOut a{font-size:17px;}\r\n\t\t\tul.utilityNav li.signedIn\r\n\t\t\t{\r\n \t\tmargin:13px 0;\r\n \t\tmargin-bottom:0;\r\n \t\toverflow:hidden;\r\n\t\t\t} \r\n\t\t\t\tul.utilityNav li.signedIn p\r\n\t\t\t\t{\r\n \t\tmargin-bottom:0;\r\n \t\tfloat:left;\r\n \t\twhite-space:nowrap;\r\n \t\tfont-size:11px;\r\n\t\t\t\t}\r\n\t\t\t\tul.utilityNav a.signOut\r\n\t\t\t\t{\r\n \t\tmargin-left:10px;\r\n \t\tline-height:18px;\r\n \t\tfont-size:9px;\r\n \t\tdisplay:inline;\r\n\t\t\t\t}\r\n\t\t\t\tul.utilityNav li.signedIn ul{clear:both;padding-top:11px;}\r\n\t\t\t\t\tul.utilityNav li.signedIn li{display:inline;}\r\n\t\t\t\t\t\tul.utilityNav li.signedIn li a\r\n\t\t\t\t\t\t{\r\n \t\tdisplay:block;\r\n \t\twidth:auto;\r\n \t\theight:14px;\r\n \t\tfloat:left;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tul.utilityNav li.signedIn li.gameIcon a\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tborder-right:1px solid #3f556d;\r\n\t\t\t\t\t\t\tpadding:0 5px 0 0;\r\n\t\t\t\t\t\t\tmargin-right:5px;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tul.utilityNav li.signedIn li.gameIcon a img\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tposition:relative;\r\n\t\t\t\t\t\t\t\ttop:-2px;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\tul.utilityNav li.signedIn li.messages a\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tbackground:url(\"/images/base_struct_images/db_message_icon.gif\") no-repeat scroll 0 4px transparent;\r\n\t\t\t\t\t\t\tpadding:0 0 0 18px;\r\n\t\t\t\t\t\t\tmargin-right:0; \r\n\t\t\t\t\t\t\tfont-size:11px;\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tul.utilityNav li.signedIn li.friends a\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tbackground:url(\"/images/base_struct_images/db_friends_offline_icon.gif\") no-repeat scroll 4px 3px transparent;\r\n\t\t\t\t\t\t\tpadding:0 0 0 18px;\r\n\t\t\t\t\t\t\tmargin-right:10px;\r\n\t\t\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\t\t\twidth:18px;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tul.utilityNav li.signedIn li.friendsLink a\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tbackground:url(\"/images/base_struct_images/db_friends_offline_icon.gif\") no-repeat scroll 4px 3px transparent;\r\n\t\t\t\t\t\t\tpadding:0 0 0 18px;\r\n\t\t\t\t\t\t\tmargin-right:0;\r\n\t\t\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\t\t\twidth:37px;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tul.utilityNav li.signedIn li.friendsOnline a\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tbackground:url(\"/images/base_struct_images/db_friends_online_icon.gif\") no-repeat scroll 4px 3px transparent;\r\n\t\t\t\t\t\t\tpadding:0 0 0 18px;\r\n\t\t\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\t\t\tmargin-right:10px;\r\n\t\t\t\t\t\t\tfont-size:11px; \t\r\n\t\t\t\t\t\t}\r\n\r\ndiv table.layout { border-collapse: collapse; margin: 0; padding: 0; border: 0; width: 100%;}\r\ndiv table.layout tr { margin: 0; padding: 0; border: 0; }\r\ndiv table.layout tr td { margin: 0; padding: 0; border: 0; vertical-align: top;}\r\n\r\ndiv.block-a { background-color: #1b1d1f; margin: 0 0 8px 0; padding: 0 0 8px 0; float: left; width: 100%;}\r\n\tdiv.block-a h2 { background: url(/images/base_struct_images/bg_h2.gif); height:28px; padding: 8px 0 0 15px; text-transform: uppercase; width: 100%; }\r\n\tdiv.block-a h2.stats_sign_up {text-transform:none; color:#fff;}\r\n\tdiv.block-a h3 { height: 18px; padding: 4px 0 0 15px; background: #20425e;}\r\n\tdiv.block-a h3 { height: 18px; padding: 4px 0 0 15px; background: #021e34; border-top: 1px solid #3f5c94; border-bottom: 1px solid #3f5c94}\r\n\tdiv.block-a h4.smallcaps { font:bold 14px/16px Arial, Helvetica, sans-serif; padding: 2px 0 0 12px; clear: both; float: left; width: 100%;}\r\n\tdiv.block-a.age-gate { background: black;}\r\n\t\tdiv.block-a.age-gate h2 { background: none; text-transform: uppercase; font-size: 19px; color: #fff;}\r\n\t\tdiv.block-a.age-gate div.list-age.addpadding { padding-left: 15px; margin-top: 10px;}\r\n\t\tdiv.block-a.age-gate div.list-age.addpadding p { margin-bottom: 10px; line-height: 15px;}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup1 { background: none; color: #fff; border: none; padding-left: 15px;}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup1 p{ margin-bottom: 17px;}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup1 input.textInput { float: left; margin-right: 10px;}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 { background: none; color: #fff; border: none; padding: 0; float: left;}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 ul { float: left; list-style: none; display: inline;}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 ul li{ float: left; list-style: none; display: inline;}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 a { float: left; margin-right: 15px; outline:0;}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 a.agegatecontinue { background: url(/images/base_struct_images/agegateconfirm.jpg) no-repeat top center; display: block; width: 111px; height: 24px; text-indent: -9000px}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 a.agegatecancel { background: url(/images/base_struct_images/agegatecancel.jpg) no-repeat top center; display: block; width: 87px; height: 24px;text-indent: -9000px}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 a.agegatedl { background: url(/images/base_struct_images/agegatedl.jpg) no-repeat top center; display: block; width: 111px; height: 24px;text-indent: -9000px}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 a.codesubmit { background: url(/images/redeem/btn_submit.jpg) no-repeat top center; display: block; width: 63px; height: 24px; text-indent: -9000px}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 a.code-signin { background: url(/images/redeem/btn_signin.jpg) no-repeat top center; display: block; width: 99px; height: 24px; text-indent: -9000px}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 a.code-signup { background: url(/images/redeem/btn_createaccount.jpg) no-repeat top center; display: block; width: 136px; height: 24px; text-indent: -9000px}\r\n\t\tdiv.block-a.age-gate div.list-age div.formgroup3 a:hover { background-position: bottom center;}\r\n\r\ndiv.block-b { margin: 0 -6px 8px 0;}\r\n\tdiv.block-b h2 { background: url(/images/base_struct_images/bg_h2.gif) no-repeat; height:25px; padding: 5px 0 0 15px; border-bottom: 1px solid #444; text-transform: uppercase; width: 100%; float: left; margin-bottom: 5px;}\r\n\tdiv.block-b h3 { height: 18px; padding: 4px 0 0 15px;float: left; width: 100%;}\r\n\tdiv.block-b h3 a { display: block; margin: 0 8px 0 0; padding: 0; background: #203660 url(/images/base_struct_images/bg_block_a_h3.gif) no-repeat right; }\r\n\tdiv.block-b h4 {padding: 0px 0 0 15px;width: 100%; float: left;}\r\n\r\ndiv.bgdark {background-color:#111; }\r\ndiv.block-db { margin: 0 0 0 0; padding: 0; width: 400px; height: 75px; float: right; position:absolute; }\r\n\r\ndiv.block-c { background: #4a5c62 url(/images/base_struct_images/bg_block_c.gif) no-repeat bottom right; margin: 0; padding: 0 0 2px 0;}\r\n\tdiv.block-c h2 { background: url(/images/base_struct_images/bg_block_c_h2.gif); height:28px; padding: 12px 0 0 15px; text-transform: uppercase;}\r\n\r\ndiv.block-d { background: #4a5c62 url(/images/base_struct_images/bg_block_d.gif) bottom right; margin: 0; padding: 0 0 2px 0;}\r\n\tdiv.block-d h2 { background: url(/images/base_struct_images/bg_block_d_h2.gif); height:28px; padding: 12px 0 0 15px; text-transform: uppercase; color: #fff;}\r\n\r\ndiv.block-f { margin: 0; padding: 0 0 2px 0;}\r\n\tdiv.block-f h2 { background: url(/images/base_struct_images/bg_block_d_h2.gif); height:28px; padding: 12px 0 0 15px; text-transform: uppercase; color: #fff;}\r\n\r\ndiv.block-g { background: #4a5c62 url(/images/base_struct_images/bg_block_g.gif) no-repeat bottom right; margin: 0; padding: 0 0 2px 0;}\r\n\tdiv.block-g h2 { background: url(/images/base_struct_images/bg_block_c_h2.gif); height:28px; padding: 12px 0 0 15px; text-transform: uppercase;}\r\n\r\ndiv.list-a { margin: 0px 10px 15px 15px;}\r\n\tdiv.list-a div.info { float:left; width: 160px; margin: 0; padding: 3px 10px 0 0; }\r\n\tdiv.list-a .floatLeftInline { float:left; display: inline; }\r\n\tdiv.list-a img.ifthen { margin: 3px 10px 5px 0; float: left; }\r\n\tdiv.list-a > h6,\r\n\tdiv.list-a > h5,\r\n\tdiv.list-a > h4, \r\n\tdiv.list-a > p, \r\n\tdiv.list-a > div.stdcontent,\r\n\tdiv.list-a > ul.arrow1 { margin-left: 170px;}\r\n\tdiv.list-a h5 { font-size: 13px; line-height: 16px; }\r\n\tdiv.list-a h5.news { font-size: 12px; margin: 0; padding: 0 0 0 13px; }\r\n\tdiv.list-a p.newsblurb { margin-left: 40px; } \r\n\tdiv.list-a h5.quote { padding: 0 0 15px 0; color: #336e91; font-style: italic; }\r\n\tdiv.list-a-small-margin { margin: 10px 10px 15px 15px; }\r\n\tdiv.list-a-small-margin div.info { display: block; float:left; }\r\n\tdiv.list-a-small-margin div.info img { float: none; margin: 3px 10px 5px 0;}\r\n\tdiv.list-a-small-margin .floatLeftInline { float:left; display: inline;}\r\n\tdiv.list-a-small-margin > h5, \r\n\tdiv.list-a-small-margin > h6, \r\n\tdiv.list-a-small-margin > h4,\r\n\tdiv.list-a-small-margin > p, \r\n\tdiv.list-a-small-margin > div.stdcontent,\r\n\tdiv.list-a-small-margin > ul.arrow1 { margin-left: 43px;}\r\n\tdiv.list-a-small-margin h5 { font-size: 13px; line-height: 16px; }\r\n\tdiv.list-a-small-margin div.top_story_content div.stdcontent { width: auto; }\r\n\r\ndiv.list-b { margin: 0px 10px 15px 15px; }\r\n\tdiv.list-b-jobtext { font: 12px/15px Arial, Helvetica, sans-serif; margin: 0; }\r\n\tdiv.list-b-jobs { font: 12px/15px Arial, Helvetica, sans-serif; margin: 0px 10px 10px 10px; }\r\n\tdiv.list-b-jobs h4 {padding:0; margin:5px 0 5px 0; text-decoration:underline;}\r\n\tdiv.list-b-jobs ul { font: 12px/18px Arial, Helvetica, sans-serif; margin:5px 0 5px 20px;}\r\n\tdiv.list-b-jobs ul li{clear:both;}\r\n\tdiv.list-b-jobtext p { font: 12px/15px Arial, Helvetica, sans-serif; margin-top: 7px; margin-left: 10px; }\r\n\r\nul.results { list-style-type: none; text-transform:none; height:18px; margin: 6px 0 0 0; padding:0; float: right; text-align: right; padding-right: 10px;}\r\n\tul.results li { display: inline; margin: 0; padding:0 4px 0 0; }\r\n\r\n.compareWrap .finder_cont, .boxB .finder_cont { margin: 5px auto 5px auto; width: 266px; }\r\n.compareWrap .finder_cont table tr th, .boxB .finder_cont table tr th { color: White; font: bold 14px Arial, Helvetica, sans-serif; }\r\n.compareWrap .finder_cont table tr td , .boxB .finder_cont table tr td { margin: 0; padding: 1px 1px 1px 5px; border: 0; color: White; text-align:left; }\r\n.compareWrap .finder_cont a, .boxB .finder_cont a { color: #71caef }\r\n.compareWrap .finder_cont a:hover, .boxB .finder_cont a:hover { text-decoration: underline; color: white; }\r\n\r\n.list-b .people_search_results{border-top:1px solid #515151;width:570px;height:auto;margin-bottom:5px; float: left;}\r\n\t.list-b .people_search_results ul.arrow2 { margin: 0;}\r\n\t.list-b .people_search_results ul.arrow2 li { background-position: top left; height: 20px;}\r\n\t.list-b .people_search_results ul li,.list-b .people_search_results ul li a{font-size:12px;}\r\n .list-b .people_search_results span{float:left;margin-top:6px;}\r\n .list-b .people_search_results ul.results{float:right;text-align:right;}\r\n\r\ndiv.list-b h5 { margin: 0; padding: 0 0 0 13px; }\r\ndiv.list-b li { color: #bbb; }\r\n\r\ndiv.list-c { margin: 0px 10px 15px 15px;}\r\n\tdiv.block-a.newsblock2 div.list-c { width: 235px; }\r\n\tdiv.list-c .feature { margin: 3px 0 0 10px; float: right;}\r\n\tdiv.list-c h5 {padding: 3px 0 0 0;}\r\n\tdiv.list-c h5.link_h5 {padding: 3px 0 0 0;}\r\n\tdiv.list-c h5.quote { padding: 0 0 15px 0; font-size: 15px; line-height: 18px; color: #336e91; font-style: italic; }\r\n\tdiv.list-c h6.post { font-size: 10px; color: #fff; font-weight: bold; font-style: normal; margin:0; padding: 0; }\r\n\tdiv.list-c p.main { margin: 0; padding: 0; width: 300px; float: left; }\r\n\tdiv.list-c ul.popup { margin: 0; padding: 0; text-align: right; }\r\n\tdiv.list-c ul.popup li { display: inline; margin: 0 0 0 0; }\r\n\tdiv.list-c ul.popup li a { display: inline; vertical-align: top; margin: 0 0 0 4px;}\r\n\r\ndiv.list-d { margin: 10px 10px 15px 15px;}\r\n\tdiv.list-d img { margin: 3px 10px 0 0; float: right;}\r\n\tdiv.list-d > h3,\r\n\tdiv.list-d > h4,\r\n\tdiv.list-d > h5,\r\n\tdiv.list-d > h6,\r\n\tdiv.list-d > p,\r\n\tdiv.list-d > ul { color: #fff; margin-right: 320px;}\r\n\tdiv.list-d h5 { font-size: 15px; line-height: 18px; }\r\n\tdiv.list-d h5 a { color: #fff;}\r\n\r\ndiv.list-db { margin: 5px; padding: 0; float: left; }\r\n\tdiv.list-db img { margin: 0; padding: 0 ; }\r\n\tdiv.list-db > h3,\r\n\tdiv.list-db > h4,\r\n\tdiv.list-db > h5,\r\n\tdiv.list-db > h6,\r\n\tdiv.list-db > p, \r\n\tdiv.list-db ul { font-size: 12px; margin: 0; padding: 0; }\r\n\tdiv.list-db ul.dbItems { margin: 0; padding: 0; clear:both; text-align: left;}\r\n\tdiv.list-db ul.dbItems_list { margin: 0; padding: 0;}\r\n\tdiv.list-db ul.dbItems_list li { margin: 0; float:left; }\r\n\tdiv.list-db ul.dbItems_list li a { margin: 0; padding:0 2px 0 2px; text-align: left; }\r\n\r\n\tdiv.list-db ul li a.list-db-friends { padding: 0 0 0 18px; background: url(/images/base_struct_images/db_friends_online_icon.gif) no-repeat; background-position: 4px 3px; } \r\n\tdiv.list-db ul li a.list-db-friends-offline { padding: 0 0 0 18px; background: url(/images/base_struct_images/db_friends_offline_icon.gif) no-repeat; background-position: 4px 3px; } \r\n\tdiv.list-db ul li a.list-db-nofriends { padding: 0 0 0 18px;background: url(/images/base_struct_images/db_nofriends_icon.gif) no-repeat; background-position: 0px 3px; } \r\n\tdiv.list-db ul li a.list-db-messages {padding: 0 0 0 18px; background: url(/images/base_struct_images/db_message_icon.gif) no-repeat; background-position: 0px 4px; } \r\n\tdiv.list-db ul li a.list-db-update {padding: 0 0 0 18px; background: url(/images/base_struct_images/newicon_on.gif) no-repeat; background-position: 0px 0px; padding:0 2px 0 18px } \r\n\tdiv.list-db ul li a.list-db-noupdate {padding: 0 0 0 18px; background: url(/images/base_struct_images/newicon_off.gif) no-repeat; background-position: 0px 4px; }\r\n\r\ndiv.list-dbpassport { margin: 5px 0 5px 0px; padding: 0; float: right; }\r\n\tdiv.list-dbpassport ul { margin: 0; padding: 0;}\r\n\r\ndiv.list-e { margin: 10px 10px 15px 15px; }\r\n\tdiv.list-e img { margin: 0 0 8px 0;}\r\n\tdiv.list-e > h3,\r\n\tdiv.list-e > h4,\r\n\tdiv.list-e > h5,\r\n\tdiv.list-e > h6,\r\n\tdiv.list-e h5 { background: url(/images/base_struct_images/arrow_2.gif) no-repeat;}\r\n\tdiv.list-e h5.co { background: url(/images/base_struct_images/updateicon_co.gif) no-repeat; }\r\n\tdiv.list-e h5.co a { padding: 0 0 0 20px }\r\n\tdiv.list-e h5.ib { background: url(/images/base_struct_images/updateicon_ib.gif) no-repeat; }\r\n\tdiv.list-e h5.ib a { padding: 0 0 0 20px }\r\n\tdiv.list-e h5.pr { background: url(/images/base_struct_images/updateicon_pr.gif) no-repeat; }\r\n\tdiv.list-e h5.pr a { padding: 0 0 0 20px }\r\n\tdiv.list-e h5.st { background: url(/images/base_struct_images/updateicon_st.gif) no-repeat; }\r\n\tdiv.list-e h5.st a { padding: 0 0 0 20px }\r\n\tdiv.list-e h5.su { background: url(/images/base_struct_images/updateicon_su.gif) no-repeat; }\r\n\tdiv.list-e h5.su a { padding: 0 0 0 20px }\r\n\r\ndiv.list-f { margin: 10px 10px 15px 15px;}\r\n\tdiv.list-f img { margin: 3px 0 0 10px; float: right;}\r\n\tdiv.list-f > h3,\r\n\tdiv.list-f > h4,\r\n\tdiv.list-f > h5,\r\n\tdiv.list-f > h6,\r\n\tdiv.list-f > p,\r\n\tdiv.list-f > ul { color: #fff; }\r\n\tdiv.list-f h5 { font-size: 15px; line-height: 18px; }\r\n\tdiv.list-f h5 a { color: #fff;}\r\n\tdiv.list-f h5.list { margin: 5px 0 5px 0; font-size: 13px; line-height: 18px; }\r\n\r\ndiv.list-g { margin: 4px 10px 0 15px; }\r\n\tdiv.list-g img { margin: 3px 10px 5px 0; float: left;}\r\n\tdiv.list-g a.floatLeftInline { float: left; display: inline; }\r\n\tdiv.list-g > h5, \r\n\tdiv.list-g > h6, \r\n\tdiv.list-g > p, \r\n\tdiv.list-g > ul.arrow1 { margin-left: 76px;}\r\n\tdiv.list-g h5 { font-size: 15px; line-height: 18px; }\r\n\r\ndiv.list-h { margin: 6px 3px 8px 7px; padding: 0; }\r\n\tdiv.list-h img { margin: 0px 0 8px 0;}\r\n\tdiv.list-h img { margin: 0px 0 8px 0;}\r\n\tdiv.list-h h5.title { font-size: 15px; line-height: 18px; }\r\n\tdiv.list-h h5{ font-weight: normal; font-size: 13px; padding-bottom: 2px; line-height: 18px; font-weight: bold;}\r\n\tdiv.list-h p{ font-weight: normal; font-size: 11px; margin-bottom: 0px; padding-bottom: 0px; color: #9d9d9d; padding-left: 11px;}\r\n\tdiv.list-h strong{ font-weight: normal; font-size: 14px; padding-bottom: 0px;}\r\n\r\ndiv.list-i { margin: 6px 10px 0 15px; padding: 5px 0 5px 0; background: #ddd url(/images/base_struct_images/bg_list_i.gif);}\r\n\tdiv.list-i img { margin: 0;}\r\n\r\ndiv.list-k { margin: 0px 10px 5px 15px; }\r\n\r\n.pagination_container { padding: 5px; background: #3f484b; border: solid 1px #3f484b;} \r\n.pagination_container .first_previous_arrows { margin-top: 2px; padding: 0 0 0 10px;} \r\n.pagination_container .last_next_arrows { padding: 0 10px 0 0;}\r\n\r\ndiv.list-m { margin: 0 0 1px 0; padding: 5px 10px 5px 15px; background-color: #3f3f40; overflow: hidden; text-align: center; }\r\n\tdiv.list-m img { margin: 3px 10px 5px 0; float: left; }\r\n\tdiv.list-m img.thumbnail { margin: 5px 5px 5px 0; float: none; }\r\n\tdiv.list-m > ul.arrow1 { margin-left: 76px;}\r\n\tdiv.list-m h5 { font-size: 12px; margin: 0; padding: 4px 0 0 0; text-align: left; }\r\n\tdiv.list-m h6 { font-size: 10px; color: #fff; text-align: left; }\r\n\tdiv.list-m p { font-size: 11px; color: #fff; }\r\n\r\ndiv.list-t { margin: 0 0 1px 0; padding: 5px 10px 5px 15px; background-color: #000; }\r\n\tdiv.list-t p { color: #fff; }\r\n\r\ndiv.list-n { margin: 8px 0 1em 0; }\r\n\tdiv.list-n ul { list-style-type: none; margin: 0; padding: 2px 0 2px 0; color: #222; background: #d0d6dc; }\r\n\tdiv.list-n ul li { font-size: 13px; font-weight: bold; display: inline; text-align: left; margin: 0 0 0 15px; padding: 0; }\r\n\tdiv.list-n ul li.select { display: inline; text-align: left; margin: 0; padding: 0; }\r\n\tdiv.list-n h4 { margin: 0; padding: 0 0 0 15px; color: #222; }\r\n\tdiv.list-n h5 { margin: 0; padding: 4px 0 0 15px; color: #222; background: #d0d6dc; }\r\n\tdiv.list-n h6 { margin: 0; padding: 0 0 4px 15px; color: #222; background: #d0d6dc; }\r\n\r\ndiv.list-o { margin: 0 10px 15px 15px; }\r\n\tdiv.list-o h5 { margin: 10px 0 0 0; color: #fff; }\r\n\r\ndiv table.grid { border-collapse: collapse; margin: 8px 0 0 0; padding: 0; border: 0; width: 100%; float: left; }\r\n\tdiv table.grid h3 { height: 18px; margin: 0; padding: 4px 0 0 15px;font-size:12px;\t}\r\n\tdiv table.grid tr { margin: 0; padding: 0; border: 0; }\r\n\t\tdiv table.grid tr th { margin: 0; padding: 0 0 0 0; border: 0; vertical-align: top; text-align:left; overflow: hidden; word-wrap: break-word; background:#0E0F10 url(/images/base_struct_images/contentBg/boxD-back.jpg) repeat-x scroll center bottom; }\r\n\t\t\tdiv table.grid tr th h3 a { display: block; padding: 0;text-decoration: none; font-size: 14px; line-height: 40px; text-transform:none; color:white;}\r\n\t\t\tdiv table.grid tr th h3 a:hover { text-decoration: underline;}\r\n\t\t\tdiv table.grid tr th h4 { font-weight: normal; height: 18px; margin: 0; padding: 4px 0 0 5px;width: 100%;}\r\n\t\t\tdiv table.grid tr th h4 a { font-weight: normal; display: block; padding: 0; background: #d0d6dc url(/images/base_struct_images/bg_block_a_h3.gif) no-repeat right; text-decoration: none; }\r\n\t\t\tdiv table.grid tr th h4 a:hover { text-decoration: underline;}\r\n\t\t\tdiv table.grid tr td { margin: 0; padding: 0 0 0 0; border: 0; vertical-align: top; overflow: hidden; word-wrap: break-word; border-bottom: 1px solid #222222; border-top: 1px solid #222222;}\r\n\t\tdiv.community_colB table.grid tr th { height:45px;}\r\n\t\tdiv.LongBoxBackground table.grid tr th { height:auto;}\t\t\r\n\t\tdiv table.grid tr.even { background: #2F3032; } \r\n\t\tdiv table.grid tr.odd { background: #363d40; }\r\n\t\tdiv table.grid tr.new { background: #5f585b; }\r\ndiv table.grid_default { table-layout: fixed }\r\n\r\ndiv table.bio { border-collapse: collapse; margin: 3px 0 0 0; padding: 0; border: 0; width: 436px; }\r\n\tdiv table.bio tr { margin: 0; padding: 0; }\r\n\tdiv table.bio tr td { margin: 0; padding: 0 0 1px 0; border: 0; vertical-align: top;}\r\n\tdiv table.bio tr td p { height: 18px; margin: 0; padding: 4px 0 0 10px; background: #203660; color: #fff; }\r\n\r\ndiv.list-a .regularNewsIcon { margin: 3px 10px 5px 0; float: left; width: 30px; height: 30px; position:relative; min-height:30px; display:inline;}\r\ndiv.list-a-small-margin .regularNewsIcon { margin: 3px 10px 5px 0; float: left; width: 30px; height: 30px;position:relative; min-height:30px; display:inline;}\r\ndiv.list-c ul.termsofuse li {padding:0 0 10px 10px; list-style-type:none; }\r\ndiv.list-c h3 { width: 600px; display: block; }\r\ndiv.colLast div.block-b div.list-c h3 { width: 100%; }\r\ndiv.list-c h3 span.notCurrentStepSpan { color: #6b6d70; font-weight: lighter; }\r\ndiv.list-c h5.clear { clear:both; }\r\n\r\ndiv.stdcontent {font: 12px/20px Arial, Helvetica, sans-serif; color:#bbb; margin: 0 0 1em 0; padding: 0; }\r\n\r\n.project_hub_left { float:left; margin:5px 0 0 5px; width: 275px; }\r\n.player_info { margin:0; padding: 10px 0 0 10px; width: 210px; height: 250px; position:relative; color: White; }\r\n.player_info ul { margin: 0; padding: 0px; list-style: none; color: #ffffff; }\r\n.player_info ul li { color:#bababa; font-size: 14px; line-height:20px; padding: 0 0 3px;}\r\n.player_info ul li.larger { color:#fff; font-size: 20px; line-height:30px; padding: 0;}\r\n.player_info ul li.larger a { font-size: inherit;}\r\n.player_info .location {padding-top:5px; color: #ffffff; }\r\n\r\n.content {padding:0;margin:0; }\r\n.content a.rating {float:right;margin:60px 5px 0 0; }\r\n\r\n.medals { margin: 0; padding: 0; height: 55px; background-color: #141618; overflow: hidden; border-bottom: solid 1px #999a9b; border-top: solid 1px #494a4b; }\r\n.medals ul { margin: 0; padding: 0; list-style: none; }\r\n.medals ul li {margin: 0; padding: 0; display: inline; }\r\n\r\n.medal_over_img { margin: 0; padding: 5px 0px 5px 0px; float: left; }\r\n\r\n.overview { margin: 0; padding: 0; width:281px;}\r\n.overview .overview_table {padding:0; margin:0; }\r\n.overview table th { color: White; font: bold 12px Arial, Helvetica, sans-serif; text-align: center; }\r\n.overview table td { padding: 1px 2px 1px 2px; color: White; font: 10px Arial, Helvetica, sans-serif; text-align: center; }\r\n.overview table th.playlist { padding-left: 0px; text-align: left; }\r\n.overview table td.playlist { padding-left: 0px; text-align: left; }\r\n.overview table td.experience { padding-left: 0px; text-align:center; }\r\n\r\n.gamertag { margin: 0; padding: 1px 0px 0 0px; width: 256px; float:right; overflow: hidden; }\r\n.faq { margin: 0; padding: 14px 275px 0 0; float: right; }\r\n.field { width: 110px; margin: 0; padding: 5px 20px 0 0; text-align: right; vertical-align: top; font: bold 12px Arial,Helvetica, sans-serif; color: white; } \r\n.text_entry { width: 410px; }\r\n.display { margin: 0px; padding: 0px; float: right; }\r\n.title { font-weight: normal; }\r\n.gamercard {visibility:visible;}\r\n\r\n.error_message { padding: 8px 20px 5px 0; font-size: 15px; line-height: 18px; }\r\n\r\ndiv.topNews_RightCategoryImage { margin:0px 0 0 0; padding: 0; float: left; position:relative; width:310px; height:255px; }\r\ndiv.topStoryImg {float:left;margin:0 5px 0 5px;height:40px;width:30px;padding:7px 0 0 0;}\r\ndiv.newsItem {background: transparent url(/images/base_struct_images/news/topstorybodyback.png);border-top:2px solid #414141;padding:0;margin: 0 0 10px;}\r\ndiv.newsItem .newsheaderwrapper { background: transparent url(/images/base_struct_images/news/newsgradientspotlight.png) repeat-x scroll center top;display:block; height:55px; }\r\ndiv.mediaNewsItem {border-top:solid 1px #3e3e3e; padding:0 0 0px 0;}\r\ndiv.newsImg {float:left;margin:0 5px 0 10px;height:30px;width:30px;padding:10px 0 0 0;}\r\ndiv.regnewsItem {background: transparent url(/images/base_struct_images/news/newsbodyback.png);border-top:2px solid #485b62;padding:0;margin: 0 0 10px;}\r\ndiv.news_block .regnewsItem .newsheaderwrapper { background: transparent url(/images/base_struct_images/news/newsgradient.png) repeat-x scroll center top;display:block; height:55px; }\r\ndiv.news_left_col {float:right;width:165px;display: block;padding:10px 4px 10px 0px;margin:0;}\r\ndiv.news_header { height:265px;}\r\ndiv.news_header h5 {font-size:25px;line-height:40px;width:100%;padding:0;margin:0;font-weight:normal;}\r\nspan.news_headline {font:15px/17px Arial, Helvetica, sans-serif; font-weight:800; padding-bottom: 56px;}\r\ndiv.newsStoryBody ul, div.top_story_content ul { margin-left: 20px; margin-top: 10px; margin-bottom: 10px; }\r\ndiv.newsStoryBody ol, div.top_story_content ol { margin-left: 20px;margin-top: 10px; margin-bottom: 10px; list-style: decimal;}\r\ndiv.newsStoryBody a img{ width:100%; }\r\n\r\ndiv.colLast.newsStoryHolder {width:902px; background-color: black; background-repeat:no-repeat; background-position: top left;}\r\n.top_story_content {width: auto; float: left; margin:10px 0 15px 0;padding:0 15px; }\r\n.top_story_content div.stdcontent{ width: 700px; font-size: 13px;}\r\n.top_story_content div.stdcontent p { font-size: 13px; }\r\n.rss_blog {float:right;margin:-20px 5px 0 0;}\r\n.blog_msg_box {width:298px;border:solid 1px #555555;margin:7px 0 0 0;}\r\ndiv.navblock_right ul li a.topNewsNav_DarkBlock { display:block; width: 150px; color:#eee; font:11px Arial, Helvetica, sans-serif; padding: 2px 5px 0 5px; height:31px; background: url(/images/base_struct_images/selected.gif) top left; }\r\ndiv.navblock_right ul li a:hover.topNewsNav_DarkBlock {display:block; width: 150px; text-decoration:none; background: url(/images/base_struct_images/selected.gif) bottom left; }\r\ndiv.navblock_right ul li a.topNewsNav_LightBlock {display:block; width: 150px; color:#eee; font:11px Arial, Helvetica, sans-serif; padding: 2px 5px 0 5px; height:31px; background: url(/images/base_struct_images/selected.gif) bottom left; }\r\ndiv.navblock_right ul li a:hover.topNewsNav_LightBlock {text-decoration:none;}\r\ndiv.navblock_right ul li a.last {display:block; width: 190px; padding: 10px 0 0 0px;float:right; text-align:center; height:30px; }\r\n\r\n.community_cols { margin: 1px 0 0 0; padding: 0; width: 902px; height: 100%; background: black;}\r\n.community_cols_flip { margin: 1px 0 0 0; padding: 0; width: 902px; height: 100%; background: url(/images/base_struct_images/contentBg/body_bg_flip.gif) repeat-y; }\r\n\t.community_cols_flip .col{width: 601px;}\r\ndiv.community_colA { width: 300px; height: 100%; margin: 0; padding: 0; float: left; }\r\ndiv.community_colB { width: 902px; height: 100%; margin: 0; padding: 0; float: left; }\r\n.online_sidebar { width: 300px; height: 100%; background: #0c0c0c url(/images/base_struct_images/headers/headersidebar.jpg) top left no-repeat; }\r\n.signup_header { width: 902px; height: 336px; float: left; background: url(/images/base_struct_images/headers/signup_header.jpg) top left no-repeat; }\r\n.signup_header a.bluebutton { width: 200px; float:right; margin:15px; }\r\n.com_header_public { width: 902px; height: 100px; float: left; background: url(/images/base_struct_images/headers/seventhcolumn.jpg) top left no-repeat; }\r\n.com_header_groups { width: 902px; height: 100px; float: left; background: url(/images/base_struct_images/headers/seventhcolumn.jpg) top left no-repeat; }\r\n\r\n.text_large { font: 24px/33px Arial, Helvetica, sans-serif; color: #fff; border-bottom: 2px solid #aaaaaa; }\r\n.news_tag_txt { font: 14px/16px Arial, Helvetica, sans-serif; color: #fff; text-transform:none; text-decoration:none; margin:6px 0 0 0; float:left; }\r\n.news_tag_hdr {height:30px;padding:0 0px 0 15px;border-top:solid 1px #555555;}\r\n.community_trans { margin: 0px; width: 300px; height: 130px; background: #000000; opacity: 0.35; -moz-opacity: 0.35; filter: alpha(opacity=35); }\r\n\r\n.community_hub { width: 282px; margin: -124px 0 22px 0; position: relative; left: 9px; }\r\n\t.community_hub ul { margin: 0; padding: 0; list-style-type: none; }\r\n\t.community_hub ul a:link { font: 16px/30px Arial, Helvetica, sans-serif; color: #dad9d9; display: block; width: 272px; height: 30px; margin: 7px 0 0 0; padding: 0 0 0 10px; background: url(/images/base_struct_images/linkBt/button.gif) no-repeat left bottom; }\r\n\t.community_hub ul a:visited { font: 16px/30px Arial, Helvetica, sans-serif; color: #dad9d9; display: block; width: 272px; height: 30px; margin: 7px 0 0 0; padding: 0 0 0 10px; background: url(/images/base_struct_images/linkBt/button.gif) no-repeat left bottom; }\r\n\t.community_hub ul a:hover { background: url(/images/base_struct_images/linkBt/button.gif) no-repeat left top; text-decoration: none; }\r\n\t.community_hub ul a.selected { background: url(/images/base_struct_images/linkBt/button.gif) no-repeat left top; text-decoration: none; }\r\n\r\n.signup_cont {width:872px; padding:15px;}\r\n\t.signup_cont .signup_incentive {width:872px; height:auto; display:block; margin-bottom:15px; float: left;}\r\n\t.signup_cont .signup_incentive .image{float:left;}\r\n\t.signup_cont .signup_incentive .words{float:right; width: 555px; background: transparent url(/images/base_struct_images/contentBg/signupwords.jpg) repeat-x top; min-height:152px; padding: 15px;}\r\n\t.signup_cont .signup_incentive .words a {font-size: inherit; font-style: inherit; line-height: inherit;}\r\n\t.signup_cont .signup_incentive .words h3 {margin:0 0 1em; font-size: 18px; color: #fcfcfc;}\r\n\t.signup_cont .signup_incentive .words ol {list-style:decimal; margin:0; padding: 0 0 0 20px;}\r\n\t.signup_cont .signup_incentive .words ol li {padding-bottom:1em; font-size: 13px; color: #c9c9c9;}\r\n\t.signup_cont .signup_incentive .words p {padding-bottom:1em; font-size: 13px; color: #c9c9c9; margin: 0;}\r\n\t.signup_cont .signup_incentive .words a.bluebutton {line-height:24px; width: 210px;}\r\n\r\n/* boxB = grey box /blue top; used on forums top topics and stats people search */ \r\n.boxB { width: 281px; margin: 7px auto 10px 8px; border: solid 1px #63605d; background: #404040 url(/images/base_struct_images/contentBg/blueheader.jpg) no-repeat top left; float: left;}\r\n.boxB ul { height: 35px; list-style-type: none; margin: 3px 0 0 5px; padding: 0; }\r\n.boxB ul li h3 { margin: 0; padding: 0; font: 14px/14px Arial, Helvetica, sans-serif; color: #fff; text-transform: none; }\r\n.boxB ul li h4 { margin: 0; padding: 0; font: italic 10px/15px Arial, Helvetica, sans-serif; color: #6d7179; text-transform: none; }\r\n.boxB ul li a { color: #71caef; }\r\n.boxB ul li a:hover { color: #fff; }\r\n.boxB h4 { margin: 0; padding: 10px 0 0 10px; text-align: left; text-transform: none; font-weight: normal; font-size: 14px; height: 26px;}\r\n.boxB .recent_info_cont { width: 161px; height: 90px; float: left; background: url(/images/base_struct_images/contentBg/halo2statbg.gif) no-repeat top left; border-bottom: 1px solid #252626; }\r\n.boxB .recent_id_info_cont { width: 135px; height: auto; float: right; }\r\n.boxB .recent_pic_halo2 { width: 120px; height: 90px; margin: 0 0 0 0; float: left; border-bottom: 1px solid #252626; }\r\n.boxB .recent_id_pic { width: 70px; height: 70px; margin: 0 0 0 0; float: left; }\r\n\r\n/* boxA = grey box ; used on forums and stats */\r\n.boxA { width: 281px; margin: 7px auto 0 8px; border: solid 1px #63605d; background: #404040 url(/images/base_struct_images/contentBg/blueheader.jpg) no-repeat top left; float: left;}\r\n.profile_boxA .boxA { background: transparent url(/images/base_struct_images/contentBg/profile-card-back.png) no-repeat bottom right; border: none; float: left; height: 70px; margin: 0 auto 10px 0; width:215px;}\r\n.boxA ul { height: 35px; list-style-type: none; margin: 3px 0 0 5px; padding: 0; }\r\n.boxA ul li h3 { margin: 0; padding: 0; font: 14px/14px Arial, Helvetica, sans-serif; color: #fff; text-transform: none; }\r\n.boxA ul li h4 { margin: 0; padding: 0; font: italic 10px/15px Arial, Helvetica, sans-serif; color: #6d7179; text-transform: none; }\r\n.boxA ul li a { color: #71caef; }\r\n.boxA ul li a:hover { color: #fff; }\r\n.boxA .grid { margin: 5px auto 5px auto; width: 266px; height: 141px; background: transparent url(/images/base_struct_images/contentBg/grid.gif); }\r\n.boxA .daily_count_cont { float:right; } \r\n.boxA ul.daily_count { margin: 4px 0 0 0; width: 100%; height: 25px; border-top: solid 1px #545454; border-bottom: solid 1px #272727; } \r\n.boxA ul.daily_count li { display: block; float: left; margin: 0 0 0 5px; font: 14px/27px Arial, Helvetica, sans-serif; color: #fff; } \r\n.boxA ul.daily_count li.styled { font: italic 12px/27px Arial, Helvetica, sans-serif; color: #6D7179; }\r\n.boxA h4 { float:right; font-size: 14px; font-weight: normal; margin:0; padding:0; text-align:left; text-transform:none; width: 135px; line-height:20px}\r\n.boxA h4 a { font-size: 14px; width: 125px; line-height:20px; height: 20px; display:block; background: url(/images/base_struct_images/contentBg/profile-link-arrow.png) no-repeat right;}\r\n.boxA .campaign_pic { width: 40px; height: 56px; padding: 8px 2px 0 7px; float: left; }\r\n.boxA ul.recent_info { float:right; margin:0; padding: 0 0 0 4px; width: 135px; }\r\n.boxA .recent_info_cont { width: 161px; height: 90px; float: left; background: url(/images/base_struct_images/contentBg/halo3statbg.gif) no-repeat top left; border-bottom: 1px solid #252626; }\r\n.boxA .recent_id_info_cont { width: 135px; height: auto; float: right; }\r\n.boxA .recent_info_cont_ss { width: 121px; height: 90px; float: left; background: url(/images/base_struct_images/contentBg/halo3statbg.gif) no-repeat top left; border-bottom: 1px solid #252626; }\r\n.boxA .recent_info_cont_sp { width: 161px; height: 90px; float: left; position:relative; margin: -90px 0 0 0px; }\r\n.boxA .recent_pic_halo3 { width: 120px; height: 90px; margin: 0 0 0 0; float: left; border-bottom: 1px solid #252626; }\r\n.boxA .recent_pic_halo3_ss { width: 160px; height: 90px; margin: 0 0 0 0; float: left; border-bottom: 1px solid #252626; }\r\n.boxA .recent_pic_halo3_sp { width: 281px; height: 90px; margin: 0 0 0 0; float: left; border-bottom: 1px solid #252626; }\r\n.boxA .recent_id_pic { width: 70px; height: 70px; margin: 0 0 0 0; float: left; }\r\n.boxA .recent_info_cont_ss ul.recent_info li.rating_box a { width: 10px; height: 11px; margin: 0 0 0 2px; float: left; } \r\n.boxA .recent_info_cont_ss ul.recent_info li.rating_box a img { display: inline; border: none; }\r\n.boxA .recent_info_cont_ss ul.recent_info li.rating_box a:hover { border: dashed 1px #ff00ff; } \r\n.boxA .recent_info_cont_ss ul.recent_info li.rating_box a.rating_star_on { background: transparent url(/images/base_struct_images/online/goldseptagon_small.gif ) no-repeat; }\r\n.boxA .recent_info_cont_ss ul.recent_info li.rating_box a.rating_star_off { background: transparent url(/images/base_struct_images/online/offseptagon_small.gif) no-repeat; }\r\n\r\n.community_colA .wrapper { margin: 3px 0 3px 0; }\r\n\r\n.community_colB .spotlight { width: 594px; height: 90px; margin: auto; padding: 4px 4px 0 4px; list-style: none; background: #000 url(/images/base_struct_images/contentBg/communityfilesgradient.jpg) repeat-x left top; } \r\n.community_colB .spotlight_online { width: 598px; height: 90px; margin: auto; padding: 4px 0 0 4px; list-style: none; background: #000 url(/images/base_struct_images/contentBg/communityfilesgradient.jpg) repeat-x left top; }\r\n.community_colB .spotlight_files { width: 902px; height: 90px; list-style: none; padding:0; margin:0 0 0 0; background: #000 url(/images/base_struct_images/headers/filestabbanner.jpg) left top; }\r\n.community_colB .spotlight h1 { float: left; font: 22px/28px Arial, Helvetica, sans-serif; color: #fff; padding:4px 0 0 10px; }\r\n.community_colB .spotlight h3 { float: right; font: italic 12px/33px Arial, Helvetica, sans-serif; text-transform: none; color: #fff; margin: 0; padding: 0;}\r\n.help {margin-top:8px;}\r\n.help a { width: 30px; height: 22px; float: right; background: transparent url(/images/base_struct_images/linkBt/helpicon.gif) no-repeat center top; }\r\n.help a:hover { width: 30px; height: 22px; float: right; background: transparent url(/images/base_struct_images/linkBt/helpicon.gif) no-repeat center bottom; }\r\n.community_colB .spotlight .rss {float: right;padding: 11px 15px 0 0px; }\r\n.community_colB .spotlight .return_link { float: left; padding: 11px 5px 0 15px;}\r\n\r\n.community_colB .profile_strip { width: 602px; margin: -55px 0 0 0; float: right; border-top: solid 1px #666666; border-bottom: solid 1px #666666; background: #161616; z-index: 1000; }\r\n\t.community_colB .profile_strip div.model {float:left; width:185px; height:185px; margin:5px; border-top: solid 2px #eee; border-left: solid 2px #eee; border-bottom: solid 2px #666666; border-right: solid 2px #666666;}\r\n\t\t.community_colB .profile_strip div.model img { width:185px; height:185px; }\r\n\t.community_colB .profile_strip div.header{ font: 14px/16px Arial, Helvetica, sans-serif; color:#eee; padding: 0 0 5px 0;}\r\n\r\n\r\n\r\n\r\n.content_matte { position: static; margin: 0; padding: 0 0 10px 0; width: 100%; height: 100%; border-top: solid 1px #2a2b2e; background: #303437 url(/images/Games/Halo3/h3-project-back.jpg) repeat-x scroll center top; float:left; }\r\n.content_matte div.list-b table { float: left;}\r\n.content_matte div.colLast div.list-b span table tbody tr td{ min-width: 250px !important;}\r\n.content_matte div.list-b table h4{ width: 100%; }\r\n\r\ndiv.filesetAddWindowContainer { margin: 7px 5px 5px 5px; font: normal 11px Arial, Helvetica, sans-serif; text-transform: none; }\r\n\tdiv.filesetAddWindowContainer p { margin-bottom: 10px; padding-left:10px; }\r\n\tdiv.filesetAddWindowContainer div.user_content_mini_outer_shell { float: left; margin-right:0px; }\r\n\tdiv.filesetAddWindowContainer ul.addToFileSet { margin: 0 0 0 3px; width:265px; padding: 0; list-style-type: none; overflow: hidden; }\r\n\tdiv.filesetAddWindowContainer ul.addToFileSet li { font: normal 11px Arial, Helvetica, sans-serif; text-transform: none; }\r\n\tdiv.filesetAddWindowContainer .addToFileSet{width:270px;float:right;position:relative;}\r\n\tdiv.filesetAddWindowContainer .addToFileSet .myFileSets{float:left;clear:both; }\r\n\tdiv.filesetAddWindowContainer .addToFileSet .myFileSets span.tokenCount { color: #fff; font-size: 14px; font-weight: bolder; }\r\n\tdiv.filesetAddWindowContainer .addToFileSet .input-cont {color:#000;float:right;padding:5px 12px 0 0;}\r\n\tdiv.filesetAddWindowContainer .addToFileSet .addText {padding:12px 0 0 0; clear:both;}\r\n\r\n.boxD_outer { margin:5px 0px 5px 0px; border: solid 1px #666666; float: left; background: #0e0f10 url(/images/base_struct_images/contentBg/boxD-back.jpg) repeat-x bottom; }\r\n.boxD_inner { border: solid 1px #000; }\r\n.boxD { width: 285px; float: left; }\r\n\t.boxD ul.profile { height:60px; line-height:60px; }\r\n\t.boxD ul.profile li {padding-left: 15px; line-height: 60px;}\r\n\t.boxD h3 { margin: 0; padding:0 0 0 10px; height:25px; line-height: 25px; font: 12px/25px Arial, Helvetica, sans-serif; color:#fff; text-transform: none; font-weight: normal; border-bottom: 1px solid #303437;background: transparent url(/images/base_struct_images/contentBg/tableheadergradient.jpg) repeat-x;}\r\n\t.boxD p { margin: 10px 0 0 10px; display: block; float: left; }\r\n\t.boxD ul { margin: 0; list-style-type: none; }\r\n\t.boxD ul li { float: left; font-size:12px; line-height: 15px; }\r\n\r\n.sContentpopup h1 { display: none; }\r\n\r\n.community_colB .spotlight_career { width: 892px; height: 90px; margin: auto; padding: 4px 0 0 10px; list-style: none; background: #000 url(/images/base_struct_images/contentBg/communityfilesgradient.jpg) repeat-x left top; }\r\n.community_colB .spotlight_career h1{padding:4px 0 0 0;}\r\n\r\nul.link_list { padding: 0; width:800px; height:35px; list-style-type: none; float:left; line-height:35px; }\r\nul.link_list li { display:inline; float:left; margin-right:10px; font: 12px/35px Arial, Helvetica, sans-serif;}\r\nul.link_list li a.social_link { line-height: 35px;}\r\nul.link_list li.settings_msg { margin:0 0 35px 10px; }\r\n\r\n\r\nul.pagination {padding-top:4px;}\r\n\r\n/* Message Popover */\r\n.message_popover_overlay { z-index: 2000; position: fixed; top:50%; bottom:50%;left:50%;right:50%; float: none; }\r\n.message_popover_cont {\tborder: solid 2px #4b4b4b; width: 398px; position: relative; margin: -100px 0 0 -201px; padding: 0; clear: both; } \r\n\r\n.message_popover { width: 396px; border: solid 1px #000; background: #000; } \r\n.message_popover .heading { padding: 0 0 2px 9px; text-align:left; font-size: 24px;line-height: 32px; color: #fff; font-weight: normal; position: relative; } \r\n.message_popover .heading img { position: absolute; right: 5px; top: 5px } \r\n.message_popover .table_cont { width: 205px; height: 45px; padding: 0 0 0 10px; float: left; } \r\n.message_popover table { border-collapse: collapse; width: 205px; margin: 0; padding: 0; font-weight: normal; color: #fff; table-layout: fixed; } \r\n.message_popover table td span.zeroslots { color: #ff2200; }\r\n\r\n.message_popover .memory_cont { padding: 10px 0 0 0; width: 181px; height: 35px; float: left; } \r\n.message_popover .memory_meter { width: 170px; height: 25px; background: #1f5fa3; position: relative; } \r\n.message_popover .memory_meter .memory { height: 25px; float: left; background-color: #339; } \r\n.message_popover .memory_text { display: block; line-height: 25px; padding: 0 0 0 6px; position: absolute; font-weight: normal; color: #fff; }\r\n\r\n.message_popover .error_pic { height: 100px; width: 100px; float: left; } \r\n.message_popover .error_message_cont {text-align:left; background: #fff; float: left; height: 88px; width: 280px; color: #000; padding: 12px 0 0 12px; padding-right:4px; font-weight: normal; } \r\n.message_popover .error_heading {text-align:left; font-size: 16px; font-weight: bold; padding: 0 0 10px 0; }\r\n\r\n.message_popover ul { margin: 0; padding: 10px 0 10px 0; float: left; } \r\n.message_popover ul li { display: block; float: left; padding: 0 0 0 8px; } \r\n\r\n.message_popover_cont .message_popover a { color: #3366ff; text-decoration: none; }\r\n.message_popover_cont .message_popover a:hover { color: #3366ff; text-decoration: underline; }\r\n.message_popover_cont .message_popover a:visited { color: #3366ff; text-decoration: none; }\r\n.message_popover_cont .message_popover a:active { color: #3366ff; text-decoration: none; }\r\n.message_popover a.bt_ok { width: 85px; height: 30px; float: left; background: url(/images/base_struct_images/messages/ok.gif) no-repeat; background-position: 0 0; } \r\n.message_popover a.bt_ok:hover { background-position: 0 -30px; }\r\n.message_popover a.bt_service_record { width: 286px; height: 30px; float: left; background: url(/images/base_struct_images/messages/servicerecord.gif) no-repeat; background-position: 0 0; } \r\n.message_popover a.bt_service_record:hover { background-position: 0 -30px; }\r\n.message_popover_cont .message_popover .error_message_cont a { color: #3366ff; text-decoration: none;} \r\n.message_popover_cont .message_popover .error_message_cont a:hover { color: #3366ff; text-decoration: underline;} \r\n.message_popover_cont .message_popover .error_message_cont a:visited { color: #3366ff; text-decoration: none;} \r\n.message_popover_cont .message_popover .error_message_cont a:active { color: #3366ff; text-decoration: none;} \r\n\r\n.page_overlay {width:100%;height:100%;position:fixed;z-index:1001;top:0;left:0;right:0;bottom:0; background-color:Black; opacity:0.55; -moz-opacity:0.55;}\r\n\r\n.content_ratings_history { height: 100%; padding: 15px 0 10px 0; clear: both; }\r\n\r\ndiv.list-j { margin: 0; }\r\ndiv.list-j ul.pagination { list-style-type: none; margin: 0; padding: 0px 10px 4px 15px; color: #222; background: none; }\r\ndiv.list-j ul.pagination li { font-size: 11px/11px; font-weight: bold; color:#000; display: inline; text-align: left; margin: 0; padding: 0; }\r\ndiv.list-j ul.pagination li.chunk {color:#fff; display: inline; text-align: left; margin: 0; padding: 0 4px 0 4px; }\r\ndiv.list-j ul.pagination li a { display: inline; margin: 0; padding: 0; }\r\ndiv.list-j ul.pagination li a.page { text-decoration: none; display: inline; margin: 0; padding: 2px 4px 2px 4px; border: none; } \r\ndiv.list-j ul.pagination li a.page:hover { border: #71caef solid 1px; padding: 1px 3px 1px 3px; }\r\ndiv.list-j ul.pagination li img {display: inline; margin: 0; padding: 0; }\r\ndiv.list-j ul.pagination li.selected { display: inline; margin: 0; padding: 2px 4px 2px 4px; background: #EEEEEE; border: #787878 solid 1px;}\r\ndiv.list-j ul li.direction {font-size: 11px; font-weight: bold; color:#222; display: inline; text-align: left; margin: 0; padding: 0; }\r\ndiv.list-j ul li.direction a {display: inline; margin: 0; padding: 0; }\r\ndiv.list-j h5 { margin: 0; padding: 4px 0 2px 15px; color: #fff; background: #203660; }\r\ndiv.list-j h6 { margin: 0; padding: 0 0 4px 15px; color: #fff; background: #203660; }\r\ndiv.list-j h6.new { font-size: 10px; color: #fff; font-weight: bold; font-style: normal; margin:0; padding: 0; }\r\n\r\n.job_block_hdr { margin:5px 15px 0px 15px; height:38px; border-bottom:solid 2px #5b5b5b; padding-bottom: 5px;}\r\n.job_block_hdr a { float:right; margin:12px 0 0 0; }\r\n.job_block_hdr img { float:left;}\r\n\r\n.text_small_news { font: 16px/18px Arial, Helvetica, sans-serif; color: #fff; margin:5px 0 0 10px; }\r\n.news_date {width:130px;}\r\n\r\n.job_nav {margin: 8px 7px 7px 7px;}\r\n.category_nav {margin: 8px 0 7px 8px; overflow:hidden;}\r\n.history_main { background-color: #1e1e1e; width: 603px; margin: 0; padding: 0; color: #bbb; float: right; }\r\n\r\n.news_main { background-color: #1e1e1e; width: 590px; margin: 0; padding: 0; float: left; }\r\n.news_block { width: 700px; margin:0 15px; padding: 0; float:left; margin-left:10px;}\r\n.news_block a { font-size: inherit; line-height: inherit;}\r\n.news_side_nav { width: 165px; margin: 0; padding: 0;}\r\n.news_discuss_link {background:url(/images/base_struct_images/news/discussion.gif) center left no-repeat; text-align:center;padding:0 0 0px 28px; white-space:nowrap;}\r\n.news_viewall_link {background:url(/images/base_struct_images/news/alltopnewsarrow.gif) center right no-repeat; text-align:center;padding:0 21px 0 0px;white-space:nowrap; font-size:12px;}\r\n.news_perma_link {background:url(/images/base_struct_images/news/permalink.gif) center left no-repeat; text-align:center;padding:0 0 0px 13px;white-space:nowrap;}\r\n\r\n.panelbar {display:inline;}\r\n\r\ndiv.col.news_main { width: 730px; overflow: visible; height:auto;background: none;}\r\n.news_block .newsStoryBody { margin-right: 10px !important;height: auto; width: auto; font-size: 13px; line-height:20px; padding-bottom:0.5em; }\r\n\r\n.digg_link {background:url(/images/base_struct_images/news/digg.gif) bottom left no-repeat;text-align:center; padding:0 0 0 25px; white-space:nowrap;}\r\n.media_age_gate {width:703px;height:480px;display:block;background:url(/images/base.jpg) center;}\r\n.media_overlay {width:703px;height:480px;position:absolute;z-index:1001; background-color:#111; opacity:0.55; -moz-opacity:0.55; filter:alpha(opacity=55);}\r\n.media_link { display: block; height:55px; width:325px; background:#111; position:absolute; border:solid 1px #999; z-index:1001; margin:150px 0 0 165px;padding:10px; }\r\n.media_age {margin-top:5px;}\r\n.media_link img { float:left; padding-right:15px; }\r\n.media_pad {padding:15px 28px 15px 28px; z-index:0; }\r\n.media_back { background:url(/images/base_struct_images/news/mediaplayergradient_high.jpg);}\r\n\r\nul.legend li{font: 8pt Arial, Helvetica, sans-serif;color: #FFF;}\r\nul.legend li.whatThis{font: 7pt Arial, Helvetica, sans-serif;margin-left:2px;}\r\n\r\n.slotWrap{width:300px;float:left;background:transparent;margin:0 0 10px 0; }\r\n.slotWrap .user_content_mini_outer_shell .spam_box .infoA li{font-size:9px;width:260px;white-space:normal;}\r\n\r\n.community_hub ul li a.editLink{position:relative;right:-245px;top:-43px;background:transparent;font: 10px Arial, Helvetica, sans-serif; color:#71CAEF;}\r\n\r\ndiv.moreSideNav{width:256px;}\r\n.moreSideNav div.block-a h2{height:22px;width:auto;}\r\n.moreSideNav .block-b{float:left;margin:0;}\r\n\t.moreSideNav div.block-b h2{width:240px;padding:8px 0 0 15px;height:28px;}\r\n.moreSideNav ul.arrow2 li{margin-bottom:10px;}\r\n\r\n/* dock object */\r\ndiv.silverlight_dock_block { float: left; width: 100%; }\r\ndiv.silverlight_dock_block img { padding: 0; margin: 0; }\r\ndiv.silverlight_dock_object { display: none; background: none; }\r\ndiv.silverlight_dock_object div.media_age_gate { display: none; }\r\nspan.silverlight_container { display: none; }\r\nul.silverlight_dock_save { float: right; width: 450px; text-align: right; margin-top: 15px; margin-right: 25px;}\r\nul.silverlight_dock_save li { float: left; display: inline; margin-left: 10px; color: #bbbbbb; font-family:Arial,Helvetica,sans-serif; font-size:12px;}\r\n\r\n/*Safari Custom Exceptions */\r\n@media screen and (-webkit-min-device-pixel-ratio:0){\r\n\tdiv.user_content_mini_outer_shell .spam_box ul li { line-height: 12px; }\r\n\tul.link_list li a.social_link {float: left; margin-bottom: 0; line-height: 35px;}\r\n\tul.rendered_videos_order_summary li.right {top:0px;}\r\n\t.history_block { margin:0 -14px 0 0;}\r\n\tdiv.colLast div.block-b div.messagebg div.forumpost div.messagebody { float: left; }\r\n}\r\n\r\n\r\n/* remodeled */\r\n.fileShare_tagsSearch{width:880px;margin:0 0px 0px 11px;border-bottom:1px solid #6c7079;float:left;line-height:18px;padding:0;}\r\n\t.fileShare_tagsSearch ul{ list-style-type: none; margin: 0; display: block; padding:20px 0 10px;}\r\n\t\t.fileShare_tagsSearch ul li{display: inline;}\r\n\t.fileShare_tagsSearch ul.left{float:left;}\t\t\r\n\t\t.fileShare_tagsSearch ul.left li{padding-right: 4px; }\r\n\t.fileShare_tagsSearch ul.right{float:right;white-space:nowrap;}\r\n\t\t.fileShare_tagsSearch ul.right li{padding-left: 4px;}\r\n\t.fileShare_tagsSearch p.left{margin:0;float:left;padding:20px 0 10px;}\r\n\t.fileShare_tagsSearch fieldset{border:0;margin:0;padding:0;}\r\n\t.fileShare_tagsSearch fieldset ul.left{padding:4px 0 0 0;}\r\n\t\t.fileShare_tagsSearch fieldset ul.left li{line-height:35px;}\r\n\t\t\t.fileShare_tagsSearch fieldset ul.left li.sortLabel{width:281px;color:#bbb;}\r\n\t\t\t.fileShare_tagsSearch ul.left li select{margin-right:4px; width:170px;}\r\n\t/* used with BungieProRenderMinuteDisplay.ascx */\r\n\t.fileShare_tagsSearch ul.left.bpro li {padding-right: 10px;float: left;}\r\n\t.fileShare_tagsSearch ul.left.bpro li {line-height: 30px; }\r\n\t.fileShare_tagsSearch ul.left.bpro li a:hover {text-decoration: none;}\r\n\t.fileShare_tagsSearch ul.right.bpro li {float: left; padding-left: 10px;}\r\n\t.fileShare_tagsSearch ul.right.bpro li a {width: 162px; height: 24px; display:block; background: url(/images/base_struct_images/bluebutton.jpg) no-repeat top left; line-height: 24px; padding-left: 10px;}\r\n\t.fileShare_tagsSearch ul.right.bpro li a:hover { background-position: bottom left; text-decoration: none;}\r\n\r\n/* BungieProRenderMinuteDisplay */\r\ndiv.sContent div.infopopup { display: none; position:absolute; width: 240px; height: auto; background: url(/images/base_struct_images/infopopupback.png); border: 1px solid #4d4d4d; margin-left: 95px; margin-top: 20px; padding: 12px; z-index: 12;}\r\ndiv.sContent div.infopopup div.bluecircle { display: block; float: left; color: #71caef; background:url(/images/base_struct_images/bluering.gif) no-repeat top left; width: 28px; height: 21px; text-align: center; font-size: 12px; padding-top: 7px;}\r\n\tdiv.sContent div.infopopup div.plus{background-image: none; margin-top: -20px;background:none;}\r\ndiv.sContent div.infopopup h4 { width: 190px; float: right; margin: 0; color: white; font-size: 12px; line-height: 28px;}\r\ndiv.sContent div.infopopup p { width: 190px; margin-left: 0; float: right; clear: both; color:#989898; font-size: 10px; line-height: 10px;}\r\ndiv.sContent div.infopopup .rule{border-bottom: 2px solid #fff; width: 100%; height: 2px; display: block; float: left;margin-bottom: 10px;}\r\n.totalMinutesAvailable a{background: url(/images/base_struct_images/bluering.gif) no-repeat top left; display: block; overflow: hidden; text-align: center; height:28px; width:28px; line-height:28px;}\r\n\r\n.bpro.box { background: url(/images/halo3stats/boxy-back-1.gif) top left no-repeat; display: block; height: 40px; width: 219px; margin-top: 10px; padding-top:10px; float: left;}\r\n\t.bpro.box a { display: block; width: 197px; height: 32px; line-height: 32px; background: url(/images/halo3stats/button-back.gif) no-repeat top left; margin-left: 10px; text-align: left; font-size: 12px;}\r\n\t\t.bpro.box a:hover { text-decoration:none;}\r\n\t\t.bpro.box a span{ width: 197px; height: 21px; background: url(/images/base_struct_images/stats/rightcol-icons.gif) no-repeat top left; padding-left: 28px; margin-left: 3px; padding-top: 5px; white-space: nowrap;}\r\n\r\n.bpro.content { background: url(/images/halo3stats/boxy-back-2.gif) top left #000 no-repeat; display: block; width: 219px; float: left;}\r\n\t.bpro.content ul { list-style: none; float: left; width: 194px; margin-left: 10px; margin-top: 5px; margin-bottom: 10px;}\r\n\t.bpro.content ul li { float: left; height: 30px; line-height: 30px; color: white; font-size: 11.5px; text-indent: 3px;}\r\n\t.bpro.content ul li.bluecircle{ display: block; height:28px; width: 28px; background: url(/images/base_struct_images/bluering.gif) no-repeat top left; text-align: center; line-height: 28px; text-indent: 0; color: #71CAEF; }\r\n\t\t.bpro.content ul li.bluecircle a { line-height:inherit; }\r\n\t.bpro.content ul li.value{ float: right;}\r\n\t\t.bpro.content a.navbutton { float: left; display:block; background: url(/images/base_struct_images/stats/bigbluebutton.jpg) no-repeat top left; height: 24px; width: 192px; margin-left: 10px; margin-bottom: 10px; line-height: 24px; padding-left: 10px;}\r\n\t\t.bpro.content a.navbutton:hover { background-position: left bottom; text-decoration: none;}\r\n\r\n/* CommunityTagSearchUI */\r\n.community_colB .matte_career:first-child { padding: 0; width: 902px; height:50px; border-bottom: 2px solid #353535; background:none;}/*wraps CommunityTagSearchUI - the other .matte_career divs on the account pages are not a first-child*/\r\n\r\n.nav_control_long_tagadd .search-input-wrapper, .nav_control_long_tagsearch .search-input-wrapper{float:left;}\r\n.nav_control_long_tagadd .search-btn-wrapper, .nav_control_long_tagsearch .search-btn-wrapper{float:right; padding:2px 0 0 0;}\r\n.nav_control_long_tagsearch{width:882px;height:auto;white-space:nowrap;margin:10px 0 10px 0; padding:5px 0 0px 10px;display:block;clear:both;}\r\n\r\nul.tagSearch_suggestions { width: 98%; list-style-type: none;height:17px; margin:2px 0 0 0; padding:0 0 0 7px; }\r\n\tul.tagSearch_suggestions li { width: 27%; float:right; color:#eee;height:17px;overflow:hidden; }\r\n\t\tul.tagSearch_suggestions li a {height:17px; line-height:18px; text-align:left; }\r\n\tul.tagSearch_suggestions li.suggestion_term { width: 44%; float:left; }\r\n\r\n/* game viewer */\r\n.mapframe h4 { float:left;padding-left:5px; width: auto;} \r\n.mapframe .F5Ad_cont { float:right;padding:5px; } \r\n.mapframe .email_map { float:right;padding-top:10px;} \r\n.mapframe .email_map p { line-height: 15px;padding-right:10px;} \r\n.mapframe .links { float:right;padding-top:10px;margin-right:20px; } \r\n.mapframe .player_list { float: left; } \r\n.mapframe .image_matteA { padding: 2px; float:left; width:30px; text-align: center; } \r\n.mapframe .image_matteB { padding: 2px; float:left; width:30px; text-align: center; background-color:#666666; } \r\n.mapframe .dummy_img { float: left; height: 20px; width: 20px; } \r\n.mapframe .linkBt_cont { float: left; margin: 4px 0 0 10px; } \r\n.mapframe .map { float: right; } \r\n.mapframe .map_thumbs { margin-left:10px; } \r\n.mapframe .iframe_spacer { height: 850px; clear: both; }\r\n\r\n/* utility popups */\r\ndiv.nav ul.utilitypopup { height: 80px; margin: 0 0 0 20px; padding: 4px 0 4px 0; text-align: right; }\r\ndiv.nav ul.utilitypopup li { display: inline; }\r\ndiv.nav ul.utilitypopup li a { display: inline; vertical-align: middle; margin: 4px 0 0 4px ;} \r\ndiv.nav ul.utilitypopup li a img.top_logo_bungie{left:16px;}\r\n\r\n/* survey notification */\r\n.surveyNotification\r\n{\r\n line-height:28px;\r\n height:28px;\r\n padding:0 15px;\r\n border-bottom:2px solid #000;\r\n \r\n width:100%;\r\n clear:both;\r\n text-align:center;\r\n background:url(/images/account/bg_notificationBar2.png) repeat-x;\r\n}\r\n.bgRepeat .surveyNotification\r\n{\r\n background:url(/images/account/bg_notificationBar.png) repeat-x;\r\n line-height:28px;\r\n height:28px;\r\n text-align:right;\r\n padding:0 15px;\r\n width:872px;\r\n border-bottom:2px solid #000;\r\n }\r\n .surveyNotification span{float:left;height:28px;line-height:28px;color:#dd8f51;font-size:14px;}\r\n .surveyNotification span a{display:inline-block;padding-right:12px;margin-left:5px;background:url(\"/images/base_struct_images/contentBg/profile-link-arrow.png\") no-repeat scroll right center transparent;}\r\n .surveyNotification a.close{font-size:12px;line-height:28px;}\r\n .surveyNotification a.close em{font-style:normal;position:relative;top:1px;margin-left:5px;}\r\n\r\n\r\n\r\n/* marked for deletion : old nav\r\ndiv.passport_page div.nav { width: 902px; margin: 0;}\r\ndiv.nav h2 { display: none; }\r\ndiv.nav .utility_cont { }\r\ndiv.nav ul.utility_cardless { height: 80px; margin: 0; padding: 4px 0 0 0; list-style-type: none; border-bottom: 2px solid #7e8083; }\r\ndiv.nav ul.utility_cardless li img { display: inline; vertical-align: middle; margin: 0; }\r\ndiv.nav ul.utility { height: 80px; margin: 0; padding: 6px 0px 0 0; text-align: right; list-style-type: none; border: none; width: 400px; float: right;}\r\ndiv.nav ul.utility li {display: inline; margin: 0 15px 0 0px; color: #999; }\r\n\r\ndiv.nav ul.utility li img { display: inline; vertical-align: middle; margin: 0; } \r\ndiv.nav ul.utility li.signupText { display: block; margin-bottom:5px; }\r\ndiv.nav ul.utility_b { height: 80px; margin: 0; padding: 4px 0 0 0; text-align: right; list-style-type: none; border: none; width: 400px; position: absolute; top: 0px; right: 0px; }\r\ndiv.nav ul.utility_b li { display: inline; margin: 0 8px 0 0px; color: #999; }\r\ndiv.nav ul.utility_b li img { display: inline; vertical-align: middle; margin: 0; } \r\ndiv.nav ul.utility_b li.signupText { display: block; margin-bottom:5px; }\r\ndiv.nav ul.utility_c { height: 80px; margin: 0; padding: 4px 0 0 0; text-align: right; list-style-type: none; border: none; width: 400px; position: absolute; top: 0px; left: 220px; }\r\ndiv.nav ul.utility_c li { display: inline; margin: 0 8px 0 0px; color: #999; }\r\ndiv.nav ul.utility_c li img { display: inline; vertical-align: middle; margin: 0; }\r\ndiv.nav ul.utility_c li.signupText { display: block; margin-bottom:5px; }\r\n\r\ndiv.nav ul.navButtons { height: auto; margin: 0; padding: 0; } \r\ndiv.nav ul.navButtons li { float: left; list-style-type: none; margin: 0; padding: 0; } \r\n\r\ndiv.nav ul.navButtons li.navSearch .search-div {height:20px; margin:5px 0 0 0; }\r\ndiv.nav ul.navButtons li.navSearch .navSearchTextbox {width: 210px; height:20px; vertical-align:top; margin: 0; padding: 0 0 0 5px; line-height:16px; border:none 0px #fff; }\r\n\r\n\r\ndiv.nav div.live_header { width: 238px; padding: 2px 0 2px 18px; float: right; color: #bbb; font-size: 11px; }\r\n*/\r\n\r\n\r\n\r\n/* marked for deletion - doesn't exist \r\n.contentB .oversection_header { margin: 0; width:322px; text-align: center; }\r\n\r\n.contentB .halo3 { margin: 0; padding: 5px 5px 10px 10px; width: 285px; float: left; overflow: hidden; }\r\n.contentB .halo3 .profile { margin: 0; padding: 0; height: 100px; overflow: hidden; border-top: solid 1px white; border-left: solid 1px white; border-right: solid 1px white; }\r\n.contentB .halo3 .profile .pic1 { float: left; margin: 0; padding: 5px 0 5px 0; }\r\n.contentB .halo3 .profile .pic2 { float: right; margin:0px; padding: 5px 0px 5px 0; }\r\n.contentB .halo3 .profile .info { width: 120px; margin: 0; padding: 5px 0 0 5px; float: left; color: White; font: bold 12px Arial, Helvetica, sans-serif; }\r\n.contentB .halo3 .profile .info ul { list-style: none; margin: 0; padding: 0; }\r\n.contentB .halo3 .profile .info ul li { margin: 0; padding: 0; line-height: 125%; }\r\n.contentB .halo3 .profile .info ul li.larger { font: bold 14px Arial, Helvetica, sans-serif; }\r\n.contentB .halo3 .profile .games_played { padding: 30px 0 0 0; margin: 0; }\r\n\r\n.contentB .halo3 .medals { margin: 0; padding: 0; height: 70px; background-color: #040608; overflow: hidden; border-left: solid 1px white; border-right: solid 1px white; border-bottom: solid 1px #393a3b; }\r\n.contentB .halo3 .medals ul { margin: 0; padding: 0; list-style: none; }\r\n.contentB .halo3 .medals ul li {margin: 0; padding: 0; display: inline; }\r\n.contentB .halo3 .medal_img { margin-top: -2px; padding: 0 0 0 10px; float: left; }\r\n\r\n.contentB .halo3 .achievements { margin: 0; padding: 0; height: 70px; background-color: #040608; overflow: hidden; border-left: solid 1px white; border-right: solid 1px white; border-bottom: solid 1px #393a3b; }\r\n.contentB .halo3 .achievements ul { margin: 0; padding: 0; list-style: none; }\r\n.contentB .halo3 .achievements ul li {margin: 0; padding: 0; display: inline; }\r\n.contentB .halo3 .achievements_img { margin-top: -2px; padding: 0 0 0 10px; float: left; }\r\n\r\n.contentB .halo3 .campaign { margin: 0; padding: 0; height: 125px; background-color: #040608; overflow: hidden; border-left: solid 1px white; border-right: solid 1px white; border-bottom: solid 1px #393a3b; }\r\n.contentB .halo3 .campaign img { margin: 0; padding: 5px; float: left; }\r\n.contentB .halo3 .campaign .campaign_info {margin: 0; padding: 5px 0 0 5px; color: White; float: left; } \r\n\r\n.contentB .halo3 .played { margin: 0; padding: 0; height: 130px; overflow: hidden; border-left: solid 1px white; border-right: solid 1px white; border-bottom: solid 1px white; }\r\n.contentB .halo3 .played img { float: left; padding: 5px; }\r\n.contentB .halo3 .played .played_info { margin: 0; padding: 10px 0 0 5px; color: White; float: left; } \r\n.contentB .halo3 .played ul { margin: 0; padding: 0; list-style: none; float: left;}\r\n.contentB .halo3 .played ul li { margin: 0; padding: 0;}\r\n.contentB .halo3 .played ul li.larger { font: bold 12px Arial, Helvetica, sans-serif; }\r\n.contentB .halo3 .played .place { margin: 0; padding: 20px 0 0 5px; width: 150px; float: left; color: White; }\r\n\r\n.contentB .halo3bg {background-color:#131415;}\r\n.contentB .halo2 { margin: 0; padding: 5px 5px 10px 10px; width: 285px; float: left; overflow: hidden; }\r\n.contentB .halo2 .profile { margin: 0; padding: 0; height: 100px; overflow: hidden; border: solid 1px #494a4b; }\r\n.contentB .halo2 .profile .pic1 { float: left; margin: 0; padding: 5px 0 5px 10px; }\r\n.contentB .halo2 .profile .pic2 { float: right; margin: 0; padding: 5px 5px 0px 5px; }\r\n.contentB .halo2 .profile .info { width: 140px; margin: 0; padding: 5px 0 0 5px; float: left; color: White; font: bold 12px Arial, Helvetica, sans-serif; }\r\n.contentB .halo2 .profile .info ul { list-style: none; margin: 0; padding: 0; }\r\n.contentB .halo2 .profile .info ul li { margin: 0; padding: 0px 0px 3px 0px; line-height: 125%; }\r\n.contentB .halo2 .profile .info ul li.larger { font: bold 12px Arial, Helvetica, sans-serif; }\r\n.contentB .halo2 .profile .games_played { padding: 10px 0 0 0; margin: 0; }\r\n\r\n.contentB .noprofile {width: 590px; padding:5px;}\r\n*/\r\n\r\n/* marked for deletion : does not exist??? \r\n.screenshot_viewer .cols { margin: 0; padding: 0; width: 100%; } \r\n.screenshot_viewer .cols .col { margin: 0; padding: 0; width: 100%; } \r\n.screenshot_viewer .cols .col .block-a { margin: 0; padding: 0; width: 100%; } \r\n.screenshot_viewer .cols .col .block-a h2 { width:100%; min-width: 300px; background: none; border-top: solid 2px #7e8083; border-bottom: solid 1px #7e8083; } \r\n.screenshot_viewer .cols .col .block-a .controls_container { width: 400px; margin: 10px 0 0 20px; } \r\n.screenshot_viewer .cols .col .block-a .controls_container .controls { float: left; margin: 0 50px 20px 0; } \r\n.screenshot_viewer .cols .col .block-a .controls_container .controls h4 { margin:0; padding: 0; } \r\n.screenshot_viewer .cols .col .block-a .controls_container .utility { list-style-type:none; margin: 0; padding:0; float: left; } \r\n.screenshot_viewer .cols .col .block-a .controls_container .utility li.previous { float: left; margin:0; padding: 0; } \r\n.screenshot_viewer .cols .col .block-a .controls_container .utility li.next { float: left; margin: 0 0 0 8px; padding: 0; } \r\n.screenshot_viewer .cols .col .block-a .controls_container .utility li.previous a:hover { text-decoration:none; } \r\n.screenshot_viewer .cols .col .block-a .controls_container .utility li.next a:hover { text-decoration:none; } \r\n.screenshot_viewer .cols .col .block-a .image_summary { text-align:center; min-width: 150px; } \r\n.screenshot_viewer .cols .col .block-a .image_summary h5 { margin: 10px 0 0 0; padding: 0; }\r\n*/\r\n\r\n/* marked for deletion : doesnt exist\r\n\r\n*/\r\n\r\n/* marked for deletion : doesn't exist \r\ndiv.navblock_right {width:191px;float:right; position:relative; z-index:100; margin:-255px 0 0 0; padding: 0;}\r\ndiv.navblock_right .all_link { padding:0 0 0 37px; background-color: none; }\r\ndiv.navblock_right ul { margin: 0; padding: 0; height:215px; list-style: none;}\r\ndiv.navblock_right ul li { margin: 0; padding: 14px 0 0 14px; width:179px; height: 33px; float:left;}\r\ndiv.navblock_right ul li.list_last { margin: 0; padding: 0; width:191px; height: 40px; float:left;}\r\n\r\ndiv.topNewsNav h5 { margin: 0; height:40px; padding: 15px 10px 0 0; float: right; font: small-caps 12px Arial, Helvetica, sans-serif;}\r\ndiv.topNewsNav h5 a {color: #71caef; text-decoration: none;} \r\ndiv.topNewsNav h5 a:hover { color: #fff; text-decoration: underline; }\r\n*/\r\n/* marked for deletion : doesn't exist \r\ndiv.file_item_outer_shell {width: 587px; font: 11px Arial, Helvetica, sans-serif; position: relative; margin: 0 0 5px 0; }\r\ndiv.file_item_outer_shell ul.spam_collapse_bar { background-color: #27282C; margin: 0 0 0 10px; padding: 4px 2px 0px 6px; height: 20px; border: solid 1px #5f6062; }\r\ndiv.file_item_outer_shell ul.spam_collapse_bar li { float: left; list-style-type: none; }\r\ndiv.file_item_outer_shell ul.spam_collapse_bar li.right { float: right; }\r\ndiv.file_item_outer_shell ul.spam_collapse_bar li a.expanded_arrows_collapsed { top: -2px; margin: 0; padding: 0; position: relative; display: block; width: 21px; height: 20px; background: url(/images/base_struct_images/linkBt/plusminus.gif) left top; }\r\ndiv.file_item_outer_shell ul.spam_collapse_bar li a.expanded_arrows_collapsed:hover { background: url(/images/base_struct_images/linkBt/plusminus.gif) left 40px; }\r\ndiv.file_item_outer_shell ul.spam_collapse_bar li a.expanded_arrows_expanded { top: -2px; margin: 0; padding: 0; position: relative; display: block; width: 21px; height: 20px; background: url(/images/base_struct_images/linkBt/plusminus.gif) left 60px; }\r\ndiv.file_item_outer_shell ul.spam_collapse_bar li a.expanded_arrows_expanded:hover { background: url(/images/base_struct_images/linkBt/plusminus.gif) left 20px; }\r\n\r\n\r\n\r\n.screenshot_box { width: 587px; border: solid 2px #707070; margin: 0 auto 0 auto; }\r\n.screenshot_box_inner { width: 585px; background: #464646; border: solid 1px #000; }\r\n.screenshot_box .screenshot_box_inner div.trophy { display: block; width: 585px; height: 17px; float:left; clear: both;}\r\n.screenshot_box .screenshot_box_inner div.trophy a { background: #2a2a2a; padding: 10px 15px 10px 5px; }\r\n.screenshot_box .screenshot_box_inner div.trophy a img { vertical-align: text-top; }\r\n.screenshot_box .screenshot_box_inner div.trophy span { padding-left: 10px; }\r\n.screenshot_box .screenshot_box_inner h4 { display: block; width: 585px; height: 25px; background: #2a2a2a; font: 12px/25px Arial, Helvetica, sans-serif; text-transform:none; clear: both; float:left; }\r\n.screenshot_box .screenshot_box_inner h4.empty { background: #464646; color: #c0c0c0; }\r\n.screenshot_box img.screenshot_pic_link { width: 160px; height: 90px; float: left; background-color: Black; }\r\n.screenshot_box img.screenshot_pic { width: 160px; height: 90px; float: left; border-right: solid 2px #606060; }\r\n.screenshot_box ul.infoA { margin: 0; padding: 5px 0 0 5px; width: 230px; float: left; list-style-type: none; overflow: hidden; word-wrap: break-word; }\r\n.screenshot_box ul.infoA li { font-size: 12px; line-height: 15px; }\r\n.screenshot_box ul.infoA li h3 { font: bold 14px/17px Arial, Helvetica, sans-serif; text-transform: none; margin: 0 0 .5em 0; background-color: Transparent; padding: 0; border: none;}\r\n.screenshot_box ul.infoA li a { display: block; margin-top: 1em; }\r\n.screenshot_box ul.infoA li h3 a { font: bold 14px/17px Arial, Helvetica, sans-serif; text-transform: none; margin: 0 0 .5em 0; background-color: Transparent; padding: 0; border: none; display:block; background-image: none; } \r\n.screenshot_box div.infoB { margin: 0; padding: 5px 0 0 0; width: 170px; float: right; list-style-type: none; }\r\n.screenshot_box div.infoB p { margin: 0 }\r\n.screenshot_box .top { display: block; width: 585px; clear: both; height: 25px; background: #2a2a2a; border-bottom: solid 1px #606060; font: 12px/25px Arial, Helvetica, sans-serif; }\r\n.screenshot_box .top ul { list-style-type: none; margin: 0; padding: 0; float: left; }\r\n.screenshot_box .top ul li { float: left; padding: 0 0 0 6px; font: 12px/25px Arial, Helvetica, sans-serif; }\r\n.screenshot_box .top ul li.first { line-height: 0; padding: 1px 0 0 0; }\r\n.screenshot_box .screenshot_box_inner div.top_fs { display: block; width: 585px; clear: both; height: 25px; background: #000; border-bottom: solid 1px #606060; font: 12px/25px Arial, Helvetica, sans-serif; background: url(/images/base_struct_images/stats/fileshare-header-gradient.jpg) repeat-x top left; }\r\n.screenshot_box .screenshot_box_inner div.top_fs span.fs_item_header { font-weight: bold; padding-left: 5px; }\r\n.screenshot_box .screenshot_box_inner div.top_fs_empty {display: block; width: 585px; clear: both; height: 25px; font: 12px/25px Arial, Helvetica, sans-serif; background: #464646; color: #c0c0c0; }\r\n.screenshot_box .infoB ul.rating_box { list-style-type:none; margin: 5px 0 3px 0; padding: 0; width: 148px; height: 30px; border: solid 1px #818181; }\r\n.screenshot_box .infoB ul.rating_box li { width: 20px; height: 20px; margin: 5px 0 0 8px; float: left; display: inline; } \r\n.screenshot_box .infoB ul.rating_box li a { display: block; }\r\n.screenshot_box .infoB ul.rating_box li a.rating_star_on { background: transparent url(/images/base_struct_images/online/septagons.gif ) no-repeat left top; }\r\n.screenshot_box .infoB ul.rating_box li a.rating_star_off { background: transparent url(/images/base_struct_images/online/septagons.gif) no-repeat left center; }\r\n.screenshot_box .infoB ul.rating_box li a.rating_star_on:hover { background: transparent url(/images/base_struct_images/online/septagons.gif ) no-repeat left bottom; }\r\n.screenshot_box .infoB ul.rating_box li a.rating_star_off:hover { background: transparent url(/images/base_struct_images/online/septagons.gif ) no-repeat left bottom; }\r\n.screenshot_box .bottom { display: block; width: 585px; clear: both; background: #2a2a2a; border-top: solid 1px #606060; font: 12px/25px Arial, Helvetica, sans-serif; } \r\n.screenshot_box .bottom .timestamp { font-style: italic; float: left; padding: 0 0 0 5px }\r\n.screenshot_box .bottom ul.links { float: right; list-style-type: none; margin: 0; padding: 0 25px 0 0; position:relative; }\r\n.screenshot_box .bottom ul.links li { float: left; font-size: 12px; line-height: 25px; }\r\n.screenshot_box .bottom ul.links li a.expanded_arrows_collapsed { position: absolute; margin: 3px 0 0 2px; width: 21px; height: 20px; background: url(/images/base_struct_images/linkBt/expandedarrows.gif) left top; }\r\n.screenshot_box .bottom ul.links li a.expanded_arrows_collapsed:hover { position: absolute; margin: 3px 0 0 2px; width: 21px; height: 20px; background: url(/images/base_struct_images/linkBt/expandedarrows.gif) left 40px; }\r\n.screenshot_box .bottom ul.links li a.expanded_arrows_expanded { position: absolute; margin: 3px 0 0 2px; width: 21px; height: 20px; background: url(/images/base_struct_images/linkBt/expandedarrows.gif) left 60px; }\r\n.screenshot_box .bottom ul.links li a.expanded_arrows_expanded:hover { position: absolute; margin: 3px 0 0 2px; width: 21px; height: 20px; background: url(/images/base_struct_images/linkBt/expandedarrows.gif) left 20px; }\r\n.screenshot_box .bottom_dropdown ul.links { float: right; list-style-type: none; margin: 0; padding: 0; position:relative; }\r\n.screenshot_box .bottom_dropdown { display: block; width: 585px; clear: both; height: auto; background: #2a2a2a; font: 12px/25px Arial, Helvetica, sans-serif; } \r\n.screenshot_box .bottom_dropdown ul.links li { font-size: 12px; line-height: 14px; float: none; }\r\n*/\r\n\r\n\r\n\r\n/* marked for deletion : doesn't exist \r\n.profile_strip div.profile_body {float:left;width: 395px; padding: 3px 0px 0 0px; float:left; margin:0;}\r\n.profile_strip div.profile_body div.hr {padding:0; margin:5px 0 5px 0;width:100%; height:5px; border-bottom: solid 1px #555555;}\r\n.profile_strip div.profile_body div.mmData {float:left;}\r\n.profile_strip div.profile_body ul.data { list-style-type:none; margin: 0; padding: 0; width: 100%; float: left;}\r\n.profile_strip div.profile_body div.mmData ul { list-style-type:none; width:175px; margin: 0; padding: 0; }\r\n.profile_strip div.profile_body ul li { display:inline; float:left; width: 125px; font: 12px/18px Arial, Helvetica, sans-serif; margin: 0; padding: 0; }\r\n.profile_strip div.profile_body ul li.values { float:left; width: 50px; text-align: left; margin: 0; padding: 0; }\r\n.profile_strip div.profile_body ul li.values_r { float:left; width: 75px; text-align: right; margin: 0; padding: 0; } \r\n.profile_strip div.profile_ratings { padding: 0px 10px 0 0px;float:right; margin: 0;}\r\n\r\n\r\n\r\n\r\n\r\n\r\ntable.profile_strip_tableA { padding: 5px 0 10px 0; float: left; width: 200px; color: #fff; }\r\ntable.profile_strip_tableA td.fields{width: 80px; }\r\ntable.profile_strip_tableB { margin: 5px 0 10px 0; float: right; width: 200px; table-layout: fixed; }\r\ntable.profile_strip_tableB td.values { }\r\ntable.profile_strip_tableB td.header{ font: 14px/15px Arial, Helvetica, sans-serif; color:#eee;}\r\n*/\r\n\r\n/* marked for deletion : doesn't exist\r\nul.achievement_list { width:602px; list-style-type: none; margin:0 0 0 20px;}\r\nul.achievement_list li {background:#1E1E1E;width:592px; margin: 0; padding:0; border: solid 1px #666;}\r\nul.achievement_list li h3 { margin: 0; font-weight:normal; font-size: 16px; line-height: 20px; text-transform: none; color:#fff; }\r\n.achievements_cont_vert { float: left; }\r\n.achievements_cont_vert ul.achievement_list li { margin: 0; float: left; }\r\n*/\r\n\r\n\r\n\r\n\r\n\r\n/* marked for deletion : doesn't exist \r\n.screenshot_viewer { width: 595px; height: 600px; background: #1a1a1a; }\r\n.screenshot_viewer .community_colB { width: 595px }\r\n.screenshot_viewer .community_colB .content_matte { margin: 0; padding: 0; } \r\n.screenshot_viewer .header { background: transparent url(/images/base_struct_images/contentBg/communityfilesgradient.jpg) repeat-x; width: 100%; }\r\n.screenshot_viewer .header h1 { margin: 0; text-align: center; font: normal 24px/50px Arial, Helvetica, sans-serif; color: #fff; display: block; }\r\n.screenshot_viewer .header img.logoA { margin: 10px 0 0 10px; width: 85px; height: 33px; float: left; background: none; }\r\n.screenshot_viewer .header img.logoB { margin: 10px 10px 0 0; width: 67px; height: 30px; float: right; background: none; }\r\n.screenshot_viewer .screenshots { margin: 0 auto 0 auto; position: relative; width: 592px; height: 333px; background-color: Black; background-repeat: no-repeat; border: solid 1px #666; display: block; float: left; } \r\n.screenshot_viewer .screenshots img.widescreen { width: 592px; height: 333px; }\r\n.screenshot_viewer .screenshots img.fourbythree { width: 444px; height: 333px; margin: 0 74px 0 74px; }\r\n.screenshot_viewer .nav_control { width: 100%; height: 30px; }\r\n.screenshot_viewer .nav_control .previmg { margin: 8px 0 0 6px; }\r\n.screenshot_viewer .nav_control .nextimg { margin: 8px 6px 0 0; }\r\n.screenshot_viewer .nav_control .text_prev { float: left; padding: 0 0 0 5px; }\r\n.screenshot_viewer .nav_control .text_next { float: right; padding: 0 5px 0 0; }\r\n.screenshot_viewer .nav_control a { font: normal 12px/36px Arial, Helvetica, sans-serif; color: #71caef; }\r\n.screenshot_viewer .nav_control a:hover { font: normal 12px/36px Arial, Helvetica, sans-serif; color: #fff; }\r\n\r\n.screenshot_viewer .screenshot_box { width: 100%; margin: 0; padding: 0; border-left: none; border-right: none; border-bottom: none; border-width: 1px; float: left; }\r\n.screenshot_viewer .screenshot_box ul.infoA h3 { color: #bbb; }\r\n.screenshot_viewer .screenshot_box ul.infoA { width: 320px; margin: 0pt; padding: 5px 0pt 0pt 15px; float: left; list-style-type: none; color: #BBBBBB; }\r\n.screenshot_viewer .screenshot_box div.infoB { margin: 0; padding: 5px 0 5px 0; width: 166px; float: right; list-style-type: none; }\r\n.screenshot_viewer ul.links { float: right; list-style-type: none; clear: none; margin: 0; padding: 0; }\r\n.screenshot_viewer ul.links li { padding: 0 10px 0 0; float: left; font: normal 12px/15px Arial, Helvetica, sans-serif; }\r\n\r\n.screenshot_viewer .boxD_outer { margin: 0; padding: 0; }\r\n.screenshot_viewer .boxD { width: 591px; margin: 0; padding: 0; }\r\n.screenshot_viewer .boxD .nav_control { width: 591px; }\r\n.screenshot_viewer .boxD .nav_control h3 { padding: 0; }\r\n.screenshot_viewer .boxD .nav_control .previmg { margin: 3px 0 0 4px; }\r\n.screenshot_viewer .boxD .nav_control .nextimg { margin: 3px 4px 0 0; }\r\n.screenshot_viewer .boxD .thumb_div { position: relative; }\r\n.screenshot_viewer .boxD .thumb_div .screenshot_thumb_cont { width: 58px; height: 32px; margin-left: 1px; float: left; background-color: Black; z-index: 2;}\r\n.screenshot_viewer .boxD .thumb_div .screenshot_thumb_selected { width: 58px; height: 28px; border-top: solid 2px #00A1E5; border-bottom: solid 2px #00A1E5; position: absolute; z-index: 3; margin-left: -58px;}\r\n.screenshot_viewer .boxD .thumb_div .screenshot_thumb_hover {\r\n\twidth: 58px;\r\n\theight: 28px;\r\n\tposition: absolute;\r\n\tz-index: 1;\r\n\tmargin-left: -58px;\r\n\tbackground-image: url(/images/halo3stats/fileshareicons/screenshots/thumbnailarrow.gif);\r\n\tbackground-color: Transparent;\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: center 5px;\r\n}\r\n.screenshot_viewer .boxD .screenshot_thumb { margin: 0; padding: 0; width: 58px; height: 32px; }\r\n.screenshot_viewer .boxD .screenshot_thumb_fourbythree { width: 44px; height: 32px; padding: 0; margin: 0 7px 2px 7px; }\r\n.screenshot_viewer .boxD .achievements_cont { margin: 5px 0 5px 0; padding: 0 0 0 1px; }\r\n.screenshot_viewer .boxD .achievements_cont img { margin: 0; padding: 0 0 0 1px; width: 58px; height: 32px; border: none; }\r\n\r\n\r\n\r\n\r\n.asset_viewer .cols { margin: 0; padding: 0; width: 100%; background-color: #1b1d1f; } \r\n.asset_viewer .cols .col { margin: 0; padding: 0; width: 100%; background-color: #1b1d1f; } \r\n.asset_viewer .cols .col .block-a { margin: 0; padding: 0; width: 100%; } \r\n.asset_viewer .cols .col .block-a h2 { width:100%; min-width: 300px; background: none; border-top: solid 2px #7e8083; border-bottom: solid 1px #7e8083; } \r\n.asset_viewer .cols .col .block-a .controls_container { width: 400px; margin: 10px 0 0 20px; } \r\n.asset_viewer .cols .col .block-a .controls_container .controls { float: left; margin: 0 50px 20px 0; } \r\n.asset_viewer .cols .col .block-a .controls_container .controls h4 { margin:0; padding: 0; } \r\n.asset_viewer .cols .col .block-a .controls_container .utility { height:30px; list-style-type:none; margin: 0; padding:0; float: left; }\r\n.asset_viewer .cols .col .block-a .controls_container .utility li { float:left; padding:0 20px 0 0; font-size:16px; } \r\n.asset_viewer .cols .col .block-a .controls_container .utility li.previous { float: left; } \r\n.asset_viewer .cols .col .block-a .controls_container .utility li.next { float: left; } \r\n.asset_viewer .cols .col .block-a .controls_container .utility li.previous a:hover { text-decoration:none; } \r\n.asset_viewer .cols .col .block-a .controls_container .utility li.next a:hover { text-decoration:none; } \r\n.asset_viewer .cols .col .block-a .image_summary { text-align:center; min-width: 150px; } \r\n.asset_viewer .cols .col .block-a .image_summary h5 { margin: 10px 0 0 0; padding: 0; }\r\n*/\r\n\r\n/* marked for deletion : doesn't exist\r\n.mvp_cont .boxD_outer { border-width: 2px; }\r\n.mvp_cont .boxD { width: 194px; margin: 0; padding: 0; }\r\n.mvp_cont .boxD h3 { padding: 2px 0 2px 5px; }\r\n.mvp_cont .mvp { width: 194px; height: 78px; background: #5d0b0e; position:relative; }\r\n.mvp_cont .mvp img { width: 70px; height: 70px; position: absolute; top: 4px; left: 62px; margin: 0; border:none; }\r\n.mvp_cont .mvp_name { width: 189px; height: 24px; padding: 0 0 0 5px; background: #484848; line-height: 24px; font-weight: normal; border-top: 1px solid #575757; }\r\n*/\r\n\r\n\r\n\r\n/* marked for deletion : doesn't exist\r\n.header_bottom { height: 36px; margin: 0; padding: 0; border-bottom: solid 1px #2f2f2f; overflow: hidden; background: url(/images/base_struct_images/contentBg/careerstatheader.jpg) repeat-x; }\r\n.header_bottom h1 { margin: 0; padding: 0 0 0 4px; float: left; font: 24px/33px Arial, Helvetica, sans-serif; color: #fff; }\r\n.header_bottom ul { float: right; list-style-type: none; padding: 0 4px 0 0; }\r\n.header_bottom ul li { float: left; font: 12px/33px Arial, Helvetica, sans-serif; }\r\n*/\r\n/* marked for deletion : doesn't exist \r\n.all_jobs_link img {float:right; margin-left:5px; width:14px; height:15px; display:block; background: transparent url('/images/inside/arrow.gif') no-repeat left top;}\r\n.all_jobs_link span {float:right;}\r\n.all_jobs_link:hover img { background: transparent url('/images/inside/arrow.gif') no-repeat left bottom;}\r\n\r\nul.miniJobsUL { list-style-type: none; margin: 0 0 0 -15px; display: block; width: 282px; padding: 0; }\r\nul.miniJobsUL li.jobitem { background: url(/images/base_struct_images/arrow_3.gif) no-repeat; text-align: left; margin: 0 0 1px 30px; }\r\nul.miniJobsUL li.jobitem a { font: 11px/14px Arial, Helvetica, sans-serif; color: #71caef; text-decoration: none; padding: 0 0 0 13px; }\r\nul.miniJobsUL li.jobitem a:hover { color: #fff; text-decoration: underline; }\r\nul.miniJobsUL li.categoryItemOff { padding: 0 0 0 35px; height: 30px; margin: 2px 0 3px 0; background-image: url(/images/inside/jobs/expandbutton.gif); background-position: 0 0; background-repeat: no-repeat; font: 14px/28px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\nul.miniJobsUL li.categoryItemOff:hover { background-position: 0 -30px; }\r\nul.miniJobsUL li.categoryItemOn { padding: 0 0 0 35px; height: 30px; margin: 2px 0 3px 0; background-image: url(/images/inside/jobs/expandbutton.gif); background-position: 0 -60px; background-repeat: no-repeat; font: 14px/28px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\nul.miniJobsUL li.categoryItemOn:hover { background-position: 0 -90px; }\r\n*/" }, "redirectURL": "", "headersSize": 426, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.302Z", "time": 154.36799999588402, "timings": { "blocked": 127.27599999576388, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.6239999964595739, "receive": 26.468000003660563, "_blocked_queueing": 26.93899999576388 } }, { "_fromCache": "disk", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 23 }, "_priority": "VeryHigh", "_resourceType": "stylesheet", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/base_css/images.css?ver=2.0.4777.31696", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "ver", "value": "2.0.4777.31696" } ], "cookies": [], "headersSize": 253, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Type", "value": "text/css" }, { "name": "Content-Length", "value": "1697" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:47:52 GMT" }, { "name": "ETag", "value": "\"0d4d189bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "cf-request-id", "value": "0813ef14480000fd4e10a61000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61cce79a0d88fd4e-SYD" } ], "cookies": [], "content": { "size": 15088, "mimeType": "text/css", "text": "/* Stylesheet: This one defines structural images we use, as well as a few other things */\r\n\r\nh2.section_title_brandnav {\r\n\t/*background-image: url(/images/base_struct_images/section_title_brandnav.gif);*/\r\n}\r\n\r\n/* slot images for empty fileshare slots */\r\n.fs_empty_slot_1 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/1.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_2 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/2.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_3 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/3.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_4 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/4.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_5 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/5.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_6 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/6.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_7 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/7.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_8 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/8.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_9 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/9.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_10 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/10.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_11 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/11.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_12 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/12.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_13 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/13.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_14 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/14.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_15 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/15.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_16 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/16.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_17 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/17.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_18 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/18.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_19 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/19.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_20 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/20.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_21 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/21.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_22 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/22.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_23 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/23.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n.fs_empty_slot_24 {\r\n\tbackground-image: url(/images/halo3stats/fileshareiconssm/slots/24.jpg);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 0 0;\r\n}\r\n\r\n/* other image classes*/\r\n.rolloverbuttonimg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:67px;\r\n\tmargin:0 0 0 5px;\r\n\t background-image: url(/images/base_struct_images/btn_search.gif);\r\n\t vertical-align:middle;\r\n}\r\n.rolloverbuttonimgOver\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:67px;\r\n\tmargin:0 0 0 5px;\r\n\t background-image: url(/images/base_struct_images/btn_search.gif);\r\n\t background-position: 0 -20px;\r\n\t vertical-align:middle;\r\n}\r\n\r\n/* other image classes*/\r\n.searchbutton\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:24px;\r\n\tmargin:0 0 0 -5px;\r\n\t background-image: url(/images/base_struct_images/search/searchbutton.gif);\r\n\t vertical-align:middle;\r\n\t\r\n}\r\n.searchbuttonOver\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:24px;\r\n\tmargin:0 0 0 -5px;\r\n\t background-image: url(/images/base_struct_images/search/searchbutton.gif);\r\n\t background-position: 0 -20px;\r\n\t vertical-align:middle;\r\n\t\r\n}\r\n\r\n.submit-button{background-repeat:no-repeat;height:20px;width:67px;background-image: url(/images/base_struct_images/linkBt/btn_submit2.gif);}\r\n.submit-button:hover{background-repeat:no-repeat;background-position: 0 -20px;height:20px;width:67px;background-image: url(/images/base_struct_images/linkBt/btn_submit2.gif);}\r\n.addtag-button{background-repeat:no-repeat;height:20px;width:67px;background-image: url(/images/base_struct_images/linkBt/btn_submit2.gif);}\r\n.addtag-button:hover{background-repeat:no-repeat;background-position: 0 -20px;height:20px;width:67px;background-image: url(/images/base_struct_images/linkBt/btn_submit2.gif);}\r\n.report-button{background-repeat:no-repeat;height:20px;width:67px;background-image: url(/images/base_struct_images/linkBt/btn_report.gif);}\r\n.report-button:hover{background-repeat:no-repeat;background-position: 0 -20px;height:20px;width:67px;background-image: url(/images/base_struct_images/linkBt/btn_report.gif);}\r\n.rate-button{background-repeat:no-repeat;height:20px;width:48px;background-image: url(/images/base_struct_images/linkBt/btn_rate.gif);}\r\n.rate-button:hover{background-repeat:no-repeat;background-position: 0 -20px;height:20px;width:48px;background-image: url(/images/base_struct_images/linkBt/btn_rate.gif);}\r\n.render-purchase-button {background-repeat:no-repeat;height:24px;width:134px;background-image: url(/images/base_struct_images/linkBt/redeemminutes.gif);}\r\n.render-purchase-button:hover {background-position: 0 -24px; }\r\n.render-moretokens-button {padding-right: 12px; float: right; background-repeat:no-repeat;height:24px;width:147px;background-image: url(/images/base_struct_images/linkBt/btn_moretokens.gif);}\r\n.render-moretokens-button:hover {background-position: 0 -24px; }\r\n.render-nevermind-button {background-repeat:no-repeat;height:24px;width:68px;background-image: url(/images/base_struct_images/linkBt/btn_cancel.gif);}\r\n.render-nevermind-button:hover {background-position: 0 -24px; }\r\n.render-back-button { background-repeat:no-repeat;height:24px;width:50px;background-image: url(/images/base_struct_images/linkBt/btn_edit.gif);}\r\n.render-back-button:hover { background-position: 0 -24px; }\r\n.render-estimate-button {background-repeat:no-repeat;height:24px;width:87px;background-image: url(/images/base_struct_images/linkBt/btn_next.gif);}\r\n.render-estimate-button:hover {background-position: 0 -24px; }\r\n\r\na.trophyimg\r\n{\r\n\tbackground-repeat:no-repeat;height:22px;width:22px;\r\n\t background-image: url(/images/halo3stats/fileshareicons/screenshots/trophy.gif);\r\n\t display:block;float:left;margin-top:1px;\r\n\t vertical-align:middle; \r\n}\r\na.trophyimg:hover\r\n{\r\n\tbackground-repeat:no-repeat;height:22px;width:22px;\r\n\t background-image: url(/images/halo3stats/fileshareicons/screenshots/trophy.gif);\r\n\t background-position: 0 -22px;margin-top:1px;\r\n\t display:block;float:left;\r\n\t vertical-align:middle;\r\n}\r\n\r\na.trophyimgSel\r\n{\r\n\tbackground-repeat:no-repeat;height:22px;width:22px;\r\n\t background-image: url(/images/halo3stats/fileshareicons/screenshots/trophy.gif);\r\n\t background-position: 0 -44px;margin-top:1px;\r\n\t display:block;float:left;\r\n\t vertical-align:middle;\r\n}\r\n\r\n.previmg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/leftarrow.gif);\r\n\t \r\n\t display:block;\r\n\t vertical-align:middle;\r\n\t margin: 6px 0 0 5px; float: left; \r\n}\r\n.previmgOver\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/leftarrow.gif);\r\n\tmargin: 6px 0 0 5px; float: left; \r\n\t background-position: 0 -20px;\r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n\r\n.nextimg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/rightarrow.gif);\r\n\t \r\n\t margin: 6px 5px 0 0; float: right; \r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n.nextimgOver\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/rightarrow.gif);\r\n\tbackground-position: 0 -20px;\r\n\tmargin: 6px 5px 0 0;float: right; \r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n\r\n.nextendimg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/nextnext.gif);\r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n.nextendimgOver\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/nextnext.gif);\r\n\t background-position: 0 -20px;\r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n\r\n.prevendimg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/prevprev.gif);\r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n\r\n\r\n.prevendimgOver\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/prevprev.gif);\r\n\t background-position: 0 -20px;\r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n\r\n.moreimg\r\n{\r\n\tbackground-repeat:no-repeat;height:13px;width:11px;\r\n\t background-image: url(/images/base_struct_images/arrow_4.gif);\r\n\t \r\n\t vertical-align:middle;\r\n}\r\n\r\n\r\n.lessimg\r\n{\r\n\tbackground-repeat:no-repeat;height:13px;width:11px;\r\n\t background-image: url(/images/base_struct_images/arrow_4.gif);\r\n\t \r\n\t \r\n\t vertical-align:middle;\r\n}\r\n\r\n.nextoffimg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/rightarrow.gif);\r\n\t background-position: 0 -40px;\r\n\t display:block;\r\n\t vertical-align:middle;\r\n\t margin: 6px 5px 0 0; float: right; \r\n}\r\n\r\n.prevoffimg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/leftarrow.gif);\r\n\t background-position: 0 -40px;\r\n\t display:block;\r\n\t vertical-align:middle;\r\n\t margin: 6px 0 0 5px; float: left; \r\n}\r\n\r\n.nextendoffimg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/nextnext.gif);\r\n\t background-position: 0 -40px;\r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n\r\n.prevendoffimg\r\n{\r\n\tbackground-repeat:no-repeat;height:20px;width:21px;\r\n\t background-image: url(/images/base_struct_images/linkBt/prevprev.gif);\r\n\t background-position: 0 -40px;\r\n\t display:block;\r\n\t vertical-align:middle;\r\n}\r\n\r\na.h2SectionHdr\r\n{\r\n\tbackground-repeat:no-repeat;height:50px;width:322px;\r\n\t background-image: url(/images/halo2stats/stat_halo2header.jpg);\r\n\t display:block;\r\n\t\r\n\t \r\n}\r\na.h2SectionHdrOver\r\n{\r\n\tbackground-repeat:no-repeat;height:50px;width:322px;\r\n\t background-image: url(/images/halo2stats/stat_halo2header.jpg);\r\n\t background-position: 0 -50px;\r\n\t display:block;\r\n\t \r\n}\r\n\r\na.h3SectionHdr\r\n{\r\n\tbackground-repeat:no-repeat;height:50px;width:322px;\r\n\t background-image: url(/images/halo2stats/stat_halo3header.jpg);\r\n\t display:block;\r\n\t\r\n\t \r\n}\r\na.h3SectionHdrOver\r\n{\r\n\tbackground-repeat:no-repeat;height:50px;width:322px;\r\n\t background-image: url(/images/halo2stats/stat_halo3header.jpg);\r\n\t background-position: 0 -50px;\r\n\t display:block;\r\n\t \r\n}\r\n\r\na.h2SectionBanner\r\n{\r\n\tbackground-repeat:no-repeat;height:253px;width:322px;\r\n\t background-image: url(/images/halo2stats/stat_halo2banner.jpg);\r\n\t display:block;\r\n\t\r\n\t \r\n}\r\na.h2SectionBannerOver\r\n{\r\n\tbackground-repeat:no-repeat;height:253px;width:322px;\r\n\t background-image: url(/images/halo2stats/stat_halo2banner.jpg);\r\n\t background-position: 0 -253px;\r\n\t display:block;\r\n\t \r\n}\r\n\r\na.h3MultiPlayerBanner\r\n{\r\n\tbackground-repeat:no-repeat;height:253px;width:322px;\r\n\t background-image: url(/images/halo3stats/stat_halo3banner.jpg);\r\n\t display:block;\r\n\t\r\n\t \r\n}\r\na.h3MultiPlayerBannerOver\r\n{\r\n\tbackground-repeat:no-repeat;height:253px;width:322px;\r\n\t background-image: url(/images/halo3stats/stat_halo3banner.jpg);\r\n\t background-position: 0 -253px;\r\n\t display:block;\r\n\t \r\n}\r\n\r\na.h3SectionBanner\r\n{\r\n\tbackground-repeat:no-repeat;height:253px;width:322px;\r\n\t background-image: url(/images/halo2stats/stat_halo3banner.jpg);\r\n\t display:block;\r\n\t\r\n\t \r\n}\r\na.h3SectionBannerOver\r\n{\r\n\tbackground-repeat:no-repeat;height:253px;width:322px;\r\n\t background-image: url(/images/halo2stats/stat_halo3banner.jpg);\r\n\t background-position: 0 -253px;\r\n\t display:block;\r\n\t \r\n}\r\n\r\nimg.external_link_arrow {\r\n\tbackground-image: url(/images/base_struct_images/arrow_4.gif);\r\n\tbackground-repeat: no-repeat;\r\n\twidth: 11px;\r\n\theight: 13px;\r\n\tvertical-align: text-bottom;\r\n}\r\n\r\n.top_logo_bungie {\r\n\tbackground-image: url(/images/base_struct_images/logo_bungie_01.gif);\r\n\theight: 82px;\r\n\twidth: 190px;\r\n\tdisplay: block;\r\n\t\r\n}\r\n\r\n.ind_light\r\n{\r\n\tbackground-image: url(/images/base_struct_images/page_indicator_light.jpg);\r\n\theight: 20px;\r\n\twidth: 8px;\r\n\tpadding:0;\r\n}\r\n\r\n.ind_dark\r\n{\r\n\tbackground-image: url(/images/base_struct_images/page_indicator_dark.jpg);\r\n\theight: 20px;\r\n\twidth: 8px;\r\n\tpadding:0;\r\n}\r\n\r\n/* popup images */\r\n.button_popup_close {\r\n\tbackground-image: url(/images/base_struct_images/btn_close.gif);\r\n\theight: 18px;\r\n\twidth: 36px;\r\n\tdisplay: block;\r\n\tcursor: hand;\r\n}\r\n\r\n.button_popup_next { \r\n\tbackground-image: url(/images/base_struct_images/btn_next.gif);\r\n\theight: 18px;\r\n\twidth: 75px;\r\n\tdisplay: block;\r\n\tcursor: hand;\r\n}\r\n\r\n.button_popup_previous {\r\n\tbackground-image: url(/images/base_struct_images/btn_previous.gif);\r\n\theight: 18px;\r\n\twidth: 75px;\r\n\tdisplay: block;\r\n\tcursor: hand;\r\n}\r\n\r\n/* account creation */\r\n.passport_consent_page_button {\r\n\tbackground-image: url(/images/base_struct_images/arrow_2.gif);\r\n\tmargin-left: 24px;\r\n\tpadding-left: 15px;\r\n\tbackground-repeat: no-repeat;\r\n}\r\n\r\n.account_creation_form_button {\r\n\tbackground-image: url(/images/base_struct_images/arrow_2.gif);\r\n\tpadding-left: 15px;\r\n\tbackground-repeat: no-repeat;\r\n}\r\n\r\n.passportSignupConsent {\r\n\tbackground-image: url(/images/base_struct_images/signup/consent.gif);\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: left top;\r\n\twidth: 438px;\r\n\theight: 23px;\r\n\tdisplay: block;\r\n}\r\n\r\n.passportSignupConsent:hover {\r\n\tbackground-position: left bottom;\r\n}\r\n\r\n" }, "redirectURL": "", "headersSize": 425, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.302Z", "time": 162.09499999968102, "timings": { "blocked": 140.71599999975507, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.3420000013117672, "receive": 21.036999998614192, "_blocked_queueing": 86.01199999975506 } }, { "_fromCache": "disk", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 24 }, "_priority": "VeryHigh", "_resourceType": "stylesheet", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/base_css/rad_bungie.css?ver=2.0.4777.31696", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "ver", "value": "2.0.4777.31696" } ], "cookies": [], "headersSize": 257, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Type", "value": "text/css" }, { "name": "Content-Length", "value": "7718" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:47:54 GMT" }, { "name": "ETag", "value": "\"0138bbd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "cf-request-id", "value": "0813ef14430000fd469fae8000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61cce79a0a51fd46-SYD" } ], "cookies": [], "content": { "size": 40789, "mimeType": "text/css", "text": "/*Safari hacks (must be above others) */\r\n\r\n.rcbArrowCellHidden a{font-size:1px;}\r\n.search-input-wrapper .RadComboBox{vertical-align:bottom;}\r\n.rcbInputCell input{width:100%;}\r\n\r\n/* main navigation, r.a.d.menu variety */\r\n.RadMenu_topNav2 { height: 30px; margin: 0; padding: 0 0 0 9px; background: none transparent scroll repeat 0% 0%; }\r\n.RadMenu_topNav2_Context{background: none;border:0;}\r\n\r\n.RadMenu_topNav2.RadMenu .rmHorizontal .rmLink{ font:12px/14px Arial, Helvetica, sans-serif; color:#71caef;display:block; width: 105px; height: 25px; text-decoration: none; float:none; padding: 0 0 0 0;}\r\n.RadMenu_topNav2.RadMenu .rmLink:hover,\r\n.RadMenu_topNav2.RadMenu .rmFocused,\r\n.RadMenu_topNav2.RadMenu .rmExpanded{ color: #fff; cursor:pointer; }\r\n\r\n.RadMenu_topNav2.RadMenu .rmGroup .rmText { padding-left:0; }\r\n.RadMenu_topNav2.RadMenu .rmGroup {border: solid 1px #333; *filter: alpha(opacity=90);}\r\n.RadMenu_topNav2.RadMenu .rmHorizontal .rmText.rmExpandDown { padding-right: 42px;}\r\n.RadMenu_topNav2 .rmVertical .rmSeparator{ padding-left: 10px; background: url(/images/base_struct_images/menubg.png);*background: #111; text-align: left;padding-top:2px;height: 16px;width: auto;margin: 0; }\r\n.RadMenu_topNav2.RadMenu .rmGroup .rmLink { padding-left: 5px; background: url(/images/base_struct_images/menubg.png);*background: #111; text-align: left;padding-top:2px;height: 16px;width: auto;margin: 0; }\r\n.RadMenu_topNav2.RadMenu .rmRootGroup .rmVertical .rmSeparator .rmText {border-bottom:#777 solid 1px; font-size: 14px; height: 20px; line-height: 15px; margin: 5px 10px 0 5px;width: auto; margin-top:0; padding-top: 5px; }\r\n.RadMenu_topNav2.RadMenu .rmGroup .rmLink:hover,\r\n.RadMenu_topNav2.RadMenu .rmGroup .rmFocused,\r\n.RadMenu_topNav2.RadMenu .rmGroup .rmExpanded { height: 14px; background: url(/images/base_struct_images/menubg-hover.png);*background: #333;padding-top:2px;padding-bottom:2px;}\r\n.RadMenu_topNav2.RadMenu .rmVertical .rmSeparator {height: 30px; }\r\n.RadMenu_topNav2.RadMenu .rmVertical .rmSeparator .rmText {color:#fff; background: none;*background: #111; font: bold 14px/15px Arial, Helvetica, sans-serif; border-bottom: solid 1px #777;height: 20px; width: auto; margin:5px 10px 0 5px;} \r\n.RadMenu_topNav2.RadMenu .rmExpandLeft,\r\n.RadMenu_topNav2.RadMenu .rmExpandRight{\tbackground:transparent url(/images/base_struct_images/top_nav/nav_SubMenuArrow.gif) right center no-repeat;\tmargin-right: 4px;}\r\n.RadMenu_topNav2.RadMenu .rmLink:hover .rmExpandLeft,\r\n.RadMenu_topNav2.RadMenu .rmLink:hover .rmExpandRight,\r\n.RadMenu_topNav2.RadMenu .rmFocused .rmExpandLeft,\r\n.RadMenu_topNav2.RadMenu .rmFocused .rmExpandRight,\r\n.RadMenu_topNav2.RadMenu .rmExpanded .rmExpandLeft,\r\n.RadMenu_topNav2.RadMenu .rmExpanded .rmExpandRight { background: transparent url(/images/base_struct_images/top_nav/nav_SubMenuArrowInverted.gif) right center no-repeat;}\r\n.RadMenu_topNav2.RadMenu .rmHorizontal .navTopLevel .rmText { padding: 4px 42px 1px 3px; }\r\n.RadMenu_topNav2.RadMenu .rmHorizontal .navTopLevel { margin: 4px 0 1px 0px; font: bolder 12px/16px Arial, Helvetica, sans-serif; letter-spacing: 1px; color:#fff; width: auto;}\r\n.RadMenu_topNav2.RadMenu .rmHorizontal .navTopLevel:hover { background: #71caef; text-decoration: none; }\r\n/* fixes for IE6 */\r\n*html .RadMenu_topNav2.RadMenu .rmRootGroup .rmVertical .rmSeparator .rmText {border-bottom:#777 solid 1px; font-size: 14px; height: 20px; line-height: 15px; margin: 5px 10px 0 5px;width: auto; padding:0}\r\n*html .RadMenu_topNav2.RadMenu .rmGroup .rmLink .rmText {padding:0; padding-left: 5px;line-height: 18px; padding-right: 15px;width: auto;}\r\n*html .RadMenu_topNav2.RadMenu .rmGroup .rmLink,\r\n*html .RadMenu_topNav2.RadMenu .rmGroup .rmLink:hover,\r\n*html .RadMenu_topNav2.RadMenu .rmGroup .rmFocused,\r\n*html .RadMenu_topNav2.RadMenu .rmGroup .rmExpanded { padding:0; margin: 0; width: auto;}\r\n*html .RadMenu_topNav2.RadMenu .rmItem { display: inline; width: 1px; float: left;}\r\n*html .RadMenu_topNav2.RadMenu .rmGroup { padding:0; margin:0; }\r\n*html .RadMenu_topNav2.RadMenu a.navTopLevel, \r\n*html .RadMenu_topNav2.RadMenu .rmLink:active { color: #fff; }\r\n*html .RadMenu_topNav2.RadMenu .rmHorizontal .navTopLevel { width: 1px; }\r\n/* End top navigation */\r\n\r\n/*RadTabStrip Styles*/\r\n.community_cols .RadTabStripTop_Default .rtsLevel1 .rtsLink,.game_details .RadTabStripTop_Default .rtsLevel1 .rtsLink,.cols .RadTabStripTop_Default .rtsLevel1 .rtsLink { background: none; }\r\n.RadTabStrip_Default .rtsLevel1 { display: block; width: 902px; height: 29px; float: left; background: #161616; border-bottom: 1px solid #3b5f79; margin-top: 10px; overflow: visible !important;}\r\n.RadTabStrip .rtsSeparator, .RadTabStripVertical .rtsSeparator{font-size: 17px !important; font-family: arial, helvetica, sans-serif !important; display: block; float: left; width: 150px !important; text-align: center; text-transform: capitalize !important;line-height:31px !important; color: #fefefe !important; background: none !important;}\r\n.RadTabStrip_Default ul.rtsUL {list-style: none; display: inline; background: none; float: left;}\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI { display: block; background: url(/images/halo3stats/tabs/tab-left.jpg) no-repeat 0; margin-left: 6px; width:auto; float: left; _width:1px;_overflow: visible;_margin-bottom:-2px;}\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI span.rtsOut { display: block; background: url(/images/halo3stats/tabs/tab-right.jpg) no-repeat right; margin-left: 14px;_margin-left:4px;padding-right: 24px;_padding-right: 17px;width:auto; float: left; text-align: left;}\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI a.rtsSelected { background: url(/images/halo3stats/tabs/tab-left.jpg) no-repeat top left; color: #FFF;}\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI a.rtsSelected span.rtsOut{ background: url(/images/halo3stats/tabs/tab-right.jpg) no-repeat top right;}\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI a { display: block; width:auto; height: 31px; font-family: arial, helvetica, sans-serif; color: #71caef; text-decoration: none; font-size: 12px; line-height: 31px;}\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI.active a { color: #fff; }\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI:hover { background: url(/images/halo3stats/tabs/tab-left.jpg) no-repeat bottom left; }\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI:hover span.rtsOut { background: url(/images/halo3stats/tabs/tab-right.jpg) no-repeat bottom right; }\r\n*html .RadTabStrip_Default ul.rtsUL li.rtsLI a:hover { background: url(/images/halo3stats/tabs/tab-left.jpg) no-repeat bottom left; }\r\n*html .RadTabStrip_Default ul.rtsUL li.rtsLI a:hover span.rtsOut { background: url(/images/halo3stats/tabs/tab-right.jpg) no-repeat bottom right; }\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI.active:hover { background: url(/images/halo3stats/tabs/tab-left.jpg) no-repeat top left; }\r\n.RadTabStrip_Default ul.rtsUL li.rtsLI.active:hover span.rtsOut { background: url(/images/halo3stats/tabs/tab-right.jpg) no-repeat top right; }\r\n\r\n.rtsLevel2 { display: block; float: left; background: url(/images/halo3stats/tabs/background-fade.jpg) no-repeat top center #000 !important; width: 902px; height: 40px;}\r\n.rtsLevel2 p { color: #fff; line-height: 40px; padding-left: 15px; }\r\n.rtsLevel2 ul.rtsUL { color: #fff; padding-left: 10px; list-style: none; background: none; height: 40px; float: left;}\r\n.rtsLevel2 ul.rtsUL li.rtsLI { line-height: 40px; padding-right: 0px; float: left; background: none; margin:0 !important;}\r\n\r\n.RadTabStrip_Default .rtsLevel2 ul.rtsUL li.rtsLI a { background: none !important;}\r\n.RadTabStrip_Default .rtsLevel2 ul.rtsUL li.rtsLI a:hover { color:white;}\r\n.RadTabStrip_Default .rtsLevel2 ul.rtsUL li.rtsLI a.rtsSelected { background: transparent url(/images/halo3stats/dwn-arrow-wht.gif) no-repeat scroll 5px 18px !important; color: #fff; margin-left: 10px;padding-left:12px;}\r\n.RadTabStrip_Default .rtsLevel2 ul.rtsUL li.rtsLI:hover { background: none !important; color: #FFF;}\r\n.RadTabStrip_Default .rtsLevel2 ul.rtsUL li.rtsLI a span { line-height: 40px; background: none !important; margin:0 !important; padding-right: 0px !important;}\r\n.RadTabStrip_Default .rtsLevel2 ul.rtsUL li.rtsLI a span span { line-height: 40px; background: none !important; margin:0 !important; padding-right: 10px !important;}\r\n.RadTabStrip_Default .rtsLevel2 ul.rtsUL li.rtsLI.rtsFirst.rtsLast a span span { color:#fff; cursor: default;_color:inherit; _cursor: pointer;}\r\n.RadTabStrip_Default .rtsLevel2 .rtsLink{ padding-left:0;}\r\n/*modifications to tab strips on Game History listings */\r\nul.tabbed_nav { height: 30px; float: left; margin: 0; margin-top: 10px; }\r\nul.tabbed_nav li{ height: 30px; }\r\ndiv.community_colB .spotlight_career { display: block; float: left; height: 40px; }\r\n/*end of modifications*/\r\n/* end of RadTabStrip Styles*/\r\n\r\n/* extra rad-editor css */\r\n/* this needs a real image */\r\n.rade_toolbar.Default .Insert_MediaPlayer {\r\n\tbackground: transparent url(/images/base_struct_images/news/insert_media_player_button.gif) 3px -3px no-repeat;\r\n}\r\n\r\n.radeditor.Default.rade_wrapper table td.rade_contentCell {background: Transparent !important;}\r\n\r\n.nav li.NavSearch div.search-div div.RadToolBar { width: 42px; height: 20px; margin: 0; padding:0; display: block; overflow: hidden; white-space:nowrap; float: left; clear:none; }\r\n.nav .RadToolBar {height:20px; vertical-align:middle; }\t\r\n.nav .RadToolBar_Default .rtbWrap {background:#111 url(/images/base_struct_images/search/searchbackground.gif) no-repeat; height:22px; padding: 2px 0 0px 0;}\r\n.nav .RadToolBar_Default .rtbInner .rtbIcon {padding:0 3px 1px 8px; height:18px; width:18px;}\r\n.nav .RadToolBar_Default .rtbSplBtnActivator .rtbText {display:none; visibility:collapse;}\r\n\r\ndiv.nav ul.navButtons li {float: left; list-style-type:none; margin:0; padding:0; width: auto;}\r\ndiv.nav .RadToolBar .rtbItem { display: table-cell; overflow: hidden; vertical-align: middle; }\r\ndiv.nav .RadToolBar .rtbInner { padding:0 }\r\ndiv.nav .RadToolBar .rtbItem,\r\ndiv.nav .RadToolBar .rtbWrap,\r\ndiv.nav .RadToolBar .rtbOut,\r\ndiv.nav .RadToolBar .rtbMid,\r\ndiv.nav .RadToolBar .rtbIn,\r\ndiv.nav .RadToolBar .rtbText { clear: none; display:table-cell; height:20px; vertical-align:top; padding:0;}\r\ndiv.nav .RadToolBar { margin:0; padding:0; white-space:nowrap; margin-right:-3px;}\r\ndiv.nav .RadToolBar_Default .rtbChoiceArrow{ width: 10px; height:20px; background: url(/images/base_struct_images/search/downarrow.gif) center left no-repeat;padding:0; margin:0 3px 0 0 ;}\r\ndiv.nav .RadToolBar .rtbSplBtnHovered .rtbChoiceArrow,\r\ndiv.nav .RadToolBar .rtbSplBtnFocused .rtbChoiceArrow,\r\ndiv.nav .RadToolBar .rtbSplBtnExpanded .rtbChoiceArrow {margin-left:0; width: 10px;}\r\n.RadToolBarDropDown .rtbWrap * { cursor: pointer; display: inline-block; }\r\n.RadToolBarDropDown_Default {border: solid 1px #333;}\r\n.RadToolBarDropDown_Default .rtbItem {background: #111; filter: alpha(opacity=90);}\r\n.RadToolBarDropDown_Default .rtbItem .rtbWrap {color:#71caef; padding: 0; display: block; }\r\n.RadToolBarDropDown_Default .rtbItem .rtbWrap:hover {background: #333; color: #fff; cursor:pointer;}\r\n.RadToolBarDropDown_Default .rtbItem .rtbWrap .rtbIcon { padding:3px 7px 3px 7px; border-right: solid 1px #333; top:auto; left: auto; right: auto; bottom:auto; position:static; display: inline-block;}\r\n.RadToolBarDropDown_Default .rtbItem .rtbWrap .rtbText {font: 12px/15px Arial, Helvetica, sans-serif; padding: 4px 20px 0 10px; line-height: 18px; display: inline;}\r\n*html .RadToolBarDropDown_Default .rtbItem .rtbWrap .rtbText {padding-left: 40px;}\r\n\r\n/* RadComboBox Default skin */\r\n\r\n/*global*/\r\n\r\n.RadPanelBar span.rpText { padding: 0; font-family: arial, helvetica, sans-serif;}\r\n.RadPanelBar ul.rpRootGroup,.RadPanelBar span.rpOut {border: none;border-style:none; }\r\n.RadPanelBar a.rpLink {border: none; }\r\n.RadPanelBar_BungieSmall .rpGroup li.rpItem a { width: 120px; }\r\n.RadPanelBar_BungieSmall .rpRootGroup a.rpExpandable { margin-top: 5px; line-height: 18px; background-position: top left;}\r\n.RadPanelBar_BungieSmall .rpRootGroup a.rpExpandable:hover { background-position: 0 -20px;}\r\n.RadPanelBar_BungieSmall .rpRootGroup a.rpExpanded { background-position: 0 -40px;}\r\n.RadPanelBar_BungieSmall .rpRootGroup a.rpExpanded:hover { background-position: 0 -60px;}\r\n.RadPanelBar_BungieSmall .rpGroup a.rpLink, .radPanelBar .rpGroup span.rpText {line-height: 16px;}\r\n\r\n.RadPanelBar_Bungie .rpRootGroup a.rpExpandable { margin-top: 5px; line-height: 28px; background-position: top left;}\r\n.RadPanelBar_Bungie .rpRootGroup a.rpExpandable:hover { background-position: 0 -30px;}\r\n.RadPanelBar_Bungie .rpRootGroup a.rpExpanded { background-position: 0 -60px;}\r\n.RadPanelBar_Bungie .rpRootGroup a.rpExpanded:hover { background-position: 0 -90px;}\r\n\r\n/*RadGrid*/\r\n.rgAdvPart { display:none; }\r\n.game_details .content_matte { background: url(/images/halo3stats/mainblock-back.jpg) repeat-x top center #1e1e1e; }\r\n.game_details .content_matte .games_container { width:902px; }\r\n.game_details .summary_container .contain { border-color: black; height: 546px; background: black; color: #d6d6d6;}\r\n.game_details .summary_container .contain .convex_cont { background: url(/images/base_struct_images/stats/contain-header.jpg) no-repeat; }\r\n.game_details .summary_container.halo3 .contain .convex_cont { background:#363636; }\r\n.game_details .summary_container .contain .boxD { background: black; }\r\ntr.rgPager td.rgPagerCell div { height: 20px; line-height: 20px; padding:0; float: left; width: auto; padding-left:0;padding-right:0;}\r\ntr.rgPager td.rgPagerCell .rgArrPart1 a,tr.rgPager td.rgPagerCell .rgArrPart2 a { margin-top: 2px;}\r\ntr.rgPager td { padding:0; }\r\ndiv.RadGrid_Black tr.rgPager td.rgPagerCell{ border: none; white-space: nowrap; height:24px; height /*\\**/:21px\\9; *height: 21px;}\r\ndiv.RadGrid_Black tr.rgPager td.rgPagerCell .rgNumPart a{ color: #71CAEF;padding: 0;background: none;}\r\n/*div.finder_cont div.RadGrid_Black tr.rgPager td.rgPagerCell .rgNumPart a span { background: none; line-height: 17px; padding-right: 2px;}*/\r\n.game_details .games { height: 546px; border-color: black; background: black;}\r\n.game_details .games div.RadGrid_Black { background: black;}\r\n.game_details .games table tr td a{ padding-left: 2px; padding-right: 2px;}\r\n.game_details .games table tr td a span{ font-size: 13px; line-height: 25px; padding-right: 3px;}\r\n.game_details .games table tr td a.rgCurrentPage span { color: #858585; text-decoration: none; }\r\n.rgArrPart1,.rgArrPart2 {padding-top: 3px; line-height: 20px;}\r\n.rgArrPart1 a { background: url(/images/base_struct_images/linkBt/prevprev.gif) no-repeat top center; display: block; width: 20px; height: 20px; float: left;}\r\n.rgArrPart1 a:hover,.rgArrPart1 a:last-child:hover,.rgArrPart2 a:hover,.rgArrPart2 a:first-child:hover { background-position: center -20px;}\r\n.rgArrPart1 a:last-child{ background: url(/images/base_struct_images/linkBt/leftarrow.gif) no-repeat top center;}\r\n.rgArrPart2 a { background: url(/images/base_struct_images/linkBt/nextnext.gif) no-repeat top center; display: block; width: 20px; height: 20px; float: left;}\r\n.rgArrPart2 a:first-child{ background: url(/images/base_struct_images/linkBt/rightarrow.gif) no-repeat top center;}\r\n.rgArrPart1 a img,.rgArrPart2 a img{ display: none; }\r\ndiv.RadGrid_Black input.rgPageFirst {background: url(/images/base_struct_images/linkBt/prevprev.gif) no-repeat top center; height: 20px; width: 20px;}\r\ndiv.RadGrid_Black input.rgPageFirst:hover {background-position: center -20px;}\r\ndiv.RadGrid_Black input.rgPagePrev {background: url(/images/base_struct_images/linkBt/leftarrow.gif) no-repeat top center; height: 20px; width: 20px;}\r\ndiv.RadGrid_Black input.rgPagePrev:hover {background-position: center -20px;}\r\ndiv.RadGrid_Black input.rgPageNext {background: url(/images/base_struct_images/linkBt/rightarrow.gif) no-repeat top center; height: 20px; width: 20px;}\r\ndiv.RadGrid_Black input.rgPageNext:hover {background-position: center -20px;}\r\ndiv.RadGrid_Black input.rgPageLast {background: url(/images/base_struct_images/linkBt/nextnext.gif) no-repeat top center; height: 20px; width: 20px;}\r\ndiv.RadGrid_Black input.rgPageLast:hover {background-position: center -20px;}\r\n\r\ndiv.RadGrid_Black th.rgHeader {background: black; border-top: 1px solid #000;text-align: left; padding-left: 5px; height: 25px;height /*\\**/: 17px\\9;border-bottom: 1px solid #494949;}\r\ndiv.RadGrid_Black tr.rgSelectedRow { background: #333 !important; }\r\ndiv.RadGrid_Black tr.rgSelectedRow:hover { background: #333 !important; }\r\ndiv.RadGrid_Black .rgPager { background: #424242; }\r\ndiv.RadGrid_Black .rgPager td{ padding: 1px !important; }\r\ndiv.RadGrid_Black .rgPager td table { border: 1px solid #5b5b5b; border-left: none; border-right: none; }\r\n.RadGrid_Black .rgNumPart a:hover, .RadGrid_Black .rgNumPart a:hover span, .RadGrid_Black .rgNumPart a.rgCurrentPage, .RadGrid_Black .rgNumPart a.rgCurrentPage span { background: none !important; }\r\ntr.rgPager td.rgPagerCell div.rgInfoPart { float: right; width: auto; padding-right: 5px; line-height:25px}\r\n.game_details .games table tr.rgRow td { color: #c9c9c9 !important; height: auto;font-family:Arial,Helvetica,sans-serif;}\r\n.game_details .games table tr.rgAltRow td { color: #939393 !important; height: auto;font-family:Arial,Helvetica,sans-serif;}\r\ndiv.RadGrid_Black tr.rgAltRow,div.RadGrid_Black tr.rgRow {height: 16px; *height: auto; background: url(/images/base_struct_images/stats/gamehistoryback.jpg);}\r\ndiv.finder_cont div.RadGrid_Black tr.rgAltRow,div.finder_cont div.RadGrid_Black tr.rgRow {background-image:none;}\r\ndiv.finder_cont div.RadGrid_Black a,div.content_favs div.RadGrid_Black a {color:#71CAEF;}\r\ndiv.content_favs div.RadGrid_Black tr {background:#161617;}\r\ndiv.RadGrid_Black tr.rgAltRow td,div.RadGrid_Black tr.rgRow td {height: 16px;padding-bottom /*\\**/:1.5px\\9; *padding-bottom: 1px; line-height: 16px;}\r\ndiv.RadGrid_Black tr.rgAltRow td {padding-bottom: 2px;padding-bottom /*\\**/:1.5px\\9; *padding-bottom:2px;}\r\n/*div.RadGrid_Black tr.rgAltRow, div.RadGrid_Black tr.rgRow { background: url(/images/base_struct_images/stats/gamehistoryback.jpg); font-size: 11px; height:18.5px;}*/\r\n\r\ndiv.RadGrid_Black tr.rgAltRow:hover,div.RadGrid_Black tr.rgRow:hover {background: #232323;}\r\n\r\n.RadComboBox_Bungie *\r\n{\r\n\tmargin:0;\r\n\tpadding:0;\r\n}\r\n\r\n .rcbInputCell .rcbInput,\r\n.RadComboBoxDropDown_Bungie\r\n{\r\n\tfont:12px arial,verdana,sans-serif;\r\n\tcolor:#000;\r\n\ttext-align: left;\r\n}\r\n\r\n/*.rcbInputCell .rcbInput,*/\r\n.RadComboBoxDropDown_Bungie_rtl\r\n{\r\n\ttext-align: right;\r\n}\r\n\r\n/* combobox */\r\n\r\n.RadComboBox_Bungie\r\n{\r\n\tvertical-align:bottom;\r\n}\r\n\r\n.RadComboBox_Bungie table\r\n{\r\n\tborder:0;\r\n\t/*border-collapse:collapse;*/\r\n}\r\n\r\n td.rcbInputCell\r\n{\r\n\r\n\theight:21px;\r\n\tline-height:20px;\r\n\tborder:1px solid #626262;\r\n\tvertical-align:top;\r\n\tbackground: #fff;\r\n\tpadding:0;\r\n}\r\n\r\n .rcbInputCell .rcbInput\r\n{\r\n\twidth:100%;\r\n\tbackground:transparent;\r\n\tborder:0;\r\n\tvertical-align:top;\r\n\tpadding:3px 0 0 0;\r\n\tcolor: #373737;\r\n}\r\n\r\n .rcbInputCell .rcbEmptyMessage\r\n{\r\n\tcolor: #666;\r\n\tfont-style: italic;\r\n}\r\n\r\n td.rcbInputCell,\r\n .rcbInputCell .rcbInput\r\n{\r\n\tpadding-left: 2px;\r\n}\r\n\r\ntd.rcbInputCell,\r\n.rcbInputCell .rcbInput\r\n{\r\n\tpadding-right: 2px;\r\n\tpadding-left: 0;\r\n}\r\n\r\n td.rcbInputCellLeft\r\n{\r\n\tborder-right: 0;\r\n}\r\n\r\n td.rcbInputCellRight\r\n{\r\n\tborder-left: 0;\r\n}\r\n\r\n .rcbHovered .rcbInputCell\r\n{\r\n\tbackground: #efefef;\r\n}\r\n\r\n .rcbFocused .rcbInputCell\r\n{\r\n\tbackground: #efefef;\r\n\tborder-color: #1d1d1d;\r\n}\r\n\r\n .rcbFocused .rcbInputCell .rcbInput\r\n{\r\n\tcolor: #1d1d1d;\r\n}\r\n/*special exception for Safari */\r\n@media screen and (-webkit-min-device-pixel-ratio:0){\r\n\t .rcbInputCell .rcbInput,\r\n\t.RadComboBoxDropDown_Bungie\r\n\t{\r\n\t\tline-height: 18px;\r\n\t}\r\n}\r\n/* end special exception */\r\n\r\n .rcbDisabled .rcbInputCell\r\n{\r\n\tborder-color: #a1a1a1;\r\n}\r\n\r\n .rcbDisabled .rcbInputCell .rcbInput\r\n{\r\n\tcolor: #9b9b9b;\r\n}\r\n\r\n td.rcbArrowCell\r\n{\r\n\t\r\n\twidth:27px;\r\n\tborder: 1px solid #373737;\r\n\tborder-bottom-color: #030303;\r\n\tpadding:0;\r\n}\r\n\r\n .rcbDisabled .rcbArrowCell\r\n{\r\n\tbackground-position: 0 -23px;\r\n\tborder-color: #878787;\r\n}\r\n\r\n td.rcbArrowCellLeft\r\n{\r\n\tborder-right-width: 0;\r\n}\r\n\r\n td.rcbArrowCellRight\r\n{\r\n\tborder-left-width: 0;\r\n}\r\n\r\n .rcbArrowCell a\r\n{\r\n\tline-height:21px;\r\n\twidth:27px;\r\n\theight:21px;\r\n\ttext-decoration:none;\r\n\ttext-indent: -9999px;\r\n\tfont-size: 0;\r\n}\r\n\r\n .rcbDisabled .rcbArrowCell a\r\n{\r\n\tcursor:no-drop;\r\n}\r\n\r\n .rcbDisabled .rcbArrowCellHidden a\r\n{\r\n\tcursor: default;\r\n}\r\n\r\n td.rcbArrowCellHidden,\r\n .rcbDisabled .rcbArrowCellHidden,\r\n .rcbArrowCellHidden a\r\n{\r\n\twidth: 0;\r\n}\r\n\r\n/* dropdown */\r\n\r\n.rcbSlide\r\n{\r\n\tposition:absolute;\r\n\toverflow:hidden;\r\n\tdisplay:none;\r\n\t_height:1px;\r\n\tfloat:left;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie\r\n{\r\n\tposition:absolute;\r\n\tbackground:#111;\r\n\tborder: 2px solid #00a1e5;\r\n\tcursor:default;\r\n\tfont-size:11px;\r\n\toverflow: hidden;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie_rtl\r\n{\r\n\ttext-align: right;\r\n\tdirection: rtl;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbScroll\r\n{\r\n\toverflow:auto;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbList\r\n{\r\n\tlist-style:none;\r\n\tmargin:0;\r\n\tpadding:0;\r\n\theight: 150px;\r\n\toverflow-y: auto !important;\r\n\toverflow-x: hidden;\r\n\tzoom:1;\r\n}\r\n\r\n/*.RadComboBoxDropDown_Bungie .rcbScroll .rcbList\r\n{\r\n\tfloat:left;\r\n}*/\r\n\r\n.RadComboBoxDropDown_Bungie .rcbHeader,\r\n.RadComboBoxDropDown_Bungie .rcbFooter\r\n{\r\n\tbackground:#929292;\r\n\tcolor:#fff;\r\n\tpadding:4px;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbNoWrap .rcbItem,\r\n.RadComboBoxDropDown_Bungie .rcbNoWrap .rcbHovered,\r\n.RadComboBoxDropDown_Bungie .rcbNoWrap .rcbDisabled,\r\n.RadComboBoxDropDown_Bungie .rcbNoWrap .rcbLoading\r\n{\r\n\twhite-space:nowrap;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbItem,\r\n.RadComboBoxDropDown_Bungie .rcbHovered,\r\n.RadComboBoxDropDown_Bungie .rcbDisabled,\r\n.RadComboBoxDropDown_Bungie .rcbLoading\r\n{\r\n\tpadding:4px 20px 4px 4px;\r\n}\r\n\r\n* html .RadComboBoxDropDown_Bungie .rcbItem,\r\n* html .RadComboBoxDropDown_Bungie .rcbHovered,\r\n* html .RadComboBoxDropDown_Bungie .rcbDisabled,\r\n* html .RadComboBoxDropDown_Bungie .rcbLoading\r\n{\r\n\tzoom:1;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie_rtl .rcbItem,\r\n.RadComboBoxDropDown_Bungie_rtl .rcbHovered,\r\n.RadComboBoxDropDown_Bungie_rtl .rcbDisabled,\r\n.RadComboBoxDropDown_Bungie_rtl .rcbLoading\r\n{\r\n\tpadding:4px 4px 4px 20px;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbImage\r\n{\r\n\tvertical-align: middle;\r\n\tmargin: 0 6px 2px 0;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie_rtl .rcbImage\r\n{\r\n\tmargin: 0 0 2px 6px;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie em\r\n{\r\n\tfont-style: normal;\r\n\tfont-weight: bold;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbItem em\r\n{\r\n\tbackground: #e5e5e5;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbHovered\r\n{\r\n\tbackground:#3c3c3c;\r\n\tcolor:#fff;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbDisabled\r\n{\r\n\tcolor:#ccc;\r\n\tcursor:no-drop;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbSeparator\r\n{\r\n color: #fff;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbLoading\r\n{\r\n\tbackground:#111;\r\n\ttext-align:center;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbMoreResults\r\n{\r\n\tclear:both;\r\n\tbackground:#f3f3f3;\r\n\tpadding:4px;\r\n\ttext-align:center;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbMoreResults a\r\n{\r\n\tdisplay:block;\r\n\twidth:15px;\r\n\theight:14px;\r\n\t\r\n\tmargin:0 auto 4px;\r\n\ttext-indent:-3333px;\r\n\toverflow:hidden;\r\n\ttext-decoration:none;\r\n\tcursor:pointer;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbMoreResults a:hover\r\n{\r\n\tbackground-position:0 100%;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbMoreResults span\r\n{\r\n\tdisplay:block;\r\n\ttext-align:center;\r\n}\r\n\r\n.RadComboBoxDropDown_Bungie .rcbScroll\r\n{\r\n\tscrollbar-face-color: #e9e9e9;\r\n\tscrollbar-highlight-color: #ffffff;\r\n\tscrollbar-shadow-color: #e9e9e9;\r\n\tscrollbar-3dlight-color: #dbdbdb;\r\n\tscrollbar-arrow-color: #787878;\r\n\tscrollbar-track-color: #f5f5f5;\r\n\tscrollbar-darkshadow-color: #aeaeae;\r\n}\r\n\r\n/*hacks*/\r\n\r\n\r\n/*Opera start*/\r\n@media screen and (min-width:550px)\r\n{\r\n\t.RadComboBoxDropDown_Bungie_rtl .rcbItem,\r\n\t.RadComboBoxDropDown_Bungie_rtl .rcbHovered,\r\n\t.RadComboBoxDropDown_Bungie_rtl .rcbDisabled,\r\n\t.RadComboBoxDropDown_Bungie_rtl .rcbLoading\r\n\t{\r\n\t\tpadding:4px 20px 4px 4px;\r\n\t\tzoom:1;\r\n\t}\r\n}\r\n/*Opera end*/\r\n\r\n/* Docking Zone properties */\r\n\r\ndiv.RadDockZone_Bungie\r\n{\r\n border-style: none;\r\n border-width: 0px;\r\n padding: 0px;\r\n}\r\n\r\n*html .RadDockZone_Bungie\r\n{\r\n}\r\n\r\n*>div.RadDockZone_Bungie.rdVertical /* hidden from IE6 */\r\n{\r\n padding-right: 0px;\r\n}\r\n\r\n/* Dock Object properties */\r\n\r\n/* wrappers and borders */\r\n\r\n.RadDockZone_Bungie .rdPlaceHolder { border-color: #FF00FF; }\r\n\r\n.RadDock_Bungie\r\n{\r\n margin-top: -1px;\r\n}\r\n\r\n.RadDock_Bungie .media_link { \r\n\tcolor: #ffffff;\r\n}\r\n\r\n/* titlebar and buttons */\r\n\r\n.RadDock_Bungie .rdTitleBar\r\n{\r\n top:1px; /*brd*/\r\n color:#fff;\r\n height:25px;\r\n background:url(/images/base_struct_images/Dock/TitlebarH.gif) repeat-x;\r\n z-index: 1000;\r\n}\r\n\r\n.RadDock_Bungie.rdCollapsed .rdTitleBar\r\n{\r\n padding-bottom:0px; /*brd - title brd*/\r\n}\r\n\r\n.RadDock_Bungie .rdTable .rdTitleBar em\r\n{\r\n font:bold 11px/25px arial,sans-serif;\r\n padding-left: 3px;\r\n}\r\n\r\n.RadDock_Bungie .rdTable .rdCenter .rdTitleBar ul.rdCommands\r\n{\r\n margin: 0;\r\n}\r\n.RadDock_Bungie .rdTable .rdCenter .rdTitleBar ul.rdCommands li\r\n{\r\n display: inline;\r\n margin: 0;\r\n width: auto;\r\n height: auto;\r\n}\r\n\r\n.RadDock_Bungie .rdTable .rdCenter .rdTitleBar ul.rdCommands a span\r\n{\r\n width: 18px;\r\n height: 25px;\r\n}\r\n\r\n.RadDock_Bungie .rdCollapse\r\n{\r\n background:url(/images/base_struct_images/Dock/Collapse.gif);\r\n}\r\n.RadDock_Bungie .rdExpand\r\n{\r\n background:url(/images/base_struct_images/Dock/Expand.gif);\r\n}\r\n.RadDock_Bungie .rdClose\r\n{\r\n background:url(/images/base_struct_images/Dock/Close.gif);\r\n}\r\n.RadDock_Bungie .rdPin\r\n{\r\n background:url(/images/base_struct_images/Dock/Pin.gif);\r\n}\r\n.RadDock_Bungie .rdUnpin\r\n{\r\n background:url(/images/base_struct_images/Dock/Unpin.gif);\r\n}\r\n.RadDock_Bungie .rdCustom\r\n{\r\n background:url(/images/base_struct_images/Dock/Custom.gif);\r\n}\r\n\r\n/* inner content */\r\n\r\n.RadDock_Bungie .rdTable .rdContent\r\n{\r\n overflow: hidden;\r\n height: auto;\r\n}\r\n\r\n/* resizable dock */\r\n.RadDock_Bungie .rdTable .rdTop .rdLeft,\r\n.RadDock_Bungie .rdTable .rdTop .rdRight,\r\n.RadDock_Bungie .rdTable .rdBottom .rdLeft,\r\n.RadDock_Bungie .rdTable .rdBottom .rdRight\r\n{\r\n width: 0px;\r\n}\r\n\r\n.RadDock_Bungie .rdTable .rdBottom .rdLeft,\r\n.RadDock_Bungie .rdTable .rdBottom .rdCenter,\r\n.RadDock_Bungie .rdTable .rdBottom .rdRight\r\n{\r\n height: 0px;\r\n}\r\n\r\n.RadDock_Bungie .rdTable .rdTop td.rdLeft, \r\n.RadDock_Bungie .rdTable .rdTop td.rdRight\r\n{\r\n\tfont-size: 0;\r\n\tline-height: 0;\r\n}\r\n\r\n/* end of resizable dock */\r\n\r\n/*Modal Popup*/\r\ntable.rfdRoundedWrapper textarea, textarea.rfdTextarea { width: 99%; }\r\na.rfdSkinnedButton.RadForm_Black { padding-right: 4px; }\r\n\r\n/* Rad Tool Tip AssetDark Skin */\r\n.RadToolTip_AssetDark.rtLoading\r\n{\t\r\n\tbackground: url('/images/base_struct_images/RadToolTip/Loading.gif') no-repeat center;\r\n\twidth: 100%; \r\n\theight: 100%;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark\r\n{\r\n\tposition: absolute;\r\n\tcursor: default;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark div.rtCallout\r\n{\r\n\tdisplay: none;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark.rtVisibleCallout div.rtCallout\r\n{\r\n\tdisplay: block;\r\n}\r\n\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper\r\n{\r\n\tpadding: 0; \r\n\tmargin: 0;\r\n\tborder-collapse: collapse;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopLeft,\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopRight,\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomLeft,\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomRight\r\n{\r\n\twidth: 3px; \r\n\theight: 3px; \r\n\tline-height: 1px; \r\n\tfont-size: 1px;\r\n\tbackground-image: url('/images/base_struct_images/RadToolTip/ToolTipSprites.gif');\r\n\tbackground-color: transparent;\r\n\tbackground-repeat: no-repeat;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopLeft\r\n{\r\n\tbackground-position: 0 -12px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopRight\r\n{\r\n\tbackground-position: right -12px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomLeft\r\n{\r\n\tbackground-position: 0 -63px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomRight\r\n{\r\n\tbackground-position: right -63px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopCenter,\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomCenter\r\n{\r\n\theight: 3px; \r\n\tline-height: 0px; \r\n\tfont-size: 1px;\r\n\tbackground: url('/images/base_struct_images/RadToolTip/ToolTipSprites.gif') ;\r\n\tbackground-repeat: repeat-x;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopCenter\r\n{\r\n\tbackground-position: 0 -66px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomCenter\r\n{\r\n\tbackground-position: 0 -120px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperLeftMiddle,\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperRightMiddle\r\n{\r\n\tbackground-image: url('/images/base_struct_images/RadToolTip/ToolTipVerticalSprites.gif');\r\n\tbackground-repeat: repeat-y;\r\n\tfont-size: 1px;\r\n\twidth: 3px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperLeftMiddle\r\n{\r\n\tbackground-position: 0 0;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperRightMiddle\r\n{\r\n\tbackground-position: -3px 0;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperContent\r\n{\r\n\tfont: normal 13px Arial, Helvetica, sans-serif;\r\n\theight: 100%;\r\n\tbackground-color: #000;\t\r\n\tpadding: 20px !important;\r\n\tcolor: #bbb;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark div.rtTitlebar\r\n{\t\r\n\tcolor: #333;\r\n\tfont: normal 18px \"Segoe UI\", Arial, Sans-serif;\r\n\tfloat: left;\r\n\tline-height: 22px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark a.rtCloseButton\r\n{\r\n\tdisplay: block; \r\n\tfloat: right;\r\n\tposition: absolute;\r\n\tright: 2px;\r\n\twidth: 12px; \r\n\theight: 12px;\r\n\tfont-size: 1px; \r\n\tline-height: 1px;\r\n\tmargin-top: 5px;\r\n\tmargin-right: 3px;\r\n\tbackground-image: url('/images/base_struct_images/RadToolTip/ToolTipSprites.gif');\r\n\tbackground-position: 0 0;\r\n\tbackground-repeat: no-repeat;\r\n\ttext-indent: -9999px;\r\n\toutline: none;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark div.rtCallout\r\n{\r\n\tposition: absolute; \r\n\theight: 11px; \r\n\twidth: 11px;\r\n\tline-height: 0px; \r\n\tfont-size: 1px;\r\n\tbackground-image: url('/images/base_struct_images/RadToolTip/Callouts.gif');\r\n\tbackground-repeat: no-repeat;\r\n}\r\n\r\n/* position=\"rtCalloutCenter\" */\r\ndiv.RadToolTip_AssetDark .rtCalloutCenter\r\n{\r\n\tvisibility: hidden;\r\n}\r\n\r\n/* position=\"rtCalloutBottomRight\" */\r\n.RadToolTip_AssetDark .rtCalloutTopLeft\r\n{\r\n\tmargin-top: -10px; \r\n\tmargin-left: 20px;\r\n\tbackground-position: 0 -22px;\r\n}\r\n\r\n/* position=\"rtCalloutBottomCenter\" */\r\n.RadToolTip_AssetDark .rtCalloutTopCenter\r\n{\r\n\tleft: 50% ;\r\n\tmargin-top: -9px; \r\n\tmargin-left: -10px;\r\n\tbackground-position: 0 0 ;\r\n}\r\n\r\n/* position=\"rtCalloutBottomLeft\" */\r\n.RadToolTip_AssetDark .rtCalloutTopRight\r\n{\r\n\tleft: 100% ;\r\n\tmargin-top: -10px; \r\n\tmargin-left: -20px;\r\n\tbackground-position: 0 -11px ;\r\n}\r\n\r\n/* position=\"rtCalloutTopCenter\" */\r\n.RadToolTip_AssetDark .rtCalloutBottomCenter\r\n{\r\n\ttop: 100% ; \r\n\tleft: 50% ;\r\n\tmargin-left: -10px ; \r\n\tmargin-top: -1px ;\r\n\tbackground-position: 0 -55px ;\r\n}\r\n\r\n/* position=\"rtCalloutTopLeft\" */\r\n.RadToolTip_AssetDark .rtCalloutBottomRight\r\n{\r\n\ttop: 100% ; \r\n\tleft: 100% ;\r\n\tmargin-left: -40px ; \r\n\tmargin-top: -1px ;\r\n\tbackground-position: 0 -66px ;\r\n}\r\n\r\n/* position=\"rtCalloutTopRight\" */\r\n.RadToolTip_AssetDark .rtCalloutBottomLeft\r\n{\r\n\ttop: 100% ;\r\n\tmargin-left: 20px ; \r\n\tmargin-top: -1px ;\r\n\tbackground-position: 0 -77px ;\r\n}\r\n\r\n/* position=\"rtCalloutMiddleRight\" */\r\n.RadToolTip_AssetDark .rtCalloutMiddleLeft\r\n{\r\n\ttop: 50% ;\r\n\tmargin-left: -10px; \r\n\tmargin-top: -7px;\r\n\tbackground-position: 0 -44px ;\r\n}\r\n\r\n/* position=\"rtCalloutMiddleLeft\" */\r\n.RadToolTip_AssetDark .rtCalloutMiddleRight\r\n{\r\n\tleft: 100% ; \r\n\ttop: 50% ;\r\n\tmargin-left: -1px;\r\n\tmargin-top: -10px;\r\n\tbackground-position: 0 -33px;\r\n}\r\n\r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopLeft, \r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopCenter, \r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperTopRight, \r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperLeftMiddle, \r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperContent, \r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperRightMiddle, \r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomLeft, \r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomCenter, \r\ndiv.RadToolTip_AssetDark table.rtWrapper td.rtWrapperBottomRight \r\n{\r\n padding: 0;\r\n border: 0;\r\n border-collapse: collapse;\r\n}\r\n\r\n/* end RadToolTip AssetDark */\r\n\r\n/* player Game History grid*/\r\n/*.playerGameHistoryGrid\r\n{\r\n}\r\n.playerGameHistoryGrid .rgMasterTable .rgHeader\r\n{\r\n\ttext-align:center;\r\n}\r\n.playerGameHistoryGrid .rgMasterTable tr td:first-child\r\n{\r\n\ttext-align:left;\r\n}\r\n.playerGameHistoryGrid .rgMasterTable td\r\n{\r\n\tpadding:10px;\r\n\tvertical-align:middle;\r\n\ttext-align:center;\r\n}\r\n.playerGameHistoryGrid .rgMasterTable tbody .rgSelectedRow td\r\n{\r\n\tbackground:#333;\r\n\tborder-top:1px solid #fff;\r\n\tborder-bottom:1px solid #eee;\r\n\tfont-weight:bold;\r\n}\r\n\t.playerGameHistoryGrid .rgMasterTable tbody .rgSelectedRow td a\r\n\t{\r\n\t\tfont-weight:bold;\r\n\t}\r\n.playerGameHistoryGrid .rgMasterTable .rgAltRow td\r\n{\r\n\tbackground:#232323;\r\n\tpadding-bottom:10px;\r\n}\r\n.playerGameHistoryGrid .rgMasterTable .rgRow td\r\n{\r\n\tbackground:#161617;\r\n}\r\n.playerGameHistoryGrid .rgMasterTable tr.rgPager td\r\n{\r\n\ttext-align:center;\r\n\tpadding:10px !important;\r\n}\r\n*/\r\n\r\n/* moved over from base */\r\n.RadPanelBar_Bungie .rpRootGroup .rpExpandable{padding: 0 0 0 35px; height: 30px; margin: 4px 0 3px 0; background-image: url(/images/inside/jobs/expandbutton.gif); background-position: 0 0;\tbackground-repeat: no-repeat;font: 14px/28px Arial, Helvetica, sans-serif; color: #dad9d9;width:250px;}\r\n.RadPanelBar_Bungie .rpRootGroup .rpExpandable:hover{ background-position: 0 -30px; }\r\ndiv.RadPanelBar_Bungie .rpRootGroup a.rpExpandable { line-height: 28px; }\r\n.RadPanelBar_Bungie .rpGroup .rpLink {\tbackground: none; margin-left:50px; }\r\n.RadPanelBar_Bungie .rpRootGroup .rpItem ul { list-style:none;}\r\n.RadPanelBar_Bungie .rpRootGroup .rpExpanded{padding: 0 0 0 35px; height: 30px; margin: 4px 0 3px 0; background-image: url(/images/inside/jobs/expandbutton.gif); background-position: 0 -60px; background-repeat: no-repeat; font: 14px/28px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\n.RadPanelBar_Bungie .rpRootGroup .rpExpanded:hover{\tbackground-position: 0 -90px; }\r\n.RadPanelBar_Bungie .rpGroup .rpItem { background: url(/images/base_struct_images/arrow_3.gif) no-repeat; margin: 2px 0 2px 15px; }\r\n.RadPanelBar_Bungie .rpGroup .rpItem a {padding-left: 20px;}\r\n\r\n.RadPanelBar_BungieSmall {width:154px;padding:0;margin:0;}\r\n.RadPanelBar_BungieSmall .rpRootGroup {width:154px;padding:0;margin:0;}\r\n.RadPanelBar_BungieSmall .rpRootGroup .rpExpandable{padding: 0 0 0 30px; height: 20px;width:120px; \tmargin: 4px 0 3px 0; background-image: url(/images/base_struct_images/news/expand_sm.gif); background-position: 0 0;\tbackground-repeat: no-repeat;font: 14px/20px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\n.RadPanelBar_BungieSmall .rpRootGroup .rpExpandable:hover{\tbackground-position: 0 -20px; }\r\n.RadPanelBar_BungieSmall .rpGroup .rpLink {\tbackground: none; margin-left:0px; }\r\n.RadPanelBar_BungieSmall .rpRootGroup .rpItem ul { list-style:none; }\r\n.RadPanelBar_BungieSmall .rpRootGroup .rpExpanded{padding: 0 0 0 30px; height: 20px; margin: 4px 0 3px 0; background-image: url(/images/base_struct_images/news/expand_sm.gif); background-position: 0 -40px; background-repeat: no-repeat; font: 14px/20px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\n.RadPanelBar_BungieSmall .rpRootGroup .rpExpanded:hover{\tbackground-position: 0 -60px; }\r\n.RadPanelBar_BungieSmall .rpGroup .rpItem { background: url(/images/base_struct_images/arrow_3.gif) no-repeat; margin: 2px 0 2px 10px; }\r\n.RadPanelBar_BungieSmall .rpGroup .rpItem a {margin-left: 20px; width:130px;}\r\n.RadPanelBar_BungieSmall .rpGroup .rpItem a:hover { text-decoration:underline;}\r\n\r\n.playlists .RadPanelBar_BungieSmall {width:570px; padding:0;margin:0; }\r\n.playlists .RadPanelBar_BungieSmall .rpRootGroup {width:570px; padding:0;margin:0; }\r\n.playlists .RadPanelBar_BungieSmall .rpRootGroup .rpExpandable{padding: 0 0 0 35px; height: 28px; width:535px; margin: 6px 0 1px 0px; background-image: url(/images/base_struct_images/online/playlistbuttons.gif); background-position: 0 0;\tbackground-repeat: no-repeat;font: 14px/28px Arial, Helvetica, sans-serif; color: #dad9d9; margin-bottom: 0; margin-top:1px;}\r\n.playlists .RadPanelBar_BungieSmall .rpRootGroup .rpExpandable:hover{\tbackground-position: 0 -28px; }\r\n.playlists .RadPanelBar_BungieSmall .rpGroup .rpLink {background: none; margin-left:5px; }\r\n\r\n.playlists .RadPanelBar_BungieSmall .rpRootGroup .rpItem ul { list-style:none; }\r\n.playlists .RadPanelBar_BungieSmall .rpRootGroup .rpExpanded{padding: 0 0 0 35px; height: 28px; width:535px; margin: 6px 0 1px 0px; background-image: url(/images/base_struct_images/online/playlistbuttons.gif); background-position: 0 -56px; background-repeat: no-repeat; font: 14px/28px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\n.playlists .RadPanelBar_BungieSmall .rpRootGroup .rpExpanded:hover{\tbackground-position: 0 -84px; }\r\n.playlists .RadPanelBar_BungieSmall .rpGroup .rpItem { margin:0; padding:0; background: none; }\r\n.playlists .RadPanelBar_BungieSmall .rpGroup .rpItem a {width:440px;}\r\n.playlists .RadPanelBar_BungieSmall .rpGroup .rpItem a:hover { text-decoration:underline;}\r\n\r\n.media_cat .RadPanelBar_BungieSmall {width:170px;padding:0;margin:0;}\r\n.media_cat .RadPanelBar_BungieSmall .rpRootGroup {width:170px;padding:0;margin:0;}\r\n.media_cat .RadPanelBar_BungieSmall .rpRootGroup .rpExpandable{padding: 0 0 0 30px; height: 20px;width:140px; \tmargin: 4px 0 3px 0; background-image: url(/images/base_struct_images/news/expand_sm.gif); background-position: 0 0;\tbackground-repeat: no-repeat;font: 14px/20px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\n.media_cat .RadPanelBar_BungieSmall .rpRootGroup .rpExpandable:hover{\tbackground-position: 0 -20px; }\r\n.media_cat .RadPanelBar_BungieSmall .rpGroup .rpLink {\tbackground: none; margin-left:0px; }\r\n.media_cat .RadPanelBar_BungieSmall .rpRootGroup .rpItem ul { list-style:none; }\r\n.media_cat .RadPanelBar_BungieSmall .rpRootGroup .rpExpanded{padding: 0 0 0 30px; height: 20px; margin: 4px 0 3px 0; background-image: url(/images/base_struct_images/news/expand_sm.gif); background-position: 0 -40px; background-repeat: no-repeat; font: 14px/20px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\n.media_cat .RadPanelBar_BungieSmall .rpRootGroup .rpExpanded:hover{\tbackground-position: 0 -60px; }\r\n.media_cat .RadPanelBar_BungieSmall .rpGroup .rpItem { background: url(/images/base_struct_images/arrow_3.gif) no-repeat; margin: 2px 0 2px 10px; }\r\n.media_cat .RadPanelBar_BungieSmall .rpGroup .rpItem a {margin-left: 20px; width:150px;display:block;line-height:normal;}\r\n.media_cat .RadPanelBar_BungieSmall .rpGroup .rpItem a:hover { text-decoration:underline;}\r\n\r\n.small_date .RadPanelBar_BungieSmall {width:105px;padding:0;margin:0;}\r\n.small_date .RadPanelBar_BungieSmall .rpRootGroup {width:135px;padding:0;margin:0; overflow: hidden;}\r\n.small_date .RadPanelBar_BungieSmall .rpRootGroup .rpExpandable{padding: 0 0 0 30px; height: 20px;width:105px; \tmargin: 4px 0 3px 0; background-image: url(/images/base_struct_images/news/expand_sm.gif); background-position: 0 0;\tbackground-repeat: no-repeat;font: 14px/20px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\n.small_date .RadPanelBar_BungieSmall .rpRootGroup .rpExpandable:hover{\tbackground-position: 0 -20px; }\r\n.small_date .RadPanelBar_BungieSmall .rpGroup .rpLink {\tbackground: none; margin-left:0px; }\r\n.small_date .RadPanelBar_BungieSmall .rpRootGroup .rpItem ul { list-style:none; }\r\n.small_date .RadPanelBar_BungieSmall .rpRootGroup .rpExpanded{padding: 0 0 0 30px; height: 20px; margin: 4px 0 3px 0; background-image: url(/images/base_struct_images/news/expand_sm.gif); background-position: 0 -40px; background-repeat: no-repeat; font: 14px/20px Arial, Helvetica, sans-serif; color: #dad9d9;}\r\n.small_date .RadPanelBar_BungieSmall .rpRootGroup .rpExpanded:hover{\tbackground-position: 0 -60px; }\r\n.small_date .RadPanelBar_BungieSmall .rpGroup .rpItem { background: url(/images/base_struct_images/arrow_3.gif) no-repeat; margin: 2px 0 2px 10px; }\r\n.small_date .RadPanelBar_BungieSmall .rpGroup .rpItem a {padding-left: 20px; width:105px;}\r\n.small_date .RadPanelBar_BungieSmall .rpGroup .rpItem a:hover { text-decoration:underline;}\r\n\r\ndiv.profiletabs div.RadTabStrip,div.profiletabs div.RadTabStripVertical { margin: -40px 0 0; }\r\n\r\n.RadDockZone.rdVertical { float: left; }\r\n\r\n.RadComboBoxDropDown_Default .rcbItem, .RadComboBoxDropDown_Default .rcbHovered {white-space:nowrap;color:#000;}\r\n\r\n.rightStuff .RadGrid_Black {border: none;}" }, "redirectURL": "", "headersSize": 423, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.302Z", "time": 168.83899999811547, "timings": { "blocked": 147.7869999945513, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.3680000007618247, "receive": 20.68400000280235, "_blocked_queueing": 86.3619999945513 } }, { "_fromCache": "disk", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 25 }, "_priority": "VeryHigh", "_resourceType": "stylesheet", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/base_css/content.css?ver=2.0.4777.31696", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "ver", "value": "2.0.4777.31696" } ], "cookies": [], "headersSize": 254, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Type", "value": "text/css" }, { "name": "Content-Length", "value": "655" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:47:52 GMT" }, { "name": "ETag", "value": "\"0d4d189bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "cf-request-id", "value": "0813ef143f0000fe6480226000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61cce799fcaefe64-SYD" } ], "cookies": [], "content": { "size": 2229, "mimeType": "text/css", "text": "/* do not move these styles to a seperate file */\r\nul.cms_arrowNews {\r\n\tfont-family: arial,verdana,tahoma;\r\n\tcolor: #bbbbbb;\r\n\tline-height: 28px;\r\n\tlist-style-image: url(/images/base_struct_images/news/arrow.gif);\r\n\tfont-size: 16px !important;\r\n}\r\n\r\np.cms_quote {\r\n\tbackground-color: #232323;\r\n\t-moz-border-radius: 5px;\r\n\t-webkit-border-radius: 5px;\r\n\tborder: 2px solid #676767;\r\n\tpadding: 10px;\r\n\twidth: 97%;\r\n\ttext-align: center;\r\n\tfont-size: 20px !important;\r\n\tcolor: #aaaaaa;\r\n\tline-height: 27px;\r\n\tfont-family: arial,verdana,tahoma;\r\n}\r\n\r\np.cms_important {\r\n\tbackground-color: #3a0808;\r\n\tborder: 2px solid #591010;\r\n\tpadding: 10px;\r\n\tcolor: #cd2424;\r\n\tline-height: 35px;\r\n\t-moz-border-radius: 5px;\r\n\t-webkit-border-radius: 5px;\r\n\tpadding: 10px;\r\n\twidth: 97%;\r\n\ttext-align: center;\r\n\tfont-size: 20px !important;\r\n\tfont-family: arial,verdana,tahoma;\r\n}\r\n\r\np.cms_question {\r\n\tbackground-color: #062538;\r\n\tborder: 2px solid #114464;\r\n\tfont-size: 18px !important;\r\n\tcolor: #2c8cca;\r\n\tline-height: 25px;\r\n\ttext-align: left;\r\n\t-moz-border-radius: 5px;\r\n\t-webkit-border-radius: 5px;\r\n\tpadding: 10px;\r\n\twidth: 97%;\r\n\tfont-family: arial,verdana,tahoma;\r\n}\r\n\r\nul.cms_horizontalImg {\r\n\tmargin-left: 0px;\r\n\tpadding: 0px;\r\n\twhite-space: nowrap;\r\n}\r\n\r\nul.cms_horizontalImg li {\r\n\tdisplay: inline;\r\n\tlist-style-type: none;\r\n\tmargin-right: 26px;\r\n}\r\n\r\nh6.cms_odstNewsHeader {\r\n\tbackground-image: url('/images/base_struct_images/news/odst_news_header.jpg');\r\n\twidth: 693px;\r\n\theight: 27px;\r\n\tcolor: #848484;\r\n\tfont-family: arial,verdana,tahoma;\r\n\tfont-size: 20px !important;\r\n\tpadding: 10px 0 0 7px;\r\n\tmargin-top: 10px;\r\n\tmargin-bottom: 10px;\r\n}\r\n\r\nh6.cms_halo3NewsHeader {\r\n\tbackground-image: url('/images/base_struct_images/news/halo3_news_header.jpg');\r\n\tcolor: #031521;\r\n\twidth: 693px;\r\n\theight: 27px;\r\n\tfont-family: arial,verdana,tahoma;\r\n\tfont-size: 20px !important;\r\n\tpadding: 10px 0 0 7px;\r\n\tmargin-top: 10px;\r\n\tmargin-bottom: 10px;\r\n}\r\n\r\nh6.cms_simpleNewsHeaderGray {\r\n\twidth: 99%;\r\n\theight: 27px;\r\n\tcolor: #bbbbbb;\r\n\tborder-bottom: 1px solid #676767;\r\n\tbackground: none;\r\n\tfont-family: arial,verdana,tahoma;\r\n\tfont-size: 20px !important;\r\n\tpadding: 10px 0 0 0px;\r\n\tmargin-top: 10px;\r\n\tmargin-bottom: 10px;\r\n\tline-height:1em;\r\n}\r\n\r\n" }, "redirectURL": "", "headersSize": 424, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.303Z", "time": 168.8570000042091, "timings": { "blocked": 148.38199999981651, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.7540000001820744, "receive": 19.72100000421051, "_blocked_queueing": 86.52799999981653 } }, { "_fromCache": "disk", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 26 }, "_priority": "VeryHigh", "_resourceType": "stylesheet", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/base_css/sprites/nav-icons.css", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 245, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Type", "value": "text/css" }, { "name": "Content-Length", "value": "416" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:47:54 GMT" }, { "name": "ETag", "value": "\"0138bbd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "cf-request-id", "value": "0813ef144a00004f464c1b7000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61cce79a18a24f46-SYD" } ], "cookies": [], "content": { "size": 2074, "mimeType": "text/css", "text": ".mainNav li ul.flyOut li a.aerospace span,\r\n.mainNav li ul.flyOut li a.bungiestore span,\r\n.mainNav li ul.flyOut li a.careers span,\r\n.mainNav li ul.flyOut li a.community span,\r\n.mainNav li ul.flyOut li a.communitytools span,\r\n.mainNav li ul.flyOut li a.forumrules span,\r\n.mainNav li ul.flyOut li a.forums span,\r\n.mainNav li ul.flyOut li a.halo3 span,\r\n.mainNav li ul.flyOut li a.help span,\r\n.mainNav li ul.flyOut li a.inside span,\r\n.mainNav li ul.flyOut li a.news span,\r\n.mainNav li ul.flyOut li a.profile span,\r\n.mainNav li ul.flyOut li a.reach span,\r\n.mainNav li ul.flyOut li a.older span,\r\n.mainNav li ul.flyOut li a.aerospace span,\r\n.mainNav li ul.flyOut li a.myth span,\r\n.mainNav li ul.flyOut li a.crimson span\r\n{ background: url(/images/base_struct_images/sprites/nav-icons.png) no-repeat 12px 8px; width:18px; height:16px;top:9px;left:12px;}\r\n.mainNav li ul.flyOut li a.bungiestore span { background-position: 0px 0px; }\r\n.mainNav li ul.flyOut li a.careers span{ background-position: 0px -16px; }\r\n.mainNav li ul.flyOut li a.community span{ background-position: 0px -32px; }\r\n.mainNav li ul.flyOut li a.communitytools span { background-position: 0px -48px; }\r\n.mainNav li ul.flyOut li a.forumrules span{ background-position: 0px -64px; }\r\n.mainNav li ul.flyOut li a.forums span{ background-position: 0px -80px; }\r\n.mainNav li ul.flyOut li a.halo3 span{ background-position: 0px -96px; }\r\n.mainNav li ul.flyOut li a.help span{ background-position: 0px -112px; }\r\n.mainNav li ul.flyOut li a.inside span{ background-position: 0px -128px; }\r\n.mainNav li ul.flyOut li a.news span{ background-position: 0px -144px; }\r\n.mainNav li ul.flyOut li a.profile span{ background-position: 0px -160px; }\r\n.mainNav li ul.flyOut li a.reach span{ background-position: 0px -176px; }\r\n.mainNav li ul.flyOut li a.older span{ background-position:0 -192px;}\r\n.mainNav li ul.flyOut li a.aerospace span{background-position:0 -208px;}\r\n.mainNav li ul.flyOut li a.myth span{background-position:0 -224px;}\r\n.mainNav li ul.flyOut li a.crimson span{background-position:0 -241px;}" }, "redirectURL": "", "headersSize": 422, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.303Z", "time": 170.67099999985658, "timings": { "blocked": 148.74899999848287, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.954999997353184, "receive": 20.96700000402052, "_blocked_queueing": 86.69599999848288 } }, { "_fromCache": "disk", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 28 }, "_priority": "VeryHigh", "_resourceType": "stylesheet", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/base_css/new_reachStats.css", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 242, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:46 GMT" }, { "name": "Content-Type", "value": "text/css" }, { "name": "Content-Length", "value": "10738" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:47:52 GMT" }, { "name": "ETag", "value": "\"0d4d189bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "cf-request-id", "value": "0813ef91160000da5eff3f7000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61cce861bccbda5e-SYD" } ], "cookies": [], "content": { "size": 54553, "mimeType": "text/css", "text": ".nodisplay,.hideView{display:none;}\r\np.emptyState,div.emptyState\r\n{\r\n\twidth:640px;\r\n\tmargin:0 auto;\r\n}\r\n\r\n/* cross page link */\r\na.crossLink\r\n{\r\n position:absolute;\r\n top:-17px;\r\n right:-4px;\r\n display:inline;\r\n}\r\n \r\n/* transparent rule */\r\n.rule_transparent\r\n{\r\n\tbackground:url(/images/reachStats/rule_transparent.png) 0 0 repeat-x;\r\n\theight:1px;\r\n\tfont-size:0;\r\n\tline-height:0;\r\n\twidth:640px;\r\n\tmargin:0 auto;\r\n\tclear:both;\r\n}\t\r\n\t\r\n/* framework */\r\n*{padding:0;margin:0;outline:0;}\r\nli{list-style:none;}\r\nbody { background: url(/images/reachStatsNew/bg_body.jpg) no-repeat #000 center top;height:auto;}\r\n\tdiv.pagetop div.search fieldset input.text{height:15px;}\r\ndiv.sContent\r\n{\r\n\twidth:873px;\r\n\tclear:both;\r\n\tpadding-top:15px;\r\n}\r\n\tdiv.sContent div.sideNavContainer\r\n\t{\r\n\t\twidth:204px;\r\n\t\tfloat:left;\r\n\t\tposition:relative;\r\n\t\tz-index:4;\r\n\t}\r\n\tdiv.sContent div.mainContentContainer\r\n\t{\r\n\t\twidth:669px;\r\n\t\tfloat:left;\r\n\t\tposition:relative;\r\n\t\tz-index:1;\r\n\t}\r\n\t \r\n/* footer */\r\ndiv.reachfooter\r\n{\r\n\tclear:both;\r\n\twidth:669px;\r\n\tpadding:16px 0 0 204px;\t\r\n}\r\n\ta.footer-esrb {margin-left:10px;float: right;}\r\n\tdiv.reachfooter div.copyLinks{float:right;width:400px;font-size:11px;}\r\n\t\tdiv.reachfooter div.copyLinks ul{width:100%;list-style:none;float:right;}\r\n\t\t\tdiv.reachfooter div.copyLinks ul li{float:right;margin-left:9px;}\r\n\t\tdiv.reachfooter div.copyLinks p{text-align:right;font-size:11px;padding-top:5px;}\r\n\t\tdiv.reachfooter div.copyLinks a{font-size:11px;}\r\n\t#socialNetworking\r\n\t{\r\n\t\tfloat:left;\r\n\t}\r\n\t\t#socialNetworking iframe\r\n\t\t{\r\n\t\t\tdisplay:block;\r\n\t\t}\r\ndiv.footer {display: none; }\t\r\ndiv.footer-menu { display: none; }\r\ndiv.fContent { display: none; }\r\ndiv.fContent{display:none;}\r\n\r\n/* side nav */\r\n.sideNav\r\n{\r\n float:left;\r\n width:100%;\r\n list-style:none;\r\n}\r\n\t.sideNav li\r\n\t{\r\n\t\twidth:100%;\r\n\t\tlist-style:none;\r\n\t}\r\n\t\t.sideNav li h4\r\n\t\t{\r\n\t\t\tbackground:url(/images/reachStatsNew/bg_sideNav_h4.png) no-repeat left top;\r\n\t\t\theight:40px;\r\n\t\t\tmargin:0 0 10px 0;\r\n\t\t\tposition:relative;\r\n\t\t\twidth:192px;\r\n\t\t}\r\n\t\t\t.ServiceRecord .sideNav li.serviceRecord_nav h4,\r\n\t\t\t.CareerStats .sideNav li.careerStats_nav h4,\r\n\t\t\t.FileShare .sideNav li.fileshare_nav h4\r\n\t\t\t{\r\n\t\t\t\tbackground-position:bottom left;\r\n\t\t\t\twidth:204px;\r\n\t\t\t}\r\n\t\t\t.sideNav li.reach_nav h4,.FileShare .sideNav li.fileshare_nav li.reach_nav h4{background:none;width:120px;}\r\n\t\t\t\r\n\t\t\t.ServiceRecord .sideNav li.serviceRecord_nav h4 span,\r\n\t\t\t.CareerStats .sideNav li.careerStats_nav h4 span,\r\n\t\t\t.FileShare .sideNav li.fileshare_nav h4 span\r\n\t\t\t{\r\n\t\t\t\tbackground:url(\"/images/reachStatsNew/bg_gradientNav.png\") no-repeat scroll 0 0 transparent;\r\n\t\t\t\tdisplay:block;\r\n\t\t\t\theight:40px;\r\n\t\t\t\tposition:absolute;\r\n\t\t\t\tright:-39px;\r\n\t\t\t\ttop:-1px;\r\n\t\t\t\twidth:40px;\t\r\n\t\t\t}\r\n\t\t\t.sideNav li h4 a\r\n\t\t\t{\r\n\t\t\t\tbackground:url(/images/reachStatsNew/sprite_sideNav_h4.png) no-repeat;\r\n\t\t\t\tdisplay:block;\r\n\t\t\t\ttext-indent:-9999px;\r\n\t\t\t\toverflow:hidden;\r\n\t\t\t\theight:15px;\r\n\t\t\t\tmargin:12px 0 0 0;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\tfloat:left;\r\n\t\t\t}\r\n\t\t\t\t.sideNav li.serviceRecord_nav h4 a\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:15px -15px;\r\n\t\t\t\t}\r\n\t\t\t\t\t.ServiceRecord .sideNav li.serviceRecord_nav h4 a,\r\n\t\t\t\t\t.sideNav li.serviceRecord_nav h4 a:hover\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:15px 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t.sideNav li.careerStats_nav h4 a\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:15px -45px;\r\n\t\t\t\t}\r\n\t\t\t\t\t.CareerStats .sideNav li.careerStats_nav h4 a,\r\n\t\t\t\t\t.sideNav li.careerStats_nav h4 a:hover\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:15px -30px;\r\n\t\t\t\t\t}\r\n\t\t\t\t.sideNav li.fileshare_nav h4 a\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:15px -75px;\r\n\t\t\t\t}\r\n\t\t\t\t\t.FileShare .sideNav li.fileshare_nav h4 a,\r\n\t\t\t\t\t.sideNav li.fileshare_nav h4 a:hover\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:15px -60px;\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t.sideNav li.reach_nav h4 a.logo\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground:url(/images/reachStats/logo_haloReach.png) no-repeat -5px 0;\r\n\t\t\t\t\twidth:120px;\r\n\t\t\t\t\theight:50px;\r\n\t\t\t\t\ttext-indent:-9999px;\r\n\t\t\t\t\toverflow:hidden;\r\n\t\t\t\t\tmargin:0;\r\n\t\t\t\t}\r\n\t\t\t\t\t.sideNav li.reach_nav h4 a.logo:hover\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground-position:-5px -55px;\r\n\t\t\t\t\t}\r\n\t\t.sideNav li ul\r\n\t\t{\r\n\t\t\tmargin-bottom:17px;\r\n\t\t}\r\n\t\t.sideNav li li\r\n\t\t{\r\n\t\t\tmargin-left:52px;\r\n\t\t\tfont-size:13px;\r\n\t\t\tline-height:18px;\r\n\t\t\tpadding-left:15px;\r\n\t\t\twidth:auto;\r\n\t\t}\r\n\t\t\t.sideNav li li.bungiePro{padding-right:10px;}\r\n\t\t\t\t.sideNav li li.bungiePro p{text-align:right;color:#66696e;font-size:12px;margin:0;line-height:20px;}\r\n\t\t\t\t\t.sideNav li li.bungiePro p a{line-height:20px;font-size:12px;}\r\n\t\t\t\t\t.sideNav li li.bungiePro p strong{float:left;font-weight:normal;color:#66696e;line-height:20px;font-size:12px;}\r\n\t\t\t.sideNav li li.reach_nav\r\n\t\t\t{\r\n\t\t\t\tbackground:url(/images/reachStats/rule_transparent.png) top repeat-x;\r\n\t\t\t\tpadding:20px 0 0 0;\r\n\t\t\t\tmargin:20px 0 0 66px;\r\n\t\t\t\twidth:120px;\r\n\t\t\t}\r\n\t\t\t.sideNav li li a\r\n\t\t\t{\r\n\t\t\t\tfont-size:13px;\r\n\t\t\t}\r\n\t\t\t\t.sideNav li li a.linkArrow{display:inline-block;line-height:18px;height:18px;}\r\n\t\t\t.sideNav li li.on\r\n\t\t\t{\r\n\t\t\t\tbackground:transparent url(/images/games/reach/selectedarrow.png) no-repeat scroll 0 4px;\r\n\t\t\t}\r\n\t\t\t\t.sideNav li li.on a\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n.surveyNotification\r\n{\r\n width:100%;\r\n clear:both;\r\n text-align:center;\r\n background:url(/images/account/bg_notificationBar2.png) repeat-x;\r\n \r\n}\t\t\t\t\r\n/* identity bar */\r\ndiv#IdentityBar\r\n{\r\n\twidth:874px;\r\n\theight:79px;\r\n\tmargin-bottom:18px;\r\n\tposition:relative;\r\n\tz-index:2;\r\n}\r\n\tdiv#IdentityBar .idRankContainer\r\n\t{\r\n\t\tfloat:left;\r\n\t\tborder-right:0;\r\n\t\twidth:658px;\r\n\t}\r\n\t\tdiv#IdentityBar .idRankContainer .lattice\r\n\t\t{\r\n\t\t\theight:78px;\r\n\t\t\twidth:100%;\r\n\t\t\tbackground-position:547px 0;\r\n\t\t}\r\n\t\tdiv#IdentityBar .avatar\r\n\t\t{\r\n\t\t\tfloat:left;\r\n\t\t\tmargin:5px;\r\n\t\t}\r\n\t\tdiv#IdentityBar .idRank\r\n\t\t{\r\n\t\t\tfloat:left;\r\n\t\t\twidth:573px;\r\n\t\t\tmargin-right:5px;\r\n\t\t}\r\n\t\t\tdiv#IdentityBar .idRank .userInfo\r\n\t\t\t{\r\n\t\t\t\theight:40px;\r\n\t\t\t\tline-height:40px;\r\n\t\t\t\tmargin:5px 0 9px;\r\n\t\t\t\tposition:relative;\t\r\n\t\t\t}\r\n\t\t\t\tdiv#IdentityBar .idRank .userInfo .credits\r\n\t\t\t\t{\r\n\t\t\t\t\tfloat:right;\r\n\t\t\t\t\tfont-size:20px;\r\n\t\t\t\t\tline-height:40px;\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t\tmargin:4px 10px 0;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv#IdentityBar .idRank .userInfo .credits span\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfont-size:15px;\r\n\t\t\t\t\t}\r\n\t\t\t\tdiv#IdentityBar .idRank .userInfo .img_rankIcon\r\n\t\t\t\t{\r\n\t\t\t\t\tmargin:4px 10px 0 0;\r\n\t\t\t\t\tfloat:left;\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\tdiv#IdentityBar .idRank .userInfo h2\r\n\t\t\t\t{\r\n\t\t\t\t\tline-height:40px;\r\n\t\t\t\t\tmargin:3px 14px 0 0;\r\n\t\t\t\t\tfloat:left;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv#IdentityBar .idRank .userInfo h2 a\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttext-transform:none;\r\n\t\t\t\t\t\tfont-size:20px;\r\n\t\t\t\t\t\tfont-weight:normal;\r\n\t\t\t\t\t\tline-height:40px;\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\tdiv#IdentityBar .idRank .userInfo .img_plate\r\n\t\t\t\t{\r\n\t\t\t\t\tfloat:right;\r\n\t\t\t\t\tmargin-top:10px;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\tdiv#IdentityBar .idRank .rankBar\r\n\t\t\t{\r\n\t\t\t\theight:19px;\r\n\t\t\t\tborder:1px solid #393c3f;\r\n\t\t\t\tborder-top:1px solid #999c9e;\r\n\t\t\t\tborder-right:0;\r\n\t\t\t\tposition:relative;\r\n\t\t\t}\r\n\t\t\t\tdiv#IdentityBar .idRank .rankBar .grade\r\n\t\t\t\t{\r\n\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\ttop:0;\r\n\t\t\t\t\tleft:10px;\r\n\t\t\t\t\theight:19px;\r\n\t\t\t\t\tline-height:19px;\r\n\t\t\t\t\tmargin:bottom:0;\r\n\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t\twidth:96%;\r\n\t\t\t\t\tmargin-bottom:0;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv#IdentityBar .idRank .rankBar .grade .current\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfloat:left;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdiv#IdentityBar .idRank .rankBar .grade .future\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfloat:right;\r\n\t\t\t\t\t}\r\n\t\t\t\tdiv#IdentityBar .idRank .rankBar .rankMeter\r\n\t\t\t\t{\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\tbackground:url(/images/reachStatsNew/bg_20white.png);\r\n\t\t\t\t\theight:19px;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv#IdentityBar .idRank .rankBar .rankMeter .bar\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\theight:19px;\r\n\t\t\t\t\t\tbackground:url(/images/reachStatsNew/bg_20white.png);\r\n\t\t\t\t\t\tposition:relative;\r\n\t\t\t\t\t\twidth:20%;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv#IdentityBar .idRank .rankBar .rankMeter .bar span\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tbackground:url(/images/reachStatsNew/rankBarProgressIndicator.png) no-repeat 0 0;\r\n\t\t\t\t\t\t\twidth:7px;\r\n\t\t\t\t\t\t\theight:23px;\r\n\t\t\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\t\t\tright:-3px;\r\n\t\t\t\t\t\t\ttop:-2px;\r\n\t\t\t\t\t\t}\r\n\tdiv#IdentityBar .shields\r\n\t{\r\n\t\tborder-top:0;\r\n\t\tborder-left:0;\r\n\t\theight:80px;\r\n\t\tmargin-top:1px;\r\n\t\twidth:213px;\r\n\t}\r\n\t\tdiv#IdentityBar .shields .lattice\r\n\t\t{\r\n\t\t\theight:78px;\r\n\t\t\twidth:100%;\r\n\t\t}\r\n\t\tdiv#IdentityBar .shields ul\r\n\t\t{\r\n\t\t\tfloat:left;\r\n\t\t\twidth:209px;\r\n\t\t\theight:72px;\r\n\t\t\tlist-style:none;\r\n\t\t\tbackground:url(/images/reachStatsNew/bg_10white.png) repeat-x bottom;\r\n\t\t\tmargin-top:3px;\r\n\t\t\tmargin-right:5px;\r\n\t\t\t\r\n\t\t}\r\n\t\t\tdiv#IdentityBar .shields li\r\n\t\t\t{\r\n\t\t\t\tfloat:left;\r\n\t\t\t\ttext-align:center;\r\n\t\t\t\twidth:33%;\r\n\t\t\t\tposition:relative;\r\n\t\t\t\ttop:-14px;\r\n\t\t\t}\r\n\t\t\t\tdiv#IdentityBar .shields li p\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\tmargin-bottom:4px;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv#IdentityBar .shields li.arena_display p{margin-bottom:11px;}\r\n\t\t\tdiv#IdentityBar .shields li.campaign:hover div.popOut\r\n\t\t\t{\r\n\t\t\t\tdisplay:block;\r\n\t\t\t\ttop:50px;\r\n\t\t\t\tleft:-265px;\r\n\t\t\t}\r\n\t\t\t#jsDisabled div#IdentityBar .shields li.arena_display:hover div.popOut\r\n\t\t\t{\r\n\t\t\t\tdisplay:block;\r\n\t\t\t\ttop:50px;\r\n\t\t\t\tleft:-200px;\r\n\t\t\t}\r\n\t\t\t#arenaPercentage {\r\n\t\t\t position: absolute;\r\n\t\t\t bottom: 0pt;\r\n\t\t\t font-weight: bold;\r\n\t\t\t right: 4px;\r\n\t\t\t}\r\n\t\t\t\r\n\t\tdiv#IdentityBar div.addthis_default_style\r\n\t\t{\r\n\t\t\tposition:absolute;\r\n\t\t\tbottom:-39px;\r\n\t\t\tright:-35px;\t\r\n\t\t}\r\n\t\t\tdiv#IdentityBar div.addthis_default_style a{margin-left:3px;}\t\r\n\r\n/* General Container and Nav */\r\ntable.centerNav\r\n{\r\n\theight:49px;\r\n\tbackground:url(/images/reachStats/bg_15white.png) repeat-x 0 0;\r\n\twidth:640px;\r\n\tmargin:0 auto 17px;\r\n\tclear:both;\r\n\tposition:relative;\r\n\tz-index:2;\r\n}\r\n\tbody.FileShare table.centerNav\r\n\t{\r\n\t\ttable-layout:fixed;\r\n\t}\r\n .centerNav td\r\n {\r\n \ttext-align:center;\r\n \tpadding-bottom:13px;\r\n }\r\n .centerNav td a\r\n {\r\n \ttext-transform:uppercase;\r\n \tfont-size:12px;\r\n \ttext-align:center;\r\n \twidth:100%;\r\n \theight:36px;\r\n \tline-height:33px;\r\n \tdisplay:block; \r\n \twhite-space:nowrap; \t\r\n }\r\n .centerNav td.on\r\n {\r\n \tbackground:url(/images/reachStats/bg_nav_tabbed_on.png) no-repeat center bottom;\r\n }\r\n .centerNav td.on a\r\n {\r\n \tcolor:#fff;\r\n \tbackground:#636974;\r\n }\t\t\r\n\t\r\n/* Generic Drop Downs */\r\n.dropDown\r\n{\r\n\tbackground:transparent url(/images/reachStats/bg_dropDown_leftCurved.png) no-repeat scroll left top;\r\n\tdisplay:inline-block;\r\n\tmargin-right:12px;\r\n\tpadding-left:12px;\r\n\tcursor:pointer;\t\r\n}\r\n\t.dropDown:hover\r\n\t{\r\n\t\tbackground:transparent url(/images/reachStats/bg_dropDown_left_solid.png) no-repeat scroll left top;\r\n\t}\r\n\t.dropDown li\r\n\t{\r\n\t\tbackground:transparent url(/images/reachStats/bg_dropDown_rightCurved.png) no-repeat scroll right top;\r\n\t\theight:27px;\r\n\t\tleft:0;\r\n\t\tpadding-right:12px;\r\n\t\tposition:relative;\r\n\t\ttext-align:left;\r\n\t\ttop:0;\r\n\t\twidth:100%;\r\n\t\tlist-style:none;\r\n\t}\r\n\t\t.dropDown li a\r\n\t\t{\r\n\t\t\tbackground:transparent url(/images/reachStats/icon_dropDownArrow_small.png) no-repeat scroll 100% 58%;\r\n\t\t\tdisplay:block;\r\n\t\t\theight:27px;\r\n\t\t\tline-height:27px;\r\n\t\t\tpadding-right:20px;\r\n\t\t\tposition:relative;\r\n\t\t\tz-index:3;\r\n\t\t\ttop:0;\r\n\t\t\tleft:0;\r\n\t\t\tfont-size:11px;\r\n\t\t}\t\t\r\n\t\t.dropDown:hover li\r\n\t\t{\r\n\t\t\tbackground:transparent url(/images/reachStats/bg_dropDown_right_solid.png) no-repeat scroll right top;\r\n\t\t}\r\n\t\t\t.dropDown:hover li ul\r\n\t\t\t{\r\n\t\t\t\tleft:-12px;\r\n\t\t\t}\r\n\t\t.dropDown li ul\r\n\t\t{\r\n\t\t\tbackground:#333333 none repeat scroll 0 0;\r\n\t\t\tleft:-99999px;\r\n\t\t\tposition:absolute;\r\n\t\t\ttop:18px;\r\n\t\t\tborder:2px solid #888;\r\n\t\t\tborder-top:0;\r\n\t\t\t-moz-border-radius-bottomleft: 10px;\r\n\t\t\t-moz-border-radius-bottomright: 10px;\r\n\t\t\t-webkit-border-bottom-left-radius: 10px;\r\n\t\t\t-webkit-border-bottom-right-radius: 10px;\r\n\t\t\twidth:100%;\r\n\t\t\tpadding-right:8px;\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\t.dropDown li ul li\r\n\t\t\t{\r\n\t\t\t\tbackground:none;\r\n\t\t\t\tclear:both;\r\n\t\t\t\tfloat:left;\r\n\t\t\t\theight:auto;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\tmargin-bottom:7px;\r\n\t\t\t}\r\n\t\t\t\t.dropDown:hover ul li\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground:none;\r\n\t\t\t\t}\r\n\t\t\t\t.dropDown li ul li a\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground:none;\r\n\t\t\t\t\tdisplay:block;\r\n\t\t\t\t\tfloat:left;\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\tline-height:1.1em;\r\n\t\t\t\t\theight:auto;\r\n\t\t\t\t\tpadding-bottom:0;\r\n\t\t\t\t\tpadding:0 0 0 12px;\r\n\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t.dropDown li ul li:first-child a\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpadding-top:7px;\r\n\t\t\t\t\t}\r\n\tdiv.gameHistoryTableContainer table th.rgHeader:hover {\r\n\t\tz-index: 6;\r\n\t}\r\n\t.PlayerGameHistory .dropDown li ul\r\n\t{\r\n\t\tborder:0;\r\n\t\tbackground:none transparent;\r\n\t\tposition:relative;\r\n\t\ttop:auto;\t\r\n\t\toverflow:auto;\r\n\t\toverflow-x:hidden;\r\n\t\tmax-height:200px;\r\n\t\tpadding:0;\r\n\t\twidth:100%;\r\n\t\tleft:auto;\r\n\t\t\r\n\t}\r\n\t\r\n\t\r\n\t\r\n\t.PlayerGameHistory .dropDown:hover li a\r\n\t{\r\n\t\tbackground:none;\r\n\t}\r\n\t.PlayerGameHistory .dropDown li div\r\n\t{\r\n\t\t\r\n\t\tbackground:#333333 none repeat scroll 0 0;\r\n\t\tleft:-99999px;\r\n\t\tposition:absolute;\r\n\t\ttop:18px;\r\n\t\tborder-left:2px solid #888;\r\n\t\twidth:200px;\r\n\t\t\r\n\t\tmax-height:210px;\r\n\t\tpadding-top:10px;\t\t\t\r\n\t}\r\n\t\t.PlayerGameHistory .dropDown:hover li div\r\n\t\t{\r\n\t\t\tleft:-12px;\r\n\t\t}\r\n\t\r\n\t\t\r\n\t\t\r\n\r\n/* Standard Glow Box */\r\n.glowBox\r\n{\r\n\tborder:1px solid #404040;\r\n\tbackground:url(/images/reachStatsNew/bg_40black.png);\r\n\tposition:relative;\r\n\ttop:0;\r\n\tleft:0;\r\n\tfloat:left;\r\n}\r\n\t.glowBox .corner\r\n\t{\r\n\t\twidth:62px;\r\n\t\theight:59px;\r\n\t\tbackground:url(/images/reachStats/sprite_glowCorners_62_59.png) no-repeat;\r\n\t\tposition:absolute;\r\n\t\tz-index:1;\r\n\t}\r\n\t\t.glowBox .topLeft\r\n\t\t{\r\n\t\t\tbackground-position:0 0;\r\n\t\t\ttop:-1px;\r\n\t\t\tleft:-1px;\r\n\t\t}\r\n\t\t.glowBox .topRight\r\n\t\t{\r\n\t\t\tbackground-position:-62px 0;\r\n\t\t\ttop:-1px;\r\n\t\t\tright:-1px;\r\n\t\t}\r\n\t\t.glowBox .bottomLeft\r\n\t\t{\r\n\t\t\tbackground-position:0 -59px;\r\n\t\t\tbottom:-1px;\r\n\t\t\tleft:-1px;\r\n\t\t}\r\n\t\t.glowBox .bottomRight\r\n\t\t{\r\n\t\t\tbackground-position:-62px -59px;\r\n\t\t\tbottom:-1px;\r\n\t\t\tright:-1px;\r\n\t\t}\r\n\t.glowBox .lattice\r\n\t{\r\n\t\tposition:absolute;\r\n\t\tz-index:2;\r\n\t\ttop:0;\r\n\t\tright:0;\r\n\t}\r\n\t.glowBox .content\r\n\t{\r\n\t\tposition:relative;\r\n\t\tz-index:3;\r\n\t\tfloat:left;\r\n\t\twidth:100%;\r\n\t\t\r\n\t}\r\n\r\ndiv.intelSearch fieldset.track\r\n{\r\n\tborder:0;\r\n\ttext-align:right;\r\n\tpadding:0;\r\n\twidth:640px;\r\n\tclear:both;\r\n\tposition:relative;\r\n\tpadding-bottom:16px;\r\n}\r\n\tdiv.intelSearch fieldset.track strong{float:left;line-height:20px;}\r\n\tdiv.intelSearch fieldset.track label\r\n\t{\r\n\t\tmargin-right:10px;\r\n\t\tfont-size:13px;\r\n\t}\r\n\tdiv.intelSearch fieldset.track input.text\r\n\t{\r\n\t\tborder:0;\r\n\t\theight:18px;\r\n\t\twidth:200px;\r\n\t\tposition:relative;\r\n\t\tz-index:1;\r\n\t\tvertical-align:bottom;\r\n\t}\r\n\tdiv.intelSearch fieldset.track input.submit\r\n\t{\r\n\t\tbackground:url(\"/images/base_struct_images/search/searchbutton.png\") no-repeat 0 0;\r\n\t\twidth:24px; \r\n\t\theight:20px;\r\n\t\tmargin-left:-13px;\r\n\t\tborder:0;\r\n\t\ttext-indent:-9999px;\r\n\t\toverflow:hidden;\r\n\t\tcursor:pointer;\r\n\t\tpadding:0;\r\n\t\tz-index:2;\r\n\t\tposition:relative;\r\n\t\ttop:1px;\r\n\t\t\r\n\t\tvertical-align:bottom;\r\n\t\t\r\n\t}\r\n\t\tdiv.intelSearch fieldset.track input.submit:hover\r\n\t\t{\r\n\t\t\tbackground-position:0 -20px;\r\n\t\t}\r\n\r\n\r\n/* main content */\r\n.mainContentContainer{}\r\n\tdiv.sContent div.mainContentContainer:hover{z-index:3;}/* popOuts that need to overlay the identity bar(z-index:2) */\r\n\t\r\n.mainContentContainer h2, .mainContentContainer div.pager\r\n{\r\n\tborder-top:1px solid #404040;\r\n\tborder-left:1px solid #404040;\r\n\tbackground:url(/images/reachStatsNew/bg_40black.png);\r\n\theight:24px;\r\n\tposition:relative;\r\n\twidth:200px;\r\n\tfloat:left;\r\n\tcolor:#aaa;\r\n\tfont-style:italic;\r\n\ttext-transform:capitalize;\r\n\tfont-size:13px;\r\n\tline-height:36px;\r\n\ttext-indent:14px;\r\n}\r\n\t.mainContentContainer h2 span, .mainContentContainer div.pager span\r\n\t{\r\n\t\tbackground:url(/images/reachStatsNew/bg_h2_corner.png) no-repeat right;\r\n\t\tdisplay:block;\r\n\t\tposition:absolute;\r\n\t\ttop:0;\r\n\t\tright:-24px;\r\n\t\twidth:24px;\r\n\t\theight:24px;\r\n\t}\r\n.mainContentContainer .mainPanel\r\n{\r\n\tfloat:left;\r\n\twidth:100%;\r\n}\r\ndiv.mainGlowBox\r\n{\r\n\tborder-top:0;\r\n\twidth:667px;\r\n\tpadding:14px 0;\r\n\tmin-height:700px;\t\r\n}\r\n\tdiv.mainGlowBox div.lattice\r\n\t{\r\n\t\twidth:444px;\r\n\t\theight:200px;\r\n\t\tborder-top:1px solid #404040;\r\n\t\ttop:-1px;\r\n\t\tz-index:1;\r\n\t}\r\n\tdiv.mainGlowBox div.corner\r\n\t{\r\n\t\tz-index:2;\r\n\t}\r\n\r\ndiv.errorGlowBox{border-top:1px solid #404040;}\r\n\r\ndiv.latticeBox\r\n{\r\n\tbackground:url(/images/reachStatsNew/bg_heading_latticeBox.png) no-repeat 0 0;\r\n\twidth:640px;\r\n\tmargin:0 auto 12px;\r\n\tclear:both;\r\n}\r\n\tdiv.latticeBox h3\r\n\t{\r\n\t\twidth:100%;\r\n\t\tmargin:0;\r\n\t\ttext-align:right;\r\n\t\tfont-weight:bold;\r\n\t\tfont-size:13px;\r\n\t\tcolor:#ececec;\r\n\t\tline-height:42px;\r\n\t}\r\n\t\tdiv.latticeBox h3 a\r\n\t\t{\r\n\t\t\tfloat:right;\r\n\t\t\twidth:auto;\r\n\t\t\tmargin:0 12px;\r\n\t\t}\r\n\r\n/* bar graphs on service record and player game history */\r\n.victoryStreaks\r\n{\r\n\twidth:640px;\r\n}\t\t\r\n\t.barGraphContainer\r\n\t{\r\n\t\twidth:100%;\r\n\t\theight:92px;\r\n\t\tclear:both;\r\n\t}\t\t\r\n\t\t.barGraphContainer .legend\r\n\t\t{\r\n\t\t\twidth:80px;\r\n\t\t\tfloat:left;\r\n\t\t\tposition:relative;\r\n\t\t\ttop:-10px;\r\n\t\t}\r\n\t\t\t.barGraphContainer .legend p\r\n\t\t\t{\r\n\t\t\t\tfont-size:11px;\r\n\t\t\t\tcolor:#777;\r\n\t\t\t\tline-height:21px;\r\n\t\t\t\tpadding-left:10px;\r\n\t\t\t}\r\n\t\t\t\t.barGraphContainer .legend p:first-child\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t.barGraphContainer .barGraph\r\n\t{\r\n\t\twidth:550px;\r\n\t\tfloat:left;\r\n\t\tbackground:url(/images/reachStatsNew/bg_barGraph_lines.png) repeat-x;\r\n\t\tpadding-left:10px;\r\n\t}\r\n\t\tdiv.barGraph div.gamePanel\r\n\t\t{\r\n\t\t\twidth:21px;\r\n \theight:84px;\r\n \tfloat:left;\r\n\t\t\ttext-align:center;\r\n\t\t\tposition:relative;\r\n\t\t\tcursor:pointer;\r\n\t\t\tmargin-right:1px;\r\n\t\t}\r\n\t\t\t#jsDisabled div.barGraph div.gamePanel:hover div.popOut\r\n\t\t\t{\r\n\t\t\t\tdisplay:block;\r\n\t\t\t\ttop:-302px;\r\n\t\t\t\tleft:-215px;\r\n\t\t\t}\r\n\t\t\tdiv.barGraph div.gamePanel a\r\n\t\t\t{\r\n\t\t\t\tposition:absolute;\r\n\t\t\t\ttop:0;\r\n\t\t\t\tleft:0;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\theight:84px;\r\n\t\t\t}\r\n\t\t\t\tdiv.barGraph div.gamePanel a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground:url(/images/reachStats/bg_25black.png);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\tdiv.barGraph div.last\r\n {\r\n \tmargin-right:0;\r\n }\r\n\t\t\tdiv.barGraph div.gamePanel div.heightBar\r\n\t\t\t{\r\n\t\t\t\tborder:0;\r\n\t\t\t\tfloat:none;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\tleft:0;\t \t\r\n\t\t\t}\r\n\t\t\t\tdiv.barGraph div.gamePanel div.heightBar div.bar\r\n\t\t\t\t{\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\tleft:0;\r\n\t\t\t\t}\r\n \r\n\t\t\t\tdiv.barGraph div.blue div.heightBar\r\n\t\t\t\t{\r\n \t\t\t\r\n \t\t\theight:66px;\r\n\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\tcolor:#57acd0;\r\n\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\tbottom:18px;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.barGraph div.blue div.heightBar div.bar{height:0;background:url(/images/reachStatsNew/bg_bar_blueFade.png) no-repeat bottom;position:absolute;bottom:0;}\r\n\t\t\t\t\tdiv.barGraph div.blue div.heightBar span\r\n\t\t\t\t\t{\r\n \t\t\tposition:relative;\r\n \t\t\tbottom:-70px;\r\n \t\t\tleft:0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\tdiv.barGraph div.cpff div.heightBar\r\n\t\t\t\t{\r\n \t\t\t\r\n \t\t\theight:66px;\r\n\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\tcolor:#57acd0;\r\n\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\tbottom:18px;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.barGraph div.cpff div.heightBar div.bar{height:0;background:url(/images/reachStatsNew/bg_bar_cpffFade.png) no-repeat bottom;position:absolute;bottom:0;}\r\n\t\t\t\t\tdiv.barGraph div.cpff div.heightBar span\r\n\t\t\t\t\t{\r\n \t\t\tposition:relative;\r\n \t\t\tbottom:-70px;\r\n \t\t\tleft:0;\r\n\t\t\t\t\t}\t\r\n\t\t\t\t\t\r\n\t\t\t\tdiv.barGraph div.red div.heightBar\r\n\t\t\t\t{\r\n \t\t\t\t\r\n \t\t\t\theight:18px;\r\n \t\t\t\ttop:66px;\r\n \t\t\t\tcolor:#b82020;\r\n\t\t \tposition:absolute;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.barGraph div.red div.heightBar div.bar{position:absolute;top:0;height:0;background:url(/images/reachStatsNew/bg_bar_blackFade.png) no-repeat top;}\r\n\t\t\t\t\tdiv.barGraph div.red div.heightBar span\r\n\t\t\t\t\t{\r\n \t\t\t\tposition:relative;\r\n \t\t\t\ttop:9px;\r\n \t\t\t\tleft:0;\r\n \t\t\t\tcolor:#ffc6c6;\r\n \t\t\t\tdisplay:none;\r\n\t\t\t\t\t}\t\t\r\n\r\n/* career stats type header with the center nav */\r\n.mainContentContainer .header\r\n{\r\n\twidth:640px;\r\n\tmargin:0 auto -70px;\r\n\theight:200px;\r\n\tbackground-repeat:no-repeat;\t\r\n}\r\n\t.mainContentContainer .allHeader{background-image:url(/images/reachStats/mode_headers/all.png);}\r\n\t.mainContentContainer .invasionHeader{background-image:url(/images/reachStats/mode_headers/invasion.png);}\r\n\t.mainContentContainer .firefightHeader{background-image:url(/images/reachStats/mode_headers/firefight.png);}\r\n\t.mainContentContainer .customHeader{background-image:url(/images/reachStats/mode_headers/custom.png);}\r\n\t.mainContentContainer .competitiveHeader{background-image:url(/images/reachStats/mode_headers/competitive.png);}\r\n\t.mainContentContainer .campaignHeader{background-image:url(/images/reachStats/mode_headers/campaign.png);}\r\n\t.mainContentContainer .slayerarenaHeader{background-image:url(/images/reachStats/mode_headers/arena.png);}\r\n\t.mainContentContainer .arena_doublesHeader{background-image:url(/images/reachStats/playlists/headers/arena_doubles.png);}\r\n\t.mainContentContainer .arena_ffaHeader{background-image:url(/images/reachStats/playlists/headers/arena_ffa.png);}\r\n\t.mainContentContainer .arena_teamHeader{background-image:url(/images/reachStats/playlists/headers/arena_team.png);}\r\n\t.mainContentContainer .bigteambattleHeader{background-image:url(/images/reachStats/playlists/headers/bigteambattle.png);}\r\n\t.mainContentContainer .campaign_coopHeader{background-image:url(/images/reachStats/playlists/headers/campaign_coop.png);}\r\n\t.mainContentContainer .firefight_coopHeader{background-image:url(/images/reachStats/playlists/headers/firefight_coop.png);}\r\n\t.mainContentContainer .firefight_scoreattackHeader{background-image:url(/images/reachStats/playlists/headers/firefight_scoreattack.png);}\r\n\t.mainContentContainer .invasionHeader{background-image:url(/images/reachStats/playlists/headers/invasion.png);}\r\n\t.mainContentContainer .multiteamHeader{background-image:url(/images/reachStats/playlists/headers/multiteam.png);}\r\n\t.mainContentContainer .rumblepitHeader{background-image:url(/images/reachStats/playlists/headers/rumblepit.png);}\r\n\t.mainContentContainer .team_objectiveHeader{background-image:url(/images/reachStats/playlists/headers/team_objective.png);}\r\n\t.mainContentContainer .team_slareHeader{background-image:url(/images/reachStats/playlists/headers/team_slayer.png);}\r\n\t.mainContentContainer .beachheadHeader{background-image:url(/images/reachStats/maps/map_headers/beachhead.png);}\r\n\t.mainContentContainer .cp_spoilerHeader{background-image:url(/images/reachStats/maps/map_headers/cp_spoiler.png);}\r\n\t.mainContentContainer .exodusHeader{background-image:url(/images/reachStats/maps/map_headers/exodus.png);}\r\n\t.mainContentContainer .ff_corvetteHeader{background-image:url(/images/reachStats/maps/map_headers/ff_corvette.png);}\r\n\t.mainContentContainer .ff_courtyardHeader{background-image:url(/images/reachStats/maps/map_headers/ff_courtyard.png);}\r\n\t.mainContentContainer .ff_glacierHeader{background-image:url(/images/reachStats/maps/map_headers/ff_glacier.png);}\r\n\t.mainContentContainer .ff_holdoutHeader{background-image:url(/images/reachStats/maps/map_headers/ff_holdout.png);}\r\n\t.mainContentContainer .ff_outpostHeader{background-image:url(/images/reachStats/maps/map_headers/ff_outpost.png);}\r\n\t.mainContentContainer .ff_overlookHeader{background-image:url(/images/reachStats/maps/map_headers/ff_overlook.png);}\r\n\t.mainContentContainer .ff_waterfrontHeader{background-image:url(/images/reachStats/maps/map_headers/ff_waterfront.png);}\r\n\t.mainContentContainer .lonewolfHeader{background-image:url(/images/reachStats/maps/map_headers/lonewolf.png);}\r\n\t.mainContentContainer .longnightofsolaceHeader{background-image:url(/images/reachStats/maps/map_headers/longnightofsolace.png);}\r\n\t.mainContentContainer .mp_boardwalkHeader{background-image:url(/images/reachStats/maps/map_headers/mp_boardwalk.png);}\r\n\t.mainContentContainer .mp_boneyardHeader{background-image:url(/images/reachStats/maps/map_headers/mp_boneyard.png);}\r\n\t.mainContentContainer .mp_countdownHeader{background-image:url(/images/reachStats/maps/map_headers/mp_countdown.png);}\r\n\t.mainContentContainer .mp_forgeworldHeader{background-image:url(/images/reachStats/maps/map_headers/mp_forgeworld.png);}\r\n\t.mainContentContainer .mp_powerhouseHeader{background-image:url(/images/reachStats/maps/map_headers/mp_powerhouse.png);}\r\n\t.mainContentContainer .mp_reflectionHeader{background-image:url(/images/reachStats/maps/map_headers/mp_reflection.png);}\r\n\t.mainContentContainer .mp_spireHeader{background-image:url(/images/reachStats/maps/map_headers/mp_spire.png);}\r\n\t.mainContentContainer .mp_swordbaseHeader{background-image:url(/images/reachStats/maps/map_headers/mp_swordbase.png);}\r\n\t.mainContentContainer .mp_zealotHeader{background-image:url(/images/reachStats/maps/map_headers/mp_zealot.png);}\r\n\t.mainContentContainer .newalexandriaHeader{background-image:url(/images/reachStats/maps/map_headers/newalexandria.png);}\r\n\t.mainContentContainer .nightfallHeader{background-image:url(/images/reachStats/maps/map_headers/nightfall.png);}\r\n\t.mainContentContainer .oniHeader{background-image:url(/images/reachStats/maps/map_headers/oni.png);}\r\n\t.mainContentContainer .pillarofautumnHeader{background-image:url(/images/reachStats/maps/map_headers/pillarofautumn.png);}\r\n\t.mainContentContainer .thepackageHeader{background-image:url(/images/reachStats/maps/map_headers/thepackage.png);}\r\n\t.mainContentContainer .tipofthespearHeader{background-image:url(/images/reachStats/maps/map_headers/tipofthespear.png);}\r\n\t.mainContentContainer .wintercontingencyHeader{background-image:url(/images/reachStats/maps/map_headers/wintercontingency.png);}\r\n\t\r\n\t.mainContentContainer .mp_anchor9Header{background-image:url(/images/reachStats/maps/map_headers/mp_anchor9.png);}\r\n\t.mainContentContainer .mp_breakpointHeader{background-image:url(/images/reachStats/maps/map_headers/mp_breakpoint.png);}\r\n\t.mainContentContainer .mp_tempestHeader{background-image:url(/images/reachStats/maps/map_headers/mp_tempest.png);}\r\n\t\r\ndiv.latticeBox ul.tabs\r\n{\r\n\tfloat:right;\r\n\tpadding:15px 0;\t\r\n}\r\n\tdiv.latticeBox ul.tabs li\r\n\t{\r\n\t\tfloat:left;\r\n\t\tborder-left:1px solid #fff;\r\n\t\tpadding:0 6px;\r\n\t\tlist-style:none;\r\n\t}\r\n\t\tdiv.latticeBox ul.tabs li a\r\n\t\t{\r\n\t\t\tfont-size:13px;\r\n\t\t}\r\n\t\t\tdiv.latticeBox ul.tabs li:first-child\r\n\t\t\t{\r\n\t\t\t\tborder-left:0;\r\n\t\t\t}\r\n\t\t\tdiv.latticeBox ul.tabs li.on a\r\n\t\t\t{\r\n\t\t\t\tcolor:#ececec;\r\n\t\t\t}\r\n/* leaderboards and game history tables */\r\ndiv.gameHistoryTableContainer\r\n{\r\n\twidth:640px;\r\n\tmargin:0 auto;\r\n\tclear:both;\r\n}\r\n\tdiv.gameHistoryTableContainer table\r\n\t{\r\n\t\tfloat:left;\r\n\t}\r\n\t\tdiv.gameHistoryTableContainer table tr:hover td p,\r\n\t\tdiv.gameHistoryTableContainer table tr.rgAltRow:hover td p\r\n\t\t{\r\n\t\t\tbackground:url(/images/reachStatsNew/bg_40black.png);\r\n\t\t}\r\n\t\tdiv.gameHistoryTableContainer table th.rgHeader\r\n\t\t{\r\n\t\t\theight:42px;\r\n\t\t\tpadding:6px 0 0;\r\n\t\t\tposition:relative;\r\n\t\t\tvertical-align:top;\r\n\t\t\tz-index:4;\r\n\t\t}\r\n\t\t\tdiv.gameHistoryTableContainer table th p\r\n\t\t\t{\r\n\t\t\t\ttext-align:center;\r\n\t\t\t\theight:26px;\r\n\t\t\t\tline-height:26px;\r\n\t\t\t\tmargin-bottom:0;\r\n\t\t\t}\r\n\t\t\tdiv.gameHistoryTableContainer table th:first-child p\r\n\t\t\t{\r\n\t\t\t\ttext-align:left;\r\n\t\t\t}\r\n\t\t\tdiv.gameHistoryTableContainer table th .dropDown\r\n\t\t\t{\r\n\t\t\t\twidth:75%;\r\n\t\t\t}\r\n\t\t\t\tdiv.gameHistoryTableContainer table th .dropDown ul\r\n\t\t\t\t{\r\n\t\t\t\t\tz-index:2;\r\n\t\t\t\t}\r\n\t\tdiv.gameHistoryTableContainer table tr td\r\n\t\t{\r\n\t\t\theight:32px;\r\n\t\t\tvertical-align:top;\r\n\t\t\tpadding:0 !important;\r\n\t\t\tposition:relative;\r\n\t\t\tz-index:1;\r\n\t\t\tborder-top:1px solid #5c5c5c;\r\n\t\t}\r\n\t\t\tdiv.gameHistoryTableContainer table tr.rgPager td{border-top:0;}\r\n\t\t\tdiv.gameHistoryTableContainer table tr td:first-child{position:relative;z-index:2;}\r\n\t\t\tdiv.gameHistoryTableContainer table tr td p\r\n\t\t\t{\r\n\t\t\t\tbackground:url(/images/reachStatsNew/bg_20white.png);\r\n\t\t\t\tline-height:25px;\r\n\t\t\t\theight:25px;\r\n\t\t\t\tfont-size:11px;\r\n\t\t\t\tposition:relative;\r\n\t\t\t\tpadding:0 10px;\r\n\t\t\t\tz-index:1;\r\n\t\t\t\twhite-space:nowrap;\r\n\t\t\t\tmargin-bottom:0;\r\n\t\t\t\ttext-align:center;\r\n\t\t\t}\r\n\t\t\t\tdiv.gameHistoryTableContainer table tr td p.outcome\r\n\t\t\t\t{\r\n\t\t\t\t\ttext-align:left;\r\n\t\t\t\t}\r\n\t\t\t\tdiv.gameHistoryTableContainer table tr td.place\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t\t\t\tdiv.gameHistoryTableContainer table tr td p a\r\n\t\t\t\t{\r\n\t\t\t\t\tline-height:25px;\r\n\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t}\r\n\t\t\t\tdiv.gameHistoryTableContainer table tr td p a.overlay\r\n\t\t\t\t{\r\n\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\ttop:0;\r\n\t\t\t\t\tleft:0;\r\n\t\t\t\t\twidth:638px;\r\n\t\t\t\t\theight:23px;\r\n\t\t\t\t\tdisplay:block;\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tz-index:3;\r\n\t\t\t\t\tbackground:url(/images/reachStats/blank.gif);\t\r\n\t\t\t\t}\r\n\t\tdiv.gameHistoryTableContainer table tr.rgAltRow td p\r\n\t\t{\r\n\t\t\tbackground:url(/images/reachStatsNew/bg_10white.png);\r\n\t\t}\r\n\r\n/* general floating label */\r\nfieldset.floatingLabels\r\n{\r\n\tposition:relative;\r\n} \r\n\tfieldset.floatingLabels label\r\n\t{\r\n\t\tposition:absolute;\r\n\t\tline-height:19px;\r\n\t\tleft:-9999px;\r\n\t\ttop:0;\t\r\n\t\tz-index:2;\r\n\t}\r\n\t\tfieldset.floatingLabels label.floated\r\n\t\t{\r\n\t\t\tleft:5px;\r\n\t\t\ttop:0;\r\n\t\t}\r\n\t\r\n/* files list */\t\r\nul.fileShareList\r\n{\r\n\tfloat:left;\r\n\twidth:100%;\r\n\tclear:both;\r\n}\r\n\tul.fileShareList li\r\n\t{\r\n\t\t-moz-border-radius:5px;\r\n\t\t-webkit-border-radius:5px;\r\n\t\ttext-align:left;\r\n\t\tpadding-bottom:10px;\r\n\t\tposition:relative;\r\n\t\ttop:0;\r\n\t\tleft:0;\r\n\t\tborder:2px solid #414344;\r\n\t\twidth:636px;\r\n\t\tmargin:0 auto 12px auto;\t\r\n\t}\r\n\t\tul.fileShareList li a.thumbLink\r\n\t\t{\r\n\t\t\tfloat:left;\r\n\t\t\tmargin:10px 19px 0 10px;\r\n\t\t}\r\n\t\tul.fileShareList li a span.fileset\r\n\t\t{\r\n\t\t\tbackground:url(\"/images/reachOnline/btn_infileset.png\") no-repeat;\r\n\t\t\ttext-indent:-99999px;\r\n\t\t\tdisplay:block;\r\n\t\t\twidth:76px;\r\n\t\t\theight:29px;\r\n\t\t\tfont-size:11px;\r\n\t\t\tleft:10px;\r\n\t\t\tline-height:22px;\r\n\t\t\tposition:absolute;\r\n\t\t\ttop:100px;\r\n\t\t\twhite-space:nowrap;\r\n\t\t\toverflow:hidden;\r\n\t\t}\r\n\t\t\r\n\t\tul.fileShareList li img\r\n\t\t{\r\n\t\t}\r\n\t\r\n\t\tul.fileShareList li .info\r\n\t\t{\r\n\t\t\tfloat:left;\r\n\t\t\twidth:397px;\r\n\t\t\tpadding-bottom:24px;\r\n\t\t}\r\n\t\t\tul.fileShareList .info div.corner\r\n\t\t\t{\r\n\t\t\t\tdisplay:none;\r\n\t\t\t}\r\n\t\t\tul.fileShareList .info div.content\r\n\t\t\t{\r\n\t\t\t\tposition:static;\r\n\t\t\t}\r\n\t\t\tul.fileShareList li div.info p img{float:none;margin:0;}\r\n\t\t\tul.fileShareList li h5\r\n\t\t\t{\r\n\t\t\t\tfont-size:17px;\r\n\t\t\t\tmargin-top:10px;\r\n\t\t\t\tmargin-bottom:3px;\r\n\t\t\t\toverflow:hidden;\r\n\t\t\t\twidth:285px;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\tul.fileShareList li h5 a\r\n\t\t\t\t{\r\n\t\t\t\t\tfont-size:17px;\r\n\t\t\t\t\tline-height:20px;\r\n\t\t\t\t}\r\n\t\t\tul.fileShareList li p\r\n\t\t\t{\r\n\t\t\t\tmargin-bottom:3px;\r\n\t\t\t\twidth:285px;\r\n\t\t\t}\r\n\t\t\t\tul.fileShareList li .description\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor:#777;\r\n\t\t\t\t\tfont-style:italic;\r\n\t\t\t\t\toverflow:hidden;\r\n\t\t\t\t}\r\n\t\t\t\tul.fileShareList li .emptyState\r\n\t\t\t\t{\r\n\t\t\t\t\tpadding:10px;\r\n\t\t\t\t\tcolor:#777;\r\n\t\t\t\t\tfont-style:italic;\r\n\t\t\t\t\twidth:auto;\r\n\t\t\t\t}\r\n\r\n\t\r\n/* actions for files */\r\nul.actions\r\n{\r\n\tposition:absolute;\r\n\tbottom:10px;\r\n}\r\n\t\r\n\tul.actions li\r\n\t{\r\n\t\tborder:0;\r\n\t\twidth:auto;\r\n\t\theight:auto;\r\n\t\tmargin:0;\r\n\t\tpadding:0;\r\n\t\tdisplay:inline-block;\r\n\t\tvertical-align:middle;\r\n\t\tbackground:none;\r\n\t}\r\n\t\tul.actions li a\r\n\t\t{\r\n\t\t\tpadding-left:37px;\r\n\t\t\tfloat:left;\r\n\t\t\tbackground:url(/images/reachStats/sprite_fileShare.png) no-repeat;\r\n\t\t\tfont-size:14px;\r\n\t\t\tmargin-right:21px;\r\n\t\t}\r\n\t\t\tul.actions li.copy a\r\n\t\t\t{\r\n\t\t\t\tbackground-position:-485px -171px;\r\n\t\t\t\theight:25px;\r\n\t\t\t\tline-height:25px;\r\n\t\t\t\tpadding-left:29px;\r\n\t\t\t}\r\n\t\t\t\tul.actions li.copy a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:-485px -200px;\r\n\t\t\t\t}\r\n\t\t\tul.actions li.trophy a\r\n\t\t\t{\r\n\t\t\t\tbackground-position:-480px -120px;\r\n\t\t\t\tline-height:25px;\r\n\t\t\t\theight:25px;\r\n\t\t\t}\r\n\t\t\t\tul.actions li.trophy a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:-480px -145px;\r\n\t\t\t\t}\r\n\t\t\tul.actions li.add a\r\n\t\t\t{\r\n\t\t\t\tbackground-position:-480px -40px;\r\n\t\t\t\tline-height:21px;\r\n\t\t\t\theight:21px;\r\n\t\t\t}\r\n\t\t\t\tul.actions li.add a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:-480px -65px;\r\n\t\t\t\t}\r\n\t\t\tul.actions li.delete a\r\n\t\t\t{\r\n\t\t\t\tbackground-position:-480px -89px;\r\n\t\t\t\tline-height:16px;\r\n\t\t\t\theight:16px;\r\n\t\t\t\tpadding-left:31px;\r\n\t\t\t}\r\n\t\t\t\tul.actions li.delete a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:-480px -104px;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\tul.actions li.download a\r\n\t\t\t{\r\n\t\t\t\tbackground-position:-485px 0px;\r\n\t\t\t\theight:20px;\r\n\t\t\t\tline-height:20px;\r\n\t\t\t\tpadding-left:31px;\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tul.actions li.download a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:-485px -20px;\r\n\t\t\t\t}\r\n\t\t\t\tul.actions li.download a span\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t\t\t\t\tul.actions li.download a:hover span\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t\t\ttext-decoration:none;\r\n\t\t\t\t\t}\r\n\t\t\tul.actions li.receipt a\r\n\t\t\t{\r\n\t\t\t\tbackground-position:-493px -277px;\r\n\t\t\t\theight:22px;\r\n\t\t\t\tline-height:22px;\r\n\t\t\t\tpadding-left:25px;\r\n\t\t\t}\r\n\t\t\t\tul.actions li.receipt a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:-493px -302px;\r\n\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\r\n\t\t\tul.actions li.spam a\r\n\t\t\t{\r\n\t\t\t\tbackground-position:-491px -230px;\r\n\t\t\t\tline-height:21px;\r\n\t\t\t\theight:21px;\r\n\t\t\t\tpadding-left:31px;\r\n\t\t\t\tmargin-top:-1px;\r\n\t\t\t}\r\n\t\t\t\tul.actions li.spam a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:-491px -254px;\r\n\t\t\t\t}\r\n\t\t\tul.actions li.buy a\r\n\t\t\t{\r\n\t\t\t\tbackground:url(/images/reachOnline/sprite_icons.png) no-repeat;\r\n\t\t\t\tbackground-position:-105px -40px;\r\n\t\t\t\tline-height:17px;\r\n\t\t\t\theight:17px;\r\n\t\t\t\tpadding-left:27px;\r\n\t\t\t\tmargin-right:0;\r\n\t\t\t}\r\n\t\t\tul.actions li.renderFilm a\r\n\t\t\t{\r\n\t\t\t\tbackground:url(/images/reachOnline/sprite_icons.png) no-repeat;\r\n\t\t\t\tbackground-position:-100px -90px;\r\n\t\t\t\tline-height:17px;\r\n\t\t\t\theight:17px;\r\n\t\t\t\tpadding-left:34px;\r\n\t\t\t\tmargin-right:0;\r\n\t\t\t}\r\n\t\t\t\tul.actions li.renderFilm a:hover\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-position:-100px -110px;\r\n\t\t\t\t}\r\n\t\t\tul.actions li.downloadWMV\r\n\t\t\t{\r\n\t\t\t\tbackground:url(/images/reachStats/sprite_fileShare.png) no-repeat;\r\n\t\t\t\tbackground-position:-480px -20px;\r\n\t\t\t\tpadding-left:37px;\r\n\t\t\t\tmargin-right:13px;\r\n\t\t\t\tfont-size:14px;\r\n\t\t\t\tcolor:#fff;\r\n\t\t\t\theight:20px;\r\n\t\t\t\tline-height:20px;\r\n\t\t\t}\t\t\t\r\n\t\t\t\tul.actions li.downloadWMV a\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground:none;\r\n\t\t\t\t\tmargin-right:0;\r\n\t\t\t\t\tpadding-left:0;\r\n\t\t\t\t\tfloat:none;\r\n\t\t\t\t}\t\r\n\r\n/* file like icons */\t\r\n\r\na.bpro_file_link {\r\n\tfloat:right;\r\n\ttext-align:center;\r\n\theight:12px;\r\n\tpadding-top: 0px;\r\n\twidth:63px;\r\n\tdisplay:block;\r\n\tcursor:pointer;\r\n\tmargin-right:11px;\r\n\tmargin-top:7px;\r\n\tfont-size: 11px;\r\n\tclear: right;\r\n}\r\n\t\t\r\n.like\r\n{\r\n\tfloat:right;\r\n\ttext-align:center;\r\n\tbackground:url(/images/reachStats/sprite_fileShare.png) no-repeat;\r\n\tbackground-position:-410px -37px;\r\n\theight:31px;\r\n\tpadding-top:40px;\r\n\twidth:63px;\r\n\tdisplay:block;\r\n\tcursor:pointer;\r\n\tmargin-right:11px;\r\n\tmargin-top:10px;\r\n}\r\n\t.like:hover\r\n\t{\r\n\t\topacity:.8;\r\n\t}\r\n\t\r\n.starLike\r\n{\r\n\tbackground:url(/images/reachStats/icon_likestar.png) no-repeat 0 0;\r\n\twidth:59px;\r\n}\r\n.fireLike\r\n{\r\n\tbackground-position:-235px -25px;\r\n\twidth:100px;\r\n\theight:33px;\r\n\tpadding-top:51px;\r\n\tmargin-right:-2px;\r\n\tmargin-top:0;\r\n}\r\n\t.fireLike span\r\n\t{\r\n\t\tdisplay:block;\r\n\t\tmargin-left:24px;\r\n\t\ttext-align:center;\r\n\t\twidth:63px;\r\n\t}\r\n.medLike\r\n{\r\n\tbackground-position:-345px -37px;\r\n\t\r\n}\r\n.basicLike\r\n{\r\n\tbackground-position:-410px -37px;\r\n}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\na.btn_more\r\n{\r\n\tclear:both;\r\n\tdisplay:block;\r\n\tbackground:url(/images/reachStatsNew/bg_glowButton_640.png) no-repeat;\r\n\twidth:640px;\r\n\tmargin:0 auto;\r\n\theight:38px;\r\n\tline-height:38px;\r\n\ttext-align:center;\r\n\tfont-size:13px;\r\n\ttext-transform:uppercase;\r\n}\r\n\r\n/* pop out */\r\ndiv.popOut\r\n{\r\n\tposition:absolute;\r\n\tdisplay:none;\r\n\tbackground:url(/images/reachStatsNew/bg_popup.png);\r\n\tz-index:1000;\r\n}\r\n\tdiv.popOut div.content\r\n\t{\r\n\t\tpadding:21px 10px 10px 10px;\r\n\t}\r\n\tdiv.popOut h4\r\n\t{\r\n\t\tbackground:url(/images/reachStatsNew/bg_popOut_h4.png) repeat-x 0 0;\r\n\t\theight:21px;\r\n\t\tline-height:21px;\r\n\t\twidth:100%;\r\n\t\tcolor:#000;\r\n\t\tfont-size:14px;\r\n\t\tmargin:0;\r\n\t\ttext-indent:10px;\r\n\t\tposition:absolute;\r\n\t\ttop:0;\r\n\t\tleft:0;\r\n\t\tfont-weight:bold;\r\n\t\ttext-align:left;\r\n\t}\r\n\tdiv.popOut h5\r\n\t{\r\n\t\tcolor:#fff;\r\n\t\tfont-size:12px;\r\n\t\tpadding-top:10px;\r\n\t\tmargin-bottom:8px;\r\n\t\ttext-align:left;\r\n\t}\r\n\tdiv.popOut p\r\n\t{\r\n\t\ttext-align:right;\r\n\t\tcolor:#fff;\r\n\t\tmargin:0;\r\n\t\tline-height:22px;\r\n\t\tclear:both;\t\t\r\n\t}\r\n\t\tdiv.popOut p strong\r\n\t\t{\r\n\t\t\tfloat:left;\r\n\t\t\tfont-weight:normal;\r\n\t\t\tfont-size:12px;\r\n\t\t\tline-height:22px;\r\n\t\t}\r\n\t\tdiv.popOut p a\r\n\t\t{\r\n\t\t\tfont-size:12px;\r\n\t\t\tline-height:22px;\r\n\t\t}\r\n\t\t\r\n\tdiv.popOut div.rule_transparent\r\n\t{\r\n\t\twidth:100%;\r\n\t\tmargin:5px 0;\r\n\t}\r\n\tdiv.popOut div.twoColumn\r\n\t{\r\n\t\tposition:relative;\r\n\t}\r\n\t\t\r\n\t\tdiv.popOut div.twoColumn p\r\n\t\t{\r\n\t\t\tcolor:#999;\r\n\t\t\tfont-size:11px;\r\n\t\t\tline-height:18px;\r\n\t\t}\r\n\t\t\tdiv.popOut div.twoColumn p strong\r\n\t\t\t{\r\n\t\t\t\tfont-size:11px;\r\n\t\t\t\tline-height:18px;\r\n\t\t\t}\r\n\t\t\tdiv.popOut div.twoColumn p em\r\n\t\t\t{\r\n\t\t\t\tfont-style:normal;\r\n\t\t\t\tcolor:#fff;\r\n\t\t\t}\r\n\t\t\tdiv.popOut div.twoColumn p a\r\n\t\t\t{\r\n\t\t\t\tfont-size:11px;\r\n\t\t\t\tline-height:18px;\r\n\t\t\t}\r\n\t\t\tdiv.popOut div.twoColumn p img\r\n\t\t\t{\r\n\t\t\t\tposition:static;\r\n\t\t\t\tvertical-align:middle;\r\n\t\t\t}\r\n\t\tdiv.popOut div.twoColumn img\r\n\t\t{\r\n\t\t\tleft:-17px;\r\n\t\t\tposition:absolute;\r\n\t\t\ttop:0;\r\n\t\t\tz-index:2;\r\n\t\t}\r\n\t\tdiv.po_career{}\r\n\t\t\tdiv.po_career div.content\r\n\t\t\t{\r\n\t\t\t\twidth:167px;\r\n\t\t\t}\r\n\t\tdiv.po_arenaOverview\r\n\t\t{\r\n\t\t}\r\n\t\t\tdiv.po_arenaOverview div.content\r\n\t\t\t{\r\n\t\t\t\twidth:274px\r\n\t\t\t}\r\n\t\t\tdiv.po_arenaOverview .weapon\r\n\t\t\t{\r\n\t\t\t\theight:51px;\r\n\t\t\t\tline-height:51px;\r\n\t\t\t}\r\n\t\t\tdiv.po_arenaOverview div.medalsList\r\n\t\t\t{\r\n\t\t\t\twidth:100%;\r\n\t\t\t\toverflow:hidden;\r\n\t\t\t}\r\n\t\t\t\tdiv.po_arenaOverview ul.medalsList\r\n\t\t\t\t{\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t\tpadding-top:5px;\r\n\t\t\t\t\twidth:280px;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.po_arenaOverview .medalsList li\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground:url(/images/reachStatsNew/bg_medalsBox.png) no-repeat;\r\n\t\t\t\t\t\twidth:50px;\r\n\t\t\t\t\t\theight:45px;\r\n\t\t\t\t\t\tfloat:left;\r\n\t\t\t\t\t\ttext-align:center;\r\n\t\t\t\t\t\tposition:relative;\r\n\t\t\t\t\t\tpadding:6px 6px 28px 0;\r\n\t\t\t\t\t\tclear:none;\r\n\t\t\t\t\t\tmargin-bottom:0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.po_arenaOverview .medalsList li.last\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdiv.po_arenaOverview .medalsList li.last p\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.po_arenaOverview .medalsList li img\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\twidth:34px;\r\n\t\t\t\t\t\t\theight:34px;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.po_arenaOverview .medalsList li p\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tbackground:url(/images/reachStatsNew/bg_20white.png);\r\n\t\t\t\t\t\t\theight:25px;\r\n\t\t\t\t\t\t\tline-height:25px;\r\n\t\t\t\t\t\t\tmargin-bottom:0;\r\n\t\t\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\t\t\tbottom:0;\r\n\t\t\t\t\t\t\tpadding-right:6px;\r\n\t\t\t\t\t\t\twidth:50px;\r\n\t\t\t\t\t\t\tleft:0;\r\n\t\t\t\t\t\t\ttext-align:center;\r\n\t\t\t\t\t\t}\t\t\t\r\n\t\tdiv.po_campaign\r\n\t\t{\r\n\t\t}\r\n\t\t\tdiv.po_campaign div.content\r\n\t\t\t{\r\n\t\t\t\twidth:266px;\r\n\t\t\t}\r\n\t\t\tdiv.po_campaign div.content p,div.po_campaign div.content h5{padding-left:64px;}\r\n\t\tdiv.po_weapon\r\n\t\t{\r\n\t\t}\r\n\t\t\tdiv.po_weapon div.content\r\n\t\t\t{\r\n\t\t\t\twidth:248px;\r\n\t\t\t}\r\n\t\tdiv.po_arenaSeason2\r\n\t\t{\r\n\t\t}\r\n\t\t\tdiv.po_arenaSeason2 div.content\r\n\t\t\t{\r\n\t\t\t\twidth:188px;\r\n\t\t\t}\r\n\t\t\t\tdiv.po_arenaSeason2 div.content div.twoColumn img\r\n\t\t\t\t{\r\n\t\t\t\t\tleft:0;\r\n\t\t\t\t\ttop:12px;\r\n\t\t\t\t}\r\n\t\t\t\tdiv.po_arenaSeason2 div.content div.twoColumn h5\r\n\t\t\t\t{\r\n\t\t\t\t\tpadding-left:64px;\r\n\t\t\t\t}\r\n\t\t\t\tdiv.po_arenaSeason2 div.content div.twoColumn p\r\n\t\t\t\t{\r\n\t\t\t\t\ttext-align:left;\r\n\t\t\t\t\tpadding-left:64px;\r\n\t\t\t\t}\r\n\t\tdiv.po_victory\r\n\t\t{\r\n\t\t}\r\n\t\t\tdiv.po_victory div.content\r\n\t\t\t{\r\n\t\t\t\twidth:188px;\r\n\t\t\t\tpadding-top:103px;\r\n\t\t\t}\r\n\t\t\t\tdiv.po_victory img.background\r\n\t\t\t\t{\r\n\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\tleft:0;\r\n\t\t\t\t\ttop:21px;\r\n\t\t\t\t\tz-index:1;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tdiv.po_victory img.icon\r\n\t\t\t\t{\r\n\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\ttop:43px;\r\n\t\t\t\t\tleft:20px;\r\n\t\t\t\t\tz-index:2;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tdiv.po_victory h5\r\n\t\t\t\t{\r\n\t\t\t\t\tfont-size:18px;\r\n\t\t\t\t\tmargin:0;\r\n\t\t\t\t}\r\n\t\t\t\tdiv.po_victory p.location\r\n\t\t\t\t{\r\n\t\t\t\t\ttext-align:left;\r\n\t\t\t\t\tfont-size:10px;\r\n\t\t\t\t}\r\n\t\tdiv.po_multiplayer\r\n\t\t{\r\n\t\t}\r\n\t\t\tdiv.po_multiplayer div.content\r\n\t\t\t{\r\n\t\t\t\twidth:266px;\r\n\t\t\t}\r\n\t\t\t\tdiv.po_multiplayer div.content p\r\n\t\t\t\t{\r\n\t\t\t\t\ttext-align:left;\r\n\t\t\t\t\tcolor:#999;\r\n\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\tline-height:18px;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.po_multiplayer div.content p.nextTier\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttext-align:right;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.po_multiplayer div.content p.nextTier img\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvertical-align:middle;\r\n\t\t\t\t\t\t}\r\n\t\t\t\tdiv.po_multiplayer div.barContainer\r\n\t\t\t\t{\r\n\t\t\t\t\theight:17px;\r\n\t\t\t\t\twidth:252px;\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t\tpadding:7px;\r\n\t\t\t\t\tmargin:5px 0;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.po_multiplayer div.firefight{background:url(/images/reachStatsNew/bg_30red.png);}\r\n\t\t\t\t\tdiv.po_multiplayer div.campaign{background:url(/images/reachStatsNew/bg_30green.png);}\r\n\t\t\t\t\tdiv.po_multiplayer div.multiplayer{background:url(/images/reachStatsNew/bg_30blue.png);}\r\n\t\t\t\t\tdiv.po_multiplayer div.barContainer div.bar\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\theight:17px;\r\n\r\n\t\t\t\t\t\twidth:30%;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.po_multiplayer div.multiplayer div.bar{background:#446380;}\r\n\t\t\t\t\t\tdiv.po_multiplayer div.firefight div.bar{background:#94352A;}\r\n\t\t\t\t\t\tdiv.po_multiplayer div.campaign div.bar{background:#55533a;}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\tdiv.po_multiplayer div.barContainer span\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\t\tright:7px;\r\n\t\t\t\t\t\ttop:8px;\r\n\t\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\t\tcolor:#fff;\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\tdiv.po_medal\r\n\t\t{\r\n\t\t}\r\n\t\t\tdiv.po_medal div.content\r\n\t\t\t{\r\n\t\t\t\twidth:266px;\r\n\t\t\t\tmin-height:99px;\r\n\t\t\t}\r\n\t\t\t\tdiv.po_medal div.content p,div.po_medal div.content h5{padding-left:96px;line-height:15px;background:none;}\t\t\r\n\t\t\t\tdiv.po_medal div.content div.twoColumn img{top:11px;left:-2px;}\r\n\t\tdiv.po_playerInfo\r\n\t\t{\r\n\t\t}\r\n\t\t\tdiv.po_playerInfo div.content\r\n\t\t\t{\r\n\t\t\t\twidth:336px;\r\n\t\t\t\tmin-height:286px;\r\n\t\t\t}\r\n\t\t\t\tdiv.po_playerInfo div.content h4\r\n\t\t\t\t{\r\n\t\t\t\t\ttext-transform:none;\r\n\t\t\t\t}\r\n\t\t\t\tdiv.po_playerInfo div.content div.twoColumn{padding-top:10px;}\r\n\t\t\t\tdiv.po_playerInfo div.content div.twoColumn p\r\n\t\t\t\t{\r\n\t\t\t\t\tpadding-left:121px;\r\n\t\t\t\t\twidth:214px;\r\n\t\t\t\t\tmargin-top:0;\r\n\t\t\t\t\ttext-transform:none;\r\n\t\t\t\t}\r\n\t\t\t\tdiv.po_playerInfo div.content div.twoColumn ul.medalsList\r\n\t\t\t\t{\r\n\t\t\t\t\tmargin-left:121px;\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn ul.medalsList li\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn ul.medalsList li p\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmargin:0;\r\n\t\t\t\t\t\t\tpadding:0;\r\n\t\t\t\t\t\t\ttext-align:center;\r\n\t\t\t\t\t\t\tline-height:30px;\r\n\t\t\t\t\t\t\twidth:100%;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn ul.medalsList img\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tposition:static;\r\n\t\t\t\t\t}\r\n\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer\r\n\t\t\t\t{\r\n\t\t\t\t\tmargin-left:121px;\r\n\t\t\t\t\twidth:215px;\r\n\t\t\t\t\tmargin:0 0 12px 121px;\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer p\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcolor:#888888;\r\n\t\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\t\ttext-align:left;\r\n\t\t\t\t\t\ttext-transform:none;\r\n\t\t\t\t\t\tpadding:0;\r\n\t\t\t\t\t\tmargin-bottom:5px;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer p span.kills\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcolor:#71caef;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer p span.deaths\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcolor:#cb2727;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer div.lineGraph{position:relative;}\r\n\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer div.background{width:100%;position:absolute;top:9px; left:0;}\r\n\t\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer div.background div{width:100%;background:#121212;margin-top:5px;height:24px;}\r\n\t\t\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer div.background div.first{margin-top:0;}\r\n\t\t\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer div.background div span{width:24px;line-height:24px;height:24px;float:left;text-align:center;color:#fff;background:#282828;font-size:10px;font-weight:bold;}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\tdiv.po_playerInfo div.content div.twoColumn div.playerInfoLineContainer div.lineGraph\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twidth:100%;\r\n\t\t\t\t\t\tclear:both;\r\n\t\t\t\t\t}\r\n/* career stats alternating list - used on service record and career stats overview */\r\ndiv.careerStats{} \r\n\tdiv.careerStats ul.alternatingList\r\n\t{\r\n\t\tposition:relative;\r\n\t\tfloat:left;\r\n\t}\r\n\t\tdiv.careerStats ul.alternatingList li\r\n\t\t{\r\n\t\t\tbackground:url(/images/reachStatsNew/bg_20white.png);\r\n\t\t\tborder-top:1px solid #5c5c5c;\r\n\t\t\twidth:192px;\r\n\t\t\theight:26px;\r\n\t\t\tline-height:26px;\r\n\t\t\tlist-style:none;\r\n\t\t\tmargin-bottom:3px;\r\n\t\t\tpadding:0 10px;\r\n\t\t\tfont-size:11px;\r\n\t\t\ttext-align:right;\r\n\t\t}\r\n\t\t\tdiv.careerStats ul.alternatingList li.alt\r\n\t\t\t{\r\n\t\t\t\tbackground:url(/images/reachStatsNew/bg_10white.png);\r\n\t\t\t\tborder-top:1px solid #5c5c5c;\r\n\t\t\t}\r\n\t\t\tdiv.careerStats ul.alternatingList li:hover, div.careerStats ul.alternatingList li.alt:hover{background:url(/images/reachStatsNew/bg_40black.png);}\r\n\t\t\tdiv.careerStats ul.alternatingList li strong\r\n\t\t\t{\r\n\t\t\t\tfloat:left;\r\n\t\t\t\tcolor:#fff;\r\n\t\t\t\tfont-weight:normal;\r\n\t\t\t\twhite-space:nowrap;\r\n\t\t\t}\r\n\t\t\tdiv.careerStats ul.alternatingList li span\r\n\t\t\t{\r\n\t\t\t\tcolor:#ababab;\r\n\t\t\t}\r\n\t\t\tdiv.careerStats ul.alternatingList li.gamesPlayed\r\n\t\t\t{\r\n\t\t\t\tmargin-right:0;\r\n\t\t\t\tposition:absolute;\r\n\t\t\t\ttop:13px;\r\n\t\t\t\tright:-208px;\r\n\t\t\t\twidth:182px;\r\n\t\t\t\tbackground:none;\r\n\t\t\t\tborder:0;\r\n\t\t\t}\r\n\t\t\t\tdiv.careerStats ul.alternatingList li.gamesPlayed span\r\n\t\t\t\t{\r\n\t\t\t\t\tfont-size:15px;\r\n\t\t\t\t\tleft:0;\r\n\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\ttext-align:center;\r\n\t\t\t\t\ttop:83px;\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\r\n/* medals list */\r\nul.medalsList\r\n{\r\n\tclear:both;\r\n\twidth:100%;\r\n}\r\n\tul.medalsList li\r\n\t{\r\n\t\tbackground:url(/images/reachStatsNew/bg_medalsBox.png) no-repeat;\r\n\t\twidth:50px;\r\n\t\theight:45px;\r\n\t\tfloat:left;\r\n\t\ttext-align:center;\r\n\t\tposition:relative;\r\n\t\tpadding:2px 3px 28px 0;\r\n\t\tclear:none;\r\n\t}\r\n\t\tul.medalsList li.last\r\n\t\t{\r\n\t\t\tpadding-right:0;\r\n\t\t}\r\n\t\t#jsDisabled ul.medalsList li:hover div.popOut\r\n\t\t{\r\n\t\t\tdisplay:block;\r\n\t\t\tright:27px;\r\n\t\t\tleft:auto;\r\n\t\t\tbottom:53px;\r\n\t\t\ttop:auto;\r\n\t\t}\r\n\t\t\tul.playlistList ul.medalsList div.popOut h4 \r\n\t\t\t{\r\n\t\t\t\tcolor:#000000;\r\n\t\t\t\tfont-size:14px;\r\n\t\t\t\theight:21px;\r\n\t\t\t\tmargin:0;\r\n\t\t\t\toverflow:visible;\r\n\t\t\t\tposition:absolute;\r\n\t\t\t}\r\n\t\t\tul.playlistList ul.medalsList li div.popOut p {\r\n\t\t\t\tline-height:18px;\r\n\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\tul.medalsList li p\r\n\t\t{\r\n\t\t\tmargin-bottom:0;\r\n\t\t\tline-height:30px;\r\n\t\t}\t\r\n\t\t\r\n/* Challenges List */\r\nh3.dailyChallengesHeader\r\n{\r\n\tbackground:url(/images/reachStatsNew/bg_10white.png);\r\n\tline-height:28px;\r\n\tfont-size:12px;\r\n\twidth:604px;\r\n\tmargin:0 auto 16px;\r\n\tpadding:0 18px;\r\n\ttext-transform:none;\r\n}\r\n\th3.dailyChallengesHeader span\r\n\t{\r\n\t\tfloat:right;\r\n\t}\r\n\t\th3.dailyChallengesHeader span span:first-child\r\n\t\t{\r\n\t\t\tmargin-right:10px;\r\n\t\t}\r\n\t\th3.dailyChallengesHeader span span\r\n\t\t{\r\n\t\t\tfloat:none;\r\n\t\t\tmargin:0 0 0 5px;\r\n\t\t}\r\n\t\r\nul.challengesList\r\n{\r\n\twidth:640px;\r\n\tmargin:0 auto;\r\n\toverflow:hidden;\r\n}\r\n\tul.challengesList li\r\n\t{\r\n\t\tposition:relative;\r\n\t\tmargin-bottom:16px;\r\n\t\tbackground:url(/images/reachStatsNew/bg_10white.png);\r\n\t\twidth:100%;\r\n\t}\r\n\t\tul.challengesList li.emptyState\r\n\t\t{\r\n\t\t\tpadding:18px;\r\n\t\t}\r\n\t\tul.challengesList li img\r\n\t\t{\r\n\t\t\twidth:100px;\r\n\t\t\theight:100px;\r\n\t\t\tfloat:left;\r\n\t\t\tmargin:8px 28px 8px 18px;\r\n\t\t}\r\n\t\tul.challengesList li div.info\r\n\t\t{\r\n\t\t\tfloat:left;\r\n\t\t\twidth:480px;\r\n\t\t\tpadding-top:16px;\r\n\t\t}\r\n\t\t\tul.challengesList li div.info h5\r\n\t\t\t{\r\n\t\t\t\tfloat:left;\r\n\t\t\t\tcolor:#f7f7f7;\r\n\t\t\t\tfont-size:14px;\r\n\t\t\t\tfont-weight:normal;\r\n\t\t\t\tmargin-bottom:12px;\r\n\t\t\t}\r\n\t\t\tul.challengesList li div.info .rFloat p\r\n\t\t\t{\r\n\t\t\t\tdisplay:inline;\r\n\t\t\t\tfont-size:14px;\r\n\t\t\t\tcolor:#f7f7f7;\t\r\n\t\t\t}\r\n\t\t\tul.challengesList li div.info p.timeDisplay\r\n\t\t\t{\r\n\t\t\t\tfont-size:14px;\r\n\t\t\t}\r\n\t\t\t\tul.challengesList li div.info p.timeDisplay span\r\n\t\t\t\t{\r\n\t\t\t\t\tmargin-right:5px;\r\n\t\t\t\t}\r\n\t\t\t\tul.challengesList li div.info p.timeDisplay span.seconds\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor:#ff5f3c;\r\n\t\t\t\t\tmargin-right:10px;\r\n\t\t\t\t}\r\n\t\t\tul.challengesList li div.info p.description\r\n\t\t\t{\r\n\t\t\t\tfont-style:italic;\r\n\t\t\t\tfont-size:11px;\r\n\t\t\t\tcolor:#bebebe;\r\n\t\t\t\tclear:both;\r\n\t\t\t}\r\n\t\t\tul.challengesList li div.info div.reward{position:absolute;bottom:15px;width:480px;}\r\n\t\t\tul.challengesList li div.info p.success\r\n\t\t\t{\r\n\t\t\t\tfont-size:18px;\r\n\t\t\t\tcolor:#65c1e7;\r\n\t\t\t\ttext-transform:uppercase;\r\n\t\t\t\tbackground:url(/images/reachStatsNew/icon_check.png) no-repeat left center;\r\n\t\t\t\tpadding-left:37px;\r\n\t\t\t\tmargin-bottom:0;\r\n\t\t\t}\r\n\t\t\tul.challengesList li div.info div.barContainer\r\n\t\t\t{\r\n\t\t\t\theight:19px;\r\n\t\t\t\tbackground:url(/images/reachStatsNew/bg_20white.png);\r\n\t\t\t\twidth:100%;\r\n\t\t\t\tposition:relative;\r\n\t\t\t}\r\n\t\t\t\tul.challengesList li div.info div.barContainer div.bar\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground:url(\"/images/reachStatsNew/bg_20white.png\") repeat scroll 0 0 transparent;\r\n\t\t\t\t\theight:19px;\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t}\r\n\t\t\t\t\tul.challengesList li div.info div.barContainer div.bar span\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackground:url(\"/images/reachStatsNew/rankBarProgressIndicator.png\") no-repeat scroll 0 0 transparent;\r\n\t\t\t\t\t\theight:23px;\r\n\t\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\t\tright:-3px;\r\n\t\t\t\t\t\ttop:-2px;\r\n\t\t\t\t\t\twidth:7px;\r\n\t\t\t\t\t}\r\n\t\t\t\tul.challengesList li div.info div.barContainer p\r\n\t\t\t\t{\r\n\t\t\t\t\tfont-size:11px;\r\n\t\t\t\t\tline-height:19px;\r\n\t\t\t\t\ttext-align:right;\r\n\t\t\t\t\tposition:absolute;\r\n\t\t\t\t\ttop:0;\r\n\t\t\t\t\tright:5px;\r\n\t\t\t\t}\r\n\tul.dailyChallengesList{margin-bottom:-16px;}\r\n\t\t\t\t\r\n/* prev/next buttons for files list */\r\ndiv.btns\r\n{\r\n\ttext-align:center;\r\n\tclear:both;\r\n\twidth:640px;\r\n\tposition:relative;\r\n\ttop:0;\r\n\tleft:0;\r\n\theight:40px;\r\n\tmargin:7px auto 12px;\r\n}\r\n\tdiv.btns a,\r\n\tdiv.btns div\r\n\t{\r\n\t\tbackground:url(/images/reachOnline/sprite_buttons.png) no-repeat;\r\n\t\twidth:313px;\r\n\t\theight:40px;\r\n\t\ttext-indent:-99999px;\r\n\t\toverflow:hidden;\r\n\t\tdisplay:block;\r\n\t\tmargin:0;\r\n\t\tposition:absolute;\r\n\t\ttop:0px;\r\n\t}\r\n\t\tdiv.btns a.previous\r\n\t\t{\r\n\t\t\tbackground-position:0 -200px;\r\n\t\t\tleft:0;\r\n\t\t}\r\n\t\t\tdiv.btns a.previous:hover\r\n\t\t\t{\r\n\t\t\t\tbackground-position:0 -240px;\r\n\t\t\t}\r\n\t\tdiv.btns a.next\r\n\t\t{\r\n\t\t\tbackground-position:0 -280px;\r\n\t\t\twidth:311px;\r\n\t\t\tright:0;\r\n\t\t}\r\n\t\t\tdiv.btns a.next:hover\r\n\t\t\t{\r\n\t\t\t\tbackground-position:0 -320px;\r\n\t\t\t}\r\n\t\tdiv.btns div.disabledPrevious\r\n\t\t{\r\n\t\t\tbackground-position:0 -559px;\r\n\t\t\tleft:0;\r\n\t\t\tcursor:default;\r\n\t\t}\r\n\t\tdiv.btns div.disabledNext\r\n\t\t{\r\n\t\t\tbackground-position:0 -599px;\r\n\t\t\twidth:311px;\r\n\t\t\tright:0;\r\n\t\t\tcursor:default;\r\n\t\t}\r\n\r\n/* both heatmap pages */\r\n.Heatmaps div.mainGlowBox\r\n{\r\n\tpadding-bottom:14px;\r\n}\r\n.Heatmaps div.sort\r\n{\r\n\tmargin:0 auto 14px;\r\n\twidth:640px;\r\n}\r\n\t.Heatmaps div.sort img\r\n\t{\r\n\t\tfloat:right;\r\n\t}\r\n\t.Heatmaps div.sort div.background\r\n\t{\r\n\t\t\r\n\t\tpadding-right:258px;\r\n\t\tmargin-bottom:12px;\r\n\t\tmin-height:116px;\r\n\t\tposition:relative;\r\n\t\tpadding-bottom:30px;\r\n\t\tz-index:3;\r\n\t}\r\n\t\t.Heatmaps div.sort div.background ul.dropDown{width:162px;margin-right:17px;}\r\n\t\t.Heatmaps div.sort div.background p\r\n\t\t{\r\n\t\t\tpadding-right:10px;\r\n\t\t\twidth:372px;\r\n\t\t}\r\n\t\t.Heatmaps div.sort div.selectContainer\r\n\t\t{\r\n\t\t\tposition:absolute;\r\n\t\t\tbottom:0;\r\n\t\t\tleft:0;\r\n\t\t\twidth:640px;\r\n\t\t\t\r\n\t\t}\r\n\t\t.Heatmaps div.sort select\r\n\t\t{\r\n\t\t\twidth:184px;\r\n\t\t\tborder:0;\r\n\t\t\tmargin-right:5px;\r\n\t\t\t\r\n\t\t}\r\n\t.Heatmaps table.centerNav\r\n\t{\r\n\t\tclear:both;\r\n\t\tmargin:0;\r\n\t\twidth:100%;\r\n\t\ttable-layout:fixed;\r\n\t\t\r\n\t} \r\n\t\t.Heatmaps table.centerNav td a\r\n\t\t{\r\n\t\t\ttext-transform:none;\r\n\t\t}\r\n.Heatmaps div.heatmap\r\n{\r\n\twidth:638px;\r\n\tmargin:0 auto;\r\n\ttext-align:center;\r\n\tbackground:#000;\r\n\tfloat:none;\r\n}\r\n\t.Heatmaps div.heatmap .content\r\n\t{\r\n\t\tfloat:none;\r\n\t\tpadding:22px 0;\r\n\t}\r\n\t.Heatmaps div.heatmap p.damageRadius\r\n\t{\r\n\t\ttext-align:center;\r\n\t\tcolor:#fff;\r\n\t\tfont-size:13px;\r\n\t\tpadding-top:0px;\r\n\t\tmargin-bottom:22px;\r\n\t}\r\n\t\t.Heatmaps div.heatmap p.damageRadius span{margin-left:15px;}\r\n\t\t.Heatmaps div.heatmap p.damageRadius a\r\n\t\t{\r\n\t\t\tmargin:0 5px;\r\n\t\t}\r\n\t\t\t.Heatmaps div.heatmap p.damageRadius a.on\r\n\t\t\t{\r\n\t\t\t\tcolor:#fff;\r\n\t\t\t}\r\n\r\n/* pie graphs */\r\ndiv.bg_pieGraph{}\r\n\tdiv.pieGraph,div.pieGraphContainer{opacity:0.55;}\r\n\t\t#jsDisabled div.bg_pieGraph{display:none;}\r\n\t\tdiv.bg_pieGraph img{position:absolute;}\r\n\t\tdiv.bg_pieGraph ul.legend{position:absolute;}\r\n\t\t\tdiv.bg_pieGraph ul.legend li{line-height:22px;height:26px;font-size:10px;color:#fff;}\r\n\t\t\t\tdiv.bg_pieGraph ul.legend li.invasion,\r\n\t\t\t\tdiv.bg_pieGraph ul.legend li.campaign{width:68px;}\r\n\t\t\t\tdiv.bg_pieGraph ul.legend li.custom,\r\n\t\t\t\tdiv.bg_pieGraph ul.legend li.arena{width:60px;}\r\n\t\t\t\tdiv.bg_pieGraph ul.legend li.firefight,\r\n\t\t\t\tdiv.bg_pieGraph ul.legend li.competitive{width:74px;}\r\n\t\t\t\tdiv.bg_pieGraph ul.legend li span{display:inline-block;width:5px; height:5px;margin:7px;vertical-align:middle;margin:0 5px 0 2px;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.campaign span{background:#8DBD3F;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.firefight span{background:#b83a3a;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.arena span{background:#0066A6;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.invasion span{background:#B9E5FB;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.competitive span{background:#00A9D3;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.custom span{background:#624a95;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.victory span{background:#27AAE1;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.top50 span{background:#BE1E2D;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.top33 span{background:#1C75BC;}\r\n\t\t\t\t\tdiv.bg_pieGraph ul.legend li.defeat span{background:#D7DF23;}\r\n\r\n/* NotFoundControl */\r\ndiv.notFoundPanel\r\n{\r\n width:873px;\r\n}\r\n div.notFoundPanel h1\r\n {\r\n background:url(\"/images/reachStatsNew/bg_sideNav_h4.png\") no-repeat scroll left bottom transparent;\r\n height:40px;\r\n margin:0 0 10px;\r\n }\r\n div.notFoundPanel h1 strong\r\n {\r\n background:url(/images/reachStatsNew/sprite_sideNav_h4.png) no-repeat 0 -90px;\r\n display:block;\r\n float:left;\r\n height:15px;\r\n margin:12px 0 0 16px;\r\n overflow:hidden;\r\n text-indent:-9999px;\r\n width:100px;\r\n }\r\n\t\tdiv.notFoundPanel h1 span\r\n\t\t{\r\n\t\t\tbackground:url(\"/images/reachStatsNew/bg_gradientNav.png\") no-repeat scroll 0 0 transparent;\r\n\t\t\tdisplay:block;\r\n\t\t\theight:40px;\r\n\t\t\tposition:absolute;\r\n\t\t\tright:-39px;\r\n\t\t\ttop:-1px;\r\n\t\t\twidth:40px;\r\n\t\t}\r\n div.notFoundPanel div.sideBar{width:204px;float:left;position:relative;z-index:2;} \r\n div.notFoundPanel div.sideBar h4{background:url(/images/reachStatsNew/sprite_sideNav_h4.png) no-repeat 16px -105px;height:15px;text-indent:-99999px;overflow:hidden;margin:16px 0;}\r\n div.notFoundPanel div.sideBar div.glowBox{background:none;width:191px;}\r\n div.notFoundPanel div.sideBar ul{padding:0 16px;width:159px;margin-bottom:-9px;}\r\n div.notFoundPanel div.sideBar ul li{margin-bottom:25px;}\r\n div.notFoundPanel div.sideBar ul li a{font-size:13px;}\r\n div.notFoundPanel div.sideBar ul li p{font-size:11px;margin-bottom:0;color:#7b8185;line-height:13px;}\r\n .mainContentContainer div.notFoundPanel h2{z-index:1;}\r\n div.notFoundPanel div.recordNotLocated{background:url(/images/reachStatsNew/bg_recordNotLocated.png) no-repeat;position:absolute;bottom:0;left:-53px;width:545px;height:444px;}\r\n div.notFoundPanel div.errorState{padding:0 16px;}\r\n div.notFoundPanel div.errorState div.community_colA{float:right;width:283px;margin:0 0 100px 16px;}\r\n div.notFoundPanel div.errorState div.community_colA .boxB{margin:0;}\r\n div.notFoundPanel div.errorState p{font-size:13px;color:#e3e2e2;}\r\n\r\n/* file 4x3 */\r\nimg.fourbythree {\r\n\tpadding-left: 15px;\r\n\tpadding-right: 15px;\r\n\tbackground-color: #2A2A2A;\r\n\twidth: 180px !important;\r\n}\r\n\r\nul.fileGridList li img.fourbythree {\r\n\tpadding-left: 12px;\r\n\tpadding-right: 12px;\r\n\tbackground-color: #222630;\r\n\twidth: 180px !important;\r\n}" }, "redirectURL": "", "headersSize": 426, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.303Z", "time": 174.53300000488525, "timings": { "blocked": 149.40900000003447, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.9439999972325737, "receive": 24.18000000761822, "_blocked_queueing": 86.93700000003446 } }, { "_fromCache": "disk", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 28 }, "_priority": "VeryHigh", "_resourceType": "stylesheet", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/App_Themes/Main_Default/Main_Default.css", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 255, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Type", "value": "text/css" }, { "name": "Content-Length", "value": "36" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:47:52 GMT" }, { "name": "ETag", "value": "\"0d4d189bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "cf-request-id", "value": "0813ef15970000fd3a1aa32000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61cce79c2ee9fd3a-SYD" } ], "cookies": [], "content": { "size": 3, "mimeType": "text/css", "text": "" }, "redirectURL": "", "headersSize": 423, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.303Z", "time": 176.52199999429286, "timings": { "blocked": 149.47499999717996, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 1.0970000014668315, "receive": 25.949999995646067, "_blocked_queueing": 87.12199999717996 } }, { "_fromCache": "disk", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 29 }, "_priority": "VeryHigh", "_resourceType": "stylesheet", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/base_css/page_css/reachServiceRecord.css", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 255, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:26:41 GMT" }, { "name": "Content-Type", "value": "text/css" }, { "name": "Content-Length", "value": "829" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:47:54 GMT" }, { "name": "ETag", "value": "\"0138bbd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "cf-request-id", "value": "0813f8a87e000016e5e83e1000000001" }, { "name": "Server", "value": "cloudflare" }, { "name": "CF-RAY", "value": "61ccf6ed9b6516e5-SYD" } ], "cookies": [], "content": { "size": 2353, "mimeType": "text/css", "text": "div.careerStats\r\n{\r\n\tbackground:url(/images/reachStatsNew/bg_playerModelLines.png) no-repeat 33px 27px;\r\n\tposition:relative;\r\n\tfloat:left;\r\n\tmargin-bottom:7px;\r\n \t\t\r\n}\r\n\tdiv.careerStats .playerModel\r\n\t{\r\n\t\tposition:absolute;\r\n\t\tleft:18px;\r\n\t\ttop:-15px;\r\n\t}\r\n\tdiv.careerStats ul.alternatingList\r\n\t{\r\n\t\twidth:212px;\r\n\t\tpadding-top:13px;\r\n\t\tposition:relative;\r\n\t\tfloat:left;\r\n\t\tmargin:0 10px 22px 233px;\r\n\t}\r\n\t/* service record pie */\r\n\tdiv.careerStats div.bg_pieGraph\r\n\t{\r\n\t\tposition:absolute;\r\n\t\ttop:13px;\r\n\t\tright:14px;\r\n\t\twidth:200px;\r\n\t\theight:179px;\r\n\t\tborder:1px solid #404040;\t\t\t\r\n\t}\r\n\t\tdiv.careerStats div.bg_pieGraph img\r\n\t\t{\r\n\t\t\theight:138px;\r\n\t\t\tleft:32px;\r\n\t\t\tposition:absolute;\r\n\t\t\ttop:26px;\r\n\t\t\twidth:137px;\r\n\t\t}\r\n\t\r\n\t\tdiv.careerStats div.pieGraph\r\n\t\t{\r\n\t\t\twidth:135px;\r\n\t\t\theight:135px;\r\n\t\t\tmargin:28px auto 0;\t\r\n\t\t}\r\n\t\r\n\t\tdiv.careerStats div.bg_pieGraph ul.legend{bottom:-57px;width:202px;}\r\n\t\t\tdiv.careerStats div.bg_pieGraph ul.legend li{float:left;background:url(/images/reachStats/rule_transparent.png) repeat-x bottom;}\r\ndiv.commendations\r\n{\r\n\tbackground:url(/images/reachStatsNew/bg_commendationsBox.png) no-repeat 0 0;\r\n\twidth:421px;\r\n\tmargin-left:233px;\r\n\tmargin-bottom:18px;\r\n\tfloat:left;\r\n\tposition:relative;\r\n\tpadding:16px 0 10px;\r\n\tmin-height:41px;\r\n}\r\n\tdiv.commendations p.heading\r\n\t{\r\n\t\tcolor:#fff;\r\n\t\tfont-size:11px;\r\n\t\tleft:13px;\r\n\t\tposition:absolute;\r\n\t\ttext-align:right;\r\n\t\ttop:-8px;\r\n\t\twidth:387px;\r\n\t}\r\n\t\tdiv.commendations p.heading strong\r\n\t\t{\r\n\t\t\tfont-weight:normal;\r\n\t\t\tfont-size:11px;\r\n\t\t\tfloat:left;\t\t\r\n\t\t}\r\n \t\t\r\n\t\tdiv.commendations p.heading a\r\n\t\t{\r\n\t\t\tfont-size:11px;\r\n\t\t}\r\n\tdiv.commendations ul.images\r\n\t{\r\n\t\tmargin-bottom:0;\r\n\t\ttext-align:center;\r\n\t}\r\n\t\tdiv.commendations ul.images li\r\n\t\t{\r\n\t\t display:inline;\r\n\t\t position:relative;\r\n\t\t}\r\n\t\tdiv.commendations ul.images li:hover\r\n\t\t{\r\n\t\t \t\r\n\t\t}\r\n\t\t #jsDisabled div.commendations ul.images li:hover div.popOut\r\n\t\t {\r\n\t\t display:block;\r\n\t\t top:-170px;\r\n\t\t left:-250px;\r\n\t\t }\r\n\t\t \r\n\t\tdiv.commendations ul.images li\r\n\t\t{\r\n\t\t\tmargin-left:4px;\r\n\t\t}\r\n\t\t\tdiv.commendations ul.images li:first-child\r\n\t\t\t{\r\n\t\t\t\tmargin-left:0;\r\n\t\t\t}\r\n\t\t\tdiv.commendations ul.images li img.notier\r\n\t\t\t{\r\n\t\t\t opacity: 0.35;\r\n\t\t\t}\r\n\tdiv.topFiles{margin-bottom:0;} \r\n div.topFiles a.btn_more{text-transform:none;}" }, "redirectURL": "", "headersSize": 422, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.303Z", "time": 176.60199999954784, "timings": { "blocked": 150.65900000278373, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.2920000004768397, "receive": 25.650999996287283, "_blocked_queueing": 87.28900000278372 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 77 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "574", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/WebResource.axd?d=URQF-wbOnyt1QrnNYbTb4UqEY6daVGW8BiwqV5pV_Zv5OV2bVrFj_1cGVZg1&t=637109960437816177", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "d", "value": "URQF-wbOnyt1QrnNYbTb4UqEY6daVGW8BiwqV5pV_Zv5OV2bVrFj_1cGVZg1" }, { "name": "t", "value": "637109960437816177" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 05:54:27 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "DYNAMIC" }, { "name": "Last-Modified", "value": "Wed, 04 Dec 2019 02:54:03 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "X-AspNet-Version", "value": "4.0.30319" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "Content-Type", "value": "application/x-javascript" }, { "name": "Cache-Control", "value": "public" }, { "name": "Connection", "value": "keep-alive" }, { "name": "CF-RAY", "value": "61ca60793f91fd26-SYD" }, { "name": "Content-Length", "value": "4861" }, { "name": "cf-request-id", "value": "08125a9fc40000fd267488f000000001" }, { "name": "Expires", "value": "Wed, 02 Feb 2022 20:56:39 GMT" } ], "cookies": [], "content": { "size": 23063, "mimeType": "application/x-javascript", "text": "function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) {\r\n this.eventTarget = eventTarget;\r\n this.eventArgument = eventArgument;\r\n this.validation = validation;\r\n this.validationGroup = validationGroup;\r\n this.actionUrl = actionUrl;\r\n this.trackFocus = trackFocus;\r\n this.clientSubmit = clientSubmit;\r\n}\r\nfunction WebForm_DoPostBackWithOptions(options) {\r\n var validationResult = true;\r\n if (options.validation) {\r\n if (typeof(Page_ClientValidate) == 'function') {\r\n validationResult = Page_ClientValidate(options.validationGroup);\r\n }\r\n }\r\n if (validationResult) {\r\n if ((typeof(options.actionUrl) != \"undefined\") && (options.actionUrl != null) && (options.actionUrl.length > 0)) {\r\n theForm.action = options.actionUrl;\r\n }\r\n if (options.trackFocus) {\r\n var lastFocus = theForm.elements[\"__LASTFOCUS\"];\r\n if ((typeof(lastFocus) != \"undefined\") && (lastFocus != null)) {\r\n if (typeof(document.activeElement) == \"undefined\") {\r\n lastFocus.value = options.eventTarget;\r\n }\r\n else {\r\n var active = document.activeElement;\r\n if ((typeof(active) != \"undefined\") && (active != null)) {\r\n if ((typeof(active.id) != \"undefined\") && (active.id != null) && (active.id.length > 0)) {\r\n lastFocus.value = active.id;\r\n }\r\n else if (typeof(active.name) != \"undefined\") {\r\n lastFocus.value = active.name;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (options.clientSubmit) {\r\n __doPostBack(options.eventTarget, options.eventArgument);\r\n }\r\n}\r\nvar __pendingCallbacks = new Array();\r\nvar __synchronousCallBackIndex = -1;\r\nfunction WebForm_DoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) {\r\n var postData = __theFormPostData +\r\n \"__CALLBACKID=\" + WebForm_EncodeCallback(eventTarget) +\r\n \"&__CALLBACKPARAM=\" + WebForm_EncodeCallback(eventArgument);\r\n if (theForm[\"__EVENTVALIDATION\"]) {\r\n postData += \"&__EVENTVALIDATION=\" + WebForm_EncodeCallback(theForm[\"__EVENTVALIDATION\"].value);\r\n }\r\n var xmlRequest,e;\r\n try {\r\n xmlRequest = new XMLHttpRequest();\r\n }\r\n catch(e) {\r\n try {\r\n xmlRequest = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n }\r\n catch(e) {\r\n }\r\n }\r\n var setRequestHeaderMethodExists = true;\r\n try {\r\n setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);\r\n }\r\n catch(e) {}\r\n var callback = new Object();\r\n callback.eventCallback = eventCallback;\r\n callback.context = context;\r\n callback.errorCallback = errorCallback;\r\n callback.async = useAsync;\r\n var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);\r\n if (!useAsync) {\r\n if (__synchronousCallBackIndex != -1) {\r\n __pendingCallbacks[__synchronousCallBackIndex] = null;\r\n }\r\n __synchronousCallBackIndex = callbackIndex;\r\n }\r\n if (setRequestHeaderMethodExists) {\r\n xmlRequest.onreadystatechange = WebForm_CallbackComplete;\r\n callback.xmlRequest = xmlRequest;\r\n // e.g. http:\r\n var action = theForm.action || document.location.pathname, fragmentIndex = action.indexOf('#');\r\n if (fragmentIndex !== -1) {\r\n action = action.substr(0, fragmentIndex);\r\n }\r\n if (!__nonMSDOMBrowser) {\r\n var domain = \"\";\r\n var path = action;\r\n var query = \"\";\r\n var queryIndex = action.indexOf('?');\r\n if (queryIndex !== -1) {\r\n query = action.substr(queryIndex);\r\n path = action.substr(0, queryIndex);\r\n }\r\n if (path.indexOf(\"%\") === -1) {\r\n // domain may or may not be present (e.g. action of \"foo.aspx\" vs \"http:\r\n if (/^https?\\:\\/\\/.*$/gi.test(path)) {\r\n var domainPartIndex = path.indexOf(\"\\/\\/\") + 2;\r\n var slashAfterDomain = path.indexOf(\"/\", domainPartIndex);\r\n if (slashAfterDomain === -1) {\r\n // entire url is the domain (e.g. \"http:\r\n domain = path;\r\n path = \"\";\r\n }\r\n else {\r\n domain = path.substr(0, slashAfterDomain);\r\n path = path.substr(slashAfterDomain);\r\n }\r\n }\r\n action = domain + encodeURI(path) + query;\r\n }\r\n }\r\n xmlRequest.open(\"POST\", action, true);\r\n xmlRequest.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded; charset=utf-8\");\r\n xmlRequest.send(postData);\r\n return;\r\n }\r\n callback.xmlRequest = new Object();\r\n var callbackFrameID = \"__CALLBACKFRAME\" + callbackIndex;\r\n var xmlRequestFrame = document.frames[callbackFrameID];\r\n if (!xmlRequestFrame) {\r\n xmlRequestFrame = document.createElement(\"IFRAME\");\r\n xmlRequestFrame.width = \"1\";\r\n xmlRequestFrame.height = \"1\";\r\n xmlRequestFrame.frameBorder = \"0\";\r\n xmlRequestFrame.id = callbackFrameID;\r\n xmlRequestFrame.name = callbackFrameID;\r\n xmlRequestFrame.style.position = \"absolute\";\r\n xmlRequestFrame.style.top = \"-100px\"\r\n xmlRequestFrame.style.left = \"-100px\";\r\n try {\r\n if (callBackFrameUrl) {\r\n xmlRequestFrame.src = callBackFrameUrl;\r\n }\r\n }\r\n catch(e) {}\r\n document.body.appendChild(xmlRequestFrame);\r\n }\r\n var interval = window.setInterval(function() {\r\n xmlRequestFrame = document.frames[callbackFrameID];\r\n if (xmlRequestFrame && xmlRequestFrame.document) {\r\n window.clearInterval(interval);\r\n xmlRequestFrame.document.write(\"\");\r\n xmlRequestFrame.document.close();\r\n xmlRequestFrame.document.write('
');\r\n xmlRequestFrame.document.close();\r\n xmlRequestFrame.document.forms[0].action = theForm.action;\r\n var count = __theFormPostCollection.length;\r\n var element;\r\n for (var i = 0; i < count; i++) {\r\n element = __theFormPostCollection[i];\r\n if (element) {\r\n var fieldElement = xmlRequestFrame.document.createElement(\"INPUT\");\r\n fieldElement.type = \"hidden\";\r\n fieldElement.name = element.name;\r\n fieldElement.value = element.value;\r\n xmlRequestFrame.document.forms[0].appendChild(fieldElement);\r\n }\r\n }\r\n var callbackIdFieldElement = xmlRequestFrame.document.createElement(\"INPUT\");\r\n callbackIdFieldElement.type = \"hidden\";\r\n callbackIdFieldElement.name = \"__CALLBACKID\";\r\n callbackIdFieldElement.value = eventTarget;\r\n xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);\r\n var callbackParamFieldElement = xmlRequestFrame.document.createElement(\"INPUT\");\r\n callbackParamFieldElement.type = \"hidden\";\r\n callbackParamFieldElement.name = \"__CALLBACKPARAM\";\r\n callbackParamFieldElement.value = eventArgument;\r\n xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);\r\n if (theForm[\"__EVENTVALIDATION\"]) {\r\n var callbackValidationFieldElement = xmlRequestFrame.document.createElement(\"INPUT\");\r\n callbackValidationFieldElement.type = \"hidden\";\r\n callbackValidationFieldElement.name = \"__EVENTVALIDATION\";\r\n callbackValidationFieldElement.value = theForm[\"__EVENTVALIDATION\"].value;\r\n xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement);\r\n }\r\n var callbackIndexFieldElement = xmlRequestFrame.document.createElement(\"INPUT\");\r\n callbackIndexFieldElement.type = \"hidden\";\r\n callbackIndexFieldElement.name = \"__CALLBACKINDEX\";\r\n callbackIndexFieldElement.value = callbackIndex;\r\n xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);\r\n xmlRequestFrame.document.forms[0].submit();\r\n }\r\n }, 10);\r\n}\r\nfunction WebForm_CallbackComplete() {\r\n for (var i = 0; i < __pendingCallbacks.length; i++) {\r\n callbackObject = __pendingCallbacks[i];\r\n if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) {\r\n if (!__pendingCallbacks[i].async) {\r\n __synchronousCallBackIndex = -1;\r\n }\r\n __pendingCallbacks[i] = null;\r\n var callbackFrameID = \"__CALLBACKFRAME\" + i;\r\n var xmlRequestFrame = document.getElementById(callbackFrameID);\r\n if (xmlRequestFrame) {\r\n xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);\r\n }\r\n WebForm_ExecuteCallback(callbackObject);\r\n }\r\n }\r\n}\r\nfunction WebForm_ExecuteCallback(callbackObject) {\r\n var response = callbackObject.xmlRequest.responseText;\r\n if (response.charAt(0) == \"s\") {\r\n if ((typeof(callbackObject.eventCallback) != \"undefined\") && (callbackObject.eventCallback != null)) {\r\n callbackObject.eventCallback(response.substring(1), callbackObject.context);\r\n }\r\n }\r\n else if (response.charAt(0) == \"e\") {\r\n if ((typeof(callbackObject.errorCallback) != \"undefined\") && (callbackObject.errorCallback != null)) {\r\n callbackObject.errorCallback(response.substring(1), callbackObject.context);\r\n }\r\n }\r\n else {\r\n var separatorIndex = response.indexOf(\"|\");\r\n if (separatorIndex != -1) {\r\n var validationFieldLength = parseInt(response.substring(0, separatorIndex));\r\n if (!isNaN(validationFieldLength)) {\r\n var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1);\r\n if (validationField != \"\") {\r\n var validationFieldElement = theForm[\"__EVENTVALIDATION\"];\r\n if (!validationFieldElement) {\r\n validationFieldElement = document.createElement(\"INPUT\");\r\n validationFieldElement.type = \"hidden\";\r\n validationFieldElement.name = \"__EVENTVALIDATION\";\r\n theForm.appendChild(validationFieldElement);\r\n }\r\n validationFieldElement.value = validationField;\r\n }\r\n if ((typeof(callbackObject.eventCallback) != \"undefined\") && (callbackObject.eventCallback != null)) {\r\n callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1), callbackObject.context);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction WebForm_FillFirstAvailableSlot(array, element) {\r\n var i;\r\n for (i = 0; i < array.length; i++) {\r\n if (!array[i]) break;\r\n }\r\n array[i] = element;\r\n return i;\r\n}\r\nvar __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);\r\nvar __theFormPostData = \"\";\r\nvar __theFormPostCollection = new Array();\r\nvar __callbackTextTypes = /^(text|password|hidden|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i;\r\nfunction WebForm_InitCallback() {\r\n var formElements = theForm.elements,\r\n count = formElements.length,\r\n element;\r\n for (var i = 0; i < count; i++) {\r\n element = formElements[i];\r\n var tagName = element.tagName.toLowerCase();\r\n if (tagName == \"input\") {\r\n var type = element.type;\r\n if ((__callbackTextTypes.test(type) || ((type == \"checkbox\" || type == \"radio\") && element.checked))\r\n && (element.id != \"__EVENTVALIDATION\")) {\r\n WebForm_InitCallbackAddField(element.name, element.value);\r\n }\r\n }\r\n else if (tagName == \"select\") {\r\n var selectCount = element.options.length;\r\n for (var j = 0; j < selectCount; j++) {\r\n var selectChild = element.options[j];\r\n if (selectChild.selected == true) {\r\n WebForm_InitCallbackAddField(element.name, element.value);\r\n }\r\n }\r\n }\r\n else if (tagName == \"textarea\") {\r\n WebForm_InitCallbackAddField(element.name, element.value);\r\n }\r\n }\r\n}\r\nfunction WebForm_InitCallbackAddField(name, value) {\r\n var nameValue = new Object();\r\n nameValue.name = name;\r\n nameValue.value = value;\r\n __theFormPostCollection[__theFormPostCollection.length] = nameValue;\r\n __theFormPostData += WebForm_EncodeCallback(name) + \"=\" + WebForm_EncodeCallback(value) + \"&\";\r\n}\r\nfunction WebForm_EncodeCallback(parameter) {\r\n if (encodeURIComponent) {\r\n return encodeURIComponent(parameter);\r\n }\r\n else {\r\n return escape(parameter);\r\n }\r\n}\r\nvar __disabledControlArray = new Array();\r\nfunction WebForm_ReEnableControls() {\r\n if (typeof(__enabledControlArray) == 'undefined') {\r\n return false;\r\n }\r\n var disabledIndex = 0;\r\n for (var i = 0; i < __enabledControlArray.length; i++) {\r\n var c;\r\n if (__nonMSDOMBrowser) {\r\n c = document.getElementById(__enabledControlArray[i]);\r\n }\r\n else {\r\n c = document.all[__enabledControlArray[i]];\r\n }\r\n if ((typeof(c) != \"undefined\") && (c != null) && (c.disabled == true)) {\r\n c.disabled = false;\r\n __disabledControlArray[disabledIndex++] = c;\r\n }\r\n }\r\n setTimeout(\"WebForm_ReDisableControls()\", 0);\r\n return true;\r\n}\r\nfunction WebForm_ReDisableControls() {\r\n for (var i = 0; i < __disabledControlArray.length; i++) {\r\n __disabledControlArray[i].disabled = true;\r\n }\r\n}\r\nfunction WebForm_SimulateClick(element, event) {\r\n var clickEvent;\r\n if (element) {\r\n if (element.click) {\r\n element.click();\r\n } else { \r\n clickEvent = document.createEvent(\"MouseEvents\");\r\n clickEvent.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n if (!element.dispatchEvent(clickEvent)) {\r\n return true;\r\n }\r\n }\r\n event.cancelBubble = true;\r\n if (event.stopPropagation) {\r\n event.stopPropagation();\r\n }\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction WebForm_FireDefaultButton(event, target) {\r\n if (event.keyCode == 13) {\r\n var src = event.srcElement || event.target;\r\n if (src &&\r\n ((src.tagName.toLowerCase() == \"input\") &&\r\n (src.type.toLowerCase() == \"submit\" || src.type.toLowerCase() == \"button\")) ||\r\n ((src.tagName.toLowerCase() == \"a\") &&\r\n (src.href != null) && (src.href != \"\")) ||\r\n (src.tagName.toLowerCase() == \"textarea\")) {\r\n return true;\r\n }\r\n var defaultButton;\r\n if (__nonMSDOMBrowser) {\r\n defaultButton = document.getElementById(target);\r\n }\r\n else {\r\n defaultButton = document.all[target];\r\n }\r\n if (defaultButton) {\r\n return WebForm_SimulateClick(defaultButton, event);\r\n } \r\n }\r\n return true;\r\n}\r\nfunction WebForm_GetScrollX() {\r\n if (__nonMSDOMBrowser) {\r\n return window.pageXOffset;\r\n }\r\n else {\r\n if (document.documentElement && document.documentElement.scrollLeft) {\r\n return document.documentElement.scrollLeft;\r\n }\r\n else if (document.body) {\r\n return document.body.scrollLeft;\r\n }\r\n }\r\n return 0;\r\n}\r\nfunction WebForm_GetScrollY() {\r\n if (__nonMSDOMBrowser) {\r\n return window.pageYOffset;\r\n }\r\n else {\r\n if (document.documentElement && document.documentElement.scrollTop) {\r\n return document.documentElement.scrollTop;\r\n }\r\n else if (document.body) {\r\n return document.body.scrollTop;\r\n }\r\n }\r\n return 0;\r\n}\r\nfunction WebForm_SaveScrollPositionSubmit() {\r\n if (__nonMSDOMBrowser) {\r\n theForm.elements['__SCROLLPOSITIONY'].value = window.pageYOffset;\r\n theForm.elements['__SCROLLPOSITIONX'].value = window.pageXOffset;\r\n }\r\n else {\r\n theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();\r\n theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();\r\n }\r\n if ((typeof(this.oldSubmit) != \"undefined\") && (this.oldSubmit != null)) {\r\n return this.oldSubmit();\r\n }\r\n return true;\r\n}\r\nfunction WebForm_SaveScrollPositionOnSubmit() {\r\n theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();\r\n theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();\r\n if ((typeof(this.oldOnSubmit) != \"undefined\") && (this.oldOnSubmit != null)) {\r\n return this.oldOnSubmit();\r\n }\r\n return true;\r\n}\r\nfunction WebForm_RestoreScrollPosition() {\r\n if (__nonMSDOMBrowser) {\r\n window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value);\r\n }\r\n else {\r\n window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value);\r\n }\r\n if ((typeof(theForm.oldOnLoad) != \"undefined\") && (theForm.oldOnLoad != null)) {\r\n return theForm.oldOnLoad();\r\n }\r\n return true;\r\n}\r\nfunction WebForm_TextBoxKeyHandler(event) {\r\n if (event.keyCode == 13) {\r\n var target;\r\n if (__nonMSDOMBrowser) {\r\n target = event.target;\r\n }\r\n else {\r\n target = event.srcElement;\r\n }\r\n if ((typeof(target) != \"undefined\") && (target != null)) {\r\n if (typeof(target.onchange) != \"undefined\") {\r\n target.onchange();\r\n event.cancelBubble = true;\r\n if (event.stopPropagation) event.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\nfunction WebForm_TrimString(value) {\r\n return value.replace(/^\\s+|\\s+$/g, '')\r\n}\r\nfunction WebForm_AppendToClassName(element, className) {\r\n var currentClassName = ' ' + WebForm_TrimString(element.className) + ' ';\r\n className = WebForm_TrimString(className);\r\n var index = currentClassName.indexOf(' ' + className + ' ');\r\n if (index === -1) {\r\n element.className = (element.className === '') ? className : element.className + ' ' + className;\r\n }\r\n}\r\nfunction WebForm_RemoveClassName(element, className) {\r\n var currentClassName = ' ' + WebForm_TrimString(element.className) + ' ';\r\n className = WebForm_TrimString(className);\r\n var index = currentClassName.indexOf(' ' + className + ' ');\r\n if (index >= 0) {\r\n element.className = WebForm_TrimString(currentClassName.substring(0, index) + ' ' +\r\n currentClassName.substring(index + className.length + 1, currentClassName.length));\r\n }\r\n}\r\nfunction WebForm_GetElementById(elementId) {\r\n if (document.getElementById) {\r\n return document.getElementById(elementId);\r\n }\r\n else if (document.all) {\r\n return document.all[elementId];\r\n }\r\n else return null;\r\n}\r\nfunction WebForm_GetElementByTagName(element, tagName) {\r\n var elements = WebForm_GetElementsByTagName(element, tagName);\r\n if (elements && elements.length > 0) {\r\n return elements[0];\r\n }\r\n else return null;\r\n}\r\nfunction WebForm_GetElementsByTagName(element, tagName) {\r\n if (element && tagName) {\r\n if (element.getElementsByTagName) {\r\n return element.getElementsByTagName(tagName);\r\n }\r\n if (element.all && element.all.tags) {\r\n return element.all.tags(tagName);\r\n }\r\n }\r\n return null;\r\n}\r\nfunction WebForm_GetElementDir(element) {\r\n if (element) {\r\n if (element.dir) {\r\n return element.dir;\r\n }\r\n return WebForm_GetElementDir(element.parentNode);\r\n }\r\n return \"ltr\";\r\n}\r\nfunction WebForm_GetElementPosition(element) {\r\n var result = new Object();\r\n result.x = 0;\r\n result.y = 0;\r\n result.width = 0;\r\n result.height = 0;\r\n if (element.offsetParent) {\r\n result.x = element.offsetLeft;\r\n result.y = element.offsetTop;\r\n var parent = element.offsetParent;\r\n while (parent) {\r\n result.x += parent.offsetLeft;\r\n result.y += parent.offsetTop;\r\n var parentTagName = parent.tagName.toLowerCase();\r\n if (parentTagName != \"table\" &&\r\n parentTagName != \"body\" && \r\n parentTagName != \"html\" && \r\n parentTagName != \"div\" && \r\n parent.clientTop && \r\n parent.clientLeft) {\r\n result.x += parent.clientLeft;\r\n result.y += parent.clientTop;\r\n }\r\n parent = parent.offsetParent;\r\n }\r\n }\r\n else if (element.left && element.top) {\r\n result.x = element.left;\r\n result.y = element.top;\r\n }\r\n else {\r\n if (element.x) {\r\n result.x = element.x;\r\n }\r\n if (element.y) {\r\n result.y = element.y;\r\n }\r\n }\r\n if (element.offsetWidth && element.offsetHeight) {\r\n result.width = element.offsetWidth;\r\n result.height = element.offsetHeight;\r\n }\r\n else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {\r\n result.width = element.style.pixelWidth;\r\n result.height = element.style.pixelHeight;\r\n }\r\n return result;\r\n}\r\nfunction WebForm_GetParentByTagName(element, tagName) {\r\n var parent = element.parentNode;\r\n var upperTagName = tagName.toUpperCase();\r\n while (parent && (parent.tagName.toUpperCase() != upperTagName)) {\r\n parent = parent.parentNode ? parent.parentNode : parent.parentElement;\r\n }\r\n return parent;\r\n}\r\nfunction WebForm_SetElementHeight(element, height) {\r\n if (element && element.style) {\r\n element.style.height = height + \"px\";\r\n }\r\n}\r\nfunction WebForm_SetElementWidth(element, width) {\r\n if (element && element.style) {\r\n element.style.width = width + \"px\";\r\n }\r\n}\r\nfunction WebForm_SetElementX(element, x) {\r\n if (element && element.style) {\r\n element.style.left = x + \"px\";\r\n }\r\n}\r\nfunction WebForm_SetElementY(element, y) {\r\n if (element && element.style) {\r\n element.style.top = y + \"px\";\r\n }\r\n}" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.303Z", "time": 0.19999999494757503, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.16899999900488183, "receive": 0.030999995942693204, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 80 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "1639", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/ScriptResource.axd?d=BD1fNaFYBu6fJO7O6Slk6iCsoQCy7b0DkdxMl-1SkUVN1_XCHCDHtJfuyFQpNTRbfP5s1VYQWdtHL_-q6wAtQouHM6butC3bwmoKocP0G2xsVY7nn32-Nf8r-V3vkENG63tykw2&t=ffffffffe6d5a9ac", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "d", "value": "BD1fNaFYBu6fJO7O6Slk6iCsoQCy7b0DkdxMl-1SkUVN1_XCHCDHtJfuyFQpNTRbfP5s1VYQWdtHL_-q6wAtQouHM6butC3bwmoKocP0G2xsVY7nn32-Nf8r-V3vkENG63tykw2" }, { "name": "t", "value": "ffffffffe6d5a9ac" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 05:54:27 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "DYNAMIC" }, { "name": "Last-Modified", "value": "Tue, 02 Feb 2021 21:00:58 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "X-AspNet-Version", "value": "4.0.30319" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Content-Type", "value": "application/x-javascript" }, { "name": "Cache-Control", "value": "public" }, { "name": "Connection", "value": "keep-alive" }, { "name": "CF-RAY", "value": "61ca607ab8befd56-SYD" }, { "name": "Content-Length", "value": "25609" }, { "name": "cf-request-id", "value": "08125aa0b70000fd56973b3000000001" }, { "name": "Expires", "value": "Wed, 02 Feb 2022 21:00:58 GMT" } ], "cookies": [], "content": { "size": 102804, "mimeType": "application/x-javascript", "text": "//----------------------------------------------------------\r\n// Copyright (C) Microsoft Corporation. All rights reserved.\r\n//----------------------------------------------------------\r\n// MicrosoftAjax.js\r\nFunction.__typeName=\"Function\";Function.__class=true;Function.createCallback=function(b,a){return function(){var e=arguments.length;if(e>0){var d=[];for(var c=0;c=d)break;a=Function._validateParameter(g[b],f,h);if(a){a.popStackFrame();return a}}return null};Function._validateParameterCount=function(j,d,i){var a,c,b=d.length,e=j.length;if(eb){c=true;for(a=0;a0&&(d=0};Array.dequeue=function(a){return a.shift()};Array.forEach=function(b,e,d){for(var a=0,f=b.length;a=0)b.splice(a,1);return a>=0};Array.removeAt=function(a,b){a.splice(b,1)};Sys._indexOf=function(d,e,a){if(typeof e===\"undefined\")return -1;var c=d.length;if(c!==0){a=a-0;if(isNaN(a))a=0;else{if(isFinite(a))a=a-a%1;if(a<0)a=Math.max(0,c+a)}for(var b=a;b-1){Sys.Browser.agent=Sys.Browser.InternetExplorer;Sys.Browser.version=parseFloat(navigator.userAgent.match(/MSIE (\\d+\\.\\d+)/)[1]);if(Sys.Browser.version>=8)if(document.documentMode>=7)Sys.Browser.documentMode=document.documentMode;Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(\" Firefox/\")>-1){Sys.Browser.agent=Sys.Browser.Firefox;Sys.Browser.version=parseFloat(navigator.userAgent.match(/Firefox\\/(\\d+\\.\\d+)/)[1]);Sys.Browser.name=\"Firefox\";Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(\" AppleWebKit/\")>-1){Sys.Browser.agent=Sys.Browser.Safari;Sys.Browser.version=parseFloat(navigator.userAgent.match(/AppleWebKit\\/(\\d+(\\.\\d+)?)/)[1]);Sys.Browser.name=\"Safari\"}else if(navigator.userAgent.indexOf(\"Opera/\")>-1)Sys.Browser.agent=Sys.Browser.Opera;Sys.EventArgs=function(){};Sys.EventArgs.registerClass(\"Sys.EventArgs\");Sys.EventArgs.Empty=new Sys.EventArgs;Sys.CancelEventArgs=function(){Sys.CancelEventArgs.initializeBase(this);this._cancel=false};Sys.CancelEventArgs.prototype={get_cancel:function(){return this._cancel},set_cancel:function(a){this._cancel=a}};Sys.CancelEventArgs.registerClass(\"Sys.CancelEventArgs\",Sys.EventArgs);Type.registerNamespace(\"Sys.UI\");Sys._Debug=function(){};Sys._Debug.prototype={_appendConsole:function(a){if(typeof Debug!==\"undefined\"&&Debug.writeln)Debug.writeln(a);if(window.console&&window.console.log)window.console.log(a);if(window.opera)window.opera.postError(a);if(window.debugService)window.debugService.trace(a)},_appendTrace:function(b){var a=document.getElementById(\"TraceConsole\");if(a&&a.tagName.toUpperCase()===\"TEXTAREA\")a.value+=b+\"\\n\"},assert:function(c,a,b){if(!c){a=b&&this.assert.caller?String.format(Sys.Res.assertFailedCaller,a,this.assert.caller):String.format(Sys.Res.assertFailed,a);if(confirm(String.format(Sys.Res.breakIntoDebugger,a)))this.fail(a)}},clearTrace:function(){var a=document.getElementById(\"TraceConsole\");if(a&&a.tagName.toUpperCase()===\"TEXTAREA\")a.value=\"\"},fail:function(message){this._appendConsole(message);if(Sys.Browser.hasDebuggerStatement)eval(\"debugger\")},trace:function(a){this._appendConsole(a);this._appendTrace(a)},traceDump:function(a,b){var c=this._traceDump(a,b,true)},_traceDump:function(a,c,f,b,d){c=c?c:\"traceDump\";b=b?b:\"\";if(a===null){this.trace(b+c+\": null\");return}switch(typeof a){case \"undefined\":this.trace(b+c+\": Undefined\");break;case \"number\":case \"string\":case \"boolean\":this.trace(b+c+\": \"+a);break;default:if(Date.isInstanceOfType(a)||RegExp.isInstanceOfType(a)){this.trace(b+c+\": \"+a.toString());break}if(!d)d=[];else if(Array.contains(d,a)){this.trace(b+c+\": ...\");return}Array.add(d,a);if(a==window||a===document||window.HTMLElement&&a instanceof HTMLElement||typeof a.nodeName===\"string\"){var k=a.tagName?a.tagName:\"DomElement\";if(a.id)k+=\" - \"+a.id;this.trace(b+c+\" {\"+k+\"}\")}else{var i=Object.getTypeName(a);this.trace(b+c+(typeof i===\"string\"?\" {\"+i+\"}\":\"\"));if(b===\"\"||f){b+=\" \";var e,j,l,g,h;if(Array.isInstanceOfType(a)){j=a.length;for(e=0;e=0;d--){var k=h[d].trim();b=a[k];if(typeof b!==\"number\")throw Error.argument(\"value\",String.format(Sys.Res.enumInvalidValue,c.split(\",\")[d].trim(),this.__typeName));j|=b}return j}}function Sys$Enum$toString(c){if(typeof c===\"undefined\"||c===null)return this.__string;var d=this.prototype,a;if(!this.__flags||c===0){for(a in d)if(d[a]===c)return a}else{var b=this.__sortedValues;if(!b){b=[];for(a in d)b[b.length]={key:a,value:d[a]};b.sort(function(a,b){return a.value-b.value});this.__sortedValues=b}var e=[],g=c;for(a=b.length-1;a>=0;a--){var h=b[a],f=h.value;if(f===0)continue;if((f&c)===f){e[e.length]=h.key;g-=f;if(g===0)break}}if(e.length&&g===0)return e.reverse().join(\", \")}return \"\"}Type.prototype.registerEnum=function(b,c){Sys.__upperCaseTypes[b.toUpperCase()]=this;for(var a in this.prototype)this[a]=this.prototype[a];this.__typeName=b;this.parse=Sys$Enum$parse;this.__string=this.toString();this.toString=Sys$Enum$toString;this.__flags=c;this.__enum=true};Type.isEnum=function(a){if(typeof a===\"undefined\"||a===null)return false;return !!a.__enum};Type.isFlags=function(a){if(typeof a===\"undefined\"||a===null)return false;return !!a.__flags};Sys.CollectionChange=function(e,a,c,b,d){this.action=e;if(a)if(!(a instanceof Array))a=[a];this.newItems=a||null;if(typeof c!==\"number\")c=-1;this.newStartingIndex=c;if(b)if(!(b instanceof Array))b=[b];this.oldItems=b||null;if(typeof d!==\"number\")d=-1;this.oldStartingIndex=d};Sys.CollectionChange.registerClass(\"Sys.CollectionChange\");Sys.NotifyCollectionChangedAction=function(){throw Error.notImplemented()};Sys.NotifyCollectionChangedAction.prototype={add:0,remove:1,reset:2};Sys.NotifyCollectionChangedAction.registerEnum(\"Sys.NotifyCollectionChangedAction\");Sys.NotifyCollectionChangedEventArgs=function(a){this._changes=a;Sys.NotifyCollectionChangedEventArgs.initializeBase(this)};Sys.NotifyCollectionChangedEventArgs.prototype={get_changes:function(){return this._changes||[]}};Sys.NotifyCollectionChangedEventArgs.registerClass(\"Sys.NotifyCollectionChangedEventArgs\",Sys.EventArgs);Sys.Observer=function(){};Sys.Observer.registerClass(\"Sys.Observer\");Sys.Observer.makeObservable=function(a){var c=a instanceof Array,b=Sys.Observer;if(a.setValue===b._observeMethods.setValue)return a;b._addMethods(a,b._observeMethods);if(c)b._addMethods(a,b._arrayMethods);return a};Sys.Observer._addMethods=function(c,b){for(var a in b)c[a]=b[a]};Sys.Observer._addEventHandler=function(c,a,b){Sys.Observer._getContext(c,true).events._addHandler(a,b)};Sys.Observer.addEventHandler=function(c,a,b){Sys.Observer._addEventHandler(c,a,b)};Sys.Observer._removeEventHandler=function(c,a,b){Sys.Observer._getContext(c,true).events._removeHandler(a,b)};Sys.Observer.removeEventHandler=function(c,a,b){Sys.Observer._removeEventHandler(c,a,b)};Sys.Observer.raiseEvent=function(b,e,d){var c=Sys.Observer._getContext(b);if(!c)return;var a=c.events.getHandler(e);if(a)a(b,d)};Sys.Observer.addPropertyChanged=function(b,a){Sys.Observer._addEventHandler(b,\"propertyChanged\",a)};Sys.Observer.removePropertyChanged=function(b,a){Sys.Observer._removeEventHandler(b,\"propertyChanged\",a)};Sys.Observer.beginUpdate=function(a){Sys.Observer._getContext(a,true).updating=true};Sys.Observer.endUpdate=function(b){var a=Sys.Observer._getContext(b);if(!a||!a.updating)return;a.updating=false;var d=a.dirty;a.dirty=false;if(d){if(b instanceof Array){var c=a.changes;a.changes=null;Sys.Observer.raiseCollectionChanged(b,c)}Sys.Observer.raisePropertyChanged(b,\"\")}};Sys.Observer.isUpdating=function(b){var a=Sys.Observer._getContext(b);return a?a.updating:false};Sys.Observer._setValue=function(a,j,g){var b,f,k=a,d=j.split(\".\");for(var i=0,m=d.length-1;i-1&&ac.Calendar.TwoDigitYearMax)a-=100}return a};Date._getEra=function(e,c){if(!c)return 0;var b,d=e.getTime();for(var a=0,f=c.length;a=b)return a}return 0};Date._getEraYear=function(d,b,e,c){var a=d.getFullYear();if(!c&&b.eras)a-=b.eras[e+3];return a};Date._getParseRegExp=function(b,e){if(!b._parseRegExp)b._parseRegExp={};else if(b._parseRegExp[e])return b._parseRegExp[e];var c=Date._expandFormat(b,e);c=c.replace(/([\\^\\$\\.\\*\\+\\?\\|\\[\\]\\(\\)\\{\\}])/g,\"\\\\\\\\$1\");var a=new Sys.StringBuilder(\"^\"),j=[],f=0,i=0,h=Date._getTokenRegExp(),d;while((d=h.exec(c))!==null){var l=c.slice(f,d.index);f=h.lastIndex;i+=Date._appendPreOrPostMatch(l,a);if(i%2===1){a.append(d[0]);continue}switch(d[0]){case \"dddd\":case \"ddd\":case \"MMMM\":case \"MMM\":case \"gg\":case \"g\":a.append(\"(\\\\D+)\");break;case \"tt\":case \"t\":a.append(\"(\\\\D*)\");break;case \"yyyy\":a.append(\"(\\\\d{4})\");break;case \"fff\":a.append(\"(\\\\d{3})\");break;case \"ff\":a.append(\"(\\\\d{2})\");break;case \"f\":a.append(\"(\\\\d)\");break;case \"dd\":case \"d\":case \"MM\":case \"M\":case \"yy\":case \"y\":case \"HH\":case \"H\":case \"hh\":case \"h\":case \"mm\":case \"m\":case \"ss\":case \"s\":a.append(\"(\\\\d\\\\d?)\");break;case \"zzz\":a.append(\"([+-]?\\\\d\\\\d?:\\\\d{2})\");break;case \"zz\":case \"z\":a.append(\"([+-]?\\\\d\\\\d?)\");break;case \"/\":a.append(\"(\\\\\"+b.DateSeparator+\")\")}Array.add(j,d[0])}Date._appendPreOrPostMatch(c.slice(f),a);a.append(\"$\");var k=a.toString().replace(/\\s+/g,\"\\\\s+\"),g={\"regExp\":k,\"groups\":j};b._parseRegExp[e]=g;return g};Date._getTokenRegExp=function(){return /\\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g};Date.parseLocale=function(a){return Date._parse(a,Sys.CultureInfo.CurrentCulture,arguments)};Date.parseInvariant=function(a){return Date._parse(a,Sys.CultureInfo.InvariantCulture,arguments)};Date._parse=function(h,d,i){var a,c,b,f,e,g=false;for(a=1,c=i.length;a31)return null;break;case \"MMMM\":c=k._getMonthIndex(a);if(c<0||c>11)return null;break;case \"MMM\":c=k._getAbbrMonthIndex(a);if(c<0||c>11)return null;break;case \"M\":case \"MM\":c=parseInt(a,10)-1;if(c<0||c>11)return null;break;case \"y\":case \"yy\":e=Date._expandYear(g,parseInt(a,10));if(e<0||e>9999)return null;break;case \"yyyy\":e=parseInt(a,10);if(e<0||e>9999)return null;break;case \"h\":case \"hh\":d=parseInt(a,10);if(d===12)d=0;if(d<0||d>11)return null;break;case \"H\":case \"HH\":d=parseInt(a,10);if(d<0||d>23)return null;break;case \"m\":case \"mm\":p=parseInt(a,10);if(p<0||p>59)return null;break;case \"s\":case \"ss\":q=parseInt(a,10);if(q<0||q>59)return null;break;case \"tt\":case \"t\":var z=a.toUpperCase();v=z===g.PMDesignator.toUpperCase();if(!v&&z!==g.AMDesignator.toUpperCase())return null;break;case \"f\":f=parseInt(a,10)*100;if(f<0||f>999)return null;break;case \"ff\":f=parseInt(a,10)*10;if(f<0||f>999)return null;break;case \"fff\":f=parseInt(a,10);if(f<0||f>999)return null;break;case \"dddd\":i=k._getDayIndex(a);if(i<0||i>6)return null;break;case \"ddd\":i=k._getAbbrDayIndex(a);if(i<0||i>6)return null;break;case \"zzz\":var u=a.split(/:/);if(u.length!==2)return null;h=parseInt(u[0],10);if(h<-12||h>13)return null;var m=parseInt(u[1],10);if(m<0||m>59)return null;l=h*60+(a.startsWith(\"-\")?-m:m);break;case \"z\":case \"zz\":h=parseInt(a,10);if(h<-12||h>13)return null;l=h*60;break;case \"g\":case \"gg\":var o=a;if(!o||!g.eras)return null;o=o.toLowerCase().trim();for(var r=0,F=g.eras.length;r0)return this.toLocaleString();else return this.toString();var o=[\"n %\",\"n%\",\"%n\"],n=[\"-n %\",\"-n%\",\"-%n\"],p=[\"(n)\",\"-n\",\"- n\",\"n-\",\"n -\"],m=[\"$n\",\"n$\",\"$ n\",\"n $\"],l=[\"($n)\",\"-$n\",\"$-n\",\"$n-\",\"(n$)\",\"-n$\",\"n-$\",\"n$-\",\"-n $\",\"-$ n\",\"n $-\",\"$ n-\",\"$ -n\",\"n- $\",\"($ n)\",\"(n $)\"];function g(a,c,d){for(var b=a.length;b1?parseInt(e[1]):0;e=b.split(\".\");b=e[0];a=e.length>1?e[1]:\"\";var q;if(c>0){a=g(a,c,false);b+=a.slice(0,c);a=a.substr(c)}else if(c<0){c=-c;b=g(b,c+1,true);a=b.slice(-c,b.length)+a;b=b.slice(0,-c)}if(i>0){if(a.length>i)a=a.slice(0,i);else a=g(a,i,false);a=p+a}else a=\"\";var d=b.length-1,f=\"\";while(d>=0){if(h===0||h>d)if(f.length>0)return b.slice(0,d+1)+n+f+a;else return b.slice(0,d+1)+a;if(f.length>0)f=b.slice(d-h+1,d+1)+n+f;else f=b.slice(d-h+1,d+1);d-=h;if(k1)b=parseInt(e.slice(1),10);var c;switch(e.charAt(0)){case \"d\":case \"D\":c=\"n\";if(b!==-1)d=g(\"\"+d,b,true);if(this<0)d=-d;break;case \"c\":case \"C\":if(this<0)c=l[a.CurrencyNegativePattern];else c=m[a.CurrencyPositivePattern];if(b===-1)b=a.CurrencyDecimalDigits;d=i(Math.abs(this),b,a.CurrencyGroupSizes,a.CurrencyGroupSeparator,a.CurrencyDecimalSeparator);break;case \"n\":case \"N\":if(this<0)c=p[a.NumberNegativePattern];else c=\"n\";if(b===-1)b=a.NumberDecimalDigits;d=i(Math.abs(this),b,a.NumberGroupSizes,a.NumberGroupSeparator,a.NumberDecimalSeparator);break;case \"p\":case \"P\":if(this<0)c=n[a.PercentNegativePattern];else c=o[a.PercentPositivePattern];if(b===-1)b=a.PercentDecimalDigits;d=i(Math.abs(this)*100,b,a.PercentGroupSizes,a.PercentGroupSeparator,a.PercentDecimalSeparator);break;default:throw Error.format(Sys.Res.formatBadFormatSpecifier)}var k=/n|\\$|-|%/g,f=\"\";for(;true;){var q=k.lastIndex,h=k.exec(c);f+=c.slice(q,h?h.index:c.length);if(!h)break;switch(h[0]){case \"n\":f+=d;break;case \"$\":f+=a.CurrencySymbol;break;case \"-\":if(/[1-9]/.test(d))f+=a.NegativeSign;break;case \"%\":f+=a.PercentSymbol}}return f};Sys.CultureInfo=function(c,b,a){this.name=c;this.numberFormat=b;this.dateTimeFormat=a};Sys.CultureInfo.prototype={_getDateTimeFormats:function(){if(!this._dateTimeFormats){var a=this.dateTimeFormat;this._dateTimeFormats=[a.MonthDayPattern,a.YearMonthPattern,a.ShortDatePattern,a.ShortTimePattern,a.LongDatePattern,a.LongTimePattern,a.FullDateTimePattern,a.RFC1123Pattern,a.SortableDateTimePattern,a.UniversalSortableDateTimePattern]}return this._dateTimeFormats},_getIndex:function(c,d,e){var b=this._toUpper(c),a=Array.indexOf(d,b);if(a===-1)a=Array.indexOf(e,b);return a},_getMonthIndex:function(a){if(!this._upperMonths){this._upperMonths=this._toUpperArray(this.dateTimeFormat.MonthNames);this._upperMonthsGenitive=this._toUpperArray(this.dateTimeFormat.MonthGenitiveNames)}return this._getIndex(a,this._upperMonths,this._upperMonthsGenitive)},_getAbbrMonthIndex:function(a){if(!this._upperAbbrMonths){this._upperAbbrMonths=this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);this._upperAbbrMonthsGenitive=this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthGenitiveNames)}return this._getIndex(a,this._upperAbbrMonths,this._upperAbbrMonthsGenitive)},_getDayIndex:function(a){if(!this._upperDays)this._upperDays=this._toUpperArray(this.dateTimeFormat.DayNames);return Array.indexOf(this._upperDays,this._toUpper(a))},_getAbbrDayIndex:function(a){if(!this._upperAbbrDays)this._upperAbbrDays=this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);return Array.indexOf(this._upperAbbrDays,this._toUpper(a))},_toUpperArray:function(c){var b=[];for(var a=0,d=c.length;a0)a.append(\",\");Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(b[c],a,false,g)}a.append(\"]\")}else{if(Date.isInstanceOfType(b)){a.append('\"\\\\/Date(');a.append(b.getTime());a.append(')\\\\/\"');break}var d=[],f=0;for(var e in b){if(e.startsWith(\"$\"))continue;if(e===Sys.Serialization.JavaScriptSerializer._serverTypeFieldName&&f!==0){d[f++]=d[0];d[0]=e}else d[f++]=e}if(i)d.sort();a.append(\"{\");var j=false;for(c=0;c=0;c--){var f=d[c];if(!g||f.autoRemove)$removeHandler(a,b,f.handler)}}a._events=null}};Sys.UI.DomEvent._disposeHandlers=function(){Sys.UI.DomEvent._clearHandlers(this,true);var b=this._chainDispose,a=typeof b;if(a!==\"undefined\"){this.dispose=b;this._chainDispose=null;if(a===\"function\")this.dispose()}};var $removeHandler=Sys.UI.DomEvent.removeHandler=function(b,a,c){Sys.UI.DomEvent._removeHandler(b,a,c)};Sys.UI.DomEvent._removeHandler=function(a,e,f){var d=null,c=a._events[e];for(var b=0,g=c.length;b=3){d+=parseInt(b.borderLeftWidth);e+=parseInt(b.borderTopWidth)}}b=Sys.UI.DomElement._getCurrentStyle(c);var h=b?b.position:null;if(!h||h!==\"absolute\")for(a=c.parentNode;a;a=a.parentNode){f=a.tagName?a.tagName.toUpperCase():null;if(f!==\"BODY\"&&f!==\"HTML\"&&(a.scrollLeft||a.scrollTop)){d-=a.scrollLeft||0;e-=a.scrollTop||0}b=Sys.UI.DomElement._getCurrentStyle(a);var i=b?b.position:null;if(i&&i===\"absolute\")break}return new Sys.UI.Point(d,e)};else Sys.UI.DomElement.getLocation=function(d){if(d.window&&d.window===d||d.nodeType===9)return new Sys.UI.Point(0,0);var e=0,f=0,a,i=null,g=null,b=null;for(a=d;a;i=a,(g=b,a=a.offsetParent)){var c=a.tagName?a.tagName.toUpperCase():null;b=Sys.UI.DomElement._getCurrentStyle(a);if((a.offsetLeft||a.offsetTop)&&!(c===\"BODY\"&&(!g||g.position!==\"absolute\"))){e+=a.offsetLeft;f+=a.offsetTop}if(i!==null&&b){if(c!==\"TABLE\"&&c!==\"TD\"&&c!==\"HTML\"){e+=parseInt(b.borderLeftWidth)||0;f+=parseInt(b.borderTopWidth)||0}if(c===\"TABLE\"&&(b.position===\"relative\"||b.position===\"absolute\")){e+=parseInt(b.marginLeft)||0;f+=parseInt(b.marginTop)||0}}}b=Sys.UI.DomElement._getCurrentStyle(d);var h=b?b.position:null;if(!h||h!==\"absolute\")for(a=d.parentNode;a;a=a.parentNode){c=a.tagName?a.tagName.toUpperCase():null;if(c!==\"BODY\"&&c!==\"HTML\"&&(a.scrollLeft||a.scrollTop)){e-=a.scrollLeft||0;f-=a.scrollTop||0;b=Sys.UI.DomElement._getCurrentStyle(a);if(b){e+=parseInt(b.borderLeftWidth)||0;f+=parseInt(b.borderTopWidth)||0}}}return new Sys.UI.Point(e,f)};Sys.UI.DomElement.isDomElement=function(a){return Sys._isDomElement(a)};Sys.UI.DomElement.removeCssClass=function(d,c){var a=\" \"+d.className+\" \",b=a.indexOf(\" \"+c+\" \");if(b>=0)d.className=(a.substr(0,b)+\" \"+a.substring(b+c.length+1,a.length)).trim()};Sys.UI.DomElement.resolveElement=function(b,c){var a=b;if(!a)return null;if(typeof a===\"string\")a=Sys.UI.DomElement.getElementById(a,c);return a};Sys.UI.DomElement.raiseBubbleEvent=function(c,d){var b=c;while(b){var a=b.control;if(a&&a.onBubbleEvent&&a.raiseBubbleEvent){Sys.UI.DomElement._raiseBubbleEventFromControl(a,c,d);return}b=b.parentNode}};Sys.UI.DomElement._raiseBubbleEventFromControl=function(a,b,c){if(!a.onBubbleEvent(b,c))a._raiseBubbleEvent(b,c)};Sys.UI.DomElement.setLocation=function(b,c,d){var a=b.style;a.position=\"absolute\";a.left=c+\"px\";a.top=d+\"px\"};Sys.UI.DomElement.toggleCssClass=function(b,a){if(Sys.UI.DomElement.containsCssClass(b,a))Sys.UI.DomElement.removeCssClass(b,a);else Sys.UI.DomElement.addCssClass(b,a)};Sys.UI.DomElement.getVisibilityMode=function(a){return a._visibilityMode===Sys.UI.VisibilityMode.hide?Sys.UI.VisibilityMode.hide:Sys.UI.VisibilityMode.collapse};Sys.UI.DomElement.setVisibilityMode=function(a,b){Sys.UI.DomElement._ensureOldDisplayMode(a);if(a._visibilityMode!==b){a._visibilityMode=b;if(Sys.UI.DomElement.getVisible(a)===false)if(a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display=\"none\";a._visibilityMode=b}};Sys.UI.DomElement.getVisible=function(b){var a=b.currentStyle||Sys.UI.DomElement._getCurrentStyle(b);if(!a)return true;return a.visibility!==\"hidden\"&&a.display!==\"none\"};Sys.UI.DomElement.setVisible=function(a,b){if(b!==Sys.UI.DomElement.getVisible(a)){Sys.UI.DomElement._ensureOldDisplayMode(a);a.style.visibility=b?\"visible\":\"hidden\";if(b||a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display=\"none\"}};Sys.UI.DomElement._ensureOldDisplayMode=function(a){if(!a._oldDisplayMode){var b=a.currentStyle||Sys.UI.DomElement._getCurrentStyle(a);a._oldDisplayMode=b?b.display:null;if(!a._oldDisplayMode||a._oldDisplayMode===\"none\")switch(a.tagName.toUpperCase()){case \"DIV\":case \"P\":case \"ADDRESS\":case \"BLOCKQUOTE\":case \"BODY\":case \"COL\":case \"COLGROUP\":case \"DD\":case \"DL\":case \"DT\":case \"FIELDSET\":case \"FORM\":case \"H1\":case \"H2\":case \"H3\":case \"H4\":case \"H5\":case \"H6\":case \"HR\":case \"IFRAME\":case \"LEGEND\":case \"OL\":case \"PRE\":case \"TABLE\":case \"TD\":case \"TH\":case \"TR\":case \"UL\":a._oldDisplayMode=\"block\";break;case \"LI\":a._oldDisplayMode=\"list-item\";break;default:a._oldDisplayMode=\"inline\"}}};Sys.UI.DomElement._getWindow=function(a){var b=a.ownerDocument||a.document||a;return b.defaultView||b.parentWindow};Sys.UI.DomElement._getCurrentStyle=function(a){if(a.nodeType===3)return null;var c=Sys.UI.DomElement._getWindow(a);if(a.documentElement)a=a.documentElement;var b=c&&a!==c&&c.getComputedStyle?c.getComputedStyle(a,null):a.currentStyle||a.style;if(!b&&Sys.Browser.agent===Sys.Browser.Safari&&a.style){var g=a.style.display,f=a.style.position;a.style.position=\"absolute\";a.style.display=\"block\";var e=c.getComputedStyle(a,null);a.style.display=g;a.style.position=f;b={};for(var d in e)b[d]=e[d];b.display=\"none\"}return b};Sys.IContainer=function(){};Sys.IContainer.prototype={};Sys.IContainer.registerInterface(\"Sys.IContainer\");Sys.ApplicationLoadEventArgs=function(b,a){Sys.ApplicationLoadEventArgs.initializeBase(this);this._components=b;this._isPartialLoad=a};Sys.ApplicationLoadEventArgs.prototype={get_components:function(){return this._components},get_isPartialLoad:function(){return this._isPartialLoad}};Sys.ApplicationLoadEventArgs.registerClass(\"Sys.ApplicationLoadEventArgs\",Sys.EventArgs);Sys._Application=function(){Sys._Application.initializeBase(this);this._disposableObjects=[];this._components={};this._createdComponents=[];this._secondPassComponents=[];this._unloadHandlerDelegate=Function.createDelegate(this,this._unloadHandler);Sys.UI.DomEvent.addHandler(window,\"unload\",this._unloadHandlerDelegate);this._domReady()};Sys._Application.prototype={_creatingComponents:false,_disposing:false,_deleteCount:0,get_isCreatingComponents:function(){return this._creatingComponents},get_isDisposing:function(){return this._disposing},add_init:function(a){if(this._initialized)a(this,Sys.EventArgs.Empty);else this.get_events().addHandler(\"init\",a)},remove_init:function(a){this.get_events().removeHandler(\"init\",a)},add_load:function(a){this.get_events().addHandler(\"load\",a)},remove_load:function(a){this.get_events().removeHandler(\"load\",a)},add_unload:function(a){this.get_events().addHandler(\"unload\",a)},remove_unload:function(a){this.get_events().removeHandler(\"unload\",a)},addComponent:function(a){this._components[a.get_id()]=a},beginCreateComponents:function(){this._creatingComponents=true},dispose:function(){if(!this._disposing){this._disposing=true;if(this._timerCookie){window.clearTimeout(this._timerCookie);delete this._timerCookie}if(this._endRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);delete this._endRequestHandler}if(this._beginRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);delete this._beginRequestHandler}if(window.pageUnload)window.pageUnload(this,Sys.EventArgs.Empty);var c=this.get_events().getHandler(\"unload\");if(c)c(this,Sys.EventArgs.Empty);var b=Array.clone(this._disposableObjects);for(var a=0,f=b.length;a=0;b--){var d=i[b],f=d.dispose;if(f&&typeof f===\"function\")d.dispose();else{var e=d.control;if(e&&typeof e.dispose===\"function\")e.dispose()}var a=d._behaviors;if(a)this._disposeComponents(a);a=d._components;if(a){this._disposeComponents(a);d._components=null}}if(!j){var f=c.dispose;if(f&&typeof f===\"function\")c.dispose();else{var e=c.control;if(e&&typeof e.dispose===\"function\")e.dispose()}var a=c._behaviors;if(a)this._disposeComponents(a);a=c._components;if(a){this._disposeComponents(a);c._components=null}}}},endCreateComponents:function(){var b=this._secondPassComponents;for(var a=0,d=b.length;a1000){var c=[];for(var d=0,f=b.length;d=0;b--){var c=a[b];if(typeof c.dispose===\"function\")c.dispose()}},_domReady:function(){var a,g,f=this;function b(){f.initialize()}var c=function(){Sys.UI.DomEvent.removeHandler(window,\"load\",c);b()};Sys.UI.DomEvent.addHandler(window,\"load\",c);if(document.addEventListener)try{document.addEventListener(\"DOMContentLoaded\",a=function(){document.removeEventListener(\"DOMContentLoaded\",a,false);b()},false)}catch(h){}else if(document.attachEvent)if(window==window.top&&document.documentElement.doScroll){var e,d=document.createElement(\"div\");a=function(){try{d.doScroll(\"left\")}catch(c){e=window.setTimeout(a,0);return}d=null;b()};a()}else document.attachEvent(\"onreadystatechange\",a=function(){if(document.readyState===\"complete\"){document.detachEvent(\"onreadystatechange\",a);b()}})},_raiseInit:function(){var a=this.get_events().getHandler(\"init\");if(a){this.beginCreateComponents();a(this,Sys.EventArgs.Empty);this.endCreateComponents()}},_unloadHandler:function(){this.dispose()}};Sys._Application.registerClass(\"Sys._Application\",Sys.Component,Sys.IContainer);Sys.Application=new Sys._Application;var $find=Sys.Application.findComponent;Sys.UI.Behavior=function(b){Sys.UI.Behavior.initializeBase(this);this._element=b;var a=b._behaviors;if(!a)b._behaviors=[this];else a[a.length]=this};Sys.UI.Behavior.prototype={_name:null,get_element:function(){return this._element},get_id:function(){var a=Sys.UI.Behavior.callBaseMethod(this,\"get_id\");if(a)return a;if(!this._element||!this._element.id)return \"\";return this._element.id+\"$\"+this.get_name()},get_name:function(){if(this._name)return this._name;var a=Object.getTypeName(this),b=a.lastIndexOf(\".\");if(b!==-1)a=a.substr(b+1);if(!this.get_isInitialized())this._name=a;return a},set_name:function(a){this._name=a},initialize:function(){Sys.UI.Behavior.callBaseMethod(this,\"initialize\");var a=this.get_name();if(a)this._element[a]=this},dispose:function(){Sys.UI.Behavior.callBaseMethod(this,\"dispose\");var a=this._element;if(a){var c=this.get_name();if(c)a[c]=null;var b=a._behaviors;Array.remove(b,this);if(b.length===0)a._behaviors=null;delete this._element}}};Sys.UI.Behavior.registerClass(\"Sys.UI.Behavior\",Sys.Component);Sys.UI.Behavior.getBehaviorByName=function(b,c){var a=b[c];return a&&Sys.UI.Behavior.isInstanceOfType(a)?a:null};Sys.UI.Behavior.getBehaviors=function(a){if(!a._behaviors)return [];return Array.clone(a._behaviors)};Sys.UI.Behavior.getBehaviorsByType=function(d,e){var a=d._behaviors,c=[];if(a)for(var b=0,f=a.length;b0&&a.charAt(0)===\"#\")a=a.substring(1);return a};Sys._Application.prototype.get_enableHistory=function(){return this._enableHistory};Sys._Application.prototype.set_enableHistory=function(a){this._enableHistory=a};Sys._Application.prototype.add_navigate=function(a){this.get_events().addHandler(\"navigate\",a)};Sys._Application.prototype.remove_navigate=function(a){this.get_events().removeHandler(\"navigate\",a)};Sys._Application.prototype.addHistoryPoint=function(c,f){this._ensureHistory();var b=this._state;for(var a in c){var d=c[a];if(d===null){if(typeof b[a]!==\"undefined\")delete b[a]}else b[a]=d}var e=this._serializeState(b);this._historyPointIsNew=true;this._setState(e,f);this._raiseNavigate()};Sys._Application.prototype.setServerId=function(a,b){this._clientId=a;this._uniqueId=b};Sys._Application.prototype.setServerState=function(a){this._ensureHistory();this._state.__s=a;this._updateHiddenField(a)};Sys._Application.prototype._deserializeState=function(a){var e={};a=a||\"\";var b=a.indexOf(\"&&\");if(b!==-1&&b+27){var e=document.title;document.title=c;this._setState(a);document.title=e}else this._setState(a);this._raiseNavigate()}else{this._setState(a);this._raiseNavigate()}}};Sys._Application.prototype._raiseNavigate=function(){var d=this._historyPointIsNew,c=this.get_events().getHandler(\"navigate\"),b={};for(var a in this._state)if(a!==\"__s\")b[a]=this._state[a];var e=new Sys.HistoryEventArgs(b);if(c)c(this,e);if(!d){var f;try{if(Sys.Browser.agent===Sys.Browser.Firefox&&window.location.hash&&(!window.frameElement||window.top.location.hash))Sys.Browser.version<3.5?window.history.go(0):(location.hash=this.get_stateString())}catch(g){}}};Sys._Application.prototype._serializeState=function(d){var b=[];for(var a in d){var e=d[a];if(a===\"__s\")var c=e;else b[b.length]=a+\"=\"+encodeURIComponent(e)}return b.join(\"&\")+(c?\"&&\"+c:\"\")};Sys._Application.prototype._setState=function(a,b){if(this._enableHistory){a=a||\"\";if(a!==this._currentEntry){if(window.theForm){var d=window.theForm.action,e=d.indexOf(\"#\");window.theForm.action=(e!==-1?d.substring(0,e):d)+\"#\"+a}if(this._historyFrame&&this._historyPointIsNew){var f=document.createElement(\"div\");f.appendChild(document.createTextNode(b||document.title));var g=f.innerHTML;this._ignoreIFrame=true;var c=this._historyFrame.contentWindow.document;c.open(\"javascript:''\");c.write(\"\"+g+\"parent.Sys.Application._onIFrameLoad('+Sys.Serialization.JavaScriptSerializer.serialize(a)+\");\");c.close()}this._ignoreTimer=false;this._currentEntry=a;if(this._historyFrame||this._historyPointIsNew){var h=this.get_stateString();if(a!==h){window.location.hash=a;this._currentEntry=this.get_stateString();if(typeof b!==\"undefined\"&&b!==null)document.title=b}}this._historyPointIsNew=false}}};Sys._Application.prototype._updateHiddenField=function(b){if(this._clientId){var a=document.getElementById(this._clientId);if(a)a.value=b}};if(!window.XMLHttpRequest)window.XMLHttpRequest=function(){var b=[\"Msxml2.XMLHTTP.3.0\",\"Msxml2.XMLHTTP\"];for(var a=0,c=b.length;a0)this._timer=window.setTimeout(Function.createDelegate(this,this._onTimeout),d);this._xmlHttpRequest.send(c);this._started=true},getResponseHeader:function(b){var a;try{a=this._xmlHttpRequest.getResponseHeader(b)}catch(c){}if(!a)a=\"\";return a},getAllResponseHeaders:function(){return this._xmlHttpRequest.getAllResponseHeaders()},get_responseData:function(){return this._xmlHttpRequest.responseText},get_statusCode:function(){var a=0;try{a=this._xmlHttpRequest.status}catch(b){}return a},get_statusText:function(){return this._xmlHttpRequest.statusText},get_xml:function(){var a=this._xmlHttpRequest.responseXML;if(!a||!a.documentElement){a=Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);if(!a||!a.documentElement)return null}else if(navigator.userAgent.indexOf(\"MSIE\")!==-1&&typeof a.setProperty!=\"undefined\")a.setProperty(\"SelectionLanguage\",\"XPath\");if(a.documentElement.namespaceURI===\"http://www.mozilla.org/newlayout/xml/parsererror.xml\"&&a.documentElement.tagName===\"parsererror\")return null;if(a.documentElement.firstChild&&a.documentElement.firstChild.tagName===\"parsererror\")return null;return a},abort:function(){if(this._aborted||this._responseAvailable||this._timedOut)return;this._aborted=true;this._clearTimer();if(this._xmlHttpRequest&&!this._responseAvailable){this._xmlHttpRequest.onreadystatechange=Function.emptyMethod;this._xmlHttpRequest.abort();this._xmlHttpRequest=null;this._webRequest.completed(Sys.EventArgs.Empty)}}};Sys.Net.XMLHttpExecutor.registerClass(\"Sys.Net.XMLHttpExecutor\",Sys.Net.WebRequestExecutor);Sys.Net._WebRequestManager=function(){this._defaultTimeout=0;this._defaultExecutorType=\"Sys.Net.XMLHttpExecutor\"};Sys.Net._WebRequestManager.prototype={add_invokingRequest:function(a){this._get_eventHandlerList().addHandler(\"invokingRequest\",a)},remove_invokingRequest:function(a){this._get_eventHandlerList().removeHandler(\"invokingRequest\",a)},add_completedRequest:function(a){this._get_eventHandlerList().addHandler(\"completedRequest\",a)},remove_completedRequest:function(a){this._get_eventHandlerList().removeHandler(\"completedRequest\",a)},_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_defaultTimeout:function(){return this._defaultTimeout},set_defaultTimeout:function(a){this._defaultTimeout=a},get_defaultExecutorType:function(){return this._defaultExecutorType},set_defaultExecutorType:function(a){this._defaultExecutorType=a},executeRequest:function(webRequest){var executor=webRequest.get_executor();if(!executor){var failed=false;try{var executorType=eval(this._defaultExecutorType);executor=new executorType}catch(a){failed=true}webRequest.set_executor(executor)}if(executor.get_aborted())return;var evArgs=new Sys.Net.NetworkRequestEventArgs(webRequest),handler=this._get_eventHandlerList().getHandler(\"invokingRequest\");if(handler)handler(this,evArgs);if(!evArgs.get_cancel())executor.executeRequest()}};Sys.Net._WebRequestManager.registerClass(\"Sys.Net._WebRequestManager\");Sys.Net.WebRequestManager=new Sys.Net._WebRequestManager;Sys.Net.NetworkRequestEventArgs=function(a){Sys.Net.NetworkRequestEventArgs.initializeBase(this);this._webRequest=a};Sys.Net.NetworkRequestEventArgs.prototype={get_webRequest:function(){return this._webRequest}};Sys.Net.NetworkRequestEventArgs.registerClass(\"Sys.Net.NetworkRequestEventArgs\",Sys.CancelEventArgs);Sys.Net.WebRequest=function(){this._url=\"\";this._headers={};this._body=null;this._userContext=null;this._httpVerb=null;this._executor=null;this._invokeCalled=false;this._timeout=0};Sys.Net.WebRequest.prototype={add_completed:function(a){this._get_eventHandlerList().addHandler(\"completed\",a)},remove_completed:function(a){this._get_eventHandlerList().removeHandler(\"completed\",a)},completed:function(b){var a=Sys.Net.WebRequestManager._get_eventHandlerList().getHandler(\"completedRequest\");if(a)a(this._executor,b);a=this._get_eventHandlerList().getHandler(\"completed\");if(a)a(this._executor,b)},_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_url:function(){return this._url},set_url:function(a){this._url=a},get_headers:function(){return this._headers},get_httpVerb:function(){if(this._httpVerb===null){if(this._body===null)return \"GET\";return \"POST\"}return this._httpVerb},set_httpVerb:function(a){this._httpVerb=a},get_body:function(){return this._body},set_body:function(a){this._body=a},get_userContext:function(){return this._userContext},set_userContext:function(a){this._userContext=a},get_executor:function(){return this._executor},set_executor:function(a){this._executor=a;this._executor._set_webRequest(this)},get_timeout:function(){if(this._timeout===0)return Sys.Net.WebRequestManager.get_defaultTimeout();return this._timeout},set_timeout:function(a){this._timeout=a},getResolvedUrl:function(){return Sys.Net.WebRequest._resolveUrl(this._url)},invoke:function(){Sys.Net.WebRequestManager.executeRequest(this);this._invokeCalled=true}};Sys.Net.WebRequest._resolveUrl=function(b,a){if(b&&b.indexOf(\"://\")!==-1)return b;if(!a||a.length===0){var d=document.getElementsByTagName(\"base\")[0];if(d&&d.href&&d.href.length>0)a=d.href;else a=document.URL}var c=a.indexOf(\"?\");if(c!==-1)a=a.substr(0,c);c=a.indexOf(\"#\");if(c!==-1)a=a.substr(0,c);a=a.substr(0,a.lastIndexOf(\"/\")+1);if(!b||b.length===0)return a;if(b.charAt(0)===\"/\"){var e=a.indexOf(\"://\"),g=a.indexOf(\"/\",e+3);return a.substr(0,g)+b}else{var f=a.lastIndexOf(\"/\");return a.substr(0,f+1)+b}};Sys.Net.WebRequest._createQueryString=function(c,b,f){b=b||encodeURIComponent;var h=0,e,g,d,a=new Sys.StringBuilder;if(c)for(d in c){e=c[d];if(typeof e===\"function\")continue;g=Sys.Serialization.JavaScriptSerializer.serialize(e);if(h++)a.append(\"&\");a.append(d);a.append(\"=\");a.append(b(g))}if(f){if(h)a.append(\"&\");a.append(f)}return a.toString()};Sys.Net.WebRequest._createUrl=function(a,b,c){if(!b&&!c)return a;var d=Sys.Net.WebRequest._createQueryString(b,null,c);return d.length?a+(a&&a.indexOf(\"?\")>=0?\"&\":\"?\")+d:a};Sys.Net.WebRequest.registerClass(\"Sys.Net.WebRequest\");Sys._ScriptLoaderTask=function(b,a){this._scriptElement=b;this._completedCallback=a};Sys._ScriptLoaderTask.prototype={get_scriptElement:function(){return this._scriptElement},dispose:function(){if(this._disposed)return;this._disposed=true;this._removeScriptElementHandlers();Sys._ScriptLoaderTask._clearScript(this._scriptElement);this._scriptElement=null},execute:function(){if(this._ensureReadyStateLoaded())this._executeInternal()},_executeInternal:function(){this._addScriptElementHandlers();document.getElementsByTagName(\"head\")[0].appendChild(this._scriptElement)},_ensureReadyStateLoaded:function(){if(this._useReadyState()&&this._scriptElement.readyState!==\"loaded\"&&this._scriptElement.readyState!==\"complete\"){this._scriptDownloadDelegate=Function.createDelegate(this,this._executeInternal);$addHandler(this._scriptElement,\"readystatechange\",this._scriptDownloadDelegate);return false}return true},_addScriptElementHandlers:function(){if(this._scriptDownloadDelegate){$removeHandler(this._scriptElement,\"readystatechange\",this._scriptDownloadDelegate);this._scriptDownloadDelegate=null}this._scriptLoadDelegate=Function.createDelegate(this,this._scriptLoadHandler);if(this._useReadyState())$addHandler(this._scriptElement,\"readystatechange\",this._scriptLoadDelegate);else $addHandler(this._scriptElement,\"load\",this._scriptLoadDelegate);if(this._scriptElement.addEventListener){this._scriptErrorDelegate=Function.createDelegate(this,this._scriptErrorHandler);this._scriptElement.addEventListener(\"error\",this._scriptErrorDelegate,false)}},_removeScriptElementHandlers:function(){if(this._scriptLoadDelegate){var a=this.get_scriptElement();if(this._scriptDownloadDelegate){$removeHandler(this._scriptElement,\"readystatechange\",this._scriptDownloadDelegate);this._scriptDownloadDelegate=null}if(this._useReadyState()&&this._scriptLoadDelegate)$removeHandler(a,\"readystatechange\",this._scriptLoadDelegate);else $removeHandler(a,\"load\",this._scriptLoadDelegate);if(this._scriptErrorDelegate){this._scriptElement.removeEventListener(\"error\",this._scriptErrorDelegate,false);this._scriptErrorDelegate=null}this._scriptLoadDelegate=null}},_scriptErrorHandler:function(){if(this._disposed)return;this._completedCallback(this.get_scriptElement(),false)},_scriptLoadHandler:function(){if(this._disposed)return;var a=this.get_scriptElement();if(this._useReadyState()&&a.readyState!==\"complete\")return;this._completedCallback(a,true)},_useReadyState:function(){return Sys.Browser.agent===Sys.Browser.InternetExplorer&&(Sys.Browser.version<9||(document.documentMode||0)<9)}};Sys._ScriptLoaderTask.registerClass(\"Sys._ScriptLoaderTask\",null,Sys.IDisposable);Sys._ScriptLoaderTask._clearScript=function(a){if(!Sys.Debug.isDebug&&a.parentNode)a.parentNode.removeChild(a)};Type.registerNamespace(\"Sys.Net\");Sys.Net.WebServiceProxy=function(){};Sys.Net.WebServiceProxy.prototype={get_timeout:function(){return this._timeout||0},set_timeout:function(a){if(a<0)throw Error.argumentOutOfRange(\"value\",a,Sys.Res.invalidTimeout);this._timeout=a},get_defaultUserContext:function(){return typeof this._userContext===\"undefined\"?null:this._userContext},set_defaultUserContext:function(a){this._userContext=a},get_defaultSucceededCallback:function(){return this._succeeded||null},set_defaultSucceededCallback:function(a){this._succeeded=a},get_defaultFailedCallback:function(){return this._failed||null},set_defaultFailedCallback:function(a){this._failed=a},get_enableJsonp:function(){return !!this._jsonp},set_enableJsonp:function(a){this._jsonp=a},get_path:function(){return this._path||null},set_path:function(a){this._path=a},get_jsonpCallbackParameter:function(){return this._callbackParameter||\"callback\"},set_jsonpCallbackParameter:function(a){this._callbackParameter=a},_invoke:function(d,e,g,f,c,b,a){c=c||this.get_defaultSucceededCallback();b=b||this.get_defaultFailedCallback();if(a===null||typeof a===\"undefined\")a=this.get_defaultUserContext();return Sys.Net.WebServiceProxy.invoke(d,e,g,f,c,b,a,this.get_timeout(),this.get_enableJsonp(),this.get_jsonpCallbackParameter())}};Sys.Net.WebServiceProxy.registerClass(\"Sys.Net.WebServiceProxy\");Sys.Net.WebServiceProxy.invoke=function(q,a,m,l,j,b,g,e,w,p){var i=w!==false?Sys.Net.WebServiceProxy._xdomain.exec(q):null,c,n=i&&i.length===3&&(i[1]!==location.protocol||i[2]!==location.host);m=n||m;if(n){p=p||\"callback\";c=\"_jsonp\"+Sys._jsonp++}if(!l)l={};var r=l;if(!m||!r)r={};var s,h,f=null,k,o=null,u=Sys.Net.WebRequest._createUrl(a?q+\"/\"+encodeURIComponent(a):q,r,n?p+\"=Sys.\"+c:null);if(n){s=document.createElement(\"script\");s.src=u;k=new Sys._ScriptLoaderTask(s,function(d,b){if(!b||c)t({Message:String.format(Sys.Res.webServiceFailedNoMsg,a)},-1)});function v(){if(f===null)return;f=null;h=new Sys.Net.WebServiceError(true,String.format(Sys.Res.webServiceTimedOut,a));k.dispose();delete Sys[c];if(b)b(h,g,a)}function t(d,e){if(f!==null){window.clearTimeout(f);f=null}k.dispose();delete Sys[c];c=null;if(typeof e!==\"undefined\"&&e!==200){if(b){h=new Sys.Net.WebServiceError(false,d.Message||String.format(Sys.Res.webServiceFailedNoMsg,a),d.StackTrace||null,d.ExceptionType||null,d);h._statusCode=e;b(h,g,a)}}else if(j)j(d,g,a)}Sys[c]=t;e=e||Sys.Net.WebRequestManager.get_defaultTimeout();if(e>0)f=window.setTimeout(v,e);k.execute();return null}var d=new Sys.Net.WebRequest;d.set_url(u);d.get_headers()[\"Content-Type\"]=\"application/json; charset=utf-8\";if(!m){o=Sys.Serialization.JavaScriptSerializer.serialize(l);if(o===\"{}\")o=\"\"}d.set_body(o);d.add_completed(x);if(e&&e>0)d.set_timeout(e);d.invoke();function x(d){if(d.get_responseAvailable()){var f=d.get_statusCode(),c=null;try{var e=d.getResponseHeader(\"Content-Type\");if(e.startsWith(\"application/json\"))c=d.get_object();else if(e.startsWith(\"text/xml\"))c=d.get_xml();else c=d.get_responseData()}catch(m){}var k=d.getResponseHeader(\"jsonerror\"),h=k===\"true\";if(h){if(c)c=new Sys.Net.WebServiceError(false,c.Message,c.StackTrace,c.ExceptionType,c)}else if(e.startsWith(\"application/json\"))c=!c||typeof c.d===\"undefined\"?c:c.d;if(f<200||f>=300||h){if(b){if(!c||!h)c=new Sys.Net.WebServiceError(false,String.format(Sys.Res.webServiceFailedNoMsg,a));c._statusCode=f;b(c,g,a)}}else if(j)j(c,g,a)}else{var i;if(d.get_timedOut())i=String.format(Sys.Res.webServiceTimedOut,a);else i=String.format(Sys.Res.webServiceFailedNoMsg,a);if(b)b(new Sys.Net.WebServiceError(d.get_timedOut(),i,\"\",\"\"),g,a)}}return d};Sys.Net.WebServiceProxy._generateTypedConstructor=function(a){return function(b){if(b)for(var c in b)this[c]=b[c];this.__type=a}};Sys._jsonp=0;Sys.Net.WebServiceProxy._xdomain=/^\\s*([a-zA-Z0-9\\+\\-\\.]+\\:)\\/\\/([^?#\\/]+)/;Sys.Net.WebServiceError=function(d,e,c,a,b){this._timedOut=d;this._message=e;this._stackTrace=c;this._exceptionType=a;this._errorObject=b;this._statusCode=-1};Sys.Net.WebServiceError.prototype={get_timedOut:function(){return this._timedOut},get_statusCode:function(){return this._statusCode},get_message:function(){return this._message},get_stackTrace:function(){return this._stackTrace||\"\"},get_exceptionType:function(){return this._exceptionType||\"\"},get_errorObject:function(){return this._errorObject||null}};Sys.Net.WebServiceError.registerClass(\"Sys.Net.WebServiceError\");\r\nType.registerNamespace('Sys');Sys.Res={\"argumentInteger\":\"Value must be an integer.\",\"invokeCalledTwice\":\"Cannot call invoke more than once.\",\"webServiceFailed\":\"The server method \\u0027{0}\\u0027 failed with the following error: {1}\",\"argumentType\":\"Object cannot be converted to the required type.\",\"argumentNull\":\"Value cannot be null.\",\"scriptAlreadyLoaded\":\"The script \\u0027{0}\\u0027 has been referenced multiple times. If referencing Microsoft AJAX scripts explicitly, set the MicrosoftAjaxMode property of the ScriptManager to Explicit.\",\"scriptDependencyNotFound\":\"The script \\u0027{0}\\u0027 failed to load because it is dependent on script \\u0027{1}\\u0027.\",\"formatBadFormatSpecifier\":\"Format specifier was invalid.\",\"requiredScriptReferenceNotIncluded\":\"\\u0027{0}\\u0027 requires that you have included a script reference to \\u0027{1}\\u0027.\",\"webServiceFailedNoMsg\":\"The server method \\u0027{0}\\u0027 failed.\",\"argumentDomElement\":\"Value must be a DOM element.\",\"invalidExecutorType\":\"Could not create a valid Sys.Net.WebRequestExecutor from: {0}.\",\"cannotCallBeforeResponse\":\"Cannot call {0} when responseAvailable is false.\",\"actualValue\":\"Actual value was {0}.\",\"enumInvalidValue\":\"\\u0027{0}\\u0027 is not a valid value for enum {1}.\",\"scriptLoadFailed\":\"The script \\u0027{0}\\u0027 could not be loaded.\",\"parameterCount\":\"Parameter count mismatch.\",\"cannotDeserializeEmptyString\":\"Cannot deserialize empty string.\",\"formatInvalidString\":\"Input string was not in a correct format.\",\"invalidTimeout\":\"Value must be greater than or equal to zero.\",\"cannotAbortBeforeStart\":\"Cannot abort when executor has not started.\",\"argument\":\"Value does not fall within the expected range.\",\"cannotDeserializeInvalidJson\":\"Cannot deserialize. The data does not correspond to valid JSON.\",\"invalidHttpVerb\":\"httpVerb cannot be set to an empty or null string.\",\"nullWebRequest\":\"Cannot call executeRequest with a null webRequest.\",\"eventHandlerInvalid\":\"Handler was not added through the Sys.UI.DomEvent.addHandler method.\",\"cannotSerializeNonFiniteNumbers\":\"Cannot serialize non finite numbers.\",\"argumentUndefined\":\"Value cannot be undefined.\",\"webServiceInvalidReturnType\":\"The server method \\u0027{0}\\u0027 returned an invalid type. Expected type: {1}\",\"servicePathNotSet\":\"The path to the web service has not been set.\",\"argumentTypeWithTypes\":\"Object of type \\u0027{0}\\u0027 cannot be converted to type \\u0027{1}\\u0027.\",\"cannotCallOnceStarted\":\"Cannot call {0} once started.\",\"badBaseUrl1\":\"Base URL does not contain ://.\",\"badBaseUrl2\":\"Base URL does not contain another /.\",\"badBaseUrl3\":\"Cannot find last / in base URL.\",\"setExecutorAfterActive\":\"Cannot set executor after it has become active.\",\"paramName\":\"Parameter name: {0}\",\"nullReferenceInPath\":\"Null reference while evaluating data path: \\u0027{0}\\u0027.\",\"cannotCallOutsideHandler\":\"Cannot call {0} outside of a completed event handler.\",\"cannotSerializeObjectWithCycle\":\"Cannot serialize object with cyclic reference within child properties.\",\"format\":\"One of the identified items was in an invalid format.\",\"assertFailedCaller\":\"Assertion Failed: {0}\\r\\nat {1}\",\"argumentOutOfRange\":\"Specified argument was out of the range of valid values.\",\"webServiceTimedOut\":\"The server method \\u0027{0}\\u0027 timed out.\",\"notImplemented\":\"The method or operation is not implemented.\",\"assertFailed\":\"Assertion Failed: {0}\",\"invalidOperation\":\"Operation is not valid due to the current state of the object.\",\"breakIntoDebugger\":\"{0}\\r\\n\\r\\nBreak into debugger?\"};" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.304Z", "time": 0.13800000306218863, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.12100000458303839, "receive": 0.016999998479150236, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 81 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "574", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/ScriptResource.axd?d=HeicGOaLJhASjvNIhDLiH5hZxjXU0szfnnjSx7cm6p3txfMF2rTpmXa6Ln9fLKYt9mIDMAFSkeOz43Wi7q1lNwhblZMANaTxadlBUTb0LnDzFaIZE15_i0e2l5iq0jBO561_0Dmu_qGJ5PGM0&t=ffffffffe6d5a9ac", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "d", "value": "HeicGOaLJhASjvNIhDLiH5hZxjXU0szfnnjSx7cm6p3txfMF2rTpmXa6Ln9fLKYt9mIDMAFSkeOz43Wi7q1lNwhblZMANaTxadlBUTb0LnDzFaIZE15_i0e2l5iq0jBO561_0Dmu_qGJ5PGM0" }, { "name": "t", "value": "ffffffffe6d5a9ac" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 05:54:28 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "DYNAMIC" }, { "name": "Last-Modified", "value": "Tue, 02 Feb 2021 20:42:22 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "X-AspNet-Version", "value": "4.0.30319" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Content-Type", "value": "application/x-javascript" }, { "name": "Cache-Control", "value": "public" }, { "name": "Connection", "value": "keep-alive" }, { "name": "CF-RAY", "value": "61ca607d0e9cfd26-SYD" }, { "name": "Content-Length", "value": "9984" }, { "name": "cf-request-id", "value": "08125aa2210000fd2626a42000000001" }, { "name": "Expires", "value": "Wed, 02 Feb 2022 20:42:22 GMT" } ], "cookies": [], "content": { "size": 40329, "mimeType": "application/x-javascript", "text": "//----------------------------------------------------------\r\n// Copyright (C) Microsoft Corporation. All rights reserved.\r\n//----------------------------------------------------------\r\n// MicrosoftAjaxWebForms.js\r\nType._registerScript(\"MicrosoftAjaxWebForms.js\",[\"MicrosoftAjaxCore.js\",\"MicrosoftAjaxSerialization.js\",\"MicrosoftAjaxNetwork.js\",\"MicrosoftAjaxComponentModel.js\"]);Type.registerNamespace(\"Sys.WebForms\");Sys.WebForms.BeginRequestEventArgs=function(c,b,a){Sys.WebForms.BeginRequestEventArgs.initializeBase(this);this._request=c;this._postBackElement=b;this._updatePanelsToUpdate=a};Sys.WebForms.BeginRequestEventArgs.prototype={get_postBackElement:function(){return this._postBackElement},get_request:function(){return this._request},get_updatePanelsToUpdate:function(){return this._updatePanelsToUpdate?Array.clone(this._updatePanelsToUpdate):[]}};Sys.WebForms.BeginRequestEventArgs.registerClass(\"Sys.WebForms.BeginRequestEventArgs\",Sys.EventArgs);Sys.WebForms.EndRequestEventArgs=function(c,a,b){Sys.WebForms.EndRequestEventArgs.initializeBase(this);this._errorHandled=false;this._error=c;this._dataItems=a||{};this._response=b};Sys.WebForms.EndRequestEventArgs.prototype={get_dataItems:function(){return this._dataItems},get_error:function(){return this._error},get_errorHandled:function(){return this._errorHandled},set_errorHandled:function(a){this._errorHandled=a},get_response:function(){return this._response}};Sys.WebForms.EndRequestEventArgs.registerClass(\"Sys.WebForms.EndRequestEventArgs\",Sys.EventArgs);Sys.WebForms.InitializeRequestEventArgs=function(c,b,a){Sys.WebForms.InitializeRequestEventArgs.initializeBase(this);this._request=c;this._postBackElement=b;this._updatePanelsToUpdate=a};Sys.WebForms.InitializeRequestEventArgs.prototype={get_postBackElement:function(){return this._postBackElement},get_request:function(){return this._request},get_updatePanelsToUpdate:function(){return this._updatePanelsToUpdate?Array.clone(this._updatePanelsToUpdate):[]},set_updatePanelsToUpdate:function(a){this._updated=true;this._updatePanelsToUpdate=a}};Sys.WebForms.InitializeRequestEventArgs.registerClass(\"Sys.WebForms.InitializeRequestEventArgs\",Sys.CancelEventArgs);Sys.WebForms.PageLoadedEventArgs=function(b,a,c){Sys.WebForms.PageLoadedEventArgs.initializeBase(this);this._panelsUpdated=b;this._panelsCreated=a;this._dataItems=c||{}};Sys.WebForms.PageLoadedEventArgs.prototype={get_dataItems:function(){return this._dataItems},get_panelsCreated:function(){return this._panelsCreated},get_panelsUpdated:function(){return this._panelsUpdated}};Sys.WebForms.PageLoadedEventArgs.registerClass(\"Sys.WebForms.PageLoadedEventArgs\",Sys.EventArgs);Sys.WebForms.PageLoadingEventArgs=function(b,a,c){Sys.WebForms.PageLoadingEventArgs.initializeBase(this);this._panelsUpdating=b;this._panelsDeleting=a;this._dataItems=c||{}};Sys.WebForms.PageLoadingEventArgs.prototype={get_dataItems:function(){return this._dataItems},get_panelsDeleting:function(){return this._panelsDeleting},get_panelsUpdating:function(){return this._panelsUpdating}};Sys.WebForms.PageLoadingEventArgs.registerClass(\"Sys.WebForms.PageLoadingEventArgs\",Sys.EventArgs);Sys._ScriptLoader=function(){this._scriptsToLoad=null;this._sessions=[];this._scriptLoadedDelegate=Function.createDelegate(this,this._scriptLoadedHandler)};Sys._ScriptLoader.prototype={dispose:function(){this._stopSession();this._loading=false;if(this._events)delete this._events;this._sessions=null;this._currentSession=null;this._scriptLoadedDelegate=null},loadScripts:function(d,b,c,a){var e={allScriptsLoadedCallback:b,scriptLoadFailedCallback:c,scriptLoadTimeoutCallback:a,scriptsToLoad:this._scriptsToLoad,scriptTimeout:d};this._scriptsToLoad=null;this._sessions[this._sessions.length]=e;if(!this._loading)this._nextSession()},queueCustomScriptTag:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,a)},queueScriptBlock:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,{text:a})},queueScriptReference:function(a,b){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,{src:a,fallback:b})},_createScriptElement:function(c){var a=document.createElement(\"script\");a.type=\"text/javascript\";for(var b in c)a[b]=c[b];return a},_loadScriptsInternal:function(){var c=this._currentSession;if(c.scriptsToLoad&&c.scriptsToLoad.length>0){var b=Array.dequeue(c.scriptsToLoad),f=this._scriptLoadedDelegate;if(b.fallback){var g=b.fallback;delete b.fallback;var d=this;f=function(b,a){a||function(){var a=d._createScriptElement({src:g});d._currentTask=new Sys._ScriptLoaderTask(a,d._scriptLoadedDelegate);d._currentTask.execute()}()}}var a=this._createScriptElement(b);if(a.text&&Sys.Browser.agent===Sys.Browser.Safari){a.innerHTML=a.text;delete a.text}if(typeof b.src===\"string\"){this._currentTask=new Sys._ScriptLoaderTask(a,f);this._currentTask.execute()}else{document.getElementsByTagName(\"head\")[0].appendChild(a);Sys._ScriptLoaderTask._clearScript(a);this._loadScriptsInternal()}}else{this._stopSession();var e=c.allScriptsLoadedCallback;if(e)e(this);this._nextSession()}},_nextSession:function(){if(this._sessions.length===0){this._loading=false;this._currentSession=null;return}this._loading=true;var a=Array.dequeue(this._sessions);this._currentSession=a;if(a.scriptTimeout>0)this._timeoutCookie=window.setTimeout(Function.createDelegate(this,this._scriptLoadTimeoutHandler),a.scriptTimeout*1000);this._loadScriptsInternal()},_raiseError:function(){var b=this._currentSession.scriptLoadFailedCallback,a=this._currentTask.get_scriptElement();this._stopSession();if(b){b(this,a);this._nextSession()}else{this._loading=false;throw Sys._ScriptLoader._errorScriptLoadFailed(a.src)}},_scriptLoadedHandler:function(a,b){if(b){Array.add(Sys._ScriptLoader._getLoadedScripts(),a.src);this._currentTask.dispose();this._currentTask=null;this._loadScriptsInternal()}else this._raiseError()},_scriptLoadTimeoutHandler:function(){var a=this._currentSession.scriptLoadTimeoutCallback;this._stopSession();if(a)a(this);this._nextSession()},_stopSession:function(){if(this._timeoutCookie){window.clearTimeout(this._timeoutCookie);this._timeoutCookie=null}if(this._currentTask){this._currentTask.dispose();this._currentTask=null}}};Sys._ScriptLoader.registerClass(\"Sys._ScriptLoader\",null,Sys.IDisposable);Sys._ScriptLoader.getInstance=function(){var a=Sys._ScriptLoader._activeInstance;if(!a)a=Sys._ScriptLoader._activeInstance=new Sys._ScriptLoader;return a};Sys._ScriptLoader.isScriptLoaded=function(b){var a=document.createElement(\"script\");a.src=b;return Array.contains(Sys._ScriptLoader._getLoadedScripts(),a.src)};Sys._ScriptLoader.readLoadedScripts=function(){if(!Sys._ScriptLoader._referencedScripts){var c=Sys._ScriptLoader._referencedScripts=[],d=document.getElementsByTagName(\"script\");for(var b=d.length-1;b>=0;b--){var e=d[b],a=e.src;if(a.length)if(!Array.contains(c,a))Array.add(c,a)}}};Sys._ScriptLoader._errorScriptLoadFailed=function(b){var a;a=Sys.Res.scriptLoadFailed;var d=\"Sys.ScriptLoadFailedException: \"+String.format(a,b),c=Error.create(d,{name:\"Sys.ScriptLoadFailedException\",\"scriptUrl\":b});c.popStackFrame();return c};Sys._ScriptLoader._getLoadedScripts=function(){if(!Sys._ScriptLoader._referencedScripts){Sys._ScriptLoader._referencedScripts=[];Sys._ScriptLoader.readLoadedScripts()}return Sys._ScriptLoader._referencedScripts};Sys.WebForms.PageRequestManager=function(){this._form=null;this._activeDefaultButton=null;this._activeDefaultButtonClicked=false;this._updatePanelIDs=null;this._updatePanelClientIDs=null;this._updatePanelHasChildrenAsTriggers=null;this._asyncPostBackControlIDs=null;this._asyncPostBackControlClientIDs=null;this._postBackControlIDs=null;this._postBackControlClientIDs=null;this._scriptManagerID=null;this._pageLoadedHandler=null;this._additionalInput=null;this._onsubmit=null;this._onSubmitStatements=[];this._originalDoPostBack=null;this._originalDoPostBackWithOptions=null;this._originalFireDefaultButton=null;this._originalDoCallback=null;this._isCrossPost=false;this._postBackSettings=null;this._request=null;this._onFormSubmitHandler=null;this._onFormElementClickHandler=null;this._onWindowUnloadHandler=null;this._asyncPostBackTimeout=null;this._controlIDToFocus=null;this._scrollPosition=null;this._processingRequest=false;this._scriptDisposes={};this._transientFields=[\"__VIEWSTATEENCRYPTED\",\"__VIEWSTATEFIELDCOUNT\"];this._textTypes=/^(text|password|hidden|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i};Sys.WebForms.PageRequestManager.prototype={_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_isInAsyncPostBack:function(){return this._request!==null},add_beginRequest:function(a){this._get_eventHandlerList().addHandler(\"beginRequest\",a)},remove_beginRequest:function(a){this._get_eventHandlerList().removeHandler(\"beginRequest\",a)},add_endRequest:function(a){this._get_eventHandlerList().addHandler(\"endRequest\",a)},remove_endRequest:function(a){this._get_eventHandlerList().removeHandler(\"endRequest\",a)},add_initializeRequest:function(a){this._get_eventHandlerList().addHandler(\"initializeRequest\",a)},remove_initializeRequest:function(a){this._get_eventHandlerList().removeHandler(\"initializeRequest\",a)},add_pageLoaded:function(a){this._get_eventHandlerList().addHandler(\"pageLoaded\",a)},remove_pageLoaded:function(a){this._get_eventHandlerList().removeHandler(\"pageLoaded\",a)},add_pageLoading:function(a){this._get_eventHandlerList().addHandler(\"pageLoading\",a)},remove_pageLoading:function(a){this._get_eventHandlerList().removeHandler(\"pageLoading\",a)},abortPostBack:function(){if(!this._processingRequest&&this._request){this._request.get_executor().abort();this._request=null}},beginAsyncPostBack:function(c,a,f,d,e){if(d&&typeof Page_ClientValidate===\"function\"&&!Page_ClientValidate(e||null))return;this._postBackSettings=this._createPostBackSettings(true,c,a);var b=this._form;b.__EVENTTARGET.value=a||\"\";b.__EVENTARGUMENT.value=f||\"\";this._isCrossPost=false;this._additionalInput=null;this._onFormSubmit()},_cancelPendingCallbacks:function(){for(var a=0,e=window.__pendingCallbacks.length;a\";a=b.childNodes[0];a._isContained=true;a.id=a.name=c;a.value=d},_createPageRequestManagerTimeoutError:function(){var b=\"Sys.WebForms.PageRequestManagerTimeoutException: \"+Sys.WebForms.Res.PRM_TimeoutError,a=Error.create(b,{name:\"Sys.WebForms.PageRequestManagerTimeoutException\"});a.popStackFrame();return a},_createPageRequestManagerServerError:function(a,d){var c=\"Sys.WebForms.PageRequestManagerServerErrorException: \"+(d||String.format(Sys.WebForms.Res.PRM_ServerError,a)),b=Error.create(c,{name:\"Sys.WebForms.PageRequestManagerServerErrorException\",httpStatusCode:a});b.popStackFrame();return b},_createPageRequestManagerParserError:function(b){var c=\"Sys.WebForms.PageRequestManagerParserErrorException: \"+String.format(Sys.WebForms.Res.PRM_ParserError,b),a=Error.create(c,{name:\"Sys.WebForms.PageRequestManagerParserErrorException\"});a.popStackFrame();return a},_createPanelID:function(e,b){var c=b.asyncTarget,a=this._ensureUniqueIds(e||b.panelsToUpdate),d=a instanceof Array?a.join(\",\"):a||this._scriptManagerID;if(c)d+=\"|\"+c;return encodeURIComponent(this._scriptManagerID)+\"=\"+encodeURIComponent(d)+\"&\"},_createPostBackSettings:function(d,a,c,b){return {async:d,asyncTarget:c,panelsToUpdate:a,sourceElement:b}},_convertToClientIDs:function(a,f,e,d){if(a)for(var b=0,h=a.length;b0)theForm.action=a.actionUrl;if(a.trackFocus){var c=theForm.elements[\"__LASTFOCUS\"];if(typeof c!=\"undefined\"&&c!=null)if(typeof document.activeElement==\"undefined\")c.value=a.eventTarget;else{var b=document.activeElement;if(typeof b!=\"undefined\"&&b!=null)if(typeof b.id!=\"undefined\"&&b.id!=null&&b.id.length>0)c.value=b.id;else if(typeof b.name!=\"undefined\")c.value=b.name}}}if(a.clientSubmit)this._doPostBack(a.eventTarget,a.eventArgument)},_elementContains:function(b,a){while(a){if(a===b)return true;a=a.parentNode}return false},_endPostBack:function(a,d,f){if(this._request===d.get_webRequest()){this._processingRequest=false;this._additionalInput=null;this._request=null}var e=this._get_eventHandlerList().getHandler(\"endRequest\"),b=false;if(e){var c=new Sys.WebForms.EndRequestEventArgs(a,f?f.dataItems:{},d);e(this,c);b=c.get_errorHandled()}if(a&&!b)throw a},_ensureUniqueIds:function(a){if(!a)return a;a=a instanceof Array?a:[a];var c=[];for(var b=0,f=a.length;b-1?this._updatePanelIDs[d]:e)}return c},_findNearestElement:function(a){while(a.length>0){var d=this._uniqueIDToClientID(a),c=document.getElementById(d);if(c)return c;var b=a.lastIndexOf(\"$\");if(b===-1)return null;a=a.substring(0,b)}return null},_findText:function(b,a){var c=Math.max(0,a-20),d=Math.min(b.length,a+20);return b.substring(c,d)},_fireDefaultButton:function(a,d){if(a.keyCode===13){var c=a.srcElement||a.target;if(!c||c.tagName.toLowerCase()!==\"textarea\"){var b=document.getElementById(d);if(b&&typeof b.click!==\"undefined\"){this._activeDefaultButton=b;this._activeDefaultButtonClicked=false;try{b.click()}finally{this._activeDefaultButton=null}a.cancelBubble=true;if(typeof a.stopPropagation===\"function\")a.stopPropagation();return false}}}return true},_getPageLoadedEventArgs:function(n,c){var m=[],l=[],k=c?c.version4:false,d=c?c.updatePanelData:null,e,g,h,b;if(!d){e=this._updatePanelIDs;g=this._updatePanelClientIDs;h=null;b=null}else{e=d.updatePanelIDs;g=d.updatePanelClientIDs;h=d.childUpdatePanelIDs;b=d.panelsToRefreshIDs}var a,f,j,i;if(b)for(a=0,f=b.length;a-1))Array.add(i,document.getElementById(l[a]))}return new Sys.WebForms.PageLoadingEventArgs(j,i,f.dataItems)},_getPostBackSettings:function(a,c){var d=a,b=null;while(a){if(a.id){if(!b&&Array.contains(this._asyncPostBackControlClientIDs,a.id))b=this._createPostBackSettings(true,null,c,d);else if(!b&&Array.contains(this._postBackControlClientIDs,a.id))return this._createPostBackSettings(false);else{var e=Array.indexOf(this._updatePanelClientIDs,a.id);if(e!==-1)if(this._updatePanelHasChildrenAsTriggers[e])return this._createPostBackSettings(true,[this._updatePanelIDs[e]],c,d);else return this._createPostBackSettings(true,null,c,d)}if(!b&&this._matchesParentIDInList(a.id,this._asyncPostBackControlClientIDs))b=this._createPostBackSettings(true,null,c,d);else if(!b&&this._matchesParentIDInList(a.id,this._postBackControlClientIDs))return this._createPostBackSettings(false)}a=a.parentNode}if(!b)return this._createPostBackSettings(false);else return b},_getScrollPosition:function(){var a=document.documentElement;if(a&&(this._validPosition(a.scrollLeft)||this._validPosition(a.scrollTop)))return {x:a.scrollLeft,y:a.scrollTop};else{a=document.body;if(a&&(this._validPosition(a.scrollLeft)||this._validPosition(a.scrollTop)))return {x:a.scrollLeft,y:a.scrollTop};else if(this._validPosition(window.pageXOffset)||this._validPosition(window.pageYOffset))return {x:window.pageXOffset,y:window.pageYOffset};else return {x:0,y:0}}},_initializeInternal:function(f,g,a,b,e,c,d){if(this._prmInitialized)throw Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);this._prmInitialized=true;this._masterPageUniqueID=d;this._scriptManagerID=f;this._form=Sys.UI.DomElement.resolveElement(g);this._onsubmit=this._form.onsubmit;this._form.onsubmit=null;this._onFormSubmitHandler=Function.createDelegate(this,this._onFormSubmit);this._onFormElementClickHandler=Function.createDelegate(this,this._onFormElementClick);this._onWindowUnloadHandler=Function.createDelegate(this,this._onWindowUnload);Sys.UI.DomEvent.addHandler(this._form,\"submit\",this._onFormSubmitHandler);Sys.UI.DomEvent.addHandler(this._form,\"click\",this._onFormElementClickHandler);Sys.UI.DomEvent.addHandler(window,\"unload\",this._onWindowUnloadHandler);this._originalDoPostBack=window.__doPostBack;if(this._originalDoPostBack)window.__doPostBack=Function.createDelegate(this,this._doPostBack);this._originalDoPostBackWithOptions=window.WebForm_DoPostBackWithOptions;if(this._originalDoPostBackWithOptions)window.WebForm_DoPostBackWithOptions=Function.createDelegate(this,this._doPostBackWithOptions);this._originalFireDefaultButton=window.WebForm_FireDefaultButton;if(this._originalFireDefaultButton)window.WebForm_FireDefaultButton=Function.createDelegate(this,this._fireDefaultButton);this._originalDoCallback=window.WebForm_DoCallback;if(this._originalDoCallback)window.WebForm_DoCallback=Function.createDelegate(this,this._doCallback);this._pageLoadedHandler=Function.createDelegate(this,this._pageLoadedInitialLoad);Sys.UI.DomEvent.addHandler(window,\"load\",this._pageLoadedHandler);if(a)this._updateControls(a,b,e,c,true)},_matchesParentIDInList:function(c,b){for(var a=0,d=b.length;a=c.length){e=this._findText(c,c.length);break}D=c.substr(b,i);b+=i;if(c.charAt(b)!==\"|\"){e=this._findText(c,b);break}b++;Array.add(k,{type:E,id:F,content:D})}if(e){this._endPostBack(this._createPageRequestManagerParserError(String.format(Sys.WebForms.Res.PRM_ParserErrorDetails,e)),h,null);return null}var x=[],w=[],q=[],j=[],t=[],C=[],A=[],z=[],v=[],s=[],m,p,u,n,o,r,y,g;for(var l=0,G=k.length;l=4)a.content=unescape(a.content);if(Sys.Browser.agent===Sys.Browser.InternetExplorer){var f=document.createElement(\"a\");f.style.display=\"none\";f.attachEvent(\"onclick\",B);f.href=a.content;this._form.parentNode.insertBefore(f,this._form);f.click();f.detachEvent(\"onclick\",B);this._form.parentNode.removeChild(f);function B(a){a.cancelBubble=true}}else window.location.href=a.content;return null;case \"error\":this._endPostBack(this._createPageRequestManagerServerError(Number.parseInvariant(a.id),a.content),h,null);return null;case \"pageTitle\":document.title=a.content;break;case \"focus\":this._controlIDToFocus=a.content;break;default:this._endPostBack(this._createPageRequestManagerParserError(String.format(Sys.WebForms.Res.PRM_UnknownToken,a.type)),h,null);return null}}return {version4:g?parseFloat(g.content)>=4:false,executor:h,updatePanelNodes:x,hiddenFieldNodes:w,arrayDeclarationNodes:q,scriptBlockNodes:j,scriptStartupNodes:t,expandoNodes:C,onSubmitNodes:A,dataItemNodes:z,dataItemJsonNodes:v,scriptDisposeNodes:s,asyncPostBackControlIDsNode:m,postBackControlIDsNode:p,updatePanelIDsNode:u,asyncPostBackTimeoutNode:n,childUpdatePanelIDsNode:o,panelsToRefreshNode:r,formActionNode:y}},_processUpdatePanelArrays:function(e,q,r,f){var d,c,b;if(e){var i=e.length,j=f?2:1;d=new Array(i/j);c=new Array(i/j);b=new Array(i/j);for(var g=0,h=0;g=c&&((d+((g-d)/2))<=f));\n},scrollIntoView:function(a){if(!a||!a.parentNode){return;\n}var c=null,b=a.offsetParent,e=a.offsetTop,d=0;\nvar f=a.parentNode;\nwhile(f!=null){var h=$telerik.getCurrentStyle(f,\"overflowY\");\nif(h==\"scroll\"||h==\"auto\"){c=f;\nbreak;\n}if(f==b){e+=f.offsetTop;\nb=f.offsetParent;\n}if(f.tagName==\"BODY\"){var g=f.ownerDocument;\nif(!$telerik.isIE&&g.defaultView&&g.defaultView.frameElement){d=g.defaultView.frameElement.offsetHeight;\n}c=f;\nbreak;\n}f=f.parentNode;\n}if(!c){return;\n}if(!d){d=c.offsetHeight;\n}if((c.scrollTop+d)<(e+a.offsetHeight)){c.scrollTop=(e+a.offsetHeight)-d;\n}else{if(e<(c.scrollTop)){c.scrollTop=e;\n}}},isRightToLeft:function(a){while(a&&a.nodeType!==9){var b=$telerik.getCurrentStyle(a,\"direction\");\nif(a.dir==\"rtl\"||b==\"rtl\"){return true;\n}if(a.dir==\"ltr\"||b==\"ltr\"){return false;\n}a=a.parentNode;\n}return false;\n},getCorrectScrollLeft:function(a){if($telerik.isRightToLeft(a)){return -(a.scrollWidth-a.offsetWidth-Math.abs(a.scrollLeft));\n}else{return a.scrollLeft;\n}},_borderStyleNames:[\"borderTopStyle\",\"borderRightStyle\",\"borderBottomStyle\",\"borderLeftStyle\"],_borderWidthNames:[\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\"],_paddingWidthNames:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],_marginWidthNames:[\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\"],radControls:[],registerControl:function(a){if(!Array.contains(this.radControls,a)){Array.add(this.radControls,a);\n}},unregisterControl:function(a){Array.remove(this.radControls,a);\n},repaintChildren:function(a){var b=a.get_element?a.get_element():a;\nfor(var e=0,c=this.radControls.length;\neJ){L.x+=E.offsetLeft-J;\n}E.style.display=h;\n}L.x-=$telerik.getCorrectScrollLeft(E);\nL.y-=E.scrollTop;\nif(d!=\"inline\"){E=E.parentNode;\n}else{E=E.offsetParent;\n}}}var q=Math.max(v.documentElement.scrollTop,v.body.scrollTop);\nvar t=Math.max(v.documentElement.scrollLeft,v.body.scrollLeft);\nif($telerik.isSafari){if(q>0||t>0){var A=v.documentElement.getElementsByTagName(\"form\");\nif(A&&A.length>0){var k=$telerik.originalGetLocation(A[0]);\nif(k.y&&k.y<0){L.y+=q;\n}if(k.x&&k.x<0){L.x+=t;\n}}else{var n=a.parentNode,m=false,H=false;\nwhile(n&&n.tagName){var B=$telerik.originalGetLocation(n);\nif(B.y<0){m=true;\n}if(B.x<0){H=true;\n}n=n.parentNode;\n}if(m){L.y+=q;\n}if(H){L.x+=t;\n}}}var E=a.parentNode;\nvar u=null;\nvar w=null;\nwhile(E&&E.tagName.toUpperCase()!=\"BODY\"&&E.tagName.toUpperCase()!=\"HTML\"){if(E.tagName.toUpperCase()==\"TD\"){u=E;\n}else{if(E.tagName.toUpperCase()==\"TABLE\"){w=E;\n}else{var p=$telerik.getCurrentStyle(E,\"position\");\nif(p==\"absolute\"||p==\"relative\"){var x=$telerik.getCurrentStyle(E,\"borderTopWidth\",0);\nvar K=$telerik.getCurrentStyle(E,\"borderLeftWidth\",0);\nL.x+=parseInt(x);\nL.y+=parseInt(K);\n}}}var p=$telerik.getCurrentStyle(E,\"position\");\nif(p==\"absolute\"||p==\"relative\"){L.x-=E.scrollLeft;\nL.y-=E.scrollTop;\n}if(u&&w){L.x+=parseInt($telerik.getCurrentStyle(w,\"borderTopWidth\"),0);\nL.y+=parseInt($telerik.getCurrentStyle(w,\"borderLeftWidth\",0));\nif($telerik.getCurrentStyle(w,\"borderCollapse\")!=\"collapse\"){L.x+=parseInt($telerik.getCurrentStyle(u,\"borderTopWidth\",0));\nL.y+=parseInt($telerik.getCurrentStyle(u,\"borderLeftWidth\",0));\n}u=null;\nw=null;\n}else{if(w){if($telerik.getCurrentStyle(w,\"borderCollapse\")!=\"collapse\"){L.x+=parseInt($telerik.getCurrentStyle(w,\"borderTopWidth\",0));\nL.y+=parseInt($telerik.getCurrentStyle(w,\"borderLeftWidth\",0));\n}w=null;\n}}E=E.parentNode;\n}}return L;\n},setLocation:function(a,b){Sys.UI.DomElement.setLocation(a,b.x,b.y);\n},findControl:function(e,d){var c=e.getElementsByTagName(\"*\");\nfor(var a=0,b=c.length;\na=9.5){b=Math.min(window.innerWidth,document.documentElement.clientWidth);\na=Math.min(window.innerHeight,document.documentElement.clientHeight);\n}else{b=Math.min(window.innerWidth,document.body.clientWidth);\na=Math.min(window.innerHeight,document.body.clientHeight);\n}break;\ndefault:b=Math.min(window.innerWidth,document.documentElement.clientWidth);\na=Math.min(window.innerHeight,document.documentElement.clientHeight);\nbreak;\n}return new Sys.UI.Bounds(0,0,b,a);\n},getMarginBox:function(a){if(!a){throw Error.argumentNull(\"element\");\n}var b={top:$telerik.getMargin(a,Telerik.Web.BoxSide.Top),right:$telerik.getMargin(a,Telerik.Web.BoxSide.Right),bottom:$telerik.getMargin(a,Telerik.Web.BoxSide.Bottom),left:$telerik.getMargin(a,Telerik.Web.BoxSide.Left)};\nb.horizontal=b.left+b.right;\nb.vertical=b.top+b.bottom;\nreturn b;\n},getPaddingBox:function(a){if(!a){throw Error.argumentNull(\"element\");\n}var b={top:$telerik.getPadding(a,Telerik.Web.BoxSide.Top),right:$telerik.getPadding(a,Telerik.Web.BoxSide.Right),bottom:$telerik.getPadding(a,Telerik.Web.BoxSide.Bottom),left:$telerik.getPadding(a,Telerik.Web.BoxSide.Left)};\nb.horizontal=b.left+b.right;\nb.vertical=b.top+b.bottom;\nreturn b;\n},getBorderBox:function(a){if(!a){throw Error.argumentNull(\"element\");\n}var b={top:$telerik.getBorderWidth(a,Telerik.Web.BoxSide.Top),right:$telerik.getBorderWidth(a,Telerik.Web.BoxSide.Right),bottom:$telerik.getBorderWidth(a,Telerik.Web.BoxSide.Bottom),left:$telerik.getBorderWidth(a,Telerik.Web.BoxSide.Left)};\nb.horizontal=b.left+b.right;\nb.vertical=b.top+b.bottom;\nreturn b;\n},isBorderVisible:function(c,b){if(!c){throw Error.argumentNull(\"element\");\n}if(bTelerik.Web.BoxSide.Left){throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,b,\"Telerik.Web.BoxSide\"));\n}var a=$telerik._borderStyleNames[b];\nvar d=$telerik.getCurrentStyle(c,a);\nreturn d!=\"none\";\n},getMargin:function(c,b){if(!c){throw Error.argumentNull(\"element\");\n}if(bTelerik.Web.BoxSide.Left){throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,b,\"Telerik.Web.BoxSide\"));\n}var a=$telerik._marginWidthNames[b];\nvar d=$telerik.getCurrentStyle(c,a);\ntry{return $telerik.parsePadding(d);\n}catch(e){return 0;\n}},getBorderWidth:function(c,b){if(!c){throw Error.argumentNull(\"element\");\n}if(bTelerik.Web.BoxSide.Left){throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,b,\"Telerik.Web.BoxSide\"));\n}if(!$telerik.isBorderVisible(c,b)){return 0;\n}var a=$telerik._borderWidthNames[b];\nvar d=$telerik.getCurrentStyle(c,a);\nreturn $telerik.parseBorderWidth(d);\n},getPadding:function(c,b){if(!c){throw Error.argumentNull(\"element\");\n}if(bTelerik.Web.BoxSide.Left){throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,b,\"Telerik.Web.BoxSide\"));\n}var a=$telerik._paddingWidthNames[b];\nvar d=$telerik.getCurrentStyle(c,a);\nreturn $telerik.parsePadding(d);\n},parseBorderWidth:function(b){if(b){switch(b){case\"thin\":case\"medium\":case\"thick\":return $telerik._borderThicknesses[b];\ncase\"inherit\":return 0;\n}var a=$telerik.parseUnit(b);\nreturn a.size;\n}return 0;\n},parsePadding:function(b){if(b){if(b==\"auto\"||b==\"inherit\"){return 0;\n}var a=$telerik.parseUnit(b);\nreturn a.size;\n}return 0;\n},parseUnit:function(a){if(!a){throw Error.argumentNull(\"value\");\n}a=a.trim().toLowerCase();\nvar c=a.length;\nvar g=-1;\nfor(var b=0;\nb\"9\")&&d!=\"-\"&&d!=\".\"&&d!=\",\"){break;\n}g=b;\n}if(g==-1){throw Error.create(\"No digits\");\n}var f;\nvar e;\nif(g<(c-1)){f=a.substring(g+1).trim();\n}else{f=\"px\";\n}e=parseFloat(a.substr(0,g+1));\nif(f==\"px\"){e=Math.floor(e);\n}return{size:e,type:f};\n},containsPoint:function(c,b,a){return b>=c.x&&b<=(c.x+c.width)&&a>=c.y&&a<=(c.y+c.height);\n},isDescendant:function(c,a){try{for(var d=a.parentNode;\nd!=null;\nd=d.parentNode){if(d==c){return true;\n}}}catch(b){}return false;\n},isDescendantOrSelf:function(a,b){if(a===b){return true;\n}return $telerik.isDescendant(a,b);\n},addCssClasses:function(c,a){for(var b=0;\nb=0;\nc--){var e=b[c];\nif(!g||e.autoRemove){$telerik.removeHandler(a,f,e.handler);\n}}}a._events=null;\n}},_disposeHandlers:function(){$telerik._clearHandlers(this,true);\nvar a=this._chainDispose,b=typeof(a);\nif(b!==\"undefined\"){this.dispose=a;\nthis._chainDispose=null;\nif(b===\"function\"){this.dispose();\n}}},removeHandler:function(c,b,a){$telerik._removeHandler(c,b,a);\n},_removeHandler:function(a,f,e){var g=null;\nvar c=a._events[f];\nfor(var b=0,d=c.length;\nbwindow.innerWidth){b=document.documentElement.clientWidth;\n}if(a>window.innerHeight){a=document.documentElement.clientHeight;\n}}else{b=c.clientWidth;\na=c.clientHeight;\n}b+=c.scrollLeft;\na+=c.scrollTop;\nif($telerik.isMobileSafari){b+=window.pageXOffset;\na+=window.pageYOffset;\n}return{width:b-6,height:a-6};\n},elementOverflowsTop:function(c,a){var b=a||$telerik.getLocation(c);\nreturn b.y<0;\n},elementOverflowsLeft:function(c,a){var b=a||$telerik.getLocation(c);\nreturn b.x<0;\n},elementOverflowsBottom:function(c,d,a){var e=a||$telerik.getLocation(d);\nvar b=e.y+d.offsetHeight;\nreturn b>c.height;\n},elementOverflowsRight:function(c,d,a){var e=a||$telerik.getLocation(d);\nvar b=e.x+d.offsetWidth;\nreturn b>c.width;\n},getDocumentRelativeCursorPosition:function(f){var c=document.documentElement;\nvar a=document.body;\nvar b=f.clientX+($telerik.getCorrectScrollLeft(c)+$telerik.getCorrectScrollLeft(a));\nvar d=f.clientY+(c.scrollTop+a.scrollTop);\nif($telerik.isIE&&Sys.Browser.version<8){b-=2;\nd-=2;\n}return{left:b,top:d};\n},evalScriptCode:function(c){if($telerik.isSafari){c=c.replace(/^\\s*\\s*$/mi,\"$1\");\n}var b=document.createElement(\"script\");\nb.setAttribute(\"type\",\"text/javascript\");\nb.text=c;\nvar a=document.getElementsByTagName(\"head\")[0];\na.appendChild(b);\nb.parentNode.removeChild(b);\n},isScriptRegistered:function(a,b){if(!a){return 0;\n}if(!b){b=document;\n}if($telerik._uniqueScripts==null){$telerik._uniqueScripts={};\n}var f=document.getElementsByTagName(\"script\");\nvar g=0;\nvar k=a.indexOf(\"?d=\");\nvar j=a.indexOf(\"&\");\nvar d=k>0&&j>k?a.substring(k+3,j):a;\nif($telerik._uniqueScripts[d]!=null){return 2;\n}for(var c=0,e=f.length;\nc0&&($telerik.isIE||$telerik.isSafari)){window.setTimeout(function(){m(o,n);\n},5);\n}else{var i=document.createElement(\"script\");\ni.setAttribute(\"type\",\"text/javascript\");\ndocument.getElementsByTagName(\"head\")[0].appendChild(i);\ni.loadFinished=false;\ni.onload=function(){if(!this.loadFinished){this.loadFinished=true;\ne++;\n}};\ni.onreadystatechange=function(){if(\"loaded\"===this.readyState&&!this.loadFinished){this.loadFinished=true;\ne++;\n}};\ni.setAttribute(\"src\",n);\n}};\nvar j=[];\nfor(var c=0,f=h.length;\nc0){window.setTimeout(l,20);\n}else{for(var i=0;\ni0){var a=document.getElementsByTagName(\"head\")[0];\nif(a){for(var c=0,h=g.length;\nc=0){try{f.href=f.href.replace(\"&ie7CacheFix\",\"\");\nf.href=f.href.replace(\"?ie7CacheFix\",\"\");\n}catch(k){}}if(l&&l.length>0){var d=l.length-1;\nwhile(d>=0&&l[d--].href!=f.href){}if(d>=0){continue;\n}}if($telerik.isIE&&!$telerik.isIE9){f.parentNode.removeChild(f);\nf=f.cloneNode(true);\n}a.appendChild(f);\nif(h>g.length){h=g.length;\nc--;\n}}}}}},getFirstChildByTagName:function(d,b,c){if(!d||!d.childNodes){return null;\n}var a=d.childNodes[c]||d.firstChild;\nwhile(a){if(a.nodeType==1&&a.tagName.toLowerCase()==b){return a;\n}a=a.nextSibling;\n}return null;\n},getChildByClassName:function(a,d,c){var b=a.childNodes[c]||a.firstChild;\nwhile(b){if(b.nodeType==1&&b.className.indexOf(d)>-1){return b;\n}b=b.nextSibling;\n}return null;\n},getChildrenByTagName:function(b,d){var a=new Array();\nvar e=b.childNodes;\nif($telerik.isIE){e=b.children;\n}for(var c=0,g=e.length;\nc-1){Array.add(a,e);\n}}return a;\n},mergeElementAttributes:function(d,b,a){if(!d||!b){return;\n}if(d.mergeAttributes){b.mergeAttributes(d,a);\n}else{for(var c=0;\nc-1){Sys.Browser.version=parseFloat(navigator.userAgent.match(/WebKit\\/(\\d+(\\.\\d+)?)/)[1]);\nSys.Browser.agent=Sys.Browser.Chrome;\nSys.Browser.name=\"Chrome\";\n}else{if(navigator.userAgent.indexOf(\"WebKit/\")>-1){Sys.Browser.version=parseFloat(navigator.userAgent.match(/WebKit\\/(\\d+(\\.\\d+)?)/)[1]);\nif(Sys.Browser.version<500){Sys.Browser.agent=Sys.Browser.Safari;\nSys.Browser.name=\"Safari\";\n}else{Sys.Browser.agent=Sys.Browser.WebKit;\nSys.Browser.name=\"WebKit\";\n}}}$telerik.isMobileSafari=(navigator.userAgent.search(/like\\sMac\\sOS\\sX;.*Mobile\\/\\S+/)!=-1);\n$telerik.isChrome=Sys.Browser.agent==Sys.Browser.Chrome;\n$telerik.isSafari4=Sys.Browser.agent==Sys.Browser.WebKit&&Sys.Browser.version>=526;\n$telerik.isSafari3=Sys.Browser.agent==Sys.Browser.WebKit&&Sys.Browser.version<526&&Sys.Browser.version>500;\n$telerik.isSafari2=Sys.Browser.agent==Sys.Browser.Safari;\n$telerik.isSafari=$telerik.isSafari2||$telerik.isSafari3||$telerik.isSafari4||$telerik.isChrome;\n$telerik.isAndroid=(navigator.userAgent.search(/Android.*Safari\\/\\S+/i)!=-1);\n$telerik.isBlackBerry4=(navigator.userAgent.search(/BlackBerry\\d+\\/4[\\d\\.]+/i)!=-1);\n$telerik.isBlackBerry5=(navigator.userAgent.search(/BlackBerry\\d+\\/5[\\d\\.]+/i)!=-1);\n$telerik.isBlackBerry6=(navigator.userAgent.search(/BlackBerry.*Safari\\/\\S+/i)!=-1);\n$telerik.isBlackBerry=$telerik.isBlackBerry4||$telerik.isBlackBerry5||$telerik.isBlackBerry6;\n$telerik.isIE=Sys.Browser.agent==Sys.Browser.InternetExplorer;\n$telerik.isIE6=$telerik.isIE&&Sys.Browser.version<7;\n$telerik.isIE7=$telerik.isIE&&(Sys.Browser.version==7||(document.documentMode&&document.documentMode==7));\n$telerik.isIE8=$telerik.isIE&&(document.documentMode&&document.documentMode==8);\n$telerik.isIE9=$telerik.isIE&&(document.documentMode&&document.documentMode==9);\n$telerik.isOpera=Sys.Browser.agent==Sys.Browser.Opera;\n$telerik.isFirefox=Sys.Browser.agent==Sys.Browser.Firefox;\n$telerik.isFirefox2=$telerik.isFirefox&&Sys.Browser.version<3;\n$telerik.isFirefox3=$telerik.isFirefox&&Sys.Browser.version>=3;\n$telerik.quirksMode=$telerik.isIE&&document.compatMode!=\"CSS1Compat\";\n$telerik.standardsMode=!$telerik.quirksMode;\n$telerik.OperaEngine=0;\nif($telerik.isOpera){var prestoVersion=navigator.userAgent.match(/Presto\\/(\\d+(\\.\\d+)?)/);\nif(prestoVersion){$telerik.OperaEngine=parseFloat(prestoVersion[1]);\n}}$telerik.isOpera9=$telerik.isOpera&&$telerik.OperaEngine<=2.1;\n$telerik.isOpera10=$telerik.isOpera&&$telerik.OperaEngine>=2.2&&$telerik.OperaEngine<=2.4;\n$telerik.isOpera105=$telerik.isOpera&&$telerik.OperaEngine>=2.5;\n$telerik.isOpera11=$telerik.isOpera&&$telerik.OperaEngine>=2.7;\n$telerik.isTouchDevice=$telerik.isMobileSafari||$telerik.isAndroid;\nif($telerik.isIE9){document.documentElement.className+=\" _Telerik_IE9\";\n}if($telerik.isOpera11){document.documentElement.className+=\" _Telerik_Opera11\";\n}else{if($telerik.isOpera105){document.documentElement.className+=\" _Telerik_Opera105\";\n}}if(document.documentElement.getBoundingClientRect){$telerik.originalGetLocation=function(b){var k=Function._validateParams(arguments,[{name:\"element\",domElement:true}]);\nif(k){throw k;\n}if(b.self||b.nodeType===9||(b===document.documentElement)||(b.parentNode===b.ownerDocument.documentElement)){return new Sys.UI.Point(0,0);\n}var l=b.getBoundingClientRect();\nif(!l){return new Sys.UI.Point(0,0);\n}var h,a=b.ownerDocument.documentElement,g=Math.round(l.left)+a.scrollLeft,i=Math.round(l.top)+a.scrollTop;\nif(Sys.Browser.agent===Sys.Browser.InternetExplorer){try{var n=b.ownerDocument.parentWindow.frameElement||null;\nif(n){var j=(n.frameBorder===\"0\"||n.frameBorder===\"no\")?2:0;\ng+=j;\ni+=j;\n}}catch(h){}if(Sys.Browser.version===7&&!document.documentMode){var c=document.body,d=c.getBoundingClientRect(),m=(d.right-d.left)/c.clientWidth;\nm=Math.round(m*100);\nm=(m-m%5)/100;\nif(!isNaN(m)&&(m!==1)){g=Math.round(g/m);\ni=Math.round(i/m);\n}}if((document.documentMode||0)<8){g-=a.clientLeft;\ni-=a.clientTop;\n}}return new Sys.UI.Point(g,i);\n};\n}else{if($telerik.isSafari){$telerik.originalGetLocation=function(a){var j=Function._validateParams(arguments,[{name:\"element\",domElement:true}]);\nif(j){throw j;\n}if((a.window&&(a.window===a))||a.nodeType===9){return new Sys.UI.Point(0,0);\n}var f=0,i=0,b,g=null,h=null,k;\nfor(b=a;\nb;\ng=b,h=k,b=b.offsetParent){k=Sys.UI.DomElement._getCurrentStyle(b);\nvar c=b.tagName?b.tagName.toUpperCase():null;\nif((b.offsetLeft||b.offsetTop)&&((c!==\"BODY\")||(!h||h.position!==\"absolute\"))){f+=b.offsetLeft;\ni+=b.offsetTop;\n}if(g&&Sys.Browser.version>=3){f+=parseInt(k.borderLeftWidth);\ni+=parseInt(k.borderTopWidth);\n}}k=Sys.UI.DomElement._getCurrentStyle(a);\nvar d=k?k.position:null;\nif(!d||(d!==\"absolute\")){for(b=a.parentNode;\nb;\nb=b.parentNode){c=b.tagName?b.tagName.toUpperCase():null;\nif((c!==\"BODY\")&&(c!==\"HTML\")&&(b.scrollLeft||b.scrollTop)){f-=(b.scrollLeft||0);\ni-=(b.scrollTop||0);\n}k=Sys.UI.DomElement._getCurrentStyle(b);\nvar l=k?k.position:null;\nif(l&&(l===\"absolute\")){break;\n}}}return new Sys.UI.Point(f,i);\n};\n}else{$telerik.originalGetLocation=function(a){var j=Function._validateParams(arguments,[{name:\"element\",domElement:true}]);\nif(j){throw j;\n}if((a.window&&(a.window===a))||a.nodeType===9){return new Sys.UI.Point(0,0);\n}var f=0,i=0,b,g=null,h=null,k=null;\nfor(b=a;\nb;\ng=b,h=k,b=b.offsetParent){var c=b.tagName?b.tagName.toUpperCase():null;\nk=Sys.UI.DomElement._getCurrentStyle(b);\nif((b.offsetLeft||b.offsetTop)&&!((c===\"BODY\")&&(!h||h.position!==\"absolute\"))){f+=b.offsetLeft;\ni+=b.offsetTop;\n}if(g!==null&&k){if((c!==\"TABLE\")&&(c!==\"TD\")&&(c!==\"HTML\")){f+=parseInt(k.borderLeftWidth)||0;\ni+=parseInt(k.borderTopWidth)||0;\n}if(c===\"TABLE\"&&(k.position===\"relative\"||k.position===\"absolute\")){f+=parseInt(k.marginLeft)||0;\ni+=parseInt(k.marginTop)||0;\n}}}k=Sys.UI.DomElement._getCurrentStyle(a);\nvar d=k?k.position:null;\nif(!d||(d!==\"absolute\")){for(b=a.parentNode;\nb;\nb=b.parentNode){c=b.tagName?b.tagName.toUpperCase():null;\nif((c!==\"BODY\")&&(c!==\"HTML\")&&(b.scrollLeft||b.scrollTop)){f-=(b.scrollLeft||0);\ni-=(b.scrollTop||0);\nk=Sys.UI.DomElement._getCurrentStyle(b);\nif(k){f+=parseInt(k.borderLeftWidth)||0;\ni+=parseInt(k.borderTopWidth)||0;\n}}}}return new Sys.UI.Point(f,i);\n};\n}}Sys.Application.add_init(function(){try{$telerik._borderThickness();\n}catch(a){}});\nTelerik.Web.UI.Orientation=function(){throw Error.invalidOperation();\n};\nTelerik.Web.UI.Orientation.prototype={Horizontal:0,Vertical:1};\nTelerik.Web.UI.Orientation.registerEnum(\"Telerik.Web.UI.Orientation\",false);\nTelerik.Web.UI.RadWebControl=function(a){Telerik.Web.UI.RadWebControl.initializeBase(this,[a]);\nthis._clientStateFieldID=null;\nthis._shouldUpdateClientState=true;\nthis._invisibleParents=[];\n};\nTelerik.Web.UI.RadWebControl.prototype={initialize:function(){Telerik.Web.UI.RadWebControl.callBaseMethod(this,\"initialize\");\n$telerik.registerControl(this);\nif(!this.get_clientStateFieldID()){return;\n}var a=$get(this.get_clientStateFieldID());\nif(!a){return;\n}a.setAttribute(\"autocomplete\",\"off\");\n},dispose:function(){$telerik.unregisterControl(this);\nvar b=this.get_element();\nthis._clearParentShowHandlers();\nTelerik.Web.UI.RadWebControl.callBaseMethod(this,\"dispose\");\nif(b){b.control=null;\nvar a=true;\nif(b._events){for(var c in b._events){if(b._events[c].length>0){a=false;\nbreak;\n}}if(a){b._events=null;\n}}}},raiseEvent:function(b,c){var a=this.get_events().getHandler(b);\nif(a){if(!c){c=Sys.EventArgs.Empty;\n}a(this,c);\n}},updateClientState:function(){if(this._shouldUpdateClientState){this.set_clientState(this.saveClientState());\n}},saveClientState:function(){return null;\n},get_clientStateFieldID:function(){return this._clientStateFieldID;\n},set_clientStateFieldID:function(a){if(this._clientStateFieldID!=a){this._clientStateFieldID=a;\nthis.raisePropertyChanged(\"ClientStateFieldID\");\n}},get_clientState:function(){if(this._clientStateFieldID){var a=document.getElementById(this._clientStateFieldID);\nif(a){return a.value;\n}}return null;\n},set_clientState:function(b){if(this._clientStateFieldID){var a=document.getElementById(this._clientStateFieldID);\nif(a){a.value=b;\n}}},repaint:function(){},canRepaint:function(){return this.get_element().offsetWidth>0;\n},add_parentShown:function(a){var b=$telerik.getInvisibleParent(a);\nif(!b){return;\n}if(!Array.contains(this._invisibleParents,b)){Array.add(this._invisibleParents,b);\nthis._handleHiddenParent(true,b);\n}},remove_parentShown:function(a){Array.remove(this._invisibleParents,a);\nthis._handleHiddenParent(false,a);\n},_handleHiddenParent:function(a,b){if(!b){return;\n}if(!this._parentShowDelegate){this._parentShowDelegate=Function.createDelegate(this,this._parentShowHandler);\n}var e=this._parentShowDelegate;\nvar c=\"DOMAttrModified\";\nif($telerik.isIE){c=\"propertychange\";\n}var d=a?$telerik.addExternalHandler:$telerik.removeExternalHandler;\nd(b,c,e);\n},_parentShowHandler:function(c){if($telerik.isIE){if(c.rawEvent){var c=c.rawEvent;\n}if(!c||!c.srcElement||!c.propertyName){return;\n}var d=c.srcElement;\nif(c.propertyName==\"style.display\"||c.propertyName==\"className\"){var a=$telerik.getCurrentStyle(d,\"display\");\nif(a!=\"none\"){c.target=d;\nthis._runWhenParentShows(c);\n}}}else{if(c.attrName==\"style\"||c.attrName==\"class\"){var b=c.target;\nif((c.currentTarget==c.target)&&(\"none\"!=$telerik.getCurrentStyle(b,\"display\"))){window.setTimeout(Function.createDelegate(this,function(){this._runWhenParentShows(c);\n}),0);\n}}}},_runWhenParentShows:function(b){var a=b.target;\nthis.remove_parentShown(a);\nthis.repaint();\n},_clearParentShowHandlers:function(){var a=this._invisibleParents;\nfor(var b=0;\nbthis._actions.length){c=this._actions.length;\n}var d=0;\nvar b=null;\nwhile(0this._actions.length){c=this._actions.length;\n}var d=0;\nvar b=null;\nvar e=this._currentActionIndex+1;\nwhile(0=a){this._currentActionIndex--;\n}},canUndo:function(){return(-1\").appendTo(\"body\"),c=b.css(\"display\");b.remove();if(c===\"none\"||c===\"\")c=\"block\";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject(\"Microsoft.XMLHTTP\")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!==\"*\"?a+\".\":\"\")+b.replace(r,\"`\").replace(s,\"&\")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,\"events\");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!==\"click\")){a.namespace&&(n=new RegExp(\"(^|\\\\.)\"+a.namespace.split(\".\").join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!==\"toJSON\")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute(\"data-\"+c);if(typeof f===\"string\"){try{f=f===\"true\"?!0:f===\"false\"?!1:f===\"null\"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll(\"left\")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]+)$)/,i=/\\S/,j=/^\\s+/,k=/\\s+$/,l=/\\d/,m=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,n=/^[\\],:{}\\s]*$/,o=/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,q=/(?:^|:|,)(?:\\s*\\[)+/g,r=/(webkit)[ \\/]([\\w.]+)/,s=/(opera)(?:.*version)?[ \\/]([\\w.]+)/,t=/(msie) ([\\w.]+)/,u=/(mozilla)(?:.*? rv:([\\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z=\"then done fail isResolved isRejected promise\".split(\" \"),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a===\"body\"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector=\"body\",this.length=1;return this}if(typeof a===\"string\"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:\"\",jquery:\"1.5.1\",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b===\"find\"?e.selector=this.selector+(this.selector?\" \":\"\")+c:b&&(e.selector=this.selector+\".\"+b+\"(\"+c+\")\");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),\"slice\",E.call(arguments).join(\",\"))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i===\"boolean\"&&(l=i,i=arguments[1]||{},j=2),typeof i!==\"object\"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger(\"ready\").unbind(\"ready\")}},bindReady:function(){if(!x){x=!0;if(c.readyState===\"complete\")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener(\"DOMContentLoaded\",A,!1),a.addEventListener(\"load\",d.ready,!1);else if(c.attachEvent){c.attachEvent(\"onreadystatechange\",A),a.attachEvent(\"onload\",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)===\"function\"},isArray:Array.isArray||function(a){return d.type(a)===\"array\"},isWindow:function(a){return a&&typeof a===\"object\"&&\"setInterval\"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||\"object\"},isPlainObject:function(a){if(!a||d.type(a)!==\"object\"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,\"constructor\")&&!C.call(a.constructor.prototype,\"isPrototypeOf\"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!==\"string\"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,\"@\").replace(p,\"]\").replace(q,\"\")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function(\"return \"+b))();d.error(\"Invalid JSON: \"+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,\"text/xml\")):(c=new ActiveXObject(\"Microsoft.XMLDOM\"),c.async=\"false\",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName===\"parsererror\")&&d.error(\"Invalid XML: \"+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName(\"head\")[0]||c.documentElement,e=c.createElement(\"script\");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf(\"compatible\")<0&&u.exec(a)||[];return{browser:b[1]||\"\",version:b[2]||\"0\"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each(\"Boolean Number String Function Array Date RegExp Object\".split(\" \"),function(a,b){H[\"[object \"+b+\"]\"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(\" \")&&(j=/^[\\s\\xA0]+/,k=/[\\s\\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener(\"DOMContentLoaded\",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState===\"complete\"&&(c.detachEvent(\"onreadystatechange\",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement(\"div\");b.style.display=\"none\",b.innerHTML=\"
a\";var e=b.getElementsByTagName(\"*\"),f=b.getElementsByTagName(\"a\")[0],g=c.createElement(\"select\"),h=g.appendChild(c.createElement(\"option\")),i=b.getElementsByTagName(\"input\")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName(\"tbody\").length,htmlSerialize:!!b.getElementsByTagName(\"link\").length,style:/red/.test(f.getAttribute(\"style\")),hrefNormalized:f.getAttribute(\"href\")===\"/a\",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value===\"on\",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement(\"script\"),f=\"script\"+d.now();try{e.appendChild(c.createTextNode(\"window.\"+f+\"=1;\"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent(\"onclick\",function l(){d.support.noCloneEvent=!1,b.detachEvent(\"onclick\",l)}),b.cloneNode(!0).fireEvent(\"onclick\")),b=c.createElement(\"div\"),b.innerHTML=\"\";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement(\"div\"),b=c.getElementsByTagName(\"body\")[0];if(b){a.style.width=a.style.paddingLeft=\"1px\",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,\"zoom\"in a.style&&(a.style.display=\"inline\",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display=\"\",a.innerHTML=\"
\",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML=\"
t
\";var e=a.getElementsByTagName(\"td\");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display=\"\",e[1].style.display=\"none\",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML=\"\",b.removeChild(a).style.display=\"none\",a=e=null}});var n=function(a){var b=c.createElement(\"div\");a=\"on\"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,\"return;\"),d=typeof b[a]===\"function\"),b=null;return d};d.support.submitBubbles=n(\"submit\"),d.support.changeBubbles=n(\"change\"),b=e=f=null}})();var e=/^(?:\\{.*\\}|\\[.*\\])$/;d.extend({cache:{},uuid:0,expando:\"jQuery\"+(d.fn.jquery+Math.random()).replace(/\\D/g,\"\"),noData:{embed:!0,object:\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c===\"string\",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c===\"object\"||typeof c===\"function\")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c===\"events\"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute(\"classid\")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a===\"undefined\"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,\"option\")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,\"select\")){var f=c.selectedIndex,g=[],h=c.options,i=c.type===\"select-one\";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,\"select\")){var f=d.makeArray(e);d(\"option\",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c===\"selected\"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c===\"type\"&&l.test(a.nodeName)&&a.parentNode&&d.error(\"type property can't be changed\"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,\"form\")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c===\"tabIndex\"){var o=a.getAttributeNode(\"tabIndex\");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c===\"style\"){h&&(a.style.cssText=\"\"+e);return a.style.cssText}h&&a.setAttribute(c,\"\"+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\\./g,s=/ /g,t=/[^\\w\\s.|`]/g,u=function(a){return a.replace(t,\"\\\\$&\")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!==\"undefined\"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(\" \");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(\".\")>-1?(p=n.split(\".\"),n=p.shift(),j.namespace=p.slice(0).sort().join(\".\")):(p=[],j.namespace=\"\"),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent(\"on\"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c===\"string\"&&c.charAt(0)===\".\"){c=c||\"\";for(h in t)d.event.remove(a,h+c);return}c=c.split(\" \");while(h=c[k++]){r=h,q=null,l=h.indexOf(\".\")<0,m=[],l||(m=h.split(\".\"),h=m.shift(),n=new RegExp(\"(^|\\\\.)\"+d.map(m.slice(0).sort(),u).join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,\"handle\");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e[\"on\"+f]&&e[\"on\"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,\"\"),n=d.nodeName(l,\"a\")&&m===\"click\",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l[\"on\"+m],k&&(l[\"on\"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l[\"on\"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(\".\")<0&&!c.exclusive,e||(g=c.type.split(\".\"),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp(\"(^|\\\\.)\"+j.join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\")),c.namespace=c.namespace||j.join(\".\"),i=d._data(this,\"events\"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join(\"-\"):\"\":a.nodeName.toLowerCase()===\"select\"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,\"_change_data\"),f=A(c),(a.type!==\"focusout\"||c.type!==\"radio\")&&d._data(c,\"_change_data\",f);if(e===b||f===e)return;if(e!=null||f)a.type=\"change\",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c===\"radio\"||c===\"checkbox\"||b.nodeName.toLowerCase()===\"select\")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!==\"textarea\"||a.keyCode===32&&(c===\"checkbox\"||c===\"radio\")||c===\"select-multiple\")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,\"_change_data\",A(b))}},setup:function(a,b){if(this.type===\"file\")return!1;for(var c in z)d.event.add(this,c+\".specialChange\",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,\".specialChange\");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each([\"bind\",\"one\"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a===\"object\"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c===\"one\"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a===\"unload\"&&c!==\"one\")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\\\/g,j=/\\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!==\"string\")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(\"\"),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]===\"~\"||x[0]===\"+\")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r=\"\",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)===\"[object Array]\")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e\":function(a,b){var c,d=typeof b===\"string\",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,\"\")},TAG:function(a,b){return a[1].replace(i,\"\").toLowerCase()},CHILD:function(a){if(a[1]===\"nth\"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\\+|\\s*/g,\"\");var b=/(-?)(\\d*)(?:n([+\\-]?\\d*))?/.exec(a[2]===\"even\"&&\"2n\"||a[2]===\"odd\"&&\"2n+1\"||!/\\D/.test(a[2])&&\"0n+\"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,\"\");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||\"\").replace(i,\"\"),a[2]===\"~=\"&&(a[4]=\" \"+a[4]+\" \");return a},PSEUDO:function(b,c,d,e,f){if(b[1]===\"not\")if((a.exec(b[3])||\"\").length>1||/^\\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!==\"hidden\"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\\d/i.test(a.nodeName)},text:function(a){return\"text\"===a.getAttribute(\"type\")},radio:function(a){return\"radio\"===a.type},checkbox:function(a){return\"checkbox\"===a.type},file:function(a){return\"file\"===a.type},password:function(a){return\"password\"===a.type},submit:function(a){return\"submit\"===a.type},image:function(a){return\"image\"===a.type},reset:function(a){return\"reset\"===a.type},button:function(a){return\"button\"===a.type||a.nodeName.toLowerCase()===\"button\"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e===\"contains\")return(a.textContent||a.innerText||k.getText([a])||\"\").indexOf(b[3])>=0;if(e===\"not\"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute(\"id\")===b},TAG:function(a,b){return b===\"*\"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(\" \"+(a.className||a.getAttribute(\"class\"))+\" \").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+\"\",f=b[2],g=b[4];return d==null?f===\"!=\":f===\"=\"?e===g:f===\"*=\"?e.indexOf(g)>=0:f===\"~=\"?(\" \"+e+\" \").indexOf(g)>=0:g?f===\"!=\"?e!==g:f===\"^=\"?e.indexOf(g)===0:f===\"$=\"?e.substr(e.length-g.length)===g:f===\"|=\"?e===g||e.substr(0,g.length+1)===g+\"-\":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return\"\\\\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\\r|\\n)*?)/.source+l.match[o].source.replace(/\\\\(\\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)===\"[object Array]\")Array.prototype.push.apply(d,a);else if(typeof a.length===\"number\")for(var e=a.length;c\",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!==\"undefined\"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!==\"undefined\"&&e.getAttributeNode(\"id\").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!==\"undefined\"&&a.getAttributeNode(\"id\");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement(\"div\");a.appendChild(c.createComment(\"\")),a.getElementsByTagName(\"*\").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]===\"*\"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=\"\",a.firstChild&&typeof a.firstChild.getAttribute!==\"undefined\"&&a.firstChild.getAttribute(\"href\")!==\"#\"&&(l.attrHandle.href=function(a){return a.getAttribute(\"href\",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement(\"div\"),d=\"__sizzle__\";b.innerHTML=\"

\";if(!b.querySelectorAll||b.querySelectorAll(\".TEST\").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\\w+$)|^\\.([\\w\\-]+$)|^#([\\w\\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b===\"body\"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!==\"object\"){var m=e,n=e.getAttribute(\"id\"),o=n||d,q=e.parentNode,r=/^\\s*[+~]/.test(b);n?o=o.replace(/'/g,\"\\\\$&\"):e.setAttribute(\"id\",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll(\"[id='\"+o+\"'] \"+b),f)}catch(s){}finally{n||m.removeAttribute(\"id\")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,\"[test!='']:sizzle\")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\\=\\s*([^'\"\\]]*)\\s*\\]/g,\"='$1']\");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement(\"div\");a.innerHTML=\"
\";if(a.getElementsByClassName&&a.getElementsByClassName(\"e\").length!==0){a.lastChild.className=\"e\";if(a.getElementsByClassName(\"e\").length===1)return;l.order.splice(1,0,\"CLASS\"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==\"undefined\"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!==\"HTML\":!1};var v=function(a,b){var c,d=[],e=\"\",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,\"\");a=l.relative[a]?a+\"*\":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,\"closest\",a)},index:function(a){if(!a||typeof a===\"string\")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a===\"string\"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,\"parentNode\")},parentsUntil:function(a,b,c){return d.dir(a,\"parentNode\",c)},next:function(a){return d.nth(a,2,\"nextSibling\")},prev:function(a){return d.nth(a,2,\"previousSibling\")},nextAll:function(a){return d.dir(a,\"nextSibling\")},prevAll:function(a){return d.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return d.dir(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return d.dir(a,\"previousSibling\",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,\"iframe\")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e===\"string\"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(\",\"))}}),d.extend({filter:function(a,b,c){c&&(a=\":not(\"+a+\")\");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\\d+=\"(?:\\d+|null)\"/g,Q=/^\\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,S=/<([\\w:]+)/,T=/\",\"\"],legend:[1,\"
\",\"
\"],thead:[1,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],col:[2,\"\",\"
\"],area:[1,\"\",\"\"],_default:[0,\"\",\"\"]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,\"div
\",\"
\"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!==\"object\"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,\"body\")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,\"before\",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,\"after\",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName(\"*\")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName(\"*\"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,\"\"):null;if(typeof a!==\"string\"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||[\"\",\"\"])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,\"<$1>\");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement===\"undefined\"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i===\"number\"&&(i+=\"\");if(!i)continue;if(typeof i!==\"string\"||U.test(i)){if(typeof i===\"string\"){i=i.replace(R,\"<$1>\");var j=(S.exec(i)||[\"\",\"\"])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement(\"div\");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j===\"table\"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===\"\"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],\"tbody\")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],\"script\")||g[h].type&&g[h].type.toLowerCase()!==\"text/javascript\"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName(\"script\")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\\([^)]*\\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\\d+(?:px)?$/i,bg=/^-?\\d/,bh={position:\"absolute\",visibility:\"hidden\",display:\"block\"},bi=[\"Left\",\"Right\"],bj=[\"Top\",\"Bottom\"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,\"opacity\",\"opacity\");return c===\"\"?\"1\":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{\"float\":d.support.cssFloat?\"cssFloat\":\"styleFloat\"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&\"get\"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e===\"number\"&&isNaN(e)||e==null)return;typeof e===\"number\"&&!d.cssNumber[h]&&(e+=\"px\");if(!j||!(\"set\"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&\"get\"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each([\"height\",\"width\"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f===\"0px\"&&bm&&(f=bm(a,b,b));if(f!=null)return f===\"\"||f===\"auto\"?\"0px\":f}if(f<0||f==null){f=a.style[b];return f===\"\"||f===\"auto\"?\"0px\":f}return typeof f===\"string\"?f:f+\"px\"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+\"px\"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||\"\")?parseFloat(RegExp.$1)/100+\"\":b?\"1\":\"\"},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?\"\":\"alpha(opacity=\"+b*100+\")\",f=c.filter||\"\";c.filter=bb.test(f)?f.replace(bb,e):c.filter+\" \"+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,\"-$1\").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===\"\"&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b===\"fontSize\"?\"1em\":d||0,d=f.pixelLeft+\"px\",f.left=c,e&&(a.runtimeStyle.left=e));return d===\"\"?\"auto\":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,\"display\"))===\"none\"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\\[\\]$/,br=/\\r?\\n/g,bs=/#.*$/,bt=/^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\\/\\//,by=/\\?/,bz=/)<[^<]*)*<\\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\\w\\+\\.\\-]+:)\\/\\/([^\\/?#:]*)(?::(\\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement(\"a\"),bJ.href=\"\",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!==\"string\"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(\" \");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h=\"GET\";c&&(d.isFunction(c)?(e=c,c=b):typeof c===\"object\"&&(c=d.param(c,d.ajaxSettings.traditional),h=\"POST\"));var i=this;d.ajax({url:a,type:h,dataType:\"html\",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d(\"
\").append(c.replace(bz,\"\")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,\"\\r\\n\")}}):{name:b.name,value:c.replace(br,\"\\r\\n\")}}).get()}}),d.each(\"ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend\".split(\" \"),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each([\"get\",\"post\"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,\"script\")},getJSON:function(a,b,c){return d.get(a,b,c,\"json\")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:\"GET\",contentType:\"application/x-www-form-urlencoded\",processData:!0,async:!0,accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",text:\"text/plain\",json:\"application/json, text/javascript\",\"*\":\"*/*\"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\"},converters:{\"* text\":a.String,\"text html\":!0,\"text json\":d.parseJSON,\"text xml\":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||\"\",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader(\"Last-Modified\"))d.lastModified[k]=x;if(y=u.getResponseHeader(\"Etag\"))d.etag[k]=y}if(a===304)c=\"notmodified\",q=!0;else try{t=bQ(e,w),c=\"success\",q=!0}catch(z){c=\"parsererror\",v=z}}else{v=c;if(!c||a)c=\"error\",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger(\"ajax\"+(q?\"Success\":\"Error\"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger(\"ajaxComplete\",[u,e]),--d.active||d.event.trigger(\"ajaxStop\"))}}typeof a===\"object\"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||\"abort\",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+\"\").replace(bs,\"\").replace(bx,bK[1]+\"//\"),e.dataTypes=d.trim(e.dataType||\"*\").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]===\"http:\"?80:443))!=(bK[3]||(bK[1]===\"http:\"?80:443)))),e.data&&e.processData&&typeof e.data!==\"string\"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger(\"ajaxStart\");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?\"&\":\"?\")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,\"$1_=\"+w);e.url=x+(x===e.url?(by.test(e.url)?\"&\":\"?\")+\"_=\"+w:\"\")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l[\"Content-Type\"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l[\"If-Modified-Since\"]=d.lastModified[k]),d.etag[k]&&(l[\"If-None-Match\"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!==\"*\"?\", */*; q=0.01\":\"\"):e.accepts[\"*\"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger(\"ajaxSend\",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort(\"timeout\")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,\"No Transport\");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join(\"&\").replace(bp,\"+\")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\\=)\\?(&|$)|()\\?\\?()/i;d.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){return d.expando+\"_\"+bR++}}),d.ajaxPrefilter(\"json jsonp\",function(b,c,e){var f=typeof b.data===\"string\";if(b.dataTypes[0]===\"jsonp\"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l=\"$1\"+h+\"$2\",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\\?/.test(j)?\"&\":\"?\")+b.jsonp+\"=\"+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters[\"script json\"]=function(){g||d.error(h+\" was not called\");return g[0]},b.dataTypes[0]=\"json\";return\"script\"}}),d.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/javascript|ecmascript/},converters:{\"text script\":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter(\"script\",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type=\"GET\",a.global=!1)}),d.ajaxTransport(\"script\",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName(\"head\")[0]||c.documentElement;return{send:function(f,g){d=c.createElement(\"script\"),d.async=\"async\",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,\"success\")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&\"withCredentials\"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e[\"X-Requested-With\"]&&(e[\"X-Requested-With\"]=\"XMLHttpRequest\");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=\"\"}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\\-]=)?([\\d+.\\-]+)([a-z%]*)$/i,ca,cb=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"],[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\"opacity\"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc(\"show\",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc(\"show\",1),slideUp:cc(\"hide\",1),slideToggle:cc(\"toggle\",1),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a===\"object\"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration===\"number\"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b===\"auto\"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?\"\":\"px\"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop===\"width\"||this.prop===\"height\"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each([\"\",\"X\",\"Y\"],function(a,b){f.style[\"overflow\"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?\"swing\":\"linear\");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
\";d.extend(b.style,{position:\"absolute\",top:0,left:0,margin:0,border:0,width:\"1px\",height:\"1px\",visibility:\"hidden\"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position=\"fixed\",f.style.top=\"20px\",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top=\"\",e.style.overflow=\"hidden\",e.style.position=\"relative\",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,\"marginTop\"))||0,c+=parseFloat(d.css(a,\"marginLeft\"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,\"position\");e===\"static\"&&(a.style.position=\"relative\");var f=d(a),g=f.offset(),h=d.css(a,\"top\"),i=d.css(a,\"left\"),j=e===\"absolute\"&&d.inArray(\"auto\",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),\"using\"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,\"marginTop\"))||0,c.left-=parseFloat(d.css(a,\"marginLeft\"))||0,e.top+=parseFloat(d.css(b[0],\"borderTopWidth\"))||0,e.left+=parseFloat(d.css(b[0],\"borderLeftWidth\"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,\"position\")===\"static\"))a=a.offsetParent;return a})}}),d.each([\"Left\",\"Top\"],function(a,c){var e=\"scroll\"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?\"pageXOffset\"in g?g[a?\"pageYOffset\":\"pageXOffset\"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each([\"Height\",\"Width\"],function(a,c){var e=c.toLowerCase();d.fn[\"inner\"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,\"padding\")):null},d.fn[\"outer\"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?\"margin\":\"border\")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement[\"client\"+c];return f.document.compatMode===\"CSS1Compat\"&&g||f.document.body[\"client\"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement[\"client\"+c],f.body[\"scroll\"+c],f.documentElement[\"scroll\"+c],f.body[\"offset\"+c],f.documentElement[\"offset\"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a===\"string\"?a:a+\"px\")}}),a.jQuery=a.$=d})(window);\r\n\r\n// Move jQuery to $telerik\r\n$telerik.$ = jQuery.noConflict(true);\r\n" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.305Z", "time": 0.09100000170292333, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.07700000423938036, "receive": 0.013999997463542968, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 84 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "574", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/ScriptResource.axd?d=5gSs6ryUK999s7H2XduQMQYoBT4a-1FhHqrqvB5RKNEjI2Uh_R-C7p7MIx4ghq4WDgManjcc2lR7KP1rnMdCKiVyo_7VoVSLWa6CD0RamloM6LVP0&t=59936b01", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "d", "value": "5gSs6ryUK999s7H2XduQMQYoBT4a-1FhHqrqvB5RKNEjI2Uh_R-C7p7MIx4ghq4WDgManjcc2lR7KP1rnMdCKiVyo_7VoVSLWa6CD0RamloM6LVP0" }, { "name": "t", "value": "59936b01" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 05:54:28 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "DYNAMIC" }, { "name": "Last-Modified", "value": "Tue, 02 Feb 2021 21:06:34 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "X-AspNet-Version", "value": "4.0.30319" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Content-Type", "value": "text/javascript" }, { "name": "Cache-Control", "value": "public" }, { "name": "Connection", "value": "keep-alive" }, { "name": "CF-RAY", "value": "61ca60813eb1fd26-SYD" }, { "name": "Content-Length", "value": "57" }, { "name": "cf-request-id", "value": "08125aa4c40000fd2665b18000000001" }, { "name": "Expires", "value": "Wed, 02 Feb 2022 21:06:34 GMT" } ], "cookies": [], "content": { "size": 49, "mimeType": "text/javascript", "text": "var jQuery=window.jQuery=window.$=$telerik.$;\n" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.305Z", "time": 0.0870000003487803, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.07200000254670158, "receive": 0.014999997802078724, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 85 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "1643", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/javascript/error_handling.js", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:14 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Age", "value": "385" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "622" }, { "name": "cf-request-id", "value": "0813ef15a90000fd4e238d4000000001" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:48:04 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "ETag", "value": "\"0e2f890bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61cce79c4ff7fd4e-SYD" } ], "cookies": [], "content": { "size": 1319, "mimeType": "application/javascript", "text": "/// \r\n/// \r\n/// \r\n/// \r\n\r\nfunction setup_on_load(sender, args) {\r\n if (Sys.WebForms != null) {\r\n \tvar prm = Sys.WebForms.PageRequestManager.getInstance();\r\n \tif (prm != null) {\r\n \t prm.add_endRequest(checkForAjaxServerErrorsOnEndRequest);\r\n \t prm._form._initialAction = prm._form.action = window.location.href;\r\n \t}\r\n }\r\n}\r\n\r\n// catches unhandled server-side exceptions during ajax postback, and ensures that the user isn't just left hanging.\r\n// ideally, this should never be called, because you're handling all possible server-exceptions at point of entry, not letting them buble up... right?\r\nfunction checkForAjaxServerErrorsOnEndRequest(sender, args) {\r\n var error = args.get_error();\r\n if (error != null) {\r\n args.set_errorHandled(true);\r\n var msg = error.message.replace(\"Sys.WebForms.PageRequestManagerServerErrorException: \", \"\");\r\n alert(msg);\r\n }\r\n}\r\n\r\nSys.Application.add_load(setup_on_load);\r\n\r\nif (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.305Z", "time": 0.0670000008540228, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.055000004067551345, "receive": 0.011999996786471456, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 86 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "1643", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/javascript/highcharts.src.js", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:17:19 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:48:04 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "ETag", "value": "\"0e2f890bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61cce9334f36fd3a-SYD" }, { "name": "Content-Length", "value": "64441" }, { "name": "cf-request-id", "value": "0813f014100000fd3a0e133000000001" } ], "cookies": [], "content": { "size": 256773, "mimeType": "application/javascript", "text": "// ==ClosureCompiler==\r\n// @compilation_level SIMPLE_OPTIMIZATIONS\r\n\r\n/** \r\n* @license Highcharts JS v2.0.3 (2010-08-07)\r\n* \r\n* (c) 2009-2010 Torstein Hønsi\r\n* \r\n* License: www.highcharts.com/license\r\n*/\r\n\r\n// JSLint options:\r\n/*jslint forin: true */\r\n/*global document, window, navigator, setInterval, clearInterval, location, jQuery, $, $each, $merge, Events, Event, Fx, Request */\r\n\r\n(function () {\r\n\r\n // encapsulated variables\r\n var doc = document,\r\n\twin = window,\r\n\tmath = Math,\r\n\tmathRound = math.round,\r\n\tmathFloor = math.floor,\r\n\tmathMax = math.max,\r\n\tmathMin = math.min,\r\n\tmathAbs = math.abs,\r\n\tmathCos = math.cos,\r\n\tmathSin = math.sin,\r\n\r\n\r\n // some variables\r\n\tuserAgent = navigator.userAgent,\r\n\tisIE = /msie/i.test(userAgent) && !win.opera,\r\n\tisWebKit = /AppleWebKit/.test(userAgent),\r\n\thasSVG = win.SVGAngle || doc.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\", \"1.1\"),\r\n\tcolorCounter,\r\n\tsymbolCounter,\r\n\tsymbolSizes = {},\r\n\tidCounter = 0,\r\n\ttimeFactor = 1, // 1 = JavaScript time, 1000 = Unix time\r\n\tgarbageBin,\r\n\tdefaultOptions,\r\n\tdateFormat, // function\r\n\r\n\r\n // some constants for frequently used strings\r\n\tUNDEFINED,\r\n\tDIV = 'div',\r\n\tABSOLUTE = 'absolute',\r\n\tRELATIVE = 'relative',\r\n\tHIDDEN = 'hidden',\r\n\tPREFIX = 'highcharts-',\r\n\tVISIBLE = 'visible',\r\n\tPX = 'px',\r\n\tNONE = 'none',\r\n\tM = 'M',\r\n\tL = 'L',\r\n\tTRACKER_FILL = 'rgba(192,192,192,0.005)', // invisible but clickable\r\n\tNORMAL_STATE = '',\r\n\tHOVER_STATE = 'hover',\r\n\tSELECT_STATE = 'select',\r\n\r\n // time methods, changed based on whether or not UTC is used\r\n\tmakeTime,\r\n\tgetMinutes,\r\n\tgetHours,\r\n\tgetDay,\r\n\tgetDate,\r\n\tgetMonth,\r\n\tgetFullYear,\r\n\tsetMinutes,\r\n\tsetHours,\r\n\tsetDate,\r\n\tsetMonth,\r\n\tsetFullYear,\r\n\r\n // check for a custom HighchartsAdapter defined prior to this file\r\n\tglobalAdapter = win.HighchartsAdapter,\r\n\tadapter = globalAdapter || {},\r\n\r\n // Utility functions. If the HighchartsAdapter is not defined, adapter is an empty object\r\n // and all the utility functions will be null. In that case they are populated by the \r\n // default adapters below.\r\n\teach = adapter.each,\r\n\tgrep = adapter.grep,\r\n\tmap = adapter.map,\r\n\tmerge = adapter.merge,\r\n\thyphenate = adapter.hyphenate,\r\n\taddEvent = adapter.addEvent,\r\n\tremoveEvent = adapter.removeEvent,\r\n\tfireEvent = adapter.fireEvent,\r\n\tanimate = adapter.animate,\r\n\tstop = adapter.stop,\r\n\tgetAjax = adapter.getAjax,\r\n\r\n // lookup over the types and the associated classes\r\n\tseriesTypes = {};\r\n\r\n /**\r\n * Extend an object with the members of another\r\n * @param {Object} a The object to be extended\r\n * @param {Object} b The object to add to the first one\r\n */\r\n function extend(a, b) {\r\n if (!a) {\r\n a = {};\r\n }\r\n for (var n in b) {\r\n a[n] = b[n];\r\n }\r\n return a;\r\n }\r\n\r\n /**\r\n * Returns true if the object is not null or undefined. Like MooTools' $.defined.\r\n * @param {Object} obj\r\n */\r\n function defined(obj) {\r\n return obj !== UNDEFINED && obj !== null;\r\n }\r\n\r\n /**\r\n * Set or get an attribute or an object of attributes. Can't use jQuery attr because\r\n * it attempts to set expando properties on the SVG element, which is not allowed.\r\n * \r\n * @param {Object} elem The DOM element to receive the attribute(s)\r\n * @param {String|Object} prop The property or an abject of key-value pairs\r\n * @param {String} value The value if a single property is set\r\n */\r\n function attr(elem, prop, value) {\r\n var key,\r\n\t\tsetAttribute = 'setAttribute',\r\n\t\tret;\r\n\r\n // if the prop is a string\r\n if (typeof prop == 'string') {\r\n // set the value\r\n if (defined(value)) {\r\n elem[setAttribute](prop, value);\r\n\r\n // get the value\r\n } else if (elem && elem.getAttribute) { // elem not defined when printing pie demo...\r\n ret = elem.getAttribute(prop);\r\n }\r\n\r\n // else if prop is defined, it is a hash of key/value pairs\r\n } else if (defined(prop) && typeof prop == 'object') {\r\n for (key in prop) {\r\n elem[setAttribute](key, prop[key]);\r\n }\r\n }\r\n\r\n return ret;\r\n }\r\n /**\r\n * Check if an element is an array, and if not, make it into an array. Like\r\n * MooTools' $.splat.\r\n */\r\n function splat(obj) {\r\n if (!obj || obj.constructor != Array) {\r\n obj = [obj];\r\n }\r\n return obj;\r\n }\r\n\r\n\r\n\r\n /**\r\n * Return the first value that is defined. Like MooTools' $.pick.\r\n */\r\n function pick() {\r\n var args = arguments,\r\n\t\ti,\r\n\t\targ;\r\n for (i = 0; i < args.length; i++) {\r\n arg = args[i];\r\n if (defined(arg)) {\r\n return arg;\r\n }\r\n }\r\n }\r\n /**\r\n * Make a style string from a JS object\r\n * @param {Object} style\r\n */\r\n function serializeCSS(style) {\r\n var s = '',\r\n\t\tkey;\r\n // serialize the declaration\r\n for (key in style) {\r\n s += hyphenate(key) + ':' + style[key] + ';';\r\n }\r\n return s;\r\n\r\n }\r\n /**\r\n * Set CSS on a give element\r\n * @param {Object} el\r\n * @param {Object} styles\r\n */\r\n function css(el, styles) {\r\n if (isIE) {\r\n if (styles && styles.opacity !== UNDEFINED) {\r\n styles.filter = 'alpha(opacity=' + (styles.opacity * 100) + ')';\r\n }\r\n }\r\n extend(el.style, styles);\r\n }\r\n\r\n /**\r\n * Utility function to create element with attributes and styles\r\n * @param {Object} tag\r\n * @param {Object} attribs\r\n * @param {Object} styles\r\n * @param {Object} parent\r\n * @param {Object} nopad\r\n */\r\n function createElement(tag, attribs, styles, parent, nopad) {\r\n var el = doc.createElement(tag);\r\n if (attribs) {\r\n extend(el, attribs);\r\n }\r\n if (nopad) {\r\n css(el, { padding: 0, border: NONE, margin: 0 });\r\n }\r\n if (styles) {\r\n css(el, styles);\r\n }\r\n if (parent) {\r\n parent.appendChild(el);\r\n }\r\n return el;\r\n }\r\n\r\n // the jQuery adapter\r\n if (!globalAdapter && win.jQuery) {\r\n var jQ = jQuery;\r\n\r\n\r\n each = function (arr, fn) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (fn.call(arr[i], arr[i], i, arr) === false) {\r\n return i;\r\n }\r\n }\r\n };\r\n\r\n grep = jQ.grep;\r\n\r\n map = function (arr, fn) {\r\n //return jQuery.map(arr, fn);\r\n var results = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n results[i] = fn.call(arr[i], arr[i], i, arr);\r\n }\r\n return results;\r\n\r\n };\r\n\r\n merge = function () {\r\n var args = arguments;\r\n return jQ.extend(true, null, args[0], args[1], args[2], args[3]);\r\n };\r\n\r\n hyphenate = function (str) {\r\n return str.replace(/([A-Z])/g, function (a, b) { return '-' + b.toLowerCase(); });\r\n };\r\n\r\n addEvent = function (el, event, fn) {\r\n jQ(el).bind(event, fn);\r\n };\r\n\r\n /**\r\n * Remove event added with addEvent\r\n * @param {Object} el The object\r\n * @param {String} eventType The event type. Leave blank to remove all events.\r\n * @param {Function} handler The function to remove\r\n */\r\n removeEvent = function (el, eventType, handler) {\r\n // workaround for jQuery issue with unbinding custom events:\r\n // http://forum.jquery.com/topic/javascript-error-when-unbinding-a-custom-event-using-jquery-1-4-2\r\n var func = doc.removeEventListener ? 'removeEventListener' : 'detachEvent';\r\n if (doc[func] && !el[func]) {\r\n el[func] = function () { };\r\n }\r\n\r\n jQ(el).unbind(eventType, handler);\r\n };\r\n\r\n fireEvent = function (el, type, eventArguments, defaultFunction) {\r\n var event = jQ.Event(type),\r\n\t\t\tdetachedType = 'detached' + type;\r\n extend(event, eventArguments);\r\n\r\n // Prevent jQuery from triggering the object method that is named the\r\n // same as the event. For example, if the event is 'select', jQuery\r\n // attempts calling el.select and it goes into a loop.\r\n if (el[type]) {\r\n el[detachedType] = el[type];\r\n el[type] = null;\r\n }\r\n\r\n // trigger it\r\n jQ(el).trigger(event);\r\n\r\n // attach the method\r\n if (el[detachedType]) {\r\n el[type] = el[detachedType];\r\n el[detachedType] = null;\r\n }\r\n\r\n if (defaultFunction && !event.isDefaultPrevented()) {\r\n defaultFunction(event);\r\n }\r\n };\r\n\r\n animate = function (el, params, options) {\r\n var $el = jQ(el);\r\n $el.stop();\r\n $el.animate(params, options);\r\n };\r\n /**\r\n * Stop running animation\r\n */\r\n stop = function (el) {\r\n jQ(el).stop();\r\n };\r\n\r\n getAjax = function (url, callback) {\r\n jQ.get(url, null, callback);\r\n };\r\n\r\n // extend jQuery\r\n jQ.extend(jQ.easing, {\r\n easeOutQuad: function (x, t, b, c, d) {\r\n return -c * (t /= d) * (t - 2) + b;\r\n }\r\n });\r\n\r\n // extend the animate function to allow SVG animations\r\n var oldStepDefault = jQuery.fx.step._default,\r\n\t\toldCur = jQuery.fx.prototype.cur;\r\n\r\n // do the step\r\n jQ.fx.step._default = function (fx) {\r\n var elem = fx.elem;\r\n if (elem.attr) { // is SVG element wrapper\t\t\t\t\t\r\n elem.attr(fx.prop, fx.now);\r\n } else {\r\n oldStepDefault.apply(this, arguments);\r\n }\r\n };\r\n // get the current value\r\n jQ.fx.prototype.cur = function () {\r\n var elem = this.elem,\r\n\t\t\tr;\r\n if (elem.attr) { // is SVG element wrapper\r\n r = elem.attr(this.prop);\r\n } else {\r\n r = oldCur.apply(this, arguments);\r\n }\r\n return r;\r\n };\r\n\r\n // the MooTools adapter\r\n } else if (!globalAdapter && win.MooTools) {\r\n\r\n each = $each;\r\n\r\n map = function (arr, fn) {\r\n return arr.map(fn);\r\n };\r\n\r\n grep = function (arr, fn) {\r\n return arr.filter(fn);\r\n };\r\n\r\n merge = $merge;\r\n\r\n hyphenate = function (str) {\r\n return str.hyphenate();\r\n };\r\n\r\n addEvent = function (el, type, fn) {\r\n if (typeof type == 'string') { // chart broke due to el being string, type function\r\n\r\n if (type == 'unload') { // Moo self destructs before custom unload events\r\n type = 'beforeunload';\r\n }\r\n\r\n // if the addEvent method is not defined, el is a custom Highcharts object\r\n // like series or point\r\n if (!el.addEvent) {\r\n if (el.nodeName) {\r\n el = $(el); // a dynamically generated node\r\n } else {\r\n extend(el, new Events()); // a custom object\r\n }\r\n }\r\n\r\n el.addEvent(type, fn);\r\n }\r\n };\r\n\r\n removeEvent = function (el, type, fn) {\r\n if (type) {\r\n if (type == 'unload') { // Moo self destructs before custom unload events\r\n type = 'beforeunload';\r\n }\r\n\r\n\r\n el.removeEvent(type, fn);\r\n }\r\n };\r\n\r\n fireEvent = function (el, event, eventArguments, defaultFunction) {\r\n // create an event object that keeps all functions\t\t\r\n event = new Event({\r\n type: event,\r\n target: el\r\n });\r\n event = extend(event, eventArguments);\r\n // override the preventDefault function to be able to use\r\n // this for custom events\r\n event.preventDefault = function () {\r\n defaultFunction = null;\r\n };\r\n // if fireEvent is not available on the object, there hasn't been added\r\n // any events to it above\r\n if (el.fireEvent) {\r\n el.fireEvent(event.type, event);\r\n }\r\n\r\n // fire the default if it is passed and it is not prevented above\r\n if (defaultFunction) {\r\n defaultFunction(event);\r\n }\r\n };\r\n\r\n animate = function (el, params, options) {\r\n var isSVGElement = el.attr,\r\n\t\t\teffect;\r\n\r\n if (isSVGElement && !el.setStyle) {\r\n // add setStyle and getStyle methods for internal use in Moo\r\n el.setStyle = el.getStyle = el.attr;\r\n // dirty hack to trick Moo into handling el as an element wrapper\r\n el.$family = el.uid = true;\r\n }\r\n\r\n // stop running animations\r\n stop(el);\r\n\r\n // define and run the effect\r\n effect = new Fx.Morph(\r\n\t\t\tisSVGElement ? el : $(el),\r\n\t\t\textend(options, {\r\n\t\t\t transition: Fx.Transitions.Quad.easeInOut\r\n\t\t\t})\r\n\t\t);\r\n effect.start(params);\r\n el.fx = effect;\r\n };\r\n\r\n /**\r\n * Stop running animations on the object\r\n */\r\n stop = function (el) {\r\n if (el.fx) {\r\n el.fx.cancel();\r\n }\r\n };\r\n\r\n getAjax = function (url, callback) {\r\n (new Request({\r\n url: url,\r\n method: 'get',\r\n onSuccess: callback\r\n })).send();\r\n };\r\n\r\n }\r\n\r\n\r\n\r\n /**\r\n * Set the time methods globally based on the useUTC option. Time method can be either \r\n * local time or UTC (default).\r\n */\r\n function setTimeMethods() {\r\n var useUTC = defaultOptions.global.useUTC;\r\n\r\n makeTime = useUTC ? Date.UTC : function (year, month, date, hours, minutes, seconds) {\r\n return new Date(\r\n\t\t\tyear,\r\n\t\t\tmonth,\r\n\t\t\tpick(date, 1),\r\n\t\t\tpick(hours, 0),\r\n\t\t\tpick(minutes, 0),\r\n\t\t\tpick(seconds, 0)\r\n\t\t).getTime();\r\n };\r\n getMinutes = useUTC ? 'getUTCMinutes' : 'getMinutes';\r\n getHours = useUTC ? 'getUTCHours' : 'getHours';\r\n getDay = useUTC ? 'getUTCDay' : 'getDay';\r\n getDate = useUTC ? 'getUTCDate' : 'getDate';\r\n getMonth = useUTC ? 'getUTCMonth' : 'getMonth';\r\n getFullYear = useUTC ? 'getUTCFullYear' : 'getFullYear';\r\n setMinutes = useUTC ? 'setUTCMinutes' : 'setMinutes';\r\n setHours = useUTC ? 'setUTCHours' : 'setHours';\r\n setDate = useUTC ? 'setUTCDate' : 'setDate';\r\n setMonth = useUTC ? 'setUTCMonth' : 'setMonth';\r\n setFullYear = useUTC ? 'setUTCFullYear' : 'setFullYear';\r\n\r\n }\r\n\r\n /**\r\n * Merge the default options with custom options and return the new options structure\r\n * @param {Object} options The new custom options\r\n */\r\n function setOptions(options) {\r\n defaultOptions = merge(defaultOptions, options);\r\n\r\n // apply UTC\r\n setTimeMethods();\r\n\r\n return defaultOptions;\r\n }\r\n\r\n /**\r\n * Get the updated default options. Merely exposing defaultOptions for outside modules\r\n * isn't enough because the setOptions method creates a new object.\r\n */\r\n function getOptions() {\r\n return defaultOptions;\r\n }\r\n\r\n /**\r\n * Discard an element by moving it to the bin and delete\r\n * @param {Object} The HTML node to discard\r\n */\r\n function discardElement(element) {\r\n // create a garbage bin element, not part of the DOM\r\n if (!garbageBin) {\r\n garbageBin = createElement(DIV);\r\n }\r\n\r\n // move the node and empty bin\r\n if (element) {\r\n garbageBin.appendChild(element);\r\n }\r\n garbageBin.innerHTML = '';\r\n }\r\n\r\n /* ****************************************************************************\r\n * Handle the options *\r\n *****************************************************************************/\r\n var \r\n\r\ndefaultLabelOptions = {\r\n enabled: true,\r\n // rotation: 0,\r\n align: 'center',\r\n x: 0,\r\n y: 15,\r\n /*formatter: function() {\r\n return this.value;\r\n },*/\r\n style: {\r\n color: '#666',\r\n fontSize: '11px'\r\n }\r\n};\r\n\r\n defaultOptions = {\r\n colors: ['#4572A7', '#AA4643', '#89A54E', '#80699B', '#3D96AE',\r\n\t\t'#DB843D', '#92A8CD', '#A47D7C', '#B5CA92'],\r\n symbols: ['circle', 'diamond', 'square', 'triangle', 'triangle-down'],\r\n lang: {\r\n loading: 'Loading...',\r\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July',\r\n\t\t\t\t'August', 'September', 'October', 'November', 'December'],\r\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n decimalPoint: '.',\r\n resetZoom: 'Reset zoom',\r\n resetZoomTitle: 'Reset zoom level 1:1',\r\n thousandsSep: ','\r\n },\r\n global: {\r\n useUTC: true\r\n },\r\n chart: {\r\n //alignTicks: false,\r\n //className: null,\r\n //events: { load, selection },\r\n margin: [50, 50, 90, 80], // docs\r\n //marginTop: 50,\r\n //marginRight: 50,\r\n //marginBottom: 90, // docs\r\n //marginLeft: 50,\r\n borderColor: '#4572A7',\r\n //borderWidth: 0,\r\n borderRadius: 5,\r\n defaultSeriesType: 'line',\r\n ignoreHiddenSeries: true,\r\n //inverted: false,\r\n //shadow: false,\r\n style: {\r\n fontFamily: '\"Lucida Grande\", \"Lucida Sans Unicode\", Verdana, Arial, Helvetica, sans-serif', // default font\r\n fontSize: '12px'\r\n },\r\n backgroundColor: '#FFFFFF',\r\n //plotBackgroundColor: null,\r\n plotBorderColor: '#C0C0C0'\r\n //plotBorderWidth: 0,\r\n //plotShadow: false,\r\n //zoomType: ''\r\n },\r\n title: {\r\n text: 'Chart title',\r\n x: 0,\r\n y: 20,\r\n align: 'center',\r\n style: {\r\n color: '#3E576F',\r\n fontSize: '16px'\r\n }\r\n\r\n },\r\n subtitle: {\r\n text: '',\r\n x: 0,\r\n y: 40,\r\n align: 'center',\r\n style: {\r\n color: '#6D869F'\r\n }\r\n },\r\n\r\n plotOptions: {\r\n line: { // base series options\r\n allowPointSelect: false,\r\n showCheckbox: false,\r\n animation: true,\r\n //cursor: 'default',\r\n //enableMouseTracking: true,\r\n events: {},\r\n lineWidth: 2,\r\n shadow: true,\r\n // stacking: null,\r\n marker: {\r\n enabled: true,\r\n //symbol: null, \r\n lineWidth: 0,\r\n radius: 4,\r\n lineColor: '#FFFFFF',\r\n //fillColor: null, \r\n states: { // states for a single point\r\n hover: {\r\n //radius: base + 2\r\n },\r\n select: {\r\n fillColor: '#FFFFFF',\r\n lineColor: '#000000',\r\n lineWidth: 2\r\n }\r\n }\r\n },\r\n point: {\r\n events: {}\r\n },\r\n dataLabels: merge(defaultLabelOptions, {\r\n enabled: false,\r\n y: -6,\r\n formatter: function () {\r\n return this.y;\r\n }\r\n }),\r\n\r\n //pointStart: 0,\r\n //pointInterval: 1,\r\n showInLegend: true,\r\n states: { // states for the entire series\r\n hover: {\r\n //enabled: false,\r\n lineWidth: 3,\r\n marker: {\r\n // lineWidth: base + 1,\r\n // radius: base + 1\r\n }\r\n },\r\n select: {\r\n marker: {}\r\n }\r\n },\r\n stickyTracking: true\r\n }\r\n},\r\nlabels: {\r\n //items: [],\r\n style: {\r\n //font: defaultFont,\r\n position: ABSOLUTE,\r\n color: '#3E576F'\r\n }\r\n},\r\nlegend: {\r\n enabled: true,\r\n align: 'center',\r\n layout: 'horizontal',\r\n labelFormatter: function () {\r\n return this.name;\r\n },\r\n // lineHeight: 16,\r\n borderWidth: 1,\r\n borderColor: '#909090',\r\n borderRadius: 5,\r\n //reversed: false,\r\n shadow: false,\r\n // backgroundColor: null,\r\n style: {\r\n padding: '5px'\r\n },\r\n itemStyle: {\r\n cursor: 'pointer',\r\n color: '#3E576F'\r\n },\r\n itemHoverStyle: {\r\n color: '#000000'\r\n },\r\n itemHiddenStyle: {\r\n color: '#C0C0C0'\r\n },\r\n itemCheckboxStyle: {\r\n position: ABSOLUTE,\r\n width: '13px', // for IE precision\r\n height: '13px'\r\n },\r\n // itemWidth: undefined,\r\n symbolWidth: 16,\r\n symbolPadding: 5,\r\n verticalAlign: 'bottom',\r\n // width: undefined,\r\n x: 15,\r\n y: -15\r\n},\r\n\r\nloading: {\r\n hideDuration: 100,\r\n labelStyle: {\r\n fontWeight: 'bold',\r\n position: RELATIVE,\r\n top: '1em'\r\n },\r\n showDuration: 100,\r\n style: {\r\n position: ABSOLUTE,\r\n backgroundColor: 'white',\r\n opacity: 0.5,\r\n textAlign: 'center'\r\n }\r\n},\r\n\r\ntooltip: {\r\n enabled: true,\r\n formatter: function () {\r\n var pThis = this,\r\n\t\t\t\tseries = pThis.series,\r\n\t\t\t\txAxis = series.xAxis,\r\n\t\t\t\tx = pThis.x;\r\n return '' + (pThis.point.name || series.name) + '
' +\r\n\t\t\t\t(defined(x) ?\r\n\t\t\t\t\t'X value: ' + (xAxis && xAxis.options.type == 'datetime' ?\r\n\t\t\t\t\t\tdateFormat(null, x) : x) + '
' :\r\n\t\t\t\t\t'') +\r\n\t\t\t\t'Y value: ' + pThis.y;\r\n },\r\n backgroundColor: 'rgba(255, 255, 255, .85)',\r\n borderWidth: 2,\r\n borderRadius: 5,\r\n shadow: true,\r\n snap: 10,\r\n style: {\r\n color: '#333333',\r\n fontSize: '12px',\r\n padding: '5px',\r\n whiteSpace: 'nowrap'\r\n }\r\n},\r\n\r\ntoolbar: {\r\n itemStyle: {\r\n color: '#4572A7',\r\n cursor: 'pointer'\r\n }\r\n},\r\n\r\ncredits: {\r\n enabled: true,\r\n text: 'Highcharts.com',\r\n href: 'http://www.highcharts.com',\r\n style: {\r\n cursor: 'pointer',\r\n color: '#909090',\r\n fontSize: '10px'\r\n }\r\n}\r\n};\r\n\r\n// Axis defaults\r\nvar defaultXAxisOptions = {\r\n // allowDecimals: null,\r\n // alternateGridColor: null,\r\n // categories: [],\r\n dateTimeLabelFormats: {\r\n second: '%H:%M:%S',\r\n minute: '%H:%M',\r\n hour: '%H:%M',\r\n day: '%e. %b',\r\n week: '%e. %b',\r\n month: '%b \\'%y',\r\n year: '%Y'\r\n },\r\n endOnTick: false,\r\n gridLineColor: '#C0C0C0',\r\n // gridLineWidth: 0,\r\n // reversed: false,\r\n\r\n labels: defaultLabelOptions,\r\n lineColor: '#C0D0E0',\r\n lineWidth: 1,\r\n //linkedTo: null, // docs\r\n max: null,\r\n min: null,\r\n minPadding: 0.01,\r\n maxPadding: 0.01,\r\n maxZoom: null,\r\n minorGridLineColor: '#E0E0E0',\r\n minorGridLineWidth: 1,\r\n minorTickColor: '#A0A0A0',\r\n //minorTickInterval: null,\r\n minorTickLength: 2,\r\n minorTickPosition: 'outside', // inside or outside\r\n minorTickWidth: 1,\r\n //opposite: false,\r\n //offset: 0\r\n //plotBands: [],\r\n //plotLines: [],\r\n //reversed: false,\r\n showFirstLabel: true,\r\n showLastLabel: false,\r\n startOfWeek: 1,\r\n startOnTick: false,\r\n tickColor: '#C0D0E0',\r\n //tickInterval: null,\r\n tickLength: 5,\r\n tickmarkPlacement: 'between', // on or between\r\n tickPixelInterval: 100,\r\n tickPosition: 'outside',\r\n tickWidth: 1,\r\n title: {\r\n //text: null,\r\n align: 'middle', // low, middle or high\r\n margin: 35,\r\n //rotation: 0,\r\n //side: 'outside',\r\n style: {\r\n color: '#6D869F',\r\n //font: defaultFont.replace('normal', 'bold')\r\n fontWeight: 'bold'\r\n }\r\n },\r\n type: 'linear' // linear or datetime\r\n},\r\n\r\ndefaultYAxisOptions = merge(defaultXAxisOptions, {\r\n endOnTick: true,\r\n gridLineWidth: 1,\r\n tickPixelInterval: 72,\r\n showLastLabel: true,\r\n labels: {\r\n align: 'right',\r\n x: -8,\r\n y: 3\r\n },\r\n lineWidth: 0,\r\n maxPadding: 0.05,\r\n minPadding: 0.05,\r\n startOnTick: true,\r\n tickWidth: 0,\r\n title: {\r\n margin: 40,\r\n rotation: 270,\r\n text: 'Y-values'\r\n }\r\n}),\r\n\r\ndefaultLeftAxisOptions = {\r\n labels: {\r\n align: 'right',\r\n x: -8,\r\n y: 3\r\n },\r\n title: {\r\n rotation: 270\r\n }\r\n},\r\ndefaultRightAxisOptions = {\r\n labels: {\r\n align: 'left',\r\n x: 8,\r\n y: 3\r\n },\r\n title: {\r\n rotation: 90\r\n }\r\n},\r\ndefaultBottomAxisOptions = { // horizontal axis\r\n labels: {\r\n align: 'center',\r\n x: 0,\r\n y: 14\r\n },\r\n title: {\r\n rotation: 0\r\n }\r\n},\r\ndefaultTopAxisOptions = merge(defaultBottomAxisOptions, {\r\n labels: {\r\n y: -5\r\n }\r\n});\r\n\r\n\r\n\r\n\r\n// Series defaults\r\nvar defaultPlotOptions = defaultOptions.plotOptions,\r\n\tdefaultSeriesOptions = defaultPlotOptions.line;\r\n//defaultPlotOptions.line = merge(defaultSeriesOptions);\r\ndefaultPlotOptions.spline = merge(defaultSeriesOptions);\r\ndefaultPlotOptions.scatter = merge(defaultSeriesOptions, {\r\n lineWidth: 0,\r\n states: {\r\n hover: {\r\n lineWidth: 0\r\n }\r\n }\r\n});\r\ndefaultPlotOptions.area = merge(defaultSeriesOptions, {\r\n// threshold: 0,\r\n// lineColor: null, // overrides color, but lets fillColor be unaltered\r\n// fillOpacity: 0.75,\r\n// fillColor: null\r\n\r\n});\r\ndefaultPlotOptions.areaspline = merge(defaultPlotOptions.area);\r\ndefaultPlotOptions.column = merge(defaultSeriesOptions, {\r\n borderColor: '#FFFFFF',\r\n borderWidth: 1,\r\n borderRadius: 0,\r\n //colorByPoint: undefined,\r\n groupPadding: 0.2,\r\n marker: null, // point options are specified in the base options\r\n pointPadding: 0.1,\r\n //pointWidth: null,\r\n minPointLength: 0,\r\n states: {\r\n hover: {\r\n brightness: 0.1,\r\n shadow: false\r\n },\r\n select: {\r\n color: '#C0C0C0',\r\n borderColor: '#000000',\r\n shadow: false\r\n }\r\n }\r\n});\r\ndefaultPlotOptions.bar = merge(defaultPlotOptions.column, {\r\n dataLabels: {\r\n align: 'left',\r\n x: 5,\r\n y: 0\r\n }\r\n});\r\ndefaultPlotOptions.pie = merge(defaultSeriesOptions, {\r\n //dragType: '', // n/a\r\n borderColor: '#FFFFFF',\r\n borderWidth: 1,\r\n center: ['50%', '50%'],\r\n colorByPoint: true, // always true for pies\r\n //innerSize: 0,\r\n legendType: 'point',\r\n marker: null, // point options are specified in the base options\r\n size: '90%',\r\n slicedOffset: 10,\r\n states: {\r\n hover: {\r\n brightness: 0.1,\r\n shadow: false\r\n }\r\n }\r\n\r\n});\r\n\r\n// set the default time methods\r\nsetTimeMethods();\r\n\r\n\r\n/**\r\n* Extend a prototyped class by new members\r\n* @param {Object} parent\r\n* @param {Object} members\r\n*/\r\nfunction extendClass(parent, members) {\r\n var object = function () { };\r\n object.prototype = new parent();\r\n extend(object.prototype, members);\r\n return object;\r\n}\r\n\r\n\r\n/**\r\n* Handle color operations. The object methods are chainable.\r\n* @param {String} input The input color in either rbga or hex format\r\n*/\r\nvar Color = function (input) {\r\n // declare variables\r\n var rgba = [], result;\r\n\r\n /**\r\n * Parse the input color to rgba array\r\n * @param {String} input\r\n */\r\n function init(input) {\r\n\r\n // rgba\r\n if ((result = /rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]?(?:\\.[0-9]+)?)\\s*\\)/.exec(input))) {\r\n rgba = [parseInt(result[1], 10), parseInt(result[2], 10), parseInt(result[3], 10), parseFloat(result[4], 10)];\r\n }\r\n\r\n // hex\r\n else if ((result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(input))) {\r\n rgba = [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16), 1];\r\n }\r\n\r\n }\r\n /**\r\n * Return the color a specified format\r\n * @param {String} format\r\n */\r\n function get(format) {\r\n var ret;\r\n\r\n // it's NaN if gradient colors on a column chart\r\n if (rgba && !isNaN(rgba[0])) {\r\n if (format == 'rgb') {\r\n ret = 'rgb(' + rgba[0] + ',' + rgba[1] + ',' + rgba[2] + ')';\r\n } else if (format == 'a') {\r\n ret = rgba[3];\r\n } else {\r\n ret = 'rgba(' + rgba.join(',') + ')';\r\n }\r\n } else {\r\n ret = input;\r\n }\r\n return ret;\r\n }\r\n\r\n /**\r\n * Brighten the color\r\n * @param {Object} alpha\r\n */\r\n function brighten(alpha) {\r\n if (typeof alpha == 'number' && alpha !== 0) {\r\n for (var i = 0; i < 3; i++) {\r\n rgba[i] += parseInt(alpha * 255, 10);\r\n if (rgba[i] < 0) {\r\n rgba[i] = 0;\r\n }\r\n if (rgba[i] > 255) {\r\n rgba[i] = 255;\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n /**\r\n * Set the color's opacity to a given alpha value\r\n * @param {Number} alpha\r\n */\r\n function setOpacity(alpha) {\r\n rgba[3] = alpha;\r\n return this;\r\n }\r\n\r\n // initialize: parse the input\r\n init(input);\r\n\r\n // public methods\r\n return {\r\n get: get,\r\n brighten: brighten,\r\n setOpacity: setOpacity\r\n };\r\n};\r\n\r\n\r\n\r\n/**\r\n* Format a number and return a string based on input settings\r\n* @param {Number} number The input number to format\r\n* @param {Number} decimals The amount of decimals\r\n* @param {String} decPoint The decimal point, defaults to the one given in the lang options\r\n* @param {String} thousandsSep The thousands separator, defaults to the one given in the lang options\r\n*/\r\nfunction numberFormat(number, decimals, decPoint, thousandsSep) {\r\n var lang = defaultOptions.lang,\r\n // http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_number_format/\r\n\t\tn = number, c = isNaN(decimals = mathAbs(decimals)) ? 2 : decimals,\r\n\t\td = decPoint === undefined ? lang.decimalPoint : decPoint,\r\n\t\tt = thousandsSep === undefined ? lang.thousandsSep : thousandsSep, s = n < 0 ? \"-\" : \"\",\r\n\t\ti = parseInt(n = mathAbs(+n || 0).toFixed(c), 10) + \"\", j = (j = i.length) > 3 ? j % 3 : 0;\r\n\r\n return s + (j ? i.substr(0, j) + t : \"\") + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + t) +\r\n\t\t(c ? d + mathAbs(n - i).toFixed(c).slice(2) : \"\");\r\n}\r\n\r\n/**\r\n* Based on http://www.php.net/manual/en/function.strftime.php \r\n* @param {String} format\r\n* @param {Number} timestamp\r\n* @param {Boolean} capitalize\r\n*/\r\ndateFormat = function (format, timestamp, capitalize) {\r\n function pad(number) {\r\n return number.toString().replace(/^([0-9])$/, '0$1');\r\n }\r\n\r\n if (!defined(timestamp) || isNaN(timestamp)) {\r\n return 'Invalid date';\r\n }\r\n format = pick(format, '%Y-%m-%d %H:%M:%S');\r\n\r\n var date = new Date(timestamp * timeFactor),\r\n\r\n // get the basic time values\r\n\t\thours = date[getHours](),\r\n\t\tday = date[getDay](),\r\n\t\tdayOfMonth = date[getDate](),\r\n\t\tmonth = date[getMonth](),\r\n\t\tfullYear = date[getFullYear](),\r\n\t\tlang = defaultOptions.lang,\r\n\t\tlangWeekdays = lang.weekdays,\r\n\t\tlangMonths = lang.months,\r\n\r\n // list all format keys\r\n\t\treplacements = {\r\n\r\n\t\t // Day\r\n\t\t 'a': langWeekdays[day].substr(0, 3), // Short weekday, like 'Mon'\r\n\t\t 'A': langWeekdays[day], // Long weekday, like 'Monday'\r\n\t\t 'd': pad(dayOfMonth), // Two digit day of the month, 01 to 31 \r\n\t\t 'e': dayOfMonth, // Day of the month, 1 through 31 \r\n\r\n\t\t // Week (none implemented)\r\n\r\n\t\t // Month\r\n\t\t 'b': langMonths[month].substr(0, 3), // Short month, like 'Jan'\r\n\t\t 'B': langMonths[month], // Long month, like 'January'\r\n\t\t 'm': pad(month + 1), // Two digit month number, 01 through 12\r\n\r\n\t\t // Year\r\n\t\t 'y': fullYear.toString().substr(2, 2), // Two digits year, like 09 for 2009\r\n\t\t 'Y': fullYear, // Four digits year, like 2009\r\n\r\n\t\t // Time\r\n\t\t 'H': pad(hours), // Two digits hours in 24h format, 00 through 23\r\n\t\t 'I': pad((hours % 12) || 12), // Two digits hours in 12h format, 00 through 11\r\n\t\t 'l': (hours % 12) || 12, // Hours in 12h format, 1 through 12\r\n\t\t 'M': pad(date[getMinutes]()), // Two digits minutes, 00 through 59\r\n\t\t 'p': hours < 12 ? 'AM' : 'PM', // Upper case AM or PM\r\n\t\t 'P': hours < 12 ? 'am' : 'pm', // Lower case AM or PM\r\n\t\t 'S': pad(date.getSeconds()) // Two digits seconds, 00 through 59\r\n\r\n\t\t};\r\n\r\n\r\n // do the replaces\r\n for (var key in replacements) {\r\n format = format.replace('%' + key, replacements[key]);\r\n }\r\n\r\n // Optionally capitalize the string and return\r\n return capitalize ? format.substr(0, 1).toUpperCase() + format.substr(1) : format;\r\n};\r\n\r\n\r\n\r\n/**\r\n* Loop up the node tree and add offsetWidth and offsetHeight to get the\r\n* total page offset for a given element\r\n* @param {Object} el\r\n*/\r\nfunction getPosition(el) {\r\n var p = { x: el.offsetLeft, y: el.offsetTop };\r\n while (el.offsetParent) {\r\n el = el.offsetParent;\r\n p.x += el.offsetLeft;\r\n p.y += el.offsetTop;\r\n if (el != doc.body && el != doc.documentElement) {\r\n p.x -= el.scrollLeft;\r\n p.y -= el.scrollTop;\r\n }\r\n }\r\n return p;\r\n}\r\n\r\n\r\n/**\r\n* A wrapper object for SVG elements \r\n*/\r\nfunction SVGElement() { }\r\n\r\nSVGElement.prototype = {\r\n /**\r\n * Initialize the SVG renderer\r\n * @param {Object} renderer\r\n * @param {String} nodeName\r\n */\r\n init: function (renderer, nodeName) {\r\n this.element = doc.createElementNS('http://www.w3.org/2000/svg', nodeName);\r\n this.renderer = renderer;\r\n },\r\n /**\r\n * Animate a given attribute\r\n * @param {Object} params\r\n * @param {Number} duration\r\n */\r\n animate: function (params, duration) {\r\n animate(this, params, duration);\r\n },\r\n /**\r\n * Set or get a given attribute\r\n * @param {Object|String} hash\r\n * @param {Mixed|Undefined} val\r\n */\r\n attr: function (hash, val) {\r\n var key,\r\n\t\t\tvalue,\r\n\t\t\ti,\r\n\t\t\tchild,\r\n\t\t\telement = this.element,\r\n\t\t\tnodeName = element.nodeName,\r\n\t\t\trenderer = this.renderer,\r\n\t\t\tskipAttr,\r\n\t\t\tshadows = this.shadows,\r\n\t\t\thasSetSymbolSize,\r\n\t\t\tret = this;\r\n\r\n // single key-value pair\r\n if (typeof hash == 'string' && defined(val)) {\r\n key = hash;\r\n hash = {};\r\n hash[key] = val;\r\n }\r\n\r\n // used as a getter: first argument is a string, second is undefined\r\n if (typeof hash == 'string') {\r\n key = hash;\r\n if (nodeName == 'circle') {\r\n key = { x: 'cx', y: 'cy'}[key] || key;\r\n } else if (key == 'strokeWidth') {\r\n key = 'stroke-width';\r\n }\r\n ret = parseFloat(attr(element, key) || this[key] || 0);\r\n\r\n // setter\r\n } else {\r\n\r\n for (key in hash) {\r\n value = hash[key];\r\n\r\n // paths\r\n if (key == 'd') {\r\n if (typeof value != 'string') { // join path\r\n value = value.join(' ');\r\n }\r\n\r\n // update child tspans x values\r\n } else if (key == 'x' && nodeName == 'text') {\r\n for (i = 0; i < element.childNodes.length; i++) {\r\n child = element.childNodes[i];\r\n // if the x values are equal, the tspan represents a linebreak\r\n if (attr(child, 'x') == attr(element, 'x')) {\r\n //child.setAttribute('x', value);\r\n attr(child, 'x', value);\r\n }\r\n }\r\n\r\n // apply gradients\r\n } else if (key == 'fill') {\r\n value = renderer.color(value, element, key);\r\n\r\n // circle x and y\r\n } else if (nodeName == 'circle') {\r\n key = { x: 'cx', y: 'cy'}[key] || key;\r\n\r\n // translation\r\n } else if (key == 'translateX' || key == 'translateY') {\r\n this[key] = value;\r\n this.updateTransform();\r\n skipAttr = true;\r\n\r\n // apply opacity as subnode (required by legacy WebKit and Batik)\r\n } else if (key == 'stroke') {\r\n value = renderer.color(value, element, key);\r\n\r\n\r\n // special\r\n } else if (key == 'isTracker') {\r\n this[key] = value;\r\n }\r\n\r\n // jQuery animate changes case\r\n if (key == 'strokeWidth') {\r\n key = 'stroke-width';\r\n }\r\n\r\n // Chrome/Win < 6 bug (http://code.google.com/p/chromium/issues/detail?id=15461)\t\t\t\t\r\n if (isWebKit && key == 'stroke-width' && value === 0) {\r\n value = 0.000001;\r\n }\r\n\r\n // symbols\r\n if (this.symbolName && /^(x|y|r|start|end|innerR)/.test(key)) {\r\n\r\n\r\n if (!hasSetSymbolSize) {\r\n this.symbolAttr(hash);\r\n hasSetSymbolSize = true;\r\n }\r\n skipAttr = true;\r\n }\r\n\r\n // let the shadow follow the main element\r\n if (shadows && /^(width|height|visibility|x|y|d)$/.test(key)) {\r\n i = shadows.length;\r\n while (i--) {\r\n attr(shadows[i], key, value);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n if (key == 'text') {\r\n // only one node allowed\r\n renderer.buildText(element, value);\r\n } else if (!skipAttr) {\r\n //element.setAttribute(key, value);\r\n attr(element, key, value);\r\n }\r\n }\r\n\r\n }\r\n return ret;\r\n },\r\n\r\n /**\r\n * If one of the symbol size affecting parameters are changed,\r\n * check all the others only once for each call to an element's\r\n * .attr() method\r\n * @param {Object} hash\r\n */\r\n symbolAttr: function (hash) {\r\n var wrapper = this;\r\n\r\n wrapper.x = pick(hash.x, wrapper.x);\r\n wrapper.y = pick(hash.y, wrapper.y);\r\n wrapper.r = pick(hash.r, wrapper.r);\r\n wrapper.start = pick(hash.start, wrapper.start);\r\n wrapper.end = pick(hash.end, wrapper.end);\r\n wrapper.width = pick(hash.width, wrapper.width);\r\n wrapper.height = pick(hash.height, wrapper.height);\r\n wrapper.innerR = pick(hash.innerR, wrapper.innerR);\r\n\r\n wrapper.attr({\r\n d: wrapper.renderer.symbols[wrapper.symbolName](wrapper.x, wrapper.y, wrapper.r, {\r\n start: wrapper.start,\r\n end: wrapper.end,\r\n width: wrapper.width,\r\n height: wrapper.height,\r\n innerR: wrapper.innerR\r\n })\r\n });\r\n },\r\n\r\n /**\r\n * Apply a clipping path to this object\r\n * @param {String} id\r\n */\r\n clip: function (clipRect) {\r\n return this.attr('clip-path', 'url(' + this.renderer.url + '#' + clipRect.id + ')');\r\n },\r\n\r\n /**\r\n * Set styles for the element\r\n * @param {Object} styles\r\n */\r\n css: function (styles) {\r\n var elemWrapper = this;\r\n\r\n // convert legacy\r\n if (styles && styles.color) {\r\n styles.fill = styles.color;\r\n }\r\n\r\n // save the styles in an object\r\n styles = extend(\r\n\t\t\telemWrapper.styles,\r\n\t\t\tstyles\r\n\t\t);\r\n\r\n // serialize and set style attribute\r\n elemWrapper.attr({\r\n style: serializeCSS(styles)\r\n });\r\n\r\n // store object\r\n elemWrapper.styles = styles;\r\n\r\n return elemWrapper;\r\n },\r\n\r\n /**\r\n * Add an event listener\r\n * @param {String} eventType\r\n * @param {Function} handler\r\n */\r\n on: function (eventType, handler) {\r\n // simplest possible event model for internal use\r\n this.element['on' + eventType] = handler;\r\n return this;\r\n },\r\n\r\n\r\n /**\r\n * Move an object and its children by x and y values\r\n * @param {Number} x\r\n * @param {Number} y\r\n */\r\n translate: function (x, y) {\r\n var wrapper = this;\r\n wrapper.translateX = x;\r\n wrapper.translateY = y;\r\n wrapper.updateTransform();\r\n return wrapper;\r\n },\r\n\r\n /**\r\n * Invert a group, rotate and flip\r\n */\r\n invert: function () {\r\n var wrapper = this;\r\n wrapper.inverted = true;\r\n wrapper.updateTransform();\r\n return wrapper;\r\n },\r\n\r\n /**\r\n * Private method to update the transform attribute based on internal \r\n * properties\r\n */\r\n updateTransform: function () {\r\n var wrapper = this,\r\n\t\t\ttranslateX = wrapper.translateX || 0,\r\n\t\t\ttranslateY = wrapper.translateY || 0,\r\n\t\t\tinverted = wrapper.inverted,\r\n\t\t\ttransform = [];\r\n\r\n // flipping affects translate as adjustment for flipping around the group's axis\r\n if (inverted) {\r\n translateX += wrapper.attr('width');\r\n translateY += wrapper.attr('height');\r\n }\r\n\r\n // apply translate\r\n if (translateX || translateY) {\r\n transform.push('translate(' + translateX + ',' + translateY + ')');\r\n }\r\n\r\n // apply rotation\r\n if (inverted) {\r\n transform.push('rotate(90) scale(-1,1)');\r\n }\r\n\r\n if (transform.length) {\r\n attr(wrapper.element, 'transform', transform.join(' '));\r\n }\r\n },\r\n /**\r\n * Bring the element to the front\r\n */\r\n toFront: function () {\r\n var element = this.element;\r\n element.parentNode.appendChild(element);\r\n return this;\r\n },\r\n /**\r\n * Get the bounding box (width, height, x and y) for the element\r\n */\r\n getBBox: function () {\r\n return this.element.getBBox();\r\n },\r\n\r\n /**\r\n * Show the element\r\n */\r\n show: function () {\r\n return this.attr({ visibility: VISIBLE });\r\n },\r\n\r\n /**\r\n * Hide the element\r\n */\r\n hide: function () {\r\n return this.attr({ visibility: HIDDEN });\r\n },\r\n\r\n /**\r\n * Add the element\r\n * @param {Object|Undefined} parent Can be an element, an element wrapper or undefined\r\n * to append the element to the renderer.box.\r\n */\r\n add: function (parent) {\r\n\r\n\r\n\r\n\r\n var parentNode = parent ? parent.element : this.renderer.box,\r\n\t\t\tchildNodes = parentNode.childNodes,\r\n\t\t\telement = this.element,\r\n\t\t\tzIndex = attr(element, 'zIndex'),\r\n\t\t\totherElement,\r\n\t\t\totherZIndex,\r\n\t\t\ti;\r\n\r\n // mark as inverted\r\n this.parentInverted = parent && parent.inverted;\r\n\r\n // insert according to this and other elements' zIndex\r\n for (i = 0; i < childNodes.length; i++) {\r\n otherElement = childNodes[i];\r\n otherZIndex = attr(otherElement, 'zIndex');\r\n if (otherElement != element && (\r\n // insert before the first element with a higher zIndex\r\n\t\t\t\t\totherZIndex > zIndex ||\r\n // if no zIndex given, insert before the first element with a zIndex\r\n\t\t\t\t\t(!defined(zIndex) && defined(otherZIndex))\r\n\r\n\t\t\t\t\t)) {\r\n parentNode.insertBefore(element, otherElement);\r\n return this;\r\n }\r\n }\r\n // default: append at the end\r\n parentNode.appendChild(element);\r\n return this;\r\n },\r\n\r\n /**\r\n * Destroy the element and element wrapper\r\n */\r\n destroy: function () {\r\n var wrapper = this,\r\n\t\t\telement = wrapper.element,\r\n\t\t\tshadows = wrapper.shadows,\r\n\t\t\tparentNode = element.parentNode,\r\n\t\t\tkey;\r\n\r\n element.onclick = element.onmouseout = element.onmouseover = element.onmousemove = null;\r\n stop(wrapper); // stop running animations\r\n if (parentNode) {\r\n parentNode.removeChild(element);\r\n }\r\n\r\n if (shadows) {\r\n each(shadows, function (shadow) {\r\n parentNode = shadow.parentNode;\r\n if (parentNode) { // the entire chart HTML can be overwritten\r\n parentNode.removeChild(shadow);\r\n }\r\n });\r\n }\r\n\r\n for (key in wrapper) {\r\n delete wrapper[key];\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Empty a group element\r\n */\r\n empty: function () {\r\n var element = this.element,\r\n\t\t\tchildNodes = element.childNodes,\r\n\t\t\ti = childNodes.length;\r\n\r\n while (i--) {\r\n element.removeChild(childNodes[i]);\r\n }\r\n },\r\n\r\n /**\r\n * Add a shadow to the element. Must be done after the element is added to the DOM\r\n * @param {Boolean} apply\r\n */\r\n shadow: function (apply) {\r\n var shadows = [],\r\n\t\t\ti,\r\n\t\t\tshadow,\r\n\t\t\telement = this.element,\r\n\r\n // compensate for inverted plot area\r\n\t\t\ttransform = this.parentInverted ? '(-1,-1)' : '(1,1)';\r\n\r\n\r\n if (apply) {\r\n //obj.shadows = [];\r\n for (i = 1; i <= 3; i++) {\r\n /*this.drawRect(x + 1, y + 1, w, h, 'rgba(0, 0, 0, '+ (0.05 * i) +')', \r\n 6 - 2 * i, radius);*/\r\n\r\n shadow = element.cloneNode(0);\r\n attr(shadow, {\r\n 'isShadow': 'true',\r\n 'stroke': 'rgb(0, 0, 0)',\r\n 'stroke-opacity': 0.05 * i,\r\n 'stroke-width': 7 - 2 * i,\r\n 'transform': 'translate' + transform,\r\n 'fill': NONE\r\n });\r\n\r\n\r\n element.parentNode.insertBefore(shadow, element);\r\n\r\n shadows.push(shadow);\r\n }\r\n\r\n this.shadows = shadows;\r\n }\r\n return this;\r\n\r\n }\r\n};\r\n\r\n\r\n\r\n/**\r\n* The default SVG renderer\r\n*/\r\nvar SVGRenderer = function () {\r\n this.init.apply(this, arguments);\r\n};\r\nSVGRenderer.prototype = {\r\n /**\r\n * Initialize the SVGRenderer\r\n * @param {Object} container\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\r\n init: function (container, width, height) {\r\n var box = doc.createElementNS('http://www.w3.org/2000/svg', 'svg'),\r\n\t\t\tloc = location;\r\n attr(box, {\r\n width: width,\r\n height: height,\r\n xmlns: 'http://www.w3.org/2000/svg',\r\n version: '1.1'\r\n });\r\n container.appendChild(box);\r\n\r\n // object properties\r\n this.Element = SVGElement;\r\n this.box = box;\r\n this.url = loc.href.replace(/#.*?$/, ''); // page url used for internal references\r\n this.defs = this.createElement('defs').add();\r\n },\r\n\r\n\r\n /**\r\n * Create a wrapper for an SVG element\r\n * @param {Object} nodeName\r\n */\r\n createElement: function (nodeName) {\r\n var wrapper = new this.Element();\r\n wrapper.init(this, nodeName);\r\n return wrapper;\r\n },\r\n\r\n\r\n /** \r\n * Parse a simple HTML string into SVG tspans\r\n * \r\n * @param {Object} textNode The parent text SVG node\r\n * @param {String} str\r\n */\r\n buildText: function (textNode, str) {\r\n var lines = str.toString()\r\n\t\t\t\t.replace(/<(b|strong)>/g, '')\r\n\t\t\t\t.replace(/<(i|em)>/g, '')\r\n\t\t\t\t.replace(//g, '')\r\n\t\t\t\t.split('
'),\r\n\t\t\tchildNodes = textNode.childNodes,\r\n\t\t\tstyleRegex = /style=\"([ 0-9a-z:;\\-]+)\"/,\r\n\t\t\threfRegex = /href=\"([^\"]+)\"/,\r\n\t\t\tparentX = attr(textNode, 'x'),\r\n\t\t\ti;\r\n\r\n\r\n // remove old text\r\n for (i = childNodes.length - 1; i >= 0; i--) {\r\n textNode.removeChild(childNodes[i]);\r\n }\r\n\r\n\r\n each(lines, function (line, lineNo) {\r\n var spans, spanNo = 0;\r\n\r\n line = line.replace(//g, '|||');\r\n spans = line.split('|||');\r\n\r\n each(spans, function (span) {\r\n if (span !== '') {\r\n var attributes = {},\r\n\t\t\t\t\t\ttspan = doc.createElementNS('http://www.w3.org/2000/svg', 'tspan');\r\n if (styleRegex.test(span)) {\r\n attr(\r\n\t\t\t\t\t\t\ttspan,\r\n\t\t\t\t\t\t\t'style',\r\n\t\t\t\t\t\t\tspan.match(styleRegex)[1].replace(/(;| |^)color([ :])/, '$1fill$2')\r\n\t\t\t\t\t\t);\r\n }\r\n if (hrefRegex.test(span)) {\r\n attr(tspan, 'onclick', 'location.href=\\\"' + span.match(hrefRegex)[1] + '\\\"');\r\n css(tspan, { cursor: 'pointer' });\r\n }\r\n\r\n span = span.replace(/<(.|\\n)*?>/g, '');\r\n tspan.appendChild(doc.createTextNode(span));\r\n //console.log('\"'+tspan.textContent+'\"');\r\n if (!spanNo) { // first span in a line, align it to the left\r\n attributes.x = parentX;\r\n } else {\r\n // Firefox ignores spaces at the front or end of the tspan\r\n attributes.dx = 3; // space\r\n }\r\n if (lineNo && !spanNo) { // first span on subsequent line, add the line height\r\n attributes.dy = 16;\r\n }\r\n\r\n attr(tspan, attributes);\r\n\r\n textNode.appendChild(tspan);\r\n\r\n spanNo++;\r\n }\r\n });\r\n\r\n });\r\n },\r\n\r\n /**\r\n * Make a straight line crisper by not spilling out to neighbour pixels\r\n * @param {Array} points\r\n * @param {Number} width \r\n */\r\n crispLine: function (points, width) {\r\n // points format: [M, 0, 0, L, 100, 0]\r\n // normalize to a crisp line\r\n if (points[1] == points[4]) {\r\n points[1] = points[4] = mathRound(points[1]) + (width % 2 / 2);\r\n }\r\n if (points[2] == points[5]) {\r\n points[2] = points[5] = mathRound(points[2]) + (width % 2 / 2);\r\n }\r\n return points;\r\n },\r\n\r\n\r\n /**\r\n * Draw a path\r\n * @param {Array} path An SVG path in array form\r\n */\r\n path: function (path) {\r\n return this.createElement('path').attr({\r\n d: path,\r\n fill: NONE\r\n });\r\n },\r\n\r\n /**\r\n * Draw and return an SVG circle\r\n * @param {Number} x The x position\r\n * @param {Number} y The y position\r\n * @param {Number} r The radius\r\n */\r\n circle: function (x, y, r) {\r\n var attr = typeof x == 'object' ?\r\n\t\t\tx :\r\n\t\t\t{\r\n\t\t\t x: x,\r\n\t\t\t y: y,\r\n\t\t\t r: r\r\n\t\t\t};\r\n\r\n return this.createElement('circle').attr(attr);\r\n },\r\n\r\n /**\r\n * Draw and return an arc\r\n * @param {Number} x X position\r\n * @param {Number} y Y position\r\n * @param {Number} r Radius\r\n * @param {Number} innerR Inner radius like used in donut charts\r\n * @param {Number} start Starting angle\r\n * @param {Number} end Ending angle\r\n */\r\n arc: function (x, y, r, innerR, start, end) {\r\n // arcs are defined as symbols for the ability to set \r\n // attributes in attr and animate\r\n\r\n if (typeof x == 'object') {\r\n y = x.y;\r\n r = x.r;\r\n innerR = x.innerR;\r\n start = x.start;\r\n end = x.end;\r\n x = x.x;\r\n }\r\n\r\n return this.symbol('arc', x || 0, y || 0, r || 0, {\r\n innerR: innerR || 0,\r\n start: start || 0,\r\n end: end || 0\r\n });\r\n },\r\n\r\n /**\r\n * Draw and return a rectangle\r\n * @param {Number} x Left position\r\n * @param {Number} y Top position\r\n * @param {Number} width\r\n * @param {Number} height\r\n * @param {Number} r Border corner radius\r\n * @param {Number} strokeWidth A stroke width can be supplied to allow crisp drawing\r\n */\r\n rect: function (x, y, width, height, r, strokeWidth) {\r\n\r\n if (arguments.length > 1) {\r\n var normalizer = (strokeWidth || 0) % 2 / 2;\r\n\r\n // normalize for crisp edges\r\n x = mathRound(x || 0) + normalizer;\r\n y = mathRound(y || 0) + normalizer;\r\n width = mathRound((width || 0) - 2 * normalizer);\r\n height = mathRound((height || 0) - 2 * normalizer);\r\n }\r\n\r\n var attr = typeof x == 'object' ?\r\n\t\t\tx : // the attributes can be passed as the first argument\r\n\t\t\t{\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\twidth: mathMax(width, 0),\r\n\t\t\theight: mathMax(height, 0)\r\n\r};\r\n\r\n return this.createElement('rect').attr(extend(attr, {\r\n rx: r || attr.r,\r\n ry: r || attr.r,\r\n fill: NONE\r\n }));\r\n },\r\n\r\n /**\r\n * Create a group\r\n * @param {String} name The group will be given a class name of 'highcharts-{name}'.\r\n * This can be used for styling and scripting.\r\n */\r\n g: function (name) {\r\n return this.createElement('g').attr(\r\n\t\t\tdefined(name) && { 'class': PREFIX + name }\r\n\t\t);\r\n },\r\n\r\n /**\r\n * Display an image\r\n * @param {String} src\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\r\n image: function (src, x, y, width, height) {\r\n var elemWrapper = this.createElement('image').attr({\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height,\r\n preserveAspectRatio: NONE\r\n });\r\n\r\n // set the href in the xlink namespace\r\n elemWrapper.element.setAttributeNS('http://www.w3.org/1999/xlink',\r\n\t\t\t'href', src);\r\n\r\n return elemWrapper;\r\n },\r\n\r\n /**\r\n * Draw a symbol out of pre-defined shape paths from the namespace 'symbol' object.\r\n * \r\n * @param {Object} symbol\r\n * @param {Object} x\r\n * @param {Object} y\r\n * @param {Object} radius\r\n * @param {Object} options\r\n */\r\n symbol: function (symbol, x, y, radius, options) {\r\n\r\n var obj,\r\n\r\n // get the symbol definition function\r\n\t\t\tsymbolFn = this.symbols[symbol],\r\n\r\n // check if there's a path defined for this symbol\r\n\t\t\tpath = symbolFn && symbolFn(\r\n\t\t\t\tx,\r\n\t\t\t\ty,\r\n\t\t\t\tradius,\r\n\t\t\t\toptions\r\n\t\t\t),\r\n\r\n\t\t\timageRegex = /^url\\((.*?)\\)$/,\r\n\t\t\timageSrc;\r\n\r\n\r\n if (path) {\r\n obj = this.path(path);\r\n // expando properties for use in animate and attr\r\n extend(obj, {\r\n symbolName: symbol,\r\n x: x,\r\n y: y,\r\n r: radius\r\n });\r\n if (options) {\r\n extend(obj, options);\r\n }\r\n\r\n\r\n // image symbols\r\n } else if (imageRegex.test(symbol)) {\r\n imageSrc = symbol.match(imageRegex)[1];\r\n\r\n\r\n // create the image\r\n obj = this.image(imageSrc).attr({\r\n visibility: HIDDEN\r\n });\r\n // create a dummy JavaScript image to get the width and height \r\n createElement('img', {\r\n onload: function () {\r\n var img = this,\r\n\t\t\t\t\t\tsize = symbolSizes[img.src] || [img.width, img.height];\r\n obj.attr({\r\n x: mathRound(x - size[0] / 2) + PX,\r\n y: mathRound(y - size[1] / 2) + PX,\r\n width: size[0],\r\n height: size[1],\r\n visibility: 'inherit'\r\n });\r\n },\r\n src: imageSrc\r\n });\r\n\r\n // default circles\r\n } else {\r\n obj = this.circle(x, y, radius);\r\n }\r\n\r\n return obj;\r\n },\r\n\r\n /**\r\n * An extendable collection of functions for defining symbol paths.\r\n */\r\n symbols: {\r\n 'square': function (x, y, radius) {\r\n var len = 0.707 * radius;\r\n return [\r\n\t\t\t\tM, x - len, y - len,\r\n\t\t\t\tL, x + len, y - len,\r\n\t\t\t\tx + len, y + len,\r\n\t\t\t\tx - len, y + len,\r\n\t\t\t\t'Z'\r\n\t\t\t];\r\n },\r\n\r\n 'triangle': function (x, y, radius) {\r\n return [\r\n\t\t\t\tM, x, y - 1.33 * radius,\r\n\t\t\t\tL, x + radius, y + 0.67 * radius,\r\n\t\t\t\tx - radius, y + 0.67 * radius,\r\n\t\t\t\t'Z'\r\n\t\t\t];\r\n },\r\n\r\n 'triangle-down': function (x, y, radius) {\r\n return [\r\n\t\t\t\tM, x, y + 1.33 * radius,\r\n\t\t\t\tL, x - radius, y - 0.67 * radius,\r\n\t\t\t\tx + radius, y - 0.67 * radius,\r\n\t\t\t\t'Z'\r\n\t\t\t];\r\n },\r\n 'diamond': function (x, y, radius) {\r\n return [\r\n\t\t\t\tM, x, y - radius,\r\n\t\t\t\tL, x + radius, y,\r\n\t\t\t\tx, y + radius,\r\n\t\t\t\tx - radius, y,\r\n\t\t\t\t'Z'\r\n\t\t\t];\r\n },\r\n 'arc': function (x, y, radius, options) {\r\n var pi = Math.PI,\r\n\t\t\t\tstart = options.start,\r\n\t\t\t\tend = options.end - 0.000001, // to prevent cos and sin of start and end from becoming equal on 360 arcs\r\n\t\t\t\tinnerRadius = options.innerR,\r\n\t\t\t\tcosStart = mathCos(start),\r\n\t\t\t\tsinStart = mathSin(start),\r\n\t\t\t\tcosEnd = mathCos(end),\r\n\t\t\t\tsinEnd = mathSin(end),\r\n\t\t\t\tlongArc = options.end - start < pi ? 0 : 1;\r\n\r\n return [\r\n\t\t\t\tM,\r\n\t\t\t\tx + radius * cosStart,\r\n\t\t\t\ty + radius * sinStart,\r\n\t\t\t\t'A', // arcTo\r\n\t\t\t\tradius, // x radius\r\n\t\t\t\tradius, // y radius\r\n\t\t\t\t0, // slanting\r\n\t\t\t\tlongArc, // long or short arc\r\n\t\t\t\t1, // clockwise\r\n\t\t\t\tx + radius * cosEnd,\r\n\t\t\t\ty + radius * sinEnd,\r\n\t\t\t\tL,\r\n\t\t\t\tx + innerRadius * cosEnd,\r\n\t\t\t\ty + innerRadius * sinEnd,\r\n\t\t\t\t'A', // arcTo\r\n\t\t\t\tinnerRadius, // x radius\r\n\t\t\t\tinnerRadius, // y radius\r\n\t\t\t\t0, // slanting\r\n\t\t\t\tlongArc, // long or short arc\r\n\t\t\t\t0, // clockwise\r\n\t\t\t\tx + innerRadius * cosStart,\r\n\t\t\t\ty + innerRadius * sinStart,\r\n\r\n\t\t\t\t'Z' // close\r\n\t\t\t];\r\n }\r\n },\r\n\r\n /**\r\n * Define a clipping rectangle\r\n * @param {String} id\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\r\n clipRect: function (x, y, width, height) {\r\n var wrapper,\r\n\t\t\tid = PREFIX + idCounter++,\r\n\r\n\t\t\tclipPath = this.createElement('clipPath').attr({\r\n\t\t\t id: id\r\n\t\t\t}).add(this.defs);\r\n\r\n wrapper = this.rect(x, y, width, height, 0).add(clipPath);\r\n wrapper.id = id;\r\n\r\n return wrapper;\r\n },\r\n\r\n\r\n /**\r\n * Take a color and return it if it's a string, make it a gradient if it's a\r\n * gradient configuration object\r\n * \r\n * @param {Object} color The color or config object\r\n */\r\n color: function (color, elem, prop) {\r\n var colorObject,\r\n\t\t\tregexRgba = /^rgba/;\r\n if (color && color.linearGradient) {\r\n var renderer = this,\r\n\t\t\t\tstrLinearGradient = 'linearGradient',\r\n\t\t\t\tlinearGradient = color[strLinearGradient],\r\n\t\t\t\tid = PREFIX + idCounter++,\r\n\t\t\t\tgradientObject,\r\n\t\t\t\tstopColor,\r\n\t\t\t\tstopOpacity;\r\n gradientObject = renderer.createElement(strLinearGradient).attr({\r\n id: id,\r\n gradientUnits: 'userSpaceOnUse',\r\n x1: linearGradient[0],\r\n y1: linearGradient[1],\r\n x2: linearGradient[2],\r\n y2: linearGradient[3]\r\n }).add(renderer.defs);\r\n\r\n each(color.stops, function (stop) {\r\n if (regexRgba.test(stop[1])) {\r\n colorObject = Color(stop[1]);\r\n stopColor = colorObject.get('rgb');\r\n stopOpacity = colorObject.get('a');\r\n } else {\r\n stopColor = stop[1];\r\n stopOpacity = 1;\r\n }\r\n renderer.createElement('stop').attr({\r\n offset: stop[0],\r\n 'stop-color': stopColor,\r\n 'stop-opacity': stopOpacity\r\n }).add(gradientObject);\r\n });\r\n\r\n return 'url(' + this.url + '#' + id + ')';\r\n\r\n // Webkit and Batik can't show rgba.\r\n } else if (regexRgba.test(color)) {\r\n colorObject = Color(color);\r\n attr(elem, prop + '-opacity', colorObject.get('a'));\r\n\r\n return colorObject.get('rgb');\r\n\r\n\r\n } else {\r\n return color;\r\n }\r\n\r\n },\r\n\r\n\r\n /**\r\n * Add text to the SVG object\r\n * @param {String} str\r\n * @param {Number} x Left position\r\n * @param {Number} y Top position\r\n * @param {Object} style CSS styles for the text\r\n * @param {Nubmer} rotation Rotation in degrees\r\n * @param {String} align Left, center or right\r\n */\r\n text: function (str, x, y, style, rotation, align) {\r\n style = style || {};\r\n align = align || 'left';\r\n rotation = rotation || 0;\r\n\r\n // declare variables\r\n var attribs,\r\n\t\t\tcss,\r\n\t\t\tfill = style.color || '#000000',\r\n\t\t\tdefaultChartStyle = defaultOptions.chart.style;\r\n\r\n x = mathRound(pick(x, 0));\r\n y = mathRound(pick(y, 0));\r\n\r\n extend(style, {\r\n fontFamily: style.fontFamily || defaultChartStyle.fontFamily,\r\n fontSize: style.fontSize || defaultChartStyle.fontSize\r\n });\r\n\r\n // prepare style\r\n css = serializeCSS(style);\r\n\r\n // prepare attributes\r\n attribs = {\r\n x: x,\r\n y: y,\r\n text: str,\r\n fill: fill,\r\n style: css.replace(/\"/g, \"'\")\r\n\r\n };\r\n\r\n if (rotation || align != 'left') {\r\n attribs = extend(attribs, {\r\n 'text-anchor': { left: 'start', center: 'middle', right: 'end'}[align],\r\n transform: 'rotate(' + rotation + ' ' + x + ' ' + y + ')'\r\n\r\n });\r\n }\r\n\r\n\r\n return this.createElement('text').attr(attribs);\r\n //}\r\n }\r\n}; // end SVGRenderer\r\n\r\n\r\n\r\n\r\n/* **************************************************************************** \r\n* * \r\n* START OF INTERNET EXPLORER <= 8 SPECIFIC CODE *\r\n* *\r\n* For applications and websites that don't need IE support, like platform *\r\n* targeted mobile apps and web apps, this code can be removed. *\r\n* *\r\n*****************************************************************************/\r\nvar VMLRenderer;\r\nif (!hasSVG) {\r\n\r\n /**\r\n * The VML element wrapper.\r\n */\r\n var VMLElement = extendClass(SVGElement, {\r\n\r\n /**\r\n * Initialize a new VML element wrapper. It builds the markup as a string\r\n * to minimize DOM traffic.\r\n * @param {Object} renderer\r\n * @param {Object} nodeName\r\n */\r\n init: function (renderer, nodeName) {\r\n var markup = ['<', nodeName, ' filled=\"f\" stroked=\"f\"'],\r\n\t\t\tstyle = ['position: ', ABSOLUTE, ';'];\r\n\r\n // divs and shapes need size\r\n if (nodeName == 'shape' || nodeName == DIV) {\r\n style.push('left:0;top:0;width:10px;height:10px;');\r\n }\r\n markup.push(' style=\"', style.join(''), '\"/>');\r\n\r\n // create element with default attributes and style\r\n if (nodeName) {\r\n markup = nodeName == DIV || nodeName == 'span' || nodeName == 'img' ?\r\n\t\t\t\tmarkup.join('')\r\n\t\t\t\t: renderer.prepVML(markup);\r\n this.element = createElement(markup);\r\n }\r\n\r\n this.renderer = renderer;\r\n },\r\n\r\n /**\r\n * Add the node to the given parent\r\n * @param {Object} parent\r\n */\r\n add: function (parent) {\r\n var wrapper = this,\r\n\t\t\trenderer = wrapper.renderer,\r\n\t\t\telement = wrapper.element,\r\n\t\t\tbox = renderer.box,\r\n\t\t\tinverted = parent && parent.inverted,\r\n\t\t\tparentStyle,\r\n\r\n // get the parent node\r\n\t\t\tparentNode = parent ?\r\n\t\t\t\tparent.element || parent :\r\n\t\t\t\tbox;\r\n\r\n\r\n // if the parent group is inverted, apply inversion on all children\r\n if (inverted) { // only on groups\r\n\r\n parentStyle = parentNode.style;\r\n\r\n css(element, {\r\n flip: 'x',\r\n left: parseInt(parentStyle.width, 10) - 10,\r\n top: parseInt(parentStyle.height, 10) - 10,\r\n rotation: -90\r\n });\r\n\r\n }\r\n\r\n //css(element, { visibility: 'visible' });\r\n\r\n // append it\r\n parentNode.appendChild(element);\r\n\r\n\r\n return wrapper;\r\n },\r\n\r\n /**\r\n * Get or set attributes\r\n */\r\n attr: function (hash, val) {\r\n var key,\r\n\t\t\tvalue,\r\n\t\t\ti,\r\n\t\t\telement = this.element,\r\n\t\t\telemStyle = element.style,\r\n\t\t\tnodeName = element.nodeName,\r\n\t\t\trenderer = this.renderer,\r\n\t\t\tsymbolName = this.symbolName,\r\n\t\t\thasSetSymbolSize,\r\n\t\t\tshadows = this.shadows,\r\n\t\t\tskipAttr,\r\n\t\t\tret = this;\r\n\r\n // single key-value pair\r\n if (typeof hash == 'string' && defined(val)) {\r\n key = hash;\r\n hash = {};\r\n hash[key] = val;\r\n }\r\n\r\n // used as a getter, val is undefined\r\n if (typeof hash == 'string') {\r\n key = hash;\r\n if (key == 'strokeWidth' || key == 'stroke-width') {\r\n ret = element.strokeweight;\r\n\r\n } else {\r\n ret = pick(\r\n\t\t\t\t\tthis[key],\r\n\t\t\t\t\tparseInt(elemStyle[{\r\n\t\t\t\t\t x: 'left',\r\n\t\t\t\t\t y: 'top'\r\n\t\t\t\t\t}[key] || key], 10)\r\n\t\t\t\t);\r\n }\r\n\r\n\r\n // setter\r\n } else {\r\n for (key in hash) {\r\n value = hash[key];\r\n skipAttr = false;\r\n\r\n // prepare paths\r\n // symbols\r\n if (symbolName && /^(x|y|r|start|end|width|height|innerR)/.test(key)) {\r\n // if one of the symbol size affecting parameters are changed,\r\n // check all the others only once for each call to an element's\r\n // .attr() method\r\n if (!hasSetSymbolSize) {\r\n\r\n this.symbolAttr(hash);\r\n\r\n hasSetSymbolSize = true;\r\n }\r\n\r\n skipAttr = true;\r\n\r\n } else if (key == 'd') {\r\n\r\n //key = 'path';\r\n\r\n // convert paths \r\n i = value.length;\r\n var convertedPath = [];\r\n while (i--) {\r\n\r\n // Multiply by 10 to allow subpixel precision.\r\n // Substracting half a pixel seems to make the coordinates\r\n // align with SVG, but this hasn't been tested thoroughly\r\n if (typeof value[i] == 'number') {\r\n convertedPath[i] = mathRound(value[i] * 10) - 5;\r\n }\r\n // close the path\r\n else if (value[i] == 'Z') {\r\n convertedPath[i] = 'x';\r\n }\r\n else {\r\n convertedPath[i] = value[i];\r\n }\r\n\r\n }\r\n value = convertedPath.join(' ') || 'x';\r\n element.path = value;\r\n\r\n // update shadows\r\n if (shadows) {\r\n i = shadows.length;\r\n while (i--) {\r\n shadows[i].path = value;\r\n }\r\n }\r\n skipAttr = true;\r\n\r\n // directly mapped to css\r\n } else if (key == 'zIndex' || key == 'visibility') {\r\n elemStyle[key] = value;\r\n\r\n skipAttr = true;\r\n\r\n // width and height\r\n } else if (/^(width|height)$/.test(key)) {\r\n\r\n // normal\r\n elemStyle[key] = value;\r\n\r\n // clipping rectangle special\r\n if (this.updateClipping) {\r\n this.updateClipping();\r\n }\r\n\r\n skipAttr = true;\r\n\r\n // x and y \r\n } else if (/^(x|y)$/.test(key)) {\r\n\r\n if (key == 'y' && element.tagName == 'SPAN' && element.lineHeight) { // subtract lineHeight\r\n value -= element.lineHeight;\r\n }\r\n\r\n elemStyle[{ x: 'left', y: 'top'}[key]] = value;\r\n\r\n // class name\r\n } else if (key == 'class') {\r\n // IE8 Standards mode has problems retrieving the className\r\n element.className = value;\r\n\r\n // stroke\r\n } else if (key == 'stroke') {\r\n\r\n value = renderer.color(value, element, key);\r\n\r\n key = 'strokecolor';\r\n\r\n // stroke width\r\n } else if (key == 'stroke-width' || key == 'strokeWidth') {\r\n\r\n element.stroked = value ? true : false;\r\n key = 'strokeweight';\r\n if (typeof value == 'number') {\r\n value += PX;\r\n }\r\n\r\n // fill\r\n } else if (key == 'fill') {\r\n\r\n if (nodeName == 'SPAN') { // text color\r\n elemStyle.color = value;\r\n } else {\r\n element.filled = value != NONE ? true : false;\r\n\r\n value = renderer.color(value, element, key);\r\n\r\n key = 'fillcolor';\r\n }\r\n }\r\n\r\n // translation for animation\r\n else if (key == 'translateX' || key == 'translateY') {\r\n this[key] = val;\r\n this.updateTransform();\r\n\r\n skipAttr = true;\r\n }\r\n\r\n\r\n\r\n // let the shadow follow the main element\r\n if (shadows && key == 'visibility') {\r\n i = shadows.length;\r\n while (i--) {\r\n shadows[i].style[key] = value;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n if (key == 'text') {\r\n // only one node allowed\r\n element.innerHTML = value;\r\n } else if (!skipAttr) {\r\n if (doc.documentMode == 8) { // IE8 setAttribute bug\r\n element[key] = value;\r\n } else {\r\n attr(element, key, value);\r\n }\r\n }\r\n }\r\n }\r\n return ret;\r\n },\r\n\r\n /**\r\n * Set the element's clipping to a predefined rectangle\r\n * \r\n * @param {String} id The id of the clip rectangle\r\n */\r\n clip: function (clipRect) {\r\n var wrapper = this,\r\n\t\t\tclipMembers = clipRect.members,\r\n\t\t\tindex = clipMembers.length;\r\n\r\n clipMembers.push(wrapper);\r\n wrapper.destroyClip = function () {\r\n clipMembers.splice(index, 1);\r\n };\r\n return wrapper.css({ clip: clipRect.getCSS(wrapper.inverted) });\r\n },\r\n\r\n /**\r\n * Set styles for the element\r\n * @param {Object} styles\r\n */\r\n css: function (styles) {\r\n var wrapper = this;\r\n\r\n css(wrapper.element, styles);\r\n\r\n return wrapper;\r\n },\r\n\r\n /**\r\n * Extend element.destroy by removing it from the clip members array\r\n */\r\n destroy: function () {\r\n var wrapper = this;\r\n\r\n if (wrapper.destroyClip) {\r\n wrapper.destroyClip();\r\n }\r\n\r\n SVGElement.prototype.destroy.apply(this);\r\n },\r\n\r\n /**\r\n * Remove all child nodes of a group, except the v:group element\r\n */\r\n empty: function () {\r\n var element = this.element,\r\n\t\t\tchildNodes = element.childNodes,\r\n\t\t\ti = childNodes.length,\r\n\t\t\tnode;\r\n\r\n while (i--) {\r\n node = childNodes[i];\r\n node.parentNode.removeChild(node);\r\n }\r\n },\r\n\r\n /**\r\n * Calculate the bounding box based on offsets\r\n * \r\n * @return {Object} A hash containing values for x, y, width and height\r\n */\r\n\r\n getBBox: function () {\r\n var element = this.element,\r\n\t\t\tret,\r\n\t\t\thasOffsetWidth = element.offsetWidth,\r\n\t\t\torigParentNode = element.parentNode;\r\n\r\n if (!hasOffsetWidth) {\r\n doc.body.appendChild(element);\r\n }\r\n ret = {\r\n x: element.offsetLeft,\r\n y: element.offsetTop,\r\n width: element.offsetWidth,\r\n height: element.offsetHeight\r\n };\r\n\r\n if (!hasOffsetWidth) {\r\n if (origParentNode) {\r\n origParentNode.appendChild(element);\r\n } else {\r\n doc.body.removeChild(element);\r\n }\r\n }\r\n\r\n return ret;\r\n\r\n },\r\n\r\n /**\r\n * Add an event listener. VML override for normalizing event parameters.\r\n * @param {String} eventType\r\n * @param {Function} handler\r\n */\r\n on: function (eventType, handler) {\r\n // simplest possible event model for internal use\r\n this.element['on' + eventType] = function () {\r\n var evt = win.event;\r\n evt.target = evt.srcElement;\r\n handler(evt);\r\n };\r\n return this;\r\n },\r\n\r\n\r\n /**\r\n * Private method to update elements based on internal \r\n * properties based on SVG transform\r\n */\r\n updateTransform: function () {\r\n var wrapper = this,\r\n\t\t\ttranslateX = wrapper.translateX || 0,\r\n\t\t\ttranslateY = wrapper.translateY || 0;\r\n\r\n // apply translate\r\n if (translateX || translateY) {\r\n wrapper.css({\r\n left: translateX,\r\n top: translateY\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Apply a drop shadow by copying elements and giving them different strokes \r\n * @param {Boolean} apply\r\n */\r\n shadow: function (apply) {\r\n var shadows = [],\r\n\t\t\ti,\r\n\t\t\telement = this.element,\r\n\t\t\trenderer = this.renderer,\r\n\t\t\tshadow,\r\n\t\t\telemStyle = element.style,\r\n\t\t\tmarkup;\r\n\r\n if (apply && typeof element.path == 'string') {\r\n for (i = 1; i <= 3; i++) {\r\n markup = [''];\r\n shadow = createElement(renderer.prepVML(markup),\r\n\t\t\t\t\tnull, {\r\n\t\t\t\t\t left: parseInt(elemStyle.left, 10) + 1,\r\n\t\t\t\t\t top: parseInt(elemStyle.top, 10) + 1\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n // apply the opacity\r\n markup = [''];\r\n createElement(renderer.prepVML(markup), null, null, shadow);\r\n\r\n\r\n // insert it\r\n element.parentNode.insertBefore(shadow, element);\r\n\r\n // record it\r\n shadows.push(shadow);\r\n\r\n }\r\n\r\n this.shadows = shadows;\r\n }\r\n return this;\r\n\r\n }\r\n });\r\n\r\n /**\r\n * The VML renderer\r\n */\r\n VMLRenderer = function () {\r\n this.init.apply(this, arguments);\r\n };\r\n VMLRenderer.prototype = merge(SVGRenderer.prototype, { // inherit SVGRenderer\r\n\r\n isIE8: userAgent.indexOf('MSIE 8.0') > -1,\r\n\r\n\r\n /**\r\n * Initialize the VMLRenderer\r\n * @param {Object} container\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\r\n init: function (container, width, height) {\r\n\r\n // generate the containing box\r\n this.box = createElement(DIV, null, {\r\n width: width + PX,\r\n height: height + PX\r\n }, container);\r\n this.Element = VMLElement;\r\n\r\n // The only way to make IE6 and IE7 print is to use a global namespace. However,\r\n // with IE8 the only way to make the dynamic shapes visible in screen and print mode\r\n // seems to be to add the xmlns attribute and the behaviour style inline. Except\r\n // for rotated text, which I haven't been able to render in IE8 without a namespace.\r\n // As a consequence, rotated text doesn't print. \r\n if (!doc.namespaces.hcv) {\r\n\r\n doc.namespaces.add('hcv', 'urn:schemas-microsoft-com:vml');\r\n\r\n // setup default css\r\n doc.createStyleSheet().cssText =\r\n\t\t\t\t'hcv\\\\:fill, hcv\\\\:path, hcv\\\\:textpath, hcv\\\\:shape, hcv\\\\:stroke, hcv\\\\:line ' +\r\n\t\t\t\t'{ behavior:url(#default#VML); display: inline-block; } ';\r\n\r\n }\r\n },\r\n\r\n /**\r\n * Define a clipping rectangle. In VML it is accomplished by storing the values\r\n * for setting the CSS style to all associated members.\r\n * \r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\r\n clipRect: function (x, y, width, height) {\r\n\r\n // create a dummy element\r\n var clipRect = this.createElement();\r\n\r\n // mimic a rectangle with its style object for automatic updating in attr\r\n return extend(clipRect, {\r\n members: [],\r\n element: {\r\n style: {\r\n left: x,\r\n top: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n getCSS: function (inverted) {\r\n var elemStyle = clipRect.element.style,\r\n\t\t\t\t\ttop = elemStyle.top,\r\n\t\t\t\t\tleft = elemStyle.left,\r\n\t\t\t\t\tright = left + elemStyle.width,\r\n\t\t\t\t\tbottom = top + elemStyle.height;\r\n return 'rect(' +\r\n\t\t\t\t\t(inverted ? left : top) + 'px,' +\r\n\t\t\t\t\t(inverted ? bottom : right) + 'px,' +\r\n\t\t\t\t\t(inverted ? right : bottom) + 'px,' +\r\n\t\t\t\t\t(inverted ? top : left) + 'px)';\r\n },\r\n\r\n // used in attr and animation to update the clipping of all members\r\n updateClipping: function () {\r\n each(clipRect.members, function (member) {\r\n member.css({ clip: clipRect.getCSS(member.inverted) });\r\n });\r\n }\r\n });\r\n\r\n },\r\n\r\n\r\n /**\r\n * Take a color and return it if it's a string, make it a gradient if it's a\r\n * gradient configuration object, and apply opacity.\r\n * \r\n * @param {Object} color The color or config object\r\n */\r\n color: function (color, elem, prop) {\r\n var colorObject,\r\n\t\t\tregexRgba = /^rgba/,\r\n\t\t\tmarkup;\r\n\r\n if (color && color.linearGradient) {\r\n\r\n var stopColor,\r\n\t\t\t\tstopOpacity,\r\n\t\t\t\tlinearGradient = color.linearGradient,\r\n\t\t\t\tangle,\r\n\t\t\t\tcolor1,\r\n\t\t\t\topacity1,\r\n\t\t\t\tcolor2,\r\n\t\t\t\topacity2;\r\n\r\n each(color.stops, function (stop, i) {\r\n if (regexRgba.test(stop[1])) {\r\n colorObject = Color(stop[1]);\r\n stopColor = colorObject.get('rgb');\r\n stopOpacity = colorObject.get('a');\r\n } else {\r\n stopColor = stop[1];\r\n stopOpacity = 1;\r\n }\r\n\r\n if (!i) { // first\r\n color1 = stopColor;\r\n opacity1 = stopOpacity;\r\n } else {\r\n color2 = stopColor;\r\n opacity2 = stopOpacity;\r\n }\r\n });\r\n\r\n\r\n\r\n // calculate the angle based on the linear vector\r\n angle = 90 - math.atan(\r\n\t\t\t\t(linearGradient[3] - linearGradient[1]) / // y vector\r\n\t\t\t\t(linearGradient[2] - linearGradient[0]) // x vector\r\n\t\t\t\t) * 180 / math.PI;\r\n\r\n // when colors attribute is used, the meanings of opacity and o:opacity2\r\n // are reversed.\r\n markup = [''];\r\n createElement(this.prepVML(markup), null, null, elem);\r\n\r\n\r\n\r\n // if the color is an rgba color, split it and add a fill node\r\n // to hold the opacity component\r\n } else if (regexRgba.test(color)) {\r\n\r\n colorObject = Color(color);\r\n\r\n markup = ['<', prop, ' opacity=\"', colorObject.get('a'), '\"/>'];\r\n createElement(this.prepVML(markup), null, null, elem);\r\n\r\n return colorObject.get('rgb');\r\n\r\n\r\n } else {\r\n return color;\r\n }\r\n\r\n },\r\n\r\n /**\r\n * Take a VML string and prepare it for either IE8 or IE6/IE7. \r\n * @param {Array} markup A string array of the VML markup to prepare\r\n */\r\n prepVML: function (markup) {\r\n var //xmlns = 'urn:schemas-microsoft-com:vml',\r\n\t\t\tvmlStyle = 'display:inline-block;behavior:url(#default#VML);',\r\n\t\t\tisIE8 = this.isIE8;\r\n\r\n markup = markup.join('');\r\n\r\n if (isIE8) { // add xmlns and style inline\r\n markup = markup.replace('/>', ' xmlns=\"urn:schemas-microsoft-com:vml\" />');\r\n if (markup.indexOf('style=\"') == -1) {\r\n markup = markup.replace('/>', ' style=\"' + vmlStyle + '\" />');\r\n } else {\r\n markup = markup.replace('style=\"', 'style=\"' + vmlStyle);\r\n }\r\n\r\n } else { // add namespace\r\n markup = markup.replace('<', '',\r\n\t\t\tnull, null, elem);\r\n\r\n\r\n }\r\n\r\n return elemWrapper;\r\n },\r\n\r\n /**\r\n * Create and return a path element\r\n * @param {Array} path\r\n */\r\n path: function (path) {\r\n // create the shape\r\n return this.createElement('shape').attr({\r\n // subpixel precision down to 0.1 (width and height = 10px)\r\n coordsize: '100 100',\r\n d: path\r\n });\r\n },\r\n\r\n /**\r\n * Create and return a circle element. In VML circles are implemented as\r\n * shapes, which is faster than v:oval\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} r\r\n */\r\n circle: function (x, y, r) {\r\n return this.path(this.symbols.circle(x, y, r));\r\n },\r\n\r\n /**\r\n * Create a group using an outer div and an inner v:group to allow rotating \r\n * and flipping. A simple v:group would have problems with positioning\r\n * child HTML elements and CSS clip.\r\n * \r\n * @param {String} name The name of the group\r\n */\r\n g: function (name) {\r\n var wrapper,\r\n\t\t\tattribs;\r\n\r\n // set the class name\t\r\n if (name) {\r\n attribs = { 'className': PREFIX + name, 'class': PREFIX + name };\r\n }\r\n\r\n // the div to hold HTML and clipping\t\r\n wrapper = this.createElement(DIV).attr(attribs);\r\n\r\n return wrapper;\r\n },\r\n\r\n /**\r\n * VML override to create a regular HTML image\r\n * @param {String} src\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\r\n image: function (src, x, y, width, height) {\r\n return this.createElement('img')\r\n\t\t\t.attr({ src: src })\r\n\t\t\t.css({\r\n\t\t\t left: x,\r\n\t\t\t top: y,\r\n\t\t\t width: width,\r\n\t\t\t height: height\r\n\t\t\t});\r\n },\r\n\r\n /**\r\n * VML uses a shape for rect to overcome bugs and rotation problems\r\n */\r\n rect: function (x, y, width, height, r, strokeWidth) {\r\n // todo: share this code with SVG\r\n if (arguments.length > 1) {\r\n var normalizer = (strokeWidth || 0) % 2 / 2;\r\n\r\n // normalize for crisp edges\r\n x = mathRound(x || 0) + normalizer;\r\n y = mathRound(y || 0) + normalizer;\r\n width = mathRound((width || 0) - 2 * normalizer);\r\n height = mathRound((height || 0) - 2 * normalizer);\r\n }\r\n\r\n if (typeof x == 'object') { // the attributes can be passed as the first argument \r\n y = x.y;\r\n width = x.width;\r\n height = x.height;\r\n r = x.r;\r\n x = x.x;\r\n }\r\n\r\n return this.symbol('rect', x || 0, y || 0, r || 0, {\r\n width: width || 0,\r\n height: height || 0\r\n });\r\n },\r\n\r\n\r\n\r\n /**\r\n * Draw a symbol of a predefined type. Overrides the SVG method only when \r\n * drawing image symbols.\r\n * \r\n * @param {String} symbol\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} radius\r\n */\r\n symbol: function (symbol, x, y, radius) {\r\n var wrapper,\r\n\t\t\timageRegex = /^url\\((.*?)\\)$/;\r\n\r\n // image symbols\r\n if (imageRegex.test(symbol)) {\r\n\r\n wrapper = this.createElement('img').attr({\r\n onload: function () {\r\n var img = this,\r\n\t\t\t\t\t\tsize = [img.width, img.height];\r\n css(img, {\r\n left: mathRound(x - size[0] / 2),\r\n top: mathRound(y - size[1] / 2)\r\n });\r\n },\r\n src: symbol.match(imageRegex)[1]\r\n });\r\n } else {\r\n wrapper = SVGRenderer.prototype.symbol.apply(this, arguments);\r\n }\r\n\r\n return wrapper;\r\n },\r\n\r\n /**\r\n * Symbol definitions that override the parent SVG renderer's symbols\r\n * \r\n */\r\n symbols: {\r\n // VML specific arc function\r\n arc: function (x, y, radius, options) {\r\n var start = options.start,\r\n\t\t\t\toptionsEnd = options.end,\r\n\t\t\t\tend = optionsEnd - start == 2 * Math.PI ? optionsEnd - 0.001 : optionsEnd,\r\n\t\t\t\tcosStart = mathCos(start),\r\n\t\t\t\tsinStart = mathSin(start),\r\n\t\t\t\tcosEnd = mathCos(end),\r\n\t\t\t\tsinEnd = mathSin(end),\r\n\t\t\t\tinnerRadius = options.innerR;\r\n\r\n if (optionsEnd - start === 0) { // no angle, don't show it. \r\n return ['x'];\r\n }\r\n\r\n return [\r\n\t\t\t\t'wa', // clockwisearcto\r\n\t\t\t\tx - radius, // left\r\n\t\t\t\ty - radius, // top\r\n\t\t\t\tx + radius, // right\r\n\t\t\t\ty + radius, // bottom\r\n\t\t\t\tx + radius * cosStart, // start x\r\n\t\t\t\ty + radius * sinStart, // start y\r\n\t\t\t\tx + radius * cosEnd, // end x\r\n\t\t\t\ty + radius * sinEnd, // end y\r\n\r\n\r\n\t\t\t\t'at', // clockwisearcto\r\n\t\t\t\tx - innerRadius, // left\r\n\t\t\t\ty - innerRadius, // top\r\n\t\t\t\tx + innerRadius, // right\r\n\t\t\t\ty + innerRadius, // bottom\r\n\t\t\t\tx + innerRadius * cosEnd, // start x\r\n\t\t\t\ty + innerRadius * sinEnd, // start y\r\n\t\t\t\tx + innerRadius * cosStart, // end x\r\n\t\t\t\ty + innerRadius * sinStart, // end y\r\n\r\n\t\t\t\t'x', // finish path\r\n\t\t\t\t'e' // close\r\n\t\t\t];\r\n\r\n },\r\n // Add circle symbol path. This performs significantly faster than v:oval.\r\n circle: function (x, y, r) {\r\n return [\r\n\t\t\t\t'wa', // clockwisearcto\r\n\t\t\t\tx - r, // left\r\n\t\t\t\ty - r, // top\r\n\t\t\t\tx + r, // right\r\n\t\t\t\ty + r, // bottom\r\n\t\t\t\tx + r, // start x\r\n\t\t\t\ty, // start y\r\n\t\t\t\tx + r, // end x\r\n\t\t\t\ty, // end y\r\n //'x', // finish path\r\n\t\t\t\t'e' // close\r\n\t\t\t];\r\n },\r\n /** \r\n * Add rectangle symbol path which eases rotation and omits arcsize problems\r\n * compared to the built-in VML roundrect shape\r\n * \r\n * @param {Object} left Left position\r\n * @param {Object} top Top position\r\n * @param {Object} r Border radius\r\n * @param {Object} options Width and height\r\n */\r\n\r\n rect: function (left, top, r, options) {\r\n var width = options.width,\r\n\t\t\t\theight = options.height,\r\n\t\t\t\tright = left + width,\r\n\t\t\t\tbottom = top + height;\r\n\r\n r = mathMin(r, width, height);\r\n\r\n return [\r\n\t\t\t\tM,\r\n\t\t\t\tleft + r, top,\r\n\r\n\t\t\t\tL,\r\n\t\t\t\tright - r, top,\r\n\t\t\t\t'wa',\r\n\t\t\t\tright - 2 * r, top,\r\n\t\t\t\tright, top + 2 * r,\r\n\t\t\t\tright - r, top,\r\n\t\t\t\tright, top + r,\r\n\r\n\t\t\t\tL,\r\n\t\t\t\tright, bottom - r,\r\n\t\t\t\t'wa',\r\n\t\t\t\tright - 2 * r, bottom - 2 * r,\r\n\t\t\t\tright, bottom,\r\n\t\t\t\tright, bottom - r,\r\n\t\t\t\tright - r, bottom,\r\n\r\n\t\t\t\tL,\r\n\t\t\t\tleft + r, bottom,\r\n\t\t\t\t'wa',\r\n\t\t\t\tleft, bottom - 2 * r,\r\n\t\t\t\tleft + 2 * r, bottom,\r\n\t\t\t\tleft + r, bottom,\r\n\t\t\t\tleft, bottom - r,\r\n\r\n\t\t\t\tL,\r\n\t\t\t\tleft, top + r,\r\n\t\t\t\t'wa',\r\n\t\t\t\tleft, top,\r\n\t\t\t\tleft + 2 * r, top + 2 * r,\r\n\t\t\t\tleft, top + r,\r\n\t\t\t\tleft + r, top,\r\n\r\n\r\n\t\t\t\t'x',\r\n\t\t\t\t'e'\r\n\t\t\t];\r\n\r\n }\r\n }\r\n });\r\n}\r\n/* **************************************************************************** \r\n* * \r\n* END OF INTERNET EXPLORER <= 8 SPECIFIC CODE *\r\n* *\r\n*****************************************************************************/\r\n\r\n/**\r\n* General renderer\r\n*/\r\nvar Renderer = hasSVG ? SVGRenderer : VMLRenderer;\r\n\r\n\r\n/**\r\n* The chart class\r\n* @param {Object} options\r\n*/\r\nfunction Chart(options) {\r\n\r\n defaultXAxisOptions = merge(defaultXAxisOptions, defaultOptions.xAxis);\r\n defaultYAxisOptions = merge(defaultYAxisOptions, defaultOptions.yAxis);\r\n defaultOptions.xAxis = defaultOptions.yAxis = null;\r\n\r\n // Handle regular options\r\n options = merge(defaultOptions, options);\r\n\r\n // Define chart variables\r\n var optionsChart = options.chart,\r\n\t\toptionsMargin = optionsChart.margin,\r\n\t\tmargin = typeof optionsMargin == 'number' ?\r\n\t\t\t[optionsMargin, optionsMargin, optionsMargin, optionsMargin] :\r\n\t\t\toptionsMargin,\r\n\t\tplotTop = pick(optionsChart.marginTop, margin[0]),\r\n\t\tmarginRight = pick(optionsChart.marginRight, margin[1]),\r\n\t\tmarginBottom = pick(optionsChart.marginBottom, margin[2]),\r\n\t\tplotLeft = pick(optionsChart.marginLeft, margin[3]),\r\n\t\trenderTo,\r\n\t\trenderToClone,\r\n\t\tcontainer,\r\n\t\tcontainerId,\r\n\t\tchartWidth,\r\n\t\tchartHeight,\r\n\t\tchart = this,\r\n\t\tchartEvents = optionsChart.events,\r\n\t\teventType,\r\n\t\tgetAlignment, // function\r\n\t\tisInsidePlot, // function\r\n\t\ttooltip,\r\n\t\tmouseIsDown,\r\n\t\tloadingLayer,\r\n\t\tloadingShown,\r\n\t\tplotHeight,\r\n\t\tplotWidth,\r\n\t\tplotSizeX, // width if normal, height if inverted\r\n\t\tplotSizeY, // height if normal, width if inverted\r\n\t\ttracker,\r\n\t\ttrackerGroup,\r\n\t\tlegend,\r\n\t\tposition, // = getPosition(container),\r\n\t\thasCartesianSeries = optionsChart.showAxes,\r\n\t\taxes = [],\r\n\t\tmaxTicks, // handle the greatest amount of ticks on grouped axes\r\n\t\tseries = [],\r\n\t\tinverted,\r\n\t\trenderer,\r\n\t\ttooltipTick,\r\n\t\ttooltipInterval,\r\n\t\tzoom, // function\r\n\t\tzoomOut; // function\r\n\r\n /**\r\n * Create a new axis object\r\n * @param {Object} chart\r\n * @param {Object} options\r\n */\r\n function Axis(chart, options) {\r\n\r\n // Define variables\r\n var isXAxis = options.isX,\r\n\t\t\topposite = options.opposite, // needed in setOptions\t\t\t\r\n\t\t\thoriz = inverted ? !isXAxis : isXAxis,\r\n\t\t\tstacks = {\r\n\t\t\t bar: {},\r\n\t\t\t column: {},\r\n\t\t\t area: {},\r\n\t\t\t areaspline: {},\r\n\t\t\t line: {}\r\n\t\t\t};\r\n\r\n options = merge(\r\n\t\t\t\tisXAxis ? defaultXAxisOptions : defaultYAxisOptions,\r\n\t\t\t\thoriz ?\r\n\t\t\t\t\t(opposite ? defaultTopAxisOptions : defaultBottomAxisOptions) :\r\n\t\t\t\t\t(opposite ? defaultRightAxisOptions : defaultLeftAxisOptions),\r\n\t\t\t\toptions\r\n\t\t\t);\r\n\r\n var axis = this,\r\n\t\t\tisDatetimeAxis = options.type == 'datetime',\r\n\t\t\toffset = options.offset || 0,\r\n\t\t\txOrY = isXAxis ? 'x' : 'y',\r\n\t\t\taxisLength = horiz ? plotWidth : plotHeight,\r\n\r\n\t\t\ttransA, // translation factor\r\n\t\t\ttransB = horiz ? plotLeft : marginBottom, // translation addend\r\n\t\t\taxisGroup,\r\n\t\t\tgridGroup,\r\n\t\t\tdataMin,\r\n\t\t\tdataMax,\r\n\t\t\tassociatedSeries,\r\n\t\t\tuserSetMin,\r\n\t\t\tuserSetMax,\r\n\t\t\tmax = null,\r\n\t\t\tmin = null,\r\n\t\t\tminPadding = options.minPadding,\r\n\t\t\tmaxPadding = options.maxPadding,\r\n\t\t\tisLinked = defined(options.linkedTo),\r\n\t\t\tignoreMinPadding, // can be set to true by a column or bar series\r\n\t\t\tignoreMaxPadding,\r\n\t\t\tusePercentage,\r\n\t\t\tevents = options.events,\r\n\t\t\teventType,\r\n\t\t\tplotBands = options.plotBands || [],\r\n\t\t\tplotLines = options.plotLines || [],\r\n\t\t\ttickInterval,\r\n\t\t\tminorTickInterval,\r\n\t\t\tmagnitude,\r\n\t\t\ttickPositions, // array containing predefined positions\r\n\t\t\ttickAmount,\r\n\t\t\tdateTimeLabelFormat,\r\n\t\t\tlabelFormatter = options.labels.formatter || // can be overwritten by dynamic format\r\n\t\t\t\tfunction () {\r\n\t\t\t\t var value = this.value;\r\n\t\t\t\t return dateTimeLabelFormat ? dateFormat(dateTimeLabelFormat, value) : value;\r\n\t\t\t\t},\r\n // column plots are always categorized\r\n\t\t\tcategories = options.categories || (isXAxis && chart.columnCount),\r\n\t\t\treversed = options.reversed,\r\n\t\t\ttickmarkOffset = (categories && options.tickmarkPlacement == 'between') ? 0.5 : 0;\r\n\r\n /**\r\n * Get the minimum and maximum for the series of each axis \r\n */\r\n function getSeriesExtremes() {\r\n var stack = [],\r\n\t\t\t\trun;\r\n\r\n // reset dataMin and dataMax in case we're redrawing\r\n dataMin = dataMax = null;\r\n\r\n // get an overview of what series are associated with this axis\r\n associatedSeries = [];\r\n\r\n each(series, function (serie) {\r\n run = false;\r\n\r\n\r\n // match this axis against the series' given or implicated axis\r\n each(['xAxis', 'yAxis'], function (strAxis) {\r\n if (\r\n // the series is a cartesian type, and...\r\n\t\t\t\t\t\tserie.isCartesian &&\r\n // we're in the right x or y dimension, and...\r\n\t\t\t\t\t\t(strAxis == 'xAxis' && isXAxis || strAxis == 'yAxis' && !isXAxis) && (\r\n // the axis number is given in the options and matches this axis index, or\r\n\t\t\t\t\t\t\t(serie.options[strAxis] == options.index) ||\r\n // the axis index is not given\r\n\t\t\t\t\t\t\t(serie.options[strAxis] === UNDEFINED && options.index === 0)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t) {\r\n serie[strAxis] = axis;\r\n associatedSeries.push(serie);\r\n\r\n // the series is visible, run the min/max detection\r\n run = true;\r\n }\r\n });\r\n // ignore hidden series if opted \r\n if (!serie.visible && optionsChart.ignoreHiddenSeries) {\r\n run = false;\r\n }\r\n\r\n if (run) {\r\n\r\n var stacking,\r\n\t\t\t\t\t\ttypeStack;\r\n\r\n if (!isXAxis) {\r\n stacking = serie.options.stacking;\r\n usePercentage = stacking == 'percent';\r\n\r\n // create a stack for this particular series type\r\n if (stacking) {\r\n typeStack = stack[serie.type] || [];\r\n stack[serie.type] = typeStack;\r\n }\r\n if (usePercentage) {\r\n dataMin = 0;\r\n dataMax = 99;\r\n }\r\n }\r\n if (serie.isCartesian) { // line, column etc. need axes, pie doesn't\r\n each(serie.data, function (point, i) {\r\n var pointX = point.x,\r\n\t\t\t\t\t\t\t\tpointY = point.y;\r\n\r\n // initial values\r\n if (dataMin === null) {\r\n\r\n // start out with the first point\r\n dataMin = dataMax = point[xOrY];\r\n }\r\n\r\n // x axis\r\n if (isXAxis) {\r\n if (pointX > dataMax) {\r\n dataMax = pointX;\r\n } else if (pointX < dataMin) {\r\n dataMin = pointX;\r\n }\r\n }\r\n\r\n // y axis\r\n else if (defined(pointY)) {\r\n if (stacking) {\r\n typeStack[pointX] = typeStack[pointX] ? typeStack[pointX] + pointY : pointY;\r\n }\r\n\r\n var stackedPoint = typeStack ? typeStack[pointX] : pointY;\r\n if (!usePercentage) {\r\n if (stackedPoint > dataMax) {\r\n dataMax = stackedPoint;\r\n } else if (stackedPoint < dataMin) {\r\n dataMin = stackedPoint;\r\n }\r\n }\r\n if (stacking) {\r\n stacks[serie.type][pointX] = {\r\n total: stackedPoint,\r\n cum: stackedPoint\r\n };\r\n }\r\n }\r\n });\r\n\r\n\r\n // For column, areas and bars, set the minimum automatically to zero\r\n // and prevent that minPadding is added in setScale\r\n if (/(area|column|bar)/.test(serie.type) && !isXAxis) {\r\n if (dataMin >= 0) {\r\n dataMin = 0;\r\n ignoreMinPadding = true;\r\n } else if (dataMax < 0) {\r\n dataMax = 0;\r\n ignoreMaxPadding = true;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Translate from axis value to pixel position on the chart, or back\r\n * \r\n */\r\n function translate(val, backwards, cvsCoord) {\r\n var sign = 1,\r\n\t\t\t\tcvsOffset = 0,\r\n\t\t\t\treturnValue;\r\n if (cvsCoord) {\r\n sign *= -1; // canvas coordinates inverts the value\r\n cvsOffset = axisLength;\r\n }\r\n if (reversed) { // reversed axis\r\n sign *= -1;\r\n cvsOffset -= sign * axisLength;\r\n }\r\n\r\n if (backwards) { // reverse translation\r\n if (reversed) {\r\n val = axisLength - val;\r\n }\r\n returnValue = val / transA + min; // from chart pixel to value\t\t\t\t\r\n\r\n } else { // normal translation\r\n returnValue = sign * (val - min) * transA + cvsOffset; // from value to chart pixel\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n /**\r\n * Add a single line across the plot\r\n */\r\n function drawPlotLine(value, color, width) {\r\n\r\n if (width) {\r\n var x1,\r\n\t\t\t\t\ty1,\r\n\t\t\t\t\tx2,\r\n\t\t\t\t\ty2,\r\n\t\t\t\t\ttranslatedValue = translate(value),\r\n\t\t\t\t\tskip;\r\n\r\n x1 = x2 = translatedValue + transB;\r\n y1 = y2 = chartHeight - translatedValue - transB;\r\n if (horiz) {\r\n y1 = plotTop;\r\n y2 = chartHeight - marginBottom;\r\n if (x1 < plotLeft || x1 > plotLeft + plotWidth) {\r\n skip = true;\r\n }\r\n } else {\r\n x1 = plotLeft;\r\n x2 = chartWidth - marginRight;\r\n if (y1 < plotTop || y1 > plotTop + plotHeight) {\r\n skip = true;\r\n }\r\n }\r\n\r\n if (!skip) {\r\n renderer.path(\r\n\t\t\t\t\t\trenderer.crispLine([M, x1, y1, L, x2, y2], width)\r\n\t\t\t\t\t).attr({\r\n\t\t\t\t\t stroke: color,\r\n\t\t\t\t\t 'stroke-width': width\r\n\t\t\t\t\t}).add(gridGroup);\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Add a masked band across the plot\r\n * @param {Number} from chart axis value\r\n * @param {Number} to chart axis value\r\n * @param {String} color\r\n */\r\n function drawPlotBand(from, to, color) {\r\n // keep within plot area\r\n from = mathMax(from, min);\r\n to = mathMin(to, max);\r\n\r\n var width = (to - from) * transA;\r\n drawPlotLine(from + (to - from) / 2, color, width);\r\n\r\n }\r\n\r\n /**\r\n * Add a tick mark an a label\r\n */\r\n function addTick(pos, tickPos, color, width, len, withLabel, index) {\r\n var x1, y1, x2, y2, str, labelOptions = options.labels;\r\n\r\n // negate the length\r\n if (tickPos == 'inside') {\r\n len = -len;\r\n }\r\n if (opposite) {\r\n len = -len;\r\n }\r\n\r\n // set the initial positions\r\n x1 = x2 = translate(pos + tickmarkOffset) + transB;\r\n y1 = y2 = chartHeight - translate(pos + tickmarkOffset) - transB;\r\n\r\n if (horiz) {\r\n y1 = chartHeight - marginBottom - (opposite ? plotHeight : 0) + offset;\r\n y2 = y1 + len;\r\n } else {\r\n x1 = plotLeft + (opposite ? plotWidth : 0) + offset;\r\n x2 = x1 - len;\r\n }\r\n\r\n if (width) {\r\n renderer.path(\r\n\t\t\t\t\trenderer.crispLine([M, x1, y1, L, x2, y2], width)\r\n\t\t\t\t).attr({\r\n\t\t\t\t stroke: color,\r\n\t\t\t\t 'stroke-width': width\r\n\t\t\t\t}).add(axisGroup);\r\n }\r\n\r\n\r\n // write the label\r\n if (withLabel && labelOptions.enabled) {\r\n str = labelFormatter.call({\r\n index: index,\r\n isFirst: pos == tickPositions[0],\r\n isLast: pos == tickPositions[tickPositions.length - 1],\r\n dateTimeLabelFormat: dateTimeLabelFormat,\r\n value: (categories && categories[pos] ? categories[pos] : pos)\r\n });\r\n if (str || str === 0) {\r\n x1 = x1 + labelOptions.x - (tickmarkOffset && horiz ?\r\n\t\t\t\t\t\ttickmarkOffset * transA * (reversed ? -1 : 1) : 0);\r\n y1 = y1 + labelOptions.y - (tickmarkOffset && !horiz ?\r\n\t\t\t\t\t\ttickmarkOffset * transA * (reversed ? 1 : -1) : 0);\r\n renderer.text(\r\n\t\t\t\t\t\tstr,\r\n\t\t\t\t\t\tx1,\r\n\t\t\t\t\t\ty1,\r\n\t\t\t\t\t\tlabelOptions.style,\r\n\t\t\t\t\t\tlabelOptions.rotation,\r\n\t\t\t\t\t\tlabelOptions.align\r\n\t\t\t\t\t).add(axisGroup);\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Take an interval and normalize it to multiples of 1, 2, 2.5 and 5\r\n * @param {Number} interval\r\n */\r\n function normalizeTickInterval(interval, multiples) {\r\n var normalized;\r\n\r\n // round to a tenfold of 1, 2, 2.5 or 5\r\n magnitude = multiples ? 1 : math.pow(10, mathFloor(math.log(interval) / math.LN10));\r\n normalized = interval / magnitude;\r\n\r\n // multiples for a linear scale\r\n if (!multiples) {\r\n multiples = [1, 2, 2.5, 5, 10];\r\n\r\n // the allowDecimals option\r\n if (options.allowDecimals === false) {\r\n if (magnitude == 1) {\r\n multiples = [1, 2, 5, 10];\r\n } else if (magnitude <= 0.1) {\r\n multiples = [1 / magnitude];\r\n }\r\n }\r\n }\r\n\r\n // normalize the interval to the nearest multiple\r\n for (var i = 0; i < multiples.length; i++) {\r\n interval = multiples[i];\r\n if (normalized <= (multiples[i] + (multiples[i + 1] || multiples[i])) / 2) {\r\n break;\r\n }\r\n }\r\n\r\n // multiply back to the correct magnitude\r\n interval *= magnitude;\r\n\r\n return interval;\r\n }\r\n\r\n /**\r\n * Set the tick positions to a time unit that makes sense, for example\r\n * on the first of each month or on every Monday.\r\n */\r\n function setDateTimeTickPositions() {\r\n tickPositions = [];\r\n var i,\r\n\t\t\t\tuseUTC = defaultOptions.global.useUTC,\r\n\t\t\t\toneSecond = 1000 / timeFactor,\r\n\t\t\t\toneMinute = 60000 / timeFactor,\r\n\t\t\t\toneHour = 3600000 / timeFactor,\r\n\t\t\t\toneDay = 24 * 3600000 / timeFactor,\r\n\t\t\t\toneWeek = 7 * 24 * 3600000 / timeFactor,\r\n\t\t\t\toneMonth = 30 * 24 * 3600000 / timeFactor,\r\n\t\t\t\toneYear = 31556952000 / timeFactor,\r\n\r\n\t\t\t\tunits = [[\r\n\t\t\t\t\t'second', \t\t\t\t\t// unit name\r\n\t\t\t\t\toneSecond, \t\t\t\t\t// fixed incremental unit\r\n\t\t\t\t\t[1, 2, 5, 10, 15, 30]\t\t\t// allowed multiples\r\n\t\t\t\t], [\r\n\t\t\t\t\t'minute', \t\t\t\t\t// unit name\r\n\t\t\t\t\toneMinute, \t\t\t\t\t// fixed incremental unit\r\n\t\t\t\t\t[1, 2, 5, 10, 15, 30]\t\t\t// allowed multiples\r\n\t\t\t\t], [\r\n\t\t\t\t\t'hour', \t\t\t\t\t\t// unit name\r\n\t\t\t\t\toneHour, \t\t\t\t\t// fixed incremental unit\r\n\t\t\t\t\t[1, 2, 3, 4, 6, 8, 12]\t\t\t// allowed multiples\r\n\t\t\t\t], [\r\n\t\t\t\t\t'day', \t\t\t\t\t\t// unit name\r\n\t\t\t\t\toneDay, \t\t\t\t\t\t// fixed incremental unit\r\n\t\t\t\t\t[1, 2]\t\t\t\t\t\t\t// allowed multiples\r\n\t\t\t\t], [\r\n\t\t\t\t\t'week', \t\t\t\t\t\t// unit name\r\n\t\t\t\t\toneWeek, \t\t\t\t\t// fixed incremental unit\r\n\t\t\t\t\t[1, 2]\t\t\t\t\t\t\t// allowed multiples\r\n\t\t\t\t], [\r\n\t\t\t\t\t'month',\r\n\t\t\t\t\toneMonth,\r\n\t\t\t\t\t[1, 2, 3, 4, 6]\r\n\t\t\t\t], [\r\n\t\t\t\t\t'year',\r\n\t\t\t\t\toneYear,\r\n\t\t\t\t\tnull\r\n\t\t\t\t]],\r\n\r\n\t\t\t\tunit = units[6], // default unit is years\r\n\t\t\t\tinterval = unit[1],\r\n\t\t\t\tmultiples = unit[2];\r\n\r\n // loop through the units to find the one that best fits the tickInterval\r\n for (i = 0; i < units.length; i++) {\r\n unit = units[i];\r\n interval = unit[1];\r\n multiples = unit[2];\r\n\r\n\r\n if (units[i + 1]) {\r\n // lessThan is in the middle between the highest multiple and the next unit.\r\n var lessThan = (interval * multiples[multiples.length - 1] +\r\n\t\t\t\t\t\t\t\tunits[i + 1][1]) / 2;\r\n\r\n // break and keep the current unit\r\n if (tickInterval <= lessThan) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // prevent 2.5 years intervals, though 25, 250 etc. are allowed\r\n if (interval == oneYear && tickInterval < 5 * interval) {\r\n multiples = [1, 2, 5];\r\n }\r\n\r\n // get the minimum value by flooring the date\r\n var multitude = normalizeTickInterval(tickInterval / interval, multiples),\r\n\t\t\t\tminYear, // used in months and years as a basis for Date.UTC()\r\n\t\t\t\tminDate = new Date(min * timeFactor);\r\n\r\n minDate.setMilliseconds(0);\r\n\r\n if (interval >= oneSecond) { // second\r\n minDate.setSeconds(interval >= oneMinute ? 0 :\r\n\t\t\t\t\tmultitude * mathFloor(minDate.getSeconds() / multitude));\r\n }\r\n\r\n if (interval >= oneMinute) { // minute\r\n minDate[setMinutes](interval >= oneHour ? 0 :\r\n\t\t\t\t\tmultitude * mathFloor(minDate[getMinutes]() / multitude));\r\n }\r\n\r\n if (interval >= oneHour) { // hour\r\n minDate[setHours](interval >= oneDay ? 0 :\r\n\t\t\t\t\tmultitude * mathFloor(minDate[getHours]() / multitude));\r\n }\r\n\r\n if (interval >= oneDay) { // day\r\n minDate[setDate](interval >= oneMonth ? 1 :\r\n\t\t\t\t\tmultitude * mathFloor(minDate[getDate]() / multitude));\r\n }\r\n\r\n if (interval >= oneMonth) { // month\r\n minDate[setMonth](interval >= oneYear ? 0 :\r\n\t\t\t\t\tmultitude * mathFloor(minDate[getMonth]() / multitude));\r\n minYear = minDate[getFullYear]();\r\n }\r\n\r\n if (interval >= oneYear) { // year\r\n minYear -= minYear % multitude;\r\n minDate[setFullYear](minYear);\r\n }\r\n\r\n // week is a special case that runs outside the hierarchy\r\n if (interval == oneWeek) {\r\n // get start of current week, independent of multitude\r\n minDate[setDate](minDate[getDate]() - minDate[getDay]() +\r\n\t\t\t\t\toptions.startOfWeek);\r\n }\r\n\r\n\r\n // get tick positions\r\n i = 1; // prevent crash just in case\r\n minYear = minDate[getFullYear]();\r\n var time = minDate.getTime() / timeFactor,\r\n\t\t\t\tminMonth = minDate[getMonth](),\r\n\t\t\t\tminDateDate = minDate[getDate]();\r\n\r\n // iterate and add tick positions at appropriate values\r\n while (time < max && i < plotWidth) {\r\n tickPositions.push(time);\r\n\r\n // if the interval is years, use Date.UTC to increase years\r\n if (interval == oneYear) {\r\n time = makeTime(minYear + i * multitude, 0) / timeFactor;\r\n\r\n // if the interval is months, use Date.UTC to increase months\r\n } else if (interval == oneMonth) {\r\n time = makeTime(minYear, minMonth + i * multitude) / timeFactor;\r\n\r\n // if we're using global time, the interval is not fixed as it jumps\r\n // one hour at the DST crossover\r\n } else if (!useUTC && (interval == oneDay || interval == oneWeek)) {\r\n time = makeTime(minYear, minMonth, minDateDate +\r\n\t\t\t\t\t\ti * multitude * (interval == oneDay ? 1 : 7));\r\n\r\n // else, the interval is fixed and we use simple addition\r\n } else {\r\n time += interval * multitude;\r\n }\r\n\r\n i++;\r\n }\r\n // push the last time\r\n tickPositions.push(time);\r\n\r\n // dynamic label formatter \r\n dateTimeLabelFormat = options.dateTimeLabelFormats[unit[0]];\r\n /*if (!options.labels.formatter) {\r\n labelFormatter = function() {\r\n return dateFormat(options.dateTimeLabelFormats[unit[0]], this.value, 1);\r\n };\r\n }*/\r\n\r\n }\r\n\r\n /**\r\n * Fix JS round off float errors\r\n * @param {Number} num\r\n */\r\n function correctFloat(num) {\r\n var invMag = (magnitude < 1 ? mathRound(1 / magnitude) : 1) * 10;\r\n return mathRound(num * invMag) / invMag;\r\n }\r\n\r\n /**\r\n * Set the tick positions of a linear axis to round values like whole tens or every five.\r\n */\r\n function setLinearTickPositions() {\r\n\r\n var i,\r\n\t\t\t\troundedMin = mathFloor(min / tickInterval) * tickInterval,\r\n\t\t\t\troundedMax = math.ceil(max / tickInterval) * tickInterval;\r\n\r\n tickPositions = [];\r\n\r\n // populate the intermediate values\r\n i = correctFloat(roundedMin);\r\n while (i <= roundedMax) {\r\n tickPositions.push(i);\r\n i = correctFloat(i + tickInterval);\r\n }\r\n\r\n // pad categorised axis to nearest half unit\r\n if (categories) {\r\n min -= 0.5;\r\n max += 0.5;\r\n }\r\n\r\n // dynamic label formatter \r\n /*if (!labelFormatter) { \r\n labelFormatter = function() {\r\n return this.value;\r\n };\r\n }*/\r\n\r\n }\r\n\r\n /**\r\n * Set the tick positions to round values and optionally extend the extremes\r\n * to the nearest tick\r\n */\r\n function setTickPositions() {\r\n if (isDatetimeAxis) {\r\n setDateTimeTickPositions();\r\n } else {\r\n setLinearTickPositions();\r\n }\r\n\r\n // reset min/max or remove extremes based on start/end on tick\r\n var roundedMin = tickPositions[0],\r\n\t\t\t\troundedMax = tickPositions[tickPositions.length - 1];\r\n\r\n\r\n if (options.startOnTick) {\r\n min = roundedMin;\r\n } else if (min > roundedMin) {\r\n tickPositions.shift();\r\n }\r\n\r\n if (options.endOnTick) {\r\n max = roundedMax;\r\n } else if (max < roundedMax) {\r\n tickPositions.pop();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * When using multiple axes, adjust the number of ticks to match the highest\r\n * number of ticks in that group\r\n */\r\n function adjustTickAmount() {\r\n if (!isDatetimeAxis && !categories) { // only apply to linear scale\r\n var oldTickAmount = tickAmount,\r\n\t\t\t\t\tcalculatedTickAmount = tickPositions.length;\r\n\r\n // set the axis-level tickAmount to use below\r\n tickAmount = maxTicks[xOrY];\r\n\r\n\r\n if (calculatedTickAmount < tickAmount) {\r\n while (tickPositions.length < tickAmount) {\r\n tickPositions.push(correctFloat(\r\n\t\t\t\t\t\t\ttickPositions[tickPositions.length - 1] + tickInterval\r\n\t\t\t\t\t\t));\r\n }\r\n transA *= (calculatedTickAmount - 1) / (tickAmount - 1);\r\n }\r\n if (defined(oldTickAmount) && tickAmount != oldTickAmount) {\r\n axis.isDirty = true;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set the scale based on data min and max, user set min and max or options\r\n */\r\n function setScale() {\r\n var length,\r\n\t\t\t\ttype,\r\n\t\t\t\ti,\r\n //total,\r\n\t\t\t\toldMin = min,\r\n\t\t\t\toldMax = max,\r\n\t\t\t\tmaxZoom = options.maxZoom,\r\n\t\t\t\tzoomOffset;\r\n\r\n // get data extremes if needed\r\n getSeriesExtremes();\r\n\r\n // initial min and max from the extreme data values\r\n min = pick(userSetMin, options.min, dataMin);\r\n max = pick(userSetMax, options.max, dataMax);\r\n\r\n // linked axis gets the extremes from the parent axis\r\n if (isLinked) {\r\n var linkedParent = chart[isXAxis ? 'xAxis' : 'yAxis'][options.linkedTo],\r\n\t\t\t\t\tlinkedParentExtremes = linkedParent.getExtremes();\r\n min = pick(linkedParentExtremes.min, linkedParentExtremes.dataMin);\r\n max = pick(linkedParentExtremes.max, linkedParentExtremes.dataMax);\r\n }\r\n\r\n // maxZoom exceeded, just center the selection\r\n if (max - min < maxZoom) {\r\n zoomOffset = (maxZoom - max + min) / 2;\r\n // if min and max options have been set, don't go beyond it\r\n min = mathMax(min - zoomOffset, pick(options.min, min - zoomOffset));\r\n max = mathMin(min + maxZoom, pick(options.max, min + maxZoom));\r\n }\r\n\r\n // pad the values to get clear of the chart's edges\r\n if (!categories && !usePercentage && !isLinked && defined(min) && defined(max)) {\r\n length = (max - min) || 1;\r\n if (!defined(options.min) && !defined(userSetMin) && minPadding && (dataMin < 0 || !ignoreMinPadding)) {\r\n min -= length * minPadding;\r\n }\r\n if (!defined(options.max) && !defined(userSetMax) && maxPadding && (dataMax > 0 || !ignoreMaxPadding)) {\r\n max += length * maxPadding;\r\n }\r\n }\r\n\r\n // tickInterval\r\n if (categories || min == max) {\r\n tickInterval = 1;\r\n } else {\r\n tickInterval = pick(\r\n\t\t\t\t\t\toptions.tickInterval,\r\n\t\t\t\t\t\t(max - min) * options.tickPixelInterval / axisLength\r\n\t\t\t\t\t);\r\n\r\n }\r\n\r\n\r\n if (!isDatetimeAxis && !defined(options.tickInterval)) { // linear\r\n tickInterval = normalizeTickInterval(tickInterval);\r\n }\r\n\r\n // minorTickInterval\r\n minorTickInterval = options.minorTickInterval === 'auto' && tickInterval ?\r\n\t\t\t\t\ttickInterval / 5 : options.minorTickInterval;\r\n\r\n // get fixed positions based on tickInterval\r\n setTickPositions();\r\n\r\n\r\n // the translation factor used in translate function\t\t\t\r\n transA = axisLength / ((max - min) || 1);\r\n\r\n // record the greatest number of ticks for multi axis\r\n if (!maxTicks) { // first call, or maxTicks have been reset after a zoom operation\r\n maxTicks = {\r\n x: 0,\r\n y: 0\r\n };\r\n }\r\n\r\n\r\n if (!isDatetimeAxis && tickPositions.length > maxTicks[xOrY]) {\r\n maxTicks[xOrY] = tickPositions.length;\r\n }\r\n\r\n // reset stacks\r\n if (!isXAxis) {\r\n for (type in stacks) {\r\n for (i in stacks[type]) {\r\n stacks[type][i].cum = stacks[type][i].total;\r\n }\r\n }\r\n }\r\n\r\n // mark as dirty if it is not already set to dirty and extremes have changed\r\n if (!axis.isDirty) {\r\n axis.isDirty = (min != oldMin || max != oldMax);\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Set the extremes and optionally redraw\r\n * @param {Number} newMin\r\n * @param {Number} newMax\r\n * @param {Boolean} redraw\r\n * \r\n */\r\n function setExtremes(newMin, newMax, redraw) {\r\n redraw = pick(redraw, true); // defaults to true\r\n\r\n fireEvent(axis, 'setExtremes', { // fire an event to enable syncing of multiple charts\r\n min: newMin,\r\n max: newMax\r\n }, function () { // the default event handler\r\n // make sure categorized axes are not exceeded\r\n if (categories) {\r\n if (newMin < 0) {\r\n newMin = 0;\r\n }\r\n if (newMax > categories.length - 1) {\r\n newMax = categories.length - 1;\r\n }\r\n }\r\n\r\n userSetMin = newMin;\r\n userSetMax = newMax;\r\n\r\n\r\n // redraw\r\n if (redraw) {\r\n chart.redraw();\r\n }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Get the actual axis extremes\r\n */\r\n function getExtremes() {\r\n return {\r\n min: min,\r\n max: max,\r\n dataMin: dataMin,\r\n dataMax: dataMax\r\n };\r\n }\r\n\r\n /**\r\n * Get the zero plane either based on zero or on the min or max value.\r\n * Used in bar and area plots\r\n */\r\n function getThreshold(threshold) {\r\n if (min > threshold) {\r\n threshold = min;\r\n } else if (max < threshold) {\r\n threshold = max;\r\n }\r\n\r\n return translate(threshold, 0, 1);\r\n }\r\n\r\n /**\r\n * Add a plot band or plot line after render time\r\n * \r\n * @param item {Object} The plotBand or plotLine configuration object\r\n */\r\n function addPlotBandOrLine(item) {\r\n var isLine = item.width,\r\n\t\t\t\tcollection = isLine ? plotLines : plotBands;\r\n\r\n collection.push(item);\r\n\r\n if (isLine) {\r\n drawPlotLine(item.value, item.color, item.width);\r\n } else {\r\n drawPlotBand(item.from, item.to, item.color);\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * Render the axis\r\n */\r\n function render() {\r\n var axisTitleOptions = options.title,\r\n\t\t\t\talternateGridColor = options.alternateGridColor,\r\n\t\t\t\tminorTickWidth = options.minorTickWidth,\r\n\t\t\t\tlineWidth = options.lineWidth,\r\n\t\t\t\tlineLeft,\r\n\t\t\t\tlineTop,\r\n\t\t\t\ttickmarkPos,\r\n\t\t\t\thasData = associatedSeries.length && defined(min) && defined(max);\r\n\r\n if (!axisGroup) {\r\n axisGroup = renderer.g('axis')\r\n\t\t\t\t\t.attr({ zIndex: 7 })\r\n\t\t\t\t\t.add();\r\n gridGroup = renderer.g('grid')\r\n\t\t\t\t\t.attr({ zIndex: 1 })\r\n\t\t\t\t\t.add();\r\n } else {\r\n // clear the axis layers before new grid and ticks are drawn\r\n axisGroup.empty();\r\n gridGroup.empty();\r\n }\r\n\r\n // If the series has data draw the ticks. Else only the line and title\r\n if (hasData || isLinked) {\r\n // alternate grid color\r\n if (alternateGridColor) {\r\n each(tickPositions, function (pos, i) {\r\n if (i % 2 === 0 && pos < max) {\r\n drawPlotBand(\r\n\t\t\t\t\t\t\t\tpos,\r\n\t\t\t\t\t\t\t\ttickPositions[i + 1] !== UNDEFINED ? tickPositions[i + 1] : max,\r\n\t\t\t\t\t\t\t\talternateGridColor\r\n\t\t\t\t\t\t\t);\r\n }\r\n });\r\n }\r\n\r\n // custom plot bands (behind grid lines)\r\n each(plotBands, function (plotBand) {\r\n drawPlotBand(plotBand.from, plotBand.to, plotBand.color);\r\n });\r\n\r\n // minor grid lines\r\n if (minorTickInterval && !categories) {\r\n for (var i = min; i <= max; i += minorTickInterval) {\r\n drawPlotLine(i, options.minorGridLineColor, options.minorGridLineWidth);\r\n if (minorTickWidth) {\r\n addTick(\r\n\t\t\t\t\t\t\t\ti,\r\n\t\t\t\t\t\t\t\toptions.minorTickPosition,\r\n\t\t\t\t\t\t\t\toptions.minorTickColor,\r\n\t\t\t\t\t\t\t\tminorTickWidth,\r\n\t\t\t\t\t\t\t\toptions.minorTickLength\r\n\t\t\t\t\t\t\t);\r\n }\r\n }\r\n }\r\n // grid lines and tick marks\r\n each(tickPositions, function (pos, index) {\r\n tickmarkPos = pos + tickmarkOffset;\r\n\r\n // add the grid line\r\n drawPlotLine(\r\n\t\t\t\t\t\ttickmarkPos,\r\n\t\t\t\t\t\toptions.gridLineColor,\r\n\t\t\t\t\t\toptions.gridLineWidth\r\n\t\t\t\t\t);\r\n\r\n // add the tick mark\r\n addTick(\r\n\t\t\t\t\t\tpos,\r\n\t\t\t\t\t\toptions.tickPosition,\r\n\t\t\t\t\t\toptions.tickColor,\r\n\t\t\t\t\t\toptions.tickWidth,\r\n\t\t\t\t\t\toptions.tickLength,\r\n\t\t\t\t\t\t!((pos == min && !options.showFirstLabel) || (pos == max && !options.showLastLabel)),\r\n\t\t\t\t\t\tindex\r\n\t\t\t\t\t);\r\n });\r\n\r\n\r\n // custom plot lines (in front of grid lines)\r\n each(plotLines, function (plotLine) {\r\n drawPlotLine(plotLine.value, plotLine.color, plotLine.width);\r\n });\r\n\r\n } // end if hasData\r\n\r\n\r\n\r\n // Static items. As the axis group is cleared on subsequent calls\r\n // to render, these items are added outside the group.\t\r\n // axis line\r\n if (!axis.hasRenderedLine && lineWidth) {\r\n lineLeft = plotLeft + (opposite ? plotWidth : 0) + offset;\r\n lineTop = chartHeight - marginBottom - (opposite ? plotHeight : 0) + offset;\r\n\r\n renderer.path(renderer.crispLine([\r\n\t\t\t\t\t\tM,\r\n\t\t\t\t\t\thoriz ?\r\n\t\t\t\t\t\t\tplotLeft :\r\n\t\t\t\t\t\t\tlineLeft,\r\n\t\t\t\t\t\thoriz ?\r\n\t\t\t\t\t\t\tlineTop :\r\n\t\t\t\t\t\t\tplotTop,\r\n\t\t\t\t\t\tL,\r\n\t\t\t\t\t\thoriz ?\r\n\t\t\t\t\t\t\tchartWidth - marginRight :\r\n\t\t\t\t\t\t\tlineLeft,\r\n\t\t\t\t\t\thoriz ?\r\n\t\t\t\t\t\t\tlineTop :\r\n\t\t\t\t\t\t\tchartHeight - marginBottom\r\n\t\t\t\t\t], lineWidth)).\r\n\t\t\t\t\tattr({\r\n\t\t\t\t\t stroke: options.lineColor,\r\n\t\t\t\t\t 'stroke-width': lineWidth,\r\n\t\t\t\t\t zIndex: 7\r\n\t\t\t\t\t}).\r\n\t\t\t\t\tadd();\r\n\r\n axis.hasRenderedLine = true;\r\n }\r\n\r\n // Render the title. \r\n if (!axis.hasRenderedTitle && !axis.axisTitle && axisTitleOptions && axisTitleOptions.text) {\r\n\r\n // compute anchor points for each of the title align options\r\n var margin = horiz ?\r\n\t\t\t\t\t\tplotLeft : plotTop;\r\n\r\n // the position in the length direction of the axis\r\n var alongAxis = {\r\n low: margin + (horiz ? 0 : axisLength),\r\n middle: margin + axisLength / 2,\r\n high: margin + (horiz ? axisLength : 0)\r\n }[axisTitleOptions.align];\r\n\r\n // the position in the perpendicular direction of the axis\r\n var offAxis = (horiz ? plotTop + plotHeight : plotLeft) +\r\n\t\t\t\t\t(horiz ? 1 : -1) * // horizontal axis reverses the margin\r\n\t\t\t\t\t(opposite ? -1 : 1) * // so does opposite axes\r\n\t\t\t\t\taxisTitleOptions.margin -\r\n\t\t\t\t\t(isIE ? parseInt(\r\n\t\t\t\t\t\taxisTitleOptions.style.fontSize || 12, 10\r\n\t\t\t\t\t) / 3 : 0); // preliminary fix for vml's centerline\r\n\r\n axis.axisTitle = renderer.text(\r\n\t\t\t\t\taxisTitleOptions.text,\r\n\t\t\t\t\thoriz ?\r\n\t\t\t\t\t\talongAxis :\r\n\t\t\t\t\t\toffAxis + (opposite ? plotWidth : 0) + offset, // x\r\n\t\t\t\t\thoriz ?\r\n\t\t\t\t\t\toffAxis - (opposite ? plotHeight : 0) + offset :\r\n\t\t\t\t\t\talongAxis, // y\r\n\t\t\t\t\taxisTitleOptions.style,\r\n\t\t\t\t\taxisTitleOptions.rotation || 0,\r\n\t\t\t\t\t{ low: 'left', middle: 'center', high: 'right'}[axisTitleOptions.align]\r\n\t\t\t\t)\r\n\t\t\t\t.attr({ zIndex: 7 })\r\n\t\t\t\t.add();\r\n\r\n axis.hasRenderedTitle = true;\r\n }\r\n\r\n axis.isDirty = false;\r\n }\r\n\r\n /**\r\n * Remove a plot band or plot line from the chart by id\r\n * @param {Object} id\r\n */\r\n function removePlotBandOrLine(id) {\r\n each([plotBands, plotLines], function (collection) {\r\n for (var i = 0; i < collection.length; i++) {\r\n\r\n if (collection[i].id == id) {\r\n collection.splice(i, 1);\r\n break;\r\n }\r\n }\r\n });\r\n render();\r\n }\r\n\r\n /**\r\n * Redraw the axis to reflect changes in the data or axis extremes\r\n */\r\n function redraw() {\r\n\r\n // hide tooltip and hover states\r\n if (tracker.resetTracker) {\r\n tracker.resetTracker();\r\n }\r\n\r\n // render the axis\r\n render();\r\n\r\n // mark associated series as dirty and ready for redraw\r\n each(associatedSeries, function (series) {\r\n series.isDirty = true;\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Set new axis categories and optionally redraw\r\n * @param {Array} newCategories\r\n * @param {Boolean} doRedraw\r\n */\r\n function setCategories(newCategories, doRedraw) {\r\n // set the categories\r\n axis.categories = categories = newCategories;\r\n\r\n // force reindexing tooltips\r\n each(associatedSeries, function (series) {\r\n series.translate();\r\n series.setTooltipPoints(true);\r\n });\r\n\r\n\r\n // optionally redraw\r\n axis.isDirty = true;\r\n if (pick(doRedraw, true)) {\r\n redraw(); // redraw axis\r\n }\r\n }\r\n\r\n\r\n\r\n // Run Axis\r\n\r\n // inverted charts have reversed xAxes as default\r\n if (inverted && isXAxis && reversed === UNDEFINED) {\r\n reversed = true;\r\n }\r\n\r\n // negate offset\r\n if (!opposite) {\r\n offset *= -1;\r\n }\r\n if (horiz) {\r\n offset *= -1;\r\n }\r\n\r\n // expose some variables\r\n extend(axis, {\r\n addPlotBand: addPlotBandOrLine,\r\n addPlotLine: addPlotBandOrLine,\r\n adjustTickAmount: adjustTickAmount,\r\n categories: categories,\r\n getExtremes: getExtremes,\r\n getThreshold: getThreshold,\r\n isXAxis: isXAxis,\r\n options: options,\r\n render: render,\r\n setExtremes: setExtremes,\r\n setScale: setScale,\r\n setCategories: setCategories,\r\n translate: translate,\r\n redraw: redraw,\r\n removePlotBand: removePlotBandOrLine,\r\n removePlotLine: removePlotBandOrLine,\r\n reversed: reversed,\r\n stacks: stacks\r\n });\r\n\r\n // register event listeners\r\n for (eventType in events) {\r\n addEvent(axis, eventType, events[eventType]);\r\n }\r\n\r\n // set min and max\r\n setScale();\r\n\r\n\r\n } // end Axis\r\n\r\n\r\n /**\r\n * The toolbar object\r\n * \r\n * @param {Object} chart \r\n */\r\n function Toolbar(chart) {\r\n var buttons = {};\r\n\r\n function add(id, text, title, fn) {\r\n if (!buttons[id]) {\r\n var button = renderer.text(\r\n\t\t\t\t\ttext,\r\n\t\t\t\t\tplotLeft + plotWidth - 20,\r\n\t\t\t\t\tplotTop + 30,\r\n\t\t\t\t\toptions.toolbar.itemStyle,\r\n\t\t\t\t\t0,\r\n\t\t\t\t\t'right'\r\n\t\t\t\t)\r\n\t\t\t\t.on('click', fn)\r\n\t\t\t\t.attr({ zIndex: 20 })\r\n\t\t\t\t.add();\r\n buttons[id] = button;\r\n }\r\n }\r\n function remove(id) {\r\n discardElement(buttons[id].element);\r\n buttons[id] = null;\r\n }\r\n\r\n // public\r\n return {\r\n add: add,\r\n remove: remove\r\n };\r\n }\r\n\r\n /**\r\n * The tooltip object\r\n * @param {Object} options Tooltip options\r\n */\r\n function Tooltip(options) {\r\n var currentSeries,\r\n\t\t\tborderWidth = options.borderWidth,\r\n\t\t\tstyle = options.style,\r\n\t\t\tpadding = parseInt(style.padding, 10),\r\n\t\t\tboxOffLeft = borderWidth + padding, // off left/top position as IE can't \r\n //properly handle negative positioned shapes\r\n\t\t\ttooltipIsHidden = true,\r\n\t\t\tboxWidth,\r\n\t\t\tboxHeight,\r\n\t\t\tcurrentX = 0,\r\n\t\t\tcurrentY = 0;\r\n\r\n // remove padding CSS and apply padding on box instead\r\n style.padding = 0;\r\n\r\n // create the elements\r\n var group = renderer.g('tooltip')\r\n\t\t\t.attr({ zIndex: 8 })\r\n\t\t\t.add(),\r\n\r\n\t\t\tbox = renderer.rect(boxOffLeft, boxOffLeft, 0, 0, options.borderRadius, borderWidth).\r\n\t\t\t\tattr({\r\n\t\t\t\t fill: options.backgroundColor,\r\n\t\t\t\t 'stroke-width': borderWidth\r\n\t\t\t\t}).\r\n\t\t\t\tadd(group).\r\n\t\t\t\tshadow(options.shadow),\r\n\t\t\tlabel = renderer.text('', padding + boxOffLeft, parseInt(style.fontSize, 10) + padding + boxOffLeft).\r\n\t\t\t\tattr({ zIndex: 1 }).\r\n\t\t\t\tcss(style).\r\n\t\t\t\tadd(group);\r\n\r\n /**\r\n * Provide a soft movement for the tooltip\r\n * \r\n * @param {Number} finalX\r\n * @param {Number} finalY \r\n */\r\n function move(finalX, finalY) {\r\n\r\n currentX = tooltipIsHidden ? finalX : (2 * currentX + finalX) / 3;\r\n currentY = tooltipIsHidden ? finalY : (currentY + finalY) / 2;\r\n\r\n group.translate(currentX, currentY);\r\n\r\n\r\n // run on next tick of the mouse tracker\r\n if (mathAbs(finalX - currentX) > 1 || mathAbs(finalY - currentY) > 1) {\r\n tooltipTick = function () {\r\n move(finalX, finalY);\r\n };\r\n } else {\r\n tooltipTick = null;\r\n }\r\n }\r\n\r\n /**\r\n * Hide the tooltip\r\n */\r\n function hide() {\r\n\r\n tooltipIsHidden = true;\r\n group.hide();\r\n }\r\n\r\n /**\r\n * Refresh the tooltip's text and position. \r\n * @param {Object} point\r\n * \r\n */\r\n function refresh(point) {\r\n var \r\n\t\t\t\tseries = point.series,\r\n\r\n\t\t\t\tborderColor = options.borderColor || point.color || series.color || '#606060',\r\n\t\t\t\tx,\r\n\t\t\t\ty,\r\n\t\t\t\tboxX,\r\n\t\t\t\tboxY,\r\n\t\t\t\tshow,\r\n\t\t\t\tbBox,\r\n\t\t\t\ttext = point.tooltipText,\r\n\t\t\t\ttooltipPos = point.tooltipPos;\r\n\r\n\r\n // register the current series\r\n currentSeries = series;\r\n\r\n // get the reference point coordinates (pie charts use tooltipPos)\r\n x = tooltipPos ? tooltipPos[0] : (inverted ? plotWidth - point.plotY : point.plotX);\r\n y = tooltipPos ? tooltipPos[1] : (inverted ? plotHeight - point.plotX : point.plotY);\r\n\r\n\r\n // hide tooltip if the point falls outside the plot\r\n show = isInsidePlot(x, y);\r\n\r\n // update the inner HTML\r\n if (text === false || !show) {\r\n hide();\r\n } else {\r\n\r\n // show it\r\n if (tooltipIsHidden) {\r\n group.show();\r\n tooltipIsHidden = false;\r\n }\r\n\r\n // update text\r\n label.attr({\r\n text: text\r\n });\r\n\r\n // get the bounding box\r\n bBox = label.getBBox();\r\n boxWidth = bBox.width;\r\n boxHeight = bBox.height;\r\n\r\n // set the size of the box\r\n box.attr({\r\n width: boxWidth + 2 * padding,\r\n height: boxHeight + 2 * padding,\r\n stroke: borderColor\r\n });\r\n\r\n // keep the box within the chart area\r\n boxX = x - boxWidth + plotLeft - 25;\r\n boxY = y - boxHeight + plotTop + 10;\r\n\r\n // it is too far to the left, adjust it\r\n if (boxX < 7) {\r\n boxX = 7;\r\n boxY -= 20;\r\n }\r\n\r\n\r\n if (boxY < 5) {\r\n boxY = 5; // above\r\n } else if (boxY + boxHeight > chartHeight) {\r\n boxY = chartHeight - boxHeight - 5; // below\r\n }\r\n\r\n // do the move\r\n move(mathRound(boxX - boxOffLeft), mathRound(boxY - boxOffLeft));\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n // public members\r\n return {\r\n refresh: refresh,\r\n hide: hide\r\n };\r\n }\r\n\r\n /**\r\n * The mouse tracker object\r\n * @param {Object} chart\r\n * @param {Object} options\r\n */\r\n function MouseTracker(chart, options) {\r\n\r\n\r\n var mouseDownX,\r\n\t\t\tmouseDownY,\r\n\t\t\thasDragged,\r\n\t\t\tselectionMarker,\r\n\t\t\tzoomType = optionsChart.zoomType,\r\n\t\t\tzoomX = /x/.test(zoomType),\r\n\t\t\tzoomY = /y/.test(zoomType),\r\n\t\t\tzoomHor = zoomX && !inverted || zoomY && inverted,\r\n\t\t\tzoomVert = zoomY && !inverted || zoomX && inverted;\r\n\r\n /**\r\n * Add IE support for pageX and pageY\r\n * @param {Object} e The event object in standard browsers\r\n */\r\n function normalizeMouseEvent(e) {\r\n\r\n // common IE normalizing\r\n e = e || win.event;\r\n if (!e.target) {\r\n e.target = e.srcElement;\r\n }\r\n\r\n // in certain cases, get mouse position\r\n if (e.type != 'mousemove' || win.opera) { // only Opera needs position on mouse move, see below\r\n position = getPosition(container);\r\n }\r\n\r\n // layerX and layerY\r\n if (e.layerX === UNDEFINED) { // Firefox and WebKit have layerX\r\n if (isIE) { // IE\r\n e.layerX = e.x;\r\n e.layerY = e.y;\r\n } else { // Opera has no equivalent of layerX, see above\r\n e.layerX = e.pageX - position.x;\r\n e.layerY = e.pageY - position.y;\r\n }\r\n }\r\n\r\n return e;\r\n }\r\n\r\n /**\r\n * Get the click position in terms of axis values.\r\n * \r\n * @param {Object} e A mouse event\r\n */\r\n function getMouseCoordinates(e) {\r\n var coordinates = {\r\n xAxis: [],\r\n yAxis: []\r\n };\r\n each(axes, function (axis, i) {\r\n var translate = axis.translate,\r\n\t\t\t\t\tisXAxis = axis.isXAxis,\r\n\t\t\t\t\tisHorizontal = inverted ? !isXAxis : isXAxis;\r\n\r\n coordinates[isXAxis ? 'xAxis' : 'yAxis'].push({\r\n axis: axis,\r\n value: translate(\r\n\t\t\t\t\t\tisHorizontal ?\r\n\t\t\t\t\t\t\te.layerX - plotLeft :\r\n\t\t\t\t\t\t\tplotHeight - e.layerY + plotTop,\r\n\t\t\t\t\t\ttrue\r\n\t\t\t\t\t)\r\n });\r\n });\r\n return coordinates;\r\n }\r\n\r\n /**\r\n * With line type charts with a single tracker, get the point closest to the mouse\r\n */\r\n function onmousemove(e) {\r\n var point,\r\n\t\t\t\thoverPoint = chart.hoverPoint,\r\n\t\t\t\thoverSeries = chart.hoverSeries;\r\n\r\n if (hoverSeries && hoverSeries.tracker) { // only use for line-type series with common tracker\r\n\r\n // get the point\r\n point = hoverSeries.tooltipPoints[\r\n\t\t\t\t\tinverted ?\r\n\t\t\t\t\t\te.layerY :\r\n\t\t\t\t\t\te.layerX - plotLeft // wtf?\r\n\t\t\t\t];\r\n\r\n // a new point is hovered, refresh the tooltip\r\n if (point && point != hoverPoint) {\r\n\r\n // trigger the events\r\n point.onMouseOver();\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * Reset the tracking by hiding the tooltip, the hover series state and the hover point\r\n */\r\n function resetTracker() {\r\n var hoverSeries = chart.hoverSeries,\r\n\t\t\t\thoverPoint = chart.hoverPoint;\r\n\r\n if (hoverPoint) {\r\n hoverPoint.onMouseOut();\r\n }\r\n if (hoverSeries) {\r\n hoverSeries.onMouseOut();\r\n }\r\n if (tooltip) {\r\n tooltip.hide();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Mouse up or outside the plot area\r\n */\r\n function drop() {\r\n if (selectionMarker) {\r\n var selectionData = {\r\n xAxis: [],\r\n yAxis: []\r\n },\r\n\t\t\t\t\tselectionBox = selectionMarker.getBBox(),\r\n\t\t\t\t\tselectionLeft = selectionBox.x - plotLeft,\r\n\t\t\t\t\tselectionTop = selectionBox.y - plotTop;\r\n\r\n\r\n // a selection has been made\r\n if (hasDragged) {\r\n\r\n // record each axis' min and max\r\n each(axes, function (axis, i) {\r\n var translate = axis.translate,\r\n\t\t\t\t\t\t\tisXAxis = axis.isXAxis,\r\n\t\t\t\t\t\t\tisHorizontal = inverted ? !isXAxis : isXAxis,\r\n\t\t\t\t\t\t\tselectionMin = translate(\r\n\t\t\t\t\t\t\t\tisHorizontal ?\r\n\t\t\t\t\t\t\t\t\tselectionLeft :\r\n\t\t\t\t\t\t\t\t\tplotHeight - selectionTop - selectionBox.height,\r\n\t\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\tselectionMax = translate(\r\n\t\t\t\t\t\t\t\tisHorizontal ?\r\n\t\t\t\t\t\t\t\t\tselectionLeft + selectionBox.width :\r\n\t\t\t\t\t\t\t\t\tplotHeight - selectionTop,\r\n\t\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t\t);\r\n\r\n selectionData[isXAxis ? 'xAxis' : 'yAxis'].push({\r\n axis: axis,\r\n min: mathMin(selectionMin, selectionMax), // for reversed axes\r\n max: mathMax(selectionMin, selectionMax)\r\n });\r\n\r\n });\r\n fireEvent(chart, 'selection', selectionData, zoom);\r\n\r\n }\r\n selectionMarker = selectionMarker.destroy();\r\n }\r\n\r\n chart.mouseIsDown = mouseIsDown = hasDragged = false;\r\n\r\n }\r\n\r\n /**\r\n * Set the JS events on the container element\r\n */\r\n function setDOMEvents() {\r\n var lastWasOutsidePlot = true;\r\n\r\n container.onmousedown = function (e) {\r\n e = normalizeMouseEvent(e);\r\n\r\n // record the start position\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n chart.mouseIsDown = mouseIsDown = true;\r\n mouseDownX = e.layerX;\r\n mouseDownY = e.layerY;\r\n\r\n\r\n // make a selection\r\n if (hasCartesianSeries && (zoomX || zoomY)) {\r\n if (!selectionMarker) {\r\n selectionMarker = renderer.rect(\r\n\t\t\t\t\t\t\tplotLeft,\r\n\t\t\t\t\t\t\tplotTop,\r\n\t\t\t\t\t\t\tzoomHor ? 1 : plotWidth,\r\n\t\t\t\t\t\t\tzoomVert ? 1 : plotHeight,\r\n\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.attr({\r\n\t\t\t\t\t\t fill: 'rgba(69,114,167,0.25)',\r\n\t\t\t\t\t\t zIndex: 7\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.add();\r\n }\r\n }\r\n\r\n };\r\n\r\n // Use native browser event for this one. It's faster, and MooTools\r\n // doesn't use clientX and clientY.\r\n container.onmousemove = function (e) {\r\n e = normalizeMouseEvent(e);\r\n e.returnValue = false;\r\n\r\n var layerX = e.layerX,\r\n\t\t\t\t\tlayerY = e.layerY,\r\n\t\t\t\t\tisOutsidePlot = !isInsidePlot(layerX - plotLeft, layerY - plotTop);\r\n\r\n if (mouseIsDown) { // make selection\r\n\r\n // determine if the mouse has moved more than 10px\r\n hasDragged = Math.sqrt(\r\n\t\t\t\t\t\tMath.pow(mouseDownX - layerX, 2) +\r\n\t\t\t\t\t\tMath.pow(mouseDownY - layerY, 2)\r\n\t\t\t\t\t) > 10;\r\n\r\n\r\n // adjust the width of the selection marker\r\n if (zoomHor) {\r\n var xSize = layerX - mouseDownX;\r\n selectionMarker.attr({\r\n width: mathAbs(xSize),\r\n x: (xSize > 0 ? 0 : xSize) + mouseDownX\r\n });\r\n }\r\n // adjust the height of the selection marker\r\n if (zoomVert) {\r\n var ySize = layerY - mouseDownY;\r\n selectionMarker.attr({\r\n height: mathAbs(ySize),\r\n y: (ySize > 0 ? 0 : ySize) + mouseDownY\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n } else if (!isOutsidePlot) {\r\n // show the tooltip\r\n onmousemove(e);\r\n }\r\n\r\n // cancel on mouse outside\r\n if (isOutsidePlot && !lastWasOutsidePlot) {\r\n // reset the tracker\t\t\t\t\t\r\n resetTracker();\r\n\r\n // drop the selection if any and reset mouseIsDown and hasDragged\r\n drop();\r\n }\r\n\r\n lastWasOutsidePlot = isOutsidePlot;\r\n return false;\r\n };\r\n\r\n container.onmouseup = function (e) {\r\n drop();\r\n };\r\n\r\n\r\n\r\n // MooTools 1.2.3 doesn't fire this in IE when using addEvent\r\n container.onclick = function (e) {\r\n var hoverPoint = chart.hoverPoint;\r\n e = normalizeMouseEvent(e);\r\n\r\n e.cancelBubble = true; // IE specific\r\n\r\n\r\n if (!hasDragged) {\r\n if (hoverPoint && attr(e.target, 'isTracker')) {\r\n var plotX = hoverPoint.plotX,\r\n\t\t\t\t\t\t\tplotY = hoverPoint.plotY;\r\n\r\n // add page position info\r\n extend(hoverPoint, {\r\n pageX: position.x + plotLeft +\r\n\t\t\t\t\t\t\t\t(inverted ? plotWidth - plotY : plotX),\r\n pageY: position.y + plotTop +\r\n\t\t\t\t\t\t\t\t(inverted ? plotHeight - plotX : plotY)\r\n });\r\n\r\n // the series click event\r\n fireEvent(chart.hoverSeries, 'click', extend(e, {\r\n point: hoverPoint\r\n }));\r\n\r\n // the point click event\r\n hoverPoint.firePointEvent('click', e);\r\n\r\n } else {\r\n extend(e, getMouseCoordinates(e));\r\n\r\n // fire a click event in the chart\r\n if (isInsidePlot(e.layerX - plotLeft, e.layerY - plotTop)) {\r\n fireEvent(chart, 'click', e);\r\n }\r\n }\r\n\r\n\r\n }\r\n // reset mouseIsDown and hasDragged\r\n hasDragged = false;\r\n };\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n /**\r\n * Create the image map that listens for mouseovers\r\n */\r\n function createTrackerGroup() {\r\n chart.trackerGroup = trackerGroup = renderer.g('tracker');\r\n\r\n if (inverted) {\r\n trackerGroup.attr({\r\n width: chart.plotWidth,\r\n height: chart.plotHeight\r\n }).invert();\r\n }\r\n\r\n trackerGroup\r\n\t\t\t\t.attr({ zIndex: 9 })\r\n\t\t\t\t.translate(plotLeft, plotTop)\r\n\t\t\t\t.add();\r\n }\r\n\r\n\r\n // Run MouseTracker\r\n createTrackerGroup();\r\n if (options.enabled) {\r\n chart.tooltip = tooltip = Tooltip(options);\r\n }\r\n\r\n setDOMEvents();\r\n\r\n // set the fixed interval ticking for the smooth tooltip\r\n tooltipInterval = setInterval(function () {\r\n if (tooltipTick) {\r\n tooltipTick();\r\n }\r\n }, 32);\r\n\r\n // expose properties\r\n extend(this, {\r\n zoomX: zoomX,\r\n zoomY: zoomY,\r\n resetTracker: resetTracker\r\n });\r\n }\r\n\r\n\r\n\r\n /**\r\n * The overview of the chart's series\r\n * @param {Object} chart\r\n */\r\n var Legend = function (chart) {\r\n\r\n var options = chart.options.legend;\r\n\r\n if (!options.enabled) {\r\n return;\r\n }\r\n\r\n var horizontal = options.layout == 'horizontal',\r\n\t\t\tsymbolWidth = options.symbolWidth,\r\n\t\t\tsymbolPadding = options.symbolPadding,\r\n\t\t\tallItems = [],\r\n\t\t\tstyle = options.style,\r\n\t\t\titemStyle = options.itemStyle,\r\n\t\t\titemHoverStyle = options.itemHoverStyle,\r\n\t\t\titemHiddenStyle = options.itemHiddenStyle,\r\n\t\t\tpadding = parseInt(style.padding, 10),\r\n\t\t\trightPadding = 20,\r\n\t\t\tlineHeight = options.lineHeight || 16,\r\n\t\t\ty = 18,\r\n\t\t\tinitialItemX = 4 + padding + symbolWidth + symbolPadding,\r\n\t\t\titemX,\r\n\t\t\titemY,\r\n\t\t\tlastItemY,\r\n\t\t\tbox,\r\n\t\t\tlegendBorderWidth = options.borderWidth,\r\n\t\t\tlegendBackgroundColor = options.backgroundColor,\r\n\t\t\tlegendGroup,\r\n\t\t\toffsetWidth,\r\n\t\t\twidthOption = options.width,\r\n\t\t\tboxWidth,\r\n\t\t\tboxHeight,\r\n\t\t\tseries = chart.series,\r\n\t\t\treversedLegend = options.reversed;\r\n\r\n\r\n\r\n /**\r\n * Set the colors for the legend item\r\n * @param {Object} item A Series or Point instance\r\n * @param {Object} visible Dimmed or colored\r\n */\r\n function colorizeItem(item, visible) {\r\n var legendItem = item.legendItem,\r\n\t\t\t\tlegendLine = item.legendLine,\r\n\t\t\t\tlegendSymbol = item.legendSymbol,\r\n\t\t\t\thiddenColor = itemHiddenStyle.color,\r\n\t\t\t\ttextColor = visible ? options.itemStyle.color : hiddenColor,\r\n\t\t\t\tsymbolColor = visible ? item.color : hiddenColor;\r\n if (legendItem) {\r\n legendItem.attr({ fill: textColor });\r\n }\r\n if (legendLine) {\r\n legendLine.attr({ stroke: symbolColor });\r\n }\r\n if (legendSymbol) {\r\n legendSymbol.attr({\r\n stroke: symbolColor,\r\n fill: symbolColor\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Position the legend item\r\n * @param {Object} item A Series or Point instance\r\n * @param {Object} visible Dimmed or colored\r\n */\r\n function positionItem(item, itemX, itemY) {\r\n var legendItem = item.legendItem,\r\n\t\t\t\tlegendLine = item.legendLine,\r\n\t\t\t\tlegendSymbol = item.legendSymbol,\r\n\t\t\t\tcheckbox = item.checkbox;\r\n if (legendItem) {\r\n legendItem.attr({\r\n x: itemX,\r\n y: itemY\r\n });\r\n }\r\n if (legendLine) {\r\n legendLine.translate(itemX, itemY - 4);\r\n }\r\n if (legendSymbol) {\r\n legendSymbol\r\n\t\t\t\t\t.translate(itemX, itemY);\r\n }\r\n if (checkbox) {\r\n checkbox.x = itemX;\r\n checkbox.y = itemY;\r\n }\r\n }\r\n\r\n /**\r\n * Destroy a single legend item\r\n * @param {Object} item The series or point\r\n */\r\n function destroyItem(item) {\r\n var i = allItems.length,\r\n\t\t\t\tcheckbox = item.checkbox;\r\n\r\n // pull out from the array\r\n while (i--) {\r\n if (allItems[i] == item) {\r\n allItems.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // destroy SVG elements\r\n each(['legendItem', 'legendLine', 'legendSymbol'], function (key) {\r\n if (item[key]) {\r\n item[key].destroy();\r\n }\r\n });\r\n\r\n if (checkbox) {\r\n discardElement(item.checkbox);\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n /**\r\n * Render a single specific legend item\r\n * @param {Object} item A series or point\r\n */\r\n function renderItem(item) {\r\n var bBox,\r\n\t\t\t\titemWidth,\r\n\t\t\t\tlegendSymbol,\r\n\t\t\t\tsimpleSymbol,\r\n\t\t\t\tli = item.legendItem,\r\n\t\t\t\tseries = item.series || item;\r\n\r\n\r\n if (!li) { // generate it once, later move it\r\n\r\n // let these series types use a simple symbol\r\n simpleSymbol = /^(bar|pie|area|column)$/.test(series.type);\r\n\r\n // generate the list item text\r\n item.legendItem = li = renderer.text(\r\n\t\t\t\t\t\toptions.labelFormatter.call(item),\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t0\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.css(itemStyle)\r\n\t\t\t\t\t.on('mouseover', function () {\r\n\t\t\t\t\t item.setState(HOVER_STATE);\r\n\t\t\t\t\t li.css(itemHoverStyle);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on('mouseout', function () {\r\n\t\t\t\t\t li.css(item.visible ? itemStyle : itemHiddenStyle);\r\n\t\t\t\t\t item.setState();\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on('click', function (event) {\r\n\t\t\t\t\t var strLegendItemClick = 'legendItemClick',\r\n\t\t\t\t\t\t\tfnLegendItemClick = function () {\r\n\t\t\t\t\t\t\t item.setVisible();\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t // click the name or symbol\r\n\t\t\t\t\t if (item.firePointEvent) { // point\r\n\t\t\t\t\t item.firePointEvent(strLegendItemClick, null, fnLegendItemClick);\r\n\t\t\t\t\t } else {\r\n\t\t\t\t\t fireEvent(item, strLegendItemClick, null, fnLegendItemClick);\r\n\t\t\t\t\t }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.attr({ zIndex: 2 })\r\n\t\t\t\t\t.add(legendGroup);\r\n\r\n // draw the line\r\n if (!simpleSymbol && item.options && item.options.lineWidth) {\r\n item.legendLine = renderer.path([\r\n\t\t\t\t\t\tM,\r\n\t\t\t\t\t\t-symbolWidth - symbolPadding,\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\tL,\r\n\t\t\t\t\t\t-symbolPadding,\r\n\t\t\t\t\t\t0\r\n\t\t\t\t\t]).attr({\r\n\t\t\t\t\t //stroke: color,\r\n\t\t\t\t\t 'stroke-width': item.options.lineWidth,\r\n\t\t\t\t\t zIndex: 2\r\n\t\t\t\t\t}).\r\n\t\t\t\t\tadd(legendGroup);\r\n }\r\n\r\n // draw a simple symbol\r\n if (simpleSymbol) { // bar|pie|area|column\r\n //legendLayer.drawRect(\r\n legendSymbol = renderer.rect(\r\n\t\t\t\t\t\t-symbolWidth - symbolPadding,\r\n\t\t\t\t\t\t-11,\r\n\t\t\t\t\t\tsymbolWidth,\r\n\t\t\t\t\t\t12,\r\n\t\t\t\t\t\t2\r\n\t\t\t\t\t).attr({\r\n\t\t\t\t\t 'stroke-width': 0,\r\n\t\t\t\t\t zIndex: 3\r\n\t\t\t\t\t}).add(legendGroup);\r\n }\r\n\r\n // draw the marker\r\n else if (item.options && item.options.marker && item.options.marker.enabled) {\r\n legendSymbol = renderer.symbol(\r\n\t\t\t\t\t\titem.symbol,\r\n\t\t\t\t\t\t-symbolWidth / 2 - symbolPadding,\r\n\t\t\t\t\t\t-4,\r\n\t\t\t\t\t\titem.options.marker.radius\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.attr(item.pointAttr[NORMAL_STATE])\r\n\t\t\t\t\t.attr({ zIndex: 3 })\r\n\t\t\t\t\t.add(legendGroup);\r\n }\r\n item.legendSymbol = legendSymbol;\r\n\r\n // colorize the items\r\n colorizeItem(item, item.visible);\r\n\r\n\r\n // add the HTML checkbox on top\r\n if (item.options && item.options.showCheckbox) {\r\n item.checkbox = createElement('input', {\r\n type: 'checkbox',\r\n checked: item.selected,\r\n defaultChecked: item.selected // required by IE7\t\t\t\t\t\t\r\n }, options.itemCheckboxStyle, container);\r\n\r\n addEvent(item.checkbox, 'click', function (event) {\r\n var target = event.target;\r\n fireEvent(item, 'checkboxClick', {\r\n checked: target.checked\r\n },\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t item.select();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n // position the newly generated or reordered items\r\n positionItem(item, itemX, itemY);\r\n\r\n // calculate the positions for the next line\r\n bBox = li.getBBox();\r\n lastItemY = itemY;\r\n\r\n item.legendItemWidth = itemWidth =\r\n\t\t\t\toptions.itemWidth || symbolWidth + symbolPadding + bBox.width + rightPadding;\r\n if (horizontal) {\r\n itemX += itemWidth;\r\n offsetWidth = widthOption || mathMax(itemX - initialItemX, offsetWidth);\r\n\r\n if (itemX - initialItemX + itemWidth >\r\n\t\t\t\t\t\t(widthOption || (chartWidth - 2 * padding - initialItemX))) { // new line\r\n itemX = initialItemX;\r\n itemY += lineHeight;\r\n }\r\n\r\n } else {\r\n itemY += lineHeight;\r\n // the width of the widest item\r\n offsetWidth = widthOption || mathMax(itemWidth, offsetWidth);\r\n }\r\n\r\n // add it all to an array to use below\r\n allItems.push(item);\r\n }\r\n\r\n /**\r\n * Render the legend. This method can be called both before and after\r\n * chart.render. If called after, it will only rearrange items instead\r\n * of creating new ones.\r\n */\r\n function renderLegend() {\r\n itemX = initialItemX;\r\n itemY = y;\r\n offsetWidth = 0;\r\n lastItemY = 0;\r\n\r\n if (!legendGroup) {\r\n legendGroup = renderer.g('legend')\r\n\t\t\t\t\t.attr({ zIndex: 7 })\r\n\t\t\t\t\t.add();\r\n }\r\n\r\n\r\n // add HTML for each series\r\n if (reversedLegend) {\r\n series.reverse();\r\n }\r\n each(series, function (serie) {\r\n if (!serie.options.showInLegend) {\r\n return;\r\n }\r\n\r\n // use points or series for the legend item depending on legendType\r\n var items = (serie.options.legendType == 'point') ?\r\n\t\t\t\t\tserie.data : [serie];\r\n\r\n // render all items\r\n each(items, renderItem);\r\n });\r\n if (reversedLegend) { // restore\r\n series.reverse();\r\n }\r\n\r\n\r\n\r\n // Draw the border\r\n boxWidth = widthOption || offsetWidth;\r\n boxHeight = lastItemY - y + lineHeight;\r\n\r\n if (legendBorderWidth || legendBackgroundColor) {\r\n boxWidth += 2 * padding;\r\n boxHeight += 2 * padding;\r\n\r\n if (!box) {\r\n box = renderer.rect(\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\tboxWidth,\r\n\t\t\t\t\t\tboxHeight,\r\n\t\t\t\t\t\toptions.borderRadius,\r\n\t\t\t\t\t\tlegendBorderWidth || 0\r\n\t\t\t\t\t).attr({\r\n\t\t\t\t\t stroke: options.borderColor,\r\n\t\t\t\t\t 'stroke-width': legendBorderWidth || 0,\r\n\t\t\t\t\t fill: legendBackgroundColor || NONE\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.add(legendGroup)\r\n\t\t\t\t\t.shadow(options.shadow);\r\n\r\n } else {\r\n box.attr({\r\n height: boxHeight,\r\n width: boxWidth\r\n });\r\n }\r\n }\r\n\r\n // 1.x compatibility: positioning based on style\r\n var props = ['left', 'right', 'top', 'bottom'],\r\n\t\t\t\tprop,\r\n\t\t\t\ti = 4;\r\n while (i--) {\r\n prop = props[i];\r\n if (style[prop] && style[prop] != 'auto') {\r\n options[i < 2 ? 'align' : 'verticalAlign'] = prop;\r\n options[i < 2 ? 'x' : 'y'] = parseInt(style[prop], 10) * (i % 2 ? -1 : 1);\r\n }\r\n }\r\n\r\n\r\n var boxPos = getAlignment(extend({\r\n width: boxWidth,\r\n height: boxHeight\r\n }, options));\r\n legendGroup.translate(boxPos.x, boxPos.y);\r\n\r\n // Position the checkboxes after the width is determined \r\n each(allItems, function (item) {\r\n var checkbox = item.checkbox;\r\n if (checkbox) {\r\n css(checkbox, {\r\n left: (boxPos.x + item.legendItemWidth + checkbox.x - 40) + PX,\r\n top: (boxPos.y + checkbox.y - 11) + PX\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n // run legend\r\n renderLegend();\r\n\r\n // expose \r\n return {\r\n colorizeItem: colorizeItem,\r\n destroyItem: destroyItem,\r\n renderLegend: renderLegend\r\n };\r\n };\r\n\r\n\r\n\r\n\r\n\r\n\r\n /** \r\n * Initialize an individual series, called internally before render time\r\n */\r\n function initSeries(options) {\r\n var type = options.type || optionsChart.defaultSeriesType,\r\n\t\t\ttypeClass = seriesTypes[type],\r\n\t\t\tserie,\r\n\t\t\thasRendered = chart.hasRendered;\r\n\r\n // an inverted chart can't take a column series and vice versa\r\n if (hasRendered) {\r\n if (inverted && type == 'column') {\r\n typeClass = seriesTypes.bar;\r\n } else if (!inverted && type == 'bar') {\r\n typeClass = seriesTypes.column;\r\n }\r\n }\r\n\r\n serie = new typeClass();\r\n\r\n serie.init(chart, options);\r\n\r\n // set internal chart properties\r\n if (!hasRendered && serie.inverted) {\r\n inverted = true;\r\n }\r\n if (serie.isCartesian) {\r\n hasCartesianSeries = serie.isCartesian;\r\n }\r\n\r\n series.push(serie);\r\n\r\n return serie;\r\n }\r\n\r\n /**\r\n * Add a series dynamically after time\r\n * \r\n * @param {Object} options The config options\r\n * @param {Boolean} redraw Whether to redraw the chart after adding. Defaults to true.\r\n * \r\n * @return {Object} series The newly created series object\r\n */\r\n function addSeries(options, redraw) {\r\n var series;\r\n\r\n redraw = pick(redraw, true); // defaults to true\r\n\r\n fireEvent(chart, 'addSeries', { options: options }, function () {\r\n series = initSeries(options);\r\n series.isDirty = true;\r\n\r\n chart.isDirty = true; // the series array is out of sync with the display\r\n if (redraw) {\r\n chart.redraw();\r\n }\r\n });\r\n\r\n return series;\r\n }\r\n\r\n /**\r\n * Check whether a given point is within the plot area\r\n * \r\n * @param {Number} x Pixel x relative to the coordinateSystem\r\n * @param {Number} y Pixel y relative to the coordinateSystem\r\n */\r\n isInsidePlot = function (x, y) {\r\n var left = 0,\r\n\t\t\ttop = 0;\r\n return x >= left &&\r\n\t\t\tx <= left + plotWidth &&\r\n\t\t\ty >= top &&\r\n\t\t\ty <= top + plotHeight;\r\n };\r\n\r\n /**\r\n * Adjust all axes tick amounts\r\n */\r\n function adjustTickAmounts() {\r\n if (optionsChart.alignTicks !== false) {\r\n each(axes, function (axis) {\r\n axis.adjustTickAmount();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Redraw legend, axes or series based on updated data\r\n */\r\n function redraw() {\r\n var redrawLegend = chart.isDirty,\r\n\t\t\thasStackedSeries,\r\n\t\t\tseriesLength = series.length,\r\n\t\t\ti = seriesLength,\r\n\t\t\tserie;\r\n\r\n // link stacked series\r\n while (i--) {\r\n serie = series[i];\r\n if (serie.isDirty && serie.options.stacking) {\r\n hasStackedSeries = true;\r\n break;\r\n }\r\n }\r\n if (hasStackedSeries) { // mark others as dirty\r\n i = seriesLength;\r\n while (i--) {\r\n serie = series[i];\r\n if (serie.options.stacking) {\r\n serie.isDirty = true;\r\n }\r\n }\r\n }\r\n\r\n // handle updated data in the series\t\t\r\n each(series, function (serie) {\r\n if (serie.isDirty) { // prepare the data so axis can read it\r\n serie.cleanData();\r\n serie.getSegments();\r\n\r\n if (serie.options.legendType == 'point') {\r\n redrawLegend = true;\r\n }\r\n }\r\n });\r\n\r\n // reset maxTicks\r\n maxTicks = null;\r\n\r\n if (hasCartesianSeries) {\r\n // set axes scales\r\n each(axes, function (axis) {\r\n axis.setScale();\r\n });\r\n adjustTickAmounts();\r\n\r\n // redraw axes\r\n each(axes, function (axis) {\r\n if (axis.isDirty) { axis.redraw(); }\r\n });\r\n }\r\n\r\n // redraw affected series\r\n each(series, function (serie) {\r\n if (serie.isDirty && serie.visible) {\r\n serie.redraw();\r\n }\r\n });\r\n\r\n // handle added or removed series \r\n if (redrawLegend && legend.renderLegend) { // series or pie points are added or removed\r\n // draw legend graphics\r\n legend.renderLegend();\r\n\r\n chart.isDirty = false;\r\n }\r\n\r\n // hide tooltip and hover states\r\n if (tracker && tracker.resetTracker) {\r\n tracker.resetTracker();\r\n }\r\n\r\n\r\n // fire the event\r\n fireEvent(chart, 'redraw');\r\n }\r\n\r\n\r\n\r\n /**\r\n * Dim the chart and show a loading text or symbol\r\n */\r\n function showLoading() {\r\n var loadingOptions = options.loading;\r\n\r\n // create the layer at the first call\r\n if (!loadingLayer) {\r\n loadingLayer = createElement(DIV, {\r\n className: 'highcharts-loading'\r\n }, extend(loadingOptions.style, {\r\n left: plotLeft + PX,\r\n top: plotTop + PX,\r\n width: plotWidth + PX,\r\n height: plotHeight + PX,\r\n zIndex: 10,\r\n display: NONE\r\n }), container);\r\n\r\n createElement('span', {\r\n innerHTML: options.lang.loading\r\n }, loadingOptions.labelStyle, loadingLayer);\r\n }\r\n\r\n\r\n // show it\r\n if (!loadingShown) {\r\n css(loadingLayer, { opacity: 0, display: '' });\r\n animate(loadingLayer, {\r\n opacity: loadingOptions.style.opacity\r\n }, {\r\n duration: loadingOptions.showDuration\r\n });\r\n loadingShown = true;\r\n }\r\n }\r\n /**\r\n * Hide the loading layer\r\n */\r\n function hideLoading() {\r\n animate(loadingLayer, {\r\n opacity: 0\r\n }, {\r\n duration: options.loading.hideDuration,\r\n complete: function () {\r\n css(loadingLayer, { display: NONE });\r\n }\r\n });\r\n loadingShown = false;\r\n }\r\n\r\n /**\r\n * Get an axis, series or point object by id.\r\n * @param id {String} The id as given in the configuration options\r\n */\r\n function get(id) {\r\n var i,\r\n\t\t\tj,\r\n\t\t\tdata;\r\n\r\n // search axes\r\n for (i = 0; i < axes.length; i++) {\r\n if (axes[i].options.id == id) {\r\n return axes[i];\r\n }\r\n }\r\n\r\n // search series\r\n for (i = 0; i < series.length; i++) {\r\n if (series[i].options.id == id) {\r\n return series[i];\r\n }\r\n }\r\n\r\n // search points\r\n for (i = 0; i < series.length; i++) {\r\n data = series[i].data;\r\n for (j = 0; j < data.length; j++) {\r\n if (data[j].id == id) {\r\n return data[j];\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Update the chart's position after it has been moved, to match\r\n * the mouse positions with the chart\r\n */\r\n /*function updatePosition() {\r\n var container = doc.getElementById(containerId);\r\n if (container) {\r\n position = getPosition(container);\r\n }\r\n }*/\r\n\r\n /** \r\n * Create the Axis instances based on the config options\r\n */\r\n function getAxes() {\r\n var xAxisOptions = options.xAxis || {},\r\n\t\t\tyAxisOptions = options.yAxis || {},\r\n\t\t\taxis;\r\n\r\n // make sure the options are arrays and add some members\r\n xAxisOptions = splat(xAxisOptions);\r\n each(xAxisOptions, function (axis, i) {\r\n axis.index = i;\r\n axis.isX = true;\r\n });\r\n\r\n yAxisOptions = splat(yAxisOptions);\r\n each(yAxisOptions, function (axis, i) {\r\n axis.index = i;\r\n });\r\n\r\n // concatenate all axis options into one array\r\n axes = xAxisOptions.concat(yAxisOptions);\r\n\r\n // loop the options and construct axis objects\r\n chart.xAxis = [];\r\n chart.yAxis = [];\r\n axes = map(axes, function (axisOptions) {\r\n axis = new Axis(chart, axisOptions);\r\n chart[axis.isXAxis ? 'xAxis' : 'yAxis'].push(axis);\r\n\r\n return axis;\r\n });\r\n\r\n adjustTickAmounts();\r\n }\r\n\r\n\r\n /**\r\n * Get the currently selected points from all series\r\n */\r\n function getSelectedPoints() {\r\n var points = [];\r\n each(series, function (serie) {\r\n points = points.concat(grep(serie.data, function (point) {\r\n return point.selected;\r\n }));\r\n });\r\n return points;\r\n }\r\n\r\n /**\r\n * Get the currently selected series\r\n */\r\n function getSelectedSeries() {\r\n return grep(series, function (serie) {\r\n return serie.selected;\r\n });\r\n }\r\n\r\n /**\r\n * Zoom out to 1:1\r\n */\r\n zoomOut = function () {\r\n fireEvent(chart, 'selection', { resetSelection: true }, zoom);\r\n chart.toolbar.remove('zoom');\r\n\r\n };\r\n /**\r\n * Zoom into a given portion of the chart given by axis coordinates\r\n * @param {Object} event\r\n */\r\n zoom = function (event) {\r\n\r\n // add button to reset selection\r\n var lang = defaultOptions.lang;\r\n chart.toolbar.add('zoom', lang.resetZoom, lang.resetZoomTitle, zoomOut);\r\n\r\n // if zoom is called with no arguments, reset the axes\r\n if (!event || event.resetSelection) {\r\n each(axes, function (axis) {\r\n axis.setExtremes(null, null, false);\r\n });\r\n }\r\n\r\n // else, zoom in on all axes\r\n else {\r\n each(event.xAxis.concat(event.yAxis), function (axisData) {\r\n var axis = axisData.axis;\r\n\r\n // don't zoom more than maxZoom\r\n if (chart.tracker[axis.isXAxis ? 'zoomX' : 'zoomY']) {\r\n axis.setExtremes(axisData.min, axisData.max, false);\r\n }\r\n });\r\n }\r\n\r\n // redraw chart\r\n redraw();\r\n\r\n };\r\n\r\n /**\r\n * Function: (private) showTitle\r\n * \r\n * Show the title and subtitle of the chart\r\n */\r\n function showTitle() {\r\n var title = options.title,\r\n\t\t\ttitleAlign = title.align,\r\n\t\t\tsubtitle = options.subtitle,\r\n\t\t\tsubtitleAlign = subtitle.align,\r\n\t\t\tanchorMap = { // get the anchor relative to the alignment\r\n\t\t\t left: 0,\r\n\t\t\t center: chartWidth / 2,\r\n\t\t\t right: chartWidth\r\n\t\t\t};\r\n\r\n\r\n // title\r\n if (title && title.text) {\r\n renderer.text(\r\n\t\t\t\ttitle.text,\r\n\t\t\t\tanchorMap[titleAlign] + title.x,\r\n\t\t\t\ttitle.y,\r\n\t\t\t\ttitle.style,\r\n\t\t\t\t0,\r\n\t\t\t\ttitleAlign\r\n\t\t\t).attr({\r\n\t\t\t 'class': 'highcharts-title'\r\n\t\t\t}).add();\r\n }\r\n\r\n // subtitle\r\n if (subtitle && subtitle.text) {\r\n renderer.text(\r\n\t\t\t\tsubtitle.text,\r\n\t\t\t\tanchorMap[subtitleAlign] + subtitle.x,\r\n\t\t\t\tsubtitle.y,\r\n\t\t\t\tsubtitle.style,\r\n\t\t\t\t0,\r\n\t\t\t\tsubtitleAlign\r\n\t\t\t).attr({\r\n\t\t\t 'class': 'highcharts-subtitle'\r\n\t\t\t}).add();\r\n }\r\n }\r\n\r\n /**\r\n * Break down alignment options like align, verticalAlign, x, y, \r\n * width and height to x and y relative to the chart.\r\n * \r\n * @param {Object} alignmentOptions\r\n * \r\n */\r\n getAlignment = function (alignmentOptions) {\r\n var align = alignmentOptions.align,\r\n\t\t\tvAlign = alignmentOptions.verticalAlign,\r\n\t\t\toptionsX = alignmentOptions.x || 0,\r\n\t\t\toptionsY = alignmentOptions.y || 0,\r\n\t\t\tret = {\r\n\t\t\t x: optionsX || 0, // default: left align\r\n\t\t\t y: optionsY || 0 // default: top align\r\n\t\t\t};\r\n // align\r\n if (/^(right|center)$/.test(align)) {\r\n ret.x = (chartWidth - alignmentOptions.width) /\r\n\t\t\t\t{ right: 1, center: 2}[align] +\r\n\t\t\t\toptionsX;\r\n }\r\n // vertical align\r\n if (/^(bottom|middle)$/.test(vAlign)) {\r\n ret.y = (chartHeight - alignmentOptions.height) /\r\n\t\t\t\t{ bottom: 1, middle: 2}[vAlign] +\r\n\t\t\t\toptionsY;\r\n }\r\n\r\n\r\n return ret;\r\n };\r\n\r\n /**\r\n * Get the containing element, determine the size and create the inner container\r\n * div to hold the chart\r\n */\r\n function getContainer() {\r\n renderTo = optionsChart.renderTo;\r\n containerId = PREFIX + idCounter++;\r\n\r\n if (typeof renderTo == 'string') {\r\n renderTo = doc.getElementById(renderTo);\r\n }\r\n\r\n // remove previous chart\r\n renderTo.innerHTML = '';\r\n\r\n // If the container doesn't have an offsetWidth, it has or is a child of a node\r\n // that has display:none. We need to temporarily move it out to a visible\r\n // state to determine the size, else the legend and tooltips won't render\r\n // properly \r\n if (!renderTo.offsetWidth) {\r\n renderToClone = renderTo.cloneNode(0);\r\n css(renderToClone, {\r\n position: ABSOLUTE,\r\n top: '-9999px',\r\n display: ''\r\n });\r\n doc.body.appendChild(renderToClone);\r\n }\r\n\r\n // get the width and height\r\n var renderToOffsetHeight = (renderToClone || renderTo).offsetHeight;\r\n chart.chartWidth = chartWidth = optionsChart.width || (renderToClone || renderTo).offsetWidth || 600;\r\n chart.chartHeight = chartHeight = optionsChart.height ||\r\n // the offsetHeight of an empty container is 0 in standard browsers, but 19 in IE7:\r\n\t\t\t(renderToOffsetHeight > plotTop + marginBottom ? renderToOffsetHeight : 0) ||\r\n\t\t\t400;\r\n\r\n\r\n chart.plotWidth = plotWidth = chartWidth - plotLeft - marginRight;\r\n chart.plotHeight = plotHeight = chartHeight - plotTop - marginBottom;\r\n\r\n chart.plotLeft = plotLeft;\r\n chart.plotTop = plotTop;\r\n\r\n // create the inner container\r\n chart.container = container = createElement(DIV, {\r\n className: 'highcharts-container' +\r\n\t\t\t\t\t(optionsChart.className ? ' ' + optionsChart.className : ''),\r\n id: containerId\r\n }, extend({\r\n position: RELATIVE,\r\n overflow: HIDDEN,\r\n width: chartWidth + PX,\r\n height: chartHeight + PX,\r\n textAlign: 'left'\r\n }, optionsChart.style),\r\n\t\t\trenderToClone || renderTo\r\n\t\t);\r\n\r\n chart.renderer = renderer =\r\n\t\t\toptionsChart.renderer == 'SVG' ? // force SVG, used for SVG export\r\n\t\t\t\tnew SVGRenderer(container, chartWidth, chartHeight) :\r\n\t\t\t\tnew Renderer(container, chartWidth, chartHeight);\r\n }\r\n /**\r\n * Render all graphics for the chart\r\n */\r\n function render() {\r\n\r\n var mgn,\r\n //div, \r\n //i, \r\n\t\t\tlabels = options.labels,\r\n\t\t\tcredits = options.credits,\r\n\t\t\tchartBorderWidth = optionsChart.borderWidth || 0,\r\n\t\t\tchartBackgroundColor = optionsChart.backgroundColor,\r\n\t\t\tplotBackgroundColor = optionsChart.plotBackgroundColor,\r\n\t\t\tplotBackgroundImage = optionsChart.plotBackgroundImage;\r\n\r\n\r\n // Chart area\r\n mgn = 2 * chartBorderWidth + (optionsChart.shadow ? 8 : 0);\r\n\r\n if (chartBorderWidth || chartBackgroundColor) {\r\n renderer.rect(mgn / 2, mgn / 2, chartWidth - mgn, chartHeight - mgn,\r\n\t\t\t\t\toptionsChart.borderRadius, chartBorderWidth).\r\n\t\t\t\tattr({\r\n\t\t\t\t stroke: optionsChart.borderColor,\r\n\t\t\t\t 'stroke-width': chartBorderWidth,\r\n\t\t\t\t fill: chartBackgroundColor || NONE\r\n\t\t\t\t}).\r\n\t\t\t\tadd().\r\n\t\t\t\tshadow(optionsChart.shadow);\r\n }\r\n\r\n\r\n // Plot background\r\n if (plotBackgroundColor) {\r\n renderer.rect(plotLeft, plotTop, plotWidth, plotHeight, 0)\r\n\t\t\t\t.attr({\r\n\t\t\t\t fill: plotBackgroundColor\r\n\t\t\t\t})\r\n\t\t\t\t.add()\r\n\t\t\t\t.shadow(optionsChart.plotShadow);\r\n }\r\n if (plotBackgroundImage) {\r\n renderer.image(plotBackgroundImage, plotLeft, plotTop, plotWidth, plotHeight)\r\n\t\t\t\t.add();\r\n }\r\n\r\n // Plot area border\r\n if (optionsChart.plotBorderWidth) {\r\n renderer.rect(plotLeft, plotTop, plotWidth, plotHeight, 0, optionsChart.plotBorderWidth).\r\n\t\t\t\tattr({\r\n\t\t\t\t stroke: optionsChart.plotBorderColor,\r\n\t\t\t\t 'stroke-width': optionsChart.plotBorderWidth,\r\n\t\t\t\t zIndex: 4\r\n\t\t\t\t}).add();\r\n }\r\n\r\n // Axes\r\n if (hasCartesianSeries) {\r\n each(axes, function (axis) {\r\n axis.render();\r\n });\r\n }\r\n\r\n // Title\r\n showTitle();\r\n\r\n\r\n // Labels\r\n if (labels.items) {\r\n each(labels.items, function () {\r\n var style = extend(labels.style, this.style),\r\n\t\t\t\t\tx = parseInt(style.left, 10) + plotLeft,\r\n\t\t\t\t\ty = parseInt(style.top, 10) + plotTop + 12;\r\n\r\n // delete to prevent rewriting in IE\r\n delete style.left;\r\n delete style.top;\r\n\r\n renderer.text(\r\n\t\t\t\t\tthis.html,\r\n\t\t\t\t\tx,\r\n\t\t\t\t\ty,\r\n\t\t\t\t\tstyle\r\n\t\t\t\t)\r\n\t\t\t\t.attr({ zIndex: 2 })\r\n\t\t\t\t.add();\r\n\r\n });\r\n }\r\n\r\n // The series\r\n each(series, function (serie) {\r\n serie.render();\r\n });\r\n\r\n // Legend\r\n legend = chart.legend = new Legend(chart);\r\n\r\n\r\n // Toolbar (don't redraw)\r\n if (!chart.toolbar) {\r\n chart.toolbar = Toolbar(chart);\r\n }\r\n\r\n // Credits\r\n if (credits.enabled && !chart.credits) {\r\n renderer.text(\r\n\t\t\t\tcredits.text,\r\n\t\t\t\tchartWidth - 10,\r\n\t\t\t\tchartHeight - 5,\r\n\t\t\t\tcredits.style,\r\n\t\t\t\t0,\r\n\t\t\t\t'right'\r\n\t\t\t)\r\n\t\t\t.on('click', function () {\r\n\t\t\t location.href = credits.href;\r\n\t\t\t})\r\n\t\t\t.attr({ zIndex: 8 })\r\n\t\t\t.add();\r\n }\r\n\r\n // Set flag\r\n chart.hasRendered = true;\r\n\r\n // If the chart was rendered outside the top container, put it back in\r\n if (renderToClone) {\r\n renderTo.appendChild(container);\r\n discardElement(renderToClone);\r\n //updatePosition(container);\r\n }\r\n }\r\n\r\n /**\r\n * Clean up memory usage\r\n */\r\n function destroy() {\r\n var i = series.length;\r\n\r\n // remove events\r\n //removeEvent(win, 'resize', updatePosition);\r\n removeEvent(win, 'unload', destroy);\r\n removeEvent(chart);\r\n\r\n each(axes, function (axis) {\r\n removeEvent(axis);\r\n });\r\n\r\n // destroy each series\r\n while (i--) {\r\n series[i].destroy();\r\n }\r\n\r\n // remove all SVG\r\n container.innerHTML = '';\r\n\r\n // IE6 leak \r\n container = null;\r\n\r\n // memory and CPU leak\r\n clearInterval(tooltipInterval);\r\n\r\n for (i in chart) {\r\n delete chart[i];\r\n }\r\n }\r\n /**\r\n * Prepare for first rendering after all data are loaded\r\n */\r\n function firstRender() {\r\n\r\n // VML namespaces can't be added until after complete. Listening\r\n // for Perini's doScroll hack is not enough.\r\n var onreadystatechange = 'onreadystatechange';\r\n if (isIE && doc.readyState != 'complete') {\r\n doc.attachEvent(onreadystatechange, function () {\r\n doc.detachEvent(onreadystatechange, arguments.callee);\r\n firstRender();\r\n });\r\n return;\r\n }\r\n\r\n // create the container\r\n getContainer();\r\n\r\n\r\n // Initialize the series\r\n each(options.series || [], function (serieOptions) {\r\n initSeries(serieOptions);\r\n });\r\n\r\n // Set the common inversion and transformation for inverted series after initSeries\r\n chart.inverted = inverted = pick(inverted, options.chart.inverted);\r\n chart.plotSizeX = plotSizeX = inverted ? plotHeight : plotWidth;\r\n chart.plotSizeY = plotSizeY = inverted ? plotWidth : plotHeight;\r\n\r\n // depends on inverted\t\r\n chart.tracker = tracker = new MouseTracker(chart, options.tooltip);\r\n\r\n getAxes();\r\n\r\n\r\n // Prepare for the axis sizes\r\n each(series, function (serie) {\r\n serie.translate();\r\n serie.setTooltipPoints();\r\n });\r\n\r\n chart.render = render;\r\n\r\n render();\r\n fireEvent(chart, 'load');\r\n }\r\n\r\n\r\n\r\n //updatePosition(container);\r\n\r\n\r\n // Set to zero for each new chart\r\n colorCounter = 0;\r\n symbolCounter = 0;\r\n\r\n // Update position on resize and scroll\r\n //addEvent(win, 'resize', updatePosition);\r\n\r\n // Destroy the chart and free up memory. \r\n addEvent(win, 'unload', destroy);\r\n\r\n // Chart event handlers\r\n if (chartEvents) {\r\n for (eventType in chartEvents) {\r\n addEvent(chart, eventType, chartEvents[eventType]);\r\n }\r\n }\r\n\r\n\r\n chart.options = options;\r\n chart.series = series;\r\n //chart.container = container;\r\n\r\n\r\n\r\n // API methods\r\n chart.addSeries = addSeries;\r\n chart.destroy = destroy;\r\n chart.get = get;\r\n chart.getAlignment = getAlignment;\r\n chart.getSelectedPoints = getSelectedPoints;\r\n chart.getSelectedSeries = getSelectedSeries;\r\n chart.hideLoading = hideLoading;\r\n chart.isInsidePlot = isInsidePlot;\r\n chart.redraw = redraw;\r\n chart.showLoading = showLoading;\r\n //chart.updatePosition = updatePosition;\r\n\r\n\r\n\r\n\r\n firstRender();\r\n}\r\n\r\n/**\r\n* The Point object and prototype. Inheritable and used as base for PiePoint\r\n*/\r\nvar Point = function () { };\r\nPoint.prototype = {\r\n\r\n /**\r\n * Initialize the point\r\n * @param {Object} series The series object containing this point\r\n * @param {Object} options The data in either number, array or object format\r\n */\r\n init: function (series, options) {\r\n var point = this,\r\n\t\t\tdefaultColors;\r\n point.series = series;\r\n point.applyOptions(options);\r\n point.pointAttr = {};\r\n\r\n if (series.options.colorByPoint) {\r\n defaultColors = defaultOptions.colors;\r\n if (!point.options) {\r\n point.options = {};\r\n }\r\n point.color = point.options.color = point.color || defaultColors[colorCounter++];\r\n\r\n // loop back to zero\r\n if (colorCounter >= defaultColors.length) {\r\n colorCounter = 0;\r\n }\r\n }\r\n\r\n return point;\r\n },\r\n /**\r\n * Apply the options containing the x and y data and possible some extra properties.\r\n * This is called on point init or from point.update.\r\n * \r\n * @param {Object} options\r\n */\r\n applyOptions: function (options) {\r\n var point = this,\r\n\t\t\tseries = point.series;\r\n\r\n\r\n // onedimensional array input\r\n if (typeof options == 'number' || options === null) {\r\n point.y = options;\r\n }\r\n\r\n // object input\r\n else if (typeof options == 'object' && typeof options.length != 'number') {\r\n\r\n // copy options directly to point\r\n extend(point, options);\r\n point.options = options;\r\n }\r\n\r\n // categorized data with name in first position\r\n else if (typeof options[0] == 'string') {\r\n point.name = options[0];\r\n point.y = options[1];\r\n }\r\n\r\n // two-dimentional array\r\n else if (typeof options[0] == 'number') {\r\n point.x = options[0];\r\n point.y = options[1];\r\n }\r\n\r\n /* \r\n * If no x is set by now, get auto incremented value. All points must have an\r\n * x value, however the y value can be null to create a gap in the series\r\n */\r\n if (point.x === UNDEFINED) {\r\n point.x = series.autoIncrement();\r\n }\r\n },\r\n\r\n /**\r\n * Destroy a point to clear memory. Its reference still stays in series.data.\r\n */\r\n destroy: function () {\r\n var point = this,\r\n\t\t\tprop;\r\n\r\n if (point == point.series.chart.hoverPoint) {\r\n point.onMouseOut();\r\n }\r\n\r\n // remove all events\r\n removeEvent(point);\r\n\r\n\r\n each(['dataLabel', 'graphic', 'tracker', 'group'], function (prop) {\r\n if (point[prop]) {\r\n point[prop].destroy();\r\n }\r\n });\r\n\r\n\r\n if (point.legendItem) { // pies have legend items\r\n point.series.chart.legend.destroyItem(point);\r\n }\r\n\r\n for (prop in point) {\r\n point[prop] = null;\r\n }\r\n\r\n },\r\n\r\n /**\r\n * Toggle the selection status of a point\r\n * @param {Boolean} selected Whether to select or unselect the point.\r\n * @param {Boolean} accumulate Whether to add to the previous selection. By default,\r\n * this happens if the control key (Cmd on Mac) was pressed during clicking.\r\n */\r\n select: function (selected, accumulate) {\r\n var point = this,\r\n\t\t\tseries = point.series,\r\n\t\t\tchart = series.chart;\r\n\r\n point.selected = selected = pick(selected, !point.selected);\r\n\r\n //series.isDirty = true;\r\n point.firePointEvent(selected ? 'select' : 'unselect');\r\n\r\n point.setState(SELECT_STATE);\r\n\r\n // unselect all other points unless Ctrl or Cmd + click\r\n if (!accumulate) {\r\n each(chart.getSelectedPoints(), function (loopPoint) {\r\n if (loopPoint.selected && loopPoint != point) {\r\n loopPoint.selected = false;\r\n loopPoint.setState(NORMAL_STATE);\r\n loopPoint.firePointEvent('unselect');\r\n }\r\n });\r\n }\r\n\r\n },\r\n\r\n onMouseOver: function () {\r\n var point = this,\r\n\t\t\tchart = point.series.chart,\r\n\t\t\ttooltip = chart.tooltip,\r\n\t\t\thoverPoint = chart.hoverPoint;\r\n\r\n // set normal state to previous series\r\n if (hoverPoint && hoverPoint != point) {\r\n hoverPoint.onMouseOut();\r\n }\r\n\r\n // trigger the event\r\n point.firePointEvent('mouseOver');\r\n\r\n // update the tooltip\r\n if (tooltip) {\r\n tooltip.refresh(point);\r\n }\r\n\r\n // hover this\r\n point.setState(HOVER_STATE);\r\n chart.hoverPoint = point;\r\n },\r\n\r\n onMouseOut: function () {\r\n var point = this;\r\n point.firePointEvent('mouseOut');\r\n\r\n point.setState(NORMAL_STATE);\r\n point.series.chart.hoverPoint = null;\r\n },\r\n\r\n /**\r\n * Update the point with new options (typically x/y data) and optionally redraw the series.\r\n * \r\n * @param {Object} options Point options as defined in the series.data array\r\n * @param {Boolean} redraw Whether to redraw the chart or wait for an explicit call\r\n * \r\n */\r\n update: function (options, redraw) {\r\n var point = this,\r\n\t\t\tseries = point.series;\r\n redraw = pick(redraw, true);\r\n\r\n // fire the event with a default handler of doing the update\r\n point.firePointEvent('update', { options: options }, function () {\r\n\r\n point.applyOptions(options);\r\n\r\n // redraw\r\n series.isDirty = true;\r\n if (redraw) {\r\n series.chart.redraw();\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Remove a point and optionally redraw the series and if necessary the axes\r\n * @param {Boolean} redraw Whether to redraw the chart or wait for an explicit call\r\n */\r\n remove: function (redraw) {\r\n var point = this,\r\n\t\t\tseries = point.series,\r\n\t\t\tchart = series.chart,\r\n\t\t\tdata = series.data,\r\n\t\t\ti = data.length;\r\n\r\n redraw = pick(redraw, true);\r\n\r\n // fire the event with a default handler of removing the point\t\t\t\r\n point.firePointEvent('remove', null, function () {\r\n\r\n // loop through the data to locate the point and remove it\r\n while (i--) {\r\n if (data[i] == point) {\r\n data.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n point.destroy();\r\n\r\n\r\n // redraw\r\n series.isDirty = true;\r\n if (redraw) {\r\n chart.redraw();\r\n }\r\n });\r\n\r\n\r\n },\r\n\r\n /**\r\n * Fire an event on the Point object. Must not be renamed to fireEvent, as this\r\n * causes a name clash in MooTools\r\n * @param {String} eventType\r\n * @param {Object} eventArgs Additional event arguments\r\n * @param {Function} defaultFunction Default event handler\r\n */\r\n firePointEvent: function (eventType, eventArgs, defaultFunction) {\r\n var point = this,\r\n\t\t\tseries = this.series,\r\n\t\t\tseriesOptions = series.options;\r\n\r\n // load event handlers on demand to save time on mouseover/out\r\n if (seriesOptions.point.events[eventType] || (\r\n\t\t\t\tpoint.options && point.options.events && point.options.events[eventType])) {\r\n this.importEvents();\r\n }\r\n\r\n // add default handler if in selection mode\r\n if (eventType == 'click' && seriesOptions.allowPointSelect) {\r\n defaultFunction = function (event) {\r\n // Control key is for Windows, meta (= Cmd key) for Mac, Shift for Opera\r\n point.select(null, event.ctrlKey || event.metaKey || event.shiftKey);\r\n };\r\n }\r\n\r\n fireEvent(this, eventType, eventArgs, defaultFunction);\r\n },\r\n /**\r\n * Import events from the series' and point's options. Only do it on \r\n * demand, to save processing time on hovering.\r\n */\r\n importEvents: function () {\r\n if (!this.hasImportedEvents) {\r\n var point = this,\r\n\t\t\t\toptions = merge(point.series.options.point, point.options),\r\n\t\t\t\tevents = options.events,\r\n\t\t\t\teventType;\r\n\r\n point.events = events;\r\n\r\n for (eventType in events) {\r\n addEvent(point, eventType, events[eventType]);\r\n }\r\n this.hasImportedEvents = true;\r\n }\r\n },\r\n\r\n /**\r\n * Set the point's state\r\n * @param {String} state\r\n */\r\n setState: function (state) {\r\n var point = this,\r\n\t\t\tseries = point.series,\r\n\t\t\tstateOptions = series.options.states,\r\n\t\t\tmarkerOptions = series.options.marker,\r\n\t\t\tnormalDisabled = markerOptions && !markerOptions.enabled,\r\n\t\t\tmarkerStateOptions = markerOptions && markerOptions.states[state],\r\n\t\t\tstateDisabled = markerStateOptions && markerStateOptions.enabled === false,\r\n\t\t\tchart = series.chart,\r\n\t\t\tpointAttr = point.pointAttr;\r\n\r\n if (!state) {\r\n state = NORMAL_STATE; // empty string\r\n }\r\n\r\n if (\r\n // selected points don't respond to hover\r\n\t\t\t\t(point.selected && state != SELECT_STATE) ||\r\n // series' state options is disabled\r\n\t\t\t\t(stateOptions[state] && stateOptions[state].enabled === false) ||\r\n // point marker's state options is disabled\r\n //(!state && normalDisabled)\r\n\t\t\t\t(state && (stateDisabled || normalDisabled && !markerStateOptions.enabled))\r\n\r\n\t\t\t) {\r\n return;\r\n }\r\n\r\n\r\n\r\n\r\n // if a graphic is not applied to each point in the normal state, create a shared\r\n // graphic for the hover state\r\n if (state && !point.graphic) {\r\n if (!series.stateMarkerGraphic) {\r\n series.stateMarkerGraphic = chart.renderer.circle(\r\n\t\t\t\t\t0, 0, pointAttr[state].r\r\n\t\t\t\t)\r\n\t\t\t\t.attr(pointAttr[state])\r\n\t\t\t\t.add(series.group);\r\n }\r\n\r\n series.stateMarkerGraphic.translate(\r\n\t\t\t\tpoint.plotX,\r\n\t\t\t\tpoint.plotY\r\n\t\t\t);\r\n\r\n // else, apply hover styles to the existing point\r\n } else if (point.graphic) {\r\n point.graphic.attr(pointAttr[state]);\r\n }\r\n\r\n },\r\n\r\n setTooltipText: function () {\r\n var point = this;\r\n point.tooltipText = point.series.chart.options.tooltip.formatter.call({\r\n series: point.series,\r\n point: point,\r\n x: point.category,\r\n y: point.y,\r\n percentage: point.percentage,\r\n total: point.total || point.stackTotal\r\n });\r\n }\r\n};\r\n\r\n/**\r\n* The base function which all other series types inherit from\r\n* @param {Object} chart\r\n* @param {Object} options\r\n*/\r\nvar Series = function () { };\r\n\r\nSeries.prototype = {\r\n\r\n isCartesian: true,\r\n type: 'line',\r\n pointClass: Point,\r\n pointAttrToOptions: { // mapping between SVG attributes and the corresponding options\r\n stroke: 'lineColor',\r\n 'stroke-width': 'lineWidth',\r\n fill: 'fillColor',\r\n r: 'radius'\r\n },\r\n init: function (chart, options) {\r\n var series = this,\r\n\t\t\teventType,\r\n\t\t\tevents,\r\n //pointEvent,\r\n\t\t\tindex = chart.series.length;\r\n\r\n series.chart = chart;\r\n options = series.setOptions(options); // merge with plotOptions\r\n\r\n // set some variables\r\n extend(series, {\r\n index: index,\r\n options: options,\r\n name: options.name || 'Series ' + (index + 1),\r\n state: NORMAL_STATE,\r\n pointAttr: {},\r\n visible: options.visible !== false, // true by default\r\n selected: options.selected === true // false by default\r\n });\r\n\r\n // register event listeners\r\n events = options.events;\r\n for (eventType in events) {\r\n addEvent(series, eventType, events[eventType]);\r\n }\r\n\r\n series.getColor();\r\n series.getSymbol();\r\n\r\n // set the data\r\n series.setData(options.data, false);\r\n\r\n },\r\n\r\n\r\n /**\r\n * Return an auto incremented x value based on the pointStart and pointInterval options. \r\n * This is only used if an x value is not given for the point that calls autoIncrement.\r\n */\r\n autoIncrement: function () {\r\n var series = this,\r\n\t\t\toptions = series.options,\r\n\t\t\txIncrement = series.xIncrement;\r\n\r\n xIncrement = pick(xIncrement, options.pointStart, 0);\r\n\r\n series.pointInterval = pick(series.pointInterval, options.pointInterval, 1);\r\n\r\n series.xIncrement = xIncrement + series.pointInterval;\r\n return xIncrement;\r\n },\r\n\r\n /**\r\n * Sort the data and remove duplicates \r\n */\r\n cleanData: function () {\r\n var series = this,\r\n\t\t\tdata = series.data,\r\n\t\t\ti;\r\n\r\n // sort the data points\r\n data.sort(function (a, b) {\r\n return (a.x - b.x);\r\n });\r\n\r\n // remove points with equal x values\r\n // record the closest distance for calculation of column widths\r\n for (i = data.length - 1; i >= 0; i--) {\r\n if (data[i - 1]) {\r\n if (data[i - 1].x == data[i].x) {\r\n data.splice(i - 1, 1); // remove the duplicate\r\n }\r\n\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Divide the series data into segments divided by null values. Also sort\r\n * the data points and delete duplicate values.\r\n */\r\n getSegments: function () {\r\n var lastNull = -1,\r\n\t\t\tsegments = [],\r\n\t\t\tdata = this.data;\r\n\r\n // create the segments\r\n each(data, function (point, i) {\r\n if (point.y === null) {\r\n if (i > lastNull + 1) {\r\n segments.push(data.slice(lastNull + 1, i));\r\n }\r\n lastNull = i;\r\n } else if (i == data.length - 1) { // last value\r\n segments.push(data.slice(lastNull + 1, i + 1));\r\n }\r\n });\r\n this.segments = segments;\r\n\r\n\r\n },\r\n /**\r\n * Set the series options by merging from the options tree\r\n * @param {Object} itemOptions\r\n */\r\n setOptions: function (itemOptions) {\r\n var plotOptions = this.chart.options.plotOptions,\r\n\t\t\toptions = merge(\r\n\t\t\t\tplotOptions[this.type],\r\n\t\t\t\tplotOptions.series,\r\n\t\t\t\titemOptions\r\n\t\t\t);\r\n\r\n return options;\r\n\r\n },\r\n /**\r\n * Get the series' color\r\n */\r\n getColor: function () {\r\n var defaultColors = this.chart.options.colors;\r\n this.color = this.options.color || defaultColors[colorCounter++] || '#0000ff';\r\n if (colorCounter >= defaultColors.length) {\r\n colorCounter = 0;\r\n }\r\n },\r\n /**\r\n * Get the series' symbol\r\n */\r\n getSymbol: function () {\r\n var defaultSymbols = this.chart.options.symbols,\r\n\t\t\tsymbol = this.options.marker.symbol || defaultSymbols[symbolCounter++];\r\n this.symbol = symbol;\r\n if (symbolCounter >= defaultSymbols.length) {\r\n symbolCounter = 0;\r\n }\r\n },\r\n\r\n /**\r\n * Add a point dynamically after chart load time\r\n * @param {Object} options Point options as given in series.data\r\n * @param {Boolean} redraw Whether to redraw the chart or wait for an explicit call\r\n * @param {Boolean} shift If shift is true, a point is shifted off the start \r\n * of the series as one is appended to the end.\r\n */\r\n addPoint: function (options, redraw, shift) {\r\n var series = this,\r\n\t\t\tdata = series.data,\r\n\t\t\tpoint = (new series.pointClass()).init(series, options);\r\n\r\n redraw = pick(redraw, true);\r\n\r\n data.push(point);\r\n if (shift) {\r\n data[0].remove(false);\r\n }\r\n\r\n\r\n // redraw\r\n series.isDirty = true;\r\n if (redraw) {\r\n series.chart.redraw();\r\n }\r\n },\r\n\r\n /**\r\n * Replace the series data with a new set of data\r\n * @param {Object} data\r\n * @param {Object} redraw\r\n */\r\n setData: function (data, redraw) {\r\n var series = this,\r\n\t\t\toldData = series.data,\r\n\t\t\tinitialColor = series.initialColor,\r\n\t\t\ti = oldData && oldData.length || 0;\r\n\r\n series.xIncrement = null; // reset for new data\r\n if (defined(initialColor)) { // reset colors for pie\r\n colorCounter = initialColor;\r\n }\r\n data = map(splat(data || []), function (pointOptions) {\r\n return (new series.pointClass()).init(series, pointOptions);\r\n });\r\n\r\n // destroy old points\r\n while (i--) {\r\n oldData[i].destroy();\r\n }\r\n\r\n // set the data\r\n series.data = data;\r\n\r\n series.cleanData();\r\n series.getSegments();\r\n\r\n // redraw\r\n series.isDirty = true;\r\n if (pick(redraw, true)) {\r\n series.chart.redraw();\r\n }\r\n },\r\n\r\n /**\r\n * Remove a series and optionally redraw the chart\r\n * \r\n * @param {Boolean} redraw Whether to redraw the chart or wait for an explicit call\r\n */\r\n\r\n remove: function (redraw) {\r\n var series = this,\r\n\t\t\tchart = series.chart;\r\n\r\n redraw = pick(redraw, true);\r\n\r\n if (!series.isRemoving) { /* prevent triggering native event in jQuery\r\n\t\t\t\t(calling the remove function from the remove event) */\r\n series.isRemoving = true;\r\n\r\n // fire the event with a default handler of removing the point\t\t\t\r\n fireEvent(series, 'remove', null, function () {\r\n\r\n\r\n // destroy elements\r\n series.destroy();\r\n\r\n\r\n // redraw\r\n chart.isDirty = true;\r\n if (redraw) {\r\n chart.redraw();\r\n }\r\n });\r\n\r\n }\r\n series.isRemoving = false;\r\n },\r\n\r\n /**\r\n * Translate data points from raw data values to chart specific positioning data\r\n * needed later in drawPoints, drawGraph and drawTracker. \r\n */\r\n translate: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\tstacking = series.options.stacking,\r\n\t\t\tcategories = series.xAxis.categories,\r\n\t\t\tyAxis = series.yAxis,\r\n\t\t\tstack = yAxis.stacks[series.type],\r\n\t\t\tdata = series.data,\r\n\t\t\ti = data.length;\r\n\r\n // do the translation\r\n while (i--) {\r\n var point = data[i],\r\n\t\t\t\txValue = point.x,\r\n\t\t\t\tyValue = point.y,\r\n\t\t\t\tyBottom,\r\n\t\t\t\tpointStack,\r\n\t\t\t\tpointStackTotal;\r\n point.plotX = series.xAxis.translate(xValue);\r\n\r\n // calculate the bottom y value for stacked series\r\n if (stacking && series.visible && stack[xValue]) {\r\n pointStack = stack[xValue];\r\n pointStackTotal = pointStack.total;\r\n pointStack.cum = yBottom = pointStack.cum - yValue; // start from top\r\n yValue = yBottom + yValue;\r\n\r\n if (stacking == 'percent') {\r\n yBottom = pointStackTotal ? yBottom * 100 / pointStackTotal : 0;\r\n yValue = pointStackTotal ? yValue * 100 / pointStackTotal : 0;\r\n }\r\n\r\n point.percentage = pointStackTotal ? point.y * 100 / pointStackTotal : 0;\r\n point.stackTotal = pointStackTotal;\r\n point.yBottom = yAxis.translate(yBottom, 0, 1);\r\n }\r\n\r\n // set the y value\r\n if (yValue !== null) {\r\n point.plotY = yAxis.translate(yValue, 0, 1);\r\n }\r\n\r\n // set client related positions for mouse tracking\r\n point.clientX = chart.inverted ?\r\n\t\t\t\tchart.plotHeight - point.plotX :\r\n\t\t\t\tpoint.plotX; // for mouse tracking\r\n\r\n // some API data\r\n point.category = categories && categories[point.x] !== UNDEFINED ?\r\n\t\t\t\tcategories[point.x] : point.x;\r\n\r\n }\r\n },\r\n /**\r\n * Memoize tooltip texts and positions\r\n */\r\n setTooltipPoints: function (renew) {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\tinverted = chart.inverted,\r\n\t\t\tdata = [],\r\n\t\t\tplotSize = (inverted ? chart.plotTop : chart.plotLeft) + chart.plotSizeX,\r\n\t\t\tlow,\r\n\t\t\thigh,\r\n\t\t\ttooltipPoints = []; // a lookup array for each pixel in the x dimension\r\n\r\n // renew\r\n if (renew) {\r\n series.tooltipPoints = null;\r\n }\r\n\r\n // concat segments to overcome null values\r\n each(series.segments, function (segment) {\r\n data = data.concat(segment);\r\n });\r\n\r\n // loop the concatenated data and apply each point to all the closest\r\n // pixel positions\r\n if (series.xAxis && series.xAxis.reversed) {\r\n data = data.reverse(); //reverseArray(data);\r\n }\r\n each(data, function (point, i) {\r\n\r\n\r\n if (!series.tooltipPoints) { // only create the text the first time, not on zoom\r\n point.setTooltipText();\r\n }\r\n\r\n low = data[i - 1] ? data[i - 1].high + 1 : 0;\r\n high = point.high = data[i + 1] ? (\r\n\t\t\t\tmathFloor((point.plotX + (data[i + 1] ?\r\n\t\t\t\t\tdata[i + 1].plotX : plotSize)) / 2)) :\r\n\t\t\t\t\tplotSize;\r\n\r\n while (low <= high) {\r\n tooltipPoints[inverted ? plotSize - low++ : low++] = point;\r\n }\r\n });\r\n series.tooltipPoints = tooltipPoints;\r\n },\r\n\r\n\r\n\r\n\r\n /**\r\n * Series mouse over handler\r\n */\r\n onMouseOver: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\thoverSeries = chart.hoverSeries,\r\n\t\t\tstateMarkerGraphic = series.stateMarkerGraphic;\r\n \r\n if (chart.mouseIsDown) {\r\n return;\r\n }\r\n\r\n if (stateMarkerGraphic) {\r\n stateMarkerGraphic.show();\r\n }\r\n\r\n // set normal state to previous series\r\n if (hoverSeries && hoverSeries != series) {\r\n hoverSeries.onMouseOut();\r\n }\r\n\r\n // trigger the event, but to save processing time, \r\n // only if defined\r\n if (series.options.events.mouseOver) {\r\n fireEvent(series, 'mouseOver');\r\n }\r\n\r\n\r\n // bring to front\r\n // Todo: optimize. This is one of two operations slowing down the tooltip in Firefox.\r\n // Can the tracking be done otherwise?\r\n if (series.tracker) {\r\n series.tracker.toFront();\r\n }\r\n\r\n // hover this\r\n series.setState(HOVER_STATE);\r\n chart.hoverSeries = series;\r\n\r\n },\r\n\r\n /**\r\n * Series mouse out handler\r\n */\r\n onMouseOut: function () {\r\n // trigger the event only if listeners exist\r\n var series = this,\r\n\t\t\toptions = series.options,\r\n\t\t\tchart = series.chart,\r\n\t\t\ttooltip = chart.tooltip,\r\n\t\t\thoverPoint = chart.hoverPoint;\r\n\r\n // trigger mouse out on the point, which must be in this series\r\n if (hoverPoint) {\r\n hoverPoint.onMouseOut();\r\n }\r\n\r\n // fire the mouse out event\r\n if (series && options.events.mouseOut) {\r\n fireEvent(series, 'mouseOut');\r\n }\r\n\r\n\r\n // hide the tooltip\r\n if (tooltip && !options.stickyTracking) {\r\n tooltip.hide();\r\n }\r\n\r\n // set normal state\r\n series.setState();\r\n chart.hoverSeries = null;\r\n },\r\n\r\n /**\r\n * Animate in the series\r\n */\r\n animate: function (init) {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\tclipRect = series.clipRect;\r\n if (init) { // initialize the animation\r\n if (!clipRect.isAnimating) { // apply it only for one of the series\r\n clipRect.attr('width', 0);\r\n clipRect.isAnimating = true;\r\n }\r\n\r\n } else { // run the animation\r\n clipRect.animate({\r\n width: chart.plotSizeX\r\n }, {\r\n complete: function () {\r\n clipRect.isAnimating = false;\r\n },\r\n duration: 1000\r\n });\r\n\r\n // delete this function to allow it only once\r\n this.animate = null;\r\n }\r\n },\r\n\r\n /**\r\n * Draw the markers\r\n */\r\n drawPoints: function () {\r\n var series = this,\r\n\t\t\tpointAttr,\r\n\t\t\tdata = series.data,\r\n\t\t\tchart = series.chart,\r\n\t\t\tplotX,\r\n\t\t\tplotY,\r\n\t\t\ti,\r\n\t\t\tpoint,\r\n\t\t\tradius,\r\n\t\t\tgraphic;\r\n\r\n if (series.options.marker.enabled) {\r\n i = data.length;\r\n while (i--) {\r\n point = data[i];\r\n plotX = point.plotX;\r\n plotY = point.plotY;\r\n graphic = point.graphic;\r\n\r\n // only draw the point if y is defined\r\n if (point.plotY !== UNDEFINED) {\r\n\r\n /* && removed this code because points stayed after zoom\r\n point.plotX >= 0 && point.plotX <= chart.plotSizeX &&\r\n point.plotY >= 0 && point.plotY <= chart.plotSizeY*/\r\n\r\n // shortcuts\r\n pointAttr = point.pointAttr[point.selected ? SELECT_STATE : NORMAL_STATE];\r\n radius = pointAttr.r;\r\n\r\n\r\n if (graphic) { // update\r\n graphic.attr({\r\n x: plotX,\r\n y: plotY,\r\n r: radius\r\n });\r\n } else {\r\n point.graphic = chart.renderer.symbol(\r\n\t\t\t\t\t\t\tpick(point.marker && point.marker.symbol, series.symbol),\r\n\t\t\t\t\t\t\tplotX,\r\n\t\t\t\t\t\t\tplotY,\r\n\t\t\t\t\t\t\tradius\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.attr(pointAttr)\r\n\t\t\t\t\t\t.add(series.group);\r\n }\r\n }\r\n }\r\n }\r\n\r\n },\r\n\r\n /**\r\n * Convert state properties from API naming conventions to SVG attributes\r\n * \r\n * @param {Object} options API options object\r\n * @param {Object} base1 SVG attribute object to inherit from\r\n * @param {Object} base2 Second level SVG attribute object to inherit from\r\n */\r\n convertAttribs: function (options, base1, base2, base3) {\r\n var conversion = this.pointAttrToOptions,\r\n\t\t\tattr,\r\n\t\t\toption,\r\n\t\t\tobj = {};\r\n\r\n options = options || {};\r\n base1 = base1 || {};\r\n base2 = base2 || {};\r\n base3 = base3 || {};\r\n\r\n for (attr in conversion) {\r\n option = conversion[attr];\r\n obj[attr] = pick(options[option], base1[attr], base2[attr], base3[attr]);\r\n }\r\n return obj;\r\n },\r\n\r\n /**\r\n * Get the state attributes. Each series type has its own set of attributes\r\n * that are allowed to change on a point's state change. Series wide attributes are stored for\r\n * all series, and additionally point specific attributes are stored for all \r\n * points with individual marker options. If such options are not defined for the point,\r\n * a reference to the series wide attributes is stored in point.pointAttr.\r\n */\r\n getAttribs: function () {\r\n var series = this,\r\n\t\t\tnormalOptions = series.options.marker || series.options,\r\n\t\t\tstateOptions = normalOptions.states,\r\n\t\t\tstateOptionsHover = stateOptions[HOVER_STATE],\r\n\t\t\tpointStateOptionsHover,\r\n\t\t\tnormalDefaults = {},\r\n\t\t\tseriesColor = series.color,\r\n\t\t\tdata = series.data,\r\n\t\t\ti,\r\n\t\t\tpoint,\r\n\t\t\tseriesPointAttr = [],\r\n\t\t\tpointAttr,\r\n\t\t\tpointAttrToOptions = series.pointAttrToOptions,\r\n\t\t\thasPointSpecificOptions;\r\n //chart = series.chart;\r\n\r\n // series type specific modifications\r\n if (series.options.marker) { // line, spline, area, areaspline, scatter\r\n\r\n // if no color is given for the point, use the general series color\r\n normalDefaults = {\r\n stroke: seriesColor,\r\n fill: seriesColor\r\n };\r\n\r\n // if no hover radius is given, default to normal radius + 2 \r\n stateOptionsHover.radius = stateOptionsHover.radius || normalOptions.radius + 2;\r\n stateOptionsHover.lineWidth = stateOptionsHover.lineWidth || normalOptions.lineWidth + 1;\r\n\r\n } else { // column, bar, pie\r\n\r\n // if no color is given for the point, use the general series color\r\n normalDefaults = {\r\n fill: seriesColor\r\n };\r\n\r\n // if no hover color is given, brighten the normal color\r\n stateOptionsHover.color = stateOptionsHover.color ||\r\n\t\t\t\tColor(stateOptionsHover.color || seriesColor)\r\n\t\t\t\t\t.brighten(stateOptionsHover.brightness).get();\r\n }\r\n\r\n // general point attributes for the series normal state\r\n seriesPointAttr[NORMAL_STATE] = series.convertAttribs(normalOptions, normalDefaults);\r\n\r\n // HOVER_STATE and SELECT_STATE states inherit from normal state except the default radius\r\n each([HOVER_STATE, SELECT_STATE], function (state) {\r\n seriesPointAttr[state] =\r\n\t\t\t\t\tseries.convertAttribs(stateOptions[state], seriesPointAttr[NORMAL_STATE]);\r\n });\r\n\r\n // set it\r\n series.pointAttr = seriesPointAttr;\r\n\r\n\r\n // Generate the point-specific attribute collections if specific point\r\n // options are given. If not, create a referance to the series wide point \r\n // attributes\r\n i = data.length;\r\n while (i--) {\r\n point = data[i];\r\n normalOptions = (point.options && point.options.marker) || point.options;\r\n hasPointSpecificOptions = false;\r\n\r\n // check if the point has specific visual options\r\n if (point.options) {\r\n for (var key in pointAttrToOptions) {\r\n if (normalOptions[pointAttrToOptions[key]]) {\r\n hasPointSpecificOptions = true;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n // a specific marker config object is defined for the individual point:\r\n // create it's own attribute collection\r\n if (hasPointSpecificOptions) {\r\n\r\n pointAttr = [];\r\n stateOptions = normalOptions.states || {}; // reassign for individual point\r\n pointStateOptionsHover = stateOptions[HOVER_STATE] = stateOptions[HOVER_STATE] || {};\r\n\r\n // if no hover color is given, brighten the normal color\r\n if (!series.options.marker) { // column, bar, point\r\n pointStateOptionsHover.color =\r\n\t\t\t\t\t\tColor(pointStateOptionsHover.color || point.options.color)\r\n\t\t\t\t\t\t\t.brighten(pointStateOptionsHover.brightness ||\r\n\t\t\t\t\t\t\t\tstateOptionsHover.brightness).get();\r\n\r\n }\r\n\r\n // normal point state inherits series wide normal state\r\n pointAttr[NORMAL_STATE] = series.convertAttribs(normalOptions, seriesPointAttr[NORMAL_STATE]);\r\n\r\n // inherit from point normal and series hover\r\n pointAttr[HOVER_STATE] = series.convertAttribs(\r\n\t\t\t\t\tstateOptions[HOVER_STATE],\r\n\t\t\t\t\tseriesPointAttr[HOVER_STATE],\r\n\t\t\t\t\tpointAttr[NORMAL_STATE]\r\n\t\t\t\t);\r\n // inherit from point normal and series hover\r\n pointAttr[SELECT_STATE] = series.convertAttribs(\r\n\t\t\t\t\tstateOptions[SELECT_STATE],\r\n\t\t\t\t\tseriesPointAttr[SELECT_STATE],\r\n\t\t\t\t\tpointAttr[NORMAL_STATE]\r\n\t\t\t\t);\r\n\r\n\r\n\r\n // no marker config object is created: copy a reference to the series-wide\r\n // attribute collection\r\n } else {\r\n pointAttr = seriesPointAttr;\r\n }\r\n\r\n point.pointAttr = pointAttr;\r\n\r\n }\r\n\r\n },\r\n\r\n\r\n /**\r\n * Clear DOM objects and free up memory\r\n */\r\n destroy: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\tchartSeries = chart.series,\r\n\t\t\tclipRect = series.clipRect,\r\n\t\t\tprop;\r\n\r\n // remove all events\r\n removeEvent(series);\r\n\r\n // remove legend items\r\n if (series.legendItem) {\r\n series.chart.legend.destroyItem(series);\r\n }\r\n\r\n // destroy all points with their elements\r\n each(series.data, function (point) {\r\n point.destroy();\r\n });\r\n\r\n // destroy all SVGElements associated to the series\r\n each(['area', 'graph', 'dataLabelsGroup', 'group', 'tracker'], function (prop) {\r\n if (series[prop]) {\r\n series[prop].destroy();\r\n }\r\n });\r\n if (clipRect && clipRect != series.chart.clipRect) {\r\n clipRect.destroy();\r\n }\r\n\r\n // remove from hoverSeries\r\n if (chart.hoverSeries == series) {\r\n chart.hoverSeries = null;\r\n }\r\n\r\n // loop through the chart series to locate the series and remove it\r\n each(chartSeries, function (existingSeries, i) {\r\n if (existingSeries == series) {\r\n chartSeries.splice(i, 1);\r\n }\r\n });\r\n\r\n // clear all members\r\n for (prop in series) {\r\n delete series[prop];\r\n }\r\n },\r\n\r\n /**\r\n * Draw the data labels\r\n */\r\n drawDataLabels: function () {\r\n if (this.options.dataLabels.enabled) {\r\n var series = this,\r\n\t\t\t\tx,\r\n\t\t\t\ty,\r\n\t\t\t\tdata = series.data,\r\n\t\t\t\toptions = series.options.dataLabels,\r\n\t\t\t\tstr,\r\n\t\t\t\tdataLabelsGroup = series.dataLabelsGroup,\r\n\t\t\t\tchart = series.chart,\r\n\t\t\t\tinverted = chart.inverted,\r\n\t\t\t\tseriesType = series.type,\r\n\t\t\t\tcolor,\r\n\t\t\t\talign;\r\n\r\n // create a separate group for the data labels to avoid rotation\r\n if (!dataLabelsGroup) {\r\n dataLabelsGroup = series.dataLabelsGroup =\r\n\t\t\t\t\tchart.renderer.g(PREFIX + 'data-labels')\r\n\t\t\t\t\t\t.attr({\r\n\t\t\t\t\t\t visibility: series.visible ? VISIBLE : HIDDEN,\r\n\t\t\t\t\t\t zIndex: 4\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.translate(chart.plotLeft, chart.plotTop)\r\n\t\t\t\t\t\t.add();\r\n }\r\n\r\n // determine the color\r\n color = options.color;\r\n if (color == 'auto') { // 1.0 backwards compatibility\r\n color = null;\r\n }\r\n options.style.color = pick(color, series.color);\r\n\r\n // make the labels for each point\r\n each(data, function (point) {\r\n var plotX = pick(point.barX, point.plotX),\r\n\t\t\t\t\tplotY = point.plotY,\r\n\t\t\t\t\ttooltipPos = point.tooltipPos,\r\n\t\t\t\t\tpointLabel = point.dataLabel;\r\n\r\n // destroy old data label after update\r\n if (pointLabel) {\r\n point.dataLabel = pointLabel.destroy();\r\n }\r\n\r\n // get the string\r\n str = options.formatter.call({\r\n x: point.x,\r\n y: point.y,\r\n series: series,\r\n point: point,\r\n percentage: point.percentage,\r\n total: point.total || point.stackTotal\r\n });\r\n x = (inverted ? chart.plotWidth - plotY : plotX) + options.x;\r\n y = (inverted ? chart.plotHeight - plotX : plotY) + options.y;\r\n\r\n // special case for pies\r\n if (tooltipPos) {\r\n x = tooltipPos[0] + options.x;\r\n y = tooltipPos[1] + options.y;\r\n }\r\n // in columns, align the string to the column\r\n align = options.align;\r\n if (seriesType == 'column') {\r\n x += {\r\n center: point.barW / 2,\r\n right: point.barW\r\n }[align] || 0;\r\n }\r\n\r\n if (str) {\r\n point.dataLabel = chart.renderer.text(\r\n\t\t\t\t\t\tstr,\r\n\t\t\t\t\t\tx,\r\n\t\t\t\t\t\ty,\r\n\t\t\t\t\t\toptions.style,\r\n\t\t\t\t\t\toptions.rotation,\r\n\t\t\t\t\t\talign\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.attr({ zIndex: 1 })\r\n\t\t\t\t\t.add(dataLabelsGroup); // pies have point.group\r\n }\r\n\r\n if (series.drawConnector) {\r\n series.drawConnector(point);\r\n }\r\n\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Draw the actual graph\r\n */\r\n drawGraph: function (state) {\r\n var series = this,\r\n\t\t\toptions = series.options,\r\n\t\t\tchart = series.chart,\r\n\t\t\tgraph = series.graph,\r\n\t\t\tgraphPath = [],\r\n\t\t\tfillColor,\r\n\t\t\tarea = series.area,\r\n\t\t\tgroup = series.group,\r\n\t\t\tcolor = options.lineColor || series.color,\r\n\t\t\tlineWidth = options.lineWidth,\r\n\t\t\tsegmentPath,\r\n\t\t\trenderer = chart.renderer,\r\n\t\t\ttranslatedThreshold = series.yAxis.getThreshold(options.threshold || 0),\r\n\t\t\tuseArea = /^area/.test(series.type),\r\n\t\t\tareaPath = [];\r\n\r\n\r\n // divide into segments and build graph and area paths\r\n each(series.segments, function (segment) {\r\n if (segment.length > 0) {\r\n segmentPath = [];\r\n\r\n // build the segment line\r\n each(segment, function (point, i) {\r\n\r\n // moveTo or lineTo\r\n if (i < 2) {\r\n segmentPath.push([M, L][i]);\r\n }\r\n\r\n // step line?\r\n if (i && options.step) {\r\n var lastPoint = segment[i - 1];\r\n segmentPath.push(\r\n\t\t\t\t\t\t\tpoint.plotX,\r\n\t\t\t\t\t\t\tlastPoint.plotY\r\n\t\t\t\t\t\t);\r\n }\r\n\r\n // normal line to next point\r\n segmentPath.push(\r\n\t\t\t\t\t\tpoint.plotX,\r\n\t\t\t\t\t\tpoint.plotY\r\n\t\t\t\t\t);\r\n });\r\n graphPath = graphPath.concat(segmentPath);\r\n\r\n // build the area\r\n if (useArea && segment.length > 1) {\r\n var areaSegmentPath = [],\r\n\t\t\t\t\t\ti,\r\n\t\t\t\t\t\tsegLength = segmentPath.length;\r\n for (i = 0; i < segLength; i++) {\r\n areaSegmentPath.push(segmentPath[i]);\r\n }\r\n if (options.stacking && series.type != 'areaspline') {\r\n // follow stack back. Todo: implement areaspline\r\n for (i = segment.length - 1; i >= 0; i--) {\r\n areaSegmentPath.push(segment[i].plotX, segment[i].yBottom);\r\n }\r\n\r\n } else { // follow zero line back\r\n areaSegmentPath.push(\r\n\t\t\t\t\t\t\tsegment[segment.length - 1].plotX,\r\n\t\t\t\t\t\t\ttranslatedThreshold,\r\n\t\t\t\t\t\t\tsegment[0].plotX,\r\n\t\t\t\t\t\t\ttranslatedThreshold,\r\n\t\t\t\t\t\t\t'z'\r\n\t\t\t\t\t\t);\r\n }\r\n areaPath = areaPath.concat(areaSegmentPath);\r\n }\r\n }\r\n });\r\n\r\n series.graphPath = graphPath; // used in drawTracker\r\n\r\n // draw the graph\r\n if (graph) {\r\n graph.attr({ d: graphPath });\r\n } else {\r\n if (lineWidth) {\r\n series.graph = renderer.path(graphPath).\r\n\t\t\t\t\tattr({\r\n\t\t\t\t\t 'stroke': color,\r\n\t\t\t\t\t 'stroke-width': lineWidth + PX\r\n\t\t\t\t\t}).add(group).shadow(options.shadow);\r\n }\r\n }\r\n\r\n\r\n // draw the area if area series or areaspline\r\n if (useArea) {\r\n fillColor = pick(\r\n\t\t\t\toptions.fillColor,\r\n\t\t\t\tColor(series.color).setOpacity(options.fillOpacity || 0.75).get()\r\n\t\t\t);\r\n if (area) {\r\n area.attr({ d: areaPath });\r\n\r\n } else {\r\n // draw the area\r\n series.area = series.chart.renderer.path(areaPath).\r\n\t\t\t\t\tattr({\r\n\t\t\t\t\t fill: fillColor\r\n\t\t\t\t\t}).add(series.group);\r\n }\r\n }\r\n },\r\n\r\n\r\n /**\r\n * Render the graph and markers\r\n */\r\n render: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\tgroup,\r\n\t\t\tdoAnimation = series.options.animation && series.animate,\r\n\t\t\trenderer = chart.renderer;\r\n\r\n\r\n // Add plot area clipping rectangle. If this is before chart.hasRendered,\r\n // create one shared clipRect. \r\n if (!series.clipRect) {\r\n series.clipRect = !chart.hasRendered && chart.clipRect ?\r\n\t\t\t\tchart.clipRect :\r\n\t\t\trenderer.clipRect(0, 0, chart.plotSizeX, chart.plotSizeY);\r\n if (!chart.clipRect) {\r\n chart.clipRect = series.clipRect;\r\n }\r\n }\r\n\r\n\r\n // the group\r\n if (!series.group) {\r\n group = series.group = renderer.g('series');\r\n\r\n if (chart.inverted) {\r\n group.attr({\r\n width: chart.plotWidth,\r\n height: chart.plotHeight\r\n }).invert();\r\n }\r\n group.clip(series.clipRect)\r\n\t\t\t\t.attr({\r\n\t\t\t\t visibility: series.visible ? VISIBLE : HIDDEN,\r\n\t\t\t\t zIndex: 3\r\n\t\t\t\t})\r\n\t\t\t\t.translate(chart.plotLeft, chart.plotTop)\r\n\t\t\t\t.add();\r\n }\r\n\r\n\r\n series.drawDataLabels();\r\n\r\n // initiate the animation\r\n if (doAnimation) {\r\n series.animate(true);\r\n }\r\n\r\n // cache attributes for shapes\r\n series.getAttribs();\r\n\r\n // draw the graph if any\r\n if (series.drawGraph) {\r\n series.drawGraph();\r\n }\r\n\r\n // draw the points\r\n series.drawPoints();\r\n\r\n // draw the mouse tracking area\r\n if (series.options.enableMouseTracking !== false) {\r\n series.drawTracker();\r\n }\r\n\r\n // run the animation\r\n if (doAnimation) {\r\n series.animate();\r\n }\r\n\r\n\r\n series.isDirty = false; // means data is in accordance with what you see\r\n\r\n },\r\n\r\n /**\r\n * Redraw the series after an update in the axes.\r\n */\r\n redraw: function () {\r\n var series = this;\r\n\r\n series.translate();\r\n series.setTooltipPoints(true);\r\n series.render();\r\n },\r\n\r\n /**\r\n * Set the state of the graph\r\n */\r\n setState: function (state) {\r\n var series = this,\r\n\t\t\toptions = series.options,\r\n\t\t\tgraph = series.graph,\r\n\t\t\tstateOptions = options.states,\r\n\t\t\tstateMarkerGraphic = series.stateMarkerGraphic,\r\n\t\t\tlineWidth = options.lineWidth;\r\n\r\n state = state || NORMAL_STATE;\r\n\r\n if (series.state != state) {\r\n series.state = state;\r\n\r\n if (stateOptions[state] && stateOptions[state].enabled === false) {\r\n return;\r\n }\r\n\r\n if (state) {\r\n lineWidth = stateOptions[state].lineWidth || lineWidth;\r\n } else if (stateMarkerGraphic) {\r\n stateMarkerGraphic.hide();\r\n }\r\n\r\n if (graph) {\r\n graph.animate({\r\n 'stroke-width': lineWidth\r\n }, state ? 0 : 500);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Set the visibility of the graph\r\n * \r\n * @param vis {Boolean} True to show the series, false to hide. If UNDEFINED,\r\n * the visibility is toggled.\r\n */\r\n setVisible: function (vis, redraw) {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\tlegendItem = series.legendItem,\r\n\t\t\tseriesGroup = series.group,\r\n\t\t\tseriesTracker = series.tracker,\r\n\t\t\tdataLabelsGroup = series.dataLabelsGroup,\r\n\t\t\tshowOrHide,\r\n\t\t\ti,\r\n\t\t\tdata = series.data,\r\n\t\t\tpoint,\r\n\t\t\tignoreHiddenSeries = chart.options.chart.ignoreHiddenSeries,\r\n\t\t\toldVisibility = series.visible;\r\n\r\n // if called without an argument, toggle visibility\r\n series.visible = vis = vis === UNDEFINED ? !oldVisibility : vis;\r\n showOrHide = vis ? 'show' : 'hide';\r\n\r\n if (vis) {\r\n series.isDirty = ignoreHiddenSeries; // when series is initially hidden\r\n }\r\n\r\n // show or hide series\r\n if (seriesGroup) { // pies don't have one\r\n seriesGroup[showOrHide]();\r\n }\r\n\r\n // show or hide trackers\r\n if (seriesTracker) {\r\n seriesTracker[showOrHide]();\r\n } else {\r\n i = data.length;\r\n while (i--) {\r\n point = data[i];\r\n if (point.tracker) {\r\n point.tracker[showOrHide]();\r\n }\r\n }\r\n }\r\n\r\n\r\n if (dataLabelsGroup) {\r\n dataLabelsGroup[showOrHide]();\r\n }\r\n\r\n if (legendItem) {\r\n chart.legend.colorizeItem(series, vis);\r\n }\r\n\r\n\r\n // rescale\r\n if (ignoreHiddenSeries) {\r\n\r\n // in a stack, all other series are affected\r\n if (series.options.stacking) {\r\n each(chart.series, function (otherSeries) {\r\n if (otherSeries.options.stacking && otherSeries.visible) {\r\n otherSeries.isDirty = true;\r\n }\r\n });\r\n }\r\n\r\n }\r\n if (redraw !== false) {\r\n chart.redraw();\r\n }\r\n\r\n fireEvent(series, showOrHide);\r\n },\r\n\r\n /**\r\n * Show the graph\r\n */\r\n show: function () {\r\n this.setVisible(true);\r\n },\r\n\r\n /**\r\n * Hide the graph\r\n */\r\n hide: function () {\r\n this.setVisible(false);\r\n },\r\n\r\n\r\n /**\r\n * Set the selected state of the graph\r\n * \r\n * @param selected {Boolean} True to select the series, false to unselect. If\r\n * UNDEFINED, the selection state is toggled.\r\n */\r\n select: function (selected) {\r\n var series = this;\r\n // if called without an argument, toggle\r\n series.selected = selected = (selected === UNDEFINED) ? !series.selected : selected;\r\n\r\n if (series.checkbox) {\r\n series.checkbox.checked = selected;\r\n }\r\n\r\n fireEvent(series, selected ? 'select' : 'unselect');\r\n },\r\n\r\n\r\n /**\r\n * Draw the tracker object that sits above all data labels and markers to\r\n * track mouse events on the graph or points. For the line type charts\r\n * the tracker uses the same graphPath, but with a greater stroke width\r\n * for better control.\r\n */\r\n drawTracker: function () {\r\n var series = this,\r\n\t\t\toptions = series.options,\r\n\t\t\ttrackerPath = series.graphPath,\r\n\t\t\tchart = series.chart,\r\n\t\t\tsnap = chart.options.tooltip.snap,\r\n\t\t\ttracker = series.tracker,\r\n\t\t\tcursor = options.cursor,\r\n\t\t\tcss = cursor && { cursor: cursor },\r\n\t\t\ti;\r\n\r\n // if only one series, use the whole plot area as tracker\r\n // problem: can't put legend inside plot area\r\n /*if (isSingleSeries) {\r\n trackerPath = [\r\n M,\r\n 0, 0,\r\n L,\r\n 0, plotHeight,\r\n plotWidth, plotHeight,\r\n plotWidth, 0,\r\n 'Z'\r\n ]; \r\n }*/\r\n\r\n // handle single points\r\n for (i = 0; i < trackerPath.length; i++) {\r\n if (trackerPath[i] == M && trackerPath[i + 3] == M) { // is single point\r\n trackerPath[i + 1] -= 2; // move x value left\r\n trackerPath.splice(i + 3, 0, L, trackerPath[i + 1] + 4, trackerPath[i + 2]);\r\n }\r\n }\r\n\r\n // draw the tracker\r\n if (tracker) { // update\r\n tracker.attr({ d: trackerPath });\r\n\r\n } else { // create\r\n series.tracker = chart.renderer.path(trackerPath).\r\n\t\t\t\tattr({\r\n\t\t\t\t isTracker: true,\r\n\t\t\t\t stroke: TRACKER_FILL,\r\n\t\t\t\t //fill: isSingleSeries ? TRACKER_FILL : NONE,\r\n\t\t\t\t fill: NONE,\r\n\t\t\t\t 'stroke-width': options.lineWidth + 2 * snap,\r\n\t\t\t\t 'stroke-linecap': 'round',\r\n\t\t\t\t visibility: series.visible ? VISIBLE : HIDDEN,\r\n\t\t\t\t zIndex: 1\r\n\t\t\t\t})\r\n\t\t\t\t.on('mouseover', function () {\r\n\t\t\t\t if (chart.hoverSeries != series) {\r\n\t\t\t\t series.onMouseOver();\r\n\t\t\t\t }\r\n\t\t\t\t})\r\n\t\t\t\t.on('mouseout', function () {\r\n\t\t\t\t if (!options.stickyTracking) {\r\n\t\t\t\t series.onMouseOut();\r\n\t\t\t\t }\r\n\t\t\t\t})\r\n\t\t\t\t.css(css)\r\n\t\t\t\t.add(chart.trackerGroup);\r\n }\r\n\r\n }\r\n\r\n}; // end Series prototype\r\n\r\n\r\n/**\r\n* LineSeries object\r\n*/\r\nvar LineSeries = extendClass(Series);\r\nseriesTypes.line = LineSeries;\r\n\r\n/**\r\n* AreaSeries object\r\n*/\r\nvar AreaSeries = extendClass(Series, {\r\n type: 'area'\r\n});\r\nseriesTypes.area = AreaSeries;\r\n\r\n\r\n/**\r\n* Calculate the spine interpolation.\r\n* \r\n* @todo: Implement true Bezier curves like shown at http://www.math.ucla.edu/~baker/java/hoefer/Spline.htm\r\n*/\r\nfunction SplineHelper(data) {\r\n var xdata = [];\r\n var ydata = [];\r\n var i;\r\n for (i = 0; i < data.length; i++) {\r\n xdata[i] = data[i].plotX;\r\n ydata[i] = data[i].plotY;\r\n }\r\n this.xdata = xdata;\r\n this.ydata = ydata;\r\n var delta = [];\r\n this.y2 = [];\r\n\r\n var n = ydata.length;\r\n this.n = n;\r\n\r\n // Natural spline 2:derivate == 0 at endpoints\r\n this.y2[0] = 0.0;\r\n this.y2[n - 1] = 0.0;\r\n delta[0] = 0.0;\r\n\r\n // Calculate 2:nd derivate\r\n for (i = 1; i < n - 1; i++) {\r\n var d = (xdata[i + 1] - xdata[i - 1]);\r\n /*if( d == 0 ) {\r\n error: ('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.');\r\n }*/\r\n var s = (xdata[i] - xdata[i - 1]) / d;\r\n var p = s * this.y2[i - 1] + 2.0;\r\n this.y2[i] = (s - 1.0) / p;\r\n delta[i] = (ydata[i + 1] - ydata[i]) / (xdata[i + 1] - xdata[i]) -\r\n\t\t (ydata[i] - ydata[i - 1]) / (xdata[i] - xdata[i - 1]);\r\n delta[i] = (6.0 * delta[i] / (xdata[i + 1] - xdata[i - 1]) - s * delta[i - 1]) / p;\r\n }\r\n\r\n // Backward substitution\r\n for (var j = n - 2; j >= 0; j--) {\r\n this.y2[j] = this.y2[j] * this.y2[j + 1] + delta[j];\r\n }\r\n}\r\n\r\n\r\nSplineHelper.prototype = {\r\n // Return the two new data vectors\r\n get: function (num) {\r\n if (!num) {\r\n num = 50;\r\n }\r\n var n = this.n;\r\n var step = (this.xdata[n - 1] - this.xdata[0]) / (num - 1);\r\n var xnew = [];\r\n var ynew = [];\r\n xnew[0] = this.xdata[0];\r\n ynew[0] = this.ydata[0];\r\n var data = [{ plotX: xnew[0], plotY: ynew[0]}]; //[[xnew[0], ynew[0]]];\r\n\r\n for (var j = 1; j < num; j++) {\r\n xnew[j] = xnew[0] + j * step;\r\n ynew[j] = this.interpolate(xnew[j]);\r\n data[j] = { plotX: xnew[j], plotY: ynew[j] }; //[xnew[j], ynew[j]];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n // Return a single interpolated Y-value from an x value\r\n interpolate: function (xpoint) {\r\n var max = this.n - 1;\r\n var min = 0;\r\n\r\n // Binary search to find interval\r\n while (max - min > 1) {\r\n var k = (max + min) / 2;\r\n if (this.xdata[mathFloor(k)] > xpoint) {\r\n max = k;\r\n } else {\r\n min = k;\r\n }\r\n }\r\n var intMax = mathFloor(max), intMin = mathFloor(min);\r\n\r\n // Each interval is interpolated by a 3:degree polynom function\r\n var h = this.xdata[intMax] - this.xdata[intMin];\r\n /*if( h == 0 ) {\r\n error: ('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.');\r\n }*/\r\n\r\n\r\n var a = (this.xdata[intMax] - xpoint) / h;\r\n var b = (xpoint - this.xdata[intMin]) / h;\r\n return a * this.ydata[intMin] + b * this.ydata[intMax] +\r\n\t ((a * a * a - a) * this.y2[intMin] + (b * b * b - b) * this.y2[intMax]) * (h * h) / 6.0;\r\n }\r\n\r\n};\r\n/**\r\n* SplineSeries object\r\n*/\r\nvar SplineSeries = extendClass(Series, {\r\n type: 'spline',\r\n\r\n /**\r\n * Draw the actual spline line with interpolated values\r\n * @param {Object} state\r\n */\r\n drawGraph: function (state) {\r\n var series = this,\r\n\t\t\trealSegments = series.segments;\r\n\r\n // temporarily set the segments to reflect the spline\r\n series.splinedata = series.getSplineData();\r\n series.segments = series.splinedata; // || series.getSplineData();\r\n\r\n\r\n\r\n // draw the line\r\n Series.prototype.drawGraph.apply(series, arguments);\r\n\r\n // reset the segments\r\n series.segments = realSegments;\r\n },\r\n\r\n\r\n /**\r\n * Get interpolated spline values\r\n */\r\n getSplineData: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n //data = this.data,\r\n\t\t\tsplinedata = [],\r\n\t\t\tnum;\r\n\r\n each(series.segments, function (data) {\r\n if (series.xAxis.reversed) {\r\n data = data.reverse();\r\n }\r\n var croppedData = [],\r\n\t\t\t\tnextUp,\r\n\t\t\t\tnextDown;\r\n\r\n // to save calculations, only add data within the plot\r\n each(data, function (point, i) {\r\n nextUp = data[i + 2] || data[i + 1] || point;\r\n nextDown = data[i - 2] || data[i - 1] || point;\r\n if (nextUp.plotX >= 0 && nextDown.plotX <= chart.plotWidth) {\r\n croppedData.push(point);\r\n }\r\n });\r\n\r\n // 3px intervals:\r\n if (croppedData.length > 1) {\r\n num = mathRound(mathMax(chart.plotWidth,\r\n\t\t\t\t\tcroppedData[croppedData.length - 1].clientX - croppedData[0].clientX) / 3);\r\n }\r\n splinedata.push(\r\n\t\t\t\tdata.length > 1 ? // if the data.length is one, it's a single point so we can't spline it\r\n\t\t\t\t\tnum ? (new SplineHelper(croppedData)).get(num) : [] :\r\n\t\t\t\t\tdata\r\n\t\t\t);\r\n\r\n });\r\n\r\n return splinedata;\r\n }\r\n});\r\nseriesTypes.spline = SplineSeries;\r\n\r\n\r\n\r\n/**\r\n* AreaSplineSeries object\r\n*/\r\nvar AreaSplineSeries = extendClass(SplineSeries, {\r\n type: 'areaspline'\r\n});\r\nseriesTypes.areaspline = AreaSplineSeries;\r\n\r\n/**\r\n* ColumnSeries object\r\n*/\r\nvar ColumnSeries = extendClass(Series, {\r\n type: 'column',\r\n pointAttrToOptions: { // mapping between SVG attributes and the corresponding options\r\n stroke: 'borderColor',\r\n 'stroke-width': 'borderWidth',\r\n fill: 'color',\r\n r: 'borderRadius'\r\n },\r\n init: function () {\r\n Series.prototype.init.apply(this, arguments);\r\n\r\n var series = this,\r\n\t\t\tchart = series.chart;\r\n\r\n\r\n // if the series is added dynamically, force redraw of other\r\n // series affected by a new column\r\n if (chart.hasRendered) {\r\n each(chart.series, function (otherSeries) {\r\n if (otherSeries.type == series.type) {\r\n otherSeries.isDirty = true;\r\n }\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Translate each point to the plot area coordinate system and find shape positions\r\n */\r\n translate: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\tcolumnCount = 0,\r\n\t\t\treversedXAxis = series.xAxis.reversed,\r\n\t\t\tcategories = series.xAxis.categories,\r\n\t\t\tstackedIndex; // the index of the first column in a stack\r\n\r\n Series.prototype.translate.apply(series);\r\n\r\n // Get the total number of column type series.\r\n // This is called on every series. Consider moving this logic to a \r\n // chart.orderStacks() function and call it on init, addSeries and removeSeries\r\n each(chart.series, function (otherSeries) {\r\n if (otherSeries.type == series.type) {\r\n if (!otherSeries.options.stacking) {\r\n otherSeries.columnIndex = columnCount++;\r\n } else {\r\n if (!defined(stackedIndex)) {\r\n stackedIndex = columnCount++;\r\n }\r\n otherSeries.columnIndex = stackedIndex;\r\n }\r\n }\r\n });\r\n\r\n // calculate the width and position of each column based on \r\n // the number of column series in the plot, the groupPadding\r\n // and the pointPadding options\r\n var options = series.options,\r\n\t\t\tdata = series.data,\r\n\t\t\tclosestPoints = series.closestPoints,\r\n\t\t\tcategoryWidth = mathAbs(\r\n\t\t\t\tdata[1] ? data[closestPoints].plotX - data[closestPoints - 1].plotX :\r\n\t\t\t\tchart.plotSizeX / (categories ? categories.length : 1)\r\n\t\t\t),\r\n\t\t\tgroupPadding = categoryWidth * options.groupPadding,\r\n\t\t\tgroupWidth = categoryWidth - 2 * groupPadding,\r\n\t\t\tpointOffsetWidth = groupWidth / columnCount,\r\n\t\t\toptionPointWidth = options.pointWidth,\r\n\t\t\tpointPadding = defined(optionPointWidth) ? (pointOffsetWidth - optionPointWidth) / 2 :\r\n\t\t\t\tpointOffsetWidth * options.pointPadding,\r\n\t\t\tpointWidth = pick(optionPointWidth, pointOffsetWidth - 2 * pointPadding),\r\n\t\t\tcolumnIndex = (reversedXAxis ? columnCount -\r\n\t\t\t\tseries.columnIndex : series.columnIndex) || 0,\r\n\t\t\tpointXOffset = pointPadding + (groupPadding + columnIndex *\r\n\t\t\t\tpointOffsetWidth - (categoryWidth / 2)) *\r\n\t\t\t\t(reversedXAxis ? -1 : 1),\r\n\t\t\ttranslatedThreshold = series.yAxis.getThreshold(options.threshold || 0),\r\n\t\t\tminPointLength = options.minPointLength;\r\n\r\n // record the new values\r\n each(data, function (point) {\r\n var plotY = point.plotY,\r\n\t\t\t\tbarX = point.plotX + pointXOffset,\r\n\t\t\t\tbarY = mathMin(plotY, translatedThreshold),\r\n\t\t\t\tbarW = pointWidth,\r\n\t\t\t\tbarH = mathAbs((point.yBottom || translatedThreshold) - plotY),\r\n\t\t\t\ttrackerY;\r\n\r\n // handle options.minPointLength and tracker for small points\r\n if (mathAbs(barH) < (minPointLength || 5)) {\r\n if (minPointLength) {\r\n barH = minPointLength;\r\n barY = translatedThreshold - (plotY <= translatedThreshold ? minPointLength : 0);\r\n }\r\n trackerY = barY - 3;\r\n }\r\n\r\n\r\n extend(point, {\r\n barX: barX,\r\n barY: barY,\r\n barW: barW,\r\n barH: barH\r\n });\r\n point.shapeType = 'rect';\r\n point.shapeArgs = {\r\n x: barX,\r\n y: barY,\r\n width: barW,\r\n height: barH,\r\n r: options.borderRadius\r\n };\r\n\r\n // make small columns responsive to mouse\r\n if (defined(trackerY)) {\r\n point.trackerArgs = merge(point.shapeArgs, {\r\n height: 6,\r\n y: trackerY\r\n });\r\n }\r\n });\r\n\r\n },\r\n\r\n getSymbol: function () {\r\n },\r\n\r\n /** \r\n * Columns have no graph\r\n */\r\n drawGraph: function () { },\r\n\r\n /**\r\n * Draw the columns. For bars, the series.group is rotated, so the same coordinates\r\n * apply for columns and bars. This method is inherited by scatter series.\r\n * \r\n */\r\n drawPoints: function () {\r\n var series = this,\r\n\t\t\toptions = series.options,\r\n\t\t\trenderer = series.chart.renderer,\r\n\t\t\tgraphic,\r\n\t\t\tshapeArgs;\r\n\r\n\r\n // draw the columns\r\n each(series.data, function (point) {\r\n\r\n if (defined(point.plotY)) {\r\n graphic = point.graphic;\r\n shapeArgs = point.shapeArgs;\r\n if (graphic) { // update\r\n graphic.attr(shapeArgs);\r\n\r\n } else {\r\n point.graphic = renderer[point.shapeType](shapeArgs)\r\n\t\t\t\t\t\t.attr(point.pointAttr[point.selected ? SELECT_STATE : NORMAL_STATE])\r\n\t\t\t\t\t\t.add(series.group)\r\n\t\t\t\t\t\t.shadow(options.shadow);\r\n }\r\n\r\n }\r\n });\r\n },\r\n /**\r\n * Draw the individual tracker elements.\r\n * This method is inherited by scatter and pie charts too.\r\n */\r\n drawTracker: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\trenderer = chart.renderer,\r\n\t\t\tshapeArgs,\r\n\t\t\ttracker,\r\n\t\t\ttrackerLabel = +new Date(),\r\n\t\t\tcursor = series.options.cursor,\r\n\t\t\tcss = cursor && { cursor: cursor },\r\n\t\t\trel;\r\n\r\n each(series.data, function (point) {\r\n tracker = point.tracker;\r\n shapeArgs = point.trackerArgs || point.shapeArgs;\r\n\r\n if (tracker) {// update\r\n tracker.attr(shapeArgs);\r\n\r\n } else {\r\n point.tracker =\r\n\t\t\t\t\trenderer[point.shapeType](shapeArgs)\r\n\t\t\t\t\t.attr({\r\n\t\t\t\t\t isTracker: trackerLabel,\r\n\t\t\t\t\t fill: TRACKER_FILL,\r\n\t\t\t\t\t visibility: series.visible ? VISIBLE : HIDDEN,\r\n\t\t\t\t\t zIndex: 1\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on('mouseover', function (event) {\r\n\t\t\t\t\t rel = event.relatedTarget || event.fromElement;\r\n\t\t\t\t\t if (chart.hoverSeries != series && attr(rel, 'isTracker') != trackerLabel) {\r\n\t\t\t\t\t series.onMouseOver();\r\n\t\t\t\t\t }\r\n\t\t\t\t\t point.onMouseOver();\r\n\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on('mouseout', function (event) {\r\n\t\t\t\t\t if (!series.options.stickyTracking) {\r\n\t\t\t\t\t rel = event.relatedTarget || event.toElement;\r\n\t\t\t\t\t if (attr(rel, 'isTracker') != trackerLabel) {\r\n\t\t\t\t\t series.onMouseOut();\r\n\t\t\t\t\t }\r\n\t\t\t\t\t }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.css(css)\r\n\t\t\t\t\t.add(chart.trackerGroup);\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Extend the base cleanData method by getting the closest pair of points.\r\n * This is needed for determining the automatic point width.\r\n */\r\n cleanData: function () {\r\n var series = this,\r\n\t\t\tdata = series.data,\r\n\t\t\tinterval,\r\n\t\t\tsmallestInterval,\r\n\t\t\tclosestPoints,\r\n\t\t\ti;\r\n\r\n // apply the parent method\r\n Series.prototype.cleanData.apply(series);\r\n\r\n // find the closes pair of points\r\n for (i = data.length - 1; i >= 0; i--) {\r\n if (data[i - 1]) {\r\n interval = data[i].x - data[i - 1].x;\r\n if (smallestInterval === UNDEFINED || interval < smallestInterval) {\r\n smallestInterval = interval;\r\n closestPoints = i;\r\n }\r\n }\r\n }\r\n series.closestPoints = closestPoints;\r\n },\r\n\r\n /**\r\n * Animate the column heights one by one from zero\r\n * @param {Boolean} init Whether to initialize the animation or run it \r\n */\r\n animate: function (init) {\r\n var series = this,\r\n\t\t\tdata = series.data;\r\n\r\n if (!init) { // run the animation\r\n /*\r\n * Note: Ideally the animation should be initialized by calling\r\n * series.group.hide(), and then calling series.group.show()\r\n * after the animation was started. But this rendered the shadows\r\n * invisible in IE8 standards mode. If the columns flicker on large\r\n * datasets, this is the cause.\r\n */\r\n\r\n each(data, function (point) {\r\n var graphic = point.graphic;\r\n\r\n if (graphic) {\r\n // start values\r\n graphic.attr({\r\n height: 0,\r\n y: series.yAxis.translate(0, 0, 1)\r\n });\r\n\r\n // animate\r\n graphic.animate({\r\n height: point.barH,\r\n y: point.barY\r\n }, {\r\n duration: 1000\r\n });\r\n }\r\n });\r\n\r\n\r\n // delete this function to allow it only once\r\n series.animate = null;\r\n }\r\n\r\n },\r\n /**\r\n * Remove this series from the chart\r\n */\r\n remove: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart;\r\n\r\n // column and bar series affects other series of the same type\r\n // as they are either stacked or grouped\r\n if (chart.hasRendered) {\r\n each(chart.series, function (otherSeries) {\r\n if (otherSeries.type == series.type) {\r\n otherSeries.isDirty = true;\r\n }\r\n });\r\n }\r\n\r\n Series.prototype.remove.apply(series, arguments);\r\n }\r\n});\r\nseriesTypes.column = ColumnSeries;\r\n\r\nvar BarSeries = extendClass(ColumnSeries, {\r\n type: 'bar',\r\n init: function (chart) {\r\n chart.inverted = this.inverted = true;\r\n ColumnSeries.prototype.init.apply(this, arguments);\r\n }\r\n});\r\nseriesTypes.bar = BarSeries;\r\n\r\n/**\r\n* The scatter series class\r\n*/\r\nvar ScatterSeries = extendClass(Series, {\r\n type: 'scatter',\r\n\r\n /**\r\n * Extend the base Series' translate method by adding shape type and\r\n * arguments for the point trackers\r\n */\r\n translate: function () {\r\n var series = this;\r\n\r\n Series.prototype.translate.apply(series);\r\n\r\n each(series.data, function (point) {\r\n point.shapeType = 'circle';\r\n point.shapeArgs = {\r\n x: point.plotX,\r\n y: point.plotY,\r\n r: series.chart.options.tooltip.snap\r\n };\r\n });\r\n },\r\n\r\n\r\n /**\r\n * Create individual tracker elements for each point\r\n */\r\n //drawTracker: ColumnSeries.prototype.drawTracker,\r\n drawTracker: function () {\r\n var series = this,\r\n\t\t\tcursor = series.options.cursor,\r\n\t\t\tcss = cursor && { cursor: cursor },\r\n\t\t\tgraphic;\r\n\r\n each(series.data, function (point) {\r\n graphic = point.graphic;\r\n if (graphic) { // doesn't exist for null points\r\n graphic\r\n\t\t\t\t\t.attr({ isTracker: true })\r\n\t\t\t\t\t.on('mouseover', function (event) {\r\n\t\t\t\t\t series.onMouseOver();\r\n\t\t\t\t\t point.onMouseOver();\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on('mouseout', function (event) {\r\n\t\t\t\t\t if (!series.options.stickyTracking) {\r\n\t\t\t\t\t series.onMouseOut();\r\n\t\t\t\t\t }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.css(css);\r\n }\r\n });\r\n\r\n },\r\n\r\n /**\r\n * Cleaning the data is not necessary in a scatter plot\r\n */\r\n cleanData: function () { }\r\n});\r\nseriesTypes.scatter = ScatterSeries;\r\n\r\n/**\r\n* Extended point object for pies\r\n*/\r\nvar PiePoint = extendClass(Point, {\r\n /**\r\n * Initiate the pie slice\r\n */\r\n init: function () {\r\n\r\n Point.prototype.init.apply(this, arguments);\r\n\r\n var point = this,\r\n //series = point.series,\r\n\t\t\ttoggleSlice;\r\n\r\n //visible: options.visible !== false,\r\n extend(point, {\r\n visible: point.visible !== false,\r\n name: pick(point.name, 'Slice')\r\n });\r\n\r\n // add event listener for select\r\n toggleSlice = function () {\r\n point.slice();\r\n };\r\n addEvent(point, 'select', toggleSlice);\r\n addEvent(point, 'unselect', toggleSlice);\r\n\r\n return point;\r\n },\r\n\r\n /**\r\n * Toggle the visibility of the pie slice\r\n * @param {Boolean} vis Whether to show the slice or not. If undefined, the\r\n * visibility is toggled\r\n */\r\n setVisible: function (vis) {\r\n\r\n var point = this,\r\n\t\t\tchart = point.series.chart;\r\n\r\n // if called without an argument, toggle visibility\r\n point.visible = vis = vis === UNDEFINED ? !point.visible : vis;\r\n\r\n\r\n if (vis) {\r\n //layer.show();\r\n point.group.show();\r\n point.tracker.show();\r\n\r\n\r\n } else {\r\n //layer.hide();\r\n point.group.hide();\r\n point.tracker.hide();\r\n\r\n }\r\n\r\n if (point.legendItem) {\r\n chart.legend.colorizeItem(point, vis);\r\n }\r\n },\r\n\r\n /**\r\n * Set or toggle whether the slice is cut out from the pie\r\n * @param {Boolean} sliced When undefined, the slice state is toggled \r\n * @param {Boolean} redraw Whether to redraw the chart. True by default.\r\n */\r\n slice: function (sliced, redraw) {\r\n var point = this,\r\n\t\t\tseries = point.series,\r\n\t\t\tchart = series.chart,\r\n\t\t\tslicedTranslation = point.slicedTranslation;\r\n\r\n // redraw is true by default\r\n redraw = pick(redraw, true);\r\n\r\n // if called without an argument, toggle\r\n sliced = point.sliced = defined(sliced) ? sliced : !point.sliced;\r\n\r\n point.group.animate({\r\n translateX: (sliced ? slicedTranslation[0] : chart.plotLeft),\r\n translateY: (sliced ? slicedTranslation[1] : chart.plotTop)\r\n }, 100);\r\n\r\n }\r\n});\r\n\r\n/**\r\n* The Pie series class\r\n*/\r\nvar PieSeries = extendClass(Series, {\r\n type: 'pie',\r\n isCartesian: false,\r\n pointClass: PiePoint,\r\n pointAttrToOptions: { // mapping between SVG attributes and the corresponding options\r\n stroke: 'borderColor',\r\n 'stroke-width': 'borderWidth',\r\n fill: 'color'\r\n },\r\n\r\n /**\r\n * Pies have one color each point\r\n */\r\n getColor: function () {\r\n // record first color for use in setData\r\n this.initialColor = colorCounter;\r\n },\r\n\r\n\r\n translate: function () {\r\n var total = 0,\r\n\t\t\tseries = this,\r\n\t\t\tcumulative = -0.25, // start at top\r\n\t\t\toptions = series.options,\r\n\t\t\tslicedOffset = options.slicedOffset,\r\n\t\t\tpositions = options.center,\r\n\t\t\tchart = series.chart,\r\n\t\t\tplotWidth = chart.plotWidth,\r\n\t\t\tplotHeight = chart.plotHeight,\r\n\t\t\tstart,\r\n\t\t\tend,\r\n\t\t\tangle,\r\n\t\t\tdata = series.data,\r\n\t\t\tcirc = 2 * math.PI,\r\n\t\t\tfraction,\r\n\t\t\tsmallestSize = mathMin(plotWidth, plotHeight),\r\n\t\t\tisPercent;\r\n\r\n // get positions - either an integer or a percentage string must be given\r\n positions.push(options.size, options.innerSize || 0);\r\n positions = map(positions, function (length, i) {\r\n\r\n isPercent = /%$/.test(length);\r\n return isPercent ?\r\n // i == 0: centerX, relative to width\r\n // i == 1: centerY, relative to height\r\n // i == 2: size, relative to height\r\n\t\t\t\t[plotWidth, plotHeight, smallestSize, smallestSize][i] *\r\n\t\t\t\t\tparseInt(length, 10) / 100 :\r\n\t\t\t\tlength;\r\n });\r\n\r\n // get the total sum\r\n each(data, function (point) {\r\n total += point.y;\r\n });\r\n\r\n each(data, function (point) {\r\n // set start and end angle\r\n fraction = total ? point.y / total : 0;\r\n start = cumulative * circ;\r\n cumulative += fraction;\r\n end = cumulative * circ;\r\n\r\n\r\n // set the shape\r\n point.shapeType = 'arc';\r\n point.shapeArgs = {\r\n x: positions[0],\r\n y: positions[1],\r\n r: positions[2] / 2,\r\n innerR: positions[3] / 2,\r\n start: start,\r\n end: end\r\n };\r\n\r\n // center for the sliced out slice\r\n angle = (end + start) / 2;\r\n point.slicedTranslation = map([\r\n\t\t\t\tmathCos(angle) * slicedOffset + chart.plotLeft,\r\n\t\t\t\tmathSin(angle) * slicedOffset + chart.plotTop\r\n\t\t\t], mathRound);\r\n\r\n\r\n // set the anchor point for tooltips\r\n point.tooltipPos = [\r\n\t\t\t\tpositions[0] + mathCos(angle) * positions[2] * 0.35,\r\n\t\t\t\tpositions[1] + mathSin(angle) * positions[2] * 0.35\r\n\t\t\t];\r\n\r\n // API properties\r\n point.percentage = fraction * 100;\r\n point.total = total;\r\n\r\n });\r\n\r\n this.setTooltipPoints();\r\n },\r\n\r\n /**\r\n * Render the slices\r\n */\r\n render: function () {\r\n var series = this;\r\n // cache attributes for shapes\r\n series.getAttribs();\r\n\r\n this.drawPoints();\r\n\r\n // draw the mouse tracking area\r\n if (series.options.enableMouseTracking !== false) {\r\n series.drawTracker();\r\n }\r\n\r\n this.drawDataLabels();\r\n\r\n series.isDirty = false; // means data is in accordance with what you see\r\n },\r\n\r\n /**\r\n * Draw the data points\r\n */\r\n drawPoints: function () {\r\n var series = this,\r\n\t\t\tchart = series.chart,\r\n\t\t\trenderer = chart.renderer,\r\n\t\t\tgroupTranslation,\r\n //center,\r\n\t\t\tgraphic,\r\n\t\t\tshapeArgs;\r\n\r\n // draw the slices\r\n each(series.data, function (point) {\r\n graphic = point.graphic;\r\n shapeArgs = point.shapeArgs;\r\n\r\n // create the group the first time\r\n if (!point.group) {\r\n // if the point is sliced, use special translation, else use plot area traslation\r\n groupTranslation = point.sliced ? point.slicedTranslation : [chart.plotLeft, chart.plotTop];\r\n point.group = renderer.g('point')\r\n\t\t\t\t\t.attr({ zIndex: 3 })\r\n\t\t\t\t\t.add()\r\n\t\t\t\t\t.translate(groupTranslation[0], groupTranslation[1]);\r\n }\r\n\r\n // draw the slice\r\n if (graphic) {\r\n graphic.attr(shapeArgs);\r\n } else {\r\n point.graphic =\r\n\t\t\t\t\trenderer.arc(shapeArgs)\r\n\t\t\t\t\t.attr(point.pointAttr[NORMAL_STATE])\r\n\t\t\t\t\t.add(point.group);\r\n }\r\n\r\n // detect point specific visibility\r\n if (point.visible === false) {\r\n point.setVisible(false);\r\n }\r\n\r\n });\r\n\r\n },\r\n\r\n /**\r\n * Draw point specific tracker objects. Inherit directly from column series.\r\n */\r\n drawTracker: ColumnSeries.prototype.drawTracker,\r\n\r\n /**\r\n * Pies don't have point marker symbols\r\n */\r\n getSymbol: function () { }\r\n\r\n});\r\nseriesTypes.pie = PieSeries;\r\n\r\n\r\n// global variables\r\nwin.Highcharts = {\r\n Chart: Chart,\r\n dateFormat: dateFormat,\r\n getOptions: getOptions,\r\n numberFormat: numberFormat,\r\n Point: Point,\r\n Renderer: Renderer,\r\n seriesTypes: seriesTypes,\r\n setOptions: setOptions,\r\n Series: Series,\r\n\r\n // Expose utility funcitons for modules\r\n addEvent: addEvent,\r\n createElement: createElement,\r\n discardElement: discardElement,\r\n css: css,\r\n each: each,\r\n extend: extend,\r\n map: map,\r\n merge: merge,\r\n pick: pick,\r\n extendClass: extendClass\r\n};\r\n})();" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.305Z", "time": 0.07999999797903001, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.06199999916134402, "receive": 0.01799999881768599, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 87 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "574", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/javascript/reachJS.js", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:16:46 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "REVALIDATED" }, { "name": "Age", "value": "57" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "2698" }, { "name": "cf-request-id", "value": "0813ef911b0000fd3af323f000000001" }, { "name": "Last-Modified", "value": "Tue, 19 Jun 2012 01:48:06 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "ETag", "value": "\"0f2a92bd4dcd1:0\"" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Cache-Control", "value": "max-age=14400" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61cce861c816fd3a-SYD" } ], "cookies": [], "content": { "size": 11095, "mimeType": "application/javascript", "text": "(function ($) {\r\n\r\n /* Extra Info Tip - popout/tooltip \r\n\r\n var newExtraInfoTip = new ExtraInfoTip(\r\n '.triggerElement, .triggerElement2', \r\n '.popOutElement', \r\n { \r\n 'onScreen': true, \r\n 'addContent' : function(popOut,target) {\r\n //do ajaxy stuff here\r\n }\r\n } \r\n );\r\n\r\n popOut - required - the pop out element\r\n \r\n options: \r\n onScreen - keeps the popout on the screen when the screen is at least 2 times as big as the width and height of the popout (default is false)\r\n positionX - adjust the default position by this many pixels on the x axis away from the cursor\r\n positionY - adjust the default position by this many pixels on the y axis away from the cursor\r\n delay - milliseconds of delay before popout appears\r\n\r\n addContent(popOut, target) - empty function that can be used to populate your popout - the event target and the popOut are passed in as arguments \r\n */\r\n ExtraInfoTip = function (triggerElement, popOutElement, options) {\r\n this.trigger = $(triggerElement);\r\n this.popOut = $(popOutElement);\r\n this.isJsRequiredType = true;\r\n var tempPopOut = this.trigger.find(popOutElement);\r\n if (tempPopOut.length > 0) {\r\n this.popOut = tempPopOut;\r\n this.isJsRequiredType = false;\r\n\r\n }\r\n if (this.trigger.length < 1 || this.popOut.length < 1) {\r\n return;\r\n }\r\n this.config = {\r\n 'corner': 'BL',\r\n 'positionX': 10,\r\n 'positionY': 10,\r\n 'onScreen': false,\r\n 'delayTime': 0,\r\n 'addContent': function (popOut, target) {\r\n }\r\n };\r\n\r\n if (options) $.extend(this.config, options);\r\n\r\n this.delayTime = this.config.delayTime;\r\n this.corner = this.config.corner;\r\n\r\n this.positionX = this.config.positionX;\r\n this.positionY = this.config.positionY;\r\n this.onScreen = this.config.onScreen;\r\n this.showing = false;\r\n\r\n this.addContent = this.config.addContent;\r\n\r\n if (this.onScreen == true && this.corner == '') {\r\n this.corner = 'BL';\r\n this.positionX = 20;\r\n this.positionY = 20;\r\n }\r\n\r\n this.intialize = function () {\r\n this.addEvtListeners();\r\n if (this.isJsRequiredType) this.clonePopOut();\r\n };\r\n this.clonedPopOut;\r\n\r\n /* js free style */\r\n this.movePopOut = function (popOut) {\r\n if ($('div.clonedPopOut').length == 0) {\r\n this.clonedPopOut = popOut.clone().addClass('clonedPopOut');\r\n $('body').append(this.clonedPopOut);\r\n }\r\n }\r\n this.removeExtraPopOut = function () {\r\n this.clonedPopOut.remove();\r\n }\r\n\r\n /* js required style */\r\n this.clonePopOut = function () {\r\n this.clonedPopOut = this.popOut;\r\n this.popOut.remove();\r\n $('body').append(this.clonedPopOut);\r\n }\r\n\r\n this.addEvtListeners = function () {\r\n var self = this;\r\n this.trigger.mousemove\r\n\t\t (\r\n function (e) {\r\n e.stopImmediatePropagation();\r\n var mouseX = e.pageX;\r\n var mouseY = e.pageY;\r\n\r\n if (self.showing == false && self.isJsRequiredType == false) self.movePopOut($(this).find('div.popOut'));\r\n self.positionPopOut(mouseX, mouseY);\r\n self.showPopOut(this);\r\n }\r\n );\r\n this.trigger.mouseout\r\n\t\t (\r\n function (e) {\r\n e.stopImmediatePropagation();\r\n clearTimeout(self.showDelay);\r\n if (self.isJsRequiredType) self.popOut.hide();\r\n else\r\n self.removeExtraPopOut();\r\n self.showing = false;\r\n }\r\n );\r\n }\r\n this.showPopOut = function (target) {\r\n if (this.showing == false) {\r\n this.showing = true;\r\n\r\n if (this.delayTime > 0) {\r\n clearTimeout(this.showDelay);\r\n\r\n var self = this;\r\n this.showDelay = setTimeout(function () {\r\n self.addContent(self.clonedPopOut, target);\r\n self.clonedPopOut.show();\r\n }, this.delayTime);\r\n }\r\n else {\r\n this.addContent(this.clonedPopOut, target);\r\n this.clonedPopOut.show();\r\n }\r\n }\r\n };\r\n\r\n this.positionPopOut = function (mouseX, mouseY) {\r\n\r\n var popOutHeight = this.clonedPopOut.height();\r\n var popOutWidth = this.clonedPopOut.width();\r\n var topPosition = 0;\r\n var leftPosition = 0;\r\n\r\n switch (this.corner) {\r\n case 'BR':\r\n topPosition += mouseY - popOutHeight - this.positionY;\r\n leftPosition += mouseX - popOutWidth - this.positionX;\r\n break;\r\n case 'TL':\r\n topPosition += mouseY + this.positionY;\r\n leftPosition += mouseX + this.positionX;\r\n break;\r\n case 'TR':\r\n topPosition += mouseY + this.positionY;\r\n leftPosition += mouseX - popOutWidth - this.positionX;\r\n break;\r\n default:\r\n topPosition += mouseY - popOutHeight - this.positionY;\r\n leftPosition += mouseX + this.positionX;\r\n }\r\n\r\n //keep on page\r\n if (this.onScreen == true) {\r\n var windowWidth = $(window).width();\r\n var windowHeight = $(window).height();\r\n\r\n if ((windowWidth > (popOutWidth * 1.2)) && (windowHeight > (popOutHeight * 1.2))) {\r\n\r\n if ($.browser.safari) { bodyelem = $(\"body\") } else { bodyelem = $(\"html\") }\r\n var scrollTop = bodyelem.scrollTop();\r\n var scrollLeft = bodyelem.scrollLeft();\r\n\r\n var flipX = false;\r\n\r\n //left side of page\r\n if (mouseX > (windowWidth / 2 + scrollLeft)) {\r\n flipX = true;\r\n }\r\n //too high\r\n if (topPosition < scrollTop) {\r\n topPosition = scrollTop;\r\n }\r\n //too low\r\n if ((topPosition + popOutHeight) > (scrollTop + windowHeight)) {\r\n topPosition = scrollTop + windowHeight - popOutHeight;\r\n }\r\n //too far left\r\n if (leftPosition < scrollLeft) {\r\n leftPosition = scrollLeft + 20;\r\n }\r\n //too far right\r\n if ((leftPosition + popOutWidth) > (windowWidth + scrollLeft)) {\r\n if (flipX == true) {\r\n leftPosition = mouseX - popOutWidth - 20;\r\n }\r\n else {\r\n leftPosition = scrollLeft + windowWidth - popOutWidth - 20;\r\n }\r\n }\r\n }\r\n }\r\n this.clonedPopOut.css({ top: topPosition, left: leftPosition });\r\n };\r\n this.intialize();\r\n };\r\n\r\n\r\n\r\n /* Floating Label - disappearing/reappearing label for textfield \r\n\r\n @example $(\".labelElement\").floatingLabel();\r\n\r\n */\r\n\r\n $.fn.floatingLabel = function () {\r\n\r\n $this = $(this);\r\n if ($this.length < 1 || $('#' + $this.attr('for')).length < 1) {\r\n return;\r\n }\r\n return this.each(function () {\r\n $self = $(this);\r\n var $textBox = $('#' + $self.attr('for'));\r\n var $label = $self;\r\n\r\n if ($textBox.val() == '') {\r\n $label.addClass('floated');\r\n }\r\n $textBox.focus(\r\n function (e) {\r\n $label.removeClass('floated');\r\n }\r\n );\r\n $textBox.blur(\r\n function () {\r\n if ($textBox.val() == '') {\r\n $label.addClass('floated');\r\n }\r\n }\r\n );\r\n $label.click(function (e) {\r\n $textBox.focus();\r\n });\r\n });\r\n }\r\n\r\n //countdown clock object\r\n Counter = function (timeLeft, element) {\r\n\r\n this.$element = $(element);\r\n if (this.$element.length < 1) return;\r\n\r\n this.timeLeft = timeLeft;\r\n\r\n this.updateCounter = function () {\r\n\r\n var self = this;\r\n var Time_Left = self.timeLeft -= 1;\r\n\r\n if (Time_Left < 0) Time_Left = 0;\r\n\r\n //deteremine the time left\r\n var days = Math.floor(Time_Left / (60 * 60 * 24));\r\n Time_Left %= (60 * 60 * 24);\r\n var hours = Math.floor(Time_Left / (60 * 60));\r\n Time_Left %= (60 * 60);\r\n var minutes = Math.floor(Time_Left / 60);\r\n Time_Left %= 60;\r\n var seconds = Time_Left;\r\n\r\n //update the element\r\n this.$element.html('' + days + 'd' + hours + 'h' + minutes + 'm' + seconds + 's');\r\n setTimeout(function () { self.updateCounter() }, 1000);\r\n }\r\n this.updateCounter();\r\n }\r\n\r\n //Simple Tab Switcher - doesn't remeber view state\r\n //example - \r\n // var tabSwitcher = new SimpleTabSwitcher(\"table.centerNav\");\r\n //\r\n SimpleTabSwitcher = function (element) {\r\n this.element = $(element);\r\n if (this.element.length < 1) {\r\n return;\r\n }\r\n\r\n this.initialize = function () {\r\n this.addEvtListeners();\r\n }\r\n this.addEvtListeners = function () {\r\n var self = this;\r\n this.element.find('a').click(function (e) {\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n var targetElement = $(this);\r\n self.switchViews(targetElement);\r\n });\r\n }\r\n this.switchViews = function (targetElement) {\r\n var targetTab = targetElement.attr('tab');\r\n if (targetTab != null) {\r\n targetElement.parent('td').addClass('on');\r\n targetElement.parent('td').siblings('.on').removeClass('on');\r\n var targetedElement = $('div[tab=' + targetTab + ']');\r\n targetedElement.siblings('div').hide();\r\n targetedElement.show();\r\n }\r\n }\r\n this.initialize();\r\n };\r\n \r\n /* sets up default */\r\n $('html').attr('id', ''); //gets rid of jsDisabled id\r\n\r\n})($telerik.$);\r\n" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.305Z", "time": 0.09899999713525176, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.08399999933317304, "receive": 0.014999997802078724, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 89 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "574", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/ScriptResource.axd?d=kqjdaIkiaQyXWXa1dzq3jG62iXI8OVSNWMR_8WDP2M626mgfjQrrzJJ2NQruapULmJ1TzS1Nm44_jZyvL2jdWDvegWw2ILAPEes_4A2&t=59936b01", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "d", "value": "kqjdaIkiaQyXWXa1dzq3jG62iXI8OVSNWMR_8WDP2M626mgfjQrrzJJ2NQruapULmJ1TzS1Nm44_jZyvL2jdWDvegWw2ILAPEes_4A2" }, { "name": "t", "value": "59936b01" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 05:54:29 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "CF-Cache-Status", "value": "DYNAMIC" }, { "name": "Last-Modified", "value": "Tue, 02 Feb 2021 22:41:39 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "X-AspNet-Version", "value": "4.0.30319" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Content-Type", "value": "text/javascript" }, { "name": "Cache-Control", "value": "public" }, { "name": "Connection", "value": "keep-alive" }, { "name": "CF-RAY", "value": "61ca60886cd9fd26-SYD" }, { "name": "Content-Length", "value": "7470" }, { "name": "cf-request-id", "value": "08125aa9420000fd268f26f000000001" }, { "name": "Expires", "value": "Wed, 02 Feb 2022 22:41:39 GMT" } ], "cookies": [], "content": { "size": 31022, "mimeType": "text/javascript", "text": "Type.registerNamespace(\"Telerik.Web.UI\");\nTelerik.Web.UI.RadAjaxControl=function(a){Telerik.Web.UI.RadAjaxControl.initializeBase(this,[a]);\nthis._clientEvents={};\nthis._uniqueID=\"\";\nthis._enableHistory=false;\nthis._enableAJAX=true;\nthis._requestQueueSize=0;\nthis._requestQueue=[];\nthis._loadingPanelsToHide=[];\nthis._initializeRequestHandler=null;\nthis._endRequestHandler=null;\nthis._isRequestInProgress=false;\nthis._links=[];\nthis._styles=[];\nthis.Type=\"Telerik.Web.UI.RadAjaxControl\";\nthis.UniqueID=this._uniqueID;\nthis.EnableHistory=this._enableHistory;\nthis.EnableAJAX=this._enableAJAX;\nthis.Links=this._links;\nthis.Styles=this._styles;\nthis._updatePanels=\"\";\n};\nTelerik.Web.UI.RadAjaxControl.prototype={initialize:function(){Telerik.Web.UI.RadAjaxControl.callBaseMethod(this,\"initialize\");\nfor(var a in this._clientEvents){if(typeof(this._clientEvents[a])!=\"string\"){continue;\n}if(this._clientEvents[a]!=\"\"){var b=this._clientEvents[a];\nif(b.indexOf(\"(\")!=-1){this[a]=b;\n}else{this[a]=eval(b);\n}}else{this[a]=null;\n}}var c=Sys.WebForms.PageRequestManager.getInstance();\nthis._initializeRequestHandler=Function.createDelegate(this,this._initializeRequest);\nc.add_initializeRequest(this._initializeRequestHandler);\n},_getResponseHeader:function(a,b){try{return a.getResponseHeader(b);\n}catch(c){return null;\n}},_handleAsyncRedirect:function(a){var b=this._getResponseHeader(a,\"Location\");\nif(b&&b!=\"\"){var c=document.createElement(\"a\");\nc.style.display=\"none\";\nc.href=b;\ndocument.body.appendChild(c);\nif(c.click){try{c.click();\n}catch(d){}}else{window.location.href=b;\n}document.body.removeChild(c);\nreturn true;\n}return false;\n},_onFormSubmitCompleted:function(g,f){if(g._xmlHttpRequest!=null){if(this._handleAsyncRedirect(g._xmlHttpRequest)){try{g._aborted=true;\n}catch(r){}return;\n}}if(g._xmlHttpRequest!=null&&!g.get_timedOut()){var c=this.getResponseItems(g.get_responseData(),\"scriptBlock\");\nfor(var l=0,h=c.length;\nl=0;\nm--){b[m].dispose();\n}}$telerik.disposeElement(d);\nn.removeChild(d);\nTelerik.Web.UI.RadAjaxControl.InsertAtLocation(s,n,k);\nTelerik.Web.UI.RadAjaxControl.panelsToClear[Telerik.Web.UI.RadAjaxControl.panelsToClear.length]=q;\n}}}g.get_webRequest().remove_completed(this._onFormSubmitCompletedHandler);\n},dispose:function(){this.hideLoadingPanels();\nvar a=Sys.WebForms.PageRequestManager.getInstance();\na.remove_initializeRequest(this._initializeRequestHandler);\n$clearHandlers(this.get_element());\nthis._element.control=null;\nTelerik.Web.UI.RadAjaxControl.callBaseMethod(this,\"dispose\");\n},get_enableAJAX:function(){return this._enableAJAX;\n},set_enableAJAX:function(a){if(this._enableAJAX!=a){this._enableAJAX=a;\n}},get_enableHistory:function(){return this._enableHistory;\n},set_enableHistory:function(a){if(this._enableHistory!=a){this._enableHistory=a;\n}},get_clientEvents:function(){return this._clientEvents;\n},set_clientEvents:function(a){if(this._clientEvents!=a){this._clientEvents=a;\n}},get_links:function(){return this._links;\n},set_links:function(a){if(this._links!=a){this._links=a;\nif(this._links.length>0){this.updateHeadLinks();\n}}},get_styles:function(){return this._styles;\n},set_styles:function(a){if(this._styles!=a){this._styles=a;\nif(this._styles.length>0){this.updateHeadStyles();\n}}},get_uniqueID:function(){return this._uniqueID;\n},set_uniqueID:function(a){if(this._uniqueID!=a){this._uniqueID=a;\nwindow[Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(this._uniqueID)]=this;\n}},get_requestQueueSize:function(){return this._requestQueueSize;\n},set_requestQueueSize:function(a){if(a>0){this._requestQueueSize=a;\nthis.raisePropertyChanged(\"requestQueueSize\");\n}},isChildOf:function(a,b){while(a!=null){if(a==b){return true;\n}a=a.parentNode;\n}return false;\n},_initializeRequest:function(f,i){var d=Sys.WebForms.PageRequestManager.getInstance();\nif(d.get_isInAsyncPostBack()&&this._requestQueueSize>0){this._queueRequest(f,i);\nreturn false;\n}if(this.Type==\"Telerik.Web.UI.RadAjaxManager\"){if(i.get_postBackElement()!=this.get_element()){var c=this._updatePanels.split(\",\");\nif(Array.contains(c,i.get_postBackElement().id)){this._isRequestInProgress=true;\nthis._attachRequestHandlers(f,i,false);\nreturn false;\n}else{var a=i.get_postBackElement().parentNode;\nvar e=false;\nwhile(a!=null){if(a.id&&Array.contains(c,a.id)){e=true;\nbreak;\n}a=a.parentNode;\n}if(e){this._isRequestInProgress=true;\nthis._attachRequestHandlers(f,i,false);\nreturn false;\n}}if(!this._initiators[i.get_postBackElement().id]){var a=i.get_postBackElement().parentNode;\nvar e=false;\nwhile(a!=null){if(a.id&&this._initiators[a.id]){e=true;\nbreak;\n}a=a.parentNode;\n}if(!e){this._isRequestInProgress=true;\nthis._attachRequestHandlers(f,i,false);\nreturn false;\n}}}}if(this.Type==\"Telerik.Web.UI.RadAjaxPanel\"){var b=this._getParentAjaxPanel(i.get_postBackElement());\nif(b&&b.get_id()!=this.get_id()){return false;\n}if(!this.isChildOf(i.get_postBackElement(),this.get_element())){return false;\n}}if(this._enableHistory){if(Telerik.Web.UI.RadAjaxControl.History[\"\"]==null){Telerik.Web.UI.RadAjaxControl.HandleHistory(f._uniqueIDToClientID(this._uniqueID),\"\");\n}Telerik.Web.UI.RadAjaxControl.HandleHistory(f._uniqueIDToClientID(this._uniqueID),i.get_request().get_body());\n}if(f._form.__EVENTTARGET&&f._form.__EVENTTARGET.value){this.__EVENTTARGET=f._form.__EVENTTARGET.value;\n}else{this.__EVENTTARGET=i.get_postBackElement().id;\n}if(i.get_postBackElement().name){this.__EVENTTARGET=i.get_postBackElement().name;\n}this.__EVENTARGUMENT=f._form.__EVENTARGUMENT.value;\nvar g=new Telerik.Web.UI.RadAjaxRequestEventArgs(this.__EVENTTARGET,f._form.__EVENTARGUMENT.value,this._enableAJAX);\nvar h=this.fireEvent(this,\"OnRequestStart\",[g]);\nif(g.get_cancel()||(typeof(h)!=\"undefined\"&&!h)){i.set_cancel(true);\nreturn;\n}if(!g._enableAjax||!g.EnableAjax){i.set_cancel(true);\nf._form.__EVENTTARGET.value=this.__EVENTTARGET;\nf._form.__EVENTARGUMENT.value=this.__EVENTARGUMENT;\nf._form.submit();\nreturn;\n}this._isRequestInProgress=true;\nthis._attachRequestHandlers(f,i,true);\n},_endRequest:function(f,l){var g=this.context;\nf.remove_endRequest(g._endRequestHandler);\nfor(var a=0,j=Telerik.Web.UI.RadAjaxControl.panelsToClear.length;\na0){g.__id=this.id;\ng._executePendingRequest();\n}},_queueRequest:function(e,d){d.set_cancel(true);\nif(this._requestQueue.length>=this._requestQueueSize){return;\n}var a=d.get_postBackElement();\nvar c=a.id;\nif(a.name){c=a.name;\n}if(e._form.__EVENTTARGET&&e._form.__EVENTTARGET.value){c=e._form.__EVENTTARGET.value;\n}var b=e._form.__EVENTARGUMENT.value;\nArray.enqueue(this._requestQueue,[c,b]);\n},_executePendingRequest:function(){var d=Array.dequeue(this._requestQueue);\nvar b=d[0];\nvar a=d[1];\nif(this._requestQueue.length>0&&this.__id!=\"\"){var c=$find(this.__id);\nif(c){Array.addRange(c._requestQueue,this._requestQueue);\n}}var e=Sys.WebForms.PageRequestManager.getInstance();\ne._doPostBack(b,a);\n},_attachRequestHandlers:function(c,f,a){this._endRequestHandler=Function.createDelegate({context:this,id:this.get_id()},this._endRequest);\nc.add_endRequest(this._endRequestHandler);\nthis._onFormSubmitCompletedHandler=Function.createDelegate(this,this._onFormSubmitCompleted);\nf.get_request().add_completed(this._onFormSubmitCompletedHandler);\nif(typeof(f.get_request()._get_eventHandlerList)==\"function\"){f.get_request()._get_eventHandlerList()._list.completed.reverse();\n}else{if(Sys.Observer){var e=Sys.Observer._getContext(f.get_request());\nif(e&&e.events){e.events._list.completed.reverse();\n}}}if(a){var d=f.get_request().get_body();\nvar b=(d.lastIndexOf(\"&\")!=d.length-1)?\"&\":\"\";\nd+=b+\"RadAJAXControlID=\"+c._uniqueIDToClientID(this._uniqueID);\nf.get_request().set_body(d);\n}},_getParentAjaxPanel:function(b){var a=null;\nwhile(b!=null){if(typeof(b.id)!=\"undefined\"&&$find(b.id)&&$find(b.id).Type==\"Telerik.Web.UI.RadAjaxPanel\"){a=$find(b.id);\nbreak;\n}b=b.parentNode;\n}return a;\n},getResponseItems:function(a,m,b){var j=Sys.WebForms.PageRequestManager.getInstance();\nvar c=a;\nvar n,d,f,l,k;\nvar h=0;\nvar e=null;\nvar i=\"|\";\nvar g=[];\nwhile(h=c.length){e=j._findText(c,c.length);\nbreak;\n}if(typeof(j._decodeString)!=\"undefined\"){k=j._decodeString(c.substr(h,d));\n}else{k=c.substr(h,d);\n}h+=d;\nif(c.charAt(h)!==i){e=j._findText(c,h);\nbreak;\n}h++;\nif(m!=undefined&&m!=f){continue;\n}if(b!=undefined&&b!=l){continue;\n}Array.add(g,{type:f,id:l,content:k});\n}return g;\n},pageLoading:function(a,b){},pageLoaded:function(a,b){},hideLoadingPanels:function(){for(var b=0;\nb0){return a[0];\n}var b=document.createElement(\"head\");\ndocument.documentElement.appendChild(b);\nreturn b;\n},ajaxRequest:function(a){__doPostBack(this._uniqueID,a);\n},ajaxRequestWithTarget:function(a,b){__doPostBack(a,b);\n},__doPostBack:function(c,b){var a=Sys.WebForms.PageRequestManager.getInstance()._form;\nif(a!=null){if(a.__EVENTTARGET!=null){a.__EVENTTARGET.value=c;\n}if(a.__EVENTARGUMENT!=null){a.__EVENTARGUMENT.value=b;\n}a.submit();\n}}};\nTelerik.Web.UI.RadAjaxControl.registerClass(\"Telerik.Web.UI.RadAjaxControl\",Sys.UI.Control);\nTelerik.Web.UI.RadAjaxRequestEventArgs=function(b,a,c){Telerik.Web.UI.RadAjaxRequestEventArgs.initializeBase(this);\nthis._enableAjax=c;\nthis._eventTarget=b;\nthis._eventArgument=a;\nthis._postbackControlClientID=b.replace(/(\\$|:)/g,\"_\");\nthis._eventTargetElement=$get(this._postbackControlClientID);\nthis.EnableAjax=this._enableAjax;\nthis.EventTarget=this._eventTarget;\nthis.EventArgument=this._eventArgument;\nthis.EventTargetElement=this._eventTargetElement;\n};\nTelerik.Web.UI.RadAjaxRequestEventArgs.prototype={get_enableAjax:function(){return this._enableAjax;\n},set_enableAjax:function(a){if(this._enableAjax!=a){this._enableAjax=a;\n}},get_eventTarget:function(){return this._eventTarget;\n},get_eventArgument:function(){return this._eventArgument;\n},get_eventTargetElement:function(){return this._eventTargetElement;\n}};\nTelerik.Web.UI.RadAjaxRequestEventArgs.registerClass(\"Telerik.Web.UI.RadAjaxRequestEventArgs\",Sys.CancelEventArgs);\nTelerik.Web.UI.RadAjaxControl.History={};\nTelerik.Web.UI.RadAjaxControl.HandleHistory=function(d,a){if(window.netscape){return;\n}var b=$get(d+\"_History\");\nif(b==null){b=document.createElement(\"iframe\");\nb.id=d+\"_History\";\nb.name=d+\"_History\";\nb.style.width=\"0px\";\nb.style.height=\"0px\";\nb.src=\"javascript:''\";\nb.style.visibility=\"hidden\";\nvar c=function(o){if(!Telerik.Web.UI.RadAjaxControl.ShouldLoadHistory){Telerik.Web.UI.RadAjaxControl.ShouldLoadHistory=true;\nreturn;\n}var j=\"\";\nvar l=\"\";\nvar m=b.contentWindow.document.getElementById(\"__DATA\");\nif(!m){return;\n}var g=m.value.split(\"&\");\nfor(var f=0,k=g.length;\nf\");\na.contentWindow.document.close();\nif(window.netscape){a.contentWindow.document.location.hash=\"#'\"+new Date()+\"'\";\n}};\nTelerik.Web.UI.RadAjaxControl.DecodePostData=function(a){if(decodeURIComponent){return decodeURIComponent(a);\n}else{return unescape(a);\n}};\nTelerik.Web.UI.RadAjaxControl.RestorePostData=function(d,a){if(d.tagName.toLowerCase()==\"select\"){for(var b=0,c=d.options.length;\nb1){return false;\n}return true;\n};\nTelerik.Web.UI.RadAjaxControl.EvalScriptCode=function(c){if(Telerik.Web.UI.RadAjaxControl.IsSafari()){c=c.replace(/^\\s*\\s*$/mi,\"$1\");\n}var b=document.createElement(\"script\");\nb.setAttribute(\"type\",\"text/javascript\");\nif(Telerik.Web.UI.RadAjaxControl.IsSafari()){b.appendChild(document.createTextNode(c));\n}else{b.text=c;\n}var a=document.getElementsByTagName(\"head\")[0];\na.appendChild(b);\nif(Telerik.Web.UI.RadAjaxControl.IsSafari()){b.innerHTML=\"\";\n}else{b.parentNode.removeChild(b);\n}};\nTelerik.Web.UI.RadAjaxControl.GetTags=function(f,a){var e=[];\nvar c=f;\nwhile(1){var d=Telerik.Web.UI.RadAjaxControl.GetTag(c,a);\nif(d.index==-1){break;\n}e[e.length]=d;\nvar b=d.index+d.outer.length;\nc=c.substring(b,c.length);\n}return e;\n};\nTelerik.Web.UI.RadAjaxControl.GetTag=function(c,b,d){if(typeof(d)==\"undefined\"){d=\"\";\n}var e=new RegExp(\"<\"+b+\"[^>]*>((.|\\n|\\r)*?)\",\"i\");\nvar a=c.match(e);\nif(a!=null&&a.length>=2){return{outer:a[0],inner:a[1],index:a.index};\n}else{return{outer:d,inner:d,index:-1};\n}};\nTelerik.Web.UI.RadAjaxControl.GetLinkHrefs=function(f){var d=f;\nvar e=[];\nwhile(1){var c=d.match(/]*href=('|\")?([^'\"]*)('|\")?([^>]*)>.*?(<\\/link>)?/i);\nif(c==null||c.length<3){break;\n}var a=c[2];\ne[e.length]=a;\nvar b=c.index+a.length;\nd=d.substring(b,d.length);\n}return e;\n};\nTelerik.Web.UI.RadAjaxControl.GetScriptsSrc=function(f){var d=f;\nvar e=[];\nwhile(1){var c=d.match(/]*src=('|\")?([^'\"]*)('|\")?([^>]*)>.*?(<\\/script>)?/i);\nif(c==null||c.length<3){break;\n}var a=c[2];\ne[e.length]=a;\nvar b=c.index+a.length;\nd=d.substring(b,d.length);\n}return e;\n};\nTelerik.Web.UI.RadAjaxControl.IsSafari=function(){return(navigator.userAgent.match(/safari/i)!=null);\n};\nType.registerNamespace(\"Telerik.Web.UI\");\n$telerik.findAjaxLoadingPanel=$find;\n$telerik.toAjaxLoadingPanel=function(a){return a;\n};\nTelerik.Web.UI.RadAjaxLoadingPanel=function(a){var b=[\"showing\",\"hiding\"];\nthis._initializeClientEvents(b);\nTelerik.Web.UI.RadAjaxLoadingPanel.initializeBase(this,[a]);\nthis._uniqueID=\"\";\nthis._minDisplayTime=0;\nthis._initialDelayTime=0;\nthis._isSticky=false;\nthis._transparency=0;\nthis._manager=null;\nthis._zIndex=90000;\nthis.skin=\"\";\nthis._animationDuration=0;\nthis.UniqueID=this._uniqueID;\nthis.MinDisplayTime=this._minDisplayTime;\nthis.InitialDelayTime=this._initialDelayTime;\nthis.IsSticky=this._isSticky;\nthis.Transparency=this._transparency;\nthis.ZIndex=this._zIndex;\n};\nTelerik.Web.UI.RadAjaxLoadingPanel.prototype={initialize:function(){Telerik.Web.UI.RadAjaxLoadingPanel.callBaseMethod(this,\"initialize\");\n},dispose:function(){Telerik.Web.UI.RadAjaxLoadingPanel.callBaseMethod(this,\"dispose\");\n},get_zIndex:function(){return this._zIndex;\n},set_zIndex:function(a){if(this._zIndex!=a){this._zIndex=a;\n}},get_uniqueID:function(){return this._uniqueID;\n},set_uniqueID:function(a){if(this._uniqueID!=a){this._uniqueID=a;\nwindow[Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(this._uniqueID)]=this;\n}},get_initialDelayTime:function(){return this._initialDelayTime;\n},set_initialDelayTime:function(a){if(this._initialDelayTime!=a){this._initialDelayTime=a;\n}},get_isSticky:function(){return this._isSticky;\n},set_isSticky:function(a){if(this._isSticky!=a){this._isSticky=a;\n}},get_minDisplayTime:function(){return this._minDisplayTime;\n},set_minDisplayTime:function(a){if(this._minDisplayTime!=a){this._minDisplayTime=a;\n}},get_transparency:function(){return this._transparency;\n},set_transparency:function(a){if(this._transparency!=a){this._transparency=a;\n}},get_animationDuration:function(){return this._animationDuration;\n},set_animationDuration:function(a){this._animationDuration=a;\n},show:function(b){var a=$get(b+\"_wrapper\");\nif((typeof(a)==\"undefined\")||(!a)){a=$get(b);\n}var e=this.get_element();\nif(!(a&&e)){return false;\n}var c=this._initialDelayTime;\nvar d=this;\nvar f=(!this._isSticky)?this.cloneLoadingPanel(e,b):e;\nif(c){window.setTimeout(function(){try{if(d._manager!=null&&d._manager._isRequestInProgress){d.displayLoadingElement(f,a);\n}}catch(g){}},c);\n}else{this.displayLoadingElement(f,a);\n}return true;\n},hide:function(e){var b=$get(e);\nvar d=String.format(\"{0}_wrapper\",e);\nvar c=$get(d);\nif(c){b=c;\n}if(this.get_element()==null){var h=$get(Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(this._uniqueID));\nif(h==null){return;\n}this._element=h;\n}var f=(!this._isSticky)?$get(this.get_element().id+e):this.get_element();\nvar a=new Date();\nif(f==null){return;\n}var j=a-f._startDisplayTime;\nvar k=this._minDisplayTime;\nvar g=new Telerik.Web.UI.AjaxLoadingPanelEventArgs(f,b);\nthis.raise_hiding(g);\nif(!g.get_cancelNativeDisplay()){var i=this.get_animationDuration();\nif(this._isSticky){if(k>j){window.setTimeout(function(){if(i>0){$telerik.$(f).fadeOut(i,function(){f.style.display=\"none\";\n});\n}else{f.style.display=\"none\";\n}},k-j);\n}else{if(i>0){$telerik.$(f).fadeOut(i,function(){f.style.display=\"none\";\n});\n}else{f.style.display=\"none\";\n}}}else{if(k>j){window.setTimeout(function(){if(i>0){$telerik.$(f).fadeOut(i,function(){f.parentNode.removeChild(f);\n});\n}else{f.parentNode.removeChild(f);\n}},k-j);\n}else{if(i>0){$telerik.$(f).fadeOut(i,function(){f.parentNode.removeChild(f);\n});\n}else{f.parentNode.removeChild(f);\n}}}}if(!this._isSticky&&typeof(b)!=\"undefined\"&&(b!=null)){b.style.visibility=\"visible\";\n}},cloneLoadingPanel:function(c,b){var a=c.cloneNode(false);\na.innerHTML=c.innerHTML;\na.id=c.id+b;\ndocument.body.insertBefore(a,document.body.firstChild);\nreturn a;\n},displayLoadingElement:function(b,a){if(!this._isSticky){if($telerik.isIE6){this._setDropDownsVisibitily(a,false);\n}var c=this.getElementRectangle(a);\nb.style.position=\"absolute\";\nb.style.width=c.width+\"px\";\nb.style.height=c.height+\"px\";\nb.style.left=c.left+\"px\";\nb.style.top=c.top+\"px\";\nb.style.textAlign=\"center\";\nb.style.zIndex=this._zIndex;\n}var e=100-parseInt(this._transparency);\nif(e<100){$telerik.$(b).css(\"opacity\",e/100);\n}var f=this;\nhideUpdatedElement=function(){if(e==100&&!f._isSticky){var g=true;\nif(f.skin!=\"\"){if($telerik.isIE){if($telerik.$(b).css(\"filter\").indexOf(\"opacity\")!=-1||$telerik.$(b.firstChild.nextSibling).css(\"filter\").indexOf(\"opacity\")!=-1){g=false;\n}}else{if($telerik.$(b).css(\"opacity\")>0||$telerik.$(b.getElementsByClassName(\"raDiv\")[0]).css(\"opacity\")>0){g=false;\n}}}if(g){a.style.visibility=\"hidden\";\n}}};\nvar d=new Telerik.Web.UI.AjaxLoadingPanelEventArgs(b,a);\nthis.raise_showing(d);\nif(!d.get_cancelNativeDisplay()){if(this.get_animationDuration()>0){$telerik.$(b).css(\"opacity\",0);\nb.style.display=\"\";\n$telerik.$(b).animate({opacity:e/100},this.get_animationDuration(),hideUpdatedElement);\n}else{b.style.display=\"\";\nhideUpdatedElement();\n}}b._startDisplayTime=new Date();\n},_setDropDownsVisibitily:function(a,b){if(!a){a=this;\n}a.className+=\" RadAjaxUpdatedElement\";\n},getElementRectangle:function(a){if(!a){a=this;\n}var d=$telerik.getLocation(a);\nvar e=d.x;\nvar f=d.y;\nvar c=a.offsetWidth;\nvar b=a.offsetHeight;\nreturn{left:e,top:f,width:c,height:b};\n},_initializeClientEvents:function(c){if(c){var e=this;\nfor(var a=0,b=c.length;\na\n\nFacebook
 
" }, "redirectURL": "", "headersSize": -1, "bodySize": -1, "_transferSize": 31877, "_error": null }, "serverIPAddress": "157.240.8.35", "startedDateTime": "2021-02-05T13:30:00.737Z", "time": 290.39400000328897, "timings": { "blocked": 13.487000004263129, "dns": -1, "ssl": -1, "connect": -1, "send": 0.26000000000000023, "wait": 247.68600000268268, "receive": 28.960999996343162, "_blocked_queueing": 11.640000004263129 } }, { "_initiator": { "type": "parser", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 713 }, "_priority": "VeryHigh", "_resourceType": "document", "cache": {}, "connection": "246912", "pageref": "page_3", "request": { "method": "GET", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Host", "value": "platform.twitter.com" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Upgrade-Insecure-Requests", "value": "1" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" }, { "name": "Accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" }, { "name": "Sec-Fetch-Site", "value": "cross-site" }, { "name": "Sec-Fetch-Mode", "value": "navigate" }, { "name": "Sec-Fetch-Dest", "value": "iframe" }, { "name": "Referer", "value": "http://halo.bungie.net/" }, { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, { "name": "Accept-Language", "value": "en-AU,en;q=0.9" }, { "name": "Cookie", "value": "personalization_id=\"v1_wmq1fHrelYWbGA/lm+yBtg==\"; guest_id=v1%3A158223014612656976; ads_prefs=\"HBIRAAA=\"; twid=u%3D30780060; syndication_guest_id=v1%3A159230588752860449" }, { "name": "dnt", "value": "1" } ], "queryString": [ { "name": "url", "value": "http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest" }, { "name": "related", "value": "bungie" } ], "cookies": [ { "name": "personalization_id", "value": "\"v1_wmq1fHrelYWbGA/lm+yBtg==\"", "expires": null, "httpOnly": false, "secure": false }, { "name": "guest_id", "value": "v1%3A158223014612656976", "expires": null, "httpOnly": false, "secure": false }, { "name": "ads_prefs", "value": "\"HBIRAAA=\"", "expires": null, "httpOnly": false, "secure": false }, { "name": "twid", "value": "u%3D30780060", "expires": null, "httpOnly": false, "secure": false }, { "name": "syndication_guest_id", "value": "v1%3A159230588752860449", "expires": null, "httpOnly": false, "secure": false } ], "headersSize": 860, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Content-Encoding", "value": "gzip" }, { "name": "Access-Control-Allow-Methods", "value": "GET" }, { "name": "Access-Control-Allow-Origin", "value": "*" }, { "name": "Age", "value": "250" }, { "name": "Cache-Control", "value": "public, max-age=1800" }, { "name": "Content-Type", "value": "text/html; charset=utf-8" }, { "name": "Date", "value": "Fri, 05 Feb 2021 13:30:00 GMT" }, { "name": "Etag", "value": "\"9d1cafea4a1f6dc8b1c74e5ec9fa2468+gzip\"" }, { "name": "Last-Modified", "value": "Thu, 01 Oct 2020 21:52:34 GMT" }, { "name": "P3P", "value": "CP=\"CAO DSP LAW CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa OUR BUS IND UNI COM NAV INT\"" }, { "name": "Server", "value": "ECS (nwa/E788)" }, { "name": "Vary", "value": "Accept-Encoding" }, { "name": "X-Cache", "value": "HIT" }, { "name": "x-tw-cdn", "value": "VZ" }, { "name": "Content-Length", "value": "19269" }, { "name": "X-DNS-Prefetch-Control", "value": "off" } ], "cookies": [], "content": { "size": 59812, "mimeType": "text/html", "compression": 40572, "text": "\n\n\n \n \n Twitter Tweet Button\n \n \n\n\n
\n\n\n\n" }, "redirectURL": "", "headersSize": 545, "bodySize": 19240, "_transferSize": 19785, "_error": null }, "serverIPAddress": "192.229.237.25", "startedDateTime": "2021-02-05T13:30:00.741Z", "time": 21.464999997988343, "timings": { "blocked": 9.348999999673106, "dns": -1, "ssl": -1, "connect": -1, "send": 0.17399999999999993, "wait": 7.420000002683606, "receive": 4.5219999956316315, "_blocked_queueing": 7.198999999673106 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/base_css/new_reachStats.css" }, "_priority": "Low", "_resourceType": "image", "cache": {}, "connection": "1643", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/images/reachStats/sprite_glowCorners_62_59.png", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/base_css/new_reachStats.css" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 05:54:33 GMT" }, { "name": "CF-Cache-Status", "value": "HIT" }, { "name": "Age", "value": "13208" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Content-Disposition", "value": "inline; filename=\"sprite_glowCorners_62_59.webp\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "1094" }, { "name": "cf-request-id", "value": "08125ab7f20000da5e43a4b000000001" }, { "name": "Last-Modified", "value": "Thu, 17 Oct 2013 21:04:30 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "ETag", "value": "\"0399787ccbce1:0\"" }, { "name": "Vary", "value": "Accept" }, { "name": "Content-Type", "value": "image/webp" }, { "name": "Cache-Control", "value": "max-age=86400" }, { "name": "Cf-Polished", "value": "origFmt=png, origSize=2065" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61ca609fea6cda5e-SYD" }, { "name": "Cf-Bgj", "value": "imgq:85,h2pri" } ], "cookies": [], "content": { "size": 1094, "mimeType": "image/webp", "text": "UklGRj4EAABXRUJQVlA4TDIEAAAve0AdEM0IBBKA9jfeIaL/iawwSHIbSZIk9f8f3UC6mdcA7TnbySwCQiNJjqSsPA/u2ByzQ/dmqiQIYBu3jSUKIAjJRxPb3fGB7w98A9LYk4UCm9YZp3Fa9fFfzrTQJ2vkYGhbwCRc8uhcMeXyZNOwmXnim0ZmnAbYQhppX0D4An1qbZKyZSyIjxWan2sISORiMigrNKYwDDQIvGUeZZiPZ9ccasVPB4FQ0jAZQ+0UWQPHGwuplooMiARbru9G2OgHTpKMvjB0kZHxpTCVrOSaVPwF9vCnAzG1mhvpvbVLGHo6ITnlMKt0V9uBO9igi14vIOv3w7wdXFVmrv6st9ElXFSYnod8v6CJhaOSivOEkaKwGlDpaYLg5+eka34sLVE2mdYYVOcpiSHrkv9s6g7xSVU6dFDWk3wpGp7I3aTAHMOgeQRkAyYYqWAvSMuXiVRIFVFu4iTqF1jJdjgXZjD9SAtzfIjMCzgYqVjvGL1Mg8YUUS+pwR4bXoGthwmq4CUj9c/8pYX0gTVdVzD0b/IidJt7xuJTpetKJJnoDBsbu8+7IwvY3DnTlA7q4OCxabckn2e4D8pmLY1T93LvQIRi9TV1uXd2dS1xqruzNCpYoqCnuse5DmNzIglNo+WFWdzr8IhSX+wtxDyf4mC3dwhbhYRG72lLcdnLxR4RzYRst5xmci5OMoKeG8fPUHezxUnRbCTLTJU/squivbyAyKGcRVnYfRK0z5Umq3KeqKAJ55PyHkGc65BXCTbzxa2cN2/9c2/8v3nj/99b/jtP3i3/P7+fvvtd7c89/LmnvTvJqxu+Ori8eePy7u3dCdc3b/1zD++e9ufe3i3/uYe/84X+n99P/87fUb3Td/0e9DHB9wi4ycvwEgE/DQTClgGPE1wVYpYmY0Uj9xnZLJaTR1DSw4GmoC00G9WcCBnxNsPlOFoIk9IITnovnKH3JsXIrOVcCQOcfjjQC5gAikxkNRRR+rlw5kVJdAdSHTKi9othU32zoG7viNaPhayk1mUB3VO3f9j3iN6Phc7by63d0DLrqVf6oeRDrK7EAsU2rrUfEXCPjVUHQ5sLq+NERzWssYEGjtDRtYNKpzQLYapED4CJwIKUaK9IAxdQtTUQFnBk+ODWLT+SLvEJGjQ0Rqo7dLiBcgQeBQN1KS4MGpGuWFSbYQcb6AiOQRZ/eD9woTWJsn4gmXlTp8SrDxOTl39YRL9nm69WdKcdnFf1X87eem9Cw+AKyzHJCS7VzXEj7YfnlRO7FF8/vOwfMWp1wE2W/my+e5ohEpp9/XChDMG/TAZLeilfXxTQrka5zEx7XimIePA9kQRiqNEEW39qYSGbeMqyqzFTR7cH1idmhQvGSuUXyHZXY1q39GzzXMuahoHextB/uLt2SlpvJUVWORre38hPPQzSEdOUVS5FaBkHDv8fSQA=", "encoding": "base64" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.733Z", "time": 0.10099999781232327, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.08299999899463728, "receive": 0.01799999881768599, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/base_css/new_reachStats.css" }, "_priority": "Low", "_resourceType": "image", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/images/reachStatsNew/sprite_sideNav_h4.png", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/base_css/new_reachStats.css" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 13:17:28 GMT" }, { "name": "CF-Cache-Status", "value": "HIT" }, { "name": "Age", "value": "17650" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Content-Disposition", "value": "inline; filename=\"sprite_sideNav_h4.webp\"" }, { "name": "Content-Length", "value": "3066" }, { "name": "cf-request-id", "value": "0813f0384a0000fd46b7392000000001" }, { "name": "Last-Modified", "value": "Thu, 17 Oct 2013 21:04:32 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "ETag", "value": "\"030ca797ccbce1:0\"" }, { "name": "Vary", "value": "Accept" }, { "name": "Content-Type", "value": "image/webp" }, { "name": "Cache-Control", "value": "max-age=86400" }, { "name": "Cf-Polished", "value": "origFmt=png, origSize=4647" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61cce96d4eb5fd46-SYD" }, { "name": "Cf-Bgj", "value": "imgq:85,h2pri" } ], "cookies": [], "content": { "size": 3066, "mimeType": "image/webp", "text": "UklGRvILAABXRUJQVlA4TOYLAAAvhcAdEIehEJIkp/0lT+AcwkcFgmyb0o/2DjeQtk2237/Se7hCthGgM7jzl3wIllD9QT+5Azlg5IpW2IkDHDskvrVtrhs7tq1WvffsvXbe21lKl53Ve1a3s/dU9d7q/i+PiAhQlHxOAAGCAH4gIvoPUZKsIM5AqMKQMHiKPrgv+KTf/CV8r6o6vnOJdjCoyNeqmr5V3ZPz2EPYSQfOjxiIkpVYV1FP6w+hOREl4xEEVqbyNwA/LQS4xDr4a3UCSbXiR9WJheZ8LguTiDlEyUSsk6i3vwI49wU4gcYFwjp+PodeUBzPKSXaQcCLakIg7RivsdaI6uCFR/J0hajXkTShO2IqEd9QgYm2CkwyRHbKlXUQT9KeWDhktwliLUsyLZX1MJUoUYOCZypQz7iyqEubxJFHmKPqC+oGTNzAhHSCBZVVPCNWVfVCTlSHaszqG94qzuhFVf0MlNvQlyVT4pyNXmIdhQ0NfRVzTvFwR3HkOS+riam9RpVYnz0A5EcLSkK4CUHyVuj9K7I++yoFzfENQkNaX5ElN6jErLejHc13OE+i8NoDqswIY83hPAUkPS8NaTWiLS4+LhjkbM+ZVSYhCciSHEnPS8ULJ76uwrWtfnZcqELuFCbYRGRJjqx3Rnme6qiUHX1Vs/NsiVVeQgiDT4COBjqmCSpY2JwdlrRitpwhhCTqvSCkgNMzW+ZweUVaxZ7Z8ybQJxBloDknIAmUEzgbf36BIEkmIhNEvTo9t+SZ6U0ay9rWKVXdKKVUN9b7Jg3dLn3+3/EP0sH/uUQ7CFTknwv9/1Vnd8wxJunA+REDUTIT6yzqab4OzQ4yHi6wlvKfS/r7wjCXWAf/nZ1AV832iyps4ep83hdAxByiZCfWXdSb/2VmcS44k3jlAmMdbzHouxXHR++ddjDsVzegQdoxYs25WnbwwiOZXCHq7da12+6ovVT7TAVg11UYyBDZKVfWQY2kPbFwyG4wYi1LMi2V9QxKlKhBsQ8qkGNdWeSlTefIIzyqarK8AbAbgEknWFBZxYfVrKpeYl3YTbUe6hveKmL1oqp+gpXb0LRkSgWu9BLbrbCh2b4KAOSwIOk4gPfV1H6NVVRZnz0sqdDbtnQbNyFI3gq9f0XWZ1+l2NXx2cbV+vqKLLlBpb7p7ehuV9/hA0Qh7sOyTBhhzeEDApKel6v11Yi29u7jsEDONvCmMt26gCzJkfS8ZEucGtdxqGY/0w6q8LZTmOBVRJbkyHqxyvPUbpkybV/VLMZrZ5U0xgjSBEieAoNegVSwsDl7LGnFbIkxRhf1ko0+LHlmy7fxHq2vYr6x582gTyBKIJf6NOsCJbKnEMiDjiBJdiIzRL0Mzy0Z3+hNWsva1r1n3Sj1njfW+9yDbpHEiJ6F+1JoLy0K+DqoEimEnS8SpG9UB9HdqQfz2u7nJxe/D0cAnh2A/DI3vR1cOBdiwV7uEIjWrjqpB/faioGmjUr++DNeVArt+aKAr4OORhmYtU7UpYggxWtGc8UzXlISvLZADmBV45xZpZdk/pLv66DSV3dpfUHwqgg4mZHotT24dFQptJfxOAqFagpDIKG8RobotSVKpZ8DkhTar2UXLrFOz7hAwD7BEL02ZyAlBCG0F8JxuYNU4vmNdD+9yHRoQKJwr3twQge6ENqvBMi7qphF8tSGZwbPd2Bm1dcshfbrKiRwlvNFAi+6k+EmBMlrU1pjpx6oPLRfy0BQMWcMBpuvIl20EL22ZJLoeYYwkXhovxaNmRGcYkPhPOMMIYMiem1GJZcSvZYaghDar2WgcIpqkTixu3aJIHhtxkBPgS1YkOae2TKEEHgH3tlyRywlsorUPBBEr+1+AczKPgzFqxDaUyVA7kBVOx9QI4sCwizK/kcnh0WvzdJIu94p1ZS28NqMf17/R/MnFu5Lob20KODrIEv01iZdJKALBoHoTurBvLb7+buL34OjmX04zOSXOXg7eOcc1KIbSY1oTVVQD+61DfQt8Uolf3mzX1UK7fmigK+D3a6UYMgZlpeiGini4Zxm/7DUu+C1BXIAq1qBQ6WXZP6S7+sg286OWVNt1gWvbM0SMxK9tsfed8tCaN9kPI5CodpbEOhWYmWIXluiVPqjWZdC+7VM4RLbLXncm00YQ/TanGC9WxNCeyEclzvopcbP0v2UZHbTZp3Cve5BMg22C6H9SszepqqYRQ7o1T4YPN8BHKrxkEL7dRUSOMv5kLCk0xJF8tqUq7JTb5Z5aL+WYE3F/GaBwearShG9tgQkekZrsM5D+7VoPRjNKV6tcD4stXYYRfTajEwuJXotXa0Jof1aghVOUS0SyaZr1wmC12YE23uzd3bOpsEzW7Yl8Q68s+W0WkplFal5I4hem/2C3YmgM2UUQnuqZCZ3oKo7H9CVLAoIsyj7Hzs5LHptlkKfeqeUe9/CaxukdYBEwv4hujDqs1tLIFKC2U6tqqDHlgvulvg6gBiOejfwx8nWEhKCYAacZMzggRFdLrgv7kT6kYoXfK8FFw87MgbhTI2GTj/dv1BV9eP1wvRQEKRd0wvYuVN9XFhMEZqHgISLuCjxW2CnX93wME/F5PyI+hjMOXeBFVvn2pZMyXNGwjl1gh0O5NPA65zzURGzh4FAI8BEV8w4j1oR85ArCU2f0YgFCaTZ4UdHB06ZAHLuqcX5Wh8fPq4cZTpCCNyzoP02iAvRQz5VNYNZnPEBmSGEbzwb+J3u0stgEp8kz5Y5hNAeBwBI0ga+tEsvQmfKgGcCXb0iolMfOu3pG330JK0DdBL2fxZdGPnD7dITKcFsUqss6NHlgvvB1wF4ODo8LqqqgezSB3mfXdUsKn/dPyaPG8Z9cSfSj1T8av/QYu8epr1ZIKR+jQcJI+9fqKr68XoZPBQb0q7pu7Fzp/q4sJhiXD0M63aIe/m/BSb96oYHRDVwfrH8GACYAiu2zvW6ZMobUAkRCmOHB/k0LAJ4VMTsIdigEWCnK2acR62IOciVble3w0ossiVurY+OBksyw8i5pxYp5seHj+utyuw2xuCexa6/DepC9XBEVT2MWcT6gMDt8Hs28He6Sy9jID5dni3fxhjXh4Hu8Esb+NIuvQidKYd9UKYl9vzCoz/tP+vjJ7Yz/7Xj+788k2169vV6cRVA+Ko9cxypSsps4/++/A0niS7ZTj8ae7VHUlVxFeAEnCJzDEiy8l+JVL0vr8L3MoN+8/PpCsSUKiOSYsePtXbsPk6BlF5w3hcUPgQl79Diq7ygQM0KniVWKE/UexJxEQlIt5AQJNYp35MZ8/2YMT8QF+yrEeLvdTDlx2HHuA9M+XHQHO9X0RwfiBdc7gJXfhwK8v0oyPLkcl/0FY6Oess8Nehu/WAGF4ae4NR86p15ITR0smq6km+E3frdGZwnV2aEkBHuTQES+SiBvK/Ct1vfAJzJozydcdBHSTXtNz71b963vytf/Jny1R//kA9qEqM5vsShesCYG5CIC3WMSRIHnJymGP9ERuA8OAkkHcRdbKcgo6O60Kff0TH8Syml2cJ/lFJKX4gFrl1U6kZkYgF3BOPJeeonzaWU8m+HKpzAvxolFpLo+MR2v3c2tlCdQGT8e4GinKpflPM4zmKUVIIKNAJ1tPIkQM95m0ljiY6O3KZQlLAUXlJ5Og4tx2LRjmM2BhlM4OOrJVKeikmU6mCO1FcSgFM9yskMfk+EpSF5ARvYgjoTmafCAKOW36tAKCZiTysg+tLIbiMRwZhUvzDVcCN1zkPiKUwR1Rs5y3EbepYu/Zdy3sZTmZ9Elk93JapqHjpi+b36UdUmcAQhH6Gl2yizVJEvSuTkJ9UboLfdbXhyLFlvIxzlSeTTDBKt3FQ5Sle9qcKyEVrQG6nayxcivfxe+rPb0N6O29FjlkR+H28FitJFapmbUUteizy6XKrjKQu0IMxTVZynNJRDQltxtLAKK7+X56kWbqaqVsKB5Igx5k+9RMTSVVMJtYaShPMURbqDOPbiRWfLOEvearY0PjqiKTx+DteBHotNbqW0rHzCa02kElIrJZx+bJJbkvFF6bccFkYnXULSUzcxA0BvTrC1rwWHbpgOeXQK", "encoding": "base64" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.29.30", "startedDateTime": "2021-02-05T13:30:00.733Z", "time": 0.09599999611964449, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.08099999831756577, "receive": 0.014999997802078724, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "http://halo.bungie.net/base_css/new_reachStats.css" }, "_priority": "Low", "_resourceType": "image", "cache": {}, "connection": "1643", "pageref": "page_3", "request": { "method": "GET", "url": "http://halo.bungie.net/images/reachStatsNew/bg_40black.png", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/base_css/new_reachStats.css" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "http/1.1", "headers": [ { "name": "Date", "value": "Fri, 05 Feb 2021 05:54:32 GMT" }, { "name": "CF-Cache-Status", "value": "HIT" }, { "name": "Age", "value": "13207" }, { "name": "X-Powered-By", "value": "ASP.NET" }, { "name": "Content-Disposition", "value": "inline; filename=\"bg_40black.webp\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "34" }, { "name": "cf-request-id", "value": "08125ab4fa0000da5ef20c9000000001" }, { "name": "Last-Modified", "value": "Thu, 17 Oct 2013 21:04:32 GMT" }, { "name": "Server", "value": "cloudflare" }, { "name": "ETag", "value": "\"030ca797ccbce1:0\"" }, { "name": "Vary", "value": "Accept" }, { "name": "Content-Type", "value": "image/webp" }, { "name": "Cache-Control", "value": "max-age=86400" }, { "name": "Cf-Polished", "value": "origFmt=png, origSize=134" }, { "name": "Accept-Ranges", "value": "bytes" }, { "name": "CF-RAY", "value": "61ca609b29c0da5e-SYD" }, { "name": "Cf-Bgj", "value": "imgq:85,h2pri" } ], "cookies": [], "content": { "size": 34, "mimeType": "image/webp", "text": "UklGRhoAAABXRUJQVlA4TA4AAAAvGAAGEAcQEb0LRET/Aw==", "encoding": "base64" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "104.20.28.30", "startedDateTime": "2021-02-05T13:30:00.734Z", "time": 0.13300000136950985, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.11100000119768083, "receive": 0.022000000171829015, "_blocked_queueing": -1 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "1336", "url": "http://halo.bungie.net/Stats/Reach/Default.aspx?player=test", "lineNumber": 724, "columnNumber": 14 } ] } }, "_priority": "High", "_resourceType": "script", "cache": {}, "pageref": "page_3", "request": { "method": "GET", "url": "http://www.google-analytics.com/ga.js", "httpVersion": "http/1.1", "headers": [ { "name": "Referer", "value": "http://halo.bungie.net/" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" }, { "name": "Intervention", "value": "; level=\"warning\"" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 307, "statusText": "Internal Redirect", "httpVersion": "http/1.1", "headers": [ { "name": "Location", "value": "chrome-extension://pnjfhlmmeapfclcplcihceboadiigekg/web_accessible_resources/google-analytics_ga.js?secret=k78uha" }, { "name": "Non-Authoritative-Reason", "value": "WebRequest API" } ], "cookies": [], "content": { "size": 0, "mimeType": "x-unknown" }, "redirectURL": "chrome-extension://pnjfhlmmeapfclcplcihceboadiigekg/web_accessible_resources/google-analytics_ga.js?secret=k78uha", "headersSize": -1, "bodySize": -1, "_transferSize": 0, "_error": null }, "serverIPAddress": "", "startedDateTime": "2021-02-05T13:30:00.755Z", "time": 5.641999996441882, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 5.641999996441882, "receive": 0, "_blocked_queueing": -1 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [], "parent": { "description": "Image", "callFrames": [ { "functionName": "y", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 16118 }, { "functionName": "d", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 15808 }, { "functionName": "h", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 15573 }, { "functionName": "", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 27731 }, { "functionName": "n", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 254 }, { "functionName": "", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 25813 }, { "functionName": "n", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 254 }, { "functionName": "", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 1075 }, { "functionName": "", "scriptId": "540", "url": "https://platform.twitter.com/widgets/tweet_button.html?url=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&related=bungie", "lineNumber": 26, "columnNumber": 1085 } ] } } }, "_priority": "Low", "_resourceType": "image", "cache": {}, "request": { "method": "GET", "url": "https://syndication.twitter.com/i/jot?l=%7B%22language%22%3A%22en%22%2C%22message%22%3A%22m%3A%22%2C%22widget_origin%22%3A%22http%3A%2F%2Fhalo.bungie.net%2F%22%2C%22widget_frame%22%3A%7B%22ancestorOrigins%22%3A%7B%220%22%3A%22http%3A%2F%2Fhalo.bungie.net%22%7D%2C%22href%22%3A%22https%3A%2F%2Fplatform.twitter.com%2Fwidgets%2Ftweet_button.html%3Furl%3Dhttp%253a%252f%252fhalo.bungie.net%252fStats%252fReach%252fDefault.aspx%253fplayer%253dtest%26related%3Dbungie%22%2C%22origin%22%3A%22https%3A%2F%2Fplatform.twitter.com%22%2C%22protocol%22%3A%22https%3A%22%2C%22host%22%3A%22platform.twitter.com%22%2C%22hostname%22%3A%22platform.twitter.com%22%2C%22port%22%3A%22%22%2C%22pathname%22%3A%22%2Fwidgets%2Ftweet_button.html%22%2C%22search%22%3A%22%3Furl%3Dhttp%253a%252f%252fhalo.bungie.net%252fStats%252fReach%252fDefault.aspx%253fplayer%253dtest%26related%3Dbungie%22%2C%22hash%22%3A%22%22%7D%2C%22_category_%22%3A%22tfw_client_event%22%2C%22triggered_on%22%3A1612531801121%2C%22dnt%22%3Afalse%2C%22client_version%22%3A%22ed20a2b%3A1601588405575%22%2C%22format_version%22%3A1%2C%22event_namespace%22%3A%7B%22client%22%3A%22tfw%22%2C%22page%22%3A%22button%22%2C%22section%22%3A%22share%22%2C%22action%22%3A%22impression%22%7D%7D", "httpVersion": "", "headers": [ { "name": "Referer", "value": "https://platform.twitter.com/" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "l", "value": "%7B%22language%22%3A%22en%22%2C%22message%22%3A%22m%3A%22%2C%22widget_origin%22%3A%22http%3A%2F%2Fhalo.bungie.net%2F%22%2C%22widget_frame%22%3A%7B%22ancestorOrigins%22%3A%7B%220%22%3A%22http%3A%2F%2Fhalo.bungie.net%22%7D%2C%22href%22%3A%22https%3A%2F%2Fplatform.twitter.com%2Fwidgets%2Ftweet_button.html%3Furl%3Dhttp%253a%252f%252fhalo.bungie.net%252fStats%252fReach%252fDefault.aspx%253fplayer%253dtest%26related%3Dbungie%22%2C%22origin%22%3A%22https%3A%2F%2Fplatform.twitter.com%22%2C%22protocol%22%3A%22https%3A%22%2C%22host%22%3A%22platform.twitter.com%22%2C%22hostname%22%3A%22platform.twitter.com%22%2C%22port%22%3A%22%22%2C%22pathname%22%3A%22%2Fwidgets%2Ftweet_button.html%22%2C%22search%22%3A%22%3Furl%3Dhttp%253a%252f%252fhalo.bungie.net%252fStats%252fReach%252fDefault.aspx%253fplayer%253dtest%26related%3Dbungie%22%2C%22hash%22%3A%22%22%7D%2C%22_category_%22%3A%22tfw_client_event%22%2C%22triggered_on%22%3A1612531801121%2C%22dnt%22%3Afalse%2C%22client_version%22%3A%22ed20a2b%3A1601588405575%22%2C%22format_version%22%3A1%2C%22event_namespace%22%3A%7B%22client%22%3A%22tfw%22%2C%22page%22%3A%22button%22%2C%22section%22%3A%22share%22%2C%22action%22%3A%22impression%22%7D%7D" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 0, "statusText": "", "httpVersion": "", "headers": [], "cookies": [], "content": { "size": 0, "mimeType": "x-unknown" }, "redirectURL": "", "headersSize": -1, "bodySize": -1, "_transferSize": 0, "_error": "net::ERR_BLOCKED_BY_CLIENT" }, "serverIPAddress": "", "startedDateTime": "2021-02-05T13:30:01.123Z", "time": 0.0465939999994589, "timings": { "blocked": 0.0465939999994589, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0, "receive": 0, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "https://www.facebook.com/plugins/like.php?href=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=21", "lineNumber": 23 }, "_priority": "Low", "_resourceType": "image", "cache": {}, "connection": "237655", "request": { "method": "GET", "url": "https://static.xx.fbcdn.net/rsrc.php/v3/y5/r/OqOE21UvWe3.png", "httpVersion": "http/2.0", "headers": [ { "name": "Referer", "value": "https://www.facebook.com/" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "", "httpVersion": "http/2.0", "headers": [ { "name": "x-fb-debug", "value": "JKL3322d/kPFJL7zhIn42DCvfnKI9ZHn1wZytEqYewLzyQGrTTTroZeBtfIkKG3VQW8aRo6lstSbi8dGKOsL/g==" }, { "name": "x-fb-trip-id", "value": "95149190" }, { "name": "x-content-type-options", "value": "nosniff" }, { "name": "last-modified", "value": "Mon, 01 Jan 2001 08:00:00 GMT" }, { "name": "content-md5", "value": "uF0RL4E+h23ClLQmPOTTMw==" }, { "name": "date", "value": "Fri, 05 Feb 2021 13:17:07 GMT" }, { "name": "content-type", "value": "image/png" }, { "name": "access-control-allow-origin", "value": "*" }, { "name": "cache-control", "value": "public,max-age=31536000,immutable" }, { "name": "cross-origin-resource-policy", "value": "cross-origin" }, { "name": "timing-allow-origin", "value": "*" }, { "name": "alt-svc", "value": "h3-29=\":443\"; ma=3600,h3-27=\":443\"; ma=3600" }, { "name": "content-length", "value": "400" }, { "name": "x-fb-rlafr", "value": "0" }, { "name": "expires", "value": "Tue, 01 Feb 2022 15:44:11 GMT" } ], "cookies": [], "content": { "size": 400, "mimeType": "image/png", "text": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfjAhoHIAZgyLAFAAAAmElEQVQoz52RsQ1CMQxEL0iUdHRUrPDFGkzAHsyExByIGWi+BAUlpEFIX588CrASkw8F58rn6O7sBPQbowFup03R8VmBDphaXyusNJY0+aaw4AYcCcb48YwzAOvM+QdbSlxoLEMUipKWLk2nu2V4QSSncKi3SK7b14fyZ23zmmbRFwY989riJCm9da56ZIUIRDRU4Z/fdHgC6rypE5CyqrEAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMDItMjZUMTU6MzI6MDYtMDg6MDBKAfhMAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTAyLTI2VDE1OjMyOjA2LTA4OjAwO1xA8AAAAABJRU5ErkJggg==", "encoding": "base64" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "157.240.8.23", "startedDateTime": "2021-02-05T13:30:01.098Z", "time": 0.14000000373926014, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.11600000289035961, "receive": 0.024000000848900527, "_blocked_queueing": -1 } }, { "_fromCache": "memory", "_initiator": { "type": "parser", "url": "https://www.facebook.com/plugins/like.php?href=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=21", "lineNumber": 23 }, "_priority": "Low", "_resourceType": "image", "cache": {}, "connection": "237655", "request": { "method": "GET", "url": "https://static.xx.fbcdn.net/rsrc.php/v3/yn/r/gmXNyOo48lS.png", "httpVersion": "http/2.0", "headers": [ { "name": "Referer", "value": "https://www.facebook.com/" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "", "httpVersion": "http/2.0", "headers": [ { "name": "x-fb-debug", "value": "e6kgH0oE+JYHp3AMVMWOaT01VRKB0aAc0PaWjoCUSsn9WMIonPMd6jGHXHeTMI6pX5C6L5sh5xQv/96II8TjWA==" }, { "name": "x-fb-trip-id", "value": "95149190" }, { "name": "x-content-type-options", "value": "nosniff" }, { "name": "last-modified", "value": "Mon, 01 Jan 2001 08:00:00 GMT" }, { "name": "content-md5", "value": "8DX5DnlZtm0W1VsceXt3tQ==" }, { "name": "date", "value": "Fri, 05 Feb 2021 13:17:07 GMT" }, { "name": "content-type", "value": "image/png" }, { "name": "access-control-allow-origin", "value": "*" }, { "name": "cache-control", "value": "public,max-age=31536000,immutable" }, { "name": "cross-origin-resource-policy", "value": "cross-origin" }, { "name": "timing-allow-origin", "value": "*" }, { "name": "alt-svc", "value": "h3-29=\":443\"; ma=3600,h3-27=\":443\"; ma=3600" }, { "name": "content-length", "value": "341" }, { "name": "x-fb-rlafr", "value": "0" }, { "name": "expires", "value": "Tue, 01 Feb 2022 15:45:48 GMT" } ], "cookies": [], "content": { "size": 341, "mimeType": "image/png", "text": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAJiS0dEAP+Hj8y/AAAAB3RJTUUH4wIaEwUegHjzGAAAAIlJREFUKM+10T0OAQEQBeChcwFH0TgBkWgUG5GolCqFRESoaFQOK2R3P8Vm7WLpzBTz3szL/GRa4re143+CfpyiExGafeiKni+CsRsuolkwcce5YEVqZ/QsT6U4ljyErlxmJoS5DPuqXxHWSCUWcmzqA0uwRSrH6nWjCh7A8n3lOkkMPm9q/f9ZD/xEsXlYnbROAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTAyLTI3VDAzOjA1OjMwLTA4OjAwT+IY1wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wMi0yN1QwMzowNTozMC0wODowMD6/oGsAAAAASUVORK5CYII=", "encoding": "base64" }, "redirectURL": "", "headersSize": -1, "bodySize": 0, "_transferSize": 0, "_error": null }, "serverIPAddress": "157.240.8.23", "startedDateTime": "2021-02-05T13:30:01.098Z", "time": 0.14099999680183828, "timings": { "blocked": -1, "dns": -1, "ssl": -1, "connect": -1, "send": 0, "wait": 0.12299999798415229, "receive": 0.01799999881768599, "_blocked_queueing": -1 } }, { "_fromCache": "disk", "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "347", "url": "", "lineNumber": 0, "columnNumber": 773 }, { "functionName": "l", "scriptId": "359", "url": "https://www.facebook.com/plugins/like.php?href=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=21", "lineNumber": 2, "columnNumber": 12638 }, { "functionName": "load", "scriptId": "359", "url": "https://www.facebook.com/plugins/like.php?href=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=21", "lineNumber": 2, "columnNumber": 13147 }, { "functionName": "", "scriptId": "359", "url": "https://www.facebook.com/plugins/like.php?href=http%3a%2f%2fhalo.bungie.net%2fStats%2fReach%2fDefault.aspx%3fplayer%3dtest&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=21", "lineNumber": 2, "columnNumber": 13562 } ] } }, "_priority": "High", "_resourceType": "xhr", "cache": {}, "request": { "method": "GET", "url": "https://static.xx.fbcdn.net/rsrc.php/v3iEpO4/yJ/l/en_US/R0AHfXKWp_C.js?_nc_x=m34j4uweIRR", "httpVersion": "http/2.0", "headers": [ { "name": "Referer", "value": "https://www.facebook.com/" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" } ], "queryString": [ { "name": "_nc_x", "value": "m34j4uweIRR" } ], "cookies": [], "headersSize": -1, "bodySize": 0 }, "response": { "status": 200, "statusText": "", "httpVersion": "http/2.0", "headers": [ { "name": "vary", "value": "Accept-Encoding" }, { "name": "x-content-type-options", "value": "nosniff" }, { "name": "content-type", "value": "application/x-javascript; charset=utf-8" }, { "name": "timing-allow-origin", "value": "*" }, { "name": "content-encoding", "value": "br" }, { "name": "x-fb-rlafr", "value": "0" }, { "name": "cache-control", "value": "public,max-age=31536000,immutable" }, { "name": "expires", "value": "Sat, 05 Feb 2022 01:47:40 GMT" }, { "name": "last-modified", "value": "Mon, 01 Jan 2001 08:00:00 GMT" }, { "name": "cross-origin-resource-policy", "value": "cross-origin" }, { "name": "access-control-allow-origin", "value": "*" }, { "name": "content-md5", "value": "/VoPf0eKCJRxuZlLwppxnQ==" }, { "name": "x-fb-debug", "value": "c5Qno3YTsV+ioSc1co97z4ULEQzRQD58EDD+yQVUYvjzMKy9eCkIzii/xSJG9W0ha118ET8DKSwZwRRDKnwHyw==" }, { "name": "content-length", "value": "125505" }, { "name": "x-fb-trip-id", "value": "95149190" }, { "name": "date", "value": "Fri, 05 Feb 2021 13:17:07 GMT" }, { "name": "alt-svc", "value": "h3-29=\":443\"; ma=3600,h3-27=\":443\"; ma=3600" } ], "cookies": [], "content": { "size": 489178, "mimeType": "application/x-javascript", "text": "if (self.CavalryLogger) { CavalryLogger.start_js([\"Z3urS\"]); }\n\n\n\n\n\"use strict\";(function(){if(!Array.prototype.flat){var a=function b(a){return a<1?Array.prototype.slice.call(this):Array.prototype.reduce.call(this,function(c,d){Array.isArray(d)?c.push.apply(c,b.call(d,a-1)):c.push(d);return c},[])};Array.prototype.flat=function(){return a.call(this,isNaN(arguments[0])?1:Number(arguments[0]))}}if(!Array.prototype.flatMap){var b=function(a,b){var c=[];if(typeof b!==\"function\")throw new TypeError(\"Callback function must be callable.\");for(var d=0;d1?c(arguments[1]):0,h=g<0?Math.max(f+g,0):g,i=Number.isNaN(d);while(h=0?1:-1}})();\n(function(){var a={},b=function(a,b){if(!a&&!b)return null;var c={};typeof a!==\"undefined\"&&(c.type=a);typeof b!==\"undefined\"&&(c.signature=b);return c},c=function(a,c){return b(a&&/^[A-Z]/.test(a)?a:void 0,c&&(c.params&&c.params.length||c.returns)?\"function(\"+(c.params?c.params.map(function(a){return/\\?/.test(a)?\"?\"+a.replace(\"?\",\"\"):a}).join(\",\"):\"\")+\")\"+(c.returns?\":\"+c.returns:\"\"):void 0)},d=function(a,b,c){return a},e=function(a,b,d){\"sourcemeta\"in __transform_includes&&(a.__SMmeta=b);if(\"typechecks\"in __transform_includes){b=c(b?b.name:void 0,d);b&&__w(a,b)}return a},f=function(a,b,c){return c.apply(a,b)},g=function(a,b,c,d){d&&d.params&&__t.apply(a,d.params);c=c.apply(a,b);d&&d.returns&&__t([c,d.returns]);return c};g=function(b,c,d,e,f){if(f){f.callId||(f.callId=f.module+\":\"+(f.line||0)+\":\"+(f.column||0));e=f.callId;a[e]=(a[e]||0)+1}return d.apply(b,c)};typeof __transform_includes===\"undefined\"?(__annotator=d,__bodyWrapper=f):(__annotator=e,\"codeusage\"in __transform_includes?(__annotator=d,__bodyWrapper=g,__bodyWrapper.getCodeUsage=function(){return a},__bodyWrapper.clearCodeUsage=function(){a={}}):\"typechecks\"in __transform_includes?__bodyWrapper=f:__bodyWrapper=f)})();\n__t=function(a){return a[0]},__w=function(a){return a};\nself.__DEV__=self.__DEV__||0,self.emptyFunction=function(){};\n\n\n\n(function(a,b){var c=\"keys\",d=\"values\",e=\"entries\",f=function(){var a=h(Array),b;a||(b=function(){\"use strict\";function a(a,b){this.$1=a,this.$2=b,this.$3=0}var b=a.prototype;b.next=function(){if(this.$1==null)return{value:void 0,done:!0};var a=this.$1,b=this.$1.length,f=this.$3,g=this.$2;if(f>=b){this.$1=void 0;return{value:void 0,done:!0}}this.$3=f+1;if(g===c)return{value:f,done:!1};else if(g===d)return{value:a[f],done:!1};else if(g===e)return{value:[f,a[f]],done:!1}};b[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]=function(){return this};return a}());return{keys:a?function(a){return a.keys()}:function(a){return new b(a,c)},values:a?function(a){return a.values()}:function(a){return new b(a,d)},entries:a?function(a){return a.entries()}:function(a){return new b(a,e)}}}(),g=function(){var a=h(String),b;a||(b=function(){\"use strict\";function a(a){this.$1=a,this.$2=0}var b=a.prototype;b.next=function(){if(this.$1==null)return{value:void 0,done:!0};var a=this.$2,b=this.$1,c=b.length;if(a>=c){this.$1=void 0;return{value:void 0,done:!0}}var d=b.charCodeAt(a);if(d<55296||d>56319||a+1===c)d=b[a];else{c=b.charCodeAt(a+1);c<56320||c>57343?d=b[a]:d=b[a]+b[a+1]}this.$2=a+d.length;return{value:d,done:!1}};b[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]=function(){return this};return a}());return{keys:function(){throw TypeError(\"Strings default iterator doesn't implement keys.\")},values:a?function(a){return a[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]()}:function(a){return new b(a)},entries:function(){throw TypeError(\"Strings default iterator doesn't implement entries.\")}}}();function h(a){return typeof a.prototype[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]===\"function\"&&typeof a.prototype.values===\"function\"&&typeof a.prototype.keys===\"function\"&&typeof a.prototype.entries===\"function\"}var i=function(){\"use strict\";function a(a,b){this.$1=a,this.$2=b,this.$3=Object.keys(a),this.$4=0}var b=a.prototype;b.next=function(){var a=this.$3.length,b=this.$4,f=this.$2,g=this.$3[b];if(b>=a){this.$1=void 0;return{value:void 0,done:!0}}this.$4=b+1;if(f===c)return{value:g,done:!1};else if(f===d)return{value:this.$1[g],done:!1};else if(f===e)return{value:[g,this.$1[g]],done:!1}};b[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]=function(){return this};return a}(),j={keys:function(a){return new i(a,c)},values:function(a){return new i(a,d)},entries:function(a){return new i(a,e)}};function k(a,b){if(typeof a===\"string\")return g[b||d](a);else if(Array.isArray(a))return f[b||d](a);else if(a[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"])return a[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();else return j[b||e](a)}Object.assign(k,{KIND_KEYS:c,KIND_VALUES:d,KIND_ENTRIES:e,keys:function(a){return k(a,c)},values:function(a){return k(a,d)},entries:function(a){return k(a,e)},generic:j.entries});a.FB_enumerate=k})(typeof global===\"undefined\"?this:global);\n\n\n\n\n\n\"use strict\";(function(){if(typeof Element===\"undefined\"||Element.prototype.scroll)return;function a(a,b){b===void 0&&(b=!1);if(a.length===0)return;var c=a[0],d=a[1];c=Number(c)||0;d=Number(d)||0;if(a.length===1){a=a[0];if(a==null)return;c=a.left;d=a.top;c!==void 0&&(c=Number(c)||0);d!==void 0&&(d=Number(d)||0)}c!==void 0&&(this.scrollLeft=(b?this.scrollLeft:0)+c);d!==void 0&&(this.scrollTop=(b?this.scrollTop:0)+d)}Element.prototype.scroll=Element.prototype.scrollTo=function(){a.call(this,arguments)};Element.prototype.scrollBy=function(){a.call(this,arguments,!0)}})();\n\n\ntypeof window!==\"undefined\"&&window.JSON&&JSON.stringify([\"\\u2028\\u2029\"])==='[\"\\u2028\\u2029\"]'&&(JSON.stringify=function(a){var b=/\\u2028/g,c=/\\u2029/g;return function(d,e,f){d=a.call(this,d,e,f);d&&(-1=a.length)break;e=a[d++]}else{d=a.next();if(d.done)break;e=d.value}e=e;var f=e[0];e=e[1];b[f]=e}return b});Object.values=function(b){if(b==null)throw new TypeError(\"Object.values called on non-object\");var c=[];for(var d in b)a.call(b,d)&&c.push(b[d]);return c}})();\n\n\n(function(a){a.__m=function(a,b){a.__SMmeta=b;return a}})(this);\n\n\nString.prototype.contains||(String.prototype.contains=String.prototype.includes);\nString.prototype.padStart||(String.prototype.padStart=function(a,b){a=a>>0;b=String(b||\" \");if(this.length>a)return String(this);else{a=a-this.length;a>b.length&&(b+=b.repeat(a/b.length));return b.slice(0,a)+String(this)}}),String.prototype.padEnd||(String.prototype.padEnd=function(a,b){a=a>>0;b=String(b||\" \");if(this.length>a)return String(this);else{a=a-this.length;a>b.length&&(b+=b.repeat(a/b.length));return String(this)+b.slice(0,a)}});\nString.prototype.trimLeft||(String.prototype.trimLeft=function(){return this.replace(/^\\s+/,\"\")}),String.prototype.trimRight||(String.prototype.trimRight=function(){return this.replace(/\\s+$/,\"\")});\n\n\n\n\n(function(a){var b=a.babelHelpers={},c=Object.prototype.hasOwnProperty;typeof Symbol!==\"undefined\"&&!(typeof Symbol===\"function\"?Symbol.asyncIterator:\"@@asyncIterator\")&&(Symbol.asyncIterator=Symbol(\"Symbol.asyncIterator\"));function d(a){this.wrapped=a}function e(a){var b,c;function e(a,d){return new Promise(function(e,g){e={key:a,arg:d,resolve:e,reject:g,next:null};c?c=c.next=e:(b=c=e,f(a,d))})}function f(b,c){try{var e=a[b](c);c=e.value;var h=c instanceof d;Promise.resolve(h?c.wrapped:c).then(function(a){if(h){f(b===\"return\"?\"return\":\"next\",a);return}g(e.done?\"return\":\"normal\",a)},function(a){f(\"throw\",a)})}catch(a){g(\"throw\",a)}}function g(a,d){switch(a){case\"return\":b.resolve({value:d,done:!0});break;case\"throw\":b.reject(d);break;default:b.resolve({value:d,done:!1});break}b=b.next;b?f(b.key,b.arg):c=null}this._invoke=e;typeof a[\"return\"]!==\"function\"&&(this[\"return\"]=void 0)}typeof Symbol===\"function\"&&(typeof Symbol===\"function\"?Symbol.asyncIterator:\"@@asyncIterator\")&&(e.prototype[typeof Symbol===\"function\"?Symbol.asyncIterator:\"@@asyncIterator\"]=function(){return this});e.prototype.next=function(a){return this._invoke(\"next\",a)};e.prototype[\"throw\"]=function(a){return this._invoke(\"throw\",a)};e.prototype[\"return\"]=function(a){return this._invoke(\"return\",a)};b.inheritsLoose=function(a,b){Object.assign(a,b);a.prototype=Object.create(b&&b.prototype);a.prototype.constructor=a;a.__superConstructor__=b;return b};b.wrapNativeSuper=function(a){var c=typeof Map===\"function\"?new Map():void 0;b.wrapNativeSuper=function(a){if(a===null)return null;if(typeof a!==\"function\")throw new TypeError(\"Super expression must either be null or a function\");if(c!==void 0){if(c.has(a))return c.get(a);c.set(a,d)}b.inheritsLoose(d,a);function d(){a.apply(this,arguments)}return d};return b.wrapNativeSuper(a)};b.assertThisInitialized=function(a){if(a===void 0)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return a};b._extends=Object.assign;b[\"extends\"]=b._extends;b.construct=function(a,b){return new(Function.prototype.bind.apply(a,[null].concat(b)))()};b.objectWithoutPropertiesLoose=function(a,b){var d={};for(var e in a){if(!c.call(a,e)||b.indexOf(e)>=0)continue;d[e]=a[e]}return d};b.taggedTemplateLiteralLoose=function(a,b){b||(b=a.slice(0));a.raw=b;return a};b.bind=Function.prototype.bind;b.wrapAsyncGenerator=function(a){return function(){return new e(a.apply(this,arguments))}};b.awaitAsyncGenerator=function(a){return new d(a)};b.asyncIterator=function(a){var b;if(typeof Symbol!==\"undefined\"){if(typeof Symbol===\"function\"?Symbol.asyncIterator:\"@@asyncIterator\"){b=a[Symbol.asyncIterator];if(b!=null)return b.call(a)}if(typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"){b=a[Symbol.iterator];if(b!=null)return b.call(a)}}throw new TypeError(\"Object is not async iterable\")};b.asyncGeneratorDelegate=function(a,b){var c={},d=!1;function e(c,e){d=!0;e=new Promise(function(b){b(a[c](e))});return{done:!1,value:b(e)}}typeof Symbol===\"function\"&&(typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\")&&(c[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]=function(){return this});c.next=function(a){if(d){d=!1;return a}return e(\"next\",a)};typeof a[\"throw\"]===\"function\"&&(c[\"throw\"]=function(a){if(d){d=!1;throw a}return e(\"throw\",a)});typeof a[\"return\"]===\"function\"&&(c[\"return\"]=function(a){if(d){d=!1;return a}return e(\"return\",a)});return c}})(typeof global===\"undefined\"?self:global);\n\n(function(a){if(a.require!=null)return;var b=null,c=null,d=[],e={},f={},g=0,h=0,i=0,j=1,k=2,l=4,m=8,n=16,aa=32,ba=64,ca={},o={},p=Object.prototype.hasOwnProperty,q=Object.prototype.toString;function r(a){a=Array.prototype.slice.call(a);var b={},c,d,f,g;while(a.length){d=a.shift();if(b[d])continue;b[d]=!0;f=e[d];if(!f||R(f))continue;if(f.dependencies)for(c=0;c1?c-1:0),e=1;e0){var m=d;d=[];j=a.ScheduleJSWork?a.ScheduleJSWork:ma;j(function(){while(m.length>0)C.call(null,m.pop().id)})()}return k}function L(a){var b=e[a];if(b)return b;b=new M(a,0);e[a]=b;return b}function M(a,b,c){this.id=a,this.refcount=b,this.exports=c||null,this.defaultExport=c||o,this.factory=void 0,this.factoryLength=-1,this.factoryFinished=!1,this.dependencies=void 0,this.depPosition=0,this.context=void 0,this.special=0,this.hasError=!1,this.error=null,this.ranRecursiveSideEffects=!1,this.sideEffectDependencyException=null,this.nextDepWaitingHead=null,this.nextDepWaitingNext=null,this.tarjanGeneration=-1,this.tarjanLow=0,this.tarjanIndex=0,this.tarjanOnStack=!1,this.nonJSDeps=!1}function N(a){if(!e[a])return;var b=e[a];e[a]=null;if(b.dependencies)for(var a=0;a0?a.join(\",\")+\"__\":\"\")+g++;return K(\"__requireLazy__\"+d,a,Z()(b,\"requireLazy\",{propagationType:0}),j|n,c,1)}function P(a){return\"__mod__\"+(a!=null?a+\"__\":\"\")+g++}function Q(a,b,c){c.tarjanGeneration!=h&&(c.tarjanGeneration=h,c.tarjanLow=c.tarjanIndex=i++,c.tarjanOnStack=!0,b.push(c));if(c.dependencies!=null)for(var d=c.depPosition;d=a.dependencies.length}function ia(a){a.depPosition++,S(a)}function ja(a){var b=a.nextDepWaitingHead;a.nextDepWaitingHead=null;while(b!=null){var c=b;c.nonJSDeps&&J(a);b=c.nextDepWaitingNext;c.nextDepWaitingNext=null;var d=!e[c.id];d||ia(c)}}function ka(a){return a.special&j}function la(a){return a.special&n}function S(a){while(a.dependencies!=null&&a.depPosition1?b-1:0),d=1;d2?e-2:0),g=2;g0&&(d+=\" Params: \"+c.map(function(a){return\"%s\"}).join(\", \"));a=(g||(g=b(\"Env\"))).show_invariant_decoder===!0?\"visit \"+i(a,c)+\" to see the full message.\":\"\";return{message:d,decoderLink:a}}function i(a,b){a=\"https://www.internalfb.com/intern/invariant/\"+a+\"/\";b.length>0&&(a+=\"?\"+b.map(function(a,b){return\"args[\"+b+\"]=\"+encodeURIComponent(String(a))}).join(\"&\"));return a}}),null);\n__d(\"ArbiterToken\",[\"invariant\"],(function(a,b,c,d,e,f,g){\"use strict\";a=function(){function a(a,b){this.unsubscribe=function(){for(var a=0;a([\\s\\S]*)$/);if(!b)return n(a);var c=b[0],d=b[1];b=b[2];d=JSON.parse(d);var e=d[0];d=d.slice(1);e=n(e);e.message=c+e.message+b;d&&d.length>0&&(e.params=d.map(function(a){return String(a)}));return e}catch(b){return{message:\"Unable to parse error message %s because %s\",params:[a,b.message]}}}function c(a){return\"\"}function i(a){if(a.messageFormat==null)return h(a.message);var b={message:String(a.messageFormat)};a.messageParams&&(b.params=[].concat(a.messageParams));b.forcedKey=a.forcedKey;a.taalOpcodes&&(b.taalOpcodes=a.taalOpcodes);return b}function d(a,c){var d=i(a);if(Object.isFrozen(a))return;c.type&&((!a.type||g[a.type]>g[c.type])&&(a.type=c.type));var e=c.metadata;if(e!=null){var f;f=(f=a.metadata)!=null?f:new(b(\"ErrorMetadata\"))();f.addEntries.apply(f,e.getAll());a.metadata=f}c.project!=null&&(a.project=c.project);c.errorName!=null&&(a.errorName=c.errorName);c.componentStack!=null&&(a.componentStack=c.componentStack);c.deferredSource!=null&&(a.deferredSource=c.deferredSource);c.blameModule!=null&&(a.blameModule=c.blameModule);e=d.message;f=m(d.params);if(e!==c.messageFormat&&c.messageFormat!=null){var h;e+=\" [Caught in: \"+c.messageFormat+\"]\";f.push.apply(f,(h=c.messageParams)!=null?h:[])}a.messageFormat=e;a.messageParams=f;h=c.forcedKey;e=d.forcedKey;c=h!=null&&e!=null?h+\"_\"+e:(f=h)!=null?f:e;a.forcedKey=c;d.taalOpcodes!=null&&(a.taalOpcodes=d.taalOpcodes)}function j(a,b){var c=0;a=a.replace(/%s/g,function(){return c0?\" TAAL[\"+c.join(\";\")+\"]\":\"\"}function m(a){return((a=a)!=null?a:[]).map(function(a){return String(a)})}function n(a){var b=o(a,/^([\\s\\S]*) TAAL\\[(.*)\\]$/);b=(b=b)!=null?b:[a,null];var c=b[0];b=b[1];c={message:c};if(b){var d=[];for(var b=b.split(\";\"),e=Array.isArray(b),f=0,b=e?b:b[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var g;if(e){if(f>=b.length)break;g=b[f++]}else{f=b.next();if(f.done)break;g=f.value}g=g;if(g===\"1\"||g===\"2\"||g===\"3\")d.push(parseInt(g,10));else if(g[0]===\"4\"&&g.length>1)c.forcedKey=g.substring(1);else return{message:a}}d.length>0&&(c.taalOpcodes=d)}return c}function o(a,b){if(typeof a===\"string\"){a=a.match(b);if(a&&a.length>0)return a.slice(1)}}e.exports=a.ErrorSerializer={aggregateError:d,parseFromError:i,stringify:c,toFormattedMessage:f,toReadableMessage:j,toMessageWithParams:k,toStringParams:m}}),3);\n__d(\"ErrorXFBDebug\",[],(function(a,b,c,d,e,f){\"use strict\";f.addFromXHR=a;f.add=i;f.getAll=b;var g=5,h=[];function a(a){var b=a.getAllResponseHeaders();if(b!=null&&b.indexOf(\"X-FB-Debug\")>=0){b=a.getResponseHeader(\"X-FB-Debug\");b&&i(b)}}function i(a){h.push(a),h.length>g&&h.shift()}function b(){return h}}),null);\n__d(\"getSimpleHash\",[],(function(a,b,c,d,e,f){\"use strict\";e.exports=a;var g=\"abcdefghijklmnopqrstuvwxyz012345\";function a(){var a=0;for(var b=arguments.length,c=new Array(b),d=0;d>=5;return j}}),null);\n__d(\"performance\",[],(function(a,b,c,d,e,f){\"use strict\";b=a.performance||a.msPerformance||a.webkitPerformance||{};c=b;e.exports=c}),null);\n__d(\"performanceNow\",[\"performance\"],(function(a,b,c,d,e,f){var g;if((g||(g=b(\"performance\"))).now)c=function(){return(g||(g=b(\"performance\"))).now()};else{d=a._cstart;f=Date.now();var h=typeof d===\"number\"&&d\";else{var f;for(var g=0;g\");c!=null&&d!=null&&a!=null&&(b+=\" (\"+c+\":\"+d+\":\"+a+\")\");return b}function o(c){var d,e,f,h=l(c),i=b(\"ErrorSerializer\").parseFromError(c),k=c.framesToPop;if(k!=null){var n;k=Math.min(k,h.length);i.taalOpcodes=(n=i.taalOpcodes)!=null?n:[];while(k-->0)i.taalOpcodes.unshift(b(\"TAALOpcode\").PREVIOUS_FRAME)}n=i.message;k=((k=i.params)!=null?k:[]).map(function(a){return String(a)});var p=m(c.componentStack),q=p==null?null:p.map(j),r=c.metadata?c.metadata.format():new(b(\"ErrorMetadata\"))().format();r.length===0&&(r=void 0);var s=h.map(function(a){return a.text}).join(\"\\n\");d=(d=c.errorName)!=null?d:c.name;var t=c.type||\"error\",u=c.loggingSource,v=c.project;e=(e=c.lineNumber)!=null?e:c.line;f=(f=c.columnNumber)!=null?f:c.column;q={blameModule:c.blameModule,column:f==null?null:String(f),clientTime:Math.floor(Date.now()/1e3),componentStackFrames:q,deferredSource:c.deferredSource!=null?o(c.deferredSource):null,extra:(f=c.extra)!=null?f:{},fbtrace_id:c.fbtrace_id,guardList:(q=c.guardList)!=null?q:[],hash:b(\"getSimpleHash\")(d,s,t,v,u),isNormalizedError:!0,line:e==null?null:String(e),loggingSource:u,message:b(\"ErrorSerializer\").toReadableMessage(n,k),messageFormat:n,messageParams:k,metadata:r,name:d,page_time:Math.floor((g||(g=b(\"performanceNow\")))()),project:v,reactComponentStack:p,script:(f=c.fileName)!=null?f:c.sourceURL,serverHash:c.serverHash,stack:s,stackFrames:h,type:t,xFBDebug:b(\"ErrorXFBDebug\").getAll()};i.forcedKey!=null&&(q.forcedKey=i.forcedKey);i.taalOpcodes&&(q.taalOpcodes=i.taalOpcodes);e=a.location;e&&(q.windowLocationURL=e.href);for(var w in q)q[w]==null&&delete q[w];return q}function c(a){return a!=null&&typeof a===\"object\"&&a.isNormalizedError===!0?a:null}}),null);\n__d(\"ErrorBrowserConsole\",[],(function(a,b,c,d,e,f){\"use strict\";f.errorListener=b;var g=!1,h=a.console;function b(a){var b=h[a.type]?a.type:\"error\";if(a.type===\"fatal\"||b===\"error\"&&!g){b=a.message;h.error(\"ErrorUtils caught an error:\\n\\n\"+b+\"\\n\\nSubsequent non-fatal errors won't be logged; see https://fburl.com/debugjs.\");g=!0}}}),null);\n__d(\"err\",[\"TAALOpcode\"],(function(a,b,c,d,e,f){\"use strict\";e.exports=a;function a(a){var c=new Error(a);if(c.stack===void 0)try{throw c}catch(a){}c.messageFormat=a;for(var d=arguments.length,e=new Array(d>1?d-1:0),f=1;f\":\"\",h;function i(a){var c=a.error!=null?b(\"getErrorSafe\")(a.error):b(\"err\")(a.message||\"\");c.fileName==null&&a.filename!=null&&(c.fileName=a.filename);c.line==null&&a.lineno!=null&&(c.line=a.lineno);c.column==null&&a.colno!=null&&(c.column=a.colno);c.guardList=[g];c.loggingSource=\"ONERROR\";c.message.indexOf(\"ResizeObserver\")>=0&&(c.type=\"warn\");(a=h)==null?void 0:a.reportError(c)}function c(b){if(typeof a.addEventListener!==\"function\")return;if(h!=null)return;h=b;a.addEventListener(\"error\",i)}}),null);\n__d(\"ErrorUnhandledRejectionHandler\",[\"ErrorNormalizeUtils\",\"err\",\"getErrorSafe\"],(function(a,b,c,d,e,f){\"use strict\";f.onunhandledrejection=i;f.setup=c;var g=null,h=!1;function i(a){if(!g)return;var c=a.reason;if(c!=null&&typeof c===\"object\"&&(c.name==null||c.name===\"\"||c.message==null||c.message===\"\"))try{var d=b(\"err\")(\"UnhandledRejection: %s\",JSON.stringify(c));d=b(\"ErrorNormalizeUtils\").normalizeError(d)}catch(a){var e=b(\"err\")(\"UnhandledRejection: (circular) %s\",Object.keys(c).join(\",\"));d=b(\"ErrorNormalizeUtils\").normalizeError(e)}else d=b(\"ErrorNormalizeUtils\").normalizeError(b(\"getErrorSafe\")(c));d.loggingSource||(d.loggingSource=\"ONUNHANDLEDREJECTION\");g.reportNormalizedError(d);a.preventDefault()}function c(b){g=b,typeof a.addEventListener===\"function\"&&!h&&(h=!0,a.addEventListener(\"unhandledrejection\",i))}}),null);\n__d(\"removeFromArray\",[],(function(a,b,c,d,e,f){e.exports=a;function a(a,b){b=a.indexOf(b);b!==-1&&a.splice(b,1)}}),null);\n__d(\"ErrorPubSub\",[\"ErrorBrowserConsole\",\"ErrorGlobalEventHandler\",\"ErrorGuardState\",\"ErrorNormalizeUtils\",\"ErrorUnhandledRejectionHandler\",\"removeFromArray\"],(function(a,b,c,d,e,f){\"use strict\";var g,h=\"\",i=[],j=[],k=50,l=!1,m={history:j,addListener:function(a,b){b===void 0&&(b=!1),i.push(a),b||j.forEach(function(b){return a(b,(b=b.loggingSource)!=null?b:\"DEPRECATED\")})},unshiftListener:function(a){i.unshift(a)},removeListener:function(a){b(\"removeFromArray\")(i,a)},reportError:function(a){a=b(\"ErrorNormalizeUtils\").normalizeError(a);m.reportNormalizedError(a)},reportNormalizedError:function(a){if(l)return!1;var c=(g||(g=b(\"ErrorGuardState\"))).cloneGuardList();a.componentStackFrames&&c.unshift(h);c.length>0&&(a.guardList=c);if(a.deferredSource==null){c=(g||(g=b(\"ErrorGuardState\"))).findDeferredSource();c!=null&&(a.deferredSource=b(\"ErrorNormalizeUtils\").normalizeError(c))}j.length>k&&j.splice(k/2,1);j.push(a);l=!0;for(var c=0;c\";b(\"getErrorSafe\");b(\"ErrorSerializer\");g||(g=b(\"ErrorGuardState\"));b(\"ErrorNormalizeUtils\");h||(h=b(\"ErrorPubSub\"));var k={applyWithGuard:function(a,c,d,e){(g||(g=b(\"ErrorGuardState\"))).pushGuard({name:(e==null?void 0:e.name)||(a.name?\"func_name:\"+a.name:null)||j,deferredSource:e==null?void 0:e.deferredSource});if((i||(i=b(\"Env\"))).nocatch)try{return a.apply(c,d)}finally{(g||(g=b(\"ErrorGuardState\"))).popGuard()}try{return Function.prototype.apply.call(a,c,d)}catch(i){c=(c=e)!=null?c:{};var f=c.deferredSource,k=c.onError;c=c.onNormalizedError;var l=b(\"getErrorSafe\")(i);b(\"ErrorSerializer\").aggregateError(l,{deferredSource:f,project:(f=e==null?void 0:e.project)!=null?f:\"ErrorGuard\",type:(f=e==null?void 0:e.errorType)!=null?f:\"fatal\"});e=b(\"ErrorNormalizeUtils\").normalizeError(l);e.loggingSource=\"GUARDED\";if(l==null&&a)try{e.extra[a.toString().substring(0,100)]=\"function\",d!=null&&d.length&&(e.extra[Array.from(d).toString().substring(0,100)]=\"args\")}catch(a){}e.guardList=(g||(g=b(\"ErrorGuardState\"))).cloneGuardList();k&&k(l);c&&c(e);(h||(h=b(\"ErrorPubSub\"))).reportNormalizedError(e)}finally{(g||(g=b(\"ErrorGuardState\"))).popGuard()}},guard:function(a,b){function c(){for(var c=arguments.length,d=new Array(c),e=0;e=b.length)break;d=b[f++]}else{f=b.next();if(f.done)break;d=f.value}d=d;if(this.$4.get(d))continue;c++;var g=this.$1.get(d);g===void 0&&(g=new Map(),this.$1.set(d,g));g.set(a,(g.get(a)||0)+1)}return c};c.$6=function(a){a=this.$1.get(a);if(!a)return;for(var c=a.entries(),d=Array.isArray(c),e=0,c=d?c:c[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var f;if(d){if(e>=c.length)break;f=c[e++]}else{e=c.next();if(e.done)break;f=e.value}f=f;var h=f[0];f=f[1]-1;a.set(h,f);f<=0&&a[\"delete\"](h);f=this.$2.get(h);if(f!==void 0){f.$7--;if(f.$7<=0){f=f.$8;this.$2[\"delete\"](h);(g||(g=b(\"ErrorGuard\"))).applyWithGuard(f,null,[])}}}};c.addDependenciesToExistingCallback=function(a,b){var c=this.$2.get(a);if(!c)return null;b=this.$5(a,b);c.$7+=b;return a};c.isPersistentDependencySatisfied=function(a){return!!this.$4.get(a)};c.satisfyPersistentDependency=function(a){this.$4.set(a,1),this.$6(a)};c.satisfyNonPersistentDependency=function(a){var b=this.$4.get(a)===1;b||this.$4.set(a,1);this.$6(a);b||this.$4[\"delete\"](a)};c.registerCallback=function(a,c){var d=this.$3;this.$3++;c=this.$5(d,c);if(c===0){(g||(g=b(\"ErrorGuard\"))).applyWithGuard(a,null,[]);return null}this.$2.set(d,{$8:a,$7:c});return d};return a}();e.exports=a}),null);\n__d(\"EventSubscription\",[],(function(a,b,c,d,e,f){\"use strict\";a=function(a){var b=this;this.remove=function(){b.subscriber&&(b.subscriber.removeSubscription(b),b.subscriber=null)};this.subscriber=a};e.exports=a}),null);\n__d(\"EmitterSubscription\",[\"EventSubscription\"],(function(a,b,c,d,e,f){\"use strict\";a=function(a){babelHelpers.inheritsLoose(b,a);function b(b,c,d){b=a.call(this,b)||this;b.listener=c;b.context=d;return b}return b}(b(\"EventSubscription\"));e.exports=a}),null);\n__d(\"EventSubscriptionVendor\",[\"invariant\"],(function(a,b,c,d,e,f,g){\"use strict\";a=function(){function a(){this.$1={}}var b=a.prototype;b.addSubscription=function(a,b){b.subscriber===this||g(0,2828);this.$1[a]||(this.$1[a]=[]);var c=this.$1[a].length;this.$1[a].push(b);b.eventType=a;b.key=c;return b};b.removeAllSubscriptions=function(a){a===void 0?this.$1={}:delete this.$1[a]};b.removeSubscription=function(a){var b=a.eventType;a=a.key;b=this.$1[b];b&&delete b[a]};b.getSubscriptionsForType=function(a){return this.$1[a]};return a}();e.exports=a}),null);\n__d(\"emptyFunction\",[],(function(a,b,c,d,e,f){function a(a){return function(){return a}}b=function(){};b.thatReturns=a;b.thatReturnsFalse=a(!1);b.thatReturnsTrue=a(!0);b.thatReturnsNull=a(null);b.thatReturnsThis=function(){return this};b.thatReturnsArgument=function(a){return a};c=b;e.exports=c}),null);\n__d(\"FBLogMessage\",[\"ErrorMetadata\",\"ErrorNormalizeUtils\",\"ErrorPubSub\",\"ErrorSerializer\",\"TAALOpcode\"],(function(a,b,c,d,e,f){\"use strict\";var g;a=function(){function a(a){this.project=a,this.events=[],this.metadata=new(b(\"ErrorMetadata\"))(),this.taalOpcodes=[]}var c=a.prototype;c.$1=function(c,d){var e=String(d),f=this.error,h=this.events,i=this.project,j=this.metadata,k=this.blameModule,l=this.forcedKey,m;for(var n=arguments.length,o=new Array(n>2?n-2:0),p=2;p0&&new a(\"fblogger\").blameToPreviousFrame().blameToPreviousFrame().warn(\"Blame helpers do not work with catching\"),b(\"ErrorSerializer\").aggregateError(f,{messageFormat:e,messageParams:b(\"ErrorSerializer\").toStringParams(o),errorName:f.name,forcedKey:l,project:i,type:c}),m=b(\"ErrorNormalizeUtils\").normalizeError(f);else{var r=new Error(e);if(r.stack===void 0)try{throw r}catch(a){}r.messageFormat=e;r.messageParams=b(\"ErrorSerializer\").toStringParams(o);r.blameModule=k;r.forcedKey=l;r.project=i;r.name=\"FBLogger\";r.type=c;r.taalOpcodes=[b(\"TAALOpcode\").PREVIOUS_FRAME,b(\"TAALOpcode\").PREVIOUS_FRAME].concat(this.taalOpcodes);m=b(\"ErrorNormalizeUtils\").normalizeError(r)}m.loggingSource=\"FBLOGGER\";j.isEmpty()||(m.metadata=j.format());if(h.length>0)if(m.events!=null){var s;(s=m.events).push.apply(s,h)}else m.events=h;(g||(g=b(\"ErrorPubSub\"))).reportNormalizedError(m)};c.fatal=function(a){for(var b=arguments.length,c=new Array(b>1?b-1:0),d=1;d1?b-1:0),d=1;d1?b-1:0),d=1;d1?b-1:0),d=1;d2?d-2:0),f=2;f1?c-1:0),e=1;e1?d-1:0),f=1;f0&&this.$3.releaseCurrentEvent()};b.releaseHeldEventType=function(a){this.$3.releaseEventType(a)};return a}();e.exports=a}),null);\n__d(\"EventHolder\",[\"invariant\"],(function(a,b,c,d,e,f,g){\"use strict\";a=function(){function a(){this.$1={},this.$2=[]}var b=a.prototype;b.holdEvent=function(a){this.$1[a]=this.$1[a]||[];var b=this.$1[a],c={eventType:a,index:b.length};for(var d=arguments.length,e=new Array(d>1?d-1:0),f=1;f1?e-1:0),g=1;g=a.length)break;f=a[e++]}else{e=a.next();if(e.done)break;f=e.value}f=f;for(var f=f,g=Array.isArray(f),h=0,f=g?f:f[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var i;if(g){if(h>=f.length)break;i=f[h++]}else{h=f.next();if(h.done)break;i=h.value}i=i;var j=i[0];i=i[1];c.set(j,i)}}return c}function c(){return{blocking:new Map(),nonblocking:new Map(),\"default\":new Map()}}function d(a){k.add(a)}function e(a){k[\"delete\"](a),j.inform(g,a,\"persistent\")}function l(a){j.inform(i,a,\"persistent\")}function m(a){return j.subscribe(g,function(b,c){return a(c)})}function n(a){return j.subscribe(i,function(b,c){return a(c)})}function o(){return new Set(k)}function p(a){j.inform(h,a,\"persistent\")}function q(a){return j.subscribe(h,function(b,c){return a(c)})}}),null);\n__d(\"performanceAbsoluteNow\",[\"performance\"],(function(a,b,c,d,e,f){var g;if((g||(g=b(\"performance\"))).now&&(g||(g=b(\"performance\"))).timing&&(g||(g=b(\"performance\"))).timing.navigationStart){var h=(g||(g=b(\"performance\"))).timing.navigationStart;a=function(){return(g||(g=b(\"performance\"))).now()+h}}else a=function(){return Date.now()};e.exports=a}),null);\n__d(\"BootloaderEventsManager\",[\"CallbackDependencyManager\",\"performanceAbsoluteNow\"],(function(a,b,c,d,e,f){var g;a=function(){\"use strict\";function a(){this.$1=new(b(\"CallbackDependencyManager\"))(),this.$2=new Map()}var c=a.prototype;c.rsrcDone=function(a){return a};c.bootload=function(a){return\"bl:\"+a.join(\",\")};c.tierOne=function(a){return\"t1:\"+a};c.tierTwoStart=function(a){return\"t2s:\"+a};c.tierTwo=function(a){return\"t2:\"+a};c.tierThreeStart=function(a){return\"t3s:\"+a};c.tierThree=function(a){return\"t3:\"+a};c.tierOneLog=function(a){return\"t1l:\"+a};c.tierTwoLog=function(a){return\"t2l:\"+a};c.tierThreeLog=function(a){return\"t3l:\"+a};c.beDone=function(a){return\"beDone:\"+a};c.notify=function(a){this.$2.set(a,(g||(g=b(\"performanceAbsoluteNow\")))()),this.$1.satisfyPersistentDependency(a)};c.getEventTime=function(a){return this.$2.get(a)};c.registerCallback=function(a,b){this.$1.registerCallback(a,b)};return a}();e.exports=a}),null);\n__d(\"BitMap\",[],(function(a,b,c,d,e,f){var g=\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\";a=function(){function a(){this.$1=[],this.$2=null}var b=a.prototype;b.set=function(a){this.$2!=null&&!this.$1[a]&&(this.$2=null);this.$1[a]=1;return this};b.toString=function(){var a=[];for(var b=0;b=e.length)break;j=e[h++]}else{h=e.next();if(h.done)break;j=h.value}j=j;var k=!1;for(var l=0;l=0;d--)c[a[d]]=b[d];else for(var d=a.length-1;d>=0;d--)c[a[d]]=b;return c}}),null);\n__d(\"URISchemes\",[\"createObjectFrom\"],(function(a,b,c,d,e,f){f.isAllowed=a;var g=b(\"createObjectFrom\")([\"blob\",\"cmms\",\"fb\",\"fba\",\"fbatwork\",\"fb-ama\",\"fb-workchat\",\"fb-workchat-secure\",\"fb-messenger\",\"fb-messenger-public\",\"fb-messenger-group-thread\",\"fb-page-messages\",\"fb-pma\",\"fbcf\",\"fbconnect\",\"fbinternal\",\"fbmobilehome\",\"fbrpc\",\"file\",\"ftp\",\"gtalk\",\"http\",\"https\",\"mailto\",\"wss\",\"ms-app\",\"intent\",\"itms\",\"itms-apps\",\"lasso\",\"market\",\"svn+ssh\",\"fbstaging\",\"tel\",\"sms\",\"pebblejs\",\"sftp\",\"whatsapp\",\"moments\",\"flash\",\"fblite\",\"chrome-extension\",\"webcal\",\"fb124024574287414\",\"fb124024574287414rc\",\"fb124024574287414master\",\"fb1576585912599779\",\"fb929757330408142\",\"designpack\",\"fbpixelcloud\",\"fbapi20130214\",\"fb1196383223757595\",\"oculus\",\"oculus.store\",\"oculus.feed\",\"odh\",\"skype\",\"callto\",\"workchat\",\"fb236786383180508\",\"fb1775440806014337\",\"data\",\"fb-mk\",\"munki\",\"kirigami\",\"origami-file\",\"fb-nimble-vrsrecorder\",\"fb-nimble-monohandtrackingvis\",\"together\",\"togetherbl\",\"venues\",\"whatsapp-consumer\",\"whatsapp-smb\"]);function a(a){return a==null||a===\"\"?!0:Object.prototype.hasOwnProperty.call(g,a.toLowerCase())}}),null);\n__d(\"setHostSubdomain\",[],(function(a,b,c,d,e,f){e.exports=a;function a(a,b){a=a.split(\".\");a.length<3?a.unshift(b):a[0]=b;return a.join(\".\")}}),null);\n__d(\"URIAbstractBase\",[\"invariant\",\"URIRFC3986\",\"URISchemes\",\"setHostSubdomain\"],(function(a,b,c,d,e,f,g){var h,i,j=new RegExp(\"[\\\\x00-\\\\x2c\\\\x2f\\\\x3b-\\\\x40\\\\x5c\\\\x5e\\\\x60\\\\x7b-\\\\x7f\\\\uFDD0-\\\\uFDEF\\\\uFFF0-\\\\uFFFF\\\\u2047\\\\u2048\\\\uFE56\\\\uFE5F\\\\uFF03\\\\uFF0F\\\\uFF1F]\"),k=new RegExp(\"^(?:[^/]*:|[\\\\x00-\\\\x1f]*/[\\\\x00-\\\\x1f]*/)\"),l=[];a=function(){\"use strict\";a.parse=function(c,d,e,f){if(!d)return!0;if(d instanceof a){c.setProtocol(d.getProtocol());c.setDomain(d.getDomain());c.setPort(d.getPort());c.setPath(d.getPath());c.setQueryData(f.deserialize(f.serialize(d.getQueryData())));c.setFragment(d.getFragment());c.setIsGeneric(d.getIsGeneric());c.setForceFragmentSeparator(d.getForceFragmentSeparator());c.setOriginalRawQuery(d.getOriginalRawQuery());c.setQueryParamModified(!1);return!0}d=d.toString().trim();var g=(h||(h=b(\"URIRFC3986\"))).parse(d)||{fragment:null,scheme:null,query:null};if(!e&&!(i||(i=b(\"URISchemes\"))).isAllowed(g.scheme))return!1;c.setProtocol(g.scheme||\"\");if(!e&&j.test(g.host||\"\"))return!1;c.setDomain(g.host||\"\");c.setPort(g.port||\"\");c.setPath(g.path||\"\");if(e)c.setQueryData(f.deserialize(g.query||\"\")||{});else try{c.setQueryData(f.deserialize(g.query||\"\")||{})}catch(a){return!1}c.setFragment(g.fragment||\"\");g.fragment===\"\"&&c.setForceFragmentSeparator(!0);c.setIsGeneric(g.isGenericURI||!1);c.setOriginalRawQuery(g.query);c.setQueryParamModified(!1);if(g.userinfo!==null){if(e)throw new Error(\"URI.parse: invalid URI (userinfo is not allowed in a URI): \"+d);return!1}if(!c.getDomain()&&c.getPath().indexOf(\"\\\\\")!==-1){if(e)throw new Error(\"URI.parse: invalid URI (no domain but multiple back-slashes): \"+d);return!1}if(!c.getProtocol()&&k.test(d)){if(e)throw new Error(\"URI.parse: invalid URI (unsafe protocol-relative URLs): \"+d+\"'\");return!1}if(c.getDomain()&&c.getPath()&&!c.getPath().startsWith(\"/\")){if(e)throw new Error(\"URI.parse: invalid URI (domain and path where path lacks leading slash): \"+d);return!1}return!0};a.tryParse=function(b,c){var d=new a(null,c);return a.parse(d,b,!1,c)?d:null};a.isValid=function(b,c){return!!a.tryParse(b,c)};function a(b,c){c||g(0,2966),this.$9=c,this.$7=\"\",this.$1=\"\",this.$6=\"\",this.$5=\"\",this.$3=\"\",this.$4=!1,this.$8={},this.$2=!1,a.parse(this,b,!0,c),this.$11=!1}var c=a.prototype;c.setProtocol=function(a){(i||(i=b(\"URISchemes\"))).isAllowed(a)||g(0,587,a);this.$7=a;return this};c.getProtocol=function(){return(this.$7||\"\").toLowerCase()};c.setSecure=function(a){return this.setProtocol(a?\"https\":\"http\")};c.isSecure=function(){return this.getProtocol()===\"https\"};c.setDomain=function(a){if(j.test(a))throw new Error(\"URI.setDomain: unsafe domain specified: \"+a+\" for url \"+this.toString());this.$1=a;return this};c.getDomain=function(){return this.$1};c.setPort=function(a){this.$6=a;return this};c.getPort=function(){return this.$6};c.setPath=function(a){this.$5=a;return this};c.getPath=function(){return this.$5};c.addQueryData=function(a,b){Object.prototype.toString.call(a)===\"[object Object]\"?Object.assign(this.$8,a):this.$8[a]=b;this.$11=!0;return this};c.setQueryData=function(a){this.$8=a;this.$11=!0;return this};c.getQueryData=function(){return this.$8};c.setQueryString=function(a){return this.setQueryData(this.$9.deserialize(a))};c.getQueryString=function(a,b,c){a===void 0&&(a=!1);b===void 0&&(b=function(){return!1});c===void 0&&(c=null);return this.$12(!1,a,b,c)};c.$12=function(a,b,c,d){a===void 0&&(a=!1);b===void 0&&(b=!1);c===void 0&&(c=function(){return!1});d===void 0&&(d=null);if(!this.$11&&(b||c(this.getDomain()))){return(b=this.$10)!=null?b:\"\"}return(a&&d?d:this.$9).serialize(this.getQueryData())};c.removeQueryData=function(a){Array.isArray(a)||(a=[a]);for(var b=0,c=a.length;b0||this.getFragment())};c.toString=function(a,b){a===void 0&&(a=function(){return!1});b===void 0&&(b=null);return this.$13(!1,!1,a,b)};c.toStringRawQuery=function(a,b){a===void 0&&(a=function(){return!1});b===void 0&&(b=null);return this.$13(!0,!1,a,b)};c.toStringPreserveQuery=function(a,b){a===void 0&&(a=function(){return!1});b===void 0&&(b=null);return this.$13(!1,!0,a,b)};c.$13=function(a,b,c,d){a===void 0&&(a=!1);b===void 0&&(b=!1);c===void 0&&(c=function(){return!1});d===void 0&&(d=null);var e=this;for(var f=0;f0&&a[a.length-1]!==\"/\"&&this.setPath(a+\"/\");return this};e.valueOf=function(){return this.toString()};e.getRegisteredDomain=function(){if(!this.getDomain())return\"\";if(!b(\"isFacebookURI\")(this))return null;var a=this.getDomain().split(\".\"),c=a.indexOf(\"facebook\");c===-1&&(c=a.indexOf(\"workplace\"));return a.slice(c).join(\".\")};e.getUnqualifiedURI=function(){return b(\"unqualifyURI\")(new c(this))};e.getQualifiedURI=function(){return new c(this).qualify()};e.isSameOrigin=function(a){a=a;a==null?a=j():a instanceof c||(a=new c(a.toString()));return b(\"areSameOrigin\")(this,a)};c.go=function(a,d,e){b(\"unexpectedUseInComet\")(\"URI.go\"),c.goURIOnWindow(a,window,d,e)};c.goURIOnNewWindow=function(a){c.goURIOnWindow(a,window.open(\"\",\"_blank\"),!0)};c.goURIOnWindow=function(d,e,f,g){f===void 0&&(f=!1);g===void 0&&(g=!1);d=new c(d);f=f;var i=!e||e===window;if((h||(h=b(\"Env\"))).isCQuick&&b(\"isFacebookURI\")(d)&&i){i={};i.cquick=(h||(h=b(\"Env\"))).iframeKey;i.ctarget=h.iframeTarget;i.cquick_token=h.iframeToken;d.addQueryData(i);f=!1}i=d.toString();d=e?e:window;!f&&a.PageTransitions?a.PageTransitions.go(i,g):window.location.href===i?b(\"ReloadPage\").now():g?d.location.replace(i):d.location.href=i};e.go=function(a,d){b(\"unexpectedUseInComet\")(\"uri.go\"),c.go(this,a,d)};c.tryParseURI=function(a){a=(i||(i=b(\"URIBase\"))).tryParse(a,g||(g=b(\"PHPQuerySerializer\")));return a?new c(a):null};c.isValidURI=function(a){return(i||(i=b(\"URIBase\"))).isValid(a,g||(g=b(\"PHPQuerySerializer\")))};c.getRequestURI=function(a,b){a===void 0&&(a=!0);b===void 0&&(b=!1);if(a){a=k();if(a)return a.getCurrentURI(!!b).getQualifiedURI()}return new c(window.location.href)};c.getMostRecentURI=function(){var a=k();return a?a.getMostRecentURI().getQualifiedURI():new c(window.location.href)};c.getNextURI=function(){var a=k();return a?a.getNextURI().getQualifiedURI():new c(window.location.href)};c.encodeComponent=function(a){return encodeURIComponent(a).replace(/%5D/g,\"]\").replace(/%5B/g,\"[\")};c.decodeComponent=function(a){return decodeURIComponent(a.replace(/\\+/g,\" \"))};c.normalize=function(a){return a!=null&&typeof a===\"string\"?this.normalizeString(a):new c(a).toString()};return c}(i||(i=b(\"URIBase\")));e.exports=l;l.normalizeString=b(\"memoizeStringOnly\")(function(a){return new l(a).toString()});l.expression=/(((\\w+):\\/\\/)([^\\/:]*)(:(\\d+))?)?([^#?]*)(\\?([^#]*))?(#(.*))?/;l.arrayQueryExpression=/^(\\w+)((?:\\[\\w*\\])+)=?(.*)/}),null);\n__d(\"isCometAltpayJsSdkIframeAllowedDomain\",[\"CometAltpayJsSdkIframeAllowedDomains\",\"URI\"],(function(a,b,c,d,e,f){\"use strict\";e.exports=a;var g;c=Object.freeze(b(\"CometAltpayJsSdkIframeAllowedDomains\"));var h=Object.freeze(c.allowed_domains);function a(){var a=new(g||(g=b(\"URI\")))(window.location.href);if(h==null||h.length<=0)return!1;var c=h.some(function(c){c=new(g||(g=b(\"URI\")))(c);return c==null?!1:a.isSameOrigin(c)});return c?!0:!1}}),null);\n__d(\"ReloadPage\",[\"BlueCompatRouter\",\"Env\"],(function(a,b,c,d,e,f){f.now=c;f.delay=d;var g;function c(c){!(g||(g=b(\"Env\"))).isCQuick?a.window.location.reload(c):b(\"BlueCompatRouter\").sendMessage({compatAction:\"reload\"})}function d(b){a.setTimeout(this.now.bind(this),b)}}),null);\n__d(\"isInternalFBURI\",[],(function(a,b,c,d,e,f){e.exports=a;var g=new RegExp(\"(^|\\\\.)internalfb\\\\.com$\",\"i\");function a(a){return g.test(a.getDomain())}}),null);\n__d(\"XControllerURIBuilder\",[\"invariant\",\"URI\",\"gkx\",\"isInternalFBURI\"],(function(a,b,c,d,e,f,g){var h;a=function(){function a(a,b){this.$1={},this.$2=a,this.$3=b}var c=a.prototype;c.setInt=function(a,b){return this.__setParam(a,\"Int\",b)};c.setFBID=function(a,b){return this.__setParam(a,\"FBID\",b)};c.setFloat=function(a,b){return this.__setParam(a,\"Float\",b)};c.setString=function(a,b){return this.__setParam(a,\"String\",b)};c.setExists=function(a,b){b===!1&&(b=void 0);return this.__setParam(a,\"Exists\",b)};c.setBool=function(a,b){return this.__setParam(a,\"Bool\",b)};c.setBoolVector=function(a,b){return this.__setParam(a,\"BoolVector\",b)};c.setEnum=function(a,b){return this.__setParam(a,\"Enum\",b)};c.setPath=function(a,b){return this.__setParam(a,\"Path\",b)};c.setIntVector=function(a,b){return this.__setParam(a,\"IntVector\",b)};c.setIntKeyset=function(a,b){return this.__setParam(a,\"IntKeyset\",b)};c.setIntSet=function(a,b){return this.__setParam(a,\"IntSet\",b.join(\",\"))};c.setFloatVector=function(a,b){return this.__setParam(a,\"FloatVector\",b)};c.setFloatSet=function(a,b){return this.__setParam(a,\"FloatSet\",b.join(\",\"))};c.setStringVector=function(a,b){return this.__setParam(a,\"StringVector\",b)};c.setStringKeyset=function(a,b){return this.__setParam(a,\"StringKeyset\",b)};c.setStringSet=function(a,b){return this.__setParam(a,\"StringSet\",b)};c.setFBIDVector=function(a,b){return this.__setParam(a,\"FBIDVector\",b)};c.setFBIDSet=function(a,b){return this.__setParam(a,\"FBIDSet\",b)};c.setFBIDKeyset=function(a,b){return this.__setParam(a,\"FBIDKeyset\",b)};c.setEnumVector=function(a,b){return this.__setParam(a,\"EnumVector\",b)};c.setEnumSet=function(a,b){return this.__setParam(a,\"EnumSet\",b)};c.setEnumKeyset=function(a,b){return this.__setParam(a,\"EnumKeyset\",b)};c.setIntToIntMap=function(a,b){return this.__setParam(a,\"IntToIntMap\",b)};c.setIntToFloatMap=function(a,b){return this.__setParam(a,\"IntToFloatMap\",b)};c.setIntToStringMap=function(a,b){return this.__setParam(a,\"IntToStringMap\",b)};c.setIntToBoolMap=function(a,b){return this.__setParam(a,\"IntToBoolMap\",b)};c.setStringToIntMap=function(a,b){return this.__setParam(a,\"StringToIntMap\",b)};c.setStringToFloatMap=function(a,b){return this.__setParam(a,\"StringToFloatMap\",b)};c.setStringToStringMap=function(a,b){return this.__setParam(a,\"StringToStringMap\",b)};c.setStringToNullableStringMap=function(a,b){return this.__setParam(a,\"StringToNullableStringMap\",b)};c.setStringToBoolMap=function(a,b){return this.__setParam(a,\"StringToBoolMap\",b)};c.setStringToEnumMap=function(a,b){return this.__setParam(a,\"StringToEnumMap\",b)};c.setEnumToStringVectorMap=function(a,b){return this.__setParam(a,\"EnumToStringVectorMap\",b)};c.setEnumToBoolMap=function(a,b){return this.__setParam(a,\"EnumToBoolMap\",b)};c.setEnumToEnumMap=function(a,b){return this.__setParam(a,\"EnumToEnumMap\",b)};c.setEnumToIntMap=function(a,b){return this.__setParam(a,\"EnumToIntMap\",b)};c.setEnumToFBIDVectorMap=function(a,b){return this.__setParam(a,\"EnumToFBIDVectorMap\",b)};c.setStringToIntDict=function(a,b){return this.__setParam(a,\"StringToIntDict\",b)};c.setStringToNullableIntDict=function(a,b){return this.__setParam(a,\"StringToNullableIntDict\",b)};c.setStringToFloatDict=function(a,b){return this.__setParam(a,\"StringToFloatDict\",b)};c.setStringToNullableFloatDict=function(a,b){return this.__setParam(a,\"StringToNullableFloatDict\",b)};c.setStringToStringDict=function(a,b){return this.__setParam(a,\"StringToStringDict\",b)};c.setStringToNullableStringDict=function(a,b){return this.__setParam(a,\"StringToNullableStringDict\",b)};c.setStringToBoolDict=function(a,b){return this.__setParam(a,\"StringToBoolDict\",b)};c.setStringToEnumDict=function(a,b){return this.__setParam(a,\"StringToEnumDict\",b)};c.setEnumToIntDict=function(a,b){return this.__setParam(a,\"EnumToIntDict\",b)};c.setHackType=function(a,b){return this.__setParam(a,\"HackType\",b)};c.setTypeAssert=function(a,b){return this.__setParam(a,\"TypeAssert\",b)};c.__validateRequiredParamsExistence=function(){for(var a in this.$3)!this.$3[a].required||Object.prototype.hasOwnProperty.call(this.$1,a)||g(0,903,a)};c.setParams=function(a){for(var b in a){this.__assertParamExists(b);var c=this.$3[b].type;this.__setParam(b,c,a[b])}return this};c.__assertParamExists=function(a){a in this.$3||g(0,904,a)};c.__setParam=function(a,b,c){this.__assertParamExists(a);var d=this.$3[a].type;d===b||g(0,905,a,b,d);this.__setParamInt(a,c);return this};c.__setParamInt=function(a,b){this.$1[a]=b};c.getRequest_LEGACY_UNTYPED=function(a){return a.setReplaceTransportMarkers().setURI(this.getURI())};c.getURI=function(){this.__validateRequiredParamsExistence();var a={},c=\"\",d=/^(.*)?\\{(\\?)?(\\*)?(.+?)\\}(.*)?$/,e=this.$2.split(\"/\"),f=!1;for(var i=0;i1?c-1:0),e=1;e-1&&h.splice(a,1)}function u(a){i!==a&&!b(\"NetworkHeartbeat\").isHeartbeatPending()&&(i=a,b(\"FBLogger\")(\"NetworkStatus\").warn(\"Network switched to \"+(a?\"online\":\"offline\")),i||b(\"NetworkHeartbeat\").maybeStartHeartbeat(q,r),s())}function v(){var a=(g||(g=b(\"performanceNow\")))();l=l.filter(function(b){return w(b.startTime,a)});m=m.filter(function(b){return w(b.startTime,a)});return m.length/l.lengthb-k};function a(){return i}function c(a){h.push(a);var b=!1;return{remove:function(){b||(b=!0,t(a))}}}function d(){var a=(g||(g=b(\"performanceNow\")))();l.push({startTime:a});b(\"NetworkHeartbeat\").maybeStartHeartbeat(q,r,v)}function e(){var a=(g||(g=b(\"performanceNow\")))();m.push({startTime:a});w(n,a)||(m=m.filter(function(b){return w(b.startTime,a)}),n=a)}window.addEventListener(\"online\",function(){u(o)});window.addEventListener(\"offline\",function(){u(p)})}),null);\n__d(\"NetworkStatusSham\",[],(function(a,b,c,d,e,f){\"use strict\";f.isOnline=a;f.onChange=b;f.reportError=c;f.reportSuccess=d;function a(){return!0}function b(a){return{remove:function(){}}}function c(){return}function d(){return}}),null);\n__d(\"NetworkStatus\",[\"NetworkStatusImpl\",\"NetworkStatusSham\",\"gkx\"],(function(a,b,c,d,e,f){\"use strict\";a=b(\"gkx\")(\"708253\")&&b(\"gkx\")(\"1263340\")?b(\"NetworkStatusImpl\"):b(\"NetworkStatusSham\");c=a;e.exports=c}),null);\n__d(\"CircularBuffer\",[\"unrecoverableViolation\"],(function(a,b,c,d,e,f){a=function(){function a(a){if(a<=0)throw b(\"unrecoverableViolation\")(\"Buffer size should be a positive integer\",\"comet_infra\");this.$1=a;this.$2=0;this.$3=[];this.$4=[]}var c=a.prototype;c.write=function(a){var b=this;this.$3.lengththis.$1){var b=this.read();this.$2=0;this.$3=b;this.$1=a}return this};c.dropFirst=function(a){if(a<=this.$1){var b=this.read();this.$2=0;b.splice(0,a);this.$3=b}return this};c.clear=function(){this.$2=0;this.$3=[];return this};c.currentSize=function(){return this.$3.length};return a}();e.exports=a}),null);\n__d(\"ResourceTypes\",[],(function(a,b,c,d,e,f){\"use strict\";a={JS:\"js\",CSS:\"css\",XHR:\"xhr\"};b=a;e.exports=b}),null);\n__d(\"TimingAnnotations\",[],(function(a,b,c,d,e,f){a=function(){function a(){}var b=a.prototype;b.addStringAnnotation=function(a,b){return this};b.addSetAnnotation=function(a,b){return this};b.addSetElement=function(a,b){return this};b.registerOnBeforeSend=function(a){return this};b.addVectorAnnotation=function(a,b){return this};b.addVectorElement=function(a,b){return this};return a}();b=function(){function a(){this.$1=null,this.$2=null,this.$3=null,this.$4=[]}var b=a.prototype;b.addStringAnnotation=function(a,b){this.$2=this.$2||new Map();this.$2.set(a,b);return this};b.addSetAnnotation=function(a,b){var c=this.$1||new Map(),d=c.get(a)||new Set();b.forEach(function(a){return d.add(a)});c.set(a,d);this.$1=c;return this};b.addSetElement=function(a,b){var c=this.$1||new Map(),d=c.get(a)||new Set();d.add(b);c.set(a,d);this.$1=c;return this};b.addVectorAnnotation=function(a,b){this.$3=this.$3||new Map();this.$3.set(a,b);return this};b.addVectorElement=function(a,b){var c=this.$3=this.$3||new Map(),d=this.$3.get(a)||[];d.push(b);c.set(a,d);return this};b.registerOnBeforeSend=function(a){this.$4.push(a);return this};b.prepareToSend=function(){var a=this;this.$4.forEach(function(b){return b(a)});this.$4=[];var b={};if(this.$1!=null)for(var c=this.$1,d=Array.isArray(c),e=0,c=d?c:c[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var f;if(d){if(e>=c.length)break;f=c[e++]}else{e=c.next();if(e.done)break;f=e.value}f=f;var g=f[0];f=f[1];b[g]=Array.from(f.values())}g={};if(this.$2!=null)for(var f=this.$2,e=Array.isArray(f),d=0,f=e?f:f[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){if(e){if(d>=f.length)break;c=f[d++]}else{d=f.next();if(d.done)break;c=d.value}c=c;var h=c[0];c=c[1];g[h]=c}h={};if(this.$3!=null)for(var c=this.$3,d=Array.isArray(c),e=0,c=d?c:c[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){if(d){if(e>=c.length)break;f=c[e++]}else{e=c.next();if(e.done)break;f=e.value}f=f;var i=f[0];f=f[1];h[i]=f}return{setProps:b,stringProps:g,vectorProps:h}};a.combine=function(a,b){var c;a!=null&&b!=null?(a.stringProps=babelHelpers[\"extends\"]({},b.stringProps,a.stringProps),a.setProps=babelHelpers[\"extends\"]({},b.setProps,a.setProps),c=a):a!=null?c=a:b!=null&&(c=b);return c};return a}();e.exports=b;b.EmptyTimingAnnotations=a;b.EmptyTraceTimingAnnotations=a;b.TraceTimingAnnotations=b}),null);\n__d(\"ResourceTimingsStore\",[\"CircularBuffer\",\"ResourceTypes\",\"TimingAnnotations\",\"URI\",\"performanceAbsoluteNow\"],(function(a,b,c,d,e,f){\"use strict\";var g,h,i=1e3,j=new(b(\"TimingAnnotations\").EmptyTimingAnnotations)(),k={},l={};Object.keys(b(\"ResourceTypes\")).forEach(function(a){a=b(\"ResourceTypes\")[a];var c=new(b(\"CircularBuffer\"))(i),d=new Map();c.onEvict(function(a){d[\"delete\"](a)});k[a]={idx:1,entries:c};l[a]=d});function m(a,c,d){var e;switch(a){case\"css\":case\"js\":var f=n.parseMakeHasteURL(c);f=f==null?\"unknown_resource\":f[0];e=d+\"_\"+f;break;case\"xhr\":f=new(g||(g=b(\"URI\")))(c).getQualifiedURI();c=f.getDomain()+f.getPath();e=d+\"_\"+c;break;default:a,e=\"never here\"}return e}var n={getUID:function(a,b){var c=k[a],d=m(a,b,c.idx);c.entries.write(d);l[a].set(d,{uri:b,uid:d});c.idx++;return d},updateURI:function(a,b,c){a=l[a].get(b);a!=null&&(a.uri=c)},getMapFor:function(a){return l[a]},parseMakeHasteURL:function(a){a=a.match(/\\/rsrc\\.php\\/.*\\/([^\\?]+)/);if(!a)return null;a=a[1];var b=\"\",c=a.match(/\\.(\\w+)$/);c&&(b=c[1]);return[a,b]},measureRequestSent:function(a,c){a=l[a];a=a.get(c);if(a==null||a.requestSent!=null)return;else a.requestSent=(h||(h=b(\"performanceAbsoluteNow\")))()},measureResponseReceived:function(a,c){a=l[a];a=a.get(c);if(a==null||a.requestSent==null||a.responseReceived!=null)return;else a.responseReceived=(h||(h=b(\"performanceAbsoluteNow\")))()},annotate:function(a,c){a=l[a];a=a.get(c);if(!a)return j;else{c=a.annotations;if(c!=null)return c;else{c=new(b(\"TimingAnnotations\"))();a.annotations=c;return c}}},getAnnotationsFor:function(a,b){a=l[a];a=a.get(b);if(!a)return null;else{b=a.annotations;return b!=null?b.prepareToSend():null}}};e.exports=n}),null);\n__d(\"TimeSlice\",[\"cr:717822\"],(function(a,b,c,d,e,f){a=b(\"cr:717822\");e.exports=a}),null);\n__d(\"clearInterval\",[\"cr:1003267\"],(function(a,b,c,d,e,f){a=b(\"cr:1003267\");e.exports=a}),null);\n__d(\"isEmpty\",[\"invariant\"],(function(a,b,c,d,e,f,g){\"use strict\";e.exports=a;function a(a){if(Array.isArray(a))return a.length===0;else if(typeof a===\"object\"){if(a){!h(a)||a.size===void 0||g(0,1445);for(var b in a)return!1}return!0}else return!a}function h(a){return typeof Symbol===\"undefined\"?!1:a[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]!=null}}),null);\n__d(\"nullthrows\",[],(function(a,b,c,d,e,f){e.exports=a;function a(a,b){b===void 0&&(b=\"Got unexpected null or undefined\");if(a!=null)return a;a=new Error(b);a.framesToPop=1;throw a}}),null);\n__d(\"setIntervalAcrossTransitions\",[\"cr:896462\"],(function(a,b,c,d,e,f){a=b(\"cr:896462\");e.exports=a}),null);\n__d(\"CSSLoader\",[\"CSSLoaderConfig\",\"NetworkStatus\",\"ResourceTimingsStore\",\"TimeSlice\",\"clearInterval\",\"ifRequired\",\"isEmpty\",\"nullthrows\",\"setIntervalAcrossTransitions\"],(function(a,b,c,d,e,f){var g,h=20,i=b(\"CSSLoaderConfig\").timeout,j=b(\"CSSLoaderConfig\").loadEventSupported,k,l=[],m,n=new Map();function o(a){if(k)return;k=!0;var b=document.createElement(\"link\");b.onload=function(){j=!0,b.parentNode&&b.parentNode.removeChild(b)};b.rel=\"stylesheet\";b.href=\"data:text/css;base64,\";a.appendChild(b)}function p(){var a=[],c=[];if(Date.now()>=m){for(var d=n.values(),e=Array.isArray(d),f=0,d=e?d:d[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var h;if(e){if(f>=d.length)break;h=d[f++]}else{f=d.next();if(f.done)break;h=f.value}h=h;c.push(h.signal);a.push(h.error)}n.clear()}else for(var h=n,f=Array.isArray(h),e=0,h=f?h:h[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){if(f){if(e>=h.length)break;d=h[e++]}else{e=h.next();if(e.done)break;d=e.value}d=d;var j=d[0];d=d[1];var k=d.signal,l=window.getComputedStyle?getComputedStyle(k):k.currentStyle;l&&parseInt(l.height,10)>1&&(a.push(d.load),c.push(k),n[\"delete\"](j))}for(var l=0;l=e.length)return\"break\";h=e[g++]}else{g=e.next();if(g.done)return\"break\";h=g.value}var c=h,d=Number(c);c=(c=a[d])!=null?c:[];if(c.length===0){n(d);return\"break\"}c.forEach(function(a){var c;j[a]=Math.max((c=j[a])!=null?c:0,d);if(l.has(a))return;l.add(a);b(\"requireWeak\").call(null,a,function(){if(!j[a])return;n(j[a])})})};for(var e=c,f=Array.isArray(e),g=0,e=f?e:e[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var h;c=d();if(c===\"break\")break}},n=function(a){a===2&&b(\"ClientConsistencyEventEmitter\").emit(\"softRefresh\"),a===3&&b(\"ClientConsistencyEventEmitter\").emit(\"hardRefresh\")},o=function(a){var b=a.actions;a=a.rev;if(a===g)return;i=b;b!=null&&m(b)};a={init:function(){if(h)return;b(\"ClientConsistencyEventEmitter\").addListener(\"newEntry\",function(a){o(a)});h=!0},addAdditionalRevision:function(a){if(a===g)return;k.add(a)},getAdditionalRevisions:function(){return k},hasPendingClientActions:function(){return i!=null&&Object.keys(i).length>0}};e.exports=a}),null);\n__d(\"JSResourceEvents\",[\"performanceAbsoluteNow\"],(function(a,b,c,d,e,f){f.notify=a;f.getEvents=j;f.getAllModuleEvents=c;var g,h=50,i=new Map();function a(a,c,d){a=a;c=(c=c)!=null?c:\"\";var f=i.get(a);f||i.set(a,f=new Map());a=f.get(c);a||f.set(c,a=new Map());f=a.get(d);f||a.set(d,f=[0,[]]);f[1][f[0]++%h]=(g||(g=b(\"performanceAbsoluteNow\")))()}function j(a,b,c){var d=i.get(a);if(!d)return[];var f=[];for(var d=d,g=Array.isArray(d),h=0,d=g?d:d[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var j;if(g){if(h>=d.length)break;j=d[h++]}else{h=d.next();if(h.done)break;j=h.value}j=j;var k=j[0];j=j[1];for(var j=j,l=Array.isArray(j),m=0,j=l?j:j[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var n;if(l){if(m>=j.length)break;n=j[m++]}else{m=j.next();if(m.done)break;n=m.value}n=n;var o=n[0];n=n[1];for(var n=n[1],p=Array.isArray(n),q=0,n=p?n:n[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var r;if(p){if(q>=n.length)break;r=n[q++]}else{q=n.next();if(q.done)break;r=q.value}r=r;r>=b&&r<=c&&f.push({module:a,ref:k||null,type:o,time:r})}}}return f.sort(function(a,b){return a.time-b.time})}function c(a,b){var c=new Map();for(var d=i.keys(),e=Array.isArray(d),f=0,d=e?d:d[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var g;if(e){if(f>=d.length)break;g=d[f++]}else{f=d.next();if(f.done)break;g=f.value}g=g;var h=j(g,a,b);h.length&&c.set(g,h)}return c}}),null);\n/**\n * License: https://www.facebook.com/legal/license/ZtTipMAcpq9/\n */\n__d(\"ImmediateImplementation\",[\"ImmediateImplementationExperiments\"],(function(a,b,c,d,e,f){(function(c,d){\"use strict\";var e=1,g={},h={},i=h,j=!1,k=c.document,l,m,n,o=\"setImmediate$\"+Math.random()+\"$\";function p(){var a=c.event;return!a?!1:a.isTrusted&&[\"change\",\"click\",\"contextmenu\",\"dblclick\",\"mouseup\",\"pointerup\",\"reset\",\"submit\",\"touchend\"].includes(a.type)||a.type===\"message\"&&a.source===c&&typeof a.data===\"string\"&&a.data.indexOf(o)===0}function q(a){var b=a[0];a=Array.prototype.slice.call(a,1);g[e]=function(){b.apply(void 0,a)};i=i.next={handle:e++};return i.handle}function r(){var a,b;while(!j&&(a=h.next)){h=a;if(b=g[a.handle]){j=!0;try{b(),j=!1}finally{s(a.handle),j&&(j=!1,h.next&&l(r))}}}}function s(a){delete g[a]}function d(){if(c.postMessage&&!c.importScripts){var a=!0,b=function b(){a=!1,c.removeEventListener?c.removeEventListener(\"message\",b,!1):c.detachEvent(\"onmessage\",b)};if(c.addEventListener)c.addEventListener(\"message\",b,!1);else if(c.attachEvent)c.attachEvent(\"onmessage\",b);else return!1;c.postMessage(\"\",\"*\");return a}}function t(){var a=function(a){a.source===c&&typeof a.data===\"string\"&&a.data.indexOf(o)===0&&r()};c.addEventListener?c.addEventListener(\"message\",a,!1):c.attachEvent(\"onmessage\",a);l=function(){var a=q(arguments);c.originalPostMessage?c.originalPostMessage(o+a,\"*\"):c.postMessage(o+a,\"*\");return a};m=l}function u(){var a=new MessageChannel(),b=!1;a.port1.onmessage=function(a){b=!1,r()};l=function(){var c=q(arguments);b||(a.port2.postMessage(c),b=!0);return c};n=l}function v(){var a=k.documentElement;l=function(){var b=q(arguments),c=k.createElement(\"script\");c.onreadystatechange=function(){c.onreadystatechange=null,a.removeChild(c),c=null,r()};a.appendChild(c);return b}}function w(){l=function(){setTimeout(r,0);return q(arguments)}}d()?c.MessageChannel&&b(\"ImmediateImplementationExperiments\").prefer_message_channel?(t(),u(),l=function(){if(p())return m.apply(null,arguments);else return n.apply(null,arguments)}):t():c.MessageChannel?u():k&&k.createElement&&\"onreadystatechange\"in k.createElement(\"script\")?v():w();f.setImmediate=l;f.clearImmediate=s})(typeof self===\"undefined\"?typeof a===\"undefined\"?this:a:self)}),null);\n__d(\"setImmediatePolyfill\",[\"invariant\",\"ImmediateImplementation\",\"PromiseUsePolyfillSetImmediateGK\"],(function(a,b,c,d,e,f,g){var h=a.setImmediate;if(b(\"PromiseUsePolyfillSetImmediateGK\").www_always_use_polyfill_setimmediate||!h){d=b(\"ImmediateImplementation\");h=d.setImmediate}function c(a){typeof a===\"function\"||g(0,5912);for(var b=arguments.length,c=new Array(b>1?b-1:0),d=1;d1?d-1:0),f=1;f=f.length)break;i=f[h++]}else{h=f.next();if(h.done)break;i=h.value}i=i;var k=i.$2;k&&(e=!0,d[k]=!0);b(\"JSResourceEvents\").notify(i.$1,k,\"LOADED\")}j(function(b){return b.loadModules(a.map(function(a){return a.getModuleId()}),c,e?Object.keys(d).join(\":\"):\"JSResource: unknown caller\")})};return a}();e.exports=a}),null);\n__d(\"ResourceHasher\",[\"invariant\"],(function(a,b,c,d,e,f,g){\"use strict\";f.getAsyncHash=a;f.createExternalJSHash=b;f.getValidResourceHash=c;var h=0;function a(a){return\"async:\"+a}function b(){return\"ejs:\"+h++}function c(a){typeof a===\"string\"||g(0,19551,a);return a}}),null);\n__d(\"TAAL\",[\"TAALOpcode\"],(function(a,b,c,d,e,f){\"use strict\";f.blameToPreviousFile=a;f.blameToPreviousFrame=c;f.blameToPreviousDirectory=d;f.applyOpcodes=g;function a(a){return g(a,[b(\"TAALOpcode\").PREVIOUS_FILE])}function c(a){return g(a,[b(\"TAALOpcode\").PREVIOUS_FRAME])}function d(a){return g(a,[b(\"TAALOpcode\").PREVIOUS_DIR])}function g(a,b){return b&&b.length?a+\" TAAL[\"+b.join(\";\")+\"]\":a}}),null);\n__d(\"TrustedTypes\",[\"TrustedTypesConfig\"],(function(a,b,c,d,e,f){\"use strict\";if(typeof trustedTypes!==\"undefined\"&&b(\"TrustedTypesConfig\").useTrustedTypes){var g=function(a,c){return function(d){if(a(d))return d;try{return c(\"\"+d)}catch(a){if(b(\"TrustedTypesConfig\").reportOnly)return\"\"+d;throw a}}},h=trustedTypes;a=babelHelpers[\"extends\"]({},h,{createPolicy:function(a,b){a=h.createPolicy(a,b);return{createHTML:g(h.isHTML.bind(h),a.createHTML.bind(a)),createScript:g(h.isScript.bind(h),a.createScript.bind(a)),createScriptURL:g(h.isScriptURL.bind(h),a.createScriptURL.bind(a))}}});c=a}else{var i=function(a){return a};d={isHTML:function(){return!1},isScriptURL:function(){return!1},isScript:function(){return!1},createPolicy:function(a,b){return{createHTML:i,createScriptURL:i,createScript:i}}};c=d}e.exports=c}),null);\n__d(\"createTrustedScriptURLFromFacebookURI\",[\"TrustedTypes\",\"URI\",\"isCdnURI\",\"isFacebookURI\"],(function(a,b,c,d,e,f){\"use strict\";var g,h=\"fburi-scripturls\",i,j={createScriptURL:function(a){var c=(g||(g=b(\"URI\"))).tryParseURI(a);if(c!=null&&(b(\"isFacebookURI\")(c)||b(\"isCdnURI\")(c)))return a;throw new TypeError()}};function k(){if(i)return;i=b(\"TrustedTypes\").createPolicy(h,j)}function l(){i||k();return i}function a(a){return l().createScriptURL(a)}e.exports=a}),null);\n__d(\"Bootloader\",[\"invariant\",\"BootloaderConfig\",\"BootloaderEndpoint\",\"BootloaderEvents\",\"BootloaderEventsManager\",\"CSRBitMap\",\"CSRIndexUtil\",\"CSSLoader\",\"ClientConsistency\",\"ErrorPubSub\",\"FBLogger\",\"JSResourceReference\",\"NetworkStatus\",\"ResourceHasher\",\"ResourceTimingsStore\",\"TAAL\",\"TimeSlice\",\"cr:696703\",\"createTrustedScriptURLFromFacebookURI\",\"ex\",\"ifRequireable\",\"nullthrows\",\"performanceAbsoluteNow\",\"performanceNow\",\"setTimeoutAcrossTransitions\"],(function(a,b,c,d,e,f,g){\"use strict\";var h,i,j,k=function(){},l=new Set(),m=!!b(\"BootloaderConfig\").deferBootloads;m&&!a.__comet_ssr_is_server_env_DO_NOT_USE&&b(\"setTimeoutAcrossTransitions\")(function(){$.undeferBootloads(!0)},15e3);var n=b(\"BootloaderConfig\").retryQueuedBootloads,o=[],p=[],q=new Map(),r=new Map(),s=new Map(),t=new Set(),u=new Map(),v=null,w=new Map(),x=new Map(),y=new Map(),z=[],A=new Map(),B=new Set(),C=!1,D=new Set(),E=!1,F=new(b(\"BootloaderEventsManager\"))(),G=b(\"BootloaderConfig\").jsRetries||[],H=b(\"BootloaderConfig\").jsRetryAbortNum,aa=b(\"BootloaderConfig\").jsRetryAbortTime,I=G.length>0;(h||(h=b(\"ErrorPubSub\"))).unshiftListener(function(a){var b=[];for(var c=q,d=Array.isArray(c),e=0,c=d?c:c[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var f;if(d){if(e>=c.length)break;f=c[e++]}else{e=c.next();if(e.done)break;f=e.value}f=f;var g=f[0];f[1];if(r.has(g))continue;f=M(g);if(f.type===\"csr\"||f.type===\"async\")continue;b.push(f.src)}a.loadingUrls=b});function J(a){if(m||!E)return!1;if(!n)return!0;for(var b=0;b=e.length)break;h=e[g++]}else{g=e.next();if(g.done)break;h=g.value}h=h;if(!w.has(h))return!1}}}return!0}function K(a){var c=u.get(a);if(!c)throw new Error(b(\"TAAL\").blameToPreviousFile(b(\"ex\")(\"Bootloader: %s is not in the component map\",a)));return c}function L(a){var c=K(a);c.be&&(delete c.be,$.done(b(\"ResourceHasher\").getAsyncHash(a)))}function M(a){var c=w.get(a);if(!c)throw new Error(b(\"TAAL\").blameToPreviousFile(b(\"ex\")(\"No resource entry for hash: %s\",a)));return c}function N(a,c){var d=b(\"ResourceHasher\").getAsyncHash(a);if(!w.has(d))w.set(d,{type:\"async\",module:a,blocking:!!c});else{a=M(d);a.type===\"async\"||g(0,21557);a.blocking&&!c&&(a.blocking=!1)}return d}function O(){v||(v=document.head||document.getElementsByTagName(\"head\")[0]||document.body);return v}function P(a){var b=document.createDocumentFragment();a(b);O().appendChild(b)}function Q(){if(!I)return!1;var a=z.length;if(a=a.length)break;n=a[m++]}else{m=a.next();if(m.done)break;n=m.value}n=n;var o=n[0];n=n[1];var p=void 0;switch(n.type){case\"css\":p=n.nonblocking?\"nonblocking\":\"blocking\";break;case\"js\":p=\"default\";break;case\"async\":p=n.blocking?\"blocking\":\"nonblocking\";break;default:n.type,g(0,3721)}i[p].set(o,n);var r=F.rsrcDone(o);k.push(r);p!==\"nonblocking\"&&(j.push(r),p===\"blocking\"&&f.push(r));q.has(o)||h.set(o,n)}var s,t;!b(\"cr:696703\")?s=t=function(a){return a()}:(t=b(\"cr:696703\").scheduleLoggingPriCallback,s=b(\"cr:696703\").getUserBlockingRunAtCurrentPriCallbackScheduler_DO_NOT_USE());var u=c.onBlocking,v=c.onAll,w=c.onLog;u&&F.registerCallback(function(){s(u)},f);v&&F.registerCallback(function(){s(v)},j);w&&F.registerCallback(function(){t(function(){return w(i)})},k);for(var p=h,r=Array.isArray(p),o=0,p=r?p:p[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){if(r){if(o>=p.length)break;n=p[o++]}else{o=p.next();if(o.done)break;n=o.value}m=n;l=m[0];a=m[1];R(l,a,d,e);V(l,a,d,e)}}function X(a,c,d){w.set(a,c);if(c.type===\"async\"||c.type===\"csr\")return;c=c.p;if(c)for(var c=b(\"CSRIndexUtil\").parseCSRIndexes(c),e=Array.isArray(c),f=0,c=e?c:c[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var g;if(e){if(f>=c.length)break;g=c[f++]}else{f=c.next();if(f.done)break;g=f.value}g=g;(!x.has(g)||d)&&(x.set(g,a),b(\"CSRBitMap\").add(g))}}function ba(a,c){var d=F.bootload(c);if(B.has(d))return[d,null];B.add(d);a={ref:a,components:c,timesliceContext:b(\"TimeSlice\").getContext(),startTime:(i||(i=b(\"performanceAbsoluteNow\")))(),callbackStart:0,callbackEnd:0,tierOne:b(\"BootloaderEvents\").newResourceMapSet(),tierTwo:b(\"BootloaderEvents\").newResourceMapSet(),tierThree:b(\"BootloaderEvents\").newResourceMapSet(),beRequests:new Map()};b(\"BootloaderEvents\").notifyBootloadStart(a);return[d,a]}function ca(a){return b(\"ifRequireable\").call(null,a,function(){return!0},function(){return!1})}function da(a,c,e,f){A.has(a)||A.set(a,{firstBootloadStart:(i||(i=b(\"performanceAbsoluteNow\")))(),logData:new Set()});f&&b(\"nullthrows\")(A.get(a)).logData.add(f);var g=K(a),h=g.r,j=g.rdfds,k=g.rds;g=g.be;g=ca(a)?null:N(a,g);g==null&&F.notify(F.beDone(a));W(g!=null?[g].concat(h):h,{onAll:function(){return F.notify(F.tierOne(a))},onLog:function(){return F.notify(F.tierOneLog(a))}},e,f==null?void 0:f.ref,f==null?void 0:f.tierOne);W((j==null?void 0:j.r)||[],{onAll:function(){return F.registerCallback(function(){F.notify(F.tierTwoStart(a)),d.call(null,(j==null?void 0:j.m)||[],function(){return F.notify(F.tierTwo(a))})},[F.tierOne(a),c])},onLog:function(){return F.notify(F.tierTwoLog(a))}},e,f==null?void 0:f.ref,f==null?void 0:f.tierTwo);W((k==null?void 0:k.r)||[],{onAll:function(){return F.registerCallback(function(){F.notify(F.tierThreeStart(a)),d.call(null,(k==null?void 0:k.m)||[],function(){return F.notify(F.tierThree(a))})},[F.tierTwo(a)])},onLog:function(){return F.notify(F.tierThreeLog(a))}},e,f==null?void 0:f.ref,f==null?void 0:f.tierThree)}function Y(a){var c=new Map();for(var d=0;d=e.length)break;i=e[h++]}else{h=e.next();if(h.done)break;i=h.value}i=i;i=b(\"nullthrows\")(x.get(i),\"No hash for rsrcIndex:\"+i);var j=M(i);j.type!==\"csr\"||g(0,20056,i);c.set(i,j)}}return c.entries()}function Z(a){var c,d=a.getAttribute(\"data-bootloader-hash\");if(d==null)return;var e=b(\"ResourceHasher\").getValidResourceHash(d);if(a.id){if(D.has(a.id))return;D.add(a.id)}d=a.tagName==\"SCRIPT\"?{src:a.src,type:\"js\"}:{src:a.href,type:\"css\"};a.crossOrigin==null&&(d.nc=1);d.type===\"css\"&&a.getAttribute(\"data-nonblocking\")&&(d.nonblocking=1);d.p=a.getAttribute(\"data-p\");w.has(e)&&!b(\"BootloaderConfig\").silentDups&&b(\"FBLogger\")(\"bootloader\").warn(\"Duplicate resource [%s]: %s\",e,d.src);X(e,d,!0);q.set(e,(i||(i=b(\"performanceAbsoluteNow\")))());var f=function(){return $.done(e)};c=d.type===\"js\"?!a.getAttribute(\"async\"):((c=a.parentNode)==null?void 0:c.tagName)===\"HEAD\";c||window._btldr&&window._btldr[e]?f():d.type===\"js\"?T(a,e,d,f):b(\"CSSLoader\").setupEventListeners(e,d.src,O(),f,U(e,d,f),a)}function ea(){if(C)return;C=!0;Array.from(document.getElementsByTagName(\"link\")).forEach(function(a){return Z(a)});Array.from(document.getElementsByTagName(\"script\")).forEach(function(a){return Z(a)})}function fa(){E=!0;var a=p;p=[];a.forEach(function(a){var b=a[0],c=a[1],d=a[2];a=a[3];a(function(){$.loadModules.apply($,[b,c,d])})});a=o;o=[];a.forEach(function(a){var b=a[0];a=a[1];a(function(){$.preloadModules.apply($,[b])})})}var $={preloadModules:function(a,c,d){c===void 0&&k;d===void 0&&(d=\"preloadModules: unknown caller\");if(!J(a)){c=b(\"TimeSlice\").getGuardedContinuation(\"Deferred: Bootloader.preloadModules\");o.push([a,c]);return}var e=[];for(var c=0;c=b.length)break;g=b[f++]}else{f=b.next();if(f.done)break;g=f.value}g=g;var h=g[0];g=g[1];R(h,g,a,d)}})},loadModules:function(a,c,e){c===void 0&&(c=k);e===void 0&&(e=\"loadModules: unknown caller\");var f=a,g=!1,h=function(){g||c.apply(void 0,arguments)};a={remove:function(){g=!0}};if(!J(f)){var j=\"Deferred: Bootloader.loadModules\";j=b(\"TimeSlice\").getGuardedContinuation(j);p.push([f,h,e,j]);return a}j=ba(e,f);var l=j[0],m=j[1];F.registerCallback(d.bind(null,f,function(){m&&(m.callbackStart=(i||(i=b(\"performanceAbsoluteNow\")))()),h.apply(void 0,arguments),m&&(m.callbackEnd=(i||(i=b(\"performanceAbsoluteNow\")))()),F.notify(l)}),f.map(function(a){return F.tierOne(a)}));P(function(b){for(var c=0;c=d.length)break;g=d[f++]}else{f=d.next();if(f.done)break;g=f.value}g=g;g.beRequests.set(b,c)}F.notify(F.beDone(a))},handlePayload:function(a){for(var b=(b=a.rsrcTags)!=null?b:[],c=Array.isArray(b),d=0,b=c?b:b[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var b,e;if(c){if(d>=b.length)break;e=b[d++]}else{d=b.next();if(d.done)break;e=d.value}e=e;Z(document.getElementById(e))}$.setResourceMap((e=a.rsrcMap)!=null?e:{},a.sotUpgrades,(c=(d=a.consistency)==null?void 0:d.rev)!=null?c:a.sr_revision);a.compMap&&$.enableBootload(a.compMap)},enableBootload:function(a){for(var b in a)u.has(b)||(u.set(b,a[b]),l.has(b)&&(l[\"delete\"](b),L(b)));ea();m||fa()},undeferBootloads:function(a){a===void 0&&(a=!1);if(window.location.search.indexOf(\"&__deferBootloads=\")!==-1)return;a&&m&&b(\"BootloaderEvents\").notifyDeferTimeout({componentMapSize:u.size,pending:p.map(function(a){var b=a[0];a[1];var c=a[2];a[3];return{components:b,ref:c}}),time:(j||(j=b(\"performanceNow\")))()});m=!1;u.size&&fa()},markComponentsAsImmediate:function(a){for(var b=0;b=g.length)break;e=g[a++]}else{a=g.next();if(a.done)break;e=a.value}d=e;c=w.get(d);c&&X(d,c,!0)}},getURLToHashMap:function(){var a=new Map();for(var b=w,c=Array.isArray(b),d=0,b=c?b:b[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var e;if(c){if(d>=b.length)break;e=b[d++]}else{d=b.next();if(d.done)break;e=d.value}e=e;var f=e[0];e=e[1];if(e.type===\"async\"||e.type===\"csr\")continue;a.set(e.src,f)}return a},loadPredictedResourceMap:function(a,b,c){$.setResourceMap(a,null,c),$.loadResources(Object.keys(a),{onAll:b})},getCSSResources:function(a){var b=[];for(var a=Y(a),c=Array.isArray(a),d=0,a=c?a:a[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var e;if(c){if(d>=a.length)break;e=a[d++]}else{d=a.next();if(d.done)break;e=d.value}e=e;var f=e[0];e=e[1];e.type===\"css\"&&b.push(f)}return b},getBootloadedComponents:function(){var a=new Map();for(var b=A,c=Array.isArray(b),d=0,b=c?b:b[typeof Symbol===\"function\"?Symbol.iterator:\"@@iterator\"]();;){var e;if(c){if(d>=b.length)break;e=b[d++]}else{d=b.next();if(d.done)break;e=d.value}e=e;var f=e[0];e=e[1];a.set(f,e.firstBootloadStart)}return a},getResourceState:function(a){return{loadStart:q.get(a),loadEnd:r.get(a),loadError:s.get(a)}},getComponentTiming:function(a){var b;return{tierTwoStart:(b=F.getEventTime(F.tierTwoStart(a)))!=null?b:0,tierTwoEnd:(b=F.getEventTime(F.tierTwo(a)))!=null?b:0,tierThreeStart:(b=F.getEventTime(F.tierThreeStart(a)))!=null?b:0,tierThreeEnd:(b=F.getEventTime(F.tierThree(a)))!=null?b:0}},getLoadedResourceCount:function(){return r.size},getErrorCount:function(){return s.size},forceFlush:function(){b(\"BootloaderEndpoint\").forceFlush()},__debug:{componentMap:u,requested:q,resources:w,riMap:x,retries:y,errors:s,loaded:r,bootloaded:A,queuedToMarkAsImmediate:l,_resolveCSRs:Y,_queuedLoadModules:p,_dequeueLoadModules:function(a){a=p.splice(a,1);if(!a.length)return;a=a[0];var b=a[0],c=a[1],d=a[2];a=a[3];var e=m,f=E,g=n;m=!1;E=!0;n=!1;a(function(){$.loadModules.apply($,[b,c,d])});m=e;E=f;n=g}}};b(\"JSResourceReference\").setBootloader($);e.exports=$}),null);\n__d(\"CSRFGuard\",[],(function(a,b,c,d,e,f){\"use strict\";f.exists=a;f.clean=b;c=\"for (;;);\";var g=/^for ?\\(;;\\);/;f.regex=g;d=c.length;f.length=d;function a(a){return!!a.match(g)}function b(a){var b=a.match(g);return b?a.substr(b[0].length):b}}),null);\n__d(\"clearImmediatePolyfill\",[\"ImmediateImplementation\"],(function(a,b,c,d,e,f){c=a.clearImmediate||b(\"ImmediateImplementation\").clearImmediate;e.exports=c}),null);\n__d(\"clearImmediate\",[\"clearImmediatePolyfill\"],(function(a,b,c,d,e,f){e.exports=a;function a(a){b(\"clearImmediatePolyfill\")(a)}}),null);\n__d(\"CurrentCommunity\",[\"CurrentCommunityInitialData\"],(function(a,b,c,d,e,f){a={getID:function(){return b(\"CurrentCommunityInitialData\").COMMUNITY_ID||\"0\"},getName:function(){return b(\"CurrentCommunityInitialData\").COMMUNITY_NAME||\"\"}};c=a;e.exports=c}),null);\n__d(\"DTSG\",[\"invariant\",\"DTSGInitialData\"],(function(a,b,c,d,e,f,g){\"use strict\";f.getToken=a;f.setToken=c;f.refresh=d;var h=b(\"DTSGInitialData\").token||null;function a(){return h}function c(a){h=a}function d(){g(0,5809)}}),null);\n__d(\"isOculusDotComURI\",[],(function(a,b,c,d,e,f){e.exports=a;var g=new RegExp(\"(^|\\\\.)oculus\\\\.com$\",\"i\"),h=[\"https\"];function a(a){if(a.isEmpty()&&a.toString()!==\"#\")return!1;return!a.getDomain()&&!a.getProtocol()?!1:h.indexOf(a.getProtocol())!==-1&&g.test(a.getDomain())}}),null);\n__d(\"DTSGUtils\",[\"SprinkleConfig\",\"isCdnURI\",\"isFacebookURI\",\"isMessengerDotComURI\",\"isOculusDotComURI\",\"isWorkplaceDotComURI\"],(function(a,b,c,d,e,f){\"use strict\";a={getNumericValue:function(a){var c=0;for(var d=0;d=0&&i.set(f),define(a,c,function(g,h,i,k,c){g={data:d};b(\"replaceTransportMarkers\")({relativeTo:j},g);if(f===-42){h=d!=null&&typeof d===\"object\"&&d.__throw8367__;throw new Error(a+\": \"+(typeof h===\"string\"?h:\"\"))}c.exports=g.data},g|h)},handleDefines:function(a,b){a.forEach(function(a){var c;b!=null?c=[].concat(a,[b]):c=[].concat(a,[null]);j.handleDefine.apply(null,c)})}};a=j;e.exports=a}),null);\n__d(\"StaticSiteData\",[],(function(a,b,c,d,e,f){e.exports=Object.freeze({pkg_cohort_key:\"__pc\",connection_class_server_guess_key:\"__ccg\",dpr_key:\"dpr\",be_one_ahead_key:\"__beoa\",spin_rev_key:\"__spin_r\",spin_time_key:\"__spin_t\",spin_branch_key:\"__spin_b\",spin_mhenv_key:\"__spin_dev_mhenv\",lite_iframe_locale_override_key:\"__ltif_locale\",weblite_key:\"__wblt\",weblite_iframe_key:\"__wbltif\",kite_key:\"__ktif\",kite_legacy_key:\"_ktif\",haste_session_id_key:\"__hsi\",jsmod_key:\"__dyn\",csr_key:\"__csr\",comet_key:\"__comet_req\"})}),null);\n/**\n * License: https://www.facebook.com/legal/license/09P_rcHKL4D/\n */\n__d(\"Alea\",[],(function(a,b,c,d,e,f){e.exports=a;function g(){var a=4022871197,b=function(b){b=b.toString();for(var c=0;c>>0;d-=a;d*=a;a=d>>>0;d-=a;a+=d*4294967296}return(a>>>0)*23283064365386963e-26};b.version=\"Mash 0.9\";return b}function a(){var a=0,b=0,c=0,d=1;for(var e=arguments.length,f=new Array(e),h=0;h0?f:[new Date()],j=new g();a=j(\" \");b=j(\" \");c=j(\" \");for(var k=0;k=a||a<=c)return;c=(g||(g=b(\"WebStorage\"))).getLocalStorage();if(c!=null){d=d==null?o():d.id;(g||(g=b(\"WebStorage\"))).setItemGuarded(c,\"Session\",d+\":\"+a)}}function c(){var a,b,c=q();a=(a=s())!=null?a:\"\";b=(b=t())!=null?b:\"\";return a+\":\"+b+\":\"+c}function d(){return q()}}),null);\n__d(\"asyncParams\",[],(function(a,b,c,d,e,f){f.add=a;f.get=b;var g={};function a(a,b){g[a]=b}function b(){return g}}),null);\n__d(\"CSSCore\",[\"invariant\"],(function(a,b,c,d,e,f,g){f.addClass=i;f.removeClass=j;f.conditionClass=a;f.hasClass=k;f.matchesSelector=b;function h(a,b){var c=a;while(c.parentNode)c=c.parentNode;if(c instanceof Element){c=c.querySelectorAll(b);return Array.prototype.indexOf.call(c,a)!==-1}return!1}function i(a,b){/\\s/.test(b)&&g(0,440,b);b&&(a.classList?a.classList.add(b):k(a,b)||(a.className=a.className+\" \"+b));return a}function j(a,b){/\\s/.test(b)&&g(0,441,b);b&&(a.classList?a.classList.remove(b):k(a,b)&&(a.className=a.className.replace(new RegExp(\"(^|\\\\s)\"+b+\"(?:\\\\s|$)\",\"g\"),\"$1\").replace(/\\s+/g,\" \").replace(/^\\s*|\\s*$/g,\"\")));return a}function a(a,b,c){return(c?i:j)(a,b)}function k(a,b){/\\s/.test(b)&&g(0,442);return a.classList?!!b&&a.classList.contains(b):(\" \"+a.className+\" \").indexOf(\" \"+b+\" \")>-1}function b(a,b){var c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector||function(b){return h(a,b)};return c.call(a,b)}}),null);\n__d(\"isSocialPlugin\",[\"CSSCore\"],(function(a,b,c,d,e,f){\"use strict\";e.exports=a;function a(){return!!document.body&&b(\"CSSCore\").hasClass(document.body,\"plugin\")}}),null);\n__d(\"getAsyncParams\",[\"CSRBitMap\",\"CurrentCommunity\",\"CurrentUserInitialData\",\"DTSG\",\"DTSGUtils\",\"DTSG_ASYNC\",\"Env\",\"ISB\",\"JSErrorLoggingConfig\",\"LSD\",\"ServerJSDefine\",\"SiteData\",\"SprinkleConfig\",\"StaticSiteData\",\"WebConnectionClassServerGuess\",\"WebSession\",\"asyncParams\",\"isSocialPlugin\"],(function(a,b,c,d,e,f){var g,h,i=b(\"JSErrorLoggingConfig\").sampleWeight,j=b(\"JSErrorLoggingConfig\").sampleWeightKey,k=1,l={locale:!0,cxobfus:!0,js_debug:!0,cquick:!0,ctarget:!0,cquick_token:!0,wdplevel:!0,prod_graphql:!0,sri:!0};function a(a){var c,d=babelHelpers[\"extends\"]({},b(\"asyncParams\").get(),(c={__user:(g||(g=b(\"CurrentUserInitialData\"))).USER_ID,__a:1},c[b(\"StaticSiteData\").jsmod_key]=b(\"ServerJSDefine\").getLoadedModuleHash(),c[b(\"StaticSiteData\").csr_key]=b(\"CSRBitMap\").toCompressedString(),c.__req=(k++).toString(36),c[b(\"StaticSiteData\").be_one_ahead_key]=b(\"SiteData\").be_one_ahead?1:0,c[b(\"StaticSiteData\").pkg_cohort_key]=b(\"SiteData\").pkg_cohort,c[b(\"StaticSiteData\").dpr_key]=b(\"SiteData\").pr,c[b(\"StaticSiteData\").connection_class_server_guess_key]=b(\"WebConnectionClassServerGuess\").connectionClass,c.__rev=b(\"SiteData\").client_revision,c.__s=b(\"WebSession\").getId(),c[b(\"StaticSiteData\").haste_session_id_key]=b(\"SiteData\").hsi,c[b(\"StaticSiteData\").comet_key]=b(\"SiteData\").is_comet?1:0,c));b(\"SiteData\").force_blue&&(d.force_blue=1);window.location.search.slice(1).split(\"&\").forEach(function(a){a=a.split(\"=\");var b=a[0];a=a[1];(b.substr(0,4)===\"tfc_\"||b.substr(0,4)===\"tfi_\"||b.substr(0,3)===\"mh_\"||l[b]>-1)&&(d[b]=a)});(h||(h=b(\"Env\"))).isCQuick&&!d.cquick&&(d.cquick=(h||(h=b(\"Env\"))).iframeKey,d.ctarget=h.iframeTarget,d.cquick_token=h.iframeToken);if(a==\"POST\"){c=b(\"DTSG\").getCachedToken?b(\"DTSG\").getCachedToken():b(\"DTSG\").getToken();c&&(d.fb_dtsg=c,b(\"SprinkleConfig\").param_name&&(d[b(\"SprinkleConfig\").param_name]=b(\"DTSGUtils\").getNumericValue(c)));b(\"LSD\").token&&(d.lsd=b(\"LSD\").token,b(\"SprinkleConfig\").param_name&&!c&&(d[b(\"SprinkleConfig\").param_name]=b(\"DTSGUtils\").getNumericValue(b(\"LSD\").token)))}if(a==\"GET\"){c=b(\"DTSG_ASYNC\").getCachedToken?b(\"DTSG_ASYNC\").getCachedToken():b(\"DTSG_ASYNC\").getToken();c&&(d.fb_dtsg_ag=c,b(\"SprinkleConfig\").param_name&&(d[b(\"SprinkleConfig\").param_name]=b(\"DTSGUtils\").getNumericValue(c)))}b(\"ISB\").token&&(d.fb_isb=b(\"ISB\").token);b(\"CurrentCommunity\").getID()!==\"0\"&&(d.__cid=b(\"CurrentCommunity\").getID());b(\"isSocialPlugin\")()&&(d.__sp=1);if(b(\"SiteData\").spin){d[(a=b(\"StaticSiteData\")).spin_rev_key]=b(\"SiteData\")[a.spin_rev_key];d[a.spin_branch_key]=b(\"SiteData\")[a.spin_branch_key];d[a.spin_time_key]=b(\"SiteData\")[a.spin_time_key];b(\"SiteData\")[b(\"StaticSiteData\").spin_mhenv_key]&&(d[b(\"StaticSiteData\").spin_mhenv_key]=b(\"SiteData\")[b(\"StaticSiteData\").spin_mhenv_key])}i!=null&&j!=null&&(d[j]=i);return d}e.exports=a}),null);\n__d(\"BootloaderEndpoint\",[\"Bootloader\",\"BootloaderEndpointConfig\",\"CSRFGuard\",\"ErrorXFBDebug\",\"FBLogger\",\"HasteResponse\",\"TimeSlice\",\"clearImmediate\",\"getAsyncParams\",\"getSameOriginTransport\",\"performanceAbsoluteNow\",\"setImmediateAcrossTransitions\"],(function(a,b,c,d,e,f){\"use strict\";var g,h=b(\"BootloaderEndpointConfig\").endpointURI,i=0,j=null,k=null,l=new Map(),m=new Map();function n(a,c){var d={};a.size&&(d.modules=Array.from(a.keys()).join(\",\"));c.size&&(d.nb_modules=Array.from(c.keys()).join(\",\"));a=Object.entries(babelHelpers[\"extends\"]({},d,b(\"getAsyncParams\")(\"GET\"))).map(function(a){var b=a[0];a=a[1];return encodeURIComponent(b)+\"=\"+encodeURIComponent(String(a))}).join(\"&\");return h+(h.includes(\"?\")?\"&\":\"?\")+a}function o(a,c){if(a.size===0&&c.size===0)return;var d=n(a,c),e=b(\"getSameOriginTransport\")(),f=i++,h=(g||(g=b(\"performanceAbsoluteNow\")))();e.open(\"GET\",d,!0);var j=b(\"TimeSlice\").getGuardedContinuation(\"Bootloader _requestHastePayload\");e.onreadystatechange=function(){if(e.readyState!==4)return;j(function(){b(\"ErrorXFBDebug\").addFromXHR(e);var g=e.status===200?JSON.parse(b(\"CSRFGuard\").clean(e.responseText)):null;if(g==null){b(\"FBLogger\")(\"bootloader\").warn(\"Invalid response from %s: %s\",d,e.responseText.substr(0,256));return}if(g.__error){b(\"FBLogger\")(\"bootloader\").warn(\"Fatal error from bootloader endpoint: %s\",d);return}b(\"TimeSlice\").guard(function(){return p(d,g,a,c,f,h)},\"Bootloader receiveEndpointData\",{propagationType:b(\"TimeSlice\").PropagationType.CONTINUATION})()})};e.send()}function p(a,c,d,e,f,h){var i=(g||(g=b(\"performanceAbsoluteNow\")))(),j=c.serverGenTime,k=c.hrp;k==null&&(b(\"FBLogger\")(\"be_null_hrp\").mustfix(\"Found null hrp with uri: %s, response keys: %s\",a,JSON.stringify(Object.keys(c))),k=c);b(\"HasteResponse\").handle(k,{source:\"bootloader_endpoint\",onBlocking:function(){var a=[d,e];for(var c=0;c=f.length)break;i=f[h++]}else{h=f.next();if(h.done)break;i=h.value}i=i;b(\"Bootloader\").done(i)}}},onLog:function(a){var c=[d,e];for(var g=0;g=k.length)break;n=k[m++]}else{m=k.next();if(m.done)break;n=m.value}n=n;b(\"Bootloader\").beDone(n,f,babelHelpers[\"extends\"]({requestStart:h,responseStart:i,serverGenTime:j},a))}}}})}function q(){var a=l,c=m;b(\"clearImmediate\")(k);k=null;j=null;l=new Map();m=new Map();o(a,c)}a={load:function(a,c,d){(c?l:m).set(a,d);if(b(\"BootloaderEndpointConfig\").debugNoBatching){q();return}if(k!=null)return;j=b(\"TimeSlice\").getGuardedContinuation(\"Schedule async batch request: Bootloader._loadResources\");k=b(\"setImmediateAcrossTransitions\")(function(){j&&j(function(){return q()})})},forceFlush:function(){j&&j(function(){return q()})}};e.exports=a}),null);\n__d(\"bx\",[\"invariant\"],(function(a,b,c,d,e,f,g){e.exports=a;var h={};function a(a){var b=h[a];!b&&g(0,3199,a);return b}a.add=function(a){var b=!1;for(var c in a)c in h||(a[c].loggingID=c,h[c]=a[c])};a.getURL=function(a){return a.uri}}),null);\n__d(\"recoverableViolation\",[\"FBLogger\"],(function(a,b,c,d,e,f){\"use strict\";e.exports=a;function a(a,c,d){d=d===void 0?{}:d;d=d.error;c=b(\"FBLogger\")(c);d?c=c.catching(d):c=c.blameToPreviousFrame();c.mustfix(a);return null}}),null);\n__d(\"getFalcoLogPolicy_DO_NOT_USE\",[\"recoverableViolation\"],(function(a,b,c,d,e,f){\"use strict\";var g={r:1},h={};function a(a){var c=h[a];if(c==null){b(\"recoverableViolation\")(\"Failed to find a Haste-supplied log policy for the Falco event ' +\\n 'identified by token `\"+a+\"`. Failing open (ie. with a sampling rate of 1.0).\",\"staticresources\");return g}return c}a.add=function(a){Object.keys(a).forEach(function(b){h[b]==null&&(h[b]=a[b])})};e.exports=a}),null);\n__d(\"ix\",[\"invariant\"],(function(a,b,c,d,e,f,g){e.exports=a;var h={};function a(a){var b=h[a];!b&&g(0,582,a);return b}a.add=function(a){var b=!1;for(var c in a)c in h||(a[c].loggingID=c,h[c]=a[c])}}),null);\n__d(\"qex\",[\"invariant\",\"BanzaiLazyQueue\"],(function(a,b,c,d,e,f,g){\"use strict\";var h={},i={};a={_:function(a){var c=h[a];c!=null||g(0,3203,a);var d=c.r;c=c.l;c!=null&&!i[a]&&(i[a]=!0,b(\"BanzaiLazyQueue\").queuePost(\"qex\",{l:c}));return d},add:function(a){for(var b in a)b in h||(h[b]=a[b])}};c=a;e.exports=c}),null);\n__d(\"HasteSupportData\",[\"ix\",\"bx\",\"getFalcoLogPolicy_DO_NOT_USE\",\"gkx\",\"qex\"],(function(a,b,c,d,e,f,g){\"use strict\";f.handle=a;function a(a){var c=a.bxData,d=a.clpData,e=a.gkxData,f=a.ixData;a=a.qexData;c!=null&&b(\"bx\").add(c);d!=null&&b(\"getFalcoLogPolicy_DO_NOT_USE\").add(d);e!=null&&b(\"gkx\").add(e);f!=null&&g.add(f);a!=null&&b(\"qex\").add(a)}}),null);\n__d(\"$-core\",[\"TAALOpcode\",\"err\"],(function(a,b,c,d,e,f){e.exports=a;function a(a){return g(a,typeof a===\"string\"?document.getElementById(a):a)}function c(a){return g(a,typeof a===\"string\"?document.getElementById(a):a)}function g(a,c){if(!c){a=b(\"err\")('Tried to get element with id of \"%s\" but it is not present on the page',String(a));a.taalOpcodes=a.taalOpcodes||[];a.taalOpcodes=[b(\"TAALOpcode\").PREVIOUS_FILE];throw a}return c}a.fromIDOrElement=c}),null);\n__d(\"$\",[\"$-core\"],(function(a,b,c,d,e,f){a=b(\"$-core\");e.exports=a}),null);\n__d(\"CSS\",[\"$\",\"CSSCore\"],(function(a,b,c,d,e,f){f.setClass=a;f.hasClass=h;f.matchesSelector=c;f.addClass=i;f.removeClass=j;f.conditionClass=k;f.toggleClass=l;f.shown=d;f.hide=e;f.show=m;f.toggle=n;f.conditionShow=o;a=typeof window!=\"undefined\"?window.CSS:null;var g=\"hidden_elem\";c=a&&a.supports.bind(a);f.supports=c;function a(a,c){b(\"$\").fromIDOrElement(a).className=c||\"\";return a}function h(a,c){return a instanceof Document||a instanceof Text?!1:b(\"CSSCore\").hasClass(b(\"$\").fromIDOrElement(a),c)}function c(a,c){return a instanceof Document||a instanceof Text?!1:b(\"CSSCore\").matchesSelector(b(\"$\").fromIDOrElement(a),c)}function i(a,c){return b(\"CSSCore\").addClass(b(\"$\").fromIDOrElement(a),c)}function j(a,c){return b(\"CSSCore\").removeClass(b(\"$\").fromIDOrElement(a),c)}function k(a,c,d){return b(\"CSSCore\").conditionClass(b(\"$\").fromIDOrElement(a),c,!!d)}function l(a,b){return k(a,b,!h(a,b))}function d(a){return!h(a,g)}function e(a){return i(a,g)}function m(a){return j(a,g)}function n(a){return l(a,g)}function o(a,b){return k(a,g,!b)}}),null);\n__d(\"Parent\",[\"CSS\"],(function(a,b,c,d,e,f){f.byTag=a;f.byClass=c;f.bySelector=d;f.bySelector_SLOW=g;f.byAttribute=e;f.find=h;function a(a,b){b=b.toUpperCase();a=h(a,function(a){return a.nodeName===b});return a instanceof Element?a:null}function c(a,c){a=h(a,function(a){return a instanceof Element&&b(\"CSS\").hasClass(a,c)});return a instanceof Element?a:null}function d(a,b){a=a;if(typeof a.matches===\"function\"){while(a&&a!==document&&!a.matches(b))a=a.parentNode;return a instanceof Element?a:null}else if(typeof a.msMatchesSelector===\"function\"){while(a&&a!==document&&!a.msMatchesSelector(b))a=a.parentNode;return a instanceof Element?a:null}else return g(a,b)}function g(a,b){a=a;var c=a;while(c.parentNode)c=c.parentNode;if(!(c instanceof Element)&&!(c instanceof Document))return null;c=c.querySelectorAll(b);while(a){if(Array.prototype.indexOf.call(c,a)!==-1)return a instanceof Element?a:null;a=a.parentNode}return a instanceof Element?a:null}function e(a,b){a=h(a,function(a){return a instanceof Element&&!!a.getAttribute(b)});return a instanceof Element?a:null}function h(a,b){a=a;while(a){if(b(a))return a;a=a.parentNode}return null}}),null);\n__d(\"ContextualComponent\",[\"Parent\"],(function(a,b,c,d,e,f){a=function(){a.forNode=function(b){return a.$1.get(b)||null};a.closestToNode=function(c){c=b(\"Parent\").find(c,function(b){return!!a.forNode(b)});return c?a.forNode(c):null};a.register=function(b){return new a(b)};function a(a){var b=a.element,c=a.isRoot;a=a.parent;this.$2=c;this.$3=b;this.$4=a;this.$5=new Set();this.$6=[];this.$7=[];this.$8()}var c=a.prototype;c.onCleanup=function(a){this.$6.push(a)};c.onUnmount=function(a){this.$7.push(a)};c.cleanup=function(){this.$5.forEach(function(a){return a.cleanup()}),this.$6.forEach(function(a){return a()}),this.$6=[]};c.unmount=function(){this.cleanup();this.$5.forEach(function(a){return a.unmount()});this.$7.forEach(function(a){return a()});this.$7=[];var b=this.$4;b&&(a.$1[\"delete\"](this.$3),b.$9(this))};c.reinitialize=function(){var b=this.$4;b&&(b.$9(this),this.$4=void 0);a.$1[\"delete\"](this.$3);this.$8()};c.$8=function(){if(!this.$2&&!this.$4){var b=a.closestToNode(this.$3);b&&(this.$4=b)}this.$4&&this.$4.$10(this);a.$1.set(this.$3,this)};c.$10=function(a){this.$5.add(a)};c.$9=function(a){this.$5[\"delete\"](a)};return a}();e.exports=a;a.$1=new Map()}),null);\n__d(\"__debug\",[],(function(a,b,c,d,e,f){a={};e.exports=a}),null);\n__d(\"ServerJS\",[\"ContextualComponent\",\"ErrorGuard\",\"ServerJSDefine\",\"__debug\",\"err\",\"ge\",\"replaceTransportMarkers\"],(function(a,b,c,d,e,f){var g,h=1,i=2,j=16,k=0;a=function(){\"use strict\";function a(){this.$2={},this.$1=null,this.$4={},this.$3=void 0}var c=a.prototype;c.handle=function(a,b){return this.$5(a,b,m)};c.handleWithCustomApplyEach=function(a,b,c){this.$5(b,c,a)};c.$5=function(a,c,d){this.$3=c;if(a.__guard!=null)throw b(\"err\")(\"ServerJS.handle called on data that has already been handled\");a.__guard=!0;d(a.define||[],this.$6,this);d(a.markup||[],this.$7,this);d(a.elements||[],this.$8,this);this.$9(a.contexts||[]);d(a.instances||[],this.$10,this);var e=d(a.pre_display_requires||[],this.$11,this);e=e.concat(d(a.require||[],this.$11,this));return{cancel:function(){e.forEach(function(a){a&&a.cancel()})}}};c.handlePartial=function(a,b){var c=this;(a.instances||[]).forEach(function(a){p(c.$2,a)});(a.markup||[]).forEach(function(a){o(c.$2,a)});(a.elements||[]).forEach(function(a){o(c.$2,a)});return this.handle(a,b)};c.setRelativeTo=function(a){this.$1=a;return this};c.cleanup=function(a){var c=Object.keys(this.$2);a?d.call(null,c,a.guard(function(){},\"SeverJS Cleanup requireLazy\",{propagationType:a.PropagationType.ORPHAN})):d.call(null,c,function(){});this.$2={};function f(c){var d=this.$4[c],a=d[0],f=d[1];d=d[2];delete this.$4[c];f=f?'JS::call(\"'+a+'\", \"'+f+'\", ...)':'JS::requireModule(\"'+a+'\")';a=b(\"__debug\").debugUnresolvedDependencies([a,c]);throw l(b(\"err\")(\"%s did not fire because it has missing dependencies.\\n%s\",f,a),d)}for(var h in this.$4)(g||(g=b(\"ErrorGuard\"))).applyWithGuard(f,this,[h],{name:\"ServerJS:cleanup id: \"+h,project:\"ServerJSCleanup\"})};c.$6=function(a,c,d,e){return(g||(g=b(\"ErrorGuard\"))).applyWithGuard(b(\"ServerJSDefine\").handleDefine,b(\"ServerJSDefine\"),[a,c,d,e,this.$1],{name:\"JS::define\"})};c.$11=function(a,c,d,e){return(g||(g=b(\"ErrorGuard\"))).applyWithGuard(this.$12,this,[a,c,d,e],{name:c!=null?\"JS::call\":\"JS::requireModule\"})};c.$12=function(a,c,d,e){a=b(\"ServerJSDefine\").getModuleNameAndHash(a);var f=a.name,m=a.hash,n;typeof c===\"object\"?a=c:(a=d,n=c);d=[f].concat(a||[]);var o;n!=null?o=\"__call__\"+f+\".\"+n:o=\"__requireModule__\"+f;o+=\"__\"+k++;this.$4[o]=[f,n,m];var p=this.$3&&this.$3.bigPipeContext,q=(g||(g=b(\"ErrorGuard\"))).guard(function(a){a=b.call(null,f);delete this.$4[o];e&&b(\"replaceTransportMarkers\")({relativeTo:this.$1,bigPipeContext:p},e);if(n!=null){if(!a[n])throw l(b(\"err\")('Module %s has no method \"%s\"',f,n),m);a[n].apply(a,e||[]);q.__SMmeta=a[n].__SMmeta||{};q.__SMmeta.module=q.__SMmeta.module||f;q.__SMmeta.name=q.__SMmeta.name||n}}.bind(this),{name:n!=null?\"JS::call('\"+f+\"', '\"+n+\"', ...)\":\"JS::requireModule('\"+f+\"')\"});c=define(o,d,q,h|j|i,this,1,this.$3);return c};c.$10=function(a,c,d,e){(g||(g=b(\"ErrorGuard\"))).applyWithGuard(this.$13,this,[a,c,d,e],{name:\"JS::instance\"})};c.$13=function(a,c,d,e){var f=null;a=b(\"ServerJSDefine\").getModuleNameAndHash(a);var g=a.name;a=a.hash;if(c){var h=this.$3&&this.$3.bigPipeContext;f=function(){var a=b.call(null,c[0]);b(\"replaceTransportMarkers\")({relativeTo:this.$1,bigPipeContext:h},d);var e=Object.create(a.prototype);a.apply(e,d);return e}.bind(this)}define(g,c,f,i|j,null,e)};c.$7=function(a,c,d){(g||(g=b(\"ErrorGuard\"))).applyWithGuard(this.$14,this,[a,c,d],{name:\"JS::markup\"})};c.$14=function(a,c,d){a=b(\"ServerJSDefine\").getModuleNameAndHash(a);var e=a.name;a=a.hash;define(e,[\"HTML\"],function(b){try{return b.replaceJSONWrapper(c).getRootNode()}catch(b){throw l(b,a)}},j,null,d)};c.$8=function(a,c,d,e){(g||(g=b(\"ErrorGuard\"))).applyWithGuard(this.$15,this,[a,c,d,e],{name:\"JS::element\"})};c.$15=function(a,c,d,e){a=b(\"ServerJSDefine\").getModuleNameAndHash(a);var f=a.name,g=a.hash;if(c===null&&d!=null){define(f,null,null,j,null,d);return}a=[];var i=j;d=d||0;e!=null&&(a.push(e),i|=h,d++);define(f,a,function(a){a=b(\"ge\")(c,a);if(!a){var d=\"\";throw l(b(\"err\")('Could not find element \"%s\"%s',c,d),g)}return a},i,null,d)};c.$9=function(a){(g||(g=b(\"ErrorGuard\"))).applyWithGuard(this.$16,this,[a],{name:\"ContextualComponents\"})};c.$16=function(a){var c=this,d=this.$3&&this.$3.bigPipeContext;a.map(function(a){b(\"replaceTransportMarkers\")({relativeTo:c.$1,bigPipeContext:d},a);var e=a[0];return[a,n(e)]}).sort(function(a,b){return a[1]-b[1]}).forEach(function(a){a=a[0];var c=a[0];a=a[1];b(\"ContextualComponent\").register({element:c,isRoot:a})})};return a}();function l(a,b){a.serverHash=b;return a}function m(a,b,c){return a.map(function(a){return b.apply(c,a)})}function n(a){var b=0;a=a;while(a)a=a.parentElement,b++;return b}function o(c,a){var d=b(\"ServerJSDefine\").getModuleNameAndHash(a[0]);d=d.name;d in c||(a[2]=(a[2]||0)+1);c[d]=!0}function p(c,a){var d=b(\"ServerJSDefine\").getModuleNameAndHash(a[0]);d=d.name;d in c||(a[3]=(a[3]||0)+1);c[d]=!0}e.exports=a}),null);\n__d(\"HasteResponse\",[\"Bootloader\",\"BootloaderEvents\",\"ClientConsistencyEventEmitter\",\"HasteSupportData\",\"ServerJS\",\"TimeSlice\",\"performanceAbsoluteNow\"],(function(a,b,c,d,e,f){\"use strict\";var g,h={handleSRPayload:function(a){var c=a.hsdp;a=a.hblp;c&&b(\"HasteSupportData\").handle(c);a&&b(\"Bootloader\").handlePayload(a);(a==null?void 0:a.consistency)!=null&&b(\"ClientConsistencyEventEmitter\").emit(\"newEntry\",a.consistency)},handle:function(a,c){var d=a.jsmods,e=a.allResources;a=a.hsrp;var f=c.source,i=c.sourceDetail,j=c.onBlocking,k=c.onLog;c=c.onAll;var l=(g||(g=b(\"performanceAbsoluteNow\")))();a&&h.handleSRPayload(a);var m=0,n=0;b(\"Bootloader\").loadResources((a=e)!=null?a:[],{onBlocking:function(){m=(g||(g=b(\"performanceAbsoluteNow\")))(),new(b(\"ServerJS\"))().handle(d||{}),n=g(),j==null?void 0:j()},onAll:c,onLog:function(a){a={source:f,sourceDetail:i,timesliceContext:b(\"TimeSlice\").getContext(),startTime:l,logTime:(g||(g=b(\"performanceAbsoluteNow\")))(),jsmodsStart:m,jsmodsEnd:n,rsrcs:a};k==null?void 0:k(a);b(\"BootloaderEvents\").notifyHasteResponse(a)}},\"HasteResponse:\"+f+\":\"+((e=i)!=null?e:\"\"))}};e.exports=h}),null);\n__d(\"promiseDone\",[\"Env\",\"ErrorPubSub\",\"getErrorSafe\"],(function(a,b,c,d,e,f){var g,h;function a(a,c,d){var e,f=(e=(g||(g=b(\"Env\"))).deferred_stack_trace_rate)!=null?e:0,i=null;f>=1&&Math.random()<1/f&&(i=new Error(\"\"));var j=function(){i=null},k=arguments.length>1?a.then(c,d):a;k.then(j,function(a){a=b(\"getErrorSafe\")(a);a.deferredSource=i;a.loggingSource=\"PROMISE_DONE\";(h||(h=b(\"ErrorPubSub\"))).reportError(a);j()})}e.exports=a}),null);\n__d(\"RequireDeferredReference\",[\"Bootloader\",\"Promise\",\"cr:696703\",\"ifRequireable\",\"ifRequired\",\"performanceNow\",\"promiseDone\",\"qex\",\"requireWeak\"],(function(a,b,c,d,e,f){\"use strict\";var g,h=function(a){return a};a=function(){function a(a){this.$1=a}var c=a.prototype;c.getModuleId=function(){var a=this.$1;return a};c.getModuleIdAsRef=function(){return this.$1};c.__setRef=function(a){this.$2=a;return this};c.preload=function(){};c.getModuleIfRequired=function(){return b(\"ifRequired\").call(null,this.$1,h)};c.getModuleIfRequireable=function(){return b(\"ifRequireable\").call(null,this.$1,h)};c.load=function(){var a=this,c=b(\"ifRequireable\")(\"InteractionTracingMetrics\",function(c){return c.currentInteractionLogger().addRequireDeferred(a.getModuleId(),(g||(g=b(\"performanceNow\")))())});return new(b(\"Promise\"))(function(d){b(\"requireWeak\").call(null,a.getModuleIdAsRef(),function(a){if(c){var e=!1;c((g||(g=b(\"performanceNow\")))(),e)}d(a)})})};c.loadImmediately=function(a){var c,d=!1,e=!1;function f(b){if(d||e)return;d=!0;a(b)}var g=b(\"Bootloader\").loadModules.call(b(\"Bootloader\"),[this.getModuleIdAsRef()],f,(c=this.$2)!=null?c:\"RequireDeferredReference.loadImmediately()\");b(\"requireWeak\").call(null,this.getModuleIdAsRef(),function(a){f(a)});return{remove:function(){e||(e=!0,g.remove())}}};c.onReadyImmediately=function(a){var c=this,d=!1,e=(g||(g=b(\"performanceNow\")))(),f=b(\"ifRequireable\")(\"InteractionTracingMetrics\",function(a){return a.currentInteractionLogger().addRequireDeferred(c.getModuleId(),e)}),h=this.getModuleIfRequireable();if(h!=null){if(f){var i=!0;f(e,i)}a(h)}else{var j=!1;if(b(\"cr:696703\"))if(b(\"qex\")._(\"1897453\")===!0)this.loadImmediately(function(){f&&f((g||(g=b(\"performanceNow\")))(),j),d||a.apply(void 0,arguments)});else{var k=b(\"cr:696703\").getCurrentPriorityLevel();this.loadImmediately(function(){for(var c=arguments.length,e=new Array(c),h=0;h0){var a=(g||(g=b(\"performanceNow\")))(),c=document.cookie;a=g()-a;var d=a>b(\"CookieCoreLoggingConfig\").maximumIgnorableStallMs&&b(\"Random\").coinflip(1/b(\"CookieCoreLoggingConfig\").sampleRate);d&&b(\"FBLogger\")(\"cookie_infra\").addMetadata(\"COOKIE_INFRA\",\"WALL_TIME\",String(a)).warn(\"Cookie read exceeded %s milliseconds.\",b(\"CookieCoreLoggingConfig\").maximumIgnorableStallMs);return c}else return document.cookie}var l=function(){function a(){this.$1=0}var c=a.prototype;c.setCookie=function(a,b,c,d,e,f,g,h){document.cookie=i(a,b,c,d,e,f,g,h)};c.clearCookie=function(a,b,c){document.cookie=j(a,b,c)};c.getCookie=function(a){this.$1++;var c=(g||(g=b(\"performanceNow\")))();a=k().match(\"(?:^|;\\\\s*)\"+a+\"=(.*?)(?:;|$)\");c=g()-c;var d=1/b(\"CookieCoreLoggingConfig\").sampleRateClassic,e=b(\"Random\").coinflip(d);e&&m(d,\"classic\",c,this.$1);return a?decodeURIComponent(a[1]):null};return a}();function m(a,b,c,d,e,f){h.onReady(function(g){g=new g(\"cookie_perf\",null,{addBrowserFields:!0});g.addInteger(\"sample_rate\",Math.floor(a));g.addNormal(\"type\",b);g.addInteger(\"duration_usec\",c*1e3);g.addInteger(\"reads\",d);typeof e===\"number\"&&g.addInteger(\"misses\",e);typeof f===\"boolean\"&&g.addNormal(\"hit\",f);g.post()})}var n=10*1e3,o=function(){function a(){this.$1={},this.$2=0,this.$3=0,this.$4=0}var c=a.prototype;c.setCookie=function(a,b,c,d,e,f,g,h){document.cookie=i(a,b,c,d,e,f,g,h),this.$1[b]={value:c,updated:a}};c.clearCookie=function(a,b,c){document.cookie=j(a,b,c),this.$1[a]={value:null,updated:Date.now()}};c.getCookie=function(a){var c=(g||(g=b(\"performanceNow\")))();a=this.$5(a);var d=a.cookie;a=a.hit;var e=1/b(\"CookieCoreLoggingConfig\").sampleRateFastStale,f=b(\"Random\").coinflip(e);if(f){f=(g||(g=b(\"performanceNow\")))()-c;m(e,\"fast_stale\",f,this.$3,this.$4,a)}return d};c.$5=function(a){var b=Date.now(),c=this.$1[a];if(!c){if(this.$2+n=a.length)break;d=a[c++]}else{c=a.next();if(c.done)break;d=c.value}d=d;d=d.match(\"\\\\s*([^=]+)=(.*)\");if(!d)continue;this.$1[d[1]]={value:decodeURIComponent(d[2]),updated:this.$2}}};return a}();e.exports={newCookieStore:function(){return b(\"gkx\")(\"676837\")?new o():new l()},CookieCacheForTest:o,CookieStoreSlowForTest:l}}),null);\n__d(\"CookieCore\",[\"CookieCoreConfig\",\"CookieStore\"],(function(a,b,c,d,e,f){f.set=l;f.setWithoutChecks=m;f.setIfFirstPartyContext=a;f.setWithoutChecksIfFirstPartyContext=c;f.clear=n;f.get=d;var g=/^.*(\\.(facebook|messenger|oculus|instagram|facebookcorewwwi|workplace|fbaddins)\\..*)$/i,h=/_js_(.*)/,i;function j(){i||(i=b(\"CookieStore\").newCookieStore());return i}function k(a){return window.self!=window.top?!1:!0}function l(a,b){if(!q(a))return;m(a,b,s(a),t(a),r(a),u(a))}function m(a,b,c,d,e,f){var h=Date.now();if(c!=null)if(c>h)c-=h;else if(c==1){n(a,d);return}j().setCookie(h,a,b,d,window.location.hostname.replace(g,\"$1\"),c,e,f)}function a(a,b){if(!k(a))return;l(a,b)}function c(a,b,c,d,e){if(!k(a))return;m(a,b,c,d,e)}function n(a,b){b===void 0&&(b=\"/\"),b=b||\"/\",j().clearCookie(a,b,window.location.hostname.replace(g,\"$1\"))}function d(a){return!q(a)?null:j().getCookie(a)}function o(a){return{insecure:a.i||!1,path:a.p||\"/\",ttlSeconds:a.t||0,sameSite:a.s||\"None\"}}function p(a){if(b(\"CookieCoreConfig\")[a]!==void 0)return o(b(\"CookieCoreConfig\")[a]);a=a.match(h);return a&&a.length>1?p(a[1]):null}function q(a){return p(a)!==null}function r(a){a=p(a);return a==null?!0:!a.insecure}function s(a){a=p(a);return a==null?null:a.ttlSeconds*1e3}function t(a){a=p(a);return a==null?\"/\":a.path}function u(a){a=p(a);return a==null||a.sameSite==null?null:a.sameSite}}),null);\n__d(\"Cookie\",[\"Bootloader\",\"CookieConsent\",\"CookieCore\"],(function(a,b,c,d,e,f){var g;function h(a){if(!(g||(g=b(\"CookieConsent\"))).hasConsent(1)){b(\"Bootloader\").loadModules([\"ODS\"],function(b){b.bumpEntityKey(2966,\"defer_cookies\",\"set.\"+a)},\"Cookie\");return!1}return!0}function i(){return!(g||(g=b(\"CookieConsent\"))).isCookiesBlocked()}function a(a,c){if(!i()||!h(a))return;b(\"CookieCore\").set(a,c)}function c(a,c){if(!i())return;b(\"CookieCore\").set(a,c)}function d(a,c,d,e,f){if(!i()||!h(a))return;b(\"CookieCore\").setWithoutChecks(a,c,d,e,f)}f=babelHelpers[\"extends\"]({},b(\"CookieCore\"),{set:a,setWithoutChecks:d,setWithoutCheckingUserConsent_DANGEROUS:c});e.exports=f}),null);\n__d(\"DOMEvent\",[\"invariant\"],(function(a,b,c,d,e,f,g){a=function(){function a(a){this.event=a||window.event,typeof this.event.srcElement!==\"unknown\"||g(0,5798),this.target=this.event.target||this.event.srcElement}var b=a.prototype;b.preventDefault=function(){var a=this.event;a.preventDefault?(a.preventDefault(),\"defaultPrevented\"in a||(a.defaultPrevented=!0)):a.returnValue=!1;return this};b.isDefaultPrevented=function(){var a=this.event;return\"defaultPrevented\"in a?a.defaultPrevented:a.returnValue===!1};b.stopPropagation=function(){var a=this.event;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;return this};b.kill=function(){this.stopPropagation().preventDefault();return this};a.killThenCall=function(b){return function(c){new a(c).kill();return b()}};return a}();e.exports=a}),null);\n__d(\"dedupString\",[],(function(a,b,c,d,e,f){\"use strict\";e.exports=a;function a(a){var b;return Object.keys((b={},b[a]=0,b))[0]}}),null);\n__d(\"wrapFunction\",[],(function(a,b,c,d,e,f){e.exports=a;var g={};function a(a,b,c){var d=b in g?g[b](a,c):a;return function(){for(var a=arguments.length,b=new Array(a),c=0;c), ge()) instead\");return b(\"containsNode\")(b(\"ge\")(a),b(\"ge\")(c))}function j(){var a=b(\"ifRequired\")(\"Quickling\",function(a){return a.isActive()?b(\"ge\")(\"content\"):null});return a||document.body}function k(a,c){c=b(\"createArrayFromMixed\")(c).join(\"|\").toUpperCase().split(\"|\");c=b(\"createObjectFrom\")(c);return b(\"isNode\")(a)&&a.nodeName in c}function l(a){return k(a,[\"input\",\"textarea\"])||a.contentEditable===\"true\"}}),null);\n__d(\"DataStore\",[\"DataStoreConfig\",\"gkx\",\"isEmpty\"],(function(a,b,c,d,e,f){\"use strict\";var g,h=b(\"DataStoreConfig\").expandoKey,i=b(\"DataStoreConfig\").useExpando,j=b(\"gkx\")(\"1073500\")&&window.WeakMap?new window.WeakMap():null,k={},l=1;function m(a){if(typeof a===\"string\")return\"str_\"+a;else{var b;return\"elem_\"+((b=a.__FB_TOKEN)!=null?b:a.__FB_TOKEN=[l++])[0]}}function n(a){if(j!=null&&typeof a===\"object\"){j.get(a)===void 0&&j.set(a,{});return j.get(a)}else if(i&&typeof a===\"object\")return a[h]||(a[h]={});a=m(a);return k[a]||(k[a]={})}var o={set:function(a,b,c){if(!a)throw new TypeError(\"DataStore.set: namespace is required, got \"+typeof a);var d=n(a);d[b]=c;return a},get:function(a,b,c){if(!a)throw new TypeError(\"DataStore.get: namespace is required, got \"+typeof a);var d=n(a),e=d[b];if(e===void 0&&a.getAttribute!=null)if(a.hasAttribute!=null&&!a.hasAttribute(\"data-\"+b))e=void 0;else{a=a.getAttribute(\"data-\"+b);e=null===a?void 0:a}c!==void 0&&e===void 0&&(e=d[b]=c);return e},remove:function(a,c){if(!a)throw new TypeError(\"DataStore.remove: namespace is required, got \"+typeof a);var d=n(a),e=d[c];delete d[c];(g||(g=b(\"isEmpty\")))(d)&&o.purge(a);return e},purge:function(a){if(j!=null&&typeof a===\"object\")return j[\"delete\"](a);else i&&typeof a===\"object\"?delete a[h]:delete k[m(a)]},_storage:k};e.exports=o}),null);\n__d(\"EventProfiler\",[\"cr:708886\"],(function(a,b,c,d,e,f){a=b(\"cr:708886\");e.exports=a}),null);\n__d(\"Scroll\",[],(function(a,b,c,d,e,f){f.getTop=a;f.setTop=b;f.getLeft=c;f.setLeft=d;function g(a,b){return!!b&&(a===b.documentElement||a===b.body)}function a(a){var b;if(a==null)return 0;var c=a.ownerDocument;return g(a,c)?(c==null?void 0:(b=c.body)==null?void 0:b.scrollTop)||(c==null?void 0:(b=c.documentElement)==null?void 0:b.scrollTop)||0:a.scrollTop||0}function b(a,b){if(a==null)return;var c=a.ownerDocument;g(a,c)?((c==null?void 0:c.body)&&(c.body.scrollTop=b||0),(c==null?void 0:c.documentElement)&&(c.documentElement.scrollTop=b||0)):a.scrollTop=b||0}function c(a){var b,c=a.ownerDocument;return g(a,c)?(c==null?void 0:(b=c.body)==null?void 0:b.scrollLeft)||(c==null?void 0:(b=c.documentElement)==null?void 0:b.scrollLeft)||0:a.scrollLeft||0}function d(a,b){var c=a.ownerDocument;g(a,c)?((c==null?void 0:c.body)&&(c.body.scrollLeft=b||0),(c==null?void 0:c.documentElement)&&(c.documentElement.scrollLeft=b||0)):a.scrollLeft=b||0}}),null);\n__d(\"VersionRange\",[\"invariant\"],(function(a,b,c,d,e,f,g){\"use strict\";var h=/\\./,i=/\\|\\|/,j=/\\s+\\-\\s+/,k=/^(<=|<|=|>=|~>|~|>|)?\\s*(.+)/,l=/^(\\d*)(.*)/;function m(a,b){a=a.split(i);if(a.length>1)return a.some(function(a){return D.contains(a,b)});else return n(a[0].trim(),b)}function n(a,b){a=a.split(j);a.length>0&&a.length<=2||g(0,3072);if(a.length===1)return o(a[0],b);else{var c=a[0];a=a[1];x(c)&&x(a)||g(0,3073);return o(\">=\"+c,b)&&o(\"<=\"+a,b)}}function o(a,b){a=a.trim();if(a===\"\")return!0;b=b.split(h);a=v(a);var c=a.modifier;a=a.rangeComponents;switch(c){case\"<\":return p(b,a);case\"<=\":return q(b,a);case\">=\":return s(b,a);case\">\":return t(b,a);case\"~\":case\"~>\":return u(b,a);default:return r(b,a)}}function p(a,b){return C(a,b)===-1}function q(a,b){a=C(a,b);return a===-1||a===0}function r(a,b){return C(a,b)===0}function s(a,b){a=C(a,b);return a===1||a===0}function t(a,b){return C(a,b)===1}function u(a,b){var c=b.slice();b=b.slice();b.length>1&&b.pop();var d=b.length-1,e=parseInt(b[d],10);w(e)&&(b[d]=e+1+\"\");return s(a,c)&&p(a,b)}function v(a){a=a.split(h);var b=a[0].match(k);b||g(0,3074);return{modifier:b[1],rangeComponents:[b[2]].concat(a.slice(1))}}function w(a){return!isNaN(a)&&isFinite(a)}function x(a){return!v(a).modifier}function y(a,b){for(var c=a.length;cb)return 1;else if(ab)return 1;else if(a=0&&k-i[n].ue_ts10)i.shift();l=k-1;function a(a){a=a||document;if(a.scrollingElement)return a.scrollingElement;a=!g&&a.compatMode===\"CSS1Compat\"?a.documentElement:a.body;a||b(\"FlowMigrationUtilsForLegacyFiles\").invariantViolation(\"null result in getDocumentScrollElement\");return a}}),null);\n__d(\"getObjectValues\",[],(function(a,b,c,d,e,f){e.exports=a;function a(a){var b=[];for(var c in a)b.push(a[c]);return b}}),null);\n__d(\"Event\",[\"$\",\"Arbiter\",\"DOMEvent\",\"DOMEventListener\",\"DOMQuery\",\"DataStore\",\"ErrorGuard\",\"EventProfiler\",\"ExecutionEnvironment\",\"FBLogger\",\"Parent\",\"Scroll\",\"TAAL\",\"TimeSlice\",\"UserAgent\",\"clickRefAction\",\"dedupString\",\"getDocumentScrollElement\",\"getObjectValues\"],(function(a,b,c,d,e,f){var g,h=\"Event.listeners\";Event.prototype||(Event.prototype={});function i(a){(a.type===\"click\"||a.type===\"mouseover\"||a.type===\"keydown\")&&b(\"Arbiter\").inform(\"Event/stop\",{event:a})}var j=function(){\"use strict\";function a(a,b,c){this.cancelBubble=!1,this.target=a,this.type=b,this.data=c}var c=a.prototype;c.getData=function(){this.data=this.data||{};return this.data};c.stop=function(){return Event.stop(this)};c.prevent=function(){return Event.prevent(this)};c.isDefaultPrevented=function(){return Event.isDefaultPrevented(this)};c.kill=function(){return Event.kill(this)};c.getTarget=function(){return new(b(\"DOMEvent\"))(this).target||null};return a}();function k(a){if(a instanceof j)return a;a||(!window.addEventListener&&document.createEventObject?a=window.event?document.createEventObject(window.event):{}:a={});if(!a._inherits_from_prototype)for(var b in Event.prototype)try{a[b]=Event.prototype[b]}catch(a){}return a}Object.assign(Event.prototype,{_inherits_from_prototype:!0,getRelatedTarget:function(){var a=this.relatedTarget||(this.fromElement===this.srcElement?this.toElement:this.fromElement);return a&&a.nodeType?a:null},getModifiers:function(){var a={control:!!this.ctrlKey,shift:!!this.shiftKey,alt:!!this.altKey,meta:!!this.metaKey};a.access=b(\"UserAgent\").isPlatform(\"Mac OS X\")?a.control:a.alt;a.any=a.control||a.shift||a.alt||a.meta;return a},isRightClick:function(){return this.which?this.which===3:this.button&&this.button===2},isMiddleClick:function(){return this.which?this.which===2:this.button&&this.button===4},isDefaultRequested:function(){return this.getModifiers().any||this.isMiddleClick()||this.isRightClick()}},j.prototype);c={listen:function(a,c,d,e,f){typeof d===\"function\"&&(d=b(\"TimeSlice\").guard(d,b(\"dedupString\")(\"Event.js \"+c+\" handler\")));!f||typeof f===\"boolean\"?f={passive:!1}:f={passive:f.passive||!1};if(!b(\"ExecutionEnvironment\").canUseDOM)return new s(a,d,null,c,e,null,f);typeof a===\"string\"&&(a=b(\"$\")(a));typeof e===\"undefined\"&&(e=Event.Priority.NORMAL);if(typeof c===\"object\"){var g={};for(var i in c)g[i]=Event.listen(a,i,c[i],e,f);return g}if(c.match(/^on/i))throw new TypeError(\"Bad event name `\"+c+\"': use `click', not `onclick'.\");if(!a){g=new Error(b(\"TAAL\").blameToPreviousFrame(\"Cannot listen to an undefined element.\"));b(\"FBLogger\")(\"event\").catching(g).mustfix(\"Tried to listen to element of type %s\",c);throw g}if(a.nodeName==\"LABEL\"&&c==\"click\"){g=a.getElementsByTagName(\"input\");a=g.length==1?g[0]:a}else if(a===window&&c===\"scroll\"){g=b(\"getDocumentScrollElement\")();g!==document.documentElement&&g!==document.body&&(a=g)}g=b(\"DataStore\").get(a,h,{});var j=m[c];j&&(c=j.base,j.wrap&&(d=j.wrap(d)));o(a,g,c,f);j=g[c];e in j||(j[e]=[]);var k=j[e].length;d=new s(a,d,g,c,e,k,f);j[e][k]=d;j.numHandlers++;f.passive||(j.numNonPassiveHandlers++,n(a,g[c],c));return d},stop:function(a){var c=new(b(\"DOMEvent\"))(a).stopPropagation();i(c.event);return a},prevent:function(a){new(b(\"DOMEvent\"))(a).preventDefault();return a},isDefaultPrevented:function(a){return new(b(\"DOMEvent\"))(a).isDefaultPrevented(a)},kill:function(a){a=new(b(\"DOMEvent\"))(a).kill();i(a.event);return!1},getKeyCode:function(a){a=new(b(\"DOMEvent\"))(a).event;if(!a)return!1;switch(a.keyCode){case 63232:return 38;case 63233:return 40;case 63234:return 37;case 63235:return 39;case 63272:case 63273:case 63275:return null;case 63276:return 33;case 63277:return 34}if(a.shiftKey)switch(a.keyCode){case 33:case 34:case 37:case 38:case 39:case 40:return null}return a.keyCode},getPriorities:function(){if(!l){var a=b(\"getObjectValues\")(Event.Priority);a.sort(function(a,b){return a-b});l=a}return l},fire:function(a,b,c){c=new j(a,b,c);var d;do{var e=Event.__getHandler(a,b);e&&(d=e(c));a=a.parentNode}while(a&&d!==!1&&!c.cancelBubble);return d!==!1},__fire:function(a,b,c){a=Event.__getHandler(a,b);if(a)return a(k(c))},__getHandler:function(a,c){var d=b(\"DataStore\").get(a,h);return d&&d[c]?d[c].domHandler:a[\"on\"+c]},getPosition:function(a){a=new(b(\"DOMEvent\"))(a).event;var c=b(\"getDocumentScrollElement\")(),d=a.clientX+b(\"Scroll\").getLeft(c);a=a.clientY+b(\"Scroll\").getTop(c);return{x:d,y:a}}};Object.assign(Event,c);var l=null;d=function(a){return function(c){if(!b(\"DOMQuery\").contains(this,c.getRelatedTarget()))return a.call(this,c)}};var m;!window.navigator.msPointerEnabled?m={mouseenter:{base:\"mouseover\",wrap:d},mouseleave:{base:\"mouseout\",wrap:d}}:m={mousedown:{base:\"MSPointerDown\"},mousemove:{base:\"MSPointerMove\"},mouseup:{base:\"MSPointerUp\"},mouseover:{base:\"MSPointerOver\"},mouseout:{base:\"MSPointerOut\"},mouseenter:{base:\"MSPointerOver\",wrap:d},mouseleave:{base:\"MSPointerOut\",wrap:d}};if(b(\"UserAgent\").isBrowser(\"Firefox < 52\")){f=function(a,b){b=k(b);var c=b.getTarget();while(c)Event.__fire(c,a,b),c=c.parentNode};document.documentElement.addEventListener(\"focus\",f.bind(null,\"focusin\"),!0);document.documentElement.addEventListener(\"blur\",f.bind(null,\"focusout\"),!0)}var n=function(a,c,d){var e=c.numNonPassiveHandlers==0;e!=c.options.passive&&(c.domHandlerRemover.remove(),c.options.passive=e,c.domHandlerRemover=b(\"DOMEventListener\").add(a,d,c.domHandler,{passive:e}))},o=function(a,c,d,e){if(d in c)return;var f=b(\"TimeSlice\").guard(r.bind(a,d),b(\"dedupString\")(\"Event listenHandler \"+d));c[d]={numHandlers:0,numNonPassiveHandlers:0,domHandlerRemover:b(\"DOMEventListener\").add(a,d,f,e),domHandler:f,options:e};c=\"on\"+d;if(a[c]){f=a===document.documentElement?Event.Priority._BUBBLE:Event.Priority.TRADITIONAL;var g=a[c];a[c]=null;Event.listen(a,d,g,f,e)}};function p(a){return!a.href.endsWith(\"#\")?!1:a.href===document.location.href||a.href===document.location.href+\"#\"}function q(a,b){return a.nodeName===\"INPUT\"&&a.type===b}var r=b(\"EventProfiler\").__wrapEventListenHandler(function(a,c){c=k(c);if(!b(\"DataStore\").get(this,h))throw new Error(\"Bad listenHandler context.\");var d=b(\"DataStore\").get(this,h)[a];if(!d)throw new Error(\"No registered handlers for `\"+a+\"'.\");if(a==\"click\"||a==\"contextmenu\"||a==\"mousedown\"&&c.which==2){var e=c.getTarget(),f=b(\"Parent\").byTag(e,\"a\");f instanceof HTMLAnchorElement&&f.href&&p(f)&&!q(e,\"file\")&&!q(e,\"submit\")&&c.prevent();a==\"click\"&&b(\"clickRefAction\")(\"click\",f,c);a==\"contextmenu\"&&b(\"clickRefAction\")(\"contextmenu\",f,c);a==\"mousedown\"&&c.which==2&&b(\"clickRefAction\")(\"middleclick\",f,c)}e=Event.getPriorities();for(var a=0;a',\"\"];d=[1,\"\",\"
\"];f=[3,\"\",\"
\"];var j=[1,'',\"\"],k={\"*\":[1,\"?
\",\"
\"],area:[1,\"\",\"\"],col:[2,\"\",\"
\"],legend:[1,\"
\",\"
\"],param:[1,\"\",\"\"],tr:[2,\"\",\"
\"],optgroup:c,option:c,caption:d,colgroup:d,tbody:d,tfoot:d,thead:d,td:f,th:f};e=[\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"g\",\"image\",\"line\",\"linearGradient\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"text\",\"tspan\"];e.forEach(function(a){k[a]=j,i[a]=!0});function a(a){a=a;!h&&g(0,144);Object.prototype.hasOwnProperty.call(k,a)||(a=\"*\");Object.prototype.hasOwnProperty.call(i,a)||(a===\"*\"?h.innerHTML=\"\":h.innerHTML=\"<\"+a+\">\",i[a]=!h.firstChild);return i[a]?k[a]:null}}),null);\n__d(\"createNodesFromMarkup\",[\"invariant\",\"ExecutionEnvironment\",\"getMarkupWrap\"],(function(a,b,c,d,e,f,g){e.exports=a;var h=b(\"ExecutionEnvironment\").canUseDOM?document.createElement(\"div\"):null,i=/^\\s*<(\\w+)/;function j(a){a=a.match(i);return a&&a[1].toLowerCase()}function a(a,c){var d=h;!h&&g(0,5001);var e=j(a);e=e&&b(\"getMarkupWrap\")(e);if(e){d.innerHTML=e[1]+a+e[2];e=e[0];while(e--)d=d.lastChild}else d.innerHTML=a;e=d.getElementsByTagName(\"script\");e.length&&(c||g(0,5002),Array.from(e).forEach(c));a=Array.from(d.childNodes);while(d.lastChild)d.removeChild(d.lastChild);return a}}),null);\n__d(\"evalGlobal\",[],(function(a,b,c,d,e,f){e.exports=a;function a(a){if(typeof a!==\"string\")throw new TypeError(\"JS sent to evalGlobal is not a string. Only strings are permitted.\");if(!a)return;var b=document.createElement(\"script\");try{b.appendChild(document.createTextNode(a))}catch(c){b.text=a}a=document.getElementsByTagName(\"head\")[0]||document.documentElement;a.appendChild(b);a.removeChild(b)}}),null);\n__d(\"HTML\",[\"invariant\",\"Bootloader\",\"createNodesFromMarkup\",\"emptyFunction\",\"evalGlobal\"],(function(a,b,c,d,e,f,g){var h=/(<(\\w+)[^>]*?)\\/>/g,i={abbr:!0,area:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0};a=function(){\"use strict\";function a(c){c&&typeof c.__html===\"string\"&&(c=c.__html);if(!(this instanceof a))return c instanceof a?c:new a(c);if(c){var d=typeof c;d===\"string\"||g(0,277,d)}this._markup=c||\"\";this._defer=!1;this._nodes=null;this._inlineJS=b(\"emptyFunction\");this._rootNode=null}var c=a.prototype;c.toString=function(){return this._markup};c.getContent=function(){return this._markup};c.getNodes=function(){this._fillCache();return this._nodes};c.getRootNode=function(){this._rootNode&&g(0,278);var a=this.getNodes();if(a.length===1)this._rootNode=a[0];else{var b=document.createDocumentFragment();for(var c=0;c\"}),c=null;a=b(\"createNodesFromMarkup\")(a,function(a){c=c||[],c.push(a.src?b(\"Bootloader\").requestJSResource_UNSAFE_NEEDS_REVIEW_BY_SECURITY_AND_XFN.bind(b(\"Bootloader\"),a.src):b(\"evalGlobal\").bind(null,a.innerHTML)),a.parentNode.removeChild(a)});c&&(this._inlineJS=function(){for(var a=0;ah}function b(){return y()&&r}function c(){return x()||i}function d(){return x()||j}function z(){return x()||k}function e(){return z()}function A(){return x()||l}function B(){return x()||o}function C(){return x()||n}function D(){return x()||p}function E(){return x()||s}function F(){return x()||s||t||q||w}function G(){return x()||v!=null?null:u}function H(){return x()||q}function I(){return x()||t}}),null);\n__d(\"isScalar\",[],(function(a,b,c,d,e,f){e.exports=a;function a(a){return/string|number|boolean/.test(typeof a)}}),null);\n__d(\"DOM\",[\"$\",\"DOMQuery\",\"Event\",\"FBLogger\",\"FbtResultBase\",\"HTML\",\"TAAL\",\"UserAgent_DEPRECATED\",\"createArrayFromMixed\",\"isNode\",\"isScalar\",\"isTextNode\"],(function(a,b,c,d,e,f){a=function(a,b,c){a=document.createElement(a);b&&g.setAttributes(a,b);c!=null&&g.setContent(a,c);return a};var g={find:(c=b(\"DOMQuery\")).find,findPushSafe:c.findPushSafe,scry:c.scry,getSelection:c.getSelection,contains:c.contains,getRootElement:c.getRootElement,isNodeOfType:c.isNodeOfType,isInputNode:c.isInputNode,create:a,setAttributes:function(a,c){c.type&&(a.type=c.type);for(var d in c){var e=c[d],f=/^on/i.test(d);f&&typeof e!==\"function\"&&b(\"FBLogger\")(\"dom\").warn(\"Handlers passed to DOM.setAttributes must be functions. Handler passed for %s was %s\",d,typeof e);if(d==\"type\")continue;else d==\"style\"?typeof e===\"string\"?a.style.cssText=e:Object.assign(a.style,e):f?b(\"Event\").listen(a,d.substr(2),e):d in a?a[d]=e:a.setAttribute&&a.setAttribute(d,e)}},prependContent:function(a,c){if(!a)throw new Error(b(\"TAAL\").blameToPreviousFile(\"reference element is not a node\"));return i(c,a,function(b){a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)})},insertAfter:function(a,c){if(!a||!a.parentNode)throw new Error(b(\"TAAL\").blameToPreviousFile(\"reference element does not have a parent\"));var d=a.parentNode;return i(c,d,function(b){a.nextSibling?d.insertBefore(b,a.nextSibling):d.appendChild(b)})},insertBefore:function(a,c){if(!a||!a.parentNode)throw new Error(b(\"TAAL\").blameToPreviousFile(\"reference element does not have a parent\"));var d=a.parentNode;return i(c,d,function(b){d.insertBefore(b,a)})},setContent:function(a,c){if(!a)throw new Error(b(\"TAAL\").blameToPreviousFile(\"reference element is not a node\"));while(a.firstChild)h(a.firstChild);return g.appendContent(a,c)},appendContent:function(a,c){if(!a)throw new Error(b(\"TAAL\").blameToPreviousFile(\"reference element is not a node\"));return i(c,a,function(b){a.appendChild(b)})},replace:function(a,c){if(!a||!a.parentNode)throw new Error(b(\"TAAL\").blameToPreviousFile(\"reference element does not have a parent\"));var d=a.parentNode;return i(c,d,function(b){d.replaceChild(b,a)})},remove:function(a){h(typeof a===\"string\"?b(\"$\")(a):a)},empty:function(a){a=typeof a===\"string\"?b(\"$\")(a):a;while(a.firstChild)h(a.firstChild)}};function h(a){a.parentNode&&a.parentNode.removeChild(a)}function i(a,c,d){a=b(\"HTML\").replaceJSONWrapper(a);if(a instanceof b(\"HTML\")&&c.firstChild===null&&-1===a.toString().indexOf(\"7&&!b(\"DOMQuery\").isNodeOfType(c,[\"table\",\"tbody\",\"thead\",\"tfoot\",\"tr\",\"select\",\"fieldset\"])){var f=e?' ':\"\";c.innerHTML=f+a;e&&c.removeChild(c.firstChild);return Array.from(c.childNodes)}}else if(b(\"isTextNode\")(c)){c.data=a;return[a]}f=document.createDocumentFragment();var g;e=[];c=[];a=b(\"createArrayFromMixed\")(a);a.length===1&&a[0]instanceof b(\"FbtResultBase\")&&(a=a[0].getContents());for(var h=0;h0?a.setAttribute(\"maxlength\",b.toString()):a.removeAttribute(\"maxlength\")}}),null);\n__d(\"camelize\",[],(function(a,b,c,d,e,f){e.exports=a;var g=/-(.)/g;function a(a){return a.replace(g,function(a,b){return b.toUpperCase()})}}),null);\n__d(\"getOpacityStyleName\",[],(function(a,b,c,d,e,f){e.exports=a;var g=!1,h=null;function a(){if(!g){if(document.body&&\"opacity\"in document.body.style)h=\"opacity\";else{var a=document.createElement(\"div\");a.style.filter=\"alpha(opacity=100)\";a.style.filter&&(h=\"filter\")}g=!0}return h}}),null);\n__d(\"hyphenate\",[],(function(a,b,c,d,e,f){e.exports=a;var g=/([A-Z])/g;function a(a){return a.replace(g,\"-$1\").toLowerCase()}}),null);\n__d(\"getStyleProperty\",[\"camelize\",\"hyphenate\"],(function(a,b,c,d,e,f){e.exports=a;function g(a){return a==null?\"\":String(a)}function a(a,c){var d;if(window.getComputedStyle){d=window.getComputedStyle(a,null);if(d)return g(d.getPropertyValue(b(\"hyphenate\")(c)))}if(document.defaultView&&document.defaultView.getComputedStyle){d=document.defaultView.getComputedStyle(a,null);if(d)return g(d.getPropertyValue(b(\"hyphenate\")(c)));if(c===\"display\")return\"none\"}return a.currentStyle?c===\"float\"?g(a.currentStyle.cssFloat||a.currentStyle.styleFloat):g(a.currentStyle[b(\"camelize\")(c)]):g(a.style&&a.style[b(\"camelize\")(c)])}}),null);\n__d(\"StyleCore\",[\"invariant\",\"camelize\",\"containsNode\",\"ex\",\"getOpacityStyleName\",\"getStyleProperty\",\"hyphenate\"],(function(a,b,c,d,e,f,g){function h(a,b){a=n.get(a,b);return a===\"auto\"||a===\"scroll\"}var i=new RegExp(\"\\\\s*([^\\\\s:]+)\\\\s*:\\\\s*([^;('\\\"]*(?:(?:\\\\([^)]*\\\\)|\\\"[^\\\"]*\\\"|'[^']*')[^;(?:'\\\"]*)*)(?:;|$)\",\"g\");function j(a){var b={};a.replace(i,function(a,c,d){b[c]=d;return d});return b}function k(a){var b=\"\";for(var c in a)a[c]&&(b+=c+\":\"+a[c]+\";\");return b}function l(a){return a!==\"\"?\"alpha(opacity=\"+a*100+\")\":\"\"}function m(a,c,d){switch(b(\"hyphenate\")(c)){case\"font-weight\":case\"line-height\":case\"opacity\":case\"z-index\":case\"animation-iteration-count\":case\"-webkit-animation-iteration-count\":break;case\"width\":case\"height\":var e=parseInt(d,10)<0;e&&g(0,826,a,c,d);default:isNaN(d)||!d||d===\"0\"||g(0,827,a,c,d,d+\"px\");break}}var n={set:function(a,c,d){m(\"Style.set\",c,d);if(a==null)return;a=a.style;switch(c){case\"opacity\":b(\"getOpacityStyleName\")()===\"filter\"?a.filter=l(d):a.opacity=d;break;case\"float\":a.cssFloat=a.styleFloat=d||\"\";break;default:try{a[b(\"camelize\")(c)]=d}catch(a){throw new Error(b(\"ex\")('Style.set: \"%s\" argument is invalid: %s',c,d))}}},apply:function(a,c){var d;for(d in c)m(\"Style.apply\",d,c[d]);\"opacity\"in c&&b(\"getOpacityStyleName\")()===\"filter\"&&(c.filter=l(c.opacity),delete c.opacity);var e=j(a.style.cssText);for(d in c){var f=c[d];delete c[d];var g=b(\"hyphenate\")(d);for(var h in e)(h===g||h.indexOf(g+\"-\")===0)&&delete e[h];c[g]=f}Object.assign(e,c);a.style.cssText=k(e)},get:b(\"getStyleProperty\"),getFloat:function(a,b){return parseFloat(n.get(a,b),10)},getOpacity:function(a){if(b(\"getOpacityStyleName\")()===\"filter\"){var c=n.get(a,\"filter\");if(c){c=/(\\d+(?:\\.\\d+)?)/.exec(c);if(c)return parseFloat(c.pop())/100}}return n.getFloat(a,\"opacity\")||1},isFixed:function(a){while(b(\"containsNode\")(document.body,a)){if(n.get(a,\"position\")===\"fixed\")return!0;a=a.parentNode}return!1},getScrollParent:function(a){if(!a)return null;while(a&&a!==document.body){if(h(a,\"overflow\")||h(a,\"overflowY\")||h(a,\"overflowX\"))return a;a=a.parentNode}return window}};a=n;e.exports=a}),null);\n__d(\"Style\",[\"$\",\"StyleCore\"],(function(a,b,c,d,e,f){a=babelHelpers[\"extends\"]({},b(\"StyleCore\"),{get:function(a,c){typeof a===\"string\"&&(a=b(\"$\")(a));return b(\"StyleCore\").get(a,c)},getFloat:function(a,c){typeof a===\"string\"&&(a=b(\"$\")(a));return b(\"StyleCore\").getFloat(a,c)}});c=a;e.exports=c}),null);\n__d(\"FlipDirection\",[\"DOM\",\"Input\",\"Style\"],(function(a,b,c,d,e,f){a={setDirection:function(a,c,d){c===void 0&&(c=5);d===void 0&&(d=!1);var e=b(\"DOM\").isNodeOfType(a,\"input\")&&a.type==\"text\",f=b(\"DOM\").isNodeOfType(a,\"textarea\");if(!(e||f)||a.getAttribute(\"data-prevent-auto-flip\"))return;e=b(\"Input\").getValue(a);f=a.style&&a.style.direction;if(!f||d){f=0;d=!0;for(var g=0;g=48){d&&(d=!1,f++);if(h>=1470&&h<=1920){b(\"Style\").set(a,\"direction\",\"rtl\");a.setAttribute(\"dir\",\"rtl\");return}if(f==c){b(\"Style\").set(a,\"direction\",\"ltr\");a.setAttribute(\"dir\",\"ltr\");return}}else d=!0}}else e.length===0&&(b(\"Style\").set(a,\"direction\",\"\"),a.removeAttribute(\"dir\"))}};e.exports=a}),null);\n__d(\"FlipDirectionOnKeypress\",[\"Event\",\"FlipDirection\"],(function(a,b,c,d,e,f){a=function(a){a=a.getTarget();b(\"FlipDirection\").setDirection(a)};b(\"Event\").listen(document.documentElement,{keyup:a,input:a})}),null);\n__d(\"getActiveElement\",[],(function(a,b,c,d,e,f){e.exports=a;function a(a){a===void 0&&(a=document);if(a===void 0)return null;try{return a.activeElement||a.body}catch(b){return a.body}}}),null);\n__d(\"FocusListener\",[\"Arbiter\",\"CSS\",\"Parent\",\"getActiveElement\"],(function(a,b,c,d,e,f){var g={expandInput:function(a){b(\"CSS\").addClass(a,\"child_is_active\"),b(\"CSS\").addClass(a,\"child_is_focused\"),b(\"CSS\").addClass(a,\"child_was_focused\"),b(\"Arbiter\").inform(\"reflow\")}};function h(a,c){if(c.getAttribute(\"data-silentfocuslistener\"))return;var d=b(\"Parent\").byClass(c,\"focus_target\");d&&(\"focus\"==a||\"focusin\"==a?g.expandInput(d):(c.value===\"\"&&b(\"CSS\").removeClass(d,\"child_is_active\"),b(\"CSS\").removeClass(d,\"child_is_focused\")))}c=b(\"getActiveElement\")();c&&h(\"focus\",c);function a(a){a=a||window.event,h(a.type,a.target||a.srcElement)}d=document.documentElement;d.addEventListener?(d.addEventListener(\"focus\",a,!0),d.addEventListener(\"blur\",a,!0)):(d.attachEvent(\"onfocusin\",a),d.attachEvent(\"onfocusout\",a));e.exports=g}),null);\n__d(\"guid\",[],(function(a,b,c,d,e,f){e.exports=a;function a(){return\"f\"+(Math.random()*(1<<30)).toString(16).replace(\".\",\"\")}}),null);\n__d(\"ArbiterMixin\",[\"Arbiter\",\"guid\"],(function(a,b,c,d,e,f){var g=\"arbiter$\"+b(\"guid\")(),h=Object.prototype.hasOwnProperty;a={_getArbiterInstance:function(){return h.call(this,g)?this[g]:this[g]=new(b(\"Arbiter\"))()},inform:function(a,b,c){return this._getArbiterInstance().inform(a,b,c)},subscribe:function(a,b,c){return this._getArbiterInstance().subscribe(a,b,c)},subscribeOnce:function(a,b,c){return this._getArbiterInstance().subscribeOnce(a,b,c)},unsubscribe:function(a){this._getArbiterInstance().unsubscribe(a)},unsubscribeCurrentSubscription:function(){this._getArbiterInstance().unsubscribeCurrentSubscription()},releaseCurrentPersistentEvent:function(){this._getArbiterInstance().releaseCurrentPersistentEvent()},registerCallback:function(a,b){return this._getArbiterInstance().registerCallback(a,b)},query:function(a){return this._getArbiterInstance().query(a)}};e.exports=a}),null);\n__d(\"mixin\",[],(function(a,b,c,d,e,f){e.exports=a;function a(){var a=function(){},b=0,c;while(b<0||arguments.length<=b?void 0:arguments[b]){c=b<0||arguments.length<=b?void 0:arguments[b];for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a.prototype[d]=c[d]);b+=1}return a}}),null);\n__d(\"JSONPTransport\",[\"ArbiterMixin\",\"DOM\",\"HTML\",\"TimeSlice\",\"URI\",\"mixin\"],(function(a,b,c,d,e,f){var g,h={},i=2,j=\"jsonp\",k=\"iframe\";function l(a){delete h[a]}a=function(a){\"use strict\";babelHelpers.inheritsLoose(c,a);function c(b,c){var d;d=a.call(this)||this;d._type=b;d._uri=c;d._hasResponse=!1;h[d.getID()]=babelHelpers.assertThisInitialized(d);return d}var d=c.prototype;d.getID=function(){return this._id||(this._id=i++)};d.hasFinished=function(){return!(this.getID()in h)};d.getRequestURI=function(){return new(g||(g=b(\"URI\")))(this._uri).addQueryData({__a:1,__adt:this.getID(),__req:\"jsonp_\"+this.getID()})};d.getTransportFrame=function(){if(this._iframe)return this._iframe;var a=\"transport_frame_\"+this.getID();a=b(\"HTML\")('