(self.webpackChunk=self.webpackChunk||[]).push([[380],{232:(e,t,a)=>{"use strict";a.r(t);var n=a(7760),o=a.n(n),i=a(7152),r=a(4605);window.$=window.jQuery=a(9755),window.axios=a(9669),window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";var s=document.head.querySelector('meta[name="csrf-token"]');s?window.axios.defaults.headers.common["X-CSRF-TOKEN"]=s.content:console.error("CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token");var c=document.head.querySelector('meta[name="locale"]');localStorage.locale=c?c.content:"en_US",a(6891),a(3734),a(7632),a(5432),window.vuei18n=i.Z,window.uiv=r,o().use(vuei18n),o().use(r),window.Vue=o()},9899:(e,t,a)=>{"use strict";a.d(t,{Z:()=>D});var n=a(7760),o=a.n(n),i=a(629),r=a(4478),s=a(3465);const c={namespaced:!0,state:function(){return{transactionType:"any",groupTitle:"",transactions:[],customDateFields:{interest_date:!1,book_date:!1,process_date:!1,due_date:!1,payment_date:!1,invoice_date:!1},defaultTransaction:(0,r.f$)(),defaultErrors:(0,r.kQ)()}},getters:{transactions:function(e){return e.transactions},defaultErrors:function(e){return e.defaultErrors},groupTitle:function(e){return e.groupTitle},transactionType:function(e){return e.transactionType},accountToTransaction:function(e){return e.accountToTransaction},defaultTransaction:function(e){return e.defaultTransaction},sourceAllowedTypes:function(e){return e.sourceAllowedTypes},destinationAllowedTypes:function(e){return e.destinationAllowedTypes},allowedOpposingTypes:function(e){return e.allowedOpposingTypes},customDateFields:function(e){return e.customDateFields}},actions:{},mutations:{addTransaction:function(e){var t=s(e.defaultTransaction);t.errors=s(e.defaultErrors),e.transactions.push(t)},resetErrors:function(e,t){e.transactions[t.index].errors=s(e.defaultErrors)},resetTransactions:function(e){e.transactions=[]},setGroupTitle:function(e,t){e.groupTitle=t.groupTitle},setCustomDateFields:function(e,t){e.customDateFields=t},deleteTransaction:function(e,t){e.transactions.splice(t.index,1),e.transactions.length},setTransactionType:function(e,t){e.transactionType=t},setAllowedOpposingTypes:function(e,t){e.allowedOpposingTypes=t},setAccountToTransaction:function(e,t){e.accountToTransaction=t},updateField:function(e,t){e.transactions[t.index][t.field]=t.value},setTransactionError:function(e,t){e.transactions[t.index].errors[t.field]=t.errors},setDestinationAllowedTypes:function(e,t){e.destinationAllowedTypes=t},setSourceAllowedTypes:function(e,t){e.sourceAllowedTypes=t}}};const l={namespaced:!0,state:function(){return{}},getters:{},actions:{},mutations:{}};var _=a(9119),d=a(3894),u=a(584),p=a(7090),y=a(4431),g=a(8358),h=a(4135),m=a(3703);const f={namespaced:!0,state:function(){return{viewRange:"default",start:null,end:null,defaultStart:null,defaultEnd:null}},getters:{start:function(e){return e.start},end:function(e){return e.end},defaultStart:function(e){return e.defaultStart},defaultEnd:function(e){return e.defaultEnd},viewRange:function(e){return e.viewRange}},actions:{initialiseStore:function(e){e.dispatch("restoreViewRange"),axios.get("./api/v1/preferences/viewRange").then((function(t){var a=t.data.data.attributes.data,n=e.getters.viewRange;e.commit("setViewRange",a),a!==n&&e.dispatch("setDatesFromViewRange"),a===n&&e.dispatch("restoreViewRangeDates")})).catch((function(){e.commit("setViewRange","1M"),e.dispatch("setDatesFromViewRange")}))},restoreViewRangeDates:function(e){localStorage.viewRangeStart&&e.commit("setStart",new Date(localStorage.viewRangeStart)),localStorage.viewRangeEnd&&e.commit("setEnd",new Date(localStorage.viewRangeEnd)),localStorage.viewRangeDefaultStart&&e.commit("setDefaultStart",new Date(localStorage.viewRangeDefaultStart)),localStorage.viewRangeDefaultEnd&&e.commit("setDefaultEnd",new Date(localStorage.viewRangeDefaultEnd))},restoreViewRange:function(e){var t=localStorage.getItem("viewRange");null!==t&&e.commit("setViewRange",t)},setDatesFromViewRange:function(e){var t,a,n=e.getters.viewRange,o=new Date;switch(n){case"1D":t=(0,_.Z)(o),a=(0,d.Z)(o);break;case"1W":t=(0,_.Z)((0,u.Z)(o,{weekStartsOn:1})),a=(0,d.Z)((0,p.Z)(o,{weekStartsOn:1}));break;case"1M":t=(0,_.Z)((0,m.Z)(o)),a=(0,d.Z)((0,h.Z)(o));break;case"3M":t=(0,_.Z)((0,y.Z)(o)),a=(0,d.Z)((0,g.Z)(o));break;case"6M":o.getMonth()<=5&&((t=new Date(o)).setMonth(0),t.setDate(1),t=(0,_.Z)(t),(a=new Date(o)).setMonth(5),a.setDate(30),a=(0,d.Z)(t)),o.getMonth()>5&&((t=new Date(o)).setMonth(6),t.setDate(1),t=(0,_.Z)(t),(a=new Date(o)).setMonth(11),a.setDate(31),a=(0,d.Z)(t));break;case"1Y":(t=new Date(o)).setMonth(0),t.setDate(1),t=(0,_.Z)(t),(a=new Date(o)).setMonth(11),a.setDate(31),a=(0,d.Z)(a)}e.commit("setStart",t),e.commit("setEnd",a),e.commit("setDefaultStart",t),e.commit("setDefaultEnd",a)}},mutations:{setStart:function(e,t){e.start=t,window.localStorage.setItem("viewRangeStart",t)},setEnd:function(e,t){e.end=t,window.localStorage.setItem("viewRangeEnd",t)},setDefaultStart:function(e,t){e.defaultStart=t,window.localStorage.setItem("viewRangeDefaultStart",t)},setDefaultEnd:function(e,t){e.defaultEnd=t,window.localStorage.setItem("viewRangeDefaultEnd",t)},setViewRange:function(e,t){e.viewRange=t,window.localStorage.setItem("viewRange",t)}}};var b=function(){return{listPageSize:33,timezone:""}},v={initialiseStore:function(e){localStorage.listPageSize&&(b.listPageSize=localStorage.listPageSize,e.commit("setListPageSize",{length:localStorage.listPageSize})),localStorage.listPageSize||axios.get("./api/v1/preferences/listPageSize").then((function(t){e.commit("setListPageSize",{length:parseInt(t.data.data.attributes.data)})})),localStorage.timezone&&(b.timezone=localStorage.timezone,e.commit("setTimezone",{timezone:localStorage.timezone})),localStorage.timezone||axios.get("./api/v1/configuration/app.timezone").then((function(t){e.commit("setTimezone",{timezone:t.data.data.value})}))}};const k={namespaced:!0,state:b,getters:{listPageSize:function(e){return e.listPageSize},timezone:function(e){return e.timezone}},actions:v,mutations:{setListPageSize:function(e,t){var a=parseInt(t.length);0!==a&&(e.listPageSize=a,localStorage.listPageSize=a)},setTimezone:function(e,t){""!==t.timezone&&(e.timezone=t.timezone,localStorage.timezone=t.timezone)}}};const w={namespaced:!0,state:function(){return{orderMode:!1,activeFilter:1}},getters:{orderMode:function(e){return e.orderMode},activeFilter:function(e){return e.activeFilter}},actions:{},mutations:{setOrderMode:function(e,t){e.orderMode=t},setActiveFilter:function(e,t){e.activeFilter=t}}};o().use(i.ZP);const D=new i.ZP.Store({namespaced:!0,modules:{root:k,transactions:{namespaced:!0,modules:{create:c,edit:l}},accounts:{namespaced:!0,modules:{index:w}},dashboard:{namespaced:!0,modules:{index:f}}},strict:false,plugins:[],state:{currencyPreference:{},locale:"en-US",listPageSize:50},mutations:{setCurrencyPreference:function(e,t){e.currencyPreference=t.payload},initialiseStore:function(e){if(localStorage.locale)e.locale=localStorage.locale;else{var t=document.head.querySelector('meta[name="locale"]');t&&(e.locale=t.content,localStorage.locale=t.content)}}},getters:{currencyCode:function(e){return e.currencyPreference.code},currencyPreference:function(e){return e.currencyPreference},currencyId:function(e){return e.currencyPreference.id},locale:function(e){return e.locale}},actions:{updateCurrencyPreference:function(e){localStorage.currencyPreference?e.commit("setCurrencyPreference",{payload:JSON.parse(localStorage.currencyPreference)}):axios.get("./api/v1/currencies/default").then((function(t){var a={id:parseInt(t.data.data.id),name:t.data.data.attributes.name,symbol:t.data.data.attributes.symbol,code:t.data.data.attributes.code,decimal_places:parseInt(t.data.data.attributes.decimal_places)};localStorage.currencyPreference=JSON.stringify(a),e.commit("setCurrencyPreference",{payload:a})})).catch((function(t){console.error(t),e.commit("setCurrencyPreference",{payload:{id:1,name:"Euro",symbol:"€",code:"EUR",decimal_places:2}})}))}}})},157:(e,t,a)=>{e.exports=new vuei18n({locale:document.documentElement.lang,fallbackLocale:"en",messages:{bg:a(7154),cs:a(6407),de:a(4726),en:a(3340),"en-us":a(3340),"en-gb":a(6318),es:a(5394),el:a(3636),fr:a(2551),hu:a(995),it:a(9112),nl:a(4671),nb:a(9085),pl:a(6238),fi:a(7868),"pt-br":a(6586),"pt-pt":a(8664),ro:a(1102),ru:a(753),"zh-tw":a(1715),"zh-cn":a(4556),sk:a(7049),sv:a(7921),vi:a(1497)}})},1154:(e,t,a)=>{"use strict";var n=a(7760),o=a.n(n),i=a(629),r=a(1474),s=a(7955);function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=n&&(t.downloaded=!0,t.filterAccountList())}))},filterAccountList:function(){for(var e in this.accounts=[],this.allAccounts)if(this.allAccounts.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294){if(1===this.activeFilter&&!1===this.allAccounts[e].active)continue;if(2===this.activeFilter&&!0===this.allAccounts[e].active)continue;this.accounts.push(this.allAccounts[e])}this.total=this.accounts.length,this.loading=!1},roleTranslate:function(e){return null===e?"":this.$t("firefly.account_role_"+e)},parsePages:function(e){this.total=parseInt(e.pagination.total)},parseAccounts:function(e){for(var t in e)if(e.hasOwnProperty(t)&&/^0$|^[1-9]\d*$/.test(t)&&t<=4294967294){var a=e[t],n={};n.id=parseInt(a.id),n.order=a.attributes.order,n.title=a.attributes.name,n.active=a.attributes.active,n.role=this.roleTranslate(a.attributes.account_role),n.account_number=a.attributes.account_number,n.current_balance=a.attributes.current_balance,n.currency_code=a.attributes.currency_code,n.balance_diff="loading",null!==a.attributes.iban&&(n.iban=a.attributes.iban.match(/.{1,4}/g).join(" ")),this.allAccounts.push(n),"asset"===this.type&&this.getAccountBalanceDifference(this.allAccounts.length-1,a)}},getAccountBalanceDifference:function(e,t){var a=this,n=[];n.push(new Promise((function(a){a({account:t,index:e})})));var o=(0,s.Z)(this.start,"y-MM-dd"),i=(0,s.Z)(this.end,"y-MM-dd");n.push(axios.get("./api/v1/accounts/"+t.id+"?date="+o)),n.push(axios.get("./api/v1/accounts/"+t.id+"?date="+i)),Promise.all(n).then((function(e){var t=e[0].index,n=parseFloat(e[1].data.data.attributes.current_balance),o=parseFloat(e[2].data.data.attributes.current_balance);a.allAccounts[t].balance_diff=o-n}))}}};var u=a(1900);const p=(0,u.Z)(d,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"row"},[a("div",{staticClass:"col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("b-pagination",{attrs:{"total-rows":e.total,"per-page":e.perPage,"aria-controls":"my-table"},model:{value:e.currentPage,callback:function(t){e.currentPage=t},expression:"currentPage"}})],1)]),e._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"}),e._v(" "),a("div",{staticClass:"card-body p-0"},[a("b-table",{ref:"table",attrs:{id:"my-table",striped:"",hover:"","primary-key":"id",items:e.accounts,fields:e.fields,"per-page":e.perPage,"sort-icon-left":"","current-page":e.currentPage,busy:e.loading,"sort-by":e.sortBy,"sort-desc":e.sortDesc},on:{"update:busy":function(t){e.loading=t},"update:sortBy":function(t){e.sortBy=t},"update:sort-by":function(t){e.sortBy=t},"update:sortDesc":function(t){e.sortDesc=t},"update:sort-desc":function(t){e.sortDesc=t}},scopedSlots:e._u([{key:"cell(title)",fn:function(t){return[a("a",{class:!1===t.item.active?"text-muted":"",attrs:{href:"./accounts/show/"+t.item.id,title:t.value}},[e._v(e._s(t.value))])]}},{key:"cell(number)",fn:function(t){return[null!==t.item.iban&&null===t.item.account_number?a("span",[e._v(e._s(t.item.iban))]):e._e(),e._v(" "),null===t.item.iban&&null!==t.item.account_number?a("span",[e._v(e._s(t.item.account_number))]):e._e(),e._v(" "),null!==t.item.iban&&null!==t.item.account_number?a("span",[e._v(e._s(t.item.iban)+" ("+e._s(t.item.account_number)+")")]):e._e()]}},{key:"cell(current_balance)",fn:function(t){return[parseFloat(t.item.current_balance)>0?a("span",{staticClass:"text-success"},[e._v("\n "+e._s(Intl.NumberFormat("en-US",{style:"currency",currency:t.item.currency_code}).format(t.item.current_balance))+"\n ")]):e._e(),e._v(" "),parseFloat(t.item.current_balance)<0?a("span",{staticClass:"text-danger"},[e._v("\n "+e._s(Intl.NumberFormat("en-US",{style:"currency",currency:t.item.currency_code}).format(t.item.current_balance))+"\n ")]):e._e(),e._v(" "),0===parseFloat(t.item.current_balance)?a("span",{staticClass:"text-muted"},[e._v("\n "+e._s(Intl.NumberFormat("en-US",{style:"currency",currency:t.item.currency_code}).format(t.item.current_balance))+"\n ")]):e._e(),e._v(" "),"asset"===e.type&&"loading"===t.item.balance_diff?a("span",[a("i",{staticClass:"fas fa-spinner fa-spin"})]):e._e(),e._v(" "),"asset"===e.type&&"loading"!==t.item.balance_diff?a("span",[e._v("\n ("),parseFloat(t.item.balance_diff)>0?a("span",{staticClass:"text-success"},[e._v(e._s(Intl.NumberFormat("en-US",{style:"currency",currency:t.item.currency_code}).format(t.item.balance_diff)))]):e._e(),0===parseFloat(t.item.balance_diff)?a("span",{staticClass:"text-muted"},[e._v(e._s(Intl.NumberFormat("en-US",{style:"currency",currency:t.item.currency_code}).format(t.item.balance_diff)))]):e._e(),parseFloat(t.item.balance_diff)<0?a("span",{staticClass:"text-danger"},[e._v(e._s(Intl.NumberFormat("en-US",{style:"currency",currency:t.item.currency_code}).format(t.item.balance_diff)))]):e._e(),e._v(")\n ")]):e._e()]}},{key:"cell(menu)",fn:function(t){return[a("div",{staticClass:"btn-group btn-group-sm"},[a("div",{staticClass:"dropdown"},[a("button",{staticClass:"btn btn-light btn-sm dropdown-toggle",attrs:{type:"button",id:"dropdownMenuButton"+t.item.id,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}},[e._v("\n "+e._s(e.$t("firefly.actions"))+"\n ")]),e._v(" "),a("div",{staticClass:"dropdown-menu",attrs:{"aria-labelledby":"dropdownMenuButton"+t.item.id}},[a("a",{staticClass:"dropdown-item",attrs:{href:"./accounts/edit/"+t.item.id}},[a("i",{staticClass:"fa fas fa-pencil-alt"}),e._v(" "+e._s(e.$t("firefly.edit")))]),e._v(" "),a("a",{staticClass:"dropdown-item",attrs:{href:"./accounts/delete/"+t.item.id}},[a("i",{staticClass:"fa far fa-trash"}),e._v(" "+e._s(e.$t("firefly.delete")))]),e._v(" "),"asset"===e.type?a("a",{staticClass:"dropdown-item",attrs:{href:"./accounts/reconcile/"+t.item.id+"/index"}},[a("i",{staticClass:"fas fa-check"}),e._v("\n "+e._s(e.$t("firefly.reconcile_this_account")))]):e._e()])])])]}}])})],1),e._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-success",attrs:{href:"./accounts/create/"+e.type,title:e.$t("firefly.create_new_"+e.type)}},[e._v(e._s(e.$t("firefly.create_new_"+e.type)))])])])])])])}),[],!1,null,"7b7c6640",null).exports;var y=a(9899),g=a(459),h=a(9559),m=a(1114);const f={name:"IndexOptions",data:function(){return{type:"invalid"}},computed:{orderMode:{get:function(){return this.$store.getters["accounts/index/orderMode"]},set:function(e){this.$store.commit("accounts/index/setOrderMode",e),!0===e&&this.$store.commit("accounts/index/setActiveFilter",1)}},activeFilter:{get:function(){return this.$store.getters["accounts/index/activeFilter"]},set:function(e){this.$store.commit("accounts/index/setActiveFilter",parseInt(e))}}},created:function(){var e=window.location.pathname.split("/");this.type=e[e.length-1]}};const b=(0,u.Z)(f,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"form-check"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.orderMode,expression:"orderMode"}],staticClass:"form-check-input",attrs:{type:"checkbox",name:"order_mode",id:"order_mode"},domProps:{checked:Array.isArray(e.orderMode)?e._i(e.orderMode,null)>-1:e.orderMode},on:{change:function(t){var a=e.orderMode,n=t.target,o=!!n.checked;if(Array.isArray(a)){var i=e._i(a,null);n.checked?i<0&&(e.orderMode=a.concat([null])):i>-1&&(e.orderMode=a.slice(0,i).concat(a.slice(i+1)))}else e.orderMode=o}}}),e._v(" "),a("label",{staticClass:"form-check-label",attrs:{for:"order_mode"}},[e._v("\n Enable order mode\n ")])]),e._v(" "),a("div",{staticClass:"form-check"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.activeFilter,expression:"activeFilter"}],staticClass:"form-check-input",attrs:{disabled:e.orderMode,type:"radio",value:"1",id:"active_filter_1"},domProps:{checked:e._q(e.activeFilter,"1")},on:{change:function(t){e.activeFilter="1"}}}),e._v(" "),a("label",{staticClass:"form-check-label",attrs:{for:"active_filter_1"}},[e._v("\n Show active accounts\n ")])]),e._v(" "),a("div",{staticClass:"form-check"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.activeFilter,expression:"activeFilter"}],staticClass:"form-check-input",attrs:{disabled:e.orderMode,type:"radio",value:"2",id:"active_filter_2"},domProps:{checked:e._q(e.activeFilter,"2")},on:{change:function(t){e.activeFilter="2"}}}),e._v(" "),a("label",{staticClass:"form-check-label",attrs:{for:"active_filter_2"}},[e._v("\n Show inactive accounts\n ")])]),e._v(" "),a("div",{staticClass:"form-check"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.activeFilter,expression:"activeFilter"}],staticClass:"form-check-input",attrs:{disabled:e.orderMode,type:"radio",value:"3",id:"active_filter_3"},domProps:{checked:e._q(e.activeFilter,"3")},on:{change:function(t){e.activeFilter="3"}}}),e._v(" "),a("label",{staticClass:"form-check-label",attrs:{for:"active_filter_3"}},[e._v("\n Show both\n ")])])])}),[],!1,null,"b354f694",null).exports;a(232);var v=a(157),k={};o().component("b-table",g.h),o().component("b-pagination",h.c),new(o())({i18n:v,store:y.Z,el:"#accounts",render:function(e){return e(p,{props:k})},beforeCreate:function(){this.$store.commit("initialiseStore"),this.$store.dispatch("updateCurrencyPreference"),this.$store.dispatch("root/initialiseStore"),this.$store.dispatch("dashboard/index/initialiseStore")}}),new(o())({i18n:v,store:y.Z,el:"#calendar",render:function(e){return e(m.Z,{props:k})}}),new(o())({i18n:v,store:y.Z,el:"#indexOptions",render:function(e){return e(b,{props:k})}})},4478:(e,t,a)=>{"use strict";function n(){return{description:[],amount:[],source:[],destination:[],currency:[],foreign_currency:[],foreign_amount:[],date:[],custom_dates:[],budget:[],category:[],bill:[],tags:[],piggy_bank:[],internal_reference:[],external_url:[],notes:[],location:[]}}function o(){return{description:"",transaction_journal_id:0,source_account_id:null,source_account_name:null,source_account_type:null,source_account_currency_id:null,source_account_currency_code:null,source_account_currency_symbol:null,destination_account_id:null,destination_account_name:null,destination_account_type:null,destination_account_currency_id:null,destination_account_currency_code:null,destination_account_currency_symbol:null,attachments:!1,selectedAttachments:!1,uploadTrigger:!1,clearTrigger:!1,source_account:{id:0,name:"",name_with_balance:"",type:"",currency_id:0,currency_name:"",currency_code:"",currency_decimal_places:2},destination_account:{id:0,name:"",type:"",currency_id:0,currency_name:"",currency_code:"",currency_decimal_places:2},amount:"",currency_id:0,foreign_amount:"",foreign_currency_id:0,category:null,budget_id:0,bill_id:0,piggy_bank_id:0,tags:[],interest_date:null,book_date:null,process_date:null,due_date:null,payment_date:null,invoice_date:null,internal_reference:null,external_url:null,external_id:null,notes:null,links:[],zoom_level:null,longitude:null,latitude:null,errors:{}}}a.d(t,{kQ:()=>n,f$:()=>o})},9239:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});var n=a(4015),o=a.n(n),i=a(3645),r=a.n(i)()(o());r.push([e.id,".dropdown-item[data-v-391cacea],.dropdown-item[data-v-391cacea]:hover{color:#212529}","",{version:3,sources:["webpack://./src/components/dashboard/Calendar.vue"],names:[],mappings:"AAwlBA,sEACA,aACA",sourcesContent:["\x3c!--\n - Calendar.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see .\n --\x3e\n\n\n\n