These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.
<script>if(navigator.userAgent.match(/MSIE|Internet
Explorer/i)||navigator.userAgent.match(/Trident/7..*?rv:11/i)){var
href=document.location.href;if(!href.match(/[?&]nowprocket/)){if(href.indexOf("?")==-
1){if(href.indexOf("#")==-
1){document.location.href=href+"?nowprocket=1"}else{document.location.href=href.replace("#","?nowproc
ket=1#")}}else{if(href.indexOf("#")==-
1){document.location.href=href+"&nowprocket=1"}else{document.location.href=href.replace("#","&nowpro
cket=1#")}}}}</script>
<script>class
RocketLazyLoadScripts{constructor(){this.triggerEvents=["keydown","mousedown","mousemove","touchmov
e","touchstart","touchend","wheel"],this.userEventHandler=this._triggerListener.bind(this),this.touchStartHa
ndler=this._onTouchStart.bind(this),this.touchMoveHandler=this._onTouchMove.bind(this),this.touchEndHa
ndler=this._onTouchEnd.bind(this),this.clickHandler=this._onClick.bind(this),this.interceptedClicks=[],window
.addEventListener("pageshow",(e=>{this.persisted=e.persisted})),window.addEventListener("DOMContentLo
aded",(()=>{this._preconnect3rdParties()})),this.delayedScripts={normal:[],async:[],defer:[]},this.allJQueries=[]
}_addUserInteractionListener(e){document.hidden?e._triggerListener():(this.triggerEvents.forEach((t=>windo
w.addEventListener(t,e.userEventHandler,{passive:!0}))),window.addEventListener("touchstart",e.touchStart
Handler,{passive:!0}),window.addEventListener("mousedown",e.touchStartHandler),document.addEventList
ener("visibilitychange",e.userEventHandler))}_removeUserInteractionListener(){this.triggerEvents.forEach((e
=>window.removeEventListener(e,this.userEventHandler,{passive:!0}))),document.removeEventListener("visi
bilitychange",this.userEventHandler)}_onTouchStart(e){"HTML"!==e.target.tagName&&(window.addEventLis
tener("touchend",this.touchEndHandler),window.addEventListener("mouseup",this.touchEndHandler),windo
w.addEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.addEventListener("mousemo
ve",this.touchMoveHandler),e.target.addEventListener("click",this.clickHandler),this._renameDOMAttribute(
e.target,"onclick","rocket-
onclick"))}_onTouchMove(e){window.removeEventListener("touchend",this.touchEndHandler),window.remo
veEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchM
oveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler),e.target.remo
veEventListener("click",this.clickHandler),this._renameDOMAttribute(e.target,"rocket-
onclick","onclick")}_onTouchEnd(e){window.removeEventListener("touchend",this.touchEndHandler),windo
w.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.t
ouchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler)}_onCli
ck(e){e.target.removeEventListener("click",this.clickHandler),this._renameDOMAttribute(e.target,"rocket-
onclick","onclick"),this.interceptedClicks.push(e),e.preventDefault(),e.stopPropagation(),e.stopImmediatePro
pagation()}_replayClicks(){window.removeEventListener("touchstart",this.touchStartHandler,{passive:!0}),wi
ndow.removeEventListener("mousedown",this.touchStartHandler),this.interceptedClicks.forEach((e=>{e.targ
et.dispatchEvent(new
MouseEvent("click",{view:e.view,bubbles:!0,cancelable:!0}))}))}_renameDOMAttribute(e,t,n){e.hasAttribute&
&e.hasAttribute(t)&&(event.target.setAttribute(n,event.target.getAttribute(t)),event.target.removeAttribute
(t))}_triggerListener(){this._removeUserInteractionListener(this),"loading"===document.readyState?docume
nt.addEventListener("DOMContentLoaded",this._loadEverythingNow.bind(this)):this._loadEverythingNow()}_
preconnect3rdParties(){let
e=[];document.querySelectorAll("script[type=rocketlazyloadscript]").forEach((t=>{if(t.hasAttribute("src")){con
st n=new
URL(t.src).origin;n!==location.origin&&e.push({src:n,crossOrigin:t.crossOrigin||"module"===t.getAttribute("d
ata-rocket-type")})}})),e=[...new
Map(e.map((e=>[JSON.stringify(e),e]))).values()],this._batchInjectResourceHints(e,"preconnect")}async
_loadEverythingNow(){this.lastBreath=Date.now(),this._delayEventListeners(),this._delayJQueryReady(this),t
his._handleDocumentWrite(),this._registerAllDelayedScripts(),this._preloadAllScripts(),await
this._loadScriptsFromList(this.delayedScripts.normal),await
this._loadScriptsFromList(this.delayedScripts.defer),await
this._loadScriptsFromList(this.delayedScripts.async);try{await this._triggerDOMContentLoaded(),await
this._triggerWindowLoad()}catch(e){}window.dispatchEvent(new Event("rocket-
allScriptsLoaded")),this._replayClicks()}_registerAllDelayedScripts(){document.querySelectorAll("script[type=r
ocketlazyloadscript]").forEach((e=>{e.hasAttribute("src")?e.hasAttribute("async")&&!1!==e.async?this.delaye
dScripts.async.push(e):e.hasAttribute("defer")&&!1!==e.defer||"module"===e.getAttribute("data-rocket-
type")?this.delayedScripts.defer.push(e):this.delayedScripts.normal.push(e):this.delayedScripts.normal.push(
e)}))}async _transformScript(e){return await this._littleBreath(),new Promise((t=>{const
n=document.createElement("script");[...e.attributes].forEach((e=>{let t=e.nodeName;"type"!==t&&("data-
rocket-
type"===t&&(t="type"),n.setAttribute(t,e.nodeValue))})),e.hasAttribute("src")?(n.addEventListener("load",t),
n.addEventListener("error",t)):(n.text=e.text,t());try{e.parentNode.replaceChild(n,e)}catch(e){t()}}))}async
_loadScriptsFromList(e){const t=e.shift();return t?(await
this._transformScript(t),this._loadScriptsFromList(e)):Promise.resolve()}_preloadAllScripts(){this._batchInject
ResourceHints([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload
")}_batchInjectResourceHints(e,t){var n=document.createDocumentFragment();e.forEach((e=>{if(e.src){const
i=document.createElement("link");i.href=e.src,i.rel=t,"preconnect"!==t&&(i.as="script"),e.getAttribute&&"m
odule"===e.getAttribute("data-rocket-
type")&&(i.crossOrigin=!0),e.crossOrigin&&(i.crossOrigin=e.crossOrigin),n.appendChild(i)}})),document.head.
appendChild(n)}_delayEventListeners(){let e={};function t(t,n){!function(t){function n(n){return
e[t].eventsToRewrite.indexOf(n)>=0?"rocket-
"+n:n}e[t]||(e[t]={originalFunctions:{add:t.addEventListener,remove:t.removeEventListener},eventsToRewrit
e:[]},t.addEventListener=function(){arguments[0]=n(arguments[0]),e[t].originalFunctions.add.apply(t,argume
nts)},t.removeEventListener=function(){arguments[0]=n(arguments[0]),e[t].originalFunctions.remove.apply(t,
arguments)})}(t),e[t].eventsToRewrite.push(n)}function n(e,t){let
n=e[t];Object.defineProperty(e,t,{get:()=>n||function(){},set(i){e["rocket"+t]=n=i}})}t(document,"DOMConten
tLoaded"),t(window,"DOMContentLoaded"),t(window,"load"),t(window,"pageshow"),t(document,"readystat
echange"),n(document,"onreadystatechange"),n(window,"onload"),n(window,"onpageshow")}_delayJQuery
Ready(e){let
t=window.jQuery;Object.defineProperty(window,"jQuery",{get:()=>t,set(n){if(n&&n.fn&&!e.allJQueries.inclu
des(n)){n.fn.ready=n.fn.init.prototype.ready=function(t){e.domReadyFired?t.bind(document)(n):document.a
ddEventListener("rocket-DOMContentLoaded",(()=>t.bind(document)(n)))};const
t=n.fn.on;n.fn.on=n.fn.init.prototype.on=function(){if(this[0]===window){function e(e){return e.split("
").map((e=>"load"===e||0===e.indexOf("load.")?"rocket-jquery-load":e)).join(" ")}"string"==typeof
arguments[0]||arguments[0]instanceof String?arguments[0]=e(arguments[0]):"object"==typeof
arguments[0]&&Object.keys(arguments[0]).forEach((t=>{delete
Object.assign(arguments[0],{[e(t)]:arguments[0][t]})[t]}))}return
t.apply(this,arguments),this},e.allJQueries.push(n)}t=n}})}async
_triggerDOMContentLoaded(){this.domReadyFired=!0,await this._littleBreath(),document.dispatchEvent(new
Event("rocket-DOMContentLoaded")),await this._littleBreath(),window.dispatchEvent(new Event("rocket-
DOMContentLoaded")),await this._littleBreath(),document.dispatchEvent(new Event("rocket-
readystatechange")),await
this._littleBreath(),document.rocketonreadystatechange&&document.rocketonreadystatechange()}async
_triggerWindowLoad(){await this._littleBreath(),window.dispatchEvent(new Event("rocket-load")),await
this._littleBreath(),window.rocketonload&&window.rocketonload(),await
this._littleBreath(),this.allJQueries.forEach((e=>e(window).trigger("rocket-jquery-load"))),await
this._littleBreath();const e=new Event("rocket-
pageshow");e.persisted=this.persisted,window.dispatchEvent(e),await
this._littleBreath(),window.rocketonpageshow&&window.rocketonpageshow({persisted:this.persisted})}_ha
ndleDocumentWrite(){const e=new Map;document.write=document.writeln=function(t){const
n=document.currentScript,i=document.createRange(),r=n.parentElement;let o=e.get(n);void
0===o&&(o=n.nextSibling,e.set(n,o));const
s=document.createDocumentFragment();i.setStart(s,0),s.appendChild(i.createContextualFragment(t)),r.insert
Before(s,o)}}async _littleBreath(){Date.now()-this.lastBreath>45&&(await
this._requestAnimFrame(),this.lastBreath=Date.now())}async _requestAnimFrame(){return
document.hidden?new Promise((e=>setTimeout(e))):new Promise((e=>requestAnimationFrame(e)))}static
run(){const e=new
RocketLazyLoadScripts;e._addUserInteractionListener(e)}}RocketLazyLoadScripts.run();</script>
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.