Skip to content

Instantly share code, notes, and snippets.

@ascott1
Created February 19, 2014 02:50
Show Gist options
  • Save ascott1/9085196 to your computer and use it in GitHub Desktop.
Save ascott1/9085196 to your computer and use it in GitHub Desktop.
requirebin sketch
var Financial = require('financial');
var Money = require('accounting');
// calculate the monthly payment of a loan
var calcPayment = function(loanRate, loanYears, loanAmt) {
var monthlyPayment = Financial.PMT(loanRate / 100 / 12, loanYears * 12, loanAmt);
return makeMoney(monthlyPayment);
};
// calculate the total interest paid
var calcInterest = function(loanRate, loanYears, loanAmt, startPeriod, endPeriod, type) {
var totalInterest = Financial.CUMIPMT(loanRate / 100 / 12, loanYears * 12, loanAmt, startPeriod, endPeriod * 12, type);
return makeMoney(totalInterest);
};
var makeMoney = function(num) {
num = Math.abs(num); // make a positive integer
return Money.accounting.formatMoney(num); // turn integers into $USD formatted strings
};
// Create DOM elements
var paymentContainer = document.createElement('div');
document.body.appendChild(paymentContainer);
var interestContainer = document.createElement('div');
document.body.appendChild(interestContainer);
// Calculate and append to the DOM
paymentContainer.innerHTML = 'You will pay ' + calcPayment(5, 30, 200000) + ' per month. ';
interestContainer.innerHTML = 'You will have paid ' + calcInterest(5, 30, 200000, 1, 30, 0) + ' in total interest';
require=function e(n,t,r){function i(o,a){if(!t[o]){if(!n[o]){var s="function"==typeof require&&require;if(!a&&s)return s(o,!0);if(u)return u(o,!0);throw Error("Cannot find module '"+o+"'")}var f=t[o]={exports:{}};n[o][0].call(f.exports,function(t){var e=n[o][1][t];return i(e?e:t)},f,f.exports,e,n,t,r)}return t[o].exports}for(var u="function"==typeof require&&require,o=0;r.length>o;o++)i(r[o]);return i}({"MY/tMr":[function(n,t,e){(function(n,r){function i(n){return!!(""===n||n&&n.charCodeAt&&n.substr)}function u(n){return h?h(n):"[object Array]"===m.call(n)}function o(n){return"[object Object]"===m.call(n)}function a(n,t){var e;n=n||{},t=t||{};for(e in t)t.hasOwnProperty(e)&&null==n[e]&&(n[e]=t[e]);return n}function s(n,t,e){var r,i,u=[];if(!n)return u;if(l&&n.map===l)return n.map(t,e);for(r=0,i=n.length;i>r;r++)u[r]=t.call(e,n[r],r,n);return u}function f(n,t){return n=Math.round(Math.abs(n)),isNaN(n)?t:n}function c(n){var t=d.settings.currency.format;return"function"==typeof n&&(n=n()),i(n)&&n.match("%v")?{pos:n,neg:n.replace("-","").replace("%v","-%v"),zero:n}:n&&n.pos&&n.pos.match("%v")?n:i(t)?d.settings.currency.format={pos:t,neg:t.replace("%v","-%v"),zero:t}:t}var d={};d.version="0.3.2",d.settings={currency:{symbol:"$",format:"%s%v",decimal:".",thousand:",",precision:2,grouping:3},number:{precision:0,grouping:3,thousand:",",decimal:"."}};var l=Array.prototype.map,h=Array.isArray,m=Object.prototype.toString,y=d.unformat=d.parse=function(n,t){if(u(n))return s(n,function(n){return y(n,t)});if(n=n||0,"number"==typeof n)return n;t=t||".";var e=RegExp("[^0-9-"+t+"]",["g"]),r=parseFloat((""+n).replace(/\((.*)\)/,"-$1").replace(e,"").replace(t,"."));return isNaN(r)?0:r},p=d.toFixed=function(n,t){t=f(t,d.settings.number.precision);var e=Math.pow(10,t);return(Math.round(d.unformat(n)*e)/e).toFixed(t)},M=d.formatNumber=function(n,t,e,r){if(u(n))return s(n,function(n){return M(n,t,e,r)});n=y(n);var i=a(o(t)?t:{precision:t,thousand:e,decimal:r},d.settings.number),c=f(i.precision),l=0>n?"-":"",h=parseInt(p(Math.abs(n||0),c),10)+"",m=h.length>3?h.length%3:0;return l+(m?h.substr(0,m)+i.thousand:"")+h.substr(m).replace(/(\d{3})(?=\d)/g,"$1"+i.thousand)+(c?i.decimal+p(Math.abs(n),c).split(".")[1]:"")},D=d.formatMoney=function(n,t,e,r,i,l){if(u(n))return s(n,function(n){return D(n,t,e,r,i,l)});n=y(n);var h=a(o(t)?t:{symbol:t,precision:e,thousand:r,decimal:i,format:l},d.settings.currency),m=c(h.format),p=n>0?m.pos:0>n?m.neg:m.zero;return p.replace("%s",h.symbol).replace("%v",M(Math.abs(n),f(h.precision),h.thousand,h.decimal))};d.formatColumn=function(n,t,e,r,l,h){if(!n)return[];var m=a(o(t)?t:{symbol:t,precision:e,thousand:r,decimal:l,format:h},d.settings.currency),p=c(m.format),D=p.pos.indexOf("%s")<p.pos.indexOf("%v")?!0:!1,v=0,_=s(n,function(n){if(u(n))return d.formatColumn(n,m);n=y(n);var t=n>0?p.pos:0>n?p.neg:p.zero,e=t.replace("%s",m.symbol).replace("%v",M(Math.abs(n),f(m.precision),m.thousand,m.decimal));return e.length>v&&(v=e.length),e});return s(_,function(n){return i(n)&&v>n.length?D?n.replace(m.symbol,m.symbol+Array(v-n.length+1).join(" ")):Array(v-n.length+1).join(" ")+n:n})},e!==r?(t!==r&&t.exports&&(e=t.exports=d),e.accounting=d):"function"==typeof define&&define.amd?define([],function(){return d}):(d.noConflict=function(t){return function(){return n.accounting=t,d.noConflict=r,d}}(n.accounting),n.accounting=d)})(this)},{}],accounting:[function(n,t){t.exports=n("MY/tMr")},{}]},{},[]),require=function e(n,t,r){function i(o,a){if(!t[o]){if(!n[o]){var s="function"==typeof require&&require;if(!a&&s)return s(o,!0);if(u)return u(o,!0);throw Error("Cannot find module '"+o+"'")}var f=t[o]={exports:{}};n[o][0].call(f.exports,function(t){var e=n[o][1][t];return i(e?e:t)},f,f.exports,e,n,t,r)}return t[o].exports}for(var u="function"==typeof require&&require,o=0;r.length>o;o++)i(r[o]);return i}({cR0YS4:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("./lib/common.js"),u=n("./lib/daycountbasis.js"),o=n("./lib/bonds.js"),a=n("./lib/depreciation.js"),s=n("./lib/irr.js"),f=n("./lib/loan.js"),c=n("./lib/misc.js"),d=n("./lib/tbill.js"),l=n("./lib/tvm.js"),h=n("./lib/oddbonds.js");t.exports=r(i,u,o,a,s,f,c,d,l,h)}else"function"==typeof define&&define.amd&&(requirejs.config({baseUrl:"lib"}),define(["common","daycountbasis","bonds","depreciation","irr","loan","misc","tbill","tvm","oddbonds"],r))})(function(n,t,e,r,i,u,o,a,s,f){var c=this.Financial={};return c.COUPDAYS=function(n,e,r,i){return t.COUPDAYS(n,e,r,i)},c.COUPPCD=function(n,e,r,i){return t.COUPPCD(n,e,r,i)},c.COUPNCD=function(n,e,r,i){return t.COUPNCD(n,e,r,i)},c.COUPNUM=function(n,e,r,i){return t.COUPNUM(n,e,r,i)},c.COUPDAYSBS=function(n,e,r,i){return t.COUPDAYSBS(n,e,r,i)},c.COUPDAYSNC=function(n,e,r,i){return t.COUPDAYSNC(n,e,r,i)},c.YEARFRAC=function(n,e,r){return t.YEARFRAC(n,e,r)},c.ACCRINT=function(n,t,r,i,u,o,a,s){return e.ACCRINT(n,t,r,i,u,o,a,s)},c.ACCRINTM=function(n,t,r,i,u){return e.ACCRINTM(n,t,r,i,u)},c.PRICE=function(n,t,r,i,u,o,a){return e.PRICE(n,t,r,i,u,o,a)},c.PRICEMAT=function(n,t,r,i,u,o){return e.PRICEMAT(n,t,r,i,u,o)},c.YIELDMAT=function(n,t,r,i,u,o){return e.YIELDMAT(n,t,r,i,u,o)},c.INTRATE=function(n,t,r,i,u){return e.INTRATE(n,t,r,i,u)},c.RECEIVED=function(n,t,r,i,u){return e.RECEIVED(n,t,r,i,u)},c.DISC=function(n,t,r,i,u){return e.DISC(n,t,r,i,u)},c.PRICEDISC=function(n,t,r,i,u){return e.PRICEDISC(n,t,r,i,u)},c.YIELDDISC=function(n,t,r,i,u){return e.YIELDDISC(n,t,r,i,u)},c.DURATION=function(n,t,r,i,u,o){return e.DURATION(n,t,r,i,u,o)},c.MDURATION=function(n,t,r,i,u,o){return e.MDURATION(n,t,r,i,u,o)},c.DB=function(n,t,e,i,u){return r.DB(n,t,e,i,u)},c.SLN=function(n,t,e){return r.SLN(n,t,e)},c.SYD=function(n,t,e,i){return r.SYD(n,t,e,i)},c.DDB=function(n,t,e,i,u){return r.DDB(n,t,e,i,u)},c.VDB=function(n,t,e,i,u,o,a){return r.VDB(n,t,e,i,u,o,a)},c.AMORLINC=function(n,t,e,i,u,o,a){return r.AMORLINC(n,t,e,i,u,o,a)},c.AMORDEGRC=function(n,t,e,i,u,o,a,s){return r.AMORDEGRC(n,t,e,i,u,o,a,s)},c.IRR=function(n,t){return i.IRR(n,t)},c.NPV=function(n,t){return i.NPV(n,t)},c.MIRR=function(n,t,e){return i.MIRR(n,t,e)},c.XNPV=function(n,t,e){return i.XNPV(n,t,e)},c.XIRR=function(n,t,e){return i.XIRR(n,t,e)},c.IPMT=function(n,t,e,r,i,o){return u.IPMT(n,t,e,r,i,o)},c.PPMT=function(n,t,e,r,i,o){return u.PPMT(n,t,e,r,i,o)},c.CUMIPMT=function(n,t,e,r,i,o){return u.CUMIPMT(n,t,e,r,i,o)},c.CUMPRINC=function(n,t,e,r,i,o){return u.CUMPRINC(n,t,e,r,i,o)},c.ISPMT=function(n,t,e,r){return u.ISPMT(n,t,e,r)},c.DOLLARDE=function(n,t){return o.DOLLARDE(n,t)},c.DOLLARFR=function(n,t){return o.DOLLARFR(n,t)},c.EFFECT=function(n,t){return o.EFFECT(n,t)},c.NOMINAL=function(n,t){return o.NOMINAL(n,t)},c.TBILLEQ=function(n,t,e){return a.TBILLEQ(n,t,e)},c.TBILLYIELD=function(n,t,e){return a.TBILLYIELD(n,t,e)},c.TBILLPRICE=function(n,t,e){return a.TBILLPRICE(n,t,e)},c.PV=function(n,t,e,r,i){return s.PV(n,t,e,r,i)},c.FV=function(n,t,e,r,i){return s.FV(n,t,e,r,i)},c.PMT=function(n,t,e,r,i){return s.PMT(n,t,e,r,i)},c.NPER=function(n,t,e,r,i){return s.NPER(n,t,e,r,i)},c.RATE=function(n,t,e,r,i,u){return s.RATE(n,t,e,r,i,u)},c.FVSCHEDULE=function(n,t){return s.FVSCHEDULE(n,t)},c.ODDFPRICE=function(n,t,e,r,i,u,o,a,s){return f.ODDFPRICE(n,t,e,r,i,u,o,a,s)},c.ODDFYIELD=function(n,t,e,r,i,u,o,a,s){return f.ODDFYIELD(n,t,e,r,i,u,o,a,s)},c.ODDLPRICE=function(n,t,e,r,i,u,o,a){return f.ODDLPRICE(n,t,e,r,i,u,o,a)},c.ODDLYIELD=function(n,t,e,r,i,u,o,a){return f.ODDLYIELD(n,t,e,r,i,u,o,a)},c})},{"./lib/bonds.js":3,"./lib/common.js":4,"./lib/daycountbasis.js":5,"./lib/depreciation.js":6,"./lib/irr.js":7,"./lib/loan.js":8,"./lib/misc.js":9,"./lib/oddbonds.js":10,"./lib/tbill.js":11,"./lib/tvm.js":12}],financial:[function(n,t){t.exports=n("cR0YS4")},{}],3:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js"),o=n("../lib/daycountbasis.js");t.exports=r(i,u,o)}else"function"==typeof define&&define.amd&&define(["moment","common","daycountbasis"],r)})(function(n,t,e){var r=this.Bonds={},i=function(n,t,r,i){var u=e.dayCount(i),o=u.CoupNum(n,t,r),a=u.CoupPCD(n,t,r),s=u.DaysBetween(a,n,e.NumDenumPosition.Numerator),f=u.CoupDays(n,t,r),c=f-s;return[o,a,s,f,c]},u=function(n,t,r,i){var u=e.dayCount(i),o=u.DaysInYear(r,n),a=u.DaysBetween(r,t,e.NumDenumPosition.Numerator),s=u.DaysBetween(r,n,e.NumDenumPosition.Numerator),f=a-s;return[o,a,s,f]},o=function(n,t,r){var i=e.dayCount(r),u=i.DaysBetween(n,t,e.NumDenumPosition.Numerator),o=i.DaysInYear(n,t);return[u,o]},a=function(n,r,i,u,o,a,s){var f=e.dayCount(a),c=f.CoupDaysBS(n,r,o),d=f.CoupDays(n,r,o),l=f.CoupNum(n,r,o),h=d-c,m=h/d,y=m+l-1,p=u/o+1,M=Math.pow(p,y),D=100*y/M,v=100/M,_=function(n,t){var e=t-1+m,r=Math.pow(p,e),u=100*i/o/r,a=n[0],s=n[1];return[a+u*e,s+u]},b=t.aggrBetween(1,l,_,[0,0]),C=b[0],U=b[1],g=D+C,N=v+U;return s===!1?g/N/o:g/N/o/p};return r.ACCRINT=function(r,i,u,o,a,s,f,c){if((null===f||void 0===f)&&(f=0),(null===c||void 0===c)&&(c=!0),"number"!=typeof o||"number"!=typeof a||"number"!=typeof s||"number"!=typeof f)return"#VALUE!";if(!n(r).isValid()||!n(i).isValid()||!n(u).isValid())return"#VALUE!";if(0>=o||0>=a)return"#NUM!";if(-1===[1,2,4].indexOf(s))return"#NUM!";if(-1===[0,1,2,3,4].indexOf(f))return"#NUM!";if(n(r).diff(n(u))>=0)return"#NUM!";a=a===void 0?0:1e3;var r=n(r),i=n(i),d=i.clone(),u=n(u),l=e.dayCount(f),h=s,m=e.freq2months(h),y=-m,p=t.isLastDayOfMonth(i);c=c===!0?t.AccrIntCalcMethod.FromIssueToSettlement:t.AccrIntCalcMethod.FromFirstToSettlement;var M=null;M=u.isAfter(d)&&c===t.AccrIntCalcMethod.FromIssueToSettlement?e.findPcdNcd(d,u,m,f,p)[0]:l.ChangeMonth(d,y,p);var D=r.isAfter(M)?r:M,v=l.DaysBetween(D,u,e.NumDenumPosition.Numerator),_=l.CoupDays(M,d,h),b=function(n,t){var i=r.isAfter(n)?r:n,u=null;if(f===e.DayCountBasis.UsPsa30_360){var o=r.isAfter(n)?e.Method360Us.ModifyStartDate:e.Method360Us.ModifyBothDates;u=e.dateDiff360Us(i,t,o)}else u=l.DaysBetween(i,t,e.NumDenumPosition.Numerator);var a=null;a=f===e.DayCountBasis.UsPsa30_360?e.dateDiff360Us(n,t,e.Method360Us.ModifyBothDates):f===e.DayCountBasis.Actual365?365/h:l.DaysBetween(n,t,e.NumDenumPosition.Denumerator);var s=null;return s=n.isAfter(r)||n.isSame(r)?c:u/a},C=e.datesAggregate1(M,r,y,f,b,v/_,p),U=C[2];return a*o/h*U},r.ACCRINTM=function(t,r,i,u,o){if((null===o||void 0===o)&&(o=0),"number"!=typeof i||"number"!=typeof u||"number"!=typeof o)return"#VALUE!";if(!n(t).isValid()||!n(r).isValid())return"#VALUE!";if(0>=i||0>=u)return"#NUM!";if(-1===[0,1,2,3,4].indexOf(o))return"#NUM!";if(n(t).diff(n(r))>=0)return"#NUM!";t=n(t),r=n(r);var a=e.dayCount(o),s=a.DaysBetween(t,r,e.NumDenumPosition.Numerator),f=a.DaysInYear(t,r);return u*i*(s/f)},r.PRICE=function(t,e,r,u,o,a,s){if((null===s||void 0===s)&&(s=0),"number"!=typeof r||"number"!=typeof u||"number"!=typeof o||"number"!=typeof a||"number"!=typeof s)return"#VALUE!";if(!n(e).isValid()||!n(t).isValid())return"#VALUE!";if(0>r||0>u)return"#NUM!";if(0>=o)return"#NUM!";if(-1===[1,2,4].indexOf(a))return"#NUM!";if(-1===[0,1,2,3,4].indexOf(s))return"#NUM!";if(n(t).diff(n(e))>=0)return"#NUM!";t=n(t),e=n(e);var f=i(t,e,a,s),c=f[0];f[1];for(var d=f[2],l=f[3],h=f[4],m=100*r/a,y=100*r/a*d/l,p=function(n){var t=1+u/a,e=n-1+h/l;return Math.pow(t,e)},M=o/p(c),D=0,v=1;c>=v;v++)D+=m/p(v);return 1===c?(o+m)/(1+h/l*u/a)-y:M+D-y},r.PRICEMAT=function(t,e,r,i,o,a){if((null===a||void 0===a)&&(a=0),"number"!=typeof i||"number"!=typeof o||"number"!=typeof a)return"#VALUE!";if(!n(e).isValid()||!n(t).isValid()||!n(r).isValid())return"#VALUE!";if(0>i||0>o)return"#NUM!";if(-1===[0,1,2,3,4].indexOf(a))return"#NUM!";if(n(t).diff(n(e))>=0)return"#NUM!";t=n(t),e=n(e),r=n(r);var s=u(t,e,r,a),f=s[0],c=s[1],d=s[2],l=s[3],h=100+100*c/f*i,m=1+l/f*o,y=100*d/f*i;return h/m-y},r.YIELDMAT=function(t,e,r,i,o,a){if((null===a||void 0===a)&&(a=0),"number"!=typeof i||"number"!=typeof o||"number"!=typeof a)return"#VALUE!";if(!n(e).isValid()||!n(t).isValid()||!n(r).isValid())return"#VALUE!";if(0>i||0>=o)return"#NUM!";if(-1===[0,1,2,3,4].indexOf(a))return"#NUM!";if(n(t).diff(n(e))>=0)return"#NUM!";t=n(t),e=n(e),r=n(r);var s=u(t,e,r,a),f=s[0],c=s[1],d=s[2],l=s[3],h=c/f*i+1-o/100-d/f*i,m=o/100+d/f*i,y=f/l;return h/m*y},r.INTRATE=function(t,e,r,i,u){if((null===u||void 0===u)&&(u=0),"number"!=typeof r||"number"!=typeof i||"number"!=typeof u)return"#VALUE!";if(!n(e).isValid()||!n(t).isValid())return"#VALUE!";if(0>=r||0>=i)return"#NUM!";if(-1===[0,1,2,3,4].indexOf(u))return"#NUM!";if(n(t).diff(n(e))>=0)return"#NUM!";t=n(t),e=n(e);var a=o(t,e,u),s=a[0],f=a[1];return(i-r)/r*f/s},r.RECEIVED=function(t,e,r,i,u){if((null===u||void 0===u)&&(u=0),"number"!=typeof i||"number"!=typeof u)return"#VALUE!";if(!n(e).isValid()||!n(t).isValid())return"#VALUE!";if(0>=r||0>=i)return"#NUM!";if(-1===[0,1,2,3,4].indexOf(u))return"#NUM!";if(n(t).diff(n(e))>=0)return"#NUM!";t=n(t),e=n(e);var a=o(t,e,u),s=a[0],f=a[1],c=i*s/f;return r/(1-c)},r.DISC=function(t,e,r,i,u){if((null===u||void 0===u)&&(u=0),"number"!=typeof r||"number"!=typeof i||"number"!=typeof u)return"#VALUE!";if(!n(e).isValid()||!n(t).isValid())return"#VALUE!";if(0>=r||0>=i)return"#NUM!";if(-1===[0,1,2,3,4].indexOf(u))return"#NUM!";if(n(t).diff(n(e))>=0)return"#NUM!";t=n(t),e=n(e);var a=o(t,e,u),s=a[0],f=a[1];return(-r/i+1)*f/s},r.PRICEDISC=function(t,e,r,i,u){if((null===u||void 0===u)&&(u=0),"number"!=typeof r||"number"!=typeof i||"number"!=typeof u)return"#VALUE!";if(!n(e).isValid()||!n(t).isValid())return"#VALUE!";if(0>=r||0>=i)return"#NUM!";if(-1===[0,1,2,3,4].indexOf(u))return"#NUM!";if(n(t).diff(n(e))>=0)return"#NUM!";t=n(t),e=n(e);var a=o(t,e,u),s=a[0],f=a[1];return i-r*i*s/f},r.YIELDDISC=function(t,e,r,i,u){if((null===u||void 0===u)&&(u=0),"number"!=typeof r||"number"!=typeof i||"number"!=typeof u)return"#VALUE!";if(!n(e).isValid()||!n(t).isValid())return"#VALUE!";if(0>=r||0>=i)return"#NUM!";if(-1===[0,1,2,3,4].indexOf(u))return"#NUM!";if(n(t).diff(n(e))>=0)return"#NUM!";t=n(t),e=n(e);var a=o(t,e,u),s=a[0],f=a[1];return(i-r)/r*f/s},r.DURATION=function(t,e,r,i,u,o){return(null===o||void 0===o)&&(o=0),"number"!=typeof r||"number"!=typeof i||"number"!=typeof o||"number"!=typeof u?"#VALUE!":n(e).isValid()&&n(t).isValid()?0>r||0>i?"#NUM!":-1===[1,2,4].indexOf(u)?"#NUM!":-1===[0,1,2,3,4].indexOf(o)?"#NUM!":n(t).diff(n(e))>=0?"#NUM!":(t=n(t),e=n(e),a(t,e,r,i,u,o,!1)):"#VALUE!"},r.MDURATION=function(t,e,r,i,u,o){return(null===o||void 0===o)&&(o=0),"number"!=typeof r||"number"!=typeof i||"number"!=typeof o||"number"!=typeof u?"#VALUE!":n(e).isValid()&&n(t).isValid()?0>r||0>i?"#NUM!":-1===[1,2,4].indexOf(u)?"#NUM!":-1===[0,1,2,3,4].indexOf(o)?"#NUM!":n(t).diff(n(e))>=0?"#NUM!":(t=n(t),e=n(e),a(t,e,r,i,u,o,!0)):"#VALUE!"},r})},{"../lib/common.js":4,"../lib/daycountbasis.js":5,moment:13}],4:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment");t.exports=r(i)}else"function"==typeof define&&define.amd&&define(["moment"],r)})(function(n){var t=this.Common={};t.isLastDayOfMonth=function(n){var e=t.lastDayOfMonth(n);return e===n.date()},t.lastDayOfMonth=function(n){return n.daysInMonth()},t.isLastDayOfFebruary=function(n){var e=n.month();return 2===e&&t.isLastDayOfMonth(n)};var e={};e.FromFirstToSettlement=0,e.FromIssueToSettlement=1,t.AccrIntCalcMethod=e;var r={};r.DontSwitchToStraightLine=1,r.SwitchToStraightLine=0,t.VdbSwitch=r;var i={};i.EndOfPeriod=0,i.BeginningOfPeriod=1,t.PaymentDue=i,t.rest=function(n){return n-Math.floor(n)},t.round=function(n,t){if(n){var e=t.toFixed(13),r=parseFloat(e);return Math.round(r)}return Math.round(t)};var u=1e-4;t.areEqual=function(n,t){return u>Math.abs(n-t)?!0:!1},t.log10=function(n){return Math.log(n)/Math.LN10};var o=function(n,t,e){for(var r=0,i=e.length,u=t;i>r;r++)u=n(u,e[r],r,e);return u};t.map=function(n,t){for(var e=[],r=t.length,i=0;r>i;i++){var u=n(t[i]);e.push(u)}return e},t.mapi=function(n,t){for(var e=[],r=t.length,i=0;r>i;i++){var u=n(i,t[i]);e.push(u)}return e},t.map2=function(n,t,e){for(var r=[],i=t.length,u=e.length,o=i>=u?u:i,a=0;o>a;a++){var s=n(t[a],e[a]);r.push(s)}return r},t.allValidDates=function(t){for(var e=0;t.length>e;e++)if(!n(t[e]).isValid())return!1;return!0},t.allValidNumbers=function(n){for(var t=0;n.length>t;t++)if("number"!=typeof n[t]&&null!==n[t])return!1;return!0},t.raisable=function(n,t){return!(0>1+n&&0!==t%1)},t.idem=function(n){return n},t.sumBy=function(n,e){for(var r=t.map(n,e),i=0,u=0;r.length>u;u++)i+=r[u];return i},t.aggrBetween=function(n,t,e,r){var i=[];if(t>=n)for(var u=n;t>=u;u++)i.push(u);else for(var u=n;u>=t;u--)i.push(u);return o(e,r,i)};var a=function(n,t,e,r,i){if(e>=t||t>=r)return null;var u=.01,o=1.6,a=60,s=function(n){return e>=n?e+i:n},f=function(n){return n>=r?r-i:n},c=function(t,e,r){if(r-=1,0===r)return null;var i=s(t),u=f(e),a=n(i),d=n(u);return 0===a*d?[i,u]:0>a*d?[i,u]:a*d>0?c(i+o*(i-u),u+o*(u-i),r):void 0},d=s(t-u),l=f(t+u);return c(d,l,a)},s=function(n,t,e,r,i){var u=200,o=function(n,t,e,r,i){if(t===e)return null;var a=n(t);if(i>Math.abs(a))return t;var s=n(e);if(i>Math.abs(s))return e;var f=r+1;if(f>u)return null;if(a*s>0)return null;var c=t+.5*(e-t),d=n(c);return i>Math.abs(d)?c:0>a*d?o(n,t,c,f,i):a*d>0?o(n,c,e,f,i):null};return o(n,t,e,r,i)},f=function(n,t,e,r){var i=20,u=function(n,t,e,r){var o=function(n,t){return(n(t+r)-n(t-r))/(2*r)},a=n(t),s=o(n,t),f=t-a/s;return r>Math.abs(f-t)?f:e>i?null:u(n,f,e+1,r)};return u(n,t,e,r)};return t.findRoot=function(n,t){var e=1e-7,r=f(n,t,0,e),i=function(n,t){return n*t>0};if(null!=r&&i(t,r))return r;var u=a(n,t,-1,Number.MAX_VALUE,e),o=u[0],c=u[1];return s(n,o,c,0,e)},t})},{moment:13}],5:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js");t.exports=r(i,u)}else"function"==typeof define&&define.amd&&define(["moment","common"],r)})(function(n,t){var e=this.DayCount={},r=0,i=2,u=3,o=4,a={};a.UsPsa30_360=0,a.ActualActual=1,a.Actual360=2,a.Actual365=3,a.Europe30_360=4,e.DayCountBasis=a;var s={};s.ModifyStartDate=0,s.ModifyBothDates=1,e.Method360Us=s;var f={};f.Denumerator=0,f.Numerator=1,e.NumDenumPosition=f,e.dateDiff360=function(t,e){var t=n(t),e=n(e),r=t.date(),i=t.month(),u=t.year(),o=e.date(),a=e.month(),s=e.year();return 360*(s-u)+30*(a-i)+(o-r)},e.dateDiff365=function(t,e){var r=t.date(),i=t.month(),u=t.year(),o=e.date(),a=e.month(),s=e.year(),f=r,c=i,d=u,l=o,h=a,m=s;t.clone(),e.clone(),f>28&&2===c&&(f=28),l>28&&2===h&&(l=28);var y=new n(new Date(d,c,f)),p=new n(new Date(m,h,l));return 365*(m-d)+p.diff(y,"days")},e.dateDiff360Us=function(r,i,u){var o=r.date(),a=r.month(),f=r.year(),c=i.date(),d=i.month(),l=i.year(),h=o,m=a,y=f,p=c,M=d,D=l,v=r.clone(),_=i.clone();t.isLastDayOfFebruary(_)&&(t.isLastDayOfFebruary(v)||u===s.ModifyStartDate)&&(p=30),31===p&&(h>=30||u===s.ModifyBothDates)&&(p=30),31===h&&(h=30),t.isLastDayOfFebruary(v)&&(h=30);var b=n(new Date(y,m,h)),C=n(new Date(D,M,p));return e.dateDiff360(b,C)},e.dateDiff360Eu=function(t,r){var i=t.date(),u=t.month(),o=t.year(),a=r.date(),s=r.month(),f=r.year(),c=i,d=u,l=o,h=a,m=s,y=f;t.clone(),r.clone(),31===c&&(c=30),31===h&&(h=30);var p=new n(new Date(l,d,c)),M=new n(new Date(y,m,h));return e.dateDiff360(p,M)};var c=function(){var n={};return n.CoupDays=function(n,t,e){return 360/e},n.CoupPCD=function(n,t,r){return e.findPreviousCouponDate(n,t,r,a.UsPsa30_360)},n.CoupNCD=function(n,t,r){return e.findNextCouponDate(n,t,r,a.UsPsa30_360)},n.CoupNum=function(n,t,r){return e.numberOfCoupons(n,t,r,a.UsPsa30_360)},n.CoupDaysBS=function(t,r,i){var u=n.CoupPCD(t,r,i);return e.dateDiff360Us(u,t,s.ModifyStartDate)},n.CoupDaysNC=function(n,t,r){var i=e.findPreviousCouponDate(n,t,r,a.UsPsa30_360),u=e.findNextCouponDate(n,t,r,a.UsPsa30_360),o=e.dateDiff360Us(i,u,s.ModifyBothDates),f=e.dateDiff360Us(i,n,s.ModifyStartDate);return o-f},n.DaysBetween=function(n,t){return e.dateDiff360Us(n,t,s.ModifyStartDate)},n.DaysInYear=function(){return 360},n.ChangeMonth=function(n,t,i){return e.changeMonth(n,t,r,i)},n}(),d=function(){var n={};return n.CoupDays=function(n,t,e){return 360/e},n.CoupPCD=function(n,t,r){return e.findPreviousCouponDate(n,t,r,a.Europ30_360)},n.CoupNCD=function(n,t,r){return e.findNextCouponDate(n,t,r,a.Europ30_360)},n.CoupNum=function(n,t,r){return e.numberOfCoupons(n,t,r,a.Europ30_360)},n.CoupDaysBS=function(t,r,i){var u=n.CoupPCD(t,r,i);return e.dateDiff360Eu(u,t)},n.CoupDaysNC=function(t,r,i){var u=n.CoupNCD(t,r,i);return e.dateDiff360Eu(t,u)},n.DaysBetween=function(n,t){return e.dateDiff360Eu(n,t)},n.DaysInYear=function(){return 360},n.ChangeMonth=function(n,t,r){return e.changeMonth(n,t,o,r)},n}(),l=function(){var n={};return n.CoupDays=function(n,t,e){return 360/e},n.CoupPCD=function(n,t,r){return e.findPreviousCouponDate(n,t,r,a.Actual360)},n.CoupNCD=function(n,t,r){return e.findNextCouponDate(n,t,r,a.Actual360)},n.CoupNum=function(n,t,r){return e.numberOfCoupons(n,t,r,a.Actual360)},n.CoupDaysBS=function(t,e,r){var i=n.CoupPCD(t,e,r);return t.diff(i,"days")},n.CoupDaysNC=function(t,e,r){var i=n.CoupNCD(t,e,r);return i.diff(t,"days")},n.DaysBetween=function(n,t,r){return r===f.Numerator?t.diff(n,"days"):e.dateDiff360Us(n,t,s.ModifyStartDate)},n.DaysInYear=function(){return 360},n.ChangeMonth=function(n,t,r){return e.changeMonth(n,t,i,r)},n}(),h=function(){var n={};return n.CoupDays=function(n,t,e){return 365/e},n.CoupPCD=function(n,t,r){return e.findPreviousCouponDate(n,t,r,a.Actual365)},n.CoupNCD=function(n,t,r){return e.findNextCouponDate(n,t,r,a.Actual365)},n.CoupNum=function(n,t,r){return e.numberOfCoupons(n,t,r,a.Actual365)},n.CoupDaysBS=function(t,e,r){var i=n.CoupPCD(t,e,r);return t.diff(i,"days")},n.CoupDaysNC=function(t,e,r){var i=n.CoupNCD(t,e,r);return i.diff(t,"days")},n.DaysBetween=function(n,t,r){return r==f.Numerator?t.diff(n,"days"):e.dateDiff365(n,t)},n.DaysInYear=function(){return 365},n.ChangeMonth=function(n,t,r){return e.changeMonth(n,t,u,r)},n}();e.actualCoupDays=function(n,t,r){var i=e.findPreviousCouponDate(n,t,r,a.ActualActual),u=e.findNextCouponDate(n,t,r,a.ActualActual);return u.diff(i,"days")};var m=function(){var t={};return t.CoupDays=function(n,t,r){return e.actualCoupDays(n,t,r)},t.CoupPCD=function(n,t,r){return e.findPreviousCouponDate(n,t,r,a.ActualActual)},t.CoupNCD=function(n,t,r){return e.findNextCouponDate(n,t,r,a.ActualActual)},t.CoupNum=function(n,t,r){return e.numberOfCoupons(n,t,r,a.ActualActual)},t.CoupDaysBS=function(n,e,r){var i=t.CoupPCD(n,e,r);return n.diff(i,"days")},t.CoupDaysNC=function(n,e,r){var i=t.CoupNCD(n,e,r);return i.diff(n,"days")},t.DaysBetween=function(n,t){return t.diff(n,"days")},t.DaysInYear=function(t,r){if(e.lessOrEqualToAYearApart(t,r))return e.considerAsBisestile(t,r)?366:365;var i=r.year()-t.year()+1,u=n(new Date(t.year(),1,1)),o=n(new Date(r.year()+1,1,1)),a=o.diff(u,"days");return a/i},t.ChangeMonth=function(n,t,r){return e.changeMonth(n,t,a.ActualActual,r)},t}();return e.DayCounts=[c,m,l,h,d],e.dayCount=function(n){return n>=0&&4>=n?e.DayCounts[n]:null},e.freq2months=function(n){return 12/n},e.isLastDayOfMonthBasis=function(n,e){var i=n.date();return t.isLastDayOfMonth(n)||30===i&&e===r},e.changeMonth=function(e,r,i,u){var o=e.clone(),a=o.add("months",r),s=t.lastDayOfMonth(a);return u?n(new Date(a.year(),a.month(),s)):a},e.noActionDates=function(){return 0},e.datesAggregate1=function(n,t,r,i,u,o,a){for(var s=n.clone(),f=t.clone(),c=s.isAfter(t)||s.isSame(t),d=t.isAfter(s)||t.isSame(s),l=r>0?c:d;l===!1;){f=s,s=e.changeMonth(s,r,i,a);var h=u(s,f);o+=h,c=s.isAfter(t)||s.isSame(t),d=t.isAfter(s)||t.isSame(s),l=r>0?c:d}return[s,f,o]},e.findPcdNcd=function(n,t,r,i,u){var o=e.datesAggregate1(n,t,r,i,e.noActionDates,0,u);return[o[0],o[1]]},e.findCouponDates=function(n,r,i,u){var o=t.isLastDayOfMonth(r),a=-e.freq2months(i);return e.findPcdNcd(r,n,a,u,o)},e.findPreviousCouponDate=function(n,t,r,i){return e.findCouponDates(n,t,r,i)[0]},e.findNextCouponDate=function(n,t,r,i){return e.findCouponDates(n,t,r,i)[1]},e.numberOfCoupons=function(n,t,r,i){var u=e.findPreviousCouponDate(n,t,r,i),o=u.year(),a=u.month(),s=t.year(),f=t.month(),c=12*(s-o)+(f-a);return c*r/12},e.lessOrEqualToAYearApart=function(n,t){var e=n.year(),r=t.year(),i=n.month(),u=t.month(),o=n.date(),a=t.date();return e===r||r===e+1&&(i>u||i===u&&o>=a)},e.isFeb29BetweenConsecutiveYears=function(n,t){var e=n.year(),r=t.year(),i=n.month(),u=t.month();return n.date(),t.date(),e===r&&n.isLeapYear()?2>=i&&u>2:e===r?!1:r===e+1?n.isLeapYear()?2>=i:t.isLeapYear()?u>2:!1:!1},e.considerAsBisestile=function(n,t){var r=n.year(),i=t.year(),u=(n.month(),t.month()),o=(n.date(),t.date());return r===i&&n.isLeapYear()||2===u&&29===o||e.isFeb29BetweenConsecutiveYears(n,t)},e.COUPDAYS=function(t,e,r,i){if((null===i||void 0===i)&&(i=0),"number"!=typeof r||"number"!=typeof i)return"#VALUE!";if(!n(t).isValid()||!n(e).isValid())return"#VALUE!";if(-1===[1,2,4].indexOf(r))return"#NUM!";if(-1===[0,1,2,3,4].indexOf(i))return"#NUM!";if(e=n(e),t=n(t),!e.isAfter(t))return"#NUM!";var u=DayCount.dayCount(i);return u.CoupDays(t,e,r)},e.COUPPCD=function(t,e,r,i){if((null===i||void 0===i)&&(i=0),"number"!=typeof r||"number"!=typeof i)return"#VALUE!";if(!n(t).isValid()||!n(e).isValid())return"#VALUE!";if(-1===[1,2,4].indexOf(r))return"#NUM!";if(-1===[0,1,2,3,4].indexOf(i))return"#NUM!";if(e=n(e),t=n(t),!e.isAfter(t))return"#NUM!";var u=DayCount.dayCount(i);return u.CoupPCD(t,e,r)},e.COUPNCD=function(t,e,r,i){if((null===i||void 0===i)&&(i=0),"number"!=typeof r||"number"!=typeof i)return"#VALUE!";if(!n(t).isValid()||!n(e).isValid())return"#VALUE!";if(-1===[1,2,4].indexOf(r))return"#NUM!";if(-1===[0,1,2,3,4].indexOf(i))return"#NUM!";if(e=n(e),t=n(t),!e.isAfter(t))return"#NUM!";var u=DayCount.dayCount(i);return u.CoupNCD(t,e,r)},e.COUPNUM=function(t,e,r,i){if((null===i||void 0===i)&&(i=0),"number"!=typeof r||"number"!=typeof i)return"#VALUE!";if(!n(t).isValid()||!n(e).isValid())return"#VALUE!";if(-1===[1,2,4].indexOf(r))return"#NUM!";if(-1===[0,1,2,3,4].indexOf(i))return"#NUM!";if(e=n(e),t=n(t),!e.isAfter(t))return"#NUM!";var u=DayCount.dayCount(i);return u.CoupNum(t,e,r)},e.COUPDAYSBS=function(t,e,r,i){if((null===i||void 0===i)&&(i=0),"number"!=typeof r||"number"!=typeof i)return"#VALUE!";if(!n(t).isValid()||!n(e).isValid())return"#VALUE!";if(-1===[1,2,4].indexOf(r))return"#NUM!";if(-1===[0,1,2,3,4].indexOf(i))return"#NUM!";if(e=n(e),t=n(t),!e.isAfter(t))return"#NUM!";var u=DayCount.dayCount(i);return u.CoupDaysBS(t,e,r)},e.COUPDAYSNC=function(t,e,r,i){if((null===i||void 0===i)&&(i=0),"number"!=typeof r||"number"!=typeof i)return"#VALUE!";if(!n(t).isValid()||!n(e).isValid())return"#VALUE!";if(-1===[1,2,4].indexOf(r))return"#NUM!";if(-1===[0,1,2,3,4].indexOf(i))return"#NUM!";if(e=n(e),t=n(t),!e.isAfter(t))return"#NUM!";var u=DayCount.dayCount(i);return u.CoupDaysNC(t,e,r)},e.YEARFRAC=function(t,e,r){if((null===r||void 0===r)&&(r=0),"number"!=typeof r)return"#VALUE!";if(!n(t).isValid()||!n(e).isValid())return"#VALUE!";if(-1===[0,1,2,3,4].indexOf(r))return"#NUM!";if(t=n(t),e=n(e),!e.isAfter(t))return"#NUM!";var i=DayCount.dayCount(r);return i.DaysBetween(t,e,DayCount.NumDenumPosition.Numerator)/i.DaysInYear(t,e)},e})},{"../lib/common.js":4,moment:13}],6:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js"),o=n("../lib/daycountbasis.js");t.exports=r(i,u,o)}else"function"==typeof define&&define.amd&&define(["moment","common","daycountbasis"],r)})(function(n,t,e){var r=this.Depreciation={},i=function(n,t,e){var r=1-Math.pow(t/n,1/e);return parseFloat(r.toFixed(3))},u=function(n,t,e){return(n-t)*e},o=function(n,t,e){return n*t*e/12},a=function(n,t,e,r){return(n-t)*e*(12-r)/12},s=function(n,t,e,r,s){for(var f=i(n,t,e),c=0,d=0;r>c;)if(0===c){var l=o(n,f,s);if(1>=Math.floor(r))return l;d=l,c+=1}else{if(e>=r){if(c===Math.floor(r)-1)return u(n,d,f);if(c===Math.floor(e)-1)return a(n,d,f,s);var l=u(n,d,f);d+=l}else{if(c===Math.floor(r)-1)return a(n,d,f,s);var l=u(n,d,f);d+=l}c+=1}},f=function(n,t,e){return(n-t)/e},c=function(n,t,e,r){return 2*(n-t)*(e-r+1)/(e*(e+1))},d=function(n,e,i,u,o,a){var s=function(f,c){var d=t.rest(u),l=function(t){return Math.min((n-t)*(o/i),n-e-t)},h=function(t,u){return r.SLN(n-t,e,i-u)},m=l(f),y=h(f,c),p=a&&y>m,M=p===!0?y:m,D=f+M;if(0===Math.floor(u))return D*d;if(Math.floor(c)===Math.floor(u)-1){var v=l(D),_=h(D,c+1),b=a&&_>v,C=null;return C=b?Math.floor(u)===Math.floor(i)?0:_:v,D+C*d}return s(D,c+1)};return s(0,0)},l=function(n,t,e,r,i,u,o){return d(n,t,e,i,u,o)-d(n,t,e,r,u,o)},h=function(n,t,e,r,i){return r>=2?l(n,t,e,r-1,r,i,!1):d(n,t,e,r,i,!1)},m=function(n,e,r,i,u,o,a){return a===t.VdbSwitch.DontSwitchToStraightLine?l(n,e,r,i,u,o,!1):l(n,e,r,i,u,o,!0)},y=function(n,t){if(t===e.DayCountBasis.ActualActual)return n.isLeapYear()?366:365;var r=e.dayCount(t);return r.DaysInYear(n,n)},p=function(t,r,i,u,o,a,s){var f=function(t){var r=t.year(),i=t.month(),u=t.date();return(s===e.DayCountBasis.ActualActual||s===e.DayCountBasis.Actual365)&&t.isLeapYear()&&2===i&&u>=28?n(new Date(r,i,28)):t},c=e.dayCount(s),d=y(r,s),l=f(r),h=f(i),m=c.DaysBetween(l,h,e.NumDenumPosition.Numerator),p=m/d*o*t,M=0===p?t*o:p,D=0===p?a:a+1,v=t-u;return M>v?[v,D]:[M,D]},M=function(n,t,e,r,i,u,o){var a=Math.ceil(1/u),s=function(n,t,e){if(n>i)return t;var t=t>e?e:t,r=e-t,e=0>r?0:r;return s(n+1,t,e)};if(n===r||i>a)return 0;var f=p(n,t,e,r,u,a,o)[0];return 0===i?f:s(1,u*n,n-r-f)},D=function(n){var t=function(t,e){return n>=t&&e>=n};return t(3,4)?1.5:t(5,6)?2:n>6?2.5:1},v=function(n,e,r,i,u,o,a,s){var f=Math.ceil(1/o);if(n===i||u>f)return 0;var c=D(f),d=o*c,l=p(n,e,r,i,d,f,a),h=l[0],m=l[1],y=t.round(s,h),M=function(n,e,r,o){if(n>u)return t.round(s,e);var n=n+1,a=m-n,f=t.areEqual(a,2)?.5*o:r*o,r=t.areEqual(a,2)?1:r,e=null;if(!(i>o))return f;e=0>o-i?0:o-i;var o=o-e;return M(n,e,r,o)};return 0===u?y:M(1,0,d,n-y)};return r.DB=function(n,t,e,r,i){return(null===i||void 0===i)&&(i=12),"number"!=typeof n||"number"!=typeof t||"number"!=typeof e||"number"!=typeof r||"number"!=typeof i?"#VALUE!":0>n||0>t||0>=e||0>=i||0>=r?"#NUM!":i>12?"#NUM!":s(n,t,e,r,i)},r.SLN=function(n,t,e){return"number"!=typeof n||"number"!=typeof t||"number"!=typeof e?"#VALUE":0>n||0>t||0>=e?"#NUM!":f(n,t,e)},r.SYD=function(n,t,e,r){return"number"!=typeof n||"number"!=typeof t||"number"!=typeof e||"number"!=typeof r?"#VALUE!":0>n||0>t||0>=e||0>=r?"#NUM!":c(n,t,e,r)},r.DDB=function(n,t,e,r,i){return(null===i||void 0===i)&&(i=2),"number"!=typeof n||"number"!=typeof t||"number"!=typeof e||"number"!=typeof r||"number"!=typeof i?"#VALUE!":0>n||0>t||0>=e||0>=i||0>=r?"#NUM!":0===r?Math.min(n*(i/e),n-t):h(n,t,e,r,i)},r.VDB=function(n,t,e,r,i,u,o){return(null===u||void 0===u)&&(u=2),(null===o||void 0===o)&&(o=!1),"number"!=typeof n||"number"!=typeof t||"number"!=typeof e||"number"!=typeof r||"number"!=typeof i||"number"!=typeof u||"boolean"!=typeof o?"#VALUE!":0>n||0>t||0>=e||0>=u||0>=i?"#NUM!":m(n,t,e,r,i,u,o)},r.AMORLINC=function(t,e,r,i,u,o,a){return(null===a||void 0===a)&&(a=0),"number"!=typeof t||"number"!=typeof i||"number"!=typeof u||"number"!=typeof o||"number"!=typeof a?"#VALUE":n(e).isValid()&&n(r).isValid()?0>t||0>i||0>u||0>o?"#NUM":2===a?"#NUM":(e=n(e),r=n(r),M(t,e,r,i,u,o,a)):"#VALUE!"},r.AMORDEGRC=function(t,e,r,i,u,o,a,s){return(null===a||void 0===a)&&(a=0),"number"!=typeof t||"number"!=typeof i||"number"!=typeof u||"number"!=typeof o||"number"!=typeof a?"#VALUE":n(e).isValid()&&n(r).isValid()?0>t||0>i||0>u||0>o?"#NUM":2===a?"#NUM":(e=n(e),r=n(r),v(t,e,r,i,u,o,a,s)):"#VALUE!"},r})},{"../lib/common.js":4,"../lib/daycountbasis.js":5,moment:13}],7:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js"),o=n("../lib/tvm.js");t.exports=r(i,u,o)}else"function"==typeof define&&define.amd&&define(["moment","common","tvm"],r)})(function(n,t,e){var r=this.Irr={},i=e.pvFactor,u=function(n,e){var r=function(t,e){return e*i(n,t+1)};return t.sumBy(t.idem,t.mapi(r,e))},o=function(n,e){var r=function(t){return u(t,n)};return t.findRoot(r,e)},a=function(n,e,r){var i=n.length,o=function(n){return n>0?n:0},a=function(n){return 0>n?n:0},s=t.map(o,n),f=t.map(a,n),c=-u(r,s)*Math.pow(1+r,i),d=u(e,f)*(1+e);return Math.pow(c/d,1/(i-1))-1
},s=function(n,e,r){var i=r[0],u=function(t,e){var r=t.diff(i,"days");return e/Math.pow(1+n,r/365)};return t.sumBy(t.idem,t.map2(u,r,e))},f=function(n,e,r){var i=function(t){return s(t,n,e)};return t.findRoot(i,r)},c=function(n){var t=function(n,e,r){if(e===!0&&r===!0)return!0;if(0===n.length)return!1;var i=n[0],u=n.slice(1,n.length);return i>0?t(u,!0,r):t(u,e,!0)};return t(n,!1,!1)};return r.IRR=function(n,t){return(null===t||void 0===t)&&(t=.1),"number"!=typeof t?"#VALUE!":c(n)?o(n,t):"#NUM!"},r.NPV=function(n,t){return"number"!=typeof n?"#VALUE!":-1===n?"#NUM!":u(n,t)},r.MIRR=function(n,t,e){return"number"!=typeof t||"number"!=typeof e?"#VALUE!":-1===t||-1===e?"#NUM!":1>=n.length?"#NUM!":a(n,t,e)},r.XNPV=function(e,r,i){return"number"!=typeof e?"#VALUE!":r.length!==i.length?"#NUM!":(i=t.map(function(t){return n(t)},i),-1===e?"#NUM!":s(e,r,i))},r.XIRR=function(e,r,i){return(null===i||void 0===i)&&(i=.1),"number"!=typeof i?"#VALUE!":c(e)?e.length!==r.length?"#NUM!":(r=t.map(function(t){return n(t)},r),f(e,r,i)):"#NUM!"},r})},{"../lib/common.js":4,"../lib/tvm.js":12,moment:13}],8:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js"),o=n("../lib/tvm.js");t.exports=r(i,u,o)}else"function"==typeof define&&define.amd&&define(["moment","common","tvm"],r)})(function(n,t,e){var r=this.Loan={},i=e.pmt,u=e.fvFactor,o=e.annuityCertainPvFactor,a=function(n,e,r,o,a,s){var f=-(o*u(n,e-1)*n+i(n,r,o,a,t.PaymentDue.EndOfPeriod)*(u(n,e-1)-1));return s===t.PaymentDue.EndOfPeriod?f:f/(1+n)},s=function(n,t,e,r,u,o){return i(n,e,r,u,o)-a(n,t,e,r,u,o)},f=function(n,t,e,r){var i=-r*n;return i-i/e*t};return r.IPMT=function(n,e,r,i,u,s){return(null===u||void 0===u)&&(u=0),(null===s||void 0===s)&&(s=0),t.raisable(n,r)?t.raisable(n,e-1)?0===u&&0===i?"#NUM!":-1===n&&0>=r&&0>=e&&s!==t.PaymentDue.EndOfPeriod?"#NUM!":0===o(n,r,s)?"#NUM!":1>e||e>r?"#NUM!":0>=r?"#NUM!":1===e&&s===t.PaymentDue.BeginningOfPeriod?0:-1===n?-u:a(n,e,r,i,u,s):"#NUM!":"#NUM!"},r.PPMT=function(n,e,r,u,a,f){return(null===a||void 0===a)&&(a=0),(null===f||void 0===f)&&(f=0),t.raisable(n,r)?t.raisable(n,e-1)?0===a&&0===u?"#NUM!":-1===n&&0>=r&&0>=e&&f!==t.PaymentDue.EndOfPeriod?"#NUM!":0===o(n,r,f)?"#NUM!":1>e||e>r?"#NUM!":0>=r?"#NUM!":1===e&&f===t.PaymentDue.BeginningOfPeriod?i(n,r,u,a,f):-1===n?0:s(n,e,r,u,a,f):"#NUM!":"#NUM!"},r.CUMIPMT=function(n,e,i,u,a,s){if(!t.raisable(n,e))return"#NUM!";if(!t.raisable(n,u-1))return"#NUM!";if(0>=i||0>=n||0>=e)return"#NUM!";if(1>u||1>a||u>a)return"#NUM!";if(0!==s&&1!==s)return"#NUM!";if(0===o(n,e,s))return"#NUM!";if(a>e)return"#NUM!";var f=function(t,u){return t+r.IPMT(n,u,e,i,0,s)};return t.aggrBetween(Math.ceil(u),a,f,0)},r.CUMPRINC=function(n,e,i,u,a,s){if(!t.raisable(n,e))return"#NUM!";if(!t.raisable(n,u-1))return"#NUM!";if(0>=i||0>=n||0>=e)return"#NUM!";if(1>u||1>a||u>a)return"#NUM!";if(0!==s&&1!==s)return"#NUM!";if(0===o(n,e,s))return"#NUM!";if(a>e)return"#NUM!";var f=function(t,u){return t+r.PPMT(n,u,e,i,0,s)};return t.aggrBetween(Math.ceil(u),a,f,0)},r.ISPMT=function(n,t,e,r){return 1>t||t>e?"#NUM!":0>=e?"#NUM!":f(n,t,e,r)},r})},{"../lib/common.js":4,"../lib/tvm.js":12,moment:13}],9:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js");t.exports=r(i,u)}else"function"==typeof define&&define.amd&&define(["moment","common"],r)})(function(n,t){var e=this.Misc={},r=function(n,e,r){var i=Math.floor(e),u=n>0?Math.floor(n):Math.ceil(n),o=n-u,a=Math.pow(10,Math.ceil(t.log10(i)));return r(i,u,o,a)},i=function(n,t,e,r){return e*r/n+t},u=function(n,t,e,r){var i=Math.abs(r);return e*n/i+t},o=function(n,t){var e=Math.floor(t);return Math.pow(n/e+1,e)-1},a=function(n,t){var e=Math.floor(t);return(Math.pow(n+1,1/e)-1)*e};return e.DOLLARDE=function(n,t){return t=Math.floor(t),0>t?"#NUM!":0===t?"#DIV/0!":r(n,t,i)},e.DOLLARFR=function(n,t){return t=Math.floor(t),0>t?"#NUM!":0===t?"#DIV/0!":r(n,t,u)},e.EFFECT=function(n,t){return"number"!=typeof n||"number"!=typeof t?"#VALUE!":(t=Math.floor(t),0>=n||1>t?"#NUM!":o(n,t))},e.NOMINAL=function(n,t){return"number"!=typeof n||"number"!=typeof t?"#VALUE!":(t=Math.floor(t),0>=n||1>t?"#NUM!":a(n,t))},e})},{"../lib/common.js":4,moment:13}],10:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js"),o=n("../lib/daycountbasis.js");t.exports=r(i,u,o)}else"function"==typeof define&&define.amd&&define(["moment","common","daycountbasis"],r)})(function(n,t,e){var r=this.OddBonds={},i=function(n,r,i,u,o){var a=(n.year(),n.month()),s=n.date();r.year(),r.month(),r.date();var f=1==o?0:1,c=t.isLastDayOfMonth(n),d=c===!1&&2!=a&&s>28&&n.daysInMonth()>s?t.isLastDayOfMonth(r):c,l=e.changeMonth(r,0,u,d),h=l.isAfter(r)?f+1:f,m=e.changeMonth(l,i,u,d),y=function(){return 1},p=e.datesAggregate1(m,n,i,u,y,h,d)[2];return p},u=function(n,t,r){var i=n.DaysBetween(t,r,e.NumDenumPosition.Numerator);return i>0?i:0},o=function(n,t){var r=e.dateDiff360Us(n,t,e.Method360Us.ModifyBothDates);return r>0?r:0},a=function(n,t,r,i){return i===e.UsPsa30_360?o(t,r):u(n,t,r)},s=function(n,r,o,a,s,f,c,d,l){r.year(),r.month(),r.date();var h=e.dayCount(l);t.isLastDayOfMonth(r);var m=e.freq2months(d),y=-m,p=h.CoupDays(n,a,d),M=h.CoupNum(n,r,d),D=d,v=u(h,o,a);if(p>v){var _=u(h,n,a),b=u(h,o,n),C=f/D+1,U=_/p,g=C,N=Math.pow(g,M-1+U),A=c/N,w=100*s/D*v/p/Math.pow(g,U),Y=function(n,t){return n+100*s/D/Math.pow(g,t-1+U)},O=t.aggrBetween(2,Math.floor(M),Y,0),L=s/D,P=100*b/p*L;return A+w+O-P}var E=h.CoupNum(o,a,d),V=a,S=function(t,r){var i=e.changeMonth(V,y,l,!1),a=l===e.ActualActual?u(h,i,V):p,s=r>1?a:u(h,o,V),f=o>i?o:i,c=V>n?n:V,d=u(h,f,c);V=i;var m=t[0],M=t[1];return[m+s/a,M+d/a]},T=t.aggrBetween(Math.floor(E),1,S,[0,0]),I=T[0],k=T[1],_=0;if(l===e.Actual360||l===e.Actual365){var F=h.CoupNCD(n,a,d);_=u(h,n,F)}else{var F=h.CoupPCD(n,a,d),b=h.DaysBetween(F,n,NumDenumPosition.Numerator);_=p-b}var R=i(a,n,m,l,!0),M=h.CoupNum(a,r,d),C=f/D+1,U=_/p,g=C,N=Math.pow(g,U+R+M),A=c/N,w=100*s/D*I/Math.pow(g,R+U),Y=function(n,t){return n+100*s/D/Math.pow(g,t+R+U)},O=t.aggrBetween(1,Math.floor(M),Y,0),P=100*s/D*k;return A+w+O-P},f=function(n,r,i,u,o,a,f,c,d){var l=e.dayCount(d),h=l.DaysBetween(n,r,e.NumDenumPosition.Numerator),m=a-100,y=100*o*h-m,p=m/4+h*m/2+100*h,M=y/p,D=function(t){return a-s(n,r,i,u,o,t,f,c,d)};return t.findRoot(D,M)},c=function(n,r,i,o,s,f,c,d,l){var h=e.dayCount(d),m=c,y=Math.floor(12/c),p=i,M=h.CoupNum(p,r,c),D=p,v=function(t,i){var o=e.changeMonth(D,y,d,!1),s=a(h,D,o,d),f=M>i?s:a(h,D,r,d),c=0;n>o?c=f:n>D&&(c=u(h,D,n));var l=n>D?n:D,m=o>r?r:o,p=u(h,l,m);D=o;var v=t[0],_=t[1],b=t[2];return[v+f/s,_+c/s,b+p/s]},_=t.aggrBetween(1,Math.floor(M),v,[0,0,0]),b=_[0],C=_[1],U=_[2],g=100*o/m,N=b*g+f;if(l){var A=U*s/m+1,w=C*g;return N/A-w}var A=C*g+s,w=m/U;return(N-A)/A*w};return r.ODDFPRICE=function(r,i,u,o,a,f,c,d,l){if(!(n(r).isValid()&&n(i).isValid()&&n(u).isValid()&&n(o).isValid()))return"#VALUE!";r=n(r),i=n(i),u=n(u),o=n(o);var h=t.isLastDayOfMonth(i),m=Math.floor(12/Math.floor(d)),y=-m,p=e.findPcdNcd(e.changeMonth(i,y,l,h),o,y,l,h),M=p[0];return p[1],M.isSame(o)?-1===[0,1,2,3,4].indexOf(l)?"#NUM!":0>a?"#NUM!":0>f?"#NUM!":0>c?"#NUM!":i.isAfter(o)?o.isAfter(r)?r.isAfter(u)?s(r,i,u,o,a,f,c,Math.floor(d),l):"#NUM!":"#NUM!":"#NUM!":"#NUM!"},r.ODDFYIELD=function(t,e,r,i,u,o,a,s,c){return n(t).isValid()&&n(e).isValid()&&n(r).isValid()&&n(i).isValid()?(t=n(t),e=n(e),r=n(r),i=n(i),0>u||0>=o?"#NUM!":-1===[0,1,2,3,4].indexOf(c)?"#NUM!":0>a?"#NUM!":e.isAfter(i)?i.isAfter(t)?t.isAfter(r)?f(t,e,r,i,u,o,a,Math.floor(s),c):"#NUM!":"#NUM!":"#NUM!"):"#VALUE!"},r.ODDLPRICE=function(t,e,r,i,u,o,a,s){return n(t).isValid()&&n(e).isValid()&&n(r).isValid()?(t=n(t),e=n(e),r=n(r),0>i||0>u||0>o?"#NUM!":-1===[0,1,2,3,4].indexOf(s)?"#NUM!":e.isAfter(t)?t.isAfter(r)?c(t,e,r,i,u,o,Math.floor(a),s,!0):"#NUM!":"#NUM!"):"#VALUE!"},r.ODDLYIELD=function(t,e,r,i,u,o,a,s){return n(t).isValid()&&n(e).isValid()&&n(r).isValid()?(t=n(t),e=n(e),r=n(r),0>i||0>=u||0>o?"#NUM!":-1===[0,1,2,3,4].indexOf(s)?"#NUM!":e.isAfter(t)?t.isAfter(r)?c(t,e,r,i,u,o,Math.floor(a),s,!1):"#NUM!":"#NUM!"):"#VALUE!"},r})},{"../lib/common.js":4,"../lib/daycountbasis.js":5,moment:13}],11:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js"),o=n("../lib/daycountbasis.js");t.exports=r(i,u,o)}else"function"==typeof define&&define.amd&&define(["moment","common","daycountbasis"],r)})(function(n){var t=this.TBill={},e=function(n,t,e){var r=DayCount.dayCount(e);return r.DaysBetween(n,t,DayCount.NumDenumPosition.Numerator)},r=function(n,t,r){var i=e(n,t,DayCount.DayCountBasis.Actual360);if(i>182){var u=(100-100*r*i/360)/100,o=366===i?366:365,a=Math.pow(i/o,2)-(2*i/o-1)*(1-1/u),s=Math.sqrt(a),f=2*i/o-1;return 2*(s-i/o)/f}return 365*r/(360-r*i)},i=function(n,t,r){var i=e(n,t,DayCount.DayCountBasis.ActualActual);return 360*((100-r)/r)/i},u=function(n,t,r){var i=e(n,t,DayCount.DayCountBasis.ActualActual);return 100*(1-r*i/360)};return t.TBILLEQ=function(t,e,i){return"number"!=typeof i?"#VALUE!":n(t).isValid()&&n(e).isValid()?0>=i?"#NUM!":(t=n(t),e=n(e),t.isAfter(e)||e.isAfter(t)&&e.diff(t,"years",!0)>1?"#NUM!":r(t,e,i)):"#VALUE!"},t.TBILLYIELD=function(t,e,r){return"number"!=typeof r?"#VALUE!":n(t).isValid()&&n(e).isValid()?0>=r?"#NUM!":(t=n(t),e=n(e),t.isAfter(e)||e.isAfter(t)&&e.diff(t,"years",!0)>1?"#NUM!":i(t,e,r)):"#VALUE!"},t.TBILLPRICE=function(t,e,r){return"number"!=typeof r?"#VALUE!":n(t).isValid()&&n(e).isValid()?0>=r?"#NUM!":(t=n(t),e=n(e),t.isAfter(e)||e.isAfter(t)&&e.diff(t,"years",!0)>1?"#NUM!":u(t,e,r)):"#VALUE!"},t})},{"../lib/common.js":4,"../lib/daycountbasis.js":5,moment:13}],12:[function(n,t,e){(function(r){if("object"==typeof e){var i=n("moment"),u=n("../lib/common.js");t.exports=r(i,u)}else"function"==typeof define&&define.amd&&define(["moment","common"],r)})(function(n,t){var e=this.Tvm={},r=function(n,t){return Math.pow(1+n,t)};e.fvFactor=r;var i=function(n,t){return 1/r(n,t)};e.pvFactor=i;var u=function(n,t,e){return 0===n?t:(1+n*e)*(1-i(n,t))/n};e.annuityCertainPvFactor=u;var o=function(n,t,e){return u(n,t,e)*r(n,t)},a=function(n,t,e,r){return e*n+t*(1+n*r)},s=function(n,t,e,r,o){return-(r*i(n,t)+e*u(n,t,o))},f=function(n,t,e,i,u){return-(i*r(n,t)+e*o(n,t,u))},c=function(n,t,e,r,o){return-(e+r*i(n,t))/u(n,t,o)};e.pmt=c;var d=function(n,t,e,r,i){return Math.log(a(n,t,-r,i)/a(n,t,e,i))/Math.log(n+1)};return e.PV=function(n,e,r,i,u){return(null===i||void 0===i)&&(i=0),(null===u||void 0===u)&&(u=0),t.raisable(n,e)===!1?"#NUM!":0===r&&0===i?"#NUM!":-1===n?"#NUM!":s(n,e,r,i,u)},e.FV=function(n,e,i,u,o){return(null===u||void 0===u)&&(u=0),(null===o||void 0===o)&&(o=0),t.raisable(n,e)===!1?"#NUM!":-1===n&&0>=e?"#NUM!":0===i&&0===u?"#NUM!":-1===n&&o===t.PaymentDue.BeginningOfPeriod?-(u*r(n,e)):-1===n&&o===t.PaymentDue.EndOfPeriod?-(u*r(n,e)+i):f(n,e,i,u,o)},e.PMT=function(n,e,r,i,o){return(null===i||void 0===i)&&(i=0),(null===o||void 0===o)&&(o=0),t.raisable(n,e)===!1?"#NUM!":0===i&&0===r?"#NUM!":-1===n&&0>=e&&o===t.PaymentDue.EndOfPeriod?"#NUM!":0===u(n,e,o)?"NUM!":-1===n?-i:c(n,e,r,i,o)},e.NPER=function(n,t,e,r,i){return(null===r||void 0===r)&&(r=0),(null===i||void 0===i)&&(i=0),0===n&&0!==t?-(r+e)/t:d(n,t,e,r,i)},e.RATE=function(n,r,i,u,o,a){if((null===u||void 0===u)&&(u=0),(null===o||void 0===o)&&(o=0),(null===a||void 0===a)&&(a=.1),0===r&&0===i)return"#NUM!";if(0>=n)return"#NUM!";if(0===u&&0===i)return 0>r?-1:1;var s=function(t){return e.FV(t,n,r,i,o)-u};return t.findRoot(s,a)},e.FVSCHEDULE=function(n,e){if("number"!=typeof n)return"#VALUE!";if(t.allValidNumbers(e)===!1)return"#VALUE!";for(var r=n,i=0;e.length>i;i++)r*=1+e[i];return r},e})},{"../lib/common.js":4,moment:13}],13:[function(n,t){(function(e){function r(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function i(n,t){return function(e){return l(n.call(this,e),t)}}function u(n,t){return function(e){return this.lang().ordinal(n.call(this,e),t)}}function o(){}function a(n){g(n),f(this,n)}function s(n){var t=D(n),e=t.year||0,r=t.month||0,i=t.week||0,u=t.day||0,o=t.hour||0,a=t.minute||0,s=t.second||0,f=t.millisecond||0;this._milliseconds=+f+1e3*s+6e4*a+36e5*o,this._days=+u+7*i,this._months=+r+12*e,this._data={},this._bubble()}function f(n,t){for(var e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return t.hasOwnProperty("toString")&&(n.toString=t.toString),t.hasOwnProperty("valueOf")&&(n.valueOf=t.valueOf),n}function c(n){var t,e={};for(t in n)n.hasOwnProperty(t)&&Dt.hasOwnProperty(t)&&(e[t]=n[t]);return e}function d(n){return 0>n?Math.ceil(n):Math.floor(n)}function l(n,t,e){for(var r=""+Math.abs(n),i=n>=0;t>r.length;)r="0"+r;return(i?e?"+":"":"-")+r}function h(n,t,e,r){var i,u,o=t._milliseconds,a=t._days,s=t._months;o&&n._d.setTime(+n._d+o*e),(a||s)&&(i=n.minute(),u=n.hour()),a&&n.date(n.date()+a*e),s&&n.month(n.month()+s*e),o&&!r&&ut.updateOffset(n),(a||s)&&(n.minute(i),n.hour(u))}function m(n){return"[object Array]"===Object.prototype.toString.call(n)}function y(n){return"[object Date]"===Object.prototype.toString.call(n)||n instanceof Date}function p(n,t,e){var r,i=Math.min(n.length,t.length),u=Math.abs(n.length-t.length),o=0;for(r=0;i>r;r++)(e&&n[r]!==t[r]||!e&&_(n[r])!==_(t[r]))&&o++;return o+u}function M(n){if(n){var t=n.toLowerCase().replace(/(.)s$/,"$1");n=qt[n]||Zt[t]||t}return n}function D(n){var t,e,r={};for(e in n)n.hasOwnProperty(e)&&(t=M(e),t&&(r[t]=n[e]));return r}function v(n){var t,r;if(0===n.indexOf("week"))t=7,r="day";else{if(0!==n.indexOf("month"))return;t=12,r="month"}ut[n]=function(i,u){var o,a,s=ut.fn._lang[n],f=[];if("number"==typeof i&&(u=i,i=e),a=function(n){var t=ut().utc().set(r,n);return s.call(ut.fn._lang,t,i||"")},null!=u)return a(u);for(o=0;t>o;o++)f.push(a(o));return f}}function _(n){var t=+n,e=0;return 0!==t&&isFinite(t)&&(e=t>=0?Math.floor(t):Math.ceil(t)),e}function b(n,t){return new Date(Date.UTC(n,t+1,0)).getUTCDate()}function C(n){return U(n)?366:365}function U(n){return 0===n%4&&0!==n%100||0===n%400}function g(n){var t;n._a&&-2===n._pf.overflow&&(t=0>n._a[dt]||n._a[dt]>11?dt:1>n._a[lt]||n._a[lt]>b(n._a[ct],n._a[dt])?lt:0>n._a[ht]||n._a[ht]>23?ht:0>n._a[mt]||n._a[mt]>59?mt:0>n._a[yt]||n._a[yt]>59?yt:0>n._a[pt]||n._a[pt]>999?pt:-1,n._pf._overflowDayOfYear&&(ct>t||t>lt)&&(t=lt),n._pf.overflow=t)}function N(n){return null==n._isValid&&(n._isValid=!isNaN(n._d.getTime())&&0>n._pf.overflow&&!n._pf.empty&&!n._pf.invalidMonth&&!n._pf.nullInput&&!n._pf.invalidFormat&&!n._pf.userInvalidated,n._strict&&(n._isValid=n._isValid&&0===n._pf.charsLeftOver&&0===n._pf.unusedTokens.length)),n._isValid}function A(n){return n?n.toLowerCase().replace("_","-"):n}function w(n,t){return t._isUTC?ut(n).zone(t._offset||0):ut(n).local()}function Y(n,t){return t.abbr=n,Mt[n]||(Mt[n]=new o),Mt[n].set(t),Mt[n]}function O(n){delete Mt[n]}function L(t){var e,r,i,u,o=0,a=function(t){if(!Mt[t]&&vt)try{n("./lang/"+t)}catch(e){}return Mt[t]};if(!t)return ut.fn._lang;if(!m(t)){if(r=a(t))return r;t=[t]}for(;t.length>o;){for(u=A(t[o]).split("-"),e=u.length,i=A(t[o+1]),i=i?i.split("-"):null;e>0;){if(r=a(u.slice(0,e).join("-")))return r;if(i&&i.length>=e&&p(u,i,!0)>=e-1)break;e--}o++}return ut.fn._lang}function P(n){return n.match(/\[[\s\S]/)?n.replace(/^\[|\]$/g,""):n.replace(/\\/g,"")}function E(n){var t,e,r=n.match(Ut);for(t=0,e=r.length;e>t;t++)r[t]=Qt[r[t]]?Qt[r[t]]:P(r[t]);return function(i){var u="";for(t=0;e>t;t++)u+=r[t]instanceof Function?r[t].call(i,n):r[t];return u}}function V(n,t){return n.isValid()?(t=S(t,n.lang()),$t[t]||($t[t]=E(t)),$t[t](n)):n.lang().invalidDate()}function S(n,t){function e(n){return t.longDateFormat(n)||n}var r=5;for(gt.lastIndex=0;r>=0&&gt.test(n);)n=n.replace(gt,e),gt.lastIndex=0,r-=1;return n}function T(n,t){var e,r=t._strict;switch(n){case"DDDD":return It;case"YYYY":case"GGGG":case"gggg":return r?kt:wt;case"Y":case"G":case"g":return Rt;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return r?Ft:Yt;case"S":if(r)return St;case"SS":if(r)return Tt;case"SSS":if(r)return It;case"DDD":return At;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Lt;case"a":case"A":return L(t._l)._meridiemParse;case"X":return Vt;case"Z":case"ZZ":return Pt;case"T":return Et;case"SSSS":return Ot;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return r?Tt:Nt;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Nt;default:return e=RegExp(G(j(n.replace("\\","")),"i"))}}function I(n){n=n||"";var t=n.match(Pt)||[],e=t[t.length-1]||[],r=(e+"").match(Wt)||["-",0,0],i=+(60*r[1])+_(r[2]);return"+"===r[0]?-i:i}function k(n,t,e){var r,i=e._a;switch(n){case"M":case"MM":null!=t&&(i[dt]=_(t)-1);break;case"MMM":case"MMMM":r=L(e._l).monthsParse(t),null!=r?i[dt]=r:e._pf.invalidMonth=t;break;case"D":case"DD":null!=t&&(i[lt]=_(t));break;case"DDD":case"DDDD":null!=t&&(e._dayOfYear=_(t));break;case"YY":i[ct]=_(t)+(_(t)>68?1900:2e3);break;case"YYYY":case"YYYYY":case"YYYYYY":i[ct]=_(t);break;case"a":case"A":e._isPm=L(e._l).isPM(t);break;case"H":case"HH":case"h":case"hh":i[ht]=_(t);break;case"m":case"mm":i[mt]=_(t);break;case"s":case"ss":i[yt]=_(t);break;case"S":case"SS":case"SSS":case"SSSS":i[pt]=_(1e3*("0."+t));break;case"X":e._d=new Date(1e3*parseFloat(t));break;case"Z":case"ZZ":e._useUTC=!0,e._tzm=I(t);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":n=n.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":n=n.substr(0,2),t&&(e._w=e._w||{},e._w[n]=t)}}function F(n){var t,e,r,i,u,o,a,s,f,c,d=[];if(!n._d){for(r=x(n),n._w&&null==n._a[lt]&&null==n._a[dt]&&(u=function(t){var e=parseInt(t,10);return t?3>t.length?e>68?1900+e:2e3+e:e:null==n._a[ct]?ut().weekYear():n._a[ct]},o=n._w,null!=o.GG||null!=o.W||null!=o.E?a=K(u(o.GG),o.W||1,o.E,4,1):(s=L(n._l),f=null!=o.d?$(o.d,s):null!=o.e?parseInt(o.e,10)+s._week.dow:0,c=parseInt(o.w,10)||1,null!=o.d&&s._week.dow>f&&c++,a=K(u(o.gg),c,f,s._week.doy,s._week.dow)),n._a[ct]=a.year,n._dayOfYear=a.dayOfYear),n._dayOfYear&&(i=null==n._a[ct]?r[ct]:n._a[ct],n._dayOfYear>C(i)&&(n._pf._overflowDayOfYear=!0),e=Z(i,0,n._dayOfYear),n._a[dt]=e.getUTCMonth(),n._a[lt]=e.getUTCDate()),t=0;3>t&&null==n._a[t];++t)n._a[t]=d[t]=r[t];for(;7>t;t++)n._a[t]=d[t]=null==n._a[t]?2===t?1:0:n._a[t];d[ht]+=_((n._tzm||0)/60),d[mt]+=_((n._tzm||0)%60),n._d=(n._useUTC?Z:q).apply(null,d)}}function R(n){var t;n._d||(t=D(n._i),n._a=[t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond],F(n))}function x(n){var t=new Date;return n._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function B(n){n._a=[],n._pf.empty=!0;var t,e,r,i,u,o=L(n._l),a=""+n._i,s=a.length,f=0;for(r=S(n._f,o).match(Ut)||[],t=0;r.length>t;t++)i=r[t],e=(a.match(T(i,n))||[])[0],e&&(u=a.substr(0,a.indexOf(e)),u.length>0&&n._pf.unusedInput.push(u),a=a.slice(a.indexOf(e)+e.length),f+=e.length),Qt[i]?(e?n._pf.empty=!1:n._pf.unusedTokens.push(i),k(i,e,n)):n._strict&&!e&&n._pf.unusedTokens.push(i);n._pf.charsLeftOver=s-f,a.length>0&&n._pf.unusedInput.push(a),n._isPm&&12>n._a[ht]&&(n._a[ht]+=12),n._isPm===!1&&12===n._a[ht]&&(n._a[ht]=0),F(n),g(n)}function j(n){return n.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(n,t,e,r,i){return t||e||r||i})}function G(n){return n.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function W(n){var t,i,u,o,a;if(0===n._f.length)return n._pf.invalidFormat=!0,n._d=new Date(0/0),e;for(o=0;n._f.length>o;o++)a=0,t=f({},n),t._pf=r(),t._f=n._f[o],B(t),N(t)&&(a+=t._pf.charsLeftOver,a+=10*t._pf.unusedTokens.length,t._pf.score=a,(null==u||u>a)&&(u=a,i=t));f(n,i||t)}function z(n){var t,e,r=n._i,i=xt.exec(r);if(i){for(n._pf.iso=!0,t=0,e=jt.length;e>t;t++)if(jt[t][1].exec(r)){n._f=jt[t][0]+(i[6]||" ");break}for(t=0,e=Gt.length;e>t;t++)if(Gt[t][1].exec(r)){n._f+=Gt[t][0];break}r.match(Pt)&&(n._f+="Z"),B(n)}else n._d=new Date(r)}function H(n){var t=n._i,r=_t.exec(t);t===e?n._d=new Date:r?n._d=new Date(+r[1]):"string"==typeof t?z(n):m(t)?(n._a=t.slice(0),F(n)):y(t)?n._d=new Date(+t):"object"==typeof t?R(n):n._d=new Date(t)}function q(n,t,e,r,i,u,o){var a=new Date(n,t,e,r,i,u,o);return 1970>n&&a.setFullYear(n),a}function Z(n){var t=new Date(Date.UTC.apply(null,arguments));return 1970>n&&t.setUTCFullYear(n),t}function $(n,t){if("string"==typeof n)if(isNaN(n)){if(n=t.weekdaysParse(n),"number"!=typeof n)return null}else n=parseInt(n,10);return n}function X(n,t,e,r,i){return i.relativeTime(t||1,!!e,n,r)}function J(n,t,e){var r=ft(Math.abs(n)/1e3),i=ft(r/60),u=ft(i/60),o=ft(u/24),a=ft(o/365),s=45>r&&["s",r]||1===i&&["m"]||45>i&&["mm",i]||1===u&&["h"]||22>u&&["hh",u]||1===o&&["d"]||25>=o&&["dd",o]||45>=o&&["M"]||345>o&&["MM",ft(o/30)]||1===a&&["y"]||["yy",a];return s[2]=t,s[3]=n>0,s[4]=e,X.apply({},s)}function Q(n,t,e){var r,i=e-t,u=e-n.day();return u>i&&(u-=7),i-7>u&&(u+=7),r=ut(n).add("d",u),{week:Math.ceil(r.dayOfYear()/7),year:r.year()}}function K(n,t,e,r,i){var u,o,a=Z(n,0,1).getUTCDay();return e=null!=e?e:i,u=i-a+(a>r?7:0)-(i>a?7:0),o=7*(t-1)+(e-i)+u+1,{year:o>0?n:n-1,dayOfYear:o>0?o:C(n-1)+o}}function nt(n){var t=n._i,e=n._f;return null===t?ut.invalid({nullInput:!0}):("string"==typeof t&&(n._i=t=L().preparse(t)),ut.isMoment(t)?(n=c(t),n._d=new Date(+t._d)):e?m(e)?W(n):B(n):H(n),new a(n))}function tt(n,t){ut.fn[n]=ut.fn[n+"s"]=function(n){var e=this._isUTC?"UTC":"";return null!=n?(this._d["set"+e+t](n),ut.updateOffset(this),this):this._d["get"+e+t]()}}function et(n){ut.duration.fn[n]=function(){return this._data[n]}}function rt(n,t){ut.duration.fn["as"+n]=function(){return+this/t}}function it(n){var t=!1,e=ut;"undefined"==typeof ender&&(n?(st.moment=function(){return!t&&console&&console.warn&&(t=!0,console.warn("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.")),e.apply(null,arguments)},f(st.moment,e)):st.moment=ut)}for(var ut,ot,at="2.5.1",st=this,ft=Math.round,ct=0,dt=1,lt=2,ht=3,mt=4,yt=5,pt=6,Mt={},Dt={_isAMomentObject:null,_i:null,_f:null,_l:null,_strict:null,_isUTC:null,_offset:null,_pf:null,_lang:null},vt=t!==e&&t.exports&&n!==e,_t=/^\/?Date\((\-?\d+)/i,bt=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Ct=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Ut=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,gt=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,Nt=/\d\d?/,At=/\d{1,3}/,wt=/\d{1,4}/,Yt=/[+\-]?\d{1,6}/,Ot=/\d+/,Lt=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Pt=/Z|[\+\-]\d\d:?\d\d/gi,Et=/T/i,Vt=/[\+\-]?\d+(\.\d{1,3})?/,St=/\d/,Tt=/\d\d/,It=/\d{3}/,kt=/\d{4}/,Ft=/[+-]?\d{6}/,Rt=/[+-]?\d+/,xt=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Bt="YYYY-MM-DDTHH:mm:ssZ",jt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],Gt=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],Wt=/([\+\-]|\d\d)/gi,zt="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),Ht={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},qt={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},Zt={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},$t={},Xt="DDD w W M D d".split(" "),Jt="M D H h m s w W".split(" "),Qt={M:function(){return this.month()+1},MMM:function(n){return this.lang().monthsShort(this,n)},MMMM:function(n){return this.lang().months(this,n)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(n){return this.lang().weekdaysMin(this,n)},ddd:function(n){return this.lang().weekdaysShort(this,n)},dddd:function(n){return this.lang().weekdays(this,n)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return l(this.year()%100,2)},YYYY:function(){return l(this.year(),4)},YYYYY:function(){return l(this.year(),5)},YYYYYY:function(){var n=this.year(),t=n>=0?"+":"-";return t+l(Math.abs(n),6)},gg:function(){return l(this.weekYear()%100,2)},gggg:function(){return l(this.weekYear(),4)},ggggg:function(){return l(this.weekYear(),5)},GG:function(){return l(this.isoWeekYear()%100,2)},GGGG:function(){return l(this.isoWeekYear(),4)},GGGGG:function(){return l(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return _(this.milliseconds()/100)},SS:function(){return l(_(this.milliseconds()/10),2)},SSS:function(){return l(this.milliseconds(),3)},SSSS:function(){return l(this.milliseconds(),3)},Z:function(){var n=-this.zone(),t="+";return 0>n&&(n=-n,t="-"),t+l(_(n/60),2)+":"+l(_(n)%60,2)},ZZ:function(){var n=-this.zone(),t="+";return 0>n&&(n=-n,t="-"),t+l(_(n/60),2)+l(_(n)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},Kt=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];Xt.length;)ot=Xt.pop(),Qt[ot+"o"]=u(Qt[ot],ot);for(;Jt.length;)ot=Jt.pop(),Qt[ot+ot]=i(Qt[ot],2);for(Qt.DDDD=i(Qt.DDD,3),f(o.prototype,{set:function(n){var t,e;for(e in n)t=n[e],"function"==typeof t?this[e]=t:this["_"+e]=t},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(n){return this._months[n.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(n){return this._monthsShort[n.month()]},monthsParse:function(n){var t,e,r;for(this._monthsParse||(this._monthsParse=[]),t=0;12>t;t++)if(this._monthsParse[t]||(e=ut.utc([2e3,t]),r="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[t]=RegExp(r.replace(".",""),"i")),this._monthsParse[t].test(n))return t},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(n){return this._weekdays[n.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(n){return this._weekdaysShort[n.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(n){return this._weekdaysMin[n.day()]},weekdaysParse:function(n){var t,e,r;for(this._weekdaysParse||(this._weekdaysParse=[]),t=0;7>t;t++)if(this._weekdaysParse[t]||(e=ut([2e3,1]).day(t),r="^"+this.weekdays(e,"")+"|^"+this.weekdaysShort(e,"")+"|^"+this.weekdaysMin(e,""),this._weekdaysParse[t]=RegExp(r.replace(".",""),"i")),this._weekdaysParse[t].test(n))return t},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(n){var t=this._longDateFormat[n];return!t&&this._longDateFormat[n.toUpperCase()]&&(t=this._longDateFormat[n.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(n){return n.slice(1)}),this._longDateFormat[n]=t),t},isPM:function(n){return"p"===(n+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(n,t,e){return n>11?e?"pm":"PM":e?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(n,t){var e=this._calendar[n];return"function"==typeof e?e.apply(t):e},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(n,t,e,r){var i=this._relativeTime[e];return"function"==typeof i?i(n,t,e,r):i.replace(/%d/i,n)},pastFuture:function(n,t){var e=this._relativeTime[n>0?"future":"past"];return"function"==typeof e?e(t):e.replace(/%s/i,t)},ordinal:function(n){return this._ordinal.replace("%d",n)},_ordinal:"%d",preparse:function(n){return n},postformat:function(n){return n},week:function(n){return Q(n,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),ut=function(n,t,i,u){var o;return"boolean"==typeof i&&(u=i,i=e),o={},o._isAMomentObject=!0,o._i=n,o._f=t,o._l=i,o._strict=u,o._isUTC=!1,o._pf=r(),nt(o)},ut.utc=function(n,t,i,u){var o;return"boolean"==typeof i&&(u=i,i=e),o={},o._isAMomentObject=!0,o._useUTC=!0,o._isUTC=!0,o._l=i,o._i=n,o._f=t,o._strict=u,o._pf=r(),nt(o).utc()},ut.unix=function(n){return ut(1e3*n)},ut.duration=function(n,t){var e,r,i,u=n,o=null;return ut.isDuration(n)?u={ms:n._milliseconds,d:n._days,M:n._months}:"number"==typeof n?(u={},t?u[t]=n:u.milliseconds=n):(o=bt.exec(n))?(e="-"===o[1]?-1:1,u={y:0,d:_(o[lt])*e,h:_(o[ht])*e,m:_(o[mt])*e,s:_(o[yt])*e,ms:_(o[pt])*e}):(o=Ct.exec(n))&&(e="-"===o[1]?-1:1,i=function(n){var t=n&&parseFloat(n.replace(",","."));return(isNaN(t)?0:t)*e},u={y:i(o[2]),M:i(o[3]),d:i(o[4]),h:i(o[5]),m:i(o[6]),s:i(o[7]),w:i(o[8])}),r=new s(u),ut.isDuration(n)&&n.hasOwnProperty("_lang")&&(r._lang=n._lang),r},ut.version=at,ut.defaultFormat=Bt,ut.updateOffset=function(){},ut.lang=function(n,t){var e;return n?(t?Y(A(n),t):null===t?(O(n),n="en"):Mt[n]||L(n),e=ut.duration.fn._lang=ut.fn._lang=L(n),e._abbr):ut.fn._lang._abbr},ut.langData=function(n){return n&&n._lang&&n._lang._abbr&&(n=n._lang._abbr),L(n)},ut.isMoment=function(n){return n instanceof a||null!=n&&n.hasOwnProperty("_isAMomentObject")},ut.isDuration=function(n){return n instanceof s},ot=Kt.length-1;ot>=0;--ot)v(Kt[ot]);for(ut.normalizeUnits=function(n){return M(n)},ut.invalid=function(n){var t=ut.utc(0/0);return null!=n?f(t._pf,n):t._pf.userInvalidated=!0,t},ut.parseZone=function(n){return ut(n).parseZone()},f(ut.fn=a.prototype,{clone:function(){return ut(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var n=ut(this).utc();return n.year()>0&&9999>=n.year()?V(n,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):V(n,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var n=this;return[n.year(),n.month(),n.date(),n.hours(),n.minutes(),n.seconds(),n.milliseconds()]},isValid:function(){return N(this)},isDSTShifted:function(){return this._a?this.isValid()&&p(this._a,(this._isUTC?ut.utc(this._a):ut(this._a)).toArray())>0:!1},parsingFlags:function(){return f({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(n){var t=V(this,n||ut.defaultFormat);return this.lang().postformat(t)},add:function(n,t){var e;return e="string"==typeof n?ut.duration(+t,n):ut.duration(n,t),h(this,e,1),this},subtract:function(n,t){var e;return e="string"==typeof n?ut.duration(+t,n):ut.duration(n,t),h(this,e,-1),this},diff:function(n,t,e){var r,i,u=w(n,this),o=6e4*(this.zone()-u.zone());return t=M(t),"year"===t||"month"===t?(r=432e5*(this.daysInMonth()+u.daysInMonth()),i=12*(this.year()-u.year())+(this.month()-u.month()),i+=(this-ut(this).startOf("month")-(u-ut(u).startOf("month")))/r,i-=6e4*(this.zone()-ut(this).startOf("month").zone()-(u.zone()-ut(u).startOf("month").zone()))/r,"year"===t&&(i/=12)):(r=this-u,i="second"===t?r/1e3:"minute"===t?r/6e4:"hour"===t?r/36e5:"day"===t?(r-o)/864e5:"week"===t?(r-o)/6048e5:r),e?i:d(i)
},from:function(n,t){return ut.duration(this.diff(n)).lang(this.lang()._abbr).humanize(!t)},fromNow:function(n){return this.from(ut(),n)},calendar:function(){var n=w(ut(),this).startOf("day"),t=this.diff(n,"days",!0),e=-6>t?"sameElse":-1>t?"lastWeek":0>t?"lastDay":1>t?"sameDay":2>t?"nextDay":7>t?"nextWeek":"sameElse";return this.format(this.lang().calendar(e,this))},isLeapYear:function(){return U(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(n){var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=n?(n=$(n,this.lang()),this.add({d:n-t})):t},month:function(n){var t,e=this._isUTC?"UTC":"";return null!=n?"string"==typeof n&&(n=this.lang().monthsParse(n),"number"!=typeof n)?this:(t=this.date(),this.date(1),this._d["set"+e+"Month"](n),this.date(Math.min(t,this.daysInMonth())),ut.updateOffset(this),this):this._d["get"+e+"Month"]()},startOf:function(n){switch(n=M(n)){case"year":this.month(0);case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===n?this.weekday(0):"isoWeek"===n&&this.isoWeekday(1),this},endOf:function(n){return n=M(n),this.startOf(n).add("isoWeek"===n?"week":n,1).subtract("ms",1)},isAfter:function(n,t){return t=t!==e?t:"millisecond",+this.clone().startOf(t)>+ut(n).startOf(t)},isBefore:function(n,t){return t=t!==e?t:"millisecond",+this.clone().startOf(t)<+ut(n).startOf(t)},isSame:function(n,t){return t=t||"ms",+this.clone().startOf(t)===+w(n,this).startOf(t)},min:function(n){return n=ut.apply(null,arguments),this>n?this:n},max:function(n){return n=ut.apply(null,arguments),n>this?this:n},zone:function(n){var t=this._offset||0;return null==n?this._isUTC?t:this._d.getTimezoneOffset():("string"==typeof n&&(n=I(n)),16>Math.abs(n)&&(n=60*n),this._offset=n,this._isUTC=!0,t!==n&&h(this,ut.duration(t-n,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(n){return n=n?ut(n).zone():0,0===(this.zone()-n)%60},daysInMonth:function(){return b(this.year(),this.month())},dayOfYear:function(n){var t=ft((ut(this).startOf("day")-ut(this).startOf("year"))/864e5)+1;return null==n?t:this.add("d",n-t)},quarter:function(){return Math.ceil((this.month()+1)/3)},weekYear:function(n){var t=Q(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==n?t:this.add("y",n-t)},isoWeekYear:function(n){var t=Q(this,1,4).year;return null==n?t:this.add("y",n-t)},week:function(n){var t=this.lang().week(this);return null==n?t:this.add("d",7*(n-t))},isoWeek:function(n){var t=Q(this,1,4).week;return null==n?t:this.add("d",7*(n-t))},weekday:function(n){var t=(this.day()+7-this.lang()._week.dow)%7;return null==n?t:this.add("d",n-t)},isoWeekday:function(n){return null==n?this.day()||7:this.day(this.day()%7?n:n-7)},get:function(n){return n=M(n),this[n]()},set:function(n,t){return n=M(n),"function"==typeof this[n]&&this[n](t),this},lang:function(n){return n===e?this._lang:(this._lang=L(n),this)}}),ot=0;zt.length>ot;ot++)tt(zt[ot].toLowerCase().replace(/s$/,""),zt[ot]);tt("year","FullYear"),ut.fn.days=ut.fn.day,ut.fn.months=ut.fn.month,ut.fn.weeks=ut.fn.week,ut.fn.isoWeeks=ut.fn.isoWeek,ut.fn.toJSON=ut.fn.toISOString,f(ut.duration.fn=s.prototype,{_bubble:function(){var n,t,e,r,i=this._milliseconds,u=this._days,o=this._months,a=this._data;a.milliseconds=i%1e3,n=d(i/1e3),a.seconds=n%60,t=d(n/60),a.minutes=t%60,e=d(t/60),a.hours=e%24,u+=d(e/24),a.days=u%30,o+=d(u/30),a.months=o%12,r=d(o/12),a.years=r},weeks:function(){return d(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+2592e6*(this._months%12)+31536e6*_(this._months/12)},humanize:function(n){var t=+this,e=J(t,!n,this.lang());return n&&(e=this.lang().pastFuture(t,e)),this.lang().postformat(e)},add:function(n,t){var e=ut.duration(n,t);return this._milliseconds+=e._milliseconds,this._days+=e._days,this._months+=e._months,this._bubble(),this},subtract:function(n,t){var e=ut.duration(n,t);return this._milliseconds-=e._milliseconds,this._days-=e._days,this._months-=e._months,this._bubble(),this},get:function(n){return n=M(n),this[n.toLowerCase()+"s"]()},as:function(n){return n=M(n),this["as"+n.charAt(0).toUpperCase()+n.slice(1)+"s"]()},lang:ut.fn.lang,toIsoString:function(){var n=Math.abs(this.years()),t=Math.abs(this.months()),e=Math.abs(this.days()),r=Math.abs(this.hours()),i=Math.abs(this.minutes()),u=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(0>this.asSeconds()?"-":"")+"P"+(n?n+"Y":"")+(t?t+"M":"")+(e?e+"D":"")+(r||i||u?"T":"")+(r?r+"H":"")+(i?i+"M":"")+(u?u+"S":""):"P0D"}});for(ot in Ht)Ht.hasOwnProperty(ot)&&(rt(ot,Ht[ot]),et(ot.toLowerCase()));rt("Weeks",6048e5),ut.duration.fn.asMonths=function(){return(+this-31536e6*this.years())/2592e6+12*this.years()},ut.lang("en",{ordinal:function(n){var t=n%10,e=1===_(n%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return n+e}}),vt?(t.exports=ut,it(!0)):"function"==typeof define&&define.amd?define("moment",function(n,t,r){return r.config&&r.config()&&r.config().noGlobal!==!0&&it(r.config().noGlobal===e),ut}):it()}).call(this)},{}]},{},[]);var Financial=require("financial"),Money=require("accounting"),calcPayment=function(n,t,e){var r=Financial.PMT(n/100/12,12*t,e);return makeMoney(r)},calcInterest=function(n,t,e,r,i,u){var o=Financial.CUMIPMT(n/100/12,12*t,e,r,12*i,u);return makeMoney(o)},makeMoney=function(n){return n=Math.abs(n),Money.accounting.formatMoney(n)},paymentContainer=document.createElement("div");document.body.appendChild(paymentContainer);var interestContainer=document.createElement("div");document.body.appendChild(interestContainer),paymentContainer.innerHTML="You will pay "+calcPayment(5,30,2e5)+" per month. ",interestContainer.innerHTML="You will have paid "+calcInterest(5,30,2e5,1,30,0)+" in total interest";
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; }
body, html { height: 100%; width: 100%; }</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment