
try{(function(_1){
var _1=_1,_2=_1.document,_3=i$.hasClass,_4=i$.toQuery,_5=i$.fromPath,_6=i$.forEach,_7="edit",_8="info",_9="toolbar:open",_a="toolbar:close",_b="ibm.portal.toolbar.",_c=function(_d){
var _d=_e(_d),_f=_10(_d),uri=_f.uri,_11=_f.params||{},_12=_13(_d);
if(uri){
if(_14()&&!_15(_12)){
if(_d.editMode===true){
_16(uri,_11);
}else{
_17(uri,_11);
}
}else{
_18(uri,_11,_12);
}
}else{
if(_14()){
if(_15(_12)){
_19(_12);
}
}else{
_18(uri,_11,_12);
}
}
},_1a=function(_1b){
_1b.primaryTab=_1b.tab;
_1b.tab=null;
return _c(_1b);
},_1c=function(_1d){
_1d.secondaryTab=_1d.tab;
_1d.tab=null;
return _c(_1d);
},_1e=function(_1f){
var _20=_21();
if(_20){
_20.close(_1f);
}else{
_1f();
}
},_22=function(_23){
_1e(function(){
_24(_23);
});
},_24=function(_25){
var _26=_10(_25),uri=_26.uri,_27=_26.params||{};
if(_14()){
if(uri){
if(!_27.uri){
_27.uri=[];
}
_27.uri.push(_a);
}else{
uri=_a;
}
}
if(uri){
_28(_29(),uri,_27,function(url){
_2a().location.href=url;
});
}
},_14=function(){
var r=_21();
return r;
},_2b=function(_2c,_2d){
var uri=_2e(_2c,_2d);
if(_2c==_7&&_2d&&_14()){
_16(uri);
}else{
_17(uri);
}
},_2e=function(_2f,_30){
var uri=["pagemode:"];
uri.push(_2f);
uri.push(":");
_30?uri.push("on"):uri.push("off");
var r=uri.join("");
return r;
},_31=function(_32){
_2b(_7,_32);
},_33=function(){
var r=_34(_7);
return r;
},_35=function(_36){
_2b(_8,_36);
},_37=function(){
var r=_34(_8);
return r;
},_34=function(_38){
var win=_29(),_39=win.document.body,r=_3(_39,_38+"-mode");
return r;
},_3a=function(_3b,_3c){
var r=false;
if(_3c!==undefined){
r=_3c!==_34(_3b);
}
return r;
},_17=function(uri,_3d){
var win=_29();
_28(win,uri,_3d,function(url){
win.location.href=url;
});
},_16=function(uri,_3e){
if(_14()){
var _3f=_21();
_3f.load(_40(uri,_3e),"view",{"onload":function(){
_3f.restore();
}});
}else{
var win=_29();
_28(win,uri,_3e,function(url){
win.location.href=url;
});
}
},_41=function(_42){
_29().location.reload(_42);
},_10=function(_43){
var r={};
if(_43){
var uri=null,_44={},_45=_43.editMode,_46=_43.infoMode;
if(_3a(_7,_45)){
uri=_2e(_7,_45);
}
if(_3a(_8,_46)){
var _47=_2e(_8,_46);
if(uri){
_44.uri=[_47];
}else{
uri=_47;
}
}
if(uri){
r.uri=uri;
r.params=_44;
}
}
return r;
},_40=function(uri,_48){
var _49={"uri":uri};
if(_48){
_49.params=_48;
}
return _49;
},_e=function(_4a){
if(_14()){
_4a.autoOpenDefaultTabs=false;
}
return _4a;
},_19=function(_4b){
if(_4b&&_15(_4b)){
var _4c=_21();
if(_4c){
var p=_4b.primaryURI,_4d={},_4e=_4b.onCloseDialog;
if(_4e&&_4e.id){
_4d.onCloseDialog=function(_4f){
_50(_4f,_4e.id,_4e.key);
};
}
if(p){
_4c.load(_40(p),"primary",_4d);
}
var s=_4b.secondaryURI;
if(s){
_4c.load(_40(s),"secondary",_4d);
}
}
}
},_50=function(_51,id,key){
var _52=_51,id=id,key=key||"onCloseDialog";
_53(function(w){
try{
var d=w.document;
if(d){
var n=d.getElementById(id);
if(n){
var f=n[key];
if(f){
f.call(n,_51);
}
}
}
}
catch(e){
}
});
},_18=function(uri,_54,_55){
if(uri){
if(!_54){
_54={};
}
if(!_54.uri){
_54.uri=[];
}
_54.uri.push(_9);
}else{
uri=_9;
}
if(_55&&_15(_55)){
if(!_54){
_54={};
}
var p=_55.primaryURI;
if(p){
_54.primaryTabURI=[p];
}
var s=_55.secondaryURI;
if(s){
_54.secondaryTabURI=[s];
}
}
_28(_29(),uri,_54,function(url){
_2a().location.href=url;
});
},_13=function(_56){
var r={};
if(_56){
if(_56.tab||_56.primaryTab||_56.secondaryTab){
var _57=_56.secondaryTab||_56.tab;
if(_57){
r.secondaryURI=_58(_57);
}
var _59=_56.primaryTab;
if(_59){
r.primaryURI=_58(_59);
}
}
r.onCloseDialog=_56.onCloseDialog;
var _5a=_56.autoOpenDefaultTabs;
if(_5a){
if(!r.primaryURI){
r.primaryURI="default";
}
if(!r.secondaryURI){
r.secondaryURI="default";
}
}
}
return r;
},_58=function(t){
if(t.indexOf(_b)==0||t.indexOf("Z6_")==0){
return "nm:oid:"+t;
}else{
return t;
}
},_15=function(_5b){
var r=_5b&&(_5b.primaryURI||_5b.secondaryURI);
return r;
},_28=function(win,uri,_5c,cb){
_5d(win).then(function(url){
var _5e=url,buf=[];
buf.push(_5e);
if(_5e.indexOf("?")<0){
buf.push("?");
}else{
buf.push("&");
}
buf.push("uri=");
buf.push(uri);
if(_5c){
buf.push("&");
buf.push(_4(_5c));
}
var r=buf.join("");
cb(r);
});
},_5d=function(win){
var r=wpModules.theme.WindowUtils.findBaseURL(win);
return r;
},_5f=function(win){
var r=wpModules.theme.WindowUtils.getBaseURL(win);
return r;
},_29=function(){
var wu=wpModules.theme.WindowUtils,r=(wu&&wu.getWindow(wu.VIEW_AREA))||_1;
return r;
},_53=function(cb){
var _60=_2a(),_61=_60.frames;
cb.call(this,_60);
if(_61&&_61.length>0){
_6(_61,function(f){
cb.call(this,f.window);
});
}
},_2a=function(){
var win=_29(),r=(win.parent||win);
return r;
},_21=function(){
var r=_5("wpModules.toolbar.NavigationController",false,_2a());
return r;
},_62=_5("wpModules.toolbar",true);
_62.openToolbar=_c;
_62.openPrimaryTab=_1a;
_62.openSecondaryTab=_1c;
_62.closeTab=_1e;
_62.closeToolbar=_22;
_62.isToolbarOpened=_14;
_62.setEditModeActive=_31;
_62.isEditModeActive=_33;
_62.setInfoModeActive=_35;
_62.isInfoModeActive=_37;
_62.loadViewArea=_17;
_62.reloadViewArea=_41;
_62.getViewAreaWindow=_29;
_62.getToolbarMasterWindow=_2a;
_62.getBaseURL=_5f;
})(window);


}catch(e){console.log("Module 'wp_toolbar_utils': ",e);}
try{if(typeof (wpModules.toolbar)=="undefined"){
wpModules.toolbar={};
}
if(typeof (wpModules.toolbar.menuActions)=="undefined"){
wpModules.toolbar.menuActions={};
}


}catch(e){console.log("Module 'wp_toolbar_menuactions': ",e);}
try{(function(){
    i$.merge({
	"move_page_dialog_title":"Move the page '{0}' to...",
	"edit_wiring_dialog_title":"Manage Communication Endpoints for '{0}'",
	"confirm_delete_page_anonymous":"Are you sure you want to delete this page and all of its children?",
	"delete_control_dialog_title":"Delete Portlet",
	"confirm_delete_page":"Are you sure you want to delete the page '{0}' and all of its children?",
	"confirm_delete_control_anonymous":"Are you sure you want to remove this portlet from the page?",
	"page_properties_dialog_title":"Manage Page Properties",
	"delete_page_dialog_title":"Delete Page",
	"edit_wiring_dialog_title_anonymous":"Manage Communication Endpoints",
	"preview_as_user_dialog_title":"Preview as User",
	"confirm_delete_control":"Are you sure you want to remove the portlet '{0}' from the page?"
},i$.fromPath("wpModules.toolbar.menuActions.nls",true));
})();
}catch(e){console.log("Module 'wp_toolbar_menuactions': ",e);}
try{/**
 * This script checks to see if the page is being scrolled. If it is we check
 * the direction. When scrolling down the page we will apply the compressed
 * class to the navbar. If we are going up or are at the top of the page
 * (needed to check for safari bouncing the page) we remove the compressed
 * class
 */
(function () {
	var navbar = document.getElementById("stBanner");
	var oldScroll = window.scrollY || window.pageYOffset;
	window.onscroll =  function () {
		// only compress navbar if the mobile navigation panel is not open
		if (document.getElementById('stNavigation').className.indexOf('stNavigationShow') == -1) {
			var y = window.scrollY || window.pageYOffset;
			if (y > oldScroll && y != 0) {
				// not at top of page, compress navbar
				navbar.className = 'stBanner stGroup compressed';
			} else {
				// at top of page, give full navbar
				navbar.className = 'stBanner stGroup';
			}
			oldScroll = y;
		}
	};
})();
}catch(e){console.log("Module 'st_compressed_navbar': ",e);}
try{(function(){
var _1=document.getElementById("stBanner");
var _2=window.scrollY||window.pageYOffset;
window.onscroll=function(){
if(document.getElementById("stNavigation").className.indexOf("stNavigationShow")==-1){
var y=window.scrollY||window.pageYOffset;
if(y>_2&&y!=0){
_1.className="stBanner stGroup compressed";
}else{
_1.className="stBanner stGroup";
}
_2=y;
}
};
})();


}catch(e){console.log("Module 'st_compressed_navbar': ",e);}
try{/** Licensed Materials - Property of IBM, 5724-E76 and 5724-E77, (C) Copyright IBM Corp. 2012 - All Rights reserved.  **/
(function(){
var _1=ibmCfg.portalConfig.contentHandlerURI+((ibmCfg.portalConfig.contentHandlerURI.indexOf("?")<0)?"?":"&")+"uri=menu:${id}",_2=false,_3="Separator",_4="Header",_5=function(){
var _6=i$.hasClass(document.getElementsByTagName("body")[0],"edit-mode");
return _6;
},_7=i$.fromPath("wptheme",true),_8=i$.fromPath("wptheme.contextMenu",true),_9=i$.fromPath("wptheme.contextMenu.extension",true);
i$.mash(_7,{getWindowIDFromSkin:function(_a){
while((_a=_a.parentNode)!=null){
if(i$.hasClass(_a,"component-control")){
var m=_a&&(_a.className||"").match(/id-([\S]+)/);
var _b=m&&m[1];
return _b;
}
}
return null;
},getPortletState:function(_c){
var _d=i$.byId("portletState");
var _e={};
if(_d){
if(!_d._cache){
_d._cache=i$.fromJson(_d.innerHTML);
_d._cache._defaults={"windowState":"normal","portletMode":"view"};
}
if(_d._cache[_c]){
_e=_d._cache[_c];
}else{
_e=_d._cache._defaults;
}
}
return _e;
},isValidOp:function(_f){
if(_f.visibility===false){
return false;
}
var _10=_f.metadata||{};
switch(_f.id){
case "ibm.portal.operations.changePortletMode":
var _11=_7.getPortletState(_10.wid).portletMode!=_10.portletMode;
return _11;
case "ibm.portal.operations.changeWindowState":
var _11=_7.getPortletState(_10.wid).windowState!=_10.windowState;
return _11;
default:
}
return true;
},operation:{changeToHelpMode:function(_12){
var _13=window.location.href;
if(_12.actionUrl){
if(_12.actionUrl.indexOf("?")==0){
var _14=_13.indexOf("#");
if(_14!=-1){
var _15=_13.substring(0,_14);
var _16=_13.substring(_14);
_13=_15+(_15.indexOf("?")==-1?"?":"&")+_12.actionUrl.substring(1);
_13+=_16;
}else{
_13+=(_13.indexOf("?")==-1?"?":"&")+_12.actionUrl.substring(1);
}
}else{
_13=_12.actionUrl;
}
}
window.open(_13,"","resizable=yes,scrollbars=yes,menubar=no,toolbar=no,status=no,width=800,height=600,screenX=10,screenY=10,top=10,left=10");
}},canImpersonate:function(){
return ibmCfg.portalConfig.canImpersonate;
}});
i$.mash(_8,{cache:{},css:{focus:"wpthemeMenuFocus",disabled:"wpthemeMenuDisabled",show:"wpthemeMenuShow",error:"wpthemeMenuError",menuTemplate:"wpthemeTemplateMenu",submenuTemplate:"wpthemeTemplateSubmenu",loadingTemplate:"wpthemeTemplateLoading",complementaryContent:"wpthemeComplementaryContent",menuOverlay:"wpthemeMenuOverlay",alignLeft:"wpthemeMenuLeft",alignRight:"wpthemeMenuRight",noTouch:"wpthemeNoTouch"},init:function(){
var _17;
if(arguments.length==1){
_17=arguments[0];
}else{
_17={node:arguments[0],menuId:arguments[1],jsonQuery:(arguments.length>2)?arguments[2]:null};
}
this.init2(_17);
},init2:function(_18){
var _19=_18.node;
_18.params=_18.params||{};
var _1a=_18.params.autoScroll!==false;
_19._contextMenu=_19._contextMenu||{};
var _1b=_19._contextMenu;
_1b.id=_19._contextMenu.id||_19.getAttribute("id")||Math.round(Math.random()*1000000000);
_19.setAttribute("id",_1b.id);
_1b.menuId=_18.menuId;
_1b.jsonQuery=_18.jsonQuery;
_1b.templateId=_18.params.templateId||null;
_1b.alignLeft=(_18.params.alignment=="left")||false;
_1b.alignRight=(_18.params.alignment=="right")||false;
_1b.closeFn=function(_1c,evt){
var fn=_18.onClose;
if(fn){
if(i$.isFunction(fn)){
try{
fn();
}
catch(exc){
console.log("error executing function "+fn+" - "+exc);
}
}
}
_7.contextMenu.close(_1b,_1c,evt);
};
var _1d=function(_1e){
if(_1e.displayMenu){
_1b.activeAction=false;
i$.fireEvent("wptheme/contextMenu/close/all");
var _1f=i$.byId(_1b.id);
if(!_1b._submenu){
i$.fireEvent("wptheme/contextMenu/close/all");
_7.contextMenu._updateAbsolutePosition(_1f);
}
var _20=_7.contextMenu._adjustScreenPositionStart();
i$.addClass((_1b.shadowNode)?_1b.shadowNode:_1f,_21.show);
i$.addClass((_1b.shadowNode)?_1b.shadowNode:_1f,("ontouchstart" in document)?"":_21.noTouch);
if(_1a){
_7.contextMenu._adjustScreenPositionEnd(_20);
}
var _22=_1f._firstSelectable;
if(_22){
_22.focus();
_1f._currentSelected=_22;
}
}
};
_7.contextMenu._initialize(_19).then(_1d,_1d);
_19=null;
},initSubmenu:function(_23,_24,_25){
_23._contextMenu=_23._contextMenu||{};
var _26=_23._contextMenu;
_26._submenu=true;
_26._menuitemTemplate=_25._menuitemTemplate;
_26._subMenuTemplate=_25._subMenuTemplate;
_26._loadingTemplate=_25._loadingTemplate;
_7.contextMenu.init(_23,_24,_25.jsonQuery);
},_findFocusNode:function(_27){
var _28,i,_29;
var _2a=function(_2b,_2c){
var l=_2b.childNodes.length;
for(i=0;i<l;i++){
if(_28){
break;
}
_29=_2b.childNodes[i];
if(i$.hasClass(_29,_21.focus)){
_28=_29;
break;
}
if(_29.childNodes){
i=_2a(_29,i);
}
}
return _2c;
};
if(i$.hasClass(_27,_21.focus)){
return _27;
}
_2a(_27);
return _28;
},_findNodes:function(_2d,_2e){
var _2f,_30,_31,_32,i,_33;
var _34=function(_35,_36){
for(i=_35.childNodes.length-1;i>=0;i--){
_33=_35.childNodes[i];
if(i$.hasClass(_33,_21.menuTemplate)){
_30=_33;
continue;
}
if(i$.hasClass(_33,_21.submenuTemplate)){
_31=_33;
continue;
}
if(i$.hasClass(_33,_21.loadingTemplate)){
_32=_33;
continue;
}
if(_33.childNodes){
i=_34(_33,i);
}
}
return _36;
};
if(_2e&&!_2d._contextMenu.menuNode){
_2f=document.getElementById(_2e);
if(_2f){
_2f=_2f.cloneNode(true);
_2d.appendChild(_2f);
}
}
_34(_2d);
if(!_30){
_2f=document.getElementById("simpleMenuTemplate");
if(_2f){
_2f=_2f.cloneNode(true);
_2d.appendChild(_2f);
_34(_2d);
}
}
var _37={"root":_2f,"menu":_30,"submenu":_31,"loading":_32};
return _37;
},_findNextNodeByKeyCode:function(_38,_39){
var _3a=_38.parentNode;
var _3b,_3c,_3d,i,j;
var l=_3a.childNodes.length;
for(i=0;i<l;i++){
if(_3a.childNodes[i]==_38){
break;
}
}
for(j=i+1;j<l;j++){
_3b=_3a.childNodes[j];
_3c=_3b.textContent||_3b.innerText;
if(_3b._menuitem&&_3b._menuitem.type!=_4&&_3b._menuitem.type!=_3&&_3c&&_3c.charAt(0).toUpperCase().charCodeAt(0)==_39){
_3d=_3a.childNodes[j];
return _3d;
}
}
for(j=0;j<i;j++){
_3b=_3a.childNodes[j];
_3c=_3b.textContent||_3b.innerText;
if(_3b._menuitem&&_3b._menuitem.type!=_4&&_3b._menuitem.type!=_3&&_3c&&_3c.charAt(0).toUpperCase().charCodeAt(0)==_39){
_3d=_3a.childNodes[j];
return _3d;
}
}
return null;
},_invalidateCallback:function(){
_7.contextMenu.cache={};
},_initialize:function(_3e){
var _3f=true;
var _40=_3e._contextMenu;
if(_7.contextMenu.cache[_40.id]||_40._inProgress){
return i$.promise.resolved({displayMenu:_3f});
}
_40._inProgress=true;
i$.addListener("wptheme/contextMenu/invalidate/all",_7.contextMenu._invalidateCallback);
var _41,_42,tmp=i$.createDom("div"),_43;
if(_40._submenu){
tmp.innerHTML=_40._subMenuTemplate.replace(/\$\{submenu-id\}/g,_40.id+"_menu");
_3e.appendChild(tmp.firstChild);
_41=i$.byId(_40.id+"_menu");
_42=i$.createDom("div");
_42.innerHTML=_40._loadingTemplate;
}else{
var _44=_7.contextMenu._findNodes((_40.shadowNode)?_40.shadowNode:_3e,_3e._contextMenu.templateId);
_41=_44.menu;
_43=_44.root;
if(_43){
if(_40.alignLeft||_40.alignRight){
i$.removeClass(_43,_21.alignLeft);
i$.removeClass(_43,_21.alignRight);
if(_40.alignLeft){
i$.addClass(_43,_21.alignLeft);
}else{
i$.addClass(_43,_21.alignRight);
}
}
_43.removeAttribute("id");
}
if(!_40._menuitemTemplate){
_40._menuitemTemplate=i$.trim(_41.innerHTML);
}
if(!_40._loadingTemplate){
_42=i$.createDom("div");
_42.appendChild(_44.loading);
_40._loadingTemplate=i$.trim(_42.innerHTML);
_40._loadingTemplate=_40._loadingTemplate.replace(/\$\{loading\}/g,_7.contextMenu.nls.LOADING_0);
_42=null;
}
_42=i$.createDom("div");
_42.innerHTML=_40._loadingTemplate;
if(_44.submenu){
tmp.appendChild(_44.submenu.cloneNode(true));
if(!_40._subMenuTemplate){
_40._subMenuTemplate=i$.trim(tmp.innerHTML);
}
}
}
while(_41.firstChild){
_41.removeChild(_41.firstChild);
}
_41.appendChild(_42);
var _45;
if(_40._submenu){
_45=_40.shadowNode;
}else{
if(_40.shadowNode){
_45=_40.shadowNode;
}else{
_45=_7.contextMenu._transformIntoAbsolutePosition(_3e);
}
}
i$.addClass((_45)?_45:_3e,_21.show);
i$.bindDomEvt((_45)?_45:_3e,"onmouseleave",function(){
if(_40._inProgress){
_3f=false;
}
_40.closeFn(false);
});
var _46=_7.contextMenu._load(_40).then(function(_47){
var _48=_7.contextMenu._parseData(_47).then(function(_49){
_49=_7.contextMenu._filterMenu(_49);
if(!_49||_49.length==0){
_49=[{type:"Menuitem",_enabled:true,itemClass:_21.error,title:{value:_7.contextMenu.nls.NO_ITEMS_0,lang:"en"}}];
}
_7.contextMenu._buildMenu(_40,_41,_49);
_40._inProgress=false;
_7.contextMenu.cache[_40.id]=true;
return {displayMenu:_3f};
});
return _48;
},function(){
var tmp=i$.createDom("div");
tmp.innerHTML=_7.contextMenu._fromTemplate(_40._menuitemTemplate,_21.error,_7.contextMenu.nls.ERROR_LOADING_0);
while(_41.firstChild){
_41.removeChild(_41.firstChild);
}
_41.appendChild(tmp);
_40._inProgress=false;
_7.contextMenu.cache[_40.id]=true;
return {displayMenu:_3f};
});
return _46;
},close:function(_4a,_4b,evt){
var _4c=(evt)?evt.target||evt.srcElement:null;
var _4d=i$.byId(_4a.id);
i$.removeClass((_4a.shadowNode)?_4a.shadowNode:_4d,_21.show);
if(!_4a.activeAction){
var _4e=_4d._currentSelected;
if(_4e){
_4e.blur();
}
var _4f=_7.contextMenu._findFocusNode(_4d);
window.setTimeout(function(){
((_4f)?_4f:_4d).focus();
if(_4b){
window.setTimeout(function(){
_7.contextMenu._applyAction(_4c);
},0);
}
},0);
}
},_load:function(_50){
var _51=_1.replace(/\$\{id\}/g,_50.menuId);
if(_50.jsonQuery){
_51+=(_51.indexOf("?")==-1?"?":"&")+i$.toQuery(_50.jsonQuery);
}
var _52=i$.xhrGet({url:_51,headers:{"X-IBM-XHR":"true"},responseType:"json"}).then(function(_53){
return _53.data;
},function(_54){
var _55=_54.xhr.getResponseHeader("Content-Type")||"";
if((_55.indexOf("text/html")==0)||(_54.xhr.status==401)){
window.setTimeout(function(){
document.location.reload();
},0);
}
console.log("Error trying to load the context menu feed for '"+_50.menuId+"': "+_54);
return null;
});
return _52;
},_parseData:function(_56){
var _57=[];
i$.each(_56,function(_58){
var _59=i$.fromPath("moduleInfo.deferred",false,_58)?i$.modules.loadDeferred():i$.promise.resolved(true);
_57.push(_59.then(function(){
var _5a=_7.contextMenu._checkFunction(_58,_58.visibilityFn,_58,(typeof _58.visibility!="undefined")?_58.visibility:true);
var _5b=_7.contextMenu._checkFunction(_58,_58.enableFn,_58,(typeof _58.enabled!="undefined")?_58.enabled:true);
return i$.whenAll(_5a,_5b).then(function(_5c){
_58._visible=_5c[0];
_58._enabled=_5c[1];
return _58;
});
}));
});
var _5d=i$.whenAll.apply(i$,_57);
return _5d;
},_filterMenu:function(_5e){
var _5f=[],_60,_61={"type":_3};
for(var i=_5e.length-1;i>=0;i--){
_60=_5e[i];
if(!_60._visible){
continue;
}
if(_60.type==_3){
if(_61.type==_3){
continue;
}
}else{
if(_60.type==_4){
if((_61.type==_3)||(_61.type==_4)){
continue;
}
}
}
_61=_60;
_5f.unshift(_60);
}
while(_5f.length>0&&_5f[0].type==_3){
_5f=_5f.slice(1);
}
return _5f;
},_buildMenu:function(_62,_63,_64){
var _65=document.createDocumentFragment(),tmp=i$.createDom("div"),_66,_67,_68,_69,_6a,_6b,_6c=i$.fromPath("wptheme.contextMenu.extension.badge");
for(var i=0,l=_64.length;i<l;i++){
_66=_64[i];
tmp.innerHTML=_7.contextMenu._fromTemplate(_62._menuitemTemplate,_66,_6c);
while(_67=tmp.firstChild){
if(_67.nodeType==1){
if(_66.type=="Submenu"){
_67._menuitem=_66;
_67._jsonData=_62;
i$.bindDomEvt(_67,"onmouseover",_7.contextMenu._applySubmenu);
}else{
if(_66._enabled){
if(!_6a){
_6a=_67;
}
_6b=_67;
_67.links={previous:_68,next:null,sub:null};
if(_68){
_68.links.next=_67;
}
if(!_69&&_66.type!=_4){
_69=_67;
}
_67._menuitem=_66;
_68=_67;
i$.bindDomEvt(_67,"onclick",function(evt){
_7.contextMenu._stopEventPropagation(evt);
_62.closeFn(true,evt);
});
i$.bindDomEvt(_67,"onkeydown",function(evt){
return _7.contextMenu._applyKeyAction(evt);
});
i$.bindDomEvt(_67,"onmouseover",function(evt){
return _7.contextMenu._applyFocusAction(evt);
});
}
}
if((_66.title)&&(i$.isRTL(_66.title.lang))){
i$.addClass(_67,"rtl");
_67.setAttribute("dir","RTL");
}
if(_66.markupId){
_67.setAttribute("id",_66.markupId);
}
if(_6c){
_6c.injectBadge(_67);
}
}
_65.appendChild(_67);
}
}
_6a.links.previous=_6b;
_6b.links.next=_6a;
while(_63.firstChild){
_63.removeChild(_63.firstChild);
}
_63.appendChild(_65);
i$.byId(_62.id)._firstSelectable=_69;
i$.byId(_62.id)._currentSelected=null;
},_fromTemplate:function(_6d,_6e,_6f){
var _70,_71,_72,_73="";
if(typeof (_6e)=="string"){
_70=_6e;
_71=_6f;
_72="";
}else{
_70="type"+_6e.type;
if(_6e.itemClass){
_70+=" "+_6e.itemClass;
}
if(!_6e._enabled){
_70+=" "+_21.disabled;
}
_71=(_6e.title)?_6e.title.value:"";
_72=((_6e.description)?_6e.description.value:"");
if(_6f){
_73=_6f.getAnchor(_6e);
}
}
var _74=_6d.replace(/\$\{title\}/g,_71).replace(/\$\{badge\}/g,_73).replace(/"\$\{css-class\}"/g,"\""+(_70)+"\"").replace(/\$\{css-class\}/g,"\""+(_70)+"\"").replace(/"\$\{description\}"/g,"\""+_72+"\"").replace(/\$\{description\}/g,"\""+_72+"\"");
return _74;
},_checkFunction:function(_75,fn,arg,_76){
if(fn){
if(!_75.fromPath){
_75.fromPath={};
}
var _77=i$.fromPath("wptheme.contextMenu.extension.menuItemScope"),_78=_77?_77.getWindow(_75):null,_79=_75.fromPath[fn]||i$.fromPath(fn,false,_78);
_75.fromPath[fn]=_79;
if(i$.isFunction(_79)){
try{
return _79(arg);
}
catch(exc){
console.log("error executing function "+fn+" - "+exc);
}
}
}
return i$.promise.resolved(_76);
},_stopEventPropagation:function(evt){
if(evt){
if(evt.stopPropagation){
evt.stopPropagation();
}else{
evt.cancelBubble=true;
}
}
},_applyKeyAction:function(evt){
var _7a=evt.target||evt.srcElement;
var _7b=_7a;
var _7c=null;
while(!_7c){
_7b=_7b.parentNode;
if(_7b._contextMenu){
_7c=_7b;
}
}
var _7d=_7c._contextMenu;
switch(evt.keyCode){
case 32:
if(evt.preventDefault){
evt.preventDefault();
}
case 13:
_7.contextMenu._stopEventPropagation(evt);
_7d.closeFn(true,evt);
return false;
case 9:
case 27:
_7d.closeFn(false);
break;
case 40:
_7.contextMenu._moveFocus(evt,_7d,_7a,"next");
return false;
case 38:
_7.contextMenu._moveFocus(evt,_7d,_7a,"previous");
return false;
}
var _7e=_7.contextMenu._findNextNodeByKeyCode(_7a,evt.keyCode);
if(_7e){
_7e.focus();
return false;
}
return true;
},_moveFocus:function(evt,_7f,_80,_81){
var _82=_80.links[_81];
if(_82&&(_82._menuitem.type==_4||_82._menuitem.type==_3)){
var _83=false;
var _84=null;
while(!_84&&!_83){
_82=_82.links[_81];
if(!_82){
_83=true;
}else{
if(_82._menuitem.type!=_4&&_82._menuitem.type!=_3){
_84=_82;
}
}
}
_82=_84;
}
if(_82){
var _85=i$.byId(_7f.id)._currentSelected;
if(_85){
_85.blur();
}
i$.byId(_7f.id)._currentSelected=_82;
_82.focus();
}
if(evt.preventDefault){
evt.preventDefault();
}
},_applyFocusAction:function(evt){
var _86=evt.target||evt.srcElement;
var _87=_86;
var _88=null;
var _89=_86._menuitem;
while(!_88){
_87=_87.parentNode;
if(_87._contextMenu){
_88=_87;
}
if(!_89){
_86=_86.parentNode;
_89=_86._menuitem;
}
}
var _8a=_88._contextMenu;
var _8b=i$.byId(_8a.id)._currentSelected;
if(_8b!=_86){
if(_8b){
_8b.blur();
i$.byId(_8a.id)._currentSelected=null;
}
if(_89.type!=_4&&_89.type!=_3){
i$.byId(_8a.id)._currentSelected=_86;
_86.focus();
}
}
return false;
},_applyAction:function(_8c){
var _8d=_8c;
var _8e=null;
var _8f=_8c._menuitem;
while(!_8e){
_8d=_8d.parentNode;
if(_8d._contextMenu){
_8e=_8d;
}
if(!_8f){
_8c=_8c.parentNode;
_8f=_8c._menuitem;
}
}
var _90=_8e._contextMenu;
_90.activeAction=true;
var p=_7.contextMenu._checkFunction(_8f,_8f.actionFn,_8f,_8f.actionUrl);
if(p){
p.then(function(_91){
if(_91&&i$.isString(_91)){
var _92=i$.fromPath("wptheme.contextMenu.extension.actionUrlTarget");
var _93=(_92)?_92.getWindow(_8f):window;
var _94=_8f.actionHttpMethod||"GET";
if(_94!="GET"){
var _95=_93.i$.createDom("form");
_95.setAttribute("action",_91);
_94=_94.toLowerCase();
switch(_94){
case "get":
_95.setAttribute("method","GET");
break;
case "delete":
case "put":
var _96=_93.i$.createDom("input",{"type":"hidden","name":"x-method-override","value":_94.toUpperCase()});
_95.appendChild(_96);
case "post":
_95.setAttribute("method","POST");
_95.setAttribute("enctype","multipart/form-data");
break;
default:
}
_93.i$.byId(_21.complementaryContent).appendChild(_95);
_95.submit();
}else{
var _97=_93.i$.createDom("a");
_97.setAttribute("style","display:none");
_97.setAttribute("href",_91);
_93.i$.byId(_21.complementaryContent).appendChild(_97);
_97.click();
}
}
});
}
},_applySubmenu:function(evt){
var _98=evt.target||evt.srcElement;
if(!_98._jsonData){
_98=_98.parentNode;
}
if(_98._jsonData){
_98.setAttribute("id",_98._jsonData.id+"_"+_98._menuitem.id);
_7.contextMenu.initSubmenu(_98,_98._menuitem.id,_98._jsonData);
}
},_transformIntoAbsolutePosition:function(_99){
var _9a=_99.childNodes,_9b,i=0,_9c=false;
while(_9b=_9a[i++]){
if(i$.hasClass(_9b,_21.alignRight)){
_9c=true;
break;
}else{
if(i$.hasClass(_9b,_21.alignLeft)){
break;
}
}
}
var _9d=i$.createDom("div");
_9d.className=_99.className;
_9d.appendChild(_9b);
i$.byId(_21.complementaryContent).appendChild(_9d);
_9d._contextMenu=_99._contextMenu;
_99._contextMenu.shadowNode=_9d;
_99._contextMenu._menuIsRight=_9c;
var _9e=i$.createDom("span");
_9d.appendChild(_9e);
i$.addClass(_9e,_21.menuOverlay);
_99._contextMenu.overlayNode=_9e;
_99._contextMenu.menuNode=_9b;
_7.contextMenu._updateAbsolutePosition(_99);
return _9d;
},_updateAbsolutePosition:function(_9f){
var _a0=_9f._contextMenu._menuIsRight;
var _a1=_9f._contextMenu.menuNode;
var _a2=_9f._contextMenu.overlayNode;
var _a3=_7.contextMenu._findPos(_9f);
var _a4=2;
_a2.style.left=(_a3[0]-_a4)+"px";
_a2.style.top=(_a3[1]-_a4)+"px";
_a2.style.width=(_9f.offsetWidth+(2*_a4))+"px";
_a2.style.height=(_9f.offsetHeight+(2*_a4))+"px";
var dir=document.getElementsByTagName("html")[0].getAttribute("dir");
if(dir!=null){
dir=dir.toLowerCase();
}else{
dir="";
}
if(!(dir=="rtl")){
_a1.style.left=((_a0)?_a3[0]+_9f.offsetWidth:_a3[0])+"px";
}else{
_a1.style.left=((_a0)?_a3[0]+_9f.offsetWidth-_9f.scrollWidth:_a3[0]+_9f.scrollWidth)+"px";
}
_a1.style.top=_a3[1]+"px";
},_adjustScreenPositionStart:function(){
return document.documentElement.scrollHeight;
},_adjustScreenPositionEnd:function(_a5){
var _a6=document.documentElement.scrollHeight;
if(_a5!=_a6){
document.documentElement.scrollTop=document.documentElement.scrollHeight;
}
},_findPos:function(obj){
var _a7=curtop=0;
if(obj.offsetParent){
do{
_a7+=obj.offsetLeft;
curtop+=obj.offsetTop;
}while(obj=obj.offsetParent);
var _a8=[_a7,curtop];
return _a8;
}
},});
var _21=_7.contextMenu.css;
})();


}catch(e){console.log("Module 'wp_simple_contextmenu_js': ",e);}
try{(function(){
    i$.merge({
	"NO_ITEMS_0":"No items to display",
	"ERROR_LOADING_0":"Error happened while loading the menu.",
	"LOADING_0":"Loading..."
},i$.fromPath("wptheme.contextMenu.nls",true));
})();
}catch(e){console.log("Module 'wp_simple_contextmenu_js': ",e);}
try{/** Licensed Materials - Property of IBM, 5724-E76 and 5724-E77, (C) Copyright IBM Corp. 2012 - All Rights reserved.  **/
(function(){
function _1(_2){
var _3=window,_4=_2.metadata;
if(_4&&_4._contributionWindow){
return _4._contributionWindow;
}
if(_4&&_4.contributor){
var _5=_4.contributor,_6=_5.lastIndexOf(":"),_7=_5.substr(_6+1),_8=i$.fromPath("wpModules.theme.WindowUtils");
if(_8){
_3=_8.getWindow(_7);
}
}
if(!_4){
_4=_2.metadata={};
}
_4._contributionWindow=_3;
return _3;
};
var _9={getWindow:function(_a){
var _b=(_a.metadata&&_a.metadata.actionUrlTarget)||"same",_c,wu=wpModules.theme.WindowUtils;
_c=_1(_a);
if(_b=="view"){
_c=wu&&wu.getWindow(wu.VIEW_AREA);
}else{
if(_b=="master"){
_c=wu&&wu.getWindow(wu.MASTER);
}
}
return _c||window;
}};
var _d={getWindow:function(_e){
return _1(_e);
}};
i$.toPath("wptheme.contextMenu.extension.actionUrlTarget",_9);
i$.toPath("wptheme.contextMenu.extension.menuItemScope",_d);
var _f={templates:{anchor:"<span class=\"wpthemeMenuBadgeAnchor\"></span>",loading:"<span class=\"wpthemeMenuLoading wpthemeTemplateLoading\"></span>",badge_info:"<span class=\"wpthemeMenuBadge wpthemeMenuBadgeInfo\" aria-live=\"polite\">${count}</span>",badge_warn:"<span class=\"wpthemeMenuBadge wpthemeMenuBadgeWarn\" aria-live=\"polite\">${count}</span>",badge_error:"<span class=\"wpthemeMenuBadge wpthemeMenuBadgeError\" aria-live=\"polite\">${count}</span>"},getAnchor:function(_10){
var md=(_10)?_10.metadata:null;
return (md&&(md.badgeUrl||md.badgeData))?_f.templates.anchor:"";
},injectBadge:function(_11,_12){
var _13=(_12)?_12:_11._menuitem,md=(_13)?_13.metadata:null;
if(md&&(md.badgeUrl||md.badgeData)){
var _14=_f._findNode(_11,"wpthemeMenuBadgeAnchor");
if(_14){
if(md.badgeUrl){
var _15,_16=md.badgeUrl,_17=ibmCfg.portalConfig.contentHandlerURI;
if(_16.indexOf("?")==0){
_15=_17+((_17.indexOf("?")<0)?"?":"&")+_16.substring(1);
}else{
_15=_16;
}
var tmp=i$.createDom("div");
tmp.innerHTML=_f.templates.loading;
_14.appendChild(tmp.firstChild);
i$.xhrGet({url:_15,headers:{"X-IBM-XHR":"true"},responseType:"json"}).then(function(_18){
_f._insertBadge(_18.data,md.badgeTitle,_14);
},function(_19){
while(_14.firstChild){
_14.removeChild(_14.firstChild);
}
});
}else{
_f._insertBadge(md.badgeData,md.badgeTitle,_14);
}
}
}
},_insertBadge:function(_1a,_1b,_1c){
while(_1c.firstChild){
_1c.removeChild(_1c.firstChild);
}
if(_1a&&_1a.count>0){
var tmp=i$.createDom("div");
if(_1a.level=="error"){
tmp.innerHTML=_f.templates.badge_error.replace(/\$\{count\}/g,_1a.count);
}else{
if(_1a.level=="warn"){
tmp.innerHTML=_f.templates.badge_warn.replace(/\$\{count\}/g,_1a.count);
}else{
tmp.innerHTML=_f.templates.badge_info.replace(/\$\{count\}/g,_1a.count);
}
}
if(_1b){
tmp.firstChild.setAttribute("title",_1b);
tmp.firstChild.setAttribute("aria-label",_1b);
}
_1c.appendChild(tmp.firstChild);
}
},_findNode:function(_1d,_1e){
var _1f,i,_20;
var _21=function(_22,_23){
for(i=_22.childNodes.length-1;i>=0;i--){
_20=_22.childNodes[i];
if(i$.hasClass(_20,_1e)){
_1f=_20;
continue;
}
if(_20.childNodes){
i=_21(_20,i);
}
}
return _23;
};
_21(_1d);
return _1f;
}};
i$.toPath("wptheme.contextMenu.extension.badge",_f);
})();


}catch(e){console.log("Module 'wp_simple_contextmenu_ext': ",e);}
try{(function(_1){
var _2="aria-labelledby",_3="aria-describedby",_4="aria-pressed",_5="title",_6="true",_7="false",_8="selected",_9="disabled",_a="wpToolbarHighContrast",_b="http://www.ibm.com/xmlns/prod/websphere/portal/publicparams",_c="wpInfoModeToggle",_d="wpInfoModeToggleLink",_e="wpPageModeToggle",_f="wpPageModeToggleLink",_10="wpToolbarToggle",_11="ibm.portal.home.createpage",_12="ibm.portal.toolbar.NewPage",_13="wps.content.root",_14="wps.Administration",_15="ibm.portal.page.Applications",_16=[13,32,38,40],_17=[13,32],T=true,F=false,_18=i$.byId,_19=i$.hasClass,_1a=i$.addClass,_1b=i$.removeClass,_1c=i$.forEach,_1d=i$.toQuery,_1e=i$.fromPath,_1f=i$.bindDomEvt;
function _20(_21,_22){
var _23=_21||_18(_e),_24="valueoff",_25="valueon";
if(_22){
if(!_19(_23,_25)){
_1b(_23,_24);
_1a(_23,_25);
_26(_23,_4,_6);
_26(_23,_5,_27(_28(_18("wpEditModeDesc"))));
}
}else{
if(_19(_23,_25)){
_1b(_23,_25);
_1a(_23,_24);
_26(_23,_4,_7);
_26(_23,_5,_27(_28(_18("wpViewModeDesc"))));
}
}
};
function _29(_2a,_2b){
var _2c=_2a||_18(_c),_2d=_18(_d);
if(_2b){
if(!_19(_2c,_8)){
_1a(_2c,_8);
_26(_2d,_2,"wpInfoModeOnLabel");
_26(_2d,_3,"wpInfoModeOnDesc");
_26(_2d,_4,_6);
_26(_2c,_5,_27(_28(_18("wpInfoModeOnDesc"))));
}
}else{
if(_19(_2c,_8)){
_1b(_2c,_8);
_26(_2d,_2,"wpInfoModeOffLabel");
_26(_2d,_3,"wpInfoModeOffDesc");
_26(_2d,_4,_7);
_26(_2c,_5,_27(_28(_18("wpInfoModeOffDesc"))));
}
}
};
function _2e(_2f,e){
if(!_30(e,_17)){
return F;
}
_1a(_2f,_8);
var _31=wpModules.toolbar;
if(_31.isToolbarOpened()){
_31.closeToolbar();
}else{
_31.openToolbar({"autoOpenDefaultTabs":true});
}
return T;
};
function _32(_33,_34,e){
if(!_30(e,_17)){
return F;
}
if(!_19(_33,_9)){
var t=wpModules.toolbar,_35=t.isEditModeActive();
if(_35){
t.setEditModeActive(F);
}else{
if(_34&&_36()){
var _37={"editMode":T};
if(!t.isToolbarOpened()){
_37.autoOpenDefaultTabs=true;
}
t.openToolbar(_37);
}else{
t.setEditModeActive(T);
}
}
_20(_33,!_35);
}
return T;
};
function _38(_39,e){
if(!_30(e,_17)){
return F;
}
var t=wpModules.toolbar,_3a=t.isInfoModeActive();
_29(_39,!_3a);
t.setInfoModeActive(!_3a);
return T;
};
function _3b(_3c,e){
var _3d=F;
if(_3e()){
_3d=_3f(_3c,_13,e);
}else{
_40(_13);
_3d=T;
}
return _3d;
};
function _41(_42,e){
var _43=F;
if(_3e()){
_43=_3f(_42,_15,e);
}else{
_40(_15);
_43=T;
}
return _43;
};
function _44(_45,e){
var _46=T;
_40(_14);
return _46;
};
function _3e(){
var _47=(typeof wptheme!="undefined"&&wptheme.contextMenu);
return _47;
};
function _3f(_48,_49,e){
if(!_30(e,_16)){
return F;
}
var _4a={"navID":_4b(),"rootNode":_49};
var _4c=wpModules.toolbar;
if(_4c&&_4c.isToolbarOpened()){
_4a.contribURI="nm:oid:ibm.portal.Toolbar";
}
_4d(_48,"navigationMenu",_4a);
return T;
};
function _4d(_4e,_4f,_50){
_1a(_4e.parentNode,_8);
_26(_4e,_4,_6);
args={"node":_4e.parentNode,"menuId":_4f,"jsonQuery":_50,"params":{"templateId":"simpleMenuTemplate","alignment":"right","autoScroll":false},"onClose":function(){
_1b(_4e.parentNode,_8);
_26(_4e,_4,_7);
}};
wptheme.contextMenu.init(args);
};
function _26(_51,_52,_53){
_51.setAttribute(_52,_53);
};
function _28(_54){
return _54.firstChild;
};
function _27(_55){
return _55.nodeValue;
};
function _56(_57){
var fc=_57.firstChild;
while(fc&&fc.nodeType!==1){
fc=fc.nextSibling;
}
return fc;
};
function _58(_59,_5a,_5b){
if(_5b&&_59&&_5a&&_5a.length>0){
_1c(_5a,function(p){
if(_59.name==p.name&&_59.nsuri==p.nsuri){
_5b(p.value);
return F;
}
});
}
};
function _30(e,_5c){
var k=e?e.keyCode:null;
if(k){
if(_5c){
var r=_5c.indexOf(k)>=0;
return r;
}else{
return F;
}
}
return T;
};
function _5d(){
return wpModules.toolbar.getViewAreaWindow();
};
function _4b(){
var r=_5d().ibmCfg.portalConfig.currentPageOID;
return r;
};
function _5e(){
return _1e("ibmCfg.portalConfig.isCurrentPageEditable",false,_5d());
};
function _36(){
return _1e("wpModules.state.page.supportsToolbar",false,_5d());
};
function _40(id){
wpModules.toolbar.loadViewArea("nm:oid:"+id);
};
function _5f(_60){
if(_60&&_60.pageId){
var id=_60.pageId;
if(id&&id.value&&id.value.length>0){
_40(id.value[0]);
}
}
};
i$.addOnLoad(function(){
var _61=i$.fromPath("wpModules.state.page",false);
if(_61){
var _62=_61.getStateManager();
_62.addListener(function(_63){
var _64=_63.renderParams().getModified();
_58({"nsuri":_b,"name":"editMode"},_64,function(_65){
var res=(_65&&_65[0]=="true"),_66=_18(_e);
if(_66){
_20(_66,res);
}
});
_58({"nsuri":_b,"name":"infoMode"},_64,function(_67){
var res=(_67&&_67[0]=="true"),_68=_18(_c);
if(_68){
_29(_68,res);
}
});
});
}
var _69=wpModules.toolbar.getViewAreaWindow();
if(self===_69){
var w=_69.parent||_69,_6a=w.document.getElementById(_e);
if(_6a){
if(_5e()){
_1b(_6a,_9);
}else{
_1a(_6a,_9);
}
}
var _6b=w.document.getElementById(_10);
if(_6b){
if(_36()){
_1b(_6b,_9);
}else{
_1a(_6b,_9);
}
}
}
var _6c=_18(_11);
if(_6c){
var _6d=wpModules.toolbar;
_6c.onClose=_5f;
if(_6d.isToolbarOpened()||_18(_e)){
var _6e={};
_6e.id=_11;
_6e.key="onClose";
_1f(_6c,"click",function(e){
_6d.openToolbar({"primaryTab":"siteManagerTreeTab:context:oid:"+_4b()+":default:action:CREATE_CHILD_PAGE","onCloseDialog":_6e});
e.preventDefault?e.preventDefault():e.returnValue=F;
return F;
});
}
}
});
wpModules.a11y.highContrastMode.then(function(_6f){
if(_6f){
_1a(_18(_c),_a);
}
});
_1.toggleToolbar=_2e;
_1.toggleEditMode=_32;
_1.toggleInfoMode=_38;
_1.openSitesMenu=_3b;
_1.openApplicationsMenu=_41;
_1.openAdministration=_44;
})(i$.fromPath("wpModules.theme.ActionBar",true));


}catch(e){console.log("Module 'wp_toolbar_actionbar': ",e);}
try{(function(){
if(!i$.isIE){
i$.addOnLoad(function(){
var _1=document.createElement("div");
_1.style.cssText="border:1px solid;border-color:red green;position:absolute;height:5px;top:-999px;background-image:url(\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\");";
document.body.appendChild(_1);
var _2=null;
try{
_2=document.defaultView.getComputedStyle(_1,"");
}
catch(e){
_2=_1.currentStyle;
}
if(_2){
var _3=_2.backgroundImage;
if((_2.borderTopColor==_2.borderRightColor)||(_3!=null&&(_3=="none"||_3=="url(invalid-url:)"))){
document.getElementsByTagName("body")[0].className+=" a11yHighContrast";
}
document.body.removeChild(_1);
}
});
}
})();


}catch(e){console.log("Module 'wp_high_contrast': ",e);}
try{/*!
 * Webflow: Front-end site library
 * @license MIT
 * Inline scripts may access the api using an async handler:
 *   var Webflow = Webflow || [];
 *   Webflow.push(readyFunction);
 */
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};

/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {

/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId])
/******/ 			return installedModules[moduleId].exports;

/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			exports: {},
/******/ 			id: moduleId,
/******/ 			loaded: false
/******/ 		};

/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;

/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}


/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;

/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;

/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "/";

/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {

	__webpack_require__(5);
	__webpack_require__(6);
	__webpack_require__(7);
	__webpack_require__(8);
	__webpack_require__(9);
	__webpack_require__(10);
	__webpack_require__(11);
	__webpack_require__(12);
	__webpack_require__(1);
	__webpack_require__(13);
	__webpack_require__(14);
	__webpack_require__(15);
	__webpack_require__(16);
	__webpack_require__(17);
	__webpack_require__(18);
	__webpack_require__(19);
	module.exports = __webpack_require__(20);


/***/ },
/* 1 */
/***/ function(module, exports, __webpack_require__) {

	/* WEBPACK VAR INJECTION */(function(process) {'use strict';

	/**
	 * Webflow: Core site library
	 */

	var Webflow = {};
	var modules = {};
	var primary = [];
	var secondary = window.Webflow || [];
	var $ = window.jQuery;
	var $win = $(window);
	var $doc = $(document);
	var isFunction = $.isFunction;
	var _ = Webflow._ = __webpack_require__(21);
	var tram = __webpack_require__(3) && $.tram;
	var domready = false;
	var destroyed = false;
	var Modernizr = window.Modernizr;
	tram.config.hideBackface = false;
	tram.config.keepInherited = true;

	/**
	 * Webflow.define - Define a named module
	 * @param  {string} name
	 * @param  {function} factory
	 * @param  {object} options
	 * @return {object}
	 */
	Webflow.define = function(name, factory, options) {
	  if (modules[name]) unbindModule(modules[name]);
	  var instance = modules[name] = factory($, _, options) || {};
	  bindModule(instance);
	  return instance;
	};

	/**
	 * Webflow.require - Require a named module
	 * @param  {string} name
	 * @return {object}
	 */
	Webflow.require = function(name) {
	  return modules[name];
	};

	function bindModule(module) {
	  // If running in Webflow app, subscribe to design/preview events
	  if (Webflow.env()) {
	    isFunction(module.design) && $win.on('__wf_design', module.design);
	    isFunction(module.preview) && $win.on('__wf_preview', module.preview);
	  }
	  // Subscribe to front-end destroy event
	  isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy);
	  // Look for ready method on module
	  if (module.ready && isFunction(module.ready)) {
	    addReady(module);
	  }
	}

	function addReady(module) {
	  // If domready has already happened, run ready method
	  if (domready) {
	    module.ready();
	    return;
	  }
	  // Otherwise add ready method to the primary queue (only once)
	  if (_.contains(primary, module.ready)) return;
	  primary.push(module.ready);
	}

	function unbindModule(module) {
	  // Unsubscribe module from window events
	  isFunction(module.design) && $win.off('__wf_design', module.design);
	  isFunction(module.preview) && $win.off('__wf_preview', module.preview);
	  isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy);
	  // Remove ready method from primary queue
	  if (module.ready && isFunction(module.ready)) {
	    removeReady(module);
	  }
	}

	function removeReady(module) {
	  primary = _.filter(primary, function(readyFn) {
	    return readyFn !== module.ready;
	  });
	}

	/**
	 * Webflow.push - Add a ready handler into secondary queue
	 * @param {function} ready  Callback to invoke on domready
	 */
	Webflow.push = function(ready) {
	  // If domready has already happened, invoke handler
	  if (domready) {
	    isFunction(ready) && ready();
	    return;
	  }
	  // Otherwise push into secondary queue
	  secondary.push(ready);
	};

	/**
	 * Webflow.env - Get the state of the Webflow app
	 * @param {string} mode [optional]
	 * @return {boolean}
	 */
	Webflow.env = function(mode) {
	  var designFlag = window.__wf_design;
	  var inApp = typeof designFlag !== 'undefined';
	  if (!mode) return inApp;
	  if (mode === 'design') return inApp && designFlag;
	  if (mode === 'preview') return inApp && !designFlag;
	  if (mode === 'slug') return inApp && window.__wf_slug;
	  if (mode === 'editor') return window.WebflowEditor;
	  if (mode === 'test') return process.env.NODE_ENV === 'test' || window.__wf_test;
	  if (mode === 'frame') return window !== window.top;
	};

	// Feature detects + browser sniffs  ಠ_ಠ
	var userAgent = navigator.userAgent.toLowerCase();
	var appVersion = navigator.appVersion.toLowerCase();
	var touch = Webflow.env.touch = ('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch;
	//var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(appVersion.match(/chrome\/(\d+)\./)[1], 10);
	var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(appVersion.match(/chrome\/(\d+)/)[1], 10);
	var ios = Webflow.env.ios = Modernizr && Modernizr.ios;
	Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios;

	// Maintain current touch target to prevent late clicks on touch devices
	var touchTarget;
	// Listen for both events to support touch/mouse hybrid devices
	touch && $doc.on('touchstart mousedown', function(evt) {
	  touchTarget = evt.target;
	});

	/**
	 * Webflow.validClick - validate click target against current touch target
	 * @param  {HTMLElement} clickTarget  Element being clicked
	 * @return {Boolean}  True if click target is valid (always true on non-touch)
	 */
	Webflow.validClick = touch ? function(clickTarget) {
	  return clickTarget === touchTarget || $.contains(clickTarget, touchTarget);
	} : function() { return true; };

	/**
	 * Webflow.resize, Webflow.scroll - throttled event proxies
	 */
	var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow';
	var scrollEvents = 'scroll.webflow ' + resizeEvents;
	Webflow.resize = eventProxy($win, resizeEvents);
	Webflow.scroll = eventProxy($win, scrollEvents);
	Webflow.redraw = eventProxy();

	// Create a proxy instance for throttled events
	function eventProxy(target, types) {

	  // Set up throttled method (using custom frame-based _.throttle)
	  var handlers = [];
	  var proxy = {};
	  proxy.up = _.throttle(function(evt) {
	    _.each(handlers, function(h) { h(evt); });
	  });

	  // Bind events to target
	  if (target && types) target.on(types, proxy.up);

	  /**
	   * Add an event handler
	   * @param  {function} handler
	   */
	  proxy.on = function(handler) {
	    if (typeof handler !== 'function') return;
	    if (_.contains(handlers, handler)) return;
	    handlers.push(handler);
	  };

	  /**
	   * Remove an event handler
	   * @param  {function} handler
	   */
	  proxy.off = function(handler) {
	    // If no arguments supplied, clear all handlers
	    if (!arguments.length) {
	      handlers = [];
	      return;
	    }
	    // Otherwise, remove handler from the list
	    handlers = _.filter(handlers, function(h) {
	      return h !== handler;
	    });
	  };

	  return proxy;
	}

	// Webflow.location - Wrap window.location in api
	Webflow.location = function(url) {
	  window.location = url;
	};

	// Webflow.app - Designer-specific methods
	Webflow.app = Webflow.env() ? {} : null;
	if (Webflow.app) {

	  // Trigger redraw for specific elements
	  var redraw = new Event('__wf_redraw');
	  Webflow.app.redrawElement = function(i, el) { el.dispatchEvent(redraw); };

	  // Webflow.location - Re-route location change to trigger an event
	  Webflow.location = function(url) {
	    window.dispatchEvent(new CustomEvent('__wf_location', { detail: url }));
	  };
	}

	// Webflow.ready - Call primary and secondary handlers
	Webflow.ready = function() {
	  domready = true;

	  // Restore modules after destroy
	  if (destroyed) {
	    restoreModules();

	  // Otherwise run primary ready methods
	  } else {
	    _.each(primary, callReady);
	  }

	  // Run secondary ready methods
	  _.each(secondary, callReady);

	  // Trigger resize
	  Webflow.resize.up();
	};

	function callReady(readyFn) {
	  isFunction(readyFn) && readyFn();
	}

	function restoreModules() {
	  destroyed = false;
	  _.each(modules, bindModule);
	}

	/**
	 * Webflow.load - Add a window load handler that will run even if load event has already happened
	 * @param  {function} handler
	 */
	var deferLoad;
	Webflow.load = function(handler) {
	  deferLoad.then(handler);
	};

	function bindLoad() {
	  // Reject any previous deferred (to support destroy)
	  if (deferLoad) {
	    deferLoad.reject();
	    $win.off('load', deferLoad.resolve);
	  }
	  // Create deferred and bind window load event
	  deferLoad = new $.Deferred();
	  $win.on('load', deferLoad.resolve);
	}

	// Webflow.destroy - Trigger a destroy event for all modules
	Webflow.destroy = function(options) {
	  options = options || {};
	  destroyed = true;
	  $win.triggerHandler('__wf_destroy');

	  // Allow domready reset for tests
	  if (options.domready != null) {
	    domready = options.domready;
	  }

	  // Unbind modules
	  _.each(modules, unbindModule);

	  // Clear any proxy event handlers
	  Webflow.resize.off();
	  Webflow.scroll.off();
	  Webflow.redraw.off();

	  // Clear any queued ready methods
	  primary = [];
	  secondary = [];

	  // If load event has not yet fired, replace the deferred
	  if (deferLoad.state() === 'pending') bindLoad();
	};

	// Listen for domready
	$(Webflow.ready);

	// Listen for window.onload and resolve deferred
	bindLoad();

	// Export commonjs module
	module.exports = window.Webflow = Webflow;

	/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))

/***/ },
/* 2 */
/***/ function(module, exports) {

	'use strict';

	/**
	 * Webflow: IX Event triggers for other modules
	 */

	var $ = window.jQuery;
	var api = {};
	var eventQueue = [];
	var namespace = '.w-ix';

	var eventTriggers = {
	  reset: function(i, el) {
	    el.__wf_intro = null;
	  },
	  intro: function(i, el) {
	    if (el.__wf_intro) return;
	    el.__wf_intro = true;
	    $(el).triggerHandler(api.types.INTRO);
	  },
	  outro: function(i, el) {
	    if (!el.__wf_intro) return;
	    el.__wf_intro = null;
	    $(el).triggerHandler(api.types.OUTRO);
	  }
	};

	api.triggers = {};

	api.types = {
	  INTRO: 'w-ix-intro' + namespace,
	  OUTRO: 'w-ix-outro' + namespace
	};

	// Trigger any events in queue + restore trigger methods
	api.init = function() {
	  var count = eventQueue.length;
	  for (var i = 0; i < count; i++) {
	    var memo = eventQueue[i];
	    memo[0](0, memo[1]);
	  }
	  eventQueue = [];
	  $.extend(api.triggers, eventTriggers);
	};

	// Replace all triggers with async wrapper to queue events until init
	api.async = function() {
	  for (var key in eventTriggers) {
	    var func = eventTriggers[key];
	    if (!eventTriggers.hasOwnProperty(key)) continue;

	    // Replace trigger method with async wrapper
	    api.triggers[key] = function(i, el) {
	      eventQueue.push([func, el]);
	    };
	  }
	};

	// Default triggers to async queue
	api.async();

	module.exports = api;


/***/ },
/* 3 */
/***/ function(module, exports) {

	/*!
	 * tram.js v0.8.1-global
	 * Cross-browser CSS3 transitions in JavaScript
	 * https://github.com/bkwld/tram
	 * MIT License
	 */
	window.tram=function(a){function b(a,b){var c=new L.Bare;return c.init(a,b)}function c(a){return a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()})}function d(a){var b=parseInt(a.slice(1),16),c=b>>16&255,d=b>>8&255,e=255&b;return[c,d,e]}function e(a,b,c){return"#"+(1<<24|a<<16|b<<8|c).toString(16).slice(1)}function f(){}function g(a,b){_("Type warning: Expected: ["+a+"] Got: ["+typeof b+"] "+b)}function h(a,b,c){_("Units do not match ["+a+"]: "+b+", "+c)}function i(a,b,c){if(void 0!==b&&(c=b),void 0===a)return c;var d=c;return Z.test(a)||!$.test(a)?d=parseInt(a,10):$.test(a)&&(d=1e3*parseFloat(a)),0>d&&(d=0),d===d?d:c}function j(a){for(var b=-1,c=a?a.length:0,d=[];++b<c;){var e=a[b];e&&d.push(e)}return d}var k=function(a,b,c){function d(a){return"object"==typeof a}function e(a){return"function"==typeof a}function f(){}function g(h,i){function j(){var a=new k;return e(a.init)&&a.init.apply(a,arguments),a}function k(){}i===c&&(i=h,h=Object),j.Bare=k;var l,m=f[a]=h[a],n=k[a]=j[a]=new f;return n.constructor=j,j.mixin=function(b){return k[a]=j[a]=g(j,b)[a],j},j.open=function(a){if(l={},e(a)?l=a.call(j,n,m,j,h):d(a)&&(l=a),d(l))for(var c in l)b.call(l,c)&&(n[c]=l[c]);return e(n.init)||(n.init=h),j},j.open(i)}return g}("prototype",{}.hasOwnProperty),l={ease:["ease",function(a,b,c,d){var e=(a/=d)*a,f=e*a;return b+c*(-2.75*f*e+11*e*e+-15.5*f+8*e+.25*a)}],"ease-in":["ease-in",function(a,b,c,d){var e=(a/=d)*a,f=e*a;return b+c*(-1*f*e+3*e*e+-3*f+2*e)}],"ease-out":["ease-out",function(a,b,c,d){var e=(a/=d)*a,f=e*a;return b+c*(.3*f*e+-1.6*e*e+2.2*f+-1.8*e+1.9*a)}],"ease-in-out":["ease-in-out",function(a,b,c,d){var e=(a/=d)*a,f=e*a;return b+c*(2*f*e+-5*e*e+2*f+2*e)}],linear:["linear",function(a,b,c,d){return c*a/d+b}],"ease-in-quad":["cubic-bezier(0.550, 0.085, 0.680, 0.530)",function(a,b,c,d){return c*(a/=d)*a+b}],"ease-out-quad":["cubic-bezier(0.250, 0.460, 0.450, 0.940)",function(a,b,c,d){return-c*(a/=d)*(a-2)+b}],"ease-in-out-quad":["cubic-bezier(0.455, 0.030, 0.515, 0.955)",function(a,b,c,d){return(a/=d/2)<1?c/2*a*a+b:-c/2*(--a*(a-2)-1)+b}],"ease-in-cubic":["cubic-bezier(0.550, 0.055, 0.675, 0.190)",function(a,b,c,d){return c*(a/=d)*a*a+b}],"ease-out-cubic":["cubic-bezier(0.215, 0.610, 0.355, 1)",function(a,b,c,d){return c*((a=a/d-1)*a*a+1)+b}],"ease-in-out-cubic":["cubic-bezier(0.645, 0.045, 0.355, 1)",function(a,b,c,d){return(a/=d/2)<1?c/2*a*a*a+b:c/2*((a-=2)*a*a+2)+b}],"ease-in-quart":["cubic-bezier(0.895, 0.030, 0.685, 0.220)",function(a,b,c,d){return c*(a/=d)*a*a*a+b}],"ease-out-quart":["cubic-bezier(0.165, 0.840, 0.440, 1)",function(a,b,c,d){return-c*((a=a/d-1)*a*a*a-1)+b}],"ease-in-out-quart":["cubic-bezier(0.770, 0, 0.175, 1)",function(a,b,c,d){return(a/=d/2)<1?c/2*a*a*a*a+b:-c/2*((a-=2)*a*a*a-2)+b}],"ease-in-quint":["cubic-bezier(0.755, 0.050, 0.855, 0.060)",function(a,b,c,d){return c*(a/=d)*a*a*a*a+b}],"ease-out-quint":["cubic-bezier(0.230, 1, 0.320, 1)",function(a,b,c,d){return c*((a=a/d-1)*a*a*a*a+1)+b}],"ease-in-out-quint":["cubic-bezier(0.860, 0, 0.070, 1)",function(a,b,c,d){return(a/=d/2)<1?c/2*a*a*a*a*a+b:c/2*((a-=2)*a*a*a*a+2)+b}],"ease-in-sine":["cubic-bezier(0.470, 0, 0.745, 0.715)",function(a,b,c,d){return-c*Math.cos(a/d*(Math.PI/2))+c+b}],"ease-out-sine":["cubic-bezier(0.390, 0.575, 0.565, 1)",function(a,b,c,d){return c*Math.sin(a/d*(Math.PI/2))+b}],"ease-in-out-sine":["cubic-bezier(0.445, 0.050, 0.550, 0.950)",function(a,b,c,d){return-c/2*(Math.cos(Math.PI*a/d)-1)+b}],"ease-in-expo":["cubic-bezier(0.950, 0.050, 0.795, 0.035)",function(a,b,c,d){return 0===a?b:c*Math.pow(2,10*(a/d-1))+b}],"ease-out-expo":["cubic-bezier(0.190, 1, 0.220, 1)",function(a,b,c,d){return a===d?b+c:c*(-Math.pow(2,-10*a/d)+1)+b}],"ease-in-out-expo":["cubic-bezier(1, 0, 0, 1)",function(a,b,c,d){return 0===a?b:a===d?b+c:(a/=d/2)<1?c/2*Math.pow(2,10*(a-1))+b:c/2*(-Math.pow(2,-10*--a)+2)+b}],"ease-in-circ":["cubic-bezier(0.600, 0.040, 0.980, 0.335)",function(a,b,c,d){return-c*(Math.sqrt(1-(a/=d)*a)-1)+b}],"ease-out-circ":["cubic-bezier(0.075, 0.820, 0.165, 1)",function(a,b,c,d){return c*Math.sqrt(1-(a=a/d-1)*a)+b}],"ease-in-out-circ":["cubic-bezier(0.785, 0.135, 0.150, 0.860)",function(a,b,c,d){return(a/=d/2)<1?-c/2*(Math.sqrt(1-a*a)-1)+b:c/2*(Math.sqrt(1-(a-=2)*a)+1)+b}],"ease-in-back":["cubic-bezier(0.600, -0.280, 0.735, 0.045)",function(a,b,c,d,e){return void 0===e&&(e=1.70158),c*(a/=d)*a*((e+1)*a-e)+b}],"ease-out-back":["cubic-bezier(0.175, 0.885, 0.320, 1.275)",function(a,b,c,d,e){return void 0===e&&(e=1.70158),c*((a=a/d-1)*a*((e+1)*a+e)+1)+b}],"ease-in-out-back":["cubic-bezier(0.680, -0.550, 0.265, 1.550)",function(a,b,c,d,e){return void 0===e&&(e=1.70158),(a/=d/2)<1?c/2*a*a*(((e*=1.525)+1)*a-e)+b:c/2*((a-=2)*a*(((e*=1.525)+1)*a+e)+2)+b}]},m={"ease-in-back":"cubic-bezier(0.600, 0, 0.735, 0.045)","ease-out-back":"cubic-bezier(0.175, 0.885, 0.320, 1)","ease-in-out-back":"cubic-bezier(0.680, 0, 0.265, 1)"},n=document,o=window,p="bkwld-tram",q=/[\-\.0-9]/g,r=/[A-Z]/,s="number",t=/^(rgb|#)/,u=/(em|cm|mm|in|pt|pc|px)$/,v=/(em|cm|mm|in|pt|pc|px|%)$/,w=/(deg|rad|turn)$/,x="unitless",y=/(all|none) 0s ease 0s/,z=/^(width|height)$/,A=" ",B=n.createElement("a"),C=["Webkit","Moz","O","ms"],D=["-webkit-","-moz-","-o-","-ms-"],E=function(a){if(a in B.style)return{dom:a,css:a};var b,c,d="",e=a.split("-");for(b=0;b<e.length;b++)d+=e[b].charAt(0).toUpperCase()+e[b].slice(1);for(b=0;b<C.length;b++)if(c=C[b]+d,c in B.style)return{dom:c,css:D[b]+a}},F=b.support={bind:Function.prototype.bind,transform:E("transform"),transition:E("transition"),backface:E("backface-visibility"),timing:E("transition-timing-function")};if(F.transition){var G=F.timing.dom;if(B.style[G]=l["ease-in-back"][0],!B.style[G])for(var H in m)l[H][0]=m[H]}var I=b.frame=function(){var a=o.requestAnimationFrame||o.webkitRequestAnimationFrame||o.mozRequestAnimationFrame||o.oRequestAnimationFrame||o.msRequestAnimationFrame;return a&&F.bind?a.bind(o):function(a){o.setTimeout(a,16)}}(),J=b.now=function(){var a=o.performance,b=a&&(a.now||a.webkitNow||a.msNow||a.mozNow);return b&&F.bind?b.bind(a):Date.now||function(){return+new Date}}(),K=k(function(b){function d(a,b){var c=j((""+a).split(A)),d=c[0];b=b||{};var e=X[d];if(!e)return _("Unsupported property: "+d);if(!b.weak||!this.props[d]){var f=e[0],g=this.props[d];return g||(g=this.props[d]=new f.Bare),g.init(this.$el,c,e,b),g}}function e(a,b,c){if(a){var e=typeof a;if(b||(this.timer&&this.timer.destroy(),this.queue=[],this.active=!1),"number"==e&&b)return this.timer=new R({duration:a,context:this,complete:h}),void(this.active=!0);if("string"==e&&b){switch(a){case"hide":n.call(this);break;case"stop":k.call(this);break;case"redraw":o.call(this);break;default:d.call(this,a,c&&c[1])}return h.call(this)}if("function"==e)return void a.call(this,this);if("object"==e){var f=0;t.call(this,a,function(a,b){a.span>f&&(f=a.span),a.stop(),a.animate(b)},function(a){"wait"in a&&(f=i(a.wait,0))}),s.call(this),f>0&&(this.timer=new R({duration:f,context:this}),this.active=!0,b&&(this.timer.complete=h));var g=this,j=!1,l={};I(function(){t.call(g,a,function(a){a.active&&(j=!0,l[a.name]=a.nextStyle)}),j&&g.$el.css(l)})}}}function f(a){a=i(a,0),this.active?this.queue.push({options:a}):(this.timer=new R({duration:a,context:this,complete:h}),this.active=!0)}function g(a){return this.active?(this.queue.push({options:a,args:arguments}),void(this.timer.complete=h)):_("No active transition timer. Use start() or wait() before then().")}function h(){if(this.timer&&this.timer.destroy(),this.active=!1,this.queue.length){var a=this.queue.shift();e.call(this,a.options,!0,a.args)}}function k(a){this.timer&&this.timer.destroy(),this.queue=[],this.active=!1;var b;"string"==typeof a?(b={},b[a]=1):b="object"==typeof a&&null!=a?a:this.props,t.call(this,b,u),s.call(this)}function l(a){k.call(this,a),t.call(this,a,v,w)}function m(a){"string"!=typeof a&&(a="block"),this.el.style.display=a}function n(){k.call(this),this.el.style.display="none"}function o(){this.el.offsetHeight}function q(){k.call(this),a.removeData(this.el,p),this.$el=this.el=null}function s(){var a,b,c=[];this.upstream&&c.push(this.upstream);for(a in this.props)b=this.props[a],b.active&&c.push(b.string);c=c.join(","),this.style!==c&&(this.style=c,this.el.style[F.transition.dom]=c)}function t(a,b,e){var f,g,h,i,j=b!==u,k={};for(f in a)h=a[f],f in Y?(k.transform||(k.transform={}),k.transform[f]=h):(r.test(f)&&(f=c(f)),f in X?k[f]=h:(i||(i={}),i[f]=h));for(f in k){if(h=k[f],g=this.props[f],!g){if(!j)continue;g=d.call(this,f)}b.call(this,g,h)}e&&i&&e.call(this,i)}function u(a){a.stop()}function v(a,b){a.set(b)}function w(a){this.$el.css(a)}function x(a,c){b[a]=function(){return this.children?z.call(this,c,arguments):(this.el&&c.apply(this,arguments),this)}}function z(a,b){var c,d=this.children.length;for(c=0;d>c;c++)a.apply(this.children[c],b);return this}b.init=function(b){if(this.$el=a(b),this.el=this.$el[0],this.props={},this.queue=[],this.style="",this.active=!1,T.keepInherited&&!T.fallback){var c=V(this.el,"transition");c&&!y.test(c)&&(this.upstream=c)}F.backface&&T.hideBackface&&U(this.el,F.backface.css,"hidden")},x("add",d),x("start",e),x("wait",f),x("then",g),x("next",h),x("stop",k),x("set",l),x("show",m),x("hide",n),x("redraw",o),x("destroy",q)}),L=k(K,function(b){function c(b,c){var d=a.data(b,p)||a.data(b,p,new K.Bare);return d.el||d.init(b),c?d.start(c):d}b.init=function(b,d){var e=a(b);if(!e.length)return this;if(1===e.length)return c(e[0],d);var f=[];return e.each(function(a,b){f.push(c(b,d))}),this.children=f,this}}),M=k(function(a){function b(){var a=this.get();this.update("auto");var b=this.get();return this.update(a),b}function c(a,b,c){return void 0!==b&&(c=b),a in l?a:c}function d(a){var b=/rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a);return(b?e(b[1],b[2],b[3]):a).replace(/#(\w)(\w)(\w)$/,"#$1$1$2$2$3$3")}var f={duration:500,ease:"ease",delay:0};a.init=function(a,b,d,e){this.$el=a,this.el=a[0];var g=b[0];d[2]&&(g=d[2]),W[g]&&(g=W[g]),this.name=g,this.type=d[1],this.duration=i(b[1],this.duration,f.duration),this.ease=c(b[2],this.ease,f.ease),this.delay=i(b[3],this.delay,f.delay),this.span=this.duration+this.delay,this.active=!1,this.nextStyle=null,this.auto=z.test(this.name),this.unit=e.unit||this.unit||T.defaultUnit,this.angle=e.angle||this.angle||T.defaultAngle,T.fallback||e.fallback?this.animate=this.fallback:(this.animate=this.transition,this.string=this.name+A+this.duration+"ms"+("ease"!=this.ease?A+l[this.ease][0]:"")+(this.delay?A+this.delay+"ms":""))},a.set=function(a){a=this.convert(a,this.type),this.update(a),this.redraw()},a.transition=function(a){this.active=!0,a=this.convert(a,this.type),this.auto&&("auto"==this.el.style[this.name]&&(this.update(this.get()),this.redraw()),"auto"==a&&(a=b.call(this))),this.nextStyle=a},a.fallback=function(a){var c=this.el.style[this.name]||this.convert(this.get(),this.type);a=this.convert(a,this.type),this.auto&&("auto"==c&&(c=this.convert(this.get(),this.type)),"auto"==a&&(a=b.call(this))),this.tween=new Q({from:c,to:a,duration:this.duration,delay:this.delay,ease:this.ease,update:this.update,context:this})},a.get=function(){return V(this.el,this.name)},a.update=function(a){U(this.el,this.name,a)},a.stop=function(){(this.active||this.nextStyle)&&(this.active=!1,this.nextStyle=null,U(this.el,this.name,this.get()));var a=this.tween;a&&a.context&&a.destroy()},a.convert=function(a,b){if("auto"==a&&this.auto)return a;var c,e="number"==typeof a,f="string"==typeof a;switch(b){case s:if(e)return a;if(f&&""===a.replace(q,""))return+a;c="number(unitless)";break;case t:if(f){if(""===a&&this.original)return this.original;if(b.test(a))return"#"==a.charAt(0)&&7==a.length?a:d(a)}c="hex or rgb string";break;case u:if(e)return a+this.unit;if(f&&b.test(a))return a;c="number(px) or string(unit)";break;case v:if(e)return a+this.unit;if(f&&b.test(a))return a;c="number(px) or string(unit or %)";break;case w:if(e)return a+this.angle;if(f&&b.test(a))return a;c="number(deg) or string(angle)";break;case x:if(e)return a;if(f&&v.test(a))return a;c="number(unitless) or string(unit or %)"}return g(c,a),a},a.redraw=function(){this.el.offsetHeight}}),N=k(M,function(a,b){a.init=function(){b.init.apply(this,arguments),this.original||(this.original=this.convert(this.get(),t))}}),O=k(M,function(a,b){a.init=function(){b.init.apply(this,arguments),this.animate=this.fallback},a.get=function(){return this.$el[this.name]()},a.update=function(a){this.$el[this.name](a)}}),P=k(M,function(a,b){function c(a,b){var c,d,e,f,g;for(c in a)f=Y[c],e=f[0],d=f[1]||c,g=this.convert(a[c],e),b.call(this,d,g,e)}a.init=function(){b.init.apply(this,arguments),this.current||(this.current={},Y.perspective&&T.perspective&&(this.current.perspective=T.perspective,U(this.el,this.name,this.style(this.current)),this.redraw()))},a.set=function(a){c.call(this,a,function(a,b){this.current[a]=b}),U(this.el,this.name,this.style(this.current)),this.redraw()},a.transition=function(a){var b=this.values(a);this.tween=new S({current:this.current,values:b,duration:this.duration,delay:this.delay,ease:this.ease});var c,d={};for(c in this.current)d[c]=c in b?b[c]:this.current[c];this.active=!0,this.nextStyle=this.style(d)},a.fallback=function(a){var b=this.values(a);this.tween=new S({current:this.current,values:b,duration:this.duration,delay:this.delay,ease:this.ease,update:this.update,context:this})},a.update=function(){U(this.el,this.name,this.style(this.current))},a.style=function(a){var b,c="";for(b in a)c+=b+"("+a[b]+") ";return c},a.values=function(a){var b,d={};return c.call(this,a,function(a,c,e){d[a]=c,void 0===this.current[a]&&(b=0,~a.indexOf("scale")&&(b=1),this.current[a]=this.convert(b,e))}),d}}),Q=k(function(b){function c(a){1===n.push(a)&&I(g)}function g(){var a,b,c,d=n.length;if(d)for(I(g),b=J(),a=d;a--;)c=n[a],c&&c.render(b)}function i(b){var c,d=a.inArray(b,n);d>=0&&(c=n.slice(d+1),n.length=d,c.length&&(n=n.concat(c)))}function j(a){return Math.round(a*o)/o}function k(a,b,c){return e(a[0]+c*(b[0]-a[0]),a[1]+c*(b[1]-a[1]),a[2]+c*(b[2]-a[2]))}var m={ease:l.ease[1],from:0,to:1};b.init=function(a){this.duration=a.duration||0,this.delay=a.delay||0;var b=a.ease||m.ease;l[b]&&(b=l[b][1]),"function"!=typeof b&&(b=m.ease),this.ease=b,this.update=a.update||f,this.complete=a.complete||f,this.context=a.context||this,this.name=a.name;var c=a.from,d=a.to;void 0===c&&(c=m.from),void 0===d&&(d=m.to),this.unit=a.unit||"","number"==typeof c&&"number"==typeof d?(this.begin=c,this.change=d-c):this.format(d,c),this.value=this.begin+this.unit,this.start=J(),a.autoplay!==!1&&this.play()},b.play=function(){this.active||(this.start||(this.start=J()),this.active=!0,c(this))},b.stop=function(){this.active&&(this.active=!1,i(this))},b.render=function(a){var b,c=a-this.start;if(this.delay){if(c<=this.delay)return;c-=this.delay}if(c<this.duration){var d=this.ease(c,0,1,this.duration);return b=this.startRGB?k(this.startRGB,this.endRGB,d):j(this.begin+d*this.change),this.value=b+this.unit,void this.update.call(this.context,this.value)}b=this.endHex||this.begin+this.change,this.value=b+this.unit,this.update.call(this.context,this.value),this.complete.call(this.context),this.destroy()},b.format=function(a,b){if(b+="",a+="","#"==a.charAt(0))return this.startRGB=d(b),this.endRGB=d(a),this.endHex=a,this.begin=0,void(this.change=1);if(!this.unit){var c=b.replace(q,""),e=a.replace(q,"");c!==e&&h("tween",b,a),this.unit=c}b=parseFloat(b),a=parseFloat(a),this.begin=this.value=b,this.change=a-b},b.destroy=function(){this.stop(),this.context=null,this.ease=this.update=this.complete=f};var n=[],o=1e3}),R=k(Q,function(a){a.init=function(a){this.duration=a.duration||0,this.complete=a.complete||f,this.context=a.context,this.play()},a.render=function(a){var b=a-this.start;b<this.duration||(this.complete.call(this.context),this.destroy())}}),S=k(Q,function(a,b){a.init=function(a){this.context=a.context,this.update=a.update,this.tweens=[],this.current=a.current;var b,c;for(b in a.values)c=a.values[b],this.current[b]!==c&&this.tweens.push(new Q({name:b,from:this.current[b],to:c,duration:a.duration,delay:a.delay,ease:a.ease,autoplay:!1}));this.play()},a.render=function(a){var b,c,d=this.tweens.length,e=!1;for(b=d;b--;)c=this.tweens[b],c.context&&(c.render(a),this.current[c.name]=c.value,e=!0);return e?void(this.update&&this.update.call(this.context)):this.destroy()},a.destroy=function(){if(b.destroy.call(this),this.tweens){var a,c=this.tweens.length;for(a=c;a--;)this.tweens[a].destroy();this.tweens=null,this.current=null}}}),T=b.config={defaultUnit:"px",defaultAngle:"deg",keepInherited:!1,hideBackface:!1,perspective:"",fallback:!F.transition,agentTests:[]};b.fallback=function(a){if(!F.transition)return T.fallback=!0;T.agentTests.push("("+a+")");var b=new RegExp(T.agentTests.join("|"),"i");T.fallback=b.test(navigator.userAgent)},b.fallback("6.0.[2-5] Safari"),b.tween=function(a){return new Q(a)},b.delay=function(a,b,c){return new R({complete:b,duration:a,context:c})},a.fn.tram=function(a){return b.call(null,this,a)};var U=a.style,V=a.css,W={transform:F.transform&&F.transform.css},X={color:[N,t],background:[N,t,"background-color"],"outline-color":[N,t],"border-color":[N,t],"border-top-color":[N,t],"border-right-color":[N,t],"border-bottom-color":[N,t],"border-left-color":[N,t],"border-width":[M,u],"border-top-width":[M,u],"border-right-width":[M,u],"border-bottom-width":[M,u],"border-left-width":[M,u],"border-spacing":[M,u],"letter-spacing":[M,u],margin:[M,u],"margin-top":[M,u],"margin-right":[M,u],"margin-bottom":[M,u],"margin-left":[M,u],padding:[M,u],"padding-top":[M,u],"padding-right":[M,u],"padding-bottom":[M,u],"padding-left":[M,u],"outline-width":[M,u],opacity:[M,s],top:[M,v],right:[M,v],bottom:[M,v],left:[M,v],"font-size":[M,v],"text-indent":[M,v],"word-spacing":[M,v],width:[M,v],"min-width":[M,v],"max-width":[M,v],height:[M,v],"min-height":[M,v],"max-height":[M,v],"line-height":[M,x],"scroll-top":[O,s,"scrollTop"],"scroll-left":[O,s,"scrollLeft"]},Y={};F.transform&&(X.transform=[P],Y={x:[v,"translateX"],y:[v,"translateY"],rotate:[w],rotateX:[w],rotateY:[w],scale:[s],scaleX:[s],scaleY:[s],skew:[w],skewX:[w],skewY:[w]}),F.transform&&F.backface&&(Y.z=[v,"translateZ"],Y.rotateZ=[w],Y.scaleZ=[s],Y.perspective=[u]);var Z=/ms/,$=/s|\./,_=function(){var a="warn",b=window.console;return b&&b[a]?function(c){b[a](c)}:f}();return a.tram=b}(window.jQuery);


/***/ },
/* 4 */
/***/ function(module, exports) {

	// shim for using process in browser

	var process = module.exports = {};
	var queue = [];
	var draining = false;
	var currentQueue;
	var queueIndex = -1;

	function cleanUpNextTick() {
	    if (!draining || !currentQueue) {
	        return;
	    }
	    draining = false;
	    if (currentQueue.length) {
	        queue = currentQueue.concat(queue);
	    } else {
	        queueIndex = -1;
	    }
	    if (queue.length) {
	        drainQueue();
	    }
	}

	function drainQueue() {
	    if (draining) {
	        return;
	    }
	    var timeout = setTimeout(cleanUpNextTick);
	    draining = true;

	    var len = queue.length;
	    while(len) {
	        currentQueue = queue;
	        queue = [];
	        while (++queueIndex < len) {
	            if (currentQueue) {
	                currentQueue[queueIndex].run();
	            }
	        }
	        queueIndex = -1;
	        len = queue.length;
	    }
	    currentQueue = null;
	    draining = false;
	    clearTimeout(timeout);
	}

	process.nextTick = function (fun) {
	    var args = new Array(arguments.length - 1);
	    if (arguments.length > 1) {
	        for (var i = 1; i < arguments.length; i++) {
	            args[i - 1] = arguments[i];
	        }
	    }
	    queue.push(new Item(fun, args));
	    if (queue.length === 1 && !draining) {
	        setTimeout(drainQueue, 0);
	    }
	};

	// v8 likes predictible objects
	function Item(fun, array) {
	    this.fun = fun;
	    this.array = array;
	}
	Item.prototype.run = function () {
	    this.fun.apply(null, this.array);
	};
	process.title = 'browser';
	process.browser = true;
	process.env = {};
	process.argv = [];
	process.version = ''; // empty string to avoid regexp issues
	process.versions = {};

	function noop() {}

	process.on = noop;
	process.addListener = noop;
	process.once = noop;
	process.off = noop;
	process.removeListener = noop;
	process.removeAllListeners = noop;
	process.emit = noop;

	process.binding = function (name) {
	    throw new Error('process.binding is not supported');
	};

	process.cwd = function () { return '/' };
	process.chdir = function (dir) {
	    throw new Error('process.chdir is not supported');
	};
	process.umask = function() { return 0; };


/***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Background Video component
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('backgroundVideo', module.exports = function ($, _) {
	  var namespace = '.w-background-video';
	  var doc = $(document);

	  function ready () {
	    var backgroundVideoNodes = $(document).find('.w-background-video');
	    if (backgroundVideoNodes.length === 0) {
	      return;
	    }

	    backgroundVideoNodes.each(function (_, node) {
	      $(node).prepend(createVideoNode(node));
	    });
	  }

	  function createVideoNode (nativeNode) {
	    var nodeData = nativeNode.dataset;

	    if (!nodeData.videoUrls) {
	      return $('<video />');
	    }

	    // Prevent loading the videos on mobile browsers as its likely that they
	    // are on low-bandwidth connections.
	    if (Webflow.isMobile()) {
	      return $('<video />').css('background-image', 'url(' + nodeData.posterUrl + ')');
	    }

	    var videoURLs = nodeData.videoUrls.split(',');
	    var sourceNodes = videoURLs.map(function (url) {
	      return $('<source />').attr({
	        src: url,
	        'data-wf-ignore': '',
	      });
	    });

	    var videoNode = $('<video />').attr({
	      autoplay: nodeData.autoplay,
	      loop: nodeData.loop,
	    })
	    .css('background-image', 'url(' + nodeData.posterUrl + ')');

	    videoNode.append(sourceNodes);

	    return videoNode;
	  }

	  return { ready: ready };
	});


/***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Brand pages on the subdomain
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('brand', module.exports = function($, _) {
	  var api = {};
	  var $html = $('html');
	  var $body = $('body');
	  var location = window.location;
	  var inApp = Webflow.env();

	  // -----------------------------------
	  // Module methods

	  api.ready = function() {
	    var doBranding = $html.attr('data-wf-status');
	    var publishedDomain = $html.attr('data-wf-domain') || '';

	    if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) {
	      doBranding = true;
	    }

	    if (doBranding) {
	      var $branding = $('<div></div>');
	      var $link = $('<a></a>');
	      $link.attr('href', 'http://webflow.com?utm_campaign=brandjs');

	      $branding.css({
	        position: 'fixed',
	        bottom: 0,
	        right: 0,
	        borderTopLeftRadius: '5px',
	        backgroundColor: '#2b3239',
	        padding: '8px 12px 5px 15px',
	        fontFamily: 'Arial',
	        fontSize: '10px',
	        textTransform: 'uppercase',
	        opacity: '0',
	        transition: 'opacity 0.50s ease-in-out'
	      });

	      $link.css({
	        color: '#AAADB0',
	        textDecoration: 'none'
	      });

	      var $webflowLogo = $('<img>');
	      $webflowLogo.attr('src', 'https://daks2k3a4ib2z.cloudfront.net/54153e6a3d25f2755b1f14ed/5445a4b1944ecdaa4df86d3e_subdomain-brand.svg');
	      $webflowLogo.css({
	        opacity: 0.9,
	        width: '57px',
	        verticalAlign: 'middle',
	        paddingLeft: '4px',
	        paddingBottom: '3px'
	      });

	      $branding.text('Built with');
	      $branding.append($webflowLogo);
	      $link.append($branding);

	      $body.append($link);

	      if (/PhantomJS/.test(window.navigator.userAgent)) {
	        return;
	      }

	      $branding.css({
	        opacity: '1.0'
	      });
	    }
	  };

	  // Export module
	  return api;
	});


/***/ },
/* 7 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Dropdown component
	 */

	var Webflow = __webpack_require__(1);
	var IXEvents = __webpack_require__(2);

	Webflow.define('dropdown', module.exports = function($, _) {
	  var api = {};
	  var $doc = $(document);
	  var $dropdowns;
	  var designer;
	  var inApp = Webflow.env();
	  var touch = Webflow.env.touch;
	  var namespace = '.w-dropdown';
	  var stateOpen = 'w--open';
	  var closeEvent = 'w-close' + namespace;
	  var ix = IXEvents.triggers;

	  // -----------------------------------
	  // Module methods

	  api.ready = api.design = api.preview = init;

	  // -----------------------------------
	  // Private methods

	  function init() {
	    designer = inApp && Webflow.env('design');

	    // Find all instances on the page
	    $dropdowns = $doc.find(namespace);
	    $dropdowns.each(build);
	  }

	  function build(i, el) {
	    var $el = $(el);

	    // Store state in data
	    var data = $.data(el, namespace);
	    if (!data) data = $.data(el, namespace, { open: false, el: $el, config: {} });
	    data.list = $el.children('.w-dropdown-list');
	    data.toggle = $el.children('.w-dropdown-toggle');
	    data.links = data.list.children('.w-dropdown-link');
	    data.outside = outside(data);
	    data.complete = complete(data);
	    data.leave = leave(data);

	    // Remove old events
	    $el.off(namespace);
	    data.toggle.off(namespace);

	    // Set config from data attributes
	    configure(data);

	    if (data.nav) data.nav.off(namespace);
	    data.nav = $el.closest('.w-nav');
	    data.nav.on(closeEvent, handler(data));

	    // Add events based on mode
	    if (designer) {
	      $el.on('setting' + namespace, handler(data));
	    } else {
	      data.toggle.on('tap' + namespace, toggle(data));
	      if (data.config.hover) {
	        data.toggle.on('mouseenter' + namespace, enter(data));
	      }
	      $el.on(closeEvent, handler(data));
	      // Close in preview mode
	      inApp && close(data);
	    }
	  }

	  function configure(data) {
	    data.config = {
	      hover: Boolean(data.el.attr('data-hover')) && !touch,
	      delay: Number(data.el.attr('data-delay')) || 0
	    };
	  }

	  function handler(data) {
	    return function(evt, options) {
	      options = options || {};

	      if (evt.type === 'w-close') {
	        return close(data);
	      }

	      if (evt.type === 'setting') {
	        configure(data);
	        options.open === true && open(data, true);
	        options.open === false && close(data, true);
	        return;
	      }
	    };
	  }

	  function toggle(data) {
	    return _.debounce(function() {
	      data.open ? close(data) : open(data);
	    });
	  }

	  function open(data) {
	    if (data.open) return;
	    closeOthers(data);
	    data.open = true;
	    data.list.addClass(stateOpen);
	    data.toggle.addClass(stateOpen);
	    ix.intro(0, data.el[0]);
	    Webflow.redraw.up();

	    // Listen for tap outside events
	    if (!designer) $doc.on('tap' + namespace, data.outside);
	    if (data.hovering) data.el.on('mouseleave' + namespace, data.leave);

	    // Clear previous delay
	    window.clearTimeout(data.delayId);
	  }

	  function close(data, immediate) {
	    if (!data.open) return;

	    // Do not close hover-based menus if currently hovering
	    if (data.config.hover && data.hovering) return;

	    data.open = false;
	    var config = data.config;
	    ix.outro(0, data.el[0]);

	    // Stop listening for tap outside events
	    $doc.off('tap' + namespace, data.outside);
	    data.el.off('mouseleave' + namespace, data.leave);

	    // Clear previous delay
	    window.clearTimeout(data.delayId);

	    // Skip delay during immediate
	    if (!config.delay || immediate) return data.complete();

	    // Optionally wait for delay before close
	    data.delayId = window.setTimeout(data.complete, config.delay);
	  }

	  function closeOthers(data) {
	    var self = data.el[0];
	    $dropdowns.each(function(i, other) {
	      var $other = $(other);
	      if ($other.is(self) || $other.has(self).length) return;
	      $other.triggerHandler(closeEvent);
	    });
	  }

	  function outside(data) {
	    // Unbind previous tap handler if it exists
	    if (data.outside) $doc.off('tap' + namespace, data.outside);

	    // Close menu when tapped outside
	    return _.debounce(function(evt) {
	      if (!data.open) return;
	      var $target = $(evt.target);
	      if ($target.closest('.w-dropdown-toggle').length) return;
	      if (!data.el.is($target.closest(namespace))) {
	        close(data);
	      }
	    });
	  }

	  function complete(data) {
	    return function() {
	      data.list.removeClass(stateOpen);
	      data.toggle.removeClass(stateOpen);
	    };
	  }

	  function enter(data) {
	    return function() {
	      data.hovering = true;
	      open(data);
	    };
	  }

	  function leave(data) {
	    return function() {
	      data.hovering = false;
	      close(data);
	    };
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 8 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Editor loader
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('edit', module.exports = function($, _, options) {
	  options = options || {};

	  // Exit early in test env or when inside an iframe
	  if (Webflow.env('test') || Webflow.env('frame')) {
	    // Allow test fixtures to continue
	    if (!options.fixture) {
	      return {exit: 1};
	    }
	  }

	  var api = {};
	  var $win = $(window);
	  var $html = $(document.documentElement);
	  var location = document.location;
	  var hashchange = 'hashchange';
	  var loaded;
	  var loadEditor = options.load || load;
	  var hasLocalStorage = false;

	  try {
	    // Check localStorage for editor data
	    hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem('WebflowEditor');
	  } catch (e) {
	    // SecurityError: browser storage has been disabled
	  }

	  if (hasLocalStorage) {
	    loadEditor();

	  } else if (location.search) {
	    // Check url query for `edit` parameter or any url ending in `?edit`
	    if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) {
	      loadEditor();
	    }

	  } else {
	    // Check hash fragment to support `#hash?edit`
	    $win.on(hashchange, checkHash).triggerHandler(hashchange);
	  }

	  function checkHash() {
	    if (loaded) return;
	    // Load editor when hash contains `?edit`
	    if (/\?edit/.test(location.hash)) loadEditor();
	  }

	  function load() {
	    loaded = true;
	    // Predefine global immediately to benefit Webflow.env
	    window.WebflowEditor = true;
	    $win.off(hashchange, checkHash);
	    $.ajax({
	      url: cleanSlashes(("https://editor-api.webflow.com") + '/api/editor/view'),
	      data: { siteId: $html.attr('data-wf-site') },
	      xhrFields: { withCredentials: true },
	      dataType: 'json',
	      crossDomain: true,
	      success: success
	    });
	  }

	  function success(data) {
	    if (!data) {
	      console.error('Could not load editor data');
	      return;
	    }
	    getScript(prefix(data.scriptPath), function () {
	      window.WebflowEditor(data);
	    });
	  }

	  function getScript(url, done) {
	    $.ajax({ type: 'GET', url: url, dataType: 'script', cache: true }).then(done, error);
	  }

	  function error(jqXHR, textStatus, errorThrown) {
	    console.error('Could not load editor script: ' + textStatus);
	    throw errorThrown;
	  }

	  function prefix(url) {
	    return (url.indexOf('//') >= 0) ? url : cleanSlashes(("https://editor-api.webflow.com") + url);
	  }

	  function cleanSlashes(url) {
	    return url.replace(/([^:])\/\//g, '$1/');
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 9 */
/***/ function(module, exports) {

	/**
	 * Returns a Boolean representing whether or not the client is a mobile browser.
	 *
	 * NOTE: Many thanks to detectmobilebrowsers.com for this user agent detection
	 * regex, without which the mobile internet probably wouldn't exist.
	 */
	Webflow.isMobile = function () {
	  var userAgent = navigator.userAgent || navigator.vendor || window.opera;
	  return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i
	         .test(userAgent) ||
	         /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i
	         .test(userAgent.substr(0, 4));
	}


/***/ },
/* 10 */
/***/ function(module, exports, __webpack_require__) {

	/**
	 * Webflow: Forms
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('forms', module.exports = function($, _) {
	  var api = {};

	  // Cross-Domain AJAX for IE8
	  __webpack_require__(22);

	  var $doc = $(document);
	  var $forms;
	  var loc = window.location;
	  var retro = window.XDomainRequest && !window.atob;
	  var namespace = '.w-form';
	  var siteId;
	  var emailField = /e(\-)?mail/i;
	  var emailValue = /^\S+@\S+$/;
	  var alert = window.alert;
	  var listening;

	  // MailChimp domains: list-manage.com + mirrors
	  var chimpRegex = /list-manage[1-9]?.com/i;

	  var disconnected = _.debounce(function() {
	    alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.');
	  }, 100);

	  api.ready = function() {
	    // Init forms
	    init();

	    // Wire document events once
	    if (!listening) addListeners();
	  };

	  api.preview = api.design = function() {
	    init();
	  };

	  function init() {
	    siteId = $('html').attr('data-wf-site');

	    $forms = $(namespace + ' form');
	    if (!$forms.length) return;
	    $forms.each(build);
	  }

	  function build(i, el) {
	    // Store form state using namespace
	    var $el = $(el);
	    var data = $.data(el, namespace);
	    if (!data) data = $.data(el, namespace, { form: $el }); // data.form

	    reset(data);
	    var wrap = $el.closest('div.w-form');
	    data.done = wrap.find('> .w-form-done');
	    data.fail = wrap.find('> .w-form-fail');

	    var action = data.action = $el.attr('action');
	    data.handler = null;
	    data.redirect = $el.attr('data-redirect');

	    // MailChimp form
	    if (chimpRegex.test(action)) { data.handler = submitMailChimp; return; }

	    // Custom form action
	    if (action) return;

	    // Webflow form
	    if (siteId) { data.handler = submitWebflow; return; }

	    // Alert for disconnected Webflow forms
	    disconnected();
	  }

	  function addListeners() {
	    listening = true;

	    // Handle form submission for Webflow forms
	    $doc.on('submit', namespace + ' form', function(evt) {
	      var data = $.data(this, namespace);
	      if (data.handler) {
	        data.evt = evt;
	        data.handler(data);
	      }
	    });
	  }

	  // Reset data common to all submit handlers
	  function reset(data) {
	    var btn = data.btn = data.form.find(':input[type="submit"]');
	    data.wait = data.btn.attr('data-wait') || null;
	    data.success = false;
	    btn.prop('disabled', false);
	    data.label && btn.val(data.label);
	  }

	  // Disable submit button
	  function disableBtn(data) {
	    var btn = data.btn;
	    var wait = data.wait;
	    btn.prop('disabled', true);
	    // Show wait text and store previous label
	    if (wait) {
	      data.label = btn.val();
	      btn.val(wait);
	    }
	  }

	  // Find form fields, validate, and set value pairs
	  function findFields(form, result) {
	    var status = null;
	    result = result || {};

	    // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas
	    form.find(':input:not([type="submit"])').each(function(i, el) {
	      var field = $(el);
	      var type = field.attr('type');
	      var name = field.attr('data-name') || field.attr('name') || ('Field ' + (i + 1));
	      var value = field.val();

	      if (type === 'checkbox') {
	        value = field.is(':checked');
	      } if (type === 'radio') {
	        // Radio group value already processed
	        if (result[name] === null || typeof result[name] === 'string') {
	          return;
	        }

	        value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null;
	      }

	      if (typeof value === 'string') value = $.trim(value);
	      result[name] = value;
	      status = status || getStatus(field, type, name, value);
	    });

	    return status;
	  }

	  function getStatus(field, type, name, value) {
	    var status = null;

	    if (type === 'password') {
	      status = 'Passwords cannot be submitted.';
	    } else if (field.attr('required')) {
	      if (!value) {
	        status = 'Please fill out the required field: ' + name;
	      } else if (emailField.test(name) || emailField.test(field.attr('type'))) {
	        if (!emailValue.test(value)) status = 'Please enter a valid email address for: ' + name;
	      }
	    }

	    return status;
	  }

	  // Submit form to Webflow
	  function submitWebflow(data) {
	    reset(data);

	    var form = data.form;
	    var payload = {
	      name: form.attr('data-name') || form.attr('name') || 'Untitled Form',
	      source: loc.href,
	      test: Webflow.env(),
	      fields: {},
	      dolphin: /pass[\s-_]?(word|code)|secret|login|credentials/i.test(form.html())
	    };

	    preventDefault(data);

	    // Find & populate all fields
	    var status = findFields(form, payload.fields);
	    if (status) return alert(status);

	    // Disable submit button
	    disableBtn(data);

	    // Read site ID
	    // NOTE: If this site is exported, the HTML tag must retain the data-wf-site attribute for forms to work
	    if (!siteId) { afterSubmit(data); return; }
	    var url = ("https://webflow.com") + '/api/v1/form/' + siteId;

	    // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit
	    if (retro && url.indexOf(("https://webflow.com")) >= 0) {
	      url = url.replace(("https://webflow.com"), ("http://formdata.webflow.com"));
	    }

	    $.ajax({
	      url: url,
	      type: 'POST',
	      data: payload,
	      dataType: 'json',
	      crossDomain: true
	    }).done(function() {
	      data.success = true;
	      afterSubmit(data);
	    }).fail(function(response, textStatus, jqXHR) {
	      afterSubmit(data);
	    });
	  }

	  // Submit form to MailChimp
	  function submitMailChimp(data) {
	    reset(data);

	    var form = data.form;
	    var payload = {};

	    // Skip Ajax submission if http/s mismatch, fallback to POST instead
	    if (/^https/.test(loc.href) && !/^https/.test(data.action)) {
	      form.attr('method', 'post');
	      return;
	    }

	    preventDefault(data);

	    // Find & populate all fields
	    var status = findFields(form, payload);
	    if (status) return alert(status);

	    // Disable submit button
	    disableBtn(data);

	    // Use special format for MailChimp params
	    var fullName;
	    _.each(payload, function(value, key) {
	      if (emailField.test(key)) payload.EMAIL = value;
	      if (/^((full[ _-]?)?name)$/i.test(key)) fullName = value;
	      if (/^(first[ _-]?name)$/i.test(key)) payload.FNAME = value;
	      if (/^(last[ _-]?name)$/i.test(key)) payload.LNAME = value;
	    });

	    if (fullName && !payload.FNAME) {
	      fullName = fullName.split(' ');
	      payload.FNAME = fullName[0];
	      payload.LNAME = payload.LNAME || fullName[1];
	    }

	    // Use the (undocumented) MailChimp jsonp api
	    var url = data.action.replace('/post?', '/post-json?') + '&c=?';
	    // Add special param to prevent bot signups
	    var userId = url.indexOf('u=') + 2;
	    userId = url.substring(userId, url.indexOf('&', userId));
	    var listId = url.indexOf('id=') + 3;
	    listId = url.substring(listId, url.indexOf('&', listId));
	    payload['b_' + userId + '_' + listId] = '';

	    $.ajax({
	      url: url,
	      data: payload,
	      dataType: 'jsonp'
	    }).done(function(resp) {
	      data.success = (resp.result === 'success' || /already/.test(resp.msg));
	      if (!data.success) console.info('MailChimp error: ' + resp.msg);
	      afterSubmit(data);
	    }).fail(function(response, textStatus, jqXHR) {
	      afterSubmit(data);
	    });
	  }

	  // Common callback which runs after all Ajax submissions
	  function afterSubmit(data) {
	    var form = data.form;
	    var wrap = form.closest('div.w-form');
	    var redirect = data.redirect;
	    var success = data.success;

	    // Redirect to a success url if defined
	    if (success && redirect) {
	      Webflow.location(redirect);
	      return;
	    }

	    // Show or hide status divs
	    data.done.toggle(success);
	    data.fail.toggle(!success);

	    // Hide form on success
	    form.toggle(!success);

	    // Reset data and enable submit button
	    reset(data);
	  }

	  function preventDefault(data) {
	    data.evt && data.evt.preventDefault();
	    data.evt = null;
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 11 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Google+ widget
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('gplus', module.exports = function($, _) {
	  var $doc = $(document);
	  var api = {};
	  var loaded;

	  api.ready = function() {
	    // Load Google+ API on the front-end
	    if (!Webflow.env() && !loaded) init();
	  };

	  function init() {
	    $doc.find('.w-widget-gplus').length && load();
	  }

	  function load() {
	    loaded = true;
	    $.getScript('https://apis.google.com/js/plusone.js');
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 12 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';
	/*eslint no-self-compare:0 */

	/**
	 * Webflow: Interactions
	 */

	var Webflow = __webpack_require__(1);
	var IXEvents = __webpack_require__(2);

	Webflow.define('ix', module.exports = function($, _) {
	  var api = {};
	  var designer;
	  var $win = $(window);
	  var namespace = '.w-ix';
	  var tram = $.tram;
	  var env = Webflow.env;
	  var inApp = env();
	  var emptyFix = env.chrome && env.chrome < 35;
	  var transNone = 'none 0s ease 0s';
	  var $subs = $();
	  var config = {};
	  var anchors = [];
	  var loads = [];
	  var readys = [];
	  var destroyed;
	  var readyDelay = 1;

	  // Component types and proxy selectors
	  var components = {
	    tabs: '.w-tab-link, .w-tab-pane',
	    dropdown: '.w-dropdown',
	    slider: '.w-slide',
	    navbar: '.w-nav'
	  };

	  // -----------------------------------
	  // Module methods

	  api.init = function(list) {
	    setTimeout(function() { configure(list); }, 1);
	  };

	  api.preview = function() {
	    designer = false;
	    readyDelay = 100;
	    setTimeout(function() { configure(window.__wf_ix); }, 1);
	  };

	  api.design = function() {
	    designer = true;
	    api.destroy();
	  };

	  api.destroy = function() {
	    destroyed = true;
	    $subs.each(teardown);
	    Webflow.scroll.off(scroll);
	    IXEvents.async();
	    anchors = [];
	    loads = [];
	    readys = [];
	  };

	  api.ready = function() {
	    // Ready should only be used after destroy, as a way to re-init
	    if (config && destroyed) {
	      destroyed = false;
	      init();
	    }
	  };

	  api.run = run;
	  api.style = inApp ? styleApp : stylePub;

	  // -----------------------------------
	  // Private methods

	  function configure(list) {
	    if (!list) return;

	    // Map all interactions by slug
	    config = {};
	    _.each(list, function(item) {
	      config[item.slug] = item.value;
	    });

	    // Init ix after config
	    init();
	  }

	  function init() {
	    // Build each element's interaction keying from data attribute
	    var els = $('[data-ix]');
	    if (!els.length) return;
	    els.each(teardown);
	    els.each(build);

	    // Listen for scroll events if any anchors exist
	    if (anchors.length) {
	      Webflow.scroll.on(scroll);
	      setTimeout(scroll, 1);
	    }

	    // Handle loads or readys if they exist
	    if (loads.length) Webflow.load(runLoads);
	    if (readys.length) setTimeout(runReadys, readyDelay);

	    // Trigger queued events, must happen after init
	    IXEvents.init();

	    // Trigger a redraw to ensure all IX intros play
	    Webflow.redraw.up();
	  }

	  function build(i, el) {
	    var $el = $(el);
	    var id = $el.attr('data-ix');
	    var ix = config[id];
	    if (!ix) return;
	    var triggers = ix.triggers;
	    if (!triggers) return;

	    // Set styles immediately to provide tram with starting transform values
	    api.style($el, ix.style);

	    _.each(triggers, function(trigger) {
	      var state = {};
	      var type = trigger.type;
	      var stepsB = trigger.stepsB && trigger.stepsB.length;

	      function runA() { run(trigger, $el, { group: 'A' }); }
	      function runB() { run(trigger, $el, { group: 'B' }); }

	      if (type === 'load') {
	        (trigger.preload && !inApp) ? loads.push(runA) : readys.push(runA);
	        return;
	      }

	      if (type === 'click') {
	        $el.on('click' + namespace, function(evt) {
	          // Avoid late clicks on touch devices
	          if (!Webflow.validClick(evt.currentTarget)) return;

	          // Prevent default on empty hash urls
	          if ($el.attr('href') === '#') evt.preventDefault();

	          run(trigger, $el, { group: state.clicked ? 'B' : 'A' });
	          if (stepsB) state.clicked = !state.clicked;
	        });
	        $subs = $subs.add($el);
	        return;
	      }

	      if (type === 'hover') {
	        $el.on('mouseenter' + namespace, runA);
	        $el.on('mouseleave' + namespace, runB);
	        $subs = $subs.add($el);
	        return;
	      }

	      if (type === 'scroll') {
	        anchors.push({
	          el: $el, trigger: trigger, state: { active: false },
	          offsetTop: convert(trigger.offsetTop),
	          offsetBot: convert(trigger.offsetBot)
	        });
	        return;
	      }

	      // Check for a proxy component selector
	      // type == [tabs, dropdown, slider, navbar]
	      var proxy = components[type];
	      if (proxy) {
	        var $proxy = $el.closest(proxy);
	        $proxy.on(IXEvents.types.INTRO, runA).on(IXEvents.types.OUTRO, runB);
	        $subs = $subs.add($proxy);
	        return;
	      }
	    });
	  }

	  function convert(offset) {
	    if (!offset) return 0;
	    offset = String(offset);
	    var result = parseInt(offset, 10);
	    if (result !== result) return 0;
	    if (offset.indexOf('%') > 0) {
	      result /= 100;
	      if (result >= 1) result = 0.999;
	    }
	    return result;
	  }

	  function teardown(i, el) {
	    $(el).off(namespace);
	  }

	  function scroll() {
	    var viewTop = $win.scrollTop();
	    var viewHeight = $win.height();

	    // Check each anchor for a valid scroll trigger
	    var count = anchors.length;
	    for (var i = 0; i < count; i++) {
	      var anchor = anchors[i];
	      var $el = anchor.el;
	      var trigger = anchor.trigger;
	      var stepsB = trigger.stepsB && trigger.stepsB.length;
	      var state = anchor.state;
	      var top = $el.offset().top;
	      var height = $el.outerHeight();
	      var offsetTop = anchor.offsetTop;
	      var offsetBot = anchor.offsetBot;
	      if (offsetTop < 1 && offsetTop > 0) offsetTop *= viewHeight;
	      if (offsetBot < 1 && offsetBot > 0) offsetBot *= viewHeight;
	      var active = (top + height - offsetTop >= viewTop && top + offsetBot <= viewTop + viewHeight);
	      if (active === state.active) continue;
	      if (active === false && !stepsB) continue;
	      state.active = active;
	      run(trigger, $el, { group: active ? 'A' : 'B' });
	    }
	  }

	  function runLoads() {
	    var count = loads.length;
	    for (var i = 0; i < count; i++) {
	      loads[i]();
	    }
	  }

	  function runReadys() {
	    var count = readys.length;
	    for (var i = 0; i < count; i++) {
	      readys[i]();
	    }
	  }

	  function run(trigger, $el, opts, replay) {
	    opts = opts || {};
	    var done = opts.done;

	    // Do not run in designer unless forced
	    if (designer && !opts.force) return;

	    // Operate on a set of grouped steps
	    var group = opts.group || 'A';
	    var loop = trigger['loop' + group];
	    var steps = trigger['steps' + group];
	    if (!steps || !steps.length) return;
	    if (steps.length < 2) loop = false;

	    // One-time init before any loops
	    if (!replay) {

	      // Find selector within element descendants, siblings, or query whole document
	      var selector = trigger.selector;
	      if (selector) {
	        if (trigger.descend) {
	          $el = $el.find(selector);
	        } else if (trigger.siblings) {
	          $el = $el.siblings(selector);
	        } else {
	          $el = $(selector);
	        }
	        if (inApp) $el.attr('data-ix-affect', 1);
	      }

	      // Apply empty fix for certain Chrome versions
	      if (emptyFix) $el.addClass('w-ix-emptyfix');

	      // Set preserve3d for triggers with transforms
	      if (trigger.preserve3d) $el.css('transform-style', 'preserve-3d');
	    }

	    var _tram = tram($el);

	    // Add steps
	    var meta = {};
	    for (var i = 0; i < steps.length; i++) {
	      addStep(_tram, steps[i], meta);
	    }

	    function fin() {
	      // Run trigger again if looped
	      if (loop) return run(trigger, $el, opts, true);

	      // Reset any 'auto' values
	      if (meta.width === 'auto') _tram.set({ width: 'auto' });
	      if (meta.height === 'auto') _tram.set({ height: 'auto' });

	      // Run callback
	      done && done();
	    }

	    // Add final step to queue if tram has started
	    meta.start ? _tram.then(fin) : fin();
	  }

	  function addStep(_tram, step, meta) {
	    var addMethod = 'add';
	    var startMethod = 'start';

	    // Once the transition has started, we will always use then() to add to the queue.
	    if (meta.start) addMethod = startMethod = 'then';

	    // Parse transitions string on the current step
	    var transitions = step.transition;
	    if (transitions) {
	      transitions = transitions.split(',');
	      for (var i = 0; i < transitions.length; i++) {
	        var transition = transitions[i];
	        _tram[addMethod](transition);
	      }
	    }

	    // Build a clean object to pass to the tram method
	    var clean = tramify(step) || {};

	    // Store last width and height values
	    if (clean.width != null) meta.width = clean.width;
	    if (clean.height != null) meta.height = clean.height;

	    // When transitions are not present, set values immediately and continue queue.
	    if (transitions == null) {

	      // If we have started, wrap set() in then() and reset queue
	      if (meta.start) {
	        _tram.then(function() {
	          var queue = this.queue;
	          this.set(clean);
	          if (clean.display) {
	            _tram.redraw();
	            Webflow.redraw.up();
	          }
	          this.queue = queue;
	          this.next();
	        });
	      } else {
	        _tram.set(clean);

	        // Always redraw after setting display
	        if (clean.display) {
	          _tram.redraw();
	          Webflow.redraw.up();
	        }
	      }

	      // Use the wait() method to kick off queue in absence of transitions.
	      var wait = clean.wait;
	      if (wait != null) {
	        _tram.wait(wait);
	        meta.start = true;
	      }

	    // Otherwise, when transitions are present
	    } else {

	      // If display is present, handle it separately
	      if (clean.display) {
	        var display = clean.display;
	        delete clean.display;

	        // If we've already started, we need to wrap it in a then()
	        if (meta.start) {
	          _tram.then(function() {
	            var queue = this.queue;
	            this.set({ display: display }).redraw();
	            Webflow.redraw.up();
	            this.queue = queue;
	            this.next();
	          });
	        } else {
	          _tram.set({ display: display }).redraw();
	          Webflow.redraw.up();
	        }
	      }

	      // Otherwise, start a transition using the current start method.
	      _tram[startMethod](clean);
	      meta.start = true;
	    }
	  }

	  // (In app) Set styles immediately and manage upstream transition
	  function styleApp(el, data) {
	    var _tram = tram(el);

	    // Get computed transition value
	    el.css('transition', '');
	    var computed = el.css('transition');

	    // If computed is set to none, clear upstream
	    if (computed === transNone) computed = _tram.upstream = null;

	    // Set upstream transition to none temporarily
	    _tram.upstream = transNone;

	    // Set values immediately
	    _tram.set(tramify(data));

	    // Only restore upstream in preview mode
	    _tram.upstream = computed;
	  }

	  // (Published) Set styles immediately on specified jquery element
	  function stylePub(el, data) {
	    tram(el).set(tramify(data));
	  }

	  // Build a clean object for tram
	  function tramify(obj) {
	    var result = {};
	    var found = false;
	    for (var x in obj) {
	      if (x === 'transition') continue;
	      result[x] = obj[x];
	      found = true;
	    }
	    // If empty, return null for tram.set/stop compliance
	    return found ? result : null;
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 13 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';
	/*eslint
	  no-use-before-define: 0,
	  no-shadow: 0
	*/

	/**
	 * Webflow: Lightbox component
	 */

	var Webflow = __webpack_require__(1);

	function createLightbox(window, document, $) {
	  var tram = $.tram;
	  var isArray = Array.isArray;
	  var namespace = 'w-lightbox';
	  var prefix = namespace + '-';
	  var prefixRegex = /(^|\s+)/g;

	  // Array of objects describing items to be displayed.
	  var items = [];

	  // Index of the currently displayed item.
	  var currentIndex;

	  // Object holding references to jQuery wrapped nodes.
	  var $refs;

	  // Instance of Spinner
	  var spinner;

	  function lightbox(thing, index) {
	    items = isArray(thing) ? thing : [thing];

	    if (!$refs) {
	      lightbox.build();
	    }

	    if (items.length > 1) {
	      $refs.items = $refs.empty;

	      items.forEach(function (item) {
	        var $thumbnail = dom('thumbnail');
	        var $item = dom('item').append($thumbnail);

	        $refs.items = $refs.items.add($item);

	        loadImage(item.thumbnailUrl || item.url, function ($image) {
	          if ($image.prop('width') > $image.prop('height')) {
	            addClass($image, 'wide');
	          } else {
	            addClass($image, 'tall');
	          }
	          $thumbnail.append(addClass($image, 'thumbnail-image'));
	        });
	      });

	      $refs.strip.empty().append($refs.items);
	      addClass($refs.content, 'group');
	    }

	    tram(
	      // Focus the lightbox to receive keyboard events.
	      removeClass($refs.lightbox, 'hide').focus()
	    )
	      .add('opacity .3s')
	      .start({opacity: 1});

	    // Prevent document from scrolling while lightbox is active.
	    addClass($refs.html, 'noscroll');

	    return lightbox.show(index || 0);
	  }

	  /**
	   * Creates the DOM structure required by the lightbox.
	   */
	  lightbox.build = function () {
	    // In case `build` is called more than once.
	    lightbox.destroy();

	    $refs = {
	      html: $(document.documentElement),
	      // Empty jQuery object can be used to build new ones using `.add`.
	      empty: $()
	    };

	    $refs.arrowLeft = dom('control left inactive');
	    $refs.arrowRight = dom('control right inactive');
	    $refs.close = dom('control close');

	    $refs.spinner = dom('spinner');
	    $refs.strip = dom('strip');

	    spinner = new Spinner($refs.spinner, prefixed('hide'));

	    $refs.content = dom('content')
	      .append($refs.spinner, $refs.arrowLeft, $refs.arrowRight, $refs.close);

	    $refs.container = dom('container')
	      .append($refs.content, $refs.strip);

	    $refs.lightbox = dom('backdrop hide')
	      .append($refs.container);

	    // We are delegating events for performance reasons and also
	    // to not have to reattach handlers when images change.
	    $refs.strip.on('tap', selector('item'), itemTapHandler);
	    $refs.content
	      .on('swipe', swipeHandler)
	      .on('tap', selector('left'), handlerPrev)
	      .on('tap', selector('right'), handlerNext)
	      .on('tap', selector('close'), handlerHide)
	      .on('tap', selector('image, caption'), handlerNext);
	    $refs.container
	      .on('tap', selector('view, strip'), handlerHide)
	      // Prevent images from being dragged around.
	      .on('dragstart', selector('img'), preventDefault);
	    $refs.lightbox
	      .on('keydown', keyHandler)
	      // IE loses focus to inner nodes without letting us know.
	      .on('focusin', focusThis);

	    // The `tabindex` attribute is needed to enable non-input elements
	    // to receive keyboard events.
	    $('body').append($refs.lightbox.prop('tabIndex', 0));

	    return lightbox;
	  };

	  /**
	   * Dispose of DOM nodes created by the lightbox.
	   */
	  lightbox.destroy = function () {
	    if (!$refs) {
	      return;
	    }

	    // Event handlers are also removed.
	    removeClass($refs.html, 'noscroll');
	    $refs.lightbox.remove();
	    $refs = undefined;
	  };

	  /**
	   * Show a specific item.
	   */
	  lightbox.show = function (index) {
	    // Bail if we are already showing this item.
	    if (index === currentIndex) {
	      return;
	    }

	    var item = items[index];
	    if (!item) { return lightbox.hide(); }

	    var previousIndex = currentIndex;
	    currentIndex = index;
	    spinner.show();

	    // For videos, load an empty SVG with the video dimensions to preserve
	    // the video’s aspect ratio while being responsive.
	    var url = item.html && svgDataUri(item.width, item.height) || item.url;
	    loadImage(url, function ($image) {
	      // Make sure this is the last item requested to be shown since
	      // images can finish loading in a different order than they were
	      // requested in.
	      if (index !== currentIndex) {
	        return;
	      }

	      var $figure = dom('figure', 'figure').append(addClass($image, 'image'));
	      var $frame = dom('frame').append($figure);
	      var $newView = dom('view').append($frame);
	      var $html, isIframe;

	      if (item.html) {
	        $html = $(item.html);
	        isIframe = $html.is('iframe');

	        if (isIframe) {
	          $html.on('load', transitionToNewView);
	        }

	        $figure.append(addClass($html, 'embed'));
	      }

	      if (item.caption) {
	        $figure.append(dom('caption', 'figcaption').text(item.caption));
	      }

	      $refs.spinner.before($newView);

	      if (!isIframe) {
	        transitionToNewView();
	      }

	      function transitionToNewView() {
	        spinner.hide();

	        if (index !== currentIndex) {
	          $newView.remove();
	          return;
	        }


	        toggleClass($refs.arrowLeft, 'inactive', index <= 0);
	        toggleClass($refs.arrowRight, 'inactive', index >= items.length - 1);

	        if ($refs.view) {
	          tram($refs.view)
	            .add('opacity .3s')
	            .start({opacity: 0})
	            .then(remover($refs.view));

	          tram($newView)
	            .add('opacity .3s')
	            .add('transform .3s')
	            .set({x: index > previousIndex ? '80px' : '-80px'})
	            .start({opacity: 1, x: 0});
	        } else {
	          $newView.css('opacity', 1);
	        }

	        $refs.view = $newView;

	        if ($refs.items) {
	          // Mark proper thumbnail as active
	          addClass(removeClass($refs.items, 'active').eq(index), 'active');
	        }
	      }
	    });

	    return lightbox;
	  };

	  /**
	   * Hides the lightbox.
	   */
	  lightbox.hide = function () {
	    tram($refs.lightbox)
	      .add('opacity .3s')
	      .start({opacity: 0})
	      .then(hideLightbox);

	    return lightbox;
	  };

	  lightbox.prev = function () {
	    if (currentIndex > 0) {
	      lightbox.show(currentIndex - 1);
	    }
	  };

	  lightbox.next = function () {
	    if (currentIndex < items.length - 1) {
	      lightbox.show(currentIndex + 1);
	    }
	  };

	  function createHandler(action) {
	    return function (event) {
	      // We only care about events triggered directly on the bound selectors.
	      if (this !== event.target) {
	        return;
	      }

	      event.stopPropagation();
	      event.preventDefault();

	      action();
	    };
	  }

	  var handlerPrev = createHandler(lightbox.prev);
	  var handlerNext = createHandler(lightbox.next);
	  var handlerHide = createHandler(lightbox.hide);

	  var itemTapHandler = function(event) {
	    var index = $(this).index();

	    event.preventDefault();
	    lightbox.show(index);
	  };

	  var swipeHandler = function (event, data) {
	    // Prevent scrolling.
	    event.preventDefault();

	    if (data.direction === 'left') {
	      lightbox.next();
	    } else if (data.direction === 'right') {
	      lightbox.prev();
	    }
	  };

	  var focusThis = function () {
	    this.focus();
	  };

	  function preventDefault(event) {
	    event.preventDefault();
	  }

	  function keyHandler(event) {
	    var keyCode = event.keyCode;

	    // [esc]
	    if (keyCode === 27) {
	      lightbox.hide();
	    }

	    // [◀]
	    else if (keyCode === 37) {
	      lightbox.prev();
	    }

	    // [▶]
	    else if (keyCode === 39) {
	      lightbox.next();
	    }
	  }

	  function hideLightbox() {
	    // If the lightbox hasn't been destroyed already
	    if ($refs) {
	      removeClass($refs.html, 'noscroll');
	      addClass($refs.lightbox, 'hide');
	      $refs.strip.empty();
	      $refs.view && $refs.view.remove();

	      // Reset some stuff
	      removeClass($refs.content, 'group');
	      addClass($refs.arrowLeft, 'inactive');
	      addClass($refs.arrowRight, 'inactive');

	      currentIndex = $refs.view = undefined;
	    }
	  }

	  function loadImage(url, callback) {
	    var $image = dom('img', 'img');

	    $image.one('load', function () {
	      callback($image);
	    });

	    // Start loading image.
	    $image.attr('src', url);

	    return $image;
	  }

	  function remover($element) {
	    return function () {
	      $element.remove();
	    };
	  }

	  /**
	   * Spinner
	   */
	  function Spinner($spinner, className, delay) {
	    this.$element = $spinner;
	    this.className = className;
	    this.delay = delay || 200;
	    this.hide();
	  }

	  Spinner.prototype.show = function () {
	    var spinner = this;

	    // Bail if we are already showing the spinner.
	    if (spinner.timeoutId) {
	      return;
	    }

	    spinner.timeoutId = setTimeout(function () {
	      spinner.$element.removeClass(spinner.className);
	      delete spinner.timeoutId;
	    }, spinner.delay);
	  };

	  Spinner.prototype.hide = function () {
	    var spinner = this;
	    if (spinner.timeoutId) {
	      clearTimeout(spinner.timeoutId);
	      delete spinner.timeoutId;
	      return;
	    }

	    spinner.$element.addClass(spinner.className);
	  };

	  function prefixed(string, isSelector) {
	    return string.replace(prefixRegex, (isSelector ? ' .' : ' ') + prefix);
	  }

	  function selector(string) {
	    return prefixed(string, true);
	  }

	  /**
	   * jQuery.addClass with auto-prefixing
	   * @param  {jQuery} Element to add class to
	   * @param  {string} Class name that will be prefixed and added to element
	   * @return {jQuery}
	   */
	  function addClass($element, className) {
	    return $element.addClass(prefixed(className));
	  }

	  /**
	   * jQuery.removeClass with auto-prefixing
	   * @param  {jQuery} Element to remove class from
	   * @param  {string} Class name that will be prefixed and removed from element
	   * @return {jQuery}
	   */
	  function removeClass($element, className) {
	    return $element.removeClass(prefixed(className));
	  }

	  /**
	   * jQuery.toggleClass with auto-prefixing
	   * @param  {jQuery}  Element where class will be toggled
	   * @param  {string}  Class name that will be prefixed and toggled
	   * @param  {boolean} Optional boolean that determines if class will be added or removed
	   * @return {jQuery}
	   */
	  function toggleClass($element, className, shouldAdd) {
	    return $element.toggleClass(prefixed(className), shouldAdd);
	  }

	  /**
	   * Create a new DOM element wrapped in a jQuery object,
	   * decorated with our custom methods.
	   * @param  {string} className
	   * @param  {string} [tag]
	   * @return {jQuery}
	   */
	  function dom(className, tag) {
	    return addClass($(document.createElement(tag || 'div')), className);
	  }

	  function isObject(value) {
	    return typeof value === 'object' && value != null && !isArray(value);
	  }

	  function svgDataUri(width, height) {
	    var svg = '<svg xmlns="http://www.w3.org/2000/svg" width="' + width + '" height="' + height + '"/>';
	    return 'data:image/svg+xml;charset=utf-8,' + encodeURI(svg);
	  }

	  // Compute some dimensions manually for iOS < 8, because of buggy support for VH.
	  // Also, Android built-in browser does not support viewport units.
	  (function () {
	    var ua = window.navigator.userAgent;
	    var iOSRegex = /(iPhone|iPad|iPod);[^OS]*OS (\d)/;
	    var iOSMatches = ua.match(iOSRegex);
	    var android = ua.indexOf('Android ') > -1 && ua.indexOf('Chrome') === -1;

	    if (!android && (!iOSMatches || iOSMatches[2] > 7)) {
	      return;
	    }

	    var styleNode = document.createElement('style');
	    document.head.appendChild(styleNode);
	    window.addEventListener('orientationchange', refresh, true);

	    function refresh() {
	      var vh = window.innerHeight;
	      var vw = window.innerWidth;
	      var content =
	        '.w-lightbox-content, .w-lightbox-view, .w-lightbox-view:before {' +
	          'height:' + vh + 'px' +
	        '}' +
	        '.w-lightbox-view {' +
	          'width:' + vw + 'px' +
	        '}' +
	        '.w-lightbox-group, .w-lightbox-group .w-lightbox-view, .w-lightbox-group .w-lightbox-view:before {' +
	          'height:' + (0.86 * vh) + 'px' +
	        '}' +
	        '.w-lightbox-image {' +
	          'max-width:' + vw + 'px;' +
	          'max-height:' + vh + 'px' +
	        '}' +
	        '.w-lightbox-group .w-lightbox-image {' +
	          'max-height:' + (0.86 * vh) + 'px' +
	        '}' +
	        '.w-lightbox-strip {' +
	          'padding: 0 ' + (0.01 * vh) + 'px' +
	        '}' +
	        '.w-lightbox-item {' +
	          'width:' + (0.1 * vh) + 'px;' +
	          'padding:' + (0.02 * vh) + 'px ' + (0.01 * vh) + 'px' +
	        '}' +
	        '.w-lightbox-thumbnail {' +
	          'height:' + (0.1 * vh) + 'px' +
	        '}' +
	        '@media (min-width: 768px) {' +
	          '.w-lightbox-content, .w-lightbox-view, .w-lightbox-view:before {' +
	            'height:' + (0.96 * vh) + 'px' +
	          '}' +
	          '.w-lightbox-content {' +
	            'margin-top:' + (0.02 * vh) + 'px' +
	          '}' +
	          '.w-lightbox-group, .w-lightbox-group .w-lightbox-view, .w-lightbox-group .w-lightbox-view:before {' +
	            'height:' + (0.84 * vh) + 'px' +
	          '}' +
	          '.w-lightbox-image {' +
	            'max-width:' + (0.96 * vw) + 'px;' +
	            'max-height:' + (0.96 * vh) + 'px' +
	          '}' +
	          '.w-lightbox-group .w-lightbox-image {' +
	            'max-width:' + (0.823 * vw) + 'px;' +
	            'max-height:' + (0.84 * vh) + 'px' +
	          '}' +
	        '}';

	      styleNode.textContent = content;
	    }

	    refresh();
	  })();

	  return lightbox;
	}

	Webflow.define('lightbox', module.exports = function($, _) {
	  var api = {};
	  var lightbox = createLightbox(window, document, $);
	  var $doc = $(document);
	  var $body;
	  var $lightboxes;
	  var designer;
	  var inApp = Webflow.env();
	  var namespace = '.w-lightbox';
	  var groups;

	  // -----------------------------------
	  // Module methods

	  api.ready = api.design = api.preview = init;

	  // -----------------------------------
	  // Private methods

	  function init() {
	    designer = inApp && Webflow.env('design');
	    $body = $(document.body);

	    // Reset Lightbox
	    lightbox.destroy();

	    // Reset groups
	    groups = {};

	    // Find all instances on the page
	    $lightboxes = $doc.find(namespace);

	    // Instantiate all lighboxes
	    $lightboxes.webflowLightBox();
	  }

	  jQuery.fn.extend({
	    webflowLightBox: function() {
	      var $el = this;
	      $.each($el, function(i, el) {
	        // Store state in data
	        var data = $.data(el, namespace);
	        if (!data) {
	          data = $.data(el, namespace, {
	            el: $(el),
	            mode: 'images',
	            images: [],
	            embed: ''
	          });
	        }

	        // Remove old events
	        data.el.off(namespace);

	        // Set config from json script tag
	        configure(data);

	        // Add events based on mode
	        if (designer) {
	          data.el.on('setting' + namespace, configure.bind(null, data));
	        } else {
	          data.el
	            .on('tap' + namespace, tapHandler(data))
	            // Prevent page scrolling to top when clicking on lightbox triggers.
	            .on('click' + namespace, function (e) { e.preventDefault(); });
	        }
	      });
	    }
	  });

	  function configure(data) {
	    var json = data.el.children('.w-json').html();
	    var groupName, groupItems;

	    if (!json) {
	      data.items = [];
	      return;
	    }

	    try {
	      json = JSON.parse(json);
	    } catch(e) {
	      console.error('Malformed lightbox JSON configuration.', e);
	    }

	    supportOldLightboxJson(json);

	    groupName = json.group;

	    if (groupName) {
	      groupItems = groups[groupName];
	      if (!groupItems) {
	        groupItems = groups[groupName] = [];
	      }

	      data.items = groupItems;

	      if (json.items.length) {
	        data.index = groupItems.length;
	        groupItems.push.apply(groupItems, json.items);
	      }
	    } else {
	      data.items = json.items;
	    }
	  }

	  function tapHandler(data) {
	    return function () {
	      data.items.length && lightbox(data.items, data.index || 0);
	    };
	  }

	  function supportOldLightboxJson(data) {
	    if (data.images) {
	      data.images.forEach(function (item) {
	        item.type = 'image';
	      });
	      data.items = data.images;
	    }

	    if (data.embed) {
	      data.embed.type = 'video';
	      data.items = [data.embed];
	    }

	    if (data.groupId) {
	      data.group = data.groupId;
	    }
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 14 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Auto-select links to current page or section
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('links', module.exports = function($, _) {
	  var api = {};
	  var $win = $(window);
	  var designer;
	  var inApp = Webflow.env();
	  var location = window.location;
	  var tempLink = document.createElement('a');
	  var linkCurrent = 'w--current';
	  var validHash = /^#[a-zA-Z][\w:.-]*$/;
	  var indexPage = /index\.(html|php)$/;
	  var dirList = /\/$/;
	  var anchors;
	  var slug;

	  // -----------------------------------
	  // Module methods

	  api.ready = api.design = api.preview = init;

	  // -----------------------------------
	  // Private methods

	  function init() {
	    designer = inApp && Webflow.env('design');
	    slug = Webflow.env('slug') || location.pathname || '';

	    // Reset scroll listener, init anchors
	    Webflow.scroll.off(scroll);
	    anchors = [];

	    // Test all links for a selectable href
	    var links = document.links;
	    for (var i = 0; i < links.length; ++i) {
	      select(links[i]);
	    }

	    // Listen for scroll if any anchors exist
	    if (anchors.length) {
	      Webflow.scroll.on(scroll);
	      scroll();
	    }
	  }

	  function select(link) {
	    var href = (designer && link.getAttribute('href-disabled')) || link.getAttribute('href');
	    tempLink.href = href;

	    // Ignore any hrefs with a colon to safely avoid all uri schemes
	    if (href.indexOf(':') >= 0) return;

	    var $link = $(link);

	    // Check for valid hash links w/ sections and use scroll anchor
	    if (href.indexOf('#') === 0 && validHash.test(href)) {
	      var $section = $(href);
	      $section.length && anchors.push({ link: $link, sec: $section, active: false });
	      return;
	    }

	    // Ignore empty # links
	    if (href === '#') return;

	    // Determine whether the link should be selected
	    var match = (tempLink.href === location.href) || (href === slug) || (indexPage.test(href) && dirList.test(slug));
	    setClass($link, linkCurrent, match);
	  }

	  function scroll() {
	    var viewTop = $win.scrollTop();
	    var viewHeight = $win.height();

	    // Check each anchor for a section in view
	    _.each(anchors, function(anchor) {
	      var $link = anchor.link;
	      var $section = anchor.sec;
	      var top = $section.offset().top;
	      var height = $section.outerHeight();
	      var offset = viewHeight * 0.5;
	      var active = ($section.is(':visible') &&
	        top + height - offset >= viewTop &&
	        top + offset <= viewTop + viewHeight);
	      if (anchor.active === active) return;
	      anchor.active = active;
	      setClass($link, linkCurrent, active);
	      if (designer) $link[0].__wf_current = active;
	    });
	  }

	  function setClass($elem, className, add) {
	    var exists = $elem.hasClass(className);
	    if (add && exists) return;
	    if (!add && !exists) return;
	    add ? $elem.addClass(className) : $elem.removeClass(className);
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 15 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Maps widget
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('maps', module.exports = function($, _) {
	  var api = {};
	  var $doc = $(document);
	  var google = null;
	  var $maps;
	  var namespace = '.w-widget-map';
	  var apiKey = 'AIzaSyAQAPPT-XAl4U-7dZ4A6y1yGmf05nfQJFQ';

	  // -----------------------------------
	  // Module methods

	  api.ready = function() {
	    // Init Maps on the front-end
	    if (!Webflow.env()) initMaps();
	  };

	  api.preview = function() {
	    // Update active map nodes
	    $maps = $doc.find(namespace);
	    // Listen for resize events
	    Webflow.resize.off(triggerRedraw);
	    if ($maps.length) {
	      Webflow.resize.on(triggerRedraw);
	      triggerRedraw();
	    }
	  };

	  api.design = function(evt) {
	    // Update active map nodes
	    $maps = $doc.find(namespace);
	    // Stop listening for resize events
	    Webflow.resize.off(triggerRedraw);
	    // Redraw to account for page changes
	    $maps.length && _.defer(triggerRedraw);
	  };

	  api.destroy = removeListeners;

	  // -----------------------------------
	  // Private methods

	  // Trigger redraw in designer or preview mode
	  function triggerRedraw() {
	    if ($maps.length && Webflow.app) {
	      $maps.each(Webflow.app.redrawElement);
	    }
	  }

	  function initMaps() {
	    $maps = $doc.find(namespace);
	    if (!$maps.length) return;

	    if (google === null) {
	      $.getScript('https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=_wf_maps_loaded&key=' + apiKey);
	      window._wf_maps_loaded = mapsLoaded;
	    } else {
	      mapsLoaded();
	    }

	    function mapsLoaded() {
	      window._wf_maps_loaded = function() {};
	      google = window.google;
	      $maps.each(renderMap);
	      removeListeners();
	      addListeners();
	    }
	  }

	  function removeListeners() {
	    Webflow.resize.off(resizeMaps);
	    Webflow.redraw.off(resizeMaps);
	  }

	  function addListeners() {
	    Webflow.resize.on(resizeMaps);
	    Webflow.redraw.on(resizeMaps);
	  }

	  // Render map onto each element
	  function renderMap(i, el) {
	    var data = $(el).data();
	    getState(el, data);
	  }

	  function resizeMaps() {
	    $maps.each(resizeMap);
	  }

	  // Resize map when window changes
	  function resizeMap(i, el) {
	    var state = getState(el);
	    google.maps.event.trigger(state.map, 'resize');
	    state.setMapPosition();
	  }

	  // Store state on element data
	  var store = 'w-widget-map';
	  function getState(el, data) {

	    var state = $.data(el, store);
	    if (state) return state;

	    var $el = $(el);
	    state = $.data(el, store, {
	      // Default options
	      latLng: '51.511214,-0.119824',
	      tooltip: '',
	      style: 'roadmap',
	      zoom: 12,

	      // Marker
	      marker: new google.maps.Marker({
	        draggable: false
	      }),

	      // Tooltip infowindow
	      infowindow: new google.maps.InfoWindow({
	        disableAutoPan: true
	      })
	    });

	    // LatLng center point
	    var latLng = data.widgetLatlng || state.latLng;
	    state.latLng = latLng;
	    var coords = latLng.split(',').reverse(); // ND - coords are being stored in reverse order
	    var latLngObj = new google.maps.LatLng(coords[0], coords[1]);
	    state.latLngObj = latLngObj;

	    // Disable touch events
	    var mapDraggable = (Webflow.env.touch && data.disableTouch) ? false : true;

	    // Map instance
	    state.map = new google.maps.Map(el, {
	      center: state.latLngObj,
	      zoom: state.zoom,
	      maxZoom: 18,
	      mapTypeControl: false,
	      panControl: false,
	      streetViewControl: false,
	      scrollwheel: !data.disableScroll,
	      draggable: mapDraggable,
	      zoomControl: true,
	      zoomControlOptions: {
	        style: google.maps.ZoomControlStyle.SMALL
	      },
	      mapTypeId: state.style
	    });
	    state.marker.setMap(state.map);

	    // Set map position and offset
	    state.setMapPosition = function() {
	      state.map.setCenter(state.latLngObj);
	      var offsetX = 0;
	      var offsetY = 0;
	      var padding = $el.css(['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft']);
	      offsetX -= parseInt(padding.paddingLeft, 10);
	      offsetX += parseInt(padding.paddingRight, 10);
	      offsetY -= parseInt(padding.paddingTop, 10);
	      offsetY += parseInt(padding.paddingBottom, 10);
	      if (offsetX || offsetY) {
	        state.map.panBy(offsetX, offsetY);
	      }
	      $el.css('position', ''); // Remove injected position
	    };

	    // Fix position after first tiles have loaded
	    google.maps.event.addListener(state.map, 'tilesloaded', function() {
	      google.maps.event.clearListeners(state.map, 'tilesloaded');
	      state.setMapPosition();
	    });

	    // Set initial position
	    state.setMapPosition();
	    state.marker.setPosition(state.latLngObj);
	    state.infowindow.setPosition(state.latLngObj);

	    // Draw tooltip
	    var tooltip = data.widgetTooltip;
	    if (tooltip) {
	      state.tooltip = tooltip;
	      state.infowindow.setContent(tooltip);
	      if (!state.infowindowOpen) {
	        state.infowindow.open(state.map, state.marker);
	        state.infowindowOpen = true;
	      }
	    }

	    // Map style - options.style
	    var style = data.widgetStyle;
	    if (style) {
	      state.map.setMapTypeId(style);
	    }

	    // Zoom - options.zoom
	    var zoom = data.widgetZoom;
	    if (zoom != null) {
	      state.zoom = zoom;
	      state.map.setZoom(+zoom);
	    }

	    // Click marker to open in google maps
	    google.maps.event.addListener(state.marker, 'click', function() {
	      window.open('https://maps.google.com/?z=' + state.zoom + '&daddr=' + state.latLng);
	    });

	    return state;
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 16 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Navbar component
	 */

	var Webflow = __webpack_require__(1);
	var IXEvents = __webpack_require__(2);

	Webflow.define('navbar', module.exports = function($, _) {
	  var api = {};
	  var tram = $.tram;
	  var $win = $(window);
	  var $doc = $(document);
	  var $body;
	  var $navbars;
	  var designer;
	  var inApp = Webflow.env();
	  var overlay = '<div class="w-nav-overlay" data-wf-ignore />';
	  var namespace = '.w-nav';
	  var buttonOpen = 'w--open';
	  var menuOpen = 'w--nav-menu-open';
	  var linkOpen = 'w--nav-link-open';
	  var ix = IXEvents.triggers;
	  var menuSibling = $();

	  // -----------------------------------
	  // Module methods

	  api.ready = api.design = api.preview = init;

	  api.destroy = function() {
	    menuSibling = $();
	    removeListeners();
	    if ($navbars && $navbars.length) {
	      $navbars.each(teardown);
	    }
	  };

	  // -----------------------------------
	  // Private methods

	  function init() {
	    designer = inApp && Webflow.env('design');
	    $body = $(document.body);

	    // Find all instances on the page
	    $navbars = $doc.find(namespace);
	    if (!$navbars.length) return;
	    $navbars.each(build);

	    // Wire events
	    removeListeners();
	    addListeners();
	  }

	  function removeListeners() {
	    Webflow.resize.off(resizeAll);
	  }

	  function addListeners() {
	    Webflow.resize.on(resizeAll);
	  }

	  function resizeAll() {
	    $navbars.each(resize);
	  }

	  function build(i, el) {
	    var $el = $(el);

	    // Store state in data
	    var data = $.data(el, namespace);
	    if (!data) data = $.data(el, namespace, { open: false, el: $el, config: {} });
	    data.menu = $el.find('.w-nav-menu');
	    data.links = data.menu.find('.w-nav-link');
	    data.dropdowns = data.menu.find('.w-dropdown');
	    data.button = $el.find('.w-nav-button');
	    data.container = $el.find('.w-container');
	    data.outside = outside(data);

	    // Remove old events
	    data.el.off(namespace);
	    data.button.off(namespace);
	    data.menu.off(namespace);

	    // Set config from data attributes
	    configure(data);

	    // Add events based on mode
	    if (designer) {
	      removeOverlay(data);
	      data.el.on('setting' + namespace, handler(data));
	    } else {
	      addOverlay(data);
	      data.button.on('tap' + namespace, toggle(data));
	      data.menu.on('click' + namespace, 'a', navigate(data));
	    }

	    // Trigger initial resize
	    resize(i, el);
	  }

	  function teardown(i, el) {
	    var data = $.data(el, namespace);
	    if (data) {
	      removeOverlay(data);
	      $.removeData(el, namespace);
	    }
	  }

	  function removeOverlay(data) {
	    if (!data.overlay) return;
	    close(data, true);
	    data.overlay.remove();
	    data.overlay = null;
	  }

	  function addOverlay(data) {
	    if (data.overlay) return;
	    data.overlay = $(overlay).appendTo(data.el);
	    data.parent = data.menu.parent();
	    close(data, true);
	  }

	  function configure(data) {
	    var config = {};
	    var old = data.config || {};

	    // Set config options from data attributes
	    var animation = config.animation = data.el.attr('data-animation') || 'default';
	    config.animOver = /^over/.test(animation);
	    config.animDirect = /left$/.test(animation) ? -1 : 1;

	    // Re-open menu if the animation type changed
	    if (old.animation !== animation) {
	      data.open && _.defer(reopen, data);
	    }

	    config.easing = data.el.attr('data-easing') || 'ease';
	    config.easing2 = data.el.attr('data-easing2') || 'ease';

	    var duration = data.el.attr('data-duration');
	    config.duration = duration != null ? Number(duration) : 400;

	    config.docHeight = data.el.attr('data-doc-height');

	    // Store config in data
	    data.config = config;
	  }

	  function handler(data) {
	    return function(evt, options) {
	      options = options || {};
	      var winWidth = $win.width();
	      configure(data);
	      options.open === true && open(data, true);
	      options.open === false && close(data, true);
	      // Reopen if media query changed after setting
	      data.open && _.defer(function() {
	        if (winWidth !== $win.width()) reopen(data);
	      });
	    };
	  }

	  function reopen(data) {
	    if (!data.open) return;
	    close(data, true);
	    open(data, true);
	  }

	  function toggle(data) {
	    // Debounce toggle to wait for accurate open state
	    return _.debounce(function() {
	      data.open ? close(data) : open(data);
	    });
	  }

	  function navigate(data) {
	    return function(evt) {
	      var link = $(this);
	      var href = link.attr('href');

	      // Avoid late clicks on touch devices
	      if (!Webflow.validClick(evt.currentTarget)) {
	        evt.preventDefault();
	        return;
	      }

	      // Close when navigating to an in-page anchor
	      if (href && href.indexOf('#') === 0 && data.open) {
	        close(data);
	      }
	    };
	  }

	  function outside(data) {
	    // Unbind previous tap handler if it exists
	    if (data.outside) $doc.off('tap' + namespace, data.outside);

	    // Close menu when tapped outside, debounced to wait for state
	    return _.debounce(function(evt) {
	      if (!data.open) return;
	      var menu = $(evt.target).closest('.w-nav-menu');
	      if (!data.menu.is(menu)) {
	        close(data);
	      }
	    });
	  }

	  function resize(i, el) {
	    var data = $.data(el, namespace);
	    // Check for collapsed state based on button display
	    var collapsed = data.collapsed = data.button.css('display') !== 'none';
	    // Close menu if button is no longer visible (and not in designer)
	    if (data.open && !collapsed && !designer) close(data, true);
	    // Set max-width of links + dropdowns to match container
	    if (data.container.length) {
	      var updateEachMax = updateMax(data);
	      data.links.each(updateEachMax);
	      data.dropdowns.each(updateEachMax);
	    }
	    // If currently open, update height to match body
	    if (data.open) {
	      setOverlayHeight(data);
	    }
	  }

	  var maxWidth = 'max-width';
	  function updateMax(data) {
	    // Set max-width of each element to match container
	    var containMax = data.container.css(maxWidth);
	    if (containMax === 'none') containMax = '';
	    return function(i, link) {
	      link = $(link);
	      link.css(maxWidth, '');
	      // Don't set the max-width if an upstream value exists
	      if (link.css(maxWidth) === 'none') link.css(maxWidth, containMax);
	    };
	  }

	  function open(data, immediate) {
	    if (data.open) return;
	    data.open = true;
	    data.menu.addClass(menuOpen);
	    data.links.addClass(linkOpen);
	    data.button.addClass(buttonOpen);
	    var config = data.config;
	    var animation = config.animation;
	    if (animation === 'none' || !tram.support.transform) immediate = true;
	    var bodyHeight = setOverlayHeight(data);
	    var menuHeight = data.menu.outerHeight(true);
	    var menuWidth = data.menu.outerWidth(true);
	    var navHeight = data.el.height();
	    var navbarEl = data.el[0];
	    resize(0, navbarEl);
	    ix.intro(0, navbarEl);
	    Webflow.redraw.up();

	    // Listen for tap outside events
	    if (!designer) $doc.on('tap' + namespace, data.outside);

	    // No transition for immediate
	    if (immediate) return;

	    var transConfig = 'transform ' + config.duration + 'ms ' + config.easing;

	    // Add menu to overlay
	    if (data.overlay) {
	      menuSibling = data.menu.prev();
	      data.overlay.show().append(data.menu);
	    }

	    // Over left/right
	    if (config.animOver) {
	      tram(data.menu)
	      .add(transConfig)
	      .set({ x: config.animDirect * menuWidth, height: bodyHeight }).start({ x: 0 });
	      data.overlay && data.overlay.width(menuWidth);
	      return;
	    }

	    // Drop Down
	    var offsetY = navHeight + menuHeight;
	    tram(data.menu)
	      .add(transConfig)
	      .set({ y: -offsetY }).start({ y: 0 });
	  }

	  function setOverlayHeight(data) {
	    var config = data.config;
	    var bodyHeight = config.docHeight ? $doc.height() : $body.height();
	    if (config.animOver) {
	      data.menu.height(bodyHeight);
	    } else if (data.el.css('position') !== 'fixed') {
	      bodyHeight -= data.el.height();
	    }
	    data.overlay && data.overlay.height(bodyHeight);
	    return bodyHeight;
	  }

	  function close(data, immediate) {
	    if (!data.open) return;
	    data.open = false;
	    data.button.removeClass(buttonOpen);
	    var config = data.config;
	    if (config.animation === 'none' || !tram.support.transform) immediate = true;
	    ix.outro(0, data.el[0]);

	    // Stop listening for tap outside events
	    $doc.off('tap' + namespace, data.outside);

	    if (immediate) {
	      tram(data.menu).stop();
	      complete();
	      return;
	    }

	    var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2;
	    var menuHeight = data.menu.outerHeight(true);
	    var menuWidth = data.menu.outerWidth(true);
	    var navHeight = data.el.height();

	    // Over left/right
	    if (config.animOver) {
	      tram(data.menu)
	        .add(transConfig)
	        .start({ x: menuWidth * config.animDirect }).then(complete);
	      return;
	    }

	    // Drop Down
	    var offsetY = navHeight + menuHeight;
	    tram(data.menu)
	      .add(transConfig)
	      .start({ y: -offsetY }).then(complete);

	    function complete() {
	      data.menu.height('');
	      tram(data.menu).set({ x: 0, y: 0 });
	      data.menu.removeClass(menuOpen);
	      data.links.removeClass(linkOpen);
	      if (data.overlay && data.overlay.children().length) {
	        // Move menu back to parent at the original location
	        menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent);
	        data.overlay.attr('style', '').hide();
	      }

	      // Trigger event so other components can hook in (dropdown)
	      data.el.triggerHandler('w-close');
	    }
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 17 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Smooth scroll
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('scroll', module.exports = function($, _) {
	  var $doc = $(document);
	  var win = window;
	  var loc = win.location;
	  var history = inIframe() ? null : win.history;
	  var validHash = /^[a-zA-Z0-9][\w:.-]*$/;

	  function inIframe() {
	    try {
	      return !!win.frameElement;
	    } catch (e) {
	      return true;
	    }
	  }

	  function ready() {
	    // If hash is already present on page load, scroll to it right away
	    if (loc.hash) {
	      findEl(loc.hash.substring(1));
	    }

	    // The current page url without the hash part.
	    var locHref = loc.href.split('#')[0];

	    // When clicking on a link, check if it links to another part of the page
	    $doc.on('click', 'a', function(e) {
	      if (Webflow.env('design')) {
	        return;
	      }

	      // Ignore links being used by jQuery mobile
	      if (window.$.mobile && $(e.currentTarget).hasClass('ui-link')) return;

	      // Ignore empty # links
	      if (this.getAttribute('href') === '#') {
	        e.preventDefault();
	        return;
	      }

	      // The href property always contains the full url so we can compare
	      // with the document’s location to only target links on this page.
	      var parts = this.href.split('#');
	      var hash = parts[0] === locHref ? parts[1] : null;
	      if (hash) {
	        findEl(hash, e);
	      }
	    });
	  }

	  function findEl(hash, e) {
	    if (!validHash.test(hash)) return;

	    var el = $('#' + hash);
	    if (!el.length) {
	      return;
	    }

	    if (e) {
	      e.preventDefault();
	      e.stopPropagation();
	    }

	    // Push new history state
	    if (
	      loc.hash !== hash &&
	      history && history.pushState &&
	      // Navigation breaks Chrome when the protocol is `file:`.
	      !(Webflow.env.chrome && loc.protocol === 'file:')
	    ) {
	      var oldHash = history.state && history.state.hash;
	      if (oldHash !== hash) {
	        history.pushState({ hash: hash }, '', '#' + hash);
	      }
	    }

	    // If a fixed header exists, offset for the height
	    var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body';
	    var header = $('header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])');
	    var offset = header.css('position') === 'fixed' ? header.outerHeight() : 0;

	    win.setTimeout(function() {
	      scroll(el, offset);
	    }, e ? 0 : 300);
	  }

	  function scroll(el, offset){
	    var start = $(win).scrollTop();
	    var end = el.offset().top - offset;

	    // If specified, scroll so that the element ends up in the middle of the viewport
	    if (el.data('scroll') === 'mid') {
	      var available = $(win).height() - offset;
	      var elHeight = el.outerHeight();
	      if (elHeight < available) {
	        end -= Math.round((available - elHeight) / 2);
	      }
	    }

	    var mult = 1;

	    // Check for custom time multiplier on the body and the element
	    $('body').add(el).each(function(i) {
	      var time = parseFloat($(this).attr('data-scroll-time'), 10);
	      if (!isNaN(time) && (time === 0 || time > 0)) {
	        mult = time;
	      }
	    });

	    // Shim for IE8 and below
	    if (!Date.now) {
	      Date.now = function() { return new Date().getTime(); };
	    }

	    var clock = Date.now();
	    var animate = win.requestAnimationFrame || win.mozRequestAnimationFrame || win.webkitRequestAnimationFrame || function(fn) { win.setTimeout(fn, 15); };
	    var duration = (472.143 * Math.log(Math.abs(start - end) +125) - 2000) * mult;

	    var step = function() {
	      var elapsed = Date.now() - clock;
	      win.scroll(0, getY(start, end, elapsed, duration));

	      if (elapsed <= duration) {
	        animate(step);
	      }
	    };

	    step();
	  }

	  function getY(start, end, elapsed, duration) {
	    if (elapsed > duration) {
	      return end;
	    }

	    return start + (end - start) * ease(elapsed / duration);
	  }

	  function ease(t) {
	    return t<0.5 ? 4 * t * t * t : (t-1) * (2 * t-2) * (2 * t-2)+1;
	  }

	  // Export module
	  return { ready: ready };
	});


/***/ },
/* 18 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Slider component
	 */

	var Webflow = __webpack_require__(1);
	var IXEvents = __webpack_require__(2);

	Webflow.define('slider', module.exports = function($, _) {
	  var api = {};
	  var tram = $.tram;
	  var $doc = $(document);
	  var $sliders;
	  var designer;
	  var inApp = Webflow.env();
	  var namespace = '.w-slider';
	  var dot = '<div class="w-slider-dot" data-wf-ignore />';
	  var ix = IXEvents.triggers;
	  var fallback;
	  var inRedraw;

	  // -----------------------------------
	  // Module methods

	  api.ready = function() {
	    init();
	  };

	  api.design = function() {
	    designer = true;
	    init();
	  };

	  api.preview = function() {
	    designer = false;
	    init();
	  };

	  api.redraw = function() {
	    inRedraw = true;
	    init();
	  };

	  api.destroy = removeListeners;

	  // -----------------------------------
	  // Private methods

	  function init() {
	    // Find all sliders on the page
	    $sliders = $doc.find(namespace);
	    if (!$sliders.length) return;
	    $sliders.filter(':visible').each(build);
	    inRedraw = null;
	    if (fallback) return;

	    removeListeners();
	    addListeners();
	  }

	  function removeListeners() {
	    Webflow.resize.off(renderAll);
	    Webflow.redraw.off(api.redraw);
	  }

	  function addListeners() {
	    Webflow.resize.on(renderAll);
	    Webflow.redraw.on(api.redraw);
	  }

	  function renderAll() {
	    $sliders.filter(':visible').each(render);
	  }

	  function build(i, el) {
	    var $el = $(el);

	    // Store slider state in data
	    var data = $.data(el, namespace);
	    if (!data) {
	      data = $.data(el, namespace, {
	        index: 0,
	        depth: 1,
	        el: $el,
	        config: {}
	      });
	    }
	    data.mask = $el.children('.w-slider-mask');
	    data.left = $el.children('.w-slider-arrow-left');
	    data.right = $el.children('.w-slider-arrow-right');
	    data.nav = $el.children('.w-slider-nav');
	    data.slides = data.mask.children('.w-slide');
	    data.slides.each(ix.reset);
	    if (inRedraw) data.maskWidth = 0;

	    // Disable in old browsers
	    if (!tram.support.transform) {
	      data.left.hide();
	      data.right.hide();
	      data.nav.hide();
	      fallback = true;
	      return;
	    }

	    // Remove old events
	    data.el.off(namespace);
	    data.left.off(namespace);
	    data.right.off(namespace);
	    data.nav.off(namespace);

	    // Set config from data attributes
	    configure(data);

	    // Add events based on mode
	    if (designer) {
	      data.el.on('setting' + namespace, handler(data));
	      stopTimer(data);
	      data.hasTimer = false;
	    } else {
	      data.el.on('swipe' + namespace, handler(data));
	      data.left.on('tap' + namespace, previousFunction(data));
	      data.right.on('tap' + namespace, next(data));

	      // Start timer if autoplay is true, only once
	      if (data.config.autoplay && !data.hasTimer) {
	        data.hasTimer = true;
	        data.timerCount = 1;
	        startTimer(data);
	      }
	    }

	    // Listen to nav events
	    data.nav.on('tap' + namespace, '> div', handler(data));

	    // Remove gaps from formatted html (for inline-blocks)
	    if (!inApp) {
	      data.mask.contents().filter(function() {
	        return this.nodeType === 3;
	      }).remove();
	    }

	    // Run first render
	    render(i, el);
	  }

	  function configure(data) {
	    var config = {};

	    config.crossOver = 0;

	    // Set config options from data attributes
	    config.animation = data.el.attr('data-animation') || 'slide';
	    if (config.animation === 'outin') {
	      config.animation = 'cross';
	      config.crossOver = 0.5;
	    }
	    config.easing = data.el.attr('data-easing') || 'ease';

	    var duration = data.el.attr('data-duration');
	    config.duration = duration != null ? +duration : 500;

	    if (+data.el.attr('data-infinite')) config.infinite = true;
	    if (+data.el.attr('data-disable-swipe')) config.disableSwipe = true;

	    if (+data.el.attr('data-hide-arrows')) {
	      config.hideArrows = true;
	    } else if (data.config.hideArrows) {
	      data.left.show();
	      data.right.show();
	    }

	    if (+data.el.attr('data-autoplay')) {
	      config.autoplay = true;
	      config.delay = +data.el.attr('data-delay') || 2000;
	      config.timerMax = +data.el.attr('data-autoplay-limit');
	      // Disable timer on first touch or mouse down
	      var touchEvents = 'mousedown' + namespace + ' touchstart' + namespace;
	      if (!designer) {
	        data.el.off(touchEvents).one(touchEvents, function() {
	          stopTimer(data);
	        });
	      }
	    }

	    // Use edge buffer to help calculate page count
	    var arrowWidth = data.right.width();
	    config.edge = arrowWidth ? arrowWidth + 40 : 100;

	    // Store config in data
	    data.config = config;
	  }

	  function previousFunction(data) {
	    return function(evt) {
	      change(data, { index: data.index - 1, vector: -1 });
	    };
	  }

	  function next(data) {
	    return function(evt) {
	      change(data, { index: data.index + 1, vector: 1 });
	    };
	  }

	  function select(data, value) {
	    // Select page based on slide element index
	    var found = null;
	    if (value === data.slides.length) {
	      init(); layout(data); // Rebuild and find new slides
	    }
	    _.each(data.anchors, function(anchor, index) {
	      $(anchor.els).each(function(i, el) {
	        if ($(el).index() === value) found = index;
	      });
	    });
	    if (found != null) change(data, { index: found, immediate: true });
	  }

	  function startTimer(data) {
	    stopTimer(data);
	    var config = data.config;
	    var timerMax = config.timerMax;
	    if (timerMax && data.timerCount++ > timerMax) return;
	    data.timerId = window.setTimeout(function() {
	      if (data.timerId == null || designer) return;
	      next(data)();
	      startTimer(data);
	    }, config.delay);
	  }

	  function stopTimer(data) {
	    window.clearTimeout(data.timerId);
	    data.timerId = null;
	  }

	  function handler(data) {
	    return function(evt, options) {
	      options = options || {};
	      var config = data.config;

	      // Designer settings
	      if (designer && evt.type === 'setting') {
	        if (options.select === 'prev') return previousFunction(data)();
	        if (options.select === 'next') return next(data)();
	        configure(data);
	        layout(data);
	        if (options.select == null) return;
	        select(data, options.select);
	        return;
	      }

	      // Swipe event
	      if (evt.type === 'swipe') {
	        if (config.disableSwipe) return;
	        if (Webflow.env('editor')) return;
	        if (options.direction === 'left') return next(data)();
	        if (options.direction === 'right') return previousFunction(data)();
	        return;
	      }

	      // Page buttons
	      if (data.nav.has(evt.target).length) {
	        change(data, { index: $(evt.target).index() });
	      }
	    };
	  }

	  function change(data, options) {
	    options = options || {};
	    var config = data.config;
	    var anchors = data.anchors;

	    // Set new index
	    data.previous = data.index;
	    var index = options.index;
	    var shift = {};
	    if (index < 0) {
	      index = anchors.length - 1;
	      if (config.infinite) {
	        // Shift first slide to the end
	        shift.x = -data.endX;
	        shift.from = 0;
	        shift.to = anchors[0].width;
	      }
	    } else if (index >= anchors.length) {
	      index = 0;
	      if (config.infinite) {
	        // Shift last slide to the start
	        shift.x = anchors[anchors.length - 1].width;
	        shift.from = -anchors[anchors.length - 1].x;
	        shift.to = shift.from - shift.x;
	      }
	    }
	    data.index = index;

	    // Select page nav
	    var active = data.nav.children().eq(data.index).addClass('w-active');
	    data.nav.children().not(active).removeClass('w-active');

	    // Hide arrows
	    if (config.hideArrows) {
	      data.index === anchors.length - 1 ? data.right.hide() : data.right.show();
	      data.index === 0 ? data.left.hide() : data.left.show();
	    }

	    // Get page offset from anchors
	    var lastOffsetX = data.offsetX || 0;
	    var offsetX = data.offsetX = -anchors[data.index].x;
	    var resetConfig = { x: offsetX, opacity: 1, visibility: '' };

	    // Transition slides
	    var targets = $(anchors[data.index].els);
	    var prevTargs = $(anchors[data.previous] && anchors[data.previous].els);
	    var others = data.slides.not(targets);
	    var animation = config.animation;
	    var easing = config.easing;
	    var duration = Math.round(config.duration);
	    var vector = options.vector || (data.index > data.previous ? 1 : -1);
	    var fadeRule = 'opacity ' + duration + 'ms ' + easing;
	    var slideRule = 'transform ' + duration + 'ms ' + easing;

	    // Trigger IX events
	    if (!designer) {
	      targets.each(ix.intro);
	      others.each(ix.outro);
	    }

	    // Set immediately after layout changes (but not during redraw)
	    if (options.immediate && !inRedraw) {
	      tram(targets).set(resetConfig);
	      resetOthers();
	      return;
	    }

	    // Exit early if index is unchanged
	    if (data.index === data.previous) return;

	    // Cross Fade / Out-In
	    if (animation === 'cross') {
	      var reduced = Math.round(duration - duration * config.crossOver);
	      var wait = Math.round(duration - reduced);
	      fadeRule = 'opacity ' + reduced + 'ms ' + easing;
	      tram(prevTargs)
	        .set({ visibility: '' })
	        .add(fadeRule)
	        .start({ opacity: 0 });
	      tram(targets)
	        .set({ visibility: '', x: offsetX, opacity: 0, zIndex: data.depth++ })
	        .add(fadeRule)
	        .wait(wait)
	        .then({ opacity: 1 })
	        .then(resetOthers);
	      return;
	    }

	    // Fade Over
	    if (animation === 'fade') {
	      tram(prevTargs)
	        .set({ visibility: '' })
	        .stop();
	      tram(targets)
	        .set({ visibility: '', x: offsetX, opacity: 0, zIndex: data.depth++ })
	        .add(fadeRule)
	        .start({ opacity: 1 })
	        .then(resetOthers);
	      return;
	    }

	    // Slide Over
	    if (animation === 'over') {
	      resetConfig = { x: data.endX };
	      tram(prevTargs)
	        .set({ visibility: '' })
	        .stop();
	      tram(targets)
	        .set({ visibility: '', zIndex: data.depth++, x: offsetX + anchors[data.index].width * vector })
	        .add(slideRule)
	        .start({ x: offsetX })
	        .then(resetOthers);
	      return;
	    }

	    // Slide - infinite scroll
	    if (config.infinite && shift.x) {
	      tram(data.slides.not(prevTargs))
	        .set({ visibility: '', x: shift.x })
	        .add(slideRule)
	        .start({ x: offsetX });
	      tram(prevTargs)
	        .set({ visibility: '', x: shift.from })
	        .add(slideRule)
	        .start({ x: shift.to });
	      data.shifted = prevTargs;

	    } else {
	      if (config.infinite && data.shifted) {
	        tram(data.shifted).set({ visibility: '', x: lastOffsetX });
	        data.shifted = null;
	      }

	      // Slide - basic scroll
	      tram(data.slides)
	        .set({ visibility: '' })
	        .add(slideRule)
	        .start({ x: offsetX });
	    }

	    // Helper to move others out of view
	    function resetOthers() {
	      targets = $(anchors[data.index].els);
	      others = data.slides.not(targets);
	      if (animation !== 'slide') resetConfig.visibility = 'hidden';
	      tram(others).set(resetConfig);
	    }
	  }

	  function render(i, el) {
	    var data = $.data(el, namespace);
	    if (maskChanged(data)) return layout(data);
	    if (designer && slidesChanged(data)) layout(data);
	  }

	  function layout(data) {
	    // Determine page count from width of slides
	    var pages = 1;
	    var offset = 0;
	    var anchor = 0;
	    var width = 0;
	    var maskWidth = data.maskWidth;
	    var threshold = maskWidth - data.config.edge;
	    if (threshold < 0) threshold = 0;
	    data.anchors = [{ els: [], x: 0, width: 0 }];
	    data.slides.each(function(i, el) {
	      if (anchor - offset > threshold) {
	        pages++;
	        offset += maskWidth;
	        // Store page anchor for transition
	        data.anchors[pages - 1] = { els: [], x: anchor, width: 0 };
	      }
	      // Set next anchor using current width + margin
	      width = $(el).outerWidth(true);
	      anchor += width;
	      data.anchors[pages - 1].width += width;
	      data.anchors[pages - 1].els.push(el);
	    });
	    data.endX = anchor;

	    // Build dots if nav exists and needs updating
	    if (designer) data.pages = null;
	    if (data.nav.length && data.pages !== pages){
	      data.pages = pages;
	      buildNav(data);
	    }

	    // Make sure index is still within range and call change handler
	    var index = data.index;
	    if (index >= pages) index = pages - 1;
	    change(data, { immediate: true, index: index });
	  }

	  function buildNav(data) {
	    var dots = [];
	    var $dot;
	    var spacing = data.el.attr('data-nav-spacing');
	    if (spacing) spacing = parseFloat(spacing) + 'px';
	    for (var i = 0; i < data.pages; i++) {
	      $dot = $(dot);
	      if (data.nav.hasClass('w-num')) $dot.text(i + 1);
	      if (spacing != null) {
	        $dot.css({
	          'margin-left': spacing,
	          'margin-right': spacing
	        });
	      }
	      dots.push($dot);
	    }
	    data.nav.empty().append(dots);
	  }

	  function maskChanged(data) {
	    var maskWidth = data.mask.width();
	    if (data.maskWidth !== maskWidth) {
	      data.maskWidth = maskWidth;
	      return true;
	    }
	    return false;
	  }

	  function slidesChanged(data) {
	    var slidesWidth = 0;
	    data.slides.each(function(i, el) {
	      slidesWidth += $(el).outerWidth(true);
	    });
	    if (data.slidesWidth !== slidesWidth) {
	      data.slidesWidth = slidesWidth;
	      return true;
	    }
	    return false;
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 19 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Tabs component
	 */

	var Webflow = __webpack_require__(1);
	var IXEvents = __webpack_require__(2);

	Webflow.define('tabs', module.exports = function($, _) {
	  var api = {};
	  var tram = $.tram;
	  var $win = $(window);
	  var $doc = $(document);
	  var $tabs;
	  var design;
	  var env = Webflow.env;
	  var safari = env.safari;
	  var inApp = env();
	  var tabAttr = 'data-w-tab';
	  var namespace = '.w-tabs';
	  var linkCurrent = 'w--current';
	  var tabActive = 'w--tab-active';
	  var ix = IXEvents.triggers;
	  var inRedraw;

	  // -----------------------------------
	  // Module methods

	  api.ready = api.design = api.preview = init;

	  api.redraw = function() {
	    inRedraw = true;
	    init();
	  };

	  api.destroy = function() {
	    $tabs = $doc.find(namespace);
	    if (!$tabs.length) return;
	    $tabs.each(resetIX);
	    removeListeners();
	  };

	  // -----------------------------------
	  // Private methods

	  function init() {
	    design = inApp && Webflow.env('design');

	    // Find all instances on the page
	    $tabs = $doc.find(namespace);
	    if (!$tabs.length) return;
	    $tabs.each(build);
	    Webflow.env('preview') && $tabs.each(resetIX);
	    inRedraw = null;

	    removeListeners();
	    addListeners();
	  }

	  function removeListeners() {
	    Webflow.redraw.off(api.redraw);
	  }

	  function addListeners() {
	    Webflow.redraw.on(api.redraw);
	  }

	  function resetIX(i, el) {
	    var $el = $(el);
	    var data = $.data(el, namespace);
	    if (!data) return;
	    data.links && data.links.each(ix.reset);
	    data.panes && data.panes.each(ix.reset);
	  }

	  function build(i, el) {
	    var $el = $(el);

	    // Store state in data
	    var data = $.data(el, namespace);
	    if (!data) data = $.data(el, namespace, { el: $el, config: {} });
	    data.current = null;
	    data.menu = $el.children('.w-tab-menu');
	    data.links = data.menu.children('.w-tab-link');
	    data.content = $el.children('.w-tab-content');
	    data.panes = data.content.children('.w-tab-pane');

	    // Remove old events
	    data.el.off(namespace);
	    data.links.off(namespace);

	    // Set config from data attributes
	    configure(data);

	    // Wire up events when not in design mode
	    if (!design) {
	      data.links.on('click' + namespace, linkSelect(data));

	      // Trigger first intro event from current tab
	      var $link = data.links.filter('.' + linkCurrent);
	      var tab = $link.attr(tabAttr);
	      tab && changeTab(data, { tab: tab, immediate: true });
	    }
	  }

	  function configure(data) {
	    var config = {};
	    var old = data.config || {};

	    // Set config options from data attributes
	    config.easing = data.el.attr('data-easing') || 'ease';

	    var intro = +data.el.attr('data-duration-in');
	    intro = config.intro = intro === intro ? intro : 0;

	    var outro = +data.el.attr('data-duration-out');
	    outro = config.outro = outro === outro ? outro : 0;

	    config.immediate = !intro && !outro;

	    // Store config in data
	    data.config = config;
	  }

	  function linkSelect(data) {
	    return function(evt) {
	      var tab = evt.currentTarget.getAttribute(tabAttr);
	      tab && changeTab(data, { tab: tab });
	    };
	  }

	  function changeTab(data, options) {
	    options = options || {};

	    var config = data.config;
	    var easing = config.easing;
	    var tab = options.tab;

	    // Don't select the same tab twice
	    if (tab === data.current) return;
	    data.current = tab;

	    // Select the current link
	    data.links.each(function(i, el) {
	      var $el = $(el);
	      if (el.getAttribute(tabAttr) === tab) $el.addClass(linkCurrent).each(ix.intro);
	      else if ($el.hasClass(linkCurrent)) $el.removeClass(linkCurrent).each(ix.outro);
	    });

	    // Find the new tab panes and keep track of previous
	    var targets = [];
	    var previous = [];
	    data.panes.each(function(i, el) {
	      var $el = $(el);
	      if (el.getAttribute(tabAttr) === tab) {
	        targets.push(el);
	      } else if ($el.hasClass(tabActive)) {
	        previous.push(el);
	      }
	    });

	    var $targets = $(targets);
	    var $previous = $(previous);

	    // Switch tabs immediately and bypass transitions
	    if (options.immediate || config.immediate) {
	      $targets.addClass(tabActive).each(ix.intro);
	      $previous.removeClass(tabActive);
	      // Redraw to benefit components in the hidden tab pane
	      // But only if not currently in the middle of a redraw
	      if (!inRedraw) Webflow.redraw.up();
	      return;
	    }

	    // Fade out the currently active tab before intro
	    if ($previous.length && config.outro) {
	      $previous.each(ix.outro);
	      tram($previous)
	        .add('opacity ' + config.outro + 'ms ' + easing, { fallback: safari })
	        .start({ opacity: 0 })
	        .then(intro);
	    } else {
	      // Skip the outro and play intro
	      intro();
	    }

	    // Fade in the new target
	    function intro() {
	      // Clear previous active class + styles touched by tram
	      // We cannot remove the whole inline style because it could be dynamically bound
	      $previous.removeClass(tabActive).css({
	        opacity: '',
	        transition: '',
	        transform: '',
	        width: '',
	        height: ''
	      });

	      // Add active class to new target
	      $targets.addClass(tabActive).each(ix.intro);
	      Webflow.redraw.up();

	      // Set opacity immediately if intro is zero
	      if (!config.intro) return tram($targets).set({ opacity: 1 });

	      // Otherwise fade in opacity
	      tram($targets)
	        .set({ opacity: 0 })
	        .redraw()
	        .add('opacity ' + config.intro + 'ms ' + easing, { fallback: safari })
	        .start({ opacity: 1 });
	    }
	  }

	  // Export module
	  return api;
	});


/***/ },
/* 20 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/**
	 * Webflow: Touch events
	 */

	var Webflow = __webpack_require__(1);

	Webflow.define('touch', module.exports = function($, _) {
	  var api = {};
	  var fallback = !document.addEventListener;
	  var getSelection = window.getSelection;

	  // Fallback to click events in old IE
	  if (fallback) {
	    $.event.special.tap = { bindType: 'click', delegateType: 'click' };
	  }

	  api.init = function(el) {
	    if (fallback) return null;
	    el = typeof el === 'string' ? $(el).get(0) : el;
	    return el ? new Touch(el) : null;
	  };

	  function Touch(el) {
	    var active = false;
	    var dirty = false;
	    var useTouch = false;
	    var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40);
	    var startX, startY, lastX;

	    el.addEventListener('touchstart', start, false);
	    el.addEventListener('touchmove', move, false);
	    el.addEventListener('touchend', end, false);
	    el.addEventListener('touchcancel', cancel, false);
	    el.addEventListener('mousedown', start, false);
	    el.addEventListener('mousemove', move, false);
	    el.addEventListener('mouseup', end, false);
	    el.addEventListener('mouseout', cancel, false);

	    function start(evt) {
	      // We don’t handle multi-touch events yet.
	      var touches = evt.touches;
	      if (touches && touches.length > 1) {
	        return;
	      }

	      active = true;
	      dirty = false;

	      if (touches) {
	        useTouch = true;
	        startX = touches[0].clientX;
	        startY = touches[0].clientY;
	      } else {
	        startX = evt.clientX;
	        startY = evt.clientY;
	      }

	      lastX = startX;
	    }

	    function move(evt) {
	      if (!active) return;

	      if (useTouch && evt.type === 'mousemove') {
	        evt.preventDefault();
	        evt.stopPropagation();
	        return;
	      }

	      var touches = evt.touches;
	      var x = touches ? touches[0].clientX : evt.clientX;
	      var y = touches ? touches[0].clientY : evt.clientY;

	      var velocityX = x - lastX;
	      lastX = x;

	      // Allow swipes while pointer is down, but prevent them during text selection
	      if (Math.abs(velocityX) > thresholdX && getSelection && getSelection() + '' === '') {
	        triggerEvent('swipe', evt, { direction: velocityX > 0 ? 'right' : 'left' });
	        cancel();
	      }

	      // If pointer moves more than 10px flag to cancel tap
	      if (Math.abs(x - startX) > 10 || Math.abs(y - startY) > 10) {
	        dirty = true;
	      }
	    }

	    function end(evt) {
	      if (!active) return;
	      active = false;

	      if (useTouch && evt.type === 'mouseup') {
	        evt.preventDefault();
	        evt.stopPropagation();
	        useTouch = false;
	        return;
	      }

	      if (!dirty) triggerEvent('tap', evt);
	    }

	    function cancel(evt) {
	      active = false;
	    }

	    function destroy() {
	      el.removeEventListener('touchstart', start, false);
	      el.removeEventListener('touchmove', move, false);
	      el.removeEventListener('touchend', end, false);
	      el.removeEventListener('touchcancel', cancel, false);
	      el.removeEventListener('mousedown', start, false);
	      el.removeEventListener('mousemove', move, false);
	      el.removeEventListener('mouseup', end, false);
	      el.removeEventListener('mouseout', cancel, false);
	      el = null;
	    }

	    // Public instance methods
	    this.destroy = destroy;
	  }

	  // Wrap native event to supoprt preventdefault + stopPropagation
	  function triggerEvent(type, evt, data) {
	    var newEvent = $.Event(type, { originalEvent: evt });
	    $(evt.target).trigger(newEvent, data);
	  }

	  // Listen for touch events on all nodes by default.
	  api.instance = api.init(document);

	  // Export module
	  return api;
	});


/***/ },
/* 21 */
/***/ function(module, exports, __webpack_require__) {

	'use strict';

	/*jshint -W054 */

	// Include tram for frame-throttling
	var $ = window.$;
	var tram = __webpack_require__(3) && $.tram;

	/*!
	 * Webflow._ (aka) Underscore.js 1.6.0 (custom build)
	 * _.each
	 * _.map
	 * _.find
	 * _.filter
	 * _.any
	 * _.contains
	 * _.delay
	 * _.defer
	 * _.throttle (webflow)
	 * _.debounce
	 * _.keys
	 * _.has
	 * _.now
	 *
	 * http://underscorejs.org
	 * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
	 * Underscore may be freely distributed under the MIT license.
	 * @license MIT
	 */
	module.exports = (function() {
	  var _ = {};

	  // Current version.
	  _.VERSION = '1.6.0-Webflow';

	  // Establish the object that gets returned to break out of a loop iteration.
	  var breaker = {};

	  // Save bytes in the minified (but not gzipped) version:
	  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;

	  // Create quick reference variables for speed access to core prototypes.
	  var
	    push             = ArrayProto.push,
	    slice            = ArrayProto.slice,
	    concat           = ArrayProto.concat,
	    toString         = ObjProto.toString,
	    hasOwnProperty   = ObjProto.hasOwnProperty;

	  // All **ECMAScript 5** native function implementations that we hope to use
	  // are declared here.
	  var
	    nativeForEach      = ArrayProto.forEach,
	    nativeMap          = ArrayProto.map,
	    nativeReduce       = ArrayProto.reduce,
	    nativeReduceRight  = ArrayProto.reduceRight,
	    nativeFilter       = ArrayProto.filter,
	    nativeEvery        = ArrayProto.every,
	    nativeSome         = ArrayProto.some,
	    nativeIndexOf      = ArrayProto.indexOf,
	    nativeLastIndexOf  = ArrayProto.lastIndexOf,
	    nativeIsArray      = Array.isArray,
	    nativeKeys         = Object.keys,
	    nativeBind         = FuncProto.bind;

	  // Collection Functions
	  // --------------------

	  // The cornerstone, an `each` implementation, aka `forEach`.
	  // Handles objects with the built-in `forEach`, arrays, and raw objects.
	  // Delegates to **ECMAScript 5**'s native `forEach` if available.
	  var each = _.each = _.forEach = function(obj, iterator, context) {
	    /* jshint shadow:true */
	    if (obj == null) return obj;
	    if (nativeForEach && obj.forEach === nativeForEach) {
	      obj.forEach(iterator, context);
	    } else if (obj.length === +obj.length) {
	      for (var i = 0, length = obj.length; i < length; i++) {
	        if (iterator.call(context, obj[i], i, obj) === breaker) return;
	      }
	    } else {
	      var keys = _.keys(obj);
	      for (var i = 0, length = keys.length; i < length; i++) {
	        if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return;
	      }
	    }
	    return obj;
	  };

	  // Return the results of applying the iterator to each element.
	  // Delegates to **ECMAScript 5**'s native `map` if available.
	  _.map = _.collect = function(obj, iterator, context) {
	    var results = [];
	    if (obj == null) return results;
	    if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
	    each(obj, function(value, index, list) {
	      results.push(iterator.call(context, value, index, list));
	    });
	    return results;
	  };

	  // Return the first value which passes a truth test. Aliased as `detect`.
	  _.find = _.detect = function(obj, predicate, context) {
	    var result;
	    any(obj, function(value, index, list) {
	      if (predicate.call(context, value, index, list)) {
	        result = value;
	        return true;
	      }
	    });
	    return result;
	  };

	  // Return all the elements that pass a truth test.
	  // Delegates to **ECMAScript 5**'s native `filter` if available.
	  // Aliased as `select`.
	  _.filter = _.select = function(obj, predicate, context) {
	    var results = [];
	    if (obj == null) return results;
	    if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context);
	    each(obj, function(value, index, list) {
	      if (predicate.call(context, value, index, list)) results.push(value);
	    });
	    return results;
	  };

	  // Determine if at least one element in the object matches a truth test.
	  // Delegates to **ECMAScript 5**'s native `some` if available.
	  // Aliased as `any`.
	  var any = _.some = _.any = function(obj, predicate, context) {
	    predicate || (predicate = _.identity);
	    var result = false;
	    if (obj == null) return result;
	    if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context);
	    each(obj, function(value, index, list) {
	      if (result || (result = predicate.call(context, value, index, list))) return breaker;
	    });
	    return !!result;
	  };

	  // Determine if the array or object contains a given value (using `===`).
	  // Aliased as `include`.
	  _.contains = _.include = function(obj, target) {
	    if (obj == null) return false;
	    if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
	    return any(obj, function(value) {
	      return value === target;
	    });
	  };

	  // Function (ahem) Functions
	  // --------------------

	  // Delays a function for the given number of milliseconds, and then calls
	  // it with the arguments supplied.
	  _.delay = function(func, wait) {
	    var args = slice.call(arguments, 2);
	    return setTimeout(function(){ return func.apply(null, args); }, wait);
	  };

	  // Defers a function, scheduling it to run after the current call stack has
	  // cleared.
	  _.defer = function(func) {
	    return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
	  };

	  // Returns a function, that, when invoked, will only be triggered once every
	  // browser animation frame - using tram's requestAnimationFrame polyfill.
	  _.throttle = function(func) {
	    var wait, args, context;
	    return function() {
	      if (wait) return;
	      wait = true;
	      args = arguments;
	      context = this;
	      tram.frame(function() {
	        wait = false;
	        func.apply(context, args);
	      });
	    };
	  };

	  // Returns a function, that, as long as it continues to be invoked, will not
	  // be triggered. The function will be called after it stops being called for
	  // N milliseconds. If `immediate` is passed, trigger the function on the
	  // leading edge, instead of the trailing.
	  _.debounce = function(func, wait, immediate) {
	    var timeout, args, context, timestamp, result;

	    var later = function() {
	      var last = _.now() - timestamp;
	      if (last < wait) {
	        timeout = setTimeout(later, wait - last);
	      } else {
	        timeout = null;
	        if (!immediate) {
	          result = func.apply(context, args);
	          context = args = null;
	        }
	      }
	    };

	    return function() {
	      context = this;
	      args = arguments;
	      timestamp = _.now();
	      var callNow = immediate && !timeout;
	      if (!timeout) {
	        timeout = setTimeout(later, wait);
	      }
	      if (callNow) {
	        result = func.apply(context, args);
	        context = args = null;
	      }

	      return result;
	    };
	  };

	  // Object Functions
	  // ----------------

	  // Fill in a given object with default properties.
	  _.defaults = function(obj) {
	    if (!_.isObject(obj)) return obj;
	    for (var i = 1, length = arguments.length; i < length; i++) {
	      var source = arguments[i];
	      for (var prop in source) {
	        if (obj[prop] === void 0) obj[prop] = source[prop];
	      }
	    }
	    return obj;
	  };

	  // Retrieve the names of an object's properties.
	  // Delegates to **ECMAScript 5**'s native `Object.keys`
	  _.keys = function(obj) {
	    if (!_.isObject(obj)) return [];
	    if (nativeKeys) return nativeKeys(obj);
	    var keys = [];
	    for (var key in obj) if (_.has(obj, key)) keys.push(key);
	    return keys;
	  };

	  // Shortcut function for checking if an object has a given property directly
	  // on itself (in other words, not on a prototype).
	  _.has = function(obj, key) {
	    return hasOwnProperty.call(obj, key);
	  };

	  // Is a given variable an object?
	  _.isObject = function(obj) {
	    return obj === Object(obj);
	  };

	  // Utility Functions
	  // -----------------

	  // A (possibly faster) way to get the current timestamp as an integer.
	  _.now = Date.now || function() { return new Date().getTime(); };

	  // By default, Underscore uses ERB-style template delimiters, change the
	  // following template settings to use alternative delimiters.
	  _.templateSettings = {
	    evaluate    : /<%([\s\S]+?)%>/g,
	    interpolate : /<%=([\s\S]+?)%>/g,
	    escape      : /<%-([\s\S]+?)%>/g
	  };

	  // When customizing `templateSettings`, if you don't want to define an
	  // interpolation, evaluation or escaping regex, we need one that is
	  // guaranteed not to match.
	  var noMatch = /(.)^/;

	  // Certain characters need to be escaped so that they can be put into a
	  // string literal.
	  var escapes = {
	    "'":      "'",
	    '\\':     '\\',
	    '\r':     'r',
	    '\n':     'n',
	    '\u2028': 'u2028',
	    '\u2029': 'u2029'
	  };

	  var escaper = /\\|'|\r|\n|\u2028|\u2029/g;

	  var escapeChar = function(match) {
	    return '\\' + escapes[match];
	  };

	  // JavaScript micro-templating, similar to John Resig's implementation.
	  // Underscore templating handles arbitrary delimiters, preserves whitespace,
	  // and correctly escapes quotes within interpolated code.
	  // NB: `oldSettings` only exists for backwards compatibility.
	  _.template = function(text, settings, oldSettings) {
	    if (!settings && oldSettings) settings = oldSettings;
	    settings = _.defaults({}, settings, _.templateSettings);

	    // Combine delimiters into one regular expression via alternation.
	    var matcher = RegExp([
	      (settings.escape || noMatch).source,
	      (settings.interpolate || noMatch).source,
	      (settings.evaluate || noMatch).source
	    ].join('|') + '|$', 'g');

	    // Compile the template source, escaping string literals appropriately.
	    var index = 0;
	    var source = "__p+='";
	    text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
	      source += text.slice(index, offset).replace(escaper, escapeChar);
	      index = offset + match.length;

	      if (escape) {
	        source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
	      } else if (interpolate) {
	        source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
	      } else if (evaluate) {
	        source += "';\n" + evaluate + "\n__p+='";
	      }

	      // Adobe VMs need the match returned to produce the correct offest.
	      return match;
	    });
	    source += "';\n";

	    // If a variable is not specified, place data values in local scope.
	    if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';

	    source = "var __t,__p='',__j=Array.prototype.join," +
	      "print=function(){__p+=__j.call(arguments,'');};\n" +
	      source + 'return __p;\n';

	    try {
	      var render = new Function(settings.variable || 'obj', '_', source);
	    } catch (e) {
	      e.source = source;
	      throw e;
	    }

	    var template = function(data) {
	      return render.call(this, data, _);
	    };

	    // Provide the compiled source as a convenience for precompilation.
	    var argument = settings.variable || 'obj';
	    template.source = 'function(' + argument + '){\n' + source + '}';

	    return template;
	  };

	  // Export underscore
	  return _;
	}());


/***/ },
/* 22 */
/***/ function(module, exports) {

	/*!
	 * jQuery-ajaxTransport-XDomainRequest - v1.0.3
	 * 2014-12-16 WEBFLOW - Removed UMD wrapper
	 * https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest
	 * Copyright (c) 2014 Jason Moon (@JSONMOON)
	 * @license MIT (/blob/master/LICENSE.txt)
	 */
	module.exports=function($){if($.support.cors||!$.ajaxTransport||!window.XDomainRequest){return}var httpRegEx=/^https?:\/\//i;var getOrPostRegEx=/^get|post$/i;var sameSchemeRegEx=new RegExp("^"+location.protocol,"i");$.ajaxTransport("* text html xml json",function(options,userOptions,jqXHR){if(!options.crossDomain||!options.async||!getOrPostRegEx.test(options.type)||!httpRegEx.test(options.url)||!sameSchemeRegEx.test(options.url)){return}var xdr=null;return{send:function(headers,complete){var postData="";var userType=(userOptions.dataType||"").toLowerCase();xdr=new XDomainRequest;if(/^\d+$/.test(userOptions.timeout)){xdr.timeout=userOptions.timeout}xdr.ontimeout=function(){complete(500,"timeout")};xdr.onload=function(){var allResponseHeaders="Content-Length: "+xdr.responseText.length+"\r\nContent-Type: "+xdr.contentType;var status={code:200,message:"success"};var responses={text:xdr.responseText};try{if(userType==="html"||/text\/html/i.test(xdr.contentType)){responses.html=xdr.responseText}else if(userType==="json"||userType!=="text"&&/\/json/i.test(xdr.contentType)){try{responses.json=$.parseJSON(xdr.responseText)}catch(e){status.code=500;status.message="parseerror"}}else if(userType==="xml"||userType!=="text"&&/\/xml/i.test(xdr.contentType)){var doc=new ActiveXObject("Microsoft.XMLDOM");doc.async=false;try{doc.loadXML(xdr.responseText)}catch(e){doc=undefined}if(!doc||!doc.documentElement||doc.getElementsByTagName("parsererror").length){status.code=500;status.message="parseerror";throw"Invalid XML: "+xdr.responseText}responses.xml=doc}}catch(parseMessage){throw parseMessage}finally{complete(status.code,status.message,responses,allResponseHeaders)}};xdr.onprogress=function(){};xdr.onerror=function(){complete(500,"error",{text:xdr.responseText})};if(userOptions.data){postData=$.type(userOptions.data)==="string"?userOptions.data:$.param(userOptions.data)}xdr.open(options.type,options.url);xdr.send(postData)},abort:function(){if(xdr){xdr.abort()}}}})}(window.jQuery);

/***/ }
/******/ ]);/**
 * ----------------------------------------------------------------------
 * Webflow: Interactions: Init
 */
/* Webflow.require('ix').init([
  {"slug":"flyout-clinic-hidden","name":"Flyout-Clinic-Hidden","value":{"style":{"display":"none","opacity":0},"triggers":[]}},
  {"slug":"find-clinic-open","name":"Find-Clinic-Open","value":{"style":{},"triggers":[{"type":"click","stepsA":[{"display":"block"},{"opacity":1,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"opacity":0,"transition":"opacity 500ms ease 0ms"},{"display":"none"}]},{"type":"click","stepsA":[{"display":"block","opacity":1,"transition":"opacity 300ms ease 0ms"}],"stepsB":[{"display":"none","opacity":0,"transition":"opacity 300ms ease 0ms"}]}]}},
  {"slug":"flyout-nav-why","name":"Flyout-Nav-Why","value":{"style":{},"triggers":[{"type":"hover","selector":".wrapper-flyout-why","stepsA":[{"display":"block"},{"opacity":1,"transition":"opacity 300ms ease 0ms"}],"stepsB":[{"opacity":0,"transition":"opacity 300ms ease 0ms"},{"display":"none"}]}]}},
  {"slug":"flyout-nav-procedures","name":"Flyout-Nav-Procedures","value":{"style":{},"triggers":[{"type":"hover","selector":".wrapper-flyout-procedures","stepsA":[{"display":"block"},{"opacity":1,"transition":"opacity 300ms ease 0ms"}],"stepsB":[{"opacity":0,"transition":"opacity 300ms ease 0ms"},{"display":"none"}]}]}},
  {"slug":"find-clinic-book","name":"Find-Clinic-Book","value":{"style":{},"triggers":[{"type":"click","stepsA":[{"display":"block"},{"opacity":1,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"opacity":0,"transition":"opacity 500ms ease 0ms"},{"display":"none"}]},{"type":"click","stepsA":[{"display":"block","opacity":1,"transition":"opacity 300ms ease 0ms"}],"stepsB":[{"display":"none","opacity":0,"transition":"opacity 300ms ease 0ms"}]}]}},
  {"slug":"flyout-nav-referrers","name":"Flyout-Nav-Referrers","value":{"style":{},"triggers":[{"type":"hover","selector":".wrapper-flyout-referrers","stepsA":[{"display":"block"},{"opacity":1,"transition":"opacity 300ms ease 0ms"}],"stepsB":[{"opacity":0,"transition":"opacity 300ms ease 0ms"},{"display":"none"}]}]}},
  {"slug":"flyout-nav-careers","name":"Flyout-Nav-Careers","value":{"style":{},"triggers":[{"type":"hover","selector":".wrapper-flyout-careers","stepsA":[{"display":"block"},{"opacity":1,"transition":"opacity 300ms ease 0ms"}],"stepsB":[{"opacity":0,"transition":"opacity 300ms ease 0ms"},{"display":"none"}]}]}},
  {"slug":"image-enlarge","name":"Image-Enlarge","value":{"style":{"scaleX":1,"scaleY":1,"scaleZ":1},"triggers":[{"type":"hover","stepsA":[{"wait":0,"transition":"transform 600ms ease 0ms","scaleX":1.03,"scaleY":1.03,"scaleZ":1}],"stepsB":[{"transition":"transform 500ms ease 0ms","scaleX":1,"scaleY":1,"scaleZ":1}]}]}},
  {"slug":"fade-up-tabs","name":"Fade up - Tabs","value":{"style":{"opacity":0,"x":"0px","y":"10px","z":"0px"},"triggers":[{"type":"tabs","stepsA":[{"opacity":1,"transition":"transform 600ms ease 0ms, opacity 600ms ease 0ms","x":"0px","y":"0px","z":"0px"}],"stepsB":[]}]}},
  {"slug":"load-items","name":"Load items","value":{"style":{"opacity":0,"x":"0px","y":"10px","z":"0px"},"triggers":[{"type":"load","stepsA":[{"opacity":1,"transition":"transform 400ms ease 0ms, opacity 400ms ease 0ms","x":"0px","y":"0px","z":"0px"}],"stepsB":[]}]}},
  {"slug":"load-items-2","name":"Load items 2","value":{"style":{"opacity":0,"x":"0px","y":"10px","z":"0px"},"triggers":[{"type":"load","stepsA":[{"wait":400},{"opacity":1,"transition":"transform 400ms ease 0ms, opacity 400ms ease 0ms","x":"0px","y":"0px","z":"0px"}],"stepsB":[]}]}},
  {"slug":"hover-profile","name":"Hover-Profile","value":{"style":{"x":"0px","y":"0px","z":"0px"},"triggers":[{"type":"hover","stepsA":[{"transition":"transform 300ms ease 0ms","x":"0px","y":"-2px","z":"0px"}],"stepsB":[{"transition":"transform 100ms ease 0ms","x":"0px","y":"0px","z":"0px"}]}]}},
  {"slug":"wrapper-feature-hide","name":"Wrapper-Feature-Hide","value":{"style":{"display":"none","opacity":0},"triggers":[]}},
  {"slug":"feature-hover-four","name":"Feature Hover - Four","value":{"style":{},"triggers":[{"type":"hover","selector":".feature-image","descend":true,"stepsA":[{"transition":"transform 500ms ease 0ms","scaleX":1.1,"scaleY":1.1,"scaleZ":1}],"stepsB":[{"transition":"transform 500ms ease 0ms","scaleX":1,"scaleY":1,"scaleZ":1}]},{"type":"hover","selector":".wrapper-feature-four","stepsA":[{"display":"block","opacity":1,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"display":"block","opacity":0,"transition":"opacity 500ms ease 0ms"},{"display":"none","opacity":0,"transition":"opacity 500ms ease 0ms"}]},{"type":"hover","selector":".wrapper-default","stepsA":[{"opacity":0,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"opacity":1,"transition":"opacity 500ms ease 0ms"}]}]}},
  {"slug":"feature-hover-one","name":"Feature Hover - One","value":{"style":{},"triggers":[{"type":"hover","selector":".feature-image","descend":true,"stepsA":[{"transition":"transform 500ms ease 0ms","scaleX":1.1,"scaleY":1.1,"scaleZ":1}],"stepsB":[{"transition":"transform 500ms ease 0ms","scaleX":1,"scaleY":1,"scaleZ":1}]},{"type":"hover","selector":".wrapper-feature-one","stepsA":[{"display":"block","opacity":1,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"display":"block","opacity":0,"transition":"opacity 500ms ease 0ms"},{"display":"none","opacity":0,"transition":"opacity 500ms ease 0ms"}]},{"type":"hover","selector":".wrapper-default","stepsA":[{"opacity":0,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"opacity":1,"transition":"opacity 500ms ease 0ms"}]}]}},
  {"slug":"feature-hover-three","name":"Feature Hover - Three","value":{"style":{},"triggers":[{"type":"hover","selector":".feature-image","descend":true,"stepsA":[{"transition":"transform 500ms ease 0ms","scaleX":1.1,"scaleY":1.1,"scaleZ":1}],"stepsB":[{"transition":"transform 500ms ease 0ms","scaleX":1,"scaleY":1,"scaleZ":1}]},{"type":"hover","selector":".wrapper-feature-three","stepsA":[{"display":"block","opacity":1,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"display":"block","opacity":0,"transition":"opacity 500ms ease 0ms"},{"display":"none","opacity":0,"transition":"opacity 500ms ease 0ms"}]},{"type":"hover","selector":".wrapper-default","stepsA":[{"opacity":0,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"opacity":1,"transition":"opacity 500ms ease 0ms"}]}]}},
  {"slug":"feature-hover-two","name":"Feature Hover - Two","value":{"style":{},"triggers":[{"type":"hover","selector":".feature-image","descend":true,"stepsA":[{"transition":"transform 500ms ease 0ms","scaleX":1.1,"scaleY":1.1,"scaleZ":1}],"stepsB":[{"transition":"transform 500ms ease 0ms","scaleX":1,"scaleY":1,"scaleZ":1}]},{"type":"hover","selector":".wrapper-feature-two","stepsA":[{"display":"block","opacity":1,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"display":"block","opacity":0,"transition":"opacity 500ms ease 0ms"},{"display":"none","opacity":0,"transition":"opacity 500ms ease 0ms"}]},{"type":"hover","selector":".wrapper-default","stepsA":[{"opacity":0,"transition":"opacity 500ms ease 0ms"}],"stepsB":[{"opacity":1,"transition":"opacity 500ms ease 0ms"}]}]}},
  {"slug":"dropdown-fade","name":"Dropdown - Fade","value":{"style":{"opacity":0},"triggers":[{"type":"dropdown","stepsA":[{"opacity":1,"transition":"opacity 600ms ease 0ms"}],"stepsB":[{"opacity":0,"transition":"opacity 600ms ease 0ms"}]}]}},
  {"slug":"expand-form","name":"Expand Form","value":{"style":{},"triggers":[{"type":"click","selector":".section-form-expand","stepsA":[{"display":"block"},{"opacity":1,"transition":"opacity 1200ms ease 0ms"}],"stepsB":[]},{"type":"click","selector":".button-selected","stepsA":[{"display":"block"}],"stepsB":[]}]}},
  {"slug":"form-initial-appearance","name":"Form-Initial-Appearance","value":{"style":{"opacity":0},"triggers":[]}},
  {"slug":"button-deselect","name":"Button-deselect","value":{"style":{},"triggers":[{"type":"click","stepsA":[{"display":"none"}],"stepsB":[]},{"type":"click","selector":".section-form-expand","stepsA":[{"display":"none"}],"stepsB":[]}]}},
  {"slug":"button-selected","name":"Button-selected","value":{"style":{},"triggers":[{"type":"click","selector":".button-selected","stepsA":[{"display":"block"}],"stepsB":[]}]}}
]); */

}catch(e){console.log("Module 'webflow': ",e);}
try{(function(){
var _1=i$.addClass,_2=i$.hasClass,_3=i$.removeClass,_4=i$.fromPath,ln=function(o){
return o.length;
},_5="edit-mode",_6="edit-mode-disabled",_7="help-mode",_8="info-mode",_9="toolbar-opened",_a="toolbar-closed",_b=_4("wpModules.state.page");
if(_b){
var _c=_b.getStateManager();
_c&&_c.getState().then(function(_d){
var _e=_d.renderParams().get({nsuri:"http://www.ibm.com/xmlns/prod/websphere/portal/publicparams",name:"pageMode"}),_f=_d.renderParams().get({nsuri:"http://www.ibm.com/xmlns/prod/websphere/portal/publicparams",name:"showTools"}),_10=document.body;
_3(_10,_5);
_3(_10,_6);
_3(_10,_8);
_3(_10,_7);
if(_e&&ln(_e)>0&&_e[0].value&&ln(_e[0].value)>0){
var _11=_e[0].value;
for(var i=0;i<ln(_11);++i){
var _12=_11[i];
if("EDIT"==_12){
if(wpModules.state.page.supportsEditMode){
_1(_10,_5);
}else{
_1(_10,_6);
}
}else{
if("INFO"==_12){
_1(_10,_8);
}else{
if("HELP"==_12){
_1(_10,_7);
}
}
}
}
}
if(_f&&ln(_f)>0&&_f[0].value&&ln(_f[0].value)>0){
var _13=_f[0].value[0];
if("true"==_13){
_1(_10,_9);
}else{
_1(_10,_a);
}
}else{
_1(_10,_a);
}
});
}
})();


}catch(e){console.log("Module 'wp_state_page_modes': ",e);}
try{/** Licensed Materials - Property of IBM, 5724-E76 and 5724-E77, (C) Copyright IBM Corp. 2011, 2012 - All Rights reserved.  **/
(function(){
if(!i$.isIE){
i$.addOnLoad(function(){
var _1=document.getElementsByClassName("ibmPortalControl");
for(var i=0;i<_1.length;i++){
if(i$.hasClass(_1[i],"a11yRegionTarget")){
var _2=_1[i];
var _3=null;
var _4=_2.getElementsByTagName("SPAN");
for(var j=0;j<_4.length;j++){
if(i$.hasClass(_4[j],"a11yRegionLabel")){
_3=_4[j];
}
}
if(_3){
var _5=_3;
var _6=_2;
var _7=null;
while((_6=_6.parentNode)!=null){
if(i$.hasClass(_6,"component-control")){
var m=_6&&(_6.className||"").match(/id-([\S]+)/);
_7=m&&m[1];
break;
}
}
if(_7){
var _8="wpRegionId"+_7;
_5.setAttribute("id",_8);
_2.setAttribute("aria-labelledby",_8);
}
}
}
}
});
}
})();


}catch(e){console.log("Module 'wp_skin_region': ",e);}
try{(function(){
    i$.merge({
	"WARNING_0":"Warning",
	"DELETE_0":"Delete",
	"INFO_0":"Information",
	"MESSAGES_AVAILABLE_1":"${0} messages are available for review",
	"SHOW_DETAILS_0":"Show Details",
	"ERROR_0":"Error",
	"HIDE_DETAILS_0":"Hide Details"
},i$.fromPath("wptheme.statusBar.nls",true));
})();
}catch(e){console.log("Module 'wp_status_bar': ",e);}
try{(function(){
if(typeof com==="undefined"||!com){
com={};
}
if(typeof com.ibm==="undefined"||!com.ibm){
com.ibm={};
}
if(typeof com.ibm.widgets==="undefined"||!com.ibm.widgets){
com.ibm.widgets={};
}
if(typeof com.ibm.widgets.StatusType==="undefined"||!com.ibm.widgets.StatusType){
com.ibm.widgets.StatusType=function(id,_1,_2,_3){
this._id=id;
this._styleClass=_1;
this._iconPath=_2;
this._iconAlt=_3;
};
}
if(typeof com.ibm.widgets.StatusMessage==="undefined"||!com.ibm.widgets.StatusMessage){
com.ibm.widgets.StatusMessage=function(_4,_5,_6){
this._type=_4;
this._message=_5;
if(!i$.isString(_5)&&_5.message&&i$.isString(_5.message)){
this._message=_5.message;
}
this._details=_6;
};
}
if(typeof com.ibm.widgets.StatusBarV2==="undefined"||!com.ibm.widgets.StatusBarV2){
com.ibm.widgets.StatusBarV2=function(_7){
this.uid=_7;
this.showDetails=false;
this._messages=[];
this._connections=[];
this._numMessages=0;
this._baseURL=window.location.protocol+"//"+window.location.host;
this.blankGifIcon="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";
this._statusTypesMap={"error":new com.ibm.widgets.StatusType(0,"wpthemeError",this.blankGifIcon,wptheme.statusBar.nls.ERROR_0),"warning":new com.ibm.widgets.StatusType(1,"wpthemeWarning",this.blankGifIcon,wptheme.statusBar.nls.WARNING_0),"info":new com.ibm.widgets.StatusType(2,"wpthemeInfo",this.blankGifIcon,wptheme.statusBar.nls.INFO_0)};
i$.addListener("/portal/status",i$.scope(this,this.addMessage));
i$.addListener("/message/status",i$.scope(this,this.addMessage));
i$.addListener("/portal/status/clear",i$.scope(this,this.clearMessage));
i$.addListener("/message/status/clear",i$.scope(this,this.clearMessage));
if(typeof (ibmCfg)!="undefined"&&ibmCfg.portalConfig){
this.isBidi=ibmCfg.portalConfig.isRTL;
}else{
if(typeof (ibmPortalConfig)!="undefined"){
this.isBidi=ibmPortalConfig.isRTL;
}else{
if(typeof (ibmConfig)!="undefined"){
this.isBidi=ibmConfig.isBidi;
}
}
}
i$.addOnUnload(i$.scope(this,this._onWindowUnload));
this.containerNode=i$.byId("wpthemeStatusBarContainer");
};
}
i$.augment(com.ibm.widgets.StatusBarV2,{_onWindowUnload:function(){
i$.forEach(this._connections,function(_8){
i$.unbindDomEvt(_8);
});
this._connections=null;
this.clear();
this._messages=null;
},_getStatusContainer:function(){
return this.containerNode;
},_escapeHTML:function(_9){
if(_9.replace){
return _9.replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;");
}
return _9;
},setShowDetails:function(_a){
this.showDetails=_a;
},toggleShowDetails:function(){
this.setShowDetails(!this.showDetails);
this.render();
},clear:function(){
var _b=this._getStatusContainer();
if(!!_b){
_b.innerHTML="";
_b.setAttribute("role","");
_b.setAttribute("wairole","");
}
this._messages.length=0;
},clearMessage:function(_c){
if(_c.uid&&_c.uid!=this.uid){
return;
}
var _d=_c.message;
if(typeof _d==="undefined"||_d===null){
this.clear();
}else{
for(var i=this._messages.length-1;i>=0;i--){
if(this._messages[i]._type==_d._type&&this._messages[i]._message==_d._message&&this._messages[i]._details==_d._details){
this._messages.splice(i,1);
}
}
if(this._messages.length==0){
this.clear();
}else{
if(this._messages.length<100){
this.render(this._getStatusContainer());
}
}
}
},addMessage:function(_e){
if(_e.uid&&_e.uid!=this.uid){
return;
}
var _f=_e.message;
this._messages.push(_f);
if(this._messages.length<100){
this.render(this._getStatusContainer());
}
},render:function(_10){
if(_10==null){
_10=this._getStatusContainer();
}
_10.innerHTML="";
if(this._messages.length>1){
this.renderHeader(_10);
}else{
if(this._messages.length==1){
this.renderMessage(_10,this._messages[0],this.showDetails,0);
}
}
if(this.showDetails&&this._messages.length>1){
for(x in this._messages){
this.renderMessage(_10,this._messages[x],this.showDetails,x);
}
}
},renderHeader:function(_11){
if(this._messages.length>1){
var _12=2;
for(var i=0;i<this._messages.length;i++){
_12=Math.min(_12,this._statusTypesMap[this._messages[i]._type]._id);
}
var _13="info";
for(x in this._statusTypesMap){
if(this._statusTypesMap[x]._id==_12){
_13=x;
break;
}
}
var _14=new com.ibm.widgets.StatusMessage(_13,wptheme.statusBar.nls.MESSAGES_AVAILABLE_1.replace("${0}",this._messages.length),"");
this.renderMessage(_11,_14,this.showDetails,-1);
}
},renderMessage:function(_15,_16,_17,_18){
var _19=this._statusTypesMap[_16._type];
var _1a=document.createElement("div");
_1a.className="wpthemeMessage "+_19._styleClass;
if(this._messages.length>1&&_18>=0){
_1a.className+=" wpthemeMoreMsg";
}
var _1b=document.createElement("img");
_1b.className="wpthemeMsgIcon "+(_19._styleClass=="wpthemeError"?"wpthemeMsgIconError":_19._styleClass=="wpthemeWarning"?"wpthemeMsgIconWarning":"wpthemeMsgIconInfo");
_1b.src=_19._iconPath;
_1b.alt=_1b.title=_19._iconAlt;
_1a.appendChild(_1b);
var _1c=document.createElement("span");
_1c.className="wpthemeAltText";
_1c.innerHTML=this._escapeHTML(_19._iconAlt+":");
_1a.appendChild(_1c);
var _1d=document.createElement("div");
_1d.className="wpthemeMessageBody";
_1d.innerHTML=this._escapeHTML(_16._message);
_1a.appendChild(_1d);
if((this._messages.length>1&&_18<0)||(this._messages.length==1)){
if(_16._details&&_16._details.length>0||_18<0){
var _1e=document.createElement("a");
_1e.href="javascript:void(0)";
_1e.className="wpthemeHideShow";
_1e.role="button";
this._connections.push(i$.bindDomEvt(_1e,"onclick",i$.scope(this,this.toggleShowDetails)));
var _1f=document.createElement("img");
_1f.className="wpthemeMsgIcon16";
_1f.src=ibmCfg.themeConfig.modulesWebAppBaseURI+"/themes/html/dynamicSpots/icons/blank.gif";
_1e.appendChild(_1f);
var _20=document.createElement("span");
_20.className="wpthemeAltText";
_1e.appendChild(_20);
}else{
_17=false;
}
var _21=document.createElement("a");
_21.href="javascript:void(0);";
_21.className="wpthemeDelete";
_21.role="button";
_21.title=wptheme.statusBar.nls.DELETE_0;
this._connections.push(i$.bindDomEvt(_21,"onclick",i$.scope(this,this.clear)));
var _22=document.createElement("img");
_22.alt=wptheme.statusBar.nls.DELETE_0;
_22.src=ibmCfg.themeConfig.modulesWebAppBaseURI+"/themes/html/dynamicSpots/icons/blank.gif";
_21.appendChild(_22);
var _23=document.createElement("span");
_23.className="wpthemeAltText";
_23.innerHTML=this._escapeHTML(wptheme.statusBar.nls.DELETE_0);
_21.appendChild(_23);
if(_16._details&&_16._details.length>0||_18<0){
if(_17){
_1e.title=wptheme.statusBar.nls.HIDE_DETAILS_0;
_1f.className+=" wpthemeMsgIconHide";
_1f.alt=wptheme.statusBar.nls.HIDE_DETAILS_0;
_20.innerHTML=this._escapeHTML(wptheme.statusBar.nls.HIDE_DETAILS_0);
}else{
_1e.title=wptheme.statusBar.nls.SHOW_DETAILS_0;
_1f.className+=" wpthemeMsgIconShow";
_1f.alt=wptheme.statusBar.nls.SHOW_DETAILS_0;
_20.innerHTML=this._escapeHTML(wptheme.statusBar.nls.SHOW_DETAILS_0);
}
_1a.appendChild(_1e);
}
_1a.appendChild(_21);
}
var _24=document.createElement("div");
_24.className="wpthemeClear";
_1a.appendChild(_24);
if(_16._details&&_16._details.length>0&&_17&&_18>=0){
var _25=document.createElement("div");
_25.className="wpthemeDetails";
_25.appendChild(document.createTextNode(_16._details));
_1a.appendChild(_25);
}
_15.appendChild(_1a);
_15.setAttribute("role","alert");
_15.setAttribute("wairole","alert");
}});
if(typeof wpstatusbar==="undefined"||!wpstatusbar){
wpstatusbar=new com.ibm.widgets.StatusBarV2("ibmStatusBox");
}
var _26=i$.getCookie("ibm.portal.operations.error");
if(_26){
var _27=i$.fromJson(decodeURIComponent(_26));
var _28="error";
if(_27.errorType){
_28=_27.errorType;
}else{
if(_27.errorCode){
if(_27.errorCode=="400"){
_28="error";
}
}
}
i$.fireEvent("/portal/status",[{message:new com.ibm.widgets.StatusMessage(_28,_27.errorMessage?_27.errorMessage:"",_27.errorDetails?_27.errorDetails:""),uid:"ibmStatusBox"}]);
i$.deleteCookie("ibm.portal.operations.error");
}
i$.addOnLoad(function(){
if("localStorage" in window&&window["localStorage"]!==null){
if(localStorage["com.ibm.wp.toolbar.msg.msg"]!=null){
i$.fireEvent("/message/status",[{message:new com.ibm.widgets.StatusMessage(localStorage["com.ibm.wp.toolbar.msg.type"],localStorage["com.ibm.wp.toolbar.msg.msg"],""),uid:"ibmStatusBox"}]);
localStorage.removeItem("com.ibm.wp.toolbar.msg.type");
localStorage.removeItem("com.ibm.wp.toolbar.msg.msg");
}
}
});
})();


}catch(e){console.log("Module 'wp_status_bar': ",e);}
try{(function(){
    i$.merge({
	"ICON_STOP":"msgError",
	"ICON_SUCCESS":"msgSuccess",
	"BUTTON_RETRY":"Retry",
	"BUTTON_YES":"Yes",
	"BUTTON_NO":"No",
	"BUTTON_IGNORE":"Ignore",
	"LINK_LEARN_MORE":"Learn More",
	"ICON_WARNING":"msgWarning",
	"ICON_INFORMATION":"msgInfo",
	"LOADING_IMAGE_0":"loading image",
	"BUTTON_ABORT":"Abort",
	"ICON_EXCLAMATION":"msgWarning",
	"BUTTON_CANCEL":"Cancel",
	"BUTTON_CONTINUE":"Continue",
	"BUTTON_OK":"Ok",
	"BUTTON_TRY":"Try Again",
	"LOADING_0":"Loading...",
	"ICON_ASTERISK":"msgInfo",
	"ICON_ERROR":"msgError",
	"CLOSE_IMAGE_0":"close image",
	"CLOSE_0":"Close"
},i$.fromPath("wpModules.dialog.nls",true));
})();
}catch(e){console.log("Module 'wp_dialog_main': ",e);}
try{function toggleSearchButton(){
var _1=document.getElementById("sqf"),_2=document.getElementById("stSearchBoxInput");
var _3=document.getElementById("stNavigation"),_4=document.getElementById("stMobileNavToggle"),_5=document.getElementById("stMobileNavBackground");
if(_1.className.indexOf("open")!=-1){
if(_2.value==""){
_1.className="stSearch stRight";
}else{
document.searchQueryForm.submit();
}
}else{
stmobilenav.closeNavMenu(_3,_4,_5);
_1.className+=" open";
}
};


}catch(e){console.log("Module 'st_search': ",e);}
try{/**
 * This function manages the behavior of the search button in the theme. It
 * checks to see if the search box is open. If it's not we open it. If it is it
 * looks to see if the search box is empty. When empty the clicking the button
 * closes the search box. If there is a value in the input field we run the
 * search.
 */
function toggleSearchButton() {
	var search = document.getElementById('sqf'),
		input = document.getElementById('stSearchBoxInput');
	
	var navDiv = document.getElementById("stNavigation"),
		toggleDiv = document.getElementById("stMobileNavToggle"),
		navBackgroundDiv = document.getElementById("stMobileNavBackground");
	
	if (search.className.indexOf('open') != -1) {
		if  (input.value == '') {
			// nothing in the search field so just close it
			search.className = 'stSearch stRight';
		} else {
			// run the search
			document.searchQueryForm.submit();
		}
	} else {
		// close the navbar
		stmobilenav.closeNavMenu(navDiv, toggleDiv, navBackgroundDiv);
		// open the search
		search.className += ' open';
	}
}
}catch(e){console.log("Module 'st_search': ",e);}
try{(function(){
var _1=new XMLHttpRequest();
_1.open("GET",ibmCfg.themeConfig.themeRootURI+"/css/images/sprite.svg",true);
_1.send();
_1.onload=function(e){
var _2=document.createElement("div");
_2.className="stDisplayNone";
_2.innerHTML=_1.responseText;
document.getElementById("wpthemeComplementaryContent").appendChild(_2);
};
})();


}catch(e){console.log("Module 'st_svg': ",e);}
try{/**
 * This module contains the javascript to retrieve the svg sprite and place it on the page. This
 * is necessary because not all browsers support extraction of specific svg images from an external
 * sprite. It simply gets the file contents and appends it in a div in the complementary content
 * section of the page.
 */
(function(){
	// IE does not support the use tag for external sprites
	var xhr = new XMLHttpRequest();
	xhr.open("GET", ibmCfg.themeConfig.themeRootURI+"/css/images/sprite.svg", true);
	xhr.send();
	xhr.onload = function(e) {
		var div = document.createElement("div");
		div.className = "stDisplayNone";
		div.innerHTML = xhr.responseText;
		document.getElementById("wpthemeComplementaryContent").appendChild(div);
	}
	
})();


}catch(e){console.log("Module 'st_svg': ",e);}
try{(function(){
var _1=document.getElementsByTagName("header")[0],_2=document.getElementsByClassName("stMainContent")[0],_3=document.getElementsByClassName("wpToolbarActionBar");
_1.className+=" stFixedNavbar";
_2.className+=" stFixedNavbar";
_2.style.paddingTop=_1.offsetHeight+"px";
window.onresize=function(){
_2.style.paddingTop=_1.offsetHeight+"px";
};
})();


}catch(e){console.log("Module 'st_fixed_navbar': ",e);}
try{/**
 * This script checks to see if the Toolbar is located in the same frame as the
 * navbar and main content. If it's not we account for this by adjusting the
 * padding by adding the .stNoToolbar class to the main content element.
 */
(function () {
	var header = document.getElementsByTagName('header')[0],
		mainContent = document.getElementsByClassName('stMainContent')[0],
		toolbar = document.getElementsByClassName('wpToolbarActionBar');

	header.className += ' stFixedNavbar';
	mainContent.className += ' stFixedNavbar';

	// set the padding for the main content to that off the navbar
	mainContent.style.paddingTop = header.offsetHeight+"px";
	
	window.onresize = function () {
		// the browser window has been resized, refresh the top padding on the
		// main content
		mainContent.style.paddingTop = header.offsetHeight+"px";
	};
})();
}catch(e){console.log("Module 'st_fixed_navbar': ",e);}
try{(function(_1){
var _2="wpToolbarProjectMenuLink",_3="wpToolbarProjectInfoBox",_4="<edit-mode>",_5="<page-id>",_6="?uri=toolbar:projectTab:projectMenu:returnURI:dialog:CloseModalDialog@oid:"+_5+"&uri=pagemode:edit:"+_4,_7="project:oid:",_8="project:null",_9="title",_a="titleLang",_b="titleDir",_c="editMode",_d="action",_e="resultURI",_f="selectProject",_10="openDialog",_11="openToolbar",_12="closeToolbar",_13={"uri":"pagemode:edit:on"},_14={"uri":"pagemode:edit:off"},_15={"uri":"toolbar:open","params":{"primaryTabURI":"default","secondaryTabURI":"default"}},_16={"uri":"toolbar:open"},_1=_1,_17=_1.document,_18=i$.byId,_19=i$.bindDomEvt,_1a=i$.fromPath,_1b=i$.forEach,_1c=i$.toQuery,_1d=wpModules.toolbar,_1e=function(_1f,e){
var k=e.keyCode;
if(k&&k!==13&&k!==32&&k!==38&&k!==40){
return false;
}
var url=_6.replace(_5,_20()).replace(_4,(_21()?"on":"off")),_22={"url":url,"autoResize":true,"posHandler":"horizontallyBelow","autoPosition":_1f.parentNode,"modal":false,"padding":0,"callbackFn":function(_23){
_1f.focus();
if(_23){
var _24=get(_23,_d);
if(_f==_24){
_25(_23);
}else{
if(_10==_24){
_26(_23);
}else{
if(_11==_24){
_27(_23);
}
}
}
}
}};
_28(_22);
return true;
},_25=function(_29){
var uri=get(_29,_e),_2a=get(_29,_c)=="true";
if(uri){
var _2b=[],_2c=_1d.isToolbarOpened(),_2d=_2e(uri),_2f=_30(_29),_31=_32();
if(_2c&&!_2d){
if(_2f){
_1d.closeToolbar({"editMode":_2a});
}else{
_1d.setEditModeActive(_2a);
}
}else{
if(_2a!=_21()){
if(_2a){
_2b.push(_13);
if(!_2c&&_31){
_2b.push(_15);
}
}else{
_2b.push(_14);
}
}
if(_2c){
if(_2f){
_1d.closeTab();
}else{
if(_31){
if(_2a){
_2b.push(_15);
}else{
_2b.push(_16);
}
}
}
}
_2b.push(_33(uri));
var win=_34(),url=_35(_2b,win),_36=win.parent||win;
_36.location.href=url;
}
}
},_26=function(_37){
var _38=_39(_3a(_37,_e));
if(_38){
var _3b=get(_37,_9)||"Dialog",url=_3c(_38),_3d={"url":url,"title":_3b,"modal":true,"autoResize":true,"metrics":{"width":900},"padding":0,"callbackFn":function(_3e){
if(_3e&&_3e.result=="project_published"){
_1d.closeToolbar({"editMode":false});
}else{
_1d.reloadViewArea(true);
}
}};
_28(_3d);
}
},_27=function(_3f){
var uri=get(_3f,_e);
_1d.openToolbar({tab:uri});
},_28=function(_40){
var _41=new wpModules.dialog.Dialog(_40);
_41.open();
},_35=function(_42,_43){
var _44=_43?_45(_43):"",url=[_44];
_44.indexOf("?")<0?url.push("?"):url.push("&");
_1b(_42,function(_46){
var uri=_46.uri,_47=_46.params;
url.push("uri=");
url.push(uri);
url.push("&");
if(_47){
url.push(_1c(_47));
url.push("&");
}
});
var r=url.join("");
return r;
},_3c=function(_48,_49){
var _4a=_49?_45(_49):"",url=[_4a],uri=_48.uri,_4b=_48.params;
_4a.indexOf("?")<0?url.push("?"):url.push("&");
url.push("uri=");
url.push(uri);
if(_4b){
url.push("&");
url.push(_1c(_4b));
}
var r=url.join("");
return r;
},_33=function(uri,_4c){
var a={};
a.uri=uri;
if(_4c){
a.params=_4c;
}
return a;
},_39=function(_4d){
if(_4d&&_4d.length>0){
var o={};
o.uri=_4d[0];
o.params={};
for(var i=1,l=_4d.length;i<l;i+=2){
var key=_4d[i],val=_4d[i+1];
if(val){
o.params[key]=[val];
}
}
return o;
}
return null;
},get=function(obj,key){
var o=obj[key];
if(o){
var v=o.value;
if(v&&v.length>0){
var r=v[0];
return r;
}
}
return null;
},_3a=function(obj,key){
var o=obj[key];
if(o){
var r=o.value;
return r;
}
return null;
},_20=function(){
var r=_34().ibmCfg.portalConfig.currentPageOID;
return r;
},_21=function(){
var r=_1d.isEditModeActive();
return r;
},_34=function(){
var r=_1d.getViewAreaWindow();
return r;
},_32=function(){
var r=_1a("wpModules.state.page.supportsToolbar",false,_34());
return r;
},_45=function(win){
var r=_1d.getBaseURL(win);
return r;
},_2e=function(uri){
var _4e=_4f(),r=true;
if(_4e){
r=uri.substring(_7.length)!=_4e;
}else{
r=uri!=_8;
}
return r;
},_30=function(_50){
var _51=_3a(_50,_d),r=(_51&&_51.length>1&&_51[1]==_12);
return r;
},_4f=function(){
return _34().ibmCfg.portalConfig.projectUUID;
};
i$.addOnLoad(function(){
var _52=_18(_2);
if(_52){
var _53=function(e){
if(_1e(_52,e)){
e.preventDefault?e.preventDefault():e.returnValue=false;
return false;
}
};
_19(_52,"click",_53);
_19(_52,"keydown",_53);
}
});
})(window);


}catch(e){console.log("Module 'wp_toolbar_projectmenu': ",e);}
try{(function(_1,_2){
var _3="?uri=pagemode:edit:off&uri=op:ibm.portal.operations.showPreviewScreen()&returnURI=dialog:CloseModalDialog",_4={"then":function(){
}},_5=i$.fromPath,_1=_1,_6=_1.document,_7=wpModules.toolbar,_8=_2,_9=function(_a){
var _b=_3,_c=_d("preview_as_user_dialog_title")||"Preview as User",_e={"url":_b,"title":_c,"modal":true,"autoResize":true,"window":_1.parent||_1,"callbackFn":function(_f){
if(_f){
var _10=get(_f,"action");
if(_10=="ok"){
var _11=get(_f,"userID"),_12=get(_f,"path");
_13(_11,_12);
}
}
}},_14=new wpModules.dialog.Dialog(_e);
_14.open();
var r=_4;
return r;
},_13=function(_15,_16){
var url=_7.getBaseURL(_17());
url=url.replace(_16,_16+_15);
url+=url.indexOf("?")<0?"?":"&";
url+="uri=toolbar:close&uri=pagemode:edit:off";
top.location.href=url;
},_18=function(_19){
var r=_19.visibility!==false;
return r;
},_1a=function(_1b){
var r=_1c();
return r;
},_1c=function(){
var r=_5("ibmCfg.portalConfig.canAnonymousUserViewCurrentPage",false,_17());
return r;
},_17=function(){
var r=_7.getViewAreaWindow();
return r;
},_1d=function(_1e){
return {"then":function(cb){
cb(_1e);
}};
},_d=function(key){
var r=_8.nls[key];
return r;
},get=function(obj,key){
var o=obj[key],r=null;
if(o){
var v=o.value;
if(v&&v.length>0){
r=v[0];
}
}
return r;
};
_8.openPreviewAsUserDialog=_9;
_8.isPreviewAsUnauthenticatedUserVisible=_18;
_8.isPreviewAsUnauthenticatedUserEnabled=_1a;
})(window,i$.fromPath("wpModules.toolbar.menuActions",true));


}catch(e){console.log("Module 'wp_toolbar_sitepreview_menuactions': ",e);}
try{(function(_1,_2){
var _3="aria-pressed",_4="selected",_5="true",_6="false",_7=_1.document,_8=i$.addClass,_9=i$.removeClass,_a=wpModules.theme.WindowUtils,_b=_2,_c=function(_d,_e,e){
if(e){
var k=e.keyCode;
if(k&&k!==13&&k!==32&&k!==38&&k!==40){
return false;
}
}
if(typeof wptheme!="undefined"&&wptheme.contextMenu){
var _f=_10(),_11=[];
for(var i=0,l=_f.length;i<l;i++){
_11.push("nm:oid:"+_f[i]);
}
var _12={resURI:"nm:oid:"+_13(_14()),contribURI:_11},_15={"node":_d.parentNode,"menuId":_e,"jsonQuery":_12,"params":{"templateId":"simpleMenuTemplate","alignment":"right","autoScroll":false},"onClose":function(){
_16(_d);
}};
_17(_d);
wptheme.contextMenu.init(_15);
return true;
}else{
return false;
}
},_17=function(_18){
_8(_18.parentNode,_4);
_19(_18,_3,_5);
},_16=function(_1a){
_9(_1a.parentNode,_4);
_19(_1a,_3,_6);
},_19=function(_1b,_1c,_1d){
_1b.setAttribute(_1c,_1d);
},_14=function(){
var r=_a.getWindow(_a.VIEW_AREA);
return r;
},_13=function(win){
var r=win.ibmCfg.portalConfig.currentPageOID;
return r;
},_10=function(){
var r=_a.getPageIDs();
return r;
};
_b.open=_c;
})(window,i$.fromPath("wpModules.toolbar.ContextMenu",true));


}catch(e){console.log("Module 'wp_toolbar_contextmenu': ",e);}
try{(function(_1){
var _2=_1,_3=_1.document,_4=i$.addClass,_5=i$.removeClass,_6=i$.byId,_7=i$.bindDomEvt,_8="minimized",_9="utb-end-preview-btn",_a=3500,_b=500,_c=function(_d,_e){
var _f=function(){
_4(_d,_8);
};
return setTimeout(_f,_e);
},_10=function(_11,_12){
var _13=function(){
_5(_11,_8);
};
return setTimeout(_13,_12);
};
i$.addOnLoad(function(){
var _14=_6(_9);
if(_14){
var _15=_14.parentNode,_16=_c(_15,_a);
_7(_15,"mouseenter",function(){
if(_16){
clearTimeout(_16);
}
_16=_10(_15,_b);
});
_7(_15,"mouseleave",function(){
if(_16){
clearTimeout(_16);
}
_16=_c(_15,_a);
});
}
});
})(window);


}catch(e){console.log("Module 'wp_toolbar_sitepreview': ",e);}
try{var stmobilenav={topHeight:91,toggleMobileNavigation:function(){
var _1=document.getElementById("stNavigation");
var _2=document.getElementById("stMobileNavToggle");
var _3=document.getElementById("stMobileNavBackground");
i$.bindDomEvt(window,"resize",function(){
stmobilenav.closeNavMenu(_1,_2,_3);
});
if(_1.className.indexOf("stNavigationShow")>-1){
this.closeNavMenu(_1,_2,_3);
}else{
_1.className=_1.className.replace("stNavigation","stNavigationShow");
_1.style.top=document.getElementById("stBanner").getBoundingClientRect().bottom+"px";
_3.className=_3.className.replace("stMobileNavBackground","stMobileNavBackgroundShow");
document.getElementById("stNavToggleMenuIcon").className.baseVal="fade-out";
document.getElementById("stNavToggleCloseIcon").className.baseVal="fade-in";
document.getElementById("stMobileNavBackground").style.height=window.outerHeight-this.topHeight+"px";
var _4=(document.getElementById("stNavContainer")!=null)?document.getElementById("stNavContainer"):document.getElementById("stBootstrapNav");
if(_4!=null){
_4.style.height=window.outerHeight-this.topHeight+"px";
}
_2.className+=" selected";
if(stnav.openParentId!=null){
this.toggleMobileNavigationParent(stnav.openParentId);
}
this.manageNavScroll();
}
},toggleMobileNavigationParent:function(id){
var _5=id.substring(0,id.lastIndexOf("_toggle"));
var _6=document.getElementById(_5+"_container");
if(_6.className.indexOf("stDisplayNone")>-1){
_6.className=_6.className.replace("stDisplayNone","stOpenNavLevel");
document.getElementById(_5+"_toggleOpen").className.baseVal="stDisplayNone";
document.getElementById(_5+"_toggleClose").className.baseVal="stDisplayInherit";
document.getElementById("stMobileNavBackground").style.height=window.outerHeight-this.topHeight+"px";
var _7=(document.getElementById("stNavContainer")!=null)?document.getElementById("stNavContainer"):document.getElementById("stBootstrapNav");
if(_7!=null){
_7.style.height=window.outerHeight-this.topHeight+"px";
}
}else{
_6.className=_6.className.replace("stOpenNavLevel","stDisplayNone");
document.getElementById(_5+"_toggleOpen").className.baseVal="stDisplayInherit";
document.getElementById(_5+"_toggleClose").className.baseVal="stDisplayNone";
}
this.manageNavScroll();
},closeNavMenu:function(_8,_9,_a){
var _b=document.getElementsByClassName("stOpenNavLevel");
for(var i=0;i<_b.length;i++){
var _c=_b[i].id.substring(0,_b[i].id.indexOf("_"));
document.getElementById(_c+"_toggleOpen").className.baseVal="stDisplayInherit";
document.getElementById(_c+"_toggleClose").className.baseVal="stDisplayNone";
_b[i].className=_b[i].className.replace("stOpenNavLevel","stDisplayNone");
}
document.getElementById("stNavToggleMenuIcon").className.baseVal="fade-in";
document.getElementById("stNavToggleCloseIcon").className.baseVal="fade-out";
_9.className=_9.className.replace(" selected","");
var _d=_8.clientHeight;
_8.className=_8.className.replace("stNavigationShow","stNavigation");
_8.style.height=_d+"px";
document.getElementById("stMobileNavBackground").style.height=0;
var _e=(document.getElementById("stNavContainer")!=null)?document.getElementById("stNavContainer"):document.getElementById("stBootstrapNav");
if(_e!=null){
_e.style.height="";
}
window.setTimeout(function(){
_a.className=_a.className.replace("stMobileNavBackgroundShow","stMobileNavBackground");
_8.removeAttribute("style");
},250);
},manageNavScroll:function(){
var _f=document.getElementById("stNavContent").scrollHeight;
if((window.innerHeight-this.topHeight)<_f){
document.getElementById("stNavigation").style.overflowY="scroll";
}else{
document.getElementById("stNavigation").style.overflowY="hidden";
}
},manageBootstrapNavScroll:function(id){
var _10=id.substring(0,id.lastIndexOf("_toggle"));
var _11=document.getElementById(_10+"_container");
if(_11.className=="collapse"){
$("#"+_10+"_container").on("shown.bs.collapse",function(){
document.getElementById(_10+"_toggleOpen").className.baseVal="stDisplayNone";
document.getElementById(_10+"_toggleClose").className.baseVal="stDisplayInherit";
stmobilenav.manageNavScroll();
});
}else{
$("#"+_10+"_container").on("hidden.bs.collapse",function(){
document.getElementById(_10+"_toggleOpen").className.baseVal="stDisplayInherit";
document.getElementById(_10+"_toggleClose").className.baseVal="stDisplayNone";
$("#"+_10+"_container").removeAttr("style");
stmobilenav.manageNavScroll();
});
}
}};


}catch(e){console.log("Module 'st_navigation': ",e);}
try{/**
 *  This javascript object controls the mobile navigation menu and contains four functions.
 *    toggleMobileNavigation()
 *      -opens and closes the mobile navigation menu and swaps the open/close menu icons
 *      -closes the menu if the window is resized
 *    toggleMobileNavigationParent(id)
 *      -opens and closes the child page menu and swaps the open/close parent icons
 *      -resets the height of the container and background
 *    closeNavMenu(navDiv, toggleDiv, navBackgroundDiv)
 *      -closes any child menus that are open
 *      -swaps the open/close menu icons
 *      -closes the navigation menu
 *    manageNavScroll
 *      -adds a scrollbar if the height of the nav list is longer than the available height
 *    manageBootstrapNavScroll
 *      -only for bootstrap navigation - once bootstrap has finished its collapse processing
 *          -swaps the open/close menu icons
 *          -adds a scrollbar if the height of the nav list is longer than the available height
 */
var stmobilenav = {
	topHeight : 91, // the toolbar + banner heights = 91 (adjust if yours are different)
	toggleMobileNavigation : function() {
		// get the elements
		var navDiv = document.getElementById("stNavigation");
		var toggleDiv = document.getElementById("stMobileNavToggle");
		var navBackgroundDiv = document.getElementById("stMobileNavBackground");
		// close menu when window is resized
		i$.bindDomEvt(window, "resize", function() {
			stmobilenav.closeNavMenu(navDiv, toggleDiv, navBackgroundDiv);
		});
		if (navDiv.className.indexOf("stNavigationShow") > -1) {
			// if the menu is visible close it
			this.closeNavMenu(navDiv, toggleDiv, navBackgroundDiv);
		}
		else {
			// if the menu is not visible, swap css classes and position the menu on the screen
			navDiv.className = navDiv.className.replace("stNavigation", "stNavigationShow");
			navDiv.style.top = document.getElementById("stBanner").getBoundingClientRect().bottom+"px";
			navBackgroundDiv.className = navBackgroundDiv.className.replace("stMobileNavBackground", "stMobileNavBackgroundShow");
			document.getElementById("stNavToggleMenuIcon").className.baseVal="fade-out";
			document.getElementById("stNavToggleCloseIcon").className.baseVal="fade-in";
			document.getElementById("stMobileNavBackground").style.height = window.outerHeight-this.topHeight+"px";
			var navContainer = (document.getElementById("stNavContainer")!=null)?document.getElementById("stNavContainer"):document.getElementById("stBootstrapNav");
			if (navContainer != null) navContainer.style.height = window.outerHeight-this.topHeight+"px";
			toggleDiv.className += " selected";
			if (stnav.openParentId != null) {
				this.toggleMobileNavigationParent(stnav.openParentId);
			}
			this.manageNavScroll();
		}
	},
	toggleMobileNavigationParent : function(id) {
		// the id of the child div is pagename_container and the id of the parent toggle is pagename_toggle
		var prefix = id.substring(0, id.lastIndexOf("_toggle"));
		var childDiv = document.getElementById(prefix+"_container");
		if (childDiv.className.indexOf("stDisplayNone") > -1) {
			// the child pages are not visible so swap the css class to show them and adjust background and container heights
			childDiv.className = childDiv.className.replace("stDisplayNone", "stOpenNavLevel");
			document.getElementById(prefix+"_toggleOpen").className.baseVal="stDisplayNone";
			document.getElementById(prefix+"_toggleClose").className.baseVal="stDisplayInherit";
			document.getElementById("stMobileNavBackground").style.height = window.outerHeight-this.topHeight+"px";
			var navContainer = (document.getElementById("stNavContainer")!=null)?document.getElementById("stNavContainer"):document.getElementById("stBootstrapNav");
			if (navContainer != null) navContainer.style.height = window.outerHeight-this.topHeight+"px";
		}
		else {
			// the child pages are visible so swap the css classes to hide them
			childDiv.className = childDiv.className.replace("stOpenNavLevel", "stDisplayNone");
			document.getElementById(prefix+"_toggleOpen").className.baseVal="stDisplayInherit";
			document.getElementById(prefix+"_toggleClose").className.baseVal="stDisplayNone";
		}
		this.manageNavScroll();

	},

	closeNavMenu: function(navDiv, toggleDiv, navBackgroundDiv) {
		var subMenus = document.getElementsByClassName("stOpenNavLevel");
		// close any child menus that are open by swapping css classes
		for (var i=0; i<subMenus.length; i++) {
			var prefix = subMenus[i].id.substring(0, subMenus[i].id.indexOf("_"));
			document.getElementById(prefix+"_toggleOpen").className.baseVal="stDisplayInherit";
			document.getElementById(prefix+"_toggleClose").className.baseVal="stDisplayNone";
			subMenus[i].className = subMenus[i].className.replace("stOpenNavLevel", "stDisplayNone");
		}
		// swap the open/close menu icons
		document.getElementById("stNavToggleMenuIcon").className.baseVal="fade-in";
		document.getElementById("stNavToggleCloseIcon").className.baseVal="fade-out";
		toggleDiv.className = toggleDiv.className.replace(" selected", "");
		var backgroundHeight = navDiv.clientHeight;
		// close the menu by swapping css classes then adjust height
		navDiv.className = navDiv.className.replace("stNavigationShow", "stNavigation");
		navDiv.style.height = backgroundHeight +"px";
		document.getElementById("stMobileNavBackground").style.height = 0;
		var navContainer = (document.getElementById("stNavContainer")!=null)?document.getElementById("stNavContainer"):document.getElementById("stBootstrapNav");
		if (navContainer != null) navContainer.style.height = '';
		window.setTimeout(function(){ //wait for animation to complete before removing background
			navBackgroundDiv.className = navBackgroundDiv.className.replace("stMobileNavBackgroundShow", "stMobileNavBackground");
			navDiv.removeAttribute("style");
			}, 250);
	},
	
	manageNavScroll: function() {
		// navHeight will change if a child page menu is open/closed
		var navHeight = document.getElementById("stNavContent").scrollHeight;
		if ((window.innerHeight-this.topHeight) < navHeight) {
			document.getElementById("stNavigation").style.overflowY = "scroll";
		}
		else {
			document.getElementById("stNavigation").style.overflowY = "hidden";
		}
	},
	
	manageBootstrapNavScroll: function(id) {
		// swap the icon and set scroll
		var prefix = id.substring(0, id.lastIndexOf("_toggle"));
		var containerDiv = document.getElementById(prefix+"_container");
		if (containerDiv.className == "collapse") {
			// child pages are not visible
			$("#"+prefix+"_container").on("shown.bs.collapse", function() {
				// after it is shown - swap the icon and set the scroll
				document.getElementById(prefix+"_toggleOpen").className.baseVal="stDisplayNone";
				document.getElementById(prefix+"_toggleClose").className.baseVal="stDisplayInherit";
				stmobilenav.manageNavScroll();
			});
		}
		else {
			// child pages are visible
			$("#"+prefix+"_container").on("hidden.bs.collapse", function() {
				// after it is hidden - swap the icon and set the scroll
				document.getElementById(prefix+"_toggleOpen").className.baseVal="stDisplayInherit";
				document.getElementById(prefix+"_toggleClose").className.baseVal="stDisplayNone";
				$("#"+prefix+"_container").removeAttr("style");
				stmobilenav.manageNavScroll();
			});
		}
	}
};

}catch(e){console.log("Module 'st_navigation': ",e);}