OK
https://www.amazon.com/
Websites
Runtime: 1.9s
On November 21, 2024, 08:38 AM UTC, https://www.amazon.com/ was accessible when tested on AS6057 in Uruguay.
Failures
HTTP Experiment
null
DNS Experiment
null
Control
null
DNS Queries
Resolver:
200.40.53.8
Query:
IN A www.amazon.com
Engine:
system
Name
Class
TTL
Type
DATA
@
IN
A
3.160.123.238
Query:
IN AAAA www.amazon.com
Engine:
system
Name
Class
TTL
Type
DATA
@
IN
AAAA
2600:9000:26e0:fa00:7:49a5:5fd4:b121
@
IN
AAAA
2600:9000:26e0:9000:7:49a5:5fd4:b121
@
IN
AAAA
2600:9000:26e0:1000:7:49a5:5fd4:b121
@
IN
AAAA
2600:9000:26e0:4400:7:49a5:5fd4:b121
@
IN
AAAA
2600:9000:26e0:4a00:7:49a5:5fd4:b121
@
IN
AAAA
2600:9000:26e0:2600:7:49a5:5fd4:b121
@
IN
AAAA
2600:9000:26e0:be00:7:49a5:5fd4:b121
@
IN
AAAA
2600:9000:26e0:fc00:7:49a5:5fd4:b121
TCP Connections
Connection to 2600:9000:26e0:4400:7:49a5:5fd4:b121:443 was blocked.
Connection to 2600:9000:26e0:1000:7:49a5:5fd4:b121:443 was blocked.
Connection to 2600:9000:26e0:2600:7:49a5:5fd4:b121:443 was blocked.
Connection to 2600:9000:26e0:4a00:7:49a5:5fd4:b121:443 was blocked.
Connection to 2600:9000:26e0:9000:7:49a5:5fd4:b121:443 was blocked.
Connection to 2600:9000:26e0:be00:7:49a5:5fd4:b121:443 was blocked.
Connection to 2600:9000:26e0:fa00:7:49a5:5fd4:b121:443 was blocked.
Connection to 2600:9000:26e0:fc00:7:49a5:5fd4:b121:443 was blocked.
Connection to 3.160.123.238:443 succeeded.
HTTP Requests
URL
GET https://www.amazon.com/
Response Headers
Accept-Ch:ect,rtt,downlink,device-memory,sec-ch-device-memory,viewport-width,sec-ch-viewport-width,dpr,sec-ch-dpr,sec-ch-ua-platform,sec-ch-ua-platform-versionAccept-Ch-Lifetime:86400Alt-Svc:h3=":443"; ma=86400Cache-Control:no-cacheContent-Language:en-USContent-Security-Policy:upgrade-insecure-requests;report-uri https://metrics.media-amazon.com/Content-Security-Policy-Report-Only:default-src 'self' blob: https: data: mediastream: 'unsafe-eval' 'unsafe-inline';report-uri https://metrics.media-amazon.com/Content-Type:text/html;charset=UTF-8Date:Thu, 21 Nov 2024 08:38:18 GMTExpires:-1Pragma:no-cacheServer:ServerSet-Cookie:session-id=140-7332671-9602137; Domain=.amazon.com; Expires=Fri, 21-Nov-2025 08:38:18 GMT; Path=/; SecureStrict-Transport-Security:max-age=47474747; includeSubDomains; preloadVary:Content-Type,Accept-Encoding,User-AgentVia:1.1 1e2e695eec35fa784cf025bddc3b40f8.cloudfront.net (CloudFront)X-Amz-Cf-Id:BFTWNRMlrUmQT3gabtg93KNCJuMfL_kgociLIBfauyaBJ5BacYQy2Q==X-Amz-Cf-Pop:EZE50-P2X-Amz-Rid:0ZVPJFX4CAAN9QGRQFMYX-Cache:Miss from cloudfrontX-Content-Type-Options:nosniffX-Frame-Options:SAMEORIGINX-Ua-Compatible:IE=edgeX-Xss-Protection:1;
Response Body
<!doctype html><html lang="en-us" class="a-no-js" data-19ax5a9jf="dingo"><!-- sp:feature:head-start --> <head><script>var aPageStart = (new Date()).getTime();</script><meta charset="utf-8"/> <!-- sp:end-feature:head-start --> <!-- sp:feature:csm:head-open-part1 --> <script type='text/javascript'>var ue_t0=ue_t0||+new Date();</script> <!-- sp:end-feature:csm:head-open-part1 --> <!-- sp:feature:cs-optimization --> <meta http-equiv='x-dns-prefetch-control' content='on'> <link rel="dns-prefetch" href="https://images-na.ssl-images-amazon.com"> <link rel="dns-prefetch" href="https://m.media-amazon.com"> <link rel="dns-prefetch" href="https://completion.amazon.com"> <!-- sp:end-feature:cs-optimization --> <!-- sp:feature:csm:head-open-part2 --> <script type='text/javascript'> window.ue_ihb = (window.ue_ihb || window.ueinit || 0) + 1; if (window.ue_ihb === 1) { var ue_csm = window, ue_hob = +new Date(); (function(d){var e=d.ue=d.ue||{},f=Date.now||function(){return+new Date};e.d=function(b){return f()-(b?0:d.ue_t0)};e.stub=function(b,a){if(!b[a]){var c=[];b[a]=function(){c.push([c.slice.call(arguments),e.d(),d.ue_id])};b[a].replay=function(b){for(var a;a=c.shift();)b(a[0],a[1],a[2])};b[a].isStub=1}};e.exec=function(b,a){return function(){try{return b.apply(this,arguments)}catch(c){ueLogError(c,{attribution:a||"undefined",logLevel:"WARN"})}}}})(ue_csm); var ue_err_chan = 'jserr-rw'; (function(d,e){function h(f,b){if(!(a.ec>a.mxe)&&f){a.ter.push(f);b=b||{};var c=f.logLevel||b.logLevel;c&&c!==k&&c!==m&&c!==n&&c!==p||a.ec++;c&&c!=k||a.ecf++;b.pageURL=""+(e.location?e.location.href:"");b.logLevel=c;b.attribution=f.attribution||b.attribution;a.erl.push({ex:f,info:b})}}function l(a,b,c,e,g){d.ueLogError({m:a,f:b,l:c,c:""+e,err:g,fromOnError:1,args:arguments},g?{attribution:g.attribution,logLevel:g.logLevel}:void 0);return!1}var k="FATAL",m="ERROR",n="WARN",p="DOWNGRADED",a={ec:0,ecf:0, pec:0,ts:0,erl:[],ter:[],buffer:[],mxe:50,startTimer:function(){a.ts++;setInterval(function(){d.ue&&a.pec<a.ec&&d.uex("at");a.pec=a.ec},1E4)}};l.skipTrace=1;h.skipTrace=1;h.isStub=1;d.ueLogError=h;d.ue_err=a;e.onerror=l})(ue_csm,window); var ue_id = '0ZVPJFX4CAAN9QGRQFMY', ue_url = '/rd/uedata', ue_navtiming = 1, ue_mid = 'ATVPDKIKX0DER', ue_sid = '140-7332671-9602137', ue_sn = 'www.amazon.com', ue_furl = 'fls-na.amazon.com', ue_surl = 'https://unagi-na.amazon.com/1/events/com.amazon.csm.nexusclient.prod', ue_int = 0, ue_fcsn = 1, ue_urt = 3, ue_rpl_ns = 'cel-rpl', ue_ddq = 1, ue_fpf = '//fls-na.amazon.com/1/batch/1/OP/ATVPDKIKX0DER:140-7332671-9602137:0ZVPJFX4CAAN9QGRQFMY$uedata=s:', ue_sbuimp = 1, ue_ibft = 0, ue_sswmts = 0, ue_jsmtf = 0, ue_fnt = 0, ue_lpsi = 6000, ue_no_counters = 1, ue_lob = '1', ue_sjslob = 0, ue_dsbl_cel = 1, ue_swi = 1; var ue_viz=function(){(function(b,f,d){function g(){return(!(p in d)||0<d[p])&&(!(q in d)||0<d[q])}function h(c){if(b.ue.viz.length<w&&!r){var a=c.type;c=c.originalEvent;/^focus./.test(a)&&c&&(c.toElement||c.fromElement||c.relatedTarget)||(a=g()?f[s]||("blur"==a||"focusout"==a?t:u):t,b.ue.viz.push(a+":"+(+new Date-b.ue.t0)),a==u&&(b.ue.isl&&x("at"),r=1))}}for(var r=0,x=b.uex,a,k,l,s,v=["","webkit","o","ms","moz"],e=0,m=1,u="visible",t="hidden",p="innerWidth",q="innerHeight",w=20,n=0;n<v.length&&!e;n++)if(a= v[n],k=(a?a+"H":"h")+"idden",e="boolean"==typeof f[k])l=a+"visibilitychange",s=(a?a+"V":"v")+"isibilityState";h({});e&&f.addEventListener(l,h,0);m=g()?1:0;d.addEventListener("resize",function(){var a=g()?1:0;m!==a&&(m=a,h({}))},{passive:!0});b.ue&&e&&(b.ue.pageViz={event:l,propHid:k})})(ue_csm,ue_csm.document,ue_csm.window)}; (function(d,h,N){function H(a){return a&&a.replace&&a.replace(/^\s+|\s+$/g,"")}function u(a){return"undefined"===typeof a}function B(a,b){for(var c in b)b[v](c)&&(a[c]=b[c])}function I(a){try{var b=N.cookie.match(RegExp("(^| )"+a+"=([^;]+)"));if(b)return b[2].trim()}catch(c){}}function O(k,b,c){var q=(x||{}).type;if("device"!==c||2!==q&&1!==q)k&&(d.ue_id=a.id=a.rid=k,w&&(w=w.replace(/((.*?:){2})(\w+)/,function(a,b){return b+k})),D&&(e("id",D,k),D=0)),b&&(w&&(w=w.replace(/(.*?:)(\w|-)+/,function(a, c){return c+b})),d.ue_sid=b),c&&a.tag("page-source:"+c),d.ue_fpf=w}function P(){var a={};return function(b){b&&(a[b]=1);b=[];for(var c in a)a[v](c)&&b.push(c);return b}}function y(d,b,c,q){q=q||+new E;var g,m;if(b||u(c)){if(d)for(m in g=b?e("t",b)||e("t",b,{}):a.t,g[d]=q,c)c[v](m)&&e(m,b,c[m]);return q}}function e(d,b,c){var e=b&&b!=a.id?a.sc[b]:a;e||(e=a.sc[b]={});"id"===d&&c&&(Q=1);return e[d]=c||e[d]}function R(d,b,c,e,g){c="on"+c;var m=b[c];"function"===typeof m?d&&(a.h[d]=m):m=function(){};b[c]= function(a){g?(e(a),m(a)):(m(a),e(a))};b[c]&&(b[c].isUeh=1)}function S(k,b,c,q){function p(b,c){var d=[b],f=0,g={},m,h;c?(d.push("m=1"),g[c]=1):g=a.sc;for(h in g)if(g[v](h)){var q=e("wb",h),p=e("t",h)||{},n=e("t0",h)||a.t0,l;if(c||2==q){q=q?f++:"";d.push("sc"+q+"="+h);for(l in p)u(p[l])||null===p[l]||d.push(l+q+"="+(p[l]-n));d.push("t"+q+"="+p[k]);if(e("ctb",h)||e("wb",h))m=1}}!J&&m&&d.push("ctb=1");return d.join("&")}function m(b,c,f,e,g){if(b){var k=d.ue_err;d.ue_url&&!e&&!g&&b&&0<b.length&&(e= new Image,a.iel.push(e),e.src=b,a.count&&a.count("postbackImageSize",b.length));w?(g=h.encodeURIComponent)&&b&&(e=new Image,b=""+d.ue_fpf+g(b)+":"+(+new E-d.ue_t0),a.iel.push(e),e.src=b):a.log&&(a.log(b,"uedata",{n:1}),a.ielf.push(b));k&&!k.ts&&k.startTimer();a.b&&(k=a.b,a.b="",m(k,c,f,1))}}function A(b){var c=x?x.type:F,d=2==c||a.isBFonMshop,c=c&&!d,f=a.bfini;if(!Q||a.isBFCache)f&&1<f&&(b+="&bfform=1",c||(a.isBFT=f-1)),d&&(b+="&bfnt=1",a.isBFT=a.isBFT||1),a.ssw&&a.isBFT&&(a.isBFonMshop&&(a.isNRBF= 0),u(a.isNRBF)&&(d=a.ssw(a.oid),d.e||u(d.val)||(a.isNRBF=1<d.val?0:1)),u(a.isNRBF)||(b+="&nrbf="+a.isNRBF)),a.isBFT&&!a.isNRBF&&(b+="&bft="+a.isBFT);return b}if(!a.paused&&(b||u(c))){for(var l in c)c[v](l)&&e(l,b,c[l]);a.isBFonMshop||y("pc",b,c);l="ld"===k&&b&&e("wb",b);var s=e("id",b)||a.id;l||s===a.oid||(D=b,ba(s,(e("t",b)||{}).tc||+e("t0",b),+e("t0",b)));var s=e("id",b)||a.id,t=e("id2",b),f=a.url+"?"+k+"&v="+a.v+"&id="+s,J=e("ctb",b)||e("wb",b),z;J&&(f+="&ctb="+J);t&&(f+="&id2="+t);1<d.ueinit&& (f+="&ic="+d.ueinit);if(!("ld"!=k&&"ul"!=k||b&&b!=s)){if("ld"==k){try{h[K]&&h[K].isUeh&&(h[K]=null)}catch(I){}if(h.chrome)for(t=0;t<L.length;t++)T(G,L[t]);(t=N.ue_backdetect)&&t.ue_back&&t.ue_back.value++;d._uess&&(z=d._uess());a.isl=1}a._bf&&(f+="&bf="+a._bf());d.ue_navtiming&&g&&(e("ctb",s,"1"),a.isBFonMshop||y("tc",F,F,M));!C||a.isBFonMshop||U||(g&&B(a.t,{na_:g.navigationStart,ul_:g.unloadEventStart,_ul:g.unloadEventEnd,rd_:g.redirectStart,_rd:g.redirectEnd,fe_:g.fetchStart,lk_:g.domainLookupStart, _lk:g.domainLookupEnd,co_:g.connectStart,_co:g.connectEnd,sc_:g.secureConnectionStart,rq_:g.requestStart,rs_:g.responseStart,_rs:g.responseEnd,dl_:g.domLoading,di_:g.domInteractive,de_:g.domContentLoadedEventStart,_de:g.domContentLoadedEventEnd,_dc:g.domComplete,ld_:g.loadEventStart,_ld:g.loadEventEnd,ntd:("function"!==typeof C.now||u(M)?0:new E(M+C.now())-new E)+a.t0}),x&&B(a.t,{ty:x.type+a.t0,rc:x.redirectCount+a.t0}),U=1);a.isBFonMshop||B(a.t,{hob:d.ue_hob,hoe:d.ue_hoe});a.ifr&&(f+="&ifr=1")}y(k, b,c,q);var r,n;l||b&&b!==s||ca(b);(c=d.ue_mbl)&&c.cnt&&!l&&(f+=c.cnt());l?e("wb",b,2):"ld"==k&&(a.lid=H(s));for(r in a.sc)if(1==e("wb",r))break;if(l){if(a.s)return;f=p(f,null)}else c=p(f,null),c!=f&&(c=A(c),a.b=c),z&&(f+=z),f=p(f,b||a.id);f=A(f);if(a.b||l)for(r in a.sc)2==e("wb",r)&&delete a.sc[r];z=0;a._rt&&(f+="&rt="+a._rt());c=h.csa;if(!l&&c)for(n in r=e("t",b)||{},c=c("PageTiming"),r)r[v](n)&&c("mark",da[n]||n,r[n]);l||(a.s=0,(n=d.ue_err)&&0<n.ec&&n.pec<n.ec&&(n.pec=n.ec,f+="&ec="+n.ec+"&ecf="+ n.ecf),z=e("ctb",b),"ld"!==k||b||a.markers?a.markers&&a.isl&&!l&&b&&B(a.markers,e("t",b)):(a.markers={},B(a.markers,e("t",b))),e("t",b,{}));a.tag&&a.tag().length&&(f+="&csmtags="+a.tag().join("|"),a.tag=P());n=a.viz||[];(r=n.length)&&(f+="&viz="+n.splice(0,r).join("|"));u(d.ue_pty)||(f+="&pty="+d.ue_pty+"&spty="+d.ue_spty+"&pti="+d.ue_pti);a.tabid&&(f+="&tid="+a.tabid);a.aftb&&(f+="&aftb=1");!a._ui||b&&b!=s||(f+=a._ui());f+="&lob="+(d.ue_lob||"0");a.a=f;m(f,k,z,l,b&&"string"===typeof b&&-1!==b.indexOf("csa:"))}} function ca(a){var b=h.ue_csm_markers||{},c;for(c in b)b[v](c)&&y(c,a,F,b[c])}function A(a,b,c){c=c||h;if(c[V])c[V](a,b,!1);else if(c[W])c[W]("on"+a,b)}function T(a,b,c){c=c||h;if(c[X])c[X](a,b,!1);else if(c[Y])c[Y]("on"+a,b)}function Z(){function a(){d.onUl()}function b(a){return function(){c[a]||(c[a]=1,S(a))}}var c={},e,g;d.onLd=b("ld");d.onLdEnd=b("ld");d.onUl=b("ul");e={stop:b("os")};h.chrome?(A(G,a),L.push(a)):e[G]=d.onUl;for(g in e)e[v](g)&&R(0,h,g,e[g]);d.ue_viz&&ue_viz();A("load",d.onLd); y("ue")}function ba(e,b,c){var g=d.ue_mbl,p=h.csa,m=p&&p("SPA"),p=p&&p("PageTiming");g&&g.ajax&&g.ajax(b,c);m&&p&&(m("newPage",{requestId:e,transitionType:"soft"}),p("mark","transitionStart",b));a.tag("ajax-transition")}d.ueinit=(d.ueinit||0)+1;var a=d.ue=d.ue||{};a.t0=h.aPageStart||d.ue_t0;a.id=d.ue_id;a.url=d.ue_url;a.rid=d.ue_id;a.a="";a.b="";a.h={};a.s=1;a.t={};a.sc={};a.iel=[];a.ielf=[];a.viz=[];a.v="0.300971.0";a.paused=!1;var v="hasOwnProperty",G="beforeunload",K="on"+G,V="addEventListener", X="removeEventListener",W="attachEvent",Y="detachEvent",da={cf:"criticalFeature",af:"aboveTheFold",fn:"functional",fp:"firstPaint",fcp:"firstContentfulPaint",bb:"bodyBegin",be:"bodyEnd",ld:"loaded"},E=h.Date,C=h.performance||h.webkitPerformance,g=(C||{}).timing,x=(C||{}).navigation,M=(g||{}).navigationStart,w=d.ue_fpf,Q=0,U=0,L=[],D=0,F;a.oid=H(a.id);a.lid=H(a.id);a._t0=a.t0;a.tag=P();a.ifr=h.top!==h.self||h.frameElement?1:0;a.markers=null;a.attach=A;a.detach=T;if("000-0000000-8675309"===d.ue_sid){var $= I("cdn-rid"),aa=I("session-id");$&&aa&&O($,aa,"cdn")}d.uei=Z;d.ueh=R;d.ues=e;d.uet=y;d.uex=S;a.reset=O;a.pause=function(d){a.paused=d};Z()})(ue_csm,ue_csm.window,ue_csm.document); ue.stub(ue,"event");ue.stub(ue,"onSushiUnload");ue.stub(ue,"onSushiFlush"); ue.stub(ue,"log");ue.stub(ue,"onunload");ue.stub(ue,"onflush"); (function(b){function g(){var a={requestId:b.ue_id||"rid",server:b.ue_sn||"sn",obfuscatedMarketplaceId:b.ue_mid||"mid"};b.ue_sjslob&&(a.lob=b.ue_lob||"0");return a}var a=b.ue,h=1===b.ue_no_counters;a.cv={};a.cv.scopes={};a.cv.buffer=[];a.count=function(b,f,c){var e={},d=a.cv,g=c&&0===c.c;e.counter=b;e.value=f;e.t=a.d();c&&c.scope&&(d=a.cv.scopes[c.scope]=a.cv.scopes[c.scope]||{},e.scope=c.scope);if(void 0===f)return d[b];d[b]=f;d=0;c&&c.bf&&(d=1);h||(ue_csm.ue_sclog||!a.clog||0!==d||g?a.log&&a.log(e, "csmcount",{c:1,bf:d}):a.clog(e,"csmcount",{bf:d}));a.cv.buffer.push({c:b,v:f})};a.count("baselineCounter2",1);a&&a.event&&(a.event(g(),"csm","csm.CSMBaselineEvent.4"),a.count("nexusBaselineCounter",1,{bf:1}))})(ue_csm); var ue_hoe = +new Date(); } window.ueinit = window.ue_ihb; </script> <!-- 3nxttmk --> <script>window.ue && ue.count && ue.count('CSMLibrarySize', 10173)</script> <!-- sp:end-feature:csm:head-open-part2 --> <!-- sp:feature:aui-assets --> <link rel="stylesheet" href="https://m.media-amazon.com/images/I/11EIQ5IGqaL._RC|01e5ncglxyL.css,01lF2n-pPaL.css,519YvOBDG8L.css,31uBZQYbDJL.css,11hEAfyy4tL.css,01qPl4hxayL.css,01pOTCa2wPL.css,413Vvv3GONL.css,11TIuySqr6L.css,01Rw4F+QU6L.css,11vYg+mVuGL.css,01J3raiFJrL.css,01IdKcBuAdL.css,01dRHIoUjnL.css,21lFcV0hmCL.css,01W0RNXC6mL.css,51nYRMITMLL.css,01XPHJk60-L.css,11wvSzGn6tL.css,01ANX9Vx1mL.css,01cvE3JoRWL.css,21qiQ1rOUAL.css,11wazUu-8nL.css,21RWaJb6t+L.css,11yLJpkAxFL.css,216LjtW6ADL.css,01CFUgsA-YL.css,313tC6rl1gL.css,116t+WD27UL.css,11yEzLYDg2L.css,113QjYEJj-L.css,11BdrZWOJpL.css,01r-hR9jMmL.css,01X+Gu6WK9L.css,21ZVss5T32L.css,114W6O7j2oL.css,01LzHhtXxxL.css,21zi3R-XjNL.css,115pt6oW+ZL.css,11hvENnYNUL.css,11Qek6G6pNL.css,01890+Vwk8L.css,01bDiPuBD6L.css,01cbS3UK11L.css,21F85am0yFL.css,016mfgi+D2L.css,01WslS8q5ML.css,21zhgeMzYSL.css,016Sx2kF1+L.css_.css?AUIClients/AmazonUI#us.not-trident" /> <script> (function(b,a,c,d){if((b=b.AmazonUIPageJS||b.P)&&b.when&&b.register){c=[];for(a=a.currentScript;a;a=a.parentElement)a.id&&c.push(a.id);return b.log("A copy of P has already been loaded on this page.","FATAL",c.join(" "))}})(window,document,Date);(function(a,b,c,d){"use strict";a._pSetI=function(){return null}})(window,document,Date);(function(d,I,K,L){"use strict";d._sw=function(){var p;return function(w,g,u,B,h,C,q,k,x,y){p||(p=!0,y.execute("RetailPageServiceWorker",function(){function z(a,b){e.controller&&a?(a={feature:"retail_service_worker_messaging",command:a},b&&(a.data=b),e.controller.postMessage(a)):a&&h("sw:sw_message_no_ctrl",1)}function p(a){var b=a.data;if(b&&"retail_service_worker_messaging"===b.feature&&b.command&&b.data){var c=b.data;a=d.ue;var f=d.ueLogError;switch(b.command){case "log_counter":a&&k(a.count)&& c.name&&a.count(c.name,0===c.value?0:c.value||1);break;case "log_tag":a&&k(a.tag)&&c.tag&&(a.tag(c.tag),b=d.uex,a.isl&&k(b)&&b("at"));break;case "log_error":f&&k(f)&&c.message&&f({message:c.message,logLevel:c.level||"ERROR",attribution:c.attribution||"RetailServiceWorker"});break;case "log_weblab_trigger":if(!c.weblab||!c.treatment)break;a&&k(a.trigger)?a.trigger(c.weblab,c.treatment):(h("sw:wt:miss"),h("sw:wt:miss:"+c.weblab+":"+c.treatment));break;default:h("sw:unsupported_message_command",1)}}} function v(a,b){return"sw:"+(b||"")+":"+a+":"}function D(a,b){e.register("/service-worker.js").then(function(){h(a+"success")}).catch(function(c){y.logError(c,"[AUI SW] Failed to "+b+" service worker: ","ERROR","RetailPageServiceWorker");h(a+"failure")})}function E(){l.forEach(function(a){q(a)})}function n(a){return a.capabilities.isAmazonApp&&a.capabilities.android}function F(a,b,c){if(b)if(b.mshop&&n(a))a=v(c,"mshop_and"),b=b.mshop.action,l.push(a+"supported"),b(a,c);else if(b.browser){a=u(/Chrome/i)&& !u(/Edge/i)&&!u(/OPR/i)&&!a.capabilities.isAmazonApp&&!u(new RegExp(B+"bwv"+B+"b"));var f=b.browser;b=v(c,"browser");a?(a=f.action,l.push(b+"supported"),a(b,c)):l.push(b+"unsupported")}}function G(a,b,c){a&&l.push(v("register",c)+"unsupported");b&&l.push(v("unregister",c)+"unsupported");E()}try{var e=navigator.serviceWorker}catch(a){q("sw:nav_err")}(function(){if(e){var a=function(){z("page_loaded",{rid:d.ue_id,mid:d.ue_mid,pty:d.ue_pty,sid:d.ue_sid,spty:d.ue_spty,furl:d.ue_furl})};x(e,"message", p);z("client_messaging_ready");y.when("load").execute(a);x(e,"controllerchange",function(){z("client_messaging_ready");"complete"===I.readyState&&a()})}})();var l=[],m=function(a,b){var c=d.uex,f=d.uet;a=g(":","aui","sw",a);"ld"===b&&k(c)?c("ld",a,{wb:1}):k(f)&&f(b,a,{wb:1})},J=function(a,b,c){function f(a){b&&k(b.failure)&&b.failure(a)}function H(){l=setTimeout(function(){q(g(":","sw:"+r,t.TIMED_OUT));f({ok:!1,statusCode:t.TIMED_OUT,done:!1});m(r,"ld")},c||4E3)}var t={NO_CONTROLLER:"no_ctrl",TIMED_OUT:"timed_out", UNSUPPORTED_BROWSER:"unsupported_browser",UNEXPECTED_RESPONSE:"unexpected_response"},r=g(":",a.feature,a.command),l,n=!0;if("MessageChannel"in d&&e&&"controller"in e)if(e.controller){var p=new MessageChannel;p.port1.onmessage=function(c){(c=c.data)&&c.feature===a.feature&&c.command===a.command?(n&&(m(r,"cf"),n=!1),m(r,"af"),clearTimeout(l),c.done||H(),c.ok?b&&k(b.success)&&b.success(c):f(c),c.done&&m(r,"ld")):h(g(":","sw:"+r,t.UNEXPECTED_RESPONSE),1)};H();m(r,"bb");e.controller.postMessage(a,[p.port2])}else q(g(":", "sw:"+a.feature,t.NO_CONTROLLER)),f({ok:!1,statusCode:t.NO_CONTROLLER,done:!0});else q(g(":","sw:"+a.feature,t.UNSUPPORTED_BROWSER)),f({ok:!1,statusCode:t.UNSUPPORTED_BROWSER,done:!0})};(function(){e?(m("ctrl_changed","bb"),e.addEventListener("controllerchange",function(){q("sw:ctrl_changed");m("ctrl_changed","ld")})):h(g(":","sw:ctrl_changed","sw_unsupp"),1)})();(function(){var a=function(){m(b,"ld");var a=d.uex;J({feature:"page_proxy",command:"request_feature_tags"},{success:function(b){b=b.data; Array.isArray(b)&&b.forEach(function(a){"string"===typeof a?q(g(":","sw:ppft",a)):h(g(":","sw:ppft","invalid_tag"),1)});h(g(":","sw:ppft","success"),1);C&&C.isl&&k(a)&&a("at")},failure:function(a){h(g(":","sw:ppft","error:"+(a.statusCode||"ppft_error")),1)}})};if("requestIdleCallback"in d){var b=g(":","ppft","callback_ricb");d.requestIdleCallback(a,{timeout:1E3})}else b=g(":","ppft","callback_timeout"),setTimeout(a,0);m(b,"bb")})();var A={reg:{},unreg:{}};A.reg.mshop={action:D};A.reg.browser={action:D}; (function(a){var b=a.reg,c=a.unreg;e&&e.getRegistrations?(w.when("A").execute(function(b){if((a.reg.mshop||a.unreg.mshop)&&"function"===typeof n&&n(b)){var f=a.reg.mshop?"T1":"C",e=d.ue;e&&e.trigger?e.trigger("MSHOP_SW_CLIENT_446196",f):h("sw:mshop:wt:failed")}F(b,c,"unregister")}),x(d,"load",function(){w.when("A").execute(function(a){F(a,b,"register");E()})})):(G(b&&b.browser,c&&c.browser,"browser"),w.when("A").execute(function(a){"function"===typeof n&&n(a)&&G(b&&b.mshop,c&&c.mshop,"mshop_and")}))})(A)}))}}()})(window, document,Date);(function(b,a,J,C){"use strict";b._pd=function(){var c,v;return function(D,e,g,h,d,E,w,F,G){function x(b){try{return b()}catch(K){return!1}}function p(c){return b.matchMedia?b.matchMedia(c):{matches:!1}}function k(){if(l){var y=c.mobile||c.tablet?q.matches&&m.matches:m.matches;if(z!==y){var a={w:b.innerWidth||d.clientWidth,h:b.innerHeight||d.clientHeight};if(17<Math.abs(r.w-a.w)||50<Math.abs(r.h-a.h))r=a,(z=y)?h(d,"a-ws"):d.className=w(d,"a-ws")}}}function H(b){(l=b===C?!l:!!b)&&k()}function I(){return l} if(!v){v=!0;var t=function(){var b=["O","ms","Moz","Webkit"],c=a.createElement("div");return{testGradients:function(){return!0},test:function(a){var d=a.charAt(0).toUpperCase()+a.substr(1);a=(b.join(d+" ")+d+" "+a).split(" ");for(d=a.length;d--;)if(""===c.style[a[d]])return!0;return!1},testTransform3d:function(){return!0}}}();g=d.className;var A=/(^| )a-mobile( |$)/.test(g),B=/(^| )a-tablet( |$)/.test(g);c={audio:function(){return!!a.createElement("audio").canPlayType},video:function(){return!!a.createElement("video").canPlayType}, canvas:function(){return!!a.createElement("canvas").getContext},svg:function(){return!!a.createElementNS&&!!a.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect},offline:function(){return navigator.hasOwnProperty&&navigator.hasOwnProperty("onLine")&&navigator.onLine},dragDrop:function(){return"draggable"in a.createElement("span")},geolocation:function(){return!!navigator.geolocation},history:function(){return!(!b.history||!b.history.pushState)},webworker:function(){return!!b.Worker}, autofocus:function(){return"autofocus"in a.createElement("input")},inputPlaceholder:function(){return"placeholder"in a.createElement("input")},textareaPlaceholder:function(){return"placeholder"in a.createElement("textarea")},localStorage:function(){return"localStorage"in b&&null!==b.localStorage},orientation:function(){return"orientation"in b},touch:function(){return"ontouchend"in a},gradients:function(){return t.testGradients()},hires:function(){var a=b.devicePixelRatio&&1.5<=b.devicePixelRatio|| b.matchMedia&&b.matchMedia("(min-resolution:144dpi)").matches;F("hiRes"+(A?"Mobile":B?"Tablet":"Desktop"),a?1:0);return a},transform3d:function(){return t.testTransform3d()},touchScrolling:function(){return e(/Windowshop|android|OS ([5-9]|[1-9][0-9]+)(_[0-9]{1,2})+ like Mac OS X|SOFTWARE=([5-9]|[1-9][0-9]+)(.[0-9]{1,2})+.*DEVICE=iPhone|Chrome|Silk|Firefox|Trident.+?; Touch/i)},ios:function(){return e(/OS [1-9][0-9]*(_[0-9]*)+ like Mac OS X/i)&&!e(/trident|Edge/i)},android:function(){return e(/android.([1-9]|[L-Z])/i)&& !e(/trident|Edge/i)},mobile:function(){return A},tablet:function(){return B},rtl:function(){return"rtl"===d.dir}};for(var f in c)c.hasOwnProperty(f)&&(c[f]=x(c[f]));for(var u="textShadow textStroke boxShadow borderRadius borderImage opacity transform transition".split(" "),n=0;n<u.length;n++)c[u[n]]=x(function(){return t.test(u[n])});var l=!0,r={w:0,h:0},q=p("(orientation:landscape)"),m=c.mobile||c.tablet?p("(min-width:451px)"):p("(min-width:1250px)");q.addListener&&q.addListener(k);m.addListener&& m.addListener(k);var z;k();d.className=w(d,"a-no-js");h(d,"a-js");!e(/OS [1-8](_[0-9]*)+ like Mac OS X/i)||b.navigator.standalone||e(/safari/i)||h(d,"a-ember");g=[];for(f in c)c.hasOwnProperty(f)&&c[f]&&g.push("a-"+f.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()}));h(d,g.join(" "));d.setAttribute("data-aui-build-date",G);D.register("p-detect",function(){return{capabilities:c,localStorage:c.localStorage&&E,toggleResponsiveGrid:H,responsiveGridEnabled:I}});return c||{}}}}()})(window,document, Date);(function(g,l,C,D){function E(a){n&&n.tag&&n.tag(p(":","aui",a))}function m(a,b){n&&n.count&&n.count("aui:"+a,0===b?0:b||(n.count("aui:"+a)||0)+1)}function F(a){try{return a.test(navigator.userAgent)}catch(b){return!1}}function G(a){return"function"===typeof a}function u(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)}function p(a,b,c,f){b=b&&c?b+a+c:b||c;return f?p(a,b,f):b}function y(a,b,c){try{Object.defineProperty(a,b,{value:c,writable:!1})}catch(f){a[b]= c}return c}function O(a,b){a.className=P(a,b)+" "+b}function P(a,b){return(" "+a.className+" ").split(" "+b+" ").join(" ").replace(/^ | $/g,"")}function ca(a,b,c){var f=c=a.length,e=function(){f--||(H.push(b),I||(q?q.set(z):setTimeout(z,0),I=!0))};for(e();c--;)Q[a[c]]?e():(v[a[c]]=v[a[c]]||[]).push(e)}function da(a,b,c,f,e){var d=l.createElement(a?"script":"link");u(d,"error",f);e&&u(d,"load",e);a?(d.type="text/javascript",d.async=!0,c&&/AUIClients|images[/]I/.test(b)&&d.setAttribute("crossorigin", "anonymous"),d.src=b):(d.rel="stylesheet",d.href=b);l.getElementsByTagName("head")[0].appendChild(d)}function R(a,b){return function(c,f){function e(){da(b,c,d,function(b){J?m("resource_unload"):d?(d=!1,m("resource_retry"),e()):(m("resource_error"),a.log("Asset failed to load: "+c));b&&b.stopPropagation?b.stopPropagation():g.event&&(g.event.cancelBubble=!0)},f)}if(S[c])return!1;S[c]=!0;m("resource_count");var d=!0;return!e()}}function ea(a,b,c){for(var f={name:a,guard:function(c){return b.guardFatal(a, c)},guardTime:function(a){return b.guardTime(a)},logError:function(c,d,e){b.logError(c,d,e,a)}},e=[],d=0;d<c.length;d++)A.hasOwnProperty(c[d])&&(e[d]=K.hasOwnProperty(c[d])?K[c[d]](A[c[d]],f):A[c[d]]);return e}function w(a,b,c,f,e){return function(d,k){function n(){var a=null;f?a=k:G(k)&&(q.start=r(),a=k.apply(g,ea(d,h,l)),q.end=r());if(b){A[d]=a;a=d;for(Q[a]=!0;(v[a]||[]).length;)v[a].shift()();delete v[a]}q.done=!0}var h=e||this;G(d)&&(k=d,d=D);b&&(d=d?d.replace(T,""):"__NONAME__",L.hasOwnProperty(d)&& h.error(p(", reregistered by ",p(" by ",d+" already registered",L[d]),h.attribution),d),L[d]=h.attribution);for(var l=[],m=0;m<a.length;m++)l[m]=a[m].replace(T,"");var q=x[d||"anon"+ ++fa]={depend:l,registered:r(),namespace:h.namespace};d&&ha.hasOwnProperty(d);c?n():ca(l,h.guardFatal(d,n),d);return{decorate:function(a){K[d]=h.guardFatal(d,a)}}}}function U(a){return function(){var b=Array.prototype.slice.call(arguments);return{execute:w(b,!1,a,!1,this),register:w(b,!0,a,!1,this)}}}function M(a,b){return function(c, f){f||(f=c,c=D);var e=this.attribution;return function(){h.push(b||{attribution:e,name:c,logLevel:a});var d=f.apply(this,arguments);h.pop();return d}}}function B(a,b){this.load={js:R(this,!0),css:R(this)};y(this,"namespace",b);y(this,"attribution",a)}function V(){l.body?k.trigger("a-bodyBegin"):setTimeout(V,20)}"use strict";var t=C.now=C.now||function(){return+new C},r=function(a){return a&&a.now?a.now.bind(a):t}(g.performance),ia=r(),ha={},n=g.ue;E();E("aui_build_date:3.24.9-2024-11-08");var W={getItem:function(a){try{return g.localStorage.getItem(a)}catch(b){}}, setItem:function(a,b){try{return g.localStorage.setItem(a,b)}catch(c){}}},q=g._pSetI(),H=[],ja=[],I=!1,ka=navigator.scheduling&&"function"===typeof navigator.scheduling.isInputPending;var z=function(){for(var a=q?q.set(z):setTimeout(z,0),b=t();ja.length||H.length;)if(H.shift()(),q&&ka){if(150<t()-b&&!navigator.scheduling.isInputPending()||50<t()-b&&navigator.scheduling.isInputPending())return}else if(50<t()-b)return;q?q.clear(a):clearTimeout(a);I=!1};var Q={},v={},S={},J=!1;u(g,"beforeunload",function(){J= !0;setTimeout(function(){J=!1},1E4)});var T=/^prv:/,L={},A={},K={},x={},fa=0,X=String.fromCharCode(92),h=[],Y=!0,Z=g.onerror;g.onerror=function(a,b,c,f,e){e&&"object"===typeof e||(e=Error(a,b,c),e.columnNumber=f,e.stack=b||c||f?p(X,e.message,"at "+p(":",b,c,f)):D);var d=h.pop()||{};e.attribution=p(":",e.attribution||d.attribution,d.name);e.logLevel=d.logLevel;e.attribution&&console&&console.log&&console.log([e.logLevel||"ERROR",a,"thrown by",e.attribution].join(" "));h=[];Z&&(d=[].slice.call(arguments), d[4]=e,Z.apply(g,d))};B.prototype={logError:function(a,b,c,f){b={message:b,logLevel:c||"ERROR",attribution:p(":",this.attribution,f)};if(g.ueLogError)return g.ueLogError(a||b,a?b:null),!0;console&&console.error&&(console.log(b),console.error(a));return!1},error:function(a,b,c,f){a=Error(p(":",f,a,c));a.attribution=p(":",this.attribution,b);throw a;},guardError:M(),guardFatal:M("FATAL"),guardCurrent:function(a){var b=h[h.length-1];return b?M(b.logLevel,b).call(this,a):a},guardTime:function(a){var b= h[h.length-1],c=b&&b.name;return c&&c in x?function(){var b=r(),e=a.apply(this,arguments);x[c].async=(x[c].async||0)+r()-b;return e}:a},log:function(a,b,c){return this.logError(null,a,b,c)},declare:w([],!0,!0,!0),register:w([],!0),execute:w([]),AUI_BUILD_DATE:"3.24.9-2024-11-08",when:U(),now:U(!0),trigger:function(a,b,c){var f=t();this.declare(a,{data:b,pageElapsedTime:f-(g.aPageStart||NaN),triggerTime:f});c&&c.instrument&&N.when("prv:a-logTrigger").execute(function(b){b(a)})},handleTriggers:function(){this.log("handleTriggers deprecated")}, attributeErrors:function(a){return new B(a)},_namespace:function(a,b){return new B(a,b)},setPriority:function(a){Y?Y=!1:this.log("setPriority only accept the first call.")}};var k=y(g,"AmazonUIPageJS",new B);var N=k._namespace("PageJS","AmazonUI");N.declare("prv:p-debug",x);k.declare("p-recorder-events",[]);k.declare("p-recorder-stop",function(){});y(g,"P",k);V();if(l.addEventListener){var aa;l.addEventListener("DOMContentLoaded",aa=function(){k.trigger("a-domready");l.removeEventListener("DOMContentLoaded", aa,!1)},!1)}var ba=l.documentElement,la=g._pd(k,F,u,O,ba,W,P,m,"3.24.9-2024-11-08");F(/UCBrowser/i)||la.localStorage&&O(ba,W.getItem("a-font-class"));k.declare("a-event-revised-handling",!1);g._sw(N,p,F,X,m,n,E,G,u,k);k.declare("a-fix-event-off",!1);m("pagejs:pkgExecTime",r()-ia)})(window,document,Date); (function(b){function q(a,e,d){function g(a,b,c){var f=Array(e.length);~l&&(f[l]={});~m&&(f[m]=c);for(c=0;c<n.length;c++){var g=n[c],h=a[c];f[g]=h}for(c=0;c<p.length;c++)g=p[c],h=b[c],f[g]=h;a=d.apply(null,f);return~l?f[l]:a}"string"!==typeof a&&b.P.error("C001");-1===a.indexOf("@")&&-1<a.indexOf("/")&&(-1<a.indexOf("es3")||-1<a.indexOf("evergreen"))&&(a=a.substring(0,a.lastIndexOf("/")));if(!r[a]){r[a]=!0;d||(d=e,e=[]);a=a.split(":",2);var c=a[1]?a[0]:void 0,f=(a[1]||a[0]).replace(/@capability\//, "@c/"),k=c?b.P._namespace(c):b.P,t=!f.lastIndexOf("@c/",0),u=!f.lastIndexOf("@m/",0),n=[];a=[];var p=[],v=[],m=-1,l=-1;for(c=0;c<e.length;c++){var h=e[c];"module"===h&&k.error("C002");"exports"===h?l=c:"require"===h?m=c:h.lastIndexOf("@p/",0)?h.lastIndexOf("@c/",0)&&h.lastIndexOf("@m/",0)?(n.push(c),a.push("mix:"+h)):(p.push(c),v.push(h)):(n.push(c),a.push(h.substr(3)))}k.when.apply(k,a).register("mix:"+f,function(){var a=[].slice.call(arguments);return t||u||~m||p.length?{capabilities:v,cardModuleFactory:function(b, c){b=g(a,b,c);b.P=k;return b},require:~m?q:void 0}:g(a,[],function(){})});(t||u)&&k.when("mix:@amzn/mix.client-runtime","mix:"+f).execute(function(a,b){a.registerCapabilityModule(f,b)});k.when("mix:"+f).register("xcp:"+f,function(a){return a});var q=function(a,b,c){try{var e=-1<f.indexOf("/")?f.split("/")[0]:f,d=a[0],g=d.lastIndexOf("./",0)?d:e+"/"+d.substr(2),h=g.lastIndexOf("@p/",0)?"mix:"+g:g.substr(3);k.when(h).execute(function(a){try{b(a)}catch(x){c(x)}})}catch(w){c(w)}}}}"use strict";var r= {};b.mix_d||((b.Promise?P:P.when("3p-promise")).register("@p/promise-is-ready",function(a){b.Promise=b.Promise||a}),(Array.prototype.includes?P:P.when("a-polyfill")).register("@p/polyfill-is-ready",function(){}),b.mix_d=function(a,b,d){P.when("@p/promise-is-ready","@p/polyfill-is-ready").execute("@p/mix-d-deps",function(){q(a,b,d)})},b.xcp_d=b.mix_d,P.when("mix:@amzn/mix.client-runtime").execute(function(a){P.declare("xcp:@xcp/runtime",a)}));b.mixTimeout||(b.mixTimeout=function(a,e,d){b.mixCardInitTimeouts|| (b.mixCardInitTimeouts={});b.mixCardInitTimeouts[e]&&clearTimeout(b.mixCardInitTimeouts[e]);b.mixCardInitTimeouts[e]=setTimeout(function(){P.log("Client-side initialization timeout","WARN",a)},d)});b.mix_csa_map=b.mix_csa_map||{};b.mix_csa_internal=b.mix_csa_internal||function(a,e,d){return b.mix_csa_map[e]=b.mix_csa_map[e]||b.csa(a,d)};b.mix_csa_internal_key=b.mix_csa_internal_key||function(a,b){for(var d="",e=0;e<b.length;e++){var c=b[e];void 0!==a[c]&&"object"!==typeof a[c]&&(d+=c+":"+a[c]+",")}if(!d)throw Error("bad mix-csa key gen."); return d};b.mix_csa_event=b.mix_csa_event||function(a){try{var e=b.mix_csa_internal_key(a,["producerId"])}catch(d){return P.logError(d,"MIX C005","WARN",void 0),function(){}}try{return b.mix_csa_internal("Events",e,a)}catch(d){return P.logError(d,"MIX C004","WARN",e),function(){}}};b.mix_csa=b.mix_csa||function(a,e){try{e=e||"";var d=document.querySelectorAll(a);if(1<d.length)for(var g=0;g<d.length;g++){if(d[g].querySelector(e)){var c=d[g];break}}else 1===d.length&&(c=d[0]);if(!c)throw Error(" "); return b.mix_csa_internal("Content",a,{element:c})}catch(f){return P.logError(f,"MIX C004","WARN",a),function(){}}}})(window); (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://m.media-amazon.com/images/I/61xJcNKKLXL.js?AUIClients/AmazonUIjQuery'); (window.AmazonUIPageJS ? AmazonUIPageJS : P).when('sp.load.js').execute(function() { (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://m.media-amazon.com/images/I/11zuylp74DL._RC|11Y+5x+kkTL.js,51cR93oXsVL.js,11yKORv-GTL.js,11GgN1+C7hL.js,01+z+uIeJ-L.js,01VRMV3FBdL.js,21u+kGQyRqL.js,012FVc3131L.js,11aD5q6kNBL.js,11rRjDLdAVL.js,51LgVZTDoFL.js,11nAhXzgUmL.js,119kvzYmMJL.js,1110g-SvlBL.js,11npBNHo-jL.js,21eKR4hvwNL.js,0190vxtlzcL.js,51P8J4TsllL.js,01JYHc2oIlL.js,31nfKXylf6L.js,01ktRCtOqKL.js,01ASnt2lbqL.js,11bEz2VIYrL.js,31o2NGTXThL.js,01rpauTep4L.js,31lTOzOlAqL.js,01tvglXfQOL.js,11Rf82oewsL.js,014gnDeJDsL.js,01A2fK8tgRL.js_.js?AUIClients/AmazonUI'); (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://m.media-amazon.com/images/I/51iGGT8JMaL.js?AUIClients/CardJsRuntimeBuzzCopyBuild'); }); </script> <!-- sp:end-feature:aui-assets --> <!-- sp:feature:nav-inline-css --> <!-- NAVYAAN CSS --> <style type="text/css"> .nav-sprite-v1 .nav-sprite, .nav-sprite-v1 .nav-icon { background-image: url(https://m.media-amazon.com/images/G/01/gno/sprites/nav-sprite-global-1x-reorg-privacy._CB541706272_.png); background-position: 0 1000px; background-repeat: repeat-x; } .nav-spinner { background-image: url(https://m.media-amazon.com/images/G/01/javascripts/lib/popover/images/snake._CB485935611_.gif); background-position: center center; background-repeat: no-repeat; } .nav-timeline-icon, .nav-access-image, .nav-timeline-prime-icon { background-image: url(https://m.media-amazon.com/images/G/01/gno/sprites/timeline_sprite_1x._CB485945973_.png); background-repeat: no-repeat; } </style> <link rel="stylesheet" href="https://images-na.ssl-images-amazon.com/images/I/41UUdmm7zEL._RC|71twr1AIM7L.css,51bNVko77xL.css,21-GKunH78L.css,11pThoX8KIL.css,21Hc1s0-E4L.css,31YZpDCYJPL.css,21DwGGPS1eL.css,41EtvNY2OrL.css,110Nj+wUGYL.css,31K0jc2KvHL.css,01H8CHB5aiL.css,21KQnzhmfTL.css,41yKpEQVJkL.css_.css?AUIClients/NavDesktopUberAsset#desktop.488657-T2.878681-T1.1089549-T1.310484-T1.1088933-T1.836079-T1.1102424-T1" /> <!-- sp:end-feature:nav-inline-css --> <!-- sp:feature:host-assets --> <style> #gw-desktop-herotator,#gw-desktop-herotator .a-carousel-viewport{height:300px}#gw-desktop-herotator.tall{z-index:0}#gw-desktop-herotator.tall,#gw-desktop-herotator.tall .a-carousel-controls{max-height:230px}#gw-desktop-herotator.tall .a-carousel-viewport{height:auto!important}#gw-desktop-herotator.tall .a-carousel-left,#gw-desktop-herotator.tall .a-carousel-right{max-height:250px}#gw-desktop-herotator.tall .a-carousel-viewport::before{background:linear-gradient(-180deg,rgba(234,237,237,0),#E3E6E6);bottom:0;content:"";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00E3E6E6', endColorstr='#E3E6E6', GradientType=0);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#00E3E6E6', endColorstr='#E3E6E6',GradientType=0)";left:0;pointer-events:none;position:absolute;right:0;top:250px;z-index:1}#gw-desktop-herotator.tall .a-carousel-container{overflow:visible}#gw-desktop-herotator.tall.single-slide-hero,#gw-desktop-herotator.tall.single-slide-hero .a-carousel-viewport{height:auto!important}#gw-desktop-herotator.tall.single-slide-hero,#gw-desktop-herotator.tall.single-slide-hero .a-carousel-controls{max-height:none!important;height:auto!important}#gw-desktop-herotator.tall.single-slide-hero{margin-bottom:-370px!important}#gw-desktop-herotator.tall.single-slide-hero .a-carousel-viewport::before{top:auto;bottom:0;height:350px} </style> <link rel="stylesheet" href="https://images-na.ssl-images-amazon.com/images/I/41945FR1dZL.css?AUIClients/AmazonGatewayAuiAssets&IaVMOKWd#1011660-T1" /> <style> .gw-card-layout .a-cardui{background:#fff;height:100%;position:relative;margin-bottom:0;margin-top:0;overflow:hidden;padding-top:20px}.gw-card-layout .a-cardui .a-cardui-header{padding:0 20px;margin-bottom:10px}.gw-card-layout .a-cardui .a-cardui-footer{padding:0 20px;margin-bottom:20px;position:absolute;bottom:0;width:100%}.gw-card-layout .a-cardui .a-cardui-body{padding:0 20px 56px 20px;margin-bottom:0}.gw-card-layout .a-cardui .a-cardui-body:last-child{padding-bottom:20px}.gw-card-layout .a-cardui:last-child{margin-bottom:0}.a-lt-ie9 .gw-card-layout .a-cardui .a-cardui-body{padding-bottom:20px}.gw-card-layout{font-size:13px!important;line-height:19px!important}.gw-card-layout .a-size-base{font-size:13px!important;line-height:19px!important}.gw-card-layout .a-size-small{font-size:12px!important;line-height:18px!important}.gw-card-layout .a-size-base-plus{font-size:15px!important;line-height:21px!important}.gw-card-layout .a-size-medium{font-size:17px!important;line-height:21.34px!important}.gw-card-layout .a-size-large{font-size:21px!important;line-height:27.3px!important}.gw-card-layout h2{font-size:21px!important;line-height:27.3px!important}.truncate-1line,.truncate-2line{display:block;overflow:hidden;text-overflow:ellipsis;-ms-text-overflow:ellipsis}.truncate-1line{white-space:nowrap}.truncate-2line{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:38px}.truncate-2line.a-size-base{max-height:38px}.truncate-2line.a-size-small{max-height:36px}.truncate-2line.a-size-base-plus{max-height:42px}.truncate-2line.a-size-medium{max-height:42.67px}.truncate-2line.a-size-large{max-height:54.6px}h2.truncate-2line{max-height:54.6px}.gw-card-layout .a-cardui.gw-media-card{padding-top:0;color:#fff}.gw-card-layout .a-cardui.gw-media-card .a-cardui-footer,.gw-card-layout .a-cardui.gw-media-card .a-cardui-header{position:absolute;left:0;z-index:1;width:100%}.gw-card-layout .a-cardui.gw-media-card .a-cardui-header{margin-top:20px;padding:0 20px;top:0}.gw-card-layout .a-cardui.gw-media-card .a-cardui-header h3{margin-right:340px}.gw-card-layout .a-cardui.gw-media-card .a-cardui-footer{margin-bottom:20px;padding:0 20px;bottom:0}.gw-card-layout .a-cardui.gw-media-card .a-cardui-footer .a-link-normal{color:#fff}.gw-card-layout .a-cardui.gw-media-card .a-cardui-body{padding:0;width:100%;height:100%;overflow:hidden;position:relative}.gw-card-layout .a-cardui.gw-media-card .asinImage{position:absolute;top:0;bottom:0;right:20px;margin:auto}.gw-card-layout .a-cardui.gw-media-card .asinImage img{box-shadow:0 2px 6px 0 rgba(0,0,0,.5)}.gw-card-layout .a-cardui.gw-media-card .asinBackground{width:100%;height:100%;overflow:hidden;background-repeat:no-repeat;background-position:center right;background-size:cover;filter:blur(10px);-webkit-filter:blur(10px);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius='10px');-ms-filter:"progid:DXImageTransform.Microsoft.Blur(PixelRadius='10px')";transform:scale(1.1);-webkit-transform:scale(1.1)}.gw-card-layout .a-cardui.gw-media-card .backgroundGradient{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to right,#111,rgba(17,17,17,.2));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#111111, endColorstr=#17171733, GradientType=1);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#111111, endColorstr=#17171733, GradientType=1)"}.gw-card-layout[data-flow-dir="h"]{display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap}.gw-card-layout[data-flow-dir="h"]>.gw-col{height:420px;min-height:420px;-webkit-flex:1 0 290px;flex:1 0 290px;padding-left:10px;padding-right:10px;min-width:290px}.gw-card-layout[data-flow-dir="h"] .card-flow-row-break{-webkit-flex:1 0 100%;flex:1 0 100%}.gw-card-layout[data-flow-dir="h"]>.gw-col[data-col-span-ws="2"]{-webkit-flex:2 0 580px;flex:2 0 580px}.gw-card-layout[data-flow-dir="h"]>.gw-col[data-col-span-ws="4"]{-webkit-flex:1 0 100%;flex:1 0 100%}.gw-card-layout[data-flow-dir="h"] .gw-card-layout[data-flow-dir="v"]{display:-webkit-flex;display:flex;-webkit-flex-flow:column nowrap;flex-flow:column nowrap;margin-top:-10px;margin-bottom:-10px}.gw-card-layout[data-flow-dir="v"]>.gw-row{-webkit-flex:1 0 0;flex:1 0 0;margin-top:10px;margin-bottom:10px}.gw-card-layout [data-order-ws="1"]{-webkit-order:1;order:1}.gw-card-layout [data-order-ws="2"]{-webkit-order:2;order:2}.gw-card-layout [data-order-ws="3"]{-webkit-order:3;order:3}.gw-card-layout [data-order-ws="4"]{-webkit-order:4;order:4}.gw-card-layout [data-order-ws="5"]{-webkit-order:5;order:5}.gw-card-layout [data-order-ws="6"]{-webkit-order:6;order:6}.gw-card-layout [data-order-ws="7"]{-webkit-order:7;order:7}.gw-card-layout [data-order-ws="8"]{-webkit-order:8;order:8}.gw-card-layout [data-order-ws="9"]{-webkit-order:9;order:9}.gw-card-layout [data-order-ws="10"]{-webkit-order:10;order:10}.gw-card-layout [data-order-ws="11"]{-webkit-order:11;order:11}.gw-card-layout [data-order-ws="12"]{-webkit-order:12;order:12}.gw-card-layout [data-order-ws="13"]{-webkit-order:13;order:13}.gw-card-layout .gw-col.gw-fixed-col{min-width:320px}@media (min-width:1240px){.gw-card-layout>hr:last-of-type{display:none}}@media (max-width:1239px){.gw-card-layout[data-flow-dir="h"]>.gw-col{-webkit-flex-basis:33.33333%;flex-basis:33.33333%;min-width:33.33333%}.gw-card-layout[data-flow-dir="h"]>.gw-col[data-col-span-sm="2"]{-webkit-flex:2 0 66.66667%;flex:2 0 66.66667%}.gw-card-layout[data-flow-dir="h"]>.gw-col[data-col-span-sm="3"]{-webkit-flex:1 0 100%;flex:1 0 100%}.gw-card-layout [data-order-sm="1"]{-webkit-order:1;order:1}.gw-card-layout [data-order-sm="2"]{-webkit-order:2;order:2}.gw-card-layout [data-order-sm="3"]{-webkit-order:3;order:3}.gw-card-layout [data-order-sm="4"]{-webkit-order:4;order:4}.gw-card-layout [data-order-sm="5"]{-webkit-order:5;order:5}.gw-card-layout [data-order-sm="6"]{-webkit-order:6;order:6}.gw-card-layout [data-order-sm="7"]{-webkit-order:7;order:7}.gw-card-layout [data-order-sm="8"]{-webkit-order:8;order:8}.gw-card-layout [data-order-sm="9"]{-webkit-order:9;order:9}.gw-card-layout [data-order-sm="10"]{-webkit-order:10;order:10}.gw-card-layout [data-order-sm="11"]{-webkit-order:11;order:11}.gw-card-layout [data-order-sm="12"]{-webkit-order:12;order:12}.gw-card-layout [data-order-sm="13"]{-webkit-order:13;order:13}.gw-card-layout .gw-col.gw-fixed-col{min-width:none}}.gw-card-layout[data-flow-dir="h"]>.card-flow-row-break{height:20px;margin:0;border:none}.gw-card-layout[data-flow-dir="h"]>[data-display-at]{display:none}.gw-card-layout[data-flow-dir="h"]>[data-display-at*=ws]{display:block}.gw-card-layout[data-flow-dir="h"][data-grid-breakpoint=ws]>[data-hide-at-ws]{display:none!important}.gw-card-layout[data-flow-dir="h"] .gw-auto-height{height:auto!important;min-height:0!important}@media (max-width:1239px){.gw-card-layout[data-flow-dir="h"]{min-width:919px}.gw-card-layout[data-flow-dir="h"]>[data-display-at]{display:none}.gw-card-layout[data-flow-dir="h"]>[data-display-at*=sm]{display:block}.gw-card-layout[data-flow-dir="h"][data-grid-breakpoint=sm]>[data-hide-at-sm]{display:none!important}} </style> <script> //////////////////////////////////////////// // BEGIN PACKAGE ///////////////////////// // BEGIN FILE GWI/event-manager.js ///////////////////////// /* Full source (including license, if applicable) included below. */ /** * This contains GWI event manager utility */ // FIXME: Good javascript code should work in strict mode // "use strict"; var GWI = (function(window) { var self = {}, latencyRegistry= {}, NOOP = function() {}; var eventManager = (function() { var manager = this, eventRegistry = {}, globalHandlers = []; function Subscriber(eventIds, handler) { var subscriber = this; var eventObjs = []; for (var i = 0; i < eventIds.length; i++) { eventObjs.push({ id : eventIds[i], occured : false }); } function invokeHandler() { var occured = true; for (var i = 0; i < eventObjs.length; i++) { occured = occured && eventObjs[i].occured; } return occured; } subscriber.notify = function(eventId) { for (var i = 0; i < eventObjs.length; i++) { var eObj = eventObjs[i]; if (eObj.id === eventId) { eObj.occured = true; } } if (invokeHandler()) { handler(); } }; } function Event(eventId, occured) { var event = this; var subscribers = []; event.time = 0; event.occured = occured; setEventTime(); function setEventTime() { if(event.occured) { // see uet function in // https://code.amazon.com/packages/ClickstreamBrowserDataJavaScript/blobs/mainline/--/javascript/head-open.js event.time = new Date().getTime(); } } event.notifySubscribers = function() { event.occured = true; setEventTime(); // notify all the subscribers for (var i = 0; i < subscribers.length; i++) { subscribers[i].notify(eventId); } }; event.registerSubscriber = function(subscriber) { if (subscriber !== null && subscriber !== undefined) { subscribers.push(subscriber); } if (event.occured) { subscriber.notify(eventId); } }; } manager.registerEvent = function(eventId, occured) { if (eventRegistry[eventId] === undefined) { eventRegistry[eventId] = new Event(eventId, occured); for (var i = 0; i < globalHandlers.length; i++) { var subscriber = new Subscriber([eventId], globalHandlers[i]); eventRegistry[eventId].registerSubscriber(subscriber); }; } }; manager.registerSubscriber = function(eventIds, handler) { var subscriber = new Subscriber(eventIds, handler); for (var i = 0; i < eventIds.length; i++) { var eventId = eventIds[i]; manager.registerEvent(eventId, false); eventRegistry[eventId].registerSubscriber(subscriber); } return subscriber; }; manager.notifySubscribers = function(eventId) { eventRegistry[eventId].notifySubscribers(); }; manager.getUnoccuredEvents = function(eventIds) { var unOccuredEvents = [], i; for (i = 0; i < eventIds.length; i++) { var eventId = eventIds[i]; if (eventRegistry[eventId] === undefined || (eventRegistry[eventId] && !eventRegistry[eventId].occured)) { unOccuredEvents.push(eventId); } } return unOccuredEvents; }; manager.getMaxTime = function(eventIds) { var time = 0, i; for (i = 0; i < eventIds.length; i++) { var eventId = eventIds[i]; if(eventRegistry[eventId] && eventRegistry[eventId].time > time) { time = eventRegistry[eventId].time; } } return time; }; manager.addGlobalHanlder = function(handler) { if (typeof handler === "function") { globalHandlers.push(handler); } }; return manager; })(); self.whenAll = function(eventIds, handler) { return eventManager.registerSubscriber(eventIds, handler); }; self.whenAny = function(eventIds, handler) { var subscribers = []; for (var i = 0; i < eventIds.length; i++) { var eventId = eventIds[i]; subscribers.push(self.whenAll([ eventId ], handler)); } return subscribers; }; // Global Event handler registered using this function self.onEvent = eventManager.addGlobalHanlder; self.register = function(eventId) { // register eventId and invoke subscribers eventManager.registerEvent(eventId, true); eventManager.notifySubscribers(eventId); }; self.recordLatency = function(scope) { if(!latencyRegistry[scope]){ var message = scope + ' fired at '; window.GWI && GWI.util && GWI.util.debugLog(message, true); latencyRegistry[scope] = true; window.uet && uet('cf', scope, { wb : 1 }); window.uex && uex('ld', scope, { wb : 1 }); } }; self.registerX1Once = function(P) { P && P.register('x1'); self.registerX1Once = NOOP; }; self.fireX2Once = function(P, time) { if (window.uet) { // No documentation, https://tt.amazon.com/0143495131 uet('x2', undefined, undefined, time); } self.registerX2Once(P); self.fireX2Once = NOOP; }; self.registerX2Once = function(P) { self.registerX2Once = NOOP; // global event can cause this being called recursively // so set the function to empty first before register any event P && P.register('x2'); self.register('x2'); }; self.regGwAtfReadyOnce = function(P) { P && P.register('gwAtfReady'); self.register('gwAtfReady'); self.regGwAtfReadyOnce = NOOP; }; self.getUnoccuredEvents = eventManager.getUnoccuredEvents; self.getMaxTime = eventManager.getMaxTime; return self; })(window); ///////////////////////// // END FILE GWI/event-manager.js ///////////////////////// ///////////////////////// // BEGIN FILE GWI/gw-event-manager.js ///////////////////////// /* Full source (including license, if applicable) included below. */ "use strict"; P.register("gw-event-manager", function(){ return { whenAll: window.GWI.whenAll }; }); ///////////////////////// // END FILE GWI/gw-event-manager.js ///////////////////////// ///////////////////////// // BEGIN FILE GWI/preload.js ///////////////////////// /* Full source (including license, if applicable) included below. */ "use strict"; GWI.preload = function(src, onload) { if (!src) { return; } var img = new Image(); img.onload = function() { onload && onload(); }; img.src = src; return img.complete; }; ///////////////////////// // END FILE GWI/preload.js ///////////////////////// ///////////////////////// // BEGIN FILE GWI/images.js ///////////////////////// /* Full source (including license, if applicable) included below. */ "use strict"; GWI.instrumentImages = function(scope, imgStr){ var instrument = {}; if (scope && imgStr) { instrument.imgArray = imgStr.split(" "); instrument.totalImgs = instrument.imgArray.length; instrument.scope = scope + '-visible'; instrument.imgReady = function() { instrument.totalImgs--; if(instrument.totalImgs === 0){ GWI.recordLatency(instrument.scope); GWI.register(instrument.scope); } } for (var i = 0; i < instrument.imgArray.length; i++) { var src = instrument.imgArray[i]; GWI.preload(src, instrument.imgReady); } } return instrument; }; ///////////////////////// // END FILE GWI/images.js ///////////////////////// ///////////////////////// // BEGIN FILE GWI/util.js ///////////////////////// /* Full source (including license, if applicable) included below. */ /** * Billboard img instrumentation */ "use strict"; GWI.util = (function () { var GWI_DATA = 'data-gwi'; var debugEnabled = undefined; function jsonData(data) { return window.JSON && JSON.parse && JSON.parse(data); } return { logCounter: function(counter){ if(typeof ue == 'object' && typeof(ue.count) == 'function') { ue.count(counter, (ue.count(counter) || 0) + 1); } }, logScope : function(scope) { var gwi = window.GWI; if (scope && gwi) { gwi.recordLatency(scope); gwi.register(scope); } }, getParent : function(id) { var obj = document.getElementById(id); return obj && obj.parentElement; }, gwiData : function(el) { return el && jsonData(el.getAttribute(GWI_DATA)) || {}; }, debugLog : function(message, recordTime) { if (!debugEnabled) { window.P && P.when('isDebug').execute(function(isDebug) { debugEnabled = isDebug ? isDebug : false; }); } if (debugEnabled === true) { var elapsedTime = recordTime ? Date.now() - window.performance.timing.navigationStart : ''; console.log('MetricsDebug: ', message + elapsedTime); } } } }()); ///////////////////////// // END FILE GWI/util.js ///////////////////////// ///////////////////////// // BEGIN FILE GWI/billboard.js ///////////////////////// /* Full source (including license, if applicable) included below. */ /** * Billboard img instrumentation */ "use strict"; GWI.BillboardWidget = function BillboardWidget(id, images) { if(window.GWI && window.GWI.util){ images = images || []; var gwiUtil = window.GWI.util, i, root = gwiUtil.getParent(id), gwiData = gwiUtil.gwiData(root), loaded = []; function verifyLoaded() { for(var j = 0; j < loaded.length; ++j) { if(!loaded[j].complete) { return; } } gwiUtil.logScope(gwiData['visible']); gwiUtil.logScope(gwiData['active']); } for(i = 0; i < images.length; ++i) { (function(i) { var img = new Image(); img.onload = verifyLoaded; img.src = images[i]; loaded[i] = img; }(i)); } verifyLoaded(); } }; ///////////////////////// // END FILE GWI/billboard.js ///////////////////////// ///////////////////////// // BEGIN FILE GWI/asset-util.js ///////////////////////// /* Full source (including license, if applicable) included below. */ "use strict"; GWI.AssetUtil = (function() { var assetPreloadRegistry = { 'image' : function(src) { if (src) { window.GwInstrumentation && window.GwInstrumentation.CF(src); var WU = window.ue; if (typeof WU === 'object' && typeof WU.count === 'function') { var counter = 'gw-preload-img'; WU.count(counter, (WU.count(counter) || 0) + 1); } } } }; function assetLoadMapper(asset) { if (asset && asset.src && asset.type && typeof assetPreloadRegistry[asset.type] === 'function') { assetPreloadRegistry[asset.type](asset.src); } } function load(assets) { assets = assets || []; for (var i = 0; i < assets.length; i++) { assetLoadMapper(assets[i]); } } return { load : load }; })(); ///////////////////////// // END FILE GWI/asset-util.js ///////////////////////// ///////////////////////// // BEGIN FILE GWI/card-instrumentation.js ///////////////////////// /* Full source (including license, if applicable) included below. */ /** * Card instrumentation */ "use strict"; GWI.Card = (function (window, document) { var visibleSlots = []; // https://w.amazon.com/bin/view/ClientSideMetrics/UserDocs/JavascriptErrors#ueLogError function logJsError(exception, additionalInfo) { if (window.ueLogError) { window.ueLogError(exception, additionalInfo); } } function isVisible(element) { return (typeof(element.checkVisibility) == 'function') && element.checkVisibility(); } // Auto called by Card rendering platform for individual widget function autoInstVisible(uniqueId) { if(window.GWI && GWI.util){ // find all visible images under uniqueId var gwiUtil = GWI.util, root = gwiUtil.getParent(uniqueId), widget = document.getElementById(uniqueId), imgs = widget && widget.getElementsByTagName("img") || [], i, j, scope = root && root.id, loaded = []; // if we failed to get id, log a counter and return if(!scope || 0 === scope.length || scope === uniqueId) { gwiUtil.logCounter('gatewayCardInstrumentationFail'); return; } for (i = 0; i < imgs.length; i++) { gwiUtil.logCounter('gatewayCardImage'); var img = imgs[i]; img.onload = verifyLoaded; loaded[i] = img; img.onerror = logImageError; } function verifyLoaded() { for(j = 0; j < loaded.length; ++j) { if(!loaded[j].complete) { return; } } gwiUtil.logScope(scope + '-visible'); if (!visibleSlots.includes(scope)) { visibleSlots.push(scope); } } function logImageError() { var cardName = root.getAttribute('data-csa-c-painter'); var additionalInfo = { logLevel: 'ERROR', attribution: 'gatewayCardImageError', message: cardName + ': ', // prefix of error message } logJsError(new Error('Image failed to load ' + img.src), additionalInfo); gwiUtil.logCounter('gatewayCardImageError'); } verifyLoaded(); } } // Auto called by Card rendering platform for individual widget function autoInstActive(uniqueId) { if(window.GWI && GWI.util){ // find all visible images under uniqueId var gwiUtil = GWI.util, root = gwiUtil.getParent(uniqueId), scope = root && root.id; // if we failed to get id, log a counter and return if(!scope || 0 === scope.length || scope === uniqueId) { gwiUtil.logCounter('gatewayCardInstrumentationFail'); return; } gwiUtil.logScope(scope + '-active'); } } function logLoadedNotVisibleImages() { if (window.GWI && GWI.util) { visibleSlots.forEach(function(slot) { var gwiUtils = GWI.util, card = document.getElementById(slot), images = card && Array.prototype.slice.call(card.getElementsByTagName('img')) || [], notVisibleImages = []; // Do not check image visibility for slots that are not visible if (!isVisible(card)) { return; } gwiUtils.logCounter('gatewayCardImageLoaded'); // Count total Cards with loaded images as baseline images.forEach(function(img) { if (!isVisible(img)) { notVisibleImages.push(img.src); } }) if (notVisibleImages.length) { var cardName = card.getAttribute('data-csa-c-painter'), placementId = card.getAttribute('data-pf_rd_p'); gwiUtils.logCounter('gatewayCardImageLoadedNotVisible'); var additionalInfo = { logLevel: 'WARN', attribution: 'gatewayCardImageLoadedNotVisible', message: cardName + ': ', // prefix of error message } logJsError(new Error("Image(s) loaded, but not visible in slot " + slot + ". PlacementId: " + placementId + ". Images: " + notVisibleImages), additionalInfo); } }) } } return { autoInstVisible: autoInstVisible, autoInstActive: autoInstActive, logLoadedNotVisibleImages: logLoadedNotVisibleImages, } }(window, document)); ///////////////////////// // END FILE GWI/card-instrumentation.js ///////////////////////// ///////////////////////// // BEGIN FILE derived/atf-widget.js ///////////////////////// /* Full source (including license, if applicable) included below. */ "use strict"; P.register('atfWidgetComponent', function() { var DESKTOP_ROW = "#gw-content-grid .gwi-row", NEVER_EVENT = "gw-never-event", ATF_ROW_COUNT = 2; function getAtfWidgets(atfRowCount) { // NodeList to Array for easier processing var gridCols = Array.prototype.slice.call(getWidgetsFromSelector('#gw-card-layout .gw-col')), i, j, atfWidgets = [], cardLayout = document.getElementById('gw-card-layout'), // Assume it is a wide layout if breakpoint undefined gridBreakpoint = (cardLayout && cardLayout.dataset && cardLayout.dataset.gridBreakpoint ) ? cardLayout.dataset.gridBreakpoint : 'ws', gridWidth = gridBreakpoint === 'xs'? 2: gridBreakpoint === 'sm' ? 3 : 4, gridOrder = 'data-order-' + gridBreakpoint, atfColCount = 0, additionalRow = 0, gridTotalSize = 0; for (i = 0; i < gridCols.length; i++) { gridTotalSize += getGridColSize(gridCols[i], gridBreakpoint); } for (i = atfRowCount; i >= 0; i--) { if (gridTotalSize >= i * gridWidth) { atfColCount = i * gridWidth; additionalRow = atfRowCount - i; break; } } // Make sure first N cards are the ones we care //TODO filter out gridCols based on gridOrder attribute presense before sorting gridCols.sort(function(a, b){return parseInt(a.getAttribute(gridOrder)) - parseInt(b.getAttribute(gridOrder))}); var currColSize = 0; i = 0; while (currColSize < atfColCount) { currColSize += getGridColSize(gridCols[i], gridBreakpoint); Array.prototype.push.apply(atfWidgets, getWidgetsFromCol(gridCols[i])); i++; } // If too many grids punt, we will need to consider desktop rows // as part of the ATF if (additionalRow > 0) { var rowWidgets = getRowWidgets(); if (rowWidgets && rowWidgets.length >= additionalRow) { for (i = 0; i < additionalRow; i++ ) { Array.prototype.push.apply(atfWidgets, rowWidgets[i]); } } else { // If row widget not flushed, we should not fire af // af/gwAtfReady will be registed when page load in this case in AmazonGatewayHackAssets atfWidgets.push(NEVER_EVENT); } } return atfWidgets; } function getWidgetsFromCol(gridCol){ // If there are multipule rows in a Column var rowWidgets = gridCol.querySelectorAll(".gw-row"), widgets = []; for (var j = 0; j < rowWidgets.length; j++) { if (!containsAd(rowWidgets[j])) { widgets.push(rowWidgets[j].id); } } // If this is the only widget current col contains // Also filter out Ads slots because they do not report latency /* Importing derived/_checkCsmDecoration.js */ if (hasClass(gridCol, 'celwidget') && !containsAd(gridCol)) { widgets.push(gridCol.id); } /* Done importing derived/_checkCsmDecoration.js */ return widgets; } function containsAd(element) { // Using detection logic suggested by Ads team https://issues.amazon.com/GW-5824 return element.getElementsByClassName('text/x-dacx-safeframe').length > 0 || element.getElementsByClassName('text/x-APE-lightAds').length > 0 || element.getElementsByTagName('iframe').length > 0; } function getGridColSize(gridCol, gridBreakpoint) { var sizeAttr = parseInt(gridCol.getAttribute('data-col-span-' + gridBreakpoint)); return sizeAttr > 1 ? sizeAttr : 1; } function getRowWidgets() { var layoutRows = [], rows = getWidgetsFromSelector(DESKTOP_ROW), i; for (i = 0; i < rows.length; i++ ) { var rowWidgets = [], row = rows[i]; // shoveler case if(hasClass(row, "desktop-row")) { rowWidgets.push(row.id); } // billboard case if(hasClass(row, "billboardRowWrapper")) { var billboards = row.querySelectorAll(".billboard"), j; for (j = 0; j < billboards.length; j++ ) { rowWidgets.push(billboards[j].id); } } layoutRows.push(rowWidgets); } return layoutRows; } function hasClass(element, className) { return (' ' + element.className + ' ').indexOf(' ' + className + ' ') > -1; } function getWidgetsFromSelector(selector) { if (typeof document.querySelectorAll !== 'function' && typeof document.querySelectorAll !== 'object') { var result = []; if (document.createStyleSheet && document.all) { var style = document.createStyleSheet(''), all = document.all, len = all.length, i; if (style && style.addRule && style.removeRule) { style.addRule(selector, 'gwTemp:forQS'); for (i = 0; i < len; i += 1) { if (all[i].currentStyle.gwTemp === 'forQS') { result.push(all[i]); } } style.removeRule(0); } } return result; } return document.querySelectorAll(selector); } return { getWidgets: function() { return getAtfWidgets(ATF_ROW_COUNT); } }; }); ///////////////////////// // END FILE derived/atf-widget.js ///////////////////////// ///////////////////////// // BEGIN FILE derived/duff.js ///////////////////////// /* Full source (including license, if applicable) included below. */ /** * This contains JS used to instrument the AF, gwAtfReady etc layout metrics based on the widget * level latency events for the desktop duff gateway. */ "use strict"; /** * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice#Streamlining_cross-browser_behavior * Shim for "fixing" IE's lack of support (IE < 9) for applying slice * on host objects like NamedNodeMap, NodeList, and HTMLCollection */ (function () { var _slice = Array.prototype.slice; try { // Can't be used with DOM elements in IE < 9 _slice.call(document.documentElement); } catch (e) { // Fails in IE < 9 Array.prototype.slice = function(begin, end) { // IE < 9 gets unhappy with an undefined end argument end = (typeof end !== 'undefined') ? end : this.length; // For native Array objects, we use the native slice function if (Object.prototype.toString.call(this) === '[object Array]'){ return _slice.call(this, begin, end); } // For array like object we handle it ourselves. var i, cloned = [], size, len = this.length; // Handle negative value for "begin" var start = begin || 0; start = (start >= 0) ? start : Math.max(0, len + start); // Handle negative value for "end" var upTo = (typeof end == 'number') ? Math.min(end, len) : len; if (end < 0) { upTo = len + end; } // Actual expected size of the slice size = upTo - start; if (size > 0) { cloned = new Array(size); if (this.charAt) { for (i = 0; i < size; i++) { cloned[i] = this.charAt(start + i); } } else { for (i = 0; i < size; i++) { cloned[i] = this[start + i]; } } } return cloned; }; } }()); GWI.duff = (function addSubscription(window, document) { var NOOP = function() {}; function getConfig() { return { mustEvents : [ 'cf' ], }; } function getEventIds(widgets, suffix) { var eventIds = [], i; for (i = 0; i < widgets.length; i++) { eventIds.push(widgets[i] + suffix); } return eventIds; } // Return true if af is fired, otherwise return false function tryToFireAtf(afEventIds) { var unOccuredAfEventIds = GWI.getUnoccuredEvents(afEventIds), latestTime = GWI.getMaxTime(afEventIds); if (!unOccuredAfEventIds.length) { fireAtfOnce(latestTime); return true; } return false; } function fireAtfOnce(time) { fireAtfOnce = NOOP; if (window.uet) { // No documentation, https://tt.amazon.com/0143495131 uet('af', undefined, undefined, time); var message = 'AF fired at '; window.GWI && GWI.util && GWI.util.debugLog(message, true); fireFn(time); } registerAtfOnce(); }; function fireFn(time){ uet('fn', undefined, undefined, time); //currently only for logging purposes var message = 'FN fired at '; window.GWI && GWI.util && GWI.util.debugLog(message, true); window.P && P.register('fn'); } function registerAtfOnce() { // global event can cause this being called recursively // so set the function to empty first before register any event registerAtfOnce = NOOP; try { window.P && P.register('af'); window.P && P.register('gwAtfReady'); GWI.register('af'); GWI.register('gwAtfReady'); fireSPLoad(); } catch(err) { // Double register can happen if somehow window load fires before // some latency event if eveything is cached } }; function fireSPLoad() { window.P && P.register('sp.load.js'); // To be used for instrumentation and for latency analysis window.uet && uet('cf', 'spLoadJs', {wb: 1}); window.uex && uex('ld', 'spLoadJs', {wb: 1}); window.GWI && GWI.util && GWI.util.logCounter('spLoadJs'); var message = 'sp.load.js fired at '; window.GWI && GWI.util && GWI.util.debugLog(message, true); } var atfCalled = false; // FIXME: Update to use AH_5_COL_LAYOUT_335198, only need to listen to gw-grid-update // https://code.amazon.com/packages/AmazonGatewayCardGridAssets/blobs/37c0411ea2ef3f76b9340b72427fb8ce2154cf4b/--/src/grid-layout/_grid.js#L298,L308 GWI.onEvent(function() { P.when('atfWidgetComponent').execute('fire-atf', function(atfWidgetComponent) { if (!atfCalled) { var config = getConfig(), atfWidgets = atfWidgetComponent.getWidgets(); atfEvents = getEventIds(atfWidgets, '-visible'); atfEvents = atfEvents.concat(config.mustEvents); atfCalled = tryToFireAtf(atfEvents); } }); }); }(window, document)); ///////////////////////// // END FILE derived/duff.js ///////////////////////// ///////////////////////// // BEGIN FILE critical/gw-instrumentation.js ///////////////////////// /* Full source (including license, if applicable) included below. */ /** * This contains some JS used to instrument the CF and AF metrics on the * desktop gateway. */ 'use strict'; var GwInstrumentation = (function(window) { var self = {}, cfCount = 0, h1Af = false, cfImgCached = 1, imageCFs = {}; self.markAF = function() { // To prvent accidental gurupa hit that triggers JS error }; self.markH1Af = function(ajaxParams) { h1Af = true; window.uet && uet('cf', 'h1Af', {wb: 1}); window.uex && uex('ld', 'h1Af', {wb: 1}); var message = 'H1Af fired at '; window.GWI && GWI.util && GWI.util.debugLog(message, true); window.P && P.register('h1Af'); var firstSlide = document.getElementsByClassName('gw-critical-content')[0]; if (firstSlide) { var cfImages = firstSlide.getElementsByTagName('img'); for (var i = 0; i < cfImages.length; i++) { var imageSrc = cfImages[i].src; if (!imageCFs[imageSrc]) { self.CF(imageSrc); } } } tryToFireCF(); ajaxParams && fireAjaxAtf(ajaxParams); }; // (CF) Image preload, typically hero-1 or takeover self.preload = function(src, onload) { if(!src) { return; } var img = new Image(); img.onload = function() { onload && onload(); }; img.src = src; return img.complete; }; self.CF = function() { var cf; var isReady = false; if(typeof arguments[0] === 'string') { var src = arguments[0]; if(!imageCFs[src]) { cf = new self.CF(); imageCFs[src] = cf; var isCached = self.preload(src, function(){ // polyglot code for easy debugging and minification /*<&| '.debugStatement' &> console.log("CF in-memory Image loaded and ready: " + src); </&>*/ cf.ready(); }); // there can be more than 1 image in CF; mark cached if all are cfImgCached &= isCached; } } else if(this.constructor === self.CF) { // invoked with the new keyword cf = {}; cfCount++; cf.ready = function() { if(!isReady) { isReady = true; cfCount--; tryToFireCF(); } }; return cf; } else { throw new Error("Incorrect invocation of GwInstrumentation.CF(...)"); } }; return self; function tagCFImageCache() { if(window.ue && ue.tag) { window.ue.tag(cfImgCached ? "gwCFImgCache" : "gwCFImgNoCache"); } } function tryToFireCF() { if(h1Af && cfCount === 0) { window.uet && uet('cf'); var message = 'CF fired at '; window.GWI && GWI.util && GWI.util.debugLog(message, true); window.P && P.register('cf'); window.GWI && GWI.register('cf'); tagCFImageCache(); } } function fireAjaxAtf(ajaxParams) { P.when('gwAjax').execute(function(gwAjax) { gwAjax(ajaxParams.uri, {cache:false, type:'post', data:ajaxParams.data, id:'ajaxATF'}); }); } }(window)); ///////////////////////// // END FILE critical/gw-instrumentation.js ///////////////////////// ///////////////////////// // BEGIN FILE derived/linkdecorator.js ///////////////////////// /* Full source (including license, if applicable) included below. */ "use strict"; P.register("LinkDecorator", function () { var CEL_ATTRIBUTES = ['pf_rd_p', 'pd_rd_r', 'pd_rd_w', 'pd_rd_wg']; // Ref tag is a special case that the one exist in links takes priority // https://w.amazon.com/bin/view/RefMarker we only support recommended ref_ in query parameter var NO_OVERRIDE_ATTRIBUTES = ['ref_']; var RID_KEY = "pf_rd_r"; var PSEUDO_URL_PREFIX = 'javascript:'; /* Check whether event has anchor element or not: a. if it has anchor element, apply decorate link logic b. if it doesn't, try to find it in parent nodes */ var addMultiEventHandlers = function (s, eleId) { var pageContent = document.getElementById(eleId); s && s.split(" ").forEach(function (event) { if (pageContent && pageContent.addEventListener) { pageContent.addEventListener(event, eventHandler); } else if (pageContent && pageContent.attachEvent) { pageContent.attachEvent("on" + event, eventHandler); } }); }; var eventHandler = function (e) { e = e || window.event; if (notEligibleKeyboardEvent(e)) { return; } var element = e.target || e.srcElement; while (element && !!element.parentNode) { if (eligibleElement(element)) { decorateLink(element); break; } else if (element.id && element.id == 'gw-quick-look-btn') { applyUglyQuickLookLogic(element.parentNode); break; } element = element.parentNode; } }; var notEligibleKeyboardEvent = function (event) { var eventType = event.type; var keyCode = event.which || event.keyCode; return eventType == "keydown" && keyCode !== 13; }; var eligibleElement = function (element) { var tagName = element.tagName && element.tagName.toLowerCase(); return tagName == 'a' || tagName == 'area'; }; var applyUglyQuickLookLogic = function (element) { var anchorList = element.getElementsByTagName && element.getElementsByTagName('a'); for (var i = 0; i < anchorList.length; i++) { var anchor = anchorList && anchorList[i]; anchor && decorateLink(anchor); } }; /* 1. Check whether queryParams contains correct requestID param or not a. if it does, skip whole logic b. If it does not, then there are two possibilities: i. RequestID param is present, but RequestID is incorrect (Most likely AX mode) - get query params - replace only requestID param. Keep other query params as is - update element with new query params ii. RequestID param is missing. In this case we will assume links aren't decorated - get query params - find an parent element containing cel decoration - fetch data attributes for whitelisted query params - add whitelisted query params - update element with new query params */ var decorateLink = function (anchorElement) { var href = anchorElement.href; // TODO: remove CSM dependancy: https://issues-pdx.amazon.com/issues/GW-4222 var rid = window.ue && window.ue.rid; /* Only execute decoration logic when all below conditions are fulfilled: 1. href present 2. ue.rid present 3. href is not for shoveler/hero arrows or herf is javascript pseudo url 4. rid amabot param is not present */ href && (href.indexOf(PSEUDO_URL_PREFIX) !== 0) && rid && anchorElement.baseURI && isNonNavigatingHref(href, anchorElement.baseURI) && (href.indexOf(RID_KEY + "=" + rid) < 0) && executeDecorator(rid, anchorElement); }; /* ugly way to detect non-Navigating links like shoveler arrows! Shoveler arrows on our side uses href="#", which at JS Object level would result in "{page-uri}#". There might be <a> tags without href assigned which would be non navigating link, so we would exclude it as well. */ var isNonNavigatingHref = function (href, baseUri) { return (href.substring(0, baseUri.length + 1) !== baseUri + "#") && href !== baseUri; }; var executeDecorator = function (rid, anchorElement) { var urlMap = getUrlMap(anchorElement.href); var queryParams = urlMap.queryParams; if (!queryParams[RID_KEY]) { rid && (queryParams[RID_KEY] = rid); var celElement_1 = findCelElement(anchorElement); celElement_1 && forEach(CEL_ATTRIBUTES, function (attr) { var val = celElement_1.getAttribute("data-" + attr); val && (queryParams[attr] = val); }); // for NO_OVERRIDE_ATTRIBUTES, if the parameters already exist, do not override it celElement_1 && forEach(NO_OVERRIDE_ATTRIBUTES, function (attr) { var val = celElement_1.getAttribute("data-" + attr); val && !queryParams[attr] && (queryParams[attr] = val); }); } else if (rid && rid !== queryParams[RID_KEY]) { queryParams[RID_KEY] = rid; } anchorElement.href = urlMap.urlPath + "?" + queryParamsToString(queryParams); }; // Well Element.search does not have great browser support. So using Element.href instead var getUrlMap = function (href) { var indexOfQueryParamStart = href.indexOf("?"); if (indexOfQueryParamStart < 0) { return { "urlPath": href, "queryParams": {} }; } var queryParams = {}; // indexOfQueryParamStart + 1 to exclude "?" var array = href.substring(indexOfQueryParamStart + 1).split("&"); forEach(array, function (val) { var param = val.split("=", 2); if (param.length == 2) { !queryParams[param[0]] && (queryParams[param[0]] = param[1]); } }); return { "urlPath": href.substring(0, indexOfQueryParamStart), "queryParams": queryParams }; }; // Well Object.keys and Array.map does not have great browser coverage. so... var queryParamsToString = function (queryParams) { var tempArray = []; for (var key in queryParams) { tempArray.push(key + "=" + queryParams[key]); } return tempArray.join("&"); }; var findCelElement = function (element) { while (element && !!element.parentNode) { if (element.className && element.className.indexOf("celwidget") >= 0 && element.className.indexOf("csm-placement-id") >= 0) return element; element = element.parentNode; } }; // Well Array.prototype.forEach does not have great browser converage. So... var forEach = function (array, callbackFunction) { for (var i = 0; i < array.length; i++) { callbackFunction(array[i]); } }; return function (elementId) { addMultiEventHandlers("mousedown touchstart keydown", elementId); }; }); ///////////////////////// // END FILE derived/linkdecorator.js ///////////////////////// // END PACKAGE //////////////////////////////////////////// (function(b){var a=window.AmazonUIPageJS||window.P,d=a._namespace||a.attributeErrors,c=d?d("AmazonGatewayHackAssets",""):a;c.guardFatal?c.guardFatal(b)(c,window):c.execute(function(){b(c,window)})})(function(b,a,d){a.P&&b.when("A","ready").execute(function(c){c.on("packard:glow:destinationChangeAll",function(){a.location.reload()})});b.when("A","jQuery","af","gw-desktop-herotator/dom-ready").execute("gwForceHires",function(a,b){a.loadHiResImage(b("#gw-desktop-herotator img"))});a.P&&b.when("p-detect").execute(function(){var a= document;!/(^|\s+)a-touch(\s+|$)/.test(a.documentElement.className)&&("ontouchend"in a||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)&&(a.documentElement.className+=" a-touch")});(function(a){a.P&&b.when("A").execute(function(b){a.GWI&&a.GWI.recordLatency("gwAUIReady")})})(a);a.P&&b.when("jQuery").execute(function(c){a.GWI&&a.GWI.recordLatency("jQueryReady");c(document).ready(function(){a.GWI&&a.GWI.recordLatency("jQueryDomReady")});c(a).load(function(){a.GWI&&a.GWI.recordLatency("jQueryWindowLoad"); try{b.register("af"),b.register("sp.load.js"),a.GWI&&GWI.util&&GWI.util.logCounter("spLoadJs"),b.register("gwAtfReady"),a.GWI&&GWI.util&&GWI.util.debugLog("On windowLoad, Fallback AF and sp.load.js fired at ",!0)}catch(e){}})});a.addEventListener("pageshow",function(c){a.GWI&&a.GWI.recordLatency("jQueryPageShow");try{b.register("af"),b.register("sp.load.js"),a.GWI&&GWI.util&&GWI.util.logCounter("spLoadJs"),b.register("gwAtfReady"),a.GWI&&GWI.util&&GWI.util.debugLog("On pageShow, Fallback AF and sp.load.js fired at ", !0)}catch(e){}a.GWI&&GWI.Card&&GWI.Card.logLoadedNotVisibleImages()});a.P&&b.when("af").execute(function(){b.register("x1");b.register("x2")});a.P&&b.when("ready","af").execute(function(){b.register("gwLayoutReady");a.GWI&&a.GWI.recordLatency("gwLayoutReady")});a.P&&b.when("navCF").execute(function(){a.GWI&&a.GWI.recordLatency("navCF")});a.P&&b.when("A","gwLayoutReady").execute(function(b){b.capabilities.hires&&b.$(a).trigger("resize")});document.documentElement.setAttribute("data-useragent",navigator.userAgent); document.documentElement.setAttribute("data-platform",navigator.platform)}); (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://images-na.ssl-images-amazon.com/images/I/01rGP6HIADL.js?AUIClients/GenericObservableJS'); (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://images-na.ssl-images-amazon.com/images/I/11lCLXBMk5L._RC|61YBxGSpjrL.js_.js?AUIClients/AmazonGatewayAuiAssets'); (function(e){var g=window.AmazonUIPageJS||window.P,k=g._namespace||g.attributeErrors,b=k?k("AmazonGatewayCardGridAssets",""):g;b.guardFatal?b.guardFatal(e)(b,window):b.execute(function(){e(b,window)})})(function(e,g,k){e.when("jQuery").register("GwGridLogic",function(b){function g(a){a=a||b("html").width();return n&&1239>=a?"sm":"ws"}function k(a,b){a.attr("data-hide-at-"+b,!0)}function h(a,b,c){if(!a.length)throw Error("No grid layout found with selector");this.$grid=a;this.selector=b;this.context= c;this.sorted={}}function m(a,d){var c=b(a,d);if(!c.length)throw Error("No grid found with selector: "+a);this.gridDom=new h(c,a,d)}var p={xs:2,sm:3,ws:4},n=!1;b("html").hasClass("a-lt-ie9")||(n=!0);h.prototype.setBreakpoint=function(a){this.$grid.attr("data-grid-breakpoint",a)};h.prototype.sortFor=function(a){if(this.sorted[a])return this.sorted[a];var d=b(this.selector+"\x3e [data-order-"+a+"]",this.context).sort(function(c,f){c=b(c).data("order-"+a);f=b(f).data("order-"+a);return c<f?-1:c>f?1: 0});return this.sorted[a]=d};h.prototype.updateSourceOrder=function(a){};h.prototype.dropIncompleteRows=function(a){if(!this.$grid.data("init-"+a)){var d=this.sortFor(a),c=[],f=0,g=d.length,e=[];d.each(function(d,h){var l=b(h),q=l.hasClass("card-flow-row-break");l=l.data("col-span-"+a)||1;q||(f+=l);f>p[a]?(k(b(c),a),c=[h],f=l):c.push(h);if(q||d===g-1)f<p[a]?k(b(c),a):e=e.concat(c),c=[],f=0});b([e[0],e.pop()]).each(function(c,d){c=b(d);c.hasClass("card-flow-row-break")&&"desktop-ad-center-1"!==c.prev().attr("id")&& k(c,a)});this.$grid.data("init-"+a,!0)}};m.prototype.init=function(){if(this.gridDom.$grid){this.breakpoint=g();this.update();var a=this;e.when("A").execute("RegisterResizeListener",function(b){b.on("resize",function(c,b){if(b.width||b.orientation)c=g(c.width),c!==a.breakpoint&&(a.breakpoint=c,a.update())})});return this}};m.prototype.update=function(){this.gridDom&&(this.gridDom.setBreakpoint(this.breakpoint),this.gridDom.dropIncompleteRows(this.breakpoint),this.gridDom.updateSourceOrder(this.breakpoint))}; return function(a,b){return new m(a,b)}})}); (window.AmazonUIPageJS ? AmazonUIPageJS : P).when('h1Af').execute(function() { (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://images-na.ssl-images-amazon.com/images/I/31PvjKh9oXL.js?AUIClients/AmazonGatewayHerotatorJS'); }); (window.AmazonUIPageJS ? AmazonUIPageJS : P).when('videoonpage').execute(function() { (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://images-na.ssl-images-amazon.com/images/I/91dn5m6T1dL.js?AUIClients/VideoJsCardsBuzz#language-en'); }); </script> <title>Amazon.com. Spend less. Smile more.</title> <meta name="description" content="Free shipping on millions of items. Get the best of Shopping and Entertainment with Prime. Enjoy low prices and great deals on the largest selection of everyday essentials and other products, including fashion, home, beauty, electronics, Alexa Devices, sporting goods, toys, automotive, pets, baby, books, video games, musical instruments, office supplies, and more."> <meta name="keywords" content="Amazon, Amazon.com, Books, Online Shopping, Book Store, Magazine, Subscription, Music, CDs, DVDs, Videos, Electronics, Video Games, Computers, Cell Phones, Toys, Games, Apparel, Accessories, Shoes, Jewelry, Watches, Office Products, Sports & Outdoors, Sporting Goods, Baby Products, Health, Personal Care, Beauty, Home, Garden, Bed & Bath, Furniture, Tools, Hardware, Vacuums, Outdoor Living, Automotive Parts, Pet Supplies, Broadband, DSL"> <meta name="google" content="nositelinkssearchbox"> <meta name="google-site-verification" content="9vpzZueNucS8hPqoGpZ5r10Nr2_sLMRG3AnDtNlucc4"> <link rel="canonical" href="https://www.amazon.com/"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta property="fb:app_id" content="164734381262"> <meta name="twitter:card" value="summary"> <meta name="twitter:site:id" value="20793816"> <meta property="og:image" content="https://m.media-amazon.com/images/I/31epF-8N9LL.png" xmlns:og="http://opengraphprotocol.org/schema/"> <meta property="og:description" content="Free shipping on millions of items. Get the best of Shopping and Entertainment with Prime. Enjoy low prices and great deals on the largest selection of everyday essentials and other products, including fashion, home, beauty, electronics, Alexa Devices, sporting goods, toys, automotive, pets, baby, books, video games, musical instruments, office supplies, and more." xmlns:og="http://opengraphprotocol.org/schema/"> <meta name="msvalidate.01" content="3C8D6512B1E530046DE0569BA27093F3" /> <meta name="p:domain_verify" content="5de371cb20aa4232fe72f25d97e07dd6" /> <link rel="icon" href="/favicon.ico"><script type="text/javascript"> window.P && P.when('A','ready').execute(function(A) { var $ = A.$; $('.feed-carousel').first().addClass('first-carousel'); P.register('gw-first-carousel'); if($('#desktop-ad-atf').height() === 0) { $('.gw-ad-row .a-fixed-right-grid-inner').css('padding-right','0px'); } }); </script> <!--&&&Portal&Delimiter&&&--><!-- sp:end-feature:host-assets --> <!-- sp:feature:encrypted-slate-token --> <meta name='encrypted-slate-token' content='AnYxGdUMdsH20D49WCenW9YioPdIs1gijHnjFQHpqbumUu61vIFYAWSQPoXq7I3AmtKB6HQGXN8TiRcj3cZ6dgRQi9Ob6S4SDbkxZsVfUcD+v9lRO5Njs1o2qHdQaIaHCiJlQ+10EYNQesCzhxLbLw+/aXfTttLo0C5Qcr67+X09C1lDLfOOzt1qsLXR++PEbeY7eaylHx4QZXWTQkZpM4dEbEnhlUIVLT3ccQLHkyN9UgSyMZpgV8vVW53q1NzbQo6iQlyHzbFblkOf'> <!-- sp:end-feature:encrypted-slate-token --> <!-- sp:feature:csm:head-close --> <script type='text/javascript'> window.ue_ihe = (window.ue_ihe || 0) + 1; if (window.ue_ihe === 1) { (function(c){c&&1===c.ue_jsmtf&&"object"===typeof c.P&&"function"===typeof c.P.when&&c.P.when("mshop-interactions").execute(function(e){"object"===typeof e&&"function"===typeof e.addListener&&e.addListener(function(b){"object"===typeof b&&"ORIGIN"===b.dataSource&&"number"===typeof b.clickTime&&"object"===typeof b.events&&"number"===typeof b.events.pageVisible&&(c.ue_jsmtf_interaction={pv:b.events.pageVisible,ct:b.clickTime})})})})(ue_csm); (function(c,e,b){function m(a){f||(f=d[a.type].id,"undefined"===typeof a.clientX?(h=a.pageX,k=a.pageY):(h=a.clientX,k=a.clientY),2!=f||l&&(l!=h||n!=k)?(r(),g.isl&&e.setTimeout(function(){p("at",g.id)},0)):(l=h,n=k,f=0))}function r(){for(var a in d)d.hasOwnProperty(a)&&g.detach(a,m,d[a].parent)}function s(){for(var a in d)d.hasOwnProperty(a)&&g.attach(a,m,d[a].parent)}function t(){var a="";!q&&f&&(q=1,a+="&ui="+f);return a}var g=c.ue,p=c.uex,q=0,f=0,l,n,h,k,d={click:{id:1,parent:b},mousemove:{id:2, parent:b},scroll:{id:3,parent:e},keydown:{id:4,parent:b}};g&&p&&(s(),g._ui=t)})(ue_csm,window,document); (function(s,l){function m(b,e,c){c=c||new Date(+new Date+t);c="expires="+c.toUTCString();n.cookie=b+"="+e+";"+c+";path=/"}function p(b){b+="=";for(var e=n.cookie.split(";"),c=0;c<e.length;c++){for(var a=e[c];" "==a.charAt(0);)a=a.substring(1);if(0===a.indexOf(b))return decodeURIComponent(a.substring(b.length,a.length))}return""}function q(b,e,c){if(!e)return b;-1<b.indexOf("{")&&(b="");for(var a=b.split("&"),f,d=!1,h=!1,g=0;g<a.length;g++)f=a[g].split(":"),f[0]==e?(!c||d?a.splice(g,1):(f[1]=c,a[g]= f.join(":")),h=d=!0):2>f.length&&(a.splice(g,1),h=!0);h&&(b=a.join("&"));!d&&c&&(0<b.length&&(b+="&"),b+=e+":"+c);return b}var k=s.ue||{},t=3024E7,n=ue_csm.document||l.document,r=null,d;a:{try{d=l.localStorage;break a}catch(u){}d=void 0}k.count&&k.count("csm.cookieSize",document.cookie.length);k.cookie={get:p,set:m,updateCsmHit:function(b,e,c){try{var a;if(!(a=r)){var f;a:{try{if(d&&d.getItem){f=d.getItem("csm-hit");break a}}catch(k){}f=void 0}a=f||p("csm-hit")||"{}"}a=q(a,b,e);r=a=q(a,"t",+new Date); try{d&&d.setItem&&d.setItem("csm-hit",a)}catch(h){}m("csm-hit",a,c)}catch(g){"function"==typeof l.ueLogError&&ueLogError(Error("Cookie manager: "+g.message),{logLevel:"WARN"})}}}})(ue_csm,window); (function(l,e){function c(b){b="";var c=a.isBFT?"b":"s",d=""+a.oid,g=""+a.lid,h=d;d!=g&&20==g.length&&(c+="a",h+="-"+g);a.tabid&&(b=a.tabid+"+");b+=c+"-"+h;b!=f&&100>b.length&&(f=b,a.cookie?a.cookie.updateCsmHit(m,b+("|"+ +new Date)):e.cookie="csm-hit="+b+("|"+ +new Date)+n+"; path=/")}function p(){f=0}function d(b){!0===e[a.pageViz.propHid]?f=0:!1===e[a.pageViz.propHid]&&c({type:"visible"})}var n="; expires="+(new Date(+new Date+6048E5)).toGMTString(),m="tb",f,a=l.ue||{},k=a.pageViz&&a.pageViz.event&& a.pageViz.propHid;a.attach&&(a.attach("click",c),a.attach("keyup",c),k||(a.attach("focus",c),a.attach("blur",p)),k&&(a.attach(a.pageViz.event,d,e),d({})));a.aftb=1})(ue_csm,ue_csm.document); ue_csm.ue.stub(ue,"impression"); ue.stub(ue,"trigger"); if(window.ue&&uet) { uet('bb'); } } </script> <script>window.ue && ue.count && ue.count('CSMLibrarySize', 3172)</script> <!-- sp:end-feature:csm:head-close --> <!-- sp:feature:head-close --> <script> window.P && P.register('bb'); if (typeof ues === 'function') { ues('t0', 'portal-bb', new Date()); ues('ctb', 'portal-bb', 1); } </script> </head><!-- sp:end-feature:head-close --> <!-- sp:feature:start-body --> <body class="a-m-us a-aui_72554-c a-aui_a11y_6_837773-t2 a-aui_amzn_img_959719-c a-aui_amzn_img_gate_959718-c a-aui_killswitch_csa_logger_372963-c a-aui_pci_risk_banner_210084-c a-aui_template_weblab_cache_333406-c a-aui_tnr_v2_180836-c a-bw_aui_cxc_alert_measurement_1074111-c"><div id="a-page"><script type="a-state" data-a-state="{"key":"a-wlab-states"}">{"AUI_AMZN_IMG_959719":"C","AUI_A11Y_6_837773":"T2","AUI_TNR_V2_180836":"C","AUI_AMZN_IMG_GATE_959718":"C","AUI_TEMPLATE_WEBLAB_CACHE_333406":"C","BW_AUI_CXC_ALERT_MEASUREMENT_1074111":"C","AUI_72554":"C","AUI_KILLSWITCH_CSA_LOGGER_372963":"C","AUI_PCI_RISK_BANNER_210084":"C"}</script><script>typeof uex === 'function' && uex('ld', 'portal-bb', {wb: 1})</script><!-- sp:end-feature:start-body --> <!-- sp:feature:csm:body-open --> <img height="1" width="1" style='display:none;visibility:hidden;' src='//fls-na.amazon.com/1/batch/1/OP/ATVPDKIKX0DER:140-7332671-9602137:0ZVPJFX4CAAN9QGRQFMY$uedata=s:%2Frd%2Fuedata%3Fstaticb%26id%3D0ZVPJFX4CAAN9QGRQFMY:0' alt="" onload="window.ue_sbl && window.ue_sbl();"/> <script> !function(){function n(n,t){var r=i(n);return t&&(r=r("instance",t)),r}var r=[],c=0,i=function(t){return function(){var n=c++;return r.push([t,[].slice.call(arguments,0),n,{time:Date.now()}]),i(n)}};n._s=r,this.csa=n}();; csa('Config', {}); if (window.csa) { csa("Config", { 'Application': 'Retail:Prod:www.amazon.com', 'Events.Namespace': 'csa', 'ObfuscatedMarketplaceId': 'ATVPDKIKX0DER', 'Events.SushiEndpoint': 'https://unagi.amazon.com/1/events/com.amazon.csm.csa.prod', 'CacheDetection.RequestID': "0ZVPJFX4CAAN9QGRQFMY", 'CacheDetection.Callback': window.ue && ue.reset, 'LCP.elementDedup': 1, 'lob': '1' }); csa("Events")("setEntity", { page: {requestId: "0ZVPJFX4CAAN9QGRQFMY", meaningful: "interactive"}, session: {id: "140-7332671-9602137"} }); } !function(r){var e,i,o="splice",u=r.csa,f={},c={},a=r.csa._s,s=0,l=0,g=-1,h={},v={},d={},n=Object.keys,p=function(){};function t(n,t){return u(n,t)}function m(n,t){var r=c[n]||{};k(r,t),c[n]=r,l++,S(U,0)}function w(n,t,r){var i=!0;return t=D(t),r&&r.buffered&&(i=(d[n]||[]).every(function(n){return!1!==t(n)})),i?(h[n]||(h[n]=[]),h[n].push(t),function(){!function(n,t){var r=h[n];r&&r[o](r.indexOf(t),1)}(n,t)}):p}function b(n,t){if(t=D(t),n in v)return t(v[n]),p;return w(n,function(n){return t(n),!1})}function y(n,t){if(u("Errors")("logError",n),f.DEBUG)throw t||n}function E(){return Math.abs(4294967295*Math.random()|0).toString(36)}function D(n,t){return function(){try{return n.apply(this,arguments)}catch(n){y(n.message||n,n)}}}function S(n,t){return r.setTimeout(D(n),t)}function U(){for(var n=0;n<a.length;){var t=a[n],r=t[0]in c;if(!r&&!i)return void(s=a.length);r?(a[o](s=n,1),I(t)):n++}g=l}function I(n){var t=c[n[0]],r=n[1],i=r[0];if(!t||!t[i])return y("Undefined function: "+t+"/"+i);e=n[3],c[n[2]]=t[i].apply(t,r.slice(1))||{},e=0}function O(){i=1,U()}function k(t,r){n(r).forEach(function(n){t[n]=r[n]})}b("$beforeunload",O),m("Config",{instance:function(n){k(f,n)}}),u.plugin=D(function(n){n(t)}),t.config=f,t.register=m,t.on=w,t.once=b,t.blank=p,t.emit=function(n,t,r){for(var i=h[n]||[],e=0;e<i.length;)!1===i[e](t)?i[o](e,1):e++;v[n]=t||{},r&&r.buffered&&(d[n]||(d[n]=[]),100<=d[n].length&&d[n].shift(),d[n].push(t||{}))},t.UUID=function(){return[E(),E(),E(),E()].join("-")},t.time=function(n){var t=e?new Date(e.time):new Date;return"ISO"===n?t.toISOString():t.getTime()},t.error=y,t.warn=function(n,t){if(u("Errors")("logWarn",n),f.DEBUG)throw t||n},t.exec=D,t.timeout=S,t.interval=function(n,t){return r.setInterval(D(n),t)},(t.global=r).csa._s.push=function(n){n[0]in c&&(!a.length||i)?(I(n),a.length&&g!==l&&U()):a[o](s++,0,n)},U(),S(function(){S(O,f.SkipMissingPluginsTimeout||5e3)},1)}("undefined"!=typeof window?window:global);csa.plugin(function(o){var f="addEventListener",e="requestAnimationFrame",t=o.exec,r=o.global,u=o.on;o.raf=function(n){if(r[e])return r[e](t(n))},o.on=function(n,e,t,r){if(n&&"function"==typeof n[f]){var i=o.exec(t);return n[f](e,i,r),function(){n.removeEventListener(e,i,r)}}return"string"==typeof n?u(n,e,t,r):o.blank}});csa.plugin(function(o){var t,n,r={},e="localStorage",c="sessionStorage",a="local",i="session",u=o.exec;function s(e,t){var n;try{r[t]=!!(n=o.global[e]),n=n||{}}catch(e){r[t]=!(n={})}return n}function f(){t=t||s(e,a),n=n||s(c,i)}function l(e){return e&&e[i]?n:t}o.store=u(function(e,t,n){f();var o=l(n);return e?t?void(o[e]=t):o[e]:Object.keys(o)}),o.storageSupport=u(function(){return f(),r}),o.deleteStored=u(function(e,t){f();var n=l(t);if("function"==typeof e)for(var o in n)n.hasOwnProperty(o)&&e(o,n[o])&&delete n[o];else delete n[e]})});csa.plugin(function(n){n.types={ovl:function(n){var r=[];if(n)for(var i in n)n.hasOwnProperty(i)&&r.push(n[i]);return r}}});csa.plugin(function(a){var e=a.config,n="Errors",c="fcsmln",s=e["KillSwitch."+n];function r(n){return function(e){a("Metrics",{producerId:"csa",dimensions:{message:e}})("recordMetric",n,1)}}function t(r){var t,o,l=a("Events",{producerId:r.producerId,lob:e.lob||"0"}),i=["name","type","csm","adb"],u={url:"pageURL",file:"f",line:"l",column:"c"};this.log=function(e){if(!s&&!function(e){if(!e)return!0;for(var n in e)return!1;return!0}(e)){var n=r.logOptions||{ent:{page:["pageType","subPageType","requestId"]}};l("log",function(n){return t=a.UUID(),o={messageId:t,schemaId:r.schemaId||"<ns>.Error.6",errorMessage:n.m||null,attribution:n.attribution||null,logLevel:"FATAL",url:null,file:null,line:null,column:null,stack:n.s||[],context:n.cinfo||{},metadata:{}},n.logLevel&&(o.logLevel=""+n.logLevel),i.forEach(function(e){n[e]&&(o.metadata[e]=n[e])}),c in n&&(o.metadata[c]=n[c]+""),"INFO"===n.logLevel||Object.keys(u).forEach(function(e){"number"!=typeof n[u[e]]&&"string"!=typeof n[u[e]]||(o[e]=""+n[u[e]])}),o}(e),n)}}}a.register(n,{instance:function(e){return new t(e||{})},logError:r("jsError"),logWarn:r("jsWarn")})});csa.plugin(function(o){var r,e,n,t,a,i="function",u="willDisappear",f="$app.",p="$document.",c="focus",s="blur",d="active",l="resign",$=o.global,b=o.exec,m=o.config["Transport.AnonymizeRequests"]||!1,g=o("Events"),h=$.location,v=$.document||{},y=$.P||{},P=(($.performance||{}).navigation||{}).type,w=o.on,k=o.emit,E=v.hidden,T={};h&&v&&(w($,"beforeunload",D),w($,"pagehide",D),w(v,"visibilitychange",R(p,function(){return v.visibilityState||"unknown"})),w(v,c,R(p+c)),w(v,s,R(p+s)),y.when&&y.when("mash").execute(function(e){e&&(w(e,"appPause",R(f+"pause")),w(e,"appResume",R(f+"resume")),R(f+"deviceready")(),$.cordova&&$.cordova.platformId&&R(f+cordova.platformId)(),w(v,d,R(f+d)),w(v,l,R(f+l)))}),e=$.app||{},n=b(function(){k(f+"willDisappear"),D()}),a=typeof(t=e[u])==i,e[u]=b(function(){n(),a&&t()}),$.app||($.app=e),"complete"===v.readyState?A():w($,"load",A),E?S():x(),o.on("$app.blur",S),o.on("$app.focus",x),o.on("$document.blur",S),o.on("$document.focus",x),o.on("$document.hidden",S),o.on("$document.visible",x),o.register("SPA",{newPage:I}),I({transitionType:{0:"hard",1:"refresh",2:"back-button"}[P]||"unknown"}));function I(n,e){var t=!!r,a=(e=e||{}).keepPageAttributes;t&&(k("$beforePageTransition"),k("$pageTransition")),t&&!a&&g("removeEntity","page"),r=o.UUID(),a?T.id=r:T={schemaId:"<ns>.PageEntity.2",id:r,url:m?h.href.split("?")[0]:h.href,server:h.hostname,path:h.pathname,referrer:m?v.referrer.split("?")[0]:v.referrer,title:v.title},Object.keys(n||{}).forEach(function(e){T[e]=n[e]}),g("setEntity",{page:T}),k("$pageChange",T,{buffered:1}),t&&k("$afterPageTransition")}function A(){k("$load"),k("$ready"),k("$afterload")}function D(){k("$ready"),k("$beforeunload"),k("$unload"),k("$afterunload")}function S(){E||(k("$visible",!1,{buffered:1}),E=!0)}function x(){E&&(k("$visible",!0,{buffered:1}),E=!1)}function R(n,t){return b(function(){var e=typeof t==i?n+t():n;k(e)})}});csa.plugin(function(c){var e="Events",n="UNKNOWN",s="id",a="all",i="messageId",o="timestamp",u="producerId",r="application",f="obfuscatedMarketplaceId",d="entities",l="schemaId",p="version",v="attributes",g="<ns>",b="lob",t="session",h=c.config,m=(c.global.location||{}).host,I=h[e+".Namespace"]||"csa_other",y=h.Application||"Other"+(m?":"+m:""),O=h["Transport.AnonymizeRequests"]||!1,E=c("Transport"),U={},A=function(e,t){Object.keys(e).forEach(t)};function N(n,i,o){A(i,function(e){var t=o===a||(o||{})[e];e in n||(n[e]={version:1,id:i[e][s]||c.UUID()}),S(n[e],i[e],t)})}function S(t,n,i){A(n,function(e){!function(e,t,n){return"string"!=typeof t&&e!==p?c.error("Attribute is not of type string: "+e):!0===n||1===n||(e===s||!!~(n||[]).indexOf(e))}(e,n[e],i)||(t[e]=n[e])})}function k(o,e,r){A(e,function(e){var t=o[e];if(t[l]){var n={},i={};n[s]=t[s],n[u]=t[u]||r[u],n[l]=t[l],n[p]=t[p]++,n[v]=i,w(n,r),S(i,t,1),D(i),E("log",n)}})}function w(e,t){e[o]=function(e){return"number"==typeof e&&(e=new Date(e).toISOString()),e||c.time("ISO")}(e[o]),e[i]=e[i]||c.UUID(),e[r]=y,e[f]=h.ObfuscatedMarketplaceId||n,e[l]=e[l].replace(g,I),t&&t[b]&&(e[b]=t[b])}function D(e){delete e[p],delete e[l],delete e[u]}function T(o){var r={};this.log=function(e,t){var n={},i=(t||{}).ent;return e?"string"!=typeof e[l]?c.error("A valid schema id is required for the event"):(w(e,o),N(n,U,i),N(n,r,i),N(n,e[d]||{},i),A(n,function(e){D(n[e])}),e[u]=o[u],e[d]=n,t&&t[b]&&(e[b]=t[b]),void E("log",e,t)):c.error("The event cannot be undefined")},this.setEntity=function(e){O&&delete e[t],N(r,e,a),k(r,e,o)}}h["KillSwitch."+e]||c.register(e,{setEntity:function(e){O&&delete e[t],c.emit("$entities.set",e,{buffered:1}),N(U,e,a),k(U,e,{producerId:"csa",lob:h[b]||"0"})},removeEntity:function(e){delete U[e]},instance:function(e){return new T(e)}})});csa.plugin(function(s){var c,g="Transport",l="post",f="preflight",r="csa.cajun.",i="store",a="deleteStored",u="sendBeacon",t="__merge",e="messageId",n=".FlushInterval",o=0,d=s.config[g+".BufferSize"]||2e3,h=s.config[g+".RetryDelay"]||1500,p=s.config[g+".AnonymizeRequests"]||!1,v={},y=0,m=[],E=s.global,R=E.document,b=s.timeout,k=E.Object.keys,w=s.config[g+n]||5e3,I=w,O=s.config[g+n+".BackoffFactor"]||1,S=s.config[g+n+".BackoffLimit"]||3e4,B=0;function T(n){if(864e5<s.time()-+new Date(n.timestamp))return s.warn("Event is too old: "+n);y<d&&(n[e]in v||(v[n[e]]=n,y++),"function"==typeof n[t]&&n[t](v[n[e]]),!B&&o&&(B=b(q,function(){var n=I;return I=Math.min(n*O,S),n}())))}function q(){m.forEach(function(e){var o=[];k(v).forEach(function(n){var t=v[n];e.accepts(t)&&o.push(t)}),o.length&&(e.chunks?e.chunks(o).forEach(function(n){D(e,n)}):D(e,o))}),v={},B=0}function D(t,e){function o(){s[a](r+n)}var n=s.UUID();s[i](r+n,JSON.stringify(e)),[function(n,t,e){var o=E.navigator||{},r=E.cordova||{};if(p)return 0;if(!o[u]||!n[l])return 0;n[f]&&r&&"ios"===r.platformId&&!c&&((new Image).src=n[f]().url,c=1);var i=n[l](t);if(!i.type&&o[u](i.url,i.body))return e(),1},function(n,t,e){if(!n[l])return 0;var o=n[l](t),r=o.url,i=o.body,c=o.type,f=new XMLHttpRequest,a=0;function u(n,t,e){f.open("POST",n),f.withCredentials=!p,e&&f.setRequestHeader("Content-Type",e),f.send(t)}return f.onload=function(){f.status<299?e():s.config[g+".XHRRetries"]&&a<3&&b(function(){u(r,i,c)},++a*h)},u(r,i,c),1}].some(function(n){try{return n(t,e,o)}catch(n){}})}k&&(s.once("$afterload",function(){o=1,function(e){(s[i]()||[]).forEach(function(n){if(!n.indexOf(r))try{var t=s[i](n);s[a](n),JSON.parse(t).forEach(e)}catch(n){s.error(n)}})}(T),s.on(R,"visibilitychange",q,!1),q()}),s.once("$afterunload",function(){o=1,q()}),s.on("$afterPageTransition",function(){y=0,I=w}),s.register(g,{log:T,register:function(n){m.push(n)}}))});csa.plugin(function(n){var r=n.config["Events.SushiEndpoint"];n("Transport")("register",{accepts:function(n){return n.schemaId},post:function(n){var t=n.map(function(n){return{data:n}});return{url:r,body:JSON.stringify({events:t})}},preflight:function(){var n,t=/\/\/(.*?)\//.exec(r);return t&&t[1]&&(n="https://"+t[1]+"/ping"),{url:n}},chunks:function(n){for(var t=[];500<n.length;)t.push(n.splice(0,500));return t.push(n),t}})});csa.plugin(function(n){var t,a,o,r,e=n.config,i="PageViews",d=e[i+".ImpressionMinimumTime"]||1e3,s="hidden",c="innerHeight",l="innerWidth",g="renderedTo",f=g+"Viewed",m=g+"Meaningful",u=g+"Impressed",p=1,h=2,v=3,w=4,P=5,y="loaded",I=7,b=8,T=n.global,S=n.on,E=n("Events",{producerId:"csa",lob:e.lob||"0"}),K=T.document,V={},$={},M=P,R=e["KillSwitch."+i],H=e["KillSwitch.PageRender"],W=e["KillSwitch.PageImpressed"];function j(e){if(!V[I]){if(V[e]=n.time(),e!==v&&e!==y||(t=t||V[e]),t&&M===w){if(a=a||V[e],!R)(i={})[m]=t-o,i[f]=a-o,k("PageView.5",i);r=r||n.timeout(x,d)}var i;if(e!==P&&e!==p&&e!==h||(clearTimeout(r),r=0),e!==p&&e!==h||H||k("PageRender.4",{transitionType:e===p?"hard":"soft"}),e===I&&!W)(i={})[m]=t-o,i[f]=a-o,i[u]=V[e]-o,k("PageImpressed.3",i)}}function k(e,i){$[e]||(i.schemaId="<ns>."+e,E("log",i,{ent:"all"}),$[e]=1)}function q(){0===T[c]&&0===T[l]?(M=b,n("Events")("setEntity",{page:{viewport:"hidden-iframe"}})):M=K[s]?P:w,j(M)}function x(){j(I),r=0}function z(){var e=o?h:p;V={},$={},a=t=0,o=n.time(),j(e),q()}function A(){var e=K.readyState;"interactive"===e&&j(v),"complete"===e&&j(y)}K&&void 0!==K[s]?(z(),S(K,"visibilitychange",q,!1),S(K,"readystatechange",A,!1),S("$afterPageTransition",z),S("$timing:loaded",A),n.once("$load",A)):n.warn("Page visibility not supported")});csa.plugin(function(c){var s=c.config["Interactions.ParentChainLength"]||35,e="click",r="touches",f="timeStamp",o="length",u="pageX",g="pageY",p="pageXOffset",h="pageYOffset",m=250,v=5,d=200,l=.5,t={capture:!0,passive:!0},X=c.global,Y=c.emit,n=c.on,x=X.Math.abs,a=(X.document||{}).documentElement||{},y={x:0,y:0,t:0,sX:0,sY:0},N={x:0,y:0,t:0,sX:0,sY:0};function b(t){if(t.id)return"//*[@id='"+t.id+"']";var e=function(t){var e,n=1;for(e=t.previousSibling;e;e=e.previousSibling)e.nodeName===t.nodeName&&(n+=1);return n}(t),n=t.nodeName;return 1!==e&&(n+="["+e+"]"),t.parentNode&&(n=b(t.parentNode)+"/"+n),n}function I(t,e,n){var a=c("Content",{target:n}),i={schemaId:"<ns>.ContentInteraction.2",interaction:t,interactionData:e,messageId:c.UUID()};if(n){var r=b(n);r&&(i.attribution=r);var o=function(t){for(var e=t,n=e.tagName,a=!1,i=t?t.href:null,r=0;r<s;r++){if(!e||!e.parentElement){a=!0;break}n=(e=e.parentElement).tagName+"/"+n,i=i||e.href}return a||(n=".../"+n),{pc:n,hr:i}}(n);o.pc&&(i.interactionData.parentChain=o.pc),o.hr&&(i.interactionData.href=o.hr)}a("log",i),Y("$content.interaction",{e:i,w:a})}function i(t){I(e,{interactionX:""+t.pageX,interactionY:""+t.pageY},t.target)}function C(t){if(t&&t[r]&&1===t[r][o]){var e=t[r][0];N=y={e:t.target,x:e[u],y:e[g],t:t[f],sX:X[p],sY:X[h]}}}function D(t){if(t&&t[r]&&1===t[r][o]&&y&&N){var e=t[r][0],n=t[f],a=n-N.t,i={e:t.target,x:e[u],y:e[g],t:n,sX:X[p],sY:X[h]};N=i,d<=a&&(y=i)}}function E(t){if(t){var e=x(y.x-N.x),n=x(y.y-N.y),a=x(y.sX-N.sX),i=x(y.sY-N.sY),r=t[f]-y.t;if(m<1e3*e/r&&v<e||m<1e3*n/r&&v<n){var o=n<e;o&&a&&e*l<=a||!o&&i&&n*l<=i||I((o?"horizontal":"vertical")+"-swipe",{interactionX:""+y.x,interactionY:""+y.y,endX:""+N.x,endY:""+N.y},y.e)}}}n(a,e,i,t),n(a,"touchstart",C,t),n(a,"touchmove",D,t),n(a,"touchend",E,t)});csa.plugin(function(r){var a,o,t,c,e,n="MutationObserver",f="observe",u="disconnect",i="mutObs",l="_csa_flt",b="_csa_llt",m="_csa_mr",d="_csa_mi",v="lastChild",p="length",_={childList:!0,subtree:!0},g=10,h=25,s=1e3,y=4,O=r.global,k=O.document,w=k.body||k.documentElement,I=Date.now,L=[],B=[],M=[],Y=0,$=0,x=0,A=1,C=[],D=[],E=0,F=r.blank,N={buffered:1},S=0;function T(e){r.global.ue_csa_ss_tag||r.emit("$csmTag:"+e,0,N)}I&&O[n]?(T(i+"Yes"),Y=0,o=new O[n](j),(t=new O[n](V))[f](w,{attributes:!0,subtree:!0,attributeFilter:["src"],attributeOldValue:!0}),F=r.on(O,"scroll",q,{passive:!0}),r.once("$ready",H),A&&(G(),e=r.interval(z,s)),r.register("SpeedIndexBuffers",{getBuffers:function(e){e&&(H(),q(),e(Y,C,L,B,M),o&&o[u](),t&&t[u](),F())},registerListener:function(e){a=e},replayModuleIsLive:function(){r.timeout(H,0)}})):T(i+"No");function V(e){L.push({t:I(),m:e})}function j(e){B.push({t:I(),m:e}),S||T(i+"Active"),S=x=1,a&&a()}function q(){x&&(M.push({t:I(),y:$}),$=O.pageYOffset,x=0)}function z(){var e=I();(!c||s<e-c)&&G()}function G(){for(var e=w,t=I(),n=[],u=[],i=0,s=0;e;)e[l]?++i:(e[l]=t,n.push(e),s=1),u[p]<y&&u.push(e),e[d]=E,e[b]=t,e=e[v];s&&(i<D[p]&&function(e){for(var t=e,n=D[p];t<n;t++){var u=D[t];if(u){if(u[m])break;if(u[d]<E){u[m]=1,o[f](u,_);break}}}}(i),D=u,C.push({t:t,m:n}),++E,x=s,a&&a()),A&&r.timeout(G,s?g:h),c=t}function H(){A&&(A=0,e&&O.clearInterval(e),e=null,G(),o[f](w,_))}}); var ue_csa_ss_tag = true, ue_dsbl_ss_um = false; csa.plugin(function(b){var a=b.global,f=a.uet,g=a.uex,c=a.ue,d=a.Object,h=0,e={largestContentfulPaint:"lcp",visuallyLoaded50:"vl50",visuallyLoaded90:"vl90",visuallyLoaded100:"vl100"},l="perfNo perfYes browserQuiteFn browserQuiteUd browserQuiteLd browserQuiteMut mutObsNo mutObsYes mutObsActive startVL endVL".split(" ");a.ue_dsbl_ss_um||(e.speedIndex="si",e.atfSpeedIndex="atfsi");b&&f&&g&&d.keys&&c&&(b.once("$ditched.beforemitigation",function(){h=1}),d.keys(e).forEach(function(a){b.on("$timing:"+a, function(b){var k=e[a];if(c.isl||h){var d="csa:"+k;f(k,d,void 0,b);g("at",d)}else f(k,void 0,void 0,b)})}),a.ue_csa_ss_tag||l.forEach(function(a){b.on("$csmTag:"+a,function(){c.tag&&c.tag(a);(c.isl||h)&&g("at","csa:"+a)},{buffered:1})}))}); window.rx = { 'rid':'0ZVPJFX4CAAN9QGRQFMY', 'sid':'140-7332671-9602137', 'c':{ 'rxp':'/rd/uedata' }}; </script> <script>window.ue && ue.count && ue.count('CSMLibrarySize', 16679)</script> <!-- sp:end-feature:csm:body-open --> <!-- sp:feature:nav-inline-js --> <!-- NAVYAAN JS --> <script type="text/javascript">!function(n){function e(n,e){return{m:n,a:function(n){return[].slice.call(n)}(e)}}document.createElement("header");var r=function(n){function u(n,r,u){n[u]=function(){a._replay.push(r.concat(e(u,arguments)))}}var a={};return a._sourceName=n,a._replay=[],a.getNow=function(n,e){return e},a.when=function(){var n=[e("when",arguments)],r={};return u(r,n,"run"),u(r,n,"declare"),u(r,n,"publish"),u(r,n,"build"),r.depends=n,r.iff=function(){var r=n.concat([e("iff",arguments)]),a={};return u(a,r,"run"),u(a,r,"declare"),u(a,r,"publish"),u(a,r,"build"),a},r},u(a,[],"declare"),u(a,[],"build"),u(a,[],"publish"),u(a,[],"importEvent"),r._shims.push(a),a};r._shims=[],n.$Nav||(n.$Nav=r("rcx-nav")),n.$Nav.make||(n.$Nav.make=r)}(window)</script><script type="text/javascript"> $Nav.importEvent('navbarJS-beaconbelt'); $Nav.declare('img.sprite', { 'png32': 'https://m.media-amazon.com/images/G/01/gno/sprites/nav-sprite-global-1x-reorg-privacy._CB541706272_.png', 'png32-2x': 'https://m.media-amazon.com/images/G/01/gno/sprites/nav-sprite-global-2x-reorg-privacy._CB541706272_.png' }); $Nav.declare('img.timeline', { 'timeline-icon-2x': 'https://m.media-amazon.com/images/G/01/gno/sprites/timeline_sprite_2x._CB443581191_.png' }); window._navbarSpriteUrl = 'https://m.media-amazon.com/images/G/01/gno/sprites/nav-sprite-global-1x-reorg-privacy._CB541706272_.png'; $Nav.declare('img.pixel', 'https://m.media-amazon.com/images/G/01/x-locale/common/transparent-pixel._CB485935036_.gif'); </script> <img src="https://m.media-amazon.com/images/G/01/gno/sprites/nav-sprite-global-1x-reorg-privacy._CB541706272_.png" style="display:none" alt=""/> <script type="text/javascript">var nav_t_after_preload_sprite = + new Date();</script> <script> (window.AmazonUIPageJS ? AmazonUIPageJS : P).when('navCF').execute(function() { (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://images-na.ssl-images-amazon.com/images/I/51V5yVZxXVL._RC|71ivn62FYHL.js,01QvReFeJyL.js,01VfhmbHmKL.js,71fUQ31BV4L.js,41jBieyCvYL.js,01wXnKULArL.js,01+pnQJuQ0L.js,21Un7Tx1UGL.js,4122so6jZwL.js,51HrkAbbpLL.js,31pICZB5M9L.js,11lw6J7z8iL.js,31NSDarX4TL.js,01VYGE8lGhL.js,01tDwkxEoCL.js_.js?AUIClients/NavDesktopUberAsset#desktop.language-en.us.878681-T1.803398-T1.1089549-T1.310484-T1.1043986-T1.872752-T1.1089768-T1.836079-T1.1011005-T1'); }); </script> <!-- sp:end-feature:nav-inline-js --> <!-- sp:feature:nav-skeleton --> <!-- sp:end-feature:nav-skeleton --> <!-- sp:feature:navbar --> <!--Pilu --> <!-- NAVYAAN --> <!-- navmet initial definition --> <script type='text/javascript'> if(window.navmet===undefined) { window.navmet=[]; if (window.performance && window.performance.timing && window.ue_t0) { var t = window.performance.timing; var now = + new Date(); window.navmet.basic = { 'networkLatency': (t.responseStart - t.fetchStart), 'navFirstPaint': (now - t.responseStart), 'NavStart': (now - window.ue_t0) }; window.navmet.push({key:"NavFirstPaintStart",end:+new Date(),begin:window.ue_t0}); } } if (window.ue_t0) { window.navmet.push({key:"NavMainStart",end:+new Date(),begin:window.ue_t0}); } </script> <script type='text/javascript'>window.navmet.tmp=+new Date();</script> <script type='text/javascript'> // Nav start should be logged at this place only if request is NOT progressively loaded. // For progressive loading case this metric is logged as part of skeleton. // Presence of skeleton signals that request is progressively loaded. if(!document.getElementById("navbar-skeleton")) { window.uet && uet('ns'); } window._navbar = (function (o) { o.componentLoaded = o.loading = function(){}; o.browsepromos = {}; o.issPromos = []; return o; }(window._navbar || {})); window._navbar.declareOnLoad = function () { window.$Nav && $Nav.declare('page.load'); }; if (window.addEventListener) { window.addEventListener("load", window._navbar.declareOnLoad, false); } else if (window.attachEvent) { window.attachEvent("onload", window._navbar.declareOnLoad); } else if (window.$Nav) { $Nav.when('page.domReady').run("OnloadFallbackSetup", function () { window._navbar.declareOnLoad(); }); } window.$Nav && $Nav.declare('logEvent.enabled', 'false'); window.$Nav && $Nav.declare('config.lightningDeals', {}); </script> <style mark="aboveNavInjectionCSS" type="text/css"> #nav-flyout-ewc .nav-flyout-buffer-left { display: none; } #nav-flyout-ewc .nav-flyout-buffer-right { display: none; } div#navSwmHoliday.nav-focus {border: none;margin: 0;} </style> <script mark="aboveNavInjectionJS" type="text/javascript"> try { if(window.navmet===undefined)window.navmet=[]; if(window.$Nav) { $Nav.when('$', 'config', 'flyout.accountList', 'SignInRedirect', 'dataPanel').run('accountListRedirectFix', function ($, config, flyout, SignInRedirect, dataPanel) { if (!config.accountList) { return; } flyout.getPanel().onData(function (data) { if (SignInRedirect) { var $anchors = $('[data-nav-role=signin]', flyout.elem()); $.each($anchors, function(i, anchorEl) {SignInRedirect.setRedirectUrl($(anchorEl), null, null);});}});}); $Nav.when('$').run('defineIsArray', function(jQuery) { if(jQuery.isArray===undefined) { jQuery.isArray=function(param) { if(param.length===undefined) { return false; } return true; }; } }); $Nav.declare('config.cartFlyoutDisabled', 'true'); $Nav.when('$','$F','config','logEvent','panels','phoneHome','dataPanel','flyouts.renderPromo','flyouts.sloppyTrigger','flyouts.accessibility','util.mouseOut','util.onKey','debug.param').build('flyouts.buildSubPanels',function($,$F,config,logEvent,panels,phoneHome,dataPanel,renderPromo,createSloppyTrigger,a11yHandler,mouseOutUtility,onKey,debugParam){var flyoutDebug=debugParam('navFlyoutClick');return function(flyout,event){var linkKeys=[];$('.nav-item',flyout.elem()).each(function(){var $item=$(this);linkKeys.push({link:$item,panelKey:$item.attr('data-nav-panelkey')});});if(linkKeys.length===0){return;} var visible=false;var $parent=$('<div class=\'nav-subcats\'></div>').appendTo(flyout.elem());var panelGroup=flyout.getName()+'SubCats';var hideTimeout=null;var sloppyTrigger=createSloppyTrigger($parent);var showParent=function(){if(hideTimeout){clearTimeout(hideTimeout);hideTimeout=null;} if(visible){return;} var height=$('#nav-flyout-shopAll').height(); $parent.css({'height': height});$parent.animate({width:'show'},{duration:200,complete:function(){$parent.css({overflow:'visible'});}});visible=true;};var hideParentNow=function(){$parent.stop().css({overflow:'hidden',display:'none',width:'auto',height:'auto'});panels.hideAll({group:panelGroup});visible=false;if(hideTimeout){clearTimeout(hideTimeout);hideTimeout=null;}};var hideParent=function(){if(!visible){return;} if(hideTimeout){clearTimeout(hideTimeout);hideTimeout=null;} hideTimeout=setTimeout(hideParentNow,10);};flyout.onHide(function(){sloppyTrigger.disable();hideParentNow();this.elem().hide();});var addPanel=function($link,panelKey){var panel=dataPanel({className:'nav-subcat',dataKey:panelKey,groups:[panelGroup],spinner:false,visible:false});if(!flyoutDebug){var mouseout=mouseOutUtility();mouseout.add(flyout.elem());mouseout.action(function(){panel.hide();});mouseout.enable();} var a11y=a11yHandler({link:$link,onEscape:function(){panel.hide();$link.focus();}});var logPanelInteraction=function(promoID,wlTriggers){var logNow=$F.once().on(function(){var panelEvent=$.extend({},event,{id:promoID});if(config.browsePromos&&!!config.browsePromos[promoID]){panelEvent.bp=1;} logEvent(panelEvent);phoneHome.trigger(wlTriggers);});if(panel.isVisible()&&panel.hasInteracted()){logNow();}else{panel.onInteract(logNow);}};panel.onData(function(data){renderPromo(data.promoID,panel.elem());logPanelInteraction(data.promoID,data.wlTriggers);});panel.onShow(function(){var columnCount=$('.nav-column',panel.elem()).length;panel.elem().addClass('nav-colcount-'+columnCount);showParent();var $subCatLinks=$('.nav-subcat-links > a',panel.elem());var length=$subCatLinks.length;if(length>0){var firstElementLeftPos=$subCatLinks.eq(0).offset().left;for(var i=1;i<length;i++){if(firstElementLeftPos===$subCatLinks.eq(i).offset().left){$subCatLinks.eq(i).addClass('nav_linestart');}} if($('span.nav-title.nav-item',panel.elem()).length===0){var catTitle=$.trim($link.html());catTitle=catTitle.replace(/ref=sa_menu_top/g,'ref=sa_menu');var $subPanelTitle=$('<span class=\'nav-title nav-item\'>'+ catTitle+'</span>');panel.elem().prepend($subPanelTitle);}} $link.addClass('nav-active');});panel.onHide(function(){$link.removeClass('nav-active');hideParent();a11y.disable();sloppyTrigger.disable();});panel.onShow(function(){a11y.elems($('a, area',panel.elem()));});sloppyTrigger.register($link,panel);if(flyoutDebug){$link.click(function(){if(panel.isVisible()){panel.hide();}else{panel.show();}});} var panelKeyHandler=onKey($link,function(){if(this.isEnter()||this.isSpace()){panel.show();}},'keydown',false);$link.focus(function(){panelKeyHandler.bind();}).blur(function(){panelKeyHandler.unbind();});panel.elem().appendTo($parent);};var hideParentAndResetTrigger=function(){hideParent();sloppyTrigger.disable();};for(var i=0;i<linkKeys.length;i++){var item=linkKeys[i];if(item.panelKey){addPanel(item.link,item.panelKey);}else{item.link.mouseover(hideParentAndResetTrigger);}}};});}; } catch ( err ) { if ( window.$Nav ) { window.$Nav.when('metrics', 'logUeError').run(function(metrics, log) { metrics.increment('NavJS:AboveNavInjection:error'); log(err.toString(), { 'attribution': 'rcx-nav', 'logLevel': 'FATAL' }); }); } } </script> <noscript> <style type="text/css"><!-- #navbar #nav-shop .nav-a:hover { color: #ff9900; text-decoration: underline; } #navbar #nav-search .nav-search-facade, #navbar #nav-tools .nav-icon, #navbar #nav-shop .nav-icon, #navbar #nav-subnav .nav-hasArrow .nav-arrow { display: none; } #navbar #nav-search .nav-search-submit, #navbar #nav-search .nav-search-scope { display: block; } #nav-search .nav-search-scope { padding: 0 5px; } #navbar #nav-search .nav-search-dropdown { position: relative; top: 5px; height: 23px; font-size: 14px; opacity: 1; filter: alpha(opacity = 100); } --></style> </noscript> <script type='text/javascript'>window.navmet.push({key:'PreNav',end:+new Date(),begin:window.navmet.tmp});</script> <a id='nav-top'></a> <a id="skiplink" tabindex="0" class="skip-link">Skip to main content</a> <script type='text/javascript'>window.navmet.main=+new Date();</script> <header id="navbar-main" class = "nav-opt-sprite nav-flex nav-locale-us nav-lang-en nav-ssl nav-unrec nav-progressive-attribute"> <div id='navbar' cel_widget_id='Navigation-desktop-navbar' role='navigation' class="nav-sprite-v1 celwidget nav-bluebeacon nav-a11y-t1 bold-focus-hover layout2 nav-flex layout3 layout3-alt nav-celnav-t11-spruce nav-packard-glow hamburger nav-progressive-attribute"> <div id='nav-belt'> <div class='nav-left'> <script type='text/javascript'>window.navmet.tmp=+new Date();</script> <div id="nav-logo" class="nav-celnav-t11-spruce nav-progressive-attribute"> <a href="/ref=nav_logo" id="nav-logo-sprites" class="nav-logo-link nav-progressive-attribute" aria-label="Amazon"> <span class="nav-sprite nav-logo-base"></span> <span id="logo-ext" class="nav-sprite nav-logo-ext nav-progressive-content"></span> <span class="nav-logo-locale">.us</span> </a> </div> <script type='text/javascript'>window.navmet.push({key:'Logo',end:+new Date(),begin:window.navmet.tmp});</script> <div id="nav-global-location-slot"> <span id="nav-global-location-data-modal-action" class="a-declarative nav-progressive-attribute" data-a-modal='{"width":375, "closeButton":"true","popoverLabel":"Choose your location", "ajaxHeaders":{"anti-csrftoken-a2z":"hL506qwOvdfrr1VRTpkKwC0DQcgNQl6B9uAOQ5ZLE7F7AAAAAGc+8XoAAAAB"}, "name":"glow-modal", "url":"/portal-migration/hz/glow/get-rendered-address-selections?deviceType=desktop&pageType=Gateway&storeContext=NoStoreName&actionSource=desktop-modal", "footer":"<span class=\"a-declarative\" data-action=\"a-popover-close\" data-a-popover-close=\"{}\"><span class=\"a-button a-button-primary\"><span class=\"a-button-inner\"><button name=\"glowDoneButton\" class=\"a-button-text\" type=\"button\">Done</button></span></span></span>","header":"Choose your location"}' data-action="a-modal"> <a id="nav-global-location-popover-link" role="button" tabindex="0" class="nav-a nav-a-2 a-popover-trigger a-declarative nav-progressive-attribute" href=""> <div class="nav-sprite nav-progressive-attribute" id="nav-packard-glow-loc-icon"></div> <div id="glow-ingress-block"> <span class="nav-line-1 nav-progressive-content" id="glow-ingress-line1"> Deliver to </span> <span class="nav-line-2 nav-progressive-content" id="glow-ingress-line2"> Uruguay </span> </div> </a> </span> <input data-addnewaddress="add-new" id="unifiedLocation1ClickAddress" name="dropdown-selection" type="hidden" value="add-new" class="nav-progressive-attribute" /> <input data-addnewaddress="add-new" id="ubbShipTo" name="dropdown-selection-ubb" type="hidden" value="add-new" class="nav-progressive-attribute"/> <input id="glowValidationToken" name="glow-validation-token" type="hidden" value="hL506qwOvdfrr1VRTpkKwC0DQcgNQl6B9uAOQ5ZLE7F7AAAAAGc+8XoAAAAB" class="nav-progressive-attribute"/> <input id="glowDestinationType" name="glow-destination-type" type="hidden" value="COUNTRY" class="nav-progressive-attribute"/> </div> <div id="nav-global-location-toaster-script-container" class="nav-progressive-content"> <!-- NAVYAAN-GLOW-NAV-TOASTER --> <script> P.when('glow-toaster-strings').execute(function(S) { S.load({"glow-toaster-address-change-error":"An error has occurred and the address has not been updated. Please try again.","glow-toaster-unknown-error":"An error has occurred. Please try again."}); }); </script> <script> P.when('glow-toaster-manager').execute(function(M) { M.create({"pageType":"Gateway","aisTransitionState":null,"rancorLocationSource":"REALM_DEFAULT"}) }); </script> </div> </div> <div class='nav-fill'> <script type='text/javascript'>window.navmet.tmp=+new Date();</script> <div id="nav-search"> <div id="nav-bar-left"></div> <form id="nav-search-bar-form" accept-charset="utf-8" action="/s/ref=nb_sb_noss" class="nav-searchbar nav-progressive-attribute" method="GET" name="site-search" role="search" > <div class="nav-left"> <div id="nav-search-dropdown-card"> <div class="nav-search-scope nav-sprite"> <div class="nav-search-facade" data-value="search-alias=aps"> <span id="nav-search-label-id" class="nav-search-label nav-progressive-content">All</span> <i class="nav-icon"></i> </div> <label id="searchDropdownDescription" for="searchDropdownBox" class="nav-progressive-attribute" style="display:none">Select the department you want to search in</label> <select aria-describedby="searchDropdownDescription" class="nav-search-dropdown searchSelect nav-progressive-attrubute nav-progressive-search-dropdown" data-nav-digest="k+fyIAyB82R9jVEmroQ0OWwSW3A=" data-nav-selected="0" id="searchDropdownBox" name="url" style="display: block;" tabindex="0" title="Search in" > <option selected="selected" value="search-alias=aps">All Departments</option> <option value="search-alias=arts-crafts-intl-ship">Arts & Crafts</option> <option value="search-alias=automotive-intl-ship">Automotive</option> <option value="search-alias=baby-products-intl-ship">Baby</option> <option value="search-alias=beauty-intl-ship">Beauty & Personal Care</option> <option value="search-alias=stripbooks-intl-ship">Books</option> <option value="search-alias=fashion-boys-intl-ship">Boys' Fashion</option> <option value="search-alias=computers-intl-ship">Computers</option> <option value="search-alias=deals-intl-ship">Deals</option> <option value="search-alias=digital-music">Digital Music</option> <option value="search-alias=electronics-intl-ship">Electronics</option> <option value="search-alias=fashion-girls-intl-ship">Girls' Fashion</option> <option value="search-alias=hpc-intl-ship">Health & Household</option> <option value="search-alias=kitchen-intl-ship">Home & Kitchen</option> <option value="search-alias=industrial-intl-ship">Industrial & Scientific</option> <option value="search-alias=digital-text">Kindle Store</option> <option value="search-alias=luggage-intl-ship">Luggage</option> <option value="search-alias=fashion-mens-intl-ship">Men's Fashion</option> <option value="search-alias=movies-tv-intl-ship">Movies & TV</option> <option value="search-alias=music-intl-ship">Music, CDs & Vinyl</option> <option value="search-alias=pets-intl-ship">Pet Supplies</option> <option value="search-alias=instant-video">Prime Video</option> <option value="search-alias=software-intl-ship">Software</option> <option value="search-alias=sporting-intl-ship">Sports & Outdoors</option> <option value="search-alias=tools-intl-ship">Tools & Home Improvement</option> <option value="search-alias=toys-and-games-intl-ship">Toys & Games</option> <option value="search-alias=videogames-intl-ship">Video Games</option> <option value="search-alias=fashion-womens-intl-ship">Women's Fashion</option> </select> </div> </div> </div> <div class="nav-fill"> <div class="nav-search-field "> <div class="ac-input-container"> <div class="ac-live-field" id="ac-liveField" role="status" aria-atomic="true" aria-live="polite"></div> <div class="ac-input-overlay" aria-hidden="true"> <span class="ac-ghost" id="ac-predictive-text"> <span class="ac-current-input" id="ac-prefix"></span><span class="ac-ghost-suggestion" id="ac-prediction"></span> </span> </div> <label for="twotabsearchtextbox" style="display: none;">Search Amazon</label> <input type="text" id="twotabsearchtextbox" value="" name="field-keywords" autocomplete="off" placeholder="Search Amazon" class="nav-input nav-progressive-attribute" dir="auto" tabindex="0" aria-label="Search Amazon" role="searchbox" aria-autocomplete="list" aria-controls="sac-autocomplete-results-container" aria-expanded="false" aria-haspopup="grid" spellcheck="false" > </div> </div> <div id="nav-iss-attach"></div> </div> <div class="nav-right"> <div class="nav-search-submit nav-sprite"> <span id="nav-search-submit-text" class="nav-search-submit-text nav-sprite nav-progressive-attribute" aria-label="Go"> <input id="nav-search-submit-button" type="submit" class="nav-input nav-progressive-attribute" value="Go" tabindex="0"> </span> </div> </div> </form> </div> <script type='text/javascript'>window.navmet.push({key:'Search',end:+new Date(),begin:window.navmet.tmp});</script> </div> <div class='nav-right'> <script type='text/javascript'>window.navmet.tmp=+new Date();</script> <div id='nav-tools' class="layoutToolbarPadding"> <a href="/customer-preferences/edit?ie=UTF8&preferencesReturnUrl=%2F&ref_=topnav_lang_ais" id="icp-nav-flyout" class="nav-a nav-a-2 icp-link-style-2" aria-label="Choose a language for shopping."> <span class="icp-nav-link-inner"> <span class="nav-line-1"> </span> <span class="nav-line-2"> <span class="icp-nav-flag icp-nav-flag-us icp-nav-flag-lop"></span> <div>EN</div> <span class="nav-icon nav-arrow"></span> </span> </span> </a> <a href="https://www.amazon.com/ap/signin?openid.pape.max_auth_age=0&openid.return_to=https%3A%2F%2Fwww.amazon.com%2F%3F_encoding%3DUTF8%26ref_%3Dnav_ya_signin&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.assoc_handle=usflex&openid.mode=checkid_setup&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0" class="nav-a nav-a-2 nav-progressive-attribute" data-nav-ref="nav_ya_signin" data-nav-role="signin" data-ux-jq-mouseenter="true" id="nav-link-accountList" tabindex="0" data-csa-c-type="link" data-csa-c-slot-id="nav-link-accountList" data-csa-c-content-id="nav_ya_signin"> <div class="nav-line-1-container"><span id="nav-link-accountList-nav-line-1" class="nav-line-1 nav-progressive-content">Hello, sign in</span></div> <span class="nav-line-2 ">Account & Lists<span class="nav-icon nav-arrow"></span> </span> </a> <a href="/gp/css/order-history?ref_=nav_orders_first" class="nav-a nav-a-2 nav-progressive-attribute" id="nav-orders" tabindex="0"> <span class="nav-line-1">Returns</span> <span class="nav-line-2">& Orders<span class="nav-icon nav-arrow"></span></span> </a> <a href="/gp/cart/view.html?ref_=nav_cart" aria-label="0 items in cart" class="nav-a nav-a-2 nav-progressive-attribute" id="nav-cart"> <div id="nav-cart-count-container"> <span id="nav-cart-count" aria-hidden="true" class="nav-cart-count nav-cart-0 nav-progressive-attribute nav-progressive-content">0</span> <span class="nav-cart-icon nav-sprite"></span> </div> <div id="nav-cart-text-container" class=" nav-progressive-attribute"> <span aria-hidden="true" class="nav-line-1"> </span> <span aria-hidden="true" class="nav-line-2"> Cart <span class="nav-icon nav-arrow"></span> </span> </div> </a> </div> <script type='text/javascript'>window.navmet.push({key:'Tools',end:+new Date(),begin:window.navmet.tmp});</script> </div> </div> <div id='nav-main' class='nav-sprite'> <div class='nav-left'> <script type='text/javascript'>window.navmet.tmp=+new Date();</script> <a href="/gp/site-directory?ref_=nav_em_js_disabled" id="nav-hamburger-menu" role="button" aria-label="Open All Categories Menu" aria-expanded="false" data-csa-c-type="widget" data-csa-c-slot-id="HamburgerMenuDesk
Resolver
Resolver ASN
AS6057
Resolver IP
200.40.53.8
Resolver Network Name
Administracion Nacional de Telecomunicaciones
Report ID
20241121T083339Z_webconnectivity_UY_6057_n1_6Mw0k8bnZMMgX6MD
Platform
android
Software Name
ooniprobe-android-unattended (3.7.0)
Measurement Engine
ooniprobe-engine (3.15.2)