Citizen OS - an e-decisionmaking platform for communities.
diff --git a/public/js/citizenos-fe.bundle.js b/public/js/citizenos-fe.bundle.js
index 3c6b2950c..5b5d596b6 100644
--- a/public/js/citizenos-fe.bundle.js
+++ b/public/js/citizenos-fe.bundle.js
@@ -104,7 +104,7 @@ angular.module("citizenos").directive("cosToggle",[function(){return{restrict:"A
angular.module("citizenos").directive("slideController",["$timeout","$swipe","$rootScope","$window","$parse",function($timeout,$swipe,$rootScope,$window){return{restrict:"EA",scope:{startSlideAt:"@",identifier:"@",class:"@"},link:function(scope,element,attrs){var getElementStyle=function(element){return $window.getComputedStyle(element[0],null)};var getElementWidth=function(element){return Number($window.getComputedStyle(element[0],null).width.replace("px",""))};var getElementMarginLeft=function(element){return Number($window.getComputedStyle(element[0],null)["margin-left"].replace("px",""))};var getElementPaddingLeft=function(element){return Number($window.getComputedStyle(element[0],null)["padding-left"].replace("px",""))};var getElementMaxDistanceLeft=function(element){return(getElementMarginLeft(element)+getElementWidth(element))*-1+$rootScope.wWidth-getElementPaddingLeft(element)};element.ready(function(){var startX,target_position,last_element_position,element_drag_speed,stop_position,ease_animation,new_element_position;var element_style=getElementStyle(element);var element_width=getElementWidth(element);var element_max_distance_left=getElementMaxDistanceLeft(element);var speeding_ticket;$swipe.bind(element,{start:function(coords){startX=coords.x;clearInterval(ease_animation);last_element_position=element_style["margin-left"].replace("px","");speeding_ticket=setInterval(function(){new_element_position=element_style["margin-left"].replace("px","");element_drag_speed=Math.abs(last_element_position-new_element_position);if(element_drag_speed>8){element_drag_speed=8}if(last_element_position-new_element_position>=0){element_drag_speed*=-1}last_element_position=element_style["margin-left"].replace("px","")},20)},move:function(coords){if(element_width>=$rootScope.wWidth){var delta=coords.x-startX;var element_position_current=getElementMarginLeft(element)+delta;if(element_position_current>element_max_distance_left&&element_position_current<0){target_position=element_position_current}else if(element_position_current0){target_position=0}element[0].style.marginLeft=target_position+"px"}},end:function(coords){clearInterval(speeding_ticket);var elementX_current_position=Number(element_style["margin-left"].replace("px",""));if(element_drag_speed!=0&&elementX_current_position!=0&&elementX_current_position!=element_max_distance_left){ease_animation=setInterval(function(){element_drag_speed=element_drag_speed/1.1;elementX_current_position=Number(element_style["margin-left"].replace("px",""))+element_drag_speed;if(Math.abs(element_drag_speed)<.1){clearInterval(ease_animation)}else if(elementX_current_position0){stop_position=0;clearInterval(ease_animation)}else{stop_position=elementX_current_position}element[0].style.marginLeft=stop_position+"px"},10)}},cancel:function(coords){clearInterval(speeding_ticket)}});var onWindowResize=function(){element[0].style.marginLeft="0px";element_max_distance_left=getElementMaxDistanceLeft(element)};var window=angular.element($window);window.bind("resize",onWindowResize);scope.$on("$destroy",function(){window.unbind("resize",onWindowResize)})})}}}]);angular.module("citizenos").directive("dimensions",["$timeout","$rootScope",function($timeout,$rootScope){$rootScope.tabLength=0;return{link:function(scope,elem){$timeout(function(){if($rootScope.tabLength$rootScope.tabsVisibleAreaWidth){$rootScope.trainPosition=-$rootScope.tabsTrainWidth+$rootScope.tabsVisibleAreaWidth-10;if($rootScope.wWidth<=1024){var halfVariable=($rootScope.tabsVisibleAreaWidth/($rootScope.tabFinalLength+10)%1).toFixed(2);if(halfVariable<.18||halfVariable>.8){$rootScope.trainPosition-=50}}}},0)}}}]);angular.module("citizenos").controller("buttonsSlider",["$scope","$rootScope",function($scope,$rootScope){$scope.moveLeft=function(){if($scope.trainPosition<-$scope.tabFinalLength){$scope.trainPosition+=$scope.tabFinalLength}else{$scope.trainPosition=0}};$scope.moveRight=function(){if($scope.trainPosition>-$scope.tabsTrainWidth+$scope.tabsVisibleAreaWidth-10){$scope.trainPosition-=$scope.tabFinalLength}if($scope.trainPosition<-$scope.tabsTrainWidth+$scope.tabsVisibleAreaWidth-10){$scope.trainPosition=-$scope.tabsTrainWidth+$scope.tabsVisibleAreaWidth-10}}}]);angular.module("citizenos").directive("checkHeight",["$timeout",function($timeout){return{scope:true,link:function(scope,el,attrs){$timeout(function(){$timeout(init,false)});function init(){scope.offsetHeight=el[0].offsetHeight;scope.readMore=false;scope.maxTextHeight=200}}}}]);
"use strict";(function(angular){var Module=angular.module("datePicker",[]);Module.constant("datePickerConfig",{template:"templates/datepicker.html",view:"month",views:["year","month","date","hours","minutes"],momentNames:{year:"year",month:"month",date:"day",hours:"hours",minutes:"minutes"},viewConfig:{year:["years","isSameYear"],month:["months","isSameMonth"],hours:["hours","isSameHour"],minutes:["minutes","isSameMinutes"]},step:5});Module.filter("mFormat",function(){return function(m,format,tz){if(!moment.isMoment(m)){return moment(m).format(format)}return tz?moment.tz(m,tz).format(format):m.format(format)}});Module.directive("datePicker",["datePickerConfig","datePickerUtils",function datePickerDirective(datePickerConfig,datePickerUtils){return{require:"?ngModel",template:'',scope:{model:"=datePicker",minDate:"=?",maxDate:"=?"},link:function(scope,element,attrs,ngModel){function prepareViews(){scope.views=datePickerConfig.views.concat();scope.view=attrs.view||datePickerConfig.view;scope.views=scope.views.slice(scope.views.indexOf(attrs.maxView||"year"),scope.views.indexOf(attrs.minView||"minutes")+1);if(scope.views.length===1||scope.views.indexOf(scope.view)===-1){scope.view=scope.views[0]}}function getDate(name){return datePickerUtils.getDate(scope,attrs,name)}datePickerUtils.setParams(attrs.timezone);var arrowClick=false,tz=scope.tz=attrs.timezone,createMoment=datePickerUtils.createMoment,eventIsForPicker=datePickerUtils.eventIsForPicker,step=parseInt(attrs.step||datePickerConfig.step,10),partial=!!attrs.partial,minDate=getDate("minDate"),maxDate=getDate("maxDate"),pickerID=element[0].id,now=scope.now=createMoment(),selected=scope.date=createMoment(scope.model||now),autoclose=attrs.autoClose==="true";if(!scope.model){selected.minute(Math.ceil(selected.minute()/step)*step).second(0)}scope.template=attrs.template||datePickerConfig.template;scope.watchDirectChanges=attrs.watchDirectChanges!==undefined;scope.callbackOnSetDate=attrs.dateChange?datePickerUtils.findFunction(scope,attrs.dateChange):undefined;prepareViews();scope.setView=function(nextView){if(scope.views.indexOf(nextView)!==-1){scope.view=nextView}};scope.selectDate=function(date){if(attrs.disabled){return false}if(isSame(scope.date,date)){date=scope.date}date=clipDate(date);if(!date){return false}scope.date=date;var nextView=scope.views[scope.views.indexOf(scope.view)+1];if(!nextView||partial||scope.model){setDate(date)}if(nextView){scope.setView(nextView)}else if(autoclose){element.addClass("hidden");scope.$emit("hidePicker")}else{prepareViewData()}};function setDate(date){if(date){scope.model=date;if(ngModel){ngModel.$setViewValue(date)}}scope.$emit("setDate",scope.model,scope.view);if(scope.callbackOnSetDate){scope.callbackOnSetDate(attrs.datePicker,scope.date)}}function update(){var view=scope.view;datePickerUtils.setParams(tz);if(scope.model&&!arrowClick){scope.date=createMoment(scope.model);arrowClick=false}var date=scope.date;switch(view){case"year":scope.years=datePickerUtils.getVisibleYears(date);break;case"month":scope.months=datePickerUtils.getVisibleMonths(date);break;case"date":scope.weekdays=scope.weekdays||datePickerUtils.getDaysOfWeek();scope.weeks=datePickerUtils.getVisibleWeeks(date);break;case"hours":scope.hours=datePickerUtils.getVisibleHours(date);break;case"minutes":scope.minutes=datePickerUtils.getVisibleMinutes(date,step);break}prepareViewData()}function watch(){if(scope.view!=="date"){return scope.view}return scope.date?scope.date.month():null}scope.$watch(watch,update);if(scope.watchDirectChanges){scope.$watch("model",function(){arrowClick=false;update()})}function prepareViewData(){var view=scope.view,date=scope.date,classes=[],classList="",i,j;datePickerUtils.setParams(tz);if(view==="date"){var weeks=scope.weeks,week;for(i=0;istartMonth){break}weeks.push(this.getDaysOfWeek(m));m.add(7,"d")}return weeks},getVisibleYears:function(d){var m=moment(d),year=m.year();m.year(year-year%10);year=m.year();var offset=m.utcOffset()/60,years=[],pushedDate,actualOffset;for(var i=0;i<12;i++){pushedDate=createNewDate(year,0,1,0-offset);actualOffset=pushedDate.utcOffset()/60;if(actualOffset!==offset){pushedDate=createNewDate(year,0,1,0-actualOffset);offset=actualOffset}years.push(pushedDate);year++}return years},getDaysOfWeek:function(m){m=m?m:tz?moment.tz(tz).day(0):moment().day(0);var year=m.year(),month=m.month(),day=m.date(),days=[],pushedDate,offset=m.utcOffset()/60,actualOffset;for(var i=0;i<7;i++){pushedDate=createNewDate(year,month,day,0-offset,0,false);actualOffset=pushedDate.utcOffset()/60;if(actualOffset!==offset){pushedDate=createNewDate(year,month,day,0-actualOffset,0,false)}days.push(pushedDate);day++}return days},getVisibleMonths:function(m){var year=m.year(),offset=m.utcOffset()/60,months=[],pushedDate,actualOffset;for(var month=0;month<12;month++){pushedDate=createNewDate(year,month,1,0-offset,0,false);actualOffset=pushedDate.utcOffset()/60;if(actualOffset!==offset){pushedDate=createNewDate(year,month,1,0-actualOffset,0,false)}months.push(pushedDate)}return months},getVisibleHours:function(m){var year=m.year(),month=m.month(),day=m.date(),hours=[],hour,pushedDate,actualOffset,offset=m.utcOffset()/60;for(hour=0;hour<24;hour++){pushedDate=createNewDate(year,month,day,hour-offset,0,false);actualOffset=pushedDate.utcOffset()/60;if(actualOffset!==offset){pushedDate=createNewDate(year,month,day,hour-actualOffset,0,false)}hours.push(pushedDate)}return hours},isAfter:function(model,date){return model&&model.unix()>=date.unix()},isBefore:function(model,date){return model.unix()<=date.unix()},isSameYear:function(model,date){return model&&model.year()===date.year()},isSameMonth:function(model,date){return this.isSameYear(model,date)&&model.month()===date.month()},isSameDay:function(model,date){return this.isSameMonth(model,date)&&model.date()===date.date()},isSameHour:function(model,date){return this.isSameDay(model,date)&&model.hours()===date.hours()},isSameMinutes:function(model,date){return this.isSameHour(model,date)&&model.minutes()===date.minutes()},setParams:function(zone){tz=zone},findFunction:function(scope,name){var parentScope=scope;do{parentScope=parentScope.$parent;if(angular.isFunction(parentScope[name])){return parentScope[name]}}while(parentScope.$parent);return false},findParam:function(scope,name){var parentScope=scope;do{parentScope=parentScope.$parent;if(parentScope[name]){return parentScope[name]}}while(parentScope.$parent);return false},createMoment:function(m){if(tz){return moment.tz(m,tz)}else{return moment.isMoment(m)?moment.unix(m.unix()):moment(m)}},getDate:function(scope,attrs,name){var result=false;if(scope[name]){result=this.createMoment(scope[name]);if(!result.isValid()){result=false}}return result},eventIsForPicker:function(targetIDs,pickerID){return angular.isArray(targetIDs)&&targetIDs.indexOf(pickerID)>-1||targetIDs===pickerID}}});var Module=angular.module("datePicker");var PRISTINE_CLASS="ng-pristine",DIRTY_CLASS="ng-dirty";var Module=angular.module("datePicker");Module.constant("dateTimeConfig",{template:function(attrs,id){return""+"'},format:"YYYY-MM-DD HH:mm",views:["date","year","month","hours","minutes"],autoClose:false,position:"relative"});Module.directive("dateTimeAppend",function(){return{link:function(scope,element){element.bind("click",function(){element.find("input")[0].focus()})}}})})(angular);
"use strict";angular.module("citizenos").controller("LoginEsteIdFormCtrl",["$scope","$log","$state","$window","$timeout","ngDialog","sLocation","sAuth",function($scope,$log,$state,$window,$timeout,ngDialog,sLocation,sAuth){$log.debug("LoginEsteIdFormCtrl");var init=function(){$scope.formMobile={phoneNumber:null,pid:null,challengeID:null,isLoading:false};$scope.isLoadingIdCard=false};init();$scope.doLoginMobiilId=function(){$log.debug("LoginEsteIdFormCtrl.doLoginMobiilId()");$scope.formMobile.isLoading=true;sAuth.loginMobiilIdInit($scope.formMobile.pid,$scope.formMobile.phoneNumber).then(function(loginMobileIdInitResult){$scope.formMobile.challengeID=loginMobileIdInitResult.challengeID;var token=loginMobileIdInitResult.token;return pollMobiilIdLoginStatus(token,3e3,80)}).then(function(){handleLoginSuccess()},function(err){$log.error("Something failed when trying to log in with mobile",err);$scope.formMobile.isLoading=false;$scope.formMobile.challengeID=null})};$scope.doLoginIdCard=function(){$log.debug("LoginEsteIdFormCtrl.doLoginIdCard()");$scope.isLoadingIdCard=true;sAuth.loginIdCard().then(function(){handleLoginSuccess()},function(err){$log.error("Something failed when trying to log in with card",err);$scope.isLoadingIdCard=false})};var handleLoginSuccess=function(){if($state.is("partners.consent")||$state.is("partners.login")){return $window.location.href=sLocation.getAbsoluteUrlApi("/api/auth/openid/authorize")}else{if($state.params&&$state.params.redirectSuccess){return $window.location.href=$state.params.redirectSuccess}else{$window.location.reload()}}};var pollMobiilIdLoginStatus=function(token,milliseconds,retry){if(!retry)retry=80;if(!retry--)throw new Error("Too many retries");return $timeout(function(){return sAuth.loginMobiilIdStatus(token).then(function(response){var statusCode=response.data.status.code;switch(statusCode){case 20001:return $timeout(function(){return pollMobiilIdLoginStatus(token,milliseconds,retry)},milliseconds,false);case 20002:return;case 20003:return;default:$log.error("Mobile login failed",response);return $q.defer().reject(response)}})},milliseconds,false)}}]);
-"use strict";angular.module("citizenos").controller("LoginFormCtrl",["$scope","$log","$state","$stateParams","$window","$document","$interval","ngDialog","sAuth","sLocation","sNotification",function($scope,$log,$state,$stateParams,$window,$document,$interval,ngDialog,sAuth,sLocation,sNotification){$log.debug("LoginFormCtrl");$scope.LOGIN_PARTNERS={facebook:"facebook",google:"google"};var init=function(){$scope.form={email:null,password:null};$scope.app.showNav=false};init();angular.extend($scope.form,$stateParams,$scope.$parent.ngDialogData);var popupCenter=function(url,title,w,h){var userAgent=navigator.userAgent,mobile=function(){return/\b(iPhone|iP[ao]d)/.test(userAgent)||/\b(iP[ao]d)/.test(userAgent)||/Android/i.test(userAgent)||/Mobile/i.test(userAgent)},screenX=typeof window.screenX!="undefined"?window.screenX:window.screenLeft,screenY=typeof window.screenY!="undefined"?window.screenY:window.screenTop,outerWidth=typeof window.outerWidth!="undefined"?window.outerWidth:document.documentElement.clientWidth,outerHeight=typeof window.outerHeight!="undefined"?window.outerHeight:document.documentElement.clientHeight-22,targetWidth=mobile()?null:w,targetHeight=mobile()?null:h,V=screenX<0?window.screen.width+screenX:screenX,left=parseInt(V+(outerWidth-targetWidth)/2,10),right=parseInt(screenY+(outerHeight-targetHeight)/2.5,10),features=[];if(targetWidth!==null){features.push("width="+targetWidth)}if(targetHeight!==null){features.push("height="+targetHeight)}features.push("left="+left);features.push("top="+right);features.push("scrollbars=1");var newWindow=window.open(url,title,features.join(","));if(window.focus){newWindow.focus()}return newWindow};$scope.doLogin=function(){$log.debug("LoginFormCtrl.doLogin()");$scope.errors=null;var success=function(response){if($state.is("partners.consent")||$state.is("partners.login")){return $window.location.href=sLocation.getAbsoluteUrlApi("/api/auth/openid/authorize")}else{$window.location.reload()}};var error=function(response){var status=response.data.status;switch(status.code){case 40001:ngDialog.open({template:"/views/modals/sign_up.html",data:$scope.form,scope:$scope});break;default:$scope.errors=response.data.errors}};sAuth.login($scope.form.email,$scope.form.password).then(success,error)};$scope.doLoginPartner=function(partnerId){if($state.includes("widgets")){$scope.doLoginPartnerPopup(partnerId)}else{$scope.doLoginPartnerNoPopup(partnerId)}};$scope.doLoginPartnerPopup=function(partnerId){if(_.values($scope.LOGIN_PARTNERS).indexOf(partnerId)<0){throw new Error("LoginFormCtrl.doLoginPartner()","Invalid parameter for partnerId",partnerId)}var url=sLocation.getAbsoluteUrlApi("/api/auth/:partnerId",{partnerId:partnerId},{redirectSuccess:sLocation.getAbsoluteUrl("/auth/callback"),display:"popup"});var redirectSuccess=$stateParams.redirectSuccess||sLocation.currentUrl();var loginWindow=popupCenter(url,"CitizenOS Partner Login",470,500);if($document[0].documentMode||$window.navigator.userAgent.indexOf("Edge")>-1){var popupCheck=$interval(function(){if(loginWindow.closed){$interval.cancel(popupCheck);$window.focus();sAuth.status().then(function(user){if(user){$window.location.href=redirectSuccess}})}},250)}var messageHandler=function(message){loginWindow.close();$window.focus();$window.location.href=redirectSuccess};$window.addEventListener("message",messageHandler,false)};$scope.doLoginPartnerNoPopup=function(partnerId){if(_.values($scope.LOGIN_PARTNERS).indexOf(partnerId)<0){throw new Error("LoginFormCtrl.doLoginPartner()","Invalid parameter for partnerId",partnerId)}var url=sLocation.getAbsoluteUrlApi("/api/auth/:partnerId",{partnerId:partnerId});if($stateParams.redirectSuccess){url+="?redirectSuccess="+encodeURIComponent($stateParams.redirectSuccess)}else{var redirectSuccess=sLocation.currentUrl();url+="?redirectSuccess="+redirectSuccess+"?"}$window.location.href=url};$scope.doLoginEsteId=function(){ngDialog.open({template:"/views/modals/login_esteid.html",scope:$scope})};$scope.doLoginSmartId=function(){ngDialog.open({template:"/views/modals/login_smartid.html",scope:$scope})};$scope.doResetPassword=function(){ngDialog.open({template:"/views/modals/password_forgot.html",scope:$scope})}}]);
+"use strict";angular.module("citizenos").controller("LoginFormCtrl",["$scope","$log","$state","$stateParams","$window","$document","$interval","ngDialog","sAuth","sLocation","sNotification",function($scope,$log,$state,$stateParams,$window,$document,$interval,ngDialog,sAuth,sLocation,sNotification){$log.debug("LoginFormCtrl");$scope.LOGIN_PARTNERS={facebook:"facebook",google:"google"};var init=function(){$scope.form={email:null,password:null};$scope.app.showNav=false};init();angular.extend($scope.form,$stateParams,$scope.$parent.ngDialogData);var popupCenter=function(url,title,w,h){var userAgent=navigator.userAgent,mobile=function(){return/\b(iPhone|iP[ao]d)/.test(userAgent)||/\b(iP[ao]d)/.test(userAgent)||/Android/i.test(userAgent)||/Mobile/i.test(userAgent)},screenX=typeof window.screenX!="undefined"?window.screenX:window.screenLeft,screenY=typeof window.screenY!="undefined"?window.screenY:window.screenTop,outerWidth=typeof window.outerWidth!="undefined"?window.outerWidth:document.documentElement.clientWidth,outerHeight=typeof window.outerHeight!="undefined"?window.outerHeight:document.documentElement.clientHeight-22,targetWidth=mobile()?null:w,targetHeight=mobile()?null:h,V=screenX<0?window.screen.width+screenX:screenX,left=parseInt(V+(outerWidth-targetWidth)/2,10),right=parseInt(screenY+(outerHeight-targetHeight)/2.5,10),features=[];if(targetWidth!==null){features.push("width="+targetWidth)}if(targetHeight!==null){features.push("height="+targetHeight)}features.push("left="+left);features.push("top="+right);features.push("scrollbars=1");var newWindow=window.open(url,title,features.join(","));if(window.focus){newWindow.focus()}return newWindow};$scope.doLogin=function(){$log.debug("LoginFormCtrl.doLogin()");$scope.errors=null;var success=function(response){if($state.is("partners.consent")||$state.is("partners.login")){return $window.location.href=sLocation.getAbsoluteUrlApi("/api/auth/openid/authorize")}else{if($stateParams.redirectSuccess){$window.location.href=$stateParams.redirectSuccess}else{$window.location.reload()}}};var error=function(response){var status=response.data.status;switch(status.code){case 40001:ngDialog.open({template:"/views/modals/sign_up.html",data:$scope.form,scope:$scope});break;default:$scope.errors=response.data.errors}};sAuth.login($scope.form.email,$scope.form.password).then(success,error)};$scope.doLoginPartner=function(partnerId){if($state.includes("widgets")){$scope.doLoginPartnerPopup(partnerId)}else{$scope.doLoginPartnerNoPopup(partnerId)}};$scope.doLoginPartnerPopup=function(partnerId){if(_.values($scope.LOGIN_PARTNERS).indexOf(partnerId)<0){throw new Error("LoginFormCtrl.doLoginPartner()","Invalid parameter for partnerId",partnerId)}var url=sLocation.getAbsoluteUrlApi("/api/auth/:partnerId",{partnerId:partnerId},{redirectSuccess:sLocation.getAbsoluteUrl("/auth/callback"),display:"popup"});var redirectSuccess=$stateParams.redirectSuccess||sLocation.currentUrl();var loginWindow=popupCenter(url,"CitizenOS Partner Login",470,500);if($document[0].documentMode||$window.navigator.userAgent.indexOf("Edge")>-1){var popupCheck=$interval(function(){if(loginWindow.closed){$interval.cancel(popupCheck);$window.focus();sAuth.status().then(function(user){if(user){$window.location.href=redirectSuccess}})}},250)}var messageHandler=function(message){loginWindow.close();$window.focus();$window.location.href=redirectSuccess};$window.addEventListener("message",messageHandler,false)};$scope.doLoginPartnerNoPopup=function(partnerId){if(_.values($scope.LOGIN_PARTNERS).indexOf(partnerId)<0){throw new Error("LoginFormCtrl.doLoginPartner()","Invalid parameter for partnerId",partnerId)}var url=sLocation.getAbsoluteUrlApi("/api/auth/:partnerId",{partnerId:partnerId});if($stateParams.redirectSuccess){url+="?redirectSuccess="+encodeURIComponent($stateParams.redirectSuccess)}else{var redirectSuccess=sLocation.currentUrl();url+="?redirectSuccess="+redirectSuccess+"?"}$window.location.href=url};$scope.doLoginEsteId=function(){ngDialog.open({template:"/views/modals/login_esteid.html",scope:$scope})};$scope.doLoginSmartId=function(){ngDialog.open({template:"/views/modals/login_smartid.html",scope:$scope})};$scope.doResetPassword=function(){ngDialog.open({template:"/views/modals/password_forgot.html",scope:$scope})}}]);
"use strict";angular.module("citizenos").controller("LoginSmartIdFormCtrl",["$scope","$log","$state","$window","$timeout","ngDialog","sLocation","sAuth",function($scope,$log,$state,$window,$timeout,ngDialog,sLocation,sAuth){$log.debug("LoginSmartIdFormCtrl");var init=function(){$scope.formSmartId={pid:null,countryCode:"EE",challengeID:null,isLoading:false};$scope.isLoadingIdCard=false};init();$scope.doLoginSmartId=function(){$log.debug("LoginEsteIdFormCtrl.doLoginMobiilId()");$scope.formSmartId.isLoading=true;sAuth.loginSmartIdInit($scope.formSmartId.pid,$scope.formSmartId.countryCode).then(function(loginSmartIdInitResult){$scope.formSmartId.challengeID=loginSmartIdInitResult.challengeID;var token=loginSmartIdInitResult.token;return pollSmartIdLoginStatus(token,3e3,80)}).then(function(){handleLoginSuccess()},function(err){$log.error("Something failed when trying to log in with mobile",err);$scope.formSmartId.isLoading=false;$scope.formSmartId.challengeID=null})};var handleLoginSuccess=function(){if($state.is("partners.consent")||$state.is("partners.login")){return $window.location.href=sLocation.getAbsoluteUrlApi("/api/auth/openid/authorize")}else{if($state.params&&$state.params.redirectSuccess){return $window.location.href=$state.params.redirectSuccess}else{$window.location.reload()}}};var pollSmartIdLoginStatus=function(token,milliseconds,retry){if(!retry)retry=80;if(!retry--)throw new Error("Too many retries");return $timeout(function(){return sAuth.loginSmartIdStatus(token).then(function(response){var statusCode=response.data.status.code;switch(statusCode){case 20001:return $timeout(function(){return pollSmartIdLoginStatus(token,milliseconds,retry)},milliseconds,false);case 20002:return;case 20003:return;default:$log.error("Mobile login failed",response);return $q.defer().reject(response)}})},milliseconds,false)}}]);
"use strict";angular.module("citizenos").controller("MyAccountFormCtrl",["$scope","$log","$stateParams","$filter","$document","ngDialog","sNotification","sAuth","sUser","sUpload",function($scope,$log,$stateParams,$filter,$document,ngDialog,sNotification,sAuth,sUser,sUpload){$log.debug("MyAccountFormCtrl");$scope.tabSelected="profile";$scope.form={name:null,email:null,password:null,company:null,imageUrl:null,passwordConfirm:null};$scope.imageFile=null;angular.extend($scope.form,sAuth.user);$scope.doUpdateProfile=function(){$scope.errors=null;var success=function(res){var emailChanged=sAuth.user.email!==$scope.form.email;angular.extend(sAuth.user,res.data.data);ngDialog.closeAll();if(emailChanged){sNotification.addInfo("MSG_INFO_CHECK_EMAIL_TO_VERIFY_YOUR_NEW_EMAIL_ADDRESS")}};var error=function(res){$scope.errors=res.data.errors};if($scope.form.password){if($scope.form.password!==$scope.form.passwordConfirm){$scope.errors={password:"MSG_ERROR_PASSWORD_MISMATCH"};return}}if($scope.imageFile){sUpload.upload($scope.imageFile,"users").then(function(url){$scope.form.imageUrl=url;sUser.update($scope.form.name,$scope.form.email,$scope.form.password,$scope.form.company,url).then(success,error)})}else{sUser.update($scope.form.name,$scope.form.email,$scope.form.password,$scope.form.company,$scope.form.imageUrl).then(success,error)}};$scope.uploadImage=function(){$document[0].getElementById("profileImage").click()};$scope.switchImage=function(element){$scope.imageFile=element.files[0];var reader=new FileReader;reader.onload=function(){return function(e){$scope.$apply(function(){$scope.form.imageUrl=e.target.result})}}();reader.readAsDataURL(element.files[0])};$scope.deleteProfileImage=function(){if($scope.form.imageUrl.indexOf("amazonaws")>-1){sUpload.delete($scope.form.imageUrl,"users").then(function(){sUser.update($scope.form.name,$scope.form.email,$scope.form.password,$scope.form.company,"").then(function(res){angular.extend(sAuth.user,res.data.data)},function(res){$scope.errors=res.data.errors})})}};$scope.selectTab=function(tab){$scope.tabSelected=tab}}]);
"use strict";angular.module("citizenos").controller("PasswordForgotFormCtrl",["$scope","$log","$state","ngDialog","sAuth","sNotification",function($scope,$log,$state,ngDialog,sAuth,sNotification){$log.debug("PasswordForgotFormCtrl");$scope.form={email:null};$scope.errors=null;$scope.doPasswordReset=function(){$scope.errors=null;var success=function(res){ngDialog.closeAll();sNotification.addInfo("MSG_INFO_PASSWORD_RECOVERY_EMAIL_SENT")};var error=function(res){$scope.errors=res.data.errors};sAuth.passwordResetSend($scope.form.email).then(success,error)}}]);
diff --git a/public/js/citizenos-fe.bundle.js.map b/public/js/citizenos-fe.bundle.js.map
index 132c732f9..23d8c8b2c 100644
--- a/public/js/citizenos-fe.bundle.js.map
+++ b/public/js/citizenos-fe.bundle.js.map
@@ -1 +1 @@
-{"version":3,"sources":["OneDrive.js","moment-with-locales.js","hwcrypto-legacy.js","hwcrypto.js","angular.js","angular-touch.js","angular-resource.js","angular-translate.js","CustomEventPolyfill.js","angular-cookies.js","angular-hwcrypto.js","angular-load.js","angular-moment.js","angular-qrcode.js","angular-sanitize.js","angular-tooltips.js","angular-translate-handler-log.js","angular-translate-loader-static-files.js","angular-translate-storage-cookie.js","angular-translate-storage-local.js","angular-ui-router.js","devtools-detect.js","dropbox-api-v2.js","focusIf.js","google-api.js","jsonpatch.js","loading-bar.js","lodash.js","ngDialog.js","typeahead.js","validator.js","app.js","Group.js","GroupMemberTopic.js","GroupMemberUser.js","Mention.js","Topic.js","TopicAttachment.js","TopicComment.js","TopicEvent.js","TopicInviteUser.js","TopicMemberGroup.js","TopicMemberUser.js","TopicReport.js","TopicVote.js","Vote.js","VoteDelegation.js","cosHttpApiErrorInterceptor.js","cosHttpApiUnauthorizedInterceptor.js","sActivity.js","sAttachment.js","sAuth.js","sGroup.js","sHotkeys.js","sLocation.js","sNotification.js","sPartner.js","sSearch.js","sTopic.js","sTranslate.js","sUpload.js","sUser.js","cosEllipsis.js","cosEmailToDisplayName.js","wrapWithSpan.js","cosDisabled.js","cosDropdown.js","cosEtherpad.js","cosInitials.js","cosInput.js","cosModal.js","cosModalDatepicker.js","cosPagination.js","cosRequired.js","cosResize.js","cosScroll.js","cosStyles.js","cosToggle.js","cosTouchSlider.js","datePicker.js","forms/LoginEsteIdFormCtrl.js","forms/LoginFormCtrl.js","forms/LoginSmartIdFormCtrl.js","forms/MyAccountFormCtrl.js","forms/PasswordForgotFormCtrl.js","forms/PasswordResetFormCtrl.js","forms/PrivacyPolicyCtrl.js","forms/SignUpFormCtrl.js","forms/TopicCommentCreateFormCtrl.js","forms/TopicCommentModerateFormCtrl.js","forms/TopicCommentReportFormCtrl.js","forms/TopicReportFormCtrl.js","forms/TopicReportModerateFormCtrl.js","forms/TopicReportResolveFormCtrl.js","forms/TopicReportReviewFormCtrl.js","forms/TopicVoteCreateCtrl.js","forms/UserConsentFormCtrl.js","ActivitiesCtrl.js","ActivitiesWidgetCtrl.js","AppCtrl.js","GroupCreateSettingsCtrl.js","GroupCtrl.js","HomeCtrl.js","JoinCtrl.js","MyCtrl.js","PartnerCtrl.js","SearchCtrl.js","TopicAttachmentsCtrl.js","TopicCommentCtrl.js","TopicCtrl.js","TopicFollowUpCtrl.js","TopicSettingsCtrl.js","TopicVoteCtrl.js","TopicVoteDelegateCtrl.js","TopicVoteSignCtrl.js"],"names":["__extends","this","e","t","r","constructor","i","hasOwnProperty","prototype","exports","module","define","amd","window","global","self","OneDrive","n","a","s","u","require","o","l","Error","code","d","call","length","1","SDK_VERSION_NUMBER","SDK_VERSION","TYPE_BOOLEAN","TYPE_FUNCTION","TYPE_OBJECT","TYPE_STRING","TYPE_NUMBER","VROOM_URL","VROOM_ENDPOINT_HINT","GRAPH_URL","NONCE_LENGTH","CUSTOMER_TID","DEFAULT_QUERY_ITEM_PARAMETER","Object","defineProperty","value","2","open","save","onAuth","./OneDriveApp","./controllers/Oauth","3","isReady","throwError","unknown","exposeToPublic","logMessage","launchPicker","then","reset","launchSaver","checked","./controllers/Picker","./controllers/Saver","./models/ErrorType","./models/OneDriveSdkError","./utilities/ErrorHandler","./utilities/Logging","4","c","b","apiEndpointUrl","appendToPath","url","clientId","method","HTTP_GET","apiEndpoint","headers","Authorization","accessToken","id","Promise","start","JSON","parse","responseText","errorCode","webRequestFailure","message","p","webUrl","push","all","logError","f","format","apiActionNamingSpace","HTTP_POST","json","stringify","permissions","h","v","File","FileReader","unsupportedFeature","onerror","fileReaderFailure","onload","name","appendQueryStrings","m","target","result","upload","progressPercentage","readAsArrayBuffer","filesV2","graph_odb","Prefer","_","file","isPathDataUrl","y","isPathFullUrl","E","w","resolve","g","appendQueryString","Accept","deserializeJSON","mySite","badResponse","statusCodeToString","getResponseHeader","graph_odc","P","T","resourceId","O","setTimeout","k","parentReference","driveId","U","getItem","getItems","shareItem","shareItems","saveItemByFormUpload","saveItemByUriUpload","getUserTenantUrl","../models/ApiEndpoint","../models/ErrorType","../models/OneDriveSdkError","../utilities/Logging","../utilities/ObjectUtilities","../utilities/StringUtilities","../utilities/UrlUtilities","../utilities/XHR","es6-promise","5","invokerOptions","popup","launchInvoker","launch","error","cleanPopupAndIFrame","buildOauthPromise","type","buildPickerUI","items","driveItem","needAPICall","toLowerCase","apiRequestConfig","buildApiConfig","makeApiRequest","oauthResponse","loginHint","endpointHint","aad","success","cancel","needOauth","auth","buildOauthConfig","updateLoginHint","idToken","msa","tenant","optionsError","timeStamp","isConsumerAccount","pickerUX","generatePickerUX","siteUrl","buildPickerUXConfig","navEntryLocation","entryLocation","navSourceTypes","sourceTypes","linkType","invokePickerUX","getApiRequestConfig","internalError","close","removeIFrame","../Constants","../models/DomainHint","../utilities/ErrorHandler","../utilities/Popup","./ApiRequest","./LoginCache","./Oauth","./PickerUX","6","getCacheItem","Date","getTime","parseIdToken","preferredUserName","tid","setCacheItem","split","replace","atob","getLoginHint","loginHintExpired","../utilities/Cache","7","onDocumentReady","readCurrentUrlParameters","opener","displayOverlay","state","C","send","R","popupOpen","endpoint","AAD","AADv2","MSA","switchAccount","redirect","S","redirect_uri","redirectUri","client_id","response_type","resource","origin","scopes","map","join","I","scope","response_mode","nonce","generateNonce","indexOf","A","document","location","onMessage","data","substring","source","getPopupWindow","removeMessageListener","openPopup","needSharePointPermission","handleOauth","../models/OauthEndpoint","../utilities/Channel","../utilities/DomUtilities","8","shallowClone","applicationId","accessLevel","ACCESS_LEVEL","filter","navEnabled","parentDiv","selectionMode","multiSelect","viewType","VIEW_TYPE","action","share","download","queryItems","queryParameters","createLinkParameters","getDefaultSharingConfig","../models/PickerActionType","../models/PickerOptions","./Invoker","9","validateUrlProtocol","iframe","contentWindow","getReceiver","pickerId","conversationId","aid","ln","ru","sdk","st","sn","ss","createElement","style","position","width","height","src","appendChild","parentNode","removeChild","10","query","uploadType","dataUrl","fileName","sourceUri","form","@name.conflictBehavior","nameConflictBehavior","fileInput","progress","../models/SaverActionType","../models/SaverOptions","../models/UploadType","11","12","13","typeError","popupClosed","14","RegExp","validateType","validateCallback","invokeAppCallback","parseAdvancedOptions","trimUrlQuery","href","checkClientId","test","advanced","validateRedirectUrlHost","readUrlParameters","select","expand","sort","iframeParentDiv","nodeName","Array","parseNavigationOptions","navigation","sharePoint","sitePath","listPath","disable","../utilities/CallbackInvoker","../utilities/TypeValidators","./DomainHint","./ErrorType","./OneDriveSdkError","15","16","toString","17","18","./InvokerOptions","./PickerActionType","19","20","_setFileInfo","sourceInputElementId","getFileNameFromUrl","getFileInput","./SaverActionType","./UploadType","21","22","Storage","localStorage","setItem","removeCacheItem","./ErrorHandler","23","arguments","apply","invokeCallbackAsynchronous","24","receiver","postMessage","25","getElementById","readyState","addEventListener","getMilliseconds","removeEventListener","HTMLInputElement","files","size","cssText","innerHTML","head","body","insertBefore","firstChild","./UrlUtilities","26","registerErrorObserver","27","_log","loggingEnabled","console","log","28","serializeJSON","./Logging","29","POPUP_PINGER_INTERVAL","getCurrentPopup","_currentPopup","setCurrentPopup","createPopupFeatures","screenX","Math","max","outerWidth","screenY","outerHeight","isPopupOpen","_popup","_url","focus","setInterval","clearInterval","getCurrentUrl","closed","30","31","isArray","./ObjectUtilities","./StringUtilities","32","charAt","keys","encodeURIComponent","substr","lastIndexOf","floor","random","toUpperCase","host","decodeURIComponent","getOrigin","33","_json","_headers","_method","_clientId","_apiEndpoint","_abortRequest","_successCallback","_failureCallback","_request","XMLHttpRequest","ontimeout","_onTimeout","status","_callSuccessCallback","_callFailureCallback","timeout","_setHeaders","_progressCallback","HTTP_PUT","_completed","onprogress","lengthComputable","bytesTransferred","loaded","totalBytes","total","_callProgressCallback","abort","setRequestHeader","34","ES6Promise","X","G","process","nextTick","z","K","createTextNode","observe","characterData","MessageChannel","port1","onmessage","port2","Y","ee","runOnLoop","runOnContext","re","H","_state","_result","TypeError","ae","_label","ne","oe","_onerror","ie","_subscribers","se","ue","D","_instanceConstructor","promise","B","_input","_remaining","_enumerate","q","M","N","L","x","F","j","V","Function","cast","J","te","Q","W","MutationObserver","WebKitMutationObserver","$","Z","Uint8ClampedArray","importScripts","_eachEntry","_settledAt","_willSettleAt","race","reject","_setScheduler","_setAsap","_asap","catch","polyfill","factory","moment","hookCallback","hooks","setHookCallback","callback","input","isObject","isObjectEmpty","obj","getOwnPropertyNames","isUndefined","isNumber","isDate","arr","fn","res","hasOwnProp","extend","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","some","fun","len","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","invalidWeekday","_strict","bigHour","undefined","isFrozen","createInvalid","NaN","momentProperties","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","min","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","args","arg","key","slice","stack","deprecations","deprecateSimple","isFunction","set","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","longDateFormat","_longDateFormat","formatUpper","defaultInvalidDate","invalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","ordinal","_ordinal","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","pow","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","func","localeData","removeFormattingTokens","match","makeFormatFunction","array","formatMoment","expandFormat","replaceLongDateFormatTokens","lastIndex","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","year","parseTwoDigitYear","parseInt","daysInYear","isLeapYear","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","get","month","date","daysInMonth","stringGet","stringSet","prioritized","mod","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","localeMonths","_months","isFormat","defaultLocaleMonthsShort","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","defaultMonthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","defaultLocaleWeekdays","localeWeekdays","_weekdays","day","defaultLocaleWeekdaysShort","localeWeekdaysShort","_weekdaysShort","defaultLocaleWeekdaysMin","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","defaultWeekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","localeMeridiem","isLower","getSetHour","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","globalLocale","normalizeLocale","chooseLocale","names","next","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","values","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","createLocal","curWeek","gg","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","exec","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","toISOString","keepOffset","toDate","inspect","zone","prefix","datetime","suffix","inputString","postformat","humanize","fromNow","toNow","newLocaleData","lang","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","parseMs","getSetMillisecond","getZoneAbbr","getZoneName","proto","isoWeeks","isoWeeksInYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","proto$1","firstDayOfYear","firstDayOfWeek","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","withSuffix","abs$1","toISOString$1","toFixed","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","weekdaysParseExact","symbolMap","0","pluralForm","plurals","pluralize","str","months$1","symbolMap$1","numberMap","١","٢","٣","٤","٥","٦","٧","٨","٩","٠","symbolMap$2","numberMap$1","pluralForm$1","plurals$1","pluralize$1","months$2","suffixes","70","80","50","100","60","90","plural","word","num","forms","relativeTimeWithPlural","standalone","lastDigit","last2Digits","symbolMap$3","numberMap$2","১","২","৩","৪","৫","৬","৭","৮","৯","০","symbolMap$4","numberMap$3","༡","༢","༣","༤","༥","༦","༧","༨","༩","༠","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","text","softMutation","mutationTable","translate","monthsParseExact","ll","lll","llll","months$3","plural$1","translate$1","shortMonthsParse","longMonthsParse","affix","lookup","processRelativeTime","processRelativeTime$1","processRelativeTime$2","months$4","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsNominativeEl","_monthsGenitiveEl","calendarEl","_calendarEl","monthsShortDot","monthsShort$1","monthsRegex$1","monthsStrictRegex","monthsShortStrictRegex","monthsShortDot$1","monthsShort$2","monthsShortDot$2","monthsShort$3","monthsParse$1","monthsRegex$2","processRelativeTime$3","symbolMap$5","numberMap$4","۱","۲","۳","۴","۵","۶","۷","۸","۹","۰","numbersPast","numbersFuture","translate$2","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","months$5","monthsShort$4","weekdays$1","processRelativeTime$4","symbolMap$6","numberMap$5","૧","૨","૩","૪","૫","૬","૭","૮","૯","૦","symbolMap$7","numberMap$6","१","२","३","४","५","६","७","८","९","०","translate$3","weekEndings","translate$4","plural$2","translate$5","suffixes$1","40","symbolMap$8","numberMap$7","១","២","៣","៤","៥","៦","៧","៨","៩","០","symbolMap$9","numberMap$8","೧","೨","೩","೪","೫","೬","೭","೮","೯","೦","isUpper","suffixes$2","processRelativeTime$5","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","firstDigit","translateSeconds","translateSingular","special","translate$6","units$1","format$1","relativeTimeWithPlural$1","relativeTimeWithSingular","relativeSeconds","translator","words","correctGrammaticalCase","wordKey","lastWeekDays","translate$7","symbolMap$a","numberMap$9","relativeTimeMr","symbolMap$b","numberMap$a","၁","၂","၃","၄","၅","၆","၇","၈","၉","၀","symbolMap$c","numberMap$b","monthsShortWithDots$1","monthsShortWithoutDots$1","monthsParse$2","monthsRegex$3","monthsShortWithDots$2","monthsShortWithoutDots$2","monthsParse$3","monthsRegex$4","symbolMap$d","numberMap$c","੧","੨","੩","੪","੫","੬","੭","੮","੯","੦","monthsNominative","monthsSubjective","plural$3","translate$8","relativeTimeWithPlural$2","plural$4","relativeTimeWithPlural$3","monthsParse$4","months$6","days$1","months$7","monthsShort$5","plural$5","translate$9","processRelativeTime$6","translator$1","translator$2","symbolMap$e","numberMap$d","௧","௨","௩","௪","௫","௬","௭","௮","௯","௦","suffixes$3","numbersNouns","translateFuture","translatePast","translate$a","numberNoun","numberAsNoun","hundred","ten","one","suffixes$4","processRelativeTime$7","plural$6","relativeTimeWithPlural$4","weekdaysCaseReplace","nominative","accusative","genitive","nounCase","processHoursFunction","months$8","days$2","_getter","_setter","enumerable","configurable","RangeError","Number","reverse","LN2","__defineGetter__","__defineSetter__","_bytes","BYTES_PER_ELEMENT","byteLength","__proto__","of","ArrayBuffer","SyntaxError","byteOffset","buffer","_unpack","_pack","Boolean","Int8Array","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DataView","drain","chain","failure","triggered","def","__NPO__","setImmediate","writable","hwcrypto","_debug","attachEvent","hasPluginFor","mime","navigator","mimeTypes","hasExtensionFor","cls","_hex2array","_array2hex","_mimeid","loadPluginFor","element","objectTag","div","setAttribute","digidoc_mime","digidoc_chrome","USER_CANCEL","NO_CERTIFICATES","INVALID_ARGUMENT","DRIVER_ERROR","TECHNICAL_ERROR","NO_IMPLEMENTATION","NOT_ALLOWED","probe","event","DigiDocPlugin","_name","certificate_ids","code2str","err","errorMessage","code2err","check","getVersion","getCertificate","options","pluginLanguage","ver","cert","hex","ex","hash","cid","language","info","DigiDocExtension","NoBackend","_backend","fields","_testAndUse","Backend","isLoaded","_autodetect","force","tryDigiDocPlugin","userAgent","use","backend","debug","hwversion","protocol","certificate","encoded","signature","minErr","ErrorConstructor","SKIP_INDEXES","templateArgs","template","paramPrefix","shiftedIndex","toDebugString","REGEX_STRING_REGEXP","VALIDITY_STATE_PROPERTY","isString","uppercase","manualLowercase","ch","String","fromCharCode","charCodeAt","manualUppercase","msie","jqLite","jQuery","splice","getPrototypeOf","ngMinErr","angular","angularModule","uid","documentMode","isArrayLike","isWindow","item","iterator","context","isPrimitive","isBlankObject","forEachSorted","reverseParams","iteratorFn","nextUid","setHashKey","$$hashKey","baseExtend","dst","objs","deep","jj","isRegExp","cloneNode","isElement","merge","inherit","parent","extra","create","noop","$inject","identity","valueFn","valueRef","hasCustomToString","isDefined","isScope","$evalAsync","$watch","isFile","isFormData","isBlob","isBoolean","isPromiseLike","TYPED_ARRAY_REGEXP","isTypedArray","isArrayBuffer","trim","escapeForRegexp","node","attr","find","makeMap","nodeName_","includes","arrayRemove","copy","destination","stackSource","stackDest","copyRecurse","copyElement","needsRecurse","copyType","copied","equals","o1","o2","t1","t2","keySet","createMap","csp","rules","ngCspElement","querySelector","ngCspAttribute","getAttribute","noUnsafeEval","noInlineStyle","jq","name_","el","ngAttrPrefixes","concat","sliceArgs","startIndex","bind","curryArgs","toJsonReplacer","toJson","pretty","fromJson","ALL_COLONS","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","addDateMinutes","setMinutes","getMinutes","convertTimezoneToLocal","dateTimezoneOffset","timezoneOffset","startingTag","elemHtml","append","html","nodeType","NODE_TYPE_TEXT","tryDecodeURIComponent","parseKeyValue","keyValue","splitPoint","toKeyValue","arrayValue","encodeUriQuery","encodeUriSegment","pctEncodeSpaces","getNgAttribute","ngAttr","angularInit","bootstrap","appElement","hasAttribute","candidate","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","compile","$apply","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","reload","getTestability","rootElement","SNAKE_CASE_REGEXP","snake_case","letter","bindJQueryFired","bindJQuery","originalCleanData","jqName","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","elems","events","elem","$destroy","triggerHandler","JQLite","assertArg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","path","bindFnToScope","lastInstance","getBlockNodes","nodes","endNode","blockNodes","nextSibling","NODE_TYPE_ELEMENT","NODE_TYPE_ATTRIBUTE","NODE_TYPE_COMMENT","NODE_TYPE_DOCUMENT","NODE_TYPE_DOCUMENT_FRAGMENT","setupModuleLoader","$injectorMinErr","ensure","$$minErr","requires","configFn","invokeQueue","configBlocks","runBlocks","invokeLater","moduleInstance","_invokeQueue","_configBlocks","_runBlocks","provider","invokeLaterAndSetModuleName","service","constant","decorator","animation","directive","component","run","block","insertMethod","queue","recipeName","factoryFunction","$$moduleName","shallowCopy","serializeObject","seen","full","major","minor","dot","codeName","publishExternalAPI","callbacks","$$counter","$$csp","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","htmlAnchorDirective","inputDirective","textarea","formDirective","script","scriptDirective","selectDirective","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$animateCss","$CoreAnimateCssProvider","$$animateJs","$$CoreAnimateJsProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$AnimateRunnerFactoryProvider","$$animateAsyncRun","$$AnimateAsyncRunFactoryProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$xhrFactory","$xhrFactoryProvider","$jsonpCallbacks","$jsonpCallbacksProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","expando","jqCache","cache","jqId","addEventListenerFn","removeEventListenerFn","jqNextId","SPECIAL_CHARS_REGEXP","MOZ_HACK_REGEXP","MOUSE_EVENT_MAP","mouseleave","mouseenter","jqLiteMinErr","camelCase","SINGLE_TAG_REGEXP","HTML_REGEXP","TAG_NAME_REGEXP","XHTML_TAG_REGEXP","wrapMap","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","jqLiteIsTextNode","jqLiteAcceptsData","jqLiteHasData","ng339","jqLiteCleanData","jqLiteRemoveData","jqLiteBuildFragment","wrap","fragment","createDocumentFragment","lastChild","childNodes","textContent","jqLiteParseHTML","parsed","jqLiteWrapNode","wrapper","replaceChild","jqLiteContains","Node","contains","compareDocumentPosition","argIsString","jqLiteAddNodes","jqLiteClone","jqLiteDealoc","onlyDescendants","querySelectorAll","descendants","jqLiteOff","unsupported","expandoStore","jqLiteExpandoStore","handle","removeHandler","listenerFns","expandoId","createIfNecessary","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","jqLiteEmpty","jqLiteRemove","keepData","jqLiteDocumentLoaded","win","ready","fired","trigger","eq","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","ALIASED_ATTR","ngMin","ngMax","getBooleanAttrName","booleanAttr","getAliasedAttrName","removeData","hasData","removeAttr","removeAttribute","hasClass","css","lowercasedName","attributes","getNamedItem","specified","getText","$dv","multiple","selected","arg1","arg2","nodeCount","nodeValue","createEventHandler","eventHandler","isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","handlerWrapper","specialHandlerWrapper","defaultHandlerWrapper","handler","specialMouseHandlerWrapper","related","relatedTarget","jqLiteOn","types","addHandler","noEventListener","off","onFn","replaceWith","replaceNode","children","contents","contentDocument","child","prepend","wrapNode","remove","detach","after","newElement","addClass","removeClass","toggleClass","condition","className","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","eventFnsCopy","handlerArgs","eventName","preventDefault","arg3","unbind","$get","classes","hashKey","nextUidFn","objType","HashMap","isolatedUid","put","ARROW_ARG","FN_ARGS","FN_ARG_SPLIT","FN_ARG","STRIP_COMMENTS","stringifyFn","extractArgs","fnText","anonFn","annotate","argDecl","last","underscore","modulesToLoad","INSTANTIATING","providerSuffix","loadedModules","providerCache","supportObject","providerInjector","$injector","createInternalInjector","serviceName","caller","instanceCache","protoInstanceInjector","instanceInjector","loadModules","delegate","provider_","instantiate","enforceReturnValue","enforcedReturnValue","factoryFn","enforce","decorFn","origProvider","orig$get","origInstance","$delegate","moduleFn","runInvokeQueue","invokeArgs","getService","injectionArgs","locals","$$annotate","isClass","Type","ctor","has","autoScrollingEnabled","disableAutoScrolling","getFirstAnchor","list","getYOffset","scroll","yOffset","getComputedStyle","getBoundingClientRect","bottom","scrollTo","scrollIntoView","elemTop","top","scrollBy","elm","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","$animateMinErr","ELEMENT_NODE","NG_ANIMATE_CLASSNAME","mergeClasses","extractElementNode","splitClasses","klass","prepareAnimateOptions","postDigestQueue","postDigestElements","enabled","pin","domOperation","addRemoveClassesPostDigest","runner","complete","updateData","changed","handleCSSClassChanges","existing","toAdd","toRemove","classesAdded","classesRemoved","$$postDigest","$$registeredAnimations","register","classNameFilter","expression","$$classNameFilter","reservedRegex","domInsert","parentElement","afterElement","afterNode","previousElementSibling","end","enter","move","leave","addclass","setClass","animate","tempClasses","waitQueue","waitForTick","passed","INITIAL_STATE","DONE_PENDING_STATE","DONE_COMPLETE_STATE","AnimateRunner","response","runners","count","done","onProgress","setHost","rafTick","timeoutTick","_doneCallbacks","_tick","doc","hidden","getPromise","resolveHandler","rejectHandler","finally","pause","resume","_resolve","initialOptions","$$prepared","cleanupStyles","applyAnimationContents","Browser","history","clearTimeout","pendingDeferIds","isMock","outstandingRequestCount","outstandingRequestCallbacks","$$completeOutstandingRequest","completeOutstandingRequest","$$incOutstandingRequestCount","pop","getHash","notifyWhenNoOutstandingRequests","cachedState","lastHistoryState","lastBrowserUrl","baseElement","pendingLocation","getCurrentState","cacheState","sameState","sameBase","stripHash","urlChangeListeners","urlChangeInit","cacheStateAndFireUrlChange","fireUrlChange","lastCachedState","listener","onUrlChange","$$applicationDestroyed","$$checkUrlChange","baseHref","defer","delay","timeoutId","deferId","caches","cacheFactory","cacheId","stats","capacity","MAX_VALUE","lruHash","freshEnd","staleEnd","lruEntry","refresh","link","removeAll","destroy","entry","nextEntry","prevEntry","$compileMinErr","UNINITIALIZED_VALUE","_UNINITIALIZED_VALUE","$$sanitizeUriProvider","hasDirectives","Suffix","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","bindingCache","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","mode","collection","optional","attrName","parseDirectiveBindings","bindToController","controllerAs","identifierForController","assertValidDirectiveName","getDirectiveRequire","registerDirective","directiveFactory","directives","restrict","registerComponent","makeInjectable","tElement","tAttrs","$element","$attrs","templateUrl","ddo","transclude","aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","TTL","onChangesTtl","SIMPLE_ATTR_NAME","specialAttrHolder","onChangesQueue","flushOnChangesQueue","errors","Attributes","attributesToCopy","$attr","$$element","$normalize","directiveNormalize","$addClass","classVal","$removeClass","$updateClass","newClasses","oldClasses","tokenDifference","$set","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","innerIdx","lastTuple","setSpecialAttr","$$observers","$observe","attrs","listeners","$$inter","attribute","removeNamedItem","setNamedItem","safeAddClass","startSymbol","endSymbol","denormalizeTemplate","NG_ATTR_BINDING","MULTI_ELEMENT_DIR_RE","$$addBindingInfo","binding","$$addBindingClass","$$addScopeInfo","isolated","noTemplate","dataName","$$addScopeClass","$$createComment","comment","content","createComment","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","NOT_EMPTY","domNode","compositeLinkFn","compileNodes","namespace","publicLinkFn","cloneConnectFn","needsNewScope","$parent","$new","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","detectNamespaceForChildElements","$linkNode","wrapTemplate","controllerName","instance","nodeList","$rootElement","linkFns","nodeLinkFn","childLinkFn","linkFnFound","nodeLinkFnFound","collectDirectives","applyDirectivesToNode","terminal","transcludeOnThisElement","templateOnThisElement","childScope","idx","childBoundTranscludeFn","stableNodeList","nodeListLength","createBoundTranscludeFn","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","boundSlots","$$slots","slotName","attrsMap","addDirective","nName","ngAttrName","isNgAttr","nAttrs","attrStartName","attrEndName","PREFIX_REGEXP","multiElementMatch","directiveIsMultiElement","addAttrInterpolateDirective","animVal","addTextInterpolateDirective","collectCommentDirectives","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","groupedElementsLink","compilationGenerator","eager","compiled","lazyCompilation","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","terminalPriority","newScopeDirective","controllerDirectives","newIsolateScopeDirective","templateDirective","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","hasElementTranscludeDirective","$compileNode","$template","replaceDirective","childTranscludeFn","didScanForMultipleTransclusion","mightHaveMultipleTransclusionError","directiveValue","$$start","$$end","assertNoDuplicate","$$tlb","candidateDirective","scanningIndex","$$parentNode","slots","slotMap","filledSlots","elementSelector","filled","$$isolateScope","$$newScope","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectiveScope","mergeTemplateAttributes","compileTemplateUrl","$$originalDirective","addLinkFns","pre","post","cloneAndAnnotateFn","linkNode","controllerScope","elementControllers","scopeBindingInfo","controllersBoundTransclude","isSlotFilled","setupControllers","$$isolateBindings","initializeDirectiveBindings","removeWatches","$on","controllerDirective","$$bindings","identifier","bindingInfo","controllerResult","getControllers","controllerInstance","$onChanges","initialChanges","$onInit","$doCheck","$onDestroy","callOnDestroyHook","invokeLinkFn","scopeToChild","$postLink","cloneAttachFn","slotTranscludeFn","inheritType","property","controllerKey","$scope","$transclude","newScope","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","delayedNodeLinkFn","ignoreChildLinkFn","what","previousDirective","wrapModuleNameIfDefined","moduleName","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","textInterpolateLinkFn","expressions","interpolateFnWatchAction","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","newValue","$$scope","oldValue","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","annotation","removeWatchCollection","changes","initializeBinding","lastValue","parentGet","parentSet","compare","removeWatch","recordChanges","SimpleChange","literal","simpleCompare","assign","parentValueWatch","parentValue","$stateful","$watchCollection","initialValue","parentValueWatchAction","currentValue","previousValue","triggerOnChangesHook","previous","current","isFirstChange","nodesetLinkingFn","directiveLinkingFn","str1","str2","tokens1","tokens2","outer","jqNodes","$controllerMinErr","CNTRL_REG","ident","globals","allowGlobals","later","controllerPrototype","addIdentifier","$controllerInit","exception","cause","offsetWidth","APPLICATION_JSON","CONTENT_TYPE_APPLICATION_JSON","Content-Type","JSON_START","JSON_ENDS","[","{","JSON_PROTECTION_PREFIX","$httpMinErr","$httpMinErrLegacyFn","serializeValue","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","tempData","contentType","isJsonLike","jsonStart","parseHeaders","fillInParsed","line","headerVal","headerKey","headersGetter","headersObj","transformData","fns","isSuccess","transformResponse","transformRequest","common","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","useLegacyPromise","useLegacyPromiseExtensions","interceptorFactories","interceptors","defaultCache","reversedInterceptors","interceptorFactory","requestConfig","mergeHeaders","requestInterceptors","responseInterceptors","when","interceptor","request","requestError","responseError","chainInterceptors","serverRequest","thenFn","rejectFn","executeHeaderFns","headerContent","processedHeaders","headerFn","header","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","defaultHeadersIteration","reqData","withCredentials","sendReq","resp","pendingRequests","createShortMethods","createShortMethodsWithData","deferred","cachedResp","buildUrl","removePendingReq","resolvePromiseWithResult","resolvePromise","xsrfValue","urlIsSameOrigin","responseType","createApplyHandlers","eventHandlers","uploadEventHandlers","applyHandlers","$applyAsync","callEventHandler","$$phase","headersString","statusText","resolveHttpPromise","serializedParams","createXhr","createHttpBackend","$browserDefer","rawDocument","callbackPath","createCallback","jsonpDone","jsonpReq","getResponse","completeRequest","removeCallback","xhr","requestLoaded","urlResolve","getAllResponseHeaders","onabort","timeoutRequest","async","wasCalled","$interpolateMinErr","throwNoconcat","interr","startSymbolLength","endSymbolLength","escapedStartRegexp","escape","escapedEndRegexp","unescapeText","constantWatchDelegate","objectEquality","constantInterp","unwatch","constantInterpolateWatch","mustHaveExpression","unescapedText","exp","$$watchDelegate","endIndex","parseFns","textLength","expressionPositions","parseStringifyInterceptor","compute","getValue","getTrusted","interpolationFn","$watchGroup","interpolateFnWatcher","oldValues","currValue","intervals","interval","invokeApply","hasParams","iteration","skipApply","$$intervalId","tick","notify","callbackMap","callbackId","called","PATH_MATCH","DEFAULT_PORTS","http","https","ftp","$locationMinErr","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","startsWith","haystack","needle","stripBaseUrl","trimEmptyHash","stripFile","serverBase","LocationHtml5Url","appBase","appBaseNoFile","basePrefix","$$html5","$$parse","pathUrl","$$compose","$$url","$$absUrl","$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","removeWindowsDriveName","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationPrototype","$$replace","absUrl","locationGetter","locationGetterSetter","paramValue","Location","$$state","preprocess","html5Mode","requireBase","rewriteLinks","LocationMode","initialUrl","IGNORE_URI_REGEXP","setBrowserUrlWithFallback","oldUrl","oldState","ctrlKey","metaKey","shiftKey","which","button","absHref","initializing","newUrl","newState","$broadcast","afterLocationChange","$digest","$locationWatch","currentReplace","urlOrStateChanged","debugEnabled","flag","consoleLog","formatError","sourceURL","logFn","hasApply","$parseMinErr","ensureSafeMemberName","fullExpression","getStringValue","ensureSafeObject","CALL","APPLY","BIND","ensureSafeFunction","ensureSafeAssignContext","OPERATORS","operator","ESCAPE","'","\"","Lexer","lex","readString","peek","readNumber","isIdentifierStart","peekMultichar","readIdent","is","isWhitespace","ch2","ch3","op1","op2","op3","chars","codePointAt","isValidIdentifierStart","isIdentifierContinue","isValidIdentifierContinue","cp","cp1","cp2","isExpOperator","colStr","peekCh","quote","rawString","rep","AST","lexer","Program","ExpressionStatement","AssignmentExpression","ConditionalExpression","LogicalExpression","BinaryExpression","UnaryExpression","CallExpression","MemberExpression","Identifier","Literal","ArrayExpression","Property","ObjectExpression","ThisExpression","LocalsExpression","NGValueParameter","ast","program","expressionStatement","expect","filterChain","left","assignment","ternary","right","logicalOR","alternate","consequent","consume","logicalAND","equality","relational","additive","multiplicative","unary","argument","primary","arrayDeclaration","object","selfReferential","literals","callee","parseArguments","computed","baseExpression","peekToken","properties","kind","e1","e2","e3","e4","peekAhead","$locals","ifDefined","plusFn","isStateless","filterName","findConstantAndWatchExpressions","allConstants","argsToWatch","expr","toWatch","getInputs","lastExpression","isAssignable","assignableAST","isLiteral","isConstant","ASTCompiler","astBuilder","expensiveChecks","nextId","filters","vars","own","inputs","assignable","stage","computing","recurse","return_","generateFunction","watch","fnKey","intoId","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","isPossiblyDangerousMemberName","addEnsureSafeObject","notNull","addEnsureSafeAssignContext","addEnsureSafeMemberName","addEnsureSafeFunction","member","defaultValue","SAFE_IDENTIFIER","UNSAFE_CHARACTERS","stringEscapeFn","stringEscapeRegex","skip","init","ASTInterpreter","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","Parser","astCompiler","objectValueOf","getValueOf","cacheDefault","cacheExpensive","true","false","null","identStart","identContinue","addLiteral","literalName","literalValue","setIdentifierFns","identifierStart","identifierContinue","$parseOptions","$parseOptionsExpensive","runningChecksEnabled","$$runningExpensiveChecks","interceptorFn","parsedExpression","oneTime","cacheKey","parseOptions","parser","oneTimeLiteralWatchDelegate","oneTimeWatchDelegate","inputsWatchDelegate","expensiveChecksInterceptor","addInterceptor","expensiveCheckFn","expensiveCheckOldValue","expressionInputDirtyCheck","oldValueOfValue","prettyPrintExpression","inputExpressions","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","oneTimeWatch","oneTimeListener","old","isAllDefined","allDefined","constantWatch","watchDelegate","useInputs","regularWatch","regularInterceptedExpression","oneTimeInterceptedExpression","qFactory","exceptionHandler","$qMinErr","Deferred","simpleBind","onFulfilled","onRejected","progressBack","pending","scheduleProcessQueue","handleCallback","processQueue","processScheduled","$$reject","$$resolve","rejectPromise","makePromise","resolved","isResolved","callbackOutput","errback","promises","counter","results","$Q","resolver","resolveFn","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","supported","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","destroyChildScope","$event","currentScope","cleanUpScope","$$prevSibling","$root","Scope","isolate","watchExp","watcher","initWatchVal","incrementWatchersCount","deregisterWatch","watchExpressions","newValues","deregisterFns","changeReactionScheduled","firstRun","shouldCall","deregisterWatchGroup","watchGroupAction","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","veryOldValue","trackVeryOldValue","changeDetected","changeDetector","internalArray","internalObject","initRun","oldLength","_value","newLength","bothNaN","newItem","oldItem","$watchCollectionAction","watchers","dirty","ttl","watchLog","logIdx","asyncTask","beginPhase","flushApplyAsync","asyncQueuePosition","asyncQueue","$eval","traverseScopesLoop","clearPhase","postDigestQueuePosition","decrementListenerCount","applyAsyncQueue","$applyAsyncExpression","scheduleApplyAsync","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","phase","sanitizeUri","uri","isImage","normalizedVal","$sceMinErr","SCE_CONTEXTS","CSS","URL","JS","adjustMatcher","adjustMatchers","matchers","adjustedMatchers","resourceUrlWhitelist","resourceUrlBlacklist","htmlSanitizer","matchUrl","isResourceUrlAllowedByPolicy","allowed","generateHolderType","Base","holderType","TrustedValueHolderType","trustedValue","$$unwrapTrustedValue","sceValueOf","sceToString","trustedValueHolderBase","byType","trustAs","Constructor","maybeTrusted","sce","isEnabled","parseAs","sceParseAs","enumValue","lName","eventSupport","isChromePackagedApp","chrome","app","runtime","hasHistoryPushState","pushState","android","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","hasEvent","divElm","$templateRequestMinErr","httpOptions","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","handleError","testability","findBindings","opt_exactMatch","getElementsByClassName","dataBinding","bindingName","findModels","prefixes","attributeEquals","getLocation","setLocation","whenStable","deferreds","$$timeoutId","urlParsingNode","originUrl","requestUrl","$$CookieReader","lastCookies","lastCookieString","safeDecodeURIComponent","cookieArray","cookie","currentCookieString","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","anyPropertyKey","expressionType","getTypeForFilter","predicateFn","matchAgainstAnyProp","createPredicateFn","shouldMatchPrimitives","actual","expected","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","MAX_DIGITS","DECIMAL_SEP","ZERO_CHAR","$locale","NUMBER_FORMATS","amount","currencySymbol","fractionSize","CURRENCY_SYM","PATTERNS","maxFrac","formatNumber","GROUP_SEP","numStr","exponent","digits","numberOfIntegerDigits","zeros","roundNumber","parsedNumber","minFrac","fractionLen","roundAt","digit","carry","reduceRight","groupSep","decimalSep","isInfinity","isZero","formattedText","integerLen","decimals","reduce","groups","lgSize","gSize","negPre","negSuf","posPre","posSuf","padNumber","negWrap","neg","dateGetter","dateStrGetter","shortForm","standAlone","propPrefix","timeZoneGetter","paddedZone","getFirstThursdayOfYear","dayOfWeekOnFirst","getThursdayThisWeek","weekGetter","firstThurs","thisThurs","ampmGetter","getHours","AMPMS","eraGetter","ERAS","longEraGetter","ERANAMES","DATE_FORMATS","yyyy","MMMM","MMM","HH","sss","EEEE","EEE","ww","GGG","GGGG","DATE_FORMATS_SPLIT","NUMBER_STRING","R_ISO8601_STR","jsonStringToDate","tzHour","tzMin","dateSetter","timeSetter","setUTCHours","setHours","DATETIME_FORMATS","spacing","begin","Infinity","sliceFn","sortPredicate","reverseOrder","compareFn","predicates","processPredicates","descending","defaultCompare","compareValues","getComparisonObject","doComparison","tieBreaker","predicateValues","predicate","getPredicateValue","v1","v2","sortPredicates","objectValue","type1","type2","value1","value2","ngDirective","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormCtrl","$addControl","$$renameControl","nullFormRenameControl","$removeControl","$setValidity","$setDirty","$setPristine","$setSubmitted","SUBMITTED_CLASS","control","$name","FormController","controls","$error","$$success","$pending","$dirty","$pristine","$valid","$invalid","$submitted","$$parentForm","$rollbackViewValue","$commitViewValue","newName","oldName","addSetValidityMethod","ctrl","unset","PRISTINE_CLASS","DIRTY_CLASS","$setUntouched","formDirectiveFactory","isNgForm","ngFormCompile","formElement","VALID_CLASS","nameAttr","ngFormPreLink","ctrls","handleFormSubmission","parentFormCtrl","getSetter","ISO_DATE_REGEXP","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","PARTIAL_VALIDATION_EVENTS","PARTIAL_VALIDATION_TYPES","inputType","textInputType","createDateInputType","createDateParser","datetime-local","weekParser","numberInputType","urlInputType","email","emailInputType","radio","radioInputType","checkbox","checkboxInputType","submit","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","validity","origBadInput","badInput","origTypeMismatch","typeMismatch","$render","existingDate","addDays","getSeconds","mapping","part","parseDate","dynamicDateInputType","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","ngModelMinErr","isValidDate","minVal","$validators","parseObservedDateValue","$validate","maxVal","nativeValidation","modelValue","viewValue","parseConstantExpr","parseFn","trueValue","ngTrueValue","falseValue","ngFalseValue","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","ngBindHtmlGetter","ngBindHtmlWatch","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","classDirective","ngClassWatchAction","$index","old$index","arrayClasses","addClasses","removeClasses","digestClassCounts","classCounts","classesToUpdate","updateClasses","arrayDifference","forceAsyncEvents","blur","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","INVALID_CLASS","UNTOUCHED_CLASS","TOUCHED_CLASS","PENDING_CLASS","EMPTY_CLASS","NOT_EMPTY_CLASS","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","$$updateEmptyClasses","currentValidationRunId","$setTouched","$$lastCommittedViewValue","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","doneCallback","localValidationRunId","processParseErrors","validationDone","processSyncValidators","processAsyncValidators","errorKey","setValidity","syncValidatorsValid","validator","validatorPromises","$$parseAndValidate","writeToModelIfNeeded","updateOnDefault","$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","classCache","validationErrorKey","createAndSet","unsetAndCleanup","cachedToggleClass","toggleValidationCss","combinedState","switchValue","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","valueName","keyName","selectAs","trackBy","selectAsFn","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","Option","selectValue","label","group","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","itemKey","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","ngOptionsPostLink","selectCtrl","ngModelCtrl","emptyOption","providedEmptyOption","unknownOption","listFragment","renderEmptyOption","removeEmptyOption","renderUnknownOption","removeUnknownOption","writeValue","writeNgOptionsValue","readValue","readNgOptionsValue","selectedOption","writeNgOptionsMultiple","readNgOptionsMultiple","selectedValues","selections","updateOptions","addOptionElement","optionElement","updateOptionElement","groupElementMap","addOption","groupElement","nextValue","isNotPrimitive","ngOptionsPreLink","registerOption","BRACE","IS_WHEN","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","pluralCat","whenExpFn","updateElementText","newText","NG_REMOVED","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","getBlockStart","getBlockEnd","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","trackByIdFn","collectionKeys","nextBlockOrder","blockKey","ngRepeatTransclude","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngShowWatchAction","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","watchExpr","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","ngTranscludeMinErr","ngTranscludeCompile","fallbackLinkFn","ngTranscludePostLink","ngTranscludeSlot","ngTranscludeCloneAttachFn","useFallbackContent","noopNgModelController","chromeHack","SelectController","optionsMap","unknownVal","readSingleValue","writeSingleValue","hasOption","removeOption","optionScope","optionAttrs","interpolateValueFn","interpolateTextFn","valueAttributeObserveAction","interpolateWatchAction","selectPreLink","selectPostLink","readMultipleValue","writeMultipleValue","lastView","lastViewRef","selectMultipleWatch","selectCtrlName","patternExp","intVal","PLURAL_CATEGORY","ZERO","ONE","TWO","FEW","MANY","OTHER","getDecimals","getVF","opt_precision","DAY","FIRSTDAYOFWEEK","SHORTDAY","SHORTMONTH","STANDALONEMONTH","WEEKENDRANGE","fullDate","longDate","medium","mediumDate","mediumTime","short","shortDate","shortTime","minInt","localeID","vf","ngTouch","$TouchProvider","ngClickOverrideEnabled","ngClickDirectiveAdded","ngTouchClickDirectiveFactory","MOVE_BUFFER_RADIUS","POINTER_EVENTS","mouse","touch","pointer","getCoordinates","originalEvent","touches","changedTouches","clientX","clientY","getEvents","pointerTypes","eventType","pointerType","totalX","totalY","startCoords","lastPos","active","coords","TAP_DURATION","MOVE_TOLERANCE","PREVENT_DURATION","CLICKBUSTER_THRESHOLD","ACTIVE_CLASS_NAME","lastPreventedTime","touchCoordinates","lastLabelClickCoordinates","hit","x1","y1","x2","y2","checkAllowableRegions","onClick","onTouchStart","preventGhostClick","clickHandler","ngClick","tapping","tapElement","startTime","touchStartX","touchStartY","resetState","srcElement","dist","sqrt","onclick","touchend","makeSwipeDirective","$swipe","MAX_VERTICAL_DISTANCE","MAX_VERTICAL_RATIO","MIN_HORIZONTAL_DISTANCE","swipeHandler","valid","validSwipe","deltaY","deltaX","$resourceMinErr","MEMBER_NAME_REGEX","isValidDottedPath","lookupDottedPath","shallowClearAndCopy","PROTOCOL_AND_DOMAIN_REGEX","stripTrailingSlashes","cancellable","actions","delete","Route","urlParams","setUrlParams","actionUrl","encodedVal","protocolAndDomain","param","isQueryParamValue","paramInfo","urlParam","leadingSlashes","tail","resourceFactory","paramDefaults","route","extractParams","actionParams","ids","defaultResponseInterceptor","Resource","$promise","$resolved","hasBody","numericTimeout","a1","a2","a3","a4","isInstanceCall","httpConfig","responseInterceptor","responseErrorInterceptor","timeoutDeferred","numericTimeoutPromise","$cancelRequest","additionalParamDefaults","runTranslate","$translate","$translateDefaultInterpolation","translateDirective","translateAttrDirective","translateCloakDirective","translateFilterFactory","$translationCache","storageKey","storage","fallbackFromIncorrectStorageValue","preferred","preferredLanguage","displayName","$translateSanitizationProvider","$sanitize","currentStrategy","hasConfiguredStrategy","hasShownNoStrategyConfiguredWarning","strategies","sanitize","htmlSanitizeValue","htmlEscapeValue","sanitizeParameters","mapInterpolationParameters","escapeParameters","htmlTrustValue","sceParameters","escaped","addStrategy","strategyName","strategyFunction","removeStrategy","useStrategy","strategy","cachedStrategyMap","applyStrategies","selectedStrategies","selectedStrategy","showNoStrategyConfiguredWarning","trustAsHtml","iteratee","propertyValue","propertyKey","$STORAGE_KEY","$windowProvider","pascalprechtTranslateOverrider","$translationTable","$preferredLanguage","$availableLanguageKeys","$languageKeyAliases","$fallbackLanguage","$fallbackWasString","$uses","$nextLang","$storageFactory","$storageKey","$storagePrefix","$missingTranslationHandlerFactory","$interpolationFactory","$interpolatorFactories","$loaderFactory","$cloakClassName","$loaderOptions","$notFoundIndicatorLeft","$notFoundIndicatorRight","$postCompilingEnabled","$forceAsyncReloadEnabled","$nestedObjectDelimeter","$isReady","$keepContent","loaderCache","directivePriority","statefulFilter","postProcessFn","uniformLanguageTagResolver","languageTagResolver","default","java","bcp47","iso639-1","getFirstBrowserLanguage","nav","browserLanguagePropertyKeys","languages","searchElement","negotiateLocale","avail","langKeyAlias","hasWildcardKey","hasExactKey","translations","langKey","translationTable","flatObject","cloakClassName","nestedObjectDelimeter","delimiter","prevKey","keyWithPath","keyWithShortPath","addInterpolation","useMessageFormatInterpolation","useInterpolation","useSanitizeValueStrategy","setupPreferredLanguage","translationNotFoundIndicator","indicator","translationNotFoundIndicatorLeft","translationNotFoundIndicatorRight","fallbackLanguage","fallbackStack","resolveClientLocale","useUrlLoader","useLoader","useStaticFilesLoader","loaderFactory","useLocalStorage","useStorage","useCookieStorage","storageFactory","storagePrefix","useMissingTranslationHandlerLog","useMissingTranslationHandler","usePostCompiling","forceAsyncReload","uniformLanguageTag","standard","determinePreferredLanguage","registerAvailableLanguageKeys","languageKeys","useLoaderCache","postProcess","keepContent","defaultInterpolator","pendingLoader","interpolatorHashMap","langPromises","fallbackIndex","startFallbackIteration","translationId","interpolateParams","interpolationId","defaultTranslationText","forceLanguage","uses","loadTranslationsIfMissing","translateAll","translationIds","regardless","promiseToWaitFor","determineTranslation","promiseResolved","applyNotFoundIndicators","useLanguage","setLocale","eachInterpolator","interpolator","loadAsync","loaderOptions","onLoaderSuccess","table","onLoaderError","eachInterpolationFactory","interpolatorFactory","getInterpolationIdentifier","getTranslationTable","onResolve","getFallbackTranslation","Interpolator","translation","interpolatedValue","interpolate","applyPostProcessing","getFallbackTranslationInstant","translateByHandler","resultString","resolveForFallbackLanguage","fallbackLanguageIndex","resolveForFallbackLanguageInstant","fallbackTranslation","fallbackTranslationInstant","resolvedTranslation","missingTranslationHandlerTranslation","_translationId","determineTranslationInstant","clearNextLangAndPromise","useFallbackLanguage","langKeyPosition","proposedLanguage","isPostCompilingEnabled","isForceAsyncReloadEnabled","isKeepContent","tables","loadingKeys","allTranslationsLoaded","tableData","oneTranslationsLoaded","instant","possibleLangKeys","possibleLangKey","versionInfo","$onReadyDeferred","onReady","getAvailableLanguageKeys","globalOnReadyListener","globalOnChangeListener","processAsyncResult","fallbackLanguageId","$translateSanitization","$translateInterpolator","$identifier","interpolationParams","interpolatedText","tAttr","translateValuesExist","translateValues","translateInterpolation","translateValueExist","outerHTML","interpolateRegExp","watcherRegExp","iElement","iAttr","preText","postText","translateNamespace","getTranslateNamespace","initInterpolationParams","observeElementTranslation","_unwatchOld","iElementText","interpolateMatches","watcherMatches","updateTranslations","observeAttributeTranslation","translateAttr","firstAttributeChangedEvent","defaultText","observeValueAttribute","updateTranslation","translateLanguage","applyTranslation","successful","translateKeepContent","globallyEnabled","locallyDefined","translateCompile","locallyEnabled","translateDefault","previousAttributes","watchAttribute","valueCallback","changeCallback","applyCloak","removeCloak","translateCloak","translateNamespaceDirective","iAttrs","translateLanguageDirective","newTranslateLanguage","translateFilter","interpolation","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","Event","$CookiesProvider","calcOptions","$$cookieWriter","getObject","getAll","putObject","$cookies","$$CookieWriter","cookiePath","buildCookieString","expires","domain","toUTCString","secure","cookieLength","$$CookieWriterProvider","_thirdParty","loader","onreadystatechange","loadScript","loadCSS","rel","unloadCSS","docHead","targetCss","isUndefinedOrNull","requireMoment","angularMoment","statefulFilters","serverTime","titleFormat","fullDateThreshold","fullDateFormat","fullDateThresholdUnit","amMoment","amTimeAgoConfig","activeTimeout","localDate","modelName","amTimeAgo","currentFrom","isTimeElement","setTitleTime","getNow","localNow","nowMillis","cancelTimer","updateTime","momentInstance","timeAgo","showFullDate","howOld","secondsUntilUpdate","updateDateTimeAttr","updateMoment","momentValue","preprocessDate","amFrom","amWithoutSuffix","angularMomentConfig","defaultTimezone","changeLocale","customization","changeTimezone","tz","setDefault","amUtcOffset","amTimezone","aMoment","amCalendarFilter","referenceTime","amDifferenceFilter","otherValue","usePrecision","date2","amDateFormatFilter","amDurationFormatFilter","amTimeAgoFilter","dateFrom","amSubtractFilter","amAddFilter","amStartOfFilter","amEndOfFilter","isElectron","qrcode","typeNumber","errorCorrectLevel","PAD0","PAD1","_typeNumber","_errorCorrectLevel","QRErrorCorrectLevel","_modules","_moduleCount","_dataCache","_dataList","_this","makeImpl","maskPattern","moduleCount","row","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","getBestMaskPattern","minLostPoint","lostPoint","QRUtil","getLostPoint","getPatternPosition","bits","getBCHTypeNumber","getBCHTypeInfo","inc","bitIndex","byteIndex","maskFunc","getMaskFunction","dark","mask","createBytes","rsBlocks","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","dataCount","ecCount","totalCount","getBuffer","rsPoly","getErrorCorrectPolynomial","rawPoly","qrPolynomial","getLength","modPoly","modIndex","getAt","totalCodeCount","dataList","QRRSBlock","getRSBlocks","qrBitBuffer","getMode","getLengthInBits","write","totalDataCount","putBit","addData","newData","qr8BitByte","isDark","getModuleCount","make","createTableTag","cellSize","margin","qrHtml","createImgTag","stringToBytes","bytes","createStringToBytes","unicodeData","numChars","unicodeMap","bin","base64DecodeInputStream","read","b0","b1","b2","b3","unknownChar","QRMode","MODE_NUMBER","MODE_ALPHA_NUM","MODE_8BIT_BYTE","MODE_KANJI","QRMaskPattern","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","errorCorrectLength","multiply","QRMath","gexp","sameCount","darkCount","ratio","EXP_TABLE","LOG_TABLE","glog","_num","RS_BLOCK_TABLE","qrRSBlock","getRsBlockTable","rsBlock","_buffer","_length","bufIndex","bit","_mode","byteArrayOutputStream","writeByte","writeShort","writeBytes","writeString","toByteArray","base64EncodeOutputStream","_buflen","_base64","writeEncoded","encode","flush","padlen","_str","_pos","decode","gifImage","_width","_height","setPixel","pixel","lzwMinCodeSize","raster","getLZWRaster","bitOutputStream","_out","_bitLength","_bitBuffer","clearCode","endCode","bitLength","lzwTable","byteOut","bitOut","dataIndex","_map","_size","getPixel","alt","gif","base64","img","canvas2D","CanvasRenderingContext2D","levels","draw","qr","tile","fillStyle","fillRect","domElement","$canvas","canvas","getContext","errorCorrectionLevel","$img","setVersion","setErrorCorrectionLevel","setData","setSize","render","title","toDataURL","$sanitizeMinErr","htmlParser","htmlSanitizeWriter","$SanitizeProvider","svgEnabled","validElements","svgElements","buf","enableSvg","htmlParserImpl","htmlSanitizeWriterImpl","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","voidElements","toMap","optionalEndTagBlockElements","optionalEndTagInlineElements","optionalEndTagElements","blockElements","inlineElements","blockedElements","uriAttrs","htmlAttrs","svgAttrs","validAttrs","lowercaseKeys","inertBodyElement","implementation","createHTMLDocument","docElement","getDocumentElement","bodyElements","mXSSAttempts","stripCustomNsAttrs","attrToMap","encodeEntities","hi","low","uriValidator","ignoreCurrentElement","lkey","attrNode","removeAttributeNode","sanitizeText","writer","LINKY_URL_REGEXP","MAILTO_REGEXP","linkyMinErr","attributesFn","getAttributesObject","getEmptyAttributesObject","raw","addText","addLink","linkAttributes","withAngular","resizeObserver","lastTime","runCallbacks","currentTime","resizeTimeout","resize","onResizeTimeout","addCallback","getAttributesToAdd","attributesToAdd","getStyle","anElement","currentStyle","getAppendedTip","theTooltipElement","tipsInBody","aTipInBody","tipsInBodyIndex","tipsInBodyLength","angularizedElement","removeAppendedTip","tipElement","isOutOfPage","theTipElement","squarePosition","offsetHeight","getSideClasses","sides","mapSideClasses","side","directions","smartPosition","tooltipElement","startSide","directionsIndex","directionsLength","directionsCount","tooltipConfigurationProvider","tooltipConfiguration","showTrigger","hideTrigger","class","smart","closeButton","speed","tooltipTemplateUrlCache","show","configure","configuration","configurationKeys","configurationIndex","aConfigurationKey","instantiateProvider","tooltipDirective","tooltipsConf","linkingFunction","$controllerDirective","$transcludeFunc","tooltipTemplate","tooltipTemplateUrl","tooltipController","oldTooltipSide","oldTooltipShowTrigger","oldTooltipHideTrigger","oldTooltipClass","oldSize","oldSpeed","tooltipSide","tooltipShowTrigger","tooltipHideTrigger","tooltipShow","tooltipClass","tooltipSmart","tooltipCloseButton","tooltipSize","tooltipSpeed","tooltipAppendToBody","onTransclusionDone","tipContElement","tipTipElement","closeButtonElement","tipArrowElement","whenActivateMultilineCalculation","calculateIfMultiLine","getClientRects","onTooltipShow","tipTipElementStyle","tipArrowElementStyle","tipElementStyle","tipElementBoundingClientRect","exradicatedTipElement","tipTipStyleIndex","tipTipStyleLength","tipArrowStyleIndex","tipArrowStyleLength","tipStyleIndex","tipStyleLength","aStyleKey","tipTipCssToSet","tipCssToSet","tipArrowCssToSet","paddingTopValue","paddingBottomValue","paddingLeftValue","paddingRightValue","getPropertyValue","pageYOffset","pageXOffset","tooltipHidden","onTooltipHide","registerOnScrollFrom","theElement","scrollHeight","clientHeight","scrollWidth","clientWidth","onScroll","doLater","tooltipBoundingRect","thatBoundingRect","showTemplate","hideTemplate","getTemplate","onGetTemplateSuccess","onTooltipTemplateChange","onTooltipTemplateUrlChange","onGetTemplateFailure","onTooltipTemplateUrlCacheChange","onTooltipSideChange","onTooltipShowTrigger","onTooltipHideTrigger","onTooltipShowTooltip","onTooltipClassChange","onTooltipSmartChange","onTooltipCloseButtonChange","enableButton","onTooltipTemplateControllerChange","tipController","indexOfAs","unregisterOnTooltipControllerChange","onTooltipSizeChange","onTooltipSpeedChange","unregisterOnTooltipTemplateChange","unregisterOnTooltipTemplateUrlChange","unregisterOnTooltipTemplateUrlCacheChange","unregisterOnTooltipSideChangeObserver","unregisterOnTooltipShowTrigger","unregisterOnTooltipHideTrigger","unregisterOnTooltipShowTooltip","unregisterOnTooltipClassChange","unregisterOnTooltipSmartChange","unregisterOnTooltipCloseButtonChange","unregisterOnTooltipSizeChange","unregisterOnTooltipSpeedChange","unregisterTipContentChangeWatcher","onResize","registerResize","unregisterListeners","$cookieStore","$translateCookieStorage","localStorageAdapter","hasLocalStorageSupport","testKey","removeItem","$translateLocalStorage","ancestors","first","objectKeys","inheritParams","currentParams","newParams","$current","$to","parents","parentParams","inherited","inheritList","equalForKeys","filterByKeys","filtered","indexBy","pick","omit","pluck","$Resolve","VISIT_IN_PROGRESS","VISIT_DONE","NOTHING","NO_DEPENDENCIES","NO_LOCALS","NO_PARENT","$$promises","$$values","study","invocables","invocableKeys","plan","cycle","visited","visit","isResolve","resolution","wait","merged","$$inheritedValues","fail","$$failure","invocable","invocation","waitParams","onfailure","dep","proceed","$TemplateFactory","fromConfig","fromString","fromUrl","templateProvider","fromProvider","$$UMFP","UrlMatcher","parentMatcher","placeholder","searchPlaceholder","$$new","ParamSet","paramNames","addParameter","Param","quoteRegExp","squash","surroundPattern","matchDetails","isSearch","segment","cfg","arrayMode","caseInsensitive","isOptional","sourceSearch","sourcePath","$$paramNames","strictMode","defaultSquashPolicy","searchParams","parameters","nTotal","nPath","paramName","decodePathArray","reverseString","unquoteDashes","allReversed","paramVal","validates","$$validates","paramset","encodeDashes","isPathParam","isDefaultValue","nextSegment","isFinalPathParam","capture","$subPattern","sub","$asArray","ArrayType","bindTo","callbackName","arrayWrap","arrayUnwrap","falsey","arrayHandler","allTruthyMode","handleArray","arrayEqualsHandler","val1","val2","$arrayMode","$UrlMatcherFactory","isCaseInsensitive","isStrictMode","valToString","valFromString","$types","enqueue","typeQueue","defaultTypes","int","bool","any","getDefaultConfig","isInjectable","$$getDefaultValue","isMatcher","definitionFn","flushTypeQueue","unwrapShorthand","getType","getArrayMode","getSquashPolicy","getReplace","isShorthand","$$fn","urlType","arrayDefaults","arrayParamNomenclature","configuredKeys","defaultPolicy","$value","hasReplaceVal","$replace","replacement","dynamic","$$parent","$$keys","ignore","paramValues","$$equals","paramValues1","paramValues2","equal","$$validate","rawVal","$urlMatcherFactory","$UrlRouterProvider","$locationProvider","otherwise","interceptDeferred","optionsOverride","regExpPrefix","rule","handleIfMatch","$match","handlerIsString","sticky","deferIntercept","lastPushedUrl","appendBasePath","isHtml5","absolute","update","ignoreUpdate","handled","listen","sync","urlMatcher","$$avoidResync","slash","$StateProvider","$urlRouterProvider","states","$state","abstractKey","stateBuilder","findState","compositeName","navigable","ownParams","views","","view","resolveAs","$delegates","isRelative","stateName","stateOrName","isStr","pathLength","queueState","parentName","flushQueuedChildren","queued","registerState","$stateParams","transitionTo","isGlob","doesStateMatchGlob","glob","globSegments","abstract","$view","$resolve","$urlRouter","TransitionSuperseded","TransitionPrevented","TransitionAborted","TransitionFailed","handleRedirect","retry","$retry","retryTransition","transition","toParams","go","relative","fromParams","fromPath","toState","redirectResult","toPath","keep","toLocals","reloadState","shouldSkipReload","resolveState","entering","exiting","onExit","onEnter","lossy","paramsAreFiltered","resolveViews","viewsPromises","injectables","load","controllerProvider","injectLocals","$$controller","$$controllerAs","$$resolveAs","nonSearchParamsEqual","fromAndToState","notSearchParam","nonQueryParamKeys","nonQueryParams","nonQueryParamSet","reloadOnSearch","autoinject","$ViewProvider","$templateFactory","$ViewScrollProvider","useAnchorScroll","$ViewDirective","$uiViewScroll","$animator","getRenderer","statics","cb","previousEl","currentEl","latestLocals","renderer","updateView","cleanupLastView","$uiViewData","$$animLeave","getUiViewName","previousLocals","animEnter","animLeave","viewAnimData","$animEnter","$animLeave","onUiViewEnter","$ViewDirectiveFill","initial","resolveData","uiView","uiViewCreatedBy","parseStateRef","ref","preparsed","paramExpr","stateContext","stateData","getTypeInfo","isSvg","isForm","isAnchor","clickable","clickHook","ignorePreventDefaultCount","defaultOpts","$StateRefDirective","uiSrefActive","uiSref","unlinkInfoFn","hookFn","uiSrefOpts","$$addStateInfo","$StateRefDynamicDirective","uiState","uiStateParams","uiStateOpts","runStateRefLink","$StateRefActiveDirective","activeClasses","activeEqClass","uiSrefActiveEq","activeClass","addState","deregister","stateParams","stateHash","createStateHash","stateInfo","removeState","anyMatch","exactMatch","$IsStateFilter","isFilter","$IncludedByStateFilter","includesFilter","devtools","orientation","emitEvent","dispatchEvent","widthThreshold","innerWidth","heightThreshold","innerHeight","Firebug","isInitialized","__esModule","Dropbox","VERSION","appKey","_trigger","multiselect","extensions","folderselect","baseUrl","fileselect","sizeLimit","initialNavigation","role","cursor","initialViewType","showSignOut","currentChooserSession","_postAction","display","backgroundColor","border","disableJSONP","XDomainRequest","ieframe","sequence_number","_fetch_url_on_save","filename","_ews_auth_token","ews_auth_token","last_navigation","fetch_urls_fn","urls","download_urls","__assign","popupDimensionsString","chooserUrl","createIEFrame","createChooserSession","createWidgetElement","handleJobId","handleMessageEvent","saverUrl","__guardMethod__","__guard__","initModule","blockBaseUrl","addListener","removeListener","detachEvent","createChooserWidget","_handler","cleanupWidget","isBrowserSupported","genericDropins","createDropinButton","filenameFromPath","translation_function","windowName","alert","onClose","boxShadow","zIndex","choose","cancelChooser","createChooseButton","createSaveButton","sendMessage","validateOnError","onError","setOnError","hasOnCloseDialogMessage","onCloseDialogMessage","setOnCloseDialogMessage","sendState","urlPathname","windowDimensions","handleMessage","sequenceNumber","Dropin","setPrototypeOf","validateOptions","onSuccess","cl","lastNavigation","onCancel","BaseChooser","Chooser","BrowserEnvironment","mount","openWindow","unmount","closeWindow","Mover","Previewer","ZoomChooser","TARGET_ORIGIN","activeDropins","deleteActiveDropin","throwIfAlreadyActive","PopupEnvironment","stopInterval","attach","messagingWindow","dropin","cleanup","createIframe","popupWindow","intervalId","isWindowClosedByUser","handleInterval","validateNoOptionLinkType","validateOnSuccess","validateOnCancel","entries","initialFolderSelection","accountId","setEntries","setInitialFolderSelection","setOnSuccess","setOnCancel","hideAccount","initialView","openLinksWithSDK","onOpenLink","onViewChange","setAccountId","setHideAccount","setLink","setView","focusIf","dom","focusDelay","gapi","_bs","aa","ba","ca","da","dpo","fa","PQ","ha","ia","ja","ka","la","pa","ma","na","oa","ra","qa","pathPrefix","sa","decodeURI","ua","ta","encodeURI","va","_c","xa","wa","za","hint","ya","ea","___gapisync","hee","hel","___jsl","hefn","bs0","bs1","jsl","ci","deviceType","oauth-flow","authUrl","proxyUrl","disableOpt","idpIframeUrl","usegapi","reportExceptionRate","forceIm","rethrowException","enableMultilogin","googleapis.config","useFirstPartyAuthV2","isPlusUser","inline","disableRealtimeCallback","drive_share","skipInitCommand","csi","rate","client","cors","isLoggedIn","signInDeprecation","include_granted_scopes","llang","iframes","youtube","methods","ytsubscribe","plus_circle","plus_share","rbr_s",":source:","playemm","savetoandroidpay","blogger","evwidget","partnersbadge","dataconnector","surveyoptin",":socialhost:","shortlists","hangout","plus_followers",":gplus_url:","signin","rbr_i","donation","plusone","comments",":im_socialhost:","backdrop","visibility","autocomplete","additnow",":signuphost:","ratingbadge","appcirclepicker","follow","community","sharetoclassroom","ytshare","family_creation","commentcount","configurator","zoomableimage","appfinder","savetowallet","person","savetodrive","page","card","fp","bimodal","jsonpatch","installedModules","__webpack_require__","moduleId","getDefault","getModuleExports","__","_hasOwnProperty","_objectKeys","_deepClone","isInteger","charCode","escapePathComponent","unescapePathComponent","_getPathRecursive","found","getPath","hasUndefined","objKeys","objKeysLength","PatchError","_super","operation","tree","equalsOptions","_equals","areEquals","helpers_1","JsonPatchError","deepClone","objOps","newDocument","removed","getValueByPointer","originalValue","applyOperation","op","valueToCopy","_get","arrOps","removedList","getOriginalDestination","validateOperation","mutateDocument","returnValue","existingPathFragment","validateFunction","applyPatch","length_1","applyReducer","operationResult","pathLen","existingPathLen","existingValue","validate","sequence","externalValidator","pSlice","isArguments","deepEqual","opts","objEquiv","isBuffer","kb","core_1","core_2","helpers_2","beforeDict","WeakMap","Mirror","observers","Map","ObserverInfo","getMirror","getObserverFromMirror","mirror","removeObserverFromMirror","unobserve","patches","observerInfo","dirtyCheck","generate","fastCheck","_generate","newKeys","oldKeys","deleted","tree1","tree2","supportsArgumentsClass","propertyIsEnumerable","shim","$httpProvider","cfpLoadingBar","reqsTotal","reqsCompleted","latencyThreshold","startTimeout","setComplete","isCached","cached","ignoreLoadingBar","rejection","autoIncrement","includeSpinner","includeBar","startSize","parentSelector","spinnerTemplate","loadingBarTemplate","$parentSelector","loadingBarContainer","loadingBar","spinner","incTimeout","completeTimeout","started","_start","$after","_set","pct","_inc","_status","rnd","stat","_completeAnimation","_complete","LARGE_ARRAY_SIZE","CORE_ERROR_TEXT","FUNC_ERROR_TEXT","HASH_UNDEFINED","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","HOT_COUNT","HOT_SPAN","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","NAN","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","asyncTag","boolTag","dateTag","domExcTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","promiseTag","proxyTag","regexpTag","setTag","stringTag","symbolTag","undefinedTag","weakMapTag","weakSetTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reRegExpChar","reHasRegExpChar","reTrim","reTrimStart","reTrimEnd","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","deburredLetters","À","Á","Â","Ã","Ä","Å","à","á","â","ã","ä","å","Ç","ç","Ð","ð","È","É","Ê","Ë","è","é","ê","ë","Ì","Í","Î","Ï","ì","í","î","ï","Ñ","ñ","Ò","Ó","Ô","Õ","Ö","Ø","ò","ó","ô","õ","ö","ø","Ù","Ú","Û","Ü","ù","ú","û","ü","Ý","ý","ÿ","Æ","æ","Þ","þ","ß","Ā","Ă","Ą","ā","ă","ą","Ć","Ĉ","Ċ","Č","ć","ĉ","ċ","č","Ď","Đ","ď","đ","Ē","Ĕ","Ė","Ę","Ě","ē","ĕ","ė","ę","ě","Ĝ","Ğ","Ġ","Ģ","ĝ","ğ","ġ","ģ","Ĥ","Ħ","ĥ","ħ","Ĩ","Ī","Ĭ","Į","İ","ĩ","ī","ĭ","į","ı","Ĵ","ĵ","Ķ","ķ","ĸ","Ĺ","Ļ","Ľ","Ŀ","Ł","ĺ","ļ","ľ","ŀ","ł","Ń","Ņ","Ň","Ŋ","ń","ņ","ň","ŋ","Ō","Ŏ","Ő","ō","ŏ","ő","Ŕ","Ŗ","Ř","ŕ","ŗ","ř","Ś","Ŝ","Ş","Š","ś","ŝ","ş","š","Ţ","Ť","Ŧ","ţ","ť","ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","ũ","ū","ŭ","ů","ű","ų","Ŵ","ŵ","Ŷ","ŷ","Ÿ","Ź","Ż","Ž","ź","ż","ž","IJ","ij","Œ","œ","ʼn","ſ","htmlEscapes","&","<",">","htmlUnescapes","&","<",">",""","'","stringEscapes","\\","\n","\r"," "," ","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","nodeIsSet","isSet","nodeIsTypedArray","addMapEntry","pair","addSetEntry","thisArg","arrayAggregator","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","asciiWords","baseFindKey","eachFunc","baseFindIndex","fromIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseSortBy","comparer","baseTimes","baseToPairs","props","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","hasUnicodeWord","iteratorToArray","mapToArray","overArg","transform","replaceHolders","setToArray","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","arrayProto","funcProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","Buffer","Symbol","allocUnsafe","getPrototype","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","toStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","Set","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","templateSettings","evaluate","variable","imports","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","lazyClone","copyArray","lazyReverse","lazyValue","dir","isArr","isRight","arrLength","getView","iteratees","iterLength","takeCount","baseWrapperValue","iterIndex","Hash","clear","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","isArg","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","baseAssignValue","assignValue","objValue","baseAggregator","baseEach","baseAssign","copyObject","baseAssignIn","keysIn","baseAt","paths","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","copySymbols","initCloneByTag","stacked","keysFunc","getAllKeysIn","getAllKeys","subValue","baseConforms","baseConformsTo","baseDelay","baseDifference","isCommon","valuesLength","valuesIndex","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFill","toInteger","toLength","baseFilter","baseFlatten","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGetTag","getRawTag","objectToString","baseGt","baseHas","baseHasIn","baseInRange","baseIntersection","arrays","othLength","othIndex","maxLength","baseInverter","baseInvoke","baseIsArguments","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","srcValue","baseIsNative","isMasked","baseIsRegExp","baseIsSet","baseIsTypedArray","isLength","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","mergeFunc","isTyped","isArrayLikeObject","cloneTypedArray","isPlainObject","toPlainObject","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","basePullAt","indexes","baseUnset","baseRange","step","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","cloneMap","cloneFunc","cloneRegExp","cloneSet","cloneSymbol","symbol","typedArray","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","order","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","getSymbols","getSymbolsIn","createAggregator","initializer","createAssigner","assigner","sources","guard","isIterateeCall","iterable","createBind","isBind","Ctor","createCtor","createCaseFirst","methodName","trailing","createCompounder","deburr","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","getData","isLaziable","plant","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","createOver","arrayFunc","createPadding","charsLength","createPartial","createRange","toFinite","createRelationalOperation","toNumber","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","setWrapToString","createRound","precision","createToPairs","createWrap","mergeData","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrValue","othValue","compared","convert","objProps","objLength","othProps","skipCtor","objCtor","othCtor","flatten","otherFunc","isKeyable","isOwn","unmasked","stubArray","ctorString","transforms","getWrapDetails","hasPath","hasFunc","insertWrapDetails","details","isMaskable","stubFalse","memoizeCapped","memoize","srcBitmask","newBitmask","isCombo","otherArgs","oldArray","shortOut","reference","updateWrapDetails","lastCalled","stamp","remaining","rand","compact","difference","differenceBy","differenceWith","drop","dropRight","dropRightWhile","dropWhile","fill","findIndex","findLastIndex","flattenDeep","flattenDepth","fromPairs","intersection","mapped","intersectionBy","intersectionWith","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","unzipWith","without","xor","xorBy","xorWith","zip","zipObject","zipObjectDeep","zipWith","tap","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","wrapperToIterator","wrapperPlant","wrapperReverse","wrapped","wrapperValue","countBy","every","findLast","flatMap","flatMapDeep","flatMapDepth","forEachRight","groupBy","invokeMap","keyBy","orderBy","partition","negate","sample","sampleSize","shuffle","sortBy","before","bindKey","curry","curryRight","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","debounced","isInvoking","flip","memoized","Cache","once","overArgs","funcsLength","partial","partialRight","rearg","rest","spread","throttle","castArray","cloneWith","cloneDeep","cloneDeepWith","conformsTo","gt","gte","isEmpty","isEqual","isEqualWith","isError","isMatch","isMatchWith","isNative","isNull","isNil","isSafeInteger","isWeakMap","isWeakSet","lt","lte","remainder","isBinary","toSafeInteger","assignIn","assignInWith","assignWith","at","defaultsDeep","mergeWith","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","functions","functionsIn","invert","invertBy","mapKeys","mapValues","omitBy","setWith","toPairs","toPairsIn","isArrLike","updateWith","valuesIn","clamp","inRange","floating","capitalize","upperFirst","endsWith","escapeRegExp","kebabCase","lowerFirst","pad","strLength","padEnd","padStart","radix","repeat","snakeCase","startCase","settings","importsKeys","importsValues","isEscaping","isEvaluating","reDelimiters","escapeValue","interpolateValue","esTemplateValue","evaluateValue","attempt","toLower","toUpper","trimEnd","trimStart","truncate","omission","newEnd","unescape","upperCase","bindAll","methodNames","cond","conforms","defaultTo","flow","flowRight","matchesProperty","methodOf","mixin","noConflict","nthArg","over","overEvery","overSome","propertyOf","range","rangeRight","stubObject","stubString","stubTrue","times","uniqueId","augend","addend","divide","dividend","divisor","maxBy","mean","meanBy","minBy","multiplier","multiplicand","minuend","subtrahend","sum","sumBy","entriesIn","extendWith","each","eachRight","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","commit","$el","isDef","animationEndSupport","WebkitAnimation","MozAnimation","MsAnimation","OAnimation","animationEndEvent","focusableElementSelector","disabledAnimationClass","forceElementsReload","openIdStack","keydownIsBound","openOnePerName","appendClassName","disableAnimation","plain","showClose","closeByDocument","closeByEscape","closeByNavigation","appendTo","preCloseCallback","overlay","trapFocus","preserveFocus","ariaAuto","ariaRole","ariaLabelledById","ariaLabelledBySelector","ariaDescribedById","ariaDescribedBySelector","bodyClassName","setForceHtmlReload","_useIt","setForceBodyReload","setDefaults","newDefaults","setOpenOnePerName","isOpenOne","globalID","dialogsCount","closeByDocumentHandler","defers","$elements","privateMethods","onDocumentKeydown","publicMethods","activate","$dialog","onTrapFocusKeydown","deactivate","deactivateAll","els","setBodyPadding","originalBodyPadding","resetBodyPadding","performCloseDialog","Hammer","hammerTime","previousFocus","closeDialogElement","remainingDialogs","closeDialog","preCloseCallbackResult","closePromise","currentTarget","getActiveDialog","isTab","backward","handleTab","focusableElements","getFocusableElements","activeElement","currentFocus","focusIndex","isFocusIndexUnknown","isFirstElementFocused","isLastElementFocused","cancelEvent","autoFocus","dialogEl","autoFocusEl","contentElements","filterVisibleElements","contentElement","rawElements","tabbableElements","filterTabbableElements","tabbableFocusableElements","visibleFocusableElements","dialogs","applyAriaAttributes","detectedRole","applyAriaAttribute","dialogId","firstMatch","generatedId","detectUIRouter","getRouterLocationEventName","__PRIVATE__","dialogID","isOpen","localID","$dialogParent","$dialogContent","loadTemplate","setup","hasOverlayClass","ngDialogId","firstLetter","ngDialogData","closeThisDialog","confirm","$activeDialogs","widthDiffs","scrollBarWidth","dialog","isOverlay","isCloseBtn","loadTemplateUrl","tmpl","openConfirm","openResult","topDialogId","closeAll","$all","getOpenDialogs","getDefaults","elementName","ngDialog","ngDialogScope","ngDialogClosePrevious","ngDialogClass","ngDialogAppendClass","ngDialogController","ngDialogControllerAs","ngDialogBindToController","ngDialogDisableAnimation","ngDialogShowClose","ngDialogCloseByDocument","ngDialogCloseByEscape","ngDialogOverlay","ngDialogPreCloseCallback","ngDialogBodyClass","term","hide","itemsNoClose","activateNextItem","activatePreviousItem","isActive","selectActive","focused","isVisible","mousedOver","$input","$list","typeaheadItem","typeaheadItemNoClose","creditCard","isbn10Maybe","isbn13Maybe","ipv4Maybe","ipv6","uuid","alpha","alphanumeric","numeric","float","hexadecimal","hexcolor","ascii","multibyte","fullWidth","halfWidth","surrogatePair","toFloat","toBoolean","comparison","modifiers","isEmail","default_url_options","protocols","require_tld","require_protocol","allow_underscores","isURL","user","pass","port_str","isIP","isFQDN","host_whitelist","host_blacklist","default_fqdn_options","tld","isAlpha","isAlphanumeric","isNumeric","isHexadecimal","isHexColor","isLowercase","isUppercase","isInt","isFloat","isDivisibleBy","surrogatePairs","isByteLength","isUUID","original","isIn","isCreditCard","sanitized","tmpNum","shouldDouble","isISBN","checksum","factor","isJSON","isMultibyte","isAscii","isFullWidth","isHalfWidth","isVariableWidth","isSurrogatePair","isBase64","isMongoId","ltrim","rtrim","stripLow","keep_new_lines","blacklist","whitelist","default_normalize_email_options","normalizeEmail","__config","$stateProvider","$translateProvider","$resourceProvider","ngDialogProvider","cfpLoadingBarProvider","cosConfig","langReg","internalStateObj","parentFn","sAuth","locationUrl","locationPath","langkeys","clientLang","useLang","returnLink","resolveOtherwise","statesList","stateNext","stateObj","privatePortion","sTranslateResolve","sTranslate","setLanguage","sAuthResolve","sLocation","loggedIn","termsVersion","legal","redirectSuccess","getAbsoluteUrl","sActivitiesResolve","sActivity","getUnreadActivities","Topic","GroupMemberTopic","topic","description","$save","groupId","level","groupLevel","LEVELS","groupMemberTopic","topicId","editMode","rTopic","dialogLogin","doShowLogin","rTopicComment","getAbsoluteUrlApi","report","reportId","rVote","voteId","STATUSES","followUp","rItems","Group","filterParam","userId","VISIBILITY","public","private","creatorId","statuses","inProgress","voting","pinned","include","rGroup","aboutPage","links","about","rTopicInviteUser","TopicInviteUser","inviteId","topicInvite","sNotification","doAccept","$accept","invite","currentUrl","logout","rPartner","sPartner","partnerId","partnerInfo","widgetTitle","customWidgetStyle","widgetPostMessage","citizenos","widgetId","heightPrev","heightCurrent","lightbox","dialogElement","dialogElementPosition","doShowWidgetHowItWorks","TopicResolve","ActivitiesResolve","getActivitiesUnauth","getTopicActivitiesUnauth","$resource","GroupMemberUser","rows","members","topics","latest","requestObject","canUpdate","permission","admin","canDelete","levelGroup","none","edit","isPrivate","Mention","getUrlPrefix","getUrlUserId","headerGetter","TopicMemberUser","TopicVote","Vote","getUrlUser","vote","updateFields","postData","tokenJoin","updateTokenJoin","addToPinned","removeFromPinned","CATEGORIES","thetwelvemovie","tenislandproject","keepitcleanplan","eestijazziarengusuunad","business","transport","taxes","agriculture","environment","culture","health","work","education","politics","communities","defense","integration","varia","youth","science","society","REPORT_TYPES","abuse","obscene","spam","hate","netiquette","duplicate","CATEGORIES_COUNT_MAX","canEdit","canEditDescription","canVote","authType","VOTE_AUTH_TYPES","hard","canDelegate","delegationIsAllowed","canSendToFollowUp","canSendToVote","canLeave","hasVoteEnded","endsAt","hasVoteEndedExpired","TopicAttachment","attachmentId","SOURCES","dropbox","onedrive","googledrive","findReplies","currentNode","replies","reply","TopicComment","commentId","isEdited","edits","deletedAt","showDeletedComment","creator","COMMENT_TYPES","pro","con","COMMENT_REPORT_TYPES","COMMENT_ORDER_BY","rating","popularity","TopicEvent","eventId","accept","TopicMemberGroup","TopicReport","moderate","review","TYPES","pathStatus","pathSign","returndata","maxVotes","voteOption","voteCount","winner","getVoteCountTotal","voteCountTotal","VOTE_TYPES","regular","soft","VoteDelegation","API_REQUEST_REGEX","errorsToKeys","errorResponse","fieldErrorsToKeys","generalErrorToKey","getGeneralErrorTranslationKey","GENERAL_ERROR_KEY_PATTERN","statusCode","translationKey","addError","GENERAL_ERROR_FALLBACK_KEY_PATTERN","translationKeyHeading","translationKeyFallback","showDialog","unread","defaultSuccess","defaultError","parsedResult","activity","resultItems","resultObject","change","resItem","act","buildActivityString","getActivityValues","stringparts","actor","inReplyTo","getTopicActivities","offsetNr","limitNr","getActivities","paramsObj","sourcePartnerId","getCategoryTranslationKeys","catInput","translationKeys","category","getUpdatedTranslations","fieldName","previousValueKey","newValueKey","originType","fieldNameKey","translatedField","prev","getActivityTopicTitle","dataobject","topicTitle","getActivityClassName","groupName","getActivityDescription","getActivityGroupName","getActivityAttachmentName","getActivityUsers","userName","userName2","getActivityUserLevel","levelKeyPrefix","levelKey","attachmentName","reaction","showActivityDescription","showActivityUpdateVersions","handleActivityRedirect","activityType","angularLoad","sAttachment","googlePickerApiLoaded","oauthToken","createPicker","pickerCallback","google","picker","Response","ACTION","Action","PICKED","DOCUMENTS","attachment","Document","NAME","TYPE","sizeBytes","PickerBuilder","addView","ViewId","DOCS","setOAuthToken","setDeveloperKey","attachments","googleDrive","developerKey","setCallback","setOrigin","build","setVisible","googleDriveSelect","onAuthApiLoad","authorize","immediate","authResult","access_token","onPickerApiLoad","dropboxSelect","oneDriveSelect","oneDrive","isLoading","signUp","password","company","login","loginMobiilIdInit","pid","phoneNumber","loginMobiilIdStatus","loginSmartIdInit","countryCode","loginSmartIdStatus","loginIdCard","features","authentication","idCard","passwordResetSend","passwordReset","passwordResetCode","sGroup","membersList","topicsList","sHotkeys","KEYMAP","35","36","37","38","39","45","46","91","93","224","106","107","109","110","111","186","187","188","189","190","191","192","219","220","221","222","EVENTMAP","keysDown","keysList","combo","keyDown","matchCount","matchNeeded","keyUp","alphabet","getBaseUrl","baseUrlApi","api","_getAbsoluteUrl","queryString","getLocationHash","SUCCESS","INFO","ERROR","messages","addInfo","heading","sSearch","searchV2PendingDefer","searchV2","sTopic","listUnauth","categories","readUnauth","LANGUAGES","currentLanguage","debugLang","checkLanguageIsValid","switchLanguage","debugMode","getCurrentLanguage","sUpload","ALLOWED_FILE_TYPES","folder","formData","FormData","filepath","sUser","imageUrl","userData","updateLanguage","updateTermsVersion","deleteUser","consentsCreate","cosEllipsis","emailToDisplayName","wrapWithSpan","valueNew","tElem","cosDisabled","cosDisabledTooltip","originalElement","tooltip","COMMENT_NODE","tagName","watchDerigistrationFunction","elementClickHandler","documentClickHandler","minWidth","minHeight","valueNotPercent","receiveMessageHandler","newWidth","newHeight","sendScrollMessage","targetWindow","yOffsetExtra","mobileHeader","frameOffset","getFrameOffset","rect","ownerDocument","docElem","defaultView","clientTop","clientLeft","cosInitials","updateInitials","initials","unregisterWatch","cosModalTitle","cosModalDescription","cosModalValue","setModalContent","cosModalSaveAction","cosToggleStatus","cosModalClose","modalOpen","cosModalOpen","dialogDivs","cosModalOnSave","cosModelValue","cosModalIsDateSelected","datePickerMin","isModalVisible","showModal","hideModal","totalPages","pages","loadNext","loadPrevious","getWindowDimensions","wWidth","showNav","definedAction","scrollFunc","scrollTop","cosStyles","styles","offvalue","cosToggleTextOn","cosToggleTextOff","cosToggleDatepickerToggle","cosToggle","switch","startSlideAt","getElementStyle","getElementWidth","getElementMarginLeft","getElementPaddingLeft","getElementMaxDistanceLeft","startX","target_position","last_element_position","element_drag_speed","stop_position","ease_animation","new_element_position","element_style","element_width","element_max_distance_left","speeding_ticket","delta","element_position_current","marginLeft","elementX_current_position","onWindowResize","tabLength","tabFinalLength","numberOfElements","tabsTrainWidth","tabsVisibleAreaWidth","trainPosition","halfVariable","moveLeft","moveRight","readMore","maxTextHeight","Module","momentNames","viewConfig","datePickerDirective","datePickerConfig","datePickerUtils","minDate","maxDate","prepareViews","maxView","minView","setParams","arrowClick","createMoment","eventIsForPicker","pickerID","autoclose","autoClose","watchDirectChanges","callbackOnSetDate","dateChange","findFunction","nextView","selectDate","clipDate","setDate","prepareViewData","datePicker","getVisibleYears","getVisibleMonths","getDaysOfWeek","getVisibleWeeks","getVisibleHours","getVisibleMinutes","classList","isSameDay","isNow","inValidRange","compareFunc","date1","pickerIDs","updateViews","updateViewData","createNewDate","pushedDate","startYear","startMonth","actualOffset","isSameYear","isSameMonth","isSameHour","isSameMinutes","parentScope","findParam","targetIDs","onSetDate","formMobile","challengeID","isLoadingIdCard","doLoginMobiilId","loginMobileIdInitResult","pollMobiilIdLoginStatus","handleLoginSuccess","doLoginIdCard","LOGIN_PARTNERS","facebook","popupCenter","mobile","screenLeft","screenTop","targetWidth","targetHeight","screen","newWindow","doLogin","doLoginPartner","doLoginPartnerPopup","doLoginPartnerNoPopup","loginWindow","popupCheck","messageHandler","doLoginEsteId","doLoginSmartId","doResetPassword","formSmartId","loginSmartIdInitResult","pollSmartIdLoginStatus","tabSelected","passwordConfirm","imageFile","doUpdateProfile","emailChanged","uploadImage","click","switchImage","reader","readAsDataURL","deleteProfileImage","selectTab","tab","doPasswordReset","passwordResetEmail","doSignUp","subject","maxLengthSubject","maxLengthText","charactersLeft","saveComment","parentId","parentVersion","loadTopicComments","commentTextLengthCheck","commentSubjectLengthCheck","submitPro","submitCon","submitReply","reportTypes","doModerate","doReport","topicComment","$report","topicReport","moderatedReasonType","moderatedReasonText","doResolve","doReview","voteTypes","voteAuthTypes","CONF","defaultOptions","extraOptions","neutral","veto","optionsMax","optionsMin","showVoteCreate","voteForm","voteType","numberOfDaysLeft","setVoteType","daysToVoteEnd","endDate","diffTime","createVote","putResponseHeaders","partner","doCancel","activitiesOffset","activitiesLimit","activities","activityfilters","lastViewTime","loadActivities","filterValue","unreadActivitiesCount","updatedAt","showLoadMoreActivities","filterActivities","activityRedirect","activityData","activityTarget","activityObject","showSearch","showSearchResults","showSearchFiltersMobile","metainfo","keywords","icon","iconHires","author","image","siteName","hreflang","createRelUrls","notifications","doShowMyAccount","doShowActivityModal","openDias","isShowActivityModal","doShowTopicSettings","doShowLanguageSelect","languagesArray","doSwitchLanguage","doLogout","doWidgetLogout","scrollToAnchor","displayEmpoweredIcon","closeFooterNotification","displayFooterNotification","prerenderReady","ga","hitType","fromState","stateError","newActivitiesWatcher","topicList","searchFilter","searchOrderBy","memberTopics","users","emails","searchStringUser","searchStringTopic","searchResults","newMemberTopicTitle","newMemberTopicLevel","my.topic.level","my","addGroupMemberTopic","addNewGroupMemberTopic","removeGroupMemberTopic","updateGroupMemberTopicLevel","doOrderTopics","addGroupMemberUser","memberClone","doRemoveMemberUser","updateGroupMemberUserLevel","doSaveGroup","groupSavePromise","$update","savePromises","groupMemberUsersToSave","generalInfo","isSearchVisible","userList","doDeleteGroup","$delete","loadMemberTopicsList","loadMemberUsersList","doShowMemberTopicList","doToggleMemberTopicList","doUpdateMemberTopic","oldLevel","doDeleteMemberTopic","doShowMemberUserList","doToggleMemberUserList","doUpdateMemberUser","groupMemberUser","doDeleteMemberUser","doLeaveGroup","FILTERS_ALL","topicCountTotal","isTopicListLoading","doSetFilter","loadTopicList","doClearFilters","isFilterApplied","isTutorialVisible","countTotal","joinTopic","$join","itemList","onSelect","newList","isGroup","groupMemberTopicsVisible","isGroupMemberTopicsVisible","doToggleGroupTopicList","indexGroupIdVisible","searchInput","combined","noResults","viewMoreInProgress","moreStr","combineResults","contexts","models","currentResults","doSearch","goToView","viewMoreResults","moreResults","closeSearchArea","saveInProgress","uploadFile","selectFile","appendAttachment","doSaveAttachment","fileUrl","topicAttachment","editAttachment","deleteAttachment","commentsLimit","topicComments","orderByTranslation","orderByOptions","loadPage","argumentsPage","deletedReasonType","rkey","gotToComment","orderComments","doCommentVote","$vote","doCommentReport","updateComment","editType","editSubject","editText","commentEditMode","showEdit","getParentAuthor","rootComment","doShowDeleteComment","doShowDeleteReply","showEdits","goToParentComment","doAddComment","focusArgumentSubject","isTopicReported","hideTopicContent","doShowReportOverlay","padUrl","ATTACHMENT_SOURCES","voteResults","groupList","hashtagForm","hashtag","bytesLeft","trustAsResourceUrl","showInfoEdit","showVoteArea","multipleWinners","showInfoWinners","winnerCount","loadTopicMemberUserList","loadTopicInviteUserList","invites","levelOrder","inviteListOrderedByLevel","_rows","loadTopicMemberGroupList","doToggleActivities","activityFeed","showVoteCreateForm","sendToVote","topics_settings","$patch","topicPatched","sendToFollowUp","stateSuccess","closeTopic","loadTopicSocialMentions","topicSocialMentions","doToggleEditMode","hideInfoEdit","loadTopicAttachments","topicAttachments","doDeleteTopic","doLeaveTopic","topicMemberUser","doSetTopicStatus","doSaveVoteEndsAt","doToggleMemberGroupList","doShowMemberGroupList","doUpdateMemberGroup","topicMemberGroup","doDeleteMemberGroup","levelUser","doDeleteInviteUser","topicInviteUser","isAll","promisesToResolve","togglePin","$removeFromPinned","$addToPinned","downloadAttachment","topicEvents","eventForm","submitEvent","topicEvent","deleteEvent","urlJoin","topicVote","memberGroups","searchString","generateJoinUrl","checkHashtag","hashtagMaxLength","doDeleteHashtag","doEditVoteDeadline","generateTokenJoin","$updateTokenJoin","copyInviteLink","urlInputElement","setSelectionRange","execCommand","addTopicCategory","removeTopicCategory","addTopicMember","addTopicMemberUser","addTopicMemberGroup","removeTopicMemberGroup","updateTopicMemberGroupLevel","removeTopicMemberUser","updateTopicMemberUserLevel","doSaveTopic","topicMemberUsersToSave","getUserHasVoted","doVote","dOption","optionId","downloads","bdocVote","bdocUri","userVote","doDelegate","delegation","delegateUser","doRevokeDelegation","getVoteValuePercentage","getOptionLetter","topicMembers","addUser","doRemoveDelegateUser","doSaveDelegate","optionSelected","doSignWithCard","voteResponse","signedInfoDigest","signedInfoHashType","signTopicVote","signatureValue","$sign","voteSignResult","hwCryptoErrorToTranslationKey","doSignWithMobile","voteInitResult","pollVoteMobileSignStatus","voteStatusResult","voteStatusPromise","errorKeyPrefix"],"mappings":"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","file":"citizenos-fe.bundle.js","sourcesContent":["//! Copyright (c) Microsoft Corporation. All rights reserved.\nvar __extends=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);r.prototype=t.prototype;e.prototype=new r};!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var t;t=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this;t.OneDrive=e()}}(function(){var e;return function t(e,r,i){function n(a,s){if(!r[a]){if(!e[a]){var u=\"function\"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var l=new Error(\"Cannot find module '\"+a+\"'\");throw l.code=\"MODULE_NOT_FOUND\",l}var d=r[a]={exports:{}};e[a][0].call(d.exports,function(t){var r=e[a][1][t];return n(r?r:t)},d,d.exports,t,e,r,i)}return r[a].exports}for(var o=\"function\"==typeof require&&require,a=0;ah}function p(e,t,a){var s,u,l,d;switch(a.endpointHint){case o[\"default\"].aad:var c=this.parseIdToken(t);s=c.preferredUserName;if(c.tid===n[\"default\"].CUSTOMER_TID){l=r[\"default\"].graph_odc;d=!0}else{l=r[\"default\"].graph_odb;d=!1}u=o[\"default\"].aad;break;case o[\"default\"].msa:l=r[\"default\"].msa;u=o[\"default\"].msa;s=a.loginHint;d=!0;break;case o[\"default\"].tenant:l=r[\"default\"].filesV2;u=o[\"default\"].tenant;s=a.loginHint;d=!1}var p={apiEndpoint:l,loginHint:s,endpointHint:u,timeStamp:(new Date).getTime(),isConsumerAccount:d},f=i.getCacheItem(g)||{};f[y+e]=p;i.setCacheItem(g,f);return p}function f(e){e||a.throwError(new u[\"default\"](s[\"default\"].badResponse,\"id_token is missing in oauth response\"));var t=e.split(\".\")[1],r=t.replace(\"-\",\"+\").replace(\"_\",\"/\"),i=l.deserializeJSON(atob(r));i[v]||a.throwError(new u[\"default\"](s[\"default\"].badResponse,\"tid is missing in id_token response\"));i[m]||a.throwError(new u[\"default\"](s[\"default\"].badResponse,\"preferred_username is missing in id_token response\"));return{tid:i[v],preferredUserName:i[m]}}var h=36e5,v=\"tid\",m=\"preferred_username\",g=\"odsdkLoginHint\",y=\"od7-\";t.getLoginHint=d;t.loginHintExpired=c;t.updateLoginHint=p;t.parseIdToken=f}(e,r,e(\"../models/ApiEndpoint\"),e(\"../utilities/Cache\"),e(\"../Constants\"),e(\"../models/DomainHint\"),e(\"../utilities/ErrorHandler\"),e(\"../models/ErrorType\"),e(\"../models/OneDriveSdkError\"),e(\"../utilities/ObjectUtilities\"))},{\"../Constants\":1,\"../models/ApiEndpoint\":11,\"../models/DomainHint\":12,\"../models/ErrorType\":13,\"../models/OneDriveSdkError\":16,\"../utilities/Cache\":22,\"../utilities/ErrorHandler\":26,\"../utilities/ObjectUtilities\":28}],7:[function(e,t,r){!function(e,t,r,i,n,o,a,s,u,l,d,c){\"use strict\";function p(){n.onDocumentReady(function(){var e=c.readCurrentUrlParameters(),t=e[U]||e[k]||e[b];t&&window.opener&&f(e,new r[\"default\"](window.opener))})}function f(e,t){n.displayOverlay();e[U]?g(JSON.parse(e[U])):e[k]?m(h(e),t):e[b]&&m(v(e),t)}function h(e){var t=new l[\"default\"](a[\"default\"].badResponse,e[P]);return{type:\"error\",error:t,state:e[C]}}function v(e){return{type:\"success\",accessToken:e[b],idToken:e[O],state:e[C]}}function m(e,t){if(e.state){var r=e.state.split(\"_\");2!==r.length&&o.throwError(new l[\"default\"](a[\"default\"].badResponse,\"received bad state parameter from Oauth endpoint, state received: \"+e.state)).exposeToPublic();var i=r[0];t?t.send(R+JSON.stringify(e),i):o.throwError(new l[\"default\"](a[\"default\"].popupOpen,\"opener is not defined\")).exposeToPublic()}else o.throwError(new l[\"default\"](a[\"default\"].badResponse,\"missing state parameter from Oauth redirect\")).exposeToPublic()}function g(e){var t;switch(e.endpoint){case u[\"default\"].AAD:t=y(e);break;case u[\"default\"].AADv2:t=E(e);break;case u[\"default\"].MSA:t=_(e);break;default:o.throwError(new l[\"default\"](a[\"default\"].badResponse,\"received bad oauth endpoint, endpoint value is: \"+e.endpoint))}if(e.switchAccount)t=c.appendQueryString(t,\"prompt\",\"select_account\");else if(e.loginHint){t=c.appendQueryString(t,\"login_hint\",e.loginHint);t=c.appendQueryString(t,\"domain_hint\",e.isConsumerAccount?\"consumers\":\"organizations\")}c.redirect(t)}function y(e){return c.appendQueryStrings(S,{redirect_uri:e.redirectUri,client_id:e.clientId,response_type:\"token\",state:e.state,resource:e.origin})}function E(e){var t=\"profile openid https://graph.microsoft.com/User.Read \"+e.scopes.map(function(e){return\"https://graph.microsoft.com/\"+e}).join(\" \"),r=c.appendQueryStrings(I,{redirect_uri:e.redirectUri,client_id:e.clientId,scope:t,response_mode:\"fragment\",state:e.state,nonce:c.generateNonce()});r+=\"&response_type=id_token+token\";return r}function _(e){for(var t=!1,r=0,i=e.scopes;r1}return c.appendQueryStrings(A,{redirect_uri:e.redirectUri,client_id:e.clientId,response_type:\"token\",state:e.state,scope:\"onedrive.\"+(t?\"readwrite\":\"readonly\")})}function w(e,t){var r=document.location.origin+\"_\"+c.generateNonce();e.state=r;return new d.Promise(function(i,o){var s=n.onMessage(function(e){if(e.data&&0===e.data.indexOf(R)){var u=JSON.parse(e.data.substring(R.length));if(u.state===r&&e.source===t.getPopupWindow()){n.removeMessageListener(s);if(\"error\"===u.type||u.error){var d=a[\"default\"][u.error.errorCode];o(new l[\"default\"](d,u.error.message))}else i(u)}else o(new l[\"default\"](a[\"default\"].popupOpen,\"Another popup is already opened.\"))}});return t.openPopup(e.redirectUri+\"?\"+U+\"=\"+JSON.stringify(e)).then(function(){i({type:\"cancel\",state:r})})})}function T(e,t){var r;switch(e.endpointHint){case i[\"default\"].aad:r=u[\"default\"].AADv2;break;case i[\"default\"].msa:r=u[\"default\"].MSA;break;case i[\"default\"].tenant:r=u[\"default\"].AAD}var n=e.scopes.map(function(t){return t+(t.indexOf(\"Files.\")>-1&&e.needSharePointPermission?\".All\":\"\")}),o={clientId:e.clientId,endpoint:r,scopes:n,origin:window.location.origin,redirectUri:e.redirectUri,switchAccount:t},a=s.getLoginHint(e);if(e.loginHint){o.loginHint=e.loginHint;o.isConsumerAccount=e.isConsumerAccount}else if(a){o.loginHint=a.loginHint;o.isConsumerAccount=a.isConsumerAccount}return o}var b=\"access_token\",k=\"error\",P=\"error_description\",O=\"id_token\",U=\"oauth\",C=\"state\",S=\"https://login.microsoftonline.com/common/oauth2/authorize\",I=\"https://login.microsoftonline.com/common/oauth2/v2.0/authorize\",A=\"https://login.live.com/oauth20_authorize.srf\",R=\"[OneDriveSDK-OauthResponse]\";t.onAuth=p;t.handleOauth=f;t.auth=w;t.buildOauthConfig=T}(e,r,e(\"../utilities/Channel\"),e(\"../models/DomainHint\"),e(\"../utilities/DomUtilities\"),e(\"../utilities/ErrorHandler\"),e(\"../models/ErrorType\"),e(\"./LoginCache\"),e(\"../models/OauthEndpoint\"),e(\"../models/OneDriveSdkError\"),e(\"es6-promise\"),e(\"../utilities/UrlUtilities\"))},{\"../models/DomainHint\":12,\"../models/ErrorType\":13,\"../models/OauthEndpoint\":15,\"../models/OneDriveSdkError\":16,\"../utilities/Channel\":24,\"../utilities/DomUtilities\":25,\"../utilities/ErrorHandler\":26,\"../utilities/UrlUtilities\":32,\"./LoginCache\":6,\"es6-promise\":34}],8:[function(e,t,r){!function(e,t,r,i,n,o,a,s,u,l,d){\"use strict\";var c=function(e){function t(t){var r=a.shallowClone(t),i=new s[\"default\"](r);e.call(this,i)}__extends(t,e);t.prototype.launchPicker=function(){return e.prototype.launchInvoker.call(this)};t.prototype.buildPickerUXConfig=function(e){var r={applicationId:e.clientId,accessLevel:t.ACCESS_LEVEL,filter:e.filter,id:d.generateNonce(),navEnabled:e.navEnabled,origin:window.location.origin,parentDiv:e.parentDiv,redirectUri:e.redirectUri,selectionMode:e.multiSelect?\"multiple\":\"single\",viewType:t.VIEW_TYPE};return r};t.prototype.makeApiRequest=function(e){if(this.invokerOptions.action===u[\"default\"].share)return this.shareItems(e);var t=this.invokerOptions.action===u[\"default\"].download;return this.queryItems(e,t)};t.prototype.queryItems=function(e,t){var r=this.invokerOptions.queryParameters||n[\"default\"].DEFAULT_QUERY_ITEM_PARAMETER;t&&(r=l.format(\"{0}{1}{2}\",r,r.indexOf(\"select\")===-1?\"&select=\":\",\",\"name,size,@content.downloadUrl\"));return i.getItems(e,this.getApiRequestConfig(),r)};t.prototype.shareItems=function(e){var t=this,r=this.invokerOptions,n=r.createLinkParameters||this.getDefaultSharingConfig();return i.getItems(e,this.getApiRequestConfig()).then(function(e){return i.shareItems(e,t.getApiRequestConfig(),n)})};t.prototype.getDefaultSharingConfig=function(){var e={type:\"view\"};if(this.getApiRequestConfig().apiEndpoint===r[\"default\"].graph_odc||this.getApiRequestConfig().apiEndpoint===r[\"default\"].msa)return e;e.scope=\"organization\";return e};t.ACCESS_LEVEL=\"read\";t.VIEW_TYPE=\"files\";return t}(o[\"default\"]);Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=c}(e,r,e(\"../models/ApiEndpoint\"),e(\"./ApiRequest\"),e(\"../Constants\"),e(\"./Invoker\"),e(\"../utilities/ObjectUtilities\"),e(\"../models/PickerOptions\"),e(\"../models/PickerActionType\"),e(\"../utilities/StringUtilities\"),e(\"../utilities/UrlUtilities\"))},{\"../Constants\":1,\"../models/ApiEndpoint\":11,\"../models/PickerActionType\":17,\"../models/PickerOptions\":18,\"../utilities/ObjectUtilities\":28,\"../utilities/StringUtilities\":30,\"../utilities/UrlUtilities\":32,\"./ApiRequest\":4,\"./Invoker\":5}],9:[function(e,t,r){!function(e,t,r,i,n,o,a,s,u,l,d,c){\"use strict\";function p(e,t){return new g(e,t)}var f=\"https://onedrive.live.com/\",h=\"[OneDrive-FromPicker]\",v=\"[OneDrive-ToPicker]\",m=\"initialize\";t.generatePickerUX=p;var g=function(){function e(e,t){if(e===r[\"default\"].graph_odc||e===r[\"default\"].msa)this.url=l.appendQueryStrings(f,{v:\"2\"});else if(e===r[\"default\"].graph_odb||e===r[\"default\"].filesV2){t||o.throwError(new u[\"default\"](a[\"default\"].optionsError,\"the site url must be specified\")).exposeToPublic();l.validateUrlProtocol(t,[\"HTTPS\"]);e===r[\"default\"].graph_odb&&(t=l.appendToPath(t,\"_layouts/onedrive.aspx\"));this.url=l.appendQueryString(t,\"p\",\"2\")}}e.prototype.invokePickerUX=function(e,t){var r=this,o=!1,p=new d.Promise(function(d,p){var f=n.onMessage(function(s){var l=r.url.split(\"/\"),c=new i[\"default\"](r.iframe?r.iframe.contentWindow:t.getPopupWindow());if(s.origin===l[0]+\"//\"+l[2]){var g=\"\"+(s.data||\"\");if(0===g.indexOf(h)&&s.source===c.getReceiver()){var y=JSON.parse(g.substring(h.length)),E=y.pickerId,_=y.conversationId,w=y.type;if(E===e.id)if(w===m)c.send(v+JSON.stringify({pickerId:E,conversationId:_,type:\"activate\"}),s.origin);else{o=!0;d(y);n.removeMessageListener(f)}}else p(new u[\"default\"](a[\"default\"].badResponse,\"received invalid response from picker UI\"))}}),g={aid:e.applicationId,a:e.accessLevel,id:e.id,l:e.linkType,ln:e.navEnabled,s:e.selectionMode,f:e.filter,v:e.viewType,ru:e.redirectUri,o:e.origin,sdk:c[\"default\"].SDK_VERSION_NUMBER,e:e.entryLocation,st:e.sourceTypes,sn:!e.parentDiv,ss:!e.parentDiv},y=l.appendQueryString(r.url,\"picker\",JSON.stringify(g));s[\"default\"].logMessage(\"invoke picker with url: \"+y);if(!e.parentDiv)return t.openPopup(y).then(function(){d({type:\"cancel\"})});t.close();var E=document.createElement(\"iframe\");E.id=\"odpicker\"+(new Date).getTime();E.style.position=\"relative\";E.style.width=\"100%\";E.style.height=\"100%\";E.src=y;e.parentDiv.appendChild(E);r.iframe=E});return p};e.prototype.removeIFrame=function(){if(this.iframe){this.iframe.parentNode.removeChild(this.iframe);this.iframe=null}};return e}();Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=g}(e,r,e(\"../models/ApiEndpoint\"),e(\"../utilities/Channel\"),e(\"../utilities/DomUtilities\"),e(\"../utilities/ErrorHandler\"),e(\"../models/ErrorType\"),e(\"../utilities/Logging\"),e(\"../models/OneDriveSdkError\"),e(\"../utilities/UrlUtilities\"),e(\"es6-promise\"),e(\"../Constants\"))},{\"../Constants\":1,\"../models/ApiEndpoint\":11,\"../models/ErrorType\":13,\"../models/OneDriveSdkError\":16,\"../utilities/Channel\":24,\"../utilities/DomUtilities\":25,\"../utilities/ErrorHandler\":26,\"../utilities/Logging\":27,\"../utilities/UrlUtilities\":32,\"es6-promise\":34}],10:[function(e,t,r){!function(e,t,r,i,n,o,a,s,u,l){\"use strict\";var d=\"readwrite\",c=\"folders\",p=\"single\",f=function(e){function t(t){var r=o.shallowClone(t),i=new s[\"default\"](r);e.call(this,i)}__extends(t,e);t.prototype.launchSaver=function(){return e.prototype.launchInvoker.call(this)};t.prototype.buildPickerUXConfig=function(e){return{applicationId:e.clientId,accessLevel:d,id:l.generateNonce(),navEnabled:e.navEnabled,filter:e.filter,origin:window.location.origin,parentDiv:e.parentDiv,redirectUri:e.redirectUri,selectionMode:p,viewType:c}};t.prototype.makeApiRequest=function(e){var t=this.invokerOptions;if(this.invokerOptions.action===a[\"default\"].query){var n=this.invokerOptions.queryParameters||i[\"default\"].DEFAULT_QUERY_ITEM_PARAMETER;return r.getItems(e,this.apiRequestConfig,n)}if(t.uploadType===u[\"default\"].dataUrl||t.uploadType===u[\"default\"].url){var o={name:t.fileName};return r.saveItemByUriUpload(e.value[0],o,t.sourceUri,this.apiRequestConfig)}if(t.uploadType===u[\"default\"].form){var o={name:t.fileName,\"@name.conflictBehavior\":t.nameConflictBehavior};return r.saveItemByFormUpload(e.value[0],o,t.fileInput,this.apiRequestConfig,t.progress)}};return t}(n[\"default\"]);Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=f}(e,r,e(\"./ApiRequest\"),e(\"../Constants\"),e(\"./Invoker\"),e(\"../utilities/ObjectUtilities\"),e(\"../models/SaverActionType\"),e(\"../models/SaverOptions\"),e(\"../models/UploadType\"),e(\"../utilities/UrlUtilities\"))},{\"../Constants\":1,\"../models/SaverActionType\":19,\"../models/SaverOptions\":20,\"../models/UploadType\":21,\"../utilities/ObjectUtilities\":28,\"../utilities/UrlUtilities\":32,\"./ApiRequest\":4,\"./Invoker\":5}],11:[function(e,t,r){!function(e,t){\"use strict\";var r;!function(e){e[e.filesV2=0]=\"filesV2\";e[e.graph_odc=1]=\"graph_odc\";e[e.graph_odb=2]=\"graph_odb\";e[e.msa=3]=\"msa\"}(r||(r={}));Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=r}(e,r)},{}],12:[function(e,t,r){!function(e,t){\"use strict\";var r;!function(e){e[e.aad=0]=\"aad\";e[e.msa=1]=\"msa\";e[e.tenant=2]=\"tenant\"}(r||(r={}));Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=r}(e,r)},{}],13:[function(e,t,r){!function(e,t){\"use strict\";var r;!function(e){e[e.badResponse=0]=\"badResponse\";e[e.fileReaderFailure=1]=\"fileReaderFailure\";e[e.popupOpen=2]=\"popupOpen\";e[e.unknown=3]=\"unknown\";e[e.unsupportedFeature=4]=\"unsupportedFeature\";e[e.webRequestFailure=5]=\"webRequestFailure\";e[e.internalError=6]=\"internalError\";e[e.optionsError=7]=\"optionsError\";e[e.typeError=8]=\"typeError\";e[e.popupClosed=9]=\"popupClosed\"}(r||(r={}));Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=r}(e,r)},{}],14:[function(e,t,r){!function(e,t,r,i,n,o,a,s,u,l,d,c){\"use strict\";var p=new RegExp(\"^[a-fA-F\\\\d]{8}-([a-fA-F\\\\d]{4}-){3}[a-fA-F\\\\d]{12}$\"),f=function(){function e(t){this.navEnabled=!0;this.needSharePointPermission=!0;this.clientId=d.validateType(t.clientId,i[\"default\"].TYPE_STRING);var o=d.validateCallback(t.cancel,!0);this.cancel=function(){s[\"default\"].logMessage(\"user cancelled operation\");o&&r.invokeAppCallback(o,!0)};var a=d.validateCallback(t.error,!0);this.error=function(e){if(!a)throw e;r.invokeAppCallback(a,!0,e)};this.parseAdvancedOptions(t);this.redirectUri=this.redirectUri||c.trimUrlQuery(window.location.href);this.endpointHint=this.endpointHint||n[\"default\"].aad;e.checkClientId(this.clientId)}e.checkClientId=function(e){e?p.test(e)?s[\"default\"].logMessage(\"parsed client id: \"+e):o.throwError(new u[\"default\"](a[\"default\"].unknown,l.format(\"invalid format for client id '{0}' - AAD: 32 characters (HEX) GUID\",e))):o.throwError(new u[\"default\"](a[\"default\"].unknown,\"client id is missing in options\"))};e.prototype.needOauth=function(){return this.needAPICall()&&!this.accessToken||this.endpointHint===n[\"default\"].aad};e.prototype.parseAdvancedOptions=function(e){if(e.advanced){if(e.advanced.redirectUri){c.validateRedirectUrlHost(e.advanced.redirectUri);this.redirectUri=e.advanced.redirectUri}if(e.advanced.queryParameters){var t=c.readUrlParameters(\"?\"+e.advanced.queryParameters);for(var r in t)\"select\"!==r.toLowerCase()&&\"expand\"!==r.toLowerCase()&&o.throwError(new u[\"default\"](a[\"default\"].optionsError,l.format(\"unexpected query key: {0} is found in advanced.queryParameters\",r)));var s=t.select,p=t.expand;s&&p?this.queryParameters=l.format(\"expand={0}&select={1}\",p,s):p?this.queryParameters=l.format(\"expand={0}\",p):s&&\"select=\"+s.split(\",\").sort().join(\",\")!==i[\"default\"].DEFAULT_QUERY_ITEM_PARAMETER&&(this.queryParameters=l.format(\"select={0}\",s))}if(e.advanced.endpointHint){if(e.advanced.endpointHint.toLowerCase()===i[\"default\"].VROOM_ENDPOINT_HINT){this.endpointHint=n[\"default\"].msa;\"undefined\"==typeof e.advanced.isConsumerAccount&&(this.isConsumerAccount=!0)}else{var f=d.validateType(e.advanced.endpointHint,\"string\",!1);c.validateUrlProtocol(f);this.endpointHint=n[\"default\"].tenant;\"undefined\"==typeof e.advanced.isConsumerAccount&&(this.isConsumerAccount=!1);this.siteUrl=f}e.advanced.accessToken&&(this.accessToken=e.advanced.accessToken)}if(e.advanced.iframeParentDiv){e.advanced.iframeParentDiv.nodeName&&\"div\"===e.advanced.iframeParentDiv.nodeName.toLowerCase()||o.throwError(new u[\"default\"](a[\"default\"].optionsError,\"the iframe's parent div element is not a DOM object\")).exposeToPublic();this.parentDiv=e.advanced.iframeParentDiv}e.advanced.scopes&&(\"string\"==typeof e.advanced.scopes?this.scopes=[e.advanced.scopes]:e.advanced.scopes instanceof Array&&(this.scopes=e.advanced.scopes));this.linkType=e.advanced.linkType;this.parseNavigationOptions(e.advanced.navigation);this.loginHint=e.advanced.loginHint;\"boolean\"==typeof e.advanced.isConsumerAccount&&(this.isConsumerAccount=e.advanced.isConsumerAccount);this.filter=e.advanced.filter}};e.prototype.parseNavigationOptions=function(e){if(e){var t=e.entryLocation;if(t){var r=t.sharePoint,i=r.sitePath,n=r.listPath;i&&c.validateUrlProtocol(i,[\"HTTPS\"]);n&&c.validateUrlProtocol(n,[\"HTTPS\"]);this.navEntryLocation=t}var o=e.sourceTypes instanceof Array?e.sourceTypes:e.sourceTypes?[e.sourceTypes]:null;\nif(o){this.needSharePointPermission=!(1===o.length&&\"onedrive\"===o[0].toLowerCase());this.navSourceTypes=o}this.navEnabled=!e.disable}};return e}();Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=f}(e,r,e(\"../utilities/CallbackInvoker\"),e(\"../Constants\"),e(\"./DomainHint\"),e(\"../utilities/ErrorHandler\"),e(\"./ErrorType\"),e(\"../utilities/Logging\"),e(\"./OneDriveSdkError\"),e(\"../utilities/StringUtilities\"),e(\"../utilities/TypeValidators\"),e(\"../utilities/UrlUtilities\"))},{\"../Constants\":1,\"../utilities/CallbackInvoker\":23,\"../utilities/ErrorHandler\":26,\"../utilities/Logging\":27,\"../utilities/StringUtilities\":30,\"../utilities/TypeValidators\":31,\"../utilities/UrlUtilities\":32,\"./DomainHint\":12,\"./ErrorType\":13,\"./OneDriveSdkError\":16}],15:[function(e,t,r){!function(e,t){\"use strict\";var r;!function(e){e[e.AAD=0]=\"AAD\";e[e.AADv2=1]=\"AADv2\";e[e.MSA=2]=\"MSA\"}(r||(r={}));Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=r}(e,r)},{}],16:[function(e,t,r){!function(e,t,r,i){\"use strict\";var n=function(e){function t(t,i){e.call(this,i);this.errorCode=r[\"default\"][t];this.message=i}__extends(t,e);t.prototype.toString=function(){return i.format(\"[OneDriveSDK Error] errorType: {0}, message: {1}\",this.errorCode,this.message)};return t}(Error);Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=n}(e,r,e(\"../models/ErrorType\"),e(\"../utilities/StringUtilities\"))},{\"../models/ErrorType\":13,\"../utilities/StringUtilities\":30}],17:[function(e,t,r){!function(e,t){\"use strict\";var r;!function(e){e[e.download=0]=\"download\";e[e.query=1]=\"query\";e[e.share=2]=\"share\"}(r||(r={}));Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=r}(e,r)},{}],18:[function(e,t,r){!function(e,t,r,i,n,o,a,s){\"use strict\";var u=function(e){function t(t){e.call(this,t);var n=s.validateCallback(t.success,!1);this.success=function(e){o[\"default\"].logMessage(\"picker operation succeeded\");r.invokeAppCallback(n,!0,e)};this.multiSelect=s.validateType(t.multiSelect,i[\"default\"].TYPE_BOOLEAN,!0,!1);var u=s.validateType(t.action,i[\"default\"].TYPE_STRING,!0,a[\"default\"][a[\"default\"].query]);this.action=a[\"default\"][u];t.advanced&&(this.createLinkParameters=t.advanced.createLinkParameters);this.scopes||(this.scopes=[this.action===a[\"default\"].share?\"Files.ReadWrite\":\"Files.Read\"])}__extends(t,e);t.prototype.needAPICall=function(){return!!this.queryParameters||this.action!==a[\"default\"].query};return t}(n[\"default\"]);Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=u}(e,r,e(\"../utilities/CallbackInvoker\"),e(\"../Constants\"),e(\"./InvokerOptions\"),e(\"../utilities/Logging\"),e(\"./PickerActionType\"),e(\"../utilities/TypeValidators\"))},{\"../Constants\":1,\"../utilities/CallbackInvoker\":23,\"../utilities/Logging\":27,\"../utilities/TypeValidators\":31,\"./InvokerOptions\":14,\"./PickerActionType\":17}],19:[function(e,t,r){!function(e,t){\"use strict\";var r;!function(e){e[e.save=0]=\"save\";e[e.query=1]=\"query\"}(r||(r={}));Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=r}(e,r)},{}],20:[function(e,t,r){!function(e,t,r,i,n,o,a,s,u,l,d,c,p,f,h){\"use strict\";var v=function(e){function t(t){e.call(this,t);var n=p.validateCallback(t.success,!1);this.success=function(e){u[\"default\"].logMessage(\"saver operation succeeded\");r.invokeAppCallback(n,!0,e)};var o=p.validateCallback(t.progress,!0);this.progress=function(e){u[\"default\"].logMessage(c.format(\"upload progress: {0}%\",e));o&&r.invokeAppCallback(o,!1,e)};var a=p.validateType(t.action,i[\"default\"].TYPE_STRING,!0,d[\"default\"][d[\"default\"].query]);this.action=d[\"default\"][a];this.action===d[\"default\"].save&&this._setFileInfo(t);this.nameConflictBehavior=p.validateType(t.nameConflictBehavior,i[\"default\"].TYPE_STRING,!0,\"rename\");this.scopes||(this.scopes=[\"Files.ReadWrite\"])}__extends(t,e);t.prototype.needAPICall=function(){return!!this.queryParameters||this.action===d[\"default\"].save};t.prototype._setFileInfo=function(e){e.sourceInputElementId&&e.sourceUri&&o.throwError(new l[\"default\"](a[\"default\"].optionsError,\"sourceUri and sourceInputElementId are provided, only one is required.\"));this.sourceInputElementId=e.sourceInputElementId;this.sourceUri=e.sourceUri;var t=p.validateType(e.fileName,i[\"default\"].TYPE_STRING,!0,null);if(this.sourceUri){if(h.isPathFullUrl(this.sourceUri)){this.uploadType=f[\"default\"].url;this.fileName=t||h.getFileNameFromUrl(this.sourceUri);this.fileName||o.throwError(new l[\"default\"](a[\"default\"].optionsError,\"must supply a file name or a URL that ends with a file name\"))}else if(h.isPathDataUrl(this.sourceUri)){this.uploadType=f[\"default\"].dataUrl;this.fileName=t;this.fileName||o.throwError(new l[\"default\"](a[\"default\"].optionsError,\"must supply a file name for data URL uploads\"))}}else if(this.sourceInputElementId){this.uploadType=f[\"default\"].form;this.fileInput=n.getFileInput(this.sourceInputElementId);this.fileName=t||this.fileInput.name}else o.throwError(new l[\"default\"](a[\"default\"].optionsError,\"please specified one type of resource to save\"))};return t}(s[\"default\"]);Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=v}(e,r,e(\"../utilities/CallbackInvoker\"),e(\"../Constants\"),e(\"../utilities/DomUtilities\"),e(\"../utilities/ErrorHandler\"),e(\"./ErrorType\"),e(\"./InvokerOptions\"),e(\"../utilities/Logging\"),e(\"./OneDriveSdkError\"),e(\"./SaverActionType\"),e(\"../utilities/StringUtilities\"),e(\"../utilities/TypeValidators\"),e(\"./UploadType\"),e(\"../utilities/UrlUtilities\"))},{\"../Constants\":1,\"../utilities/CallbackInvoker\":23,\"../utilities/DomUtilities\":25,\"../utilities/ErrorHandler\":26,\"../utilities/Logging\":27,\"../utilities/StringUtilities\":30,\"../utilities/TypeValidators\":31,\"../utilities/UrlUtilities\":32,\"./ErrorType\":13,\"./InvokerOptions\":14,\"./OneDriveSdkError\":16,\"./SaverActionType\":19,\"./UploadType\":21}],21:[function(e,t,r){!function(e,t){\"use strict\";var r;!function(e){e[e.dataUrl=0]=\"dataUrl\";e[e.form=1]=\"form\";e[e.url=2]=\"url\"}(r||(r={}));Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=r}(e,r)},{}],22:[function(e,t,r){!function(e,t,r,i,n){\"use strict\";function o(e){var t=u();return t[e]}function a(e,t){var r=u();r[e]=t;l(r)}function s(e){var t=u(),r=t[e];delete t[e];l(t);return r}function u(){if(Storage){var e=localStorage.getItem(d),t=JSON.parse(e||\"{}\");return t}i.throwError(new n[\"default\"](r[\"default\"].unsupportedFeature,\"cache based on Storage is not supported in this browser\"))}function l(e){Storage?localStorage.setItem(d,JSON.stringify(e)):i.throwError(new n[\"default\"](r[\"default\"].unsupportedFeature,\"cache based on Storage is not supported in this browser\"))}var d=\"odpickerv7cache\";t.getCacheItem=o;t.setCacheItem=a;t.removeCacheItem=s}(e,r,e(\"../models/ErrorType\"),e(\"./ErrorHandler\"),e(\"../models/OneDriveSdkError\"))},{\"../models/ErrorType\":13,\"../models/OneDriveSdkError\":16,\"./ErrorHandler\":26}],23:[function(e,t,r){!function(e,t,r){\"use strict\";function i(e,t){for(var i=[],n=2;np){r.throwError(new n[\"default\"](i[\"default\"].optionsError,\"the user has selected a file larger than \"+f));return null}return s}r.throwError(new n[\"default\"](i[\"default\"].unknown,\"element was not an instance of an HTMLInputElement\"))}function c(){var e=document.createElement(\"div\"),t=[\"position: fixed\",\"width: 100%\",\"height: 100%\",\"top: 0px\",\"left: 0px\",\"background-color: white\",\"opacity: 1\",\"z-index: 10000\",\"min-width: 40px\",\"min-height: 40px\"];e.id=\"od-overlay\";e.style.cssText=t.join(\";\");var r=document.createElement(\"img\"),i=[\"position: absolute\",\"margin: auto\",\"top: 0\",\"left: 0\",\"right: 0\",\"bottom: 0\"];r.id=\"od-spinner\";r.src=\"https://p.sfx.ms/common/spinner_grey_40_transparent.gif\";r.style.cssText=i.join(\";\");e.appendChild(r);var n=document.createElement(\"style\");n.type=\"text/css\";n.innerHTML=\"body { visibility: hidden !important; }\";document.head.appendChild(n);s(function(){var t=document.body;null!==t?t.insertBefore(e,t.firstChild):document.createElement(\"body\").appendChild(e);document.head.removeChild(n)})}var p=104857600,f=\"100 MB\",h={};t.getElementById=a;t.onDocumentReady=s;t.onMessage=u;t.removeMessageListener=l;t.getFileInput=d;t.displayOverlay=c}(e,r,e(\"./ErrorHandler\"),e(\"../models/ErrorType\"),e(\"../models/OneDriveSdkError\"),e(\"./UrlUtilities\"))},{\"../models/ErrorType\":13,\"../models/OneDriveSdkError\":16,\"./ErrorHandler\":26,\"./UrlUtilities\":32}],26:[function(e,t,r){!function(e,t,r){\"use strict\";function i(e){o.push(e)}function n(e){if(e.errorCode!==r[\"default\"][r[\"default\"].unknown]){for(var t=0,i=o;t0){var n=i>r?i-1:e.length;w(e.substring(r,n),t)}i>0&&w(e.substring(i),t);return t}function p(e){E(e);window.location.replace(e)}function f(e){var t=[\"?\",\"#\"];for(var r in t){var i=e.indexOf(t[r]);i>0&&(e=e.substring(0,i))}return e}function h(e){var t=f(e);return t.substr(t.lastIndexOf(\"/\")+1)}function v(e){return s(e.replace(/^((\\w+:)?\\/\\/[^\\/]+\\/?).*$/,\"$1\"),\"\")}function m(e){return 0===e.indexOf(\"https://\")||0===e.indexOf(\"http://\")}function g(e){return 0===e.indexOf(\"data:\")}function y(){for(var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",t=\"\",i=0;i-1){var t=e.split(\"/\")[2];t!==window.location.host&&i.throwError(new o[\"default\"](n[\"default\"].optionsError,\"redirect uri is not in the same domain as picker sdk\")).exposeToPublic()}else i.throwError(new o[\"default\"](n[\"default\"].optionsError,\"redirect uri is not an absolute url\")).exposeToPublic()}function w(e,t){for(var r=e.split(\"&\"),i=0;i0?i._callSuccessCallback(e):i._callFailureCallback(e)};this._method||(this._method=this._json?e.HTTP_POST:e.HTTP_GET);this._request.open(this._method,this._url,!0);this._request.timeout=l;this._setHeaders();a[\"default\"].logMessage(\"starting request to: \"+this._url);this._request.send(this._json)}catch(n){this._callFailureCallback(d,n)}};e.prototype.upload=function(t,r,i,n){var o=this;try{this._successCallback=r;this._progressCallback=n;this._failureCallback=i;this._request=new XMLHttpRequest;this._request.ontimeout=this._onTimeout;this._method=e.HTTP_PUT;this._request.open(this._method,this._url,!0);this._setHeaders();this._request.onload=function(e){o._completed=!0;var t=o._request.status;200===t||201===t||202===t?o._callSuccessCallback(t):o._callFailureCallback(t,e)};this._request.onerror=function(e){o._completed=!0;o._callFailureCallback(o._request.status,e)};this._request.upload.onprogress=function(e){if(e.lengthComputable){var t={bytesTransferred:e.loaded,totalBytes:e.total,progressPercentage:0===e.total?0:e.loaded/e.total*100};o._callProgressCallback(t)}};a[\"default\"].logMessage(\"starting upload to: \"+this._url);this._request.send(t)}catch(s){this._callFailureCallback(d,s)}};e.prototype._callSuccessCallback=function(t){a[\"default\"].logMessage(\"calling xhr success callback, status: \"+e.statusCodeToString(t));this._successCallback(this._request,t,this._url)};e.prototype._callFailureCallback=function(t,r){a[\"default\"].logError(\"calling xhr failure callback, status: \"+e.statusCodeToString(t),this._request,r);this._failureCallback(this._request,t,t===c)};e.prototype._callProgressCallback=function(e){a[\"default\"].logMessage(\"calling xhr upload progress callback\");this._progressCallback(this._request,e)};e.prototype._abortRequest=function(){if(this&&!this._completed){this._completed=!0;if(this._request)try{this._request.abort()}catch(e){}this._callFailureCallback(p)}};e.prototype._onTimeout=function(){if(!this._completed){this._completed=!0;this._callFailureCallback(c)}};e.prototype._setHeaders=function(){for(var t in this._headers)this._request.setRequestHeader(t,this._headers[t]);if(this._clientId){var a=this._clientId;f.test(this._clientId)&&(a=\"0x\"+this._clientId);this._request.setRequestHeader(\"Application\",\"0x\"+a)}var l=u.format(\"{0}={1}\",\"SDK-Version\",i[\"default\"].SDK_VERSION);switch(this._apiEndpoint){case r[\"default\"].graph_odb:case r[\"default\"].filesV2:this._request.setRequestHeader(\"X-ClientService-ClientTag\",l);break;case r[\"default\"].graph_odc:case r[\"default\"].msa:this._request.setRequestHeader(\"X-RequestStats\",l);break;default:n.throwError(new s[\"default\"](o[\"default\"].internalError,\"invalid API endpoint: \"+this._apiEndpoint))}this._method===e.HTTP_POST&&this._request.setRequestHeader(\"Content-Type\",this._json?\"application/json\":\"text/plain\")};e.HTTP_GET=\"GET\";e.HTTP_POST=\"POST\";e.HTTP_PUT=\"PUT\";return e}();Object.defineProperty(t,\"__esModule\",{value:!0});t[\"default\"]=h}(e,r,e(\"../models/ApiEndpoint\"),e(\"../Constants\"),e(\"./ErrorHandler\"),e(\"../models/ErrorType\"),e(\"./Logging\"),e(\"../models/OneDriveSdkError\"),e(\"./StringUtilities\"))},{\"../Constants\":1,\"../models/ApiEndpoint\":11,\"../models/ErrorType\":13,\"../models/OneDriveSdkError\":16,\"./ErrorHandler\":26,\"./Logging\":27,\"./StringUtilities\":30}],34:[function(t,r,i){/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 3.3.1\n */\n!function(t,n){\"object\"==typeof i&&\"undefined\"!=typeof r?r.exports=n():\"function\"==typeof e&&e.amd?e(n):t.ES6Promise=n()}(this,function(){\"use strict\";function e(e){return\"function\"==typeof e||\"object\"==typeof e&&null!==e}function r(e){return\"function\"==typeof e}function i(e){X=e}function n(e){G=e}function o(){return function(){return process.nextTick(d)}}function a(){return function(){z(d)}}function s(){var e=0,t=new K(d),r=document.createTextNode(\"\");t.observe(r,{characterData:!0});return function(){r.data=e=++e%2}}function u(){var e=new MessageChannel;e.port1.onmessage=d;return function(){return e.port2.postMessage(0)}}function l(){var e=setTimeout;return function(){return e(d,1)}}function d(){for(var e=0;e>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n if (!m) {\n return isArray(this._weekdays) ? this._weekdays :\n this._weekdays['standalone'];\n }\n return isArray(this._weekdays) ? this._weekdays[m.day()] :\n this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input,units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input,units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n //! moment.js\n\n hooks.version = '2.22.2';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'YYYY-[W]WW', // \n MONTH: 'YYYY-MM' // \n };\n\n //! moment.js locale configuration\n\n hooks.defineLocale('af', {\n months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM : function (input) {\n return /^nm$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Vandag om] LT',\n nextDay : '[Môre om] LT',\n nextWeek : 'dddd [om] LT',\n lastDay : '[Gister om] LT',\n lastWeek : '[Laas] dddd [om] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'oor %s',\n past : '%s gelede',\n s : '\\'n paar sekondes',\n ss : '%d sekondes',\n m : '\\'n minuut',\n mm : '%d minute',\n h : '\\'n uur',\n hh : '%d ure',\n d : '\\'n dag',\n dd : '%d dae',\n M : '\\'n maand',\n MM : '%d maande',\n y : '\\'n jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week : {\n dow : 1, // Maandag is die eerste dag van die week.\n doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ar-dz', {\n months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 4 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ar-kw', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months$1 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n hooks.defineLocale('ar-ly', {\n months : months$1,\n monthsShort : months$1,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ar-ma', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$1 = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n };\n\n hooks.defineLocale('ar-sa', {\n months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$1[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss : '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$2 = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap$1 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n }, pluralForm$1 = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals$1 = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize$1 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$1(number),\n str = plurals$1[u][pluralForm$1(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months$2 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n hooks.defineLocale('ar', {\n months : months$2,\n monthsShort : months$2,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize$1('s'),\n ss : pluralize$1('s'),\n m : pluralize$1('m'),\n mm : pluralize$1('m'),\n h : pluralize$1('h'),\n hh : pluralize$1('h'),\n d : pluralize$1('d'),\n dd : pluralize$1('d'),\n M : pluralize$1('M'),\n MM : pluralize$1('M'),\n y : pluralize$1('y'),\n yy : pluralize$1('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$1[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$2[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n\n hooks.defineLocale('az', {\n months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[sabah saat] LT',\n nextWeek : '[gələn həftə] dddd [saat] LT',\n lastDay : '[dünən] LT',\n lastWeek : '[keçən həftə] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s əvvəl',\n s : 'birneçə saniyə',\n ss : '%d saniyə',\n m : 'bir dəqiqə',\n mm : '%d dəqiqə',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir il',\n yy : '%d il'\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM : function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal : function (number) {\n if (number === 0) { // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n 'dd': 'дзень_дні_дзён',\n 'MM': 'месяц_месяцы_месяцаў',\n 'yy': 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n hooks.defineLocale('be', {\n months : {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n },\n monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays : {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/\n },\n weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., HH:mm',\n LLLL : 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar : {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'праз %s',\n past : '%s таму',\n s : 'некалькі секунд',\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithPlural,\n hh : relativeTimeWithPlural,\n d : 'дзень',\n dd : relativeTimeWithPlural,\n M : 'месяц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM : function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('bg', {\n months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Днес в] LT',\n nextDay : '[Утре в] LT',\n nextWeek : 'dddd [в] LT',\n lastDay : '[Вчера в] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[В изминалата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[В изминалия] dddd [в] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'след %s',\n past : 'преди %s',\n s : 'няколко секунди',\n ss : '%d секунди',\n m : 'минута',\n mm : '%d минути',\n h : 'час',\n hh : '%d часа',\n d : 'ден',\n dd : '%d дни',\n M : 'месец',\n MM : '%d месеца',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('bm', {\n months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'MMMM [tile] D [san] YYYY',\n LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'\n },\n calendar : {\n sameDay : '[Bi lɛrɛ] LT',\n nextDay : '[Sini lɛrɛ] LT',\n nextWeek : 'dddd [don lɛrɛ] LT',\n lastDay : '[Kunu lɛrɛ] LT',\n lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s kɔnɔ',\n past : 'a bɛ %s bɔ',\n s : 'sanga dama dama',\n ss : 'sekondi %d',\n m : 'miniti kelen',\n mm : 'miniti %d',\n h : 'lɛrɛ kelen',\n hh : 'lɛrɛ %d',\n d : 'tile kelen',\n dd : 'tile %d',\n M : 'kalo kelen',\n MM : 'kalo %d',\n y : 'san kelen',\n yy : 'san %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$3 = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n numberMap$2 = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n\n hooks.defineLocale('bn', {\n months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),\n longDateFormat : {\n LT : 'A h:mm সময়',\n LTS : 'A h:mm:ss সময়',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm সময়',\n LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar : {\n sameDay : '[আজ] LT',\n nextDay : '[আগামীকাল] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[গতকাল] LT',\n lastWeek : '[গত] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s পরে',\n past : '%s আগে',\n s : 'কয়েক সেকেন্ড',\n ss : '%d সেকেন্ড',\n m : 'এক মিনিট',\n mm : '%d মিনিট',\n h : 'এক ঘন্টা',\n hh : '%d ঘন্টা',\n d : 'এক দিন',\n dd : '%d দিন',\n M : 'এক মাস',\n MM : '%d মাস',\n y : 'এক বছর',\n yy : '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap$2[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$3[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$4 = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠'\n },\n numberMap$3 = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n\n hooks.defineLocale('bo', {\n months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[དི་རིང] LT',\n nextDay : '[སང་ཉིན] LT',\n nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay : '[ཁ་སང] LT',\n lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ལ་',\n past : '%s སྔན་ལ',\n s : 'ལམ་སང',\n ss : '%d སྐར་ཆ།',\n m : 'སྐར་མ་གཅིག',\n mm : '%d སྐར་མ',\n h : 'ཆུ་ཚོད་གཅིག',\n hh : '%d ཆུ་ཚོད',\n d : 'ཉིན་གཅིག',\n dd : '%d ཉིན་',\n M : 'ཟླ་བ་གཅིག',\n MM : '%d ཟླ་བ',\n y : 'ལོ་གཅིག',\n yy : '%d ལོ'\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap$3[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$4[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n 'mm': 'munutenn',\n 'MM': 'miz',\n 'dd': 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n 'm': 'v',\n 'b': 'v',\n 'd': 'z'\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n hooks.defineLocale('br', {\n months : 'Genver_C\\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort : 'Gen_C\\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays : 'Sul_Lun_Meurzh_Merc\\'her_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h[e]mm A',\n LTS : 'h[e]mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [a viz] MMMM YYYY',\n LLL : 'D [a viz] MMMM YYYY h[e]mm A',\n LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'\n },\n calendar : {\n sameDay : '[Hiziv da] LT',\n nextDay : '[Warc\\'hoazh da] LT',\n nextWeek : 'dddd [da] LT',\n lastDay : '[Dec\\'h da] LT',\n lastWeek : 'dddd [paset da] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'a-benn %s',\n past : '%s \\'zo',\n s : 'un nebeud segondennoù',\n ss : '%d eilenn',\n m : 'ur vunutenn',\n mm : relativeTimeWithMutation,\n h : 'un eur',\n hh : '%d eur',\n d : 'un devezh',\n dd : relativeTimeWithMutation,\n M : 'ur miz',\n MM : relativeTimeWithMutation,\n y : 'ur bloaz',\n yy : specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal : function (number) {\n var output = (number === 1) ? 'añ' : 'vet';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n hooks.defineLocale('bs', {\n months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[jučer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ca', {\n months : {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: 'de gener_de febrer_de març_d\\'abril_de maig_de juny_de juliol_d\\'agost_de setembre_d\\'octubre_de novembre_de desembre'.split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [de] YYYY',\n ll : 'D MMM YYYY',\n LLL : 'D MMMM [de] YYYY [a les] H:mm',\n lll : 'D MMM YYYY, H:mm',\n LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll : 'ddd D MMM YYYY, H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextDay : function () {\n return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastDay : function () {\n return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'd\\'aquí %s',\n past : 'fa %s',\n s : 'uns segons',\n ss : '%d segons',\n m : 'un minut',\n mm : '%d minuts',\n h : 'una hora',\n hh : '%d hores',\n d : 'un dia',\n dd : '%d dies',\n M : 'un mes',\n MM : '%d mesos',\n y : 'un any',\n yy : '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal : function (number, period) {\n var output = (number === 1) ? 'r' :\n (number === 2) ? 'n' :\n (number === 3) ? 'r' :\n (number === 4) ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var months$3 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');\n function plural$1(n) {\n return (n > 1) && (n < 5) && (~~(n / 10) !== 1);\n }\n function translate$1(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n break;\n }\n }\n\n hooks.defineLocale('cs', {\n months : months$3,\n monthsShort : monthsShort,\n monthsParse : (function (months, monthsShort) {\n var i, _monthsParse = [];\n for (i = 0; i < 12; i++) {\n // use custom parser to solve problem with July (červenec)\n _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');\n }\n return _monthsParse;\n }(months$3, monthsShort)),\n shortMonthsParse : (function (monthsShort) {\n var i, _shortMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');\n }\n return _shortMonthsParse;\n }(monthsShort)),\n longMonthsParse : (function (months) {\n var i, _longMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');\n }\n return _longMonthsParse;\n }(months$3)),\n weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm',\n l : 'D. M. YYYY'\n },\n calendar : {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'před %s',\n s : translate$1,\n ss : translate$1,\n m : translate$1,\n mm : translate$1,\n h : translate$1,\n hh : translate$1,\n d : translate$1,\n dd : translate$1,\n M : translate$1,\n MM : translate$1,\n y : translate$1,\n yy : translate$1\n },\n dayOfMonthOrdinalParse : /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('cv', {\n months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar : {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L'\n },\n relativeTime : {\n future : function (output) {\n var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past : '%s каялла',\n s : 'пӗр-ик ҫеккунт',\n ss : '%d ҫеккунт',\n m : 'пӗр минут',\n mm : '%d минут',\n h : 'пӗр сехет',\n hh : '%d сехет',\n d : 'пӗр кун',\n dd : '%d кун',\n M : 'пӗр уйӑх',\n MM : '%d уйӑх',\n y : 'пӗр ҫул',\n yy : '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal : '%d-мӗш',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS : 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('da', {\n months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'på dddd [kl.] LT',\n lastDay : '[i går kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'få sekunder',\n ss : '%d sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en måned',\n MM : '%d måneder',\n y : 'et år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('de-at', {\n months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$1(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('de-ch', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime$1,\n mm : '%d Minuten',\n h : processRelativeTime$1,\n hh : '%d Stunden',\n d : processRelativeTime$1,\n dd : processRelativeTime$1,\n M : processRelativeTime$1,\n MM : processRelativeTime$1,\n y : processRelativeTime$1,\n yy : processRelativeTime$1\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$2(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('de', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime$2,\n mm : '%d Minuten',\n h : processRelativeTime$2,\n hh : '%d Stunden',\n d : processRelativeTime$2,\n dd : processRelativeTime$2,\n M : processRelativeTime$2,\n MM : processRelativeTime$2,\n y : processRelativeTime$2,\n yy : processRelativeTime$2\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var months$4 = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު'\n ], weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު'\n ];\n\n hooks.defineLocale('dv', {\n months : months$4,\n monthsShort : months$4,\n weekdays : weekdays,\n weekdaysShort : weekdays,\n weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat : {\n\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/M/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /މކ|މފ/,\n isPM : function (input) {\n return 'މފ' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar : {\n sameDay : '[މިއަދު] LT',\n nextDay : '[މާދަމާ] LT',\n nextWeek : 'dddd LT',\n lastDay : '[އިއްޔެ] LT',\n lastWeek : '[ފާއިތުވި] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ތެރޭގައި %s',\n past : 'ކުރިން %s',\n s : 'ސިކުންތުކޮޅެއް',\n ss : 'd% ސިކުންތު',\n m : 'މިނިޓެއް',\n mm : 'މިނިޓު %d',\n h : 'ގަޑިއިރެއް',\n hh : 'ގަޑިއިރު %d',\n d : 'ދުވަހެއް',\n dd : 'ދުވަސް %d',\n M : 'މަހެއް',\n MM : 'މަސް %d',\n y : 'އަހަރެއް',\n yy : 'އަހަރު %d'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 7, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('el', {\n monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),\n monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),\n weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM : function (input) {\n return ((input + '').toLowerCase()[0] === 'μ');\n },\n meridiemParse : /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl : {\n sameDay : '[Σήμερα {}] LT',\n nextDay : '[Αύριο {}] LT',\n nextWeek : 'dddd [{}] LT',\n lastDay : '[Χθες {}] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse : 'L'\n },\n calendar : function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));\n },\n relativeTime : {\n future : 'σε %s',\n past : '%s πριν',\n s : 'λίγα δευτερόλεπτα',\n ss : '%d δευτερόλεπτα',\n m : 'ένα λεπτό',\n mm : '%d λεπτά',\n h : 'μία ώρα',\n hh : '%d ώρες',\n d : 'μία μέρα',\n dd : '%d μέρες',\n M : 'ένας μήνας',\n MM : '%d μήνες',\n y : 'ένας χρόνος',\n yy : '%d χρόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-au', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-ca', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'YYYY-MM-DD',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-gb', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-ie', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-il', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-nz', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('eo', {\n months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),\n weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D[-a de] MMMM, YYYY',\n LLL : 'D[-a de] MMMM, YYYY HH:mm',\n LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar : {\n sameDay : '[Hodiaŭ je] LT',\n nextDay : '[Morgaŭ je] LT',\n nextWeek : 'dddd [je] LT',\n lastDay : '[Hieraŭ je] LT',\n lastWeek : '[pasinta] dddd [je] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'post %s',\n past : 'antaŭ %s',\n s : 'sekundoj',\n ss : '%d sekundoj',\n m : 'minuto',\n mm : '%d minutoj',\n h : 'horo',\n hh : '%d horoj',\n d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo\n dd : '%d tagoj',\n M : 'monato',\n MM : '%d monatoj',\n y : 'jaro',\n yy : '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal : '%da',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex$1 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n hooks.defineLocale('es-do', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$1[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex$1,\n monthsShortRegex: monthsRegex$1,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n hooks.defineLocale('es-us', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$2[m.month()];\n } else {\n return monthsShortDot$1[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM [de] D [de] YYYY',\n LLL : 'MMMM [de] D [de] YYYY h:mm A',\n LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse$1 = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex$2 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n hooks.defineLocale('es', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$3[m.month()];\n } else {\n return monthsShortDot$2[m.month()];\n }\n },\n monthsRegex : monthsRegex$2,\n monthsShortRegex : monthsRegex$2,\n monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex : /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse : monthsParse$1,\n longMonthsParse : monthsParse$1,\n shortMonthsParse : monthsParse$1,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$3(number, withoutSuffix, key, isFuture) {\n var format = {\n 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n 'ss': [number + 'sekundi', number + 'sekundit'],\n 'm' : ['ühe minuti', 'üks minut'],\n 'mm': [number + ' minuti', number + ' minutit'],\n 'h' : ['ühe tunni', 'tund aega', 'üks tund'],\n 'hh': [number + ' tunni', number + ' tundi'],\n 'd' : ['ühe päeva', 'üks päev'],\n 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],\n 'MM': [number + ' kuu', number + ' kuud'],\n 'y' : ['ühe aasta', 'aasta', 'üks aasta'],\n 'yy': [number + ' aasta', number + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('et', {\n months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Täna,] LT',\n nextDay : '[Homme,] LT',\n nextWeek : '[Järgmine] dddd LT',\n lastDay : '[Eile,] LT',\n lastWeek : '[Eelmine] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s pärast',\n past : '%s tagasi',\n s : processRelativeTime$3,\n ss : processRelativeTime$3,\n m : processRelativeTime$3,\n mm : processRelativeTime$3,\n h : processRelativeTime$3,\n hh : processRelativeTime$3,\n d : processRelativeTime$3,\n dd : '%d päeva',\n M : processRelativeTime$3,\n MM : processRelativeTime$3,\n y : processRelativeTime$3,\n yy : processRelativeTime$3\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('eu', {\n months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact : true,\n weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY[ko] MMMM[ren] D[a]',\n LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l : 'YYYY-M-D',\n ll : 'YYYY[ko] MMM D[a]',\n lll : 'YYYY[ko] MMM D[a] HH:mm',\n llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar : {\n sameDay : '[gaur] LT[etan]',\n nextDay : '[bihar] LT[etan]',\n nextWeek : 'dddd LT[etan]',\n lastDay : '[atzo] LT[etan]',\n lastWeek : '[aurreko] dddd LT[etan]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s barru',\n past : 'duela %s',\n s : 'segundo batzuk',\n ss : '%d segundo',\n m : 'minutu bat',\n mm : '%d minutu',\n h : 'ordu bat',\n hh : '%d ordu',\n d : 'egun bat',\n dd : '%d egun',\n M : 'hilabete bat',\n MM : '%d hilabete',\n y : 'urte bat',\n yy : '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$5 = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰'\n }, numberMap$4 = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0'\n };\n\n hooks.defineLocale('fa', {\n months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysShort : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar : {\n sameDay : '[امروز ساعت] LT',\n nextDay : '[فردا ساعت] LT',\n nextWeek : 'dddd [ساعت] LT',\n lastDay : '[دیروز ساعت] LT',\n lastWeek : 'dddd [پیش] [ساعت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'در %s',\n past : '%s پیش',\n s : 'چند ثانیه',\n ss : 'ثانیه d%',\n m : 'یک دقیقه',\n mm : '%d دقیقه',\n h : 'یک ساعت',\n hh : '%d ساعت',\n d : 'یک روز',\n dd : '%d روز',\n M : 'یک ماه',\n MM : '%d ماه',\n y : 'یک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/[۰-۹]/g, function (match) {\n return numberMap$4[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$5[match];\n }).replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal : '%dم',\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n function translate$2(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;\n }\n\n hooks.defineLocale('fi', {\n months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'Do MMMM[ta] YYYY',\n LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l : 'D.M.YYYY',\n ll : 'Do MMM YYYY',\n lll : 'Do MMM YYYY, [klo] HH.mm',\n llll : 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar : {\n sameDay : '[tänään] [klo] LT',\n nextDay : '[huomenna] [klo] LT',\n nextWeek : 'dddd [klo] LT',\n lastDay : '[eilen] [klo] LT',\n lastWeek : '[viime] dddd[na] [klo] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s päästä',\n past : '%s sitten',\n s : translate$2,\n ss : translate$2,\n m : translate$2,\n mm : translate$2,\n h : translate$2,\n hh : translate$2,\n d : translate$2,\n dd : translate$2,\n M : translate$2,\n MM : translate$2,\n y : translate$2,\n yy : translate$2\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('fo', {\n months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Í dag kl.] LT',\n nextDay : '[Í morgin kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[Í gjár kl.] LT',\n lastWeek : '[síðstu] dddd [kl] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'um %s',\n past : '%s síðani',\n s : 'fá sekund',\n ss : '%d sekundir',\n m : 'ein minutt',\n mm : '%d minuttir',\n h : 'ein tími',\n hh : '%d tímar',\n d : 'ein dagur',\n dd : '%d dagar',\n M : 'ein mánaði',\n MM : '%d mánaðir',\n y : 'eitt ár',\n yy : '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('fr-ca', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('fr-ch', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('fr', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal : function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n hooks.defineLocale('fy', {\n months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'oer %s',\n past : '%s lyn',\n s : 'in pear sekonden',\n ss : '%d sekonden',\n m : 'ien minút',\n mm : '%d minuten',\n h : 'ien oere',\n hh : '%d oeren',\n d : 'ien dei',\n dd : '%d dagen',\n M : 'ien moanne',\n MM : '%d moannen',\n y : 'ien jier',\n yy : '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var months$5 = [\n 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'\n ];\n\n var monthsShort$4 = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n\n var weekdays$1 = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n hooks.defineLocale('gd', {\n months : months$5,\n monthsShort : monthsShort$4,\n monthsParseExact : true,\n weekdays : weekdays$1,\n weekdaysShort : weekdaysShort,\n weekdaysMin : weekdaysMin,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[An-diugh aig] LT',\n nextDay : '[A-màireach aig] LT',\n nextWeek : 'dddd [aig] LT',\n lastDay : '[An-dè aig] LT',\n lastWeek : 'dddd [seo chaidh] [aig] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ann an %s',\n past : 'bho chionn %s',\n s : 'beagan diogan',\n ss : '%d diogan',\n m : 'mionaid',\n mm : '%d mionaidean',\n h : 'uair',\n hh : '%d uairean',\n d : 'latha',\n dd : '%d latha',\n M : 'mìos',\n MM : '%d mìosan',\n y : 'bliadhna',\n yy : '%d bliadhna'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(d|na|mh)/,\n ordinal : function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('gl', {\n months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextDay : function () {\n return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n lastDay : function () {\n return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';\n },\n lastWeek : function () {\n return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past : 'hai %s',\n s : 'uns segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'unha hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$4(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka horan', 'ek hor'],\n 'hh': [number + ' horanim', number + ' horam'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('gom-latn', {\n months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\\'var'.split('_'),\n weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'A h:mm [vazta]',\n LTS : 'A h:mm:ss [vazta]',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY A h:mm [vazta]',\n LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar : {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s',\n past : '%s adim',\n s : processRelativeTime$4,\n ss : processRelativeTime$4,\n m : processRelativeTime$4,\n mm : processRelativeTime$4,\n h : processRelativeTime$4,\n hh : processRelativeTime$4,\n d : processRelativeTime$4,\n dd : processRelativeTime$4,\n M : processRelativeTime$4,\n MM : processRelativeTime$4,\n y : processRelativeTime$4,\n yy : processRelativeTime$4\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(er)/,\n ordinal : function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$6 = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦'\n },\n numberMap$5 = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n\n hooks.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap$5[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$6[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('he', {\n months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [ב]MMMM YYYY',\n LLL : 'D [ב]MMMM YYYY HH:mm',\n LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',\n l : 'D/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[היום ב־]LT',\n nextDay : '[מחר ב־]LT',\n nextWeek : 'dddd [בשעה] LT',\n lastDay : '[אתמול ב־]LT',\n lastWeek : '[ביום] dddd [האחרון בשעה] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'בעוד %s',\n past : 'לפני %s',\n s : 'מספר שניות',\n ss : '%d שניות',\n m : 'דקה',\n mm : '%d דקות',\n h : 'שעה',\n hh : function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d : 'יום',\n dd : function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M : 'חודש',\n MM : function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y : 'שנה',\n yy : function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM : function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$7 = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$6 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n hooks.defineLocale('hi', {\n months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm बजे',\n LTS : 'A h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[कल] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[कल] LT',\n lastWeek : '[पिछले] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s में',\n past : '%s पहले',\n s : 'कुछ ही क्षण',\n ss : '%d सेकंड',\n m : 'एक मिनट',\n mm : '%d मिनट',\n h : 'एक घंटा',\n hh : '%d घंटे',\n d : 'एक दिन',\n dd : '%d दिन',\n M : 'एक महीने',\n MM : '%d महीने',\n y : 'एक वर्ष',\n yy : '%d वर्ष'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$6[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$7[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function translate$3(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n hooks.defineLocale('hr', {\n months : {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[jučer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate$3,\n m : translate$3,\n mm : translate$3,\n h : translate$3,\n hh : translate$3,\n d : 'dan',\n dd : translate$3,\n M : 'mjesec',\n MM : translate$3,\n y : 'godinu',\n yy : translate$3\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate$4(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n hooks.defineLocale('hu', {\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek : function () {\n return week.call(this, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek : function () {\n return week.call(this, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate$4,\n ss : translate$4,\n m : translate$4,\n mm : translate$4,\n h : translate$4,\n hh : translate$4,\n d : translate$4,\n dd : translate$4,\n M : translate$4,\n MM : translate$4,\n y : translate$4,\n yy : translate$4\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('hy-am', {\n months : {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\n },\n monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),\n weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY թ.',\n LLL : 'D MMMM YYYY թ., HH:mm',\n LLLL : 'dddd, D MMMM YYYY թ., HH:mm'\n },\n calendar : {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s հետո',\n past : '%s առաջ',\n s : 'մի քանի վայրկյան',\n ss : '%d վայրկյան',\n m : 'րոպե',\n mm : '%d րոպե',\n h : 'ժամ',\n hh : '%d ժամ',\n d : 'օր',\n dd : '%d օր',\n M : 'ամիս',\n MM : '%d ամիս',\n y : 'տարի',\n yy : '%d տարի'\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem : function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('id', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function plural$2(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate$5(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural$2(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural$2(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural$2(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural$2(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural$2(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural$2(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n hooks.defineLocale('is', {\n months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar : {\n sameDay : '[í dag kl.] LT',\n nextDay : '[á morgun kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[í gær kl.] LT',\n lastWeek : '[síðasta] dddd [kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'eftir %s',\n past : 'fyrir %s síðan',\n s : translate$5,\n ss : translate$5,\n m : translate$5,\n mm : translate$5,\n h : 'klukkustund',\n hh : translate$5,\n d : translate$5,\n dd : translate$5,\n M : translate$5,\n MM : translate$5,\n y : translate$5,\n yy : translate$5\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('it', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ja', {\n months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort : '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin : '日_月_火_水_木_金_土'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日 dddd HH:mm',\n l : 'YYYY/MM/DD',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日(ddd) HH:mm'\n },\n meridiemParse: /午前|午後/i,\n isPM : function (input) {\n return input === '午後';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar : {\n sameDay : '[今日] LT',\n nextDay : '[明日] LT',\n nextWeek : function (now) {\n if (now.week() < this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay : '[昨日] LT',\n lastWeek : function (now) {\n if (this.week() < now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}日/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s後',\n past : '%s前',\n s : '数秒',\n ss : '%d秒',\n m : '1分',\n mm : '%d分',\n h : '1時間',\n hh : '%d時間',\n d : '1日',\n dd : '%d日',\n M : '1ヶ月',\n MM : '%dヶ月',\n y : '1年',\n yy : '%d年'\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('jv', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar : {\n sameDay : '[Dinten puniko pukul] LT',\n nextDay : '[Mbenjang pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kala wingi pukul] LT',\n lastWeek : 'dddd [kepengker pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'wonten ing %s',\n past : '%s ingkang kepengker',\n s : 'sawetawis detik',\n ss : '%d detik',\n m : 'setunggal menit',\n mm : '%d menit',\n h : 'setunggal jam',\n hh : '%d jam',\n d : 'sedinten',\n dd : '%d dinten',\n M : 'sewulan',\n MM : '%d wulan',\n y : 'setaun',\n yy : '%d taun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ka', {\n months : {\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')\n },\n monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays : {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[დღეს] LT[-ზე]',\n nextDay : '[ხვალ] LT[-ზე]',\n lastDay : '[გუშინ] LT[-ზე]',\n nextWeek : '[შემდეგ] dddd LT[-ზე]',\n lastWeek : '[წინა] dddd LT-ზე',\n sameElse : 'L'\n },\n relativeTime : {\n future : function (s) {\n return (/(წამი|წუთი|საათი|წელი)/).test(s) ?\n s.replace(/ი$/, 'ში') :\n s + 'ში';\n },\n past : function (s) {\n if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n },\n s : 'რამდენიმე წამი',\n ss : '%d წამი',\n m : 'წუთი',\n mm : '%d წუთი',\n h : 'საათი',\n hh : '%d საათი',\n d : 'დღე',\n dd : '%d დღე',\n M : 'თვე',\n MM : '%d თვე',\n y : 'წელი',\n yy : '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal : function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week : {\n dow : 1,\n doy : 7\n }\n });\n\n //! moment.js locale configuration\n\n var suffixes$1 = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n\n hooks.defineLocale('kk', {\n months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгін сағат] LT',\n nextDay : '[Ертең сағат] LT',\n nextWeek : 'dddd [сағат] LT',\n lastDay : '[Кеше сағат] LT',\n lastWeek : '[Өткен аптаның] dddd [сағат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ішінде',\n past : '%s бұрын',\n s : 'бірнеше секунд',\n ss : '%d секунд',\n m : 'бір минут',\n mm : '%d минут',\n h : 'бір сағат',\n hh : '%d сағат',\n d : 'бір күн',\n dd : '%d күн',\n M : 'бір ай',\n MM : '%d ай',\n y : 'бір жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$8 = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n }, numberMap$7 = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n\n hooks.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse : /ទី\\d{1,2}/,\n ordinal : 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap$7[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$8[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$9 = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦'\n },\n numberMap$8 = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0'\n };\n\n hooks.defineLocale('kn', {\n months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),\n weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[ಇಂದು] LT',\n nextDay : '[ನಾಳೆ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ನಿನ್ನೆ] LT',\n lastWeek : '[ಕೊನೆಯ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ನಂತರ',\n past : '%s ಹಿಂದೆ',\n s : 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss : '%d ಸೆಕೆಂಡುಗಳು',\n m : 'ಒಂದು ನಿಮಿಷ',\n mm : '%d ನಿಮಿಷ',\n h : 'ಒಂದು ಗಂಟೆ',\n hh : '%d ಗಂಟೆ',\n d : 'ಒಂದು ದಿನ',\n dd : '%d ದಿನ',\n M : 'ಒಂದು ತಿಂಗಳು',\n MM : '%d ತಿಂಗಳು',\n y : 'ಒಂದು ವರ್ಷ',\n yy : '%d ವರ್ಷ'\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap$8[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$9[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal : function (number) {\n return number + 'ನೇ';\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ko', {\n months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort : '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin : '일_월_화_수_목_금_토'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY년 MMMM D일',\n LLL : 'YYYY년 MMMM D일 A h:mm',\n LLLL : 'YYYY년 MMMM D일 dddd A h:mm',\n l : 'YYYY.MM.DD.',\n ll : 'YYYY년 MMMM D일',\n lll : 'YYYY년 MMMM D일 A h:mm',\n llll : 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar : {\n sameDay : '오늘 LT',\n nextDay : '내일 LT',\n nextWeek : 'dddd LT',\n lastDay : '어제 LT',\n lastWeek : '지난주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s 후',\n past : '%s 전',\n s : '몇 초',\n ss : '%d초',\n m : '1분',\n mm : '%d분',\n h : '한 시간',\n hh : '%d시간',\n d : '하루',\n dd : '%d일',\n M : '한 달',\n MM : '%d달',\n y : '일 년',\n yy : '%d년'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(일|월|주)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse : /오전|오후/,\n isPM : function (token) {\n return token === '오후';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n });\n\n //! moment.js locale configuration\n\n var suffixes$2 = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n\n hooks.defineLocale('ky', {\n months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\n monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгүн саат] LT',\n nextDay : '[Эртең саат] LT',\n nextWeek : 'dddd [саат] LT',\n lastDay : '[Кече саат] LT',\n lastWeek : '[Өткен аптанын] dddd [күнү] [саат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ичинде',\n past : '%s мурун',\n s : 'бирнече секунд',\n ss : '%d секунд',\n m : 'бир мүнөт',\n mm : '%d мүнөт',\n h : 'бир саат',\n hh : '%d саат',\n d : 'бир күн',\n dd : '%d күн',\n M : 'бир ай',\n MM : '%d ай',\n y : 'бир жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$5(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eng Minutt', 'enger Minutt'],\n 'h': ['eng Stonn', 'enger Stonn'],\n 'd': ['een Dag', 'engem Dag'],\n 'M': ['ee Mount', 'engem Mount'],\n 'y': ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10, firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n hooks.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime : {\n future : processFutureTime,\n past : processPastTime,\n s : 'e puer Sekonnen',\n ss : '%d Sekonnen',\n m : processRelativeTime$5,\n mm : '%d Minutten',\n h : processRelativeTime$5,\n hh : '%d Stonnen',\n d : processRelativeTime$5,\n dd : '%d Deeg',\n M : processRelativeTime$5,\n MM : '%d Méint',\n y : processRelativeTime$5,\n yy : '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('lo', {\n months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar : {\n sameDay : '[ມື້ນີ້ເວລາ] LT',\n nextDay : '[ມື້ອື່ນເວລາ] LT',\n nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay : '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ອີກ %s',\n past : '%sຜ່ານມາ',\n s : 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss : '%d ວິນາທີ' ,\n m : '1 ນາທີ',\n mm : '%d ນາທີ',\n h : '1 ຊົ່ວໂມງ',\n hh : '%d ຊົ່ວໂມງ',\n d : '1 ມື້',\n dd : '%d ມື້',\n M : '1 ເດືອນ',\n MM : '%d ເດືອນ',\n y : '1 ປີ',\n yy : '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal : function (number) {\n return 'ທີ່' + number;\n }\n });\n\n //! moment.js locale configuration\n\n var units = {\n 'ss' : 'sekundė_sekundžių_sekundes',\n 'm' : 'minutė_minutės_minutę',\n 'mm': 'minutės_minučių_minutes',\n 'h' : 'valanda_valandos_valandą',\n 'hh': 'valandos_valandų_valandas',\n 'd' : 'diena_dienos_dieną',\n 'dd': 'dienos_dienų_dienas',\n 'M' : 'mėnuo_mėnesio_mėnesį',\n 'MM': 'mėnesiai_mėnesių_mėnesius',\n 'y' : 'metai_metų_metus',\n 'yy': 'metai_metų_metus'\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate$6(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n hooks.defineLocale('lt', {\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Šiandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[Praėjusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieš %s',\n s : translateSeconds,\n ss : translate$6,\n m : translateSingular,\n mm : translate$6,\n h : translateSingular,\n hh : translate$6,\n d : translateSingular,\n dd : translate$6,\n M : translateSingular,\n MM : translate$6,\n y : translateSingular,\n yy : translate$6\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal : function (number) {\n return number + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var units$1 = {\n 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'h': 'stundas_stundām_stunda_stundas'.split('_'),\n 'hh': 'stundas_stundām_stunda_stundas'.split('_'),\n 'd': 'dienas_dienām_diena_dienas'.split('_'),\n 'dd': 'dienas_dienām_diena_dienas'.split('_'),\n 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'y': 'gada_gadiem_gads_gadi'.split('_'),\n 'yy': 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format$1(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural$1(number, withoutSuffix, key) {\n return number + ' ' + format$1(units$1[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format$1(units$1[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n hooks.defineLocale('lv', {\n months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY.',\n LL : 'YYYY. [gada] D. MMMM',\n LLL : 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar : {\n sameDay : '[Šodien pulksten] LT',\n nextDay : '[Rīt pulksten] LT',\n nextWeek : 'dddd [pulksten] LT',\n lastDay : '[Vakar pulksten] LT',\n lastWeek : '[Pagājušā] dddd [pulksten] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'pēc %s',\n past : 'pirms %s',\n s : relativeSeconds,\n ss : relativeTimeWithPlural$1,\n m : relativeTimeWithSingular,\n mm : relativeTimeWithPlural$1,\n h : relativeTimeWithSingular,\n hh : relativeTimeWithPlural$1,\n d : relativeTimeWithSingular,\n dd : relativeTimeWithPlural$1,\n M : relativeTimeWithSingular,\n MM : relativeTimeWithPlural$1,\n y : relativeTimeWithSingular,\n yy : relativeTimeWithPlural$1\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n hooks.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact : true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juče u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mjesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('mk', {\n months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Денес во] LT',\n nextDay : '[Утре во] LT',\n nextWeek : '[Во] dddd [во] LT',\n lastDay : '[Вчера во] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'после %s',\n past : 'пред %s',\n s : 'неколку секунди',\n ss : '%d секунди',\n m : 'минута',\n mm : '%d минути',\n h : 'час',\n hh : '%d часа',\n d : 'ден',\n dd : '%d дена',\n M : 'месец',\n MM : '%d месеци',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ml', {\n months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm -നു',\n LTS : 'A h:mm:ss -നു',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm -നു',\n LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'\n },\n calendar : {\n sameDay : '[ഇന്ന്] LT',\n nextDay : '[നാളെ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ഇന്നലെ] LT',\n lastWeek : '[കഴിഞ്ഞ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s കഴിഞ്ഞ്',\n past : '%s മുൻപ്',\n s : 'അൽപ നിമിഷങ്ങൾ',\n ss : '%d സെക്കൻഡ്',\n m : 'ഒരു മിനിറ്റ്',\n mm : '%d മിനിറ്റ്',\n h : 'ഒരു മണിക്കൂർ',\n hh : '%d മണിക്കൂർ',\n d : 'ഒരു ദിവസം',\n dd : '%d ദിവസം',\n M : 'ഒരു മാസം',\n MM : '%d മാസം',\n y : 'ഒരു വർഷം',\n yy : '%d വർഷം'\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n }\n });\n\n //! moment.js locale configuration\n\n function translate$7(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n hooks.defineLocale('mn', {\n months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact : true,\n weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY оны MMMMын D',\n LLL : 'YYYY оны MMMMын D HH:mm',\n LLLL : 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM : function (input) {\n return input === 'ҮХ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar : {\n sameDay : '[Өнөөдөр] LT',\n nextDay : '[Маргааш] LT',\n nextWeek : '[Ирэх] dddd LT',\n lastDay : '[Өчигдөр] LT',\n lastWeek : '[Өнгөрсөн] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s дараа',\n past : '%s өмнө',\n s : translate$7,\n ss : translate$7,\n m : translate$7,\n mm : translate$7,\n h : translate$7,\n hh : translate$7,\n d : translate$7,\n dd : translate$7,\n M : translate$7,\n MM : translate$7,\n y : translate$7,\n yy : translate$7\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$a = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$9 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture)\n {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's': output = 'काही सेकंद'; break;\n case 'ss': output = '%d सेकंद'; break;\n case 'm': output = 'एक मिनिट'; break;\n case 'mm': output = '%d मिनिटे'; break;\n case 'h': output = 'एक तास'; break;\n case 'hh': output = '%d तास'; break;\n case 'd': output = 'एक दिवस'; break;\n case 'dd': output = '%d दिवस'; break;\n case 'M': output = 'एक महिना'; break;\n case 'MM': output = '%d महिने'; break;\n case 'y': output = 'एक वर्ष'; break;\n case 'yy': output = '%d वर्षे'; break;\n }\n }\n else {\n switch (string) {\n case 's': output = 'काही सेकंदां'; break;\n case 'ss': output = '%d सेकंदां'; break;\n case 'm': output = 'एका मिनिटा'; break;\n case 'mm': output = '%d मिनिटां'; break;\n case 'h': output = 'एका तासा'; break;\n case 'hh': output = '%d तासां'; break;\n case 'd': output = 'एका दिवसा'; break;\n case 'dd': output = '%d दिवसां'; break;\n case 'M': output = 'एका महिन्या'; break;\n case 'MM': output = '%d महिन्यां'; break;\n case 'y': output = 'एका वर्षा'; break;\n case 'yy': output = '%d वर्षां'; break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n hooks.defineLocale('mr', {\n months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n monthsParseExact : true,\n weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm वाजता',\n LTS : 'A h:mm:ss वाजता',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm वाजता',\n LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[उद्या] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$9[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$a[match];\n });\n },\n meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात्री') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दुपारी') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'सायंकाळी') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात्री';\n } else if (hour < 10) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ms-my', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ms', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('mt', {\n months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Illum fil-]LT',\n nextDay : '[Għada fil-]LT',\n nextWeek : 'dddd [fil-]LT',\n lastDay : '[Il-bieraħ fil-]LT',\n lastWeek : 'dddd [li għadda] [fil-]LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'f’ %s',\n past : '%s ilu',\n s : 'ftit sekondi',\n ss : '%d sekondi',\n m : 'minuta',\n mm : '%d minuti',\n h : 'siegħa',\n hh : '%d siegħat',\n d : 'ġurnata',\n dd : '%d ġranet',\n M : 'xahar',\n MM : '%d xhur',\n y : 'sena',\n yy : '%d sni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$b = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀'\n }, numberMap$a = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0'\n };\n\n hooks.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss : '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap$a[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$b[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('nb', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'noen sekunder',\n ss : '%d sekunder',\n m : 'ett minutt',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dager',\n M : 'en måned',\n MM : '%d måneder',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$c = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap$b = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n hooks.defineLocale('ne', {\n months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n monthsParseExact : true,\n weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'Aको h:mm बजे',\n LTS : 'Aको h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, Aको h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$b[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$c[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[भोलि] LT',\n nextWeek : '[आउँदो] dddd[,] LT',\n lastDay : '[हिजो] LT',\n lastWeek : '[गएको] dddd[,] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sमा',\n past : '%s अगाडि',\n s : 'केही क्षण',\n ss : '%d सेकेण्ड',\n m : 'एक मिनेट',\n mm : '%d मिनेट',\n h : 'एक घण्टा',\n hh : '%d घण्टा',\n d : 'एक दिन',\n dd : '%d दिन',\n M : 'एक महिना',\n MM : '%d महिना',\n y : 'एक बर्ष',\n yy : '%d बर्ष'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse$2 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex$3 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n hooks.defineLocale('nl-be', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$1[m.month()];\n } else {\n return monthsShortWithDots$1[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$3,\n monthsShortRegex: monthsRegex$3,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse$2,\n longMonthsParse : monthsParse$2,\n shortMonthsParse : monthsParse$2,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse$3 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex$4 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n hooks.defineLocale('nl', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$2[m.month()];\n } else {\n return monthsShortWithDots$2[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$4,\n monthsShortRegex: monthsRegex$4,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse$3,\n longMonthsParse : monthsParse$3,\n shortMonthsParse : monthsParse$3,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('nn', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s sidan',\n s : 'nokre sekund',\n ss : '%d sekund',\n m : 'eit minutt',\n mm : '%d minutt',\n h : 'ein time',\n hh : '%d timar',\n d : 'ein dag',\n dd : '%d dagar',\n M : 'ein månad',\n MM : '%d månader',\n y : 'eit år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$d = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦'\n },\n numberMap$c = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0'\n };\n\n hooks.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.\n months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm ਵਜੇ',\n LTS : 'A h:mm:ss ਵਜੇ',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar : {\n sameDay : '[ਅਜ] LT',\n nextDay : '[ਕਲ] LT',\n nextWeek : '[ਅਗਲਾ] dddd, LT',\n lastDay : '[ਕਲ] LT',\n lastWeek : '[ਪਿਛਲੇ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ਵਿੱਚ',\n past : '%s ਪਿਛਲੇ',\n s : 'ਕੁਝ ਸਕਿੰਟ',\n ss : '%d ਸਕਿੰਟ',\n m : 'ਇਕ ਮਿੰਟ',\n mm : '%d ਮਿੰਟ',\n h : 'ਇੱਕ ਘੰਟਾ',\n hh : '%d ਘੰਟੇ',\n d : 'ਇੱਕ ਦਿਨ',\n dd : '%d ਦਿਨ',\n M : 'ਇੱਕ ਮਹੀਨਾ',\n MM : '%d ਮਹੀਨੇ',\n y : 'ਇੱਕ ਸਾਲ',\n yy : '%d ਸਾਲ'\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap$c[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$d[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\n function plural$3(n) {\n return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n }\n function translate$8(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural$3(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural$3(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural$3(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural$3(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural$3(number) ? 'lata' : 'lat');\n }\n }\n\n hooks.defineLocale('pl', {\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : '%s temu',\n s : 'kilka sekund',\n ss : translate$8,\n m : translate$8,\n mm : translate$8,\n h : translate$8,\n hh : translate$8,\n d : '1 dzień',\n dd : '%d dni',\n M : 'miesiąc',\n MM : translate$8,\n y : 'rok',\n yy : translate$8\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('pt-br', {\n months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar : {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'poucos segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº'\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('pt', {\n months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural$2(number, withoutSuffix, key) {\n var format = {\n 'ss': 'secunde',\n 'mm': 'minute',\n 'hh': 'ore',\n 'dd': 'zile',\n 'MM': 'luni',\n 'yy': 'ani'\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n hooks.defineLocale('ro', {\n months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'peste %s',\n past : '%s în urmă',\n s : 'câteva secunde',\n ss : relativeTimeWithPlural$2,\n m : 'un minut',\n mm : relativeTimeWithPlural$2,\n h : 'o oră',\n hh : relativeTimeWithPlural$2,\n d : 'o zi',\n dd : relativeTimeWithPlural$2,\n M : 'o lună',\n MM : relativeTimeWithPlural$2,\n y : 'un an',\n yy : relativeTimeWithPlural$2\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function plural$4(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural$3(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n 'hh': 'час_часа_часов',\n 'dd': 'день_дня_дней',\n 'MM': 'месяц_месяца_месяцев',\n 'yy': 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n else {\n return number + ' ' + plural$4(format[key], +number);\n }\n }\n var monthsParse$4 = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n hooks.defineLocale('ru', {\n months : {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort : {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays : {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse : monthsParse$4,\n longMonthsParse : monthsParse$4,\n shortMonthsParse : monthsParse$4,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., H:mm',\n LLLL : 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar : {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'через %s',\n past : '%s назад',\n s : 'несколько секунд',\n ss : relativeTimeWithPlural$3,\n m : relativeTimeWithPlural$3,\n mm : relativeTimeWithPlural$3,\n h : 'час',\n hh : relativeTimeWithPlural$3,\n d : 'день',\n dd : relativeTimeWithPlural$3,\n M : 'месяц',\n MM : relativeTimeWithPlural$3,\n y : 'год',\n yy : relativeTimeWithPlural$3\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM : function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var months$6 = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر'\n ];\n var days$1 = [\n 'آچر',\n 'سومر',\n 'اڱارو',\n 'اربع',\n 'خميس',\n 'جمع',\n 'ڇنڇر'\n ];\n\n hooks.defineLocale('sd', {\n months : months$6,\n monthsShort : months$6,\n weekdays : days$1,\n weekdaysShort : days$1,\n weekdaysMin : days$1,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[اڄ] LT',\n nextDay : '[سڀاڻي] LT',\n nextWeek : 'dddd [اڳين هفتي تي] LT',\n lastDay : '[ڪالهه] LT',\n lastWeek : '[گزريل هفتي] dddd [تي] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s پوء',\n past : '%s اڳ',\n s : 'چند سيڪنڊ',\n ss : '%d سيڪنڊ',\n m : 'هڪ منٽ',\n mm : '%d منٽ',\n h : 'هڪ ڪلاڪ',\n hh : '%d ڪلاڪ',\n d : 'هڪ ڏينهن',\n dd : '%d ڏينهن',\n M : 'هڪ مهينو',\n MM : '%d مهينا',\n y : 'هڪ سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('se', {\n months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin : 's_v_m_g_d_b_L'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'MMMM D. [b.] YYYY',\n LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar : {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s geažes',\n past : 'maŋit %s',\n s : 'moadde sekunddat',\n ss: '%d sekunddat',\n m : 'okta minuhta',\n mm : '%d minuhtat',\n h : 'okta diimmu',\n hh : '%d diimmut',\n d : 'okta beaivi',\n dd : '%d beaivvit',\n M : 'okta mánnu',\n MM : '%d mánut',\n y : 'okta jahki',\n yy : '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n hooks.defineLocale('si', {\n months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),\n weekdaysMin : 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'a h:mm',\n LTS : 'a h:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY MMMM D',\n LLL : 'YYYY MMMM D, a h:mm',\n LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n },\n calendar : {\n sameDay : '[අද] LT[ට]',\n nextDay : '[හෙට] LT[ට]',\n nextWeek : 'dddd LT[ට]',\n lastDay : '[ඊයේ] LT[ට]',\n lastWeek : '[පසුගිය] dddd LT[ට]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sකින්',\n past : '%sකට පෙර',\n s : 'තත්පර කිහිපය',\n ss : 'තත්පර %d',\n m : 'මිනිත්තුව',\n mm : 'මිනිත්තු %d',\n h : 'පැය',\n hh : 'පැය %d',\n d : 'දිනය',\n dd : 'දින %d',\n M : 'මාසය',\n MM : 'මාස %d',\n y : 'වසර',\n yy : 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal : function (number) {\n return number + ' වැනි';\n },\n meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM : function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n }\n });\n\n //! moment.js locale configuration\n\n var months$7 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort$5 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural$5(n) {\n return (n > 1) && (n < 5);\n }\n function translate$9(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n break;\n }\n }\n\n hooks.defineLocale('sk', {\n months : months$7,\n monthsShort : monthsShort$5,\n weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pred %s',\n s : translate$9,\n ss : translate$9,\n m : translate$9,\n mm : translate$9,\n h : translate$9,\n hh : translate$9,\n d : translate$9,\n dd : translate$9,\n M : translate$9,\n MM : translate$9,\n y : translate$9,\n yy : translate$9\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$6(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += withoutSuffix || isFuture ? 'sekund' : 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n hooks.defineLocale('sl', {\n months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danes ob] LT',\n nextDay : '[jutri ob] LT',\n\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay : '[včeraj ob] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'čez %s',\n past : 'pred %s',\n s : processRelativeTime$6,\n ss : processRelativeTime$6,\n m : processRelativeTime$6,\n mm : processRelativeTime$6,\n h : processRelativeTime$6,\n hh : processRelativeTime$6,\n d : processRelativeTime$6,\n dd : processRelativeTime$6,\n M : processRelativeTime$6,\n MM : processRelativeTime$6,\n y : processRelativeTime$6,\n yy : processRelativeTime$6\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('sq', {\n months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem : function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Sot në] LT',\n nextDay : '[Nesër në] LT',\n nextWeek : 'dddd [në] LT',\n lastDay : '[Dje në] LT',\n lastWeek : 'dddd [e kaluar në] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'në %s',\n past : '%s më parë',\n s : 'disa sekonda',\n ss : '%d sekonda',\n m : 'një minutë',\n mm : '%d minuta',\n h : 'një orë',\n hh : '%d orë',\n d : 'një ditë',\n dd : '%d ditë',\n M : 'një muaj',\n MM : '%d muaj',\n y : 'një vit',\n yy : '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var translator$1 = {\n words: { //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator$1.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator$1.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n hooks.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay : '[јуче у] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : 'пре %s',\n s : 'неколико секунди',\n ss : translator$1.translate,\n m : translator$1.translate,\n mm : translator$1.translate,\n h : translator$1.translate,\n hh : translator$1.translate,\n d : 'дан',\n dd : translator$1.translate,\n M : 'месец',\n MM : translator$1.translate,\n y : 'годину',\n yy : translator$1.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var translator$2 = {\n words: { //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator$2.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator$2.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n hooks.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juče u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pre %s',\n s : 'nekoliko sekundi',\n ss : translator$2.translate,\n m : translator$2.translate,\n mm : translator$2.translate,\n h : translator$2.translate,\n hh : translator$2.translate,\n d : 'dan',\n dd : translator$2.translate,\n M : 'mesec',\n MM : translator$2.translate,\n y : 'godinu',\n yy : translator$2.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ss', {\n months : \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Namuhla nga] LT',\n nextDay : '[Kusasa nga] LT',\n nextWeek : 'dddd [nga] LT',\n lastDay : '[Itolo nga] LT',\n lastWeek : 'dddd [leliphelile] [nga] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'nga %s',\n past : 'wenteka nga %s',\n s : 'emizuzwana lomcane',\n ss : '%d mzuzwana',\n m : 'umzuzu',\n mm : '%d emizuzu',\n h : 'lihora',\n hh : '%d emahora',\n d : 'lilanga',\n dd : '%d emalanga',\n M : 'inyanga',\n MM : '%d tinyanga',\n y : 'umnyaka',\n yy : '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : '%d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('sv', {\n months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : 'för %s sedan',\n s : 'några sekunder',\n ss : '%d sekunder',\n m : 'en minut',\n mm : '%d minuter',\n h : 'en timme',\n hh : '%d timmar',\n d : 'en dag',\n dd : '%d dagar',\n M : 'en månad',\n MM : '%d månader',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('sw', {\n months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[leo saa] LT',\n nextDay : '[kesho saa] LT',\n nextWeek : '[wiki ijayo] dddd [saat] LT',\n lastDay : '[jana] LT',\n lastWeek : '[wiki iliyopita] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s baadaye',\n past : 'tokea %s',\n s : 'hivi punde',\n ss : 'sekunde %d',\n m : 'dakika moja',\n mm : 'dakika %d',\n h : 'saa limoja',\n hh : 'masaa %d',\n d : 'siku moja',\n dd : 'masiku %d',\n M : 'mwezi mmoja',\n MM : 'miezi %d',\n y : 'mwaka mmoja',\n yy : 'miaka %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var symbolMap$e = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n }, numberMap$d = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n\n hooks.defineLocale('ta', {\n months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, HH:mm',\n LLLL : 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar : {\n sameDay : '[இன்று] LT',\n nextDay : '[நாளை] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[நேற்று] LT',\n lastWeek : '[கடந்த வாரம்] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s இல்',\n past : '%s முன்',\n s : 'ஒரு சில விநாடிகள்',\n ss : '%d விநாடிகள்',\n m : 'ஒரு நிமிடம்',\n mm : '%d நிமிடங்கள்',\n h : 'ஒரு மணி நேரம்',\n hh : '%d மணி நேரம்',\n d : 'ஒரு நாள்',\n dd : '%d நாட்கள்',\n M : 'ஒரு மாதம்',\n MM : '%d மாதங்கள்',\n y : 'ஒரு வருடம்',\n yy : '%d ஆண்டுகள்'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal : function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap$d[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$e[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem : function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('te', {\n months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[నేడు] LT',\n nextDay : '[రేపు] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[నిన్న] LT',\n lastWeek : '[గత] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s లో',\n past : '%s క్రితం',\n s : 'కొన్ని క్షణాలు',\n ss : '%d సెకన్లు',\n m : 'ఒక నిమిషం',\n mm : '%d నిమిషాలు',\n h : 'ఒక గంట',\n hh : '%d గంటలు',\n d : 'ఒక రోజు',\n dd : '%d రోజులు',\n M : 'ఒక నెల',\n MM : '%d నెలలు',\n y : 'ఒక సంవత్సరం',\n yy : '%d సంవత్సరాలు'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}వ/,\n ordinal : '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('tet', {\n months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'iha %s',\n past : '%s liuba',\n s : 'minutu balun',\n ss : 'minutu %d',\n m : 'minutu ida',\n mm : 'minutu %d',\n h : 'oras ida',\n hh : 'oras %d',\n d : 'loron ida',\n dd : 'loron %d',\n M : 'fulan ida',\n MM : 'fulan %d',\n y : 'tinan ida',\n yy : 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var suffixes$3 = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n\n hooks.defineLocale('tg', {\n months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Имрӯз соати] LT',\n nextDay : '[Пагоҳ соати] LT',\n lastDay : '[Дирӯз соати] LT',\n nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'баъди %s',\n past : '%s пеш',\n s : 'якчанд сония',\n m : 'як дақиқа',\n mm : '%d дақиқа',\n h : 'як соат',\n hh : '%d соат',\n d : 'як рӯз',\n dd : '%d рӯз',\n M : 'як моҳ',\n MM : '%d моҳ',\n y : 'як сол',\n yy : '%d сол'\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('th', {\n months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY เวลา H:mm',\n LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar : {\n sameDay : '[วันนี้ เวลา] LT',\n nextDay : '[พรุ่งนี้ เวลา] LT',\n nextWeek : 'dddd[หน้า เวลา] LT',\n lastDay : '[เมื่อวานนี้ เวลา] LT',\n lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'อีก %s',\n past : '%sที่แล้ว',\n s : 'ไม่กี่วินาที',\n ss : '%d วินาที',\n m : '1 นาที',\n mm : '%d นาที',\n h : '1 ชั่วโมง',\n hh : '%d ชั่วโมง',\n d : '1 วัน',\n dd : '%d วัน',\n M : '1 เดือน',\n MM : '%d เดือน',\n y : '1 ปี',\n yy : '%d ปี'\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('tl-ph', {\n months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'MM/D/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY HH:mm',\n LLLL : 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar : {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'sa loob ng %s',\n past : '%s ang nakalipas',\n s : 'ilang segundo',\n ss : '%d segundo',\n m : 'isang minuto',\n mm : '%d minuto',\n h : 'isang oras',\n hh : '%d oras',\n d : 'isang araw',\n dd : '%d araw',\n M : 'isang buwan',\n MM : '%d buwan',\n y : 'isang taon',\n yy : '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'leS' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'waQ' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'nem' :\n time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'Hu’' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'wen' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'ben' :\n time + ' ret';\n return time;\n }\n\n function translate$a(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[one];\n }\n return (word === '') ? 'pagh' : word;\n }\n\n hooks.defineLocale('tlh', {\n months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact : true,\n weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime : {\n future : translateFuture,\n past : translatePast,\n s : 'puS lup',\n ss : translate$a,\n m : 'wa’ tup',\n mm : translate$a,\n h : 'wa’ rep',\n hh : translate$a,\n d : 'wa’ jaj',\n dd : translate$a,\n M : 'wa’ jar',\n MM : translate$a,\n y : 'wa’ DIS',\n yy : translate$a\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n var suffixes$4 = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n hooks.defineLocale('tr', {\n months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[yarın saat] LT',\n nextWeek : '[gelecek] dddd [saat] LT',\n lastDay : '[dün] LT',\n lastWeek : '[geçen] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s önce',\n s : 'birkaç saniye',\n ss : '%d saniye',\n m : 'bir dakika',\n mm : '%d dakika',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir yıl',\n yy : '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) { // special case for zero\n return number + '\\'ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n hooks.defineLocale('tzl', {\n months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM [dallas] YYYY',\n LLL : 'D. MMMM [dallas] YYYY HH.mm',\n LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM : function (input) {\n return 'd\\'o' === input.toLowerCase();\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'd\\'o' : 'D\\'O';\n } else {\n return isLower ? 'd\\'a' : 'D\\'A';\n }\n },\n calendar : {\n sameDay : '[oxhi à] LT',\n nextDay : '[demà à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[ieiri à] LT',\n lastWeek : '[sür el] dddd [lasteu à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'osprei %s',\n past : 'ja%s',\n s : processRelativeTime$7,\n ss : processRelativeTime$7,\n m : processRelativeTime$7,\n mm : processRelativeTime$7,\n h : processRelativeTime$7,\n hh : processRelativeTime$7,\n d : processRelativeTime$7,\n dd : processRelativeTime$7,\n M : processRelativeTime$7,\n MM : processRelativeTime$7,\n y : processRelativeTime$7,\n yy : processRelativeTime$7\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n function processRelativeTime$7(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['viensas secunds', '\\'iensas secunds'],\n 'ss': [number + ' secunds', '' + number + ' secunds'],\n 'm': ['\\'n míut', '\\'iens míut'],\n 'mm': [number + ' míuts', '' + number + ' míuts'],\n 'h': ['\\'n þora', '\\'iensa þora'],\n 'hh': [number + ' þoras', '' + number + ' þoras'],\n 'd': ['\\'n ziua', '\\'iensa ziua'],\n 'dd': [number + ' ziuas', '' + number + ' ziuas'],\n 'M': ['\\'n mes', '\\'iens mes'],\n 'MM': [number + ' mesen', '' + number + ' mesen'],\n 'y': ['\\'n ar', '\\'iens ar'],\n 'yy': [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);\n }\n\n //! moment.js locale configuration\n\n hooks.defineLocale('tzm-latn', {\n months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'dadkh s yan %s',\n past : 'yan %s',\n s : 'imik',\n ss : '%d imik',\n m : 'minuḍ',\n mm : '%d minuḍ',\n h : 'saɛa',\n hh : '%d tassaɛin',\n d : 'ass',\n dd : '%d ossan',\n M : 'ayowr',\n MM : '%d iyyirn',\n y : 'asgas',\n yy : '%d isgasn'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('tzm', {\n months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past : 'ⵢⴰⵏ %s',\n s : 'ⵉⵎⵉⴽ',\n ss : '%d ⵉⵎⵉⴽ',\n m : 'ⵎⵉⵏⵓⴺ',\n mm : '%d ⵎⵉⵏⵓⴺ',\n h : 'ⵙⴰⵄⴰ',\n hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d : 'ⴰⵙⵙ',\n dd : '%d oⵙⵙⴰⵏ',\n M : 'ⴰⵢoⵓⵔ',\n MM : '%d ⵉⵢⵢⵉⵔⵏ',\n y : 'ⴰⵙⴳⴰⵙ',\n yy : '%d ⵉⵙⴳⴰⵙⵏ'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js language configuration\n\n hooks.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n function plural$6(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural$4(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n 'dd': 'день_дні_днів',\n 'MM': 'місяць_місяці_місяців',\n 'yy': 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n else {\n return number + ' ' + plural$6(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наступної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n hooks.defineLocale('uk', {\n months : {\n 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays : weekdaysCaseReplace,\n weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY р.',\n LLL : 'D MMMM YYYY р., HH:mm',\n LLLL : 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar : {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : '%s тому',\n s : 'декілька секунд',\n ss : relativeTimeWithPlural$4,\n m : relativeTimeWithPlural$4,\n mm : relativeTimeWithPlural$4,\n h : 'годину',\n hh : relativeTimeWithPlural$4,\n d : 'день',\n dd : relativeTimeWithPlural$4,\n M : 'місяць',\n MM : relativeTimeWithPlural$4,\n y : 'рік',\n yy : relativeTimeWithPlural$4\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n var months$8 = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر'\n ];\n var days$2 = [\n 'اتوار',\n 'پیر',\n 'منگل',\n 'بدھ',\n 'جمعرات',\n 'جمعہ',\n 'ہفتہ'\n ];\n\n hooks.defineLocale('ur', {\n months : months$8,\n monthsShort : months$8,\n weekdays : days$2,\n weekdaysShort : days$2,\n weekdaysMin : days$2,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[آج بوقت] LT',\n nextDay : '[کل بوقت] LT',\n nextWeek : 'dddd [بوقت] LT',\n lastDay : '[گذشتہ روز بوقت] LT',\n lastWeek : '[گذشتہ] dddd [بوقت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s بعد',\n past : '%s قبل',\n s : 'چند سیکنڈ',\n ss : '%d سیکنڈ',\n m : 'ایک منٹ',\n mm : '%d منٹ',\n h : 'ایک گھنٹہ',\n hh : '%d گھنٹے',\n d : 'ایک دن',\n dd : '%d دن',\n M : 'ایک ماہ',\n MM : '%d ماہ',\n y : 'ایک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('uz-latn', {\n months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Bugun soat] LT [da]',\n nextDay : '[Ertaga] LT [da]',\n nextWeek : 'dddd [kuni soat] LT [da]',\n lastDay : '[Kecha soat] LT [da]',\n lastWeek : '[O\\'tgan] dddd [kuni soat] LT [da]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Yaqin %s ichida',\n past : 'Bir necha %s oldin',\n s : 'soniya',\n ss : '%d soniya',\n m : 'bir daqiqa',\n mm : '%d daqiqa',\n h : 'bir soat',\n hh : '%d soat',\n d : 'bir kun',\n dd : '%d kun',\n M : 'bir oy',\n MM : '%d oy',\n y : 'bir yil',\n yy : '%d yil'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('uz', {\n months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Бугун соат] LT [да]',\n nextDay : '[Эртага] LT [да]',\n nextWeek : 'dddd [куни соат] LT [да]',\n lastDay : '[Кеча соат] LT [да]',\n lastWeek : '[Утган] dddd [куни соат] LT [да]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Якин %s ичида',\n past : 'Бир неча %s олдин',\n s : 'фурсат',\n ss : '%d фурсат',\n m : 'бир дакика',\n mm : '%d дакика',\n h : 'бир соат',\n hh : '%d соат',\n d : 'бир кун',\n dd : '%d кун',\n M : 'бир ой',\n MM : '%d ой',\n y : 'бир йил',\n yy : '%d йил'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('vi', {\n months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact : true,\n weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /sa|ch/i,\n isPM : function (input) {\n return /^ch$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [năm] YYYY',\n LLL : 'D MMMM [năm] YYYY HH:mm',\n LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',\n l : 'DD/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần rồi lúc] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s tới',\n past : '%s trước',\n s : 'vài giây',\n ss : '%d giây' ,\n m : 'một phút',\n mm : '%d phút',\n h : 'một giờ',\n hh : '%d giờ',\n d : 'một ngày',\n dd : '%d ngày',\n M : 'một tháng',\n MM : '%d tháng',\n y : 'một năm',\n yy : '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('x-pseudo', {\n months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact : true,\n weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[T~ódá~ý át] LT',\n nextDay : '[T~ómó~rró~w át] LT',\n nextWeek : 'dddd [át] LT',\n lastDay : '[Ý~ést~érdá~ý át] LT',\n lastWeek : '[L~ást] dddd [át] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'í~ñ %s',\n past : '%s á~gó',\n s : 'á ~féw ~sécó~ñds',\n ss : '%d s~écóñ~ds',\n m : 'á ~míñ~úté',\n mm : '%d m~íñú~tés',\n h : 'á~ñ hó~úr',\n hh : '%d h~óúrs',\n d : 'á ~dáý',\n dd : '%d d~áýs',\n M : 'á ~móñ~th',\n MM : '%d m~óñt~hs',\n y : 'á ~ýéár',\n yy : '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('yo', {\n months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),\n monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Ònì ni] LT',\n nextDay : '[Ọ̀la ni] LT',\n nextWeek : 'dddd [Ọsẹ̀ tón\\'bọ] [ni] LT',\n lastDay : '[Àna ni] LT',\n lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ní %s',\n past : '%s kọjá',\n s : 'ìsẹjú aayá die',\n ss :'aayá %d',\n m : 'ìsẹjú kan',\n mm : 'ìsẹjú %d',\n h : 'wákati kan',\n hh : 'wákati %d',\n d : 'ọjọ́ kan',\n dd : 'ọjọ́ %d',\n M : 'osù kan',\n MM : 'osù %d',\n y : 'ọdún kan',\n yy : 'ọdún %d'\n },\n dayOfMonthOrdinalParse : /ọjọ́\\s\\d{1,2}/,\n ordinal : 'ọjọ́ %d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('zh-cn', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日Ah点mm分',\n LLLL : 'YYYY年M月D日ddddAh点mm分',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s内',\n past : '%s前',\n s : '几秒',\n ss : '%d 秒',\n m : '1 分钟',\n mm : '%d 分钟',\n h : '1 小时',\n hh : '%d 小时',\n d : '1 天',\n dd : '%d 天',\n M : '1 个月',\n MM : '%d 个月',\n y : '1 年',\n yy : '%d 年'\n },\n week : {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('zh-hk', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('zh-tw', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天] LT',\n nextDay : '[明天] LT',\n nextWeek : '[下]dddd LT',\n lastDay : '[昨天] LT',\n lastWeek : '[上]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n hooks.locale('en');\n\n return hooks;\n\n})));\n","/* Legacy dependencies for hwcrypto.js 0.0.10 generated on 2015-04-17 */\n!function(a){\"use strict\";function b(a){switch(typeof a){case\"undefined\":return\"undefined\";case\"boolean\":return\"boolean\";case\"number\":return\"number\";case\"string\":return\"string\";default:return null===a?\"null\":\"object\"}}function c(a){return Object.prototype.toString.call(a).replace(/^\\[object *|\\]$/g,\"\")}function d(a){return\"function\"==typeof a}function e(a){if(null===a||a===D)throw TypeError();return Object(a)}function f(a){return a>>0}function g(a){return a>>>0}function h(a){function b(b){Object.defineProperty(a,b,{get:function(){return a._getter(b)},set:function(c){a._setter(b,c)},enumerable:!0,configurable:!1})}if(a.length>E)throw RangeError(\"Array too large for polyfill\");var c;for(c=0;c>c}function j(a,b){var c=32-b;return a<>>c}function k(a){return[255&a]}function l(a){return i(a[0],8)}function m(a){return[255&a]}function n(a){return j(a[0],8)}function o(a){return a=M(Number(a)),[0>a?0:a>255?255:255&a]}function p(a){return[a>>8&255,255&a]}function q(a){return i(a[0]<<8|a[1],16)}function r(a){return[a>>8&255,255&a]}function s(a){return j(a[0]<<8|a[1],16)}function t(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]}function u(a){return i(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function v(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]}function w(a){return j(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function x(a,b,c){function d(a){var b=H(a),c=a-b;return.5>c?b:c>.5?b+1:b%2?b+1:b}var e,f,g,h,i,j,k,l=(1<a?1:0):0===a?(f=0,g=0,e=1/a===-(1/0)?1:0):(e=0>a,a=G(a),a>=L(2,1-l)?(f=K(H(I(a)/F),1023),g=d(a/L(2,f)*L(2,c)),g/L(2,c)>=2&&(f+=1,g=1),f>l?(f=(1<>=1;return l.reverse(),g=l.join(\"\"),h=(1<0?i*L(2,j-h)*(1+k/L(2,c)):0!==k?i*L(2,-(h-1))*(k/L(2,c)):0>i?-0:0}function z(a){return y(a,11,52)}function A(a){return x(a,11,52)}function B(a){return y(a,8,23)}function C(a){return x(a,8,23)}var D=void 0,E=1e5,F=Math.LN2,G=Math.abs,H=Math.floor,I=Math.log,J=Math.max,K=Math.min,L=Math.pow,M=Math.round;!function(){var a=Object.defineProperty,b=!function(){try{return Object.defineProperty({},\"x\",{})}catch(a){return!1}}();(!a||b)&&(Object.defineProperty=function(b,c,d){if(a)try{return a(b,c,d)}catch(e){}if(b!==Object(b))throw TypeError(\"Object.defineProperty called on non-object\");return Object.prototype.__defineGetter__&&\"get\"in d&&Object.prototype.__defineGetter__.call(b,c,d.get),Object.prototype.__defineSetter__&&\"set\"in d&&Object.prototype.__defineSetter__.call(b,c,d.set),\"value\"in d&&(b[c]=d.value),b})}(),function(){function i(a){if(a=f(a),0>a)throw RangeError(\"ArrayBuffer size is not a small enough positive integer.\");Object.defineProperty(this,\"byteLength\",{value:a}),Object.defineProperty(this,\"_bytes\",{value:Array(a)});for(var b=0;a>b;b+=1)this._bytes[b]=0}function j(){if(!arguments.length||\"object\"!=typeof arguments[0])return function(a){if(a=f(a),0>a)throw RangeError(\"length is not a small enough positive integer.\");Object.defineProperty(this,\"length\",{value:a}),Object.defineProperty(this,\"byteLength\",{value:a*this.BYTES_PER_ELEMENT}),Object.defineProperty(this,\"buffer\",{value:new i(this.byteLength)}),Object.defineProperty(this,\"byteOffset\",{value:0})}.apply(this,arguments);if(arguments.length>=1&&\"object\"===b(arguments[0])&&arguments[0]instanceof j)return function(a){if(this.constructor!==a.constructor)throw TypeError();var b=a.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,\"buffer\",{value:new i(b)}),Object.defineProperty(this,\"byteLength\",{value:b}),Object.defineProperty(this,\"byteOffset\",{value:0}),Object.defineProperty(this,\"length\",{value:a.length});for(var c=0;c=1&&\"object\"===b(arguments[0])&&!(arguments[0]instanceof j)&&!(arguments[0]instanceof i||\"ArrayBuffer\"===c(arguments[0])))return function(a){var b=a.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,\"buffer\",{value:new i(b)}),Object.defineProperty(this,\"byteLength\",{value:b}),Object.defineProperty(this,\"byteOffset\",{value:0}),Object.defineProperty(this,\"length\",{value:a.length});for(var c=0;c=1&&\"object\"===b(arguments[0])&&(arguments[0]instanceof i||\"ArrayBuffer\"===c(arguments[0])))return function(a,b,c){if(b=g(b),b>a.byteLength)throw RangeError(\"byteOffset out of range\");if(b%this.BYTES_PER_ELEMENT)throw RangeError(\"buffer length minus the byteOffset is not a multiple of the element size.\");if(c===D){var d=a.byteLength-b;if(d%this.BYTES_PER_ELEMENT)throw RangeError(\"length of buffer minus byteOffset not a multiple of the element size\");c=d/this.BYTES_PER_ELEMENT}else c=g(c),d=c*this.BYTES_PER_ELEMENT;if(b+d>a.byteLength)throw RangeError(\"byteOffset and length reference an area beyond the end of the buffer\");Object.defineProperty(this,\"buffer\",{value:a}),Object.defineProperty(this,\"byteLength\",{value:d}),Object.defineProperty(this,\"byteOffset\",{value:b}),Object.defineProperty(this,\"length\",{value:c})}.apply(this,arguments);throw TypeError()}function x(a,b,c){var d=function(){Object.defineProperty(this,\"constructor\",{value:d}),j.apply(this,arguments),h(this)};\"__proto__\"in d?d.__proto__=j:(d.from=j.from,d.of=j.of),d.BYTES_PER_ELEMENT=a;var e=function(){};return e.prototype=y,d.prototype=new e,Object.defineProperty(d.prototype,\"BYTES_PER_ELEMENT\",{value:a}),Object.defineProperty(d.prototype,\"_pack\",{value:b}),Object.defineProperty(d.prototype,\"_unpack\",{value:c}),d}a.ArrayBuffer=a.ArrayBuffer||i,Object.defineProperty(j,\"from\",{value:function(a){return new this(a)}}),Object.defineProperty(j,\"of\",{value:function(){return new this(arguments)}});var y={};j.prototype=y,Object.defineProperty(j.prototype,\"_getter\",{value:function(a){if(arguments.length<1)throw SyntaxError(\"Not enough arguments\");if(a=g(a),a>=this.length)return D;var b,c,d=[];for(b=0,c=this.byteOffset+a*this.BYTES_PER_ELEMENT;b=this.length)){var c,d,e=this._pack(b);for(c=0,d=this.byteOffset+a*this.BYTES_PER_ELEMENT;ck?J(i+k,0):K(k,i);var l,m=f(b);l=0>m?J(i+m,0):K(m,i);var n;n=c===D?i:f(c);var o;o=0>n?J(i+n,0):K(n,i);var p,q=K(o-l,i-j);for(j>l&&l+q>j?(p=-1,l=l+q-1,j=j+q-1):p=1;q>0;)d._setter(j,d._getter(l)),l+=p,j+=p,q-=1;return d}}),Object.defineProperty(j.prototype,\"every\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(!d(a))throw TypeError();for(var e=arguments[1],f=0;c>f;f++)if(!a.call(e,b._getter(f),f,b))return!1;return!0}}),Object.defineProperty(j.prototype,\"fill\",{value:function(a){var b=arguments[1],c=arguments[2],d=e(this),h=d.length,i=g(h);i=J(i,0);var j,k=f(b);j=0>k?J(i+k,0):K(k,i);var l;l=c===D?i:f(c);var m;for(m=0>l?J(i+l,0):K(l,i);m>j;)d._setter(j,a),j+=1;return d}}),Object.defineProperty(j.prototype,\"filter\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(!d(a))throw TypeError();for(var e=[],f=arguments[1],h=0;c>h;h++){var i=b._getter(h);a.call(f,i,h,b)&&e.push(i)}return new this.constructor(e)}}),Object.defineProperty(j.prototype,\"find\",{value:function(a){var b=e(this),c=b.length,f=g(c);if(!d(a))throw TypeError();for(var h=arguments.length>1?arguments[1]:D,i=0;f>i;){var j=b._getter(i),k=a.call(h,j,i,b);if(Boolean(k))return j;++i}return D}}),Object.defineProperty(j.prototype,\"findIndex\",{value:function(a){var b=e(this),c=b.length,f=g(c);if(!d(a))throw TypeError();for(var h=arguments.length>1?arguments[1]:D,i=0;f>i;){var j=b._getter(i),k=a.call(h,j,i,b);if(Boolean(k))return i;++i}return-1}}),Object.defineProperty(j.prototype,\"forEach\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(!d(a))throw TypeError();for(var e=arguments[1],f=0;c>f;f++)a.call(e,b._getter(f),f,b)}}),Object.defineProperty(j.prototype,\"indexOf\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(0===c)return-1;var d=0;if(arguments.length>0&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&d!==1/0&&d!==-(1/0)&&(d=(d>0||-1)*H(G(d)))),d>=c)return-1;for(var e=d>=0?d:J(c-G(d),0);c>e;e++)if(b._getter(e)===a)return e;return-1}}),Object.defineProperty(j.prototype,\"join\",{value:function(a){if(this===D||null===this)throw TypeError();for(var b=Object(this),c=g(b.length),d=Array(c),e=0;c>e;++e)d[e]=b._getter(e);return d.join(a===D?\",\":a)}}),Object.defineProperty(j.prototype,\"lastIndexOf\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(0===c)return-1;var d=c;arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&d!==1/0&&d!==-(1/0)&&(d=(d>0||-1)*H(G(d))));for(var e=d>=0?K(d,c-1):c-G(d);e>=0;e--)if(b._getter(e)===a)return e;return-1}}),Object.defineProperty(j.prototype,\"map\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(!d(a))throw TypeError();var e=[];e.length=c;for(var f=arguments[1],h=0;c>h;h++)e[h]=a.call(f,b._getter(h),h,b);return new this.constructor(e)}}),Object.defineProperty(j.prototype,\"reduce\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(!d(a))throw TypeError();if(0===c&&1===arguments.length)throw TypeError();var e,f=0;for(e=arguments.length>=2?arguments[1]:b._getter(f++);c>f;)e=a.call(D,e,b._getter(f),f,b),f++;return e}}),Object.defineProperty(j.prototype,\"reduceRight\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(!d(a))throw TypeError();if(0===c&&1===arguments.length)throw TypeError();var e,f=c-1;for(e=arguments.length>=2?arguments[1]:b._getter(f--);f>=0;)e=a.call(D,e,b._getter(f),f,b),f--;return e}}),Object.defineProperty(j.prototype,\"reverse\",{value:function(){if(this===D||null===this)throw TypeError();for(var a=Object(this),b=g(a.length),c=H(b/2),d=0,e=b-1;c>d;++d,--e){var f=a._getter(d);a._setter(d,a._getter(e)),a._setter(e,f)}return a}}),Object.defineProperty(j.prototype,\"set\",{value:function(){if(arguments.length<1)throw SyntaxError(\"Not enough arguments\");var a,b,c,d,e,f,h,i,j,k;if(\"object\"==typeof arguments[0]&&arguments[0].constructor===this.constructor){if(a=arguments[0],c=g(arguments[1]),c+a.length>this.length)throw RangeError(\"Offset plus length of array is out of range\");if(i=this.byteOffset+c*this.BYTES_PER_ELEMENT,j=a.length*this.BYTES_PER_ELEMENT,a.buffer===this.buffer){for(k=[],e=0,f=a.byteOffset;j>e;e+=1,f+=1)k[e]=a.buffer._bytes[f];for(e=0,h=i;j>e;e+=1,h+=1)this.buffer._bytes[h]=k[e]}else for(e=0,f=a.byteOffset,h=i;j>e;e+=1,f+=1,h+=1)this.buffer._bytes[h]=a.buffer._bytes[f]}else{if(\"object\"!=typeof arguments[0]||\"undefined\"==typeof arguments[0].length)throw TypeError(\"Unexpected argument type(s)\");if(b=arguments[0],d=g(b.length),c=g(arguments[1]),c+d>this.length)throw RangeError(\"Offset plus length of array is out of range\");for(e=0;d>e;e+=1)f=b[e],this._setter(c+e,Number(f))}}}),Object.defineProperty(j.prototype,\"slice\",{value:function(a,b){for(var c=e(this),d=c.length,h=g(d),i=f(a),j=0>i?J(h+i,0):K(i,h),k=b===D?h:f(b),l=0>k?J(h+k,0):K(k,h),m=l-j,n=c.constructor,o=new n(m),p=0;l>j;){var q=c._getter(j);o._setter(p,q),++j,++p}return o}}),Object.defineProperty(j.prototype,\"some\",{value:function(a){if(this===D||null===this)throw TypeError();var b=Object(this),c=g(b.length);if(!d(a))throw TypeError();for(var e=arguments[1],f=0;c>f;f++)if(a.call(e,b._getter(f),f,b))return!0;return!1}}),Object.defineProperty(j.prototype,\"sort\",{value:function(a){if(this===D||null===this)throw TypeError();for(var b=Object(this),c=g(b.length),d=Array(c),e=0;c>e;++e)d[e]=b._getter(e);for(a?d.sort(a):d.sort(),e=0;c>e;++e)b._setter(e,d[e]);return b}}),Object.defineProperty(j.prototype,\"subarray\",{value:function(a,b){function c(a,b,c){return b>a?b:a>c?c:a}a=f(a),b=f(b),arguments.length<1&&(a=0),arguments.length<2&&(b=this.length),0>a&&(a=this.length+a),0>b&&(b=this.length+b),a=c(a,0,this.length),b=c(b,0,this.length);var d=b-a;return 0>d&&(d=0),new this.constructor(this.buffer,this.byteOffset+a*this.BYTES_PER_ELEMENT,d)}});var E=x(1,k,l),F=x(1,m,n),I=x(1,o,n),L=x(2,p,q),M=x(2,r,s),N=x(4,t,u),O=x(4,v,w),P=x(4,C,B),Q=x(8,A,z);a.Int8Array=a.Int8Array||E,a.Uint8Array=a.Uint8Array||F,a.Uint8ClampedArray=a.Uint8ClampedArray||I,a.Int16Array=a.Int16Array||L,a.Uint16Array=a.Uint16Array||M,a.Int32Array=a.Int32Array||N,a.Uint32Array=a.Uint32Array||O,a.Float32Array=a.Float32Array||P,a.Float64Array=a.Float64Array||Q}(),function(){function b(a,b){return d(a.get)?a.get(b):a[b]}function e(a,b,d){if(!(a instanceof ArrayBuffer||\"ArrayBuffer\"===c(a)))throw TypeError();if(b=g(b),b>a.byteLength)throw RangeError(\"byteOffset out of range\");if(d=d===D?a.byteLength-b:g(d),b+d>a.byteLength)throw RangeError(\"byteOffset and length reference an area beyond the end of the buffer\");Object.defineProperty(this,\"buffer\",{value:a}),Object.defineProperty(this,\"byteLength\",{value:d}),Object.defineProperty(this,\"byteOffset\",{value:b})}function f(a){return function(c,d){if(c=g(c),c+a.BYTES_PER_ELEMENT>this.byteLength)throw RangeError(\"Array index out of range\");c+=this.byteOffset;for(var e=new Uint8Array(this.buffer,c,a.BYTES_PER_ELEMENT),f=[],h=0;hthis.byteLength)throw RangeError(\"Array index out of range\");var f,h,j=new a([d]),k=new Uint8Array(j.buffer),l=[];for(f=0;f0&&a(c,j))}catch(k){f.call(i||new h(j),k)}}}function f(b){var d=this;d.triggered||(d.triggered=!0,d.def&&(d=d.def),d.msg=b,d.state=2,d.chain.length>0&&a(c,d))}function g(a,b,c,d){for(var e=0;e';\n var div = document.createElement(\"div\");\n div.setAttribute(\"id\", \"pluginLocation\" + element);\n document.body.appendChild(div);\n document.getElementById(\"pluginLocation\" + element).innerHTML = objectTag;\n return document.getElementById(element);\n }\n var digidoc_mime = \"application/x-digidoc\";\n var digidoc_chrome = \"TokenSigning\";\n var USER_CANCEL = \"user_cancel\";\n var NO_CERTIFICATES = \"no_certificates\";\n var INVALID_ARGUMENT = \"invalid_argument\";\n var DRIVER_ERROR = \"driver_error\";\n var TECHNICAL_ERROR = \"technical_error\";\n var NO_IMPLEMENTATION = \"no_implementation\";\n var NOT_ALLOWED = \"not_allowed\";\n function probe() {\n var msg = \"probe() detected \";\n if (hasExtensionFor(digidoc_chrome)) {\n _debug(msg + digidoc_chrome);\n }\n if (hasPluginFor(digidoc_mime)) {\n _debug(msg + digidoc_mime);\n }\n }\n window.addEventListener(\"load\", function(event) {\n probe();\n });\n function DigiDocPlugin() {\n this._name = \"NPAPI/BHO for application/x-digidoc\";\n var p = loadPluginFor(digidoc_mime);\n var certificate_ids = {};\n function code2str(err) {\n _debug(\"Error: \" + err + \" with: \" + p.errorMessage);\n switch (parseInt(err)) {\n case 1:\n return USER_CANCEL;\n\n case 2:\n return NO_CERTIFICATES;\n\n case 15:\n return DRIVER_ERROR;\n\n case 17:\n return INVALID_ARGUMENT;\n\n case 19:\n return NOT_ALLOWED;\n\n default:\n _debug(\"Unknown error: \" + err + \" with: \" + p.errorMessage);\n return TECHNICAL_ERROR;\n }\n }\n function code2err(err) {\n return new Error(code2str(err));\n }\n this.check = function() {\n return new Promise(function(resolve, reject) {\n setTimeout(function() {\n resolve(typeof p.version !== \"undefined\");\n }, 0);\n });\n };\n this.getVersion = function() {\n return new Promise(function(resolve, reject) {\n var v = p.version;\n resolve(v);\n });\n };\n this.getCertificate = function(options) {\n if (options && options.lang) {\n p.pluginLanguage = options.lang;\n }\n return new Promise(function(resolve, reject) {\n try {\n var ver = p.version.split(\".\");\n var v = ver[0] >= 3 && ver[1] >= 13 ? p.getCertificate(options.filter) : p.getCertificate();\n if (parseInt(p.errorCode) !== 0) {\n reject(code2err(p.errorCode));\n } else {\n certificate_ids[v.cert] = v.id;\n resolve({\n hex: v.cert\n });\n }\n } catch (ex) {\n _debug(ex);\n reject(code2err(p.errorCode));\n }\n });\n };\n this.sign = function(cert, hash, options) {\n return new Promise(function(resolve, reject) {\n var cid = certificate_ids[cert.hex];\n if (cid) {\n try {\n var language = options.lang || \"en\";\n var info = options.info || \"\";\n var ver = p.version.split(\".\");\n var v = ver[0] >= 3 && ver[1] >= 13 ? p.sign(cid, hash.hex, language, info) : p.sign(cid, hash.hex, language);\n resolve({\n hex: v\n });\n } catch (ex) {\n _debug(JSON.stringify(ex));\n reject(code2err(p.errorCode));\n }\n } else {\n _debug(\"invalid certificate: \" + cert);\n reject(new Error(INVALID_ARGUMENT));\n }\n });\n };\n }\n function DigiDocExtension() {\n this._name = \"Chrome native messaging extension\";\n var p = null;\n this.check = function() {\n return new Promise(function(resolve, reject) {\n if (!hasExtensionFor(digidoc_chrome)) {\n return resolve(false);\n }\n p = new window[digidoc_chrome]();\n if (p) {\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n this.getVersion = function() {\n return p.getVersion();\n };\n this.getCertificate = function(options) {\n return p.getCertificate(options);\n };\n this.sign = function(cert, hash, options) {\n return p.sign(cert, hash, options);\n };\n }\n function NoBackend() {\n this._name = \"No implementation\";\n this.check = function() {\n return new Promise(function(resolve, reject) {\n resolve(true);\n });\n };\n this.getVersion = function() {\n return Promise.reject(new Error(NO_IMPLEMENTATION));\n };\n this.getCertificate = function() {\n return Promise.reject(new Error(NO_IMPLEMENTATION));\n };\n this.sign = function() {\n return Promise.reject(new Error(NO_IMPLEMENTATION));\n };\n }\n var _backend = null;\n var fields = {};\n function _testAndUse(Backend) {\n return new Promise(function(resolve, reject) {\n var b = new Backend();\n b.check().then(function(isLoaded) {\n if (isLoaded) {\n _debug(\"Using backend: \" + b._name);\n _backend = b;\n resolve(true);\n } else {\n _debug(b._name + \" check() failed\");\n resolve(false);\n }\n });\n });\n }\n function _autodetect(force) {\n return new Promise(function(resolve, reject) {\n _debug(\"Autodetecting best backend\");\n if (typeof force === \"undefined\") {\n force = false;\n }\n if (_backend !== null && !force) {\n return resolve(true);\n }\n function tryDigiDocPlugin() {\n _testAndUse(DigiDocPlugin).then(function(result) {\n if (result) {\n resolve(true);\n } else {\n resolve(_testAndUse(NoBackend));\n }\n });\n }\n if (navigator.userAgent.indexOf(\"MSIE\") != -1 || navigator.userAgent.indexOf(\"Trident\") != -1) {\n _debug(\"Assuming IE BHO, testing\");\n return tryDigiDocPlugin();\n }\n if (hasExtensionFor(digidoc_chrome)) {\n _testAndUse(DigiDocExtension).then(function(result) {\n if (result) {\n resolve(true);\n } else {\n tryDigiDocPlugin();\n }\n });\n return;\n }\n if (hasPluginFor(digidoc_mime)) {\n return tryDigiDocPlugin();\n }\n resolve(_testAndUse(NoBackend));\n });\n }\n fields.use = function(backend) {\n return new Promise(function(resolve, reject) {\n if (typeof backend === \"undefined\" || backend === \"auto\") {\n _autodetect().then(function(result) {\n resolve(result);\n });\n } else {\n if (backend === \"chrome\") {\n resolve(_testAndUse(DigiDocExtension));\n } else if (backend === \"npapi\") {\n resolve(_testAndUse(DigiDocPlugin));\n } else {\n resolve(false);\n }\n }\n });\n };\n fields.debug = function() {\n return new Promise(function(resolve, reject) {\n var hwversion = \"hwcrypto.js 0.0.13\";\n _autodetect().then(function(result) {\n _backend.getVersion().then(function(version) {\n resolve(hwversion + \" with \" + _backend._name + \" \" + version);\n }, function(error) {\n resolve(hwversion + \" with failing backend \" + _backend._name);\n });\n });\n });\n };\n fields.getCertificate = function(options) {\n if (typeof options !== \"object\") {\n _debug(\"getCertificate options parameter must be an object\");\n return Promise.reject(new Error(INVALID_ARGUMENT));\n }\n if (options && !options.lang) {\n options.lang = \"en\";\n }\n return _autodetect().then(function(result) {\n if (location.protocol !== \"https:\" && location.protocol !== \"file:\") {\n return Promise.reject(new Error(NOT_ALLOWED));\n }\n return _backend.getCertificate(options).then(function(certificate) {\n if (certificate.hex && !certificate.encoded) certificate.encoded = _hex2array(certificate.hex);\n return certificate;\n });\n });\n };\n fields.sign = function(cert, hash, options) {\n if (arguments.length < 2) return Promise.reject(new Error(INVALID_ARGUMENT));\n if (options && !options.lang) {\n options.lang = \"en\";\n }\n if (!hash.type || !hash.value && !hash.hex) return Promise.reject(new Error(INVALID_ARGUMENT));\n if (hash.hex && !hash.value) {\n _debug(\"DEPRECATED: hash.hex as argument to sign() is deprecated, use hash.value instead\");\n hash.value = _hex2array(hash.hex);\n }\n if (hash.value && !hash.hex) hash.hex = _array2hex(hash.value);\n return _autodetect().then(function(result) {\n if (location.protocol !== \"https:\" && location.protocol !== \"file:\") {\n return Promise.reject(new Error(NOT_ALLOWED));\n }\n return _backend.sign(cert, hash, options).then(function(signature) {\n if (signature.hex && !signature.value) signature.value = _hex2array(signature.hex);\n return signature;\n });\n });\n };\n fields.NO_IMPLEMENTATION = NO_IMPLEMENTATION;\n fields.USER_CANCEL = USER_CANCEL;\n fields.NOT_ALLOWED = NOT_ALLOWED;\n fields.NO_CERTIFICATES = NO_CERTIFICATES;\n fields.TECHNICAL_ERROR = TECHNICAL_ERROR;\n fields.INVALID_ARGUMENT = INVALID_ARGUMENT;\n return fields;\n}();","/**\n * @license AngularJS v1.5.8\n * (c) 2010-2016 Google, Inc. http://angularjs.org\n * License: MIT\n */\n(function(window) {'use strict';\n/**\n * @description\n *\n * This object provides a utility for producing rich Error messages within\n * Angular. It can be called as follows:\n *\n * var exampleMinErr = minErr('example');\n * throw exampleMinErr('one', 'This {0} is {1}', foo, bar);\n *\n * The above creates an instance of minErr in the example namespace. The\n * resulting error will have a namespaced error code of example.one. The\n * resulting error will replace {0} with the value of foo, and {1} with the\n * value of bar. The object is not restricted in the number of arguments it can\n * take.\n *\n * If fewer arguments are specified than necessary for interpolation, the extra\n * interpolation markers will be preserved in the final string.\n *\n * Since data will be parsed statically during a build step, some restrictions\n * are applied with respect to how minErr instances are created and called.\n * Instances should have names of the form namespaceMinErr for a minErr created\n * using minErr('namespace') . Error codes, namespaces and template strings\n * should all be static strings, not variables or general expressions.\n *\n * @param {string} module The namespace to use for the new minErr instance.\n * @param {function} ErrorConstructor Custom error constructor to be instantiated when returning\n * error from returned function, for cases when a particular type of error is useful.\n * @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance\n */\n\nfunction minErr(module, ErrorConstructor) {\n ErrorConstructor = ErrorConstructor || Error;\n return function() {\n var SKIP_INDEXES = 2;\n\n var templateArgs = arguments,\n code = templateArgs[0],\n message = '[' + (module ? module + ':' : '') + code + '] ',\n template = templateArgs[1],\n paramPrefix, i;\n\n message += template.replace(/\\{\\d+\\}/g, function(match) {\n var index = +match.slice(1, -1),\n shiftedIndex = index + SKIP_INDEXES;\n\n if (shiftedIndex < templateArgs.length) {\n return toDebugString(templateArgs[shiftedIndex]);\n }\n\n return match;\n });\n\n message += '\\nhttp://errors.angularjs.org/1.5.8/' +\n (module ? module + '/' : '') + code;\n\n for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {\n message += paramPrefix + 'p' + (i - SKIP_INDEXES) + '=' +\n encodeURIComponent(toDebugString(templateArgs[i]));\n }\n\n return new ErrorConstructor(message);\n };\n}\n\n/* We need to tell jshint what variables are being exported */\n/* global angular: true,\n msie: true,\n jqLite: true,\n jQuery: true,\n slice: true,\n splice: true,\n push: true,\n toString: true,\n ngMinErr: true,\n angularModule: true,\n uid: true,\n REGEX_STRING_REGEXP: true,\n VALIDITY_STATE_PROPERTY: true,\n\n lowercase: true,\n uppercase: true,\n manualLowercase: true,\n manualUppercase: true,\n nodeName_: true,\n isArrayLike: true,\n forEach: true,\n forEachSorted: true,\n reverseParams: true,\n nextUid: true,\n setHashKey: true,\n extend: true,\n toInt: true,\n inherit: true,\n merge: true,\n noop: true,\n identity: true,\n valueFn: true,\n isUndefined: true,\n isDefined: true,\n isObject: true,\n isBlankObject: true,\n isString: true,\n isNumber: true,\n isDate: true,\n isArray: true,\n isFunction: true,\n isRegExp: true,\n isWindow: true,\n isScope: true,\n isFile: true,\n isFormData: true,\n isBlob: true,\n isBoolean: true,\n isPromiseLike: true,\n trim: true,\n escapeForRegexp: true,\n isElement: true,\n makeMap: true,\n includes: true,\n arrayRemove: true,\n copy: true,\n equals: true,\n csp: true,\n jq: true,\n concat: true,\n sliceArgs: true,\n bind: true,\n toJsonReplacer: true,\n toJson: true,\n fromJson: true,\n convertTimezoneToLocal: true,\n timezoneToOffset: true,\n startingTag: true,\n tryDecodeURIComponent: true,\n parseKeyValue: true,\n toKeyValue: true,\n encodeUriSegment: true,\n encodeUriQuery: true,\n angularInit: true,\n bootstrap: true,\n getTestability: true,\n snake_case: true,\n bindJQuery: true,\n assertArg: true,\n assertArgFn: true,\n assertNotHasOwnProperty: true,\n getter: true,\n getBlockNodes: true,\n hasOwnProperty: true,\n createMap: true,\n\n NODE_TYPE_ELEMENT: true,\n NODE_TYPE_ATTRIBUTE: true,\n NODE_TYPE_TEXT: true,\n NODE_TYPE_COMMENT: true,\n NODE_TYPE_DOCUMENT: true,\n NODE_TYPE_DOCUMENT_FRAGMENT: true,\n*/\n\n////////////////////////////////////\n\n/**\n * @ngdoc module\n * @name ng\n * @module ng\n * @installation\n * @description\n *\n * # ng (core module)\n * The ng module is loaded by default when an AngularJS application is started. The module itself\n * contains the essential components for an AngularJS application to function. The table below\n * lists a high level breakdown of each of the services/factories, filters, directives and testing\n * components available within this core module.\n *\n * \n */\n\nvar REGEX_STRING_REGEXP = /^\\/(.+)\\/([a-z]*)$/;\n\n// The name of a form control's ValidityState property.\n// This is used so that it's possible for internal tests to create mock ValidityStates.\nvar VALIDITY_STATE_PROPERTY = 'validity';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;};\nvar uppercase = function(string) {return isString(string) ? string.toUpperCase() : string;};\n\n\nvar manualLowercase = function(s) {\n /* jshint bitwise: false */\n return isString(s)\n ? s.replace(/[A-Z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) | 32);})\n : s;\n};\nvar manualUppercase = function(s) {\n /* jshint bitwise: false */\n return isString(s)\n ? s.replace(/[a-z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) & ~32);})\n : s;\n};\n\n\n// String#toLowerCase and String#toUpperCase don't produce correct results in browsers with Turkish\n// locale, for this reason we need to detect this case and redefine lowercase/uppercase methods\n// with correct but slower alternatives. See https://github.com/angular/angular.js/issues/11387\nif ('i' !== 'I'.toLowerCase()) {\n lowercase = manualLowercase;\n uppercase = manualUppercase;\n}\n\n\nvar\n msie, // holds major version number for IE, or NaN if UA is not IE.\n jqLite, // delay binding since jQuery could be loaded after us.\n jQuery, // delay binding\n slice = [].slice,\n splice = [].splice,\n push = [].push,\n toString = Object.prototype.toString,\n getPrototypeOf = Object.getPrototypeOf,\n ngMinErr = minErr('ng'),\n\n /** @name angular */\n angular = window.angular || (window.angular = {}),\n angularModule,\n uid = 0;\n\n/**\n * documentMode is an IE-only property\n * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx\n */\nmsie = window.document.documentMode;\n\n\n/**\n * @private\n * @param {*} obj\n * @return {boolean} Returns true if `obj` is an array or array-like object (NodeList, Arguments,\n * String ...)\n */\nfunction isArrayLike(obj) {\n\n // `null`, `undefined` and `window` are not array-like\n if (obj == null || isWindow(obj)) return false;\n\n // arrays, strings and jQuery/jqLite objects are array like\n // * jqLite is either the jQuery or jqLite constructor function\n // * we have to check the existence of jqLite first as this method is called\n // via the forEach method when constructing the jqLite object in the first place\n if (isArray(obj) || isString(obj) || (jqLite && obj instanceof jqLite)) return true;\n\n // Support: iOS 8.2 (not reproducible in simulator)\n // \"length\" in obj used to prevent JIT error (gh-11508)\n var length = \"length\" in Object(obj) && obj.length;\n\n // NodeList objects (with `item` method) and\n // other objects with suitable length characteristics are array-like\n return isNumber(length) &&\n (length >= 0 && ((length - 1) in obj || obj instanceof Array) || typeof obj.item == 'function');\n\n}\n\n/**\n * @ngdoc function\n * @name angular.forEach\n * @module ng\n * @kind function\n *\n * @description\n * Invokes the `iterator` function once for each item in `obj` collection, which can be either an\n * object or an array. The `iterator` function is invoked with `iterator(value, key, obj)`, where `value`\n * is the value of an object property or an array element, `key` is the object property key or\n * array element index and obj is the `obj` itself. Specifying a `context` for the function is optional.\n *\n * It is worth noting that `.forEach` does not iterate over inherited properties because it filters\n * using the `hasOwnProperty` method.\n *\n * Unlike ES262's\n * [Array.prototype.forEach](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.18),\n * providing 'undefined' or 'null' values for `obj` will not throw a TypeError, but rather just\n * return the value provided.\n *\n ```js\n var values = {name: 'misko', gender: 'male'};\n var log = [];\n angular.forEach(values, function(value, key) {\n this.push(key + ': ' + value);\n }, log);\n expect(log).toEqual(['name: misko', 'gender: male']);\n ```\n *\n * @param {Object|Array} obj Object to iterate over.\n * @param {Function} iterator Iterator function.\n * @param {Object=} context Object to become context (`this`) for the iterator function.\n * @returns {Object|Array} Reference to `obj`.\n */\n\nfunction forEach(obj, iterator, context) {\n var key, length;\n if (obj) {\n if (isFunction(obj)) {\n for (key in obj) {\n // Need to check if hasOwnProperty exists,\n // as on IE8 the result of querySelectorAll is an object without a hasOwnProperty function\n if (key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else if (isArray(obj) || isArrayLike(obj)) {\n var isPrimitive = typeof obj !== 'object';\n for (key = 0, length = obj.length; key < length; key++) {\n if (isPrimitive || key in obj) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else if (obj.forEach && obj.forEach !== forEach) {\n obj.forEach(iterator, context, obj);\n } else if (isBlankObject(obj)) {\n // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty\n for (key in obj) {\n iterator.call(context, obj[key], key, obj);\n }\n } else if (typeof obj.hasOwnProperty === 'function') {\n // Slow path for objects inheriting Object.prototype, hasOwnProperty check needed\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else {\n // Slow path for objects which do not have a method `hasOwnProperty`\n for (key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n }\n }\n return obj;\n}\n\nfunction forEachSorted(obj, iterator, context) {\n var keys = Object.keys(obj).sort();\n for (var i = 0; i < keys.length; i++) {\n iterator.call(context, obj[keys[i]], keys[i]);\n }\n return keys;\n}\n\n\n/**\n * when using forEach the params are value, key, but it is often useful to have key, value.\n * @param {function(string, *)} iteratorFn\n * @returns {function(*, string)}\n */\nfunction reverseParams(iteratorFn) {\n return function(value, key) {iteratorFn(key, value);};\n}\n\n/**\n * A consistent way of creating unique IDs in angular.\n *\n * Using simple numbers allows us to generate 28.6 million unique ids per second for 10 years before\n * we hit number precision issues in JavaScript.\n *\n * Math.pow(2,53) / 60 / 60 / 24 / 365 / 10 = 28.6M\n *\n * @returns {number} an unique alpha-numeric string\n */\nfunction nextUid() {\n return ++uid;\n}\n\n\n/**\n * Set or clear the hashkey for an object.\n * @param obj object\n * @param h the hashkey (!truthy to delete the hashkey)\n */\nfunction setHashKey(obj, h) {\n if (h) {\n obj.$$hashKey = h;\n } else {\n delete obj.$$hashKey;\n }\n}\n\n\nfunction baseExtend(dst, objs, deep) {\n var h = dst.$$hashKey;\n\n for (var i = 0, ii = objs.length; i < ii; ++i) {\n var obj = objs[i];\n if (!isObject(obj) && !isFunction(obj)) continue;\n var keys = Object.keys(obj);\n for (var j = 0, jj = keys.length; j < jj; j++) {\n var key = keys[j];\n var src = obj[key];\n\n if (deep && isObject(src)) {\n if (isDate(src)) {\n dst[key] = new Date(src.valueOf());\n } else if (isRegExp(src)) {\n dst[key] = new RegExp(src);\n } else if (src.nodeName) {\n dst[key] = src.cloneNode(true);\n } else if (isElement(src)) {\n dst[key] = src.clone();\n } else {\n if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {};\n baseExtend(dst[key], [src], true);\n }\n } else {\n dst[key] = src;\n }\n }\n }\n\n setHashKey(dst, h);\n return dst;\n}\n\n/**\n * @ngdoc function\n * @name angular.extend\n * @module ng\n * @kind function\n *\n * @description\n * Extends the destination object `dst` by copying own enumerable properties from the `src` object(s)\n * to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so\n * by passing an empty object as the target: `var object = angular.extend({}, object1, object2)`.\n *\n * **Note:** Keep in mind that `angular.extend` does not support recursive merge (deep copy). Use\n * {@link angular.merge} for this.\n *\n * @param {Object} dst Destination object.\n * @param {...Object} src Source object(s).\n * @returns {Object} Reference to `dst`.\n */\nfunction extend(dst) {\n return baseExtend(dst, slice.call(arguments, 1), false);\n}\n\n\n/**\n* @ngdoc function\n* @name angular.merge\n* @module ng\n* @kind function\n*\n* @description\n* Deeply extends the destination object `dst` by copying own enumerable properties from the `src` object(s)\n* to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so\n* by passing an empty object as the target: `var object = angular.merge({}, object1, object2)`.\n*\n* Unlike {@link angular.extend extend()}, `merge()` recursively descends into object properties of source\n* objects, performing a deep copy.\n*\n* @param {Object} dst Destination object.\n* @param {...Object} src Source object(s).\n* @returns {Object} Reference to `dst`.\n*/\nfunction merge(dst) {\n return baseExtend(dst, slice.call(arguments, 1), true);\n}\n\n\n\nfunction toInt(str) {\n return parseInt(str, 10);\n}\n\n\nfunction inherit(parent, extra) {\n return extend(Object.create(parent), extra);\n}\n\n/**\n * @ngdoc function\n * @name angular.noop\n * @module ng\n * @kind function\n *\n * @description\n * A function that performs no operations. This function can be useful when writing code in the\n * functional style.\n ```js\n function foo(callback) {\n var result = calculateResult();\n (callback || angular.noop)(result);\n }\n ```\n */\nfunction noop() {}\nnoop.$inject = [];\n\n\n/**\n * @ngdoc function\n * @name angular.identity\n * @module ng\n * @kind function\n *\n * @description\n * A function that returns its first argument. This function is useful when writing code in the\n * functional style.\n *\n ```js\n function transformer(transformationFn, value) {\n return (transformationFn || angular.identity)(value);\n };\n\n // E.g.\n function getResult(fn, input) {\n return (fn || angular.identity)(input);\n };\n\n getResult(function(n) { return n * 2; }, 21); // returns 42\n getResult(null, 21); // returns 21\n getResult(undefined, 21); // returns 21\n ```\n *\n * @param {*} value to be returned.\n * @returns {*} the value passed in.\n */\nfunction identity($) {return $;}\nidentity.$inject = [];\n\n\nfunction valueFn(value) {return function valueRef() {return value;};}\n\nfunction hasCustomToString(obj) {\n return isFunction(obj.toString) && obj.toString !== toString;\n}\n\n\n/**\n * @ngdoc function\n * @name angular.isUndefined\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is undefined.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is undefined.\n */\nfunction isUndefined(value) {return typeof value === 'undefined';}\n\n\n/**\n * @ngdoc function\n * @name angular.isDefined\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is defined.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is defined.\n */\nfunction isDefined(value) {return typeof value !== 'undefined';}\n\n\n/**\n * @ngdoc function\n * @name angular.isObject\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is an `Object`. Unlike `typeof` in JavaScript, `null`s are not\n * considered to be objects. Note that JavaScript arrays are objects.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is an `Object` but not `null`.\n */\nfunction isObject(value) {\n // http://jsperf.com/isobject4\n return value !== null && typeof value === 'object';\n}\n\n\n/**\n * Determine if a value is an object with a null prototype\n *\n * @returns {boolean} True if `value` is an `Object` with a null prototype\n */\nfunction isBlankObject(value) {\n return value !== null && typeof value === 'object' && !getPrototypeOf(value);\n}\n\n\n/**\n * @ngdoc function\n * @name angular.isString\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is a `String`.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `String`.\n */\nfunction isString(value) {return typeof value === 'string';}\n\n\n/**\n * @ngdoc function\n * @name angular.isNumber\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is a `Number`.\n *\n * This includes the \"special\" numbers `NaN`, `+Infinity` and `-Infinity`.\n *\n * If you wish to exclude these then you can use the native\n * [`isFinite'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite)\n * method.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `Number`.\n */\nfunction isNumber(value) {return typeof value === 'number';}\n\n\n/**\n * @ngdoc function\n * @name angular.isDate\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a value is a date.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `Date`.\n */\nfunction isDate(value) {\n return toString.call(value) === '[object Date]';\n}\n\n\n/**\n * @ngdoc function\n * @name angular.isArray\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is an `Array`.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is an `Array`.\n */\nvar isArray = Array.isArray;\n\n/**\n * @ngdoc function\n * @name angular.isFunction\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is a `Function`.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `Function`.\n */\nfunction isFunction(value) {return typeof value === 'function';}\n\n\n/**\n * Determines if a value is a regular expression object.\n *\n * @private\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `RegExp`.\n */\nfunction isRegExp(value) {\n return toString.call(value) === '[object RegExp]';\n}\n\n\n/**\n * Checks if `obj` is a window object.\n *\n * @private\n * @param {*} obj Object to check\n * @returns {boolean} True if `obj` is a window obj.\n */\nfunction isWindow(obj) {\n return obj && obj.window === obj;\n}\n\n\nfunction isScope(obj) {\n return obj && obj.$evalAsync && obj.$watch;\n}\n\n\nfunction isFile(obj) {\n return toString.call(obj) === '[object File]';\n}\n\n\nfunction isFormData(obj) {\n return toString.call(obj) === '[object FormData]';\n}\n\n\nfunction isBlob(obj) {\n return toString.call(obj) === '[object Blob]';\n}\n\n\nfunction isBoolean(value) {\n return typeof value === 'boolean';\n}\n\n\nfunction isPromiseLike(obj) {\n return obj && isFunction(obj.then);\n}\n\n\nvar TYPED_ARRAY_REGEXP = /^\\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\\]$/;\nfunction isTypedArray(value) {\n return value && isNumber(value.length) && TYPED_ARRAY_REGEXP.test(toString.call(value));\n}\n\nfunction isArrayBuffer(obj) {\n return toString.call(obj) === '[object ArrayBuffer]';\n}\n\n\nvar trim = function(value) {\n return isString(value) ? value.trim() : value;\n};\n\n// Copied from:\n// http://docs.closure-library.googlecode.com/git/local_closure_goog_string_string.js.source.html#line1021\n// Prereq: s is a string.\nvar escapeForRegexp = function(s) {\n return s.replace(/([-()\\[\\]{}+?*.$\\^|,:#= 0) {\n array.splice(index, 1);\n }\n return index;\n}\n\n/**\n * @ngdoc function\n * @name angular.copy\n * @module ng\n * @kind function\n *\n * @description\n * Creates a deep copy of `source`, which should be an object or an array.\n *\n * * If no destination is supplied, a copy of the object or array is created.\n * * If a destination is provided, all of its elements (for arrays) or properties (for objects)\n * are deleted and then all elements/properties from the source are copied to it.\n * * If `source` is not an object or array (inc. `null` and `undefined`), `source` is returned.\n * * If `source` is identical to `destination` an exception will be thrown.\n *\n * \n *
\n * Only enumerable properties are taken into account. Non-enumerable properties (both on `source`\n * and on `destination`) will be ignored.\n *
\n *\n * @param {*} source The source that will be used to make a copy.\n * Can be any type, including primitives, `null`, and `undefined`.\n * @param {(Object|Array)=} destination Destination into which the source is copied. If\n * provided, must be of the same type as `source`.\n * @returns {*} The copy or updated `destination`, if `destination` was specified.\n *\n * @example\n \n \n
\n \n
form = {{user | json}}
\n
master = {{master | json}}
\n
\n \n \n // Module: copyExample\n angular.\n module('copyExample', []).\n controller('ExampleController', ['$scope', function($scope) {\n $scope.master = {};\n\n $scope.reset = function() {\n // Example with 1 argument\n $scope.user = angular.copy($scope.master);\n };\n\n $scope.update = function(user) {\n // Example with 2 arguments\n angular.copy(user, $scope.master);\n };\n\n $scope.reset();\n }]);\n \n \n */\nfunction copy(source, destination) {\n var stackSource = [];\n var stackDest = [];\n\n if (destination) {\n if (isTypedArray(destination) || isArrayBuffer(destination)) {\n throw ngMinErr('cpta', \"Can't copy! TypedArray destination cannot be mutated.\");\n }\n if (source === destination) {\n throw ngMinErr('cpi', \"Can't copy! Source and destination are identical.\");\n }\n\n // Empty the destination object\n if (isArray(destination)) {\n destination.length = 0;\n } else {\n forEach(destination, function(value, key) {\n if (key !== '$$hashKey') {\n delete destination[key];\n }\n });\n }\n\n stackSource.push(source);\n stackDest.push(destination);\n return copyRecurse(source, destination);\n }\n\n return copyElement(source);\n\n function copyRecurse(source, destination) {\n var h = destination.$$hashKey;\n var key;\n if (isArray(source)) {\n for (var i = 0, ii = source.length; i < ii; i++) {\n destination.push(copyElement(source[i]));\n }\n } else if (isBlankObject(source)) {\n // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty\n for (key in source) {\n destination[key] = copyElement(source[key]);\n }\n } else if (source && typeof source.hasOwnProperty === 'function') {\n // Slow path, which must rely on hasOwnProperty\n for (key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = copyElement(source[key]);\n }\n }\n } else {\n // Slowest path --- hasOwnProperty can't be called as a method\n for (key in source) {\n if (hasOwnProperty.call(source, key)) {\n destination[key] = copyElement(source[key]);\n }\n }\n }\n setHashKey(destination, h);\n return destination;\n }\n\n function copyElement(source) {\n // Simple values\n if (!isObject(source)) {\n return source;\n }\n\n // Already copied values\n var index = stackSource.indexOf(source);\n if (index !== -1) {\n return stackDest[index];\n }\n\n if (isWindow(source) || isScope(source)) {\n throw ngMinErr('cpws',\n \"Can't copy! Making copies of Window or Scope instances is not supported.\");\n }\n\n var needsRecurse = false;\n var destination = copyType(source);\n\n if (destination === undefined) {\n destination = isArray(source) ? [] : Object.create(getPrototypeOf(source));\n needsRecurse = true;\n }\n\n stackSource.push(source);\n stackDest.push(destination);\n\n return needsRecurse\n ? copyRecurse(source, destination)\n : destination;\n }\n\n function copyType(source) {\n switch (toString.call(source)) {\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object Int32Array]':\n case '[object Float32Array]':\n case '[object Float64Array]':\n case '[object Uint8Array]':\n case '[object Uint8ClampedArray]':\n case '[object Uint16Array]':\n case '[object Uint32Array]':\n return new source.constructor(copyElement(source.buffer), source.byteOffset, source.length);\n\n case '[object ArrayBuffer]':\n //Support: IE10\n if (!source.slice) {\n var copied = new ArrayBuffer(source.byteLength);\n new Uint8Array(copied).set(new Uint8Array(source));\n return copied;\n }\n return source.slice(0);\n\n case '[object Boolean]':\n case '[object Number]':\n case '[object String]':\n case '[object Date]':\n return new source.constructor(source.valueOf());\n\n case '[object RegExp]':\n var re = new RegExp(source.source, source.toString().match(/[^\\/]*$/)[0]);\n re.lastIndex = source.lastIndex;\n return re;\n\n case '[object Blob]':\n return new source.constructor([source], {type: source.type});\n }\n\n if (isFunction(source.cloneNode)) {\n return source.cloneNode(true);\n }\n }\n}\n\n\n/**\n * @ngdoc function\n * @name angular.equals\n * @module ng\n * @kind function\n *\n * @description\n * Determines if two objects or two values are equivalent. Supports value types, regular\n * expressions, arrays and objects.\n *\n * Two objects or values are considered equivalent if at least one of the following is true:\n *\n * * Both objects or values pass `===` comparison.\n * * Both objects or values are of the same type and all of their properties are equal by\n * comparing them with `angular.equals`.\n * * Both values are NaN. (In JavaScript, NaN == NaN => false. But we consider two NaN as equal)\n * * Both values represent the same regular expression (In JavaScript,\n * /abc/ == /abc/ => false. But we consider two regular expressions as equal when their textual\n * representation matches).\n *\n * During a property comparison, properties of `function` type and properties with names\n * that begin with `$` are ignored.\n *\n * Scope and DOMWindow objects are being compared only by identify (`===`).\n *\n * @param {*} o1 Object or value to compare.\n * @param {*} o2 Object or value to compare.\n * @returns {boolean} True if arguments are equal.\n *\n * @example\n \n \n
\n \n
\n \n \n angular.module('equalsExample', []).controller('ExampleController', ['$scope', function($scope) {\n $scope.user1 = {};\n $scope.user2 = {};\n $scope.result;\n $scope.compare = function() {\n $scope.result = angular.equals($scope.user1, $scope.user2);\n };\n }]);\n \n \n */\nfunction equals(o1, o2) {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n var t1 = typeof o1, t2 = typeof o2, length, key, keySet;\n if (t1 == t2 && t1 == 'object') {\n if (isArray(o1)) {\n if (!isArray(o2)) return false;\n if ((length = o1.length) == o2.length) {\n for (key = 0; key < length; key++) {\n if (!equals(o1[key], o2[key])) return false;\n }\n return true;\n }\n } else if (isDate(o1)) {\n if (!isDate(o2)) return false;\n return equals(o1.getTime(), o2.getTime());\n } else if (isRegExp(o1)) {\n if (!isRegExp(o2)) return false;\n return o1.toString() == o2.toString();\n } else {\n if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) ||\n isArray(o2) || isDate(o2) || isRegExp(o2)) return false;\n keySet = createMap();\n for (key in o1) {\n if (key.charAt(0) === '$' || isFunction(o1[key])) continue;\n if (!equals(o1[key], o2[key])) return false;\n keySet[key] = true;\n }\n for (key in o2) {\n if (!(key in keySet) &&\n key.charAt(0) !== '$' &&\n isDefined(o2[key]) &&\n !isFunction(o2[key])) return false;\n }\n return true;\n }\n }\n return false;\n}\n\nvar csp = function() {\n if (!isDefined(csp.rules)) {\n\n\n var ngCspElement = (window.document.querySelector('[ng-csp]') ||\n window.document.querySelector('[data-ng-csp]'));\n\n if (ngCspElement) {\n var ngCspAttribute = ngCspElement.getAttribute('ng-csp') ||\n ngCspElement.getAttribute('data-ng-csp');\n csp.rules = {\n noUnsafeEval: !ngCspAttribute || (ngCspAttribute.indexOf('no-unsafe-eval') !== -1),\n noInlineStyle: !ngCspAttribute || (ngCspAttribute.indexOf('no-inline-style') !== -1)\n };\n } else {\n csp.rules = {\n noUnsafeEval: noUnsafeEval(),\n noInlineStyle: false\n };\n }\n }\n\n return csp.rules;\n\n function noUnsafeEval() {\n try {\n /* jshint -W031, -W054 */\n new Function('');\n /* jshint +W031, +W054 */\n return false;\n } catch (e) {\n return true;\n }\n }\n};\n\n/**\n * @ngdoc directive\n * @module ng\n * @name ngJq\n *\n * @element ANY\n * @param {string=} ngJq the name of the library available under `window`\n * to be used for angular.element\n * @description\n * Use this directive to force the angular.element library. This should be\n * used to force either jqLite by leaving ng-jq blank or setting the name of\n * the jquery variable under window (eg. jQuery).\n *\n * Since angular looks for this directive when it is loaded (doesn't wait for the\n * DOMContentLoaded event), it must be placed on an element that comes before the script\n * which loads angular. Also, only the first instance of `ng-jq` will be used and all\n * others ignored.\n *\n * @example\n * This example shows how to force jqLite using the `ngJq` directive to the `html` tag.\n ```html\n \n \n ...\n ...\n \n ```\n * @example\n * This example shows how to use a jQuery based library of a different name.\n * The library name must be available at the top most 'window'.\n ```html\n \n \n ...\n ...\n \n ```\n */\nvar jq = function() {\n if (isDefined(jq.name_)) return jq.name_;\n var el;\n var i, ii = ngAttrPrefixes.length, prefix, name;\n for (i = 0; i < ii; ++i) {\n prefix = ngAttrPrefixes[i];\n if (el = window.document.querySelector('[' + prefix.replace(':', '\\\\:') + 'jq]')) {\n name = el.getAttribute(prefix + 'jq');\n break;\n }\n }\n\n return (jq.name_ = name);\n};\n\nfunction concat(array1, array2, index) {\n return array1.concat(slice.call(array2, index));\n}\n\nfunction sliceArgs(args, startIndex) {\n return slice.call(args, startIndex || 0);\n}\n\n\n/* jshint -W101 */\n/**\n * @ngdoc function\n * @name angular.bind\n * @module ng\n * @kind function\n *\n * @description\n * Returns a function which calls function `fn` bound to `self` (`self` becomes the `this` for\n * `fn`). You can supply optional `args` that are prebound to the function. This feature is also\n * known as [partial application](http://en.wikipedia.org/wiki/Partial_application), as\n * distinguished from [function currying](http://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application).\n *\n * @param {Object} self Context which `fn` should be evaluated in.\n * @param {function()} fn Function to be bound.\n * @param {...*} args Optional arguments to be prebound to the `fn` function call.\n * @returns {function()} Function that wraps the `fn` with all the specified bindings.\n */\n/* jshint +W101 */\nfunction bind(self, fn) {\n var curryArgs = arguments.length > 2 ? sliceArgs(arguments, 2) : [];\n if (isFunction(fn) && !(fn instanceof RegExp)) {\n return curryArgs.length\n ? function() {\n return arguments.length\n ? fn.apply(self, concat(curryArgs, arguments, 0))\n : fn.apply(self, curryArgs);\n }\n : function() {\n return arguments.length\n ? fn.apply(self, arguments)\n : fn.call(self);\n };\n } else {\n // In IE, native methods are not functions so they cannot be bound (note: they don't need to be).\n return fn;\n }\n}\n\n\nfunction toJsonReplacer(key, value) {\n var val = value;\n\n if (typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$') {\n val = undefined;\n } else if (isWindow(value)) {\n val = '$WINDOW';\n } else if (value && window.document === value) {\n val = '$DOCUMENT';\n } else if (isScope(value)) {\n val = '$SCOPE';\n }\n\n return val;\n}\n\n\n/**\n * @ngdoc function\n * @name angular.toJson\n * @module ng\n * @kind function\n *\n * @description\n * Serializes input into a JSON-formatted string. Properties with leading $$ characters will be\n * stripped since angular uses this notation internally.\n *\n * @param {Object|Array|Date|string|number} obj Input to be serialized into JSON.\n * @param {boolean|number} [pretty=2] If set to true, the JSON output will contain newlines and whitespace.\n * If set to an integer, the JSON output will contain that many spaces per indentation.\n * @returns {string|undefined} JSON-ified string representing `obj`.\n * @knownIssue\n *\n * The Safari browser throws a `RangeError` instead of returning `null` when it tries to stringify a `Date`\n * object with an invalid date value. The only reliable way to prevent this is to monkeypatch the\n * `Date.prototype.toJSON` method as follows:\n *\n * ```\n * var _DatetoJSON = Date.prototype.toJSON;\n * Date.prototype.toJSON = function() {\n * try {\n * return _DatetoJSON.call(this);\n * } catch(e) {\n * if (e instanceof RangeError) {\n * return null;\n * }\n * throw e;\n * }\n * };\n * ```\n *\n * See https://github.com/angular/angular.js/pull/14221 for more information.\n */\nfunction toJson(obj, pretty) {\n if (isUndefined(obj)) return undefined;\n if (!isNumber(pretty)) {\n pretty = pretty ? 2 : null;\n }\n return JSON.stringify(obj, toJsonReplacer, pretty);\n}\n\n\n/**\n * @ngdoc function\n * @name angular.fromJson\n * @module ng\n * @kind function\n *\n * @description\n * Deserializes a JSON string.\n *\n * @param {string} json JSON string to deserialize.\n * @returns {Object|Array|string|number} Deserialized JSON string.\n */\nfunction fromJson(json) {\n return isString(json)\n ? JSON.parse(json)\n : json;\n}\n\n\nvar ALL_COLONS = /:/g;\nfunction timezoneToOffset(timezone, fallback) {\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(ALL_COLONS, '');\n var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\n\n\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\n\n\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n reverse = reverse ? -1 : 1;\n var dateTimezoneOffset = date.getTimezoneOffset();\n var timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverse * (timezoneOffset - dateTimezoneOffset));\n}\n\n\n/**\n * @returns {string} Returns the string representation of the element.\n */\nfunction startingTag(element) {\n element = jqLite(element).clone();\n try {\n // turns out IE does not let you set .html() on elements which\n // are not allowed to have children. So we just ignore it.\n element.empty();\n } catch (e) {}\n var elemHtml = jqLite('
').append(element).html();\n try {\n return element[0].nodeType === NODE_TYPE_TEXT ? lowercase(elemHtml) :\n elemHtml.\n match(/^(<[^>]+>)/)[1].\n replace(/^<([\\w\\-]+)/, function(match, nodeName) {return '<' + lowercase(nodeName);});\n } catch (e) {\n return lowercase(elemHtml);\n }\n\n}\n\n\n/////////////////////////////////////////////////\n\n/**\n * Tries to decode the URI component without throwing an exception.\n *\n * @private\n * @param str value potential URI component to check.\n * @returns {boolean} True if `value` can be decoded\n * with the decodeURIComponent function.\n */\nfunction tryDecodeURIComponent(value) {\n try {\n return decodeURIComponent(value);\n } catch (e) {\n // Ignore any invalid uri component.\n }\n}\n\n\n/**\n * Parses an escaped url query string into key-value pairs.\n * @returns {Object.}\n */\nfunction parseKeyValue(/**string*/keyValue) {\n var obj = {};\n forEach((keyValue || \"\").split('&'), function(keyValue) {\n var splitPoint, key, val;\n if (keyValue) {\n key = keyValue = keyValue.replace(/\\+/g,'%20');\n splitPoint = keyValue.indexOf('=');\n if (splitPoint !== -1) {\n key = keyValue.substring(0, splitPoint);\n val = keyValue.substring(splitPoint + 1);\n }\n key = tryDecodeURIComponent(key);\n if (isDefined(key)) {\n val = isDefined(val) ? tryDecodeURIComponent(val) : true;\n if (!hasOwnProperty.call(obj, key)) {\n obj[key] = val;\n } else if (isArray(obj[key])) {\n obj[key].push(val);\n } else {\n obj[key] = [obj[key],val];\n }\n }\n }\n });\n return obj;\n}\n\nfunction toKeyValue(obj) {\n var parts = [];\n forEach(obj, function(value, key) {\n if (isArray(value)) {\n forEach(value, function(arrayValue) {\n parts.push(encodeUriQuery(key, true) +\n (arrayValue === true ? '' : '=' + encodeUriQuery(arrayValue, true)));\n });\n } else {\n parts.push(encodeUriQuery(key, true) +\n (value === true ? '' : '=' + encodeUriQuery(value, true)));\n }\n });\n return parts.length ? parts.join('&') : '';\n}\n\n\n/**\n * We need our custom method because encodeURIComponent is too aggressive and doesn't follow\n * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path\n * segments:\n * segment = *pchar\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n * pct-encoded = \"%\" HEXDIG HEXDIG\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n * / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n */\nfunction encodeUriSegment(val) {\n return encodeUriQuery(val, true).\n replace(/%26/gi, '&').\n replace(/%3D/gi, '=').\n replace(/%2B/gi, '+');\n}\n\n\n/**\n * This method is intended for encoding *key* or *value* parts of query component. We need a custom\n * method because encodeURIComponent is too aggressive and encodes stuff that doesn't have to be\n * encoded per http://tools.ietf.org/html/rfc3986:\n * query = *( pchar / \"/\" / \"?\" )\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * pct-encoded = \"%\" HEXDIG HEXDIG\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n * / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n */\nfunction encodeUriQuery(val, pctEncodeSpaces) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%3B/gi, ';').\n replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));\n}\n\nvar ngAttrPrefixes = ['ng-', 'data-ng-', 'ng:', 'x-ng-'];\n\nfunction getNgAttribute(element, ngAttr) {\n var attr, i, ii = ngAttrPrefixes.length;\n for (i = 0; i < ii; ++i) {\n attr = ngAttrPrefixes[i] + ngAttr;\n if (isString(attr = element.getAttribute(attr))) {\n return attr;\n }\n }\n return null;\n}\n\n/**\n * @ngdoc directive\n * @name ngApp\n * @module ng\n *\n * @element ANY\n * @param {angular.Module} ngApp an optional application\n * {@link angular.module module} name to load.\n * @param {boolean=} ngStrictDi if this attribute is present on the app element, the injector will be\n * created in \"strict-di\" mode. This means that the application will fail to invoke functions which\n * do not use explicit function annotation (and are thus unsuitable for minification), as described\n * in {@link guide/di the Dependency Injection guide}, and useful debugging info will assist in\n * tracking down the root of these bugs.\n *\n * @description\n *\n * Use this directive to **auto-bootstrap** an AngularJS application. The `ngApp` directive\n * designates the **root element** of the application and is typically placed near the root element\n * of the page - e.g. on the `` or `` tags.\n *\n * There are a few things to keep in mind when using `ngApp`:\n * - only one AngularJS application can be auto-bootstrapped per HTML document. The first `ngApp`\n * found in the document will be used to define the root element to auto-bootstrap as an\n * application. To run multiple applications in an HTML document you must manually bootstrap them using\n * {@link angular.bootstrap} instead.\n * - AngularJS applications cannot be nested within each other.\n * - Do not use a directive that uses {@link ng.$compile#transclusion transclusion} on the same element as `ngApp`.\n * This includes directives such as {@link ng.ngIf `ngIf`}, {@link ng.ngInclude `ngInclude`} and\n * {@link ngRoute.ngView `ngView`}.\n * Doing this misplaces the app {@link ng.$rootElement `$rootElement`} and the app's {@link auto.$injector injector},\n * causing animations to stop working and making the injector inaccessible from outside the app.\n *\n * You can specify an **AngularJS module** to be used as the root module for the application. This\n * module will be loaded into the {@link auto.$injector} when the application is bootstrapped. It\n * should contain the application code needed or have dependencies on other modules that will\n * contain the code. See {@link angular.module} for more information.\n *\n * In the example below if the `ngApp` directive were not placed on the `html` element then the\n * document would not be compiled, the `AppController` would not be instantiated and the `{{ a+b }}`\n * would not be resolved to `3`.\n *\n * `ngApp` is the easiest, and most common way to bootstrap an application.\n *\n \n \n
\n I can add: {{a}} + {{b}} = {{ a+b }}\n
\n \n \n angular.module('ngAppDemo', []).controller('ngAppDemoController', function($scope) {\n $scope.a = 1;\n $scope.b = 2;\n });\n \n \n *\n * Using `ngStrictDi`, you would see something like this:\n *\n \n \n
\n
\n I can add: {{a}} + {{b}} = {{ a+b }}\n\n
This renders because the controller does not fail to\n instantiate, by using explicit annotation style (see\n script.js for details)\n
\n
\n\n
\n Name: \n Hello, {{name}}!\n\n
This renders because the controller does not fail to\n instantiate, by using explicit annotation style\n (see script.js for details)\n
\n
\n\n
\n I can add: {{a}} + {{b}} = {{ a+b }}\n\n
The controller could not be instantiated, due to relying\n on automatic function annotations (which are disabled in\n strict mode). As such, the content of this section is not\n interpolated, and there should be an error in your web console.\n
\n
\n
\n \n \n angular.module('ngAppStrictDemo', [])\n // BadController will fail to instantiate, due to relying on automatic function annotation,\n // rather than an explicit annotation\n .controller('BadController', function($scope) {\n $scope.a = 1;\n $scope.b = 2;\n })\n // Unlike BadController, GoodController1 and GoodController2 will not fail to be instantiated,\n // due to using explicit annotations using the array style and $inject property, respectively.\n .controller('GoodController1', ['$scope', function($scope) {\n $scope.a = 1;\n $scope.b = 2;\n }])\n .controller('GoodController2', GoodController2);\n function GoodController2($scope) {\n $scope.name = \"World\";\n }\n GoodController2.$inject = ['$scope'];\n \n \n div[ng-controller] {\n margin-bottom: 1em;\n -webkit-border-radius: 4px;\n border-radius: 4px;\n border: 1px solid;\n padding: .5em;\n }\n div[ng-controller^=Good] {\n border-color: #d6e9c6;\n background-color: #dff0d8;\n color: #3c763d;\n }\n div[ng-controller^=Bad] {\n border-color: #ebccd1;\n background-color: #f2dede;\n color: #a94442;\n margin-bottom: 0;\n }\n \n \n */\nfunction angularInit(element, bootstrap) {\n var appElement,\n module,\n config = {};\n\n // The element `element` has priority over any other element.\n forEach(ngAttrPrefixes, function(prefix) {\n var name = prefix + 'app';\n\n if (!appElement && element.hasAttribute && element.hasAttribute(name)) {\n appElement = element;\n module = element.getAttribute(name);\n }\n });\n forEach(ngAttrPrefixes, function(prefix) {\n var name = prefix + 'app';\n var candidate;\n\n if (!appElement && (candidate = element.querySelector('[' + name.replace(':', '\\\\:') + ']'))) {\n appElement = candidate;\n module = candidate.getAttribute(name);\n }\n });\n if (appElement) {\n config.strictDi = getNgAttribute(appElement, \"strict-di\") !== null;\n bootstrap(appElement, module ? [module] : [], config);\n }\n}\n\n/**\n * @ngdoc function\n * @name angular.bootstrap\n * @module ng\n * @description\n * Use this function to manually start up angular application.\n *\n * For more information, see the {@link guide/bootstrap Bootstrap guide}.\n *\n * Angular will detect if it has been loaded into the browser more than once and only allow the\n * first loaded script to be bootstrapped and will report a warning to the browser console for\n * each of the subsequent scripts. This prevents strange results in applications, where otherwise\n * multiple instances of Angular try to work on the DOM.\n *\n *
\n * **Note:** Protractor based end-to-end tests cannot use this function to bootstrap manually.\n * They must use {@link ng.directive:ngApp ngApp}.\n *
\n *\n *
\n * **Note:** Do not bootstrap the app on an element with a directive that uses {@link ng.$compile#transclusion transclusion},\n * such as {@link ng.ngIf `ngIf`}, {@link ng.ngInclude `ngInclude`} and {@link ngRoute.ngView `ngView`}.\n * Doing this misplaces the app {@link ng.$rootElement `$rootElement`} and the app's {@link auto.$injector injector},\n * causing animations to stop working and making the injector inaccessible from outside the app.\n *
\n *\n * ```html\n * \n * \n * \n *
\n * {{greeting}}\n *
\n *\n * \n * \n * \n * \n * ```\n *\n * @param {DOMElement} element DOM element which is the root of angular application.\n * @param {Array=} modules an array of modules to load into the application.\n * Each item in the array should be the name of a predefined module or a (DI annotated)\n * function that will be invoked by the injector as a `config` block.\n * See: {@link angular.module modules}\n * @param {Object=} config an object for defining configuration options for the application. The\n * following keys are supported:\n *\n * * `strictDi` - disable automatic function annotation for the application. This is meant to\n * assist in finding bugs which break minified code. Defaults to `false`.\n *\n * @returns {auto.$injector} Returns the newly created injector for this app.\n */\nfunction bootstrap(element, modules, config) {\n if (!isObject(config)) config = {};\n var defaultConfig = {\n strictDi: false\n };\n config = extend(defaultConfig, config);\n var doBootstrap = function() {\n element = jqLite(element);\n\n if (element.injector()) {\n var tag = (element[0] === window.document) ? 'document' : startingTag(element);\n // Encode angle brackets to prevent input from being sanitized to empty string #8683.\n throw ngMinErr(\n 'btstrpd',\n \"App already bootstrapped with this element '{0}'\",\n tag.replace(/,'<').replace(/>/,'>'));\n }\n\n modules = modules || [];\n modules.unshift(['$provide', function($provide) {\n $provide.value('$rootElement', element);\n }]);\n\n if (config.debugInfoEnabled) {\n // Pushing so that this overrides `debugInfoEnabled` setting defined in user's `modules`.\n modules.push(['$compileProvider', function($compileProvider) {\n $compileProvider.debugInfoEnabled(true);\n }]);\n }\n\n modules.unshift('ng');\n var injector = createInjector(modules, config.strictDi);\n injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector',\n function bootstrapApply(scope, element, compile, injector) {\n scope.$apply(function() {\n element.data('$injector', injector);\n compile(element)(scope);\n });\n }]\n );\n return injector;\n };\n\n var NG_ENABLE_DEBUG_INFO = /^NG_ENABLE_DEBUG_INFO!/;\n var NG_DEFER_BOOTSTRAP = /^NG_DEFER_BOOTSTRAP!/;\n\n if (window && NG_ENABLE_DEBUG_INFO.test(window.name)) {\n config.debugInfoEnabled = true;\n window.name = window.name.replace(NG_ENABLE_DEBUG_INFO, '');\n }\n\n if (window && !NG_DEFER_BOOTSTRAP.test(window.name)) {\n return doBootstrap();\n }\n\n window.name = window.name.replace(NG_DEFER_BOOTSTRAP, '');\n angular.resumeBootstrap = function(extraModules) {\n forEach(extraModules, function(module) {\n modules.push(module);\n });\n return doBootstrap();\n };\n\n if (isFunction(angular.resumeDeferredBootstrap)) {\n angular.resumeDeferredBootstrap();\n }\n}\n\n/**\n * @ngdoc function\n * @name angular.reloadWithDebugInfo\n * @module ng\n * @description\n * Use this function to reload the current application with debug information turned on.\n * This takes precedence over a call to `$compileProvider.debugInfoEnabled(false)`.\n *\n * See {@link ng.$compileProvider#debugInfoEnabled} for more.\n */\nfunction reloadWithDebugInfo() {\n window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name;\n window.location.reload();\n}\n\n/**\n * @name angular.getTestability\n * @module ng\n * @description\n * Get the testability service for the instance of Angular on the given\n * element.\n * @param {DOMElement} element DOM element which is the root of angular application.\n */\nfunction getTestability(rootElement) {\n var injector = angular.element(rootElement).injector();\n if (!injector) {\n throw ngMinErr('test',\n 'no injector found for element argument to getTestability');\n }\n return injector.get('$$testability');\n}\n\nvar SNAKE_CASE_REGEXP = /[A-Z]/g;\nfunction snake_case(name, separator) {\n separator = separator || '_';\n return name.replace(SNAKE_CASE_REGEXP, function(letter, pos) {\n return (pos ? separator : '') + letter.toLowerCase();\n });\n}\n\nvar bindJQueryFired = false;\nfunction bindJQuery() {\n var originalCleanData;\n\n if (bindJQueryFired) {\n return;\n }\n\n // bind to jQuery if present;\n var jqName = jq();\n jQuery = isUndefined(jqName) ? window.jQuery : // use jQuery (if present)\n !jqName ? undefined : // use jqLite\n window[jqName]; // use jQuery specified by `ngJq`\n\n // Use jQuery if it exists with proper functionality, otherwise default to us.\n // Angular 1.2+ requires jQuery 1.7+ for on()/off() support.\n // Angular 1.3+ technically requires at least jQuery 2.1+ but it may work with older\n // versions. It will not work for sure with jQuery <1.7, though.\n if (jQuery && jQuery.fn.on) {\n jqLite = jQuery;\n extend(jQuery.fn, {\n scope: JQLitePrototype.scope,\n isolateScope: JQLitePrototype.isolateScope,\n controller: JQLitePrototype.controller,\n injector: JQLitePrototype.injector,\n inheritedData: JQLitePrototype.inheritedData\n });\n\n // All nodes removed from the DOM via various jQuery APIs like .remove()\n // are passed through jQuery.cleanData. Monkey-patch this method to fire\n // the $destroy event on all removed nodes.\n originalCleanData = jQuery.cleanData;\n jQuery.cleanData = function(elems) {\n var events;\n for (var i = 0, elem; (elem = elems[i]) != null; i++) {\n events = jQuery._data(elem, \"events\");\n if (events && events.$destroy) {\n jQuery(elem).triggerHandler('$destroy');\n }\n }\n originalCleanData(elems);\n };\n } else {\n jqLite = JQLite;\n }\n\n angular.element = jqLite;\n\n // Prevent double-proxying.\n bindJQueryFired = true;\n}\n\n/**\n * throw error if the argument is falsy.\n */\nfunction assertArg(arg, name, reason) {\n if (!arg) {\n throw ngMinErr('areq', \"Argument '{0}' is {1}\", (name || '?'), (reason || \"required\"));\n }\n return arg;\n}\n\nfunction assertArgFn(arg, name, acceptArrayAnnotation) {\n if (acceptArrayAnnotation && isArray(arg)) {\n arg = arg[arg.length - 1];\n }\n\n assertArg(isFunction(arg), name, 'not a function, got ' +\n (arg && typeof arg === 'object' ? arg.constructor.name || 'Object' : typeof arg));\n return arg;\n}\n\n/**\n * throw error if the name given is hasOwnProperty\n * @param {String} name the name to test\n * @param {String} context the context in which the name is used, such as module or directive\n */\nfunction assertNotHasOwnProperty(name, context) {\n if (name === 'hasOwnProperty') {\n throw ngMinErr('badname', \"hasOwnProperty is not a valid {0} name\", context);\n }\n}\n\n/**\n * Return the value accessible from the object by path. Any undefined traversals are ignored\n * @param {Object} obj starting object\n * @param {String} path path to traverse\n * @param {boolean} [bindFnToScope=true]\n * @returns {Object} value as accessible by path\n */\n//TODO(misko): this function needs to be removed\nfunction getter(obj, path, bindFnToScope) {\n if (!path) return obj;\n var keys = path.split('.');\n var key;\n var lastInstance = obj;\n var len = keys.length;\n\n for (var i = 0; i < len; i++) {\n key = keys[i];\n if (obj) {\n obj = (lastInstance = obj)[key];\n }\n }\n if (!bindFnToScope && isFunction(obj)) {\n return bind(lastInstance, obj);\n }\n return obj;\n}\n\n/**\n * Return the DOM siblings between the first and last node in the given array.\n * @param {Array} array like object\n * @returns {Array} the inputted object or a jqLite collection containing the nodes\n */\nfunction getBlockNodes(nodes) {\n // TODO(perf): update `nodes` instead of creating a new object?\n var node = nodes[0];\n var endNode = nodes[nodes.length - 1];\n var blockNodes;\n\n for (var i = 1; node !== endNode && (node = node.nextSibling); i++) {\n if (blockNodes || nodes[i] !== node) {\n if (!blockNodes) {\n blockNodes = jqLite(slice.call(nodes, 0, i));\n }\n blockNodes.push(node);\n }\n }\n\n return blockNodes || nodes;\n}\n\n\n/**\n * Creates a new object without a prototype. This object is useful for lookup without having to\n * guard against prototypically inherited properties via hasOwnProperty.\n *\n * Related micro-benchmarks:\n * - http://jsperf.com/object-create2\n * - http://jsperf.com/proto-map-lookup/2\n * - http://jsperf.com/for-in-vs-object-keys2\n *\n * @returns {Object}\n */\nfunction createMap() {\n return Object.create(null);\n}\n\nvar NODE_TYPE_ELEMENT = 1;\nvar NODE_TYPE_ATTRIBUTE = 2;\nvar NODE_TYPE_TEXT = 3;\nvar NODE_TYPE_COMMENT = 8;\nvar NODE_TYPE_DOCUMENT = 9;\nvar NODE_TYPE_DOCUMENT_FRAGMENT = 11;\n\n/**\n * @ngdoc type\n * @name angular.Module\n * @module ng\n * @description\n *\n * Interface for configuring angular {@link angular.module modules}.\n */\n\nfunction setupModuleLoader(window) {\n\n var $injectorMinErr = minErr('$injector');\n var ngMinErr = minErr('ng');\n\n function ensure(obj, name, factory) {\n return obj[name] || (obj[name] = factory());\n }\n\n var angular = ensure(window, 'angular', Object);\n\n // We need to expose `angular.$$minErr` to modules such as `ngResource` that reference it during bootstrap\n angular.$$minErr = angular.$$minErr || minErr;\n\n return ensure(angular, 'module', function() {\n /** @type {Object.} */\n var modules = {};\n\n /**\n * @ngdoc function\n * @name angular.module\n * @module ng\n * @description\n *\n * The `angular.module` is a global place for creating, registering and retrieving Angular\n * modules.\n * All modules (angular core or 3rd party) that should be available to an application must be\n * registered using this mechanism.\n *\n * Passing one argument retrieves an existing {@link angular.Module},\n * whereas passing more than one argument creates a new {@link angular.Module}\n *\n *\n * # Module\n *\n * A module is a collection of services, directives, controllers, filters, and configuration information.\n * `angular.module` is used to configure the {@link auto.$injector $injector}.\n *\n * ```js\n * // Create a new module\n * var myModule = angular.module('myModule', []);\n *\n * // register a new service\n * myModule.value('appName', 'MyCoolApp');\n *\n * // configure existing services inside initialization blocks.\n * myModule.config(['$locationProvider', function($locationProvider) {\n * // Configure existing providers\n * $locationProvider.hashPrefix('!');\n * }]);\n * ```\n *\n * Then you can create an injector and load your modules like this:\n *\n * ```js\n * var injector = angular.injector(['ng', 'myModule'])\n * ```\n *\n * However it's more likely that you'll just use\n * {@link ng.directive:ngApp ngApp} or\n * {@link angular.bootstrap} to simplify this process for you.\n *\n * @param {!string} name The name of the module to create or retrieve.\n * @param {!Array.=} requires If specified then new module is being created. If\n * unspecified then the module is being retrieved for further configuration.\n * @param {Function=} configFn Optional configuration function for the module. Same as\n * {@link angular.Module#config Module#config()}.\n * @returns {angular.Module} new module with the {@link angular.Module} api.\n */\n return function module(name, requires, configFn) {\n var assertNotHasOwnProperty = function(name, context) {\n if (name === 'hasOwnProperty') {\n throw ngMinErr('badname', 'hasOwnProperty is not a valid {0} name', context);\n }\n };\n\n assertNotHasOwnProperty(name, 'module');\n if (requires && modules.hasOwnProperty(name)) {\n modules[name] = null;\n }\n return ensure(modules, name, function() {\n if (!requires) {\n throw $injectorMinErr('nomod', \"Module '{0}' is not available! You either misspelled \" +\n \"the module name or forgot to load it. If registering a module ensure that you \" +\n \"specify the dependencies as the second argument.\", name);\n }\n\n /** @type {!Array.>} */\n var invokeQueue = [];\n\n /** @type {!Array.} */\n var configBlocks = [];\n\n /** @type {!Array.} */\n var runBlocks = [];\n\n var config = invokeLater('$injector', 'invoke', 'push', configBlocks);\n\n /** @type {angular.Module} */\n var moduleInstance = {\n // Private state\n _invokeQueue: invokeQueue,\n _configBlocks: configBlocks,\n _runBlocks: runBlocks,\n\n /**\n * @ngdoc property\n * @name angular.Module#requires\n * @module ng\n *\n * @description\n * Holds the list of modules which the injector will load before the current module is\n * loaded.\n */\n requires: requires,\n\n /**\n * @ngdoc property\n * @name angular.Module#name\n * @module ng\n *\n * @description\n * Name of the module.\n */\n name: name,\n\n\n /**\n * @ngdoc method\n * @name angular.Module#provider\n * @module ng\n * @param {string} name service name\n * @param {Function} providerType Construction function for creating new instance of the\n * service.\n * @description\n * See {@link auto.$provide#provider $provide.provider()}.\n */\n provider: invokeLaterAndSetModuleName('$provide', 'provider'),\n\n /**\n * @ngdoc method\n * @name angular.Module#factory\n * @module ng\n * @param {string} name service name\n * @param {Function} providerFunction Function for creating new instance of the service.\n * @description\n * See {@link auto.$provide#factory $provide.factory()}.\n */\n factory: invokeLaterAndSetModuleName('$provide', 'factory'),\n\n /**\n * @ngdoc method\n * @name angular.Module#service\n * @module ng\n * @param {string} name service name\n * @param {Function} constructor A constructor function that will be instantiated.\n * @description\n * See {@link auto.$provide#service $provide.service()}.\n */\n service: invokeLaterAndSetModuleName('$provide', 'service'),\n\n /**\n * @ngdoc method\n * @name angular.Module#value\n * @module ng\n * @param {string} name service name\n * @param {*} object Service instance object.\n * @description\n * See {@link auto.$provide#value $provide.value()}.\n */\n value: invokeLater('$provide', 'value'),\n\n /**\n * @ngdoc method\n * @name angular.Module#constant\n * @module ng\n * @param {string} name constant name\n * @param {*} object Constant value.\n * @description\n * Because the constants are fixed, they get applied before other provide methods.\n * See {@link auto.$provide#constant $provide.constant()}.\n */\n constant: invokeLater('$provide', 'constant', 'unshift'),\n\n /**\n * @ngdoc method\n * @name angular.Module#decorator\n * @module ng\n * @param {string} name The name of the service to decorate.\n * @param {Function} decorFn This function will be invoked when the service needs to be\n * instantiated and should return the decorated service instance.\n * @description\n * See {@link auto.$provide#decorator $provide.decorator()}.\n */\n decorator: invokeLaterAndSetModuleName('$provide', 'decorator'),\n\n /**\n * @ngdoc method\n * @name angular.Module#animation\n * @module ng\n * @param {string} name animation name\n * @param {Function} animationFactory Factory function for creating new instance of an\n * animation.\n * @description\n *\n * **NOTE**: animations take effect only if the **ngAnimate** module is loaded.\n *\n *\n * Defines an animation hook that can be later used with\n * {@link $animate $animate} service and directives that use this service.\n *\n * ```js\n * module.animation('.animation-name', function($inject1, $inject2) {\n * return {\n * eventName : function(element, done) {\n * //code to run the animation\n * //once complete, then run done()\n * return function cancellationFunction(element) {\n * //code to cancel the animation\n * }\n * }\n * }\n * })\n * ```\n *\n * See {@link ng.$animateProvider#register $animateProvider.register()} and\n * {@link ngAnimate ngAnimate module} for more information.\n */\n animation: invokeLaterAndSetModuleName('$animateProvider', 'register'),\n\n /**\n * @ngdoc method\n * @name angular.Module#filter\n * @module ng\n * @param {string} name Filter name - this must be a valid angular expression identifier\n * @param {Function} filterFactory Factory function for creating new instance of filter.\n * @description\n * See {@link ng.$filterProvider#register $filterProvider.register()}.\n *\n *
\n * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`.\n * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace\n * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores\n * (`myapp_subsection_filterx`).\n *
\n */\n filter: invokeLaterAndSetModuleName('$filterProvider', 'register'),\n\n /**\n * @ngdoc method\n * @name angular.Module#controller\n * @module ng\n * @param {string|Object} name Controller name, or an object map of controllers where the\n * keys are the names and the values are the constructors.\n * @param {Function} constructor Controller constructor function.\n * @description\n * See {@link ng.$controllerProvider#register $controllerProvider.register()}.\n */\n controller: invokeLaterAndSetModuleName('$controllerProvider', 'register'),\n\n /**\n * @ngdoc method\n * @name angular.Module#directive\n * @module ng\n * @param {string|Object} name Directive name, or an object map of directives where the\n * keys are the names and the values are the factories.\n * @param {Function} directiveFactory Factory function for creating new instance of\n * directives.\n * @description\n * See {@link ng.$compileProvider#directive $compileProvider.directive()}.\n */\n directive: invokeLaterAndSetModuleName('$compileProvider', 'directive'),\n\n /**\n * @ngdoc method\n * @name angular.Module#component\n * @module ng\n * @param {string} name Name of the component in camel-case (i.e. myComp which will match as my-comp)\n * @param {Object} options Component definition object (a simplified\n * {@link ng.$compile#directive-definition-object directive definition object})\n *\n * @description\n * See {@link ng.$compileProvider#component $compileProvider.component()}.\n */\n component: invokeLaterAndSetModuleName('$compileProvider', 'component'),\n\n /**\n * @ngdoc method\n * @name angular.Module#config\n * @module ng\n * @param {Function} configFn Execute this function on module load. Useful for service\n * configuration.\n * @description\n * Use this method to register work which needs to be performed on module loading.\n * For more about how to configure services, see\n * {@link providers#provider-recipe Provider Recipe}.\n */\n config: config,\n\n /**\n * @ngdoc method\n * @name angular.Module#run\n * @module ng\n * @param {Function} initializationFn Execute this function after injector creation.\n * Useful for application initialization.\n * @description\n * Use this method to register work which should be performed when the injector is done\n * loading all modules.\n */\n run: function(block) {\n runBlocks.push(block);\n return this;\n }\n };\n\n if (configFn) {\n config(configFn);\n }\n\n return moduleInstance;\n\n /**\n * @param {string} provider\n * @param {string} method\n * @param {String=} insertMethod\n * @returns {angular.Module}\n */\n function invokeLater(provider, method, insertMethod, queue) {\n if (!queue) queue = invokeQueue;\n return function() {\n queue[insertMethod || 'push']([provider, method, arguments]);\n return moduleInstance;\n };\n }\n\n /**\n * @param {string} provider\n * @param {string} method\n * @returns {angular.Module}\n */\n function invokeLaterAndSetModuleName(provider, method) {\n return function(recipeName, factoryFunction) {\n if (factoryFunction && isFunction(factoryFunction)) factoryFunction.$$moduleName = name;\n invokeQueue.push([provider, method, arguments]);\n return moduleInstance;\n };\n }\n });\n };\n });\n\n}\n\n/* global shallowCopy: true */\n\n/**\n * Creates a shallow copy of an object, an array or a primitive.\n *\n * Assumes that there are no proto properties for objects.\n */\nfunction shallowCopy(src, dst) {\n if (isArray(src)) {\n dst = dst || [];\n\n for (var i = 0, ii = src.length; i < ii; i++) {\n dst[i] = src[i];\n }\n } else if (isObject(src)) {\n dst = dst || {};\n\n for (var key in src) {\n if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst || src;\n}\n\n/* global toDebugString: true */\n\nfunction serializeObject(obj) {\n var seen = [];\n\n return JSON.stringify(obj, function(key, val) {\n val = toJsonReplacer(key, val);\n if (isObject(val)) {\n\n if (seen.indexOf(val) >= 0) return '...';\n\n seen.push(val);\n }\n return val;\n });\n}\n\nfunction toDebugString(obj) {\n if (typeof obj === 'function') {\n return obj.toString().replace(/ \\{[\\s\\S]*$/, '');\n } else if (isUndefined(obj)) {\n return 'undefined';\n } else if (typeof obj !== 'string') {\n return serializeObject(obj);\n }\n return obj;\n}\n\n/* global angularModule: true,\n version: true,\n\n $CompileProvider,\n\n htmlAnchorDirective,\n inputDirective,\n inputDirective,\n formDirective,\n scriptDirective,\n selectDirective,\n styleDirective,\n optionDirective,\n ngBindDirective,\n ngBindHtmlDirective,\n ngBindTemplateDirective,\n ngClassDirective,\n ngClassEvenDirective,\n ngClassOddDirective,\n ngCloakDirective,\n ngControllerDirective,\n ngFormDirective,\n ngHideDirective,\n ngIfDirective,\n ngIncludeDirective,\n ngIncludeFillContentDirective,\n ngInitDirective,\n ngNonBindableDirective,\n ngPluralizeDirective,\n ngRepeatDirective,\n ngShowDirective,\n ngStyleDirective,\n ngSwitchDirective,\n ngSwitchWhenDirective,\n ngSwitchDefaultDirective,\n ngOptionsDirective,\n ngTranscludeDirective,\n ngModelDirective,\n ngListDirective,\n ngChangeDirective,\n patternDirective,\n patternDirective,\n requiredDirective,\n requiredDirective,\n minlengthDirective,\n minlengthDirective,\n maxlengthDirective,\n maxlengthDirective,\n ngValueDirective,\n ngModelOptionsDirective,\n ngAttributeAliasDirectives,\n ngEventDirectives,\n\n $AnchorScrollProvider,\n $AnimateProvider,\n $CoreAnimateCssProvider,\n $$CoreAnimateJsProvider,\n $$CoreAnimateQueueProvider,\n $$AnimateRunnerFactoryProvider,\n $$AnimateAsyncRunFactoryProvider,\n $BrowserProvider,\n $CacheFactoryProvider,\n $ControllerProvider,\n $DateProvider,\n $DocumentProvider,\n $ExceptionHandlerProvider,\n $FilterProvider,\n $$ForceReflowProvider,\n $InterpolateProvider,\n $IntervalProvider,\n $$HashMapProvider,\n $HttpProvider,\n $HttpParamSerializerProvider,\n $HttpParamSerializerJQLikeProvider,\n $HttpBackendProvider,\n $xhrFactoryProvider,\n $jsonpCallbacksProvider,\n $LocationProvider,\n $LogProvider,\n $ParseProvider,\n $RootScopeProvider,\n $QProvider,\n $$QProvider,\n $$SanitizeUriProvider,\n $SceProvider,\n $SceDelegateProvider,\n $SnifferProvider,\n $TemplateCacheProvider,\n $TemplateRequestProvider,\n $$TestabilityProvider,\n $TimeoutProvider,\n $$RAFProvider,\n $WindowProvider,\n $$jqLiteProvider,\n $$CookieReaderProvider\n*/\n\n\n/**\n * @ngdoc object\n * @name angular.version\n * @module ng\n * @description\n * An object that contains information about the current AngularJS version.\n *\n * This object has the following properties:\n *\n * - `full` – `{string}` – Full version string, such as \"0.9.18\".\n * - `major` – `{number}` – Major version number, such as \"0\".\n * - `minor` – `{number}` – Minor version number, such as \"9\".\n * - `dot` – `{number}` – Dot version number, such as \"18\".\n * - `codeName` – `{string}` – Code name of the release, such as \"jiggling-armfat\".\n */\nvar version = {\n full: '1.5.8', // all of these placeholder strings will be replaced by grunt's\n major: 1, // package task\n minor: 5,\n dot: 8,\n codeName: 'arbitrary-fallbacks'\n};\n\n\nfunction publishExternalAPI(angular) {\n extend(angular, {\n 'bootstrap': bootstrap,\n 'copy': copy,\n 'extend': extend,\n 'merge': merge,\n 'equals': equals,\n 'element': jqLite,\n 'forEach': forEach,\n 'injector': createInjector,\n 'noop': noop,\n 'bind': bind,\n 'toJson': toJson,\n 'fromJson': fromJson,\n 'identity': identity,\n 'isUndefined': isUndefined,\n 'isDefined': isDefined,\n 'isString': isString,\n 'isFunction': isFunction,\n 'isObject': isObject,\n 'isNumber': isNumber,\n 'isElement': isElement,\n 'isArray': isArray,\n 'version': version,\n 'isDate': isDate,\n 'lowercase': lowercase,\n 'uppercase': uppercase,\n 'callbacks': {$$counter: 0},\n 'getTestability': getTestability,\n '$$minErr': minErr,\n '$$csp': csp,\n 'reloadWithDebugInfo': reloadWithDebugInfo\n });\n\n angularModule = setupModuleLoader(window);\n\n angularModule('ng', ['ngLocale'], ['$provide',\n function ngModule($provide) {\n // $$sanitizeUriProvider needs to be before $compileProvider as it is used by it.\n $provide.provider({\n $$sanitizeUri: $$SanitizeUriProvider\n });\n $provide.provider('$compile', $CompileProvider).\n directive({\n a: htmlAnchorDirective,\n input: inputDirective,\n textarea: inputDirective,\n form: formDirective,\n script: scriptDirective,\n select: selectDirective,\n style: styleDirective,\n option: optionDirective,\n ngBind: ngBindDirective,\n ngBindHtml: ngBindHtmlDirective,\n ngBindTemplate: ngBindTemplateDirective,\n ngClass: ngClassDirective,\n ngClassEven: ngClassEvenDirective,\n ngClassOdd: ngClassOddDirective,\n ngCloak: ngCloakDirective,\n ngController: ngControllerDirective,\n ngForm: ngFormDirective,\n ngHide: ngHideDirective,\n ngIf: ngIfDirective,\n ngInclude: ngIncludeDirective,\n ngInit: ngInitDirective,\n ngNonBindable: ngNonBindableDirective,\n ngPluralize: ngPluralizeDirective,\n ngRepeat: ngRepeatDirective,\n ngShow: ngShowDirective,\n ngStyle: ngStyleDirective,\n ngSwitch: ngSwitchDirective,\n ngSwitchWhen: ngSwitchWhenDirective,\n ngSwitchDefault: ngSwitchDefaultDirective,\n ngOptions: ngOptionsDirective,\n ngTransclude: ngTranscludeDirective,\n ngModel: ngModelDirective,\n ngList: ngListDirective,\n ngChange: ngChangeDirective,\n pattern: patternDirective,\n ngPattern: patternDirective,\n required: requiredDirective,\n ngRequired: requiredDirective,\n minlength: minlengthDirective,\n ngMinlength: minlengthDirective,\n maxlength: maxlengthDirective,\n ngMaxlength: maxlengthDirective,\n ngValue: ngValueDirective,\n ngModelOptions: ngModelOptionsDirective\n }).\n directive({\n ngInclude: ngIncludeFillContentDirective\n }).\n directive(ngAttributeAliasDirectives).\n directive(ngEventDirectives);\n $provide.provider({\n $anchorScroll: $AnchorScrollProvider,\n $animate: $AnimateProvider,\n $animateCss: $CoreAnimateCssProvider,\n $$animateJs: $$CoreAnimateJsProvider,\n $$animateQueue: $$CoreAnimateQueueProvider,\n $$AnimateRunner: $$AnimateRunnerFactoryProvider,\n $$animateAsyncRun: $$AnimateAsyncRunFactoryProvider,\n $browser: $BrowserProvider,\n $cacheFactory: $CacheFactoryProvider,\n $controller: $ControllerProvider,\n $document: $DocumentProvider,\n $exceptionHandler: $ExceptionHandlerProvider,\n $filter: $FilterProvider,\n $$forceReflow: $$ForceReflowProvider,\n $interpolate: $InterpolateProvider,\n $interval: $IntervalProvider,\n $http: $HttpProvider,\n $httpParamSerializer: $HttpParamSerializerProvider,\n $httpParamSerializerJQLike: $HttpParamSerializerJQLikeProvider,\n $httpBackend: $HttpBackendProvider,\n $xhrFactory: $xhrFactoryProvider,\n $jsonpCallbacks: $jsonpCallbacksProvider,\n $location: $LocationProvider,\n $log: $LogProvider,\n $parse: $ParseProvider,\n $rootScope: $RootScopeProvider,\n $q: $QProvider,\n $$q: $$QProvider,\n $sce: $SceProvider,\n $sceDelegate: $SceDelegateProvider,\n $sniffer: $SnifferProvider,\n $templateCache: $TemplateCacheProvider,\n $templateRequest: $TemplateRequestProvider,\n $$testability: $$TestabilityProvider,\n $timeout: $TimeoutProvider,\n $window: $WindowProvider,\n $$rAF: $$RAFProvider,\n $$jqLite: $$jqLiteProvider,\n $$HashMap: $$HashMapProvider,\n $$cookieReader: $$CookieReaderProvider\n });\n }\n ]);\n}\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Any commits to this file should be reviewed with security in mind. *\n * Changes to this file can potentially create security vulnerabilities. *\n * An approval from 2 Core members with history of modifying *\n * this file is required. *\n * *\n * Does the change somehow allow for arbitrary javascript to be executed? *\n * Or allows for someone to change the prototype of built-in objects? *\n * Or gives undesired access to variables likes document or window? *\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/* global JQLitePrototype: true,\n addEventListenerFn: true,\n removeEventListenerFn: true,\n BOOLEAN_ATTR: true,\n ALIASED_ATTR: true,\n*/\n\n//////////////////////////////////\n//JQLite\n//////////////////////////////////\n\n/**\n * @ngdoc function\n * @name angular.element\n * @module ng\n * @kind function\n *\n * @description\n * Wraps a raw DOM element or HTML string as a [jQuery](http://jquery.com) element.\n *\n * If jQuery is available, `angular.element` is an alias for the\n * [jQuery](http://api.jquery.com/jQuery/) function. If jQuery is not available, `angular.element`\n * delegates to Angular's built-in subset of jQuery, called \"jQuery lite\" or **jqLite**.\n *\n * jqLite is a tiny, API-compatible subset of jQuery that allows\n * Angular to manipulate the DOM in a cross-browser compatible way. jqLite implements only the most\n * commonly needed functionality with the goal of having a very small footprint.\n *\n * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. You can also use the\n * {@link ngJq `ngJq`} directive to specify that jqlite should be used over jQuery, or to use a\n * specific version of jQuery if multiple versions exist on the page.\n *\n *
**Note:** All element references in Angular are always wrapped with jQuery or\n * jqLite (such as the element argument in a directive's compile / link function). They are never raw DOM references.
\n *\n *
**Note:** Keep in mind that this function will not find elements\n * by tag name / CSS selector. For lookups by tag name, try instead `angular.element(document).find(...)`\n * or `$document.find()`, or use the standard DOM APIs, e.g. `document.querySelectorAll()`.
\n *\n * ## Angular's jqLite\n * jqLite provides only the following jQuery methods:\n *\n * - [`addClass()`](http://api.jquery.com/addClass/) - Does not support a function as first argument\n * - [`after()`](http://api.jquery.com/after/)\n * - [`append()`](http://api.jquery.com/append/)\n * - [`attr()`](http://api.jquery.com/attr/) - Does not support functions as parameters\n * - [`bind()`](http://api.jquery.com/bind/) - Does not support namespaces, selectors or eventData\n * - [`children()`](http://api.jquery.com/children/) - Does not support selectors\n * - [`clone()`](http://api.jquery.com/clone/)\n * - [`contents()`](http://api.jquery.com/contents/)\n * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`.\n * As a setter, does not convert numbers to strings or append 'px', and also does not have automatic property prefixing.\n * - [`data()`](http://api.jquery.com/data/)\n * - [`detach()`](http://api.jquery.com/detach/)\n * - [`empty()`](http://api.jquery.com/empty/)\n * - [`eq()`](http://api.jquery.com/eq/)\n * - [`find()`](http://api.jquery.com/find/) - Limited to lookups by tag name\n * - [`hasClass()`](http://api.jquery.com/hasClass/)\n * - [`html()`](http://api.jquery.com/html/)\n * - [`next()`](http://api.jquery.com/next/) - Does not support selectors\n * - [`on()`](http://api.jquery.com/on/) - Does not support namespaces, selectors or eventData\n * - [`off()`](http://api.jquery.com/off/) - Does not support namespaces, selectors or event object as parameter\n * - [`one()`](http://api.jquery.com/one/) - Does not support namespaces or selectors\n * - [`parent()`](http://api.jquery.com/parent/) - Does not support selectors\n * - [`prepend()`](http://api.jquery.com/prepend/)\n * - [`prop()`](http://api.jquery.com/prop/)\n * - [`ready()`](http://api.jquery.com/ready/)\n * - [`remove()`](http://api.jquery.com/remove/)\n * - [`removeAttr()`](http://api.jquery.com/removeAttr/)\n * - [`removeClass()`](http://api.jquery.com/removeClass/) - Does not support a function as first argument\n * - [`removeData()`](http://api.jquery.com/removeData/)\n * - [`replaceWith()`](http://api.jquery.com/replaceWith/)\n * - [`text()`](http://api.jquery.com/text/)\n * - [`toggleClass()`](http://api.jquery.com/toggleClass/) - Does not support a function as first argument\n * - [`triggerHandler()`](http://api.jquery.com/triggerHandler/) - Passes a dummy event object to handlers\n * - [`unbind()`](http://api.jquery.com/unbind/) - Does not support namespaces or event object as parameter\n * - [`val()`](http://api.jquery.com/val/)\n * - [`wrap()`](http://api.jquery.com/wrap/)\n *\n * ## jQuery/jqLite Extras\n * Angular also provides the following additional methods and events to both jQuery and jqLite:\n *\n * ### Events\n * - `$destroy` - AngularJS intercepts all jqLite/jQuery's DOM destruction apis and fires this event\n * on all DOM nodes being removed. This can be used to clean up any 3rd party bindings to the DOM\n * element before it is removed.\n *\n * ### Methods\n * - `controller(name)` - retrieves the controller of the current element or its parent. By default\n * retrieves controller associated with the `ngController` directive. If `name` is provided as\n * camelCase directive name, then the controller for this directive will be retrieved (e.g.\n * `'ngModel'`).\n * - `injector()` - retrieves the injector of the current element or its parent.\n * - `scope()` - retrieves the {@link ng.$rootScope.Scope scope} of the current\n * element or its parent. Requires {@link guide/production#disabling-debug-data Debug Data} to\n * be enabled.\n * - `isolateScope()` - retrieves an isolate {@link ng.$rootScope.Scope scope} if one is attached directly to the\n * current element. This getter should be used only on elements that contain a directive which starts a new isolate\n * scope. Calling `scope()` on this element always returns the original non-isolate scope.\n * Requires {@link guide/production#disabling-debug-data Debug Data} to be enabled.\n * - `inheritedData()` - same as `data()`, but walks up the DOM until a value is found or the top\n * parent element is reached.\n *\n * @knownIssue You cannot spy on `angular.element` if you are using Jasmine version 1.x. See\n * https://github.com/angular/angular.js/issues/14251 for more information.\n *\n * @param {string|DOMElement} element HTML string or DOMElement to be wrapped into jQuery.\n * @returns {Object} jQuery object.\n */\n\nJQLite.expando = 'ng339';\n\nvar jqCache = JQLite.cache = {},\n jqId = 1,\n addEventListenerFn = function(element, type, fn) {\n element.addEventListener(type, fn, false);\n },\n removeEventListenerFn = function(element, type, fn) {\n element.removeEventListener(type, fn, false);\n };\n\n/*\n * !!! This is an undocumented \"private\" function !!!\n */\nJQLite._data = function(node) {\n //jQuery always returns an object on cache miss\n return this.cache[node[this.expando]] || {};\n};\n\nfunction jqNextId() { return ++jqId; }\n\n\nvar SPECIAL_CHARS_REGEXP = /([\\:\\-\\_]+(.))/g;\nvar MOZ_HACK_REGEXP = /^moz([A-Z])/;\nvar MOUSE_EVENT_MAP= { mouseleave: \"mouseout\", mouseenter: \"mouseover\"};\nvar jqLiteMinErr = minErr('jqLite');\n\n/**\n * Converts snake_case to camelCase.\n * Also there is special case for Moz prefix starting with upper case letter.\n * @param name Name to normalize\n */\nfunction camelCase(name) {\n return name.\n replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {\n return offset ? letter.toUpperCase() : letter;\n }).\n replace(MOZ_HACK_REGEXP, 'Moz$1');\n}\n\nvar SINGLE_TAG_REGEXP = /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/;\nvar HTML_REGEXP = /<|?\\w+;/;\nvar TAG_NAME_REGEXP = /<([\\w:-]+)/;\nvar XHTML_TAG_REGEXP = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:-]+)[^>]*)\\/>/gi;\n\nvar wrapMap = {\n 'option': [1, ''],\n\n 'thead': [1, '
', '
'],\n 'col': [2, '
', '
'],\n 'tr': [2, '
', '
'],\n 'td': [3, '
', '
'],\n '_default': [0, \"\", \"\"]\n};\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction jqLiteIsTextNode(html) {\n return !HTML_REGEXP.test(html);\n}\n\nfunction jqLiteAcceptsData(node) {\n // The window object can accept data but has no nodeType\n // Otherwise we are only interested in elements (1) and documents (9)\n var nodeType = node.nodeType;\n return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT;\n}\n\nfunction jqLiteHasData(node) {\n for (var key in jqCache[node.ng339]) {\n return true;\n }\n return false;\n}\n\nfunction jqLiteCleanData(nodes) {\n for (var i = 0, ii = nodes.length; i < ii; i++) {\n jqLiteRemoveData(nodes[i]);\n }\n}\n\nfunction jqLiteBuildFragment(html, context) {\n var tmp, tag, wrap,\n fragment = context.createDocumentFragment(),\n nodes = [], i;\n\n if (jqLiteIsTextNode(html)) {\n // Convert non-html into a text node\n nodes.push(context.createTextNode(html));\n } else {\n // Convert html into DOM nodes\n tmp = fragment.appendChild(context.createElement(\"div\"));\n tag = (TAG_NAME_REGEXP.exec(html) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP, \"<$1>$2>\") + wrap[2];\n\n // Descend through wrappers to the right content\n i = wrap[0];\n while (i--) {\n tmp = tmp.lastChild;\n }\n\n nodes = concat(nodes, tmp.childNodes);\n\n tmp = fragment.firstChild;\n tmp.textContent = \"\";\n }\n\n // Remove wrapper from fragment\n fragment.textContent = \"\";\n fragment.innerHTML = \"\"; // Clear inner HTML\n forEach(nodes, function(node) {\n fragment.appendChild(node);\n });\n\n return fragment;\n}\n\nfunction jqLiteParseHTML(html, context) {\n context = context || window.document;\n var parsed;\n\n if ((parsed = SINGLE_TAG_REGEXP.exec(html))) {\n return [context.createElement(parsed[1])];\n }\n\n if ((parsed = jqLiteBuildFragment(html, context))) {\n return parsed.childNodes;\n }\n\n return [];\n}\n\nfunction jqLiteWrapNode(node, wrapper) {\n var parent = node.parentNode;\n\n if (parent) {\n parent.replaceChild(wrapper, node);\n }\n\n wrapper.appendChild(node);\n}\n\n\n// IE9-11 has no method \"contains\" in SVG element and in Node.prototype. Bug #10259.\nvar jqLiteContains = window.Node.prototype.contains || function(arg) {\n // jshint bitwise: false\n return !!(this.compareDocumentPosition(arg) & 16);\n // jshint bitwise: true\n};\n\n/////////////////////////////////////////////\nfunction JQLite(element) {\n if (element instanceof JQLite) {\n return element;\n }\n\n var argIsString;\n\n if (isString(element)) {\n element = trim(element);\n argIsString = true;\n }\n if (!(this instanceof JQLite)) {\n if (argIsString && element.charAt(0) != '<') {\n throw jqLiteMinErr('nosel', 'Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element');\n }\n return new JQLite(element);\n }\n\n if (argIsString) {\n jqLiteAddNodes(this, jqLiteParseHTML(element));\n } else {\n jqLiteAddNodes(this, element);\n }\n}\n\nfunction jqLiteClone(element) {\n return element.cloneNode(true);\n}\n\nfunction jqLiteDealoc(element, onlyDescendants) {\n if (!onlyDescendants) jqLiteRemoveData(element);\n\n if (element.querySelectorAll) {\n var descendants = element.querySelectorAll('*');\n for (var i = 0, l = descendants.length; i < l; i++) {\n jqLiteRemoveData(descendants[i]);\n }\n }\n}\n\nfunction jqLiteOff(element, type, fn, unsupported) {\n if (isDefined(unsupported)) throw jqLiteMinErr('offargs', 'jqLite#off() does not support the `selector` argument');\n\n var expandoStore = jqLiteExpandoStore(element);\n var events = expandoStore && expandoStore.events;\n var handle = expandoStore && expandoStore.handle;\n\n if (!handle) return; //no listeners registered\n\n if (!type) {\n for (type in events) {\n if (type !== '$destroy') {\n removeEventListenerFn(element, type, handle);\n }\n delete events[type];\n }\n } else {\n\n var removeHandler = function(type) {\n var listenerFns = events[type];\n if (isDefined(fn)) {\n arrayRemove(listenerFns || [], fn);\n }\n if (!(isDefined(fn) && listenerFns && listenerFns.length > 0)) {\n removeEventListenerFn(element, type, handle);\n delete events[type];\n }\n };\n\n forEach(type.split(' '), function(type) {\n removeHandler(type);\n if (MOUSE_EVENT_MAP[type]) {\n removeHandler(MOUSE_EVENT_MAP[type]);\n }\n });\n }\n}\n\nfunction jqLiteRemoveData(element, name) {\n var expandoId = element.ng339;\n var expandoStore = expandoId && jqCache[expandoId];\n\n if (expandoStore) {\n if (name) {\n delete expandoStore.data[name];\n return;\n }\n\n if (expandoStore.handle) {\n if (expandoStore.events.$destroy) {\n expandoStore.handle({}, '$destroy');\n }\n jqLiteOff(element);\n }\n delete jqCache[expandoId];\n element.ng339 = undefined; // don't delete DOM expandos. IE and Chrome don't like it\n }\n}\n\n\nfunction jqLiteExpandoStore(element, createIfNecessary) {\n var expandoId = element.ng339,\n expandoStore = expandoId && jqCache[expandoId];\n\n if (createIfNecessary && !expandoStore) {\n element.ng339 = expandoId = jqNextId();\n expandoStore = jqCache[expandoId] = {events: {}, data: {}, handle: undefined};\n }\n\n return expandoStore;\n}\n\n\nfunction jqLiteData(element, key, value) {\n if (jqLiteAcceptsData(element)) {\n\n var isSimpleSetter = isDefined(value);\n var isSimpleGetter = !isSimpleSetter && key && !isObject(key);\n var massGetter = !key;\n var expandoStore = jqLiteExpandoStore(element, !isSimpleGetter);\n var data = expandoStore && expandoStore.data;\n\n if (isSimpleSetter) { // data('key', value)\n data[key] = value;\n } else {\n if (massGetter) { // data()\n return data;\n } else {\n if (isSimpleGetter) { // data('key')\n // don't force creation of expandoStore if it doesn't exist yet\n return data && data[key];\n } else { // mass-setter: data({key1: val1, key2: val2})\n extend(data, key);\n }\n }\n }\n }\n}\n\nfunction jqLiteHasClass(element, selector) {\n if (!element.getAttribute) return false;\n return ((\" \" + (element.getAttribute('class') || '') + \" \").replace(/[\\n\\t]/g, \" \").\n indexOf(\" \" + selector + \" \") > -1);\n}\n\nfunction jqLiteRemoveClass(element, cssClasses) {\n if (cssClasses && element.setAttribute) {\n forEach(cssClasses.split(' '), function(cssClass) {\n element.setAttribute('class', trim(\n (\" \" + (element.getAttribute('class') || '') + \" \")\n .replace(/[\\n\\t]/g, \" \")\n .replace(\" \" + trim(cssClass) + \" \", \" \"))\n );\n });\n }\n}\n\nfunction jqLiteAddClass(element, cssClasses) {\n if (cssClasses && element.setAttribute) {\n var existingClasses = (' ' + (element.getAttribute('class') || '') + ' ')\n .replace(/[\\n\\t]/g, \" \");\n\n forEach(cssClasses.split(' '), function(cssClass) {\n cssClass = trim(cssClass);\n if (existingClasses.indexOf(' ' + cssClass + ' ') === -1) {\n existingClasses += cssClass + ' ';\n }\n });\n\n element.setAttribute('class', trim(existingClasses));\n }\n}\n\n\nfunction jqLiteAddNodes(root, elements) {\n // THIS CODE IS VERY HOT. Don't make changes without benchmarking.\n\n if (elements) {\n\n // if a Node (the most common case)\n if (elements.nodeType) {\n root[root.length++] = elements;\n } else {\n var length = elements.length;\n\n // if an Array or NodeList and not a Window\n if (typeof length === 'number' && elements.window !== elements) {\n if (length) {\n for (var i = 0; i < length; i++) {\n root[root.length++] = elements[i];\n }\n }\n } else {\n root[root.length++] = elements;\n }\n }\n }\n}\n\n\nfunction jqLiteController(element, name) {\n return jqLiteInheritedData(element, '$' + (name || 'ngController') + 'Controller');\n}\n\nfunction jqLiteInheritedData(element, name, value) {\n // if element is the document object work with the html element instead\n // this makes $(document).scope() possible\n if (element.nodeType == NODE_TYPE_DOCUMENT) {\n element = element.documentElement;\n }\n var names = isArray(name) ? name : [name];\n\n while (element) {\n for (var i = 0, ii = names.length; i < ii; i++) {\n if (isDefined(value = jqLite.data(element, names[i]))) return value;\n }\n\n // If dealing with a document fragment node with a host element, and no parent, use the host\n // element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM\n // to lookup parent controllers.\n element = element.parentNode || (element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host);\n }\n}\n\nfunction jqLiteEmpty(element) {\n jqLiteDealoc(element, true);\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n}\n\nfunction jqLiteRemove(element, keepData) {\n if (!keepData) jqLiteDealoc(element);\n var parent = element.parentNode;\n if (parent) parent.removeChild(element);\n}\n\n\nfunction jqLiteDocumentLoaded(action, win) {\n win = win || window;\n if (win.document.readyState === 'complete') {\n // Force the action to be run async for consistent behavior\n // from the action's point of view\n // i.e. it will definitely not be in a $apply\n win.setTimeout(action);\n } else {\n // No need to unbind this handler as load is only ever called once\n jqLite(win).on('load', action);\n }\n}\n\n//////////////////////////////////////////\n// Functions which are declared directly.\n//////////////////////////////////////////\nvar JQLitePrototype = JQLite.prototype = {\n ready: function(fn) {\n var fired = false;\n\n function trigger() {\n if (fired) return;\n fired = true;\n fn();\n }\n\n // check if document is already loaded\n if (window.document.readyState === 'complete') {\n window.setTimeout(trigger);\n } else {\n this.on('DOMContentLoaded', trigger); // works for modern browsers and IE9\n // we can not use jqLite since we are not done loading and jQuery could be loaded later.\n // jshint -W064\n JQLite(window).on('load', trigger); // fallback to window.onload for others\n // jshint +W064\n }\n },\n toString: function() {\n var value = [];\n forEach(this, function(e) { value.push('' + e);});\n return '[' + value.join(', ') + ']';\n },\n\n eq: function(index) {\n return (index >= 0) ? jqLite(this[index]) : jqLite(this[this.length + index]);\n },\n\n length: 0,\n push: push,\n sort: [].sort,\n splice: [].splice\n};\n\n//////////////////////////////////////////\n// Functions iterating getter/setters.\n// these functions return self on setter and\n// value on get.\n//////////////////////////////////////////\nvar BOOLEAN_ATTR = {};\nforEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','), function(value) {\n BOOLEAN_ATTR[lowercase(value)] = value;\n});\nvar BOOLEAN_ELEMENTS = {};\nforEach('input,select,option,textarea,button,form,details'.split(','), function(value) {\n BOOLEAN_ELEMENTS[value] = true;\n});\nvar ALIASED_ATTR = {\n 'ngMinlength': 'minlength',\n 'ngMaxlength': 'maxlength',\n 'ngMin': 'min',\n 'ngMax': 'max',\n 'ngPattern': 'pattern'\n};\n\nfunction getBooleanAttrName(element, name) {\n // check dom last since we will most likely fail on name\n var booleanAttr = BOOLEAN_ATTR[name.toLowerCase()];\n\n // booleanAttr is here twice to minimize DOM access\n return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr;\n}\n\nfunction getAliasedAttrName(name) {\n return ALIASED_ATTR[name];\n}\n\nforEach({\n data: jqLiteData,\n removeData: jqLiteRemoveData,\n hasData: jqLiteHasData,\n cleanData: jqLiteCleanData\n}, function(fn, name) {\n JQLite[name] = fn;\n});\n\nforEach({\n data: jqLiteData,\n inheritedData: jqLiteInheritedData,\n\n scope: function(element) {\n // Can't use jqLiteData here directly so we stay compatible with jQuery!\n return jqLite.data(element, '$scope') || jqLiteInheritedData(element.parentNode || element, ['$isolateScope', '$scope']);\n },\n\n isolateScope: function(element) {\n // Can't use jqLiteData here directly so we stay compatible with jQuery!\n return jqLite.data(element, '$isolateScope') || jqLite.data(element, '$isolateScopeNoTemplate');\n },\n\n controller: jqLiteController,\n\n injector: function(element) {\n return jqLiteInheritedData(element, '$injector');\n },\n\n removeAttr: function(element, name) {\n element.removeAttribute(name);\n },\n\n hasClass: jqLiteHasClass,\n\n css: function(element, name, value) {\n name = camelCase(name);\n\n if (isDefined(value)) {\n element.style[name] = value;\n } else {\n return element.style[name];\n }\n },\n\n attr: function(element, name, value) {\n var nodeType = element.nodeType;\n if (nodeType === NODE_TYPE_TEXT || nodeType === NODE_TYPE_ATTRIBUTE || nodeType === NODE_TYPE_COMMENT) {\n return;\n }\n var lowercasedName = lowercase(name);\n if (BOOLEAN_ATTR[lowercasedName]) {\n if (isDefined(value)) {\n if (!!value) {\n element[name] = true;\n element.setAttribute(name, lowercasedName);\n } else {\n element[name] = false;\n element.removeAttribute(lowercasedName);\n }\n } else {\n return (element[name] ||\n (element.attributes.getNamedItem(name) || noop).specified)\n ? lowercasedName\n : undefined;\n }\n } else if (isDefined(value)) {\n element.setAttribute(name, value);\n } else if (element.getAttribute) {\n // the extra argument \"2\" is to get the right thing for a.href in IE, see jQuery code\n // some elements (e.g. Document) don't have get attribute, so return undefined\n var ret = element.getAttribute(name, 2);\n // normalize non-existing attributes to undefined (as jQuery)\n return ret === null ? undefined : ret;\n }\n },\n\n prop: function(element, name, value) {\n if (isDefined(value)) {\n element[name] = value;\n } else {\n return element[name];\n }\n },\n\n text: (function() {\n getText.$dv = '';\n return getText;\n\n function getText(element, value) {\n if (isUndefined(value)) {\n var nodeType = element.nodeType;\n return (nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT) ? element.textContent : '';\n }\n element.textContent = value;\n }\n })(),\n\n val: function(element, value) {\n if (isUndefined(value)) {\n if (element.multiple && nodeName_(element) === 'select') {\n var result = [];\n forEach(element.options, function(option) {\n if (option.selected) {\n result.push(option.value || option.text);\n }\n });\n return result.length === 0 ? null : result;\n }\n return element.value;\n }\n element.value = value;\n },\n\n html: function(element, value) {\n if (isUndefined(value)) {\n return element.innerHTML;\n }\n jqLiteDealoc(element, true);\n element.innerHTML = value;\n },\n\n empty: jqLiteEmpty\n}, function(fn, name) {\n /**\n * Properties: writes return selection, reads return first value\n */\n JQLite.prototype[name] = function(arg1, arg2) {\n var i, key;\n var nodeCount = this.length;\n\n // jqLiteHasClass has only two arguments, but is a getter-only fn, so we need to special-case it\n // in a way that survives minification.\n // jqLiteEmpty takes no arguments but is a setter.\n if (fn !== jqLiteEmpty &&\n (isUndefined((fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)) ? arg1 : arg2))) {\n if (isObject(arg1)) {\n\n // we are a write, but the object properties are the key/values\n for (i = 0; i < nodeCount; i++) {\n if (fn === jqLiteData) {\n // data() takes the whole object in jQuery\n fn(this[i], arg1);\n } else {\n for (key in arg1) {\n fn(this[i], key, arg1[key]);\n }\n }\n }\n // return self for chaining\n return this;\n } else {\n // we are a read, so read the first child.\n // TODO: do we still need this?\n var value = fn.$dv;\n // Only if we have $dv do we iterate over all, otherwise it is just the first element.\n var jj = (isUndefined(value)) ? Math.min(nodeCount, 1) : nodeCount;\n for (var j = 0; j < jj; j++) {\n var nodeValue = fn(this[j], arg1, arg2);\n value = value ? value + nodeValue : nodeValue;\n }\n return value;\n }\n } else {\n // we are a write, so apply to all children\n for (i = 0; i < nodeCount; i++) {\n fn(this[i], arg1, arg2);\n }\n // return self for chaining\n return this;\n }\n };\n});\n\nfunction createEventHandler(element, events) {\n var eventHandler = function(event, type) {\n // jQuery specific api\n event.isDefaultPrevented = function() {\n return event.defaultPrevented;\n };\n\n var eventFns = events[type || event.type];\n var eventFnsLength = eventFns ? eventFns.length : 0;\n\n if (!eventFnsLength) return;\n\n if (isUndefined(event.immediatePropagationStopped)) {\n var originalStopImmediatePropagation = event.stopImmediatePropagation;\n event.stopImmediatePropagation = function() {\n event.immediatePropagationStopped = true;\n\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n\n if (originalStopImmediatePropagation) {\n originalStopImmediatePropagation.call(event);\n }\n };\n }\n\n event.isImmediatePropagationStopped = function() {\n return event.immediatePropagationStopped === true;\n };\n\n // Some events have special handlers that wrap the real handler\n var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper;\n\n // Copy event handlers in case event handlers array is modified during execution.\n if ((eventFnsLength > 1)) {\n eventFns = shallowCopy(eventFns);\n }\n\n for (var i = 0; i < eventFnsLength; i++) {\n if (!event.isImmediatePropagationStopped()) {\n handlerWrapper(element, event, eventFns[i]);\n }\n }\n };\n\n // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all\n // events on `element`\n eventHandler.elem = element;\n return eventHandler;\n}\n\nfunction defaultHandlerWrapper(element, event, handler) {\n handler.call(element, event);\n}\n\nfunction specialMouseHandlerWrapper(target, event, handler) {\n // Refer to jQuery's implementation of mouseenter & mouseleave\n // Read about mouseenter and mouseleave:\n // http://www.quirksmode.org/js/events_mouse.html#link8\n var related = event.relatedTarget;\n // For mousenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || (related !== target && !jqLiteContains.call(target, related))) {\n handler.call(target, event);\n }\n}\n\n//////////////////////////////////////////\n// Functions iterating traversal.\n// These functions chain results into a single\n// selector.\n//////////////////////////////////////////\nforEach({\n removeData: jqLiteRemoveData,\n\n on: function jqLiteOn(element, type, fn, unsupported) {\n if (isDefined(unsupported)) throw jqLiteMinErr('onargs', 'jqLite#on() does not support the `selector` or `eventData` parameters');\n\n // Do not add event handlers to non-elements because they will not be cleaned up.\n if (!jqLiteAcceptsData(element)) {\n return;\n }\n\n var expandoStore = jqLiteExpandoStore(element, true);\n var events = expandoStore.events;\n var handle = expandoStore.handle;\n\n if (!handle) {\n handle = expandoStore.handle = createEventHandler(element, events);\n }\n\n // http://jsperf.com/string-indexof-vs-split\n var types = type.indexOf(' ') >= 0 ? type.split(' ') : [type];\n var i = types.length;\n\n var addHandler = function(type, specialHandlerWrapper, noEventListener) {\n var eventFns = events[type];\n\n if (!eventFns) {\n eventFns = events[type] = [];\n eventFns.specialHandlerWrapper = specialHandlerWrapper;\n if (type !== '$destroy' && !noEventListener) {\n addEventListenerFn(element, type, handle);\n }\n }\n\n eventFns.push(fn);\n };\n\n while (i--) {\n type = types[i];\n if (MOUSE_EVENT_MAP[type]) {\n addHandler(MOUSE_EVENT_MAP[type], specialMouseHandlerWrapper);\n addHandler(type, undefined, true);\n } else {\n addHandler(type);\n }\n }\n },\n\n off: jqLiteOff,\n\n one: function(element, type, fn) {\n element = jqLite(element);\n\n //add the listener twice so that when it is called\n //you can remove the original function and still be\n //able to call element.off(ev, fn) normally\n element.on(type, function onFn() {\n element.off(type, fn);\n element.off(type, onFn);\n });\n element.on(type, fn);\n },\n\n replaceWith: function(element, replaceNode) {\n var index, parent = element.parentNode;\n jqLiteDealoc(element);\n forEach(new JQLite(replaceNode), function(node) {\n if (index) {\n parent.insertBefore(node, index.nextSibling);\n } else {\n parent.replaceChild(node, element);\n }\n index = node;\n });\n },\n\n children: function(element) {\n var children = [];\n forEach(element.childNodes, function(element) {\n if (element.nodeType === NODE_TYPE_ELEMENT) {\n children.push(element);\n }\n });\n return children;\n },\n\n contents: function(element) {\n return element.contentDocument || element.childNodes || [];\n },\n\n append: function(element, node) {\n var nodeType = element.nodeType;\n if (nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT) return;\n\n node = new JQLite(node);\n\n for (var i = 0, ii = node.length; i < ii; i++) {\n var child = node[i];\n element.appendChild(child);\n }\n },\n\n prepend: function(element, node) {\n if (element.nodeType === NODE_TYPE_ELEMENT) {\n var index = element.firstChild;\n forEach(new JQLite(node), function(child) {\n element.insertBefore(child, index);\n });\n }\n },\n\n wrap: function(element, wrapNode) {\n jqLiteWrapNode(element, jqLite(wrapNode).eq(0).clone()[0]);\n },\n\n remove: jqLiteRemove,\n\n detach: function(element) {\n jqLiteRemove(element, true);\n },\n\n after: function(element, newElement) {\n var index = element, parent = element.parentNode;\n newElement = new JQLite(newElement);\n\n for (var i = 0, ii = newElement.length; i < ii; i++) {\n var node = newElement[i];\n parent.insertBefore(node, index.nextSibling);\n index = node;\n }\n },\n\n addClass: jqLiteAddClass,\n removeClass: jqLiteRemoveClass,\n\n toggleClass: function(element, selector, condition) {\n if (selector) {\n forEach(selector.split(' '), function(className) {\n var classCondition = condition;\n if (isUndefined(classCondition)) {\n classCondition = !jqLiteHasClass(element, className);\n }\n (classCondition ? jqLiteAddClass : jqLiteRemoveClass)(element, className);\n });\n }\n },\n\n parent: function(element) {\n var parent = element.parentNode;\n return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT ? parent : null;\n },\n\n next: function(element) {\n return element.nextElementSibling;\n },\n\n find: function(element, selector) {\n if (element.getElementsByTagName) {\n return element.getElementsByTagName(selector);\n } else {\n return [];\n }\n },\n\n clone: jqLiteClone,\n\n triggerHandler: function(element, event, extraParameters) {\n\n var dummyEvent, eventFnsCopy, handlerArgs;\n var eventName = event.type || event;\n var expandoStore = jqLiteExpandoStore(element);\n var events = expandoStore && expandoStore.events;\n var eventFns = events && events[eventName];\n\n if (eventFns) {\n // Create a dummy event to pass to the handlers\n dummyEvent = {\n preventDefault: function() { this.defaultPrevented = true; },\n isDefaultPrevented: function() { return this.defaultPrevented === true; },\n stopImmediatePropagation: function() { this.immediatePropagationStopped = true; },\n isImmediatePropagationStopped: function() { return this.immediatePropagationStopped === true; },\n stopPropagation: noop,\n type: eventName,\n target: element\n };\n\n // If a custom event was provided then extend our dummy event with it\n if (event.type) {\n dummyEvent = extend(dummyEvent, event);\n }\n\n // Copy event handlers in case event handlers array is modified during execution.\n eventFnsCopy = shallowCopy(eventFns);\n handlerArgs = extraParameters ? [dummyEvent].concat(extraParameters) : [dummyEvent];\n\n forEach(eventFnsCopy, function(fn) {\n if (!dummyEvent.isImmediatePropagationStopped()) {\n fn.apply(element, handlerArgs);\n }\n });\n }\n }\n}, function(fn, name) {\n /**\n * chaining functions\n */\n JQLite.prototype[name] = function(arg1, arg2, arg3) {\n var value;\n\n for (var i = 0, ii = this.length; i < ii; i++) {\n if (isUndefined(value)) {\n value = fn(this[i], arg1, arg2, arg3);\n if (isDefined(value)) {\n // any function which returns a value needs to be wrapped\n value = jqLite(value);\n }\n } else {\n jqLiteAddNodes(value, fn(this[i], arg1, arg2, arg3));\n }\n }\n return isDefined(value) ? value : this;\n };\n\n // bind legacy bind/unbind to on/off\n JQLite.prototype.bind = JQLite.prototype.on;\n JQLite.prototype.unbind = JQLite.prototype.off;\n});\n\n\n// Provider for private $$jqLite service\nfunction $$jqLiteProvider() {\n this.$get = function $$jqLite() {\n return extend(JQLite, {\n hasClass: function(node, classes) {\n if (node.attr) node = node[0];\n return jqLiteHasClass(node, classes);\n },\n addClass: function(node, classes) {\n if (node.attr) node = node[0];\n return jqLiteAddClass(node, classes);\n },\n removeClass: function(node, classes) {\n if (node.attr) node = node[0];\n return jqLiteRemoveClass(node, classes);\n }\n });\n };\n}\n\n/**\n * Computes a hash of an 'obj'.\n * Hash of a:\n * string is string\n * number is number as string\n * object is either result of calling $$hashKey function on the object or uniquely generated id,\n * that is also assigned to the $$hashKey property of the object.\n *\n * @param obj\n * @returns {string} hash string such that the same input will have the same hash string.\n * The resulting string key is in 'type:hashKey' format.\n */\nfunction hashKey(obj, nextUidFn) {\n var key = obj && obj.$$hashKey;\n\n if (key) {\n if (typeof key === 'function') {\n key = obj.$$hashKey();\n }\n return key;\n }\n\n var objType = typeof obj;\n if (objType == 'function' || (objType == 'object' && obj !== null)) {\n key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)();\n } else {\n key = objType + ':' + obj;\n }\n\n return key;\n}\n\n/**\n * HashMap which can use objects as keys\n */\nfunction HashMap(array, isolatedUid) {\n if (isolatedUid) {\n var uid = 0;\n this.nextUid = function() {\n return ++uid;\n };\n }\n forEach(array, this.put, this);\n}\nHashMap.prototype = {\n /**\n * Store key value pair\n * @param key key to store can be any type\n * @param value value to store can be any type\n */\n put: function(key, value) {\n this[hashKey(key, this.nextUid)] = value;\n },\n\n /**\n * @param key\n * @returns {Object} the value for the key\n */\n get: function(key) {\n return this[hashKey(key, this.nextUid)];\n },\n\n /**\n * Remove the key/value pair\n * @param key\n */\n remove: function(key) {\n var value = this[key = hashKey(key, this.nextUid)];\n delete this[key];\n return value;\n }\n};\n\nvar $$HashMapProvider = [function() {\n this.$get = [function() {\n return HashMap;\n }];\n}];\n\n/**\n * @ngdoc function\n * @module ng\n * @name angular.injector\n * @kind function\n *\n * @description\n * Creates an injector object that can be used for retrieving services as well as for\n * dependency injection (see {@link guide/di dependency injection}).\n *\n * @param {Array.} modules A list of module functions or their aliases. See\n * {@link angular.module}. The `ng` module must be explicitly added.\n * @param {boolean=} [strictDi=false] Whether the injector should be in strict mode, which\n * disallows argument name annotation inference.\n * @returns {injector} Injector object. See {@link auto.$injector $injector}.\n *\n * @example\n * Typical usage\n * ```js\n * // create an injector\n * var $injector = angular.injector(['ng']);\n *\n * // use the injector to kick off your application\n * // use the type inference to auto inject arguments, or use implicit injection\n * $injector.invoke(function($rootScope, $compile, $document) {\n * $compile($document)($rootScope);\n * $rootScope.$digest();\n * });\n * ```\n *\n * Sometimes you want to get access to the injector of a currently running Angular app\n * from outside Angular. Perhaps, you want to inject and compile some markup after the\n * application has been bootstrapped. You can do this using the extra `injector()` added\n * to JQuery/jqLite elements. See {@link angular.element}.\n *\n * *This is fairly rare but could be the case if a third party library is injecting the\n * markup.*\n *\n * In the following example a new block of HTML containing a `ng-controller`\n * directive is added to the end of the document body by JQuery. We then compile and link\n * it into the current AngularJS scope.\n *\n * ```js\n * var $div = $('
{{content.label}}
');\n * $(document.body).append($div);\n *\n * angular.element(document).injector().invoke(function($compile) {\n * var scope = angular.element($div).scope();\n * $compile($div)(scope);\n * });\n * ```\n */\n\n\n/**\n * @ngdoc module\n * @name auto\n * @installation\n * @description\n *\n * Implicit module which gets automatically added to each {@link auto.$injector $injector}.\n */\n\nvar ARROW_ARG = /^([^\\(]+?)=>/;\nvar FN_ARGS = /^[^\\(]*\\(\\s*([^\\)]*)\\)/m;\nvar FN_ARG_SPLIT = /,/;\nvar FN_ARG = /^\\s*(_?)(\\S+?)\\1\\s*$/;\nvar STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\nvar $injectorMinErr = minErr('$injector');\n\nfunction stringifyFn(fn) {\n // Support: Chrome 50-51 only\n // Creating a new string by adding `' '` at the end, to hack around some bug in Chrome v50/51\n // (See https://github.com/angular/angular.js/issues/14487.)\n // TODO (gkalpak): Remove workaround when Chrome v52 is released\n return Function.prototype.toString.call(fn) + ' ';\n}\n\nfunction extractArgs(fn) {\n var fnText = stringifyFn(fn).replace(STRIP_COMMENTS, ''),\n args = fnText.match(ARROW_ARG) || fnText.match(FN_ARGS);\n return args;\n}\n\nfunction anonFn(fn) {\n // For anonymous functions, showing at the very least the function signature can help in\n // debugging.\n var args = extractArgs(fn);\n if (args) {\n return 'function(' + (args[1] || '').replace(/[\\s\\r\\n]+/, ' ') + ')';\n }\n return 'fn';\n}\n\nfunction annotate(fn, strictDi, name) {\n var $inject,\n argDecl,\n last;\n\n if (typeof fn === 'function') {\n if (!($inject = fn.$inject)) {\n $inject = [];\n if (fn.length) {\n if (strictDi) {\n if (!isString(name) || !name) {\n name = fn.name || anonFn(fn);\n }\n throw $injectorMinErr('strictdi',\n '{0} is not using explicit annotation and cannot be invoked in strict mode', name);\n }\n argDecl = extractArgs(fn);\n forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg) {\n arg.replace(FN_ARG, function(all, underscore, name) {\n $inject.push(name);\n });\n });\n }\n fn.$inject = $inject;\n }\n } else if (isArray(fn)) {\n last = fn.length - 1;\n assertArgFn(fn[last], 'fn');\n $inject = fn.slice(0, last);\n } else {\n assertArgFn(fn, 'fn', true);\n }\n return $inject;\n}\n\n///////////////////////////////////////\n\n/**\n * @ngdoc service\n * @name $injector\n *\n * @description\n *\n * `$injector` is used to retrieve object instances as defined by\n * {@link auto.$provide provider}, instantiate types, invoke methods,\n * and load modules.\n *\n * The following always holds true:\n *\n * ```js\n * var $injector = angular.injector();\n * expect($injector.get('$injector')).toBe($injector);\n * expect($injector.invoke(function($injector) {\n * return $injector;\n * })).toBe($injector);\n * ```\n *\n * # Injection Function Annotation\n *\n * JavaScript does not have annotations, and annotations are needed for dependency injection. The\n * following are all valid ways of annotating function with injection arguments and are equivalent.\n *\n * ```js\n * // inferred (only works if code not minified/obfuscated)\n * $injector.invoke(function(serviceA){});\n *\n * // annotated\n * function explicit(serviceA) {};\n * explicit.$inject = ['serviceA'];\n * $injector.invoke(explicit);\n *\n * // inline\n * $injector.invoke(['serviceA', function(serviceA){}]);\n * ```\n *\n * ## Inference\n *\n * In JavaScript calling `toString()` on a function returns the function definition. The definition\n * can then be parsed and the function arguments can be extracted. This method of discovering\n * annotations is disallowed when the injector is in strict mode.\n * *NOTE:* This does not work with minification, and obfuscation tools since these tools change the\n * argument names.\n *\n * ## `$inject` Annotation\n * By adding an `$inject` property onto a function the injection parameters can be specified.\n *\n * ## Inline\n * As an array of injection names, where the last item in the array is the function to call.\n */\n\n/**\n * @ngdoc method\n * @name $injector#get\n *\n * @description\n * Return an instance of the service.\n *\n * @param {string} name The name of the instance to retrieve.\n * @param {string=} caller An optional string to provide the origin of the function call for error messages.\n * @return {*} The instance.\n */\n\n/**\n * @ngdoc method\n * @name $injector#invoke\n *\n * @description\n * Invoke the method and supply the method arguments from the `$injector`.\n *\n * @param {Function|Array.} fn The injectable function to invoke. Function parameters are\n * injected according to the {@link guide/di $inject Annotation} rules.\n * @param {Object=} self The `this` for the invoked method.\n * @param {Object=} locals Optional object. If preset then any argument names are read from this\n * object first, before the `$injector` is consulted.\n * @returns {*} the value returned by the invoked `fn` function.\n */\n\n/**\n * @ngdoc method\n * @name $injector#has\n *\n * @description\n * Allows the user to query if the particular service exists.\n *\n * @param {string} name Name of the service to query.\n * @returns {boolean} `true` if injector has given service.\n */\n\n/**\n * @ngdoc method\n * @name $injector#instantiate\n * @description\n * Create a new instance of JS type. The method takes a constructor function, invokes the new\n * operator, and supplies all of the arguments to the constructor function as specified by the\n * constructor annotation.\n *\n * @param {Function} Type Annotated constructor function.\n * @param {Object=} locals Optional object. If preset then any argument names are read from this\n * object first, before the `$injector` is consulted.\n * @returns {Object} new instance of `Type`.\n */\n\n/**\n * @ngdoc method\n * @name $injector#annotate\n *\n * @description\n * Returns an array of service names which the function is requesting for injection. This API is\n * used by the injector to determine which services need to be injected into the function when the\n * function is invoked. There are three ways in which the function can be annotated with the needed\n * dependencies.\n *\n * # Argument names\n *\n * The simplest form is to extract the dependencies from the arguments of the function. This is done\n * by converting the function into a string using `toString()` method and extracting the argument\n * names.\n * ```js\n * // Given\n * function MyController($scope, $route) {\n * // ...\n * }\n *\n * // Then\n * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']);\n * ```\n *\n * You can disallow this method by using strict injection mode.\n *\n * This method does not work with code minification / obfuscation. For this reason the following\n * annotation strategies are supported.\n *\n * # The `$inject` property\n *\n * If a function has an `$inject` property and its value is an array of strings, then the strings\n * represent names of services to be injected into the function.\n * ```js\n * // Given\n * var MyController = function(obfuscatedScope, obfuscatedRoute) {\n * // ...\n * }\n * // Define function dependencies\n * MyController['$inject'] = ['$scope', '$route'];\n *\n * // Then\n * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']);\n * ```\n *\n * # The array notation\n *\n * It is often desirable to inline Injected functions and that's when setting the `$inject` property\n * is very inconvenient. In these situations using the array notation to specify the dependencies in\n * a way that survives minification is a better choice:\n *\n * ```js\n * // We wish to write this (not minification / obfuscation safe)\n * injector.invoke(function($compile, $rootScope) {\n * // ...\n * });\n *\n * // We are forced to write break inlining\n * var tmpFn = function(obfuscatedCompile, obfuscatedRootScope) {\n * // ...\n * };\n * tmpFn.$inject = ['$compile', '$rootScope'];\n * injector.invoke(tmpFn);\n *\n * // To better support inline function the inline annotation is supported\n * injector.invoke(['$compile', '$rootScope', function(obfCompile, obfRootScope) {\n * // ...\n * }]);\n *\n * // Therefore\n * expect(injector.annotate(\n * ['$compile', '$rootScope', function(obfus_$compile, obfus_$rootScope) {}])\n * ).toEqual(['$compile', '$rootScope']);\n * ```\n *\n * @param {Function|Array.} fn Function for which dependent service names need to\n * be retrieved as described above.\n *\n * @param {boolean=} [strictDi=false] Disallow argument name annotation inference.\n *\n * @returns {Array.} The names of the services which the function requires.\n */\n\n\n\n\n/**\n * @ngdoc service\n * @name $provide\n *\n * @description\n *\n * The {@link auto.$provide $provide} service has a number of methods for registering components\n * with the {@link auto.$injector $injector}. Many of these functions are also exposed on\n * {@link angular.Module}.\n *\n * An Angular **service** is a singleton object created by a **service factory**. These **service\n * factories** are functions which, in turn, are created by a **service provider**.\n * The **service providers** are constructor functions. When instantiated they must contain a\n * property called `$get`, which holds the **service factory** function.\n *\n * When you request a service, the {@link auto.$injector $injector} is responsible for finding the\n * correct **service provider**, instantiating it and then calling its `$get` **service factory**\n * function to get the instance of the **service**.\n *\n * Often services have no configuration options and there is no need to add methods to the service\n * provider. The provider will be no more than a constructor function with a `$get` property. For\n * these cases the {@link auto.$provide $provide} service has additional helper methods to register\n * services without specifying a provider.\n *\n * * {@link auto.$provide#provider provider(name, provider)} - registers a **service provider** with the\n * {@link auto.$injector $injector}\n * * {@link auto.$provide#constant constant(name, obj)} - registers a value/object that can be accessed by\n * providers and services.\n * * {@link auto.$provide#value value(name, obj)} - registers a value/object that can only be accessed by\n * services, not providers.\n * * {@link auto.$provide#factory factory(name, fn)} - registers a service **factory function**\n * that will be wrapped in a **service provider** object, whose `$get` property will contain the\n * given factory function.\n * * {@link auto.$provide#service service(name, Fn)} - registers a **constructor function**\n * that will be wrapped in a **service provider** object, whose `$get` property will instantiate\n * a new object using the given constructor function.\n * * {@link auto.$provide#decorator decorator(name, decorFn)} - registers a **decorator function** that\n * will be able to modify or replace the implementation of another service.\n *\n * See the individual methods for more information and examples.\n */\n\n/**\n * @ngdoc method\n * @name $provide#provider\n * @description\n *\n * Register a **provider function** with the {@link auto.$injector $injector}. Provider functions\n * are constructor functions, whose instances are responsible for \"providing\" a factory for a\n * service.\n *\n * Service provider names start with the name of the service they provide followed by `Provider`.\n * For example, the {@link ng.$log $log} service has a provider called\n * {@link ng.$logProvider $logProvider}.\n *\n * Service provider objects can have additional methods which allow configuration of the provider\n * and its service. Importantly, you can configure what kind of service is created by the `$get`\n * method, or how that service will act. For example, the {@link ng.$logProvider $logProvider} has a\n * method {@link ng.$logProvider#debugEnabled debugEnabled}\n * which lets you specify whether the {@link ng.$log $log} service will log debug messages to the\n * console or not.\n *\n * @param {string} name The name of the instance. NOTE: the provider will be available under `name +\n 'Provider'` key.\n * @param {(Object|function())} provider If the provider is:\n *\n * - `Object`: then it should have a `$get` method. The `$get` method will be invoked using\n * {@link auto.$injector#invoke $injector.invoke()} when an instance needs to be created.\n * - `Constructor`: a new instance of the provider will be created using\n * {@link auto.$injector#instantiate $injector.instantiate()}, then treated as `object`.\n *\n * @returns {Object} registered provider instance\n\n * @example\n *\n * The following example shows how to create a simple event tracking service and register it using\n * {@link auto.$provide#provider $provide.provider()}.\n *\n * ```js\n * // Define the eventTracker provider\n * function EventTrackerProvider() {\n * var trackingUrl = '/track';\n *\n * // A provider method for configuring where the tracked events should been saved\n * this.setTrackingUrl = function(url) {\n * trackingUrl = url;\n * };\n *\n * // The service factory function\n * this.$get = ['$http', function($http) {\n * var trackedEvents = {};\n * return {\n * // Call this to track an event\n * event: function(event) {\n * var count = trackedEvents[event] || 0;\n * count += 1;\n * trackedEvents[event] = count;\n * return count;\n * },\n * // Call this to save the tracked events to the trackingUrl\n * save: function() {\n * $http.post(trackingUrl, trackedEvents);\n * }\n * };\n * }];\n * }\n *\n * describe('eventTracker', function() {\n * var postSpy;\n *\n * beforeEach(module(function($provide) {\n * // Register the eventTracker provider\n * $provide.provider('eventTracker', EventTrackerProvider);\n * }));\n *\n * beforeEach(module(function(eventTrackerProvider) {\n * // Configure eventTracker provider\n * eventTrackerProvider.setTrackingUrl('/custom-track');\n * }));\n *\n * it('tracks events', inject(function(eventTracker) {\n * expect(eventTracker.event('login')).toEqual(1);\n * expect(eventTracker.event('login')).toEqual(2);\n * }));\n *\n * it('saves to the tracking url', inject(function(eventTracker, $http) {\n * postSpy = spyOn($http, 'post');\n * eventTracker.event('login');\n * eventTracker.save();\n * expect(postSpy).toHaveBeenCalled();\n * expect(postSpy.mostRecentCall.args[0]).not.toEqual('/track');\n * expect(postSpy.mostRecentCall.args[0]).toEqual('/custom-track');\n * expect(postSpy.mostRecentCall.args[1]).toEqual({ 'login': 1 });\n * }));\n * });\n * ```\n */\n\n/**\n * @ngdoc method\n * @name $provide#factory\n * @description\n *\n * Register a **service factory**, which will be called to return the service instance.\n * This is short for registering a service where its provider consists of only a `$get` property,\n * which is the given service factory function.\n * You should use {@link auto.$provide#factory $provide.factory(getFn)} if you do not need to\n * configure your service in a provider.\n *\n * @param {string} name The name of the instance.\n * @param {Function|Array.} $getFn The injectable $getFn for the instance creation.\n * Internally this is a short hand for `$provide.provider(name, {$get: $getFn})`.\n * @returns {Object} registered provider instance\n *\n * @example\n * Here is an example of registering a service\n * ```js\n * $provide.factory('ping', ['$http', function($http) {\n * return function ping() {\n * return $http.send('/ping');\n * };\n * }]);\n * ```\n * You would then inject and use this service like this:\n * ```js\n * someModule.controller('Ctrl', ['ping', function(ping) {\n * ping();\n * }]);\n * ```\n */\n\n\n/**\n * @ngdoc method\n * @name $provide#service\n * @description\n *\n * Register a **service constructor**, which will be invoked with `new` to create the service\n * instance.\n * This is short for registering a service where its provider's `$get` property is a factory\n * function that returns an instance instantiated by the injector from the service constructor\n * function.\n *\n * Internally it looks a bit like this:\n *\n * ```\n * {\n * $get: function() {\n * return $injector.instantiate(constructor);\n * }\n * }\n * ```\n *\n *\n * You should use {@link auto.$provide#service $provide.service(class)} if you define your service\n * as a type/class.\n *\n * @param {string} name The name of the instance.\n * @param {Function|Array.} constructor An injectable class (constructor function)\n * that will be instantiated.\n * @returns {Object} registered provider instance\n *\n * @example\n * Here is an example of registering a service using\n * {@link auto.$provide#service $provide.service(class)}.\n * ```js\n * var Ping = function($http) {\n * this.$http = $http;\n * };\n *\n * Ping.$inject = ['$http'];\n *\n * Ping.prototype.send = function() {\n * return this.$http.get('/ping');\n * };\n * $provide.service('ping', Ping);\n * ```\n * You would then inject and use this service like this:\n * ```js\n * someModule.controller('Ctrl', ['ping', function(ping) {\n * ping.send();\n * }]);\n * ```\n */\n\n\n/**\n * @ngdoc method\n * @name $provide#value\n * @description\n *\n * Register a **value service** with the {@link auto.$injector $injector}, such as a string, a\n * number, an array, an object or a function. This is short for registering a service where its\n * provider's `$get` property is a factory function that takes no arguments and returns the **value\n * service**. That also means it is not possible to inject other services into a value service.\n *\n * Value services are similar to constant services, except that they cannot be injected into a\n * module configuration function (see {@link angular.Module#config}) but they can be overridden by\n * an Angular {@link auto.$provide#decorator decorator}.\n *\n * @param {string} name The name of the instance.\n * @param {*} value The value.\n * @returns {Object} registered provider instance\n *\n * @example\n * Here are some examples of creating value services.\n * ```js\n * $provide.value('ADMIN_USER', 'admin');\n *\n * $provide.value('RoleLookup', { admin: 0, writer: 1, reader: 2 });\n *\n * $provide.value('halfOf', function(value) {\n * return value / 2;\n * });\n * ```\n */\n\n\n/**\n * @ngdoc method\n * @name $provide#constant\n * @description\n *\n * Register a **constant service** with the {@link auto.$injector $injector}, such as a string,\n * a number, an array, an object or a function. Like the {@link auto.$provide#value value}, it is not\n * possible to inject other services into a constant.\n *\n * But unlike {@link auto.$provide#value value}, a constant can be\n * injected into a module configuration function (see {@link angular.Module#config}) and it cannot\n * be overridden by an Angular {@link auto.$provide#decorator decorator}.\n *\n * @param {string} name The name of the constant.\n * @param {*} value The constant value.\n * @returns {Object} registered instance\n *\n * @example\n * Here a some examples of creating constants:\n * ```js\n * $provide.constant('SHARD_HEIGHT', 306);\n *\n * $provide.constant('MY_COLOURS', ['red', 'blue', 'grey']);\n *\n * $provide.constant('double', function(value) {\n * return value * 2;\n * });\n * ```\n */\n\n\n/**\n * @ngdoc method\n * @name $provide#decorator\n * @description\n *\n * Register a **decorator function** with the {@link auto.$injector $injector}. A decorator function\n * intercepts the creation of a service, allowing it to override or modify the behavior of the\n * service. The return value of the decorator function may be the original service, or a new service\n * that replaces (or wraps and delegates to) the original service.\n *\n * You can find out more about using decorators in the {@link guide/decorators} guide.\n *\n * @param {string} name The name of the service to decorate.\n * @param {Function|Array.} decorator This function will be invoked when the service needs to be\n * provided and should return the decorated service instance. The function is called using\n * the {@link auto.$injector#invoke injector.invoke} method and is therefore fully injectable.\n * Local injection arguments:\n *\n * * `$delegate` - The original service instance, which can be replaced, monkey patched, configured,\n * decorated or delegated to.\n *\n * @example\n * Here we decorate the {@link ng.$log $log} service to convert warnings to errors by intercepting\n * calls to {@link ng.$log#error $log.warn()}.\n * ```js\n * $provide.decorator('$log', ['$delegate', function($delegate) {\n * $delegate.warn = $delegate.error;\n * return $delegate;\n * }]);\n * ```\n */\n\n\nfunction createInjector(modulesToLoad, strictDi) {\n strictDi = (strictDi === true);\n var INSTANTIATING = {},\n providerSuffix = 'Provider',\n path = [],\n loadedModules = new HashMap([], true),\n providerCache = {\n $provide: {\n provider: supportObject(provider),\n factory: supportObject(factory),\n service: supportObject(service),\n value: supportObject(value),\n constant: supportObject(constant),\n decorator: decorator\n }\n },\n providerInjector = (providerCache.$injector =\n createInternalInjector(providerCache, function(serviceName, caller) {\n if (angular.isString(caller)) {\n path.push(caller);\n }\n throw $injectorMinErr('unpr', \"Unknown provider: {0}\", path.join(' <- '));\n })),\n instanceCache = {},\n protoInstanceInjector =\n createInternalInjector(instanceCache, function(serviceName, caller) {\n var provider = providerInjector.get(serviceName + providerSuffix, caller);\n return instanceInjector.invoke(\n provider.$get, provider, undefined, serviceName);\n }),\n instanceInjector = protoInstanceInjector;\n\n providerCache['$injector' + providerSuffix] = { $get: valueFn(protoInstanceInjector) };\n var runBlocks = loadModules(modulesToLoad);\n instanceInjector = protoInstanceInjector.get('$injector');\n instanceInjector.strictDi = strictDi;\n forEach(runBlocks, function(fn) { if (fn) instanceInjector.invoke(fn); });\n\n return instanceInjector;\n\n ////////////////////////////////////\n // $provider\n ////////////////////////////////////\n\n function supportObject(delegate) {\n return function(key, value) {\n if (isObject(key)) {\n forEach(key, reverseParams(delegate));\n } else {\n return delegate(key, value);\n }\n };\n }\n\n function provider(name, provider_) {\n assertNotHasOwnProperty(name, 'service');\n if (isFunction(provider_) || isArray(provider_)) {\n provider_ = providerInjector.instantiate(provider_);\n }\n if (!provider_.$get) {\n throw $injectorMinErr('pget', \"Provider '{0}' must define $get factory method.\", name);\n }\n return providerCache[name + providerSuffix] = provider_;\n }\n\n function enforceReturnValue(name, factory) {\n return function enforcedReturnValue() {\n var result = instanceInjector.invoke(factory, this);\n if (isUndefined(result)) {\n throw $injectorMinErr('undef', \"Provider '{0}' must return a value from $get factory method.\", name);\n }\n return result;\n };\n }\n\n function factory(name, factoryFn, enforce) {\n return provider(name, {\n $get: enforce !== false ? enforceReturnValue(name, factoryFn) : factoryFn\n });\n }\n\n function service(name, constructor) {\n return factory(name, ['$injector', function($injector) {\n return $injector.instantiate(constructor);\n }]);\n }\n\n function value(name, val) { return factory(name, valueFn(val), false); }\n\n function constant(name, value) {\n assertNotHasOwnProperty(name, 'constant');\n providerCache[name] = value;\n instanceCache[name] = value;\n }\n\n function decorator(serviceName, decorFn) {\n var origProvider = providerInjector.get(serviceName + providerSuffix),\n orig$get = origProvider.$get;\n\n origProvider.$get = function() {\n var origInstance = instanceInjector.invoke(orig$get, origProvider);\n return instanceInjector.invoke(decorFn, null, {$delegate: origInstance});\n };\n }\n\n ////////////////////////////////////\n // Module Loading\n ////////////////////////////////////\n function loadModules(modulesToLoad) {\n assertArg(isUndefined(modulesToLoad) || isArray(modulesToLoad), 'modulesToLoad', 'not an array');\n var runBlocks = [], moduleFn;\n forEach(modulesToLoad, function(module) {\n if (loadedModules.get(module)) return;\n loadedModules.put(module, true);\n\n function runInvokeQueue(queue) {\n var i, ii;\n for (i = 0, ii = queue.length; i < ii; i++) {\n var invokeArgs = queue[i],\n provider = providerInjector.get(invokeArgs[0]);\n\n provider[invokeArgs[1]].apply(provider, invokeArgs[2]);\n }\n }\n\n try {\n if (isString(module)) {\n moduleFn = angularModule(module);\n runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);\n runInvokeQueue(moduleFn._invokeQueue);\n runInvokeQueue(moduleFn._configBlocks);\n } else if (isFunction(module)) {\n runBlocks.push(providerInjector.invoke(module));\n } else if (isArray(module)) {\n runBlocks.push(providerInjector.invoke(module));\n } else {\n assertArgFn(module, 'module');\n }\n } catch (e) {\n if (isArray(module)) {\n module = module[module.length - 1];\n }\n if (e.message && e.stack && e.stack.indexOf(e.message) == -1) {\n // Safari & FF's stack traces don't contain error.message content\n // unlike those of Chrome and IE\n // So if stack doesn't contain message, we create a new string that contains both.\n // Since error.stack is read-only in Safari, I'm overriding e and not e.stack here.\n /* jshint -W022 */\n e = e.message + '\\n' + e.stack;\n }\n throw $injectorMinErr('modulerr', \"Failed to instantiate module {0} due to:\\n{1}\",\n module, e.stack || e.message || e);\n }\n });\n return runBlocks;\n }\n\n ////////////////////////////////////\n // internal Injector\n ////////////////////////////////////\n\n function createInternalInjector(cache, factory) {\n\n function getService(serviceName, caller) {\n if (cache.hasOwnProperty(serviceName)) {\n if (cache[serviceName] === INSTANTIATING) {\n throw $injectorMinErr('cdep', 'Circular dependency found: {0}',\n serviceName + ' <- ' + path.join(' <- '));\n }\n return cache[serviceName];\n } else {\n try {\n path.unshift(serviceName);\n cache[serviceName] = INSTANTIATING;\n return cache[serviceName] = factory(serviceName, caller);\n } catch (err) {\n if (cache[serviceName] === INSTANTIATING) {\n delete cache[serviceName];\n }\n throw err;\n } finally {\n path.shift();\n }\n }\n }\n\n\n function injectionArgs(fn, locals, serviceName) {\n var args = [],\n $inject = createInjector.$$annotate(fn, strictDi, serviceName);\n\n for (var i = 0, length = $inject.length; i < length; i++) {\n var key = $inject[i];\n if (typeof key !== 'string') {\n throw $injectorMinErr('itkn',\n 'Incorrect injection token! Expected service name as string, got {0}', key);\n }\n args.push(locals && locals.hasOwnProperty(key) ? locals[key] :\n getService(key, serviceName));\n }\n return args;\n }\n\n function isClass(func) {\n // IE 9-11 do not support classes and IE9 leaks with the code below.\n if (msie <= 11) {\n return false;\n }\n // Support: Edge 12-13 only\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6156135/\n return typeof func === 'function'\n && /^(?:class\\b|constructor\\()/.test(stringifyFn(func));\n }\n\n function invoke(fn, self, locals, serviceName) {\n if (typeof locals === 'string') {\n serviceName = locals;\n locals = null;\n }\n\n var args = injectionArgs(fn, locals, serviceName);\n if (isArray(fn)) {\n fn = fn[fn.length - 1];\n }\n\n if (!isClass(fn)) {\n // http://jsperf.com/angularjs-invoke-apply-vs-switch\n // #5388\n return fn.apply(self, args);\n } else {\n args.unshift(null);\n return new (Function.prototype.bind.apply(fn, args))();\n }\n }\n\n\n function instantiate(Type, locals, serviceName) {\n // Check if Type is annotated and use just the given function at n-1 as parameter\n // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]);\n var ctor = (isArray(Type) ? Type[Type.length - 1] : Type);\n var args = injectionArgs(Type, locals, serviceName);\n // Empty object at position 0 is ignored for invocation with `new`, but required.\n args.unshift(null);\n return new (Function.prototype.bind.apply(ctor, args))();\n }\n\n\n return {\n invoke: invoke,\n instantiate: instantiate,\n get: getService,\n annotate: createInjector.$$annotate,\n has: function(name) {\n return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);\n }\n };\n }\n}\n\ncreateInjector.$$annotate = annotate;\n\n/**\n * @ngdoc provider\n * @name $anchorScrollProvider\n *\n * @description\n * Use `$anchorScrollProvider` to disable automatic scrolling whenever\n * {@link ng.$location#hash $location.hash()} changes.\n */\nfunction $AnchorScrollProvider() {\n\n var autoScrollingEnabled = true;\n\n /**\n * @ngdoc method\n * @name $anchorScrollProvider#disableAutoScrolling\n *\n * @description\n * By default, {@link ng.$anchorScroll $anchorScroll()} will automatically detect changes to\n * {@link ng.$location#hash $location.hash()} and scroll to the element matching the new hash. \n * Use this method to disable automatic scrolling.\n *\n * If automatic scrolling is disabled, one must explicitly call\n * {@link ng.$anchorScroll $anchorScroll()} in order to scroll to the element related to the\n * current hash.\n */\n this.disableAutoScrolling = function() {\n autoScrollingEnabled = false;\n };\n\n /**\n * @ngdoc service\n * @name $anchorScroll\n * @kind function\n * @requires $window\n * @requires $location\n * @requires $rootScope\n *\n * @description\n * When called, it scrolls to the element related to the specified `hash` or (if omitted) to the\n * current value of {@link ng.$location#hash $location.hash()}, according to the rules specified\n * in the\n * [HTML5 spec](http://www.w3.org/html/wg/drafts/html/master/browsers.html#an-indicated-part-of-the-document).\n *\n * It also watches the {@link ng.$location#hash $location.hash()} and automatically scrolls to\n * match any anchor whenever it changes. This can be disabled by calling\n * {@link ng.$anchorScrollProvider#disableAutoScrolling $anchorScrollProvider.disableAutoScrolling()}.\n *\n * Additionally, you can use its {@link ng.$anchorScroll#yOffset yOffset} property to specify a\n * vertical scroll-offset (either fixed or dynamic).\n *\n * @param {string=} hash The hash specifying the element to scroll to. If omitted, the value of\n * {@link ng.$location#hash $location.hash()} will be used.\n *\n * @property {(number|function|jqLite)} yOffset\n * If set, specifies a vertical scroll-offset. This is often useful when there are fixed\n * positioned elements at the top of the page, such as navbars, headers etc.\n *\n * `yOffset` can be specified in various ways:\n * - **number**: A fixed number of pixels to be used as offset.
\n * - **function**: A getter function called everytime `$anchorScroll()` is executed. Must return\n * a number representing the offset (in pixels).
\n * - **jqLite**: A jqLite/jQuery element to be used for specifying the offset. The distance from\n * the top of the page to the element's bottom will be used as offset. \n * **Note**: The element will be taken into account only as long as its `position` is set to\n * `fixed`. This option is useful, when dealing with responsive navbars/headers that adjust\n * their height and/or positioning according to the viewport's size.\n *\n * \n *
\n * In order for `yOffset` to work properly, scrolling should take place on the document's root and\n * not some child element.\n *
\n \n \n angular.module('anchorScrollExample', [])\n .controller('ScrollController', ['$scope', '$location', '$anchorScroll',\n function ($scope, $location, $anchorScroll) {\n $scope.gotoBottom = function() {\n // set the location.hash to the id of\n // the element you wish to scroll to.\n $location.hash('bottom');\n\n // call $anchorScroll()\n $anchorScroll();\n };\n }]);\n \n \n #scrollArea {\n height: 280px;\n overflow: auto;\n }\n\n #bottom {\n display: block;\n margin-top: 2000px;\n }\n \n \n *\n * \n * The example below illustrates the use of a vertical scroll-offset (specified as a fixed value).\n * See {@link ng.$anchorScroll#yOffset $anchorScroll.yOffset} for more details.\n *\n * @example\n \n \n
\n \n \n angular.module('anchorScrollOffsetExample', [])\n .run(['$anchorScroll', function($anchorScroll) {\n $anchorScroll.yOffset = 50; // always scroll by 50 extra pixels\n }])\n .controller('headerCtrl', ['$anchorScroll', '$location', '$scope',\n function ($anchorScroll, $location, $scope) {\n $scope.gotoAnchor = function(x) {\n var newHash = 'anchor' + x;\n if ($location.hash() !== newHash) {\n // set the $location.hash to `newHash` and\n // $anchorScroll will automatically scroll to it\n $location.hash('anchor' + x);\n } else {\n // call $anchorScroll() explicitly,\n // since $location.hash hasn't changed\n $anchorScroll();\n }\n };\n }\n ]);\n \n \n body {\n padding-top: 50px;\n }\n\n .anchor {\n border: 2px dashed DarkOrchid;\n padding: 10px 10px 200px 10px;\n }\n\n .fixed-header {\n background-color: rgba(0, 0, 0, 0.2);\n height: 50px;\n position: fixed;\n top: 0; left: 0; right: 0;\n }\n\n .fixed-header > a {\n display: inline-block;\n margin: 5px 15px;\n }\n \n \n */\n this.$get = ['$window', '$location', '$rootScope', function($window, $location, $rootScope) {\n var document = $window.document;\n\n // Helper function to get first anchor from a NodeList\n // (using `Array#some()` instead of `angular#forEach()` since it's more performant\n // and working in all supported browsers.)\n function getFirstAnchor(list) {\n var result = null;\n Array.prototype.some.call(list, function(element) {\n if (nodeName_(element) === 'a') {\n result = element;\n return true;\n }\n });\n return result;\n }\n\n function getYOffset() {\n\n var offset = scroll.yOffset;\n\n if (isFunction(offset)) {\n offset = offset();\n } else if (isElement(offset)) {\n var elem = offset[0];\n var style = $window.getComputedStyle(elem);\n if (style.position !== 'fixed') {\n offset = 0;\n } else {\n offset = elem.getBoundingClientRect().bottom;\n }\n } else if (!isNumber(offset)) {\n offset = 0;\n }\n\n return offset;\n }\n\n function scrollTo(elem) {\n if (elem) {\n elem.scrollIntoView();\n\n var offset = getYOffset();\n\n if (offset) {\n // `offset` is the number of pixels we should scroll UP in order to align `elem` properly.\n // This is true ONLY if the call to `elem.scrollIntoView()` initially aligns `elem` at the\n // top of the viewport.\n //\n // IF the number of pixels from the top of `elem` to the end of the page's content is less\n // than the height of the viewport, then `elem.scrollIntoView()` will align the `elem` some\n // way down the page.\n //\n // This is often the case for elements near the bottom of the page.\n //\n // In such cases we do not need to scroll the whole `offset` up, just the difference between\n // the top of the element and the offset, which is enough to align the top of `elem` at the\n // desired position.\n var elemTop = elem.getBoundingClientRect().top;\n $window.scrollBy(0, elemTop - offset);\n }\n } else {\n $window.scrollTo(0, 0);\n }\n }\n\n function scroll(hash) {\n hash = isString(hash) ? hash : $location.hash();\n var elm;\n\n // empty hash, scroll to the top of the page\n if (!hash) scrollTo(null);\n\n // element with given id\n else if ((elm = document.getElementById(hash))) scrollTo(elm);\n\n // first anchor with given name :-D\n else if ((elm = getFirstAnchor(document.getElementsByName(hash)))) scrollTo(elm);\n\n // no element and hash == 'top', scroll to the top of the page\n else if (hash === 'top') scrollTo(null);\n }\n\n // does not scroll when user clicks on anchor link that is currently on\n // (no url change, no $location.hash() change), browser native does scroll\n if (autoScrollingEnabled) {\n $rootScope.$watch(function autoScrollWatch() {return $location.hash();},\n function autoScrollWatchAction(newVal, oldVal) {\n // skip the initial scroll if $location.hash is empty\n if (newVal === oldVal && newVal === '') return;\n\n jqLiteDocumentLoaded(function() {\n $rootScope.$evalAsync(scroll);\n });\n });\n }\n\n return scroll;\n }];\n}\n\nvar $animateMinErr = minErr('$animate');\nvar ELEMENT_NODE = 1;\nvar NG_ANIMATE_CLASSNAME = 'ng-animate';\n\nfunction mergeClasses(a,b) {\n if (!a && !b) return '';\n if (!a) return b;\n if (!b) return a;\n if (isArray(a)) a = a.join(' ');\n if (isArray(b)) b = b.join(' ');\n return a + ' ' + b;\n}\n\nfunction extractElementNode(element) {\n for (var i = 0; i < element.length; i++) {\n var elm = element[i];\n if (elm.nodeType === ELEMENT_NODE) {\n return elm;\n }\n }\n}\n\nfunction splitClasses(classes) {\n if (isString(classes)) {\n classes = classes.split(' ');\n }\n\n // Use createMap() to prevent class assumptions involving property names in\n // Object.prototype\n var obj = createMap();\n forEach(classes, function(klass) {\n // sometimes the split leaves empty string values\n // incase extra spaces were applied to the options\n if (klass.length) {\n obj[klass] = true;\n }\n });\n return obj;\n}\n\n// if any other type of options value besides an Object value is\n// passed into the $animate.method() animation then this helper code\n// will be run which will ignore it. While this patch is not the\n// greatest solution to this, a lot of existing plugins depend on\n// $animate to either call the callback (< 1.2) or return a promise\n// that can be changed. This helper function ensures that the options\n// are wiped clean incase a callback function is provided.\nfunction prepareAnimateOptions(options) {\n return isObject(options)\n ? options\n : {};\n}\n\nvar $$CoreAnimateJsProvider = function() {\n this.$get = noop;\n};\n\n// this is prefixed with Core since it conflicts with\n// the animateQueueProvider defined in ngAnimate/animateQueue.js\nvar $$CoreAnimateQueueProvider = function() {\n var postDigestQueue = new HashMap();\n var postDigestElements = [];\n\n this.$get = ['$$AnimateRunner', '$rootScope',\n function($$AnimateRunner, $rootScope) {\n return {\n enabled: noop,\n on: noop,\n off: noop,\n pin: noop,\n\n push: function(element, event, options, domOperation) {\n domOperation && domOperation();\n\n options = options || {};\n options.from && element.css(options.from);\n options.to && element.css(options.to);\n\n if (options.addClass || options.removeClass) {\n addRemoveClassesPostDigest(element, options.addClass, options.removeClass);\n }\n\n var runner = new $$AnimateRunner(); // jshint ignore:line\n\n // since there are no animations to run the runner needs to be\n // notified that the animation call is complete.\n runner.complete();\n return runner;\n }\n };\n\n\n function updateData(data, classes, value) {\n var changed = false;\n if (classes) {\n classes = isString(classes) ? classes.split(' ') :\n isArray(classes) ? classes : [];\n forEach(classes, function(className) {\n if (className) {\n changed = true;\n data[className] = value;\n }\n });\n }\n return changed;\n }\n\n function handleCSSClassChanges() {\n forEach(postDigestElements, function(element) {\n var data = postDigestQueue.get(element);\n if (data) {\n var existing = splitClasses(element.attr('class'));\n var toAdd = '';\n var toRemove = '';\n forEach(data, function(status, className) {\n var hasClass = !!existing[className];\n if (status !== hasClass) {\n if (status) {\n toAdd += (toAdd.length ? ' ' : '') + className;\n } else {\n toRemove += (toRemove.length ? ' ' : '') + className;\n }\n }\n });\n\n forEach(element, function(elm) {\n toAdd && jqLiteAddClass(elm, toAdd);\n toRemove && jqLiteRemoveClass(elm, toRemove);\n });\n postDigestQueue.remove(element);\n }\n });\n postDigestElements.length = 0;\n }\n\n\n function addRemoveClassesPostDigest(element, add, remove) {\n var data = postDigestQueue.get(element) || {};\n\n var classesAdded = updateData(data, add, true);\n var classesRemoved = updateData(data, remove, false);\n\n if (classesAdded || classesRemoved) {\n\n postDigestQueue.put(element, data);\n postDigestElements.push(element);\n\n if (postDigestElements.length === 1) {\n $rootScope.$$postDigest(handleCSSClassChanges);\n }\n }\n }\n }];\n};\n\n/**\n * @ngdoc provider\n * @name $animateProvider\n *\n * @description\n * Default implementation of $animate that doesn't perform any animations, instead just\n * synchronously performs DOM updates and resolves the returned runner promise.\n *\n * In order to enable animations the `ngAnimate` module has to be loaded.\n *\n * To see the functional implementation check out `src/ngAnimate/animate.js`.\n */\nvar $AnimateProvider = ['$provide', function($provide) {\n var provider = this;\n\n this.$$registeredAnimations = Object.create(null);\n\n /**\n * @ngdoc method\n * @name $animateProvider#register\n *\n * @description\n * Registers a new injectable animation factory function. The factory function produces the\n * animation object which contains callback functions for each event that is expected to be\n * animated.\n *\n * * `eventFn`: `function(element, ... , doneFunction, options)`\n * The element to animate, the `doneFunction` and the options fed into the animation. Depending\n * on the type of animation additional arguments will be injected into the animation function. The\n * list below explains the function signatures for the different animation methods:\n *\n * - setClass: function(element, addedClasses, removedClasses, doneFunction, options)\n * - addClass: function(element, addedClasses, doneFunction, options)\n * - removeClass: function(element, removedClasses, doneFunction, options)\n * - enter, leave, move: function(element, doneFunction, options)\n * - animate: function(element, fromStyles, toStyles, doneFunction, options)\n *\n * Make sure to trigger the `doneFunction` once the animation is fully complete.\n *\n * ```js\n * return {\n * //enter, leave, move signature\n * eventFn : function(element, done, options) {\n * //code to run the animation\n * //once complete, then run done()\n * return function endFunction(wasCancelled) {\n * //code to cancel the animation\n * }\n * }\n * }\n * ```\n *\n * @param {string} name The name of the animation (this is what the class-based CSS value will be compared to).\n * @param {Function} factory The factory function that will be executed to return the animation\n * object.\n */\n this.register = function(name, factory) {\n if (name && name.charAt(0) !== '.') {\n throw $animateMinErr('notcsel', \"Expecting class selector starting with '.' got '{0}'.\", name);\n }\n\n var key = name + '-animation';\n provider.$$registeredAnimations[name.substr(1)] = key;\n $provide.factory(key, factory);\n };\n\n /**\n * @ngdoc method\n * @name $animateProvider#classNameFilter\n *\n * @description\n * Sets and/or returns the CSS class regular expression that is checked when performing\n * an animation. Upon bootstrap the classNameFilter value is not set at all and will\n * therefore enable $animate to attempt to perform an animation on any element that is triggered.\n * When setting the `classNameFilter` value, animations will only be performed on elements\n * that successfully match the filter expression. This in turn can boost performance\n * for low-powered devices as well as applications containing a lot of structural operations.\n * @param {RegExp=} expression The className expression which will be checked against all animations\n * @return {RegExp} The current CSS className expression value. If null then there is no expression value\n */\n this.classNameFilter = function(expression) {\n if (arguments.length === 1) {\n this.$$classNameFilter = (expression instanceof RegExp) ? expression : null;\n if (this.$$classNameFilter) {\n var reservedRegex = new RegExp(\"(\\\\s+|\\\\/)\" + NG_ANIMATE_CLASSNAME + \"(\\\\s+|\\\\/)\");\n if (reservedRegex.test(this.$$classNameFilter.toString())) {\n throw $animateMinErr('nongcls','$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the \"{0}\" CSS class.', NG_ANIMATE_CLASSNAME);\n\n }\n }\n }\n return this.$$classNameFilter;\n };\n\n this.$get = ['$$animateQueue', function($$animateQueue) {\n function domInsert(element, parentElement, afterElement) {\n // if for some reason the previous element was removed\n // from the dom sometime before this code runs then let's\n // just stick to using the parent element as the anchor\n if (afterElement) {\n var afterNode = extractElementNode(afterElement);\n if (afterNode && !afterNode.parentNode && !afterNode.previousElementSibling) {\n afterElement = null;\n }\n }\n afterElement ? afterElement.after(element) : parentElement.prepend(element);\n }\n\n /**\n * @ngdoc service\n * @name $animate\n * @description The $animate service exposes a series of DOM utility methods that provide support\n * for animation hooks. The default behavior is the application of DOM operations, however,\n * when an animation is detected (and animations are enabled), $animate will do the heavy lifting\n * to ensure that animation runs with the triggered DOM operation.\n *\n * By default $animate doesn't trigger any animations. This is because the `ngAnimate` module isn't\n * included and only when it is active then the animation hooks that `$animate` triggers will be\n * functional. Once active then all structural `ng-` directives will trigger animations as they perform\n * their DOM-related operations (enter, leave and move). Other directives such as `ngClass`,\n * `ngShow`, `ngHide` and `ngMessages` also provide support for animations.\n *\n * It is recommended that the`$animate` service is always used when executing DOM-related procedures within directives.\n *\n * To learn more about enabling animation support, click here to visit the\n * {@link ngAnimate ngAnimate module page}.\n */\n return {\n // we don't call it directly since non-existant arguments may\n // be interpreted as null within the sub enabled function\n\n /**\n *\n * @ngdoc method\n * @name $animate#on\n * @kind function\n * @description Sets up an event listener to fire whenever the animation event (enter, leave, move, etc...)\n * has fired on the given element or among any of its children. Once the listener is fired, the provided callback\n * is fired with the following params:\n *\n * ```js\n * $animate.on('enter', container,\n * function callback(element, phase) {\n * // cool we detected an enter animation within the container\n * }\n * );\n * ```\n *\n * @param {string} event the animation event that will be captured (e.g. enter, leave, move, addClass, removeClass, etc...)\n * @param {DOMElement} container the container element that will capture each of the animation events that are fired on itself\n * as well as among its children\n * @param {Function} callback the callback function that will be fired when the listener is triggered\n *\n * The arguments present in the callback function are:\n * * `element` - The captured DOM element that the animation was fired on.\n * * `phase` - The phase of the animation. The two possible phases are **start** (when the animation starts) and **close** (when it ends).\n */\n on: $$animateQueue.on,\n\n /**\n *\n * @ngdoc method\n * @name $animate#off\n * @kind function\n * @description Deregisters an event listener based on the event which has been associated with the provided element. This method\n * can be used in three different ways depending on the arguments:\n *\n * ```js\n * // remove all the animation event listeners listening for `enter`\n * $animate.off('enter');\n *\n * // remove listeners for all animation events from the container element\n * $animate.off(container);\n *\n * // remove all the animation event listeners listening for `enter` on the given element and its children\n * $animate.off('enter', container);\n *\n * // remove the event listener function provided by `callback` that is set\n * // to listen for `enter` on the given `container` as well as its children\n * $animate.off('enter', container, callback);\n * ```\n *\n * @param {string|DOMElement} event|container the animation event (e.g. enter, leave, move,\n * addClass, removeClass, etc...), or the container element. If it is the element, all other\n * arguments are ignored.\n * @param {DOMElement=} container the container element the event listener was placed on\n * @param {Function=} callback the callback function that was registered as the listener\n */\n off: $$animateQueue.off,\n\n /**\n * @ngdoc method\n * @name $animate#pin\n * @kind function\n * @description Associates the provided element with a host parent element to allow the element to be animated even if it exists\n * outside of the DOM structure of the Angular application. By doing so, any animation triggered via `$animate` can be issued on the\n * element despite being outside the realm of the application or within another application. Say for example if the application\n * was bootstrapped on an element that is somewhere inside of the `` tag, but we wanted to allow for an element to be situated\n * as a direct child of `document.body`, then this can be achieved by pinning the element via `$animate.pin(element)`. Keep in mind\n * that calling `$animate.pin(element, parentElement)` will not actually insert into the DOM anywhere; it will just create the association.\n *\n * Note that this feature is only active when the `ngAnimate` module is used.\n *\n * @param {DOMElement} element the external element that will be pinned\n * @param {DOMElement} parentElement the host parent element that will be associated with the external element\n */\n pin: $$animateQueue.pin,\n\n /**\n *\n * @ngdoc method\n * @name $animate#enabled\n * @kind function\n * @description Used to get and set whether animations are enabled or not on the entire application or on an element and its children. This\n * function can be called in four ways:\n *\n * ```js\n * // returns true or false\n * $animate.enabled();\n *\n * // changes the enabled state for all animations\n * $animate.enabled(false);\n * $animate.enabled(true);\n *\n * // returns true or false if animations are enabled for an element\n * $animate.enabled(element);\n *\n * // changes the enabled state for an element and its children\n * $animate.enabled(element, true);\n * $animate.enabled(element, false);\n * ```\n *\n * @param {DOMElement=} element the element that will be considered for checking/setting the enabled state\n * @param {boolean=} enabled whether or not the animations will be enabled for the element\n *\n * @return {boolean} whether or not animations are enabled\n */\n enabled: $$animateQueue.enabled,\n\n /**\n * @ngdoc method\n * @name $animate#cancel\n * @kind function\n * @description Cancels the provided animation.\n *\n * @param {Promise} animationPromise The animation promise that is returned when an animation is started.\n */\n cancel: function(runner) {\n runner.end && runner.end();\n },\n\n /**\n *\n * @ngdoc method\n * @name $animate#enter\n * @kind function\n * @description Inserts the element into the DOM either after the `after` element (if provided) or\n * as the first child within the `parent` element and then triggers an animation.\n * A promise is returned that will be resolved during the next digest once the animation\n * has completed.\n *\n * @param {DOMElement} element the element which will be inserted into the DOM\n * @param {DOMElement} parent the parent element which will append the element as\n * a child (so long as the after element is not present)\n * @param {DOMElement=} after the sibling element after which the element will be appended\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n enter: function(element, parent, after, options) {\n parent = parent && jqLite(parent);\n after = after && jqLite(after);\n parent = parent || after.parent();\n domInsert(element, parent, after);\n return $$animateQueue.push(element, 'enter', prepareAnimateOptions(options));\n },\n\n /**\n *\n * @ngdoc method\n * @name $animate#move\n * @kind function\n * @description Inserts (moves) the element into its new position in the DOM either after\n * the `after` element (if provided) or as the first child within the `parent` element\n * and then triggers an animation. A promise is returned that will be resolved\n * during the next digest once the animation has completed.\n *\n * @param {DOMElement} element the element which will be moved into the new DOM position\n * @param {DOMElement} parent the parent element which will append the element as\n * a child (so long as the after element is not present)\n * @param {DOMElement=} after the sibling element after which the element will be appended\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n move: function(element, parent, after, options) {\n parent = parent && jqLite(parent);\n after = after && jqLite(after);\n parent = parent || after.parent();\n domInsert(element, parent, after);\n return $$animateQueue.push(element, 'move', prepareAnimateOptions(options));\n },\n\n /**\n * @ngdoc method\n * @name $animate#leave\n * @kind function\n * @description Triggers an animation and then removes the element from the DOM.\n * When the function is called a promise is returned that will be resolved during the next\n * digest once the animation has completed.\n *\n * @param {DOMElement} element the element which will be removed from the DOM\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n leave: function(element, options) {\n return $$animateQueue.push(element, 'leave', prepareAnimateOptions(options), function() {\n element.remove();\n });\n },\n\n /**\n * @ngdoc method\n * @name $animate#addClass\n * @kind function\n *\n * @description Triggers an addClass animation surrounding the addition of the provided CSS class(es). Upon\n * execution, the addClass operation will only be handled after the next digest and it will not trigger an\n * animation if element already contains the CSS class or if the class is removed at a later step.\n * Note that class-based animations are treated differently compared to structural animations\n * (like enter, move and leave) since the CSS classes may be added/removed at different points\n * depending if CSS or JavaScript animations are used.\n *\n * @param {DOMElement} element the element which the CSS classes will be applied to\n * @param {string} className the CSS class(es) that will be added (multiple classes are separated via spaces)\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n addClass: function(element, className, options) {\n options = prepareAnimateOptions(options);\n options.addClass = mergeClasses(options.addclass, className);\n return $$animateQueue.push(element, 'addClass', options);\n },\n\n /**\n * @ngdoc method\n * @name $animate#removeClass\n * @kind function\n *\n * @description Triggers a removeClass animation surrounding the removal of the provided CSS class(es). Upon\n * execution, the removeClass operation will only be handled after the next digest and it will not trigger an\n * animation if element does not contain the CSS class or if the class is added at a later step.\n * Note that class-based animations are treated differently compared to structural animations\n * (like enter, move and leave) since the CSS classes may be added/removed at different points\n * depending if CSS or JavaScript animations are used.\n *\n * @param {DOMElement} element the element which the CSS classes will be applied to\n * @param {string} className the CSS class(es) that will be removed (multiple classes are separated via spaces)\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n removeClass: function(element, className, options) {\n options = prepareAnimateOptions(options);\n options.removeClass = mergeClasses(options.removeClass, className);\n return $$animateQueue.push(element, 'removeClass', options);\n },\n\n /**\n * @ngdoc method\n * @name $animate#setClass\n * @kind function\n *\n * @description Performs both the addition and removal of a CSS classes on an element and (during the process)\n * triggers an animation surrounding the class addition/removal. Much like `$animate.addClass` and\n * `$animate.removeClass`, `setClass` will only evaluate the classes being added/removed once a digest has\n * passed. Note that class-based animations are treated differently compared to structural animations\n * (like enter, move and leave) since the CSS classes may be added/removed at different points\n * depending if CSS or JavaScript animations are used.\n *\n * @param {DOMElement} element the element which the CSS classes will be applied to\n * @param {string} add the CSS class(es) that will be added (multiple classes are separated via spaces)\n * @param {string} remove the CSS class(es) that will be removed (multiple classes are separated via spaces)\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n setClass: function(element, add, remove, options) {\n options = prepareAnimateOptions(options);\n options.addClass = mergeClasses(options.addClass, add);\n options.removeClass = mergeClasses(options.removeClass, remove);\n return $$animateQueue.push(element, 'setClass', options);\n },\n\n /**\n * @ngdoc method\n * @name $animate#animate\n * @kind function\n *\n * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element.\n * If any detected CSS transition, keyframe or JavaScript matches the provided className value, then the animation will take\n * on the provided styles. For example, if a transition animation is set for the given classNamem, then the provided `from` and\n * `to` styles will be applied alongside the given transition. If the CSS style provided in `from` does not have a corresponding\n * style in `to`, the style in `from` is applied immediately, and no animation is run.\n * If a JavaScript animation is detected then the provided styles will be given in as function parameters into the `animate`\n * method (or as part of the `options` parameter):\n *\n * ```js\n * ngModule.animation('.my-inline-animation', function() {\n * return {\n * animate : function(element, from, to, done, options) {\n * //animation\n * done();\n * }\n * }\n * });\n * ```\n *\n * @param {DOMElement} element the element which the CSS styles will be applied to\n * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation.\n * @param {object} to the to (destination) CSS styles that will be applied to the element and across the animation.\n * @param {string=} className an optional CSS class that will be applied to the element for the duration of the animation. If\n * this value is left as empty then a CSS class of `ng-inline-animate` will be applied to the element.\n * (Note that if no animation is detected then this value will not be applied to the element.)\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n animate: function(element, from, to, className, options) {\n options = prepareAnimateOptions(options);\n options.from = options.from ? extend(options.from, from) : from;\n options.to = options.to ? extend(options.to, to) : to;\n\n className = className || 'ng-inline-animate';\n options.tempClasses = mergeClasses(options.tempClasses, className);\n return $$animateQueue.push(element, 'animate', options);\n }\n };\n }];\n}];\n\nvar $$AnimateAsyncRunFactoryProvider = function() {\n this.$get = ['$$rAF', function($$rAF) {\n var waitQueue = [];\n\n function waitForTick(fn) {\n waitQueue.push(fn);\n if (waitQueue.length > 1) return;\n $$rAF(function() {\n for (var i = 0; i < waitQueue.length; i++) {\n waitQueue[i]();\n }\n waitQueue = [];\n });\n }\n\n return function() {\n var passed = false;\n waitForTick(function() {\n passed = true;\n });\n return function(callback) {\n passed ? callback() : waitForTick(callback);\n };\n };\n }];\n};\n\nvar $$AnimateRunnerFactoryProvider = function() {\n this.$get = ['$q', '$sniffer', '$$animateAsyncRun', '$document', '$timeout',\n function($q, $sniffer, $$animateAsyncRun, $document, $timeout) {\n\n var INITIAL_STATE = 0;\n var DONE_PENDING_STATE = 1;\n var DONE_COMPLETE_STATE = 2;\n\n AnimateRunner.chain = function(chain, callback) {\n var index = 0;\n\n next();\n function next() {\n if (index === chain.length) {\n callback(true);\n return;\n }\n\n chain[index](function(response) {\n if (response === false) {\n callback(false);\n return;\n }\n index++;\n next();\n });\n }\n };\n\n AnimateRunner.all = function(runners, callback) {\n var count = 0;\n var status = true;\n forEach(runners, function(runner) {\n runner.done(onProgress);\n });\n\n function onProgress(response) {\n status = status && response;\n if (++count === runners.length) {\n callback(status);\n }\n }\n };\n\n function AnimateRunner(host) {\n this.setHost(host);\n\n var rafTick = $$animateAsyncRun();\n var timeoutTick = function(fn) {\n $timeout(fn, 0, false);\n };\n\n this._doneCallbacks = [];\n this._tick = function(fn) {\n var doc = $document[0];\n\n // the document may not be ready or attached\n // to the module for some internal tests\n if (doc && doc.hidden) {\n timeoutTick(fn);\n } else {\n rafTick(fn);\n }\n };\n this._state = 0;\n }\n\n AnimateRunner.prototype = {\n setHost: function(host) {\n this.host = host || {};\n },\n\n done: function(fn) {\n if (this._state === DONE_COMPLETE_STATE) {\n fn();\n } else {\n this._doneCallbacks.push(fn);\n }\n },\n\n progress: noop,\n\n getPromise: function() {\n if (!this.promise) {\n var self = this;\n this.promise = $q(function(resolve, reject) {\n self.done(function(status) {\n status === false ? reject() : resolve();\n });\n });\n }\n return this.promise;\n },\n\n then: function(resolveHandler, rejectHandler) {\n return this.getPromise().then(resolveHandler, rejectHandler);\n },\n\n 'catch': function(handler) {\n return this.getPromise()['catch'](handler);\n },\n\n 'finally': function(handler) {\n return this.getPromise()['finally'](handler);\n },\n\n pause: function() {\n if (this.host.pause) {\n this.host.pause();\n }\n },\n\n resume: function() {\n if (this.host.resume) {\n this.host.resume();\n }\n },\n\n end: function() {\n if (this.host.end) {\n this.host.end();\n }\n this._resolve(true);\n },\n\n cancel: function() {\n if (this.host.cancel) {\n this.host.cancel();\n }\n this._resolve(false);\n },\n\n complete: function(response) {\n var self = this;\n if (self._state === INITIAL_STATE) {\n self._state = DONE_PENDING_STATE;\n self._tick(function() {\n self._resolve(response);\n });\n }\n },\n\n _resolve: function(response) {\n if (this._state !== DONE_COMPLETE_STATE) {\n forEach(this._doneCallbacks, function(fn) {\n fn(response);\n });\n this._doneCallbacks.length = 0;\n this._state = DONE_COMPLETE_STATE;\n }\n }\n };\n\n return AnimateRunner;\n }];\n};\n\n/**\n * @ngdoc service\n * @name $animateCss\n * @kind object\n *\n * @description\n * This is the core version of `$animateCss`. By default, only when the `ngAnimate` is included,\n * then the `$animateCss` service will actually perform animations.\n *\n * Click here {@link ngAnimate.$animateCss to read the documentation for $animateCss}.\n */\nvar $CoreAnimateCssProvider = function() {\n this.$get = ['$$rAF', '$q', '$$AnimateRunner', function($$rAF, $q, $$AnimateRunner) {\n\n return function(element, initialOptions) {\n // all of the animation functions should create\n // a copy of the options data, however, if a\n // parent service has already created a copy then\n // we should stick to using that\n var options = initialOptions || {};\n if (!options.$$prepared) {\n options = copy(options);\n }\n\n // there is no point in applying the styles since\n // there is no animation that goes on at all in\n // this version of $animateCss.\n if (options.cleanupStyles) {\n options.from = options.to = null;\n }\n\n if (options.from) {\n element.css(options.from);\n options.from = null;\n }\n\n /* jshint newcap: false */\n var closed, runner = new $$AnimateRunner();\n return {\n start: run,\n end: run\n };\n\n function run() {\n $$rAF(function() {\n applyAnimationContents();\n if (!closed) {\n runner.complete();\n }\n closed = true;\n });\n return runner;\n }\n\n function applyAnimationContents() {\n if (options.addClass) {\n element.addClass(options.addClass);\n options.addClass = null;\n }\n if (options.removeClass) {\n element.removeClass(options.removeClass);\n options.removeClass = null;\n }\n if (options.to) {\n element.css(options.to);\n options.to = null;\n }\n }\n };\n }];\n};\n\n/* global stripHash: true */\n\n/**\n * ! This is a private undocumented service !\n *\n * @name $browser\n * @requires $log\n * @description\n * This object has two goals:\n *\n * - hide all the global state in the browser caused by the window object\n * - abstract away all the browser specific features and inconsistencies\n *\n * For tests we provide {@link ngMock.$browser mock implementation} of the `$browser`\n * service, which can be used for convenient testing of the application without the interaction with\n * the real browser apis.\n */\n/**\n * @param {object} window The global window object.\n * @param {object} document jQuery wrapped document.\n * @param {object} $log window.console or an object with the same interface.\n * @param {object} $sniffer $sniffer service\n */\nfunction Browser(window, document, $log, $sniffer) {\n var self = this,\n location = window.location,\n history = window.history,\n setTimeout = window.setTimeout,\n clearTimeout = window.clearTimeout,\n pendingDeferIds = {};\n\n self.isMock = false;\n\n var outstandingRequestCount = 0;\n var outstandingRequestCallbacks = [];\n\n // TODO(vojta): remove this temporary api\n self.$$completeOutstandingRequest = completeOutstandingRequest;\n self.$$incOutstandingRequestCount = function() { outstandingRequestCount++; };\n\n /**\n * Executes the `fn` function(supports currying) and decrements the `outstandingRequestCallbacks`\n * counter. If the counter reaches 0, all the `outstandingRequestCallbacks` are executed.\n */\n function completeOutstandingRequest(fn) {\n try {\n fn.apply(null, sliceArgs(arguments, 1));\n } finally {\n outstandingRequestCount--;\n if (outstandingRequestCount === 0) {\n while (outstandingRequestCallbacks.length) {\n try {\n outstandingRequestCallbacks.pop()();\n } catch (e) {\n $log.error(e);\n }\n }\n }\n }\n }\n\n function getHash(url) {\n var index = url.indexOf('#');\n return index === -1 ? '' : url.substr(index);\n }\n\n /**\n * @private\n * Note: this method is used only by scenario runner\n * TODO(vojta): prefix this method with $$ ?\n * @param {function()} callback Function that will be called when no outstanding request\n */\n self.notifyWhenNoOutstandingRequests = function(callback) {\n if (outstandingRequestCount === 0) {\n callback();\n } else {\n outstandingRequestCallbacks.push(callback);\n }\n };\n\n //////////////////////////////////////////////////////////////\n // URL API\n //////////////////////////////////////////////////////////////\n\n var cachedState, lastHistoryState,\n lastBrowserUrl = location.href,\n baseElement = document.find('base'),\n pendingLocation = null,\n getCurrentState = !$sniffer.history ? noop : function getCurrentState() {\n try {\n return history.state;\n } catch (e) {\n // MSIE can reportedly throw when there is no state (UNCONFIRMED).\n }\n };\n\n cacheState();\n lastHistoryState = cachedState;\n\n /**\n * @name $browser#url\n *\n * @description\n * GETTER:\n * Without any argument, this method just returns current value of location.href.\n *\n * SETTER:\n * With at least one argument, this method sets url to new value.\n * If html5 history api supported, pushState/replaceState is used, otherwise\n * location.href/location.replace is used.\n * Returns its own instance to allow chaining\n *\n * NOTE: this api is intended for use only by the $location service. Please use the\n * {@link ng.$location $location service} to change url.\n *\n * @param {string} url New url (when used as setter)\n * @param {boolean=} replace Should new url replace current history record?\n * @param {object=} state object to use with pushState/replaceState\n */\n self.url = function(url, replace, state) {\n // In modern browsers `history.state` is `null` by default; treating it separately\n // from `undefined` would cause `$browser.url('/foo')` to change `history.state`\n // to undefined via `pushState`. Instead, let's change `undefined` to `null` here.\n if (isUndefined(state)) {\n state = null;\n }\n\n // Android Browser BFCache causes location, history reference to become stale.\n if (location !== window.location) location = window.location;\n if (history !== window.history) history = window.history;\n\n // setter\n if (url) {\n var sameState = lastHistoryState === state;\n\n // Don't change anything if previous and current URLs and states match. This also prevents\n // IE<10 from getting into redirect loop when in LocationHashbangInHtml5Url mode.\n // See https://github.com/angular/angular.js/commit/ffb2701\n if (lastBrowserUrl === url && (!$sniffer.history || sameState)) {\n return self;\n }\n var sameBase = lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url);\n lastBrowserUrl = url;\n lastHistoryState = state;\n // Don't use history API if only the hash changed\n // due to a bug in IE10/IE11 which leads\n // to not firing a `hashchange` nor `popstate` event\n // in some cases (see #9143).\n if ($sniffer.history && (!sameBase || !sameState)) {\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\n cacheState();\n // Do the assignment again so that those two variables are referentially identical.\n lastHistoryState = cachedState;\n } else {\n if (!sameBase) {\n pendingLocation = url;\n }\n if (replace) {\n location.replace(url);\n } else if (!sameBase) {\n location.href = url;\n } else {\n location.hash = getHash(url);\n }\n if (location.href !== url) {\n pendingLocation = url;\n }\n }\n if (pendingLocation) {\n pendingLocation = url;\n }\n return self;\n // getter\n } else {\n // - pendingLocation is needed as browsers don't allow to read out\n // the new location.href if a reload happened or if there is a bug like in iOS 9 (see\n // https://openradar.appspot.com/22186109).\n // - the replacement is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=407172\n return pendingLocation || location.href.replace(/%27/g,\"'\");\n }\n };\n\n /**\n * @name $browser#state\n *\n * @description\n * This method is a getter.\n *\n * Return history.state or null if history.state is undefined.\n *\n * @returns {object} state\n */\n self.state = function() {\n return cachedState;\n };\n\n var urlChangeListeners = [],\n urlChangeInit = false;\n\n function cacheStateAndFireUrlChange() {\n pendingLocation = null;\n cacheState();\n fireUrlChange();\n }\n\n // This variable should be used *only* inside the cacheState function.\n var lastCachedState = null;\n function cacheState() {\n // This should be the only place in $browser where `history.state` is read.\n cachedState = getCurrentState();\n cachedState = isUndefined(cachedState) ? null : cachedState;\n\n // Prevent callbacks fo fire twice if both hashchange & popstate were fired.\n if (equals(cachedState, lastCachedState)) {\n cachedState = lastCachedState;\n }\n lastCachedState = cachedState;\n }\n\n function fireUrlChange() {\n if (lastBrowserUrl === self.url() && lastHistoryState === cachedState) {\n return;\n }\n\n lastBrowserUrl = self.url();\n lastHistoryState = cachedState;\n forEach(urlChangeListeners, function(listener) {\n listener(self.url(), cachedState);\n });\n }\n\n /**\n * @name $browser#onUrlChange\n *\n * @description\n * Register callback function that will be called, when url changes.\n *\n * It's only called when the url is changed from outside of angular:\n * - user types different url into address bar\n * - user clicks on history (forward/back) button\n * - user clicks on a link\n *\n * It's not called when url is changed by $browser.url() method\n *\n * The listener gets called with new url as parameter.\n *\n * NOTE: this api is intended for use only by the $location service. Please use the\n * {@link ng.$location $location service} to monitor url changes in angular apps.\n *\n * @param {function(string)} listener Listener function to be called when url changes.\n * @return {function(string)} Returns the registered listener fn - handy if the fn is anonymous.\n */\n self.onUrlChange = function(callback) {\n // TODO(vojta): refactor to use node's syntax for events\n if (!urlChangeInit) {\n // We listen on both (hashchange/popstate) when available, as some browsers (e.g. Opera)\n // don't fire popstate when user change the address bar and don't fire hashchange when url\n // changed by push/replaceState\n\n // html5 history api - popstate event\n if ($sniffer.history) jqLite(window).on('popstate', cacheStateAndFireUrlChange);\n // hashchange event\n jqLite(window).on('hashchange', cacheStateAndFireUrlChange);\n\n urlChangeInit = true;\n }\n\n urlChangeListeners.push(callback);\n return callback;\n };\n\n /**\n * @private\n * Remove popstate and hashchange handler from window.\n *\n * NOTE: this api is intended for use only by $rootScope.\n */\n self.$$applicationDestroyed = function() {\n jqLite(window).off('hashchange popstate', cacheStateAndFireUrlChange);\n };\n\n /**\n * Checks whether the url has changed outside of Angular.\n * Needs to be exported to be able to check for changes that have been done in sync,\n * as hashchange/popstate events fire in async.\n */\n self.$$checkUrlChange = fireUrlChange;\n\n //////////////////////////////////////////////////////////////\n // Misc API\n //////////////////////////////////////////////////////////////\n\n /**\n * @name $browser#baseHref\n *\n * @description\n * Returns current \n * (always relative - without domain)\n *\n * @returns {string} The current base href\n */\n self.baseHref = function() {\n var href = baseElement.attr('href');\n return href ? href.replace(/^(https?\\:)?\\/\\/[^\\/]*/, '') : '';\n };\n\n /**\n * @name $browser#defer\n * @param {function()} fn A function, who's execution should be deferred.\n * @param {number=} [delay=0] of milliseconds to defer the function execution.\n * @returns {*} DeferId that can be used to cancel the task via `$browser.defer.cancel()`.\n *\n * @description\n * Executes a fn asynchronously via `setTimeout(fn, delay)`.\n *\n * Unlike when calling `setTimeout` directly, in test this function is mocked and instead of using\n * `setTimeout` in tests, the fns are queued in an array, which can be programmatically flushed\n * via `$browser.defer.flush()`.\n *\n */\n self.defer = function(fn, delay) {\n var timeoutId;\n outstandingRequestCount++;\n timeoutId = setTimeout(function() {\n delete pendingDeferIds[timeoutId];\n completeOutstandingRequest(fn);\n }, delay || 0);\n pendingDeferIds[timeoutId] = true;\n return timeoutId;\n };\n\n\n /**\n * @name $browser#defer.cancel\n *\n * @description\n * Cancels a deferred task identified with `deferId`.\n *\n * @param {*} deferId Token returned by the `$browser.defer` function.\n * @returns {boolean} Returns `true` if the task hasn't executed yet and was successfully\n * canceled.\n */\n self.defer.cancel = function(deferId) {\n if (pendingDeferIds[deferId]) {\n delete pendingDeferIds[deferId];\n clearTimeout(deferId);\n completeOutstandingRequest(noop);\n return true;\n }\n return false;\n };\n\n}\n\nfunction $BrowserProvider() {\n this.$get = ['$window', '$log', '$sniffer', '$document',\n function($window, $log, $sniffer, $document) {\n return new Browser($window, $document, $log, $sniffer);\n }];\n}\n\n/**\n * @ngdoc service\n * @name $cacheFactory\n *\n * @description\n * Factory that constructs {@link $cacheFactory.Cache Cache} objects and gives access to\n * them.\n *\n * ```js\n *\n * var cache = $cacheFactory('cacheId');\n * expect($cacheFactory.get('cacheId')).toBe(cache);\n * expect($cacheFactory.get('noSuchCacheId')).not.toBeDefined();\n *\n * cache.put(\"key\", \"value\");\n * cache.put(\"another key\", \"another value\");\n *\n * // We've specified no options on creation\n * expect(cache.info()).toEqual({id: 'cacheId', size: 2});\n *\n * ```\n *\n *\n * @param {string} cacheId Name or id of the newly created cache.\n * @param {object=} options Options object that specifies the cache behavior. Properties:\n *\n * - `{number=}` `capacity` — turns the cache into LRU cache.\n *\n * @returns {object} Newly created cache object with the following set of methods:\n *\n * - `{object}` `info()` — Returns id, size, and options of cache.\n * - `{{*}}` `put({string} key, {*} value)` — Puts a new key-value pair into the cache and returns\n * it.\n * - `{{*}}` `get({string} key)` — Returns cached value for `key` or undefined for cache miss.\n * - `{void}` `remove({string} key)` — Removes a key-value pair from the cache.\n * - `{void}` `removeAll()` — Removes all cached values.\n * - `{void}` `destroy()` — Removes references to this cache from $cacheFactory.\n *\n * @example\n \n \n
\n \n \n \n\n
Cached Values
\n
\n \n : \n \n
\n\n
Cache Info
\n
\n \n : \n \n
\n
\n \n \n angular.module('cacheExampleApp', []).\n controller('CacheController', ['$scope', '$cacheFactory', function($scope, $cacheFactory) {\n $scope.keys = [];\n $scope.cache = $cacheFactory('cacheId');\n $scope.put = function(key, value) {\n if (angular.isUndefined($scope.cache.get(key))) {\n $scope.keys.push(key);\n }\n $scope.cache.put(key, angular.isUndefined(value) ? null : value);\n };\n }]);\n \n \n p {\n margin: 10px 0 3px;\n }\n \n \n */\nfunction $CacheFactoryProvider() {\n\n this.$get = function() {\n var caches = {};\n\n function cacheFactory(cacheId, options) {\n if (cacheId in caches) {\n throw minErr('$cacheFactory')('iid', \"CacheId '{0}' is already taken!\", cacheId);\n }\n\n var size = 0,\n stats = extend({}, options, {id: cacheId}),\n data = createMap(),\n capacity = (options && options.capacity) || Number.MAX_VALUE,\n lruHash = createMap(),\n freshEnd = null,\n staleEnd = null;\n\n /**\n * @ngdoc type\n * @name $cacheFactory.Cache\n *\n * @description\n * A cache object used to store and retrieve data, primarily used by\n * {@link $http $http} and the {@link ng.directive:script script} directive to cache\n * templates and other data.\n *\n * ```js\n * angular.module('superCache')\n * .factory('superCache', ['$cacheFactory', function($cacheFactory) {\n * return $cacheFactory('super-cache');\n * }]);\n * ```\n *\n * Example test:\n *\n * ```js\n * it('should behave like a cache', inject(function(superCache) {\n * superCache.put('key', 'value');\n * superCache.put('another key', 'another value');\n *\n * expect(superCache.info()).toEqual({\n * id: 'super-cache',\n * size: 2\n * });\n *\n * superCache.remove('another key');\n * expect(superCache.get('another key')).toBeUndefined();\n *\n * superCache.removeAll();\n * expect(superCache.info()).toEqual({\n * id: 'super-cache',\n * size: 0\n * });\n * }));\n * ```\n */\n return caches[cacheId] = {\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#put\n * @kind function\n *\n * @description\n * Inserts a named entry into the {@link $cacheFactory.Cache Cache} object to be\n * retrieved later, and incrementing the size of the cache if the key was not already\n * present in the cache. If behaving like an LRU cache, it will also remove stale\n * entries from the set.\n *\n * It will not insert undefined values into the cache.\n *\n * @param {string} key the key under which the cached data is stored.\n * @param {*} value the value to store alongside the key. If it is undefined, the key\n * will not be stored.\n * @returns {*} the value stored.\n */\n put: function(key, value) {\n if (isUndefined(value)) return;\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key] || (lruHash[key] = {key: key});\n\n refresh(lruEntry);\n }\n\n if (!(key in data)) size++;\n data[key] = value;\n\n if (size > capacity) {\n this.remove(staleEnd.key);\n }\n\n return value;\n },\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#get\n * @kind function\n *\n * @description\n * Retrieves named data stored in the {@link $cacheFactory.Cache Cache} object.\n *\n * @param {string} key the key of the data to be retrieved\n * @returns {*} the value stored.\n */\n get: function(key) {\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key];\n\n if (!lruEntry) return;\n\n refresh(lruEntry);\n }\n\n return data[key];\n },\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#remove\n * @kind function\n *\n * @description\n * Removes an entry from the {@link $cacheFactory.Cache Cache} object.\n *\n * @param {string} key the key of the entry to be removed\n */\n remove: function(key) {\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key];\n\n if (!lruEntry) return;\n\n if (lruEntry == freshEnd) freshEnd = lruEntry.p;\n if (lruEntry == staleEnd) staleEnd = lruEntry.n;\n link(lruEntry.n,lruEntry.p);\n\n delete lruHash[key];\n }\n\n if (!(key in data)) return;\n\n delete data[key];\n size--;\n },\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#removeAll\n * @kind function\n *\n * @description\n * Clears the cache object of any entries.\n */\n removeAll: function() {\n data = createMap();\n size = 0;\n lruHash = createMap();\n freshEnd = staleEnd = null;\n },\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#destroy\n * @kind function\n *\n * @description\n * Destroys the {@link $cacheFactory.Cache Cache} object entirely,\n * removing it from the {@link $cacheFactory $cacheFactory} set.\n */\n destroy: function() {\n data = null;\n stats = null;\n lruHash = null;\n delete caches[cacheId];\n },\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#info\n * @kind function\n *\n * @description\n * Retrieve information regarding a particular {@link $cacheFactory.Cache Cache}.\n *\n * @returns {object} an object with the following properties:\n *
\n *
**id**: the id of the cache instance
\n *
**size**: the number of entries kept in the cache instance
\n *
**...**: any additional properties from the options object when creating the\n * cache.
\n *
\n */\n info: function() {\n return extend({}, stats, {size: size});\n }\n };\n\n\n /**\n * makes the `entry` the freshEnd of the LRU linked list\n */\n function refresh(entry) {\n if (entry != freshEnd) {\n if (!staleEnd) {\n staleEnd = entry;\n } else if (staleEnd == entry) {\n staleEnd = entry.n;\n }\n\n link(entry.n, entry.p);\n link(entry, freshEnd);\n freshEnd = entry;\n freshEnd.n = null;\n }\n }\n\n\n /**\n * bidirectionally links two entries of the LRU linked list\n */\n function link(nextEntry, prevEntry) {\n if (nextEntry != prevEntry) {\n if (nextEntry) nextEntry.p = prevEntry; //p stands for previous, 'prev' didn't minify\n if (prevEntry) prevEntry.n = nextEntry; //n stands for next, 'next' didn't minify\n }\n }\n }\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory#info\n *\n * @description\n * Get information about all the caches that have been created\n *\n * @returns {Object} - key-value map of `cacheId` to the result of calling `cache#info`\n */\n cacheFactory.info = function() {\n var info = {};\n forEach(caches, function(cache, cacheId) {\n info[cacheId] = cache.info();\n });\n return info;\n };\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory#get\n *\n * @description\n * Get access to a cache object by the `cacheId` used when it was created.\n *\n * @param {string} cacheId Name or id of a cache to access.\n * @returns {object} Cache object identified by the cacheId or undefined if no such cache.\n */\n cacheFactory.get = function(cacheId) {\n return caches[cacheId];\n };\n\n\n return cacheFactory;\n };\n}\n\n/**\n * @ngdoc service\n * @name $templateCache\n *\n * @description\n * The first time a template is used, it is loaded in the template cache for quick retrieval. You\n * can load templates directly into the cache in a `script` tag, or by consuming the\n * `$templateCache` service directly.\n *\n * Adding via the `script` tag:\n *\n * ```html\n * \n * ```\n *\n * **Note:** the `script` tag containing the template does not need to be included in the `head` of\n * the document, but it must be a descendent of the {@link ng.$rootElement $rootElement} (IE,\n * element with ng-app attribute), otherwise the template will be ignored.\n *\n * Adding via the `$templateCache` service:\n *\n * ```js\n * var myApp = angular.module('myApp', []);\n * myApp.run(function($templateCache) {\n * $templateCache.put('templateId.html', 'This is the content of the template');\n * });\n * ```\n *\n * To retrieve the template later, simply use it in your HTML:\n * ```html\n * \n * ```\n *\n * or get it via Javascript:\n * ```js\n * $templateCache.get('templateId.html')\n * ```\n *\n * See {@link ng.$cacheFactory $cacheFactory}.\n *\n */\nfunction $TemplateCacheProvider() {\n this.$get = ['$cacheFactory', function($cacheFactory) {\n return $cacheFactory('templates');\n }];\n}\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Any commits to this file should be reviewed with security in mind. *\n * Changes to this file can potentially create security vulnerabilities. *\n * An approval from 2 Core members with history of modifying *\n * this file is required. *\n * *\n * Does the change somehow allow for arbitrary javascript to be executed? *\n * Or allows for someone to change the prototype of built-in objects? *\n * Or gives undesired access to variables likes document or window? *\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/* ! VARIABLE/FUNCTION NAMING CONVENTIONS THAT APPLY TO THIS FILE!\n *\n * DOM-related variables:\n *\n * - \"node\" - DOM Node\n * - \"element\" - DOM Element or Node\n * - \"$node\" or \"$element\" - jqLite-wrapped node or element\n *\n *\n * Compiler related stuff:\n *\n * - \"linkFn\" - linking fn of a single directive\n * - \"nodeLinkFn\" - function that aggregates all linking fns for a particular node\n * - \"childLinkFn\" - function that aggregates all linking fns for child nodes of a particular node\n * - \"compositeLinkFn\" - function that aggregates all linking fns for a compilation root (nodeList)\n */\n\n\n/**\n * @ngdoc service\n * @name $compile\n * @kind function\n *\n * @description\n * Compiles an HTML string or DOM into a template and produces a template function, which\n * can then be used to link {@link ng.$rootScope.Scope `scope`} and the template together.\n *\n * The compilation is a process of walking the DOM tree and matching DOM elements to\n * {@link ng.$compileProvider#directive directives}.\n *\n *
\n * **Note:** This document is an in-depth reference of all directive options.\n * For a gentle introduction to directives with examples of common use cases,\n * see the {@link guide/directive directive guide}.\n *
\n *\n * ## Comprehensive Directive API\n *\n * There are many different options for a directive.\n *\n * The difference resides in the return value of the factory function.\n * You can either return a {@link $compile#directive-definition-object Directive Definition Object (see below)}\n * that defines the directive properties, or just the `postLink` function (all other properties will have\n * the default values).\n *\n *
\n * **Best Practice:** It's recommended to use the \"directive definition object\" form.\n *
\n * **Note:** Any unspecified options will use the default value. You can see the default values below.\n *
\n *\n * Therefore the above can be simplified as:\n *\n * ```js\n * var myModule = angular.module(...);\n *\n * myModule.directive('directiveName', function factory(injectables) {\n * var directiveDefinitionObject = {\n * link: function postLink(scope, iElement, iAttrs) { ... }\n * };\n * return directiveDefinitionObject;\n * // or\n * // return function postLink(scope, iElement, iAttrs) { ... }\n * });\n * ```\n *\n * ### Life-cycle hooks\n * Directive controllers can provide the following methods that are called by Angular at points in the life-cycle of the\n * directive:\n * * `$onInit()` - Called on each controller after all the controllers on an element have been constructed and\n * had their bindings initialized (and before the pre & post linking functions for the directives on\n * this element). This is a good place to put initialization code for your controller.\n * * `$onChanges(changesObj)` - Called whenever one-way (`<`) or interpolation (`@`) bindings are updated. The\n * `changesObj` is a hash whose keys are the names of the bound properties that have changed, and the values are an\n * object of the form `{ currentValue, previousValue, isFirstChange() }`. Use this hook to trigger updates within a\n * component such as cloning the bound value to prevent accidental mutation of the outer value.\n * * `$doCheck()` - Called on each turn of the digest cycle. Provides an opportunity to detect and act on\n * changes. Any actions that you wish to take in response to the changes that you detect must be\n * invoked from this hook; implementing this has no effect on when `$onChanges` is called. For example, this hook\n * could be useful if you wish to perform a deep equality check, or to check a Date object, changes to which would not\n * be detected by Angular's change detector and thus not trigger `$onChanges`. This hook is invoked with no arguments;\n * if detecting changes, you must store the previous value(s) for comparison to the current values.\n * * `$onDestroy()` - Called on a controller when its containing scope is destroyed. Use this hook for releasing\n * external resources, watches and event handlers. Note that components have their `$onDestroy()` hooks called in\n * the same order as the `$scope.$broadcast` events are triggered, which is top down. This means that parent\n * components will have their `$onDestroy()` hook called before child components.\n * * `$postLink()` - Called after this controller's element and its children have been linked. Similar to the post-link\n * function this hook can be used to set up DOM event handlers and do direct DOM manipulation.\n * Note that child elements that contain `templateUrl` directives will not have been compiled and linked since\n * they are waiting for their template to load asynchronously and their own compilation and linking has been\n * suspended until that occurs.\n *\n * #### Comparison with Angular 2 life-cycle hooks\n * Angular 2 also uses life-cycle hooks for its components. While the Angular 1 life-cycle hooks are similar there are\n * some differences that you should be aware of, especially when it comes to moving your code from Angular 1 to Angular 2:\n *\n * * Angular 1 hooks are prefixed with `$`, such as `$onInit`. Angular 2 hooks are prefixed with `ng`, such as `ngOnInit`.\n * * Angular 1 hooks can be defined on the controller prototype or added to the controller inside its constructor.\n * In Angular 2 you can only define hooks on the prototype of the Component class.\n * * Due to the differences in change-detection, you may get many more calls to `$doCheck` in Angular 1 than you would to\n * `ngDoCheck` in Angular 2\n * * Changes to the model inside `$doCheck` will trigger new turns of the digest loop, which will cause the changes to be\n * propagated throughout the application.\n * Angular 2 does not allow the `ngDoCheck` hook to trigger a change outside of the component. It will either throw an\n * error or do nothing depending upon the state of `enableProdMode()`.\n *\n * #### Life-cycle hook examples\n *\n * This example shows how you can check for mutations to a Date object even though the identity of the object\n * has not changed.\n *\n * \n * \n * angular.module('do-check-module', [])\n * .component('app', {\n * template:\n * 'Month: ' +\n * 'Date: {{ $ctrl.date }}' +\n * '',\n * controller: function() {\n * this.date = new Date();\n * this.month = this.date.getMonth();\n * this.updateDate = function() {\n * this.date.setMonth(this.month);\n * };\n * }\n * })\n * .component('test', {\n * bindings: { date: '<' },\n * template:\n * '
{{ $ctrl.log | json }}
',\n * controller: function() {\n * var previousValue;\n * this.log = [];\n * this.$doCheck = function() {\n * var currentValue = this.date && this.date.valueOf();\n * if (previousValue !== currentValue) {\n * this.log.push('doCheck: date mutated: ' + this.date);\n * previousValue = currentValue;\n * }\n * };\n * }\n * });\n * \n * \n * \n * \n * \n *\n * This example show how you might use `$doCheck` to trigger changes in your component's inputs even if the\n * actual identity of the component doesn't change. (Be aware that cloning and deep equality checks on large\n * arrays or objects can have a negative impact on your application performance)\n *\n * \n * \n *
',\n * controller: function() {\n * this.log = [];\n *\n * this.$doCheck = function() {\n * if (this.items_ref !== this.items) {\n * this.log.push('doCheck: items changed');\n * this.items_ref = this.items;\n * }\n * if (!angular.equals(this.items_clone, this.items)) {\n * this.log.push('doCheck: items mutated');\n * this.items_clone = angular.copy(this.items);\n * }\n * };\n * }\n * });\n * \n * \n *\n *\n * ### Directive Definition Object\n *\n * The directive definition object provides instructions to the {@link ng.$compile\n * compiler}. The attributes are:\n *\n * #### `multiElement`\n * When this property is set to true, the HTML compiler will collect DOM nodes between\n * nodes with the attributes `directive-name-start` and `directive-name-end`, and group them\n * together as the directive elements. It is recommended that this feature be used on directives\n * which are not strictly behavioral (such as {@link ngClick}), and which\n * do not manipulate or replace child nodes (such as {@link ngInclude}).\n *\n * #### `priority`\n * When there are multiple directives defined on a single DOM element, sometimes it\n * is necessary to specify the order in which the directives are applied. The `priority` is used\n * to sort the directives before their `compile` functions get called. Priority is defined as a\n * number. Directives with greater numerical `priority` are compiled first. Pre-link functions\n * are also run in priority order, but post-link functions are run in reverse order. The order\n * of directives with the same priority is undefined. The default priority is `0`.\n *\n * #### `terminal`\n * If set to true then the current `priority` will be the last set of directives\n * which will execute (any directives at the current priority will still execute\n * as the order of execution on same `priority` is undefined). Note that expressions\n * and other directives used in the directive's template will also be excluded from execution.\n *\n * #### `scope`\n * The scope property can be `true`, an object or a falsy value:\n *\n * * **falsy:** No scope will be created for the directive. The directive will use its parent's scope.\n *\n * * **`true`:** A new child scope that prototypically inherits from its parent will be created for\n * the directive's element. If multiple directives on the same element request a new scope,\n * only one new scope is created. The new scope rule does not apply for the root of the template\n * since the root of the template always gets a new scope.\n *\n * * **`{...}` (an object hash):** A new \"isolate\" scope is created for the directive's element. The\n * 'isolate' scope differs from normal scope in that it does not prototypically inherit from its parent\n * scope. This is useful when creating reusable components, which should not accidentally read or modify\n * data in the parent scope.\n *\n * The 'isolate' scope object hash defines a set of local scope properties derived from attributes on the\n * directive's element. These local properties are useful for aliasing values for templates. The keys in\n * the object hash map to the name of the property on the isolate scope; the values define how the property\n * is bound to the parent scope, via matching attributes on the directive's element:\n *\n * * `@` or `@attr` - bind a local scope property to the value of DOM attribute. The result is\n * always a string since DOM attributes are strings. If no `attr` name is specified then the\n * attribute name is assumed to be the same as the local name. Given `` and the isolate scope definition `scope: { localName:'@myAttr' }`,\n * the directive's scope property `localName` will reflect the interpolated value of `hello\n * {{name}}`. As the `name` attribute changes so will the `localName` property on the directive's\n * scope. The `name` is read from the parent scope (not the directive's scope).\n *\n * * `=` or `=attr` - set up a bidirectional binding between a local scope property and an expression\n * passed via the attribute `attr`. The expression is evaluated in the context of the parent scope.\n * If no `attr` name is specified then the attribute name is assumed to be the same as the local\n * name. Given `` and the isolate scope definition `scope: {\n * localModel: '=myAttr' }`, the property `localModel` on the directive's scope will reflect the\n * value of `parentModel` on the parent scope. Changes to `parentModel` will be reflected in\n * `localModel` and vice versa. Optional attributes should be marked as such with a question mark:\n * `=?` or `=?attr`. If the binding expression is non-assignable, or if the attribute isn't\n * optional and doesn't exist, an exception ({@link error/$compile/nonassign `$compile:nonassign`})\n * will be thrown upon discovering changes to the local value, since it will be impossible to sync\n * them back to the parent scope. By default, the {@link ng.$rootScope.Scope#$watch `$watch`}\n * method is used for tracking changes, and the equality check is based on object identity.\n * However, if an object literal or an array literal is passed as the binding expression, the\n * equality check is done by value (using the {@link angular.equals} function). It's also possible\n * to watch the evaluated value shallowly with {@link ng.$rootScope.Scope#$watchCollection\n * `$watchCollection`}: use `=*` or `=*attr` (`=*?` or `=*?attr` if the attribute is optional).\n *\n * * `<` or `` and directive definition of\n * `scope: { localModel:'` and the isolate scope definition `scope: {\n * localFn:'&myAttr' }`, the isolate scope property `localFn` will point to a function wrapper for\n * the `count = count + value` expression. Often it's desirable to pass data from the isolated scope\n * via an expression to the parent scope. This can be done by passing a map of local variable names\n * and values into the expression wrapper fn. For example, if the expression is `increment(amount)`\n * then we can specify the amount value by calling the `localFn` as `localFn({amount: 22})`.\n *\n * In general it's possible to apply more than one directive to one element, but there might be limitations\n * depending on the type of scope required by the directives. The following points will help explain these limitations.\n * For simplicity only two directives are taken into account, but it is also applicable for several directives:\n *\n * * **no scope** + **no scope** => Two directives which don't require their own scope will use their parent's scope\n * * **child scope** + **no scope** => Both directives will share one single child scope\n * * **child scope** + **child scope** => Both directives will share one single child scope\n * * **isolated scope** + **no scope** => The isolated directive will use it's own created isolated scope. The other directive will use\n * its parent's scope\n * * **isolated scope** + **child scope** => **Won't work!** Only one scope can be related to one element. Therefore these directives cannot\n * be applied to the same element.\n * * **isolated scope** + **isolated scope** => **Won't work!** Only one scope can be related to one element. Therefore these directives\n * cannot be applied to the same element.\n *\n *\n * #### `bindToController`\n * This property is used to bind scope properties directly to the controller. It can be either\n * `true` or an object hash with the same format as the `scope` property. Additionally, a controller\n * alias must be set, either by using `controllerAs: 'myAlias'` or by specifying the alias in the controller\n * definition: `controller: 'myCtrl as myAlias'`.\n *\n * When an isolate scope is used for a directive (see above), `bindToController: true` will\n * allow a component to have its properties bound to the controller, rather than to scope.\n *\n * After the controller is instantiated, the initial values of the isolate scope bindings will be bound to the controller\n * properties. You can access these bindings once they have been initialized by providing a controller method called\n * `$onInit`, which is called after all the controllers on an element have been constructed and had their bindings\n * initialized.\n *\n *
\n * **Deprecation warning:** although bindings for non-ES6 class controllers are currently\n * bound to `this` before the controller constructor is called, this use is now deprecated. Please place initialization\n * code that relies upon bindings inside a `$onInit` method on the controller, instead.\n *
\n *\n * It is also possible to set `bindToController` to an object hash with the same format as the `scope` property.\n * This will set up the scope bindings to the controller directly. Note that `scope` can still be used\n * to define which kind of scope is created. By default, no scope is created. Use `scope: {}` to create an isolate\n * scope (useful for component directives).\n *\n * If both `bindToController` and `scope` are defined and have object hashes, `bindToController` overrides `scope`.\n *\n *\n * #### `controller`\n * Controller constructor function. The controller is instantiated before the\n * pre-linking phase and can be accessed by other directives (see\n * `require` attribute). This allows the directives to communicate with each other and augment\n * each other's behavior. The controller is injectable (and supports bracket notation) with the following locals:\n *\n * * `$scope` - Current scope associated with the element\n * * `$element` - Current element\n * * `$attrs` - Current attributes object for the element\n * * `$transclude` - A transclude linking function pre-bound to the correct transclusion scope:\n * `function([scope], cloneLinkingFn, futureParentElement, slotName)`:\n * * `scope`: (optional) override the scope.\n * * `cloneLinkingFn`: (optional) argument to create clones of the original transcluded content.\n * * `futureParentElement` (optional):\n * * defines the parent to which the `cloneLinkingFn` will add the cloned elements.\n * * default: `$element.parent()` resp. `$element` for `transclude:'element'` resp. `transclude:true`.\n * * only needed for transcludes that are allowed to contain non html elements (e.g. SVG elements)\n * and when the `cloneLinkinFn` is passed,\n * as those elements need to created and cloned in a special way when they are defined outside their\n * usual containers (e.g. like `