Blocks

Roblox Log In Code

Jan 11th, 2020 (edited)
15,625
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 67.88 KB | None | 0 0
  1.  
  2. <!DOCTYPE html>
  3. <!--[if IE 8]><html class="ie8" ng-app="robloxApp"><![endif]-->
  4. <!--[if gt IE 8]><!-->
  5. <html>
  6. <!--<![endif]-->
  7. <head data-machine-id="WEB78">
  8.     <!-- MachineID: WEB78 -->
  9.     <title>Roblox</title>
  10. <meta http-equiv="X-UA-Compatible" content="IE=edge,requiresActiveX=true" />
  11. <meta charset="UTF-8">
  12. <meta name="viewport" content="width=device-width, initial-scale=1">
  13. <meta name="author" content="Roblox Corporation" />
  14. <meta name="description" content="Roblox is a global platform that brings people together through play." />
  15. <meta name="keywords" content="free games, online games, building games, virtual worlds, free mmo, gaming cloud, physics engine" />
  16. <meta name="apple-itunes-app" content="app-id=431946152" />
  17.  
  18.  
  19.  
  20.  
  21. <script type="application/ld+json">
  22.     {
  23.     "@context" : "http://schema.org",
  24.     "@type" : "Organization",
  25.     "name" : "Roblox",
  26.     "url" : "https://www.roblox.com/",
  27.     "logo": "https://images.rbxcdn.com/c69b74f49e785df33b732273fad9dbe0.png",
  28.     "sameAs" : [
  29.     "https://www.facebook.com/ROBLOX/",
  30.     "https://twitter.com/roblox",
  31.     "https://www.linkedin.com/company/147977",
  32.     "https://www.instagram.com/roblox/",
  33.     "https://www.youtube.com/user/roblox",
  34.     "https://plus.google.com/+roblox",
  35.     "https://www.twitch.tv/roblox"
  36.     ]
  37.     }
  38. </script>
  39. <meta name="locale-data"
  40.       data-language-code="en_us"
  41.       data-language-name="English"
  42.       data-locale-api-url="https://locale.roblox.com" /><meta name="device-meta"
  43.       data-device-type="computer"
  44.       data-is-in-app="false"
  45.       data-is-desktop="true"
  46.       data-is-phone="false"
  47.       data-is-tablet="false"
  48.       data-is-console="false"
  49.       data-is-android-app="false"
  50.       data-is-ios-app="false"
  51.       data-is-uwp-app="false"
  52.       data-is-xbox-app="false"
  53.       data-is-amazon-app="false"
  54.       data-is-win32-app="false"
  55.       data-is-studio="false"
  56.       data-is-game-client-browser="false"
  57.       data-is-ios-device="false"
  58.       data-is-android-device="false"
  59.       data-app-type="unknown"
  60. />
  61.  
  62. <meta name="page-meta" data-internal-page-name="" />
  63.    
  64.  
  65. <script type="text/javascript">
  66.     var Roblox = Roblox || {};
  67.  
  68.     Roblox.BundleVerifierConstants = {
  69.         isMetricsApiEnabled: true,
  70.         eventStreamUrl: "//ecsv2.roblox.com/pe?t=diagnostic",
  71.         deviceType: "Computer",
  72.         cdnLoggingEnabled: JSON.parse("true")
  73.     };
  74. </script>        <script type="text/javascript">
  75.             var Roblox = Roblox || {};
  76.  
  77. Roblox.BundleDetector = (function () {
  78.     var isMetricsApiEnabled = Roblox.BundleVerifierConstants && Roblox.BundleVerifierConstants.isMetricsApiEnabled;
  79.  
  80.     var loadStates = {
  81.         loadSuccess: "loadSuccess",
  82.         loadFailure: "loadFailure",
  83.         executionFailure: "executionFailure"
  84.     };
  85.  
  86.     var bundleContentTypes = {
  87.         javascript: "javascript",
  88.         css: "css"
  89.     };
  90.  
  91.     var ephemeralCounterNames = {
  92.         cdnPrefix: "CDNBundleError_",
  93.         unknown: "CDNBundleError_unknown",
  94.         cssError: "CssBundleError",
  95.         jsError: "JavascriptBundleError",
  96.         jsFileError: "JsFileExecutionError",
  97.         resourceError: "ResourcePerformance_Error",
  98.         resourceLoaded: "ResourcePerformance_Loaded"
  99.     };
  100.  
  101.     return {
  102.         jsBundlesLoaded: {},
  103.         bundlesReported: {},
  104.  
  105.         counterNames: ephemeralCounterNames,
  106.         loadStates: loadStates,
  107.         bundleContentTypes: bundleContentTypes,
  108.  
  109.         timing: undefined,
  110.  
  111.         setTiming: function (windowTiming) {
  112.             this.timing = windowTiming;
  113.         },
  114.  
  115.         getLoadTime: function () {
  116.             if (this.timing && this.timing.domComplete) {
  117.                 return this.getCurrentTime() - this.timing.domComplete;
  118.             }
  119.         },
  120.  
  121.         getCurrentTime: function () {
  122.             return new Date().getTime();
  123.         },
  124.  
  125.         getCdnProviderName: function (bundleUrl, callBack) {
  126.             if (Roblox.BundleVerifierConstants.cdnLoggingEnabled) {
  127.                 var xhr = new XMLHttpRequest();
  128.                 xhr.open('GET', bundleUrl, true);
  129.  
  130.                 xhr.onreadystatechange = function () {
  131.                     if (xhr.readyState === xhr.HEADERS_RECEIVED) {
  132.                         try {
  133.                             var headerValue = xhr.getResponseHeader("rbx-cdn-provider");
  134.                             if (headerValue) {
  135.                                 callBack(headerValue);
  136.                             } else {
  137.                                 callBack();
  138.                             }
  139.                         } catch (e) {
  140.                             callBack();
  141.                         }
  142.                     }
  143.                 };
  144.  
  145.                 xhr.onerror = function () {
  146.                     callBack();
  147.                 };
  148.  
  149.                 xhr.send();
  150.             } else {
  151.                 callBack();
  152.             }
  153.         },
  154.  
  155.         getCdnProviderAndReportMetrics: function (bundleUrl, bundleName, loadState, bundleContentType) {
  156.             this.getCdnProviderName(bundleUrl, function (cdnProviderName) {
  157.                 Roblox.BundleDetector.reportMetrics(bundleUrl, bundleName, loadState, bundleContentType, cdnProviderName);
  158.             });
  159.         },
  160.  
  161.         reportMetrics: function (bundleUrl, bundleName, loadState, bundleContentType, cdnProviderName) {
  162.             if (!isMetricsApiEnabled
  163.                 || !bundleUrl
  164.                 || !loadState
  165.                 || !loadStates.hasOwnProperty(loadState)
  166.                 || !bundleContentType
  167.                 || !bundleContentTypes.hasOwnProperty(bundleContentType)) {
  168.                 return;
  169.             }
  170.  
  171.             var xhr = new XMLHttpRequest();
  172.             var metricsApiUrl = (Roblox.EnvironmentUrls && Roblox.EnvironmentUrls.metricsApi) || "https://metrics.roblox.com";
  173.  
  174.             xhr.open("POST", metricsApiUrl + "/v1/bundle-metrics/report", true);
  175.             xhr.setRequestHeader("Content-Type", "application/json");
  176.             xhr.withCredentials = true;
  177.             xhr.send(JSON.stringify({
  178.                 bundleUrl: bundleUrl,
  179.                 bundleName: bundleName || "",
  180.                 bundleContentType: bundleContentType,
  181.                 loadState: loadState,
  182.                 cdnProviderName: cdnProviderName,
  183.                 loadTimeInMilliseconds: this.getLoadTime() || 0
  184.             }));
  185.         },
  186.  
  187.         logToEphemeralStatistics: function (sequenceName, value) {
  188.             var deviceType = Roblox.BundleVerifierConstants.deviceType;
  189.             sequenceName += "_" + deviceType;
  190.  
  191.             var xhr = new XMLHttpRequest();
  192.             xhr.open('POST', '/game/report-stats?name=' + sequenceName + "&value=" + value, true);
  193.             xhr.withCredentials = true;
  194.             xhr.send();
  195.         },
  196.  
  197.         logToEphemeralCounter: function (ephemeralCounterName) {
  198.             var deviceType = Roblox.BundleVerifierConstants.deviceType;
  199.             ephemeralCounterName += "_" + deviceType;
  200.             //log to ephemeral counters - taken from eventTracker.js
  201.             var xhr = new XMLHttpRequest();
  202.             xhr.open('POST', '/game/report-event?name=' + ephemeralCounterName, true);
  203.             xhr.withCredentials = true;
  204.             xhr.send();
  205.         },
  206.  
  207.         logToEventStream: function (failedBundle, ctx, cdnProvider, status) {
  208.             var esUrl = Roblox.BundleVerifierConstants.eventStreamUrl,
  209.                 currentPageUrl = encodeURIComponent(window.location.href);
  210.  
  211.             var deviceType = Roblox.BundleVerifierConstants.deviceType;
  212.             ctx += "_" + deviceType;
  213.             //try and grab performance data.
  214.             //Note that this is the performance of the xmlhttprequest rather than the original resource load.
  215.             var duration = 0;
  216.             if (window.performance) {
  217.                 var perfTiming = window.performance.getEntriesByName(failedBundle);
  218.                 if (perfTiming.length > 0) {
  219.                     var data = perfTiming[0];
  220.                     duration = data.duration || 0;
  221.                 }
  222.             }
  223.             //log to event stream (diagnostic)
  224.             var params = "&evt=webBundleError&url=" + currentPageUrl +
  225.                 "&ctx=" + ctx + "&fileSourceUrl=" + encodeURIComponent(failedBundle) +
  226.                 "&cdnName=" + (cdnProvider || "unknown") +
  227.                 "&statusCode=" + (status || "unknown") +
  228.                 "&loadDuration=" + Math.floor(duration);
  229.             var img = new Image();
  230.             img.src = esUrl + params;
  231.         },
  232.  
  233.         getCdnInfo: function (failedBundle, ctx, fileType) {
  234.             if (Roblox.BundleVerifierConstants.cdnLoggingEnabled) {
  235.                 var xhr = new XMLHttpRequest();
  236.                 var counter = this.counterNames;
  237.                 xhr.open('GET', failedBundle, true);
  238.                 var cdnProvider;
  239.  
  240.                 //succesful request
  241.                 xhr.onreadystatechange = function () {
  242.                     if (xhr.readyState === xhr.HEADERS_RECEIVED) {
  243.                         cdnProvider = xhr.getResponseHeader("rbx-cdn-provider");
  244.                         if (cdnProvider && cdnProvider.length > 0) {
  245.                             Roblox.BundleDetector.logToEphemeralCounter(counter.cdnPrefix + cdnProvider + "_" + fileType);
  246.                         }
  247.                         else {
  248.                             Roblox.BundleDetector.logToEphemeralCounter(counter.unknown + "_" + fileType);
  249.                         }
  250.                     }
  251.                     else if (xhr.readyState === xhr.DONE) {
  252.                         // append status to cdn provider so we know its not related to network error.
  253.                         Roblox.BundleDetector.logToEventStream(failedBundle, ctx, cdnProvider, xhr.status);
  254.                     }
  255.                 };
  256.  
  257.                 //attach to possible things that can go wrong with the request.
  258.                 //additionally a network error will trigger this callback
  259.                 xhr.onerror = function () {
  260.                     Roblox.BundleDetector.logToEphemeralCounter(counter.unknown + "_" + fileType);
  261.                     Roblox.BundleDetector.logToEventStream(failedBundle, ctx, counter.unknown);
  262.                 };
  263.  
  264.                 xhr.send();
  265.             }
  266.             else {
  267.                 this.logToEventStream(failedBundle, ctx);
  268.             }
  269.         },
  270.  
  271.         reportResourceError: function (resourceName) {
  272.             var ephemeralCounterName = this.counterNames.resourceError + "_" + resourceName;
  273.             this.logToEphemeralCounter(ephemeralCounterName);
  274.         },
  275.  
  276.         reportResourceLoaded: function (resourceName) {
  277.             var loadTimeInMs = this.getLoadTime();
  278.             if (loadTimeInMs) {
  279.                 var sequenceName = this.counterNames.resourceLoaded + "_" + resourceName;
  280.                 this.logToEphemeralStatistics(sequenceName, loadTimeInMs);
  281.             }
  282.         },
  283.  
  284.         reportBundleError: function (bundleTag) {
  285.             var ephemeralCounterName, failedBundle, ctx, contentType;
  286.             if (bundleTag.rel && bundleTag.rel === "stylesheet") {
  287.                 ephemeralCounterName = this.counterNames.cssError;
  288.                 failedBundle = bundleTag.href;
  289.                 ctx = "css";
  290.                 contentType = bundleContentTypes.css;
  291.             } else {
  292.                 ephemeralCounterName = this.counterNames.jsError;
  293.                 failedBundle = bundleTag.src;
  294.                 ctx = "js";
  295.                 contentType = bundleContentTypes.javascript;
  296.             }
  297.  
  298.             //mark that we logged this bundle
  299.             this.bundlesReported[failedBundle] = true;
  300.  
  301.             //e.g. javascriptBundleError_Computer
  302.             this.logToEphemeralCounter(ephemeralCounterName);
  303.             //this will also log to event stream
  304.             this.getCdnInfo(failedBundle, ctx, ctx);
  305.  
  306.             var bundleName;
  307.             if (bundleTag.dataset) {
  308.                 bundleName = bundleTag.dataset.bundlename;
  309.             }
  310.             else {
  311.                 bundleName = bundleTag.getAttribute('data-bundlename');
  312.             }
  313.  
  314.             this.getCdnProviderAndReportMetrics(failedBundle, bundleName, loadStates.loadFailure, contentType);
  315.         },
  316.  
  317.         bundleDetected: function (bundleName) {
  318.             this.jsBundlesLoaded[bundleName] = true;
  319.         },
  320.  
  321.         verifyBundles: function (document) {
  322.             var ephemeralCounterName = this.counterNames.jsFileError,
  323.                 eventContext = ephemeralCounterName;
  324.             //grab all roblox script tags in the page.
  325.             var scripts = (document && document.scripts) || window.document.scripts;
  326.             var errorsList = [];
  327.             var bundleName;
  328.             var monitor;
  329.             for (var i = 0; i < scripts.length; i++) {
  330.                 var item = scripts[i];
  331.  
  332.                 if (item.dataset) {
  333.                     bundleName = item.dataset.bundlename;
  334.                     monitor = item.dataset.monitor;
  335.                 }
  336.                 else {
  337.                     bundleName = item.getAttribute('data-bundlename');
  338.                     monitor = item.getAttribute('data-monitor');
  339.                 }
  340.  
  341.                 if (item.src && monitor && bundleName) {
  342.                     if (!Roblox.BundleDetector.jsBundlesLoaded.hasOwnProperty(bundleName)) {
  343.                         errorsList.push(item);
  344.                     }
  345.                 }
  346.             }
  347.             if (errorsList.length > 0) {
  348.                 for (var j = 0; j < errorsList.length; j++) {
  349.                     var script = errorsList[j];
  350.                     if (!this.bundlesReported[script.src]) {
  351.                         //log the counter only if the file is actually corrupted, not just due to failure to load
  352.                         //e.g. JsFileExecutionError_Computer
  353.                         this.logToEphemeralCounter(ephemeralCounterName);
  354.                         this.getCdnInfo(script.src, eventContext, 'js');
  355.  
  356.                         if (script.dataset) {
  357.                             bundleName = script.dataset.bundlename;
  358.                         }
  359.                         else {
  360.                             bundleName = script.getAttribute('data-bundlename');
  361.                         }
  362.  
  363.                         this.getCdnProviderAndReportMetrics(script.src, bundleName, loadStates.executionFailure, bundleContentTypes.javascript);
  364.                     }
  365.                 }
  366.             }
  367.         }
  368.     };
  369. })();
  370.  
  371. window.addEventListener("load", function (evt) {
  372.     Roblox.BundleDetector.verifyBundles();
  373. });
  374.  
  375. Roblox.BundleDetector.setTiming(window.performance.timing);
  376.             //# sourceURL=somename.js
  377.         </script>
  378.    
  379. <link href="https://images.rbxcdn.com/23421382939a9f4ae8bbe60dbe2a3e7e.ico.gzip" rel="icon" />
  380.  
  381.  
  382.     <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet' data-bundlename='StyleGuide' href='https://static.rbxcdn.com/css/6a4067702561bc08bb707526f6934c3ea4790e1f5a3191cc282ec77f9b8e63a2.css/fetch' />
  383.  
  384. <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet' data-bundlename='Thumbnails' href='https://static.rbxcdn.com/css/72cd3aca154fd66b2ada809c31d17a2ee0cf653f89ccbbffe4e44025a4afd35e.css/fetch' />
  385.  
  386. <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet' data-bundlename='Footer' href='https://static.rbxcdn.com/css/55b250e8473888792f885d898973a13692fb22157baf61aaffa62ce4545f3408.css/fetch' />
  387.  
  388.  
  389.  
  390.     <link rel="canonical" href="https://www.roblox.com/NewLogin" />
  391.    
  392. <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet'  href='https://static.rbxcdn.com/css/leanbase___3678d89e5ec3f4d8c65d863691f31de2_m.css/fetch' />
  393.  
  394.  
  395.    
  396. <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet'  href='https://static.rbxcdn.com/css/page___b9da2650977861b9ecd198f068f842c2_m.css/fetch' />
  397.  
  398.  
  399.  
  400. <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet' data-bundlename='Captcha' href='https://static.rbxcdn.com/css/df710cd4fb61f284f8136087b47232d5d41ecc3a9250be03c78421340fa692f4.css/fetch' />
  401.  
  402.    
  403. <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet' data-bundlename='RobuxIcon' href='https://static.rbxcdn.com/css/07f5b59fb60c38714d158959762437960e85cfaaa6408ad4e930f38e82e6a73c.css/fetch' />
  404.  
  405.  
  406.    
  407.  
  408. <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet' data-bundlename='Login' href='https://static.rbxcdn.com/css/e0bcc553b7b9a1dd061c6ade9b1da1fcd7a10d3c86940c321b8823d97689038a.css/fetch' />
  409.  
  410.  
  411.  
  412.  
  413.  
  414. <script type="text/javascript">
  415.     var Roblox = Roblox || {};
  416.     Roblox.EnvironmentUrls = Roblox.EnvironmentUrls || {};
  417.     Roblox.EnvironmentUrls = {"abtestingApiSite":"https://abtesting.roblox.com","accountInformationApi":"https://accountinformation.roblox.com","accountSettingsApi":"https://accountsettings.roblox.com","apiGatewayUrl":"https://apis.roblox.com","apiProxyUrl":"https://api.roblox.com","assetDeliveryApi":"https://assetdelivery.roblox.com","authApi":"https://auth.roblox.com","authAppSite":"https://authsite.roblox.com","avatarApi":"https://avatar.roblox.com","badgesApi":"https://badges.roblox.com","billingApi":"https://billing.roblox.com","captchaApi":"https://captcha.roblox.com","catalogApi":"https://catalog.roblox.com","chatApi":"https://chat.roblox.com","contactsApi":"https://contacts.roblox.com","developApi":"https://develop.roblox.com","domain":"roblox.com","economyApi":"https://economy.roblox.com","engagementPayoutsApi":"https://engagementpayouts.roblox.com","followingsApi":"https://followings.roblox.com","friendsApi":"https://friends.roblox.com","friendsAppSite":"https://friendsite.roblox.com","gamesApi":"https://games.roblox.com","gameInternationalizationApi":"https://gameinternationalization.roblox.com","groupsApi":"https://groups.roblox.com","inventoryApi":"https://inventory.roblox.com","itemConfigurationApi":"https://itemconfiguration.roblox.com","localeApi":"https://locale.roblox.com","localizationTablesApi":"https://localizationtables.roblox.com","metricsApi":"https://metrics.roblox.com","midasApi":"https://midas.roblox.com","notificationApi":"https://notifications.roblox.com","premiumFeaturesApi":"https://premiumfeatures.roblox.com","presenceApi":"https://presence.roblox.com","publishApi":"https://publish.roblox.com","screenTimeApi":"https://apis.rcs.roblox.com/screen-time-api","thumbnailsApi":"https://thumbnails.roblox.com","tradesApi":"https://trades.roblox.com","translationRolesApi":"https://translationroles.roblox.com","universalAppConfigurationApi":"https://apis.roblox.com/universal-app-configuration","usersApi":"https://users.roblox.com","voiceApi":"https://voice.roblox.com","websiteUrl":"https://www.roblox.com","privateMessagesApi":"https://notifications.roblox.com"};
  418.  
  419.     // please keep the list in alphabetical order
  420.     var additionalUrls = {
  421.         amazonStoreLink: "https://www.amazon.com/Roblox-Corporation/dp/B00NUF4YOA",
  422.         appProtocolUrl: "robloxmobile://",
  423.         appStoreLink: "https://itunes.apple.com/us/app/roblox-mobile/id431946152",
  424.         googlePlayStoreLink: "https://play.google.com/store/apps/details?id=com.roblox.client&amp;hl=en",
  425.         iosAppStoreLink: "https://itunes.apple.com/us/app/roblox-mobile/id431946152",
  426.         windowsStoreLink: "https://www.microsoft.com/en-us/store/games/roblox/9nblgggzm6wm",
  427.         xboxStoreLink: "https://www.microsoft.com/en-us/p/roblox/bq1tn1t79v9k",
  428.         amazonWebStoreLink: "https://www.amazon.com/roblox?&amp;_encoding=UTF8&amp;tag=r05d13-20&amp;linkCode=ur2&amp;linkId=4ba2e1ad82f781c8e8cc98329b1066d0&amp;camp=1789&amp;creative=9325"
  429.     }
  430.  
  431.     for (var urlName in additionalUrls) {
  432.         Roblox.EnvironmentUrls[urlName] = additionalUrls[urlName];
  433.     }
  434. </script>
  435.  
  436.  
  437.  
  438. <script type="text/javascript">
  439.     var Roblox = Roblox || {};
  440.     Roblox.GaEventSettings = {
  441.         gaDFPPreRollEnabled: "false" === "true",
  442.         gaLaunchAttemptAndLaunchSuccessEnabled: "false" === "true",
  443.         gaPerformanceEventEnabled: "false" === "true"
  444.     };
  445. </script>
  446.  
  447.  
  448.  
  449.    
  450.     <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='headerinit' type='text/javascript' src='https://js.rbxcdn.com/799efe9bfd5be7618e023fc94f1b1b84.js'></script>
  451.  
  452.  
  453.  
  454.    
  455.         <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
  456.  
  457. <script type="text/javascript">
  458.     var Roblox = Roblox || {};
  459.     Roblox.AdsHelper = Roblox.AdsHelper || {};
  460.     Roblox.AdsLibrary = Roblox.AdsLibrary || {};
  461.  
  462.     Roblox.AdsHelper.toggleAdsSlot = function (slotId, GPTRandomSlotIdentifier) {
  463.         var gutterAdsEnabled = false;
  464.         if (gutterAdsEnabled) {
  465.             googletag.display(GPTRandomSlotIdentifier);
  466.             return;
  467.         }
  468.        
  469.         if (typeof slotId !== 'undefined' && slotId && slotId.length > 0) {
  470.             var slotElm = $("#"+slotId);
  471.             if (slotElm.is(":visible")) {
  472.                 googletag.display(GPTRandomSlotIdentifier);
  473.             }else {
  474.                 var adParam = Roblox.AdsLibrary.adsParameters[slotId];
  475.                 if (adParam) {
  476.                     adParam.template = slotElm.html();
  477.                     slotElm.empty();
  478.                 }
  479.             }
  480.         }
  481.     }
  482. </script>    <script type="text/javascript">
  483.         $(function () {
  484.             Roblox.JSErrorTracker.initialize({ 'suppressConsoleError': true});
  485.         });
  486.     </script>
  487.  
  488.  
  489.  
  490.    
  491.     <!--[if lt IE 9]>
  492.         <script src="//oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  493.         <script src="//oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  494.     <![endif]-->
  495.  
  496. <script>
  497.     //Set if it browser's do not track flag is enabled
  498.    var Roblox = Roblox || {};
  499.    (function() {
  500.        var dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
  501.        if (typeof window.external !== "undefined" &&
  502.            typeof window.external.msTrackingProtectionEnabled !== "undefined") {
  503.            dnt = dnt || window.external.msTrackingProtectionEnabled();
  504.        }
  505.        Roblox.browserDoNotTrack = dnt == "1" || dnt == "yes" || dnt === true;
  506.    })();
  507. </script>
  508.  
  509.  
  510.    <script type="text/javascript">
  511.  
  512.        var _gaq = _gaq || [];
  513.  
  514.                window.GoogleAnalyticsDisableRoblox2 = true;
  515.        _gaq.push(['b._setAccount', 'UA-486632-1']);
  516.            _gaq.push(['b._setSampleRate', '10']);
  517.        _gaq.push(['b._setCampSourceKey', 'rbx_source']);
  518.        _gaq.push(['b._setCampMediumKey', 'rbx_medium']);
  519.        _gaq.push(['b._setCampContentKey', 'rbx_campaign']);
  520.  
  521.            _gaq.push(['b._setDomainName', 'roblox.com']);
  522.  
  523.            _gaq.push(['b._setCustomVar', 1, 'Visitor', 'Anonymous', 2]);
  524.            _gaq.push(['b._trackPageview']);
  525.  
  526.        _gaq.push(['c._setAccount', 'UA-26810151-2']);
  527.            _gaq.push(['c._setSampleRate', '1']);
  528.                    _gaq.push(['c._setDomainName', 'roblox.com']);
  529.        
  530.        (function () {
  531.            if (!Roblox.browserDoNotTrack) {
  532.                var ga = document.createElement('script');
  533.                ga.type = 'text/javascript';
  534.                ga.async = true;
  535.                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  536.                var s = document.getElementsByTagName('script')[0];
  537.                s.parentNode.insertBefore(ga, s);
  538.            }
  539.        })();
  540.    </script>
  541.    
  542.            <script type="text/javascript">
  543.            if (Roblox && Roblox.EventStream) {
  544.                Roblox.EventStream.Init("//ecsv2.roblox.com/www/e.png",
  545.                    "//ecsv2.roblox.com/www/e.png",
  546.                    "//ecsv2.roblox.com/pe?t=studio",
  547.                    "//ecsv2.roblox.com/pe?t=diagnostic");
  548.            }
  549.        </script>
  550.  
  551.  
  552.  
  553. <script type="text/javascript">
  554.    if (Roblox && Roblox.PageHeartbeatEvent) {
  555.        Roblox.PageHeartbeatEvent.Init([2,8,20,60]);
  556.    }
  557. </script>        <script type="text/javascript">
  558. if (typeof(Roblox) === "undefined") { Roblox = {}; }
  559. Roblox.Endpoints = Roblox.Endpoints || {};
  560. Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
  561. Roblox.Endpoints.Urls['/asset/'] = 'https://assetgame.roblox.com/asset/';
  562. Roblox.Endpoints.Urls['/client-status/set'] = 'https://www.roblox.com/client-status/set';
  563. Roblox.Endpoints.Urls['/client-status'] = 'https://www.roblox.com/client-status';
  564. Roblox.Endpoints.Urls['/game/'] = 'https://assetgame.roblox.com/game/';
  565. Roblox.Endpoints.Urls['/game/edit.ashx'] = 'https://assetgame.roblox.com/game/edit.ashx';
  566. Roblox.Endpoints.Urls['/game/placelauncher.ashx'] = 'https://assetgame.roblox.com/game/placelauncher.ashx';
  567. Roblox.Endpoints.Urls['/game/preloader'] = 'https://assetgame.roblox.com/game/preloader';
  568. Roblox.Endpoints.Urls['/game/report-stats'] = 'https://assetgame.roblox.com/game/report-stats';
  569. Roblox.Endpoints.Urls['/game/report-event'] = 'https://assetgame.roblox.com/game/report-event';
  570. Roblox.Endpoints.Urls['/game/updateprerollcount'] = 'https://assetgame.roblox.com/game/updateprerollcount';
  571. Roblox.Endpoints.Urls['/login/default.aspx'] = 'https://www.roblox.com/login/default.aspx';
  572. Roblox.Endpoints.Urls['/my/avatar'] = 'https://www.roblox.com/my/avatar';
  573. Roblox.Endpoints.Urls['/my/money.aspx'] = 'https://www.roblox.com/my/money.aspx';
  574. Roblox.Endpoints.Urls['/navigation/userdata'] = 'https://www.roblox.com/navigation/userdata';
  575. Roblox.Endpoints.Urls['/chat/chat'] = 'https://www.roblox.com/chat/chat';
  576. Roblox.Endpoints.Urls['/chat/data'] = 'https://www.roblox.com/chat/data';
  577. Roblox.Endpoints.Urls['/presence/users'] = 'https://www.roblox.com/presence/users';
  578. Roblox.Endpoints.Urls['/presence/user'] = 'https://www.roblox.com/presence/user';
  579. Roblox.Endpoints.Urls['/friends/list'] = 'https://www.roblox.com/friends/list';
  580. Roblox.Endpoints.Urls['/navigation/getcount'] = 'https://www.roblox.com/navigation/getCount';
  581. Roblox.Endpoints.Urls['/regex/email'] = 'https://www.roblox.com/regex/email';
  582. Roblox.Endpoints.Urls['/catalog/browse.aspx'] = 'https://www.roblox.com/catalog/browse.aspx';
  583. Roblox.Endpoints.Urls['/catalog/html'] = 'https://search.roblox.com/catalog/html';
  584. Roblox.Endpoints.Urls['/catalog/json'] = 'https://search.roblox.com/catalog/json';
  585. Roblox.Endpoints.Urls['/catalog/contents'] = 'https://search.roblox.com/catalog/contents';
  586. Roblox.Endpoints.Urls['/catalog/lists.aspx'] = 'https://search.roblox.com/catalog/lists.aspx';
  587. Roblox.Endpoints.Urls['/catalog/items'] = 'https://search.roblox.com/catalog/items';
  588. Roblox.Endpoints.Urls['/asset-hash-thumbnail/image'] = 'https://assetgame.roblox.com/asset-hash-thumbnail/image';
  589. Roblox.Endpoints.Urls['/asset-hash-thumbnail/json'] = 'https://assetgame.roblox.com/asset-hash-thumbnail/json';
  590. Roblox.Endpoints.Urls['/asset-thumbnail-3d/json'] = 'https://assetgame.roblox.com/asset-thumbnail-3d/json';
  591. Roblox.Endpoints.Urls['/asset-thumbnail/image'] = 'https://assetgame.roblox.com/asset-thumbnail/image';
  592. Roblox.Endpoints.Urls['/asset-thumbnail/json'] = 'https://assetgame.roblox.com/asset-thumbnail/json';
  593. Roblox.Endpoints.Urls['/asset-thumbnail/url'] = 'https://assetgame.roblox.com/asset-thumbnail/url';
  594. Roblox.Endpoints.Urls['/asset/request-thumbnail-fix'] = 'https://assetgame.roblox.com/asset/request-thumbnail-fix';
  595. Roblox.Endpoints.Urls['/avatar-thumbnail-3d/json'] = 'https://www.roblox.com/avatar-thumbnail-3d/json';
  596. Roblox.Endpoints.Urls['/avatar-thumbnail/image'] = 'https://www.roblox.com/avatar-thumbnail/image';
  597. Roblox.Endpoints.Urls['/avatar-thumbnail/json'] = 'https://www.roblox.com/avatar-thumbnail/json';
  598. Roblox.Endpoints.Urls['/avatar-thumbnails'] = 'https://www.roblox.com/avatar-thumbnails';
  599. Roblox.Endpoints.Urls['/avatar/request-thumbnail-fix'] = 'https://www.roblox.com/avatar/request-thumbnail-fix';
  600. Roblox.Endpoints.Urls['/bust-thumbnail/json'] = 'https://www.roblox.com/bust-thumbnail/json';
  601. Roblox.Endpoints.Urls['/group-thumbnails'] = 'https://www.roblox.com/group-thumbnails';
  602. Roblox.Endpoints.Urls['/groups/getprimarygroupinfo.ashx'] = 'https://www.roblox.com/groups/getprimarygroupinfo.ashx';
  603. Roblox.Endpoints.Urls['/headshot-thumbnail/json'] = 'https://www.roblox.com/headshot-thumbnail/json';
  604. Roblox.Endpoints.Urls['/item-thumbnails'] = 'https://www.roblox.com/item-thumbnails';
  605. Roblox.Endpoints.Urls['/outfit-thumbnail/json'] = 'https://www.roblox.com/outfit-thumbnail/json';
  606. Roblox.Endpoints.Urls['/place-thumbnails'] = 'https://www.roblox.com/place-thumbnails';
  607. Roblox.Endpoints.Urls['/thumbnail/asset/'] = 'https://www.roblox.com/thumbnail/asset/';
  608. Roblox.Endpoints.Urls['/thumbnail/avatar-headshot'] = 'https://www.roblox.com/thumbnail/avatar-headshot';
  609. Roblox.Endpoints.Urls['/thumbnail/avatar-headshots'] = 'https://www.roblox.com/thumbnail/avatar-headshots';
  610. Roblox.Endpoints.Urls['/thumbnail/user-avatar'] = 'https://www.roblox.com/thumbnail/user-avatar';
  611. Roblox.Endpoints.Urls['/thumbnail/resolve-hash'] = 'https://www.roblox.com/thumbnail/resolve-hash';
  612. Roblox.Endpoints.Urls['/thumbnail/place'] = 'https://www.roblox.com/thumbnail/place';
  613. Roblox.Endpoints.Urls['/thumbnail/get-asset-media'] = 'https://www.roblox.com/thumbnail/get-asset-media';
  614. Roblox.Endpoints.Urls['/thumbnail/remove-asset-media'] = 'https://www.roblox.com/thumbnail/remove-asset-media';
  615. Roblox.Endpoints.Urls['/thumbnail/set-asset-media-sort-order'] = 'https://www.roblox.com/thumbnail/set-asset-media-sort-order';
  616. Roblox.Endpoints.Urls['/thumbnail/place-thumbnails'] = 'https://www.roblox.com/thumbnail/place-thumbnails';
  617. Roblox.Endpoints.Urls['/thumbnail/place-thumbnails-partial'] = 'https://www.roblox.com/thumbnail/place-thumbnails-partial';
  618. Roblox.Endpoints.Urls['/thumbnail_holder/g'] = 'https://www.roblox.com/thumbnail_holder/g';
  619. Roblox.Endpoints.Urls['/users/{id}/profile'] = 'https://www.roblox.com/users/{id}/profile';
  620. Roblox.Endpoints.Urls['/service-workers/push-notifications'] = 'https://www.roblox.com/service-workers/push-notifications';
  621. Roblox.Endpoints.Urls['/notification-stream/notification-stream-data'] = 'https://www.roblox.com/notification-stream/notification-stream-data';
  622. Roblox.Endpoints.Urls['/api/friends/acceptfriendrequest'] = 'https://www.roblox.com/api/friends/acceptfriendrequest';
  623. Roblox.Endpoints.Urls['/api/friends/declinefriendrequest'] = 'https://www.roblox.com/api/friends/declinefriendrequest';
  624. Roblox.Endpoints.Urls['/authentication/is-logged-in'] = 'https://www.roblox.com/authentication/is-logged-in';
  625. Roblox.Endpoints.addCrossDomainOptionsToAllRequests = true;
  626. </script>
  627.  
  628.    <script type="text/javascript">
  629. if (typeof(Roblox) === "undefined") { Roblox = {}; }
  630. Roblox.Endpoints = Roblox.Endpoints || {};
  631. Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
  632. </script>
  633.  
  634.    <script>
  635.    Roblox = Roblox || {};
  636.    Roblox.AbuseReportPVMeta = {
  637.        desktopEnabled: false,
  638.        phoneEnabled: false,
  639.        inAppEnabled: false
  640.    };
  641. </script>
  642.  
  643. </head>
  644. <body id="rbx-body"
  645.      class="rbx-body   light-theme gotham-font"
  646.      data-performance-relative-value="0.005"
  647.      data-internal-page-name=""
  648.      data-send-event-percentage="0">
  649.    <div id="roblox-linkify" data-enabled="true" data-regex="(https?\:\/\/)?(?:www\.)?([a-z0-9-]{2,}\.)*(((m|de|www|web|api|blog|wiki|corp|polls|bloxcon|developer|devforum|forum)\.roblox\.com|robloxlabs\.com)|(www\.shoproblox\.com)|help\.roblox\.com(?![A-Za-z0-9\/.]*\/attachments\/))(?!\/[A-Za-z0-9-+&amp;@#\/=~_|!:,.;]*%)((\/[A-Za-z0-9-+&amp;@#\/%?=~_|!:,.;]*)|(?=\s|\b))" data-regex-flags="gm" data-as-http-regex="(([^.]help|polls)\.roblox\.com)"></div>
  650.  
  651. <div id="image-retry-data"
  652.     data-image-retry-max-times="10"
  653.     data-image-retry-timer="1500"
  654.     data-ga-logging-percent="10">
  655. </div>
  656. <div id="http-retry-data"
  657.     data-http-retry-max-timeout="0"
  658.     data-http-retry-base-timeout="0"
  659.     data-http-retry-max-times="1">
  660. </div>
  661.    
  662.    
  663.  
  664.  
  665. <div id="fb-root"></div>
  666.  
  667. <div id="wrap" class="wrap no-gutter-ads logged-out"
  668.     data-gutter-ads-enabled="false">
  669.  
  670.  
  671.  
  672.    <div id="header"
  673.         class="navbar-fixed-top rbx-header light-theme gotham-font"
  674.         data-isauthenticated="false"
  675.         role="navigation">
  676.        <div class="container-fluid">
  677.            <div class="rbx-navbar-header">
  678.                <div data-behavior="nav-notification" class="rbx-nav-collapse" onselectstart="return false;">
  679.  
  680.  
  681.                </div>
  682.                <div class="navbar-header">
  683.                    
  684.                    <a class="navbar-brand" href="https://www.roblox.com/">
  685.                        <span class="icon-logo"></span>
  686.                        <span class="icon-logo-r"></span>
  687.                    </a>
  688.                </div>
  689.            </div>
  690.            <ul class="nav rbx-navbar hidden-xs hidden-sm col-md-5 col-lg-4">
  691.                <li class="cursor-pointer">
  692.                    <a class="font-header-2 nav-menu-title text-header" href="https://www.roblox.com/games">Games</a>
  693.                </li>
  694.                <li class="cursor-pointer">
  695.                    <a class="font-header-2 nav-menu-title text-header" href="https://www.roblox.com/catalog/">Avatar Shop</a>
  696.                </li>
  697.                <li class="cursor-pointer">
  698.                    <a class="font-header-2 nav-menu-title text-header" href="https://www.roblox.com/develop">Create</a>
  699.                </li>
  700.                <li class="cursor-pointer">
  701.                    <a class="font-header-2 buy-robux nav-menu-title text-header" href="https://www.roblox.com/upgrades/robux?ctx=nav">Robux</a>
  702.                </li>
  703.            </ul><!--rbx-navbar-->
  704.            <div id="navbar-universal-search" class="navbar-left rbx-navbar-search col-xs-5 col-sm-6 col-md-2 col-lg-3" data-behavior="univeral-search" role="search">
  705.                <div class="input-group">
  706.                    <input id="navbar-search-input" class="form-control input-field" type="text" placeholder="Search" maxlength="120" />
  707.                    <div class="input-group-btn">
  708.                        <button id="navbar-search-btn" class="input-addon-btn" type="submit">
  709.                            <span class="icon-nav-search"></span>
  710.                        </button>
  711.                    </div>
  712.                </div>
  713.                <ul data-toggle="dropdown-menu" class="dropdown-menu" role="menu">
  714.                        <li class="rbx-navbar-search-option rbx-clickable-li selected" data-searchurl="https://www.roblox.com/search/users?keyword=">
  715.                            <a class="rbx-navbar-search-anchor" href="https://www.roblox.com/search/users?keyword=">
  716.                                <span class="rbx-navbar-search-text"> Search "<span class='rbx-navbar-search-string'></span>" in Players</span>
  717.                            </a>
  718.                        </li>
  719.                        <li class="rbx-navbar-search-option rbx-clickable-li " data-searchurl="https://www.roblox.com/games/?Keyword=">
  720.                            <a class="rbx-navbar-search-anchor" href="https://www.roblox.com/games/?Keyword=">
  721.                                <span class="rbx-navbar-search-text"> Search "<span class='rbx-navbar-search-string'></span>" in Games</span>
  722.                            </a>
  723.                        </li>
  724.                        <li class="rbx-navbar-search-option rbx-clickable-li " data-searchurl="https://www.roblox.com/catalog/browse.aspx?CatalogContext=1&amp;Keyword=">
  725.                            <a class="rbx-navbar-search-anchor" href="https://www.roblox.com/catalog/browse.aspx?CatalogContext=1&amp;Keyword=">
  726.                                <span class="rbx-navbar-search-text"> Search "<span class='rbx-navbar-search-string'></span>" in Catalog</span>
  727.                            </a>
  728.                        </li>
  729.                        <li class="rbx-navbar-search-option rbx-clickable-li " data-searchurl="https://www.roblox.com/search/groups?keyword=">
  730.                            <a class="rbx-navbar-search-anchor" href="https://www.roblox.com/search/groups?keyword=">
  731.                                <span class="rbx-navbar-search-text"> Search "<span class='rbx-navbar-search-string'></span>" in Groups</span>
  732.                            </a>
  733.                        </li>
  734.                        <li class="rbx-navbar-search-option rbx-clickable-li " data-searchurl="https://www.roblox.com/develop/library?CatalogContext=2&amp;Category=6&amp;Keyword=">
  735.                            <a class="rbx-navbar-search-anchor" href="https://www.roblox.com/develop/library?CatalogContext=2&amp;Category=6&amp;Keyword=">
  736.                                <span class="rbx-navbar-search-text"> Search "<span class='rbx-navbar-search-string'></span>" in Library</span>
  737.                            </a>
  738.                        </li>
  739.                </ul>
  740.            </div><!--rbx-navbar-search-->
  741.            <div class="navbar-right rbx-navbar-right">
  742.                    <ul class="nav navbar-right rbx-navbar-right-nav" data-display-opened="False">
  743.                        <li class="signup-button-container">
  744.                            <a id="sign-up-button" class="rbx-navbar-signup nav-menu-title signup-button" href="https://www.roblox.com/account/signupredir">Sign Up</a>
  745.                        </li>
  746.                        <li class="rbx-navbar-right-search" data-toggle="toggle-search">
  747.                            <a class="rbx-menu-icon">
  748.                                <span class="icon-nav-search-white"></span>
  749.                            </a>
  750.                        </li>
  751.                    </ul>
  752.            </div><!-- navbar right-->
  753.            <ul class="nav rbx-navbar hidden-md hidden-lg col-xs-12">
  754.                <li class="cursor-pointer">
  755.                    <a class="font-header-2 nav-menu-title text-header" href="https://www.roblox.com/games">Games</a>
  756.                </li>
  757.                <li class="cursor-pointer">
  758.                    <a class="font-header-2 nav-menu-title text-header" href="https://www.roblox.com/catalog/">Avatar Shop</a>
  759.                </li>
  760.                <li class="cursor-pointer">
  761.                    <a class="font-header-2 nav-menu-title text-header" href="https://www.roblox.com/develop">Create</a>
  762.                </li>
  763.                <li class="cursor-pointer">
  764.                    <a class="font-header-2 buy-robux nav-menu-title text-header" href="https://www.roblox.com/upgrades/robux?ctx=nav">Robux</a>
  765.                </li>
  766.            </ul><!--rbx-navbar-->
  767.        </div>
  768.    </div>
  769.    <!-- LEFT NAV MENU -->
  770.  
  771. <div id="i18nForAmazonShopSwitch"
  772.     data-is-i18n-enabled-for-shop-amazon-dialog=true
  773.     data-amazon-store-url="https://www.amazon.com/roblox?&amp;_encoding=UTF8&amp;tag=r05d13-20&amp;linkCode=ur2&amp;linkId=4ba2e1ad82f781c8e8cc98329b1066d0&amp;camp=1789&amp;creative=9325"
  774.     style="display: none">
  775. </div>
  776.  
  777. <script type="text/javascript">
  778.    var Roblox = Roblox || {};
  779.    (function () {
  780.        if (Roblox && Roblox.Performance) {
  781.            Roblox.Performance.setPerformanceMark("navigation_end");
  782.        }
  783.    })();
  784. </script>
  785.  
  786.    <div class="container-main
  787.                
  788.                
  789.                
  790.                
  791.                
  792.                "
  793.         id="container-main">
  794.            <script type="text/javascript">
  795.                if (top.location != self.location) {
  796.                    top.location = self.location.href;
  797.                }
  798.            </script>
  799.  
  800.        <div class="alert-container">
  801.  
  802.            <noscript><div><div class="alert-info" role="alert">Please enable Javascript to use all the features on this site.</div></div></noscript>
  803.  
  804.                        
  805.        </div>
  806.  
  807.  
  808.        <div class="content">
  809.  
  810.                                    <script src="https://roblox-api.arkoselabs.com/fc/api/?onload=reportFunCaptchaLoaded" async onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportResourceError('funcaptcha')"></script>
  811. <script type="text/javascript">
  812.    var Roblox = Roblox || {};
  813.    $(function () {
  814.        var funCaptcha = Roblox.FunCaptcha;
  815.        if (funCaptcha) {
  816.            var captchaTypes = [{"Type":"Login","PublicKey":"9F35E182-C93C-EBCC-A31D-CF8ED317B996","ApiUrl":"https://captcha.roblox.com/v1/funcaptcha/login/web"}];
  817.            funCaptcha.addCaptchaTypes(captchaTypes, true);
  818.            funCaptcha.setMaxRetriesOnTokenValidationFailure(1);
  819.            funCaptcha.setPerAppTypeLoggingEnabled(false);
  820.            funCaptcha.setRetryIntervalRange(500, 1500);
  821.        }
  822.    });
  823.  
  824.    // Necessary because of how FunCaptcha js executes callback
  825.    // i.e. window["{function name}"]
  826.    function reportFunCaptchaLoaded()
  827.    {
  828.        if (Roblox.BundleDetector)
  829.        {
  830.            Roblox.BundleDetector.reportResourceLoaded("funcaptcha");
  831.        }
  832.    }
  833. </script>
  834.  
  835. <div id="login-container" class="login-container">
  836.        <div login-base
  837.             is-login-fun-captcha-enabled="true"
  838.             is-always-captcha-login-enabled="false"
  839.             is-captcha-v2-component-for-login-enabled="true"
  840.             is-bedev2-captcha-for-web-login-enabled="true">
  841.        </div>
  842. </div>
  843.  
  844.  
  845.  
  846. <script>
  847.    var Roblox = Roblox || {};
  848.    Roblox.LoginMeta = {
  849.        signupUrl: "https://www.roblox.com/account/signupredir",
  850.        forgotCredentialsUrl: "https://www.roblox.com/login/forgot-password-or-username",
  851.        homeUrl: "https://www.roblox.com/home",
  852.        securityNotificationUrl: "https://www.roblox.com/login/securitynotification",
  853.        apiProxyUrl: "https://api.roblox.com",
  854.        fbSignInUrl: "https://www.roblox.com/social/redirect-to-facebook",
  855.        loginPageUrl: "https://www.roblox.com/newlogin",
  856.        isLoginWithEmailEnabled: true,
  857.        isLoginWithPhoneEnabled: true,
  858.        isPromptUnverifiedEmailsEnabled: true
  859.    };
  860. </script>
  861.  
  862.        <script type="text/javascript" src="https://cdns.gigya.com/js/gigya.js?apiKey=3_OsvmtBbTg6S_EUbwTPtbbmoihFY5ON6v6hbVrTbuqpBs7SyF_LQaJwtwKJ60sY1p" async defer>
  863.            {
  864.                bypassCookiePolicy: 'never'
  865.            }
  866.        </script>
  867.  
  868.  
  869. <div id="SocialIdentitiesInformation"
  870.     data-rbx-login-redirect-url="/social/postlogin"
  871.    
  872.    
  873.    
  874.     data-context="loginPage">
  875. </div>
  876.  
  877.        </div>
  878.            </div>
  879. <!--Bootstrap Footer React Component -->
  880. <footer class="container-footer" id="footer-container"></footer>
  881.  
  882. </div>
  883.  
  884.  
  885.  
  886.    <script type="text/javascript">function urchinTracker() {}</script>
  887.  
  888.  
  889. <script type="text/javascript">
  890.    if (typeof Roblox === "undefined") {
  891.        Roblox = {};
  892.    }
  893.    if (typeof Roblox.PlaceLauncher === "undefined") {
  894.        Roblox.PlaceLauncher = {};
  895.    }
  896.    var isRobloxIconEnabledForRetheme = "True";
  897.    var robloxIcon = isRobloxIconEnabledForRetheme === 'True' ? "<span class='icon-logo-r-95'></span>" : "<img src='https://images.rbxcdn.com/6304dfebadecbb3b338a79a6a528936c.svg.gzip' width='90' height='90' alt='R'/>";
  898.    Roblox.PlaceLauncher.Resources = {
  899.        RefactorEnabled: "True",
  900.        IsProtocolHandlerBaseUrlParamEnabled: "False",
  901.        ProtocolHandlerAreYouInstalled: {
  902.            play: {
  903.                content: robloxIcon + "<p>You&#39;re moments away from getting into the game!</p>",
  904.                buttonText: "Download and Install Roblox",
  905.                footerContent: "<a href='https://assetgame.roblox.com/game/help'class= 'text-name small' target='_blank' >Click here for help</a> "
  906.            },
  907.            studio: {
  908.                content: "<img src='https://images.rbxcdn.com/3da410727fa2670dcb4f31316643138a.svg.gzip' width='95' height='95' alt='R' /><p>Get started creating your own games!</p>",
  909.                buttonText: "Download Studio"
  910.            }
  911.        },
  912.        ProtocolHandlerStartingDialog: {
  913.            play: {
  914.                content: robloxIcon + "<p>Roblox is now loading. Get ready to play!</p>"
  915.            },
  916.            studio: {
  917.                content: "<img src='https://images.rbxcdn.com/3da410727fa2670dcb4f31316643138a.svg.gzip' width='95' height='95' alt='R' /><p>Checking for Roblox Studio...</p>"
  918.            },
  919.            loader: "<span class='spinner spinner-default'></span>"
  920.        }
  921.    };
  922. </script>
  923. <div id="PlaceLauncherStatusPanel" style="display:none;width:300px"
  924.     data-new-plugin-events-enabled="True"
  925.     data-event-stream-for-plugin-enabled="True"
  926.     data-event-stream-for-protocol-enabled="True"
  927.     data-is-game-launch-interface-enabled="True"
  928.     data-is-protocol-handler-launch-enabled="True"
  929.     data-is-user-logged-in="False"
  930.     data-os-name="Windows"
  931.     data-protocol-name-for-client="roblox-player"
  932.     data-protocol-name-for-studio="roblox-studio"
  933.     data-protocol-roblox-locale="en_us"
  934.     data-protocol-game-locale="en_us"
  935.     data-protocol-url-includes-launchtime="true"
  936.     data-protocol-detection-enabled="true"
  937.     data-protocol-separate-script-parameters-enabled="true"
  938.     data-protocol-avatar-parameter-enabled="false"
  939.     data-protocol-sending-locales-enabled="true">
  940.    <div class="modalPopup blueAndWhite PlaceLauncherModal" style="min-height: 160px">
  941.        <div id="Spinner" class="Spinner" style="padding:20px 0;">
  942.            <img data-delaysrc="https://images.rbxcdn.com/e998fb4c03e8c2e30792f2f3436e9416.gif" height="32" width="32" alt="Progress" />
  943.        </div>
  944.        <div id="status" style="min-height:40px;text-align:center;margin:5px 20px">
  945.            <div id="Starting" class="PlaceLauncherStatus MadStatusStarting" style="display:block">
  946.                Starting Roblox...
  947.            </div>
  948.            <div id="Waiting" class="PlaceLauncherStatus MadStatusField">Connecting to Players...</div>
  949.            <div id="StatusBackBuffer" class="PlaceLauncherStatus PlaceLauncherStatusBackBuffer MadStatusBackBuffer"></div>
  950.        </div>
  951.        <div style="text-align:center;margin-top:1em">
  952.            <input type="button" class="Button CancelPlaceLauncherButton translate" value="Cancel" />
  953.        </div>
  954.    </div>
  955. </div>
  956. <div id="ProtocolHandlerClickAlwaysAllowed"
  957.     class="ph-clickalwaysallowed"
  958.    
  959.     style="display:none;">
  960.    <p class="larger-font-size">
  961.        <span class="icon-moreinfo"></span>
  962.            
  963.                Check <strong>Remember my choice</strong> and click <strong>OK</strong> in the dialog box above to join games faster in the future!
  964.            
  965.    </p>
  966. </div>
  967.  
  968.  
  969.    <div id="videoPrerollPanel" style="display:none">
  970.        <div id="videoPrerollTitleDiv">
  971.            Gameplay sponsored by:
  972.        </div>
  973.        <div id="content">
  974.            <video id="contentElement" style="width:0; height:0;" />
  975.        </div>
  976.        <div id="videoPrerollMainDiv"></div>
  977.        <div id="videoPrerollCompanionAd">
  978.        </div>
  979.        <div id="videoPrerollLoadingDiv">
  980.            Loading <span id="videoPrerollLoadingPercent">0%</span> - <span id="videoPrerollMadStatus" class="MadStatusField">Starting game...</span><span id="videoPrerollMadStatusBackBuffer" class="MadStatusBackBuffer"></span>
  981.            <div id="videoPrerollLoadingBar">
  982.                <div id="videoPrerollLoadingBarCompleted">
  983.                </div>
  984.            </div>
  985.        </div>
  986.        <div id="videoPrerollJoinBC">
  987.            <span>Get more with Builders Club!</span>
  988.            <a href="https://www.roblox.com/premium/membership?ctx=preroll" target="_blank" class="btn-medium btn-primary" id="videoPrerollJoinBCButton">Join Builders Club</a>
  989.        </div>
  990.    </div>  
  991.    <script type="text/javascript">
  992.        $(function () {
  993.            var videoPreRollDFP = Roblox.VideoPreRollDFP;
  994.            if (videoPreRollDFP) {
  995.                var customTargeting = Roblox.VideoPreRollDFP.customTargeting;
  996.                videoPreRollDFP.showVideoPreRoll = false;
  997.                videoPreRollDFP.loadingBarMaxTime = 33000;
  998.                videoPreRollDFP.videoLoadingTimeout = 11000;
  999.                videoPreRollDFP.videoPlayingTimeout = 41000;
  1000.                videoPreRollDFP.videoLogNote = "";
  1001.                videoPreRollDFP.logsEnabled = true;
  1002.                videoPreRollDFP.adUnit = "/1015347/VideoPrerollUnder13";
  1003.                videoPreRollDFP.adTime = 15;
  1004.                videoPreRollDFP.includedPlaceIds = "707652019,447452406,461482416,2563455047,2056459358";
  1005.                videoPreRollDFP.isSwfPreloaderEnabled = false;
  1006.                videoPreRollDFP.isPrerollShownEveryXMinutesEnabled = true;
  1007.                videoPreRollDFP.isAgeTargetingEnabled = true;
  1008.                videoPreRollDFP.isAgeOrSegmentTargetingEnabled = true;
  1009.                videoPreRollDFP.isCompanionAdRenderedByGoogleTag = true;
  1010.                customTargeting.userAge = "Unknown";
  1011.                customTargeting.userAgeOrSegment = "Unknown";
  1012.                customTargeting.userGender = "Unknown";
  1013.                customTargeting.gameGenres = "";
  1014.                customTargeting.environment = "Production";
  1015.                customTargeting.adTime = "15";
  1016.                customTargeting.PLVU = false;
  1017.                $(videoPreRollDFP.checkEligibility);
  1018.            }
  1019.        });
  1020.    </script>                                                    
  1021.  
  1022.  
  1023. <script type="text/javascript">
  1024. function checkRobloxInstall() {
  1025.         return RobloxLaunch.CheckRobloxInstall('https://www.roblox.com/install/download.aspx');
  1026. }
  1027. </script>
  1028.  
  1029.    <div id="InstallationInstructions" class="style2016" style="display:none;">
  1030.        <div class="ph-installinstructions">
  1031.            <div class="ph-modal-header">
  1032.                    <span class="icon-close-16x16 simplemodal-close"></span>
  1033.                    <h5 class="title">Thanks for playing Roblox</h5>
  1034.            </div>
  1035.            <div class="modal-content-container">
  1036.                <div class="ph-installinstructions-body ">
  1037.  
  1038.  
  1039.        <ul class="modal-col-5">
  1040.            <li class="step1-of-5">
  1041.                <h2>1</h2>
  1042.                <p class="larger-font-size">Click <strong>Save File</strong> when the download window pops up</p>
  1043.                <img data-delaysrc="https://images.rbxcdn.com/06b51c8849130f46e38bfa01f0e5c8d2.png" />
  1044.            </li>
  1045.            <li class="2-of-5">
  1046.                <h2>2</h2>
  1047.                <p class="larger-font-size">Go to Downloads and double click <strong>RobloxPlayer.exe</strong></p>
  1048.                <img data-delaysrc="https://images.rbxcdn.com/62b8b3f6c856acd74ff7ea49dab56889.png" />
  1049.            </li>
  1050.            <li class="step3-of-5">
  1051.                <h2>3</h2>
  1052.                <p class="larger-font-size">Click <strong>Run</strong></p>
  1053.                <img data-delaysrc="https://images.rbxcdn.com/aee74021bb3ba2a4956449b62cd35405.png" />
  1054.            </li>
  1055.            <li class="step4-of-5">
  1056.                <h2>4</h2>
  1057.                <p class="larger-font-size">Once installed, click <strong>Play</strong> to join the action!</p>
  1058.                <div class="VisitButton VisitButtonContinueGLI">
  1059.                    <a class="btn btn-primary-lg disabled btn-full-width">Play</a>
  1060.                </div>
  1061.            </li>
  1062.            <li class="step5-of-5">
  1063.                <h2>5</h2>
  1064.                <p class="larger-font-size">Click <strong>Ok</strong> when the alert pops up</p>
  1065.                <img data-delaysrc="https://images.rbxcdn.com/9168d6c2974f4bd80e741b31257b4fc9.png" />
  1066.            </li>
  1067.        </ul>
  1068.  
  1069.                </div>
  1070.            </div>
  1071.            <div class="xsmall">
  1072.                The Roblox installer should download shortly. If it doesn’t, start the <a id="GameLaunchManualInstallLink" href="#" class="text-link">download now.</a>
  1073. <script>
  1074.                       if (Roblox.ProtocolHandlerClientInterface && typeof Roblox.ProtocolHandlerClientInterface.attachManualDownloadToLink === 'function') {
  1075.                           Roblox.ProtocolHandlerClientInterface.attachManualDownloadToLink();
  1076.                       }
  1077.                   </script>
  1078.            </div>
  1079.        </div>
  1080.    </div>
  1081.    <div class="InstallInstructionsImage" data-modalwidth="970" style="display:none;"></div>
  1082.  
  1083.  
  1084. <div id="pluginObjDiv" style="height:1px;width:1px;visibility:hidden;position: absolute;top: 0;"></div>
  1085. <iframe id="downloadInstallerIFrame" name="downloadInstallerIFrame" style="visibility:hidden;height:0;width:1px;position:absolute"></iframe>
  1086.  
  1087. <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='clientinstaller' type='text/javascript' src='https://js.rbxcdn.com/17af7ddc78e9257b126bfee033fdf688.js'></script>
  1088.  
  1089. <script type="text/javascript">
  1090.    Roblox.Client._skip = null;
  1091.    Roblox.Client._CLSID = '76D50904-6780-4c8b-8986-1A7EE0B1716D';
  1092.    Roblox.Client._installHost = 'setup.roblox.com';
  1093.    Roblox.Client.ImplementsProxy = true;
  1094.    Roblox.Client._silentModeEnabled = true;
  1095.    Roblox.Client._bringAppToFrontEnabled = false;
  1096.    Roblox.Client._currentPluginVersion = '';
  1097.    Roblox.Client._eventStreamLoggingEnabled = true;
  1098.  
  1099.        
  1100.        Roblox.Client._installSuccess = function() {
  1101.            if(GoogleAnalyticsEvents){
  1102.                GoogleAnalyticsEvents.ViewVirtual('InstallSuccess');
  1103.                GoogleAnalyticsEvents.FireEvent(['Plugin','Install Success']);
  1104.                if (Roblox.Client._eventStreamLoggingEnabled && typeof Roblox.GamePlayEvents != "undefined") {
  1105.                    Roblox.GamePlayEvents.SendInstallSuccess(Roblox.Client._launchMode, play_placeId);
  1106.                }
  1107.            }
  1108.        }
  1109.        
  1110.    </script>
  1111.  
  1112.  
  1113. <div class="ConfirmationModal modalPopup unifiedModal smallModal" data-modal-handle="confirmation" style="display:none;">
  1114.    <a class="genericmodal-close ImageButton closeBtnCircle_20h"></a>
  1115.    <div class="Title"></div>
  1116.    <div class="GenericModalBody">
  1117.        <div class="TopBody">
  1118.            <div class="ImageContainer roblox-item-image" data-image-size="small" data-no-overlays data-no-click>
  1119.                <img class="GenericModalImage" alt="generic image" />
  1120.            </div>
  1121.            <div class="Message"></div>
  1122.        </div>
  1123.        <div class="ConfirmationModalButtonContainer GenericModalButtonContainer">
  1124.            <a href id="roblox-confirm-btn"><span></span></a>
  1125.            <a href id="roblox-decline-btn"><span></span></a>
  1126.        </div>
  1127.        <div class="ConfirmationModalFooter">
  1128.        
  1129.        </div>  
  1130.    </div>  
  1131.    <script type="text/javascript">
  1132.        Roblox = Roblox || {};
  1133.        Roblox.Resources = Roblox.Resources || {};
  1134.        
  1135.        //<sl:translate>
  1136.        Roblox.Resources.GenericConfirmation = {
  1137.            yes: "Yes",
  1138.            No: "No",
  1139.            Confirm: "Confirm",
  1140.            Cancel: "Cancel"
  1141.        };
  1142.        //</sl:translate>
  1143.    </script>
  1144. </div>
  1145.  
  1146. <div id="modal-confirmation" class="modal-confirmation" data-modal-type="confirmation">
  1147.    <div id="modal-dialog"  class="modal-dialog">
  1148.        <div class="modal-content">
  1149.            <div class="modal-header">
  1150.                <button type="button" class="close" data-dismiss="modal">
  1151.                    <span aria-hidden="true"><span class="icon-close"></span></span><span class="sr-only">Close</span>
  1152.                </button>
  1153.                <h5 class="modal-title"></h5>
  1154.            </div>
  1155.  
  1156.            <div class="modal-body">
  1157.                <div class="modal-top-body">
  1158.                    <div class="modal-message"></div>
  1159.                    <div class="modal-image-container roblox-item-image" data-image-size="medium" data-no-overlays data-no-click>
  1160.                        <img class="modal-thumb" alt="generic image"/>
  1161.                    </div>
  1162.                    <div class="modal-checkbox checkbox">
  1163.                        <input id="modal-checkbox-input" type="checkbox"/>
  1164.                        <label for="modal-checkbox-input"></label>
  1165.                    </div>
  1166.                </div>
  1167.                <div class="modal-btns">
  1168.                    <a href id="confirm-btn"><span></span></a>
  1169.                    <a href id="decline-btn"><span></span></a>
  1170.                </div>
  1171.                <div class="loading modal-processing">
  1172.                    <img class="loading-default" src='https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif' alt="Processing..." />
  1173.                </div>
  1174.            </div>
  1175.            <div class="modal-footer text-footer">
  1176.  
  1177.            </div>
  1178.        </div>
  1179.    </div>
  1180. </div>
  1181.  
  1182.  
  1183.  
  1184.  
  1185. <script type="text/javascript">
  1186.    var Roblox = Roblox || {};
  1187.    Roblox.jsConsoleEnabled = false;
  1188. </script>
  1189.  
  1190.  
  1191.  
  1192.    <script type="text/javascript">
  1193.        $(function () {
  1194.            Roblox.CookieUpgrader.domain = 'roblox.com';
  1195.            Roblox.CookieUpgrader.upgrade("GuestData", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow });
  1196.            Roblox.CookieUpgrader.upgrade("RBXSource", { expires: function (cookie) { return Roblox.CookieUpgrader.getExpirationFromCookieValue("rbx_acquisition_time", cookie); } });
  1197.            Roblox.CookieUpgrader.upgrade("RBXViralAcquisition", { expires: function (cookie) { return Roblox.CookieUpgrader.getExpirationFromCookieValue("time", cookie); } });
  1198.                
  1199.                Roblox.CookieUpgrader.upgrade("RBXMarketing", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow });
  1200.                
  1201.                            
  1202.                Roblox.CookieUpgrader.upgrade("RBXSessionTracker", { expires: Roblox.CookieUpgrader.fourHoursFromNow });
  1203.                
  1204.                            
  1205.                Roblox.CookieUpgrader.upgrade("RBXEventTrackerV2", {expires: Roblox.CookieUpgrader.thirtyYearsFromNow});
  1206.                
  1207.        });
  1208.    </script>
  1209.  
  1210.  
  1211.    
  1212.  
  1213.    
  1214.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='intl-polyfill' type='text/javascript' src='https://js.rbxcdn.com/d44520f7da5ec476cfb1704d91bab327.js'></script>
  1215.  
  1216.  
  1217.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='InternationalCore' type='text/javascript' src='https://js.rbxcdn.com/ff3308aa2e909de0f9fcd5da7b529db247f69fe9b4072cbbc267749800a4d9e6.js'></script>
  1218.  
  1219.  
  1220.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='TranslationResources' type='text/javascript' src='https://js.rbxcdn.com/73a89de8a6dbe8005fb3d6be12e361fddac57c13295171d3a8d5f397e761615d.js'></script>
  1221.  
  1222.  
  1223.  
  1224.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='leanbase' type='text/javascript' src='https://js.rbxcdn.com/9dddad3f96525e4e7aadd7acc2265a29.js'></script>
  1225.  
  1226.  
  1227.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='CoreUtilities' type='text/javascript' src='https://js.rbxcdn.com/49f0199331de903fff1a39ac75ef7f87341461d7b830c293777a3d42d24cc28b.js'></script>
  1228.  
  1229.  
  1230.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='CoreRobloxUtilities' type='text/javascript' src='https://js.rbxcdn.com/a59d8796c7797ac5209305f8380a28835d3642e6c8aac61df880675973a5d775.js'></script>
  1231.  
  1232.  
  1233.  
  1234. <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='React' type='text/javascript' src='https://js.rbxcdn.com/45841f2140bdbf6302237530383db2c6bfd938c7138a085cea83fb5f4c03086c.js'></script>
  1235.  
  1236. <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='ReactUtilities' type='text/javascript' src='https://js.rbxcdn.com/898cb6e9c467d15ad80a67d019f3815d35dbc6ff60c12ef7dd928e8fbaf02b0b.js'></script>
  1237.  
  1238. <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='ReactStyleGuide' type='text/javascript' src='https://js.rbxcdn.com/8813bb668c8255ecf74cf0381c68f5855a7c51d2bd73ee8e2fd5581e928e32db.js'></script>
  1239.  
  1240.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='angular' type='text/javascript' src='https://js.rbxcdn.com/ae3d621886e736e52c97008e085fa286.js'></script>
  1241.  
  1242.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='AngularJsUtilities' type='text/javascript' src='https://js.rbxcdn.com/c8a38f17cb83591e84be2c3f246e2db89df064cc5a408aacc475a9d70d269bf6.js'></script>
  1243.  
  1244.  
  1245.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='InternationalAngularJs' type='text/javascript' src='https://js.rbxcdn.com/95f7afb5fcb3c8ae379d51661e32c54ea8d8b823ace7574bd0b7fab9275cba6b.js'></script>
  1246.  
  1247.  
  1248.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='Thumbnails' type='text/javascript' src='https://js.rbxcdn.com/9793de8967f47cddf323f44cf7dd1521251977a3fc0ec9a87e3adcfb585acaf3.js'></script>
  1249.  
  1250.  
  1251.    <div ng-modules="baseTemplateApp">
  1252.        <script type="text/javascript" src="https://js.rbxcdn.com/5a2d7b762bad6ebbee9153f472c60659.js"></script>
  1253.    </div>
  1254.  
  1255.    <div ng-modules="pageTemplateApp">
  1256.        <script type="text/javascript" src="https://js.rbxcdn.com/3e544c8e724dcdc296258b0ca69401a9.js"></script>
  1257.    </div>
  1258.  
  1259.  
  1260.    
  1261.  
  1262.    
  1263.    <script type='text/javascript'>Roblox.config.externalResources = [];Roblox.config.paths['Pages.Catalog'] = 'https://js.rbxcdn.com/cafca5e807a6864149a01d3e510763d3.js';Roblox.config.paths['Pages.CatalogShared'] = 'https://js.rbxcdn.com/daeddd9f7ee5728711b717cc62326f34.js';Roblox.config.paths['Widgets.AvatarImage'] = 'https://js.rbxcdn.com/7d49ac94271bd506077acc9d0130eebb.js';Roblox.config.paths['Widgets.DropdownMenu'] = 'https://js.rbxcdn.com/da553e6b77b3d79bec37441b5fb317e7.js';Roblox.config.paths['Widgets.GroupImage'] = 'https://js.rbxcdn.com/8ad41e45c4ac81f7d8c44ec542a2da0a.js';Roblox.config.paths['Widgets.HierarchicalDropdown'] = 'https://js.rbxcdn.com/4a0af9989732810851e9e12809aeb8ad.js';Roblox.config.paths['Widgets.ItemImage'] = 'https://js.rbxcdn.com/61a0490ba23afa17f9ecca2a079a6a57.js';Roblox.config.paths['Widgets.PlaceImage'] = 'https://js.rbxcdn.com/a6df74a754523e097cab747621643c98.js';</script>
  1264.  
  1265.    
  1266.    <script>
  1267.        Roblox.XsrfToken.setToken('B6QzdZOGuUT6');
  1268.    </script>
  1269.  
  1270.        <script>
  1271.            $(function () {
  1272.                Roblox.DeveloperConsoleWarning.showWarning();
  1273.            });
  1274.        </script>
  1275.        <script type="text/javascript">
  1276.        $(function () {
  1277.            Roblox.JSErrorTracker.initialize({ 'suppressConsoleError': true});
  1278.        });
  1279.    </script>
  1280.  
  1281.  
  1282. <script type="text/javascript">
  1283.    $(function(){
  1284.        function trackReturns() {
  1285.            function dayDiff(d1, d2) {
  1286.                return Math.floor((d1-d2)/86400000);
  1287.            }
  1288.            if (!localStorage) {
  1289.                return false;
  1290.            }
  1291.  
  1292.            var cookieName = 'RBXReturn';
  1293.            var cookieOptions = {expires:9001};
  1294.            var cookieStr = localStorage.getItem(cookieName) || "";
  1295.            var cookie = {};
  1296.  
  1297.            try {
  1298.                cookie = JSON.parse(cookieStr);
  1299.            } catch (ex) {
  1300.                // busted cookie string from old previous version of the code
  1301.            }
  1302.  
  1303.            try {
  1304.                if (typeof cookie.ts === "undefined" || isNaN(new Date(cookie.ts))) {
  1305.                    localStorage.setItem(cookieName, JSON.stringify({ ts: new Date().toDateString() }));
  1306.                    return false;
  1307.                }
  1308.            } catch (ex) {
  1309.                return false;
  1310.            }
  1311.  
  1312.            var daysSinceFirstVisit = dayDiff(new Date(), new Date(cookie.ts));
  1313.            if (daysSinceFirstVisit == 1 && typeof cookie.odr === "undefined") {
  1314.                RobloxEventManager.triggerEvent('rbx_evt_odr', {});
  1315.                cookie.odr = 1;
  1316.            }
  1317.            if (daysSinceFirstVisit >= 1 && daysSinceFirstVisit <= 7 && typeof cookie.sdr === "undefined") {
  1318.                RobloxEventManager.triggerEvent('rbx_evt_sdr', {});
  1319.                cookie.sdr = 1;
  1320.            }
  1321.            try {
  1322.                localStorage.setItem(cookieName, JSON.stringify(cookie));
  1323.            } catch (ex) {
  1324.                return false;
  1325.            }
  1326.        }
  1327.  
  1328.        GoogleListener.init();
  1329.  
  1330.  
  1331.    
  1332.        RobloxEventManager.initialize(true);
  1333.        RobloxEventManager.triggerEvent('rbx_evt_pageview');
  1334.        trackReturns();
  1335.        
  1336.  
  1337.    
  1338.        RobloxEventManager._idleInterval = 450000;
  1339.        RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_start');
  1340.        RobloxEventManager.registerCookieStoreEvent('rbx_evt_ftp');
  1341.        RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_success');
  1342.        RobloxEventManager.registerCookieStoreEvent('rbx_evt_fmp');
  1343.        RobloxEventManager.startMonitor();
  1344.        
  1345.  
  1346.    });
  1347.  
  1348. </script>
  1349.  
  1350.  
  1351.    
  1352.    
  1353.  
  1354. <script type="text/javascript">
  1355.    var Roblox = Roblox || {};
  1356.    Roblox.UpsellAdModal = Roblox.UpsellAdModal || {};
  1357.  
  1358.    Roblox.UpsellAdModal.Resources = {
  1359.        //<sl:translate>
  1360.        title: "Remove Ads Like This",
  1361.        body: "Builders Club members do not see external ads like these.",
  1362.        accept: "Upgrade Now",
  1363.        decline: "No, thanks"
  1364.        //</sl:translate>
  1365.    };
  1366. </script>
  1367.  
  1368.    
  1369.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='page' type='text/javascript' src='https://js.rbxcdn.com/c6547a56a6e4accc90e41d33d0230403.js'></script>
  1370.  
  1371.  
  1372.  
  1373.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='StyleGuide' type='text/javascript' src='https://js.rbxcdn.com/fa46b96109fd6694f067659852bcdb3d71b0ed118a11bdd1d08a0f9aaa75d65e.js'></script>
  1374.  
  1375.  
  1376. <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='Footer' type='text/javascript' src='https://js.rbxcdn.com/938431571ac213ef2c1933845edcb0b044e7bdf95340cf45f8ab84580aeb1e12.js'></script>
  1377.  
  1378.  
  1379. <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='Captcha' type='text/javascript' src='https://js.rbxcdn.com/110a815515c384c54f040931ae8d03d13a836b8674f476b908eb8380470e4527.js'></script>
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='GameLaunch' type='text/javascript' src='https://js.rbxcdn.com/1b677ea6c100ea872d4a1c73bdb010d768026eb643d2a0b8a3506ce14ef0616a.js'></script>
  1386.  
  1387.  
  1388.  
  1389. <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='SystemFeedback' type='text/javascript' src='https://js.rbxcdn.com/aac542106f7f77697cbc3b36ab3cf0619bf9b69a1af0983e59dfeb6c36652d3b.js'></script>
  1390.  
  1391. <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='Login' type='text/javascript' src='https://js.rbxcdn.com/72636e3f7e58d214aece5b041c2738f6bcf3eb770a138bb422c787f457b1b15f.js'></script>
  1392.  
  1393.    
  1394.        <script>
  1395.        var _comscore = _comscore || [];
  1396.        _comscore.push({ c1: "2", c2: "6035605", c3: "", c4: "", c15: "" });
  1397.  
  1398.        (function() {
  1399.            var s = document.createElement("script"), el = document.getElementsByTagName("script")[0];
  1400.            s.async = true;
  1401.            s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
  1402.            el.parentNode.insertBefore(s, el);
  1403.        })();
  1404.    </script>
  1405.    <noscript>
  1406.        <img src="http://b.scorecardresearch.com/p?c1=2&c2=&c3=&c4=&c5=&c6=&c15=&cv=2.0&cj=1"/>
  1407.    </noscript>
  1408.    
  1409.    
  1410.  
  1411.  
  1412.    <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='pageEnd' type='text/javascript' src='https://js.rbxcdn.com/decf7d4f06e846f6c7cb0a0cbe107f0b.js'></script>
  1413.  
  1414. </body>
  1415. </html>
Add Comment
Please, Sign In to add comment