CINXE.COM

Shop the Latest OLED Gaming Monitors | Samsung US

<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <link rel="icon" type="image/x-icon" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-common/resources/images/favicon.png"/> <link rel="shortcut icon" type="image/x-icon" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-common/resources/images/favicon.png"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-common/resources/images/favicon.png"/> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-common/resources/images/favicon.png"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/> <meta name="google-site-verification" content="tRRiAg-v-kU_FV5tU0IUtvibspXaAG4RcLu-oClDRVI"/> <link rel="preconnect" href="//image-us.samsung.com"/> <title>Shop the Latest OLED Gaming Monitors | Samsung US</title> <meta name="title" content="Shop the Latest OLED Gaming Monitors | Samsung US"/> <meta name="description" content="Browse our range of Samsung OLED Gaming monitors - 4K, Ultrawide, curved, 240 &amp;amp; 360 hz gaming monitors. Compare models by price and specs."/> <meta name="keywords" content="OLED, OLED monitor, OLED gaming monitor, Samsung OLED, 4K OLED gaming monitor, Samsung OLED monitor, OLED computer display, OLED 4K display, 4K OLED monitor, OLED vs LCD display, OLED vs LCD, Best OLED gaming monitor, OLED display, OLED displays, What is OLED display?, Micro OLED display, OLED refresh rates, Odyssey OLED monitor, OLED hz"/> <meta itemprop="name" content="Shop the Latest OLED Gaming Monitors | Samsung US"/> <meta itemprop="description" content="Browse our range of Samsung OLED Gaming monitors - 4K, Ultrawide, curved, 240 &amp;amp; 360 hz gaming monitors. Compare models by price and specs."/> <meta itemprop="image" content="http://image-us.samsung.com/SamsungUS/home/samsung-logo-191-1.jpg"/> <link rel="canonical" href="https://www.samsung.com/us/computing/monitors/oled-monitor/"/> <meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:site" content="@SamsungUS"/> <meta name="twitter:creator" content="@SamsungUS"/> <meta name="twitter:title" content="Shop the Latest OLED Gaming Monitors | Samsung US"/> <meta name="twitter:description" content="Browse our range of Samsung OLED Gaming monitors - 4K, Ultrawide, curved, 240 &amp; 360 hz gaming monitors. Compare models by price and specs."/> <meta name="twitter:image" content="http://image-us.samsung.com/SamsungUS/home/samsung-logo-1-1.jpg"/> <meta name="twitter:image:alt"/> <meta property="og:title" content="Shop the Latest OLED Gaming Monitors | Samsung US"/> <meta property="og:description" content="Browse our range of Samsung OLED Gaming monitors - 4K, Ultrawide, curved, 240 &amp; 360 hz gaming monitors. Compare models by price and specs."/> <meta property="og:image" content="http://image-us.samsung.com/SamsungUS/home/samsung-logo-191-1.jpg"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://internal-disp-consumer-prod-alb-internal-771446458.us-east-1.elb.amazonaws.com/us/computing/monitors/oled-monitor"/> <meta property="og:site_name" content="Samsung Electronics America"/> <link rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/components/content/common/nv-g-gnb-new/clientlibs/us/site.min.8f83fa3eb91419e8d0aa5cb114839ca4.css" type="text/css"> <link rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/global_clientlib.min.0cf194c0ffd7817c92231c9fb4a542e2.css" type="text/css"> <link rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-common/jquery-rateyo.min.c99a73458b5e37a810ecec922c5e9327.css" type="text/css"> <link rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/consumer/clientlib-template/pf/compact.min.f9489b6426431de9d78a3e1f85a5824e.css" type="text/css"> <script src="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-base/clientlibs_root.min.d12c086361cb6d87429a13c9569a3b2f.js"></script> <!-- <sly data-sly-call="org.apache.sling.scripting.sightly.libs.granite.sightly.templates.clientlib__002e__html$2@4c537abb"></sly> --> <style> .blurload { background-color: #f6f6f6; background-size: cover; background-repeat: no-repeat; position: relative; overflow: hidden; } .blurload img { /*position: absolute; opacity: 0; top: 0; left: 0;*/ width: 100%; transition: opacity 0.1s linear; } .blurload img.loaded { opacity: 1; } </style> <link defer rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/components/content/shop/breadcrumb/clientlibs/us/site.min.2c543d6b1ce97a6b30d02a59f1178c6d.css" type="text/css"/> <link defer rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/components/content/shop/title/clientlibs/us/site.min.e45235c8031835e2db88ec1ddf8907cd.css" type="text/css"/> <link defer rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/components/content/shop/header/clientlibs/us/site.min.b5d078c804c3f114357fc78e786e984a.css" type="text/css"/> <link defer rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/components/content/search/product-filter-and-grid/clientlibs/us/site.min.d41d8cd98f00b204e9800998ecf8427e.css" type="text/css"/> <link defer rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/components/content/shop/recently-viewed/clientlibs/us/site.min.781c75a775ac86f57114e1b30df66cbc.css" type="text/css"/> <link defer rel="stylesheet" href="/us/smg/etc.clientlibs/samsung/components/content/common/disclaimer/clientlibs/us/site.min.0500615c25fa7f5f27a189e19f7ff187.css" type="text/css"/> <script type="text/javascript"> AEMapp = window.AEMapp || {}; AEMapp.runmode =''; AEMapp.addDomain = ''; if (AEMapp.runmode.indexOf('publish') > -1){ AEMapp.addDomain = '/us/smg'; } </script> <!-- rum.js --> <script type="text/javascript"> ;window.NREUM||(NREUM={});NREUM.init={privacy:{cookies_enabled:true}}; window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return r(o||e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(t,e,n){function r(t){try{c.console&&console.log(t)}catch(e){}}var o,i=t("ee"),a=t(28),c={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(c.console=!0,o.indexOf("dev")!==-1&&(c.dev=!0),o.indexOf("nr_dev")!==-1&&(c.nrDev=!0))}catch(s){}c.nrDev&&i.on("internal-error",function(t){r(t.stack)}),c.dev&&i.on("fn-err",function(t,e,n){r(n.stack)}),c.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(c,function(t,e){return t}).join(", ")))},{}],2:[function(t,e,n){function r(t,e,n,r,c){try{l?l-=1:o(c||new UncaughtException(t,e,n),!0)}catch(u){try{i("ierr",[u,s.now(),!0])}catch(d){}}return"function"==typeof f&&f.apply(this,a(arguments))}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional information",this.sourceURL=e,this.line=n}function o(t,e){var n=e?null:s.now();i("err",[t,n])}var i=t("handle"),a=t(29),c=t("ee"),s=t("loader"),u=t("gos"),f=window.onerror,d=!1,p="nr@seenError",l=0;s.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(h){"stack"in h&&(t(13),t(12),"addEventListener"in window&&t(6),s.xhrWrappable&&t(14),d=!0)}c.on("fn-start",function(t,e,n){d&&(l+=1)}),c.on("fn-err",function(t,e,n){d&&!n[p]&&(u(n,p,function(){return!0}),this.thrown=!0,o(n))}),c.on("fn-end",function(){d&&!this.thrown&&l>0&&(l-=1)}),c.on("internal-error",function(t){i("ierr",[t,s.now(),!0])})},{}],3:[function(t,e,n){t("loader").features.ins=!0},{}],4:[function(t,e,n){function r(){L++,T=g.hash,this[f]=y.now()}function o(){L--,g.hash!==T&&i(0,!0);var t=y.now();this[h]=~~this[h]+t-this[f],this[d]=t}function i(t,e){E.emit("newURL",[""+g,e])}function a(t,e){t.on(e,function(){this[e]=y.now()})}var c="-start",s="-end",u="-body",f="fn"+c,d="fn"+s,p="cb"+c,l="cb"+s,h="jsTime",m="fetch",v="addEventListener",w=window,g=w.location,y=t("loader");if(w[v]&&y.xhrWrappable){var x=t(10),b=t(11),E=t(8),R=t(6),O=t(13),N=t(7),P=t(14),M=t(9),S=t("ee"),C=S.get("tracer");t(16),y.features.spa=!0;var T,L=0;S.on(f,r),b.on(p,r),M.on(p,r),S.on(d,o),b.on(l,o),M.on(l,o),S.buffer([f,d,"xhr-done","xhr-resolved"]),R.buffer([f]),O.buffer(["setTimeout"+s,"clearTimeout"+c,f]),P.buffer([f,"new-xhr","send-xhr"+c]),N.buffer([m+c,m+"-done",m+u+c,m+u+s]),E.buffer(["newURL"]),x.buffer([f]),b.buffer(["propagate",p,l,"executor-err","resolve"+c]),C.buffer([f,"no-"+f]),M.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"]),a(P,"send-xhr"+c),a(S,"xhr-resolved"),a(S,"xhr-done"),a(N,m+c),a(N,m+"-done"),a(M,"new-jsonp"),a(M,"jsonp-end"),a(M,"cb-start"),E.on("pushState-end",i),E.on("replaceState-end",i),w[v]("hashchange",i,!0),w[v]("load",i,!0),w[v]("popstate",function(){i(0,L>1)},!0)}},{}],5:[function(t,e,n){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(13),c=t(12),s="learResourceTimings",u="addEventListener",f="resourcetimingbufferfull",d="bstResource",p="resource",l="-start",h="-end",m="fn"+l,v="fn"+h,w="bstTimer",g="pushState",y=t("loader");y.features.stn=!0,t(8),"addEventListener"in window&&t(6);var x=NREUM.o.EV;o.on(m,function(t,e){var n=t[0];n instanceof x&&(this.bstStart=y.now())}),o.on(v,function(t,e){var n=t[0];n instanceof x&&i("bst",[n,e,this.bstStart,y.now()])}),a.on(m,function(t,e,n){this.bstStart=y.now(),this.bstType=n}),a.on(v,function(t,e){i(w,[e,this.bstStart,y.now(),this.bstType])}),c.on(m,function(){this.bstStart=y.now()}),c.on(v,function(t,e){i(w,[e,this.bstStart,y.now(),"requestAnimationFrame"])}),o.on(g+l,function(t){this.time=y.now(),this.startPath=location.pathname+location.hash}),o.on(g+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),u in window.performance&&(window.performance["c"+s]?window.performance[u](f,function(t){i(d,[window.performance.getEntriesByType(p)]),window.performance["c"+s]()},!1):window.performance[u]("webkit"+f,function(t){i(d,[window.performance.getEntriesByType(p)]),window.performance["webkitC"+s]()},!1)),document[u]("scroll",r,{passive:!0}),document[u]("keypress",r,!1),document[u]("click",r,!1)}},{}],6:[function(t,e,n){function r(t){for(var e=t;e&&!e.hasOwnProperty(f);)e=Object.getPrototypeOf(e);e&&o(e)}function o(t){c.inPlace(t,[f,d],"-",i)}function i(t,e){return t[1]}var a=t("ee").get("events"),c=t("wrap-function")(a,!0),s=t("gos"),u=XMLHttpRequest,f="addEventListener",d="removeEventListener";e.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(u.prototype)):u.prototype.hasOwnProperty(f)&&(o(window),o(u.prototype)),a.on(f+"-start",function(t,e){var n=t[1],r=s(n,"nr@wrapped",function(){function t(){if("function"==typeof n.handleEvent)return n.handleEvent.apply(n,arguments)}var e={object:t,"function":n}[typeof n];return e?c(e,"fn-",null,e.name||"anonymous"):n});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],7:[function(t,e,n){function r(t,e,n){var r=t[e];"function"==typeof r&&(t[e]=function(){var t=i(arguments),e={};o.emit(n+"before-start",[t],e);var a;e[m]&&e[m].dt&&(a=e[m].dt);var c=r.apply(this,t);return o.emit(n+"start",[t,a],c),c.then(function(t){return o.emit(n+"end",[null,t],c),t},function(t){throw o.emit(n+"end",[t],c),t})})}var o=t("ee").get("fetch"),i=t(29),a=t(28);e.exports=o;var c=window,s="fetch-",u=s+"body-",f=["arrayBuffer","blob","json","text","formData"],d=c.Request,p=c.Response,l=c.fetch,h="prototype",m="nr@context";d&&p&&l&&(a(f,function(t,e){r(d[h],e,u),r(p[h],e,u)}),r(c,"fetch",s),o.on(s+"end",function(t,e){var n=this;if(e){var r=e.headers.get("content-length");null!==r&&(n.rxSize=r),o.emit(s+"done",[null,e],n)}else o.emit(s+"done",[t],n)}))},{}],8:[function(t,e,n){var r=t("ee").get("history"),o=t("wrap-function")(r);e.exports=r;var i=window.history&&window.history.constructor&&window.history.constructor.prototype,a=window.history;i&&i.pushState&&i.replaceState&&(a=i),o.inPlace(a,["pushState","replaceState"],"-")},{}],9:[function(t,e,n){function r(t){function e(){s.emit("jsonp-end",[],p),t.removeEventListener("load",e,!1),t.removeEventListener("error",n,!1)}function n(){s.emit("jsonp-error",[],p),s.emit("jsonp-end",[],p),t.removeEventListener("load",e,!1),t.removeEventListener("error",n,!1)}var r=t&&"string"==typeof t.nodeName&&"script"===t.nodeName.toLowerCase();if(r){var o="function"==typeof t.addEventListener;if(o){var a=i(t.src);if(a){var f=c(a),d="function"==typeof f.parent[f.key];if(d){var p={};u.inPlace(f.parent,[f.key],"cb-",p),t.addEventListener("load",e,!1),t.addEventListener("error",n,!1),s.emit("new-jsonp",[t.src],p)}}}}}function o(){return"addEventListener"in window}function i(t){var e=t.match(f);return e?e[1]:null}function a(t,e){var n=t.match(p),r=n[1],o=n[3];return o?a(o,e[r]):e[r]}function c(t){var e=t.match(d);return e&&e.length>=3?{key:e[2],parent:a(e[1],window)}:{key:t,parent:window}}var s=t("ee").get("jsonp"),u=t("wrap-function")(s);if(e.exports=s,o()){var f=/[?&](?:callback|cb)=([^&#]+)/,d=/(.*)\.([^.]+)/,p=/^(\w+)(\.|$)(.*)$/,l=["appendChild","insertBefore","replaceChild"];Node&&Node.prototype&&Node.prototype.appendChild?u.inPlace(Node.prototype,l,"dom-"):(u.inPlace(HTMLElement.prototype,l,"dom-"),u.inPlace(HTMLHeadElement.prototype,l,"dom-"),u.inPlace(HTMLBodyElement.prototype,l,"dom-")),s.on("dom-start",function(t){r(t[0])})}},{}],10:[function(t,e,n){var r=t("ee").get("mutation"),o=t("wrap-function")(r),i=NREUM.o.MO;e.exports=r,i&&(window.MutationObserver=function(t){return this instanceof i?new i(o(t,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype)},{}],11:[function(t,e,n){function r(t){var e=i.context(),n=c(t,"executor-",e,null,!1),r=new u(n);return i.context(r).getCtx=function(){return e},r}var o=t("wrap-function"),i=t("ee").get("promise"),a=t("ee").getOrSetContext,c=o(i),s=t(28),u=NREUM.o.PR;e.exports=i,u&&(window.Promise=r,["all","race"].forEach(function(t){var e=u[t];u[t]=function(n){function r(t){return function(){i.emit("propagate",[null,!o],a,!1,!1),o=o||!t}}var o=!1;s(n,function(e,n){Promise.resolve(n).then(r("all"===t),r(!1))});var a=e.apply(u,arguments),c=u.resolve(a);return c}}),["resolve","reject"].forEach(function(t){var e=u[t];u[t]=function(t){var n=e.apply(u,arguments);return t!==n&&i.emit("propagate",[t,!0],n,!1,!1),n}}),u.prototype["catch"]=function(t){return this.then(null,t)},u.prototype=Object.create(u.prototype,{constructor:{value:r}}),s(Object.getOwnPropertyNames(u),function(t,e){try{r[e]=u[e]}catch(n){}}),o.wrapInPlace(u.prototype,"then",function(t){return function(){var e=this,n=o.argsToArray.apply(this,arguments),r=a(e);r.promise=e,n[0]=c(n[0],"cb-",r,null,!1),n[1]=c(n[1],"cb-",r,null,!1);var s=t.apply(this,n);return r.nextPromise=s,i.emit("propagate",[e,!0],s,!1,!1),s}}),i.on("executor-start",function(t){t[0]=c(t[0],"resolve-",this,null,!1),t[1]=c(t[1],"resolve-",this,null,!1)}),i.on("executor-err",function(t,e,n){t[1](n)}),i.on("cb-end",function(t,e,n){i.emit("propagate",[n,!0],this.nextPromise,!1,!1)}),i.on("propagate",function(t,e,n){this.getCtx&&!e||(this.getCtx=function(){if(t instanceof Promise)var e=i.context(t);return e&&e.getCtx?e.getCtx():this})}),r.toString=function(){return""+u})},{}],12:[function(t,e,n){var r=t("ee").get("raf"),o=t("wrap-function")(r),i="equestAnimationFrame";e.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],13:[function(t,e,n){function r(t,e,n){t[0]=a(t[0],"fn-",null,n)}function o(t,e,n){this.method=n,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,n)}var i=t("ee").get("timer"),a=t("wrap-function")(i),c="setTimeout",s="setInterval",u="clearTimeout",f="-start",d="-";e.exports=i,a.inPlace(window,[c,"setImmediate"],c+d),a.inPlace(window,[s],s+d),a.inPlace(window,[u,"clearImmediate"],u+d),i.on(s+f,r),i.on(c+f,o)},{}],14:[function(t,e,n){function r(t,e){d.inPlace(e,["onreadystatechange"],"fn-",c)}function o(){var t=this,e=f.context(t);t.readyState>3&&!e.resolved&&(e.resolved=!0,f.emit("xhr-resolved",[],t)),d.inPlace(t,g,"fn-",c)}function i(t){y.push(t),h&&(b?b.then(a):v?v(a):(E=-E,R.data=E))}function a(){for(var t=0;t<y.length;t++)r([],y[t]);y.length&&(y=[])}function c(t,e){return e}function s(t,e){for(var n in t)e[n]=t[n];return e}t(6);var u=t("ee"),f=u.get("xhr"),d=t("wrap-function")(f),p=NREUM.o,l=p.XHR,h=p.MO,m=p.PR,v=p.SI,w="readystatechange",g=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],y=[];e.exports=f;var x=window.XMLHttpRequest=function(t){var e=new l(t);try{f.emit("new-xhr",[e],e),e.addEventListener(w,o,!1)}catch(n){try{f.emit("internal-error",[n])}catch(r){}}return e};if(s(l,x),x.prototype=l.prototype,d.inPlace(x.prototype,["open","send"],"-xhr-",c),f.on("send-xhr-start",function(t,e){r(t,e),i(e)}),f.on("open-xhr-start",r),h){var b=m&&m.resolve();if(!v&&!m){var E=1,R=document.createTextNode(E);new h(a).observe(R,{characterData:!0})}}else u.on("fn-end",function(t){t[0]&&t[0].type===w||a()})},{}],15:[function(t,e,n){function r(t){if(!c(t))return null;var e=window.NREUM;if(!e.loader_config)return null;var n=(e.loader_config.accountID||"").toString()||null,r=(e.loader_config.agentID||"").toString()||null,u=(e.loader_config.trustKey||"").toString()||null;if(!n||!r)return null;var h=l.generateSpanId(),m=l.generateTraceId(),v=Date.now(),w={spanId:h,traceId:m,timestamp:v};return(t.sameOrigin||s(t)&&p())&&(w.traceContextParentHeader=o(h,m),w.traceContextStateHeader=i(h,v,n,r,u)),(t.sameOrigin&&!f()||!t.sameOrigin&&s(t)&&d())&&(w.newrelicHeader=a(h,m,v,n,r,u)),w}function o(t,e){return"00-"+e+"-"+t+"-01"}function i(t,e,n,r,o){var i=0,a="",c=1,s="",u="";return o+"@nr="+i+"-"+c+"-"+n+"-"+r+"-"+t+"-"+a+"-"+s+"-"+u+"-"+e}function a(t,e,n,r,o,i){var a="btoa"in window&&"function"==typeof window.btoa;if(!a)return null;var c={v:[0,1],d:{ty:"Browser",ac:r,ap:o,id:t,tr:e,ti:n}};return i&&r!==i&&(c.d.tk=i),btoa(JSON.stringify(c))}function c(t){return u()&&s(t)}function s(t){var e=!1,n={};if("init"in NREUM&&"distributed_tracing"in NREUM.init&&(n=NREUM.init.distributed_tracing),t.sameOrigin)e=!0;else if(n.allowed_origins instanceof Array)for(var r=0;r<n.allowed_origins.length;r++){var o=h(n.allowed_origins[r]);if(t.hostname===o.hostname&&t.protocol===o.protocol&&t.port===o.port){e=!0;break}}return e}function u(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.enabled}function f(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.exclude_newrelic_header}function d(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&NREUM.init.distributed_tracing.cors_use_newrelic_header!==!1}function p(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.cors_use_tracecontext_headers}var l=t(25),h=t(17);e.exports={generateTracePayload:r,shouldGenerateTrace:c}},{}],16:[function(t,e,n){function r(t){var e=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<p;r++)t.removeEventListener(d[r],this.listener,!1);e.aborted||(n.duration=a.now()-this.startTime,this.loadCaptureCalled||4!==t.readyState?null==e.status&&(e.status=0):i(this,t),n.cbTime=this.cbTime,f.emit("xhr-done",[t],t),c("xhr",[e,n,this.startTime]))}}function o(t,e){var n=s(e),r=t.params;r.host=n.hostname+":"+n.port,r.pathname=n.pathname,t.parsedOrigin=s(e),t.sameOrigin=t.parsedOrigin.sameOrigin}function i(t,e){t.params.status=e.status;var n=v(e,t.lastSize);if(n&&(t.metrics.rxSize=n),t.sameOrigin){var r=e.getResponseHeader("X-NewRelic-App-Data");r&&(t.params.cat=r.split(", ").pop())}t.loadCaptureCalled=!0}var a=t("loader");if(a.xhrWrappable){var c=t("handle"),s=t(17),u=t(15).generateTracePayload,f=t("ee"),d=["load","error","abort","timeout"],p=d.length,l=t("id"),h=t(21),m=t(20),v=t(18),w=window.XMLHttpRequest;a.features.xhr=!0,t(14),t(7),f.on("new-xhr",function(t){var e=this;e.totalCbs=0,e.called=0,e.cbTime=0,e.end=r,e.ended=!1,e.xhrGuids={},e.lastSize=null,e.loadCaptureCalled=!1,t.addEventListener("load",function(n){i(e,t)},!1),h&&(h>34||h<10)||window.opera||t.addEventListener("progress",function(t){e.lastSize=t.loaded},!1)}),f.on("open-xhr-start",function(t){this.params={method:t[0]},o(this,t[1]),this.metrics={}}),f.on("open-xhr-end",function(t,e){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&e.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid);var n=u(this.parsedOrigin);if(n){var r=!1;n.newrelicHeader&&(e.setRequestHeader("newrelic",n.newrelicHeader),r=!0),n.traceContextParentHeader&&(e.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&e.setRequestHeader("tracestate",n.traceContextStateHeader),r=!0),r&&(this.dt=n)}}),f.on("send-xhr-start",function(t,e){var n=this.metrics,r=t[0],o=this;if(n&&r){var i=m(r);i&&(n.txSize=i)}this.startTime=a.now(),this.listener=function(t){try{"abort"!==t.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof e.onload))&&o.end(e)}catch(n){try{f.emit("internal-error",[n])}catch(r){}}};for(var c=0;c<p;c++)e.addEventListener(d[c],this.listener,!1)}),f.on("xhr-cb-time",function(t,e,n){this.cbTime+=t,e?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof n.onload||this.end(n)}),f.on("xhr-load-added",function(t,e){var n=""+l(t)+!!e;this.xhrGuids&&!this.xhrGuids[n]&&(this.xhrGuids[n]=!0,this.totalCbs+=1)}),f.on("xhr-load-removed",function(t,e){var n=""+l(t)+!!e;this.xhrGuids&&this.xhrGuids[n]&&(delete this.xhrGuids[n],this.totalCbs-=1)}),f.on("addEventListener-end",function(t,e){e instanceof w&&"load"===t[0]&&f.emit("xhr-load-added",[t[1],t[2]],e)}),f.on("removeEventListener-end",function(t,e){e instanceof w&&"load"===t[0]&&f.emit("xhr-load-removed",[t[1],t[2]],e)}),f.on("fn-start",function(t,e,n){e instanceof w&&("onload"===n&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=a.now()))}),f.on("fn-end",function(t,e){this.xhrCbStart&&f.emit("xhr-cb-time",[a.now()-this.xhrCbStart,this.onload,e],e)}),f.on("fetch-before-start",function(t){function e(t,e){var n=!1;return e.newrelicHeader&&(t.set("newrelic",e.newrelicHeader),n=!0),e.traceContextParentHeader&&(t.set("traceparent",e.traceContextParentHeader),e.traceContextStateHeader&&t.set("tracestate",e.traceContextStateHeader),n=!0),n}var n,r=t[1]||{};"string"==typeof t[0]?n=t[0]:t[0]&&t[0].url?n=t[0].url:window.URL&&t[0]&&t[0]instanceof URL&&(n=t[0].href),n&&(this.parsedOrigin=s(n),this.sameOrigin=this.parsedOrigin.sameOrigin);var o=u(this.parsedOrigin);if(o&&(o.newrelicHeader||o.traceContextParentHeader))if("string"==typeof t[0]||window.URL&&t[0]&&t[0]instanceof URL){var i={};for(var a in r)i[a]=r[a];i.headers=new Headers(r.headers||{}),e(i.headers,o)&&(this.dt=o),t.length>1?t[1]=i:t.push(i)}else t[0]&&t[0].headers&&e(t[0].headers,o)&&(this.dt=o)})}},{}],17:[function(t,e,n){var r={};e.exports=function(t){if(t in r)return r[t];var e=document.createElement("a"),n=window.location,o={};e.href=t,o.port=e.port;var i=e.href.split("://");!o.port&&i[1]&&(o.port=i[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===i[0]?"443":"80"),o.hostname=e.hostname||n.hostname,o.pathname=e.pathname,o.protocol=i[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var a=!e.protocol||":"===e.protocol||e.protocol===n.protocol,c=e.hostname===document.domain&&e.port===n.port;return o.sameOrigin=a&&(!e.hostname||c),"/"===o.pathname&&(r[t]=o),o}},{}],18:[function(t,e,n){function r(t,e){var n=t.responseType;return"json"===n&&null!==e?e:"arraybuffer"===n||"blob"===n||"json"===n?o(t.response):"text"===n||""===n||void 0===n?o(t.responseText):void 0}var o=t(20);e.exports=r},{}],19:[function(t,e,n){function r(){}function o(t,e,n){return function(){return i(t,[u.now()].concat(c(arguments)),e?null:this,n),e?void 0:this}}var i=t("handle"),a=t(28),c=t(29),s=t("ee").get("tracer"),u=t("loader"),f=NREUM;"undefined"==typeof window.newrelic&&(newrelic=f);var d=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],p="api-",l=p+"ixn-";a(d,function(t,e){f[e]=o(p+e,!0,"api")}),f.addPageAction=o(p+"addPageAction",!0),f.setCurrentRouteName=o(p+"routeName",!0),e.exports=newrelic,f.interaction=function(){return(new r).get()};var h=r.prototype={createTracer:function(t,e){var n={},r=this,o="function"==typeof e;return i(l+"tracer",[u.now(),t,n],r),function(){if(s.emit((o?"":"no-")+"fn-start",[u.now(),r,o],n),o)try{return e.apply(this,arguments)}catch(t){throw s.emit("fn-err",[arguments,this,t],n),t}finally{s.emit("fn-end",[u.now()],n)}}}};a("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,e){h[e]=o(l+e)}),newrelic.noticeError=function(t,e){"string"==typeof t&&(t=new Error(t)),i("err",[t,u.now(),!1,e])}},{}],20:[function(t,e,n){e.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(e){return}}}},{}],21:[function(t,e,n){var r=0,o=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);o&&(r=+o[1]),e.exports=r},{}],22:[function(t,e,n){function r(){return c.exists&&performance.now?Math.round(performance.now()):(i=Math.max((new Date).getTime(),i))-a}function o(){return i}var i=(new Date).getTime(),a=i,c=t(30);e.exports=r,e.exports.offset=a,e.exports.getLastTimestamp=o},{}],23:[function(t,e,n){function r(t){return!(!t||!t.protocol||"file:"===t.protocol)}e.exports=r},{}],24:[function(t,e,n){function r(t,e){var n=t.getEntries();n.forEach(function(t){"first-paint"===t.name?d("timing",["fp",Math.floor(t.startTime)]):"first-contentful-paint"===t.name&&d("timing",["fcp",Math.floor(t.startTime)])})}function o(t,e){var n=t.getEntries();n.length>0&&d("lcp",[n[n.length-1]])}function i(t){t.getEntries().forEach(function(t){t.hadRecentInput||d("cls",[t])})}function a(t){if(t instanceof h&&!v){var e=Math.round(t.timeStamp),n={type:t.type};e<=p.now()?n.fid=p.now()-e:e>p.offset&&e<=Date.now()?(e-=p.offset,n.fid=p.now()-e):e=p.now(),v=!0,d("timing",["fi",e,n])}}function c(t){d("pageHide",[p.now(),t])}if(!("init"in NREUM&&"page_view_timing"in NREUM.init&&"enabled"in NREUM.init.page_view_timing&&NREUM.init.page_view_timing.enabled===!1)){var s,u,f,d=t("handle"),p=t("loader"),l=t(27),h=NREUM.o.EV;if("PerformanceObserver"in window&&"function"==typeof window.PerformanceObserver){s=new PerformanceObserver(r);try{s.observe({entryTypes:["paint"]})}catch(m){}u=new PerformanceObserver(o);try{u.observe({entryTypes:["largest-contentful-paint"]})}catch(m){}f=new PerformanceObserver(i);try{f.observe({type:"layout-shift",buffered:!0})}catch(m){}}if("addEventListener"in document){var v=!1,w=["click","keydown","mousedown","pointerdown","touchstart"];w.forEach(function(t){document.addEventListener(t,a,!1)})}l(c)}},{}],25:[function(t,e,n){function r(){function t(){return e?15&e[n++]:16*Math.random()|0}var e=null,n=0,r=window.crypto||window.msCrypto;r&&r.getRandomValues&&(e=r.getRandomValues(new Uint8Array(31)));for(var o,i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",a="",c=0;c<i.length;c++)o=i[c],"x"===o?a+=t().toString(16):"y"===o?(o=3&t()|8,a+=o.toString(16)):a+=o;return a}function o(){return a(16)}function i(){return a(32)}function a(t){function e(){return n?15&n[r++]:16*Math.random()|0}var n=null,r=0,o=window.crypto||window.msCrypto;o&&o.getRandomValues&&Uint8Array&&(n=o.getRandomValues(new Uint8Array(31)));for(var i=[],a=0;a<t;a++)i.push(e().toString(16));return i.join("")}e.exports={generateUuid:r,generateSpanId:o,generateTraceId:i}},{}],26:[function(t,e,n){function r(t,e){if(!o)return!1;if(t!==o)return!1;if(!e)return!0;if(!i)return!1;for(var n=i.split("."),r=e.split("."),a=0;a<r.length;a++)if(r[a]!==n[a])return!1;return!0}var o=null,i=null,a=/Version\/(\S+)\s+Safari/;if(navigator.userAgent){var c=navigator.userAgent,s=c.match(a);s&&c.indexOf("Chrome")===-1&&c.indexOf("Chromium")===-1&&(o="Safari",i=s[1])}e.exports={agent:o,version:i,match:r}},{}],27:[function(t,e,n){function r(t){function e(){t(a&&document[a]?document[a]:document[o]?"hidden":"visible")}"addEventListener"in document&&i&&document.addEventListener(i,e,!1)}e.exports=r;var o,i,a;"undefined"!=typeof document.hidden?(o="hidden",i="visibilitychange",a="visibilityState"):"undefined"!=typeof document.msHidden?(o="msHidden",i="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(o="webkitHidden",i="webkitvisibilitychange",a="webkitVisibilityState")},{}],28:[function(t,e,n){function r(t,e){var n=[],r="",i=0;for(r in t)o.call(t,r)&&(n[i]=e(r,t[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;e.exports=r},{}],29:[function(t,e,n){function r(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,o=n-e||0,i=Array(o<0?0:o);++r<o;)i[r]=t[e+r];return i}e.exports=r},{}],30:[function(t,e,n){e.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],ee:[function(t,e,n){function r(){}function o(t){function e(t){return t&&t instanceof r?t:t?u(t,s,a):a()}function n(n,r,o,i,a){if(a!==!1&&(a=!0),!l.aborted||i){t&&a&&t(n,r,o);for(var c=e(o),s=m(n),u=s.length,f=0;f<u;f++)s[f].apply(c,r);var p=d[y[n]];return p&&p.push([x,n,r,c]),c}}function i(t,e){g[t]=m(t).concat(e)}function h(t,e){var n=g[t];if(n)for(var r=0;r<n.length;r++)n[r]===e&&n.splice(r,1)}function m(t){return g[t]||[]}function v(t){return p[t]=p[t]||o(n)}function w(t,e){f(t,function(t,n){e=e||"feature",y[n]=e,e in d||(d[e]=[])})}var g={},y={},x={on:i,addEventListener:i,removeEventListener:h,emit:n,get:v,listeners:m,context:e,buffer:w,abort:c,aborted:!1};return x}function i(t){return u(t,s,a)}function a(){return new r}function c(){(d.api||d.feature)&&(l.aborted=!0,d=l.backlog={})}var s="nr@context",u=t("gos"),f=t(28),d={},p={},l=e.exports=o();e.exports.getOrSetContext=i,l.backlog=d},{}],gos:[function(t,e,n){function r(t,e,n){if(o.call(t,e))return t[e];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[e]=r,r}var o=Object.prototype.hasOwnProperty;e.exports=r},{}],handle:[function(t,e,n){function r(t,e,n,r){o.buffer([t],r),o.emit(t,e,n)}var o=t("ee").get("handle");e.exports=r,r.ee=o},{}],id:[function(t,e,n){function r(t){var e=typeof t;return!t||"object"!==e&&"function"!==e?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");e.exports=r},{}],loader:[function(t,e,n){function r(){if(!E++){var t=b.info=NREUM.info,e=l.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&e))return u.abort();s(y,function(e,n){t[e]||(t[e]=n)});var n=a();c("mark",["onload",n+b.offset],null,"api"),c("timing",["load",n]);var r=l.createElement("script");r.src="https://"+t.agent,e.parentNode.insertBefore(r,e)}}function o(){"complete"===l.readyState&&i()}function i(){c("mark",["domContent",a()+b.offset],null,"api")}var a=t(22),c=t("handle"),s=t(28),u=t("ee"),f=t(26),d=t(23),p=window,l=p.document,h="addEventListener",m="attachEvent",v=p.XMLHttpRequest,w=v&&v.prototype;if(d(p.location)){NREUM.o={ST:setTimeout,SI:p.setImmediate,CT:clearTimeout,XHR:v,REQ:p.Request,EV:p.Event,PR:p.Promise,MO:p.MutationObserver};var g=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-spa-1208.min.js"},x=v&&w&&w[h]&&!/CriOS/.test(navigator.userAgent),b=e.exports={offset:a.getLastTimestamp(),now:a,origin:g,features:{},xhrWrappable:x,userAgent:f};t(19),t(24),l[h]?(l[h]("DOMContentLoaded",i,!1),p[h]("load",r,!1)):(l[m]("onreadystatechange",o),p[m]("onload",r)),c("mark",["firstbyte",a.getLastTimestamp()],null,"api");var E=0}},{}],"wrap-function":[function(t,e,n){function r(t,e){function n(e,n,r,s,u){function nrWrapper(){var i,a,f,p;try{a=this,i=d(arguments),f="function"==typeof r?r(i,a):r||{}}catch(l){o([l,"",[i,a,s],f],t)}c(n+"start",[i,a,s],f,u);try{return p=e.apply(a,i)}catch(h){throw c(n+"err",[i,a,h],f,u),h}finally{c(n+"end",[i,a,p],f,u)}}return a(e)?e:(n||(n=""),nrWrapper[p]=e,i(e,nrWrapper,t),nrWrapper)}function r(t,e,r,o,i){r||(r="");var c,s,u,f="-"===r.charAt(0);for(u=0;u<e.length;u++)s=e[u],c=t[s],a(c)||(t[s]=n(c,f?s+r:r,o,s,i))}function c(n,r,i,a){if(!h||e){var c=h;h=!0;try{t.emit(n,r,i,e,a)}catch(s){o([s,n,r,i],t)}h=c}}return t||(t=f),n.inPlace=r,n.flag=p,n}function o(t,e){e||(e=f);try{e.emit("internal-error",t)}catch(n){}}function i(t,e,n){if(Object.defineProperty&&Object.keys)try{var r=Object.keys(t);return r.forEach(function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){return t[n]=e,e}})}),e}catch(i){o([i],n)}for(var a in t)l.call(t,a)&&(e[a]=t[a]);return e}function a(t){return!(t&&t instanceof Function&&t.apply&&!t[p])}function c(t,e){var n=e(t);return n[p]=t,i(t,n,f),n}function s(t,e,n){var r=t[e];t[e]=c(r,n)}function u(){for(var t=arguments.length,e=new Array(t),n=0;n<t;++n)e[n]=arguments[n];return e}var f=t("ee"),d=t(29),p="nr@original",l=Object.prototype.hasOwnProperty,h=!1;e.exports=r,e.exports.wrapFunction=c,e.exports.wrapInPlace=s,e.exports.argsToArray=u},{}]},{},["loader",2,16,5,3,4]); ;NREUM.loader_config={accountID:"983838",trustKey:"983838",agentID:"22301510",licenseKey:"50f27f0931",applicationID:"22301510"} ;NREUM.info={beacon:"bam-cell.nr-data.net",errorBeacon:"bam-cell.nr-data.net",licenseKey:"50f27f0931",applicationID:"22301510",sa:1} </script> <!-- utag.js --> <script defer type="text/javascript" src='//tags.tiqcdn.com/utag/samsung/main/prod/utag.sync.js'></script> <script>(window.BOOMR_mq=window.BOOMR_mq||[]).push(["addVar",{"rua.upush":"false","rua.cpush":"false","rua.upre":"false","rua.cpre":"false","rua.uprl":"false","rua.cprl":"false","rua.cprf":"false","rua.trans":"","rua.cook":"false","rua.ims":"false","rua.ufprl":"false","rua.cfprl":"false","rua.isuxp":"false","rua.texp":"norulematch","rua.ceh":"false","rua.ueh":"false","rua.ieh.st":"0"}]);</script> <script>!function(){function o(n,i){if(n&&i)for(var r in i)i.hasOwnProperty(r)&&(void 0===n[r]?n[r]=i[r]:n[r].constructor===Object&&i[r].constructor===Object?o(n[r],i[r]):n[r]=i[r])}try{var n=decodeURIComponent("%7B%20%22request_client_hints%22%3A%20true%20%7D");if(n.length>0&&window.JSON&&"function"==typeof window.JSON.parse){var i=JSON.parse(n);void 0!==window.BOOMR_config?o(window.BOOMR_config,i):window.BOOMR_config=i}}catch(r){window.console&&"function"==typeof window.console.error&&console.error("mPulse: Could not parse configuration",r)}}();</script> <script>!function(a){var e="https://s.go-mpulse.net/boomerang/",t="addEventListener";if("False"=="True")a.BOOMR_config=a.BOOMR_config||{},a.BOOMR_config.PageParams=a.BOOMR_config.PageParams||{},a.BOOMR_config.PageParams.pci=!0,e="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="VRZKC-5BSTD-4EWS3-R2J59-B8GYB",function(){function n(e){a.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!a.BOOMR||!a.BOOMR.version&&!a.BOOMR.snippetExecuted){a.BOOMR=a.BOOMR||{},a.BOOMR.snippetExecuted=!0;var i,_,o,r=document.createElement("iframe");if(a[t])a[t]("load",n,!1);else if(a.attachEvent)a.attachEvent("onload",n);r.src="javascript:void(0)",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="width:0;height:0;border:0;display:none;",o=document.getElementsByTagName("script")[0],o.parentNode.insertBefore(r,o);try{_=r.contentWindow.document}catch(O){i=document.domain,r.src="javascript:var d=document.open();d.domain='"+i+"';void(0);",_=r.contentWindow.document}_.open()._l=function(){var a=this.createElement("script");if(i)this.domain=i;a.id="boomr-if-as",a.src=e+"VRZKC-5BSTD-4EWS3-R2J59-B8GYB",BOOMR_lstart=(new Date).getTime(),this.body.appendChild(a)},_.write("<bo"+'dy onload="document._l();">'),_.close()}}(),"".length>0)if(a&&"performance"in a&&a.performance&&"function"==typeof a.performance.setResourceTimingBufferSize)a.performance.setResourceTimingBufferSize();!function(){if(BOOMR=a.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var e=""=="true"?1:0,t="",n="bdpnbeqxhaoekz6fnh2q-f-8932024f1-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,_={"ak.v":"39","ak.cp":"479457","ak.ai":parseInt("293013",10),"ak.ol":"0","ak.cr":3,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"4352346e","ak.r":51005,"ak.a2":e,"ak.m":"x","ak.n":"essl","ak.bpcip":"8.222.208.0","ak.cport":52746,"ak.gh":"23.45.206.68","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"reno","ak.t":"1740990965","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==RNJzzDmryO8Yd4qF5rqFSfH4qIrkq+JdsDrXlABnu4eLV1ceLlhiHUoWDnQFNexK+ei5EdSravsjqNZeRSDoiyQ3BvwHBFUdJdDLLtEUNh2homD8sXQ3JNUiNFULBJ71M0DcXJ5TGQ9ZJMJ+BUGX4N6z6ExbzbCAqh7M2zS31UbAy2Khn18rJxfOg2BWlUrFgokiF/oncCF/gg1hMWcvONkfBg4ZZDk02B0xeOZV2Cvh2YLDORZ76Ds230CJwSpTS2W2SQNw/YA/z2St9GnI8TmcSky3/Aw6OvT8zManbliJoPkrANA5joHkM7B+0Kj2m2eKwpqD06lkZzNaDHS1QbWu9dLdZ9PMBQrX4jcj9/w/vAXdfVesfPZXYuZxa3d5X3brPlugOAeymKjEaPeWYIkd5J3hA/Ws4EmfgRwrLWk=","ak.pv":"3790","ak.dpoabenc":"","ak.tf":i};if(""!==t)_["ak.ruds"]=t;var o={i:!1,av:function(e){var t="http.initiator";if(e&&(!e[t]||"spa_hard"===e[t]))_["ak.feo"]=void 0!==a.aFeoApplied?1:0,BOOMR.addVar(_)},rv:function(){var a=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(a)}};BOOMR.plugins.AK={akVars:_,akDNSPreFetchDomain:n,init:function(){if(!o.i){var a=BOOMR.subscribe;a("before_beacon",o.av,null,null),a("onbeacon",o.rv,null,null),o.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head> <body> <input type="hidden" id="page-template-path" value="/conf/consumer/settings/wcm/templates/product-finder"/> <input type="hidden" id="data-pim-sitecode" value="us"/> <span id="top"></span> <div id="outer-wrap"> <div id="inner-wrap"> <!-- <sly data-sly-test.pageTrack=""/> --> <!-- <sly data-sly-test.eppYN=""/> --> <!-- <sly data-sly-test.taggingPrefix=""/> --> <!-- <input type="hidden" name="st_checked" id="st_checked" value=""> --> <!-- <script> var gnbNewModelJson = ; </script> --> <div class="gnb" style="z-index: 3000;"> <section id="gnb-promo-wrapper" class="gnbv2" style="display: none;"> <div class="gnb-b2c-promo"> <a href="javascript:;" class="gnb-promo-close">&times;</a> <div class="gnb-promo-left gnb-promo-side"> <div class="gnb-promo-text" style="text-transform: none !important;"></div> </div> </div> </section> <section> <div class="epp-bar-wrap"> <div class="epp-bar"> <div class="epp-bar-div"> <div class="epp-bar-logo"></div> <div class="epp-bar-next"> <div class="epp-bar-msg"> Welcome to the <div class="epp-bar-username"></div>! Please enjoy our special offers for you </div> <div class="benfit-wrap"> <a href="/us/web/account/my-referrals" class="benfit-wrap__offers">Refer Friends & Co-Workers Now</a> <span class="benfit-wrap__gap"></span> <!-- <a class="benfit-wrap__benefits" href="/us/support/account/benefits/">MY BENEFITS</a> <span class="benfit-wrap__gap"></span> --> <a class="benfit-wrap__offers" href="/us/shop/all-deals/">SPECIAL OFFERS</a> </div> </div> </div> </div> </div> </section> <nav id="component-id" class="nv00-gnb" role="navigation"> <div class="gnb__dimmed"> <!-- dimmed --> </div> <div class="nv00-gnb__inner-wrap" id="inner_wrap_hamburger_menu"> <div class="nv00-gnb__up-wrap"> <div class="nv00-gnb__l0-menu-wrap"> <ul class="nv00-gnb__l0-menu-list right-menu right-menu--desktop" role="menubar"> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-la="support"> Support <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-la="for business"> For Business <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> </ul> </div> </div> <div class="nv00-gnb__down-wrap"> <div class="nv00-gnb__logo-wrap"> <a href="/us/" title="Samsung" class="nv00-gnb__logo " data-event_name="select_samsung_click" data-link_cat="navigation" data-link_position="navigation>gnb" data-link_id="logo"> <span class="hidden">Samsung</span> <div class="image"> <svg xmlns="http://www.w3.org/2000/svg" width="120" height="19" viewBox="0 0 105 16"> <path d="M0 11.65v-1.139h4.033v1.45a1.341 1.341 0 0 0 1.508 1.346A1.312 1.312 0 0 0 7 12.3a1.816 1.816 0 0 0-.026-1.113C6.192 9.243.859 8.363.182 5.333a5.3 5.3 0 0 1-.025-2.02C.572.88 2.731 0 5.411 0c2.134 0 5.073.492 5.073 3.754v1.062H6.738v-.933a1.282 1.282 0 0 0-1.4-1.346 1.259 1.259 0 0 0-1.378 1.01 2 2 0 0 0 .026.777c.442 1.734 6.14 2.667 6.764 5.8a6.878 6.878 0 0 1 .025 2.46C10.406 15.068 8.169 16 5.464 16 2.628 16 0 14.99 0 11.65zm48.857-.05v-1.14h3.981v1.424a1.32 1.32 0 0 0 1.483 1.346 1.3 1.3 0 0 0 1.457-.984 1.743 1.743 0 0 0-.025-1.088C55 9.243 49.716 8.363 49.04 5.333a5.166 5.166 0 0 1-.026-1.993C49.43.932 51.59.052 54.216.052c2.108 0 5.021.517 5.021 3.728v1.036h-3.72V3.91a1.274 1.274 0 0 0-1.378-1.346 1.213 1.213 0 0 0-1.353.984 2 2 0 0 0 .025.777c.416 1.734 6.062 2.641 6.687 5.747a6.743 6.743 0 0 1 .025 2.434c-.363 2.484-2.574 3.394-5.254 3.394-2.809 0-5.412-1.013-5.412-4.3zm14.257.544a5.82 5.82 0 0 1-.025-.985V.44h3.8v11.055a4.073 4.073 0 0 0 .025.57 1.486 1.486 0 0 0 2.862 0 3.934 3.934 0 0 0 .026-.57V.44h3.8v10.718c0 .285-.026.829-.026.985-.26 2.8-2.472 3.7-5.229 3.7s-4.972-.905-5.233-3.7zm31.271-.156a7.734 7.734 0 0 1-.052-.988V4.712c0-.259.025-.725.052-.985.338-2.8 2.6-3.676 5.281-3.676 2.654 0 4.995.88 5.256 3.676a7.118 7.118 0 0 1 .025.985V5.2h-3.8v-.824a3.075 3.075 0 0 0-.052-.57 1.573 1.573 0 0 0-2.992 0 3.06 3.06 0 0 0-.052.7v6.834a4.131 4.131 0 0 0 .026.57A1.484 1.484 0 0 0 99.666 13a1.417 1.417 0 0 0 1.534-1.09 2.071 2.071 0 0 0 .026-.57V9.165h-1.533V6.99H105V11a7.6 7.6 0 0 1-.053.984c-.26 2.718-2.627 3.676-5.281 3.676s-5.021-.96-5.281-3.673zm-52.941 3.39-.1-13.825-2.6 13.825h-3.8L32.363 1.553l-.1 13.825h-3.75L28.825.466h6.114l1.9 11.65 1.9-11.65h6.113l.338 14.912zm-19.98 0-2.03-13.825-2.082 13.825h-4.058L16.051.466h6.687L25.5 15.378zm63.582-.155-3.772-12.4.208 12.4h-3.695V.466h5.567l3.538 12.013L86.684.466H90.4v14.757z"/> </svg> </div> </a> </div> <div class="nv00-gnb__search-wrap"> <button class="nv00-gnb__backward-btn"> <!-- <svg class="icon" id="backward-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M40.544 11.613l5.538 5.774L18.335 44l75.054.001v8H18.337l27.745 26.612-5.538 5.774L2.611 48l37.933-36.387z"> </path> </svg> --> <svg class="icon" id="backward-bold" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path style="fill:transparent" d="M0 0h24v24H0z"/> <path data-name="Icon / Regular / Navigation / Previous" d="m15.179 3.174.864.9-8.278 7.927 8.278 7.923-.864.9-9.222-8.823z"/> </svg> </button> <!-- <button class="nv00-gnb__search-btn gnb__search-btn-js" style="padding: 12px 12px 16px 0; margin-left: 9px;" data-event_name="nv00_gnb-1depth-navigation2" data-link_cat="navigation" data-link_position="gnb" data-link_id="search"> <svg class="icon" id="search-bold" style="float: left;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M40.581 4.09c20.126 0 36.5 16.374 36.5 36.5a36.325 36.325 0 01-7.963 22.733l22.8 22.948-5.674 5.639-22.767-22.913a36.327 36.327 0 01-22.896 8.093c-20.126 0-36.5-16.374-36.5-36.5s16.374-36.5 36.5-36.5zm0 8c-15.715 0-28.5 12.785-28.5 28.5s12.785 28.5 28.5 28.5 28.5-12.785 28.5-28.5-12.785-28.5-28.5-28.5z"> </path> </svg> </button> --> <button role="button" aria-label="Search" class="nv00-gnb__search-btn gnb__search-btn-js" data-link_cat="navigation" data-link_position="navigation>gnb" data-link_id="search" data-event_name="select_search_click"> <span class="hidden">Search</span> <svg class="icon" id="search-bold" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"> <path style="fill:none" d="M0 0h16v16H0z"/> <path data-name="Icon / Regular / Action / Search" d="m14.849 15.439-4.209-4.208A6.083 6.083 0 1 1 4.276 1.039a6.083 6.083 0 0 1 6.954 9.6l4.208 4.208-.589.589zM6.644 1.394A5.251 5.251 0 0 0 4.6 11.482a5.252 5.252 0 0 0 4.088-9.675 5.219 5.219 0 0 0-2.044-.413z"/> </svg> <span class="nv00-gnb__utility-btn-text" placeholder="Search">Search</span> </button> <button class="nv00-gnb__close-btn" data-event_name="select_gnb_close_hamburger_menu_click" data-link_cat="navigation" data-link_position="gnb" data-link_id="close_hamburger_menu"> <svg class="icon" id="delete-bold" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path data-name="Icon / Regular / Action / Cancel_close" d="m20.058 3.057.884.884-8.058 8.058 8.058 8.058-.884.883L12 12.883l-8.058 8.058-.884-.884 8.058-8.058-8.058-8.058.884-.884L12 11.115z"/> </svg> </button> </div> <!-- 로그인 mobile S --> <div class="nv00-gnb__user-account-wrap"> <div class="nv00-gnb__user-account before-login"> <a class="nv00-gnb__user-account-link loginBtn" href="javascript:;" data-linkinfo="https://account.samsung.com/accounts/v1/samsung_com_us/signInGate" aria-label="Sign in/ Sign up">Sign In/Sign Up</a> </div> <div class="nv00-gnb__user-account after-login"> <a class="nv00-gnb__user-account-link js-user-name" href="https://account.samsung.com/membership/contents/profile/profile-gate" aria-label="Manage Account"> <div class="image js-gnb-afterlogin-image"> <img class="image__main" src="" alt="alternative-text" role="img" data-comp-name="image"/> </div> <span class="account-icon js-gnb-afterlogin-no-image"> <svg class="icon" id="user-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M48 50c17.346 0 32 14.221 32 31.054V89c0 2.757-2.243 5-5 5H21c-2.757 0-5-2.243-5-5v-7.946C16 64.221 30.654 50 48 50zm0 8c-12.785 0-24 10.773-24 23.054V86h48v-4.946C72 68.773 60.785 58 48 58zm-.002-56c12.133 0 22.003 9.87 22.003 22.001C70 36.131 60.13 46 47.998 46c-12.13 0-21.997-9.869-21.997-21.999C26 11.87 35.867 2 47.998 2zm0 8c-7.718 0-13.997 6.281-13.997 14.001C34 31.72 40.28 38 47.998 38 55.718 38 62 31.72 62 24.001 62 16.281 55.719 10 47.998 10z"></path> </svg> </span> <p class="user-name"></p> </a> </div> <div class="nv00-gnb__user-account nv00-gnb__why-samsung-account"> </div> </div> <!-- 로그인 mobile E --> <div class="nv00-gnb__l0-menu-wrap"> <ul class="nv00-gnb__l0-menu-list left-menu" role="menubar"> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-tr="nv00_gnb-1depth-navigation2" an-ca="navigation" an-ac="gnb" an-la="offer"> Offer <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-tr="nv00_gnb-1depth-navigation2" an-ca="navigation" an-ac="gnb" an-la="mobile"> Mobile <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-tr="nv00_gnb-1depth-navigation2" an-ca="navigation" an-ac="gnb" an-la="tvandaudio"> TV &amp; Audio <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-tr="nv00_gnb-1depth-navigation2" an-ca="navigation" an-ac="gnb" an-la="appliances"> Appliances <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-tr="nv00_gnb-1depth-navigation2" an-ca="navigation" an-ac="gnb" an-la="computing and displays"> Computing &amp; Displays <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-tr="nv00_gnb-1depth-navigation2" an-ca="navigation" an-ac="gnb" an-la="accessories"> Accessories <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-tr="nv00_gnb-1depth-navigation2" an-ca="navigation" an-ac="gnb" an-la="ai"> AI <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-tr="nv00_gnb-1depth-navigation2" an-ca="navigation" an-ac="gnb" an-la="smarthings"> SmartThings <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> </ul> <ul class="nv00-gnb__l0-menu-list right-menu right-menu--mobile" role="menubar"> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-la="support"> Support <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> <li class="nv00-gnb__l0-menu" role="menuitem"> <button class="nv00-gnb__l0-menu-btn" aria-expanded="false" aria-haspopup="true" an-la="for business"> For Business <svg class="icon" id="next-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M35.757 84.389l-5.533-5.778 31.982-30.612L30.224 17.39l5.533-5.779 38.018 36.388z"></path> </svg> </button> </li> </ul> </div> <div class="nv00-gnb__utility-wrap"> <div class="nv00-gnb__utility search"> <button role="button" aria-label="Search" class="nv00-gnb__utility-btn nv00-gnb__utility-btn-search gnb__search-btn-js" data-link_cat="navigation" data-link_position="navigation>gnb" data-link_id="search" data-event_name="select_search_click"> <span class="hidden">Search</span> <svg class="icon" id="search-bold" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"> <path style="fill:none" d="M0 0h16v16H0z"/> <path data-name="Icon / Regular / Action / Search" d="m14.849 15.439-4.209-4.208A6.083 6.083 0 1 1 4.276 1.039a6.083 6.083 0 0 1 6.954 9.6l4.208 4.208-.589.589zM6.644 1.394A5.251 5.251 0 0 0 4.6 11.482a5.252 5.252 0 0 0 4.088-9.675 5.219 5.219 0 0 0-2.044-.413z"/> </svg> <span class="nv00-gnb__utility-btn-text" placeholder="Search">Search</span> </button> </div> <div class="nv00-gnb__utility cart"> <a role="link" aria-label="Navigate to Cart" href="/us/web/app/cart/" class="nv00-gnb__utility-btn js-gp-cart-btn"> <span class="hidden">Navigate to Cart</span> <svg class="icon" id="cart-bold" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M18.205 17.832a2.5 2.5 0 1 1-2.5 2.5 2.5 2.5 0 0 1 2.5-2.5zm-8.736 0a2.5 2.5 0 1 1-2.5 2.5 2.5 2.5 0 0 1 2.5-2.5zm8.736 1.25a1.25 1.25 0 1 0 1.25 1.25 1.25 1.25 0 0 0-1.25-1.25zm-8.736 0a1.25 1.25 0 1 0 1.25 1.25 1.25 1.25 0 0 0-1.25-1.25zM3.42 1.25a.965.965 0 0 1 .9.663l.013.046.8 3.073h17.516a.806.806 0 0 1 .8.979l-.01.045-2.349 9.073a.965.965 0 0 1-.865.708H7.394a.967.967 0 0 1-.9-.662l-.013-.047-3.3-12.629h-2.9v-1.25zm18.662 5.032H5.462l2.168 8.307h12.3z"/> </svg> <span role="alert" aria-label="Number of products in the cart" class="cart-in-number gnb-cart-count" aria-live="polite" style="display:none;"></span> </a> </div> <div class="nv00-gnb__utility before-login"> <a class="nv00-gnb__utility-btn" aria-label="Manage Account" aria-haspopup="true" data-event_name="nv00_gnb-1depth-navigation2" data-link_cat="navigation" data-link_position="gnb" data-link_id="login" tabindex="0"> <span class="hidden">Manage Account</span> <svg class="icon" id="user-bold" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M11.625 13a7.661 7.661 0 0 1 7.625 7.389v1.986a.875.875 0 0 1-.875.875h-13.5A.875.875 0 0 1 4 22.375v-1.986A7.661 7.661 0 0 1 11.625 13zm0 1.25a6.413 6.413 0 0 0-6.375 6.139V22H18v-1.611a6.412 6.412 0 0 0-6.272-6.138zm0-13.25A5.125 5.125 0 1 1 6.5 6.125 5.125 5.125 0 0 1 11.625 1zm0 1.25A3.875 3.875 0 1 0 15.5 6.125a3.876 3.876 0 0 0-3.875-3.875z"/> </svg> </a> <ul class="nv00-gnb__utility-user-menu-list" role="menu" data-login-linkinfo="https://account.samsung.com/accounts/v1/samsung_com_us/signInGate"> <!-- TODO: copy before login modal html to here --> </ul> </div> <div class="nv00-gnb__utility after-login"> <a class="nv00-gnb__utility-btn" aria-expanded="false" aria-haspopup="true" aria-label="Manage Account"> <span class="hidden">Manage Account</span> <div class="image js-gnb-afterlogin-image"> <img class="image__main" src="" alt="alternative-text" role="img" data-comp-name="image"/> </div> <span class="account-icon js-gnb-afterlogin-no-image"> <svg class="icon" id="user-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M48 50c17.346 0 32 14.221 32 31.054V89c0 2.757-2.243 5-5 5H21c-2.757 0-5-2.243-5-5v-7.946C16 64.221 30.654 50 48 50zm0 8c-12.785 0-24 10.773-24 23.054V86h48v-4.946C72 68.773 60.785 58 48 58zm-.002-56c12.133 0 22.003 9.87 22.003 22.001C70 36.131 60.13 46 47.998 46c-12.13 0-21.997-9.869-21.997-21.999C26 11.87 35.867 2 47.998 2zm0 8c-7.718 0-13.997 6.281-13.997 14.001C34 31.72 40.28 38 47.998 38 55.718 38 62 31.72 62 24.001 62 16.281 55.719 10 47.998 10z"></path> </svg> </span> </a> <ul class="nv00-gnb__utility-user-menu-list" role="menu" data-use-sign-btn="Y"> <li class="nv00-gnb__utility-user-menu user desktop-only" role="menuitem"> <a class="nv00-gnb__utility-user-menu-link js-user-name" aria-label="Manage Account" href="https://account.samsung.com/membership/contents/profile/profile-gate"> <div class="image js-gnb-afterlogin-image"> <img class="image__main" src="" alt="alternative-text" role="img" data-comp-name="image"/> </div> <span class="account-icon js-gnb-afterlogin-no-image"> <svg class="icon" id="user-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M48 50c17.346 0 32 14.221 32 31.054V89c0 2.757-2.243 5-5 5H21c-2.757 0-5-2.243-5-5v-7.946C16 64.221 30.654 50 48 50zm0 8c-12.785 0-24 10.773-24 23.054V86h48v-4.946C72 68.773 60.785 58 48 58zm-.002-56c12.133 0 22.003 9.87 22.003 22.001C70 36.131 60.13 46 47.998 46c-12.13 0-21.997-9.869-21.997-21.999C26 11.87 35.867 2 47.998 2zm0 8c-7.718 0-13.997 6.281-13.997 14.001C34 31.72 40.28 38 47.998 38 55.718 38 62 31.72 62 24.001 62 16.281 55.719 10 47.998 10z"> </path> </svg> </span> <p class="user-name"></p> </a> </li> <!-- TODO: copy afterLoginModel level1List html to here --> </ul> </div> <div class="nv00-gnb__utility hamburger"> <button class="nv00-gnb__utility-btn" aria-expanded="false" aria-label="navigation" aria-haspopup="true" data-event_name="nv00_gnb-gnb-navigation2" data-link_cat="navigation" data-link_position="gnb" data-link_id="gnb:open"> <span class="hidden">Hamburger</span> <svg class="icon" id="menu-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M83 70v8H13v-8h70zm0-26v8H13v-8h70zm0-26v8H13v-8h70z"></path> </svg> </button> </div> </div> </div> </div> <div class="nv00-gnb__dim-wrap" aria-hidden="true"></div> <form id="signInForm" name="signInForm" method="get" action="https://account.samsung.com/accounts/v1/samsung_com_us/signInGate"> <input type="hidden" name="response_type" id="response_type" value=""/> <input type="hidden" name="client_id" value="kv5di1wr19"/> <input type="hidden" name="locale" id="locale" value=""/> <input type="hidden" name="countryCode" value="US"/> <input type="hidden" name="redirect_uri" id="redirect_uri" value="/aemapi/v6/data-login/afterLogin.us.json"/> <input type="hidden" name="state" id="signInState" value=""/> <input type="hidden" name="goBackURL" id="signInGoBackURL" value=""/> <input type="hidden" name="scope" id="scope" value=""/> </form> <!-- SA 로그아웃호출 폼 --> <form id="signOutForm" name="signOutForm" method="get" action="https://account.samsung.com/accounts/v1/samsung_com_us/signOutGate"> <input type="hidden" name="client_id" value="kv5di1wr19"/> <input type="hidden" name="state" id="signOutState" value=""/> <input type="hidden" name="signOutURL" id="signOutURL" value="/aemapi/v6/data-login/afterLogout.us.json"/> </form> <!-- 회원가입 폼 --> <form id="joinForm" name="joinForm" method="post" action="https://account.samsung.com/membership/"> <input type="hidden" name="actionID" value="SignupAP"/> <input type="hidden" name="serviceID" value="kv5di1wr19"/> <input type="hidden" name="serviceName" value="SAMSUNG"/> <input type="hidden" name="domain" value="www.samsung.com"/> <input type="hidden" name="countryCode" value="US"/> <input type="hidden" name="languageCode" value="en"/> <input type="hidden" name="registURL" id="joinRegistURL" value="/aemapi/v6/data-login/afterLogin.us.json"/> <input type="hidden" name="returnURL" id="joinReturnURL" value=""/> <input type="hidden" name="goBackURL" id="joinGoBackURL" value=""/> <input type="hidden" name="ssoType" value="ENC_TK"/> <input type="hidden" name="emailActivationURL" id="joinEmailActivationURL" value="/aemapi/v6/data-login/emailActivationURL.us.json"/> </form> <!-- Find Email 폼 --> <form id="findAccountForm" name="findAccountForm" method="post" action="https://account.samsung.com/membership/"> <input type="hidden" name="actionID" value="FindEmail"/> <input type="hidden" name="serviceID" value="kv5di1wr19"/> <input type="hidden" name="serviceName" value="SAMSUNG"/> <input type="hidden" name="domain" value=""/> <input type="hidden" name="countryCode" value="US"/> <input type="hidden" name="languageCode" value="en"/> <input type="hidden" name="goBackURL" id="findGoBackURL" value=""/> <input type="hidden" name="ssoType" value="ENC_TK"/> </form> <!-- Account Modify Form --> <form id="accountModifyForm" name="accountModifyForm" method="post" action="https://account.samsung.com/membership/"> <input type="hidden" name="actionID" value="ModifyUserInfo"/> <input type="hidden" name="serviceID" value="kv5di1wr19"/> <input type="hidden" name="serviceName" value="SAMSUNG"/> <input type="hidden" name="domain" value=""/> <input type="hidden" name="countryCode" value="US"/> <input type="hidden" name="languageCode" value="en"/> <input type="hidden" name="goBackURL" id="accountModifyGoBackURL" value=""/> <input type="hidden" name="ssoType" value="ENC_TK"/> </form> <form id="textForm" name="textForm"> <input type="hidden" name="productCountText" id="productCountText" value="Number of Products"/> </form> <input type="hidden" name="domain" id="domain" value="www.samsung.com"/> <input type="hidden" name="useLogin" id="useLogin" value="Y"/> <input type="hidden" name="useStore" id="useStore" value="Y"/> <input type="hidden" name="storeDomain" id="storeDomain" value="https://www.samsung.com/us/api"/> <input type="hidden" name="hybrisApiJson" id="hybrisApiJson" value=""/> <input type="hidden" name="addToCartPostYn" id="addToCartPostYn" value=""/> <input type="hidden" name="loginLinkURL" id="loginLinkURL" value="https://account.samsung.com/accounts/v1/samsung_com_us/signInGate"/> <!-- <input type="hidden" name="loginLinkURL" id="loginLinkURL" data-sly-test="true" value="https://stg-account.samsung.com/accounts/v1/samsung_com_us/signInGate"/> --> <input type="hidden" name="logoutURL" id="logoutURL" value="https://account.samsung.com/accounts/v1/samsung_com_us/signOutGate"/> <!-- <input type="hidden" name="logoutURL" id="logoutURL" data-sly-test="true" value="https://stg-account.samsung.com/accounts/v1/samsung_com_us/signOutGate"/> --> <input type="hidden" name="updateProfileURL" id="updateProfileURL" value=""/> <input type="hidden" name="isLoginWithNoStore" id="isLoginWithNoStore" value=""/> <input type="hidden" name="countryCode" id="countryCode" value="US"/> <input type="hidden" name="languageCode" id="languageCode" value="en"/> <input type="hidden" name="loginAccountServiceId" id="loginAccountServiceId" value="kv5di1wr19"/> <input type="hidden" name="emailActivationURL" id="emailActivationURL" value="/aemapi/v6/data-login/emailActivationURL.us.json"/> <input type="hidden" name="shopIntegrationFlag" id="shopIntegrationFlag" value="GPv2"/> <input type="hidden" name="tieredPriceUseYn" id="tieredPriceUseYn" value=""/> <input type="hidden" name="countryIsoCode" id="countryIsoCode" value="USA"/> <!-- <sly data-sly-test="false"> <input type="hidden" name="gnbMyAccountUrl" id="gnbMyAccountUrl" value=""/> </sly> --> <input type="hidden" name="loginValidateYnForGPv2" id="loginValidateYnForGPv2" value=""/> <div class="nv00-gnb__layer-popup-wrap"> <div class="nv00-gnb__layer-popup-looping--start" tabindex="0"></div> <div class="layer-popup gnb-layer_popup-js" id="layerEmptyCart"> <svg class="icon icon--information" id="info-regular" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M48 2.5c25.129 0 45.5 20.371 45.5 45.501S73.13 93.5 48 93.5 2.5 73.13 2.5 48.001C2.5 22.871 22.871 2.5 48 2.5zm0 5C25.633 7.5 7.5 25.633 7.5 48.001S25.632 88.5 48 88.5s40.5-18.131 40.5-40.499C88.5 25.633 70.367 7.5 48 7.5zm2.5 31V75h-5V43.5H40v-5h10.5zm-3.502-16.595C49.209 21.905 51 23.737 51 26c0 2.262-1.791 4.095-4.002 4.095C44.79 30.095 43 28.262 43 26c0-2.263 1.79-4.095 3.998-4.095z"></path> </svg> <p class="layer-popup__desc information-text">Your cart is empty.</p> <div class="layer-popup__cta-wrap"> <button class="cta cta--contained cta--black gnb-js-layer-close" aria-label="Accessibility Text" onclick="window.sg.components.nv00Gnb.closeLayerPopup(this);"> OK </button> </div> <button class="layer-popup__close"> <span class="hidden">Layer Popup Close</span> <svg class="icon" id="delete-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M79.17 11.17L48 42.34 16.83 11.17l-5.66 5.66L42.34 48 11.17 79.17l5.66 5.66L48 53.66l31.17 31.17 5.66-5.66L53.66 48l31.17-31.17z"></path> </svg> </button> </div> <div class="layer-popup gnb-layer_popup-js" id="layerInsufficientStock"> <svg class="icon icon--information" id="info-regular" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M48 2.5c25.129 0 45.5 20.371 45.5 45.501S73.13 93.5 48 93.5 2.5 73.13 2.5 48.001C2.5 22.871 22.871 2.5 48 2.5zm0 5C25.633 7.5 7.5 25.633 7.5 48.001S25.632 88.5 48 88.5s40.5-18.131 40.5-40.499C88.5 25.633 70.367 7.5 48 7.5zm2.5 31V75h-5V43.5H40v-5h10.5zm-3.502-16.595C49.209 21.905 51 23.737 51 26c0 2.262-1.791 4.095-4.002 4.095C44.79 30.095 43 28.262 43 26c0-2.263 1.79-4.095 3.998-4.095z"></path> </svg> <p class="layer-popup__desc information-text">Sorry, there is insufficient stock for your cart.</p> <div class="layer-popup__cta-wrap"> <button class="cta cta--contained cta--black gnb-js-layer-close" aria-label="Accessibility Text" onclick="window.sg.components.nv00Gnb.closeLayerPopup(this);"> OK </button> </div> <button class="layer-popup__close"> <span class="hidden">Layer Popup Close</span> <svg class="icon" id="delete-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M79.17 11.17L48 42.34 16.83 11.17l-5.66 5.66L42.34 48 11.17 79.17l5.66 5.66L48 53.66l31.17 31.17 5.66-5.66L53.66 48l31.17-31.17z"></path> </svg> </button> </div> <div class="layer-popup gnb__remove-product gnb-layer_popup-js" id="layerRemoveProduct"> <p class="layer-popup__title">Remove a Product</p> <p class="layer-popup__desc">Without this product, applied coupon or promotion code cannot be redeemed.<br/>Are you sure to remove this product?</p> <div class="layer-popup__cta-wrap"> <button class="cta cta--outlined cta--black" aria-label="Accessibility Text"> Move to wish list </button> <button class="cta cta--contained cta--black" aria-label="Accessibility Text"> Delete </button> </div> <button class="layer-popup__close"> <span class="hidden">Layer Popup Close</span> <svg class="icon" id="delete-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M79.17 11.17L48 42.34 16.83 11.17l-5.66 5.66L42.34 48 11.17 79.17l5.66 5.66L48 53.66l31.17 31.17 5.66-5.66L53.66 48l31.17-31.17z"></path> </svg> </button> </div> <div class="layer-popup gnb__popup-privacy gnb-layer_popup-js" id="layerPreference"> <p class="layer-popup__title">Check Preferences</p> <p class="layer-popup__desc">Help us to make recommendations for you by updating your product preferences.</p> <div class="layer-popup__cta-wrap"> <button id="preferenceCheckBtn" class="cta cta--outlined cta--black" aria-label="Accessibility Text">YES</button> <button id="privacyCloseBtn" class="cta cta--contained cta--black" aria-label="Accessibility Text" onclick="window.sg.components.nv00Gnb.closeLayerPopup(this);">LATER</button> </div> <button class="layer-popup__close" data-focus-id="shop-popover-close" data-tab-disable="true"> <span class="hidden">Close Check Preferences</span> <svg class="icon" id="delete-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M79.17 11.17L48 42.34 16.83 11.17l-5.66 5.66L42.34 48 11.17 79.17l5.66 5.66L48 53.66l31.17 31.17 5.66-5.66L53.66 48l31.17-31.17z"></path> </svg> </button> </div> <div class="nv00-gnb__layer-popup-looping--end" tabindex="0"></div> </div> </nav> <!--googleon: all--> <!-- 공통 hidden input 시작--> <!-- typeAheadDomain 기존 search/ -> 붙이던 부분 삭제함 필요시 search/를 붙여서 사용--> <input type="hidden" name="searchDomain" id="searchDomain" value="//searchapi.samsung.com"/> <input type="hidden" name="esapiSearchDomain" id="esapiSearchDomain" value="https://esapi.samsung.com"/> <input type="hidden" name="scene7domain" id="scene7domain" value="//images.samsung.com/is/image/samsung/"/> <input type="hidden" name="reviewUseYN" id="reviewUseYN" value="Y"/> <input type="hidden" name="reevooUseYN" id="reevooUseYN" value="N"/> <input type="hidden" name="bvFlag" id="bvFlag" value="N"/> <input type="hidden" name="bvRTLFlag" id="bvRTLFlag" value="N"/> <input type="hidden" name="multiLanguageYn" id="multiLanguageYn"/> <input type="hidden" name="hreflang" id="hreflang" value="en"/> <!-- 기존 gnbRunmodeInfo-> runmodeInfo 이름 변경--> <input type="hidden" name="runmodeInfo" id="runmodeInfo" value="live"/> <input type="hidden" name="apiStageInfo" id="apiStageInfo" value="front"/> <input type="hidden" name="tempTitle" id="tempTitle" value=""/> <input type="hidden" name="siteCode" id="siteCode" value="us"/> <input type="hidden" name="countryIsoCode" id="countryIsoCode" value="USA"/> <input type="hidden" name="bvIAFlag" id="bvIAFlag" value="N"/> <input type="hidden" name="language" id="language" value="en_US"/> <input type="hidden" name="serverType" id="serverType" value="stg"/> <!-- 공통 hidden input 끝--> <input type="hidden" name="sc_gnb_searchURL" id="sc_gnb_searchURL" value="/us/search"/> <input type="hidden" name="sc_gnb_matchedcontentsusable" id="sc_gnb_matchedcontentsusable" value="Y"/> <input type="hidden" name="sc_gnb_suggestedsearchauto" id="sc_gnb_suggestedsearchauto" value="false"/> <input type="hidden" name="sc_gnb_placeholder" id="sc_gnb_placeholder" value="Search"/> <input type="hidden" name="gPriceCurrency" id="gPriceCurrency" value="US"/> <!-- <input type="hidden" name="sc_gnb_linkSearchURL" id="sc_gnb_linkSearchURL" value=""/> --> <!-- <input type="hidden" name="sc_gnb_placeholder" id="sc_gnb_placeholder" value=""/> --> <input type="hidden" name="sc_gnb_aiSearchUseYn" id="sc_gnb_aiSearchUseYn" value="N"/> <input type="hidden" name="sc_gnb_bdcApiUseYn" id="sc_gnb_bdcApiUseYn" value="Y"/> <section class="gnb-search-v2" role="dialog" aria-modal="true"> <div class="gnb-search-v2__looping--start" tabindex="0"></div> <div class="gnb-search-v2__contents"> <form action="" class="gnb-search-v2__form" role="search" autocomplete="off"> <fieldset> <legend>Search Form</legend> <button class="gnb-search-v2__btn-search"> <svg class="icon" id="search-bold" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="presentation" aria-hidden="true" tabindex="-1"> <path d="M40.581 4.09c20.126 0 36.5 16.374 36.5 36.5a36.325 36.325 0 01-7.963 22.733l22.8 22.948-5.674 5.639-22.767-22.913a36.327 36.327 0 01-22.896 8.093c-20.126 0-36.5-16.374-36.5-36.5s16.374-36.5 36.5-36.5zm0 8c-15.715 0-28.5 12.785-28.5 28.5s12.785 28.5 28.5 28.5 28.5-12.785 28.5-28.5-12.785-28.5-28.5-28.5z"></path> </svg> </button> <div class="gnb-search-v2__input-wrap"> <input type="text" name="search" class="gnb-search-v2__input" id="gnb-search-v2-keyword" placeholder="Search"/> </div> <button type="button" class="gnb-search-v2__clear" data-event_name="type_header_close" data-link_cat="search" data-link_position="search>type_header" data-link_id="close"> <span class="text">Clear</span> </button> </fieldset> <button type="button" class="gnb-search-v2__close" data-event_name="search_layer_close" data-link_cat="search" data-link_position="search>search layer" data-link_id="close" aria-label="Close" title="Close"> <span class="hidden">search.common.labels.close</span> <svg class="icon" xmlns="http://www.w3.org/2000/svg" width="17.9" height="17.9" viewBox="0 0 24 24"> <path data-name="Icon / Regular / Action / Cancel_close" d="m20.058 3.057.884.884-8.058 8.058 8.058 8.058-.884.883L12 12.883l-8.058 8.058-.884-.884 8.058-8.058-8.058-8.058.884-.884L12 11.115z"/> </svg> </button> </form> <div class="gnb-search-v2__result-wrap"> <div class="gnb-search-v2__result"> <div class="gnb-search-v2__searches"> <div class="gnb-search-v2__list-wrap gnb-search-v2__no-suggestions gnb-search-v2__list-wrap--hide"> <div class="gnb-search-v2__list-title-wrap"> <h3 class="gnb-search-v2__list-title">No suggestions</h3> </div> </div> <div class="gnb-search-v2__list-wrap gnb-search-v2__suggested gnb-search-v2__list-wrap--hide"> <div class="gnb-search-v2__list-title-wrap"> <h3 class="gnb-search-v2__list-title">SUGGESTED SEARCHES</h3> </div> <ul class="gnb-search-v2__list" role="list"> </ul> </div> <div class="gnb-search-v2__list-wrap gnb-search-v2__popular"> <div class="gnb-search-v2__list-title-wrap"> <h3 class="gnb-search-v2__list-title">Popular Searches</h3> </div> <ul class="gnb-search-v2__list" role="list"> </ul> </div> <div class="gnb-search-v2__list-wrap gnb-search-v2__recent gnb-search-v2__list-wrap--hide"> <div class="gnb-search-v2__list-title-wrap"> <h3 class="gnb-search-v2__list-title">Recent searches</h3> </div> <ul class="gnb-search-v2__list" role="list"> </ul> </div> </div> <div class="gnb-search-v2__thumb gnb-search-v2__related gnb-search-v2__list-wrap--hide"> <div class="gnb-search-v2__thumb-content-title-wrap"> <h3 class="gnb-search-v2__thumb-title">Related products</h3> </div> <ul class="gnb-search-v2__thumb-list" role="menu"> </ul> </div> <div class="gnb-search-v2__thumb gnb-search-v2__recommended"> <div class="gnb-search-v2__thumb-content-title-wrap"> <h3 class="gnb-search-v2__thumb-title gnb-search-v2__list-wrap--hide">Recommended</h3> </div> <ul class="gnb-search-v2__thumb-list" role="menu"></ul> </div> </div> </div> </div> <div class="gnb-search-v2__dimmed"></div> <div class="gnb-search-v2__looping--end" tabindex="0"></div> </section> <!--<sly data-sly-resource="gnb-search"></sly>--> </div> <input name="initialState" type="hidden" value='/_/N-10Z11Zhv22xZzrbp2'/> <input name="detailedView" type="hidden" value="false"/> <input name="categoryCode" type="hidden" value="N0002505"/> <input name="taxonCode" type="hidden" value="N0061430"/> <input name="elastic" type="hidden" value="false"/> <input name="imageStyle" type="hidden" value="jpg"/> <input name="bundleBuilderFlag" type="hidden" value="true"/> <div class="page-content" role="main" id="pf-page" data-catid="N0002505" data-catname="monitors"> <!-- include the parsys component --> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="responsivegrid aem-GridColumn aem-GridColumn--default--12"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <section class="breadcrumb section aem-GridColumn aem-GridColumn--default--12"> <div class="container-wrapper breadscrumb__wrapper "> <div class="container"> <div class="grid"> <div class="col-lg-12 col-lg-offset-1 breadscrumb__path"> <ol vocab="http://schema.org/" typeof="BreadcrumbList"> <li property="itemListElement" typeof="ListItem"> <a property="item" typeof="WebPage" href="/us/"> <span property="name">Home</span> </a> / <meta property="position" content="1"/> </li> <li property="itemListElement" typeof="ListItem"> <a property="item" typeof="WebPage" href="/us/computing/"> <span property="name">Computing</span> </a> / <meta property="position" content="2"/> </li> <li property="itemListElement" typeof="ListItem"> <a property="item" typeof="WebPage" href="/us/computing/monitors/"> <span property="name">Monitors</span> </a> / <meta property="position" content="3"/> </li> <li property="itemListElement" typeof="ListItem"> <a property="item" typeof="WebPage" href="/us/computing/monitors/all-monitors/"> <span property="name">All Monitors</span> </a> / <meta property="position" content="4"/> </li> <li property="itemListElement" typeof="ListItem"> <a property="item" typeof="WebPage"> <span property="name">Oled</span> </a> <meta property="position" content="5"/> </li> </ol> </div> </div> </div> </div> </section> <section class="title section aem-GridColumn aem-GridColumn--default--12"> <header class="page-title "> <p class="type-cp1">oled</p> </header> </section> <section class="header section aem-GridColumn aem-GridColumn--default--12"> <div class="container dynamic-header-tag " data-pf-dynamic-header="{'default-header-path':'/content/samsung/us/computing/monitors/oled-monitor/jcr:content/root/responsivegrid/header_copy_copy_cop.pf-header.html'}"> <div class="container header header--middle-left column-4 header--mobile-top white-theme header--hasLogo "> <div class="row" style="position: relative;"> <div class="span-full "> <picture class="blurload" data-large="//image-us.samsung.com/SamsungUS/home/05242023/LS32DG802SNXZA-PF_Header_DT_1440x400.jpg?$header-png$" data-small="//image-us.samsung.com/SamsungUS/home/05242023/LS32DG802SNXZA-PF_Header_MB_768x1250.jpg?$header-mobile-png$"> <source media="(min-width: 769px)" srcset="//image-us.samsung.com/SamsungUS/home/05242023/LS32DG802SNXZA-PF_Header_DT_1440x400.jpg?$header-blur-png$"/> <img itemprop="image" class="header__img img-blur" alt="Save $300" title="Save $300" src="//image-us.samsung.com/SamsungUS/home/05242023/LS32DG802SNXZA-PF_Header_MB_768x1250.jpg?$header-mobile-blur-png$"/> </picture> </div> <div class="overlay header__text"> <div class="header__text-headline sky-blue"> <h1 class="visible-lg-block" style="font-size:36px;">Save $300</h1> <span class="visible-sm-block">Save $300</span> </div> <div class="header__text-subHeadline"> <h2 class="visible-lg-block" style="font-size:18px;"> On 32&quot; Odyssey OLED G8 (G80SD) Gaming Monitor. Now $999.99 <s>1299.99.</s> </h2> <span class="visible-sm-block"> On 32&quot; Odyssey OLED G8 (G80SD) Gaming Monitor. Now $999.99 <s>1299.99.</s> </span> </div> <div class="cta-wrapper"> <a class="cta-button cta-blue" href="/us/computing/monitors/gaming/32-odyssey-oled-g8-g80sd-4k-uhd-240hz-0-03ms-smart-gaming-monitor-with-sleek-metal-design-ls32dg802snxza/" title="Buy now" target="_self" data-link_id="b2c|category filter_OLED Gaming Monitors_header_Save $300_Buy now" data-link_meta="link_name:Buy now" data-link_position="header>Save $300" data-link_cat="Buy now">Buy now</a> </div> </div> </div> </div> </div> </section> <section class="filter-sort section aem-GridColumn aem-GridColumn--default--12"> <style> #app { min-height: 1000px; } </style> <div id="app"></div> <div id="appKitchenPackage"></div> <div class="product-finder-bundle-section" style="display: none;"> <span class="icon-x"></span> <div id="pdpApp"></div> <div id="confApp"></div> </div> <style type="text/css"> #appKitchenPackage { min-height: 1000px; margin-top: 25px; } .product-finder-bundle-section { padding: 20px; background-color: #eee; position: relative; } .product-finder-bundle-section #pdpApp, .product-finder-bundle-section #confApp { background-color: #fff; padding-top: 60px; min-height: 1000px; } .product-finder-bundle-section .icon-x { position: absolute; right: 46px; top: 46px; cursor: pointer; font-size: 40px; } </style></section> <section class="recently-viewed section aem-GridColumn aem-GridColumn--default--12"><div class="hide_recentlyViewed"> </div> </section> <section class="compare-tray section aem-GridColumn aem-GridColumn--default--12"> <div class="container compare-tray__container" data-bind="css:{'hideTray': $root.products().filter(function(o){return o.modelCode}).length < 1 }"> <div class="shop-i18n__hide compare-tray-i18n" data-i18n-message-full="You have 4 products ready to compare." data-i18n-message-diff="Click clear all to begin adding products from a new category." data-i18n-currency-symbol="$"></div> <div class="compare-tray__content"> <div class="compare-tray__row"> <div class="compare-tray__next"> <div class="compare-tray__close"> <button class="tl-btn-clear" data-bind="click: $root.removeAll">Clear All</button> </div> <div class="compare-tray__start"> Select up to 4 products to compare </div> <div class="compare-tray__compare"> <a class="ec-btn" data-link_cat="compare" data-link_id="product_card_compare" data-link_meta="link_name: compare" data-link_position="compare products" data-bind="attr:{'href': ($data.numOfProducts() > 1) && compareUrl}, 'css': { 'compare-tray__disabled' : $data.numOfProducts() <= 1}"> Compare </a> </div> <div class="compare-tray__chatbox"> <a href="/us/expert-chat/?compare_instant"> <img src="//image-us.samsung.com/SamsungUS/home/mobile/phones/compare-tray/Chat_app_icon.png"/>Chat with an expert </a> </div> </div> <div class="compare-tray__main" data-bind="foreach: products"> <div class="col-lg-3 compare-tray__card epp-product" data-bind="attr: { 'data-eppMdlCd': $data.modelCode, 'data-ecom': $data.ecomFlag }"> <a data-bind="attr:{'href': $data.url}, css: { 'slot': !$data.modelCode}"> <div class="compare-tray__info"> <!-- ko if: $data.modelCode --> <div class="compare-tray__remove"> <button class="icon-x" data-bind="click: $root.remove"></button> </div> <picture> <source srcset="" media="(min-width: 769px)" data-bind="attr:{srcset: productImage}"/> <img class="compare-tray__card__img" src="" data-bind="attr:{src: productImage, alt: imageAlt, title: imageTitle}"/> </picture> <div data-bind="css: { 'isMobile': $root.isMobile }"> <figcaption class="type-cp1 compare-tray__card__name" data-bind="html: productTitle, css: { 'isMobile': $root.isMobile }"></figcaption> <p class="p1 compare-tray__card__price" data-bind="css: { 'isMobile': $root.isMobile }"><span data-bind="visible: $root.checkIfShow($data.productPrice)">$</span><span data-bind="attr: { content: productPrice}, text: productPrice" class="epp-price"></span></p> </div> <!-- /ko --> </div> </a> </div> </div> </div> </div> </div> <div class="compare-tray__alert"> <button class="icon-x"></button> <div id="alert-message"></div> <div class="compare-tray__clear" data-bind="click: $root.removeAll"><span>Clear All</span></div> </div> </section> <section class="freeform section aem-GridColumn aem-GridColumn--default--12"><style> .features-faq__feature-title { font-family: SamsungSharpSans, SamsungOne, 'sans serif'; font-weight: 700 } .features-faq__feature-title { font-family: SamsungSharpSans, SamsungOne, 'sans serif'; font-weight: 700 } .features-faq__question-arrow { font-family: SamsungOne; font-weight: 700 } .features-faq { padding: 48px 24px; background-color: #fff; color: #000; max-width: 1440px; margin: 0 auto; } .features-faq__feature-title { font-size: 30px; line-height: 1.33; text-align: center; } .features-faq__list { margin-top: 30px } .features-faq__item { border-bottom: 1px solid #e5e5e5; background: #f7f7f7; } .features-faq__item:first-child { border-top: 1px solid #e5e5e5 } .features-faq__item.is-open .features-faq__question { padding-bottom: 16px } .features-faq__item.is-open .features-faq__question-arrow::after { -webkit-transform: rotate(0); -ms-transform: rotate(0); transform: rotate(0) } .features-faq__item:last-child { margin-bottom: 0 } .features-faq__question { padding: 25px 0 26px; -webkit-transition: padding-bottom .3s ease-in-out; -o-transition: padding-bottom .3s ease-in-out; transition: padding-bottom .3s ease-in-out } .features-faq__question-arrow { position: relative; display: block; width: 100%; text-align: inherit; font-size: 15px; line-height: 1.33; color: inherit; background-color: transparent; cursor: pointer; padding-right: 55px } .features-faq__question-arrow::after { content: ''; position: absolute; top: 4px; width: 25px; height: 25px; -webkit-box-sizing: border-box; box-sizing: border-box; border-radius: 50%; -webkit-transform: rotate(-180deg); -ms-transform: rotate(-180deg); transform: rotate(-180deg); -webkit-transition: -webkit-transform .3s ease-in-out; transition: -webkit-transform .3s ease-in-out; -o-transition: transform .3s ease-in-out; transition: transform .3s ease-in-out; transition: transform .3s ease-in-out, -webkit-transform .3s ease-in-out; right: 0 } .features-faq__question-arrow::after { background: url(//image-us.samsung.com/us/smartphones/galaxy-z-fold6/images/icon-faq-arrow-black-mo.svg) no-repeat center; background-size: 25px auto } .features-faq__answer { overflow: hidden; height: 0; background: #fff; } .features-faq__answer-inner { padding-bottom: 30px } .features-faq__answer p { width: auto; font-size: 13px; line-height: 1.45 } .features-faq__cta { margin-top: 18px } @media screen and (min-width:768px) { .features-faq { padding: 60px 24px; } .features-faq__feature-title { font-size: 38px; line-height: 1.21 } .features-faq__list { margin-top: 47px } .features-faq__item.is-open .features-faq__question { padding-bottom: 17px } .features-faq__question { padding: 25px 0 24px } .features-faq__question-arrow { font-size: 18px; line-height: 1.68; padding-right: 90px } .features-faq__question-arrow::after { top: -1px; width: 32px; height: 32px; right: 12px } .features-faq__question-arrow::after { background: url(//image-us.samsung.com/us/smartphones/galaxy-z-fold6/images/icon-faq-arrow-black.svg) no-repeat center; background-size: 32px auto } .features-faq__answer-inner { padding-bottom: 30px } .features-faq__answer p { width: 90%; font-size: 14px; line-height: 1.43; } } @media screen and (min-width:768px) and (max-width:1023px) { .features-faq { padding: 48px 0 } .features-faq__feature-title { font-size: 24px; line-height: 1.25 } .features-faq__list { margin-top: 31px } .features-faq__question { padding: 25px 0 } .features-faq__question-arrow { font-size: 15px; line-height: 1.33 } .features-faq__question-arrow::after { top: -4px; width: 26px; height: 26px } .features-faq__question-arrow::after { background-size: 26px auto } .features-faq__answer p { width: 624px; font-size: 13px; line-height: 1.38 } .features-faq__cta { margin-top: 18px } } .color_yb .features-faq__answer a.click_sup.focus-visible { outline-color: #000 !important } </style> <!-- FAQ --> <section id="faq" class="features-faq js-faq"> <div class="common-inner features-faq__feature"> <h2 class="features-faq__feature-title">All About OLED Monitors</h2> <ul class="features-faq__list js-faq-list" role="list"> <li class="features-faq__item js-bg-img js-faq-item" role="listitem" aria-expanded="false"> <h3 class="features-faq__question"> <button type="button" class="features-faq__question-arrow js-faq-open" aria-expanded="false" aria-controls="faq_item1" data-omni-type="microsite_pcontentinter"> What does OLED mean? </button> </h3> <div class="features-faq__answer js-faq-answer" id="faq_item1" tabindex="-1" aria-hidden="true"> <div class="features-faq__answer-inner"> <p> OLED stands for “organic light emitting diode.” In traditional LCD monitors using LED (“light emitting diode”) technology, a single backlight illuminates all of the pixels in a screen, creating an image that’s bright but lacking in contrast and color accuracy. In OLED monitors, however, each pixel can autonomously self-light, allowing them to turn off and on completely and individually. This makes for a more precise, more controlled display image with superior contrast. </p> </div> </div> </li> <li class="features-faq__item js-bg-img js-faq-item" role="listitem" aria-expanded="false"> <h3 class="features-faq__question"> <button type="button" class="features-faq__question-arrow js-faq-open" aria-expanded="false" aria-controls="faq_item2" data-omni-type="microsite_pcontentinter"> OLED monitors vs. LCD monitors: How do they differ? </button> </h3> <div class="features-faq__answer js-faq-answer" id="faq_item2" tabindex="-1" aria-hidden="true"> <div class="features-faq__answer-inner"> <p> Because of their individual pixel lighting, OLED monitors can give users deeper blacks, greater contrast ratios, and more impressive image quality. They also look excellent at any viewing angle, with color and contrast remaining consistent no matter how the screen is tilted or which area of the room you’re watching from. OLEDs are also often thinner and lighter than LCDs which makes them easier to lift, move, and mount. </p> </div> </div> </li> <li class="features-faq__item js-bg-img js-faq-item" role="listitem" aria-expanded="false"> <h3 class="features-faq__question"> <button type="button" class="features-faq__question-arrow js-faq-open" aria-expanded="false" aria-controls="faq_item3" data-omni-type="microsite_pcontentinter"> What are the benefits of an OLED gaming monitor? </button> </h3> <div class="features-faq__answer js-faq-answer" id="faq_item3" tabindex="-1" aria-hidden="true"> <div class="features-faq__answer-inner"> <p> In addition to the benefits above — deeper blacks, higher contrasts, consistent viewing angles — OLED gaming monitors have faster response times than LCD monitors. That means gamers get a response time that’s as close to zero as possible. Samsung OLED monitors can also assist gamers with eye strain. Their consistent viewing angles and lower blue light emissions help to ease the eye fatigue, dryness, and tearing that can occur when staring at a screen for a long period of time. </p> </div> </div> </li> <li class="features-faq__item js-bg-img js-faq-item" role="listitem" aria-expanded="false"> <h3 class="features-faq__question"> <button type="button" class="features-faq__question-arrow js-faq-open" aria-expanded="false" aria-controls="faq_item4" data-omni-type="microsite_pcontentinter"> What makes Samsung 4K OLED monitors and OLED gaming monitors special? </button> </h3> <div class="features-faq__answer js-faq-answer" id="faq_item4" tabindex="-1" aria-hidden="true"> <div class="features-faq__answer-inner"> <p> Samsung is the No. 1 OLED monitor and No. 1 OLED gaming monitor brand in the U.S. Samsung OLED monitors deliver superior brightness and dynamic contrast, with an expansive spectrum of colors and nearly limitless shades for consistently brilliant imagery. Their up to 360Hz refresh rate and 0.03ms response times allow gamers to outmaneuver opponents with supreme speed. Glare Free technology significantly reduces glare from external light sources so that the OLED screen’s perfect black and color experience can be enjoyed without distractions, and sleek metal design makes our OLEDs stunning in any space. </p> </div> </div> </li> </ul> </div> <script type="application/ld+json" data-type="seo"> { "@context": "http://schema.org", "@type": "Shop the Latest OLED Gaming Monitors FAQ | Samsung US", "mainEntity": [ { "@type": "Question", "name": "What does OLED mean?", "acceptedAnswer": { "@type": "Answer", "text": "OLED stands for “organic light emitting diode.” In traditional LCD monitors using LED (“light emitting diode”) technology, a single backlight illuminates all of the pixels in a screen, creating an image that’s bright but lacking in contrast and color accuracy. In OLED monitors, however, each pixel can autonomously self-light, allowing them to turn off and on completely and individually. This makes for a more precise, more controlled display image with superior contrast." } }, { "@type": "Question", "name": "OLED monitors vs. LCD monitors: How do they differ?", "acceptedAnswer": { "@type": "Answer", "text": "Because of their individual pixel lighting, OLED monitors can give users deeper blacks, greater contrast ratios, and more impressive image quality. They also look excellent at any viewing angle, with color and contrast remaining consistent no matter how the screen is tilted or which area of the room you’re watching from. OLEDs are also often thinner and lighter than LCDs which makes them easier to lift, move, and mount." } }, { "@type": "Question", "name": "What are the benefits of an OLED gaming monitor?", "acceptedAnswer": { "@type": "Answer", "text": "In addition to the benefits above — deeper blacks, higher contrasts, consistent viewing angles — OLED gaming monitors have faster response times than LCD monitors. That means gamers get a response time that’s as close to zero as possible. Samsung OLED monitors can also assist gamers with eye strain. Their consistent viewing angles and lower blue light emissions help to ease the eye fatigue, dryness, and tearing that can occur when staring at a screen for a long period of time." } }, { "@type": "Question", "name": "What makes Samsung 4K OLED monitors and OLED gaming monitors special?", "acceptedAnswer": { "@type": "Answer", "text": "Samsung is the No. 1 OLED monitor and No. 1 OLED gaming monitor brand in the U.S. Samsung OLED monitors deliver superior brightness and dynamic contrast, with an expansive spectrum of colors and nearly limitless shades for consistently brilliant imagery. Their up to 360Hz refresh rate and 0.03ms response times allow gamers to outmaneuver opponents with supreme speed. Glare Free technology significantly reduces glare from external light sources so that the OLED screen’s perfect black and color experience can be enjoyed without distractions, and sleek metal design makes our OLEDs stunning in any space." } } ] }</script> </section> <script> var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window, SCROLLER = ((_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function () { "use strict"; var S, y, v, w, g, e, b, T, x, C, d, p, _, t; _gsScope._gsDefine("TweenMax", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function (s, h, _) { function m(t) { for (var e = [], i = t.length, s = 0; s !== i; e.push(t[s++])); return e } function g(t, e, i) { var s, n, r = t.cycle; for (s in r) n = r[s], t[s] = "function" == typeof n ? n(i, e[i], e) : n[i % n.length]; delete t.cycle } function y(t) { var p, f, m, _, g, y, v, w; return "function" == typeof t ? t : (f = (p = "object" == typeof t ? t : { each: t }).ease, m = p.from || 0, _ = p.base || 0, g = {}, y = isNaN(m), v = p.axis, w = { center: .5, end: 1 }[m] || 0, function (t, e, i) { var s, n, r, o, a, l, c, h, u = (i || p).length, d = g[u]; if (!d) { if (!(h = "auto" === p.grid ? 0 : (p.grid || [1 / 0])[0])) { for (l = -1 / 0; l < (l = i[h++].getBoundingClientRect().left) && h < u;); h-- } for (d = g[u] = [], s = y ? Math.min(h, u) * w - .5 : m % h, n = y ? u * w / h - .5 : m / h | 0, c = 1 / (l = 0), a = 0; a < u; a++)o = a % h - s, r = n - (a / h | 0), d[a] = o = v ? Math.abs("y" === v ? r : o) : Math.sqrt(o * o + r * r), l < o && (l = o), o < c && (c = o); d.max = l - c, d.min = c, d.v = u = p.amount || p.each * (u < h ? u - 1 : v ? "y" === v ? u / h : h : Math.max(h, u / h)) || 0, d.b = u < 0 ? _ - u : _ } return u = (d[t] - d.min) / d.max, d.b + (f ? f.getRatio(u) : u) * d.v }) } function v(t, e, i) { _.call(this, t, e, i), this._cycle = 0, this._yoyo = !0 === this.vars.yoyo || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._repeat && this._uncache(!0), this.render = v.prototype.render } function r(t, e) { for (var i = [], s = 0, n = t._first; n;)n instanceof _ ? i[s++] = n : (e && (i[s++] = n), s = (i = i.concat(r(n, e))).length), n = n._next; return i } function n(t, e, i, s) { e = !1 !== e, i = !1 !== i; for (var n, r, o = u(s = !1 !== s), a = e && i && s, l = o.length; -1 < --l;)r = o[l], (a || r instanceof h || (n = r.target === r.vars.onComplete) && i || e && !n) && r.paused(t) } var w = _._internals, b = w.isSelector, T = w.isArray, t = v.prototype = _.to({}, .1, {}), x = [], u = (v.version = "2.1.3", t.constructor = v, t.kill()._gc = !1, v.killTweensOf = v.killDelayedCallsTo = _.killTweensOf, v.getTweensOf = _.getTweensOf, v.lagSmoothing = _.lagSmoothing, v.ticker = _.ticker, v.render = _.render, v.distribute = y, t.invalidate = function () { return this._yoyo = !0 === this.vars.yoyo || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._yoyoEase = null, this._uncache(!0), _.prototype.invalidate.call(this) }, t.updateTo = function (t, e) { var i, s = this.ratio, n = this.vars.immediateRender || t.immediateRender; for (i in e && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay)), t) this.vars[i] = t[i]; if (this._initted || n) if (e) this._initted = !1, n && this.render(0, !0, !0); else if (this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && _._onPluginEvent("_onDisable", this), .998 < this._time / this._duration) { e = this._totalTime; this.render(0, !0, !1), this._initted = !1, this.render(e, !0, !1) } else if (this._initted = !1, this._init(), 0 < this._time || n) for (var r, o = 1 / (1 - s), a = this._firstPT; a;)r = a.s + a.c, a.c *= o, a.s = r - a.c, a = a._next; return this }, t.render = function (t, e, i) { this._initted || 0 === this._duration && this.vars.repeat && this.invalidate(); var s, n, r, o, a, l, c, h = this._dirty ? this.totalDuration() : this._totalDuration, u = this._time, d = this._totalTime, p = this._cycle, f = this._duration, m = this._rawPrevTime; if (h - 1e-8 <= t && 0 <= t ? (this._totalTime = h, this._cycle = this._repeat, this._yoyo && 0 != (1 & this._cycle) ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = f, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (s = !0, n = "onComplete", i = i || this._timeline.autoRemoveChildren), 0 !== f || !this._initted && this.vars.lazy && !i || (this._startTime === this._timeline._duration && (t = 0), (m < 0 || t <= 0 && -1e-8 <= t || 1e-8 === m && "isPause" !== this.data) && m !== t && (i = !0, 1e-8 < m) && (n = "onReverseComplete"), this._rawPrevTime = l = !e || t || m === t ? t : 1e-8)) : t < 1e-8 ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== d || 0 === f && 0 < m) && (n = "onReverseComplete", s = this._reversed), -1e-8 < t ? t = 0 : t < 0 && (this._active = !1, 0 === f) && (this._initted || !this.vars.lazy || i) && (0 <= m && (i = !0), this._rawPrevTime = l = !e || t || m === t ? t : 1e-8), this._initted || (i = !0)) : (this._totalTime = this._time = t, 0 !== this._repeat && (h = f + this._repeatDelay, this._cycle = this._totalTime / h >> 0, 0 !== this._cycle && this._cycle === this._totalTime / h && d <= t && this._cycle--, this._time = this._totalTime - this._cycle * h, this._yoyo && 0 != (1 & this._cycle) && (this._time = f - this._time, c = this._yoyoEase || this.vars.yoyoEase) && (this._yoyoEase || (!0 !== c || this._initted ? this._yoyoEase = c = !0 === c ? this._ease : c instanceof Ease ? c : Ease.map[c] : (c = this.vars.ease, this._yoyoEase = c = c ? c instanceof Ease ? c : "function" == typeof c ? new Ease(c, this.vars.easeParams) : Ease.map[c] || _.defaultEase : _.defaultEase)), this.ratio = c ? 1 - c.getRatio((f - this._time) / f) : 0), this._time > f ? this._time = f : this._time < 0 && (this._time = 0)), this._easeType && !c ? (h = this._time / f, (1 === (o = this._easeType) || 3 === o && .5 <= h) && (h = 1 - h), 3 === o && (h *= 2), 1 === (a = this._easePower) ? h *= h : 2 === a ? h *= h * h : 3 === a ? h *= h * h * h : 4 === a && (h *= h * h * h * h), this.ratio = 1 === o ? 1 - h : 2 === o ? h : this._time / f < .5 ? h / 2 : 1 - h / 2) : c || (this.ratio = this._ease.getRatio(this._time / f))), u !== this._time || i || p !== this._cycle) { if (!this._initted) { if (this._init(), !this._initted || this._gc) return; if (!i && this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration)) return this._time = u, this._totalTime = d, this._rawPrevTime = m, this._cycle = p, w.lazyTweens.push(this), void (this._lazy = [t, e]); !this._time || s || c ? s && this._ease._calcEnd && !c && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1)) : this.ratio = this._ease.getRatio(this._time / f) } for (!1 !== this._lazy && (this._lazy = !1), this._active || !this._paused && this._time !== u && 0 <= t && (this._active = !0), 0 !== d || (2 === this._initted && 0 < t && this._init(), this._startAt && (0 <= t ? this._startAt.render(t, !0, i) : n = n || "_dummyGS"), !this.vars.onStart) || 0 === this._totalTime && 0 !== f || e || this._callback("onStart"), r = this._firstPT; r;)r.f ? r.t[r.p](r.c * this.ratio + r.s) : r.t[r.p] = r.c * this.ratio + r.s, r = r._next; this._onUpdate && (t < 0 && this._startAt && this._startTime && this._startAt.render(t, !0, i), e || this._totalTime === d && !n || this._callback("onUpdate")), this._cycle === p || e || this._gc || this.vars.onRepeat && this._callback("onRepeat"), !n || this._gc && !i || (t < 0 && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(t, !0, i), s && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e && this.vars[n] && this._callback(n), 0 === f && 1e-8 === this._rawPrevTime && 1e-8 !== l && (this._rawPrevTime = 0)) } else d === this._totalTime || !this._onUpdate || e || this._callback("onUpdate") }, v.to = function (t, e, i) { return new v(t, e, i) }, v.from = function (t, e, i) { return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, new v(t, e, i) }, v.fromTo = function (t, e, i, s) { return s.startAt = i, s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender, new v(t, e, s) }, v.staggerTo = v.allTo = function (t, e, i, s, n, r, o) { var a, l, c, h, u = [], d = y(i.stagger || s), p = i.cycle, f = (i.startAt || x).cycle; for (T(t) || ("string" == typeof t && (t = _.selector(t) || t), b(t) && (t = m(t))), a = (t = t || []).length - 1, c = 0; c <= a; c++) { for (h in l = {}, i) l[h] = i[h]; if (p && (g(l, t, c), null != l.duration) && (e = l.duration, delete l.duration), f) { for (h in f = l.startAt = {}, i.startAt) f[h] = i.startAt[h]; g(l.startAt, t, c) } l.delay = d(c, t[c], t) + (l.delay || 0), c === a && n && (l.onComplete = function () { i.onComplete && i.onComplete.apply(i.onCompleteScope || this, arguments), n.apply(o || i.callbackScope || this, r || x) }), u[c] = new v(t[c], e, l) } return u }, v.staggerFrom = v.allFrom = function (t, e, i, s, n, r, o) { return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, v.staggerTo(t, e, i, s, n, r, o) }, v.staggerFromTo = v.allFromTo = function (t, e, i, s, n, r, o, a) { return s.startAt = i, s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender, v.staggerTo(t, e, s, n, r, o, a) }, v.delayedCall = function (t, e, i, s, n) { return new v(e, 0, { delay: t, onComplete: e, onCompleteParams: i, callbackScope: s, onReverseComplete: e, onReverseCompleteParams: i, immediateRender: !1, useFrames: n, overwrite: 0 }) }, v.set = function (t, e) { return new v(t, 0, e) }, v.isTweening = function (t) { return 0 < _.getTweensOf(t, !0).length }, v.getAllTweens = function (t) { return r(s._rootTimeline, t).concat(r(s._rootFramesTimeline, t)) }); v.killAll = function (t, e, i, s) { null == e && (e = !0), null == i && (i = !0); for (var n, r, o = u(0 != s), a = o.length, l = e && i && s, c = 0; c < a; c++)r = o[c], (l || r instanceof h || (n = r.target === r.vars.onComplete) && i || e && !n) && (t ? r.totalTime(r._reversed ? 0 : r.totalDuration()) : r._enabled(!1, !1)) }, v.killChildTweensOf = function (t, e) { if (null != t) { var i, s, n, r, o, a = w.tweenLookup; if ("string" == typeof t && (t = _.selector(t) || t), b(t) && (t = m(t)), T(t)) for (r = t.length; -1 < --r;)v.killChildTweensOf(t[r], e); else { for (n in i = [], a) for (s = a[n].target.parentNode; s;)s === t && (i = i.concat(a[n].tweens)), s = s.parentNode; for (o = i.length, r = 0; r < o; r++)e && i[r].totalTime(i[r].totalDuration()), i[r]._enabled(!1, !1) } } }; return v.pauseAll = function (t, e, i) { n(!0, t, e, i) }, v.resumeAll = function (t, e, i) { n(!1, t, e, i) }, v.globalTimeScale = function (t) { var e = s._rootTimeline, i = _.ticker.time; return arguments.length ? (e._startTime = i - (i - e._startTime) * e._timeScale / (t = t || 1e-8), e = s._rootFramesTimeline, i = _.ticker.frame, e._startTime = i - (i - e._startTime) * e._timeScale / t, e._timeScale = s._rootTimeline._timeScale = t) : e._timeScale }, t.progress = function (t, e) { return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 != (1 & this._cycle) ? 1 - t : t) + this._cycle * (this._duration + this._repeatDelay), e) : this.duration() ? this._time / this._duration : this.ratio }, t.totalProgress = function (t, e) { return arguments.length ? this.totalTime(this.totalDuration() * t, e) : this._totalTime / this.totalDuration() }, t.time = function (t, e) { if (!arguments.length) return this._time; this._dirty && this.totalDuration(); var i = this._duration, s = this._cycle, n = s * (i + this._repeatDelay); return i < t && (t = i), this.totalTime(this._yoyo && 1 & s ? i - t + n : this._repeat ? t + n : t, e) }, t.duration = function (t) { return arguments.length ? s.prototype.duration.call(this, t) : this._duration }, t.totalDuration = function (t) { return arguments.length ? -1 === this._repeat ? this : this.duration((t - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration) }, t.repeat = function (t) { return arguments.length ? (this._repeat = t, this._uncache(!0)) : this._repeat }, t.repeatDelay = function (t) { return arguments.length ? (this._repeatDelay = t, this._uncache(!0)) : this._repeatDelay }, t.yoyo = function (t) { return arguments.length ? (this._yoyo = t, this) : this._yoyo }, v }, !0), _gsScope._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function (h, u, f) { function m(t) { u.call(this, t); var e, i, s = this.vars; for (i in this._labels = {}, this.autoRemoveChildren = !!s.autoRemoveChildren, this.smoothChildTiming = !!s.smoothChildTiming, this._sortChildren = !0, this._onUpdate = s.onUpdate, s) e = s[i], d(e) && -1 !== e.join("").indexOf("{self}") && (s[i] = this._swapSelfInParams(e)); d(s.tweens) && this.add(s.tweens, 0, s.align, s.stagger) } function _(t) { var e, i = {}; for (e in t) i[e] = t[e]; return i } function g(t, e, i) { var s, n, r = t.cycle; for (s in r) n = r[s], t[s] = "function" == typeof n ? n(i, e[i], e) : n[i % n.length]; delete t.cycle } function c(t, e, i, s) { var n = "immediateRender"; return n in e || (e[n] = !(i && !1 === i[n] || s)), e } function y(t) { var p, f, m, _, g, y, v, w; return "function" == typeof t ? t : (f = (p = "object" == typeof t ? t : { each: t }).ease, m = p.from || 0, _ = p.base || 0, g = {}, y = isNaN(m), v = p.axis, w = { center: .5, end: 1 }[m] || 0, function (t, e, i) { var s, n, r, o, a, l, c, h, u = (i || p).length, d = g[u]; if (!d) { if (!(h = "auto" === p.grid ? 0 : (p.grid || [1 / 0])[0])) { for (l = -1 / 0; l < (l = i[h++].getBoundingClientRect().left) && h < u;); h-- } for (d = g[u] = [], s = y ? Math.min(h, u) * w - .5 : m % h, n = y ? u * w / h - .5 : m / h | 0, c = 1 / (l = 0), a = 0; a < u; a++)o = a % h - s, r = n - (a / h | 0), d[a] = o = v ? Math.abs("y" === v ? r : o) : Math.sqrt(o * o + r * r), l < o && (l = o), o < c && (c = o); d.max = l - c, d.min = c, d.v = u = p.amount || p.each * (u < h ? u - 1 : v ? "y" === v ? u / h : h : Math.max(h, u / h)) || 0, d.b = u < 0 ? _ - u : _ } return u = (d[t] - d.min) / d.max, d.b + (f ? f.getRatio(u) : u) * d.v }) } var t = f._internals, e = m._internals = {}, v = t.isSelector, d = t.isArray, w = t.lazyTweens, b = t.lazyRender, o = _gsScope._gsDefine.globals, n = e.pauseCallback = function () { }, t = m.prototype = new u; return m.version = "2.1.3", m.distribute = y, t.constructor = m, t.kill()._gc = t._forcingPlayhead = t._hasPause = !1, t.to = function (t, e, i, s) { var n = i.repeat && o.TweenMax || f; return e ? this.add(new n(t, e, i), s) : this.set(t, i, s) }, t.from = function (t, e, i, s) { return this.add((i.repeat && o.TweenMax || f).from(t, e, c(0, i)), s) }, t.fromTo = function (t, e, i, s, n) { var r = s.repeat && o.TweenMax || f; return s = c(0, s, i), e ? this.add(r.fromTo(t, e, i, s), n) : this.set(t, s, n) }, t.staggerTo = function (t, e, i, s, n, r, o, a) { var l, c, h = new m({ onComplete: r, onCompleteParams: o, callbackScope: a, smoothChildTiming: this.smoothChildTiming }), u = y(i.stagger || s), d = i.startAt, p = i.cycle; for ("string" == typeof t && (t = f.selector(t) || t), v(t = t || []) && (t = function (t) { for (var e = [], i = t.length, s = 0; s !== i; e.push(t[s++])); return e }(t)), c = 0; c < t.length; c++)l = _(i), d && (l.startAt = _(d), d.cycle) && g(l.startAt, t, c), p && (g(l, t, c), null != l.duration) && (e = l.duration, delete l.duration), h.to(t[c], e, l, u(c, t[c], t)); return this.add(h, n) }, t.staggerFrom = function (t, e, i, s, n, r, o, a) { return i.runBackwards = !0, this.staggerTo(t, e, c(0, i), s, n, r, o, a) }, t.staggerFromTo = function (t, e, i, s, n, r, o, a, l) { return s.startAt = i, this.staggerTo(t, e, c(0, s, i), n, r, o, a, l) }, t.call = function (t, e, i, s) { return this.add(f.delayedCall(0, t, e, i), s) }, t.set = function (t, e, i) { return this.add(new f(t, 0, c(0, e, null, !0)), i) }, m.exportRoot = function (t, e) { null == (t = t || {}).smoothChildTiming && (t.smoothChildTiming = !0); var i, s, n, r, o = new m(t), t = o._timeline; for (null == e && (e = !0), t._remove(o, !0), o._startTime = 0, o._rawPrevTime = o._time = o._totalTime = t._time, n = t._first; n;)r = n._next, e && n instanceof f && n.target === n.vars.onComplete || ((s = n._startTime - n._delay) < 0 && (i = 1), o.add(n, s)), n = r; return t.add(o, 0), i && o.totalDuration(), o }, t.add = function (t, e, i, s) { var n, r, o, a, l, c; if ("number" != typeof e && (e = this._parseTimeOrLabel(e, 0, !0, t)), !(t instanceof h)) { if (t instanceof Array || t && t.push && d(t)) { for (i = i || "normal", s = s || 0, n = e, r = t.length, o = 0; o < r; o++)d(a = t[o]) && (a = new m({ tweens: a })), this.add(a, n), "string" != typeof a && "function" != typeof a && ("sequence" === i ? n = a._startTime + a.totalDuration() / a._timeScale : "start" === i && (a._startTime -= a.delay())), n += s; return this._uncache(!0) } if ("string" == typeof t) return this.addLabel(t, e); if ("function" != typeof t) throw "Cannot add " + t + " into the timeline; it is not a tween, timeline, function, or string."; t = f.delayedCall(0, t) } if (u.prototype.add.call(this, t, e), (t._time || !t._duration && t._initted) && (n = (this.rawTime() - t._startTime) * t._timeScale, !t._duration || 1e-5 < Math.abs(Math.max(0, Math.min(t.totalDuration(), n))) - t._totalTime) && t.render(n, !1, !1), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration()) for (c = (l = this).rawTime() > t._startTime; l._timeline;)c && l._timeline.smoothChildTiming ? l.totalTime(l._totalTime, !0) : l._gc && l._enabled(!0, !1), l = l._timeline; return this }, t.remove = function (t) { var e; if (t instanceof h) return this._remove(t, !1), e = t._timeline = t.vars.useFrames ? h._rootFramesTimeline : h._rootTimeline, t._startTime = (t._paused ? t._pauseTime : e._time) - (t._reversed ? t.totalDuration() - t._totalTime : t._totalTime) / t._timeScale, this; if (t instanceof Array || t && t.push && d(t)) { for (var i = t.length; -1 < --i;)this.remove(t[i]); return this } return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t) }, t._remove = function (t, e) { return u.prototype._remove.call(this, t, e), this._last ? this._time > this.duration() && (this._time = this._duration, this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this }, t.append = function (t, e) { return this.add(t, this._parseTimeOrLabel(null, e, !0, t)) }, t.insert = t.insertMultiple = function (t, e, i, s) { return this.add(t, e || 0, i, s) }, t.appendMultiple = function (t, e, i, s) { return this.add(t, this._parseTimeOrLabel(null, e, !0, t), i, s) }, t.addLabel = function (t, e) { return this._labels[t] = this._parseTimeOrLabel(e), this }, t.addPause = function (t, e, i, s) { i = f.delayedCall(0, n, i, s || this); return i.vars.onComplete = i.vars.onReverseComplete = e, i.data = "isPause", this._hasPause = !0, this.add(i, t) }, t.removeLabel = function (t) { return delete this._labels[t], this }, t.getLabelTime = function (t) { return null != this._labels[t] ? this._labels[t] : -1 }, t._parseTimeOrLabel = function (t, e, i, s) { var n, r; if (s instanceof h && s.timeline === this) this.remove(s); else if (s && (s instanceof Array || s.push && d(s))) for (r = s.length; -1 < --r;)s[r] instanceof h && s[r].timeline === this && this.remove(s[r]); if (n = "number" != typeof t || e ? 99999999999 < this.duration() ? this.recent().endTime(!1) : this._duration : 0, "string" == typeof e) return this._parseTimeOrLabel(e, i && "number" == typeof t && null == this._labels[e] ? t - n : 0, i); if (e = e || 0, "string" != typeof t || !isNaN(t) && null == this._labels[t]) null == t && (t = n); else { if (-1 === (r = t.indexOf("="))) return null == this._labels[t] ? i ? this._labels[t] = n + e : e : this._labels[t] + e; e = parseInt(t.charAt(r - 1) + "1", 10) * Number(t.substr(r + 1)), t = 1 < r ? this._parseTimeOrLabel(t.substr(0, r - 1), 0, i) : n } return Number(t) + e }, t.seek = function (t, e) { return this.totalTime("number" == typeof t ? t : this._parseTimeOrLabel(t), !1 !== e) }, t.stop = function () { return this.paused(!0) }, t.gotoAndPlay = function (t, e) { return this.play(t, e) }, t.gotoAndStop = function (t, e) { return this.pause(t, e) }, t.render = function (t, e, i) { this._gc && this._enabled(!0, !1); var s, n, r, o, a, l, c, h, u = this._time, d = this._dirty ? this.totalDuration() : this._totalDuration, p = this._startTime, f = this._timeScale, m = this._paused; if (u !== this._time && (t += this._time - u), this._hasPause && !this._forcingPlayhead && !e) { if (u < t) for (s = this._first; s && s._startTime <= t && !l;)s._duration || "isPause" !== s.data || s.ratio || 0 === s._startTime && 0 === this._rawPrevTime || (l = s), s = s._next; else for (s = this._last; s && s._startTime >= t && !l;)s._duration || "isPause" === s.data && 0 < s._rawPrevTime && (l = s), s = s._prev; l && (this._time = this._totalTime = t = l._startTime, h = this._startTime + (this._reversed ? this._duration - t : t) / this._timeScale) } if (d - 1e-8 <= t && 0 <= t) this._totalTime = this._time = d, this._reversed || this._hasPausedChild() || (n = !0, o = "onComplete", a = !!this._timeline.autoRemoveChildren, 0 === this._duration && (t <= 0 && -1e-8 <= t || this._rawPrevTime < 0 || 1e-8 === this._rawPrevTime) && this._rawPrevTime !== t && this._first && (a = !0, 1e-8 < this._rawPrevTime) && (o = "onReverseComplete")), this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : 1e-8, t = d + 1e-4; else if (t < 1e-8) if (-1e-8 < t && (t = 0), ((this._totalTime = this._time = 0) !== u || 0 === this._duration && 1e-8 !== this._rawPrevTime && (0 < this._rawPrevTime || t < 0 && 0 <= this._rawPrevTime)) && (o = "onReverseComplete", n = this._reversed), t < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (a = n = !0, o = "onReverseComplete") : 0 <= this._rawPrevTime && this._first && (a = !0), this._rawPrevTime = t; else { if (this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : 1e-8, 0 === t && n) for (s = this._first; s && 0 === s._startTime;)s._duration || (n = !1), s = s._next; t = 0, this._initted || (a = !0) } else this._totalTime = this._time = this._rawPrevTime = t; if (this._time !== u && this._first || i || a || l) { if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== u && 0 < t && (this._active = !0), 0 !== u || !this.vars.onStart || 0 === this._time && this._duration || e || this._callback("onStart"), (c = this._time) >= u) for (s = this._first; s && (r = s._next, c === this._time) && (!this._paused || m);)(s._active || s._startTime <= c && !s._paused && !s._gc) && (l === s && (this.pause(), this._pauseTime = h), s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i)), s = r; else for (s = this._last; s && (r = s._prev, c === this._time) && (!this._paused || m);) { if (s._active || s._startTime <= u && !s._paused && !s._gc) { if (l === s) { for (l = s._prev; l && l.endTime() > this._time;)l.render(l._reversed ? l.totalDuration() - (t - l._startTime) * l._timeScale : (t - l._startTime) * l._timeScale, e, i), l = l._prev; l = null, this.pause(), this._pauseTime = h } s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i) } s = r } this._onUpdate && !e && (w.length && b(), this._callback("onUpdate")), !o || this._gc || p !== this._startTime && f === this._timeScale || (0 === this._time || d >= this.totalDuration()) && (n && (w.length && b(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e) && this.vars[o] && this._callback(o) } }, t._hasPausedChild = function () { for (var t = this._first; t;) { if (t._paused || t instanceof m && t._hasPausedChild()) return !0; t = t._next } return !1 }, t.getChildren = function (t, e, i, s) { s = s || -9999999999; for (var n = [], r = this._first, o = 0; r;)r._startTime < s || (r instanceof f ? !1 !== e && (n[o++] = r) : (!1 !== i && (n[o++] = r), !1 !== t && (o = (n = n.concat(r.getChildren(!0, e, i))).length))), r = r._next; return n }, t.getTweensOf = function (t, e) { var i, s, n = this._gc, r = [], o = 0; for (n && this._enabled(!0, !0), s = (i = f.getTweensOf(t)).length; -1 < --s;)(i[s].timeline === this || e && this._contains(i[s])) && (r[o++] = i[s]); return n && this._enabled(!1, !0), r }, t.recent = function () { return this._recent }, t._contains = function (t) { for (var e = t.timeline; e;) { if (e === this) return !0; e = e.timeline } return !1 }, t.shiftChildren = function (t, e, i) { i = i || 0; for (var s, n = this._first, r = this._labels; n;)n._startTime >= i && (n._startTime += t), n = n._next; if (e) for (s in r) r[s] >= i && (r[s] += t); return this._uncache(!0) }, t._kill = function (t, e) { if (!t && !e) return this._enabled(!1, !1); for (var i = e ? this.getTweensOf(e) : this.getChildren(!0, !0, !1), s = i.length, n = !1; -1 < --s;)i[s]._kill(t, e) && (n = !0); return n }, t.clear = function (t) { var e = this.getChildren(!1, !0, !0), i = e.length; for (this._time = this._totalTime = 0; -1 < --i;)e[i]._enabled(!1, !1); return !1 !== t && (this._labels = {}), this._uncache(!0) }, t.invalidate = function () { for (var t = this._first; t;)t.invalidate(), t = t._next; return h.prototype.invalidate.call(this) }, t._enabled = function (t, e) { if (t === this._gc) for (var i = this._first; i;)i._enabled(t, !0), i = i._next; return u.prototype._enabled.call(this, t, e) }, t.totalTime = function (t, e, i) { this._forcingPlayhead = !0; var s = h.prototype.totalTime.apply(this, arguments); return this._forcingPlayhead = !1, s }, t.duration = function (t) { return arguments.length ? (0 !== this.duration() && 0 !== t && this.timeScale(this._duration / t), this) : (this._dirty && this.totalDuration(), this._duration) }, t.totalDuration = function (t) { if (arguments.length) return t && this.totalDuration() ? this.timeScale(this._totalDuration / t) : this; if (this._dirty) { for (var e, i, s = 0, n = this._last, r = 999999999999; n;)e = n._prev, n._dirty && n.totalDuration(), n._startTime > r && this._sortChildren && !n._paused && !this._calculatingDuration ? (this._calculatingDuration = 1, this.add(n, n._startTime - n._delay), this._calculatingDuration = 0) : r = n._startTime, n._startTime < 0 && !n._paused && (s -= n._startTime, this._timeline.smoothChildTiming && (this._startTime += n._startTime / this._timeScale, this._time -= n._startTime, this._totalTime -= n._startTime, this._rawPrevTime -= n._startTime), this.shiftChildren(-n._startTime, !1, -9999999999), r = 0), (i = n._startTime + n._totalDuration / n._timeScale) > s && (s = i), n = e; this._duration = this._totalDuration = s, this._dirty = !1 } return this._totalDuration }, t.paused = function (t) { if (!1 === t && this._paused) for (var e = this._first; e;)e._startTime === this._time && "isPause" === e.data && (e._rawPrevTime = 0), e = e._next; return h.prototype.paused.apply(this, arguments) }, t.usesFrames = function () { for (var t = this._timeline; t._timeline;)t = t._timeline; return t === h._rootFramesTimeline }, t.rawTime = function (t) { return t && (this._paused || this._repeat && 0 < this.time() && this.totalProgress() < 1) ? this._totalTime % (this._duration + this._repeatDelay) : this._paused ? this._totalTime : (this._timeline.rawTime(t) - this._startTime) * this._timeScale }, m }, !0), _gsScope._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function (e, a, t) { function i(t) { e.call(this, t), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = !!this.vars.yoyo, this._dirty = !0 } var s = a._internals, A = s.lazyTweens, P = s.lazyRender, l = _gsScope._gsDefine.globals, c = new t(null, null, 1, 0), s = i.prototype = new e; return s.constructor = i, s.kill()._gc = !1, i.version = "2.1.3", s.invalidate = function () { return this._yoyo = !!this.vars.yoyo, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), e.prototype.invalidate.call(this) }, s.addCallback = function (t, e, i, s) { return this.add(a.delayedCall(0, t, i, s), e) }, s.removeCallback = function (t, e) { if (t) if (null == e) this._kill(null, t); else for (var i = this.getTweensOf(t, !1), s = i.length, n = this._parseTimeOrLabel(e); -1 < --s;)i[s]._startTime === n && i[s]._enabled(!1, !1); return this }, s.removePause = function (t) { return this.removeCallback(e._internals.pauseCallback, t) }, s.tweenTo = function (t, e) { e = e || {}; var i, s, n, r = { ease: c, useFrames: this.usesFrames(), immediateRender: !1, lazy: !1 }, o = e.repeat && l.TweenMax || a; for (s in e) r[s] = e[s]; return r.time = this._parseTimeOrLabel(t), i = Math.abs(Number(r.time) - this._time) / this._timeScale || .001, n = new o(this, i, r), r.onStart = function () { n.target.paused(!0), n.vars.time === n.target.time() || i !== n.duration() || n.isFromTo || n.duration(Math.abs(n.vars.time - n.target.time()) / n.target._timeScale).render(n.time(), !0, !0), e.onStart && e.onStart.apply(e.onStartScope || e.callbackScope || n, e.onStartParams || []) }, n }, s.tweenFromTo = function (t, e, i) { i = i || {}, t = this._parseTimeOrLabel(t), i.startAt = { onComplete: this.seek, onCompleteParams: [t], callbackScope: this }, i.immediateRender = !1 !== i.immediateRender; e = this.tweenTo(e, i); return e.isFromTo = 1, e.duration(Math.abs(e.vars.time - t) / this._timeScale || .001) }, s.render = function (t, e, i) { this._gc && this._enabled(!0, !1); var s, n, r, o, a, l, c, h, u = this._time, d = this._dirty ? this.totalDuration() : this._totalDuration, p = this._duration, f = this._totalTime, m = this._startTime, _ = this._timeScale, g = this._rawPrevTime, y = this._paused, v = this._cycle; if (u !== this._time && (t += this._time - u), d - 1e-8 <= t && 0 <= t) this._locked || (this._totalTime = d, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (n = !0, o = "onComplete", a = !!this._timeline.autoRemoveChildren, 0 === this._duration && (t <= 0 && -1e-8 <= t || g < 0 || 1e-8 === g) && g !== t && this._first && (a = !0, 1e-8 < g) && (o = "onReverseComplete")), this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : 1e-8, this._yoyo && 1 & this._cycle ? this._time = t = 0 : t = (this._time = p) + 1e-4; else if (t < 1e-8) if (this._locked || (this._totalTime = this._cycle = 0), -1e-8 < t && (t = 0), ((this._time = 0) !== u || 0 === p && 1e-8 !== g && (0 < g || t < 0 && 0 <= g) && !this._locked) && (o = "onReverseComplete", n = this._reversed), t < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (a = n = !0, o = "onReverseComplete") : 0 <= g && this._first && (a = !0), this._rawPrevTime = t; else { if (this._rawPrevTime = p || !e || t || this._rawPrevTime === t ? t : 1e-8, 0 === t && n) for (s = this._first; s && 0 === s._startTime;)s._duration || (n = !1), s = s._next; t = 0, this._initted || (a = !0) } else 0 === p && g < 0 && (a = !0), this._time = this._rawPrevTime = t, this._locked || (this._totalTime = t, 0 !== this._repeat && (w = p + this._repeatDelay, this._cycle = this._totalTime / w >> 0, this._cycle && this._cycle === this._totalTime / w && f <= t && this._cycle--, this._time = this._totalTime - this._cycle * w, this._yoyo && 1 & this._cycle && (this._time = p - this._time), this._time > p ? t = (this._time = p) + 1e-4 : this._time < 0 ? this._time = t = 0 : t = this._time)); if (this._hasPause && !this._forcingPlayhead && !e) { if ((t = this._time) > u || this._repeat && v !== this._cycle) for (s = this._first; s && s._startTime <= t && !l;)s._duration || "isPause" !== s.data || s.ratio || 0 === s._startTime && 0 === this._rawPrevTime || (l = s), s = s._next; else for (s = this._last; s && s._startTime >= t && !l;)s._duration || "isPause" === s.data && 0 < s._rawPrevTime && (l = s), s = s._prev; l && (h = this._startTime + (this._reversed ? this._duration - l._startTime : l._startTime) / this._timeScale, l._startTime < p) && (this._time = this._rawPrevTime = t = l._startTime, this._totalTime = t + this._cycle * (this._totalDuration + this._repeatDelay)) } if (this._cycle !== v && !this._locked) { var w = this._yoyo && 0 != (1 & v), b = w === (this._yoyo && 0 != (1 & this._cycle)), T = this._totalTime, x = this._cycle, S = this._rawPrevTime, C = this._time; if (this._totalTime = v * p, this._cycle < v ? w = !w : this._totalTime += p, this._time = u, this._rawPrevTime = 0 === p ? g - 1e-4 : g, this._cycle = v, this._locked = !0, this.render(u = w ? 0 : p, e, 0 === p), e || this._gc || this.vars.onRepeat && (this._cycle = x, this._locked = !1, this._callback("onRepeat")), u !== this._time) return; if (b && (this._cycle = v, this._locked = !0, this.render(u = w ? p + 1e-4 : -1e-4, !0, !1)), this._locked = !1, this._paused && !y) return; this._time = C, this._totalTime = T, this._cycle = x, this._rawPrevTime = S } if (this._time !== u && this._first || i || a || l) { if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== f && 0 < t && (this._active = !0), 0 !== f || !this.vars.onStart || 0 === this._totalTime && this._totalDuration || e || this._callback("onStart"), (c = this._time) >= u) for (s = this._first; s && (r = s._next, c === this._time) && (!this._paused || y);)(s._active || s._startTime <= this._time && !s._paused && !s._gc) && (l === s && (this.pause(), this._pauseTime = h), s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i)), s = r; else for (s = this._last; s && (r = s._prev, c === this._time) && (!this._paused || y);) { if (s._active || s._startTime <= u && !s._paused && !s._gc) { if (l === s) { for (l = s._prev; l && l.endTime() > this._time;)l.render(l._reversed ? l.totalDuration() - (t - l._startTime) * l._timeScale : (t - l._startTime) * l._timeScale, e, i), l = l._prev; l = null, this.pause(), this._pauseTime = h } s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i) } s = r } this._onUpdate && !e && (A.length && P(), this._callback("onUpdate")), !o || this._locked || this._gc || m !== this._startTime && _ === this._timeScale || (0 === this._time || d >= this.totalDuration()) && (n && (A.length && P(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e) && this.vars[o] && this._callback(o) } else f === this._totalTime || !this._onUpdate || e || this._callback("onUpdate") }, s.getActive = function (t, e, i) { for (var s, n = [], r = this.getChildren(t || null == t, e || null == t, !!i), o = 0, a = r.length, l = 0; l < a; l++)(s = r[l]).isActive() && (n[o++] = s); return n }, s.getLabelAfter = function (t) { t || 0 !== t && (t = this._time); for (var e = this.getLabelsArray(), i = e.length, s = 0; s < i; s++)if (e[s].time > t) return e[s].name; return null }, s.getLabelBefore = function (t) { null == t && (t = this._time); for (var e = this.getLabelsArray(), i = e.length; -1 < --i;)if (e[i].time < t) return e[i].name; return null }, s.getLabelsArray = function () { var t, e = [], i = 0; for (t in this._labels) e[i++] = { time: this._labels[t], name: t }; return e.sort(function (t, e) { return t.time - e.time }), e }, s.invalidate = function () { return this._locked = !1, e.prototype.invalidate.call(this) }, s.progress = function (t, e) { return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 != (1 & this._cycle) ? 1 - t : t) + this._cycle * (this._duration + this._repeatDelay), e) : this._time / this.duration() || 0 }, s.totalProgress = function (t, e) { return arguments.length ? this.totalTime(this.totalDuration() * t, e) : this._totalTime / this.totalDuration() || 0 }, s.totalDuration = function (t) { return arguments.length ? -1 !== this._repeat && t ? this.timeScale(this.totalDuration() / t) : this : (this._dirty && (e.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration) }, s.time = function (t, e) { if (!arguments.length) return this._time; this._dirty && this.totalDuration(); var i = this._duration, s = this._cycle, n = s * (i + this._repeatDelay); return i < t && (t = i), this.totalTime(this._yoyo && 1 & s ? i - t + n : this._repeat ? t + n : t, e) }, s.repeat = function (t) { return arguments.length ? (this._repeat = t, this._uncache(!0)) : this._repeat }, s.repeatDelay = function (t) { return arguments.length ? (this._repeatDelay = t, this._uncache(!0)) : this._repeatDelay }, s.yoyo = function (t) { return arguments.length ? (this._yoyo = t, this) : this._yoyo }, s.currentLabel = function (t) { return arguments.length ? this.seek(t, !0) : this.getLabelBefore(this._time + 1e-8) }, i }, !0), S = 180 / Math.PI, y = [], v = [], w = [], g = {}, e = _gsScope._gsDefine.globals, b = function (t, e, i, s) { i === s && (i = s - (s - e) / 1e6), t === e && (e = t + (i - t) / 1e6), this.a = t, this.b = e, this.c = i, this.d = s, this.da = s - t, this.ca = i - t, this.ba = e - t }, T = function (t, e, i, s) { var n = { a: t }, r = {}, o = {}, a = { c: s }, l = (t + e) / 2, e = (e + i) / 2, i = (i + s) / 2, c = (l + e) / 2, e = (e + i) / 2, h = (e - c) / 8; return n.b = l + (t - l) / 4, r.b = c + h, n.c = r.a = (n.b + r.b) / 2, r.c = o.a = (c + e) / 2, o.b = e - h, a.b = i + (s - i) / 4, o.c = a.a = (o.b + a.b) / 2, [n, r, o, a] }, x = function (t, e, i, s, n) { for (var r, o, a, l, c, h, u, d, p, f = t.length - 1, m = 0, _ = t[0].a, g = 0; g < f; g++)r = (l = t[m]).a, o = l.d, a = t[m + 1].d, u = n ? (u = y[g], p = ((d = v[g]) + u) * e * .25 / (!s && w[g] || .5), o - ((c = o - (o - r) * (s ? .5 * e : 0 !== u ? p / u : 0)) + (((p = o + (a - o) * (s ? .5 * e : 0 !== d ? p / d : 0)) - c) * (3 * u / (u + d) + .5) / 4 || 0))) : o - ((c = o - (o - r) * e * .5) + (p = o + (a - o) * e * .5)) / 2, p += u, l.c = d = c += u, l.b = 0 !== g ? _ : _ = l.a + .6 * (l.c - l.a), l.da = o - r, l.ca = d - r, l.ba = _ - r, i ? (h = T(r, _, d, o), t.splice(m, 1, h[0], h[1], h[2], h[3]), m += 4) : m++, _ = p; (l = t[m]).b = _, l.c = _ + .4 * (l.d - _), l.da = l.d - l.a, l.ca = l.c - l.a, l.ba = _ - l.a, i && (h = T(l.a, _, l.c, l.d), t.splice(m, 1, h[0], h[1], h[2], h[3])) }, C = function (t, e, i, s) { var n, r, o, a, l, c, h = []; if (s) for (r = (t = [s].concat(t)).length; -1 < --r;)"string" == typeof (c = t[r][e]) && "=" === c.charAt(1) && (t[r][e] = s[e] + Number(c.charAt(0) + c.substr(2))); if ((n = t.length - 2) < 0) h[0] = new b(t[0][e], 0, 0, t[0][e]); else { for (r = 0; r < n; r++)o = t[r][e], a = t[r + 1][e], h[r] = new b(o, 0, 0, a), i && (l = t[r + 2][e], y[r] = (y[r] || 0) + (a - o) * (a - o), v[r] = (v[r] || 0) + (l - a) * (l - a)); h[r] = new b(t[r][e], 0, 0, t[r + 1][e]) } return h }, d = function (t, e, i, s, n, r) { var o, a, l, c, h, u, d, p, f = {}, m = [], _ = r || t[0]; for (a in n = "string" == typeof n ? "," + n + "," : ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,", null == e && (e = 1), t[0]) m.push(a); if (1 < t.length) { for (p = t[t.length - 1], d = !0, o = m.length; -1 < --o;)if (a = m[o], .05 < Math.abs(_[a] - p[a])) { d = !1; break } d && (t = t.concat(), r && t.unshift(r), t.push(t[1]), r = t[t.length - 3]) } for (y.length = v.length = w.length = 0, o = m.length; -1 < --o;)g[a = m[o]] = -1 !== n.indexOf("," + a + ","), f[a] = C(t, a, g[a], r); for (o = y.length; -1 < --o;)y[o] = Math.sqrt(y[o]), v[o] = Math.sqrt(v[o]); if (!s) { for (o = m.length; -1 < --o;)if (g[a]) for (u = (l = f[m[o]]).length - 1, c = 0; c < u; c++)h = l[c + 1].da / v[c] + l[c].da / y[c] || 0, w[c] = (w[c] || 0) + h * h; for (o = w.length; -1 < --o;)w[o] = Math.sqrt(w[o]) } for (o = m.length, c = i ? 4 : 1; -1 < --o;)l = f[a = m[o]], x(l, e, i, s, g[a]), d && (l.splice(0, c), l.splice(l.length - c, c)); return f }, p = function (t, e, i) { for (var s, n, r, o, a, l, c, h, u, d = 1 / i, p = t.length; -1 < --p;)for (n = (h = t[p]).a, r = h.d - n, o = h.c - n, a = h.b - n, s = 0, l = 1; l <= i; l++)c = s - (s = ((u = d * l) * u * r + 3 * (c = 1 - u) * (u * o + c * a)) * u), e[u = p * i + l - 1] = (e[u] || 0) + c * c }, t = (_ = _gsScope._gsDefine.plugin({ propName: "bezier", priority: -1, version: "1.3.9", API: 2, global: !0, init: function (t, e, i) { this._target = t, e instanceof Array && (e = { values: e }), this._func = {}, this._mod = {}, this._props = [], this._timeRes = null == e.timeResolution ? 6 : parseInt(e.timeResolution, 10); var s, n, r, o, a, l = e.values || [], c = {}, h = l[0], u = e.autoRotate || i.vars.orientToBezier; for (s in this._autoRotate = u ? u instanceof Array ? u : [["x", "y", "rotation", !0 !== u && Number(u) || 0]] : null, h) this._props.push(s); for (r = this._props.length; -1 < --r;)s = this._props[r], this._overwriteProps.push(s), n = this._func[s] = "function" == typeof t[s], c[s] = n ? t[s.indexOf("set") || "function" != typeof t["get" + s.substr(3)] ? s : "get" + s.substr(3)]() : parseFloat(t[s]), a || c[s] !== l[0][s] && (a = c); if (this._beziers = "cubic" !== e.type && "quadratic" !== e.type && "soft" !== e.type ? d(l, isNaN(e.curviness) ? 1 : e.curviness, !1, "thruBasic" === e.type, e.correlate, a) : function (t, e, i) { var s, n, r, o, a, l, c, h, u, d, p, f = {}, m = "cubic" === (e = e || "soft") ? 3 : 2, _ = "soft" === e, g = []; if (null == (t = _ && i ? [i].concat(t) : t) || t.length < 1 + m) throw "invalid Bezier data"; for (u in t[0]) g.push(u); for (l = g.length; -1 < --l;) { for (f[u = g[l]] = a = [], h = t.length, c = d = 0; c < h; c++)s = null == i ? t[c][u] : "string" == typeof (p = t[c][u]) && "=" === p.charAt(1) ? i[u] + Number(p.charAt(0) + p.substr(2)) : Number(p), _ && 1 < c && c < h - 1 && (a[d++] = (s + a[d - 2]) / 2), a[d++] = s; for (h = d - m + 1, c = d = 0; c < h; c += m)s = a[c], n = a[c + 1], r = a[c + 2], o = 2 == m ? 0 : a[c + 3], a[d++] = p = 3 == m ? new b(s, n, r, o) : new b(s, (2 * n + s) / 3, (2 * n + r) / 3, r); a.length = d } return f }(l, e.type, c), this._segCount = this._beziers[s].length, this._timeRes && (h = function (t, e) { var i, s, n, r, o = [], a = [], l = 0, c = 0, h = (e = e >> 0 || 6) - 1, u = [], d = []; for (i in t) p(t[i], o, e); for (n = o.length, s = 0; s < n; s++)l += Math.sqrt(o[s]), d[r = s % e] = l, r == h && (c += l, u[r = s / e >> 0] = d, a[r] = c, l = 0, d = []); return { length: c, lengths: a, segments: u } }(this._beziers, this._timeRes), this._length = h.length, this._lengths = h.lengths, this._segments = h.segments, this._l1 = this._li = this._s1 = this._si = 0, this._l2 = this._lengths[0], this._curSeg = this._segments[0], this._s2 = this._curSeg[0], this._prec = 1 / this._curSeg.length), u = this._autoRotate) for (this._initialRotations = [], u[0] instanceof Array || (this._autoRotate = u = [u]), r = u.length; -1 < --r;) { for (o = 0; o < 3; o++)s = u[r][o], this._func[s] = "function" == typeof t[s] && t[s.indexOf("set") || "function" != typeof t["get" + s.substr(3)] ? s : "get" + s.substr(3)]; s = u[r][2], this._initialRotations[r] = (this._func[s] ? this._func[s].call(this._target) : this._target[s]) || 0, this._overwriteProps.push(s) } return this._startRatio = i.vars.runBackwards ? 1 : 0, !0 }, set: function (t) { var e, i, s, n, r, o, a, l, c, h, u = this._segCount, d = this._func, p = this._target, f = t !== this._startRatio; if (this._timeRes) { if (l = this._lengths, c = this._curSeg, h = t * this._length, x = this._li, h > this._l2 && x < u - 1) { for (a = u - 1; x < a && (this._l2 = l[++x]) <= h;); this._l1 = l[x - 1], this._li = x, this._curSeg = c = this._segments[x], this._s2 = c[this._s1 = this._si = 0] } else if (h < this._l1 && 0 < x) { for (; 0 < x && (this._l1 = l[--x]) >= h;); 0 === x && h < this._l1 ? this._l1 = 0 : x++, this._l2 = l[x], this._li = x, this._curSeg = c = this._segments[x], this._s1 = c[(this._si = c.length - 1) - 1] || 0, this._s2 = c[this._si] } if (e = x, h -= this._l1, x = this._si, h > this._s2 && x < c.length - 1) { for (a = c.length - 1; x < a && (this._s2 = c[++x]) <= h;); this._s1 = c[x - 1], this._si = x } else if (h < this._s1 && 0 < x) { for (; 0 < x && (this._s1 = c[--x]) >= h;); 0 === x && h < this._s1 ? this._s1 = 0 : x++, this._s2 = c[x], this._si = x } r = 1 === t ? 1 : (x + (h - this._s1) / (this._s2 - this._s1)) * this._prec || 0 } else r = (t - (e = t < 0 ? 0 : 1 <= t ? u - 1 : u * t >> 0) * (1 / u)) * u; for (i = 1 - r, x = this._props.length; -1 < --x;)s = this._props[x], o = (r * r * (n = this._beziers[s][e]).da + 3 * i * (r * n.ca + i * n.ba)) * r + n.a, this._mod[s] && (o = this._mod[s](o, p)), d[s] ? p[s](o) : p[s] = o; if (this._autoRotate) for (var m, _, g, y, v, w, b, T = this._autoRotate, x = T.length; -1 < --x;)s = T[x][2], w = T[x][3] || 0, b = !0 === T[x][4] ? 1 : S, n = this._beziers[T[x][0]], m = this._beziers[T[x][1]], n && m && (n = n[e], m = m[e], _ = n.a + (n.b - n.a) * r, _ += ((y = n.b + (n.c - n.b) * r) - _) * r, y += (n.c + (n.d - n.c) * r - y) * r, g = m.a + (m.b - m.a) * r, g += ((v = m.b + (m.c - m.b) * r) - g) * r, v += (m.c + (m.d - m.c) * r - v) * r, o = f ? Math.atan2(v - g, y - _) * b + w : this._initialRotations[x], this._mod[s] && (o = this._mod[s](o, p)), d[s] ? p[s](o) : p[s] = o) } })).prototype, _.bezierThrough = d, _.cubicToQuadratic = T, _._autoCSS = !0, _.quadraticToCubic = function (t, e, i) { return new b(t, (2 * e + t) / 3, (2 * e + i) / 3, i) }, _._cssRegister = function () { var p, f, m, t = e.CSSPlugin; t && (t = t._internals, p = t._parseToProxy, f = t._setPluginRatio, m = t.CSSPropTween, t._registerComplexSpecialProp("bezier", { parser: function (t, e, i, s, n, r) { e instanceof Array && (e = { values: e }), r = new _; var o, a, l, c = e.values, h = c.length - 1, u = [], d = {}; if (!(h < 0)) { for (o = 0; o <= h; o++)l = p(t, c[o], s, n, r, h !== o), u[o] = l.end; for (a in e) d[a] = e[a]; d.values = u, (n = new m(t, "bezier", 0, 0, l.pt, 2)).data = l, n.plugin = r, n.setRatio = f, 0 === d.autoRotate && (d.autoRotate = !0), !d.autoRotate || d.autoRotate instanceof Array || (o = !0 === d.autoRotate ? 0 : Number(d.autoRotate), d.autoRotate = null != l.end.left ? [["left", "top", "rotation", o, !1]] : null != l.end.x && [["x", "y", "rotation", o, !1]]), d.autoRotate && (s._transform || s._enableTransforms(!1), l.autoRotate = s._target._gsTransform, l.proxy.rotation = l.autoRotate.rotation || 0, s._overwriteProps.push("rotation")), r._onInitTween(l.proxy, d, s._tween) } return n } })) }, t._mod = function (t) { for (var e, i = this._overwriteProps, s = i.length; -1 < --s;)(e = t[i[s]]) && "function" == typeof e && (this._mod[i[s]] = e) }, t._kill = function (t) { var e, i, s = this._props; for (e in this._beziers) if (e in t) for (delete this._beziers[e], delete this._func[e], i = s.length; -1 < --i;)s[i] === e && s.splice(i, 1); if (s = this._autoRotate) for (i = s.length; -1 < --i;)t[s[i][2]] && s.splice(i, 1); return this._super._kill.call(this, t) }, _gsScope._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function (o, L) { function O() { o.call(this, "css"), this._overwriteProps.length = 0, this.setRatio = O.prototype.setRatio } var d, W, x, _, c = _gsScope._gsDefine.globals, p = {}, t = O.prototype = new o("css"); (t.constructor = O).version = "2.1.3", O.API = 2, O.defaultTransformPerspective = 0, O.defaultSkewType = "compensated", O.defaultSmoothOrigin = !0, O.suffixMap = { top: t = "px", right: t, bottom: t, left: t, width: t, height: t, fontSize: t, padding: t, margin: t, perspective: t, lineHeight: "" }; function a(t, e) { return e.toUpperCase() } function l(t) { return st.test("string" == typeof t ? t : (t.currentStyle || t.style).filter || "") ? parseFloat(RegExp.$1) / 100 : 1 } function g(t) { _gsScope.console && console.log(t) } function T(t, e) { var i, s, n = (e = e || I).style; if (void 0 !== n[t]) return t; for (t = t.charAt(0).toUpperCase() + t.substr(1), i = ["O", "Moz", "ms", "Ms", "Webkit"], s = 5; -1 < --s && void 0 === n[i[s] + t];); return 0 <= s ? (yt = "-" + (vt = 3 === s ? "ms" : i[s]).toLowerCase() + "-", vt + t) : null } function f(t) { return wt.getComputedStyle(t) } function m(t, e) { var i, s, n = {}; if (e = e || f(t)) if (i = e.length) for (; -1 < --i;)-1 !== (s = e[i]).indexOf("-transform") && Vt !== s || (n[s.replace(lt, a)] = e.getPropertyValue(s)); else for (i in e) -1 !== i.indexOf("Transform") && Y !== i || (n[i] = e[i]); else if (e = t.currentStyle || t.style) for (i in e) "string" == typeof i && void 0 === n[i] && (n[i.replace(lt, a)] = e[i]); return q || (n.opacity = l(t)), t = Zt(t, e, !1), n.rotation = t.rotation, n.skewX = t.skewX, n.scaleX = t.scaleX, n.scaleY = t.scaleY, n.x = t.x, n.y = t.y, X && (n.z = t.z, n.rotationX = t.rotationX, n.rotationY = t.rotationY, n.scaleZ = t.scaleZ), n.filters && delete n.filters, n } function y(t, e, i, s, n) { var r, o, a, l = {}, c = t.style; for (o in i) "cssText" !== o && "length" !== o && isNaN(o) && (e[o] !== (r = i[o]) || n && n[o]) && -1 === o.indexOf("Origin") && ("number" != typeof r && "string" != typeof r || (l[o] = "auto" !== r || "left" !== o && "top" !== o ? "" !== r && "auto" !== r && "none" !== r || "string" != typeof e[o] || "" === e[o].replace(et, "") ? r : 0 : bt(t, o), void 0 !== c[o] && (a = new kt(c, o, c[o], a)))); if (s) for (o in s) "className" !== o && (l[o] = s[o]); return { difs: l, firstMPT: a } } function A(t, e) { return "string" == typeof (t = "function" == typeof t ? t(k, P) : t) && "=" === t.charAt(1) ? parseInt(t.charAt(0) + "1", 10) * parseFloat(t.substr(2)) : parseFloat(t) - parseFloat(e) || 0 } function S(t, e) { var i = "string" == typeof (t = "function" == typeof t ? t(k, P) : t) && "=" === t.charAt(1); return null == (t = "string" == typeof t && "v" === t.charAt(t.length - 2) ? (i ? t.substr(0, 2) : 0) + window["inner" + ("vh" === t.substr(-2) ? "Height" : "Width")] * (parseFloat(i ? t.substr(2) : t) / 100) : t) ? e : i ? parseInt(t.charAt(0) + "1", 10) * parseFloat(t.substr(2)) + e : parseFloat(t) || 0 } function C(t, e, i, s) { var n, r; return n = (n = null == (t = "function" == typeof t ? t(k, P) : t) ? e : "number" == typeof t ? t : (n = t.split("_"), r = ((r = "=" === t.charAt(1)) ? parseInt(t.charAt(0) + "1", 10) * parseFloat(n[0].substr(2)) : parseFloat(n[0])) * (-1 === t.indexOf("rad") ? 1 : D) - (r ? 0 : e), n.length && (s && (s[i] = e + r), -1 !== t.indexOf("short") && (r %= 360) != r % 180 && (r = r < 0 ? r + 360 : r - 360), -1 !== t.indexOf("_cw") && r < 0 ? r = (r + 3599999999640) % 360 - 360 * (r / 360 | 0) : -1 !== t.indexOf("ccw") && 0 < r && (r = (r - 3599999999640) % 360 - 360 * (r / 360 | 0))), e + r)) < 1e-6 && -1e-6 < n ? 0 : n } function h(t, e, i) { return 255 * (6 * (t = t < 0 ? t + 1 : 1 < t ? t - 1 : t) < 1 ? e + (i - e) * t * 6 : t < .5 ? i : 3 * t < 2 ? e + (i - e) * (2 / 3 - t) * 6 : e) + .5 | 0 } function v(t, e) { var i, s, n, r = t.match(z) || [], o = 0, a = ""; if (!r.length) return t; for (i = 0; i < r.length; i++)s = r[i], o += (n = t.substr(o, t.indexOf(s, o) - o)).length + s.length, 3 === (s = Ct(s, e)).length && s.push(1), a += n + (e ? "hsla(" + s[0] + "," + s[1] + "%," + s[2] + "%," + s[3] : "rgba(" + s.join(",")) + ")"; return a + t.substr(o) } var U, w, G, $, Z, b, P, k, Q = /(?:\-|\.|\b)(\d|\.|e\-)+/g, K = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g, J = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi, tt = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b),?/gi, et = /(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g, it = /(?:\d|\-|\+|=|#|\.)*/g, st = /opacity *= *([^)]*)/i, nt = /opacity:([^;]*)/i, rt = /alpha\(opacity *=.+?\)/i, ot = /^(rgb|hsl)/, at = /([A-Z])/g, lt = /-([a-z])/gi, ct = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi, ht = /(?:Left|Right|Width)/i, ut = /(M11|M12|M21|M22)=[\d\-\.e]+/gi, dt = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i, E = /,(?=[^\)]*(?:\(|$))/gi, pt = /[\s,\(]/i, R = Math.PI / 180, D = 180 / Math.PI, ft = {}, mt = { style: {} }, M = _gsScope.document || { createElement: function () { return mt } }, _t = function (t, e) { e = M.createElementNS ? M.createElementNS(e || "http://www.w3.org/1999/xhtml", t) : M.createElement(t); return e.style ? e : M.createElement(t) }, I = _t("div"), gt = _t("img"), e = O._internals = { _specialProps: p }, i = (_gsScope.navigator || {}).userAgent || "", q = (r = i.indexOf("Android"), n = _t("a"), G = -1 !== i.indexOf("Safari") && -1 === i.indexOf("Chrome") && (-1 === r || 3 < parseFloat(i.substr(r + 8, 2))), Z = G && parseFloat(i.substr(i.indexOf("Version/") + 8, 2)) < 6, $ = -1 !== i.indexOf("Firefox"), (/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(i) || /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(i)) && (b = parseFloat(RegExp.$1)), !!n && (n.style.cssText = "top:1px;opacity:.55;", /^0.55/.test(n.style.opacity))), yt = "", vt = "", wt = "undefined" != typeof window ? window : M.defaultView || { getComputedStyle: function () { } }, F = O.getStyle = function (t, e, i, s, n) { var r; return q || "opacity" !== e ? (!s && t.style[e] ? r = t.style[e] : (i = i || f(t)) ? r = i[e] || i.getPropertyValue(e) || i.getPropertyValue(e.replace(at, "-$1").toLowerCase()) : t.currentStyle && (r = t.currentStyle[e]), null == n || r && "none" !== r && "auto" !== r && "auto auto" !== r ? r : n) : l(t) }, N = e.convertToPixels = function (t, e, i, s, n) { if ("px" === s || !s && "lineHeight" !== e) return i; if ("auto" === s || !i) return 0; var r, o, a, l = ht.test(e), c = t, h = I.style, u = i < 0, d = 1 === i; if (u && (i = -i), d && (i *= 100), "lineHeight" !== e || s) if ("%" === s && -1 !== e.indexOf("border")) r = i / 100 * (l ? t.clientWidth : t.clientHeight); else { if (h.cssText = "border:0 solid red;position:" + F(t, "position") + ";line-height:0;", "%" !== s && c.appendChild && "v" !== s.charAt(0) && "rem" !== s) h[l ? "borderLeftWidth" : "borderTopWidth"] = i + s; else { if (c = t.parentNode || M.body, -1 !== F(c, "display").indexOf("flex") && (h.position = "absolute"), o = c._gsCache, a = L.ticker.frame, o && l && o.time === a) return o.width * i / 100; h[l ? "width" : "height"] = i + s } c.appendChild(I), r = parseFloat(I[l ? "offsetWidth" : "offsetHeight"]), c.removeChild(I), l && "%" === s && !1 !== O.cacheWidths && ((o = c._gsCache = c._gsCache || {}).time = a, o.width = r / i * 100), 0 !== r || n || (r = N(t, e, i, s, !0)) } else o = f(t).lineHeight, t.style.lineHeight = i, r = parseFloat(f(t).lineHeight), t.style.lineHeight = o; return d && (r /= 100), u ? -r : r }, bt = e.calculateOffset = function (t, e, i) { var s; return "absolute" !== F(t, "position", i) ? 0 : (i = F(t, "margin" + (s = "left" === e ? "Left" : "Top"), i), t["offset" + s] - (N(t, e, parseFloat(i), i.replace(it, "")) || 0)) }, Tt = { width: ["Left", "Right"], height: ["Top", "Bottom"] }, xt = ["marginLeft", "marginRight", "marginTop", "marginBottom"], B = function (t, e) { if ("contain" === t || "auto" === t || "auto auto" === t) return t + " "; var i, s = (t = null != t && "" !== t ? t : "0 0").split(" "), n = -1 !== t.indexOf("left") ? "0%" : -1 !== t.indexOf("right") ? "100%" : s[0], r = -1 !== t.indexOf("top") ? "0%" : -1 !== t.indexOf("bottom") ? "100%" : s[1]; if (3 < s.length && !e) { for (s = t.split(", ").join(",").split(","), t = [], i = 0; i < s.length; i++)t.push(B(s[i])); return t.join(",") } return null == r ? r = "center" === n ? "50%" : "0" : "center" === r && (r = "50%"), t = (n = "center" === n || isNaN(parseFloat(n)) && -1 === (n + "").indexOf("=") ? "50%" : n) + " " + r + (2 < s.length ? " " + s[2] : ""), e && (e.oxp = -1 !== n.indexOf("%"), e.oyp = -1 !== r.indexOf("%"), e.oxr = "=" === n.charAt(1), e.oyr = "=" === r.charAt(1), e.ox = parseFloat(n.replace(et, "")), e.oy = parseFloat(r.replace(et, "")), e.v = t), e || t }, St = { aqua: [0, 255, 255], lime: [0, 255, 0], silver: [192, 192, 192], black: [0, 0, 0], maroon: [128, 0, 0], teal: [0, 128, 128], blue: [0, 0, 255], navy: [0, 0, 128], white: [255, 255, 255], fuchsia: [255, 0, 255], olive: [128, 128, 0], yellow: [255, 255, 0], orange: [255, 165, 0], gray: [128, 128, 128], purple: [128, 0, 128], green: [0, 128, 0], red: [255, 0, 0], pink: [255, 192, 203], cyan: [0, 255, 255], transparent: [255, 255, 255, 0] }, Ct = O.parseColor = function (t, e) { var i, s, n, r, o, a, l, c; if (t) if ("number" == typeof t) i = [t >> 16, t >> 8 & 255, 255 & t]; else { if ("," === t.charAt(t.length - 1) && (t = t.substr(0, t.length - 1)), St[t]) i = St[t]; else if ("#" === t.charAt(0)) 4 === t.length && (t = "#" + (s = t.charAt(1)) + s + (n = t.charAt(2)) + n + (r = t.charAt(3)) + r), i = [(t = parseInt(t.substr(1), 16)) >> 16, t >> 8 & 255, 255 & t]; else if ("hsl" === t.substr(0, 3)) if (i = c = t.match(Q), e) { if (-1 !== t.indexOf("=")) return t.match(K) } else o = Number(i[0]) % 360 / 360, a = Number(i[1]) / 100, s = 2 * (l = Number(i[2]) / 100) - (n = l <= .5 ? l * (a + 1) : l + a - l * a), 3 < i.length && (i[3] = Number(i[3])), i[0] = h(o + 1 / 3, s, n), i[1] = h(o, s, n), i[2] = h(o - 1 / 3, s, n); else i = t.match(Q) || St.transparent; i[0] = Number(i[0]), i[1] = Number(i[1]), i[2] = Number(i[2]), 3 < i.length && (i[3] = Number(i[3])) } else i = St.black; return e && !c && (s = i[0] / 255, n = i[1] / 255, r = i[2] / 255, l = ((t = Math.max(s, n, r)) + (e = Math.min(s, n, r))) / 2, t === e ? o = a = 0 : (c = t - e, a = .5 < l ? c / (2 - t - e) : c / (t + e), o = t === s ? (n - r) / c + (n < r ? 6 : 0) : t === n ? (r - s) / c + 2 : (s - n) / c + 4, o *= 60), i[0] = o + .5 | 0, i[1] = 100 * a + .5 | 0, i[2] = 100 * l + .5 | 0), i }, z = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b"; for (t in St) z += "|" + t + "\\b"; z = new RegExp(z + ")", "gi"), O.colorStringFilter = function (t) { var e = t[0] + " " + t[1]; z.test(e) && (e = -1 !== e.indexOf("hsl(") || -1 !== e.indexOf("hsla("), t[0] = v(t[0], e), t[1] = v(t[1], e)), z.lastIndex = 0 }, L.defaultStringFilter || (L.defaultStringFilter = O.colorStringFilter); function At(t, e, r, o) { var a, l, c, h, u, d, p, f; return null == t ? function (t) { return t } : (l = e ? (t.match(z) || [""])[0] : "", c = t.split(l).join("").match(J) || [], h = t.substr(0, t.indexOf(c[0])), u = ")" === t.charAt(t.length - 1) ? ")" : "", d = -1 !== t.indexOf(" ") ? " " : ",", p = c.length, f = 0 < p ? c[0].replace(Q, "") : "", p ? a = e ? function (t) { var e, i, s, n; if ("number" == typeof t) t += f; else if (o && E.test(t)) { for (n = t.replace(E, "|").split("|"), s = 0; s < n.length; s++)n[s] = a(n[s]); return n.join(",") } if (e = (t.match(z) || [l])[0], s = (i = t.split(e).join("").match(J) || []).length, p > s--) for (; ++s < p;)i[s] = r ? i[(s - 1) / 2 | 0] : c[s]; return h + i.join(d) + d + e + u + (-1 !== t.indexOf("inset") ? " inset" : "") } : function (t) { var e, i, s; if ("number" == typeof t) t += f; else if (o && E.test(t)) { for (i = t.replace(E, "|").split("|"), s = 0; s < i.length; s++)i[s] = a(i[s]); return i.join(",") } if (s = (e = t.match("," == d ? J : tt) || []).length, p > s--) for (; ++s < p;)e[s] = r ? e[(s - 1) / 2 | 0] : c[s]; return (h && "none" !== t && t.substr(0, t.indexOf(e[0])) || h) + e.join(d) + u } : function (t) { return t }) } function Pt(c) { return c = c.split(","), function (t, e, i, s, n, r, o) { var a, l = (e + "").split(" "); for (o = {}, a = 0; a < 4; a++)o[c[a]] = l[a] = l[a] || l[(a - 1) / 2 >> 0]; return s.parse(t, o, n, r) } } function kt(t, e, i, s, n) { this.t = t, this.p = e, this.v = i, this.r = n, s && ((s._prev = this)._next = s) } e._setPluginRatio = function (t) { this.plugin.setRatio(t); for (var e, i, s, n, r, o = this.data, a = o.proxy, l = o.firstMPT; l;)e = a[l.v], l.r ? e = l.r(e) : e < 1e-6 && -1e-6 < e && (e = 0), l.t[l.p] = e, l = l._next; if (o.autoRotate && (o.autoRotate.rotation = o.mod ? o.mod.call(this._tween, a.rotation, this.t, this._tween) : a.rotation), 1 === t || 0 === t) for (l = o.firstMPT, r = 1 === t ? "e" : "b"; l;) { if ((i = l.t).type) { if (1 === i.type) { for (n = i.xs0 + i.s + i.xs1, s = 1; s < i.l; s++)n += i["xn" + s] + i["xs" + (s + 1)]; i[r] = n } } else i[r] = i.s + i.xs0; l = l._next } }; function Et(t, e, i, s, n, r) { return (t = new H(t, e, i, s - i, n, -1, r)).b = i, t.e = t.xs0 = s, t } e._parseToProxy = function (t, e, i, s, n, r) { var o, a, l, c, h = s, u = {}, d = {}, p = i._transform, f = ft; for (i._transform = null, ft = e, s = t = i.parse(t, e, s, n), ft = f, r && (i._transform = p, h) && (h._prev = null, h._prev) && (h._prev._next = null); s && s !== h;) { if (s.type <= 1 && (d[a = s.p] = s.s + s.c, u[a] = s.s, r || (c = new kt(s, "s", a, c, s.r), s.c = 0), 1 === s.type)) for (o = s.l; 0 < --o;)d[a = s.p + "_" + (l = "xn" + o)] = s.data[l], u[a] = s[l], r || (c = new kt(s, l, a, c, s.rxp[l])); s = s._next } return { proxy: u, end: d, firstMPT: c, pt: t } }; var H = e.CSSPropTween = function (t, e, i, s, n, r, o, a, l, c, h) { this.t = t, this.p = e, this.s = i, this.c = s, this.n = o || e, t instanceof H || _.push(this.n), this.r = a && ("function" == typeof a ? a : Math.round), this.type = r || 0, l && (this.pr = l, d = !0), this.b = void 0 === c ? i : c, this.e = void 0 === h ? i + s : h, n && ((this._next = n)._prev = this) }, Lt = O.parseComplex = function (t, e, i, s, n, r, o, a, l, c) { i = i || r || "", "function" == typeof s && (s = s(k, P)), o = new H(t, e, 0, 0, o, c ? 2 : 1, null, !1, a, i, s), s += "", n && z.test(s + i) && (O.colorStringFilter(s = [i, s]), i = s[0], s = s[1]); var h, u, d, p, f, m, _, g, y, v, w, b, T = i.split(", ").join(",").split(" "), x = s.split(", ").join(",").split(" "), S = T.length, C = !1 !== U; for (-1 === s.indexOf(",") && -1 === i.indexOf(",") || (x = (-1 !== (s + i).indexOf("rgb") || -1 !== (s + i).indexOf("hsl") ? (T = T.join(" ").replace(E, ", ").split(" "), x.join(" ").replace(E, ", ")) : (T = T.join(" ").split(",").join(", ").split(" "), x.join(" ").split(",").join(", "))).split(" "), S = T.length), S !== x.length && (S = (T = (r || "").split(" ")).length), o.plugin = l, o.setRatio = c, h = z.lastIndex = 0; h < S; h++)if (p = T[h], f = x[h] + "", (b = parseFloat(p)) || 0 === b) o.appendXtra("", b, A(f, b), f.replace(K, ""), !(!C || -1 === f.indexOf("px")) && Math.round, !0); else if (n && z.test(p)) w = ")" + ((w = f.indexOf(")") + 1) ? f.substr(w) : ""), b = -1 !== f.indexOf("hsl") && q, y = f, p = Ct(p, b), f = Ct(f, b), (g = 6 < p.length + f.length) && !q && 0 === f[3] ? (o["xs" + o.l] += o.l ? " transparent" : "transparent", o.e = o.e.split(x[h]).join("transparent")) : (q || (g = !1), b ? o.appendXtra(y.substr(0, y.indexOf("hsl")) + (g ? "hsla(" : "hsl("), p[0], A(f[0], p[0]), ",", !1, !0).appendXtra("", p[1], A(f[1], p[1]), "%,", !1).appendXtra("", p[2], A(f[2], p[2]), g ? "%," : "%" + w, !1) : o.appendXtra(y.substr(0, y.indexOf("rgb")) + (g ? "rgba(" : "rgb("), p[0], f[0] - p[0], ",", Math.round, !0).appendXtra("", p[1], f[1] - p[1], ",", Math.round).appendXtra("", p[2], f[2] - p[2], g ? "," : w, Math.round), g && (p = p.length < 4 ? 1 : p[3], o.appendXtra("", p, (f.length < 4 ? 1 : f[3]) - p, w, !1))), z.lastIndex = 0; else if (m = p.match(Q)) { if (!(_ = f.match(K)) || _.length !== m.length) return o; for (u = d = 0; u < m.length; u++)v = m[u], y = p.indexOf(v, d), o.appendXtra(p.substr(d, y - d), Number(v), A(_[u], v), "", !(!C || "px" !== p.substr(y + v.length, 2)) && Math.round, 0 === u), d = y + v.length; o["xs" + o.l] += p.substr(d) } else o["xs" + o.l] += o.l || o["xs" + o.l] ? " " + f : f; if (-1 !== s.indexOf("=") && o.data) { for (w = o.xs0 + o.data.s, h = 1; h < o.l; h++)w += o["xs" + h] + o.data["xn" + h]; o.e = w + o["xs" + h] } return o.l || (o.type = -1, o.xs0 = o.e), o.xfirst || o }, V = 9; for ((t = H.prototype).l = t.pr = 0; 0 < --V;)t["xn" + V] = 0, t["xs" + V] = ""; t.xs0 = "", t._next = t._prev = t.xfirst = t.data = t.plugin = t.setRatio = t.rxp = null, t.appendXtra = function (t, e, i, s, n, r) { var o = this, a = o.l; return o["xs" + a] += r && (a || o["xs" + a]) ? " " + t : t || "", i || 0 === a || o.plugin ? (o.l++, o.type = o.setRatio ? 2 : 1, o["xs" + o.l] = s || "", 0 < a ? (o.data["xn" + a] = e + i, o.rxp["xn" + a] = n, o["xn" + a] = e, o.plugin || (o.xfirst = new H(o, "xn" + a, e, i, o.xfirst || o, 0, o.n, n, o.pr), o.xfirst.xs0 = 0)) : (o.data = { s: e + i }, o.rxp = {}, o.s = e, o.c = i, o.r = n)) : o["xs" + a] += e + (s || ""), o }; function Ot(t, e) { this.p = (e = e || {}).prefix && T(t) || t, (p[t] = p[this.p] = this).format = e.formatter || At(e.defaultValue, e.color, e.collapsible, e.multi), e.parser && (this.parse = e.parser), this.clrs = e.color, this.multi = e.multi, this.keyword = e.keyword, this.dflt = e.defaultValue, this.allowFunc = e.allowFunc, this.pr = e.priority || 0 } var s = e._registerComplexSpecialProp = function (t, e, i) { "object" != typeof e && (e = { parser: i }); var s, n = t.split(","), r = e.defaultValue; for (i = i || [r], s = 0; s < n.length; s++)e.prefix = 0 === s && e.prefix, e.defaultValue = i[s] || r, new Ot(n[s], e) }, Rt = e._registerPluginProp = function (t) { var l; p[t] || (l = t.charAt(0).toUpperCase() + t.substr(1) + "Plugin", s(t, { parser: function (t, e, i, s, n, r, o) { var a = c.com.greensock.plugins[l]; return a ? (a._cssRegister(), p[i].parse(t, e, i, s, n, r, o)) : (g("Error: " + l + " js file not loaded."), n) } })) }; (t = Ot.prototype).parseComplex = function (t, e, i, s, n, r) { var o, a, l, c, h, u, d = this.keyword; if (this.multi && (E.test(i) || E.test(e) ? (a = e.replace(E, "|").split("|"), l = i.replace(E, "|").split("|")) : d && (a = [e], l = [i])), l) { for (c = (l.length > a.length ? l : a).length, o = 0; o < c; o++)e = a[o] = a[o] || this.dflt, i = l[o] = l[o] || this.dflt, d && (h = e.indexOf(d)) !== (u = i.indexOf(d)) && (-1 === u ? a[o] = a[o].split(d).join("") : -1 === h && (a[o] += " " + d)); e = a.join(", "), i = l.join(", ") } return Lt(t, this.p, e, i, this.clrs, this.dflt, s, this.pr, n, r) }, t.parse = function (t, e, i, s, n, r, o) { return this.parseComplex(t.style, this.format(F(t, this.p, x, !1, this.dflt)), this.format(e), n, r) }, O.registerSpecialProp = function (t, a, l) { s(t, { parser: function (t, e, i, s, n, r, o) { n = new H(t, i, 0, 0, n, 2, i, !1, l); return n.plugin = r, n.setRatio = a(t, e, s._tween, i), n }, priority: l }) }, O.useSVGTransformAttr = !0; function Dt(t, e, i) { var s, n = M.createElementNS("http://www.w3.org/2000/svg", t), r = /([a-z])([A-Z])/g; for (s in i) n.setAttributeNS(null, s.replace(r, "$1-$2").toLowerCase(), i[s]); return e.appendChild(n), n } function Mt(t, e, i, s, n, r) { var o, a, l, c, h, u, d, p, f, m, _, g, y = t._gsTransform, v = It(t, !0); y && (_ = y.xOrigin, g = y.yOrigin), (!s || (o = s.split(" ")).length < 2) && (0 === (h = t.getBBox()).x && 0 === h.y && h.width + h.height === 0 && (h = { x: parseFloat(t.hasAttribute("x") ? t.getAttribute("x") : t.hasAttribute("cx") ? t.getAttribute("cx") : 0) || 0, y: parseFloat(t.hasAttribute("y") ? t.getAttribute("y") : t.hasAttribute("cy") ? t.getAttribute("cy") : 0) || 0, width: 0, height: 0 }), o = [(-1 !== (e = B(e).split(" "))[0].indexOf("%") ? parseFloat(e[0]) / 100 * h.width : parseFloat(e[0])) + h.x, (-1 !== e[1].indexOf("%") ? parseFloat(e[1]) / 100 * h.height : parseFloat(e[1])) + h.y]), i.xOrigin = e = parseFloat(o[0]), i.yOrigin = c = parseFloat(o[1]), s && v !== $t && (s = v[0], h = v[1], u = v[2], d = v[3], p = v[4], f = v[5], m = s * d - h * u) && (l = e * (-h / m) + c * (s / m) - (s * f - h * p) / m, e = i.xOrigin = o[0] = a = e * (d / m) + c * (-u / m) + (u * f - d * p) / m, c = i.yOrigin = o[1] = l), y && (r && (i.xOffset = y.xOffset, i.yOffset = y.yOffset, y = i), n || !1 !== n && !1 !== O.defaultSmoothOrigin ? (y.xOffset += (a = e - _) * v[0] + (l = c - g) * v[2] - a, y.yOffset += a * v[1] + l * v[3] - l) : y.xOffset = y.yOffset = 0), r || t.setAttribute("data-svg-origin", o.join(" ")) } function It(t, e) { var i, s, n, r, o, a, l, c = t._gsTransform || new Yt, h = t.style; if (Y ? s = F(t, Vt, null, !0) : t.currentStyle && (s = (s = t.currentStyle.filter.match(ut)) && 4 === s.length ? [s[0].substr(4), Number(s[2].substr(4)), Number(s[1].substr(4)), s[3].substr(4), c.x || 0, c.y || 0].join(",") : ""), i = !s || "none" === s || "matrix(1, 0, 0, 1, 0, 0)" === s, Y && i && !t.offsetParent && t !== u && (r = h.display, h.display = "block", (l = t.parentNode) && t.offsetParent || (o = 1, a = t.nextSibling, u.appendChild(t)), i = !(s = F(t, Vt, null, !0)) || "none" === s || "matrix(1, 0, 0, 1, 0, 0)" === s, r ? h.display = r : Kt(h, "display"), o) && (a ? l.insertBefore(t, a) : l ? l.appendChild(t) : u.removeChild(t)), (c.svg || t.getCTM && Gt(t)) && (i && -1 !== (h[Y] + "").indexOf("matrix") && (s = h[Y], i = 0), n = t.getAttribute("transform"), i) && n && (s = "matrix(" + (n = t.transform.baseVal.consolidate().matrix).a + "," + n.b + "," + n.c + "," + n.d + "," + n.e + "," + n.f + ")", i = 0), i) return $t; for (n = (s || "").match(Q) || [], V = n.length; -1 < --V;)r = Number(n[V]), n[V] = (o = r - (r |= 0)) ? (1e5 * o + (o < 0 ? -.5 : .5) | 0) / 1e5 + r : r; return e && 6 < n.length ? [n[0], n[1], n[4], n[5], n[12], n[13]] : n } function qt(t) { var e, i, s = this.data, n = (o = -s.rotation * R) + s.skewX * R, r = (Math.cos(o) * s.scaleX * 1e5 | 0) / 1e5, o = (Math.sin(o) * s.scaleX * 1e5 | 0) / 1e5, a = (Math.sin(n) * -s.scaleY * 1e5 | 0) / 1e5, n = (Math.cos(n) * s.scaleY * 1e5 | 0) / 1e5, l = this.t.style, c = this.t.currentStyle; if (c) { i = o, o = -a, a = -i, e = c.filter, l.filter = ""; var h = this.t.offsetWidth, u = this.t.offsetHeight, d = "absolute" !== c.position, p = "progid:DXImageTransform.Microsoft.Matrix(M11=" + r + ", M12=" + o + ", M21=" + a + ", M22=" + n, f = s.x + h * s.xPercent / 100, m = s.y + u * s.yPercent / 100; if (null != s.ox && (f += (v = (s.oxp ? h * s.ox * .01 : s.ox) - h / 2) - (v * r + (w = (s.oyp ? u * s.oy * .01 : s.oy) - u / 2) * o), m += w - (v * a + w * n)), p += d ? ", Dx=" + ((v = h / 2) - (v * r + (w = u / 2) * o) + f) + ", Dy=" + (w - (v * a + w * n) + m) + ")" : ", sizingMethod='auto expand')", -1 !== e.indexOf("DXImageTransform.Microsoft.Matrix(") ? l.filter = e.replace(dt, p) : l.filter = p + " " + e, 0 !== t && 1 !== t || (1 != r || 0 != o || 0 != a || 1 != n || d && -1 === p.indexOf("Dx=0, Dy=0") || st.test(e) && 100 !== parseFloat(RegExp.$1) || -1 === e.indexOf(e.indexOf("Alpha")) && l.removeAttribute("filter")), !d) { var _, g, y = b < 8 ? 1 : -1, v = s.ieOffsetX || 0, w = s.ieOffsetY || 0; for (s.ieOffsetX = Math.round((h - ((r < 0 ? -r : r) * h + (o < 0 ? -o : o) * u)) / 2 + f), s.ieOffsetY = Math.round((u - ((n < 0 ? -n : n) * u + (a < 0 ? -a : a) * h)) / 2 + m), V = 0; V < 4; V++)g = (i = -1 !== (g = c[_ = xt[V]]).indexOf("px") ? parseFloat(g) : N(this.t, _, parseFloat(g), g.replace(it, "")) || 0) !== s[_] ? V < 2 ? -s.ieOffsetX : -s.ieOffsetY : V < 2 ? v - s.ieOffsetX : w - s.ieOffsetY, l[_] = (s[_] = Math.round(i - g * (0 === V || 2 === V ? 1 : y))) + "px" } } } function Ft(t) { var e, i = this.t, s = i.filter || F(this.data, "filter") || "", t = this.s + this.c * t | 0; (e = 100 == t ? -1 === s.indexOf("atrix(") && -1 === s.indexOf("radient(") && -1 === s.indexOf("oader(") ? (i.removeAttribute("filter"), !F(this.data, "filter")) : (i.filter = s.replace(rt, ""), !0) : e) || (this.xn1 && (i.filter = s = s || "alpha(opacity=" + t + ")"), -1 === s.indexOf("pacity") ? 0 == t && this.xn1 || (i.filter = s + " alpha(opacity=" + t + ")") : i.filter = s.replace(st, "opacity=" + t)) } function Nt(t) { if (this.t._gsClassPT = this, 1 === t || 0 === t) { this.t.setAttribute("class", 0 === t ? this.b : this.e); for (var e = this.data, i = this.t.style; e;)e.v ? i[e.p] = e.v : Kt(i, e.p), e = e._next; 1 === t && this.t._gsClassPT === this && (this.t._gsClassPT = null) } else this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e) } function Bt(t) { if ((1 === t || 0 === t) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) { var e, i, s, n, r = this.t.style, o = p.transform.parse; if ("all" === this.e) n = !(r.cssText = ""); else for (s = (e = this.e.split(" ").join("").split(",")).length; -1 < --s;)i = e[s], p[i] && (p[i].parse === o ? n = !0 : i = "transformOrigin" === i ? jt : p[i].p), Kt(r, i); n && (Kt(r, Y), t = this.t._gsTransform) && (t.svg && (this.t.removeAttribute("data-svg-origin"), this.t.removeAttribute("transform")), delete this.t._gsTransform) } } var j, n, zt, r, Ht = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","), Y = T("transform"), Vt = yt + "transform", jt = T("transformOrigin"), X = null !== T("perspective"), Yt = e.Transform = function () { this.perspective = parseFloat(O.defaultTransformPerspective) || 0, this.force3D = !(!1 === O.defaultForce3D || !X) && (O.defaultForce3D || "auto") }, Xt = _gsScope.SVGElement, u = M.documentElement || {}, Wt = (r = b || /Android/i.test(i) && !_gsScope.chrome, M.createElementNS && u.appendChild && !r && (zt = (i = Dt("rect", n = Dt("svg", u), { width: 100, height: 50, x: 100 })).getBoundingClientRect().width, i.style[jt] = "50% 50%", i.style[Y] = "scaleX(0.5)", r = zt === i.getBoundingClientRect().width && !($ && X), u.removeChild(n)), r), Ut = function (t) { var e, i = _t("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), s = this.parentNode, n = this.nextSibling, r = this.style.cssText; if (u.appendChild(i), i.appendChild(this), this.style.display = "block", t) try { e = this.getBBox(), this._originalGetBBox = this.getBBox, this.getBBox = Ut } catch (t) { } else this._originalGetBBox && (e = this._originalGetBBox()); return n ? s.insertBefore(this, n) : s.appendChild(this), u.removeChild(i), this.style.cssText = r, e }, Gt = function (t) { return !(!Xt || !t.getCTM || t.parentNode && !t.ownerSVGElement || !function (e) { try { return e.getBBox() } catch (t) { return Ut.call(e, !0) } }(t)) }, $t = [1, 0, 0, 1, 0, 0], Zt = e.getTransform = function (t, e, i, s) { if (t._gsTransform && i && !s) return t._gsTransform; var n, r, o, a, l, c, h, u, d, p, f, m, _, g, y, v, w, b, T, x, S, C, A = i && t._gsTransform || new Yt, P = A.scaleX < 0, k = X && (parseFloat(F(t, jt, e, !1, "0 0 0").split(" ")[2]) || A.zOrigin) || 0, E = parseFloat(O.defaultTransformPerspective) || 0; if (A.svg = !(!t.getCTM || !Gt(t)), A.svg && (Mt(t, F(t, jt, e, !1, "50% 50%") + "", A, t.getAttribute("data-svg-origin")), j = O.useSVGTransformAttr || Wt), (e = It(t)) !== $t) for (n in 16 === e.length ? (a = e[0], l = e[1], c = e[2], T = e[3], h = e[4], u = e[5], d = e[6], b = e[7], p = e[8], f = e[9], m = e[10], _ = e[12], g = e[13], y = e[14], v = e[11], w = Math.atan2(d, m), A.zOrigin && (_ = p * (y = -A.zOrigin) - e[12], g = f * y - e[13], y = m * y + A.zOrigin - e[14]), A.rotationX = w * D, w && (C = h * (x = Math.cos(-w)) + p * (S = Math.sin(-w)), r = u * x + f * S, o = d * x + m * S, p = h * -S + p * x, f = u * -S + f * x, m = d * -S + m * x, v = b * -S + v * x, h = C, u = r, d = o), w = Math.atan2(-c, m), A.rotationY = w * D, w && (r = l * (x = Math.cos(-w)) - f * (S = Math.sin(-w)), o = c * x - m * S, f = l * S + f * x, m = c * S + m * x, v = T * S + v * x, a = C = a * x - p * S, l = r, c = o), w = Math.atan2(l, a), A.rotation = w * D, w && (C = a * (x = Math.cos(w)) + l * (S = Math.sin(w)), r = h * x + u * S, o = p * x + f * S, l = l * x - a * S, u = u * x - h * S, f = f * x - p * S, a = C, h = r, p = o), A.rotationX && 359.9 < Math.abs(A.rotationX) + Math.abs(A.rotation) && (A.rotationX = A.rotation = 0, A.rotationY = 180 - A.rotationY), w = Math.atan2(h, u), A.scaleX = (1e5 * Math.sqrt(a * a + l * l + c * c) + .5 | 0) / 1e5, A.scaleY = (1e5 * Math.sqrt(u * u + d * d) + .5 | 0) / 1e5, A.scaleZ = (1e5 * Math.sqrt(p * p + f * f + m * m) + .5 | 0) / 1e5, a /= A.scaleX, h /= A.scaleY, l /= A.scaleX, u /= A.scaleY, 2e-5 < Math.abs(w) ? (A.skewX = w * D, h = 0, "simple" !== A.skewType && (A.scaleY *= 1 / Math.cos(w))) : A.skewX = 0, A.perspective = v ? 1 / (v < 0 ? -v : v) : 0, A.x = _, A.y = g, A.z = y, A.svg && (A.x -= A.xOrigin - (A.xOrigin * a - A.yOrigin * h), A.y -= A.yOrigin - (A.yOrigin * l - A.xOrigin * u))) : X && !s && e.length && A.x === e[4] && A.y === e[5] && (A.rotationX || A.rotationY) || (T = (b = 6 <= e.length) ? e[0] : 1, x = e[1] || 0, S = e[2] || 0, C = b ? e[3] : 1, A.x = e[4] || 0, A.y = e[5] || 0, r = Math.sqrt(T * T + x * x), o = Math.sqrt(C * C + S * S), c = T || x ? Math.atan2(x, T) * D : A.rotation || 0, d = S || C ? Math.atan2(S, C) * D + c : A.skewX || 0, A.scaleX = r, A.scaleY = o, A.rotation = c, A.skewX = d, X && (A.rotationX = A.rotationY = A.z = 0, A.perspective = E, A.scaleZ = 1), A.svg && (A.x -= A.xOrigin - (A.xOrigin * T + A.yOrigin * S), A.y -= A.yOrigin - (A.xOrigin * x + A.yOrigin * C))), 90 < Math.abs(A.skewX) && Math.abs(A.skewX) < 270 && (P ? (A.scaleX *= -1, A.skewX += A.rotation <= 0 ? 180 : -180, A.rotation += A.rotation <= 0 ? 180 : -180) : (A.scaleY *= -1, A.skewX += A.skewX <= 0 ? 180 : -180)), A.zOrigin = k, A) A[n] < 2e-5 && -2e-5 < A[n] && (A[n] = 0); return i && (t._gsTransform = A).svg && (j && t.style[Y] ? L.delayedCall(.001, function () { Kt(t.style, Y) }) : !j && t.getAttribute("transform") && L.delayedCall(.001, function () { t.removeAttribute("transform") })), A }, Qt = e.set3DTransformRatio = e.setTransformRatio = function (t) { var e, i, s, n, r, o, a, l, c, h, u, d, p, f, m = this.data, _ = this.t.style, g = m.rotation, y = m.rotationX, v = m.rotationY, w = m.scaleX, b = m.scaleY, T = m.scaleZ, x = m.x, S = m.y, C = m.z, A = m.svg, P = m.perspective, k = m.force3D, E = m.skewY, L = m.skewX; if (E && (L += E, g += E), !((1 !== t && 0 !== t || "auto" !== k || this.tween._totalTime !== this.tween._totalDuration && this.tween._totalTime) && k || C || P || v || y || 1 !== T) || j && A || !X) g || L || A ? (g *= R, t = L * R, i = Math.cos(g) * w, r = Math.sin(g) * w, s = Math.sin(g - t) * -b, o = Math.cos(g - t) * b, t && "simple" === m.skewType && (e = Math.tan(t - E * R), s *= e = Math.sqrt(1 + e * e), o *= e, E) && (e = Math.tan(E * R), i *= e = Math.sqrt(1 + e * e), r *= e), A && (x += m.xOrigin - (m.xOrigin * i + m.yOrigin * s) + m.xOffset, S += m.yOrigin - (m.xOrigin * r + m.yOrigin * o) + m.yOffset, j && (m.xPercent || m.yPercent) && (u = this.t.getBBox(), x += .01 * m.xPercent * u.width, S += .01 * m.yPercent * u.height), x < (u = 1e-6) && -u < x && (x = 0), S < u) && -u < S && (S = 0), f = (1e5 * i | 0) / 1e5 + "," + (1e5 * r | 0) / 1e5 + "," + (1e5 * s | 0) / 1e5 + "," + (1e5 * o | 0) / 1e5 + "," + x + "," + S + ")", A && j ? this.t.setAttribute("transform", "matrix(" + f) : _[Y] = (m.xPercent || m.yPercent ? "translate(" + m.xPercent + "%," + m.yPercent + "%) matrix(" : "matrix(") + f) : _[Y] = (m.xPercent || m.yPercent ? "translate(" + m.xPercent + "%," + m.yPercent + "%) matrix(" : "matrix(") + w + ",0,0," + b + "," + x + "," + S + ")"; else { if ($ && (w < (u = 1e-4) && -u < w && (w = T = 2e-5), b < u && -u < b && (b = T = 2e-5), !P || m.z || m.rotationX || m.rotationY || (P = 0)), g || L) g *= R, d = i = Math.cos(g), p = r = Math.sin(g), L && (g -= L * R, d = Math.cos(g), p = Math.sin(g), "simple" === m.skewType) && (e = Math.tan((L - E) * R), d *= e = Math.sqrt(1 + e * e), p *= e, m.skewY) && (e = Math.tan(E * R), i *= e = Math.sqrt(1 + e * e), r *= e), s = -p, o = d; else { if (!(v || y || 1 !== T || P || A)) return void (_[Y] = (m.xPercent || m.yPercent ? "translate(" + m.xPercent + "%," + m.yPercent + "%) translate3d(" : "translate3d(") + x + "px," + S + "px," + C + "px)" + (1 !== w || 1 !== b ? " scale(" + w + "," + b + ")" : "")); i = o = 1, s = r = 0 } k = 1, n = a = l = E = L = t = 0, c = P ? -1 / P : 0, h = m.zOrigin, u = 1e-6, (g = v * R) && (d = Math.cos(g), l = -(p = Math.sin(g)), L = c * -p, n = i * p, a = r * p, c *= k = d, i *= d, r *= d), (g = y * R) && (e = s * (d = Math.cos(g)) + n * (p = Math.sin(g)), g = o * d + a * p, E = k * p, t = c * p, n = s * -p + n * d, a = o * -p + a * d, k *= d, c *= d, s = e, o = g), 1 !== T && (n *= T, a *= T, k *= T, c *= T), 1 !== b && (s *= b, o *= b, E *= b, t *= b), 1 !== w && (i *= w, r *= w, l *= w, L *= w), (h || A) && (h && (x += n * -h, S += a * -h, C += k * -h + h), A && (x += m.xOrigin - (m.xOrigin * i + m.yOrigin * s) + m.xOffset, S += m.yOrigin - (m.xOrigin * r + m.yOrigin * o) + m.yOffset), x < u && -u < x && (x = "0"), S < u && -u < S && (S = "0"), C < u) && -u < C && (C = 0), f = (f = m.xPercent || m.yPercent ? "translate(" + m.xPercent + "%," + m.yPercent + "%) matrix3d(" : "matrix3d(") + ((i < u && -u < i ? "0" : i) + "," + (r < u && -u < r ? "0" : r) + "," + (l < u && -u < l ? "0" : l)) + ("," + (L < u && -u < L ? "0" : L) + "," + (s < u && -u < s ? "0" : s) + "," + (o < u && -u < o ? "0" : o)), y || v || 1 !== T ? f = f + ("," + (E < u && -u < E ? "0" : E) + "," + (t < u && -u < t ? "0" : t) + "," + (n < u && -u < n ? "0" : n)) + ("," + (a < u && -u < a ? "0" : a) + "," + (k < u && -u < k ? "0" : k) + "," + (c < u && -u < c ? "0" : c) + ",") : f += ",0,0,0,0,1,0,", _[Y] = f += x + "," + S + "," + C + "," + (P ? 1 + -C / P : 1) + ")" } }, Kt = ((t = Yt.prototype).x = t.y = t.z = t.skewX = t.skewY = t.rotation = t.rotationX = t.rotationY = t.zOrigin = t.xPercent = t.yPercent = t.xOffset = t.yOffset = 0, t.scaleX = t.scaleY = t.scaleZ = 1, s("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin", { parser: function (t, e, i, s, n, r, o) { if (s._lastParsedTransform !== o) { var a = (s._lastParsedTransform = o).scale && "function" == typeof o.scale ? o.scale : 0; a && (o.scale = a(k, t)); var l, c, h, u, d, p, f, m, _ = t._gsTransform, g = t.style, y = Ht.length, v = o, w = {}, b = Zt(t, x, !0, v.parseTransform), T = v.transform && ("function" == typeof v.transform ? v.transform(k, P) : v.transform); if (b.skewType = v.skewType || b.skewType || O.defaultSkewType, s._transform = b, "rotationZ" in v && (v.rotation = v.rotationZ), T && "string" == typeof T && Y) (c = I.style)[Y] = T, c.display = "block", c.position = "absolute", -1 !== T.indexOf("%") && (c.width = F(t, "width"), c.height = F(t, "height")), M.body.appendChild(I), l = Zt(I, null, !1), "simple" === b.skewType && (l.scaleY *= Math.cos(l.skewX * R)), b.svg && (d = b.xOrigin, p = b.yOrigin, l.x -= b.xOffset, l.y -= b.yOffset, (v.transformOrigin || v.svgOrigin) && (T = {}, Mt(t, B(v.transformOrigin), T, v.svgOrigin, v.smoothOrigin, !0), d = T.xOrigin, p = T.yOrigin, l.x -= T.xOffset - b.xOffset, l.y -= T.yOffset - b.yOffset), d || p) && (f = It(I, !0), l.x -= d - (d * f[0] + p * f[2]), l.y -= p - (d * f[1] + p * f[3])), M.body.removeChild(I), l.perspective || (l.perspective = b.perspective), null != v.xPercent && (l.xPercent = S(v.xPercent, b.xPercent)), null != v.yPercent && (l.yPercent = S(v.yPercent, b.yPercent)); else if ("object" == typeof v) { if (l = { scaleX: S(null != v.scaleX ? v.scaleX : v.scale, b.scaleX), scaleY: S(null != v.scaleY ? v.scaleY : v.scale, b.scaleY), scaleZ: S(v.scaleZ, b.scaleZ), x: S(v.x, b.x), y: S(v.y, b.y), z: S(v.z, b.z), xPercent: S(v.xPercent, b.xPercent), yPercent: S(v.yPercent, b.yPercent), perspective: S(v.transformPerspective, b.perspective) }, null != (u = v.directionalRotation)) if ("object" == typeof u) for (c in u) v[c] = u[c]; else v.rotation = u; "string" == typeof v.x && -1 !== v.x.indexOf("%") && (l.x = 0, l.xPercent = S(v.x, b.xPercent)), "string" == typeof v.y && -1 !== v.y.indexOf("%") && (l.y = 0, l.yPercent = S(v.y, b.yPercent)), l.rotation = C("rotation" in v ? v.rotation : "shortRotation" in v ? v.shortRotation + "_short" : b.rotation, b.rotation, "rotation", w), X && (l.rotationX = C("rotationX" in v ? v.rotationX : "shortRotationX" in v ? v.shortRotationX + "_short" : b.rotationX || 0, b.rotationX, "rotationX", w), l.rotationY = C("rotationY" in v ? v.rotationY : "shortRotationY" in v ? v.shortRotationY + "_short" : b.rotationY || 0, b.rotationY, "rotationY", w)), l.skewX = C(v.skewX, b.skewX), l.skewY = C(v.skewY, b.skewY) } for (X && null != v.force3D && (b.force3D = v.force3D, h = !0), (f = b.force3D || b.z || b.rotationX || b.rotationY || l.z || l.rotationX || l.rotationY || l.perspective) || null == v.scale || (l.scaleZ = 1); -1 < --y;)(1e-6 < (T = l[m = Ht[y]] - b[m]) || T < -1e-6 || null != v[m] || null != ft[m]) && (h = !0, n = new H(b, m, b[m], T, n), m in w && (n.e = w[m]), n.xs0 = 0, n.plugin = r, s._overwriteProps.push(n.n)); T = "function" == typeof v.transformOrigin ? v.transformOrigin(k, P) : v.transformOrigin, b.svg && (T || v.svgOrigin) && (d = b.xOffset, p = b.yOffset, Mt(t, B(T), l, v.svgOrigin, v.smoothOrigin), n = Et(b, "xOrigin", (_ ? b : l).xOrigin, l.xOrigin, n, "transformOrigin"), n = Et(b, "yOrigin", (_ ? b : l).yOrigin, l.yOrigin, n, "transformOrigin"), d === b.xOffset && p === b.yOffset || (n = Et(b, "xOffset", _ ? d : b.xOffset, b.xOffset, n, "transformOrigin"), n = Et(b, "yOffset", _ ? p : b.yOffset, b.yOffset, n, "transformOrigin")), T = "0px 0px"), (T || X && f && b.zOrigin) && (Y ? (h = !0, m = jt, T = T || (T = (F(t, m, x, !1, "50% 50%") + "").split(" "))[0] + " " + T[1] + " " + b.zOrigin + "px", T += "", (n = new H(g, m, 0, 0, n, -1, "transformOrigin")).b = g[m], n.plugin = r, X ? (c = b.zOrigin, T = T.split(" "), b.zOrigin = (2 < T.length ? parseFloat(T[2]) : c) || 0, n.xs0 = n.e = T[0] + " " + (T[1] || "50%") + " 0px", (n = new H(b, "zOrigin", 0, 0, n, -1, n.n)).b = c, n.xs0 = n.e = b.zOrigin) : n.xs0 = n.e = T) : B(T + "", b)), h && (s._transformType = b.svg && j || !f && 3 !== this._transformType ? 2 : 3), a && (o.scale = a) } return n }, allowFunc: !0, prefix: !0 }), s("boxShadow", { defaultValue: "0px 0px 0px 0px #999", prefix: !0, color: !0, multi: !0, keyword: "inset" }), s("clipPath", { defaultValue: "inset(0%)", prefix: !0, multi: !0, formatter: At("inset(0% 0% 0% 0%)", !1, !0) }), s("borderRadius", { defaultValue: "0px", parser: function (t, e, i, s, n, r) { e = this.format(e); for (var o, a, l, c, h, u, d, p, f, m, _ = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"], g = t.style, y = parseFloat(t.offsetWidth), v = parseFloat(t.offsetHeight), w = e.split(" "), b = 0; b < _.length; b++)this.p.indexOf("border") && (_[b] = T(_[b])), -1 !== (l = a = F(t, _[b], x, !1, "0px")).indexOf(" ") && (l = (a = l.split(" "))[0], a = a[1]), c = o = w[b], f = parseFloat(l), m = l.substr((f + "").length), (u = "" === (u = (d = "=" === c.charAt(1)) ? (h = parseInt(c.charAt(0) + "1", 10), c = c.substr(2), h *= parseFloat(c), c.substr((h + "").length - (h < 0 ? 1 : 0)) || "") : (h = parseFloat(c), c.substr((h + "").length))) ? W[i] || m : u) !== m && (p = N(t, "borderLeft", f, m), f = N(t, "borderTop", f, m), a = "%" === u ? (l = p / y * 100 + "%", f / v * 100 + "%") : "em" === u ? (l = p / (m = N(t, "borderLeft", 1, "em")) + "em", f / m + "em") : (l = p + "px", f + "px"), d) && (c = parseFloat(l) + h + u, o = parseFloat(a) + h + u), n = Lt(g, _[b], l + " " + a, c + " " + o, !1, "0px", n); return n }, prefix: !0, formatter: At("0px 0px 0px 0px", !1, !0) }), s("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius", { defaultValue: "0px", parser: function (t, e, i, s, n, r) { return Lt(t.style, i, this.format(F(t, i, x, !1, "0px 0px")), this.format(e), !1, "0px", n) }, prefix: !0, formatter: At("0px 0px", !1, !0) }), s("backgroundPosition", { defaultValue: "0 0", parser: function (t, e, i, s, n, r) { var o, a, l, c, h, u = "background-position", d = x || f(t), p = this.format((d ? b ? d.getPropertyValue(u + "-x") + " " + d.getPropertyValue(u + "-y") : d.getPropertyValue(u) : t.currentStyle.backgroundPositionX + " " + t.currentStyle.backgroundPositionY) || "0 0"), d = this.format(e); if (-1 !== p.indexOf("%") != (-1 !== d.indexOf("%")) && d.split(",").length < 2 && (u = F(t, "backgroundImage").replace(ct, "")) && "none" !== u) { for (o = p.split(" "), a = d.split(" "), gt.setAttribute("src", u), l = 2; -1 < --l;)(c = -1 !== (p = o[l]).indexOf("%")) != (-1 !== a[l].indexOf("%")) && (h = 0 === l ? t.offsetWidth - gt.width : t.offsetHeight - gt.height, o[l] = c ? parseFloat(p) / 100 * h + "px" : parseFloat(p) / h * 100 + "%"); p = o.join(" ") } return this.parseComplex(t.style, p, d, n, r) }, formatter: B }), s("backgroundSize", { defaultValue: "0 0", formatter: function (t) { return "co" === (t += "").substr(0, 2) ? t : B(-1 === t.indexOf(" ") ? t + " " + t : t) } }), s("perspective", { defaultValue: "0px", prefix: !0 }), s("perspectiveOrigin", { defaultValue: "50% 50%", prefix: !0 }), s("transformStyle", { prefix: !0 }), s("backfaceVisibility", { prefix: !0 }), s("userSelect", { prefix: !0 }), s("margin", { parser: Pt("marginTop,marginRight,marginBottom,marginLeft") }), s("padding", { parser: Pt("paddingTop,paddingRight,paddingBottom,paddingLeft") }), s("clip", { defaultValue: "rect(0px,0px,0px,0px)", parser: function (t, e, i, s, n, r) { var o, a; return e = b < 9 ? (o = t.currentStyle, a = b < 8 ? " " : ",", o = "rect(" + o.clipTop + a + o.clipRight + a + o.clipBottom + a + o.clipLeft + ")", this.format(e).split(",").join(a)) : (o = this.format(F(t, this.p, x, !1, this.dflt)), this.format(e)), this.parseComplex(t.style, o, e, n, r) } }), s("textShadow", { defaultValue: "0px 0px 0px #999", color: !0, multi: !0 }), s("autoRound,strictUnits", { parser: function (t, e, i, s, n) { return n } }), s("border", { defaultValue: "0px solid #000", parser: function (t, e, i, s, n, r) { var o = F(t, "borderTopWidth", x, !1, "0px"), e = this.format(e).split(" "), a = e[0].replace(it, ""); return "px" !== a && (o = parseFloat(o) / N(t, "borderTopWidth", 1, a) + a), this.parseComplex(t.style, this.format(o + " " + F(t, "borderTopStyle", x, !1, "solid") + " " + F(t, "borderTopColor", x, !1, "#000")), e.join(" "), n, r) }, color: !0, formatter: function (t) { var e = t.split(" "); return e[0] + " " + (e[1] || "solid") + " " + (t.match(z) || ["#000"])[0] } }), s("borderWidth", { parser: Pt("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth") }), s("float,cssFloat,styleFloat", { parser: function (t, e, i, s, n, r) { var t = t.style, o = "cssFloat" in t ? "cssFloat" : "styleFloat"; return new H(t, o, 0, 0, n, -1, i, !1, 0, t[o], e) } }), s("opacity,alpha,autoAlpha", { defaultValue: "1", parser: function (t, e, i, s, n, r) { var o = parseFloat(F(t, "opacity", x, !1, "1")), a = t.style, l = "autoAlpha" === i; return "string" == typeof e && "=" === e.charAt(1) && (e = ("-" === e.charAt(0) ? -1 : 1) * parseFloat(e.substr(2)) + o), l && 1 === o && "hidden" === F(t, "visibility", x) && 0 !== e && (o = 0), q ? n = new H(a, "opacity", o, e - o, n) : ((n = new H(a, "opacity", 100 * o, 100 * (e - o), n)).xn1 = l ? 1 : 0, a.zoom = 1, n.type = 2, n.b = "alpha(opacity=" + n.s + ")", n.e = "alpha(opacity=" + (n.s + n.c) + ")", n.data = t, n.plugin = r, n.setRatio = Ft), l && ((n = new H(a, "visibility", 0, 0, n, -1, null, !1, 0, 0 !== o ? "inherit" : "hidden", 0 === e ? "hidden" : "inherit")).xs0 = "inherit", s._overwriteProps.push(n.n), s._overwriteProps.push(i)), n } }), function (t, e) { e && (t.removeProperty ? ("ms" !== e.substr(0, 2) && "webkit" !== e.substr(0, 6) || (e = "-" + e), t.removeProperty(e.replace(at, "-$1").toLowerCase())) : t.removeAttribute(e)) }); s("className", { parser: function (t, e, i, s, n, r, o) { var a, l, c, h = t.getAttribute("class") || "", u = t.style.cssText; if ((n = s._classNamePT = new H(t, i, 0, 0, n, 2)).setRatio = Nt, n.pr = -11, d = !0, n.b = h, i = m(t, x), a = t._gsClassPT) { for (l = {}, c = a.data; c;)l[c.p] = 1, c = c._next; a.setRatio(1) } return (t._gsClassPT = n).e = "=" !== e.charAt(1) ? e : h.replace(new RegExp("(?:\\s|^)" + e.substr(2) + "(?![\\w-])"), "") + ("+" === e.charAt(0) ? " " + e.substr(2) : ""), t.setAttribute("class", n.e), a = y(t, i, m(t), o, l), t.setAttribute("class", h), n.data = a.firstMPT, t.style.cssText !== u && (t.style.cssText = u), n.xfirst = s.parse(t, a.difs, n, r) } }); for (s("clearProps", { parser: function (t, e, i, s, n) { return (n = new H(t, i, 0, 0, n, 2)).setRatio = Bt, n.e = e, n.pr = -10, n.data = s._tween, d = !0, n } }), t = "bezier,throwProps,physicsProps,physics2D".split(","), V = t.length; V--;)Rt(t[V]); (t = O.prototype)._firstPT = t._lastParsedTransform = t._transform = null, t._onInitTween = function (t, e, i, s) { if (!t.nodeType) return !1; this._target = P = t, this._tween = i, this._vars = e, k = s, U = e.autoRound, d = !1, W = e.suffixMap || O.suffixMap, x = f(t), _ = this._overwriteProps; var n, r, o, a, l, c, s = t.style; if (!w || "" !== s.zIndex || "auto" !== (c = F(t, "zIndex", x)) && "" !== c || this._addLazySet(s, "zIndex", 0), "string" == typeof e && (o = s.cssText, c = m(t, x), s.cssText = o + ";" + e, c = y(t, c, m(t)).difs, !q && nt.test(e) && (c.opacity = parseFloat(RegExp.$1)), e = c, s.cssText = o), e.className ? this._firstPT = n = p.className.parse(t, e.className, "className", this, null, null, e) : this._firstPT = n = this.parse(t, e, null), this._transformType) { for (c = 3 === this._transformType, Y ? G && (w = !0, "" !== s.zIndex || "auto" !== (e = F(t, "zIndex", x)) && "" !== e || this._addLazySet(s, "zIndex", 0), Z) && this._addLazySet(s, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (c ? "visible" : "hidden")) : s.zoom = 1, r = n; r && r._next;)r = r._next; e = new H(t, "transform", 0, 0, null, 2), this._linkCSSP(e, null, r), e.setRatio = Y ? Qt : qt, e.data = this._transform || Zt(t, x, !0), e.tween = i, e.pr = -1, _.pop() } if (d) { for (; n;) { for (l = n._next, r = o; r && r.pr > n.pr;)r = r._next; (n._prev = r ? r._prev : a) ? n._prev._next = n : o = n, (n._next = r) ? r._prev = n : a = n, n = l } this._firstPT = o } return !0 }, t.parse = function (t, e, i, s) { var n, r, o, a, l, c, h, u, d = t.style; for (n in e) { if (l = e[n], a = p[n], "function" != typeof l || a && a.allowFunc || (l = l(k, P)), a) i = a.parse(t, l, n, this, i, s, e); else { if ("--" === n.substr(0, 2)) { this._tween._propLookup[n] = this._addTween.call(this._tween, t.style, "setProperty", f(t).getPropertyValue(n) + "", l + "", n, !1, n); continue } a = F(t, n, x) + "", h = "string" == typeof l, "color" === n || "fill" === n || "stroke" === n || -1 !== n.indexOf("Color") || h && ot.test(l) ? (h || (l = (3 < (l = Ct(l)).length ? "rgba(" : "rgb(") + l.join(",") + ")"), i = Lt(d, n, a, l, !0, "transparent", i, 0, s)) : h && pt.test(l) ? i = Lt(d, n, a, l, !0, null, i, 0, s) : (c = (r = parseFloat(a)) || 0 === r ? a.substr((r + "").length) : "", "" !== a && "auto" !== a || (c = "width" === n || "height" === n ? (r = function (t, e, i) { if ("svg" === (t.nodeName + "").toLowerCase()) return (i || f(t))[e] || 0; if (t.getCTM && Gt(t)) return t.getBBox()[e] || 0; var s = parseFloat("width" === e ? t.offsetWidth : t.offsetHeight), n = Tt[e], r = n.length; for (i = i || f(t); -1 < --r;)s = (s -= parseFloat(F(t, "padding" + n[r], i, !0)) || 0) - (parseFloat(F(t, "border" + n[r] + "Width", i, !0)) || 0); return s }(t, n, x), "px") : "left" === n || "top" === n ? (r = bt(t, n, x), "px") : (r = "opacity" !== n ? 0 : 1, "")), "" === (h = (u = h && "=" === l.charAt(1)) ? (o = parseInt(l.charAt(0) + "1", 10), l = l.substr(2), o *= parseFloat(l), l.replace(it, "")) : (o = parseFloat(l), h ? l.replace(it, "") : "")) && (h = n in W ? W[n] : c), l = o || 0 === o ? (u ? o + r : o) + h : e[n], c === h || "" === h && "lineHeight" !== n || (o || 0 === o) && r && (r = N(t, n, r, c), "%" === h ? (r /= N(t, n, 100, "%") / 100, !0 !== e.strictUnits && (a = r + "%")) : "em" === h || "rem" === h || "vw" === h || "vh" === h ? r /= N(t, n, 1, h) : "px" !== h && (o = N(t, n, o, h), h = "px"), u) && (o || 0 === o) && (l = o + r + h), u && (o += r), !r && 0 !== r || !o && 0 !== o ? void 0 !== d[n] && (l || l + "" != "NaN" && null != l) ? (i = new H(d, n, o || r || 0, 0, i, -1, n, !1, 0, a, l)).xs0 = "none" !== l || "display" !== n && -1 === n.indexOf("Style") ? l : a : g("invalid " + n + " tween value: " + e[n]) : (i = new H(d, n, r, o - r, i, 0, n, !1 !== U && ("px" === h || "zIndex" === n), 0, a, l)).xs0 = h) } s && i && !i.plugin && (i.plugin = s) } return i }, t.setRatio = function (t) { var e, i, s, n = this._firstPT; if (1 !== t || this._tween._time !== this._tween._duration && 0 !== this._tween._time) if (t || this._tween._time !== this._tween._duration && 0 !== this._tween._time || -1e-6 === this._tween._rawPrevTime) for (; n;) { if (e = n.c * t + n.s, n.r ? e = n.r(e) : e < 1e-6 && -1e-6 < e && (e = 0), n.type) if (1 === n.type) if (2 === (s = n.l)) n.t[n.p] = n.xs0 + e + n.xs1 + n.xn1 + n.xs2; else if (3 === s) n.t[n.p] = n.xs0 + e + n.xs1 + n.xn1 + n.xs2 + n.xn2 + n.xs3; else if (4 === s) n.t[n.p] = n.xs0 + e + n.xs1 + n.xn1 + n.xs2 + n.xn2 + n.xs3 + n.xn3 + n.xs4; else if (5 === s) n.t[n.p] = n.xs0 + e + n.xs1 + n.xn1 + n.xs2 + n.xn2 + n.xs3 + n.xn3 + n.xs4 + n.xn4 + n.xs5; else { for (i = n.xs0 + e + n.xs1, s = 1; s < n.l; s++)i += n["xn" + s] + n["xs" + (s + 1)]; n.t[n.p] = i } else -1 === n.type ? n.t[n.p] = n.xs0 : n.setRatio && n.setRatio(t); else n.t[n.p] = e + n.xs0; n = n._next } else for (; n;)2 !== n.type ? n.t[n.p] = n.b : n.setRatio(t), n = n._next; else for (; n;) { if (2 !== n.type) if (n.r && -1 !== n.type) if (e = n.r(n.s + n.c), n.type) { if (1 === n.type) { for (s = n.l, i = n.xs0 + e + n.xs1, s = 1; s < n.l; s++)i += n["xn" + s] + n["xs" + (s + 1)]; n.t[n.p] = i } } else n.t[n.p] = e + n.xs0; else n.t[n.p] = n.e; else n.setRatio(t); n = n._next } }, t._enableTransforms = function (t) { this._transform = this._transform || Zt(this._target, x, !0), this._transformType = this._transform.svg && j || !t && 3 !== this._transformType ? 2 : 3 }; function Jt(t) { this.t[this.p] = this.e, this.data._linkCSSP(this, this._next, null, !0) } function te(t, e, i) { var s, n, r, o; if (t.slice) for (n = t.length; -1 < --n;)te(t[n], e, i); else for (n = (s = t.childNodes).length; -1 < --n;)o = (r = s[n]).type, r.style && (e.push(m(r)), i) && i.push(r), 1 !== o && 9 !== o && 11 !== o || !r.childNodes.length || te(r, e, i) } t._addLazySet = function (t, e, i) { t = this._firstPT = new H(t, e, 0, 0, this._firstPT, 2); t.e = i, t.setRatio = Jt, t.data = this }, t._linkCSSP = function (t, e, i, s) { return t && (e && (e._prev = t), t._next && (t._next._prev = t._prev), t._prev ? t._prev._next = t._next : this._firstPT === t && (this._firstPT = t._next, s = !0), i ? i._next = t : s || null !== this._firstPT || (this._firstPT = t), t._next = e, t._prev = i), t }, t._mod = function (t) { for (var e = this._firstPT; e;)"function" == typeof t[e.p] && (e.r = t[e.p]), e = e._next }, t._kill = function (t) { var e, i, s, n = t; if (t.autoAlpha || t.alpha) { for (i in n = {}, t) n[i] = t[i]; n.opacity = 1, n.autoAlpha && (n.visibility = 1) } for (t.className && (e = this._classNamePT) && ((s = e.xfirst) && s._prev ? this._linkCSSP(s._prev, e._next, s._prev._prev) : s === this._firstPT && (this._firstPT = e._next), e._next && this._linkCSSP(e._next, e._next._next, s._prev), this._classNamePT = null), e = this._firstPT; e;)e.plugin && e.plugin !== i && e.plugin._kill && (e.plugin._kill(t), i = e.plugin), e = e._next; return o.prototype._kill.call(this, n) }; return O.cascadeTo = function (t, e, i) { var s, n, r, o, a = L.to(t, e, i), l = [a], c = [], h = [], u = [], d = L._internals.reservedProps; for (t = a._targets || a.target, te(t, c, u), a.render(e, !0, !0), te(t, h), a.render(0, !0, !0), a._enabled(!0), s = u.length; -1 < --s;)if ((n = y(u[s], c[s], h[s])).firstMPT) { for (r in n = n.difs, i) d[r] && (n[r] = i[r]); for (r in o = {}, n) o[r] = c[s][r]; l.push(L.fromTo(u[s], e, o, n)) } return l }, o.activate([O]), O }, !0), (t = (t = _gsScope._gsDefine.plugin({ propName: "roundProps", version: "1.7.0", priority: -1, API: 2, init: function (t, e, i) { return this._tween = i, !0 } })).prototype)._onInitAllProps = function () { var t, e, i, s, n = this._tween, r = n.vars.roundProps, o = {}, a = n._propLookup.roundProps; if ("object" != typeof r || r.push) for (i = (r = "string" == typeof r ? r.split(",") : r).length; -1 < --i;)o[r[i]] = Math.round; else for (s in r) o[s] = function (e) { var i = e < 1 ? Math.pow(10, (e + "").length - 2) : 1; return function (t) { return (Math.round(t / e) * e * i | 0) / i } }(r[s]); for (s in o) for (t = n._firstPT; t;) { e = t._next; if (t.pg) t.t._mod(o); else if (t.n === s) if (2 === t.f && t.t) { var l = t.t._firstPT; var c = o[s]; for (; l;)l.f || l.blob || (l.m = c || Math.round), l = l._next } else this._add(t.t, s, t.s, t.c, o[s]), e && (e._prev = t._prev), t._prev ? t._prev._next = e : n._firstPT === t && (n._firstPT = e), t._next = t._prev = null, n._propLookup[s] = a; t = e } return !1 }, t._add = function (t, e, i, s, n) { this._addTween(t, e, i, i + s, e, n || Math.round), this._overwriteProps.push(e) }, _gsScope._gsDefine.plugin({ propName: "attr", API: 2, version: "0.6.1", init: function (t, e, i, s) { var n, r; if ("function" != typeof t.setAttribute) return !1; for (n in e) "function" == typeof (r = e[n]) && (r = r(s, t)), this._addTween(t, "setAttribute", t.getAttribute(n) + "", r + "", n, !1, n), this._overwriteProps.push(n); return !0 } }), _gsScope._gsDefine.plugin({ propName: "directionalRotation", version: "0.3.1", API: 2, init: function (t, e, i, s) { "object" != typeof e && (e = { rotation: e }), this.finals = {}; var n, r, o, a, l, c = !0 === e.useRadians ? 2 * Math.PI : 360; for (n in e) "useRadians" !== n && ("function" == typeof (a = e[n]) && (a = a(s, t)), r = (l = (a + "").split("_"))[0], o = parseFloat("function" != typeof t[n] ? t[n] : t[n.indexOf("set") || "function" != typeof t["get" + n.substr(3)] ? n : "get" + n.substr(3)]()), a = (a = this.finals[n] = "string" == typeof r && "=" === r.charAt(1) ? o + parseInt(r.charAt(0) + "1", 10) * Number(r.substr(2)) : Number(r) || 0) - o, l.length && (-1 !== (r = l.join("_")).indexOf("short") && (a %= c) != a % (c / 2) && (a = a < 0 ? a + c : a - c), -1 !== r.indexOf("_cw") && a < 0 ? a = (a + 9999999999 * c) % c - (a / c | 0) * c : -1 !== r.indexOf("ccw") && 0 < a && (a = (a - 9999999999 * c) % c - (a / c | 0) * c)), 1e-6 < a || a < -1e-6) && (this._addTween(t, n, o, o + a, n), this._overwriteProps.push(n)); return !0 }, set: function (t) { var e; if (1 !== t) this._super.setRatio.call(this, t); else for (e = this._firstPT; e;)e.f ? e.t[e.p](this.finals[e.p]) : e.t[e.p] = this.finals[e.p], e = e._next } })._autoCSS = !0, _gsScope._gsDefine("easing.Back", ["easing.Ease"], function (_) { function t(t, e) { var i = (t = h("easing." + t, function () { }, !0)).prototype = new _; return i.constructor = t, i.getRatio = e, t } function e(t, e, i, s, n) { return e = h("easing." + t, { easeOut: new e, easeIn: new i, easeInOut: new s }, !0), u(e, t), e } function g(t, e, i) { this.t = t, this.v = e, i && (((this.next = i).prev = this).c = i.v - e, this.gap = i.t - t) } function i(t, e) { var i = h("easing." + t, function (t) { this._p1 = t || 0 === t ? t : 1.70158, this._p2 = 1.525 * this._p1 }, !0); return (t = i.prototype = new _).constructor = i, t.getRatio = e, t.config = function (t) { return new i(t) }, i } var s, n, r, o = _gsScope.GreenSockGlobals || _gsScope, a = o.com.greensock, l = 2 * Math.PI, c = Math.PI / 2, h = a._class, u = _.register || function () { }, a = e("Back", i("BackOut", function (t) { return --t * t * ((this._p1 + 1) * t + this._p1) + 1 }), i("BackIn", function (t) { return t * t * ((this._p1 + 1) * t - this._p1) }), i("BackInOut", function (t) { return (t *= 2) < 1 ? .5 * t * t * ((this._p2 + 1) * t - this._p2) : .5 * ((t -= 2) * t * ((this._p2 + 1) * t + this._p2) + 2) })), d = h("easing.SlowMo", function (t, e, i) { e = e || 0 === e ? e : .7, null == t ? t = .7 : 1 < t && (t = 1), this._p = 1 !== t ? e : 0, this._p1 = (1 - t) / 2, this._p2 = t, this._p3 = this._p1 + this._p2, this._calcEnd = !0 === i }, !0), p = d.prototype = new _; return p.constructor = d, p.getRatio = function (t) { var e = t + (.5 - t) * this._p; return t < this._p1 ? this._calcEnd ? 1 - (t = 1 - t / this._p1) * t : e - (t = 1 - t / this._p1) * t * t * t * e : t > this._p3 ? this._calcEnd ? 1 === t ? 0 : 1 - (t = (t - this._p3) / this._p1) * t : e + (t - e) * (t = (t - this._p3) / this._p1) * t * t * t : this._calcEnd ? 1 : e }, d.ease = new d(.7, .7), p.config = d.config = function (t, e, i) { return new d(t, e, i) }, (p = (s = h("easing.SteppedEase", function (t, e) { this._p1 = 1 / (t = t || 1), this._p2 = t + (e ? 0 : 1), this._p3 = e ? 1 : 0 }, !0)).prototype = new _).constructor = s, p.getRatio = function (t) { return t < 0 ? t = 0 : 1 <= t && (t = .999999999), ((this._p2 * t | 0) + this._p3) * this._p1 }, p.config = s.config = function (t, e) { return new s(t, e) }, (p = (n = h("easing.ExpoScaleEase", function (t, e, i) { this._p1 = Math.log(e / t), this._p2 = e - t, this._p3 = t, this._ease = i }, !0)).prototype = new _).constructor = n, p.getRatio = function (t) { return this._ease && (t = this._ease.getRatio(t)), (this._p3 * Math.exp(this._p1 * t) - this._p3) / this._p2 }, p.config = n.config = function (t, e, i) { return new n(t, e, i) }, (p = (r = h("easing.RoughEase", function (t) { for (var e, i, s, n, r, o, a = (t = t || {}).taper || "none", l = [], c = 0, h = 0 | (t.points || 20), u = h, d = !1 !== t.randomize, p = !0 === t.clamp, f = t.template instanceof _ ? t.template : null, m = "number" == typeof t.strength ? .4 * t.strength : .4; -1 < --u;)e = d ? Math.random() : 1 / h * u, i = f ? f.getRatio(e) : e, s = "none" === a ? m : "out" === a ? (n = 1 - e) * n * m : "in" === a ? e * e * m : e < .5 ? (n = 2 * e) * n * .5 * m : (n = 2 * (1 - e)) * n * .5 * m, d ? i += Math.random() * s - .5 * s : u % 2 ? i += .5 * s : i -= .5 * s, p && (1 < i ? i = 1 : i < 0 && (i = 0)), l[c++] = { x: e, y: i }; for (l.sort(function (t, e) { return t.x - e.x }), o = new g(1, 1, null), u = h; -1 < --u;)o = new g((r = l[u]).x, r.y, o); this._prev = new g(0, 0, 0 !== o.t ? o : o.next) }, !0)).prototype = new _).constructor = r, p.getRatio = function (t) { var e = this._prev; if (t > e.t) { for (; e.next && t >= e.t;)e = e.next; e = e.prev } else for (; e.prev && t <= e.t;)e = e.prev; return (this._prev = e).v + (t - e.t) / e.gap * e.c }, p.config = function (t) { return new r(t) }, r.ease = new r, e("Bounce", t("BounceOut", function (t) { return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 }), t("BounceIn", function (t) { return (t = 1 - t) < 1 / 2.75 ? 1 - 7.5625 * t * t : t < 2 / 2.75 ? 1 - (7.5625 * (t -= 1.5 / 2.75) * t + .75) : t < 2.5 / 2.75 ? 1 - (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 1 - (7.5625 * (t -= 2.625 / 2.75) * t + .984375) }), t("BounceInOut", function (t) { var e = t < .5; return (t = e ? 1 - 2 * t : 2 * t - 1) < 1 / 2.75 ? t *= 7.5625 * t : t = t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375, e ? .5 * (1 - t) : .5 * t + .5 })), e("Circ", t("CircOut", function (t) { return Math.sqrt(1 - --t * t) }), t("CircIn", function (t) { return -(Math.sqrt(1 - t * t) - 1) }), t("CircInOut", function (t) { return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) })), e("Elastic", (p = function (t, e, i) { var s = h("easing." + t, function (t, e) { this._p1 = 1 <= t ? t : 1, this._p2 = (e || i) / (t < 1 ? t : 1), this._p3 = this._p2 / l * (Math.asin(1 / this._p1) || 0), this._p2 = l / this._p2 }, !0), t = s.prototype = new _; return t.constructor = s, t.getRatio = e, t.config = function (t, e) { return new s(t, e) }, s })("ElasticOut", function (t) { return this._p1 * Math.pow(2, -10 * t) * Math.sin((t - this._p3) * this._p2) + 1 }, .3), p("ElasticIn", function (t) { return -this._p1 * Math.pow(2, 10 * --t) * Math.sin((t - this._p3) * this._p2) }, .3), p("ElasticInOut", function (t) { return (t *= 2) < 1 ? this._p1 * Math.pow(2, 10 * --t) * Math.sin((t - this._p3) * this._p2) * -.5 : this._p1 * Math.pow(2, -10 * --t) * Math.sin((t - this._p3) * this._p2) * .5 + 1 }, .45)), e("Expo", t("ExpoOut", function (t) { return 1 - Math.pow(2, -10 * t) }), t("ExpoIn", function (t) { return Math.pow(2, 10 * (t - 1)) - .001 }), t("ExpoInOut", function (t) { return (t *= 2) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * (t - 1))) })), e("Sine", t("SineOut", function (t) { return Math.sin(t * c) }), t("SineIn", function (t) { return 1 - Math.cos(t * c) }), t("SineInOut", function (t) { return -.5 * (Math.cos(Math.PI * t) - 1) })), h("easing.EaseLookup", { find: function (t) { return _.map[t] } }, !0), u(o.SlowMo, "SlowMo", "ease,"), u(r, "RoughEase", "ease,"), u(s, "SteppedEase", "ease,"), a }, !0) }), _gsScope._gsDefine && _gsScope._gsQueue.pop()(), function (m) { "use strict"; var d = {}, p = m.document, f = m.GreenSockGlobals = m.GreenSockGlobals || m, t = f.TweenMax; if (t) return "undefined" != typeof module && module.exports && (module.exports = t); function q(t) { for (var e = t.split("."), i = f, s = 0; s < e.length; s++)i[e[s]] = i = i[e[s]] || {}; return i } function F(t) { for (var e = [], i = t.length, s = 0; s !== i; e.push(t[s++])); return e } function N() { } function _(t) { return null != t && (t instanceof Array || "object" == typeof t && !!t.push && i.call(t) === z) } function B(a, l, c, h) { this.sc = y[a] ? y[a].sc : [], (y[a] = this).gsClass = null, this.func = c; var u = []; this.check = function (t) { for (var e, i, s, n, r = l.length, o = r; -1 < --r;)(e = y[l[r]] || new B(l[r], [])).gsClass ? (u[r] = e.gsClass, o--) : t && e.sc.push(this); if (0 === o && c) { if (s = (i = ("com.greensock." + a).split(".")).pop(), n = q(i.join("."))[s] = this.gsClass = c.apply(c, u), h) if (f[s] = d[s] = n, "undefined" != typeof module && module.exports) if ("TweenMax" === a) for (r in module.exports = d.TweenMax = n, d) n[r] = d[r]; else d.TweenMax && (d.TweenMax[s] = n); else "function" == typeof define && define.amd && define((m.GreenSockAMDPath ? m.GreenSockAMDPath + "/" : "") + a.split(".").pop(), [], function () { return n }); for (r = 0; r < this.sc.length; r++)this.sc[r].check() } }, this.check(!0) } var e, g, i, z, u = q("com.greensock"), y = (i = Object.prototype.toString, z = i.call([]), {}), s = m._gsDefine = function (t, e, i, s) { return new B(t, e, i, s) }, v = u._class = function (t, e, i) { return e = e || function () { }, s(t, [], function () { return e }, i), e }, H = (s.globals = f, [0, 0, 1, 1]), w = v("easing.Ease", function (t, e, i, s) { this._func = t, this._type = i || 0, this._power = s || 0, this._params = e ? H.concat(e) : H }, !0), b = w.map = {}, n = w.register = function (t, e, i, s) { for (var n, r, o, a, l = e.split(","), c = l.length, h = (i || "easeIn,easeOut,easeInOut").split(","); -1 < --c;)for (r = l[c], n = s ? v("easing." + r, null, !0) : u.easing[r] || {}, o = h.length; -1 < --o;)a = h[o], b[r + "." + a] = b[a + r] = n[a] = t.getRatio ? t : t[a] || new t }; for ((I = w.prototype)._calcEnd = !1, I.getRatio = function (t) { var e, i, s; return this._func ? (this._params[0] = t, this._func.apply(null, this._params)) : (s = 1 === (e = this._type) ? 1 - t : 2 === e ? t : t < .5 ? 2 * t : 2 * (1 - t), 1 === (i = this._power) ? s *= s : 2 === i ? s *= s * s : 3 === i ? s *= s * s * s : 4 === i && (s *= s * s * s * s), 1 === e ? 1 - s : 2 === e ? s : t < .5 ? s / 2 : 1 - s / 2) }, r = (e = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"]).length; -1 < --r;)I = e[r] + ",Power" + r, n(new w(null, null, 1, r), I, "easeOut", !0), n(new w(null, null, 2, r), I, "easeIn" + (0 === r ? ",easeNone" : "")), n(new w(null, null, 3, r), I, "easeInOut"); b.linear = u.easing.Linear.easeIn, b.swing = u.easing.Quad.easeInOut; for (var V = v("events.EventDispatcher", function (t) { this._listeners = {}, this._eventTarget = t || this }), T = ((I = V.prototype).addEventListener = function (t, e, i, s, n) { n = n || 0; var r, o, a = this._listeners[t], l = 0; for (this !== P || g || P.wake(), null == a && (this._listeners[t] = a = []), o = a.length; -1 < --o;)(r = a[o]).c === e && r.s === i ? a.splice(o, 1) : 0 === l && r.pr < n && (l = o + 1); a.splice(l, 0, { c: e, s: i, up: s, pr: n }) }, I.removeEventListener = function (t, e) { var i, s = this._listeners[t]; if (s) for (i = s.length; -1 < --i;)if (s[i].c === e) return void s.splice(i, 1) }, I.dispatchEvent = function (t) { var e, i, s, n = this._listeners[t]; if (n) for (1 < (e = n.length) && (n = n.slice(0)), i = this._eventTarget; -1 < --e;)(s = n[e]) && (s.up ? s.c.call(s.s || i, { type: t, target: i }) : s.c.call(s.s || i)) }, m.requestAnimationFrame), x = m.cancelAnimationFrame, S = Date.now || function () { return (new Date).getTime() }, C = S(), r = (e = ["ms", "moz", "webkit", "o"]).length; -1 < --r && !T;)T = m[e[r] + "RequestAnimationFrame"], x = m[e[r] + "CancelAnimationFrame"] || m[e[r] + "CancelRequestAnimationFrame"]; v("Ticker", function (t, e) { var s, n, r, o, a, l = this, c = S(), i = !(!1 === e || !T) && "auto", h = 500, u = 33, d = function (t) { var e, i = S() - C; h < i && (c += i - u), C += i, l.time = (C - c) / 1e3, i = l.time - a, (!s || 0 < i || !0 === t) && (l.frame++, a += i + (o <= i ? .004 : o - i), e = !0), !0 !== t && (r = n(d)), e && l.dispatchEvent("tick") }; V.call(l), l.time = l.frame = 0, l.tick = function () { d(!0) }, l.lagSmoothing = function (t, e) { if (!arguments.length) return h < 1e8; h = t || 1e8, u = Math.min(e, h, 0) }, l.sleep = function () { null != r && ((i && x ? x : clearTimeout)(r), n = N, r = null, l === P) && (g = !1) }, l.wake = function (t) { null !== r ? l.sleep() : t ? c += -C + (C = S()) : 10 < l.frame && (C = S() - h + 5), n = 0 === s ? N : i && T ? T : function (t) { return setTimeout(t, 1e3 * (a - l.time) + 1 | 0) }, l === P && (g = !0), d(2) }, l.fps = function (t) { if (!arguments.length) return s; o = 1 / ((s = t) || 60), a = this.time + o, l.wake() }, l.useRAF = function (t) { if (!arguments.length) return i; l.sleep(), i = t, l.fps(s) }, l.fps(t), setTimeout(function () { "auto" === i && l.frame < 5 && "hidden" !== (p || {}).visibilityState && l.useRAF(!1) }, 1500) }), (I = u.Ticker.prototype = new u.events.EventDispatcher).constructor = u.Ticker; function j() { g && 2e3 < S() - C && ("hidden" !== (p || {}).visibilityState || !P.lagSmoothing()) && P.wake(); var t = setTimeout(j, 2e3); t.unref && t.unref() } function A(t) { return t && t.length && t !== m && t[0] && (t[0] === m || t[0].nodeType && t[0].style && !t.nodeType) } function Y(t) { for (var e, i = this._firstPT; i;)e = i.blob ? 1 === t && null != this.end ? this.end : t ? this.join("") : this.start : i.c * t + i.s, i.m ? e = i.m.call(this._tween, e, this._target || i.t, this._tween) : e < 1e-6 && -1e-6 < e && !i.blob && (e = 0), i.f ? i.fp ? i.t[i.p](i.fp, e) : i.t[i.p](e) : i.t[i.p] = e, i = i._next } function X(t) { return (1e3 * t | 0) / 1e3 + "" } function W(t, e, i, s) { var n, r, o, a, l, c, h = [], u = 0, d = "", p = 0; for (h.start = t, h.end = e, t = h[0] = t + "", e = h[1] = e + "", i && (i(h), t = h[0], e = h[1]), h.length = 0, n = t.match($) || [], r = e.match($) || [], s && (s._next = null, s.blob = 1, h._firstPT = h._applyPT = s), a = r.length, o = 0; o < a; o++)c = r[o], d += (l = e.substr(u, e.indexOf(c, u) - u)) || !o ? l : ",", u += l.length, p ? p = (p + 1) % 5 : "rgba(" === l.substr(-5) && (p = 1), c === n[o] || n.length <= o ? d += c : (d && (h.push(d), d = ""), l = parseFloat(n[o]), h.push(l), h._firstPT = { _next: h._firstPT, t: h, p: h.length - 1, s: l, c: ("=" === c.charAt(1) ? parseInt(c.charAt(0) + "1", 10) * parseFloat(c.substr(2)) : parseFloat(c) - l) || 0, f: 0, m: p && p < 4 ? Math.round : X }), u += c.length; return (d += e.substr(u)) && h.push(d), h.setRatio = Y, Z.test(e) && (h.end = null), h } function U(t, e, i, s, n, r, o, a, l) { "function" == typeof s && (s = s(l || 0, t)); var c = "function" != (l = typeof t[e]) ? "" : e.indexOf("set") || "function" != typeof t["get" + e.substr(3)] ? e : "get" + e.substr(3), i = "get" !== i ? i : c ? o ? t[c](o) : t[c]() : t[e], c = "string" == typeof s && "=" === s.charAt(1), t = { t: t, p: e, s: i, f: "function" == l, pg: 0, n: n || e, m: r ? "function" == typeof r ? r : Math.round : 0, pr: 0, c: c ? parseInt(s.charAt(0) + "1", 10) * parseFloat(s.substr(2)) : parseFloat(s) - i || 0 }; if ("number" == typeof i && ("number" == typeof s || c) || (o || isNaN(i) || !c && isNaN(s) || "boolean" == typeof i || "boolean" == typeof s ? (t.fp = o, t = { t: W(i, c ? parseFloat(t.s) + t.c + (t.s + "").replace(/[0-9\-\.]/g, "") : s, a || k.defaultStringFilter, t), p: "setRatio", s: 0, c: 1, f: 2, pg: 0, n: n || e, pr: 0, m: 0 }) : (t.s = parseFloat(i), c || (t.c = parseFloat(s) - t.s || 0))), t.c) return (t._next = this._firstPT) && (t._next._prev = t), this._firstPT = t } function G(t, e, i, s) { var n, r, o = t.vars.onOverwrite; return o && (n = o(t, e, i, s)), (o = k.onOverwrite) && (r = o(t, e, i, s)), !1 !== n && !1 !== r } var a = v("core.Animation", function (t, e) { this.vars = e = e || {}, this._duration = this._totalDuration = t || 0, this._delay = Number(e.delay) || 0, this._timeScale = 1, this._active = !!e.immediateRender, this.data = e.data, this._reversed = !!e.reversed, h && (g || P.wake(), (t = this.vars.useFrames ? c : h).add(this, t._time), this.vars.paused) && this.paused(!0) }), P = a.ticker = new u.Ticker, t = ((I = a.prototype)._dirty = I._gc = I._initted = I._paused = !1, I._totalTime = I._time = 0, I._rawPrevTime = -1, I._next = I._last = I._onUpdate = I._timeline = I.timeline = null, I._paused = !1, j(), I.play = function (t, e) { return null != t && this.seek(t, e), this.reversed(!1).paused(!1) }, I.pause = function (t, e) { return null != t && this.seek(t, e), this.paused(!0) }, I.resume = function (t, e) { return null != t && this.seek(t, e), this.paused(!1) }, I.seek = function (t, e) { return this.totalTime(Number(t), !1 !== e) }, I.restart = function (t, e) { return this.reversed(!1).paused(!1).totalTime(t ? -this._delay : 0, !1 !== e, !0) }, I.reverse = function (t, e) { return null != t && this.seek(t || this.totalDuration(), e), this.reversed(!0).paused(!1) }, I.render = function (t, e, i) { }, I.invalidate = function () { return this._time = this._totalTime = 0, this._initted = this._gc = !1, this._rawPrevTime = -1, !this._gc && this.timeline || this._enabled(!0), this }, I.isActive = function () { var t = this._timeline, e = this._startTime; return !t || !this._gc && !this._paused && t.isActive() && (t = t.rawTime(!0)) >= e && t < e + this.totalDuration() / this._timeScale - 1e-8 }, I._enabled = function (t, e) { return g || P.wake(), this._gc = !t, this._active = this.isActive(), !0 !== e && (t && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !t && this.timeline && this._timeline._remove(this, !0)), !1 }, I._kill = function (t, e) { return this._enabled(!1, !1) }, I.kill = function (t, e) { return this._kill(t, e), this }, I._uncache = function (t) { for (var e = t ? this : this.timeline; e;)e._dirty = !0, e = e.timeline; return this }, I._swapSelfInParams = function (t) { for (var e = t.length, i = t.concat(); -1 < --e;)"{self}" === t[e] && (i[e] = this); return i }, I._callback = function (t) { var e = this.vars, i = e[t], s = e[t + "Params"], n = e[t + "Scope"] || e.callbackScope || this; switch (s ? s.length : 0) { case 0: i.call(n); break; case 1: i.call(n, s[0]); break; case 2: i.call(n, s[0], s[1]); break; default: i.apply(n, s) } }, I.eventCallback = function (t, e, i, s) { if ("on" === (t || "").substr(0, 2)) { var n = this.vars; if (1 === arguments.length) return n[t]; null == e ? delete n[t] : (n[t] = e, n[t + "Params"] = _(i) && -1 !== i.join("").indexOf("{self}") ? this._swapSelfInParams(i) : i, n[t + "Scope"] = s), "onUpdate" === t && (this._onUpdate = e) } return this }, I.delay = function (t) { return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + t - this._delay), this._delay = t, this) : this._delay }, I.duration = function (t) { return arguments.length ? (this._duration = this._totalDuration = t, this._uncache(!0), this._timeline.smoothChildTiming && 0 < this._time && this._time < this._duration && 0 !== t && this.totalTime(this._totalTime * (t / this._duration), !0), this) : (this._dirty = !1, this._duration) }, I.totalDuration = function (t) { return this._dirty = !1, arguments.length ? this.duration(t) : this._totalDuration }, I.time = function (t, e) { return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(t > this._duration ? this._duration : t, e)) : this._time }, I.totalTime = function (t, e, i) { if (g || P.wake(), !arguments.length) return this._totalTime; if (this._timeline) { if (t < 0 && !i && (t += this.totalDuration()), this._timeline.smoothChildTiming) { this._dirty && this.totalDuration(); var s = this._totalDuration, n = this._timeline; if (s < t && !i && (t = s), this._startTime = (this._paused ? this._pauseTime : n._time) - (this._reversed ? s - t : t) / this._timeScale, n._dirty || this._uncache(!1), n._timeline) for (; n._timeline;)n._timeline._time !== (n._startTime + n._totalTime) / n._timeScale && n.totalTime(n._totalTime, !0), n = n._timeline } this._gc && this._enabled(!0, !1), this._totalTime === t && 0 !== this._duration || (E.length && R(), this.render(t, e, !1), E.length && R()) } return this }, I.progress = I.totalProgress = function (t, e) { var i = this.duration(); return arguments.length ? this.totalTime(i * t, e) : i ? this._time / i : this.ratio }, I.startTime = function (t) { return arguments.length ? (t !== this._startTime && (this._startTime = t, this.timeline) && this.timeline._sortChildren && this.timeline.add(this, t - this._delay), this) : this._startTime }, I.endTime = function (t) { return this._startTime + (0 != t ? this.totalDuration() : this.duration()) / this._timeScale }, I.timeScale = function (t) { if (!arguments.length) return this._timeScale; var e, i; for (t = t || 1e-8, this._timeline && this._timeline.smoothChildTiming && (i = (e = this._pauseTime) || 0 === e ? e : this._timeline.totalTime(), this._startTime = i - (i - this._startTime) * this._timeScale / t), this._timeScale = t, i = this.timeline; i && i.timeline;)i._dirty = !0, i.totalDuration(), i = i.timeline; return this }, I.reversed = function (t) { return arguments.length ? (t != this._reversed && (this._reversed = t, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed }, I.paused = function (t) { var e, i, s; return arguments.length ? (s = this._timeline, t != this._paused && s && (g || t || P.wake(), i = (e = s.rawTime()) - this._pauseTime, !t && s.smoothChildTiming && (this._startTime += i, this._uncache(!1)), this._pauseTime = t ? e : null, this._paused = t, this._active = this.isActive(), !t) && 0 != i && this._initted && this.duration() && (e = s.smoothChildTiming ? this._totalTime : (e - this._startTime) / this._timeScale, this.render(e, e === this._totalTime, !0)), this._gc && !t && this._enabled(!0, !1), this) : this._paused }, v("core.SimpleTimeline", function (t) { a.call(this, 0, t), this.autoRemoveChildren = this.smoothChildTiming = !0 })), k = ((I = t.prototype = new a).constructor = t, I.kill()._gc = !1, I._first = I._last = I._recent = null, I._sortChildren = !1, I.add = I.insert = function (t, e, i, s) { var n, r; if (t._startTime = Number(e || 0) + t._delay, t._paused && this !== t._timeline && (t._pauseTime = this.rawTime() - (t._timeline.rawTime() - t._pauseTime)), t.timeline && t.timeline._remove(t, !0), t.timeline = t._timeline = this, t._gc && t._enabled(!0, !0), n = this._last, this._sortChildren) for (r = t._startTime; n && n._startTime > r;)n = n._prev; return n ? (t._next = n._next, n._next = t) : (t._next = this._first, this._first = t), t._next ? t._next._prev = t : this._last = t, t._prev = n, this._recent = t, this._timeline && this._uncache(!0), this }, I._remove = function (t, e) { return t.timeline === this && (e || t._enabled(!1, !0), t._prev ? t._prev._next = t._next : this._first === t && (this._first = t._next), t._next ? t._next._prev = t._prev : this._last === t && (this._last = t._prev), t._next = t._prev = t.timeline = null, t === this._recent && (this._recent = this._last), this._timeline) && this._uncache(!0), this }, I.render = function (t, e, i) { var s, n = this._first; for (this._totalTime = this._time = this._rawPrevTime = t; n;)s = n._next, (n._active || t >= n._startTime && !n._paused && !n._gc) && (n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (t - n._startTime) * n._timeScale, e, i) : n.render((t - n._startTime) * n._timeScale, e, i)), n = s }, I.rawTime = function () { return g || P.wake(), this._totalTime }, v("TweenLite", function (t, e, i) { if (a.call(this, e, i), this.render = k.prototype.render, null == t) throw "Cannot tween a null target."; this.target = t = "string" == typeof t && k.selector(t) || t; var s, n, r, i = t.jquery || t.length && t !== m && t[0] && (t[0] === m || t[0].nodeType && t[0].style && !t.nodeType), o = this.vars.overwrite; if (this._overwrite = o = null == o ? J[k.defaultOverwrite] : "number" == typeof o ? o >> 0 : J[o], (i || t instanceof Array || t.push && _(t)) && "number" != typeof t[0]) for (this._targets = r = F(t), this._propLookup = [], this._siblings = [], s = 0; s < r.length; s++)(n = r[s]) ? "string" != typeof n ? n.length && n !== m && n[0] && (n[0] === m || n[0].nodeType && n[0].style && !n.nodeType) ? (r.splice(s--, 1), this._targets = r = r.concat(F(n))) : (this._siblings[s] = D(n, this, !1), 1 === o && 1 < this._siblings[s].length && et(n, this, null, 1, this._siblings[s])) : "string" == typeof (r[s--] = k.selector(n)) && r.splice(s + 1, 1) : r.splice(s--, 1); else this._propLookup = {}, this._siblings = D(t, this, !1), 1 === o && 1 < this._siblings.length && et(t, this, null, 1, this._siblings); (this.vars.immediateRender || 0 === e && 0 === this._delay && !1 !== this.vars.immediateRender) && (this._time = -1e-8, this.render(Math.min(0, -this._delay))) }, !0)), E = ((I = k.prototype = new a).constructor = k, I.kill()._gc = !1, I.ratio = 0, I._firstPT = I._targets = I._overwrittenProps = I._startAt = null, I._notifyPluginsOfEnabled = I._lazy = !1, k.version = "2.1.3", k.defaultEase = I._ease = new w(null, null, 1, 1), k.defaultOverwrite = "auto", k.ticker = P, k.autoSleep = 120, k.lagSmoothing = function (t, e) { P.lagSmoothing(t, e) }, k.selector = m.$ || m.jQuery || function (t) { var e = m.$ || m.jQuery; return e ? (k.selector = e)(t) : (p = p || m.document) ? p.querySelectorAll ? p.querySelectorAll(t) : p.getElementById("#" === t.charAt(0) ? t.substr(1) : t) : t }, []), L = {}, $ = /(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi, Z = /[\+-]=-?[\.\d]/, o = k._internals = { isArray: _, isSelector: A, lazyTweens: E, blobDif: W }, O = k._plugins = {}, l = o.tweenLookup = {}, Q = 0, K = o.reservedProps = { ease: 1, delay: 1, overwrite: 1, onComplete: 1, onCompleteParams: 1, onCompleteScope: 1, useFrames: 1, runBackwards: 1, startAt: 1, onUpdate: 1, onUpdateParams: 1, onUpdateScope: 1, onStart: 1, onStartParams: 1, onStartScope: 1, onReverseComplete: 1, onReverseCompleteParams: 1, onReverseCompleteScope: 1, onRepeat: 1, onRepeatParams: 1, onRepeatScope: 1, easeParams: 1, yoyo: 1, immediateRender: 1, repeat: 1, repeatDelay: 1, data: 1, paused: 1, reversed: 1, autoCSS: 1, lazy: 1, onOverwrite: 1, callbackScope: 1, stringFilter: 1, id: 1, yoyoEase: 1, stagger: 1 }, J = { none: 0, all: 1, auto: 2, concurrent: 3, allOnStart: 4, preexisting: 5, true: 1, false: 0 }, c = a._rootFramesTimeline = new t, h = a._rootTimeline = new t, tt = 30, R = o.lazyRender = function () { var t, e, i = E.length; for (L = {}, t = 0; t < i; t++)(e = E[t]) && !1 !== e._lazy && (e.render(e._lazy[0], e._lazy[1], !0), e._lazy = !1); E.length = 0 }, D = (h._startTime = P.time, c._startTime = P.frame, h._active = c._active = !0, setTimeout(R, 1), a._updateRoot = k.render = function () { var t, e, i; if (E.length && R(), h.render((P.time - h._startTime) * h._timeScale, !1, !1), c.render((P.frame - c._startTime) * c._timeScale, !1, !1), E.length && R(), P.frame >= tt) { for (i in tt = P.frame + (parseInt(k.autoSleep, 10) || 120), l) { for (t = (e = l[i].tweens).length; -1 < --t;)e[t]._gc && e.splice(t, 1); 0 === e.length && delete l[i] } if ((!(i = h._first) || i._paused) && k.autoSleep && !c._first && 1 === P._listeners.tick.length) { for (; i && i._paused;)i = i._next; i || P.sleep() } } }, P.addEventListener("tick", a._updateRoot), function (t, e, i) { var s, n, r = t._gsTweenID; if (l[r || (t._gsTweenID = r = "t" + Q++)] || (l[r] = { target: t, tweens: [] }), e && ((s = l[r].tweens)[n = s.length] = e, i)) for (; -1 < --n;)s[n] === e && s.splice(n, 1); return l[r].tweens }), et = function (t, e, i, s, n) { var r, o, a; if (1 === s || 4 <= s) { for (a = n.length, p = 0; p < a; p++)if ((o = n[p]) !== e) o._gc || o._kill(null, t, e) && (r = !0); else if (5 === s) break } else { for (var l, c = e._startTime + 1e-8, h = [], u = 0, d = 0 === e._duration, p = n.length; -1 < --p;)(o = n[p]) === e || o._gc || o._paused || (o._timeline !== e._timeline ? (l = l || it(e, 0, d), 0 === it(o, l, d) && (h[u++] = o)) : o._startTime <= c && o._startTime + o.totalDuration() / o._timeScale > c && ((d || !o._initted) && c - o._startTime <= 2e-8 || (h[u++] = o))); for (p = u; -1 < --p;)if (a = (o = h[p])._firstPT, 2 === s && o._kill(i, t, e) && (r = !0), 2 !== s || !o._firstPT && o._initted && a) { if (2 !== s && !G(o, e)) continue; o._enabled(!1, !1) && (r = !0) } } return r }, it = function (t, e, i) { for (var s = t._timeline, n = s._timeScale, r = t._startTime; s._timeline;) { if (r += s._startTime, n *= s._timeScale, s._paused) return -100; s = s._timeline } return (r /= n) > e ? r - e : i && r === e || !t._initted && r - e < 2e-8 ? 1e-8 : (r += t.totalDuration() / t._timeScale / n) > e + 1e-8 ? 0 : r - e - 1e-8 }, M = (I._init = function () { var t, e, i, s, n, r, o = this.vars, a = this._overwrittenProps, l = this._duration, c = !!o.immediateRender, h = o.ease, u = this._startAt; if (o.startAt) { for (s in u && (u.render(-1, !0), u.kill()), n = {}, o.startAt) n[s] = o.startAt[s]; if (n.data = "isStart", n.overwrite = !1, n.immediateRender = !0, n.lazy = c && !1 !== o.lazy, n.startAt = n.delay = null, n.onUpdate = o.onUpdate, n.onUpdateParams = o.onUpdateParams, n.onUpdateScope = o.onUpdateScope || o.callbackScope || this, this._startAt = k.to(this.target || {}, 0, n), c) if (0 < this._time) this._startAt = null; else if (0 !== l) return } else if (o.runBackwards && 0 !== l) if (u) u.render(-1, !0), u.kill(), this._startAt = null; else { for (s in 0 !== this._time && (c = !1), i = {}, o) K[s] && "autoCSS" !== s || (i[s] = o[s]); if (i.overwrite = 0, i.data = "isFromStart", i.lazy = c && !1 !== o.lazy, i.immediateRender = c, this._startAt = k.to(this.target, 0, i), c) { if (0 === this._time) return } else this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null) } if (this._ease = h = h ? h instanceof w ? h : "function" == typeof h ? new w(h, o.easeParams) : b[h] || k.defaultEase : k.defaultEase, o.easeParams instanceof Array && h.config && (this._ease = h.config.apply(h, o.easeParams)), this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets) for (r = this._targets.length, t = 0; t < r; t++)this._initProps(this._targets[t], this._propLookup[t] = {}, this._siblings[t], a ? a[t] : null, t) && (e = !0); else e = this._initProps(this.target, this._propLookup, this._siblings, a, 0); if (e && k._onPluginEvent("_onInitAllProps", this), !a || this._firstPT || "function" != typeof this.target && this._enabled(!1, !1), o.runBackwards) for (i = this._firstPT; i;)i.s += i.c, i.c = -i.c, i = i._next; this._onUpdate = o.onUpdate, this._initted = !0 }, I._initProps = function (t, e, i, s, n) { var r, o, a, l, c, h; if (null == t) return !1; if ((L[t._gsTweenID] && R(), !this.vars.css) && (t.style && t !== m && t.nodeType && O.css && !1 !== this.vars.autoCSS)) { var u = this.vars, d = t, p, f = {}; for (p in u) K[p] || p in d && "transform" !== p && "x" !== p && "y" !== p && "width" !== p && "height" !== p && "className" !== p && "border" !== p || !(!O[p] || O[p] && O[p]._autoCSS) || (f[p] = u[p], delete u[p]); u.css = f } for (r in this.vars) if (h = this.vars[r], K[r]) h && (h instanceof Array || h.push && _(h)) && -1 !== h.join("").indexOf("{self}") && (this.vars[r] = h = this._swapSelfInParams(h, this)); else if (O[r] && (l = new O[r])._onInitTween(t, this.vars[r], this, n)) { for (this._firstPT = c = { _next: this._firstPT, t: l, p: "setRatio", s: 0, c: 1, f: 1, n: r, pg: 1, pr: l._priority, m: 0 }, o = l._overwriteProps.length; -1 < --o;)e[l._overwriteProps[o]] = this._firstPT; (l._priority || l._onInitAllProps) && (a = !0), (l._onDisable || l._onEnable) && (this._notifyPluginsOfEnabled = !0), c._next && (c._next._prev = c) } else e[r] = U.call(this, t, r, "get", h, r, 0, null, this.vars.stringFilter, n); return s && this._kill(s, t) ? this._initProps(t, e, i, s, n) : 1 < this._overwrite && this._firstPT && 1 < i.length && et(t, this, e, this._overwrite, i) ? (this._kill(e, t), this._initProps(t, e, i, s, n)) : (this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration) && (L[t._gsTweenID] = !0), a) }, I.render = function (t, e, i) { var s, n, r, o, a, l, c, h = this._time, u = this._duration, d = this._rawPrevTime; if (u - 1e-8 <= t && 0 <= t ? (this._totalTime = this._time = u, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (s = !0, n = "onComplete", i = i || this._timeline.autoRemoveChildren), 0 !== u || !this._initted && this.vars.lazy && !i || (this._startTime === this._timeline._duration && (t = 0), (d < 0 || t <= 0 && -1e-8 <= t || 1e-8 === d && "isPause" !== this.data) && d !== t && (i = !0, 1e-8 < d) && (n = "onReverseComplete"), this._rawPrevTime = o = !e || t || d === t ? t : 1e-8)) : t < 1e-8 ? (this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== h || 0 === u && 0 < d) && (n = "onReverseComplete", s = this._reversed), -1e-8 < t ? t = 0 : t < 0 && (this._active = !1, 0 === u) && (this._initted || !this.vars.lazy || i) && (0 <= d && (1e-8 !== d || "isPause" !== this.data) && (i = !0), this._rawPrevTime = o = !e || t || d === t ? t : 1e-8), (!this._initted || this._startAt && this._startAt.progress()) && (i = !0)) : (this._totalTime = this._time = t, this._easeType ? (a = t / u, (1 === (l = this._easeType) || 3 === l && .5 <= a) && (a = 1 - a), 3 === l && (a *= 2), 1 === (c = this._easePower) ? a *= a : 2 === c ? a *= a * a : 3 === c ? a *= a * a * a : 4 === c && (a *= a * a * a * a), this.ratio = 1 === l ? 1 - a : 2 === l ? a : t / u < .5 ? a / 2 : 1 - a / 2) : this.ratio = this._ease.getRatio(t / u)), this._time !== h || i) { if (!this._initted) { if (this._init(), !this._initted || this._gc) return; if (!i && this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration)) return this._time = this._totalTime = h, this._rawPrevTime = d, E.push(this), void (this._lazy = [t, e]); this._time && !s ? this.ratio = this._ease.getRatio(this._time / u) : s && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1)) } for (!1 !== this._lazy && (this._lazy = !1), this._active || !this._paused && this._time !== h && 0 <= t && (this._active = !0), 0 !== h || (this._startAt && (0 <= t ? this._startAt.render(t, !0, i) : n = n || "_dummyGS"), !this.vars.onStart) || 0 === this._time && 0 !== u || e || this._callback("onStart"), r = this._firstPT; r;)r.f ? r.t[r.p](r.c * this.ratio + r.s) : r.t[r.p] = r.c * this.ratio + r.s, r = r._next; this._onUpdate && (t < 0 && this._startAt && -1e-4 !== t && this._startAt.render(t, !0, i), e || (this._time !== h || s || i) && this._callback("onUpdate")), !n || this._gc && !i || (t < 0 && this._startAt && !this._onUpdate && -1e-4 !== t && this._startAt.render(t, !0, i), s && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e && this.vars[n] && this._callback(n), 0 === u && 1e-8 === this._rawPrevTime && 1e-8 !== o && (this._rawPrevTime = 0)) } }, I._kill = function (t, e, i) { if (null == (t = "all" === t ? null : t) && (null == e || e === this.target)) return this._lazy = !1, this._enabled(!1, !1); e = "string" != typeof e ? e || this._targets || this.target : k.selector(e) || e; var s, n, r, o, a, l, c, h, u, d = i && this._time && i._startTime === this._startTime && this._timeline === i._timeline, p = this._firstPT; if ((_(e) || A(e)) && "number" != typeof e[0]) for (s = e.length; -1 < --s;)this._kill(t, e[s], i) && (l = !0); else { if (this._targets) { for (s = this._targets.length; -1 < --s;)if (e === this._targets[s]) { a = this._propLookup[s] || {}, this._overwrittenProps = this._overwrittenProps || [], n = this._overwrittenProps[s] = t ? this._overwrittenProps[s] || {} : "all"; break } } else { if (e !== this.target) return !1; a = this._propLookup, n = this._overwrittenProps = t ? this._overwrittenProps || {} : "all" } if (a) { if (c = t || a, h = t !== n && "all" !== n && t !== a && ("object" != typeof t || !t._tempKill), i && (k.onOverwrite || this.vars.onOverwrite)) { for (r in c) a[r] && (u = u || [], u.push(r)); if ((u || !t) && !G(this, i, e, u)) return !1 } for (r in c) (o = a[r]) && (d && (o.f ? o.t[o.p](o.s) : o.t[o.p] = o.s, l = !0), o.pg && o.t._kill(c) && (l = !0), o.pg && 0 !== o.t._overwriteProps.length || (o._prev ? o._prev._next = o._next : o === this._firstPT && (this._firstPT = o._next), o._next && (o._next._prev = o._prev), o._next = o._prev = null), delete a[r]), h && (n[r] = 1); !this._firstPT && this._initted && p && this._enabled(!1, !1) } } return l }, I.invalidate = function () { this._notifyPluginsOfEnabled && k._onPluginEvent("_onDisable", this); var t = this._time; return this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null, this._notifyPluginsOfEnabled = this._active = this._lazy = !1, this._propLookup = this._targets ? {} : [], a.prototype.invalidate.call(this), this.vars.immediateRender && (this._time = -1e-8, this.render(t, !1, !1 !== this.vars.lazy)), this }, I._enabled = function (t, e) { if (g || P.wake(), t && this._gc) { var i, s = this._targets; if (s) for (i = s.length; -1 < --i;)this._siblings[i] = D(s[i], this, !0); else this._siblings = D(this.target, this, !0) } return a.prototype._enabled.call(this, t, e), !(!this._notifyPluginsOfEnabled || !this._firstPT) && k._onPluginEvent(t ? "_onEnable" : "_onDisable", this) }, k.to = function (t, e, i) { return new k(t, e, i) }, k.from = function (t, e, i) { return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, new k(t, e, i) }, k.fromTo = function (t, e, i, s) { return s.startAt = i, s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender, new k(t, e, s) }, k.delayedCall = function (t, e, i, s, n) { return new k(e, 0, { delay: t, onComplete: e, onCompleteParams: i, callbackScope: s, onReverseComplete: e, onReverseCompleteParams: i, immediateRender: !1, lazy: !1, useFrames: n, overwrite: 0 }) }, k.set = function (t, e) { return new k(t, 0, e) }, k.getTweensOf = function (t, e) { if (null == t) return []; var i, s, n, r; if (t = "string" == typeof t && k.selector(t) || t, (_(t) || A(t)) && "number" != typeof t[0]) { for (i = t.length, s = []; -1 < --i;)s = s.concat(k.getTweensOf(t[i], e)); for (i = s.length; -1 < --i;)for (r = s[i], n = i; -1 < --n;)r === s[n] && s.splice(i, 1) } else if (t._gsTweenID) for (i = (s = D(t).concat()).length; -1 < --i;)(s[i]._gc || e && !s[i].isActive()) && s.splice(i, 1); return s || [] }, k.killTweensOf = k.killDelayedCallsTo = function (t, e, i) { "object" == typeof e && (i = e, e = !1); for (var s = k.getTweensOf(t, e), n = s.length; -1 < --n;)s[n]._kill(i, t) }, v("plugins.TweenPlugin", function (t, e) { this._overwriteProps = (t || "").split(","), this._propName = this._overwriteProps[0], this._priority = e || 0, this._super = M.prototype }, !0)), I = M.prototype; if (M.version = "1.19.0", M.API = 2, I._firstPT = null, I._addTween = U, I.setRatio = Y, I._kill = function (t) { var e, i = this._overwriteProps, s = this._firstPT; if (null != t[this._propName]) this._overwriteProps = []; else for (e = i.length; -1 < --e;)null != t[i[e]] && i.splice(e, 1); for (; s;)null != t[s.n] && (s._next && (s._next._prev = s._prev), s._prev ? (s._prev._next = s._next, s._prev = null) : this._firstPT === s && (this._firstPT = s._next)), s = s._next; return !1 }, I._mod = I._roundProps = function (t) { for (var e, i = this._firstPT; i;)(e = t[this._propName] || null != i.n && t[i.n.split(this._propName + "_").join("")]) && "function" == typeof e && (2 === i.f ? i.t._applyPT.m = e : i.m = e), i = i._next }, k._onPluginEvent = function (t, e) { var i, s, n, r, o, a = e._firstPT; if ("_onInitAllProps" === t) { for (; a;) { for (o = a._next, s = n; s && s.pr > a.pr;)s = s._next; (a._prev = s ? s._prev : r) ? a._prev._next = a : n = a, (a._next = s) ? s._prev = a : r = a, a = o } a = e._firstPT = n } for (; a;)a.pg && "function" == typeof a.t[t] && a.t[t]() && (i = !0), a = a._next; return i }, M.activate = function (t) { for (var e = t.length; -1 < --e;)t[e].API === M.API && (O[(new t[e])._propName] = t[e]); return !0 }, s.plugin = function (t) { if (!(t && t.propName && t.init && t.API)) throw "illegal plugin definition."; var e, i = t.propName, s = t.priority || 0, n = t.overwriteProps, r = { init: "_onInitTween", set: "setRatio", kill: "_kill", round: "_mod", mod: "_mod", initAll: "_onInitAllProps" }, o = v("plugins." + i.charAt(0).toUpperCase() + i.substr(1) + "Plugin", function () { M.call(this, i, s), this._overwriteProps = n || [] }, !0 === t.global), a = o.prototype = new M(i); for (e in (a.constructor = o).API = t.API, r) "function" == typeof t[e] && (a[r[e]] = t[e]); return o.version = t.version, M.activate([o]), o }, e = m._gsQueue) { for (r = 0; r < e.length; r++)e[r](); for (I in y) y[I].func || m.console.log("GSAP encountered missing dependency: " + I) } g = !1 }("undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window), !function (t) { ("object" != typeof exports || "undefined" == typeof module) && "function" == typeof define && define.amd ? define(t) : t() }(function () { "use strict"; function t(e) { var n = !0, i = !1, s = null, r = { text: !0, search: !0, url: !0, tel: !0, email: !0, password: !0, number: !0, date: !0, month: !0, week: !0, time: !0, datetime: !0, "datetime-local": !0 }; function o(t) { return t && t !== document && "HTML" !== t.nodeName && "BODY" !== t.nodeName && "classList" in t && "contains" in t.classList } function a(t) { t.classList.contains("focus-visible") || (t.classList.add("focus-visible"), t.setAttribute("data-focus-visible-added", "")) } function t(t) { n = !1 } function l() { document.addEventListener("mousemove", c), document.addEventListener("mousedown", c), document.addEventListener("mouseup", c), document.addEventListener("pointermove", c), document.addEventListener("pointerdown", c), document.addEventListener("pointerup", c), document.addEventListener("touchmove", c), document.addEventListener("touchstart", c), document.addEventListener("touchend", c) } function c(t) { t.target.nodeName && "html" === t.target.nodeName.toLowerCase() || (n = !1, document.removeEventListener("mousemove", c), document.removeEventListener("mousedown", c), document.removeEventListener("mouseup", c), document.removeEventListener("pointermove", c), document.removeEventListener("pointerdown", c), document.removeEventListener("pointerup", c), document.removeEventListener("touchmove", c), document.removeEventListener("touchstart", c), document.removeEventListener("touchend", c)) } document.addEventListener("keydown", function (t) { t.metaKey || t.altKey || t.ctrlKey || (o(e.activeElement) && a(e.activeElement), n = !0) }, !0), document.addEventListener("mousedown", t, !0), document.addEventListener("pointerdown", t, !0), document.addEventListener("touchstart", t, !0), document.addEventListener("visibilitychange", function (t) { "hidden" === document.visibilityState && (i && (n = !0), l()) }, !0), l(), e.addEventListener("focus", function (t) { var e, i, s; o(t.target) && (n || (i = (e = t.target).type, "INPUT" === (s = e.tagName) && r[i] && !e.readOnly) || "TEXTAREA" === s && !e.readOnly || e.isContentEditable) && a(t.target) }, !0), e.addEventListener("blur", function (t) { o(t.target) && (t.target.classList.contains("focus-visible") || t.target.hasAttribute("data-focus-visible-added")) && (i = !0, window.clearTimeout(s), s = window.setTimeout(function () { i = !1 }, 100), (t = t.target).hasAttribute("data-focus-visible-added")) && (t.classList.remove("focus-visible"), t.removeAttribute("data-focus-visible-added")) }, !0), e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host ? e.host.setAttribute("data-js-focus-visible", "") : e.nodeType === Node.DOCUMENT_NODE && (document.documentElement.classList.add("js-focus-visible"), document.documentElement.setAttribute("data-js-focus-visible", "")) } if ("undefined" != typeof window && "undefined" != typeof document) { var e; window.applyFocusVisiblePolyfill = t; try { e = new CustomEvent("focus-visible-polyfill-ready") } catch (t) { (e = document.createEvent("CustomEvent")).initCustomEvent("focus-visible-polyfill-ready", !1, !1, {}) } window.dispatchEvent(e) } "undefined" != typeof document && t(document) }), function () { function e(t) { this.initialize = !0, this.opts = t, this.innerScroll = t.innerScroll, this.correction = t.correction || 0, this.removeCorrection = t.removeCorrection || 0, this.trackHeight = t.trackHeight || 0, this.activeClass = t.activeClass, this.activeCallbackClass = t.activeCallbackClass || "callback-active", this.useStrictMode = null == t.useStrictMode || t.useStrictMode, this.useFixed = t.useFixed || !1, this.useFixedStyle = null == t.useFixedStyle || t.useFixedStyle, this.useViewportOver = t.useViewportOver || !0, this.activeVisibility = t.activeVisibility || "before", this.activeType = t.activeType ? this.opts.activeType : "reverse", this.autoHeight = null == t.autoHeight || t.autoHeight, this.offsetY = t.offsetY || 0, this.resize = null == t.resize || t.resize, this.resizeTiming = null != t.resizeTiming && t.resizeTiming, this.windowHeight = window.innerHeight, this.oldPregress = 0, this.oldWinScrollTop = 0, this.elementInformation = {}, this.isFixedArea = !1, this.checkTouchDevice = !1, this.elementEventList.setElement.call(this), this.bindEvent() } var t = e.prototype; return t.bindEvent = function () { var t = this, e = null; this.elementHandler(), this.resize && (this.addEventList = function () { t.resizeTiming ? (clearTimeout(e), e = setTimeout(function () { t.windowHeight = window.innerHeight, t.elementHandler() }, t.resizeTiming)) : (t.windowHeight = window.innerHeight, t.elementHandler()) }, window.addEventListener("resize", this.addEventList)), this.opts.IEScroll && this.utilList.IEScrollHandler.call(this), this.trackElement.scroller = this }, t.elementHandler = function () { return this.elementEventList.setTrackStyle.call(this), this.getFixedState(), 1 < this.trackHeight && this.elementEventList.setTrackHeigh.call(this), this.useFixed && this.useFixedStyle && this.elementEventList.setFixedStyle.call(this), this }, t.utilList = { checkTouchDevice: function () { return -1 < navigator.userAgent.indexOf("Windows") || -1 < navigator.userAgent.indexOf("Macintosh") ? this.checkTouchDevice = !1 : "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch ? this.checkTouchDevice = !0 : void 0 }, IEScrollHandler: function () { navigator.userAgent.match(/Trident\/7\./) && (this.body.addEventListener("mousewheel", function (t) { t.preventDefault(); var t = t.wheelDelta, e = window.pageYOffset; window.scrollTo(0, e - t) }), this.body.addEventListener("keydown", function (t) { var e = window.pageYOffset; switch (t.which) { case 38: t.preventDefault(), window.scrollTo(0, e - 40); break; case 40: t.preventDefault(), window.scrollTo(0, e + 40); break; default: return } })) }, getScroll: function () { var t, e; return e = null != this.innerScroll ? (t = (e = this.innerScroll.wrap).scrollTop) + e.clientHeight : (t = window.pageYOffset) + this.windowHeight, { top: t, bottom: e } }, getOffset: function (t) { var e; return t = null != this.innerScroll ? (e = t.getBoundingClientRect().top + this.innerScroll.wrap.scrollTop, t.getBoundingClientRect().bottom + this.innerScroll.wrap.scrollTop) : (e = t.getBoundingClientRect().top + window.pageYOffset, t.getBoundingClientRect().bottom + window.pageYOffset), { top: e, bottom: t } }, getUserAgent: function () { return navigator.userAgent } }, t.elementEventList = { setElement: function () { this.body = document.querySelector("body"), void 0 !== this.opts.trackElement && (this.trackElement = this.opts.trackElement.jquery ? this.opts.trackElement[0] : this.opts.trackElement), void 0 !== this.opts.fixedElement && (this.fixedElement = this.opts.fixedElement.jquery ? this.opts.fixedElement[0] : this.opts.fixedElement), void 0 !== this.opts.activeElement && (this.activeElement = this.opts.activeElement.jquery ? this.opts.activeElement[0] : this.opts.activeElement) }, setTrackHeigh: function () { var t, e; this.trackHeight <= 1 || (this.trackElement.style.height = "", t = 0 == this.trackElement.clientHeight, e = this.windowHeight * this.trackHeight, t && (this.trackElement.style.height = this.windowHeight + "px"), this.trackElement.style.height = e + "px") }, setTrackStyle: function () { this.trackElement && this.useFixed && "static" == window.getComputedStyle(this.trackElement).position && (this.trackElement.style.position = "relative") }, setFixedStyle: function () { this.isFixedArea || (this.fixedElement.style.height = "", this.fixedElement.style.top = "", this.fixedElement.style.position = "absolute"), 0 == this.fixedElement.clientWidth && (this.fixedElement.style.width = "100%"), this.autoHeight && ("string" == typeof this.offsetY ? (this.fixedElement.style.height = "calc(" + this.windowHeight + "px - " + this.offsetY + ")", this.fixedElement.style.top = this.offsetY) : (this.fixedElement.style.height = this.windowHeight - this.offsetY + "px", this.fixedElement.style.top = this.offsetY + "px")) }, setFixedElement: function () { this.diffHeight = this.windowHeight - this.fixedElement.clientHeight, this.trackTopOffset = this.utilList.getOffset.call(this, this.trackElement).top, this.trackBottomOffset = this.utilList.getOffset.call(this, this.trackElement).bottom, this.winScrollTop <= this.trackTopOffset ? (this.fixedElement.style.position = "absolute", "string" == typeof this.offsetY ? this.fixedElement.style.top = this.offsetY : this.fixedElement.style.top = this.offsetY + "px", this.fixedElement.style.bottom = "") : this.winScrollBottom >= this.trackBottomOffset ? (this.fixedElement.style.position = "absolute", this.fixedElement.style.top = this.trackElement.clientHeight - this.fixedElement.clientHeight + "px") : this.isFixedArea || (this.fixedElement.style.position = "fixed", this.fixedElement.style.top = "0") } }, t.getWheelDirection = function () { this.winScrollTop >= this.oldWinScrollTop ? this.wheelDirection = "down" : this.wheelDirection = "up", this.oldWinScrollTop = this.winScrollTop }, t.getProgress = function () { var t = this.utilList.getOffset.call(this, this.trackElement).top - this.windowHeight * this.correction, e = this.useFixed ? Math.abs(this.trackElement.clientHeight - this.windowHeight) : this.useViewportOver ? this.trackElement.clientHeight + this.windowHeight : this.trackElement.clientHeight, i = this.winScrollTop - t, t = this.winScrollBottom - t, i = this.useFixed ? i / e * 100 : t / e * 100; return this.useStrictMode ? this.progress = Math.floor(i) < 0 ? 0 : 100 < Math.floor(i) ? 100 : Math.floor(i) : this.progress = i, this.getWheelDirection(), this.progress }, t.getFixedState = function () { 0 < this.progress && this.progress < 100 ? this.isFixedArea = !0 : this.isFixedArea = !1 }, t.trackAnimation = function (t) { this.initialize && (this.winScrollTop = this.utilList.getScroll.call(this).top, this.winScrollBottom = this.utilList.getScroll.call(this).bottom, this.useFixed && this.useFixedStyle && this.elementEventList.setFixedElement.call(this), this.getProgress(), this.getFixedState(), t) && (this.oldPregress !== this.progress && t.call(this), this.oldPregress = this.progress) }, t.activeAnimation = function () { if (this.initialize) { this.winScrollTop = this.utilList.getScroll.call(this).top, this.winScrollBottom = this.utilList.getScroll.call(this).bottom, this.trackElementHeight = this.trackElement.clientHeight, this.correctionValue = this.trackElementHeight * this.correction, this.removeCorrectionValue = this.trackElementHeight * this.removeCorrection, this.elementOffsetTop = this.utilList.getOffset.call(this, this.trackElement).top, this.elementOffsetBottom = this.utilList.getOffset.call(this, this.trackElement).bottom, this.downScrollTop = this.winScrollTop - this.correctionValue, this.downScrollBottom = this.winScrollBottom - this.correctionValue, this.upScrollTop = this.winScrollTop + this.correctionValue, this.upScrollBottom = this.winScrollBottom + this.correctionValue; function t() { l(), o() } function e() { c(), a() } var i = this, s = this.activeVisibility, n = this.activeType, r = this.windowHeight / 2, o = function () { if (i.activeClass) if ("object" == typeof i.activeClass) for (var t = i.activeClass.length, e = 0; e < t; e++)i.activeElement.classList.contains(i.activeClass[e]) || i.activeElement.classList.add(i.activeClass[e]); else i.activeElement.classList.contains(i.activeClass) || i.activeElement.classList.add(i.activeClass) }, a = function () { if ("object" == typeof i.activeClass) for (var t = i.activeClass.length, e = 0; e < t; e++)i.activeElement.classList.contains(i.activeClass[e]) && i.activeElement.classList.remove(i.activeClass[e]); else i.activeElement.classList.contains(i.activeClass) && i.activeElement.classList.remove(i.activeClass); i.activeElement.classList.contains(i.activeCallbackClass) && i.activeElement.classList.remove(i.activeCallbackClass) }, l = function () { i.activeElement.classList.contains(i.activeCallbackClass) || i.opts.activeCallback && (i.opts.activeCallback.call(i), i.activeElement.classList.add(i.activeCallbackClass)) }, c = function () { i.activeElement.classList.contains(i.activeCallbackClass) && i.opts.endCallback && i.opts.endCallback.call(i) }; switch (this.getWheelDirection(), s) { case "before": ("down" == this.wheelDirection && this.downScrollBottom >= this.elementOffsetTop && this.downScrollTop <= this.elementOffsetTop || "up" == this.wheelDirection && this.upScrollTop <= this.elementOffsetBottom && this.upScrollBottom >= this.elementOffsetBottom || "oneWay" == this.activeType && this.downScrollBottom >= this.elementOffsetTop) && (t(), this.activeStatus = !0); break; case "visible": ("down" == this.wheelDirection && this.downScrollBottom >= this.elementOffsetTop + r && this.downScrollTop <= this.elementOffsetTop || "up" == this.wheelDirection && this.upScrollTop <= this.elementOffsetBottom - r && this.upScrollBottom >= this.elementOffsetBottom || "oneWay" == this.activeType && this.downScrollBottom >= this.elementOffsetTop + r) && (t(), this.activeStatus = !0) }switch (n) { case "reverse": "visible" == s ? (this.activeStatus && "down" == this.wheelDirection && this.winScrollTop > this.elementOffsetBottom || this.activeStatus && "up" == this.wheelDirection && this.winScrollBottom < this.elementOffsetTop) && (e(), this.activeStatus = !1) : (this.activeStatus && this.winScrollTop < this.elementOffsetTop && this.winScrollBottom < this.elementOffsetTop || this.activeStatus && this.winScrollTop > this.elementOffsetBottom && this.winScrollBottom > this.elementOffsetBottom) && (e(), this.activeStatus = !1); break; case "oneWay": "visible" == s ? this.activeStatus && this.winScrollBottom < this.elementOffsetTop && (e(), this.activeStatus = !1) : this.activeStatus && this.winScrollTop < this.elementOffsetTop && this.winScrollBottom < this.elementOffsetTop && (e(), this.activeStatus = !1) } } }, t.getElementInformation = function () { return this.trackElement && (this.elementInformation.trackElement = { element: this.trackElement, width: this.trackElement.clientWidth, height: this.trackElement.clientHeight, topOffset: this.utilList.getOffset.call(this, this.trackElement).top, bottomOffset: this.utilList.getOffset.call(this, this.trackElement).bottom }), this.activeElement && (this.elementInformation.activeElement = { element: this.activeElement, width: this.activeElement.clientWidth, height: this.activeElement.clientHeight, topOffset: this.utilList.getOffset.call(this, this.activeElement).top, bottomOffset: this.utilList.getOffset.call(this, this.activeElement).bottom }), this.elementInformation }, t.destroy = function (t) { this.trackElement && (this.trackElement.style.position = "", this.trackElement.style.height = ""), this.fixedElement && (this.fixedElement.style.position = "", this.fixedElement.style.top = "", this.fixedElement.style.height = ""), this.trackElement = "", this.fixedElement = "", this.activeElement = "", this.correction = "", this.trackHeight = "", this.activeCallbackClass = "", this.useFixed = "", this.activeVisibility = "", this.activeType = "", this.offsetY = "", this.resize = "", this.windowHeight = "", this.elementInformation = "", window.removeEventListener("load", this.addEventList), window.removeEventListener("resize", this.addEventList), this.initialize = !1 }, function (t) { return new e(t) } }()), SEQUENCEPLAYER = (!function () { window.flagship = window.flagship || {}, window.flagship.common = window.flagship.common || {}; let l = { setCookie: function (t, e, i) { var s = new Date; s.setTime(s.getTime() + 60 * i * 60 * 24 * 1e3), document.cookie = t + "=" + e + "; exprires=" + s.toUTCString() + "; path=/" }, getCookie: function (t) { t = document.cookie.match("(^|;) ?" + t + "=([^;]*)(;|$)"); return t ? t[2] : null }, visibleScroll: function () { !0 === this.scrollFlag && (this.scrollFlag = !1, document.body.style.position = "", document.body.style.width = "", document.body.style.left = "", document.body.style.right = "", document.body.style.top = "", document.body.style.zIndex = "", this.wrapEl.style.paddingRight = "", document.documentElement.style.overflow = "", null !== this.popupEl) && (this.popupEl.style.paddingRight = "", this.popupEl = null), window.scrollTo(0, this.saveScrollTop); var t = document.querySelector("#subnav"), e = (t && (e = t.querySelector(".heading a"), i = t.querySelector(".inside ul"), t = t.querySelector(".gnb"), e && (e.style.marginRight = ""), i && (i.style.marginRight = ""), t) && (t.style.marginRight = ""), document.querySelector(".pd-g-header-navigation")), i = (e && (i = e.querySelector(".pd-header-navigation"), t = e.querySelector(".pd-header-navigation__menu-wrap"), e = e.querySelector(".pd-buying-price"), i && (i.style.paddingRight = ""), t && (t.style.paddingRight = ""), e) && (e.style.paddingRight = ""), document.querySelector(".floating-navigation")), e = (i && (t = document.querySelector(".floating-navigation__wrap")) && (t.style.paddingRight = ""), document.querySelector(".f_backtotop")), i = (e && (e.style.paddingRight = ""), document.querySelector("#spr-live-chat-app")); i && (t = i.querySelector(".spr-chat__proactive-box"), e = i.querySelector(".spr-chat__trigger-box"), t && (t.style.marginRight = ""), e) && (e.style.marginRight = "") }, hiddenScroll: function (t) { var e = window.innerWidth - document.documentElement.clientWidth, t = (this.saveScrollTop = window.pageYOffset || document.documentElement.scrollTop, this.popupEl = t || null, this.scrollFlag = !0, this.wrapEl = document.querySelector("#wrap"), document.body.style.position = "fixed", document.body.style.width = "100%", document.body.style.left = 0, document.body.style.right = 0, document.body.style.top = -this.saveScrollTop + "px", document.body.style.zIndex = -1, this.wrapEl.style.paddingRight = e + "px", document.documentElement.style.overflow = "hidden", null !== this.popupEl && (this.popupEl.style.paddingRight = e + "px"), document.querySelector("#subnav")), i = (t && (i = t.querySelector(".heading a"), s = t.querySelector(".inside ul"), t = t.querySelector(".gnb"), i && (i.style.marginRight = e + "px"), s && (s.style.marginRight = e + "px"), t) && (t.style.marginRight = e + "px"), document.querySelector(".pd-g-header-navigation")), s = (i && (s = i.querySelector(".pd-header-navigation"), t = i.querySelector(".pd-header-navigation__menu-wrap"), i = i.querySelector(".pd-buying-price"), s && (s.style.paddingRight = e + "px"), t && (t.style.paddingRight = e + "px"), i) && (i.style.paddingRight = e / 2 + "px"), document.querySelector(".floating-navigation")), i = (s && (t = document.querySelector(".floating-navigation__wrap")) && (t.style.paddingRight = e + "px"), document.querySelector(".f_backtotop")), s = (i && (i.style.paddingRight = e + "px"), document.querySelector("#spr-live-chat-app")); s && (t = s.querySelector(".spr-chat__proactive-box"), i = s.querySelector(".spr-chat__trigger-box"), t && (t.style.marginRight = e + "px"), i) && (i.style.marginRight = e + "px") }, onAccessibility: function (t) { t.setAttribute("aria-hidden", !0), t.setAttribute("tabindex", -1); var e = t.querySelectorAll("a, button, input, select, iframe"); for (let t = 0; t < e.length; t++)e[t].setAttribute("tabindex", -1), e[t].setAttribute("aria-hidden", !0) }, offAccessibility: function (t) { t.removeAttribute("aria-hidden"), t.removeAttribute("tabindex"); var e = t.querySelectorAll("a, button, input, select, iframe"); for (let t = 0; t < e.length; t++)e[t].removeAttribute("tabindex"), e[t].removeAttribute("aria-hidden") }, onPopupAccessibility: function (t) { t.setAttribute("aria-hidden", !0), t.setAttribute("tabindex", -1); var e = t.querySelectorAll("a, button, input, select, iframe"); for (let t = 0; t < e.length; t++) { var i = e[t].getAttribute("aria-hidden"), s = e[t].getAttribute("tabindex"); null != i && e[t].setAttribute("data-prev-aria-hidden", i), null != s && e[t].setAttribute("data-prev-tabindex", s), e[t].setAttribute("tabindex", -1), e[t].setAttribute("aria-hidden", !0) } }, offPopupAccessibility: function (t) { t.removeAttribute("aria-hidden"), t.removeAttribute("tabindex"); var e = t.querySelectorAll("a, button, input, select, iframe"); for (let t = 0; t < e.length; t++) { var i = e[t].getAttribute("data-prev-aria-hidden"), s = e[t].getAttribute("data-prev-tabindex"); null != i ? e[t].setAttribute("aria-hidden", i) : e[t].removeAttribute("aria-hidden"), null != s ? e[t].setAttribute("tabindex", s) : e[t].removeAttribute("tabindex"), e[t].removeAttribute("data-prev-aria-hidden"), e[t].removeAttribute("data-prev-tabindex") } }, isRTL: function () { return document.documentElement.classList.contains("rtl") }, isLowNetwork: function () { var t = "___GALAXY_SPEED"; return null != l.getCookie(t) && null != l.getCookie(t) && ("L" == l.getCookie(t) || "H" != l.getCookie(t) && void 0) }, getNavHeight: function () { let t = 0; var e, i, s = document.querySelector(".pd-g-header-navigation") || document.querySelector("#subnav") || document.querySelector(".sticky-menu") || document.querySelector(".pd-g-floating-nav"); return t = s ? s.classList.contains("pd-g-header-navigation") ? (i = (e = s.querySelector(".pd-header-navigation")).querySelector(".pd-header-navigation__menu-wrap"), e.clientHeight + i.clientHeight) : s.clientHeight : t }, isBrokenFixed: function () { var t = window.innerWidth, e = window.innerHeight; let i = !1; return document.documentElement.classList.remove("is-broken-fixed"), 1440 <= t && e <= 540 || t <= 810 && e / t < .5277 ? (document.documentElement.classList.add("is-broken-fixed"), i = !0) : document.documentElement.classList.remove("is-broken-fixed"), i }, detector: { isTouchDevice: ((e = "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch) ? document.documentElement.classList.add("isTouchDevice") : document.documentElement.classList.add("isNotTouchDevice"), e), isIosDevice: ((e = /iPad|iPhone|iPod/.test(navigator.userAgent)) ? document.documentElement.classList.add("isIosDevice") : document.documentElement.classList.add("isNotIosDevice"), e), isIEorEdge: function () { let t; var e = navigator.userAgent.toLowerCase(); if ("Microsoft Internet Explorer" == navigator.appName) t = "msie "; else { if (!(-1 < e.search("trident"))) return -1; t = "trident/.*rv:" } return null != new RegExp(t + "([0-9]{1,})(\\.{0,}[0-9]{0,1})").exec(e) ? (document.documentElement.classList.add("isIEorEdge"), parseFloat(RegExp.$1 + RegExp.$2)) : -1 }(), checkGlobal: void (0 === location.pathname.indexOf("/global/galaxy") || !0 === window.IS_CAMPAIGN ? document.documentElement.classList.add("global") : document.documentElement.classList.add("dotcom")), checkOS: function () { let t = navigator.appVersion.match(/(mac|win|linux)/i); t = t ? t[1].toLowerCase() : "", document.documentElement.classList.add(t) }(), isFireFox: void (/firefox/i.test(navigator.userAgent) && document.documentElement.classList.add("firefox")), isWebkit: void (/applewebkit/i.test(navigator.userAgent) && document.documentElement.classList.add("webkit")), isChrome: void (/chrome/i.test(navigator.userAgent) && document.documentElement.classList.add("chrome")), isOpera: void (/opera/i.test(navigator.userAgent) && document.documentElement.classList.add("opera")), isIos: void (/ip(ad|hone|od)/i.test(navigator.userAgent) && document.documentElement.classList.add("ios")), isCrIos: void (/crios/i.test(navigator.userAgent) && document.documentElement.classList.add("crios")), isAndroid: void (/android/i.test(navigator.userAgent) && document.documentElement.classList.add("android")), isSafari: (e = /applewebkit/i.test(navigator.userAgent), t = /chrome/i.test(navigator.userAgent), void (e && !t && document.documentElement.classList.add("safari"))), isHuawei: void (/Huawei/i.test(navigator.userAgent) && document.documentElement.classList.add("huawei")), isUCBrowser: void (/UCBrowser/i.test(navigator.userAgent) && document.documentElement.classList.add("ucbrowser")), isEdge: void (/Edg/i.test(navigator.userAgent) && document.documentElement.classList.add("edge")) }, resizeEventHandler: function () { let e = null, i = [], t = null; const s = [{ resolution: 1920, resolutionName: "desktopL", eventFunction: "" }, { resolution: 1440, resolutionName: "desktop", eventFunction: "" }, { resolution: 1023, resolutionName: "tablet", eventFunction: "" }, { resolution: 767, resolutionName: "mobile", eventFunction: "" }]; let n, r; let o = function () { if (n) for (let t = 0; t < n.length; t++)window.innerWidth > n[0].resolution ? e = n[0].resolutionName : window.innerWidth <= n[t].resolution && (e = n[t].resolutionName); return e }; function a() { for (let t = 0; t < i.length; t++)i[t](o()) } return { init: function (t, e) { n = t || s, r = e || 200, o() }, destroy: function () { window.removeEventListener("resize", a) }, checkResolution: o, add: function (t) { i.push(t) }, eventList: i, bindEvent: function () { window.addEventListener("resize", function () { clearTimeout(t), t = setTimeout(function () { a() }, r) }) } } }, layerPopup: function (e) { let i = {}, s = {}, t = {}; const n = function (t) { e.openerEvent.proxy ? e.openerEvent.parent ? t.target.parentElement.classList.contains(e.openerEvent.class) && (i.openerCta = t.target.parentElement) : t.target.classList.contains(e.openerEvent.class) && (i.openerCta = t.target) : i.openerCta = this, i.layerPopup.opener = i.openerCta, s.start && s.start(i), i.html.classList.add("is-layer-open"), l.hiddenScroll(i.layerPopup), l.detector.isIosDevice && (i.layerPopup.opener.blur(), i.openerCta.style.display = "none"), document.body.querySelector(i.layerPopupClass) && i.moveTarget.appendChild(i.layerPopup), i.closeCtas[0].focus(), setTimeout(function () { i.closeCtas[0].focus(), a.on() }, 300); for (let t = 0; t < i.closeCtas.length; t++)i.closeCtas[t].addEventListener("click", r); i.dimmed && i.dimmed.addEventListener("click", o), s.end && s.end(i) }, r = function () { l.detector.isIosDevice && (i.openerCta.style.display = ""), t.start && t.start(i); for (let t = 0; t < i.closeCtas.length; t++)i.closeCtas[t].removeEventListener("click", r); i.dimmed && i.dimmed.removeEventListener("click", o), a.off(), i.html.classList.remove("is-layer-open"), setTimeout(function () { l.visibleScroll() }, 80), (i.openerCta || i.layerPopup.opener).focus(), setTimeout(function () { (i.openerCta || i.layerPopup.opener).focus() }, 300), t.end && t.end(i) }, o = function (t) { t.currentTarget == t.target && r() }, a = { on: function () { l.onPopupAccessibility(document.querySelector("#wrap")), l.offAccessibility(i.layerPopup) }, off: function () { l.offPopupAccessibility(document.querySelector("#wrap")), l.onAccessibility(i.layerPopup) } }; i.html = document.documentElement, i.layerPopup = e.layerPopup, i.closeCtas = e.closeCtas, i.moveTarget = e.moveTarget, i.dimmed = e.dimmed || "", i.layerPopupClass = e.layerPopupClass, s.start = e.show ? e.show.start : void 0, s.end = e.show ? e.show.end : void 0, t.start = e.hide ? e.hide.start : void 0, t.end = e.hide ? e.hide.end : void 0, e.openerEvent.element.addEventListener("click", n), i.layerPopup.show = n, i.layerPopup.hide = r }, calRange: function (t) { 0 < (t = { targetValue: t.targetValue, progress: t.progress, startPoint: t.startPoint || 0, endPoint: t.endPoint || 100 }).startPoint && (t.endPoint = 0 < t.endPoint - t.startPoint ? t.endPoint - t.startPoint : t.endPoint); var e = t.targetValue * (t.progress - t.startPoint) / t.endPoint; return e = (e = e > t.targetValue ? t.targetValue : e) < 0 ? 0 : e }, videoObjectFit: function (t) { function e(t) { this.opts = t, this.resizeTiming = t.resizeTiming || 100, this.setElement(), this.setVideoStyle(), this.bindEvent() } var i = e.prototype; return i.setElement = function () { void 0 !== this.opts.wrapElement && (this.wrapElement = this.opts.wrapElement.jquery ? this.opts.wrapElement[0] : this.opts.wrapElement), void 0 !== this.opts.targetVideo && (this.targetVideo = this.opts.targetVideo.jquery ? this.opts.targetVideo[0] : this.opts.targetVideo) }, i.setVideoStyle = function () { this.wrapElement.style.overflow = "hidden", this.targetVideo.style.position = "absolute", this.targetVideo.style.top = "50%", this.targetVideo.style.left = "50%", this.targetVideo.style.transform = "translate(-50%, -50%)" }, i.bindEvent = function () { var t = this; window.addEventListener("load", function () { t.setVideoSize() }), window.addEventListener("resize", function () { t.setVideoSize() }) }, i.getVideoInfo = function () { this.wrapWidth = this.wrapElement.clientWidth, this.wrapHeight = this.wrapElement.clientHeight, this.videoWidth = this.targetVideo.clientWidth, this.videoHeight = this.targetVideo.clientHeight, this.wrapRatio = this.wrapHeight / this.wrapWidth, this.videoRatio = this.videoHeight / this.videoWidth }, i.setVideoSize = function () { var t = this; clearTimeout(null), setTimeout(function () { t.getVideoInfo(), t.wrapRatio < t.videoRatio ? (t.targetVideo.style.width = "100%", t.targetVideo.style.height = "auto") : (t.targetVideo.style.width = "auto", t.targetVideo.style.height = "100%") }, this.resizeTiming) }, new e(t) }, mediaLoader: function (t) { function e() { this.opts = t, this.mediaType = t.type || "image", this.innerScroll = t.innerScroll, this.lazyCompleteClass = "image" === this.mediaType ? "is-img-load-complete" : "bgImage" === this.mediaType ? "is-bg-load-complete" : "video" === this.mediaType ? "is-video-load-complete" : "mp4Video" === this.mediaType ? "is-mp4video-load-complete" : "svgImage" === this.mediaType ? "is-svg-load-complete" : t.complatClass, this.lazyClass = t.lazyClass, this.removeClass = this.lazyClass.replace(".", ""), this.responsiveClass = t.responsiveClass, this.loadOption = t.loadOption, this.targetAttr = t.loadOption[0].attribute, this.bgOpts = t.loadOption[0].bgOpts, this.visiblePoint = t.visiblePoint || 0, this.useDefaultImg = t.useDefaultImg, this.endCallback = t.endCallback, this.preset = t.preset || "", this.property = "image" === this.mediaType ? "src" : "href", this.getLazyMedia(), this.getResponsiveMedia(), this.bindEvent() } var i = e.prototype; return i.bindEvent = function () { var t = this, e = null, i = this.loadOption, s = function () { t.getLazyMedia(), t.setLazyMedia(), 0 == t.lazyLength && window.removeEventListener("scroll", s) }; this.useDefaultImg && this.setDefaultImage(), t.responsiveHandler(), s(), (null != this.innerScroll ? this.innerScroll.wrap : window).addEventListener("scroll", s), i && window.addEventListener("resize", function () { clearTimeout(e), e = setTimeout(function () { t.responsiveHandler(), s() }, 80) }) }, i.utilList = { getOffset: function (t) { var e; return t = null != this.innerScroll ? (e = t.getBoundingClientRect().top + this.innerScroll.wrap.scrollTop, t.getBoundingClientRect().bottom + this.innerScroll.wrap.scrollTop) : (e = t.getBoundingClientRect().top + window.pageYOffset, t.getBoundingClientRect().bottom + window.pageYOffset), { top: e, bottom: t } }, getScroll: function () { var t, e; return e = null != this.innerScroll ? (t = (e = this.innerScroll.wrap).scrollTop) + e.clientHeight : (t = window.pageYOffset) + this.windowHeight, { top: t, bottom: e } } }, i.getLazyMedia = function () { for (var t = document.querySelectorAll(this.lazyClass), e = [], i = 0; i < t.length; i++)null != t[i].offsetParent && e.push(t[i]); this.lazyMedias = e, this.lazyLength = e.length }, i.getResponsiveMedia = function () { var t = document.querySelectorAll(this.responsiveClass); this.responsiveMedias = t, this.responsiveLength = t.length }, i.setDefaultImage = function () { if ("video" !== this.mediaType && "mp4Video" !== this.mediaType) for (var t = 0; t < this.lazyLength; t++)this.lazyMedias[t].setAttribute("src", "data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH/C1hNUCBEYXRhWE1QAz94cAAh+QQFAAAAACwAAAAAAQABAAACAkQBADs=") }, i.responsiveHandler = function () { this.windowWidth = window.innerWidth; for (var t = this.loadOption.length, e = 0; e < t; e++) { var i = e + 1, i = i == t ? 0 : this.loadOption[i].resolution; (0 == e || this.windowWidth <= this.loadOption[e].resolution) && this.windowWidth > i && this.loadOption[e].attribute !== this.oldAttr && (this.targetAttr = this.loadOption[e].attribute, this.oldAttr = this.targetAttr, this.bgOpts = this.loadOption[e].bgOpts, this.oldOpts = this.bgOpts, this.attrIndex = e, this.setResponsiveMedia()) } }, i.setResponsiveMedia = function (t, e) { if (t) this.setLazyMedia(t, e), this.getResponsiveMedia(); else for (var i = 0; i < this.responsiveLength; i++) { var s = this.responsiveMedias[i], n = (n = s.getAttribute(this.targetAttr)) || this.findMediaHandler(s); if (s.classList.contains(this.lazyCompleteClass)) if ("image" === this.mediaType || "svgImage" === this.mediaType) "image" === this.mediaType ? s.setAttribute(this.property, n + this.preset) : s.setAttribute(this.property, n); else if ("video" === this.mediaType || "mp4Video" === this.mediaType) for (var r = s.querySelectorAll("source"), o = 0; o < r.length; o++)"video/webm" === r[o].type ? (r[o].src = n + ".webm" + this.preset, s.load()) : "video/mp4" === r[o].type && ("mp4Video" === this.mediaType ? r[o].src = n + ".mp4?imbypass=true" : r[o].src = n + ".mp4" + this.preset, s.load()) } }, i.findRemainingMediaAttr = function (t) { for (var e = this.loadOption.length, i = 0; i < e; i++) { var s = t.getAttribute(this.loadOption[i].attribute); if (s) return s } }, i.findNextMediaAttr = function (t) { for (var e = this.attrIndex; 0 <= e; e--) { var i = t.getAttribute(this.loadOption[e].attribute); if (i) return i; if (0 == e && null == i) return this.findRemainingMediaAttr(t) } }, i.findMediaHandler = function (t) { return 0 !== this.attrIndex ? this.findNextMediaAttr(t) : this.findRemainingMediaAttr(t) }, i.setLazyMedia = function (t, s) { function e(t) { switch (n.mediaType) { case "image": t.setAttribute(n.property, a + n.preset); break; case "svgImage": t.setAttribute(n.property, a); break; case "bgImage": t.classList.add(n.lazyCompleteClass), a && (t.style.background = this.bgOpts + " url(" + a + ")"); break; case "video": var e = r(a); t.append(e[0]), t.append(e[1]), t.muted || (t.muted = !0), t.playsInline || (t.playsInline = !0), t.load(); break; case "mp4Video": e = r(a); t.append(e[0]), t.muted || (t.muted = !0), t.playsInline || (t.playsInline = !0), t.load() } } function i(t) { var e = t, i = function () { "image" === n.mediaType ? e.removeEventListener("load", i) : "video" !== n.mediaType && "mp4Video" !== n.mediaType || (s && s(t), n.endCallback && n.endCallback(t), e.removeEventListener("loadedmetadata", i)) }; switch (n.mediaType) { case "image": e.addEventListener("load", i), e.classList.add(n.lazyCompleteClass), 1 == n.opts.lazyClass.split(" ").length && e.classList.remove(n.removeClass); break; case "video": e.addEventListener("loadedmetadata", i), e.classList.add(n.lazyCompleteClass), e.parentNode.classList.add("loaded"), 1 == n.opts.lazyClass.split(" ").length && e.classList.remove(n.removeClass); break; case "mp4Video": e.addEventListener("loadedmetadata", i), e.classList.add(n.lazyCompleteClass), 1 == n.opts.lazyClass.split(" ").length && e.classList.remove(n.removeClass); break; default: e.classList.add(n.lazyCompleteClass), 1 == n.opts.lazyClass.split(" ").length && e.classList.remove(n.removeClass) } } var n = this, r = (this.windowHeight = window.innerHeight, function (t) { var e = []; return e.push(document.createElement("source")), e.push(document.createElement("source")), "mp4Video" === n.mediaType ? (e[0].type = "video/mp4", e[0].src = t + ".mp4?imbypass=true") : (e[0].type = "video/webm", e[0].src = t + ".webm" + n.preset, e[1].type = "video/mp4", e[1].src = t + ".mp4" + n.preset), e }); if (t) for (o = 0; o < t.length; o++)a = (a = t[o].getAttribute(this.targetAttr)) || this.findMediaHandler(t[o]), t[o].classList.contains(this.lazyCompleteClass) || (e(t[o]), i(t[o])); else for (var o = 0; o < this.lazyLength; o++) { var a, l = this.lazyMedias[o], c = this.windowHeight * (0 != window.pageYOffset ? this.visiblePoint : 0), h = this.utilList.getScroll.call(this).top - c, c = this.utilList.getScroll.call(this).bottom + c, u = this.utilList.getOffset.call(this, l).top, d = this.utilList.getOffset.call(this, l).bottom, p = (null != this.innerScroll || u < c) && h <= u; null != l.offsetParent && (p || h < d && d < c || h < u && d < c || u < h && c < d) && (a = (a = l.getAttribute(this.targetAttr)) || this.findMediaHandler(l), l.classList.contains(this.lazyCompleteClass) || (e(l), i(l))) } }, new e }, scrollController: function () { var i, s, n, r, o = o || {}, t = navigator.userAgent.toLowerCase(), a = -1 < t.indexOf("mac os"), l = document.scrollingElement || document.documentElement || document.body.parentNode || document.body, c = a ? 60 : 120, h = l === document.body && document.documentElement ? document.documentElement : l, e = !1, u = null, d = function () { "Netscape" == navigator.appName && -1 != navigator.userAgent.search("Trident") || -1 != t.indexOf("msie") ? document.documentElement.addEventListener("mousewheel", f.scrollEvent, { passive: !1 }) : document.documentElement.addEventListener("wheel", f.scrollEvent, { passive: !1 }) }, p = function () { window.addEventListener("scroll", function () { "hidden" == document.documentElement.style.overflow || "hidden" == document.body.style.overflow || e || (n = l.scrollTop) }) }, f = { scrollEvent: function (t) { var e; "hidden" != document.documentElement.style.overflow && "hidden" != document.body.style.overflow && (t.preventDefault(), e = document.body.getAttribute("data-scroll-speed"), t = f.normalizeWheelDelta(t), e = o.currDelta && e ? e : e || i ? i : 120, n += -t * e, r = Math.max(0, Math.min(n, l.scrollHeight - h.clientHeight)), f.update()) }, normalizeWheelDelta: function (t) { return t.detail ? t.wheelDelta ? t.wheelDelta / t.detail / 40 * (0 < t.detail ? 1 : -1) : -t.detail / 3 : t.wheelDelta / 120 }, update: function () { var t = r - l.scrollTop, t = Math.ceil(l.scrollTop + t) <= 0 ? 0 : r < n ? r : Math.ceil(l.scrollTop + t); e = !0, TweenMax.to(l, s, { ease: "circ.out", scrollTop: t, onComplete: function () { clearTimeout(u), u = null, u = setTimeout(function () { e = !1, n = l.scrollTop }, 500) } }), n <= 0 ? n = 0 : r <= n && (n = r) } }; return { init: function (t) { var e; return i = (e = t).speed ? a ? e.speed / 2 : e.speed : c, s = e.duration || .6, n = l.scrollTop, d(), p(), this.opt = t }, destroy: function (t) { document.documentElement.removeEventListener("mousewheel", f.scrollEvent), document.documentElement.removeEventListener("wheel", f.scrollEvent), t && (o = {}) } } }, deviceConsole: function (t, e) { var i, s; document.querySelector(".console-layer") || ((i = document.createElement("div")).classList.add("console-layer"), i.setAttribute("style", "position: fixed; left: 0; top: 0; padding: 20px; z-index:1000000000; background: #fff;"), document.querySelector("body").append(i)), "multi" == e ? (i = document.querySelector(".console-layer"), (s = document.createElement("div")).classList.add("console-value"), s.setAttribute("style", "border: 1px #ddd solid; float: left; padding: 10px;"), i.append(s)) : s = (document.querySelector(".console-value") || ((s = document.createElement("div")).classList.add("console-value"), s.setAttribute("style", "border: 1px #ddd solid; float: left; padding: 10px;"), i.append(s)), document.querySelector(".console-value")), s.innerHTML = t }, videoHandler: function (t) { function e(t) { return this.video = t.video, this.wrap = t.wrap || video, this.controller = t.controller || "", this.playType = t.playType, this.startPoint = t.startPoint || 0, this.reversePoint = t.reversePoint || 100, this.playClass = t.playClass || "is-playing", this.pauseClass = t.pauseClass || "is-paused", this.endedClass = t.endedClass || "is-ended", this.resetCallback = t.resetCallback, this.playCallback = t.playCallback, this.pauseCallback = t.pauseCallback, this.endCallback = t.endCallback, this.tweenObject = null, this.agent = navigator.userAgent, this.isMacintosh = this.agent.indexOf("Macintosh"), this.isChrome = this.agent.indexOf("Chrome"), this.playText = t.playText || "", this.pauseText = t.pauseText || "", this.bindEvents(), this.video.videoHandler = this } var i = e.prototype; return i.eventList = { play: function () { if (this.playCallback && this.playCallback(), this.wrap.length) for (var t = 0; t < this.wrap.length; t++)this.wrap[t].classList.remove(this.endedClass), this.wrap[t].classList.remove(this.pauseClass), this.wrap[t].classList.add(this.playClass); else this.wrap.classList.remove(this.endedClass), this.wrap.classList.remove(this.pauseClass), this.wrap.classList.add(this.playClass); this.controller && (this.controller.querySelector(".blind").innerText = "undefined" != typeof LOCAL_VARI && LOCAL_VARI ? LOCAL_VARI.pause : "pause") }, ended: function () { if (this.endCallback && this.endCallback(), this.wrap.length) for (var t = 0; t < this.wrap.length; t++)this.wrap[t].classList.remove(this.playClass), this.wrap[t].classList.add(this.pauseClass), this.wrap[t].classList.add(this.endedClass); else this.wrap.classList.remove(this.playClass), this.wrap.classList.add(this.pauseClass), this.wrap.classList.add(this.endedClass) }, pause: function () { if (this.pauseCallback && this.pauseCallback(), this.wrap.length) for (var t = 0; t < this.wrap.length; t++)this.wrap[t].classList.remove(this.playClass), this.wrap[t].classList.add(this.pauseClass); else this.wrap.classList.remove(this.playClass), this.wrap.classList.add(this.pauseClass); this.controller && (this.controller.querySelector(".blind").innerText = "undefined" != typeof LOCAL_VARI && LOCAL_VARI ? LOCAL_VARI.play : "play") }, reset: function () { this.resetCallback && this.resetCallback(), this.video.pause(), this.video.currentTime = 0; function t() { if (e.wrap.length) for (var t = 0; t < e.wrap.length; t++)e.wrap[t].classList.remove(e.playClass), e.wrap[t].classList.remove(e.pauseClass), e.wrap[t].classList.remove(e.endedClass); else e.wrap.classList.remove(e.playClass), e.wrap.classList.remove(e.pauseClass), e.wrap.classList.remove(e.endedClass) } var e = this; clearTimeout(t), setTimeout(t, 50) } }, i.activeList = { scrollPlay: function (t) { let e = !document.documentElement.classList.contains("low_network") && t > this.startPoint && t < this.reversePoint && this.video.paused && !this.wrap.classList.contains(this.endedClass) && !this.wrap.classList.contains(this.pauseClass); e && (4 == this.video.readyState && this.video.paused ? this.video.play() : this.video.addEventListener("canplay", function () { e && this.play() }, { once: !0 })), 4 != this.video.readyState || 100 !== t && 0 !== t || this.eventList.reset.call(this) }, sequencePlay: function (t, e, i) { this.corrProgress = e || 100, this.scrollDuration = i || .6, 4 == this.video.readyState && this.video.paused && (this.videoDuration = this.video.duration, this.playCurrentTime = this.videoDuration * (t / this.corrProgress), this.playRange = this.playCurrentTime < this.videoDuration ? this.playCurrentTime : this.videoDuration, this.playCurrentTime < this.videoDuration) && (this.video.currentTime = this.playRange) } }, i.bindEvents = function () { var t = this; this.playEvent = function () { t.eventList.play.call(t) }, this.pauseEvent = function () { t.eventList.pause.call(t) }, this.endedEvent = function () { t.eventList.ended.call(t) }, this.video.addEventListener("play", this.playEvent), this.video.addEventListener("pause", this.pauseEvent), this.video.addEventListener("ended", this.endedEvent) }, i.scrollActive = function (t, e, i) { switch (this.playType) { case "scrollPlay": this.activeList.scrollPlay.call(this, t); break; case "sequencePlay": this.activeList.sequencePlay.call(this, t, e, i) } }, i.destroy = function () { this.video.removeEventListener("play", this.playEvent), this.video.removeEventListener("pause", this.pauseEvent), this.video.removeEventListener("ended", this.endedEvent), this.video.videoHandler = null }, new e(t) } }; var t, e; window.flagship.common.utils = l, window.flagship.common.resize = l.resizeEventHandler(), window.flagship.common.accordion = class { constructor(t) { this.defaultOpts = { wrap: null, classList: { item: "js-accordion-item", button: "js-accordion-cta", contents: "js-accordion-content", activeClass: "is-open" }, openType: "multiple", notClose: !1, transition: { duration: "0.3s", timingFnc: "ease-in", delay: "" }, open: { start: function () { }, end: function () { } }, close: { start: function () { }, end: function () { } } }, this.opts = Object.assign(this.defaultOpts, t), this.els = {}, this.bindAccordionActiveHandler = this.accordionActiveHandler.bind(this), this.opts.wrap.accrordion = this } init() { this.setElements(), this.setTransitionOpts(), this.setProperty(), this.bindEvents() } setElements() { this.els.wrap = this.opts.wrap, this.els.item = this.els.wrap.querySelectorAll("." + this.opts.classList.item) } setTransitionOpts() { var t = this.opts.transition; t.duration = "number" == typeof t.duration ? t.duration + "s" : t.duration, t.delay = "number" == typeof t.delay ? t.delay + "s" : t.delay, t.property = `height ${t.duration} ${t.timingFnc} ` + t.delay } setProperty() { for (let t = 0; t < this.els.item.length; t++)this.els.item[t].wrap = this.els.wrap, this.els.item[t].button = this.els.item[t].querySelector("." + this.opts.classList.button), this.els.item[t].button.parentItem = this.els.item[t], this.els.item[t].contents = this.els.item[t].querySelector("." + this.opts.classList.contents), l.onAccessibility(this.els.item[t].contents) } bindEvents() { this.els.wrap.addEventListener("click", this.bindAccordionActiveHandler) } accordionActiveHandler(t) { t.target.matches("." + this.opts.classList.item) ? this.accordionActive(t.target) : t.target.matches("." + this.opts.classList.button) && this.accordionActive(t.target.parentItem) } accordionActive(t) { "0px" == t.contents.style.height || 0 == t.contents.style.height ? ("single" == this.opts.openType && this.singleOpenEvent(t), this.openEvent(t)) : this.opts.notClose || this.closeEvent(t) } openEvent(t) { this.opts.open.start && this.opts.open.start(t), t.classList.add(this.opts.classList.activeClass); var e = t.contents.children[0].clientHeight, e = ("" == t.contents.style.transition && (t.contents.style.transition = this.opts.transition.property), t.contents.style.height = e + "px", t.button.setAttribute("aria-expanded", !0), t.button.getAttribute("data-omni")), i = t.button.getAttribute("an-la"); e && i && (t.button.setAttribute("data-omni", e.replace("open", "close")), t.button.setAttribute("an-la", i.replace("open", "close"))), l.offAccessibility(t.contents), this.opts.open.end && this.opts.open.end(t) } closeEvent(t) { this.opts.close.start && this.opts.close.start(t), "" == t.contents.style.transition && (t.contents.style.transition = this.opts.transition.property), t.contents.style.height = 0, t.button.setAttribute("aria-expanded", !1), t.classList.remove(this.opts.classList.activeClass), setTimeout(function () { t.contents.style.transition = "" }, 300), l.onAccessibility(t.contents); var e = t.button.getAttribute("data-omni"), i = t.button.getAttribute("an-la"); e && i && (t.button.setAttribute("data-omni", e.replace("close", "open")), t.button.setAttribute("an-la", i.replace("close", "open"))), this.opts.close.end && this.opts.close.end(t) } singleOpenEvent(t) { var e = t, t = t.wrap.querySelector("." + this.opts.classList.activeClass); t && e != t && this.closeEvent(t) } destroy() { this.els.wrap.removeEventListener("click", this.bindAccordionActiveHandler) } } }(), function () { function e(t) { return this.opts = t, this.targetElement = t.targetElement, this.imageList = [], this.loadCount = 0, this.playIndex = null, this.playingTime = 0, this.pausePlayingTime = 0, this.usePlay = !1, this.useReverse = !1, this.imageLoadOffset = this.opts.imageLoadOffset || 1.5, this.loadComplete = !1, this.setCanvas(), this.loadImages(), this } var t = e.prototype; return t.setCanvas = function () { function t(t) { "CANVAS" == t.tagName ? this.canvas = t : (this.canvas = document.createElement("CANVAS"), "append" != this.opts.addType && (t = this.targetElement.firstElementChild) ? t.parentNode.insertBefore(this.canvas, t) : this.targetElement.appendChild(this.canvas)) } this.targetElement.jquery ? t.call(this, this.targetElement[0]) : t.call(this, this.targetElement), this.context = this.canvas.getContext("2d") }, t.loadImages = function () { var i, t, e, s, n, r = this, o = function () { t = window.pageYOffset - window.innerHeight * r.imageLoadOffset, e = window.pageYOffset + window.innerHeight + window.innerHeight * r.imageLoadOffset, a(), (s < e && t < s || t < n && n < e || t < s && n < e || s < t && e < n) && (l(), window.removeEventListener("scroll", o)) }, a = function () { s = r.targetElement.getBoundingClientRect().top + window.pageYOffset, n = r.targetElement.getBoundingClientRect().bottom + window.pageYOffset }, l = function () { r.opts.autoPlay || r.defaultImage || r.setDefaultImage(0); for (var t = r.opts.startNum; t <= r.opts.endNum; t++)(i = new Image).src = r.opts.path + r.opts.name + t + "." + r.opts.extension, function (t) { var e = function () { r.imageList[t] = this, r.loadCount < r.opts.endNum ? (r.loadCount++, this.removeEventListener("load", e)) : r.opts.autoPlay && r.loadCount == r.opts.endNum && setTimeout(function () { r.play() }, 100) }; i.addEventListener("load", e) }(t), i = null }; window.addEventListener("scroll", o), o() }, t.sequenceLoadCheck = function (t) { var e = this, i = null, i = setInterval(function () { e.loadCount == e.opts.endNum && (e.activeSequence(t), clearInterval(i), i = null, e.loadComplete = !0) }, 100) }, t.setDefaultImage = function (t) { var e = this; this.defaultImage = new Image, this.defaultImage.src = this.opts.path + this.opts.name + t + "." + this.opts.extension, this.defaultImageEvent = function () { e.canvas.width = e.defaultImage.naturalWidth, e.canvas.height = e.defaultImage.naturalHeight, e.opts.width = e.canvas.width, e.opts.height = e.canvas.height, e.context.clearRect(0, 0, e.opts.width, e.opts.height), e.context.drawImage(e.defaultImage, 0, 0, e.opts.width, e.opts.height) }, e.opts.width && e.opts.height ? (e.canvas.width = e.opts.width, e.canvas.height = e.opts.height) : this.defaultImage.addEventListener("load", this.defaultImageEvent) }, t.play = function (t) { var e; t = t || {}, this.isPlay || (e = t.index > this.opts.endNum ? this.opts.endNum : t.index, this.activeCallback = t.activeCallback || function () { }, this.endCallback = t.endCallback || function () { }, this.beforeTime = t.beforeTime || 0, "number" == typeof t.index ? this.loadCount > parseInt(this.opts.endNum / 3) ? (this.defaultImage && this.defaultImage.removeEventListener("load", this.defaultImageEvent), this.drawCanvas(e)) : (this.defaultImage && this.defaultImage.removeEventListener("load", this.defaultImageEvent), this.setDefaultImage(e)) : this.loadCount !== this.opts.endNum ? this.sequenceLoadCheck() : (this.activeSequence(), this.loadComplete = !0)) }, t.reverse = function () { this.isPlay || (this.loadCount !== this.opts.endNum ? this.sequenceLoadCheck("reverse") : (this.activeSequence("reverse"), this.loadComplete = !0)) }, t.pause = function () { this.isPlay && (this.useReverse && this.usePlayIng && (this.useReverse = !1), window.cancelAnimationFrame(this.playAnimation), this.isPlay = !1, this.pausePlayingTime = this.playingTime) }, t.stop = function () { this.pause(), this.playIndex = null, this.playingTime = 0, this.pausePlayingTime = 0, this.usePlay = !1, this.usePlayIng = !1, this.useReverse = !1, this.useReverseIng = !1, this.drawCanvas(this.opts.startNum) }, t.drawCanvas = function (t) { null == this.playIndex && this.oldPlayIndex == t || (this.context.clearRect(0, 0, this.opts.width, this.opts.height), this.imageList[0 <= t ? t : this.playIndex] && this.imageList[0 <= t ? t : this.playIndex].complete && this.context.drawImage(this.imageList[0 <= t ? t : this.playIndex], 0, 0, this.opts.width, this.opts.height), this.oldPlayIndex = this.playIndex, t && (this.playIndex = t)) }, t.activeSequence = function (i) { function s(t) { t && null == l && (l = Math.ceil(t)), null == o.playIndex && "reverse" !== i ? o.playIndex = o.opts.startNum : null == o.playIndex && "reverse" == i && (o.playIndex = o.opts.endNum) } function n() { o.playingTime = 0, o.pausePlayingTime = 0, o.playIndex = null, o.pause(), o.isPlay = !1, o.usePlay = !1, o.usePlayIng = !1, o.useReverse = !1, o.useReverseIng = !1, o.opts.loop && o.play() } var r, o = this, a = this.opts.endNum / this.opts.playTime, l = null, c = (this.activeCallback(), this.isPlay = !0, { default: function () { s(), "reverse" == i && o.playIndex >= o.opts.startNum || !i && o.playIndex <= o.opts.endNum ? (o.drawCanvas(), i ? o.playIndex-- : o.playIndex++, o.playAnimation = window.requestAnimationFrame(c.default)) : (o.playIndex = null, o.isPlay = !1, o.pause()) }, timeControll: function (t) { switch (s(t), r = Math.ceil(t) - l, (!i && o.playIndex <= o.opts.endNum || "reverse" == i && o.playIndex >= o.opts.startNum) && o.drawCanvas(), i) { case void 0: if (o.useReverse && !o.useReverseIng) { o.usePlayIng = !0; var e = o.opts.playTime - o.pausePlayingTime; if (o.playIndex = Math.ceil((r + e) * a), o.playingTime = r + e, o.playingTime > o.opts.playTime - o.beforeTime && o.endCallback(), o.playingTime > o.opts.playTime) return void n() } else if (o.usePlay = !0, o.playIndex = Math.ceil((r + o.pausePlayingTime) * a), o.playingTime = r + o.pausePlayingTime, o.playingTime > o.opts.playTime - o.beforeTime && o.endCallback(), o.playingTime > o.opts.playTime) return void n(); break; case "reverse": if (o.usePlay || o.usePlayIng && o.useReverse) { o.useReverseIng = !0; e = o.pausePlayingTime - o.opts.playTime; if (o.playIndex = Math.floor((o.opts.playTime + e - r) * a), o.playingTime = o.opts.playTime + e - r, o.playingTime < o.beforeTime && o.endCallback(), o.playingTime > o.opts.playTime || o.playIndex <= 0) return void n() } else if (o.useReverse = !0, o.playIndex = Math.floor((o.opts.playTime - (r + o.pausePlayingTime)) * a), o.playingTime = r + o.pausePlayingTime, o.playingTime > o.opts.playTime - o.beforeTime && o.endCallback(), o.playingTime > o.opts.playTime) return void n() }o.playAnimation = window.requestAnimationFrame(c.timeControll) } }); this.playAnimation = window.requestAnimationFrame(this.opts.playTime ? c.timeControll : c.default) }, function (t) { return new e(t) } }()); window.flagship.common.upgrade = function () { let r = {}; let t = { dropdownClick: function () { r.oldDropdownCta.addEventListener("click", function () { var t = r.oldDropdownArea.classList.contains("is-open"); e.dropdownClick("old", t) }), r.newDropdownCta.addEventListener("click", function () { var t = r.newDropdownArea.classList.contains("is-open"); e.dropdownClick("new", t) }) }, shopCta: function () { for (let t = 0; t < r.newDropdownList.length; t++)r.newDropdownList[t].addEventListener("click", e.shopCta); r.newSelectBox.addEventListener("change", e.shopCta) }, videoCta: function () { for (let t = 0; t < r.newDropdownList.length; t++)r.newDropdownList[t].addEventListener("click", e.videoCta); r.newSelectBox.addEventListener("change", e.videoCta) }, videPlayback: function () { for (let t = 0; t < r.newDropdownList.length; t++)r.newDropdownList[t].addEventListener("click", o.setBatterySection); r.newSelectBox.addEventListener("change", e.videoCta); for (let t = 0; t < r.oldDropdownList.length; t++)r.oldDropdownList[t].addEventListener("click", o.setBatterySection); r.oldSelectBox.addEventListener("change", e.videoCta) } }, o = { setVisibleData: function () { setTimeout(() => { "C" == window.flagship.upgrade.ECOSYSTEM_ALT && (window.flagship.upgrade.commonData.contentsVisibleData.ai.FtoSP.ecosystemG = !1, window.flagship.upgrade.commonData.contentsVisibleData.ai.StoSP.ecosystemG = !1, window.flagship.upgrade.commonData.contentsVisibleData.ai.FtoS.ecosystemG = !1, window.flagship.upgrade.commonData.contentsVisibleData.ai.StoS.ecosystemG = !1) }, 800) }, setPlaybackData: function () { setTimeout(() => { var t; "B" == window.flagship.upgrade.BATTERY_PLAYBACK && ((t = { "SM-S926": window.flagship.upgrade.commonData.playbackData["SM-S926"].snapdragon, "SM-S921": window.flagship.upgrade.commonData.playbackData["SM-S921"].snapdragon })["SM-S926"].typeB = {}, t["SM-S926"].typeB.video = {}, t["SM-S926"].typeB.audio = {}, t["SM-S926"].typeB.video["SM-S901"] = 13, t["SM-S926"].typeB.audio["SM-S901"] = 38, t["SM-S926"].typeB.video["SM-N980"] = 7, t["SM-S926"].typeB.audio["SM-N980"] = 1, t["SM-S921"].typeB = {}, t["SM-S921"].typeB.video = {}, t["SM-S921"].typeB.audio = {}, t["SM-S921"].typeB.video["SM-S901"] = 11, t["SM-S921"].typeB.audio["SM-S901"] = 24, t["SM-S921"].typeB.video["SM-N980"] = 5, t["SM-S921"].typeB.audio["SM-N980"] = null), "C" == window.flagship.upgrade.BATTERY_PLAYBACK && ((t = { "SM-S926": window.flagship.upgrade.commonData.playbackData["SM-S926"].snapdragon, "SM-S921": window.flagship.upgrade.commonData.playbackData["SM-S921"].snapdragon })["SM-S926"].typeC = {}, t["SM-S926"].typeC.video = {}, t["SM-S926"].typeC.audio = {}, t["SM-S926"].typeC.video["SM-S901"] = 13, t["SM-S926"].typeC.audio["SM-S901"] = 38, t["SM-S921"].typeC = {}, t["SM-S921"].typeC.video = {}, t["SM-S921"].typeC.audio = {}, t["SM-S921"].typeC.video["SM-S901"] = 11, t["SM-S921"].typeC.audio["SM-S901"] = 24, flagship.upgrade.commonData.playbackData["SM-S928"].typeC.video["SM-G991"] = 10, flagship.upgrade.commonData.playbackData["SM-S928"].typeC.video["SM-S908"] = 10, flagship.upgrade.commonData.playbackData["SM-S928"].typeC.video["SM-S906"] = 9) }, 800) }, setBatterySection: function () { setTimeout(() => { var t, e, i, s = document.documentElement.getAttribute("data-view-info").split(",")[1].replaceAll(" ", ""), n = "FLtoSU" == s || "FOtoSU" == s || "StoSU" == s || "FtoSP" == s || "StoSP" == s || "FtoS" == s || "StoS" == s; "FLtoFl6" != s && "FOtoFl6" != s && "FLtoFO6" != s && "FOtoFO6" != s || (s = r.performanceBattery.querySelectorAll(".upgrade-performance-battery__desc")[0], t = r.performanceBattery.querySelectorAll(".upgrade-performance-battery__desc")[1], e = r.performanceBattery.querySelectorAll(".upgrade-performance-battery__desc")[0].querySelector(".num").innerText, i = r.performanceBattery.querySelectorAll(".upgrade-performance-battery__desc")[1].querySelector(".num").innerText, -1 < e.indexOf(null) ? s.style.display = "none" : s.style.display = "", -1 < i.indexOf(null) ? t.style.display = "none" : t.style.display = "", r.battery.style.display = "none", r.battery.classList.remove("is-section-show"), -1 < e.indexOf(null) && -1 < i.indexOf(null) ? (r.performanceBattery.style.display = "none", r.performanceBattery.classList.remove("is-section-show"), o.hideDisclaimer(r.performanceBattery)) : (r.performanceBattery.style.display = "", r.performanceBattery.classList.add("is-section-show"))), n && (s = r.battery.querySelectorAll(".upgrade-performance-battery__desc")[0], t = r.battery.querySelectorAll(".upgrade-performance-battery__desc")[1], e = r.battery.querySelectorAll(".upgrade-performance-battery__desc")[0].querySelector(".num").innerText, i = r.battery.querySelectorAll(".upgrade-performance-battery__desc")[1].querySelector(".num").innerText, -1 < e.indexOf(null) ? s.style.display = "none" : s.style.display = "", -1 < i.indexOf(null) ? t.style.display = "none" : t.style.display = "", r.performanceBattery.style.display = "none", r.performanceBattery.classList.remove("is-section-show"), -1 < e.indexOf(null) && -1 < i.indexOf(null) ? (r.battery.style.display = "none", r.battery.classList.remove("is-section-show"), o.hideDisclaimer(r.battery)) : (r.battery.style.display = "", r.battery.classList.add("is-section-show"))) }, 800) }, hideDisclaimer: function (t) { r.disclaimerList = document.querySelectorAll("li.common-bottom-disclaimer__list-item"); var e = t.querySelectorAll(".click_sup"); for (let t = 0; t < e.length; t++)e[t].remove(); for (let t = 0; t < r.disclaimerList.length; t++) { var i = r.disclaimerList[t], s = i.getAttribute("data-sup"); "none" == i.style.display || r.section.querySelector(`[data-sup-tag=${s}]`) || (i.style.display = "none") } }, setRTLProductName: function () { if (document.documentElement.classList.contains("rtl")) { var i = document.querySelector('[data-modelcode="SM-S906"]'), s = document.querySelector('[data-modelcode="SM-S926"]'); let t = document.querySelectorAll(".upgrade-selector__item")[0].querySelectorAll(".js-dropdown-list")[i.index].querySelector("button"), e = document.querySelectorAll(".upgrade-selector__item")[1].querySelectorAll(".js-dropdown-list")[s.index].querySelector("button"); i.innerHTML = "Galaxy S22+&lrm;", s.innerHTML = "Galaxy S24+&lrm;", setTimeout(() => { t.innerHTML = "Galaxy S22+&lrm;", e.innerHTML = "Galaxy S24+&lrm;" }, 600) } } }, e = { landingCta: function () { r.compareLandingCta && (r.compareLandingCta.setAttribute("data-omni-type", "microsite_contentinter"), r.compareLandingCta.setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:link-page:compare"), r.compareLandingCta.setAttribute("an-ca", "content click"), r.compareLandingCta.setAttribute("an-ac", "feature"), r.compareLandingCta.setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:link-page:compare")) }, dropdownDefault: function () { r.oldDropdownCta && (r.oldDropdownCta.setAttribute("data-omni-type", "microsite_pcontentinter"), r.oldDropdownCta.setAttribute("an-ca", "indicator"), r.oldDropdownCta.setAttribute("an-ac", "accordion"), r.oldDropdownCta.setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:pre-prod:acdn-open:pre"), r.oldDropdownCta.setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:pre-prod:acdn-open:pre")), r.newDropdownCta && (r.newDropdownCta.setAttribute("data-omni-type", "microsite_pcontentinter"), r.newDropdownCta.setAttribute("an-ca", "indicator"), r.newDropdownCta.setAttribute("an-ac", "accordion"), r.newDropdownCta.setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:next-prod:acdn-open:next"), r.newDropdownCta.setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:next-prod:acdn-open:next")) }, dropdownClick: function (t, e) { if ("old" != t || e) { if (!r.oldDropdownCta) return; r.oldDropdownCta.setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:pre-prod:acdn-close:pre"), r.oldDropdownCta.setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:pre-prod:acdn-close:pre") } else { if (!r.oldDropdownCta) return; r.oldDropdownCta.setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:pre-prod:acdn-open:pre"), r.oldDropdownCta.setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:pre-prod:acdn-open:pre") } "new" != t || e ? r.newDropdownCta && (r.newDropdownCta.setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:next-prod:acdn-close:next"), r.newDropdownCta.setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:next-prod:acdn-close:next")) : r.newDropdownCta && (r.newDropdownCta.setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:next-prod:acdn-open:next"), r.newDropdownCta.setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:next-prod:acdn-open:next")) }, dropdownList: function () { function t(e) { for (let t = 0; t < e.length; t++) { var i = e[t].innerText.replaceAll(" ", "-").replace("+", "-plus").toLowerCase(); e[t].setAttribute("data-omni-type", "microsite_contentinter"), e[t].setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:product:slct-item:" + i), e[t].setAttribute("an-ca", "content click"), e[t].setAttribute("an-ac", "feature"), e[t].setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:product:slct-item:" + i) } } r.oldDropdownList && t(r.oldDropdownList), r.oldDropdownList && t(r.oldSelectOptions), r.oldDropdownList && t(r.newDropdownList), r.oldDropdownList && t(r.newSelectOptions) }, shopCta: function () { setTimeout(() => { let i = r.newSelectOptions[r.newSelectBox.selectedIndex].innerText.replaceAll(" ", "-").replace("+", "-plus").toLowerCase(), s = r.newSelectOptions[r.newSelectBox.selectedIndex].getAttribute("data-modelcode").toLowerCase(); function t(t, e) { t.setAttribute("data-omni-type", "microsite_buyAction"), t.setAttribute("data-omni", `${flagship.upgrade.pageName}:upgrade:product^${i}:conv-pdt:${e}|;` + s), t.setAttribute("an-ca", "buy cta"), t.setAttribute("an-ac", "" + e), t.setAttribute("an-la", `${flagship.upgrade.pageName}:upgrade:product^${i}:conv-pdt:` + e) } r.learnmoreCta && (r.learnmoreCta.setAttribute("data-omni-type", "microsite_contentinter"), r.learnmoreCta.setAttribute("data-omni", flagship.upgrade.pageName + ":upgrade:product^link-page:" + i), r.learnmoreCta.setAttribute("an-ca", "content click"), r.learnmoreCta.setAttribute("an-ac", "feature"), r.learnmoreCta.setAttribute("an-la", flagship.upgrade.pageName + ":upgrade:product^link-page:" + i)), r.buyingOrder && t(r.buyingOrder, "pre-order-now"), r.buyingBuy && t(r.buyingBuy, "buy-now"), r.buyingReserve && t(r.buyingReserve, "reserve-now"), r.buyingWheretobuy && t(r.buyingWheretobuy, "where-to-buy") }, 600) }, arrowCta: function () { function t(t, e, i) { t.setAttribute("data-omni-type", "microsite_pcontentinter"), t.setAttribute("data-omni", flagship.upgrade.pageName + `:upgrade:${e}:arrow:` + i), t.setAttribute("an-ca", "indication"), t.setAttribute("an-ac", "carousel"), t.setAttribute("an-la", flagship.upgrade.pageName + `:upgrade:${e}:arrow:` + i) } r.designPrevArrow && t(r.designPrevArrow, "design", "previous"), r.designPrevArrow && t(r.designNextArrow, "design", "next"), r.aiPrevArrow && t(r.aiPrevArrow, "ai", "previous"), r.aiPrevArrow && t(r.aiNextArrow, "ai", "next"), r.durabilityPrevArrow && t(r.durabilityPrevArrow, "durability", "previous"), r.durabilityPrevArrow && t(r.durabilityNextArrow, "durability", "next") }, videoCta: function () { setTimeout(() => { let s = r.newSelectOptions[r.newSelectBox.selectedIndex].innerText.replaceAll(" ", "-").replace("+", "-plus").toLowerCase(); function t(t, e) { var i = t.video.paused ? "play" : "pause"; t.setAttribute("data-omni-type", "microsite_contentinter"), t.setAttribute("data-omni", `${flagship.upgrade.pageName}:upgrade:ai:movi-${i}:${s}-` + e), t.setAttribute("an-ca", "content click"), t.setAttribute("an-ac", "feature"), t.setAttribute("an-la", `${flagship.upgrade.pageName}:upgrade:ai:movi-${i}:${s}-` + e) } r.noteAssist && t(r.noteAssist, "note-assist"), r.suggestedReplies && t(r.suggestedReplies, "suggested-replies"), r.Interpreter && t(r.Interpreter, "interpreter"), r.flexCam && t(r.flexCam, "flexcam"), r.circleToSearch && t(r.circleToSearch, "circle-to-search"), r.photoAssist && t(r.photoAssist, "photo-assist"), r.chatAssist && t(r.chatAssist, "chat-assist"), r.liveTranslate && t(r.liveTranslate, "live-translate") }, 600) } }; return { init: function () { r.section = document.querySelector("#upgrade"), r.section && (r.compareLandingCta = r.section.querySelector(".upgrade-link-area-cta"), r.learnmoreCta = r.section.querySelector(".js-learnmore-cta"), r.buyingOrder = r.section.querySelector(".shop-status__pre-order"), r.buyingBuy = r.section.querySelector(".shop-status__buy-now"), r.buyingReserve = r.section.querySelector(".shop-status__pre-reserve"), r.buyingWheretobuy = r.section.querySelector(".shop-status__wheretobuy"), r.oldDropdownArea = r.section.querySelectorAll(".upgrade-selector__item")[0], r.oldDropdownCta = r.section.querySelector(".js-old-device-dropdown-cta"), r.newDropdownArea = r.section.querySelectorAll(".upgrade-selector__item")[1], r.newDropdownCta = r.section.querySelector(".js-new-device-dropdown-cta"), r.oldDropdownWrap = r.section.querySelector(".js-old-device-dropdown"), r.oldDropdownList = r.oldDropdownWrap.querySelectorAll("button"), r.newDropdownWrap = r.section.querySelector(".js-new-device-dropdown"), r.newDropdownList = r.newDropdownWrap.querySelectorAll("button"), r.oldSelectBox = r.section.querySelector(".js-old-device"), r.oldSelectOptions = r.oldSelectBox.querySelectorAll("option"), r.newSelectBox = r.section.querySelector(".js-new-device"), r.newSelectOptions = r.newSelectBox.querySelectorAll("option"), r.designPrevArrow = r.section.querySelector(".js-upgrade-design .swiper-button-prev"), r.designNextArrow = r.section.querySelector(".js-upgrade-design .swiper-button-next"), r.aiPrevArrow = r.section.querySelector(".js-upgrade-ai .swiper-button-prev"), r.aiNextArrow = r.section.querySelector(".js-upgrade-ai .swiper-button-next"), r.durabilityPrevArrow = r.section.querySelector(".js-upgrade-durability .swiper-button-prev"), r.durabilityNextArrow = r.section.querySelector(".js-upgrade-durability .swiper-button-next"), r.noteAssist = r.section.querySelector(".js-ai-noteAssist .js-video-control"), r.suggestedReplies = r.section.querySelector(".js-ai-suggestedReplies .js-video-control"), r.Interpreter = r.section.querySelector(".js-ai-Interpreter .js-video-control"), r.flexCam = r.section.querySelector(".js-ai-flexCam .js-video-control"), r.circleToSearch = r.section.querySelector(".js-ai-circleToSearch .js-video-control"), r.photoAssist = r.section.querySelector(".js-ai-photoAssist .js-video-control"), r.chatAssist = r.section.querySelector(".js-ai-chatAssist .js-video-control"), r.liveTranslate = r.section.querySelector(".js-ai-liveTranslate .js-video-control"), r.performanceBattery = r.section.querySelector(".upgrade-performance-battery"), r.battery = r.section.querySelector(".js-upgrade-battery"), e.landingCta(), e.dropdownDefault(), e.dropdownList(), e.shopCta(), e.arrowCta(), e.videoCta(), t.dropdownClick(), t.shopCta(), t.videoCta(), t.videPlayback(), o.setVisibleData(), o.setRTLProductName(), o.setPlaybackData()) } } }(), setTimeout(() => { window.flagship.common.upgrade.init() }, 1e3), window.flagship.features = window.flagship.features || {}, window.flagship.features.ytPopup = function () { let n = {}; const e = window.flagship.common.utils; const i = { setPopup: function () { for (let t = 0; t < n.openCtas.length; t++) { if (!n.openCtas[t].classList.contains("js-used")) return; e.layerPopup({ layerPopup: n.layerPopup, layerPopupClass: ".js-youtube-popup", openerEvent: { element: n.openCtas[t] }, closeCtas: [n.closeCta], dimmed: n.dimmed, moveTarget: document.documentElement, contents: n.contents, show: { start: function () { n.layerPopup.classList.add("is-yt-open") }, end: function (t) { i.setYoutube(t) } }, hide: { start: function () { n.layerPopup.classList.remove("is-yt-open") }, end: function (t) { i.clearYoutube() } } }) } }, setYoutube: function (t) { var t = t.openerCta, e = "https://www.youtube.com/embed/" + t.getAttribute("data-youtube-id") + "?wmode=opaque&amp;rel=0&amp;enablejsapi=1&amp;version=3&amp;autoplay=1", i = t.getAttribute("data-youtube-title"), s = t.querySelector(".blind").innerHTML; n.ytIframe.setAttribute("src", e), n.ytIframe.setAttribute("title", i), n.ytDesc.innerHTML = s, n.OpenerTarget = t }, clearYoutube: function () { n.ytIframe.removeAttribute("src"), n.ytDesc.innerHTML = "" } }; return { init: function () { n.layerPopup = document.querySelector(".js-youtube-popup"), n.layerPopup && (n.contents = document.querySelector("#contents"), n.openCtas = document.querySelectorAll(".js-youtube-popup-open"), n.closeCta = document.querySelector(".js-youtube-popup-close"), n.ytIframe = n.layerPopup.querySelector("iframe"), n.ytDesc = n.layerPopup.querySelector(".js-youtube-desc"), n.dimmed = n.layerPopup.querySelector(".js-dimmed"), i.setPopup()) } } }(), flagship.features.ytPopup.init(), window.flagship.features = window.flagship.features || {}, window.flagship.features.tagging = function () { let n = {}; const t = { interactive: { tooltip: function () { if (n.tooltip && 0 < n.tooltip.length) for (let t = 0; t < n.tooltip.length; t++)"microsite_contentinter" != n.tooltip[t].getAttribute("data-omni-type") || n.tooltip[t].classList.contains("js-not-common") || n.tooltip[t].setAttribute("data-omni-type", "microsite_pcontentinter") }, introController: function () { if (n.introVideoController && 0 < n.introVideoController.length) for (let t = 0; t < n.introVideoController.length; t++) { var e = n.introVideoController[t].getAttribute("data-omni"), i = n.introVideoController[t].getAttribute("an-la"); 0 < e.indexOf("teasing") && !n.introVideoController[t].classList.contains("js-not-common") && n.introVideoController[t].setAttribute("data-omni", e.replace(":teasing", "")), 0 < i.indexOf("teasing") && !n.introVideoController[t].classList.contains("js-not-common") && n.introVideoController[t].setAttribute("an-la", i.replace(":teasing", "")) } var t, s; n.introVideoMuteCta && (t = n.introVideoMuteCta.getAttribute("data-omni"), s = n.introVideoMuteCta.getAttribute("an-la"), 0 < t.indexOf("teasing") && !n.introVideoMuteCta.classList.contains("js-not-common") && n.introVideoMuteCta.setAttribute("data-omni", t.replace(":teasing", "")), 0 < s.indexOf("teasing")) && !n.introVideoMuteCta.classList.contains("js-not-common") && n.introVideoMuteCta.setAttribute("an-la", s.replace(":teasing", "")) } } }; return { init: function () { n.features = document.querySelector(".flagship-contents.features"), n.features && (n.tooltip = document.querySelectorAll(".js-tutorial-tooltip-cta"), n.introVideoController = document.querySelectorAll(".common-interactive__intro-video .js-video-control"), n.introVideoMuteCta = document.querySelector(".common-interactive__intro-video .js-mute-cta"), t.interactive.tooltip(), t.interactive.introController()) } } }(), flagship.features.tagging.init(), window.flagship.accessories = window.flagship.accessories || {}, window.flagship.accessories.acc = function () { let a = {}; const t = function () { for (let t = 0; t < a.productContents.length; t++) { var e, i, s, n = a.productContents[t].cta.getAttribute("data-omni").split(":")[4], r = a.productContents[t].cta.getAttribute("an-la").split(":")[4], o = a.productContents[t].activeColorchip.getAttribute("data-color"); a.productContents[t].activeOption && -1 < a.productContents[t].cta.getAttribute("data-omni").indexOf("watch7") && (e = a.productContents[t].cta.getAttribute("data-omni").split(":")[2].split("^")[1], i = a.productContents[t].cta.getAttribute("an-la").split(":")[2].split("^")[1], e != (s = "galaxy-watch7-" + a.productContents[t].activeOption.getAttribute("data-omni").split(":").reverse()[0]) && a.productContents[t].cta.setAttribute("data-omni", a.productContents[t].cta.getAttribute("data-omni").replace(e, s)), i != s) && a.productContents[t].cta.setAttribute("an-la", a.productContents[t].cta.getAttribute("an-la").replace(i, s)), n != o && a.productContents[t].cta.setAttribute("data-omni", a.productContents[t].cta.getAttribute("data-omni").replace(n, o)), r != o && a.productContents[t].cta.setAttribute("an-la", a.productContents[t].cta.getAttribute("an-la").replace(r, o)) } }; return { init: function () { if (a.acc = document.querySelector(".flagship-contents.accessories"), a.acc) { a.productContents = document.querySelectorAll(".accessories-product__item"); for (let e = 0; e < a.productContents.length; e++) { let t = a.productContents[e].querySelector(".accessories-options"); if (!!t) { a.productContents[e].activeColorchip = a.productContents[e].querySelector(".swiper-pagination-wrap.is-active .accessories__colorchip.is-active"); a.productContents[e].activeOption = a.productContents[e].querySelector(".accessories-product__option-item.is-active .accessories-product__option-btn") } else a.productContents[e].activeColorchip = a.productContents[e].querySelector(".accessories__colorchip.is-active"); a.productContents[e].cta = a.productContents[e].querySelector(".accessories-product__cta>a") } t() } } } }(), flagship.accessories.acc.init(), window.flagship.features.commonViewer = function () { const t = window.flagship.common.utils; let e = {}; const i = { click: function () { for (let t = 0; t < e.angleCta.length; t++)e.angleCta[t].addEventListener("click", s.setAngle) } }, s = { setAngle: function () { var t = this.getAttribute("data-omni").split("angle:")[1]; "front" == t ? e.viewerIframe.contentWindow.postMessage("V3D.setPosition.angleX: 0,angleY: 0", "*") : "back" == t ? e.viewerIframe.contentWindow.postMessage("V3D.setPosition.angleX: 0,angleY: 3.141592653589793", "*") : "top" == t ? e.viewerIframe.contentWindow.postMessage("V3D.setPosition.angleX: 1.5707963267948966,angleY: 3.141592653589793", "*") : "bottom" == t ? e.viewerIframe.contentWindow.postMessage("V3D.setPosition.angleX: -1.5707963267948966,angleY: 0", "*") : "left" == t ? e.viewerIframe.contentWindow.postMessage("V3D.setPosition.angleX: 0,angleY: 1.5707963267948966", "*") : "right" == t && e.viewerIframe.contentWindow.postMessage("V3D.setPosition.angleX: 0,angleY: -1.5707963267948966", "*") } }; return { init: function () { t.isLowNetwork() ? e.currentWrap = document.querySelector(".js-viewer") : e.currentWrap = document.querySelector(".js-colors"), e.currentWrap && (e.viewerIframe = e.currentWrap.querySelector("iframe"), e.angleCta = e.currentWrap.querySelectorAll(".js-angle-cta"), i.click()) } } }(), flagship.features.commonViewer.init(), window.flagship.features = window.flagship.features || {}, window.flagship.features.faqCta = function () { let e = {}; const i = { clickCta: function () { let t = this.getAttribute("href"), s = document.querySelector("" + t); setTimeout(function () { var t = s.querySelector(".js-intro-logo-wrap"), e = s.querySelector(".js-overview-text-wrap"), i = t.querySelector("video"); t.classList.add("is-visible"), t.style.opacity = 1, t.style.transform = "matrix(1, 0, 0, 1, 0, 0)", i.currentTime = 0, e.style.opacity = 0 }, 50) } }, t = { click: function () { for (let t = 0; t < e.faqCtas.length; t++)"#galaxy-ai" == e.faqCtas[t].getAttribute("href") && e.faqCtas[t].addEventListener("click", i.clickCta) } }; return { init: function () { e.faq = document.querySelector(".js-faq"), e.faq && (e.faqCtas = document.querySelectorAll(".js-featue-cta"), t.click()) } } }(), flagship.features.faqCta.init(), window.flagship.features = window.flagship.features || {}, window.flagship.features.fixedContent = function () { const t = window.flagship.common.utils; let e = {}, i = document.documentElement.classList.contains("android"); const s = { ai: function () { e.aiFixedInner = document.querySelector(".features-ai-overview .js-fixed-inner") }, formfactor: function () { e.formfactorFixedInner = document.querySelector(".features-form-factor .js-fixed-inner") } }, n = { ai: function () { r.setAiFixedHeight() }, formfactor: function () { r.setFormfactorFixedHeight() } }, r = { setAiFixedHeight: function () { document.documentElement.classList.contains("is-ai-broken-fixed") && document.documentElement.classList.contains("low_network") || null == e.aiFixedTrack.scene && (e.aiFixedTrack.scene = SCROLLER({ trackElement: e.aiFixedTrack, fixedElement: e.aiFixedInner, useFixed: !0, useFixedStlye: !1, useStrictMode: !1, trackHeight: 3, resize: !t.detector.isTouchDevice })) }, setFormfactorFixedHeight: function () { document.documentElement.classList.contains("is-formfactor-broken-fixed") && document.documentElement.classList.contains("low_network") || e.formfactorFixedTrack && null == e.formfactorFixedTrack.scene && (e.formfactorFixedTrack.scene = SCROLLER({ trackElement: e.formfactorFixedTrack, fixedElement: e.formfactorFixedInner, useFixed: !0, useFixedStyle: !1, trackHeight: i ? 5 : 7, resize: !t.detector.isTouchDevice })) } }; return { init: function () { e.aiFixedTrack = document.querySelector(".features-ai-overview .js-fixed-track"), e.formfactorFixedTrack = document.querySelector(".features-form-factor .js-fixed-track"), e.aiFixedTrack && !e.aiFixedTrack.classList.contains("js-not-common") && (s.ai(), n.ai()), e.formfactorFixedTrack && !e.formfactorFixedTrack.classList.contains("js-not-common") && (s.formfactor(), n.formfactor()) } } }(), flagship.features.fixedContent.init(), window.flagship = window.flagship || {}, window.flagship.common = window.flagship.common || {}, flagship.common.contrast = function () { let i = {}; const s = window.flagship.common.utils; function e() { var t = s.getCookie(i.cookieName), e = document.createElement("span"); e.classList.add("blind"), LOCAL_VARI && "object" == typeof LOCAL_VARI && (e.innerText = LOCAL_VARI.selected), t && t.length && "1" == t ? (document.documentElement.classList.add("color_yb"), i.contrastBtn.querySelector("span") || (i.contrastBtn.appendChild(e), i.defaultBtn.querySelector("span") && i.defaultBtn.querySelector("span").remove())) : (document.documentElement.classList.remove("color_yb"), i.defaultBtn.querySelector("span") || (i.defaultBtn.appendChild(e), i.contrastBtn.querySelector("span") && i.contrastBtn.querySelector("span").remove())) } const t = function () { e() }, n = function (t) { t.preventDefault(), s.setCookie(i.cookieName, "0", 1), e() }, r = function (t) { t.preventDefault(), s.setCookie(i.cookieName, "1", 1), e() }; return { init: function () { if (i.section = document.querySelector(".dotcom-footer-module__area .high-contrast") || document.querySelector(".high-contrast"), i.section) { if (i.defaultBtn = i.section.querySelector(".high-contrast__btn--default"), i.defaultBtnTitle = i.defaultBtn.getAttribute("title").trim(), i.contrastBtn = i.section.querySelector(".high-contrast__btn--contrast"), i.contrastBtnTitle = i.contrastBtn.getAttribute("title").trim(), i.cookieName = "highContrastMode", window.addEventListener("load", t), !!i.defaultBtn) i.defaultBtn.addEventListener("click", n); if (!!i.contrastBtn) i.contrastBtn.addEventListener("click", r) } } } }(), flagship.common.contrast.init(), window.flagship = window.flagship || {}, window.flagship.common = window.flagship.common || {}, flagship.common.networkspeed = function () { let s = {}, n = {}; const r = window.flagship.common.utils; const t = function (t) { t.preventDefault(), t.stopPropagation(), s.section.classList.contains("opened") ? i() : (s.section.classList.add("opened"), this.setAttribute("aria-expanded", !0), document.addEventListener("click", o)) }, e = function (t) { var e = this.getAttribute("data-speed"); if (n.speedText = " " + this.getAttribute("data-label"), "click" === t.type) { r.setCookie(n.cookieName, e, 1); try { window.scrollTo(0, 0) } catch (t) { } location.reload() } else if ("keydown" === t.type) { var i = s.networkOptions.indexOf(this); if (38 == t.keyCode) return (0 == i ? s.networkOptions[s.networkOptions.length - 1] : s.networkOptions[i - 1]).focus(), !1; if (40 == t.keyCode) return (i == s.networkOptions.length - 1 ? s.networkOptions[0] : s.networkOptions[i + 1]).focus(), !1 } r.setCookie(n.cookieName, e, 1), s.networkBtn.innerText = s.networkText + n.speedText }, i = function () { s.section.classList.remove("opened"), s.networkBtn.setAttribute("aria-expanded", !1), document.removeEventListener("click", o) }, o = function (t) { t.target.matches("#bandwidth-control a") || i() }; return { init: function () { if (s.section = document.querySelector(".dotcom-footer-module__area .select-network") || document.querySelector(".select-network"), s.section) { n.cookieName = "___GALAXY_SPEED", n.speedValue = r.getCookie(n.cookieName), performanceStatus = window.performance.getEntriesByType("resource"); for (let t = 0; t < performanceStatus.length; t++)if (performanceStatus[t].initiatorType == "img") { n.speed = performanceStatus[t].duration > 2500 ? "L" : "H"; if (n.speedValue == null) r.setCookie(n.cookieName, n.speed, 1); break } if (document.documentElement.classList.contains("huawei")) n.speed = "L"; if (document.documentElement.classList.contains("ucbrowser")) n.speed = "L"; if (n.speedText = "", s.statusText = "", s.networkBtn = s.section.querySelector(".select-network__btn"), s.networkText = s.networkBtn.innerText + " ", s.networkOptions = Array.prototype.slice.call(s.section.querySelectorAll(".select-network__option")), document.documentElement.classList.add("s" + n.speed), n.speedValue == "H") s.networkBtn.innerText = s.networkText + s.networkOptions[0].getAttribute("data-label"); else s.networkBtn.innerText = s.networkText + s.networkOptions[1].getAttribute("data-label"); s.networkBtn.addEventListener("click", t), s.networkOptions[0].addEventListener("click", e), s.networkOptions[1].addEventListener("click", e), s.networkOptions[0].addEventListener("keydown", e), s.networkOptions[1].addEventListener("keydown", e) } } } }(), flagship.common.networkspeed.init(), window.flagship = window.flagship || {}, window.flagship.common = window.flagship.common || {}, flagship.common.shopStatus = function () { let t = {}; const i = function (e, i) { for (let t = 0; t < i.length; t++)e.classList.contains(i[t]) && e.classList.remove(i[t]) }; return { init: function () { t.shopStatus = Array.prototype.slice.call(document.querySelectorAll(".shop-status")), 0 < t.shopStatus.length && t.shopStatus.forEach(function (t) { if (i(t, ["is-reserve", "is-order", "is-buy", "is-wheretobuy"]), "undefined" != typeof COUNTRY_SHOP_STATUS && "" !== COUNTRY_SHOP_STATUS && "undefined" != typeof COUNTRY_SHOP_URL && "" !== COUNTRY_SHOP_URL) { "reserve" == COUNTRY_SHOP_STATUS ? t.classList.add("is-reserve") : "order" == COUNTRY_SHOP_STATUS ? t.classList.add("is-order") : "buy" == COUNTRY_SHOP_STATUS ? t.classList.add("is-buy") : "where" == COUNTRY_SHOP_STATUS && t.classList.add("is-wheretobuy"); var e = t.querySelectorAll("a"); for (let t = 0; t < e.length; t++)e[t].setAttribute("href", COUNTRY_SHOP_URL) } else { t.style.display = "none"; t = t.closest(".common-banner__item"); t && (t.style.display = "none") } }) } } }(), flagship.common.shopStatus.init(); </script> <script> (function () { (function () { const resize = window.flagship.common.resize, utils = window.flagship.common.utils; let els = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.js-faq'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.faqList = els.section.querySelector('.js-faq-list'); }; const bindEvents = function () { resize.add(eventList.resize); eventList.setAccordion(); }; const eventList = { resize: function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { eventList.responsive(); prevDevice = currDevice; } }, responsive: function () { let isOpenedItems = els.faqList.querySelectorAll('.js-faq-item.is-open'); if (isOpenedItems.length > 0) { for (let i = 0; i < isOpenedItems.length; i++) { let isOpenedItemContent = isOpenedItems[i].querySelector('.js-faq-answer'); let clientHeight = isOpenedItemContent.children[0].clientHeight; isOpenedItemContent.style.height = `${clientHeight}px`; } } }, setAccordion: function () { els.accordion = new window.flagship.common.accordion({ wrap: els.faqList, classList: { item: 'js-faq-item', button: 'js-faq-open', contents: 'js-faq-answer', activeClass: 'is-open' }, open: { start: function (target) { let targetInnerCta = target.querySelector('.js-featue-cta'); if (targetInnerCta) targetInnerCta.addEventListener('click', accessibility.moveFocus); } } }); els.accordion.init(); }, }; const accessibility = { moveFocus: function (e) { if (this.getAttribute('href').indexOf('#') > -1) { e.preventDefault(); let sectionId = this.getAttribute('href'), section = document.querySelector(`${sectionId}`), sectionTop = section.getBoundingClientRect().top, movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(), clickable = section.querySelectorAll('a, button'), title = section.querySelector('h2') || section.querySelector('h3'); if (!!title) { let _focusOut = function () { title.removeAttribute('tabindex'); title.removeEventListener('focusout', _focusOut); }; title.addEventListener('focusout', _focusOut); title.setAttribute('tabindex', 0); title.focus(); } else { clickable[0].focus(); } window.scrollTo(0, movePosition); } } }; init() })(); })(); </script> </section> <section class="disclaimer section aem-GridColumn aem-GridColumn--default--12"> <div wcmmode='disabled'> <div class="container container-wrapper multi-column-container image_background"> <div class="multi-column-container__background"> <picture> <source data-srcset="//image-us.samsung.com/SamsungUS/home/global-uvp/111318/uvp_rtb_dk_1440.jpg?$default-jpg$" media="(min-width: 769px)"/> <img class="lazyload" data-srcset="//image-us.samsung.com/SamsungUS/home/global-uvp/120318/MB-UVP-120318.jpg?$default-jpg$"/> </picture> </div> <div class="multi-column-theme desktop_layout-center mobile_layout-center"> <div class="col-lg-4 col-sm-4 column-wrapper"> <h4>Trade in &amp; trade up</h4> <div class="column-wrapper__desc uvp">Trade in your old devices and receive credit on new purchases.<sup>θ</sup></div> <a tabindex="0" class="column-wrapper__link" title="LEARN MORE" href="https://www.samsung.com/us/trade-in/" target="_blank" data-link_cat="LEARN MORE" data-link_id="Trade in &amp; trade up_LEARN MORE" data-link_meta="link_name:LEARN MORE" data-link_position="Trade in &amp; trade up">LEARN MORE</a> </div> <div class="col-lg-4 col-sm-4 column-wrapper"> <h4>Get the Shop app</h4> <div class="column-wrapper__desc uvp">Access exclusive savings on the Samsung Shop app.</div> <a tabindex="0" class="column-wrapper__link" title="LEARN MORE" href="https://www.samsung.com/us/apps/shop-samsung-app/" target="_blank" data-link_cat="LEARN MORE" data-link_id="Get the Shop app_LEARN MORE" data-link_meta="link_name:LEARN MORE" data-link_position="Get the Shop app">LEARN MORE</a> </div> <div class="col-lg-4 col-sm-4 column-wrapper"> <h4>Financing that fits your life</h4> <div class="column-wrapper__desc uvp">$0 down and 24- to 36-month plans available for most items.<sup>⊕σ</sup></div> <a tabindex="0" class="column-wrapper__link" title="LEARN MORE" href="https://www.samsung.com/us/financing/" target="_blank" data-link_cat="LEARN MORE" data-link_id="Financing that fits your life_LEARN MORE" data-link_meta="link_name:LEARN MORE" data-link_position="Financing that fits your life">LEARN MORE</a> </div> </div> </div></div> <div class="grid_24 disclaimer__inner container "> <br/> <div class="disclaimer__row"> <div class="disclaimer__show"><b>Price, Promotion, Processing: </b>Pricing, delivery date and other errors may be withdrawn or revised and/or your order may be cancelled at any time, without prior notice, before we have both (a) shipped or provided access to your product or service, and (b) received your payment for the product or service. <a class="disclaimer__show__link">Show More</a></div> <div class="disclaimer__hide"><b>Price, Promotion, Processing:</b> Pricing, delivery date and other errors may be withdrawn or revised and/or your order may be cancelled at any time, without prior notice, before we have both (a) shipped or provided access to your product or service, and (b) received your payment for the product or service. All sales on Samsung.com are subject to the full <a href="https://shop.us.samsung.com/store/defaults/en_US/DisplayDRTermsAndConditionsPage/eCommerceProvider.DR+globalTech+Inc.?_ga=2.22254715.1733333330.1497539010-1556400626.1492611017" target="_blank"> Terms of Sale</a> . Samsung is not responsible for any errors, omissions or misdirected or lost orders, or orders which may be delayed. Samsung reserves the right to modify pricing and modify or cancel promotions at any time, without prior notice.<a class="disclaimer__hide__link">Show Less</a></div> <div></div> </div> <div class="disclaimer__row"> <div class="disclaimer__show"><b><sup>†</sup>No Interest if Paid in Full within 12, 18 or 24 Months:</b> Available on purchases of select products charged to a Samsung Financing account. Minimum purchase: $50. <a class="disclaimer__show__link">Show More</a></div> <div class="disclaimer__hide"><b><sup>†</sup>No Interest if Paid in Full within 12, 18 or 24 Months:</b> Available on purchases of select products charged to a Samsung Financing account. Minimum purchase: $50. To avoid interest, you must pay the full promo balance before the promo period ends. If you do not, you will be charged interest from the purchase date at the Standard Purchase APR. After the promo period ends, the standard Purchase APR also applies to the remaining balance and the charged interest. Minimum monthly payments required, but minimum payments will not pay off the balance on time. You must make larger payments to avoid the interest. Advertised monthly payment, if any, is greater than your required minimum monthly payment and may exclude taxes, delivery or other charges. Limited Time Offer. Regular account terms apply to non-promo purchases. Standard Purchase APR: 29.99%. Minimum interest charge: $1. Prior purchases excluded. Account must be in good standing. Subject to credit approval. Samsung Financing account issued by TD Bank, N.A.<a class="disclaimer__hide__link">Show Less</a></div> <div></div> </div> <div class="disclaimer__row"> <div class="disclaimer__show"><b><sup>⊕</sup>0% APR for 12, 18, or 24 Months with Equal Payments:</b> Available on purchases of select products charged to a Samsung Financing account.<a class="disclaimer__show__link">Show More</a></div> <div class="disclaimer__hide"><b><sup>⊕</sup>0% APR for 12, 18, or 24 Months with Equal Payments:</b> Available on purchases of select products charged to a Samsung Financing account. Minimum purchase: $50. 0% APR from date of eligible purchase until paid in full. Estimated monthly payment equals the eligible purchase amount multiplied by a repayment factor and rounded up to the nearest penny (repayment factors: .08333 for 12 month, .05556 for 18 month, .04167 for 24 month). Last payment may vary due to rounding. Total amount of payments will not exceed eligible purchase amount. Other transactions and fees affect overall minimum payment amount. Advertised payment amount, if any, is an estimate and may change once taxes, delivery or other charges are added. Limited time offer. Regular account terms apply to non promo purchases. Standard Purchase APR: 29.99%. Minimum interest charge: $1. Prior purchases excluded. Account must be in good standing. Subject to credit approval. Samsung Financing account issued by TD Bank, N.A.<a class="disclaimer__hide__link">Show Less</a></div> <div></div> </div> <div class="disclaimer__row"> <div class="disclaimer__show"><sup>σ</sup>Payment options are offered by Affirm, are subject to an eligibility check, and may not be available in all states. <a class="disclaimer__show__link">Show More</a></div> <div class="disclaimer__hide"><sup>σ</sup>Payment options are offered by Affirm, are subject to an eligibility check, and may not be available in all states. Options depend on your purchase amount, and a down payment may be required. California residents: Affirm Loan Services, LLC is licensed by the Department of Business Oversight. Loans are made or arranged pursuant to California Financing Law license 60DBO-111681<a class="disclaimer__hide__link">Show Less</a></div> <div></div> </div> </div> </section> </div> </div> </div> <!-- <sly data-sly-include="/apps/samsung/components/content/shop/shop-chatbot/shop-chatbot.html"></sly> <sly data-sly-include="/apps/samsung/components/content/samsung-bot/sp-g-samsung-chatbot/sp-g-samsung-chatbot.html"></sly> --> </div> <div id="smg-global-i18n" class="shop-i18n__hide smg-global-i18n" data-i18n-sitecode="en_us" data-i18n-currency-symbol="$" data-i18n-currency-code="USD" data-i18n-add-to-compare="ADD TO COMPARE" data-i18n-added-to-compare="ADDED TO COMPARE" data-i18n-add-to-wishlist="ADD TO WISHLIST" data-i18n-in-your-list="IN YOUR WISHLIST"></div> <footer class="footer" id="footer"> <div class="footer"> <div class="footer-column"> <h2 class="hidden">Footer Navigation</h2> <div class="footer-column__item"> <div class="footer-category"> <h3 class="footer-category__title" id="footer-category-title-0">Shop</h3> <a class="footer-category__anchor" href="javascript:void(0);" role="button" aria-labelledby="footer-category-title-0" aria-expanded="false"> <span class="hidden" data-i18n-open="open" data-i18n-close="Close">open</span> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular"></use> </svg> </a> <div class="footer-category__list-wrap"> <ul class="footer-category__list" role="list"> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/smartphones/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:phones" aria-label="Phones Phones">Phones</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/tablets/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:tablets" aria-label="Tablets Tablets">Tablets</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/watches/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:watches" aria-label="Watches Watches">Watches</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/accessories/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:accessories" aria-label="Accessories Accessories">Accessories</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/mobile-audio/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:mobile audio" aria-label="Mobile Audio Mobile Audio">Mobile Audio</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/tvs/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:tv and home theater" aria-label="TV &amp; Home Theater TV &amp; Home Theater">TV &amp; Home Theater</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/computing/laptops/all-laptops/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:computing" aria-label="Computing Computing">Computing</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/monitors/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:monitors" aria-label="Monitors Monitors">Monitors</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/memory-storage/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:memory and storage" aria-label="Memory &amp; Storage Memory &amp; Storage">Memory &amp; Storage</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/home-appliances/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:home appliances" aria-label="Home Appliances Home Appliances">Home Appliances</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/smartthings/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:smart home" aria-label="Smart Home Smart Home">Smart Home</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/samsung-experience-store/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:samsung experience store" aria-label="Samsung Experience Store Samsung Experience Store">Samsung Experience Store</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/apps/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:apps and services" aria-label="Apps &amp; Services Apps &amp; Services">Apps &amp; Services</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link new-window" href="//www.samsung.com/us/explore/certified-re-newed-phones/" target="_blank" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:shop certified renewed" aria-label="Shop Certified Re-Newed Shop Certified Re-Newed : Open in a New Window"> Shop Certified Re-Newed <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold"></use> </svg> </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/peaceofmind/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="shop:samsung authorized reseller program" aria-label="Samsung Authorized Reseller Program Samsung Authorized Reseller Program">Samsung Authorized Reseller Program</a> </li> </ul> </div> </div> </div> <div class="footer-column__item"> <div class="footer-category"> <h3 class="footer-category__title" id="footer-category-title-1">Support</h3> <a class="footer-category__anchor" href="javascript:void(0);" role="button" aria-labelledby="footer-category-title-1" aria-expanded="false"> <span class="hidden" data-i18n-open="open" data-i18n-close="Close">open</span> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular"></use> </svg> </a> <div class="footer-category__list-wrap"> <ul class="footer-category__list" role="list"> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" onclick="function openSprChat() {if(window.sprChat) {window.sprChat('enable');window.sprChat('open');}};openSprChat();" href="javascript:void(0);" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:chat with us" aria-label="Chat with Us Chat with Us">Chat with Us</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/support/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:Product Help" aria-label="Product Help Product Help">Product Help</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/support/order-help/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:Order Help" aria-label="Order Help Order Help">Order Help</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/support/account/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:your account" aria-label="Your Account Your Account">Your Account</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/support/register/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:register your product" aria-label="Register Your Product Register Your Product">Register Your Product</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/support/service/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:request a repair" aria-label="Request a Repair Request a Repair">Request a Repair</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/support/contact/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:contact us" aria-label="Contact Us Contact Us">Contact Us</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://us.community.samsung.com/t5/Samsung-Community/ct-p/us" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:samsung community" aria-label="Samsung Community Samsung Community">Samsung Community</a> </li> <!-- <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/accessibility/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:accessibility at samsung" aria-label="Accessibility at Samsung Accessibility at Samsung">Accessibility at Samsung</a> </li>--> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/support/contact/email-the-ceo/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:CEO’s office" aria-label="CEO’s office CEO’s office">CEO’s Office</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://survey3.medallia.com/?web&c=1&lng=en" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:Give Your Opinion" aria-label="Give Your Opinion Give Your Opinion">Give Your Opinion</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/support/range-knob-kit" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:Slide-in Electric Range Recall" aria-label="Slide-in Electric Range Recall">Slide-in Electric Range Recall</a> </li> <!-- <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://pages.samsung.com/us/note7/recall/index.jsp" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:note7 recall" aria-label="Note7 Recall Note7 Recall">Note7 Recall</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link new-window" href="https://survey3.medallia.com/?web&c=1&lng=en" target="_blank" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="support:give feedback" aria-label="Give Feedback Give Feedback : Open in a New Window"> Give Feedback <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc/designs/samsung/global/images/icons/p6-footer.svg#outlink-bold" href="/us/smg/etc/designs/samsung/global/images/icons/p6-footer.svg#outlink-bold"></use> </svg> </a> </li>--> </ul> </div> </div> </div> <div class="footer-column__item"> <div class="footer-category"> <h3 class="footer-category__title" id="footer-category-title-2">Offers</h3> <a class="footer-category__anchor" href="javascript:void(0);" role="button" aria-labelledby="footer-category-title-2" aria-expanded="false"> <span class="hidden" data-i18n-open="open" data-i18n-close="Close">open</span> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular"></use> </svg> </a> <div class="footer-category__list-wrap"> <ul class="footer-category__list" role="list"> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="//www.samsung.com/us/shop/all-deals/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:offers" aria-label="Offers Offers">Offers</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/rewards/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:samsung rewards" aria-label="Samsung Rewards Samsung Rewards">Samsung Rewards</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/referral/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:referral program" aria-label="Referral Program Referral Program">Referral Program</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/shop/discount-program/education/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:student and educator discounts" aria-label="Student &amp; Education Offer Program Student &amp; Education Offer Program">Student &amp; Education Offer Program</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/shop/discount-program/government/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:government discounts" aria-label="Government Offer Program Government Offer Program">Government Offer Program</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/shop/discount-program/military/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:military discounts" aria-label="Military Offer Program Military Offer Program">Military Offer Program</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/shop/discount-program/workplace/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:employee discounts" aria-label="Employee Offer Program Employee Offer Program">Employee Offer Program</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/shop/discount-program/first-responders/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:first responder discounts" aria-label="First Responders Offer Program First Responders Offer Program">First Responders Offer Program</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/shop/all-deals/small-business-deals/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:business discounts" aria-label="Business Offer Program Business Offer Program">Business Offer Program</a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="/us/shop/offer-program/galaxy-campus/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="offers:business discounts" aria-label="Galaxy Campus Store Galaxy Campus Store">Galaxy Campus Store</a> </li> </ul> </div> </div> </div> <div class="footer-column__item"> <div class="footer-category"> <h3 class="footer-category__title" id="footer-category-title-3-2">Sustainability</h3> <a class="footer-category__anchor" href="javascript:void(0);" role="button" aria-labelledby="footer-category-title-3-2" aria-expanded="false"> <span class="hidden">open</span> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular"></use> </svg> </a> <div class="footer-category__list-wrap"> <ul class="footer-category__list" role="list"> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/sustainability/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:overview" aria-label="Overview Overview"> Overview </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/sustainability/environment/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:environment" aria-label="Environment Environment"> Environment </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/about-us/digital-responsibility/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:Digital Responsibility" aria-label="Digital Responsibility Digital Responsibility"> Digital Responsibility </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/sustainability/security-and-privacy/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:Security and Privacy" aria-label="Security and Privacy Security and Privacy"> Security and Privacy </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/accessibility/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:Accessibility" aria-label="Accessibility Accessibility"> Accessibility </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/about-us/labor-and-human-rights/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:Labor & Human Rights" aria-label="Labor & Human Rights Labor & Human Rights"> Labor & Human Rights </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/about-us/diversity-and-inclusion/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:Diversity & Inclusion" aria-label="Diversity & Inclusion Diversity & Inclusion"> Diversity · Equity · Inclusion </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/sustainability/sustainable-supply-chain/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:sustainable supply chain" aria-label="Sustainable Supply Chain Sustainable Supply Chain"> Sustainable Supply Chain </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link new-window" href="http://csr.samsung.com/en/main.do" target="_blank" rel="noreferer, ,noopener" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:Corporate Citizenship" aria-label="Corporate Citizenship"> Corporate Citizenship <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold"></use> </svg> </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link new-window" href="https://www.samsung.com/global/sustainability/main" target="_blank" rel="noreferer, ,noopener" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="sustainability:Corporate Sustainability" aria-label="Corporate Sustainability"> Corporate Sustainability <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold"></use> </svg> </a> </li> </ul> </div> </div> <div class="footer-category"> <h3 class="footer-category__title" id="footer-category-title-3">About Us</h3> <a class="footer-category__anchor" href="javascript:void(0);" role="button" aria-labelledby="footer-category-title-3" aria-expanded="false"> <span class="hidden" data-i18n-open="open" data-i18n-close="Close">open</span> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#open-down-regular"></use> </svg> </a> <div class="footer-category__list-wrap"> <ul class="footer-category__list" role="list"> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/about-us/leadership-and-mission/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="about us:leadership and mission" aria-label="Leadership &amp; Mission Leadership &amp; Mission"> Leadership &amp; Mission </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/about-us/our-business/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="about us:our business" aria-label="Our Business Our Business"> Our Business </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/about-us/brand-identity/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="about us:brand identity" aria-label="Brand Identity Brand Identity"> Brand Identity </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/careers/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="about us:careers" aria-label="Careers Careers"> Careers </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link new-window" href="https://www.samsung.com/global/ir/" target="_blank" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="about us:investor relations" aria-label="Investor Relations Investor Relations : Open in a New Window"> Investor Relations <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold"></use> </svg> </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link new-window" href="https://news.samsung.com/us/" target="_blank" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="about us:newsroom" aria-label="Newsroom Newsroom : Open in a New Window"> Newsroom <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold"></use> </svg> </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link" href="https://www.samsung.com/us/about-us/ethics/" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="about us:ethics" aria-label="Ethics Ethics"> Ethics </a> </li> <li class="footer-category__item" role="listitem"> <a class="footer-category__link new-window" href="https://design.samsung.com/global/index.html" target="_blank" rel="noreferer, ,noopener" an-tr="nv01_footer sitemap--cta-menu" an-ca="navigation" an-ac="footer" an-la="about us:samsung design" aria-label="Samsung Design Samsung Design : Open in a New Window"> Samsung Design <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold" href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#outlink-bold"></use> </svg> </a> </li> </ul> </div> </div> </div> </div> <div class="footer-bottom"> <div class="footer-copyright-wrap"> <div class="footer-copyright-align"> <p class="footer-copyright">Copyright© 1995-2025 SAMSUNG All Rights Reserved.</p> </div> <div class="footer-language"> <a class="footer-language__anchor" href="/us/common/visitlocationsite.html" role="button" an-tr="nv02_footer bottom--cta-locallist" an-ca="navigation" an-ac="footer" an-la="bottom:country selector:locallist"> USA/ENGLISH <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#next-bold"></use> </svg> </a> </div> <div class="footer-local-logo"> <div class="footer-local-logo--wrap"> <div class="footer-local-logo__item"> <a class="footer-local-logo__link" href="https://shopsamsung.page.link/hJbyG5aVLAUMF2yt7" an-tr="nv02_footer bottom--cta-logo" an-ca="navigation" an-ac="footer" an-la="bottom:local logo:get shop samsung app"> <div class="image image--main-loaded"> <img class="image__main responsive-img image--loaded" data-desktop-src="https://images.samsung.com/is/image/samsung/assets/us/footer/ScomQR_PNG_20250122-P5.png" loading="lazy" data-mobile-src="https://images.samsung.com/is/image/samsung/assets/us/footer/ScomQR_PNG_20250122-P5.png" alt="Get Shop Samsung App" src="https://images.samsung.com/is/image/samsung/assets/us/footer/ScomQR_PNG_20250122-P5.png"/> </div> </a> </div> <div class="footer-local-logo__item"> <a class="footer-local-logo__link" href="https://samsung.attn.tv/p/Vbx/landing-page" an-tr="nv02_footer bottom--cta-logo" an-ca="navigation" an-ac="footer" an-la="bottom:local logo:SMS Text messaging signup"> <div class="image image--main-loaded"> <img class="image__main responsive-img image--loaded" data-desktop-src="https://image-us.samsung.com/SamsungUS/home/footer/text-banner.svg" loading="lazy" data-mobile-src="https://image-us.samsung.com/SamsungUS/home/footer/text-banner.svg" alt="SMS Text messaging signup" src="https://image-us.samsung.com/SamsungUS/home/footer/text-banner.svg"/> </div> </a> </div> </div> </div> </div> <div class="footer-language-wrap" an-tr="nv02_footer bottom--text-scroll" an-ca="scroll" an-ac="scroll:100" an-la="scroll:100"> <div class="footer-language"> <a class="footer-language__anchor" href="/us/common/visitlocationsite.html" an-tr="nv02_footer bottom--cta-locallist" an-ca="navigation" an-ac="footer" an-la="bottom:country selector:locallist"> USA/ENGLISH <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#next-bold"></use> </svg> </a> </div> <div class="footer-terms"> <ul class="footer-terms__list"> <li class="footer-terms__item"> <a class="footer-terms__link" href="/us/privacy/" title="Privacy" an-tr="nv02_footer bottom--cta-bottom" an-ca="navigation" an-ac="footer" an-la="bottom:legal menu:privacy">Privacy</a> </li> <li class="footer-terms__item"> <a class="footer-terms__link" href="javascript:OneTrust.ToggleInfoDisplay()" title="Do Not Sell or Share My Personal information" an-tr="nv02_footer bottom--cta-bottom" an-ca="navigation" an-ac="footer" an-la="bottom:legal menu:Do Not Sell or Share My Personal information">Do Not Sell or Share My Personal information</a> </li> <li class="footer-terms__item"> <a class="footer-terms__link" href="https://www.samsung.com/us/privacy-policy/washington-privacy-notice/" title="Washington Privacy Notice" an-tr="nv02_footer bottom--cta-bottom" an-ca="navigation" an-ac="footer" an-la="bottom:legal menu:Washington Privacy Notice">Washington Privacy Notice</a> </li> <li class="footer-terms__item"> <a class="footer-terms__link" href="//www.samsung.com/us/common/legal.html" title="Legal" an-tr="nv02_footer bottom--cta-bottom" an-ca="navigation" an-ac="footer" an-la="bottom:legal menu:legal">Legal</a> </li> <li class="footer-terms__item"> <a class="footer-terms__link" href="/us/accessibility/" title="Accessibility Help" an-tr="nv02_footer bottom--cta-bottom" an-ca="navigation" an-ac="footer" an-la="bottom:legal menu:accessibility help">Accessibility Help</a> </li> <li class="footer-terms__item"> <a class="footer-terms__link" href="//www.samsung.com/us/common/sitemap.html" title="Sitemap" an-tr="nv02_footer bottom--cta-bottom" an-ca="navigation" an-ac="footer" an-la="bottom:legal menu:sitemap">Sitemap</a> </li> </ul> </div> <div class="footer-sns"> <span class="footer-sns__title">STAY IN THE LOOP?</span> <ul class="footer-sns__list"> <li class="footer-sns__item"> <a class="footer-sns__link" href="https://www.facebook.com/SamsungUS" target="_blank" rel="noreferer, ,noopener" title="Open in a New Window : Facebook" an-tr="nv02_footer bottom--cta-sns" an-ca="navigation" an-ac="footer" an-la="bottom:sns:facebook"> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#facebook-bold"> </use> </svg> </a> </li> <li class="footer-sns__item"> <a class="footer-sns__link" href="https://twitter.com/SamsungUS" target="_blank" rel="noreferer, ,noopener" title="Open in a New Window : Twitter" an-tr="nv02_footer bottom--cta-sns" an-ca="navigation" an-ac="footer" an-la="bottom:sns:twitter"> <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 72 72" viewBox="0 0 72 72" id="twitter-x"> <switch> <g> <path d="M42.5,31.2L66,6h-6L39.8,27.6L24,6H4l24.6,33.6L4,66 h6l21.3-22.8L48,66h20L42.5,31.2z M12.9,10h8l38.1,52h-8L12.9,10z"></path> </g> </switch> </svg> </a> </li> <li class="footer-sns__item"> <a class="footer-sns__link" href="https://www.instagram.com/samsungmobileusa/" target="_blank" rel="noreferer, ,noopener" title="Open in a New Window : Instagram" an-tr="nv02_footer bottom--cta-sns" an-ca="navigation" an-ac="footer" an-la="bottom:sns:instagram"> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#instagram-bold"> </use> </svg> </a> </li> <li class="footer-sns__item"> <a class="footer-sns__link" href="https://www.youtube.com/samsungus" target="_blank" rel="noreferer, ,noopener" title="Open in a New Window : YouTube" an-tr="nv02_footer bottom--cta-sns" an-ca="navigation" an-ac="footer" an-la="bottom:sns:youtube"> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#youtube-bold"> </use> </svg> </a> </li> <li class="footer-sns__item"> <a class="footer-sns__link" href="//www.samsung.com/us/emailsignup/" target="_blank" rel="noreferer, ,noopener" title="Open in a New Window : Email to" an-tr="nv02_footer bottom--cta-sns" an-ca="navigation" an-ac="footer" an-la="bottom:sns:email to"> <svg class="icon" focusable="false"> <use xlink:href="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/resources/images/icons/p6-footer.svg#mailto-bold"> </use> </svg> </a> </li> </ul> </div> </div> <!-- /* // Footer Bottom Component */ --> </div> </div> </footer> <section id="sapp-overlay"> <div class="sapp-wrap"> <div class="sapp-box"> <!--<div class="sapp-close sapp-close-btn" data-link_cat="mobile shop app interecept" data-link_id="mobile_shop_app_intercept_close" data-link_meta="link_name:close" data-link_position="mobile shop app">&times;</div>//--> <div class="sapp-logo"> <img data-src="//image-us.samsung.com/SamsungUS/footer/ShopSamsung_icon_144.png" class="lazyload"/> </div> <div class="sapp-title"> Fast, easy checkout with Shop Samsung App </div> <div class="sapp-body"> Easy sign-in, Samsung Pay, notifications, and more! </div> <div class="sapp-cta"> <div class="sapp-btn"> <a href="https://k7wz8.app.goo.gl/17maCKGxW7lK4qyO2" data-link_cat="mobile shop app interecept" data-link_id="mobile_shop_app_intercept_get_the_app" data-link_meta="link_name:get the app" data-link_position="mobile shop app">Get the app</a> </div> </div> <div class="sapp-more sapp-close-btn" data-link_cat="mobile shop app interecept" data-link_id="mobile_shop_app_intercept_continue" data-link_meta="link_name:continue" data-link_position="mobile shop app"> Or continue shopping on Samsung.com </div> <div class="sapp-bottom-image"> <img data-src="//image-us.samsung.com/SamsungUS/mobileapp/popunder_phone_mock.jpg" class="lazyload"/> </div> </div> </div> </section> <section id="spop-overlay"> <div class="spop-close">&times;</div> <div class="spop-wrap"> <div class="spop-content"> <div class="spop-logo"> <img data-src="//image-us.samsung.com/SamsungUS/footer/ShopSamsung_icon_144.png" class="lazyload"/> </div> <div class="spop-textBox"> <div class="spop-title">The Shop Samsung app</div> <div class="spop-body">Free standard shipping, exclusive offers and financing options.</div> </div> <div class="spop-cta"> <a href="https://k7wz8.app.goo.gl/2nM3tMxztZ4mk27X2" data-link_cat="mobile shop app extender" data-link_id="mobile_shop_app_extender_get_app" data-link_meta="link_name:get app" data-link_position="mobile shop app">GET</a> </div> </div> </div> </section> <section id="spop-overlay2"> <div class="spop-close">&times;</div> <div class="spop-wrap"> <div class="spop-content"> <div class="spop-logo"> <img data-src="//image-us.samsung.com/SamsungUS/footer/ShopSamsung_icon_144.png" class="lazyload"/> </div> <div class="spop-textBox"> <div class="spop-title">The Shop Samsung app</div> <div class="spop-body">Free standard shipping, exclusive offers and financing options.</div> </div> <div class="spop-cta"> <a href="https://k7wz8.app.goo.gl/2nM3tMxztZ4mk27X2" data-link_cat="mobile shop app extender" data-link_id="mobile_shop_app_extender_get_app" data-link_meta="link_name:get app" data-link_position="mobile shop app">GET</a> </div> </div> </div> </section> <section id="ir_overlay"> <div class="irWrap"> <div class="irClose cancel">&times;</div> <div class="irContent"> <h3>You Are About To Be Redirected To Investor Relations Information for U.S.</h3> Thank you for visiting Samsung U.S. Investor Relations. You will be redirected via a new browser window to the Samsung Global website for U.S. investor relations information. <div class="button-group"> <div class="cancel">CANCEL</div><a class="cta-button continue" href="/us/aboutsamsung/ir/newsMain.do" target="_blank ">CONTINUE</a> </div> </div> </div> </section> <section id="printer-exit"> <div class="pxWrap"> <div class="pxClose cancel">&times;</div> <div class="pxContent"> <h3>Redirect Notification</h3> As of Nov. 1, 2017, the Samsung Electronics Co., Ltd. printer business and its related affiliates were transferred to HP Inc. <br/> <br/> For more information, please visit HP's website: <a href="http://www.hp.com/go/samsung" target="_blank">http://www.hp.com/go/samsung</a> <br/> <br/> <ul style="list-style:none; padding-left: 0; font-size: .875em;"> <li>* For Samsung Supplies information go to: <a href="http://www.hp.com/go/samsungsupplies" target="_blank">www.hp.com/go/samsungsupplies</a></li> <li>* For S.T.A.R. Program cartridge return &amp; recycling go to: <a href="http://www.hp.com/go/suppliesrecycling" target="_blank">www.hp.com/go/suppliesrecycling</a></li> <li>* For Samsung printer support or service go to: <a href="http://www.hp.com/support/samsung" target="_blank">www.hp.com/support/samsung</a></li> </ul> <br/> <p>Select CONTINUE to visit HP's website.</p> <div class="button-group"> <div class="cancel">CANCEL</div><a class="cta-button continue" href="http://www.hp.com/go/samsung" target="_blank">CONTINUE</a> </div> </div> </div> </section> <script defer src="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-common/shoppingCart.min.32590a23b24f36de05a14ca44a215f40.js"></script> <script defer src="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/global_bottom_clientlib.min.f16e89280465b09d8ed13f5e3f59744c.js"></script> <script defer src="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-dependencies/component/gnb.min.b9491fb4e7740b1e7f0939acc2f40a70.js"></script> </div> </div> <script defer src="/us/smg/etc.clientlibs/samsung/clientlibs/us/common/clientlib-common/jquery-rateyo.min.ec7b9749f88c6e647fdd68e3229ea967.js"></script> <script defer src="/us/smg/etc.clientlibs/samsung/clientlibs/us/consumer/clientlib-template/pf/compact.min.81411810b461146a3d12abdde0976e15.js"></script> <!-- <sly data-sly-call="org.apache.sling.scripting.sightly.libs.granite.sightly.templates.clientlib__002e__html$3@36c81bf0"></sly> --> <!--Page Utag Data Object --> <script type="text/javascript"> var login_status = ""; if (isLogin()) { login_status = "logged in"; } else { login_status = "logged out"; } var analytics_data = { page_type : "", site_language : "en", loggedin_status : login_status, division : "", responsive_design_mode : "t", page_breadcrumb : "", page_channel : "B2C", product_id : [], product_price : [], product_name : [], product_category : [""], product_subcategory : [], site_search_results : "", results_per_page: "", financing_available : "N", activation_available : "", financing_program_deferred : "N", trade_in_eligible : "", site_section1 : "computing", site_section2 : "monitors", site_section3 : "oled-monitor" }; </script> <script type="text/javascript"> window.utag_data = window.utag_data || {}; (function(a,b,c,d){ a='//tags.tiqcdn.com/utag/samsung/main/prod/utag.js'; var host = location.hostname; if (!(host.indexOf('www.samsung.com') != -1)) {a='//tags.tiqcdn.com/utag/samsung/main/qa/utag.js';} b=document;c='script';d=b.createElement(c);d.src=a;d.type='text/java'+c;d.async=true; a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a); })(); if(window.visitor && window.visitor.setCustomerIDs) { window.visitor.setCustomerIDs.bpid; window.visitor.setCustomerIDs.erid; } window.addEventListener('load', function() { var externalIdSendCookieExist = document.cookie.indexOf('externalIdSendCookie') > -1; var bp_number = window.Cookies('prof_bpno_s'); if (!externalIdSendCookieExist && bp_number) { //image Request var x = new Image(); x.src = "//samsungelectronicsamericainc.demdex.net/event?d_cid_ic=my_samus_crm%01" +bp_number+"%011&d_cid_ic=AdobeCampaignID%01"+bp_number+"%011&d_sid=9317884"; document.cookie = "externalIdSendCookie=true;domain=.samsung.com;path=/;"; } if(window.visitor && typeof window.visitor.setCustomerIDs == 'function' && bp_number) { window.visitor.setCustomerIDs( { "AdobeCampaignID": {"id":bp_number, "authstate":Visitor.AuthState.AUTHENTICATED}, "my_samus_crm": {"id":bp_number, "authstate":Visitor.AuthState.AUTHENTICATED} }); } }); </script> <script type="text/javascript"> window.addEventListener('DOMContentLoaded', function() { $(window).load(function(){ if(window.visitor) { var AMP_VID = visitor.getMarketingCloudVisitorID(); Cookies('AMP_VID', AMP_VID, {domain: '.samsung.com', path: '/'}); } function getParameterByName( name ){ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return decodeURIComponent(results[1].replace(/\+/g, " ")); } var cjeventid = getParameterByName('cjevent'); // Give the cooklie a duration of 1 year var now = new Date(); var time = now.getTime(); var expTime = time + 1000*31536000; now.setTime(expTime); if(expTime && cjeventid) { document.cookie = "cjevent=" + cjeventid + "; expires=" + now.toGMTString() + ";path=/;domain=.samsung.com;"; } }); }); </script> <!-- <sly data-sly-include="blurLoad.html"></sly> --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10