CINXE.COM
Page Not Found | Code.org
<!DOCTYPE html> <html dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script charset="UTF-8" src="/onetrust/cdo/consent/27cca70a-7db3-4852-9ef0-a6660fd0977d/OtAutoBlock.js" type="text/javascript"></script> <script charset="UTF-8" data-domain-script="27cca70a-7db3-4852-9ef0-a6660fd0977d" src="/onetrust/cdo/scripttemplates/otSDKStub.js" type="text/javascript"></script> <script> function OptanonWrapper() { } </script> <meta content="EWBLxcxuqqtcdWikkxAOnMoaawa6XDoEPlvwO6wOg-A" name="google-site-verification"> <meta content="Code.org" property="og:site_name"> <meta content="500177453358606" property="fb:app_id"> <meta content="article" property="og:type"> <meta content="https://www.facebook.com/Code.org" property="article:publisher"> <meta content="https://code.org/code.org/about" property="og:url"> <meta content="https://code.org/images/default-og-image.png" property="og:image"> <meta content="1220" property="og:image:width"> <meta content="640" property="og:image:height"> <meta content="https://code.org/images/default-og-image.png" property="twitter:image:src"> <title>Page Not Found | Code.org</title> <link href="/images/favicon.ico" rel="shortcut icon"> <link href="/images/apple-touch-icon-precomposed.png" rel="apple-touch-icon"> <script src="https://www.googleoptimize.com/optimize.js?id=OPT-KBX3C3L"></script> <script data-statsig-api-client-key="client-vmRbxXpfzwSHFlsYHgqFMfMqa6zFnr7PHfZYnhNtItg"></script> <script data-managed-test-server="false"></script> <script data-ge-region=""></script> <link href="/css/generated/fonts.css" rel="stylesheet" type="text/css"> <link href="/style.css" rel="stylesheet" type="text/css"> <style> .user_menu,.create_menu,.help_button{user-select:none;height:38px;position:relative}.user_menu .create_button,.user_menu .display_name,.user_menu .pairing_name,.create_menu .create_button,.create_menu .display_name,.create_menu .pairing_name,.help_button .create_button,.help_button .display_name,.help_button .pairing_name{max-width:120px;display:inline-block;float:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rtl .user_menu .create_button,.rtl .user_menu .display_name,.rtl .user_menu .pairing_name,.rtl .create_menu .create_button,.rtl .create_menu .display_name,.rtl .create_menu .pairing_name,.rtl .help_button .create_button,.rtl .help_button .display_name,.rtl .help_button .pairing_name{float:right;padding-left:3px}.user_menu .user_menu_arrow_down,.user_menu .user_menu_arrow_up,.user_menu .create_menu_arrow_down,.user_menu .create_menu_arrow_up,.create_menu .user_menu_arrow_down,.create_menu .user_menu_arrow_up,.create_menu .create_menu_arrow_down,.create_menu .create_menu_arrow_up,.help_button .user_menu_arrow_down,.help_button .user_menu_arrow_up,.help_button .create_menu_arrow_down,.help_button .create_menu_arrow_up{font-size:1.5rem;margin-top:-4px}.rtl .user_menu .user_menu_arrow_down,.rtl .user_menu .user_menu_arrow_up,.rtl .user_menu .create_menu_arrow_down,.rtl .user_menu .create_menu_arrow_up,.rtl .create_menu .user_menu_arrow_down,.rtl .create_menu .user_menu_arrow_up,.rtl .create_menu .create_menu_arrow_down,.rtl .create_menu .create_menu_arrow_up,.rtl .help_button .user_menu_arrow_down,.rtl .help_button .user_menu_arrow_up,.rtl .help_button .create_menu_arrow_down,.rtl .help_button .create_menu_arrow_up{float:left}html[dir='rtl'] .user_menu .user_menu_arrow_down,html[dir='rtl'] .user_menu .user_menu_arrow_up,html[dir='rtl'] .user_menu .create_menu_arrow_down,html[dir='rtl'] .user_menu .create_menu_arrow_up,html[dir='rtl'] .create_menu .user_menu_arrow_down,html[dir='rtl'] .create_menu .user_menu_arrow_up,html[dir='rtl'] .create_menu .create_menu_arrow_down,html[dir='rtl'] .create_menu .create_menu_arrow_up,html[dir='rtl'] .help_button .user_menu_arrow_down,html[dir='rtl'] .help_button .user_menu_arrow_up,html[dir='rtl'] .help_button .create_menu_arrow_down,html[dir='rtl'] .help_button .create_menu_arrow_up{float:left}.user_menu .user_menu_arrow_up,.user_menu .create_menu_arrow_up,.create_menu .user_menu_arrow_up,.create_menu .create_menu_arrow_up,.help_button .user_menu_arrow_up,.help_button .create_menu_arrow_up{margin-top:-2px}.user_menu .user_options,.user_menu .create_options,.create_menu .user_options,.create_menu .create_options,.help_button .user_options,.help_button .create_options{top:50px}.user_menu .help_contents,.create_menu .help_contents,.help_button .help_contents{top:58px}.user_menu .user_options,.user_menu .create_options,.user_menu .help_contents,.create_menu .user_options,.create_menu .create_options,.create_menu .help_contents,.help_button .user_options,.help_button .create_options,.help_button .help_contents{position:absolute;right:0px;background-color:#fff;border:1px solid #5b6770}.user_menu .user_options a,.user_menu .create_options a,.user_menu .help_contents a,.create_menu .user_options a,.create_menu .create_options a,.create_menu .help_contents a,.help_button .user_options a,.help_button .create_options a,.help_button .help_contents a{color:#5b6770 !important;transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out;-moz-transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out;-webkit-transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out;-o-transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out}.user_menu .user_options a:hover,.user_menu .create_options a:hover,.user_menu .help_contents a:hover,.create_menu .user_options a:hover,.create_menu .create_options a:hover,.create_menu .help_contents a:hover,.help_button .user_options a:hover,.help_button .create_options a:hover,.help_button .help_contents a:hover{background-color:#e7e8ea;text-decoration:none}.user_menu{padding:7px 14px}.user_menu .user_options{z-index:100001;text-align:left;white-space:nowrap;padding:0}.user_menu .user_options[dir='rtl'] a{text-align:right}.user_menu .user_options .display_name{font-family:"Figtree", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:600;font-style:normal;background-color:#5b6770;color:#fff;padding:10px;text-align:center;cursor:default}.user_menu .user_options a{display:block;padding:10px;font-family:"Figtree", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:600;font-style:normal}.user_menu .user_options a+a{border-top:1px solid #5b6770}.user_menu .user_options.hide-responsive-menu{display:none}.help_button{padding-left:16px;padding-top:4px;display:inline-block;float:left;z-index:99;position:relative}.help_button.hide-mobile{display:block}.help_button .hide-mobile{display:block}@media (max-width: 1268px){.help_button.show-small-desktop,.help_button .show-small-desktop{display:none}}.help_button .help_icon{padding:11px 0 16px 0;font-size:22px;color:#fff;cursor:pointer;height:20px;vertical-align:middle;text-decoration:none}.help_button .help_contents{z-index:100001;text-align:left;white-space:nowrap;padding:0;right:0}.help_button .help_contents[dir='rtl'] a{text-align:right;left:0;right:unset}html[dir='rtl'] .help_button .help_contents{left:0;right:unset}.help_button .help_contents a{display:block;padding:10px;font-family:"Figtree", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:600;font-style:normal}.help_button .help_contents a+a{border-top:1px solid #5b6770}@media (max-width: 1023px){.help_button.hide-mobile{display:none}.help_button .hide-mobile{display:none}}.create_menu .create_options{width:max-content;z-index:10000;border-bottom:0}.create_menu .create_options a{font-family:"Figtree", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:600;font-style:normal;min-width:240px;font-size:14px;border-bottom:1px solid #5b6770;box-sizing:content-box;white-space:nowrap;cursor:pointer}.create_menu .create_options img{height:70px;width:70px}.create_menu .create_options .project_link_box{display:block}.create_menu .create_options .project_link_box .project_link{display:inline-block;padding:0 10px 0 4px;line-height:67px}.create_menu .create_options #view_all_projects{height:70px;padding-left:10px}@media screen and (max-width: 1023px){.create_menu.show-small-desktop{display:none !important}}@media screen and (max-width: 1120px){.create_menu.hide-mobile{display:none}} </style> <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"> <link href="/css/brstrap.css" rel="stylesheet" type="text/css"> <link href="/css/common.css" rel="stylesheet" type="text/css"> <link href="/css/video-responsive.css" rel="stylesheet" type="text/css"> <link href="/css/container-responsive-full-width.css" rel="stylesheet" type="text/css"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"10f957f1ae","applicationID":"3346604","transactionName":"IV8LTUAOWVwER0ljWAxREUtTTnFfAkALVV8WQ0p+dzUVGg==","queueTime":0,"applicationTime":192,"agent":""}</script> <script>(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["*"]},session_trace:{sampling_rate:0.0,mode:"FIXED_RATE",enabled:true,error_sampling_rate:0.0}};(window.NREUM||(NREUM={})).loader_config={xpid:"UQYGVVBQGwADUFdUBwU=",licenseKey:"10f957f1ae",applicationID:"3346604"};;/*! For license information please see nr-loader-full-1.282.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>g,gD:()=>m,xN:()=>p});var n=r(3333),i=r(993);const o=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var a=r(2614),s=r(944),c=r(384),u=r(8122);const d="[data-nr-mask]",l=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0,level:i.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:a.wk,inactiveMs:a.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){o(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,s.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){o(t)?e.block_selector+=",".concat(t):""!==t&&(0,s.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,s.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},f={},h="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(h);if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function p(e,t){if(!e)throw new Error(h);f[e]=(0,u.a)(t,l());const r=(0,c.nY)(e);r&&(r.init=f[e])}function m(e,t){if(!e)throw new Error(h);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.282.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>u,RI:()=>i,WN:()=>f,bv:()=>o,gm:()=>a,lR:()=>l,m:()=>c,mw:()=>s,sb:()=>d});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,u=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)g(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function g(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=p(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var g=v()[s[e]];g&&g.push([f,e,r,a]);return a},get:m,listeners:p,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function g(e,t){n[e]=p(e).concat(t)}function p(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5475:(e,t,r)=>{"use strict";r.d(t,{Q:()=>i});var n=r(3304);function i(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,n.A)(e).length}catch(e){return}}}},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,We:()=>i,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9559:(e,t,r)=>{"use strict";r.d(t,{A5:()=>l,NF:()=>c,tV:()=>u});var n=r(6154),i=r(1863),o=r(5289),a=r(9566),s=r(384);const c="websocket-",u="addEventListener",d={};function l(e){if(d[e.debugId]++)return e;if(!(0,s.dV)().o.WS)return e;class t extends WebSocket{static name="WebSocket";constructor(...t){super(...t);const r=(0,a.LA)(6);this.report=function(t){const r=(0,i.t)();return function(n,...a){const s=a[0]?.timeStamp||(0,i.t)(),u=(0,o.We)();e.emit(c+n,[s,s-r,u,t,...a])}}(r),this.report("new");["message","error","open","close"].forEach((e=>{this.addEventListener(e,(function(t){this.report(u,{eventType:e,event:t})}))}))}send(...e){this.report("send",...e);try{return super.send(...e)}catch(t){throw this.report("send-err",...e),t}}}return n.gm.WebSocket=t,e}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{Pj:()=>u,TZ:()=>i,XG:()=>c,rs:()=>o,xV:()=>s,z_:()=>a});var n=r(9559);const i=r(860).K7.metrics,o="sm",a="cm",s="storeSupportabilityMetrics",c="storeEventMetrics",u=["new","send","close",n.tV]},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),g=r(6344);const p=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",g.G4.RECORD,g.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),R=r(3785),x=r(2646),w=r(3434);const E=new Map;function A(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,w.YM)(i),a=new x.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[w.Jt]||t[r];return E.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>E.get(c))),i}function T(){const e=(0,h.pV)();p.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const S={};var _=r(9417),N=r(5603),O=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function j(e,t={},p,x){let{init:w,info:E,loader_config:j,runtime:k={},exposed:C=!0}=t;k.loaderType=p;const L=(0,h.pV)();E||(w=L.init,E=L.info,j=L.loader_config),(0,_.xN)(e.agentIdentifier,w||{}),(0,N.a)(e.agentIdentifier,j||{}),E.jsAttributes??={},d.bv&&(E.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,E);const H=(0,_.D0)(e.agentIdentifier),D=[E.beacon,E.errorBeacon];P||(H.proxy.assets&&(I(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon&&D.push(H.proxy.beacon),T(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),k.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],k.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,k),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const p={};var x=s.ee.get(e),w=x.get("tracer");S[e]=b.g.OFF,x.on(g.G4.REPLAY_RUNNING,(t=>{S[e]=t}));var E="api-",T=E+"ixn-";function _(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(E,n,!0,o||null===r?"session":void 0)(t,r)}function N(){}p.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,x),(0,R.R)(x,e,t,r)},p.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,x),A(x,e,t,{customAttributes:r,level:i})},m.forEach((e=>{p[e]=I(E,e,!0,"api")})),p.addPageAction=I(E,"addPageAction",!0,n.K7.genericEvents),p.recordCustomEvent=I(E,"recordCustomEvent",!0,n.K7.genericEvents),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(E,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return _(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},p.setUserId=function(e){if("string"==typeof e||null===e)return _("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return _("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},p.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,x),x.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},p[g.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},p[g.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},p.interaction=function(e){return(new N).get("object"==typeof e?e:{})};const O=N.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,x),h||(0,a.p)(T+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(w.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw w.emit("fn-err",[arguments,this,t],r),t}finally{w.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,x),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(891).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),x.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{O[e]=I(T,e,void 0,h?n.K7.softNav:n.K7.spa)})),p.setCurrentRouteName=h?I(T,"routeName",void 0,n.K7.softNav):I(E,"routeName",!0,n.K7.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,x),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!S[e]],void 0,n.K7.jserrors,x)},d.RI?(0,u.GG)((()=>P()),!0):P(),p}(e.agentIdentifier,x,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=C),P=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",891:"nr-full"}[e]+"-1.282.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.282.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={891:"sha512-QwskJQqglBlxNFQoHB/oWrBaUzSyk//kP3gG0xUfwVHsZhBsTBfL/9hddqfEf0vym+ZwYGEwVVNJhE4O1+fh0g==",222:"sha512-6TMOC1TQNapnzFUULE5dzbbnenlHycHTKKs4qxP9EldTLwvpP4/A5Qk6eIKRlV0Kl80k/rRxerFkIB9Kfdnf/Q==",95:"sha512-tnhiqz6gSPIJTKoMspoXbuotiFw/6cjQDPON54njuog7HtTp7tOV/fTZEjk7ZoK3pBfhcXizs4A0k+zFrERqnQ=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={85:0,959:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.282.0.PROD"]=self["webpackChunk:NRBA-1.282.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),g=i(6154),p=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(891).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(891).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};g.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,p.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class R extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var x=i(384);var w=i(9908),E=i(2843),A=i(3878),T=i(782),S=i(1863);class _ extends b{static featureName=T.T;constructor(e,t=!0){super(e,T.T,t),g.RI&&((0,E.u)((()=>(0,w.p)("docHidden",[(0,S.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,w.p)("winPagehide",[(0,S.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var N=i(9559),O=i(3969);class I extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),(0,N.A5)(this.ee),O.Pj.forEach((e=>{this.ee.on(N.NF+e,((...t)=>{(0,w.p)("buffered-"+N.NF+e,[...t],void 0,this.featureName,this.ee)}))})),this.importAggregator(e)}}var P=i(6774),j=i(3304);class k{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return D(e)?e:new k(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function L(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(D(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function H(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new k(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return D(e.error)?e.error:C(e)}function D(e){return e instanceof Error&&!!e.stack}class M extends b{static featureName=P.T;#r=!1;constructor(e,r=!0){super(e,P.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,w.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),g.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,w.p)("err",[L(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",(e=>{this.abortHandler&&(0,w.p)("err",[H(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var K=i(8990);let U=1;const V="nr@id";function F(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,K.I)(e,V,(function(){return U++}))}var G=i(5475),B=i(8139),W=i(7836),z=i(3434);const q={},Z=["open","send"];function Y(t){var r=t||W.ee;const n=function(e){return(e||W.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(q[n.debugId]++)return n;q[n.debugId]=1,(0,B.u)(r);var i=(0,z.YM)(n),o=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,s=g.gm.Promise,c=g.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=g.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,Z,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(p?p.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var p=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var X="fetch-",Q=X+"body-",J=["arrayBuffer","blob","json","text","formData"],ee=g.gm.Request,te=g.gm.Response,re="prototype";const ne={};function ie(e){const t=function(e){return(e||W.ee).get("fetch")}(e);if(!(ee&&te&&g.gm.fetch))return t;if(ne[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[W.P]&&o[W.P].dt&&(e=o[W.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return ne[t.debugId]=1,J.forEach((e=>{r(ee[re],e,Q),r(te[re],e,Q)})),r(g.gm,"fetch",X),t.on(X+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(X+"done",[null,r],n)}else t.emit(X+"done",[e],n)})),t}var oe=i(7485),ae=i(5603);class se{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,ae.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,oe.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var ce=i(9300),ue=i(7295),de=["load","error","abort","timeout"],le=de.length,fe=(0,x.dV)().o.REQ,he=(0,x.dV)().o.XHR;class ge extends b{static featureName=ce.T;constructor(e,t=!0){super(e,ce.T,t),this.dt=new se(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,w.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ie(this.ee),Y(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,A.jT)(!1)),g.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=(0,G.Q)(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<le;s++)r.addEventListener(de[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+F(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+F(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof he&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function p(e,r){r instanceof he&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof he&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,oe.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof fe?r=i.url:g.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof fe&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=(0,G.Q)(n.body)||0}function R(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ue.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function x(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<le;t++)e.removeEventListener(de[t],this.listener,!1);t.aborted||(0,ue.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?(0,G.Q)(e.response):"text"===r||""===r||void 0===r?(0,G.Q)(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,w.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",p),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",R)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,oe.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const me={},ve=["pushState","replaceState"];function be(e){const t=function(e){return(e||W.ee).get("history")}(e);return!g.RI||me[t.debugId]++||(me[t.debugId]=1,(0,z.YM)(t).inPlace(window.history,ve,"-")),t}var ye=i(3738);const{He:Re,bD:xe,d3:we,Kp:Ee,TZ:Ae,Lc:Te,uP:Se,Rz:_e}=ye;class Ne extends b{static featureName=Ae;constructor(e,t=!0){super(e,Ae,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;be(r),this.eventsEE=(0,B.u)(r),this.eventsEE.on(Se,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Te,(function(e,t){(0,w.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(_e+we,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(_e+Ee,(function(e){(0,w.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,w.p)(Re,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:xe,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class Ie extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,p.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,w.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,p.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(891),i.e(222)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Pe=i(3333);class je extends b{static featureName=Pe.TZ;constructor(e,t=!0){super(e,Pe.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(g.RI&&(e.init.user_actions.enabled&&(Pe.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),Pe.qN.forEach((e=>{const t=(0,v.s)((e=>{(0,w.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,A.sp)(e,t)}))),e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,w.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var ke=i(993),Ce=i(3785);class Le extends b{static featureName=ke.TZ;constructor(e,t=!0){super(e,ke.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,Ce.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),g.gm?(this.features={},(0,x.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,_,Ne,Ie,ge,I,M,je,Le],loaderType:"pro"})})()})();</script> <script data-ot-ignore="" src="/js/jquery.min.js"></script> <!-- GA4 measurement ID for code.org --> <script> window.userAnalyticsDimensions = { 'dimension1': 'en', 'dimension4': '', }; </script> <!-- Google tag (gtag.js) --> <script async="" src="https://www.googletagmanager.com/gtag/js?id=G-L9HT5MZ3HD"></script> <script data-googlemeasurement='{"id":"G-L9HT5MZ3HD"}' src="/assets/js/code.org/views/theme_google_analyticswp72a7bf7b1e17d21a5486.min.js"></script> <script data-ot-ignore="" src="/assets/js/en_us/common_localewp013df5000993f801a803.js"></script> <script data-ot-ignore="" src="/assets/js/webpack-runtimewp334b0637e5bd97644b24.min.js"></script> <script data-ot-ignore="" src="/assets/js/vendorswp28fd26e5fd15e28eaa6f.min.js"></script> <script data-ot-ignore="" defer src="/assets/js/code.org/views/theme_common_head_afterwp9066af052d90ea689a90.min.js"></script> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript> <iframe height="0" src="https://www.googletagmanager.com/ns.html?id=GTM-TZZBRK5" style="display:none;visibility:hidden" width="0"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <style> #warning-banner{position:absolute;z-index:1000;overflow:hidden;width:100%;box-sizing:border-box;padding:1rem;background-color:#6C468A;display:flex;align-items:center;gap:0.75rem}#warning-banner #dismiss-icon{margin-left:auto}#warning-banner #warning-icon{padding-right:10px}#warning-banner a,#warning-banner a:visited{font-family:"Figtree", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:700;font-style:normal;color:white;text-decoration:underline}#warning-banner a:hover{background:transparent}#warning-banner p{color:#FFFFFF;margin-bottom:0;font-size:0.875rem}#warning-banner #message{float:left;width:90%}#warning-banner #hide-warning{position:relative}#warning-banner #hide-warning .close{float:right;font-size:20px}.warning-sign{font-size:16px;color:#efcd1c} </style> <div class="wrapper"> <div id="warning-banner" style="display: none;"> <i class="fa fa-warning warning-sign"></i> <p>Your browser is not supported. Please upgrade your browser to <a href="https://support.code.org/hc/en-us/articles/202591743">one of our supported browsers</a>. You can try viewing the page, but expect functionality to be broken.</p> </div> <style> #pageheader-wrapper{z-index:99}#hamburger{display:inline-block;position:relative}#hamburger.hide-always{display:none}#hamburger.show-mobile{display:none}#hamburger.hide-mobile{display:block}#hamburger.show-always{display:block}#hamburger .hide-always{display:none}#hamburger .show-mobile{display:none !important}#hamburger .hide-mobile{display:block}#hamburger .show-always{display:block}#hamburger.show-small-desktop,#hamburger .show-small-desktop{display:none}#hamburger #hamburger-icon{cursor:pointer;height:20px;vertical-align:middle;text-decoration:none}#hamburger #hamburger-contents{font-size:1rem;list-style:none;margin:0;width:290px;position:absolute;top:64px;inset-inline-end:0;background-color:#0093A4;max-height:100vh;overflow-y:auto;border-radius:4px;box-shadow:0px 2px 6px rgba(0,0,0,0.2);z-index:1022}#hamburger #hamburger-contents .item{color:#fff;line-height:1.5;text-indent:0;list-style-type:none;margin-block:1rem;margin-inline:1rem;display:flex;justify-content:space-between;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#hamburger #hamburger-contents .item:last-of-type{border-bottom:none}#hamburger #hamburger-contents .item::before{content:none}#hamburger #hamburger-contents .item a{font-family:"Figtree", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:400;font-style:normal;color:#fff;text-decoration:none}#hamburger #hamburger-contents .item a html[dir=rtl],.rtl #hamburger #hamburger-contents .item a{float:right}#hamburger #hamburger-contents.hide-responsive-menu{display:none}#hamburger #hamburger-contents .hide-about{display:none}#hamburger #hamburger-contents .hide-educate{display:none}#hamburger #hamburger-contents .hamburger-expandable-item{cursor:pointer}#hamburger #hamburger-contents .hamburger-expandable-item .text{float:left;max-width:210px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#hamburger #hamburger-contents .hamburger-expandable-item .text html[dir=rtl],.rtl #hamburger #hamburger-contents .hamburger-expandable-item .text{float:right}#hamburger #hamburger-contents .hamburger-expandable-item .arrow-down,#hamburger #hamburger-contents .hamburger-expandable-item .arrow-up{font-size:1.5rem;float:right;margin-block-start:-4px}#hamburger #hamburger-contents .hamburger-expandable-item .arrow-down html[dir=rtl],.rtl #hamburger #hamburger-contents .hamburger-expandable-item .arrow-down,#hamburger #hamburger-contents .hamburger-expandable-item .arrow-up html[dir=rtl],.rtl #hamburger #hamburger-contents .hamburger-expandable-item .arrow-up{float:left}#hamburger #hamburger-contents .hamburger-expandable-item .arrow-up{display:none}#hamburger #hamburger-contents .hamburger-expandable-item i{width:unset}#hamburger #hamburger-contents .hamburger-expandable-items{margin-left:20px;display:none}#hamburger #hamburger-contents .hamburger-expandable-items .item{max-width:220px;margin-top:0px}#hamburger #hamburger-contents .divider{height:1px;background:#007785;margin:0.75rem 0}@media (min-width: 1269px){#hamburger #hamburger-contents .divider.hide-large-desktop{display:none !important}}@media (max-width: 1268px){#hamburger.show-small-desktop,#hamburger .show-small-desktop{display:block !important}}@media (max-width: 1023px){#hamburger.show-mobile,#hamburger .show-mobile{display:block !important}#hamburger .show-mobile.item{display:flex !important}#hamburger.hide-mobile,#hamburger .hide-mobile{display:none}#hamburger #hamburger{padding-left:0}}#hamburger:not(.user-is-tabbing){outline:none}#hamburger #hamburger-icon{padding:10px 28px 16px 0;float:right;margin-top:7px;margin-inline-start:3px;display:inline-block}#hamburger #hamburger-icon span,#hamburger #hamburger-icon span::before,#hamburger #hamburger-icon span::after{cursor:pointer;height:3px;width:25px;border-radius:2px;background:#fff;position:absolute;display:block;content:'';margin-top:2px;margin-bottom:2px}#hamburger #hamburger-icon span{transition:all 500ms ease-in-out}html[dir=rtl] #hamburger #hamburger-icon span{margin-right:-25px}html[dir=rtl] #hamburger #hamburger-icon span::before{margin-right:0}html[dir=rtl] #hamburger #hamburger-icon span::after{margin-right:0}#hamburger #hamburger-icon span::before{transition:all 500ms ease-in-out;top:-10px}#hamburger #hamburger-icon span::after{transition:all 500ms ease-in-out;bottom:-10px}#hamburger #hamburger-icon.active span{background-color:transparent}#hamburger #hamburger-icon.active span::before{top:-2px;transform:rotate(45deg)}#hamburger #hamburger-icon.active span::after{top:-2px;transform:rotate(-45deg)}#hamburger-sign-up-buttons .button-wrapper{box-sizing:border-box;background-color:#0093A4;text-align:center;padding:1rem 1rem 0.5rem;display:flex;flex-direction:column;gap:0.5rem}#hamburger-sign-up-buttons .button-wrapper .header_button{margin:unset;width:100%;text-align:center}@media (min-width: 426px){#hamburger-sign-up-buttons{display:none}} </style> <nav class="main"> <div class="left"> <a href="//code.org"> <img alt="Code.org Home" class="logo" src="/images/logo.svg"> </a> <ul id="headerlinks"> <li class="hide-mobile"> <a class="headerlink" href="//code.org/students" id="header-learn">Learn</a> </li> <li class="hide-mobile"> <a class="headerlink" href="//code.org/teach" id="header-teach">Teach</a> </li> <li class="hide-mobile"> <a class="headerlink" href="//code.org/administrators" id="header-districts">Districts</a> </li> <li class="hide-small-desktop"> <a class="headerlink" href="//code.org/promote" id="header-stats">Stats</a> </li> <li class="hide-small-desktop"> <a class="headerlink" href="//code.org/help" id="header-help">Help Us</a> </li> <li class="hide-small-desktop"> <a class="headerlink" href="//studio.code.org/incubator" id="header-incubator">Incubator</a> </li> <li class="hide-small-desktop"> <a class="headerlink" href="//code.org/about" id="header-about">About</a> </li> </ul> </div> <div class="right"> <script data-amplitude-api-key="f6db63e17bf19aabe85f563a7fdab4ad"></script> <script data-statsig-api-client-key="client-vmRbxXpfzwSHFlsYHgqFMfMqa6zFnr7PHfZYnhNtItg"></script> <script data-managed-test-server="false"></script> <script data-createmenuoptions='["spritelab","artist","applab","gamelab","dance","music","view_all"]' data-issignedout="true" data-pageactionname="null" data-pagecontrollername="null" data-usertype="null" src="/assets/js/userHeaderEventLoggerwp2ccc8be2168f6d85b4a6.min.js"></script> <div class="header_button create_menu show-small-desktop" id="header_create_menu" role="button" tabindex="0"> <span class="create_button"> New project </span> <i class="create_menu_arrow_down fa fa-caret-down"></i> <i class="create_menu_arrow_up fa fa-caret-up" style="display: none"></i> <div class="create_options" dir="ltr" style="display: none"> <a class="project_link_box" href="//studio.code.org/projects/spritelab/new" id="create_menu_option_spritelab"> <img src="/shared/images/fill-70x70/courses/logo_spritelab.png"> <div class="project_link" id="create_dropdown_spritelab"> <div class="text">Sprite Lab</div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects/artist/new" id="create_menu_option_artist"> <img src="/shared/images/fill-70x70/courses/logo_artist.png"> <div class="project_link" id="create_dropdown_artist"> <div class="text">Artist </div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects/applab/new" id="create_menu_option_applab"> <img src="/shared/images/fill-70x70/courses/logo_applab_square.png"> <div class="project_link" id="create_dropdown_applab"> <div class="text">App Lab </div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects/gamelab/new" id="create_menu_option_gamelab"> <img src="/shared/images/fill-70x70/courses/logo_gamelab_square.png"> <div class="project_link" id="create_dropdown_gamelab"> <div class="text">Game Lab</div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects/dance/new" id="create_menu_option_dance"> <img src="/shared/images/fill-70x70/courses/logo_dance.png"> <div class="project_link" id="create_dropdown_dance"> <div class="text">Dance Party</div> </div> </a> <a class="project_link_box" href="//code.org/music" id="create_menu_option_music"> <img src="/shared/images/fill-70x70/courses/logo_music.png"> <div class="project_link" id="create_dropdown_music"> <div class="text">Music Lab</div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects" id="create_menu_option_view_all"> <div class="project_link" id="view_all_projects"> View all projects... </div> </a> </div> </div> <a class="linktag button-signin desktop" href="//studio.code.org/users/sign_in" id="signin_button"> <div class="header_button header_user" id="header_user_signin"> <span>Sign in</span> </div> </a> <a class="linktag button-create-account desktop" href="//studio.code.org/users/new_sign_up/account_type" id="create_account_button"> <div class="header_button header_user" id="header_user_create_account"> <span>Create account</span> <div class="signin_callout_wrapper"></div> </div> </a> <script> window.cookieEnvSuffix = ''; // Use function closure to avoid cluttering global namespace. (function() { // Ideally would use environment_specific_cookie_name, but that's not currently // available to us in pegasus var cookieKey = '_shortName' + window.cookieEnvSuffix; // Share cookie with top-level domain. var topLevelDomain = document.location.hostname.split('.').slice(-2).join('.'); // Provide current_user.short_name to cached pages via session cookie. // There is apps code that also depends on this query-selector, so if changes are made // here we should be sure to also update other locations. var displayNameSpan = document.querySelector('#header_display_name'); function retrieveUserShortName(element) { if (element) { var cookieMeta = "path=/;domain=" + topLevelDomain; var cookieMatch = document.cookie.match('(^|;) ?' + cookieKey + '=([^;]*)(;|$)'); var storedName = cookieMatch && cookieMatch[2]; var dataName = element.dataset.shortname; var id = element.dataset.id; if (storedName && !id) { // Use textContent to prevent HTML injection vulnerability element.textContent = element.textContent.replace(dataName, decodeURI(storedName)); } } } retrieveUserShortName(displayNameSpan); function hideUserOptions() { $('.user_options').slideUp(); $('.user_menu_arrow_down').show(); $('.user_menu_arrow_up').hide(); $(document).off('click', hideUserOptions); } $(document).ready(function() { $('.user_menu').on('keypress click', function (e) { if ((e.type === 'keypress' && e.which === 13) || e.type === 'click') { if ($('.user_options').is(':hidden')) { e.stopPropagation(); $('.user_options').slideDown(); $('.user_menu_arrow_down').hide(); $('.user_menu_arrow_up').show(); $(document).on('keypress click', hideUserOptions); hideCreateOptions() $("#hamburger-icon").removeClass('active'); $("#help-icon").removeClass('active'); $('#hamburger #hamburger-contents').slideUp(); $('#help-button #help-contents').slideUp(); } } }); $('.user_options').click(function (e) { e.stopPropagation(); // Clicks inside the popup shouldn't close it }); $('.user_options a:last').click(function (e) { // this partial can be on non-dashboard pages. if (typeof dashboard !== 'undefined') { dashboard.clientState.reset(); } else { // Keep in sync with clientState#reset. try { sessionStorage.clear(); } catch (e) {} } }); }); function hideCreateOptions() { $('.create_options').slideUp(); $('.create_menu_arrow_down').show(); $('.create_menu_arrow_up').hide(); $(document).off('click', hideCreateOptions); } $(document).ready(function() { $('.create_menu').on('keypress click', function (e) { if ((e.type === 'keypress' && e.which === 13) || e.type === 'click') { if ($('.create_options').is(':hidden')) { e.stopPropagation(); $('.create_options').slideDown(); $('.create_menu_arrow_down').hide(); $('.create_menu_arrow_up').show(); $(document).on('keypress click', hideCreateOptions); hideUserOptions() $("#hamburger-icon").removeClass('active'); $("#help-icon").removeClass('active'); $('#hamburger #hamburger-contents').slideUp(); $('#help-button #help-contents').slideUp(); } } }); $('.create_options').click(function (e) { e.stopPropagation(); // Clicks inside the popup shouldn't close it }); }); if (typeof dashboard !== 'undefined') { dashboard.pairing.init('//studio.code.org/pairing', hideUserOptions, false); } })(); </script> <div aria-label="Help Menu" class="help_button show-small-desktop" id="help-button" tabindex="0"> <div class="help_contents" dir="ltr" id="help-contents" style="display: none"> <a class="linktag" href="https://support.code.org" id="support" rel="noopener noreferrer nofollow" target="_blank">Help and support </a> <a class="linktag" href="https://support.code.org/hc/en-us/requests/new" id="report-bug" rel="noopener noreferrer nofollow" target="_blank">Report a problem</a> </div> <i class="help_icon clicktag fa fa-question-circle hide-mobile" id="help-icon"> <span style="pointer-events: none"></span> </i> </div> <div aria-label="Menu" class="show-small-desktop" id="hamburger" tabindex="0"> <div class="hide-responsive-menu" id="hamburger-contents"> <div id="hamburger-sign-up-buttons"> <div class="button-wrapper"> <a class="linktag button-signin" href="//studio.code.org/users/sign_in" id="signin_button"> <div class="header_button header_user" id="header_user_signin"> <span>Sign in</span> <div class="signin_callout_wrapper"></div> </div> </a> <a class="linktag button-create-account" href="//studio.code.org/users/new_sign_up/account_type" id="create_account_button"> <div class="header_button header_user" id="header_user_create_account"> <span>Create account</span> </div> </a> </div> <div class="divider"></div> </div> <div class="show-mobile"> <div class="item"> <a class="hamburgerlink" href="//code.org/students" id="learn" target="_self">Learn</a> </div> </div> <div class="hamburger-expandable-item item show-mobile" id="educate_entries" tabindex="0"> <div class="text">Teach</div> <i class="arrow-down fa fa-caret-down"></i> <i class="arrow-up fa fa-caret-up"></i> </div> <div class="hamburger-expandable-items" id="educate_entries-items"> <div class="item"> <a class="hamburgerlink" href="//code.org/teach" id="educate-overview">Educator Overview</a> </div> <div class="item"> <a class="hamburgerlink" href="//studio.code.org/catalog" id="educate_courses">Course Catalog</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/curriculum/elementary-school">Elementary School</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/curriculum/middle-school">Middle School</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/curriculum/high-school">High School</a> </div> <div class="item"> <a class="hamburgerlink" href="https://hourofcode.com">Hour of Code</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/curriculum/3rd-party">Beyond Code.org</a> </div> <div class="item"> <a class="hamburgerlink" href="https://forum.code.org/">Online Community</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/it">Technical Requirements</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/resources/videos">Tools and Videos</a> </div> </div> <div class="show-mobile"> <div class="item"> <a class="hamburgerlink" href="//code.org/administrators" id="districts" target="_self">Districts</a> </div> </div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="//code.org/promote" id="stats" target="_self">Stats</a> </div> </div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="//code.org/help" id="help-us" target="_self">Help Us</a> </div> </div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="//studio.code.org/incubator" id="incubator" target="_self">Incubator</a> </div> </div> <div class="hamburger-expandable-item item show-small-desktop" id="about_entries" tabindex="0"> <div class="text">About</div> <i class="arrow-down fa fa-caret-down"></i> <i class="arrow-up fa fa-caret-up"></i> </div> <div class="hamburger-expandable-items" id="about_entries-items"> <div class="item"> <a class="hamburgerlink" href="//code.org/about" id="about-us">About Us</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/leadership">Leadership</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/donors">Donors</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/partners">Partners</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/team">Full Team</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/news">Newsroom</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/jobs">Careers</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/contact">Contact Us</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/faq">FAQs</a> </div> </div> <div class="hamburger-expandable-item item" id="legal_entries" tabindex="0"> <div class="text">Privacy & Legal</div> <i class="arrow-down fa fa-caret-down"></i> <i class="arrow-up fa fa-caret-up"></i> </div> <div class="hamburger-expandable-items" id="legal_entries-items"> <div class="item"> <a class="hamburgerlink" href="//code.org/privacy">Privacy Policy</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/cookies">Cookie Notice</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/tos">Terms of Service</a> </div> </div> <div class="divider show-small-desktop" id="before-help"></div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="https://support.code.org" id="support" rel="noopener noreferrer nofollow" target="_blank">Help and support </a> </div> </div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="https://support.code.org/hc/en-us/requests/new" id="report-bug" rel="noopener noreferrer nofollow" target="_blank">Report a problem</a> </div> </div> </div> <div class="clicktag show-small-desktop" id="hamburger-icon"> <span style="pointer-events: none"></span> </div> </div> </div> </nav> <div class="container_responsive_full_width"> <main> <section> <div class="wrapper centered" style="max-width: 500px;"> <img src="/shared/images/sad-bee-avatar.png"> <h1>404: Page Not Found</h1> <p class="body-two">The page you are looking for doesn't exist at this address. Check the web address and resubmit. Or, go back to our homepage.</p> <a class="link-button" href="/"> Return home </a> </div> </section> </main> <div id="clearboth" style="clear:both"></div> <div class="desktop-feature"> <br> <br> <br> </div> </div> <div class="push"></div> </div> <div class="desktop-feature"> <footer id="pagefooter"> <div class="content"> <div class="left" style="float:left; max-width: 80%;"> <a class="whitefooterlink" href="//code.org/privacy" key="privacy_policy" style="color: #ffa400;"> Privacy Policy </a> <div class="dim"> | </div> <a class="whitefooterlink" href="//code.org/cookies" key="cookie_notice"> Cookie Notice </a> <div class="dim"> | </div> <a class="whitefooterlink" href="//code.org/about" key="about"> About </a> <div class="dim"> | </div> <a class="whitefooterlink" href="//code.org/partners" key="partners"> Partners </a> <div class="dim"> | </div> <a class="whitefooterlink" href="https://medium.com/@codeorg" key="blog" rel="noopener noreferrer nofollow" target="_blank"> Blog </a> <div class="dim"> | </div> <a class="whitefooterlink" href="//code.org/donate" key="donate"> Donate </a> <div class="dim"> | </div> <a class="whitefooterlink" href="shop" key="store"> Store </a> <div class="dim"> | </div> <a class="whitefooterlink" href="http://support.code.org/" key="support" rel="noopener noreferrer nofollow" target="_blank"> Support </a> <div class="dim"> | </div> <a class="whitefooterlink" href="//code.org/tos" key="terms"> Terms </a> <small class="dim"> "© Code.org, 2025. Code.org®, the CODE logo, Hour of Code® and CS Discoveries® are trademarks of Code.org." <br> Built on GitHub from Microsoft </small> <div class="powered-by-aws"> <a href="https://aws.amazon.com/what-is-cloud-computing"> <img alt="Powered by AWS Cloud Computing" src="/shared/images/Powered-By_logo-horiz_RGB_REV.png" style="width: 190px"> </a> </div> </div> <div class="right" style="float:right"> <div class="language-dropdown"> <form accept-charset="UTF-8" action="/code.org/about" method="post"> <select class="default" name="set_locale" onchange="this.form.submit();" style="color: black; width: 100%; max-width: 162.5px;"> <option value="ar-SA">العربية</option> <option value="az-AZ">Azərbaycan dili</option> <option value="bg-BG">български</option> <option value="bs-BA">Bosanski</option> <option value="ca-ES">Català</option> <option value="cs-CZ">Čeština</option> <option value="da-DK">Dansk</option> <option value="de-DE">Deutsch</option> <option value="dv-MV">ދިވެހި</option> <option value="el-GR">Ελληνικά</option> <option selected value="en-US">English</option> <option value="es-ES">Español (España)</option> <option value="es-MX">Español (LATAM)</option> <option value="et-EE">Eesti</option> <option value="eu-ES">Euskara</option> <option value="fa-IR">فارسی</option> <option value="fi-FI">Suomi</option> <option value="fil-PH">Filipino</option> <option value="fr-FR">Français</option> <option value="ga-IE">Gaeilge</option> <option value="gl-ES">Galego</option> <option value="he-IL">עברית</option> <option value="hi-IN">हिन्दी</option> <option value="hr-HR">Hrvatski</option> <option value="hu-HU">Magyar</option> <option value="hy-AM">Հայերեն</option> <option value="id-ID">Bahasa Indonesia</option> <option value="is-IS">Íslenska</option> <option value="it-IT">Italiano</option> <option value="ja-JP">日本語</option> <option value="ka-GE">ქართული</option> <option value="kk-KZ">Қазақша</option> <option value="km-KH">ភាសាខ្មែរ</option> <option value="kn-IN">ಕನ್ನಡ</option> <option value="ko-KR">한국어</option> <option value="ky-KG">Кыргызча</option> <option value="lt-LT">Lietuvių</option> <option value="lv-LV">Latviešu</option> <option value="mi-NZ">Māori (NZ)</option> <option value="mn-MN">Монгол хэл</option> <option value="mr-IN">मराठी</option> <option value="ms-MY">بهاس ملايو</option> <option value="my-MM">ဗမာစာ</option> <option value="nl-NL">Nederlands</option> <option value="nn-NO">Norsk (Nynorsk)</option> <option value="no-NO">Norsk (Bokmål)</option> <option value="pl-PL">Polski</option> <option value="pt-BR">Português (Brasil)</option> <option value="pt-PT">Português (Portugal)</option> <option value="ro-RO">Română</option> <option value="ru-RU">Pусский</option> <option value="se-FI">Davvisámegiella</option> <option value="si-LK">සිංහල</option> <option value="sk-SK">Slovenčina</option> <option value="sl-SI">Slovenščina</option> <option value="sm-WS">Sāmoa</option> <option value="sq-AL">Shqip</option> <option value="sr-SP">Cрпски</option> <option value="sv-SE">Svenska</option> <option value="ta-IN">தமிழ்</option> <option value="te-IN">తెలుగు</option> <option value="th-TH">ภาษาไทย</option> <option value="tr-TR">Türkçe</option> <option value="uk-UA">Українська</option> <option value="ur-PK">اردو</option> <option value="uz-UZ">Oʻzbekcha</option> <option value="vi-VN">Tiếng Việt</option> <option value="zh-CN">简体字</option> <option value="zh-TW">繁體字</option> </select> </form> </div> <div class="social-media" style="margin-top: 10px; margin-left: 10px;"> <small> <a aria-label="Code.org on Facebook" class="whitefooterlink" href="https://www.facebook.com/Code.org/" style="text-decoration: none;" target="_blank"> <i class="fa fa-facebook fa-lg"></i> </a> <a aria-label="Code.org on Twitter" class="whitefooterlink" href="https://twitter.com/codeorg" style="text-decoration: none;" target="_blank"> <i class="fa fa-twitter fa-lg"></i> </a> <a aria-label="Code.org on Instagram" class="whitefooterlink" href="https://www.instagram.com/codeorg/" style="text-decoration: none;" target="_blank"> <i class="fa fa-instagram fa-lg"></i> </a> <a aria-label="Code.org on Medium.com" class="whitefooterlink" href="https://medium.com/@codeorg" style="text-decoration: none;" target="_blank"> <img alt="" src="/images/icons/medium-monogram-white.png" style="width: 20px"> </a> </small> </div> </div> </div> </footer> </div> <div class="mobile-headers mobile-feature"> <style> #footer-links{float:right;color:white;font-size:12px;z-index:2}#footer-links ul{list-style:none;margin:0;padding:0}#footer-links ul li{display:inline;text-indent:0;padding:0}#footer-links ul li:before{content:none}#footer-links ul li:after{content:"|";margin:0 12px;opacity:0.5}#footer-links ul li:last-child:after{content:none}#footer-links a{color:white;font-weight:normal;font-family:var(--main-font);text-decoration:none}#footer-links a:hover{opacity:1.0}#footer-toggle{display:none;text-align:center;border-bottom:1px solid #aaa2bd;padding:8px 16px;margin:0 24px;cursor:pointer;margin-bottom:10px}#copyright,#copyright-non-en{float:left;color:white;font-size:12px;opacity:0.8}.social-media a{text-decoration:none;color:white}#non-en{height:90px;background-color:var(--brand_secondary_default)}#non-en .language-dropdown select{margin-top:20px;margin-left:25px}#copyright-non-en{margin-left:25px;padding-top:5px}@media screen and (max-width: 970px){#pagefooter{overflow:visible;padding:0;height:240px}.language-dropdown{padding-bottom:10px;padding-right:10px}.social-language-box{text-align:center}.social-media,.social-language-box .language-dropdown{text-align:center;display:inline;width:40%;padding-bottom:3px;margin-top:10px}.powered-by-aws{float:none;width:100%;text-align:center}#footer-links{float:none;margin-bottom:20px;padding-top:20px;text-align:center}#copyright{float:none;text-align:center;padding-top:10px;padding-bottom:10px}}@media screen and (min-width: 0px) and (max-width: 600px){#pagefooter{overflow:visible;padding:0;height:280px}#footer-links{position:relative;margin:0;padding-top:0px}#footer-links ul{display:none;position:absolute;bottom:38px;width:100%;background-color:#5c3f7f}#footer-links ul li{display:block;text-align:center;margin:0 24px;padding:8px 16px;border-bottom:1px solid #aaa2bd}#footer-links ul li:after{content:none}#footer-links ul li a{display:block;width:100%}#footer-toggle{display:block}#copyright{padding-left:10px;padding-right:10px}#privacy a{color:#ffa400;opacity:1;font-family:var(--main-font);font-weight:var(--semi-bold-font-weight)}#privacy a:hover{opacity:0.5}#down{display:none}.social-media,.language-dropdown{width:100%;display:block;padding-right:0px}.powered-by-aws{width:100%;text-align:center}} </style> <script defer src="/js/mobile-footer.js"></script> <footer id="pagefooter"> <div id="footer-links"> <ul> <li id="privacy"> <a href="/privacy" style="color: #ffa400;"> Privacy Policy </a> </li> <li> <a href="/cookies"> Cookie Notice </a> </li> <li> <a href="/about"> About </a> </li> <li> <a href="/partners"> Partners </a> </li> <li> <a href="https://medium.com/@codeorg" target="_blank"> Blog </a> </li> <li> <a href="/donate"> Donate </a> </li> <li> <a href="/shop"> Store </a> </li> <li> <a href="https://support.code.org/" id="support" target="_blank"> Support </a> </li> <li> <a href="/tos"> Terms </a> </li> </ul> <div id="footer-toggle"> Code.org <i class="fa fa-chevron-up" id="up"></i> <i class="fa fa-chevron-down" id="down"></i> </div> </div> <div class="social-language-box"> <div class="language-dropdown"> <form accept-charset="UTF-8" action="/code.org/about" method="post"> <select class="default" name="set_locale" onchange="this.form.submit();" style="color: black; width: 100%; max-width: 162.5px;"> <option value="ar-SA">العربية</option> <option value="az-AZ">Azərbaycan dili</option> <option value="bg-BG">български</option> <option value="bs-BA">Bosanski</option> <option value="ca-ES">Català</option> <option value="cs-CZ">Čeština</option> <option value="da-DK">Dansk</option> <option value="de-DE">Deutsch</option> <option value="dv-MV">ދިވެހި</option> <option value="el-GR">Ελληνικά</option> <option selected value="en-US">English</option> <option value="es-ES">Español (España)</option> <option value="es-MX">Español (LATAM)</option> <option value="et-EE">Eesti</option> <option value="eu-ES">Euskara</option> <option value="fa-IR">فارسی</option> <option value="fi-FI">Suomi</option> <option value="fil-PH">Filipino</option> <option value="fr-FR">Français</option> <option value="ga-IE">Gaeilge</option> <option value="gl-ES">Galego</option> <option value="he-IL">עברית</option> <option value="hi-IN">हिन्दी</option> <option value="hr-HR">Hrvatski</option> <option value="hu-HU">Magyar</option> <option value="hy-AM">Հայերեն</option> <option value="id-ID">Bahasa Indonesia</option> <option value="is-IS">Íslenska</option> <option value="it-IT">Italiano</option> <option value="ja-JP">日本語</option> <option value="ka-GE">ქართული</option> <option value="kk-KZ">Қазақша</option> <option value="km-KH">ភាសាខ្មែរ</option> <option value="kn-IN">ಕನ್ನಡ</option> <option value="ko-KR">한국어</option> <option value="ky-KG">Кыргызча</option> <option value="lt-LT">Lietuvių</option> <option value="lv-LV">Latviešu</option> <option value="mi-NZ">Māori (NZ)</option> <option value="mn-MN">Монгол хэл</option> <option value="mr-IN">मराठी</option> <option value="ms-MY">بهاس ملايو</option> <option value="my-MM">ဗမာစာ</option> <option value="nl-NL">Nederlands</option> <option value="nn-NO">Norsk (Nynorsk)</option> <option value="no-NO">Norsk (Bokmål)</option> <option value="pl-PL">Polski</option> <option value="pt-BR">Português (Brasil)</option> <option value="pt-PT">Português (Portugal)</option> <option value="ro-RO">Română</option> <option value="ru-RU">Pусский</option> <option value="se-FI">Davvisámegiella</option> <option value="si-LK">සිංහල</option> <option value="sk-SK">Slovenčina</option> <option value="sl-SI">Slovenščina</option> <option value="sm-WS">Sāmoa</option> <option value="sq-AL">Shqip</option> <option value="sr-SP">Cрпски</option> <option value="sv-SE">Svenska</option> <option value="ta-IN">தமிழ்</option> <option value="te-IN">తెలుగు</option> <option value="th-TH">ภาษาไทย</option> <option value="tr-TR">Türkçe</option> <option value="uk-UA">Українська</option> <option value="ur-PK">اردو</option> <option value="uz-UZ">Oʻzbekcha</option> <option value="vi-VN">Tiếng Việt</option> <option value="zh-CN">简体字</option> <option value="zh-TW">繁體字</option> </select> </form> </div> <div class="social-media"> <a aria-label="Code.org on Facebook" class="social-icon" href="https://www.facebook.com/Code.org" target="_blank"> <i class="fa fa-facebook fa-lg"></i> </a> <a aria-label="Code.org on Twitter" class="social-icon" href="https://twitter.com/codeorg" target="_blank"> <i class="fa fa-twitter fa-lg"></i> </a> <a aria-label="Code.org on Instagram" class="social-icon" href="https://www.instagram.com/codeorg" target="_blank"> <i class="fa fa-instagram fa-lg"></i> </a> <a aria-label="Code.org on Medium.com" class="social-icon" href="https://medium.com/@codeorg" target="_blank"> <img alt="" src="/images/icons/medium-monogram-white.png" style="width: 20px"> </a> </div> </div> <div id="copyright"> © Code.org, 2025. Code.org®, the CODE logo and Hour of Code® are trademarks of Code.org. <br> Built on GitHub from Microsoft </div> <div class="powered-by-aws"> <a href="https://aws.amazon.com/what-is-cloud-computing"> <img alt="Powered by AWS Cloud Computing" src="/shared/images/Powered-By_logo-horiz_RGB_REV.png" style="width: 190px"> </a> </div> </footer> </div> <script defer src="/js/bootstrap.min.js" type="text/javascript"></script> <div class="modal fade" id="selectLanguage"> <div class="modal-dialog" width="500px"> <div class="modal-content"> <div class="modal-header"> <button class="close" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> <span class="sr-only">Close</span> </button> <img class="lazyload" data-src="/images/fit-320/avatars/flag_sphere.png" style="width: 256px; height: 256px;"> </div> <div class="modal-body"> <h4 class="modal-title">Please select your language</h4> <form accept-charset="UTF-8" action="/code.org/about" method="post"> <select class="default" name="set_locale" onchange="this.form.submit();" style="color: black; width: 100%; max-width: 162.5px;"> <option value="ar-SA">العربية</option> <option value="az-AZ">Azərbaycan dili</option> <option value="bg-BG">български</option> <option value="bs-BA">Bosanski</option> <option value="ca-ES">Català</option> <option value="cs-CZ">Čeština</option> <option value="da-DK">Dansk</option> <option value="de-DE">Deutsch</option> <option value="dv-MV">ދިވެހި</option> <option value="el-GR">Ελληνικά</option> <option selected value="en-US">English</option> <option value="es-ES">Español (España)</option> <option value="es-MX">Español (LATAM)</option> <option value="et-EE">Eesti</option> <option value="eu-ES">Euskara</option> <option value="fa-IR">فارسی</option> <option value="fi-FI">Suomi</option> <option value="fil-PH">Filipino</option> <option value="fr-FR">Français</option> <option value="ga-IE">Gaeilge</option> <option value="gl-ES">Galego</option> <option value="he-IL">עברית</option> <option value="hi-IN">हिन्दी</option> <option value="hr-HR">Hrvatski</option> <option value="hu-HU">Magyar</option> <option value="hy-AM">Հայերեն</option> <option value="id-ID">Bahasa Indonesia</option> <option value="is-IS">Íslenska</option> <option value="it-IT">Italiano</option> <option value="ja-JP">日本語</option> <option value="ka-GE">ქართული</option> <option value="kk-KZ">Қазақша</option> <option value="km-KH">ភាសាខ្មែរ</option> <option value="kn-IN">ಕನ್ನಡ</option> <option value="ko-KR">한국어</option> <option value="ky-KG">Кыргызча</option> <option value="lt-LT">Lietuvių</option> <option value="lv-LV">Latviešu</option> <option value="mi-NZ">Māori (NZ)</option> <option value="mn-MN">Монгол хэл</option> <option value="mr-IN">मराठी</option> <option value="ms-MY">بهاس ملايو</option> <option value="my-MM">ဗမာစာ</option> <option value="nl-NL">Nederlands</option> <option value="nn-NO">Norsk (Nynorsk)</option> <option value="no-NO">Norsk (Bokmål)</option> <option value="pl-PL">Polski</option> <option value="pt-BR">Português (Brasil)</option> <option value="pt-PT">Português (Portugal)</option> <option value="ro-RO">Română</option> <option value="ru-RU">Pусский</option> <option value="se-FI">Davvisámegiella</option> <option value="si-LK">සිංහල</option> <option value="sk-SK">Slovenčina</option> <option value="sl-SI">Slovenščina</option> <option value="sm-WS">Sāmoa</option> <option value="sq-AL">Shqip</option> <option value="sr-SP">Cрпски</option> <option value="sv-SE">Svenska</option> <option value="ta-IN">தமிழ்</option> <option value="te-IN">తెలుగు</option> <option value="th-TH">ภาษาไทย</option> <option value="tr-TR">Türkçe</option> <option value="uk-UA">Українська</option> <option value="ur-PK">اردو</option> <option value="uz-UZ">Oʻzbekcha</option> <option value="vi-VN">Tiếng Việt</option> <option value="zh-CN">简体字</option> <option value="zh-TW">繁體字</option> </select> </form> </div> <div class="modal-footer"> <button class="btn btn-primary" data-dismiss="modal" type="button">Submit</button> </div> </div> </div> </div> <style> .modal{ text-align: center; } </style> <script> function setCookie(key, value, days) { var expires = new Date(); expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString(); } function getCookie(key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; } $( document ).ready(function() { already_shown = !!getCookie('_loc_notice'); if(!already_shown) { $.getJSON( "/v2/client-location", function( data ) { country_code = data['country_code']; if(country_code != 'US') { $('#selectLanguage').modal('show') } }); setCookie('_loc_notice', '1', 365) } }); </script> <script src="/js/font_awesome_icon_class.js"></script> </body> </html>