Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/passman.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpassman-bot <info@passman.cc>2019-10-20 22:03:41 +0300
committerpassman-bot <info@passman.cc>2019-10-20 22:03:41 +0300
commit0f3405414b5c899bd2f8efa43de4bd1dd2e46993 (patch)
treeefd5c243d7768aadc9df0058232a5b361590beb0
parent966e0b20916eb2e890675e5edcef276f0506e8b3 (diff)
Passman 2.3.32.3.3
Merge branch 'feature/noid/increase_version_to2.3.3' Signed-off-by: passman-bot <info@passman.cc>
-rw-r--r--appinfo/app.php13
-rw-r--r--appinfo/info.xml2
-rw-r--r--js/passman.min.js2
-rw-r--r--l10n/ar.js56
-rw-r--r--l10n/ar.json54
-rw-r--r--l10n/ca.js10
-rw-r--r--l10n/ca.json10
-rw-r--r--l10n/cs.js1
-rw-r--r--l10n/cs.json1
-rw-r--r--l10n/da.js45
-rw-r--r--l10n/da.json45
-rw-r--r--l10n/de.js12
-rw-r--r--l10n/de.json12
-rw-r--r--l10n/de_DE.js10
-rw-r--r--l10n/de_DE.json10
-rw-r--r--l10n/eo.js31
-rw-r--r--l10n/eo.json29
-rw-r--r--l10n/es.js3
-rw-r--r--l10n/es.json3
-rw-r--r--l10n/eu.js18
-rw-r--r--l10n/eu.json18
-rw-r--r--l10n/fr.js4
-rw-r--r--l10n/fr.json4
-rw-r--r--l10n/gl.js8
-rw-r--r--l10n/gl.json8
-rw-r--r--l10n/hr.js368
-rw-r--r--l10n/hr.json366
-rw-r--r--l10n/is.js1
-rw-r--r--l10n/is.json1
-rw-r--r--l10n/it.js2
-rw-r--r--l10n/it.json2
-rw-r--r--l10n/ja.js47
-rw-r--r--l10n/ja.json47
-rw-r--r--l10n/lt_LT.js9
-rw-r--r--l10n/lt_LT.json9
-rw-r--r--l10n/lv.js10
-rw-r--r--l10n/lv.json10
-rw-r--r--l10n/nl.js4
-rw-r--r--l10n/nl.json4
-rw-r--r--l10n/pl.js4
-rw-r--r--l10n/pl.json4
-rw-r--r--l10n/pt_BR.js2
-rw-r--r--l10n/pt_BR.json2
-rw-r--r--l10n/sl.js47
-rw-r--r--l10n/sl.json45
-rw-r--r--l10n/sr.js2
-rw-r--r--l10n/sr.json2
-rw-r--r--l10n/tr.js2
-rw-r--r--l10n/tr.json2
-rw-r--r--l10n/zh_CN.js2
-rw-r--r--l10n/zh_CN.json2
-rw-r--r--l10n/zh_TW.js77
-rw-r--r--l10n/zh_TW.json75
-rw-r--r--lib/Notifier.php22
-rw-r--r--lib/Service/CronService.php2
55 files changed, 1452 insertions, 129 deletions
diff --git a/appinfo/app.php b/appinfo/app.php
index cee29ffe..46519247 100644
--- a/appinfo/app.php
+++ b/appinfo/app.php
@@ -23,19 +23,8 @@ $app = new \OCA\Passman\AppInfo\Application();
$app->registerNavigationEntry();
$app->registerPersonalPage();
-
-$l = \OC::$server->getL10N('passman');
$manager = \OC::$server->getNotificationManager();
-$manager->registerNotifier(function() {
- return new Notifier(
- \OC::$server->getL10NFactory()
- );
-}, function() use ($l) {
- return [
- 'id' => 'passman',
- 'name' => $l->t('Passwords'),
- ];
-});
+$manager->registerNotifierService(Notifier::class);
/**
* Loading translations
diff --git a/appinfo/info.xml b/appinfo/info.xml
index ebacc615..a73aad71 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -19,7 +19,7 @@ Features:
- Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is )
For an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)
]]></description>
- <version>2.3.2</version>
+ <version>2.3.3</version>
<licence>agpl</licence>
<author homepage="https://github.com/brantje">Sander Brand</author>
<author homepage="https://github.com/animalillo">Marcos Zuriaga</author>
diff --git a/js/passman.min.js b/js/passman.min.js
index de114678..44c95201 100644
--- a/js/passman.min.js
+++ b/js/passman.min.js
@@ -1,4 +1,4 @@
-/*! Passman 2019-07-08 */
+/*! Passman 2019-10-20 */
function _a1(b,a){this.count=b,this._fc=a,this.__defineGetter__("Count",function(){return this.count}),this.__defineGetter__("_dm",function(){return this._fc})}function _a2(a,c,b){this._bm=a,b?this._do=new Array(c,b):this._do=new Array(c),this.__defineGetter__("_bo",function(){return this._bm}),this.__defineGetter__("_dn",function(){return this._bm*this._fo}),this.__defineGetter__("_fo",function(){for(var e=0,d=0;d<this._do.length;d++)e+=this._do[d].length;return e}),this._fb=function(){return this._do}}function _a3(k,l,h,g,f,e){this._bs=k,this._ar=l,this._do=new Array(h,g,f,e);for(var j=0,b=h._bo,a=h._fb(),d=0;d<a.length;d++){var c=a[d];j+=c.Count*(c._dm+b)}this._br=j,this.__defineGetter__("_fd",function(){return this._bs}),this.__defineGetter__("_as",function(){return this._ar}),this.__defineGetter__("_dp",function(){return this._br}),this.__defineGetter__("_cr",function(){return 17+4*this._bs}),this._aq=function(){var r=this._cr,o=new _ac(r);o._bq(0,0,9,9),o._bq(r-8,0,8,9),o._bq(0,r-8,9,8);for(var n=this._ar.length,m=0;m<n;m++)for(var q=this._ar[m]-2,s=0;s<n;s++)0==m&&(0==s||s==n-1)||m==n-1&&0==s||o._bq(this._ar[s]-2,q,5,5);return o._bq(6,9,1,r-17),o._bq(9,6,r-17,1),this._bs>6&&(o._bq(r-11,0,3,6),o._bq(0,r-11,6,3)),o},this._bu=function(i){return this._do[i.ordinal()]}}function _ay(){return new Array(new _a3(1,new Array,new _a2(7,new _a1(1,19)),new _a2(10,new _a1(1,16)),new _a2(13,new _a1(1,13)),new _a2(17,new _a1(1,9))),new _a3(2,new Array(6,18),new _a2(10,new _a1(1,34)),new _a2(16,new _a1(1,28)),new _a2(22,new _a1(1,22)),new _a2(28,new _a1(1,16))),new _a3(3,new Array(6,22),new _a2(15,new _a1(1,55)),new _a2(26,new _a1(1,44)),new _a2(18,new _a1(2,17)),new _a2(22,new _a1(2,13))),new _a3(4,new Array(6,26),new _a2(20,new _a1(1,80)),new _a2(18,new _a1(2,32)),new _a2(26,new _a1(2,24)),new _a2(16,new _a1(4,9))),new _a3(5,new Array(6,30),new _a2(26,new _a1(1,108)),new _a2(24,new _a1(2,43)),new _a2(18,new _a1(2,15),new _a1(2,16)),new _a2(22,new _a1(2,11),new _a1(2,12))),new _a3(6,new Array(6,34),new _a2(18,new _a1(2,68)),new _a2(16,new _a1(4,27)),new _a2(24,new _a1(4,19)),new _a2(28,new _a1(4,15))),new _a3(7,new Array(6,22,38),new _a2(20,new _a1(2,78)),new _a2(18,new _a1(4,31)),new _a2(18,new _a1(2,14),new _a1(4,15)),new _a2(26,new _a1(4,13),new _a1(1,14))),new _a3(8,new Array(6,24,42),new _a2(24,new _a1(2,97)),new _a2(22,new _a1(2,38),new _a1(2,39)),new _a2(22,new _a1(4,18),new _a1(2,19)),new _a2(26,new _a1(4,14),new _a1(2,15))),new _a3(9,new Array(6,26,46),new _a2(30,new _a1(2,116)),new _a2(22,new _a1(3,36),new _a1(2,37)),new _a2(20,new _a1(4,16),new _a1(4,17)),new _a2(24,new _a1(4,12),new _a1(4,13))),new _a3(10,new Array(6,28,50),new _a2(18,new _a1(2,68),new _a1(2,69)),new _a2(26,new _a1(4,43),new _a1(1,44)),new _a2(24,new _a1(6,19),new _a1(2,20)),new _a2(28,new _a1(6,15),new _a1(2,16))),new _a3(11,new Array(6,30,54),new _a2(20,new _a1(4,81)),new _a2(30,new _a1(1,50),new _a1(4,51)),new _a2(28,new _a1(4,22),new _a1(4,23)),new _a2(24,new _a1(3,12),new _a1(8,13))),new _a3(12,new Array(6,32,58),new _a2(24,new _a1(2,92),new _a1(2,93)),new _a2(22,new _a1(6,36),new _a1(2,37)),new _a2(26,new _a1(4,20),new _a1(6,21)),new _a2(28,new _a1(7,14),new _a1(4,15))),new _a3(13,new Array(6,34,62),new _a2(26,new _a1(4,107)),new _a2(22,new _a1(8,37),new _a1(1,38)),new _a2(24,new _a1(8,20),new _a1(4,21)),new _a2(22,new _a1(12,11),new _a1(4,12))),new _a3(14,new Array(6,26,46,66),new _a2(30,new _a1(3,115),new _a1(1,116)),new _a2(24,new _a1(4,40),new _a1(5,41)),new _a2(20,new _a1(11,16),new _a1(5,17)),new _a2(24,new _a1(11,12),new _a1(5,13))),new _a3(15,new Array(6,26,48,70),new _a2(22,new _a1(5,87),new _a1(1,88)),new _a2(24,new _a1(5,41),new _a1(5,42)),new _a2(30,new _a1(5,24),new _a1(7,25)),new _a2(24,new _a1(11,12),new _a1(7,13))),new _a3(16,new Array(6,26,50,74),new _a2(24,new _a1(5,98),new _a1(1,99)),new _a2(28,new _a1(7,45),new _a1(3,46)),new _a2(24,new _a1(15,19),new _a1(2,20)),new _a2(30,new _a1(3,15),new _a1(13,16))),new _a3(17,new Array(6,30,54,78),new _a2(28,new _a1(1,107),new _a1(5,108)),new _a2(28,new _a1(10,46),new _a1(1,47)),new _a2(28,new _a1(1,22),new _a1(15,23)),new _a2(28,new _a1(2,14),new _a1(17,15))),new _a3(18,new Array(6,30,56,82),new _a2(30,new _a1(5,120),new _a1(1,121)),new _a2(26,new _a1(9,43),new _a1(4,44)),new _a2(28,new _a1(17,22),new _a1(1,23)),new _a2(28,new _a1(2,14),new _a1(19,15))),new _a3(19,new Array(6,30,58,86),new _a2(28,new _a1(3,113),new _a1(4,114)),new _a2(26,new _a1(3,44),new _a1(11,45)),new _a2(26,new _a1(17,21),new _a1(4,22)),new _a2(26,new _a1(9,13),new _a1(16,14))),new _a3(20,new Array(6,34,62,90),new _a2(28,new _a1(3,107),new _a1(5,108)),new _a2(26,new _a1(3,41),new _a1(13,42)),new _a2(30,new _a1(15,24),new _a1(5,25)),new _a2(28,new _a1(15,15),new _a1(10,16))),new _a3(21,new Array(6,28,50,72,94),new _a2(28,new _a1(4,116),new _a1(4,117)),new _a2(26,new _a1(17,42)),new _a2(28,new _a1(17,22),new _a1(6,23)),new _a2(30,new _a1(19,16),new _a1(6,17))),new _a3(22,new Array(6,26,50,74,98),new _a2(28,new _a1(2,111),new _a1(7,112)),new _a2(28,new _a1(17,46)),new _a2(30,new _a1(7,24),new _a1(16,25)),new _a2(24,new _a1(34,13))),new _a3(23,new Array(6,30,54,74,102),new _a2(30,new _a1(4,121),new _a1(5,122)),new _a2(28,new _a1(4,47),new _a1(14,48)),new _a2(30,new _a1(11,24),new _a1(14,25)),new _a2(30,new _a1(16,15),new _a1(14,16))),new _a3(24,new Array(6,28,54,80,106),new _a2(30,new _a1(6,117),new _a1(4,118)),new _a2(28,new _a1(6,45),new _a1(14,46)),new _a2(30,new _a1(11,24),new _a1(16,25)),new _a2(30,new _a1(30,16),new _a1(2,17))),new _a3(25,new Array(6,32,58,84,110),new _a2(26,new _a1(8,106),new _a1(4,107)),new _a2(28,new _a1(8,47),new _a1(13,48)),new _a2(30,new _a1(7,24),new _a1(22,25)),new _a2(30,new _a1(22,15),new _a1(13,16))),new _a3(26,new Array(6,30,58,86,114),new _a2(28,new _a1(10,114),new _a1(2,115)),new _a2(28,new _a1(19,46),new _a1(4,47)),new _a2(28,new _a1(28,22),new _a1(6,23)),new _a2(30,new _a1(33,16),new _a1(4,17))),new _a3(27,new Array(6,34,62,90,118),new _a2(30,new _a1(8,122),new _a1(4,123)),new _a2(28,new _a1(22,45),new _a1(3,46)),new _a2(30,new _a1(8,23),new _a1(26,24)),new _a2(30,new _a1(12,15),new _a1(28,16))),new _a3(28,new Array(6,26,50,74,98,122),new _a2(30,new _a1(3,117),new _a1(10,118)),new _a2(28,new _a1(3,45),new _a1(23,46)),new _a2(30,new _a1(4,24),new _a1(31,25)),new _a2(30,new _a1(11,15),new _a1(31,16))),new _a3(29,new Array(6,30,54,78,102,126),new _a2(30,new _a1(7,116),new _a1(7,117)),new _a2(28,new _a1(21,45),new _a1(7,46)),new _a2(30,new _a1(1,23),new _a1(37,24)),new _a2(30,new _a1(19,15),new _a1(26,16))),new _a3(30,new Array(6,26,52,78,104,130),new _a2(30,new _a1(5,115),new _a1(10,116)),new _a2(28,new _a1(19,47),new _a1(10,48)),new _a2(30,new _a1(15,24),new _a1(25,25)),new _a2(30,new _a1(23,15),new _a1(25,16))),new _a3(31,new Array(6,30,56,82,108,134),new _a2(30,new _a1(13,115),new _a1(3,116)),new _a2(28,new _a1(2,46),new _a1(29,47)),new _a2(30,new _a1(42,24),new _a1(1,25)),new _a2(30,new _a1(23,15),new _a1(28,16))),new _a3(32,new Array(6,34,60,86,112,138),new _a2(30,new _a1(17,115)),new _a2(28,new _a1(10,46),new _a1(23,47)),new _a2(30,new _a1(10,24),new _a1(35,25)),new _a2(30,new _a1(19,15),new _a1(35,16))),new _a3(33,new Array(6,30,58,86,114,142),new _a2(30,new _a1(17,115),new _a1(1,116)),new _a2(28,new _a1(14,46),new _a1(21,47)),new _a2(30,new _a1(29,24),new _a1(19,25)),new _a2(30,new _a1(11,15),new _a1(46,16))),new _a3(34,new Array(6,34,62,90,118,146),new _a2(30,new _a1(13,115),new _a1(6,116)),new _a2(28,new _a1(14,46),new _a1(23,47)),new _a2(30,new _a1(44,24),new _a1(7,25)),new _a2(30,new _a1(59,16),new _a1(1,17))),new _a3(35,new Array(6,30,54,78,102,126,150),new _a2(30,new _a1(12,121),new _a1(7,122)),new _a2(28,new _a1(12,47),new _a1(26,48)),new _a2(30,new _a1(39,24),new _a1(14,25)),new _a2(30,new _a1(22,15),new _a1(41,16))),new _a3(36,new Array(6,24,50,76,102,128,154),new _a2(30,new _a1(6,121),new _a1(14,122)),new _a2(28,new _a1(6,47),new _a1(34,48)),new _a2(30,new _a1(46,24),new _a1(10,25)),new _a2(30,new _a1(2,15),new _a1(64,16))),new _a3(37,new Array(6,28,54,80,106,132,158),new _a2(30,new _a1(17,122),new _a1(4,123)),new _a2(28,new _a1(29,46),new _a1(14,47)),new _a2(30,new _a1(49,24),new _a1(10,25)),new _a2(30,new _a1(24,15),new _a1(46,16))),new _a3(38,new Array(6,32,58,84,110,136,162),new _a2(30,new _a1(4,122),new _a1(18,123)),new _a2(28,new _a1(13,46),new _a1(32,47)),new _a2(30,new _a1(48,24),new _a1(14,25)),new _a2(30,new _a1(42,15),new _a1(32,16))),new _a3(39,new Array(6,26,54,82,110,138,166),new _a2(30,new _a1(20,117),new _a1(4,118)),new _a2(28,new _a1(40,47),new _a1(7,48)),new _a2(30,new _a1(43,24),new _a1(22,25)),new _a2(30,new _a1(10,15),new _a1(67,16))),new _a3(40,new Array(6,30,58,86,114,142,170),new _a2(30,new _a1(19,118),new _a1(6,119)),new _a2(28,new _a1(18,47),new _a1(31,48)),new _a2(30,new _a1(34,24),new _a1(34,25)),new _a2(30,new _a1(20,15),new _a1(61,16))))}function _ae(i,f,c,h,e,b,g,d,a){this.a11=i,this.a12=h,this.a13=g,this.a21=f,this.a22=e,this.a23=d,this.a31=c,this.a32=b,this.a33=a,this._ad=function(w){for(var t=w.length,A=this.a11,z=this.a12,v=this.a13,r=this.a21,q=this.a22,o=this.a23,m=this.a31,k=this.a32,j=this.a33,n=0;n<t;n+=2){var u=w[n],s=w[n+1],l=v*u+o*s+j;w[n]=(A*u+r*s+m)/l,w[n+1]=(z*u+q*s+k)/l}},this._fp=function(m,k){for(var r=m.length,l=0;l<r;l++){var j=m[l],q=k[l],o=this.a13*j+this.a23*q+this.a33;m[l]=(this.a11*j+this.a21*q+this.a31)/o,k[l]=(this.a12*j+this.a22*q+this.a32)/o}},this._fr=function(){return new _ae(this.a22*this.a33-this.a23*this.a32,this.a23*this.a31-this.a21*this.a33,this.a21*this.a32-this.a22*this.a31,this.a13*this.a32-this.a12*this.a33,this.a11*this.a33-this.a13*this.a31,this.a12*this.a31-this.a11*this.a32,this.a12*this.a23-this.a13*this.a22,this.a13*this.a21-this.a11*this.a23,this.a11*this.a22-this.a12*this.a21)},this.times=function(j){return new _ae(this.a11*j.a11+this.a21*j.a12+this.a31*j.a13,this.a11*j.a21+this.a21*j.a22+this.a31*j.a23,this.a11*j.a31+this.a21*j.a32+this.a31*j.a33,this.a12*j.a11+this.a22*j.a12+this.a32*j.a13,this.a12*j.a21+this.a22*j.a22+this.a32*j.a23,this.a12*j.a31+this.a22*j.a32+this.a32*j.a33,this.a13*j.a11+this.a23*j.a12+this.a33*j.a13,this.a13*j.a21+this.a23*j.a22+this.a33*j.a23,this.a13*j.a31+this.a23*j.a32+this.a33*j.a33)}}function _bg(b,a){this.bits=b,this.points=a}function Detector(a){this.image=a,this._am=null,this._bi=function(m,l,c,b){var d=Math.abs(b-l)>Math.abs(c-m);if(d){var s=m;m=l,l=s,s=c,c=b,b=s}for(var j=Math.abs(c-m),i=Math.abs(b-l),q=-j>>1,v=l<b?1:-1,f=m<c?1:-1,e=0,h=m,g=l;h!=c;h+=f){var u=d?g:h,t=d?h:g;if(1==e?this.image[u+t*qrcode.width]&&e++:this.image[u+t*qrcode.width]||e++,3==e){var o=h-m,n=g-l;return Math.sqrt(o*o+n*n)}if(q+=i,q>0){if(g==b)break;g+=v,q-=j}}var k=c-m,r=b-l;return Math.sqrt(k*k+r*r)},this._bh=function(i,g,h,f){var b=this._bi(i,g,h,f),e=1,d=i-(h-i);d<0?(e=i/(i-d),d=0):d>=qrcode.width&&(e=(qrcode.width-1-i)/(d-i),d=qrcode.width-1);var c=Math.floor(g-(f-g)*e);return e=1,c<0?(e=g/(g-c),c=0):c>=qrcode.height&&(e=(qrcode.height-1-g)/(c-g),c=qrcode.height-1),d=Math.floor(i+(d-i)*e),b+=this._bi(i,g,d,c),b-1},this._bj=function(c,d){var b=this._bh(Math.floor(c.X),Math.floor(c.Y),Math.floor(d.X),Math.floor(d.Y)),e=this._bh(Math.floor(d.X),Math.floor(d.Y),Math.floor(c.X),Math.floor(c.Y));return isNaN(b)?e/7:isNaN(e)?b/7:(b+e)/14},this._bk=function(d,c,b){return(this._bj(d,c)+this._bj(d,b))/2},this.distance=function(c,b){return xDiff=c.X-b.X,yDiff=c.Y-b.Y,Math.sqrt(xDiff*xDiff+yDiff*yDiff)},this._bx=function(g,f,d,e){var b=Math.round(this.distance(g,f)/e),c=Math.round(this.distance(g,d)/e),h=(b+c>>1)+7;switch(3&h){case 0:h++;break;case 2:h--;break;case 3:throw"Error"}return h},this._bl=function(g,f,d,j){var k=Math.floor(j*g),h=Math.max(0,f-k),i=Math.min(qrcode.width-1,f+k);if(i-h<3*g)throw"Error";var b=Math.max(0,d-k),c=Math.min(qrcode.height-1,d+k),e=new _ak(this.image,h,b,i-h,c-b,g,this._am);return e.find()},this.createTransform=function(l,h,k,b,g){var i,f,e,c,j=g-3.5;null!=b?(i=b.X,f=b.Y,e=c=j-3):(i=h.X-l.X+k.X,f=h.Y-l.Y+k.Y,e=c=j);var d=_ae._ag(3.5,3.5,j,3.5,e,c,3.5,j,l.X,l.Y,h.X,h.Y,i,f,k.X,k.Y);return d},this._bz=function(e,b,d){var c=_aa;return c._af(e,d,b)},this._cd=function(r){var j=r._gq,h=r._gs,n=r._gp,d=this._bk(j,h,n);if(d<1)throw"Error";var s=this._bx(j,h,n,d),b=_a3._at(s),k=b._cr-7,l=null;if(b._as.length>0)for(var f=h.X-j.X+n.X,e=h.Y-j.Y+n.Y,c=1-3/k,u=Math.floor(j.X+c*(f-j.X)),t=Math.floor(j.Y+c*(e-j.Y)),q=4;q<=16;q<<=1){l=this._bl(d,u,t,q);break}var o,g=this.createTransform(j,h,n,l,s),m=this._bz(this.image,g,s);return o=null==l?new Array(n,j,h):new Array(n,j,h,l),new _bg(m,o)},this.detect=function(){var b=(new _cc)._ce(this.image);return this._cd(b)}}function _ax(a){this._cf=_cg.forBits(a>>3&3),this._fe=7&a,this.__defineGetter__("_cg",function(){return this._cf}),this.__defineGetter__("_dx",function(){return this._fe}),this.GetHashCode=function(){return this._cf.ordinal()<<3|_fe},this.Equals=function(c){var b=c;return this._cf==b._cf&&this._fe==b._fe}}function _cg(a,c,b){this._ff=a,this.bits=c,this.name=b,this.__defineGetter__("Bits",function(){return this.bits}),this.__defineGetter__("Name",function(){return this.name}),this.ordinal=function(){return this._ff}}function _ac(d,a){if(a||(a=d),d<1||a<1)throw"Both dimensions must be greater than 0";this.width=d,this.height=a;var c=d>>5;0!=(31&d)&&c++,this.rowSize=c,this.bits=new Array(c*a);for(var b=0;b<this.bits.length;b++)this.bits[b]=0;this.__defineGetter__("Width",function(){return this.width}),this.__defineGetter__("Height",function(){return this.height}),this.__defineGetter__("Dimension",function(){if(this.width!=this.height)throw"Can't call getDimension() on a non-square matrix";return this.width}),this._ds=function(e,g){var f=g*this.rowSize+(e>>5);return 0!=(1&_ew(this.bits[f],31&e))},this._dq=function(e,g){var f=g*this.rowSize+(e>>5);this.bits[f]|=1<<(31&e)},this.flip=function(e,g){var f=g*this.rowSize+(e>>5);this.bits[f]^=1<<(31&e)},this.clear=function(){for(var e=this.bits.length,f=0;f<e;f++)this.bits[f]=0},this._bq=function(g,j,f,m){if(j<0||g<0)throw"Left and top must be nonnegative";if(m<1||f<1)throw"Height and width must be at least 1";var l=g+f,e=j+m;if(e>this.height||l>this.width)throw"The region must fit inside the matrix";for(var i=j;i<e;i++)for(var h=i*this.rowSize,k=g;k<l;k++)this.bits[h+(k>>5)]|=1<<(31&k)}}function _dl(a,b){this._dv=a,this._dw=b,this.__defineGetter__("_du",function(){return this._dv}),this.__defineGetter__("Codewords",function(){return this._dw})}function _cl(a){var b=a.Dimension;if(b<21||1!=(3&b))throw"Error _cl";this._au=a,this._cp=null,this._co=null,this._dk=function(d,c,e){return this._au._ds(d,c)?e<<1|1:e<<1},this._cm=function(){if(null!=this._co)return this._co;for(var g=0,e=0;e<6;e++)g=this._dk(e,8,g);g=this._dk(7,8,g),g=this._dk(8,8,g),g=this._dk(8,7,g);for(var c=5;c>=0;c--)g=this._dk(8,c,g);if(this._co=_ax._ci(g),null!=this._co)return this._co;var f=this._au.Dimension;g=0;for(var d=f-8,e=f-1;e>=d;e--)g=this._dk(e,8,g);for(var c=f-7;c<f;c++)g=this._dk(8,c,g);if(this._co=_ax._ci(g),null!=this._co)return this._co;throw"Error _cm"},this._cq=function(){if(null!=this._cp)return this._cp;var h=this._au.Dimension,f=h-17>>2;if(f<=6)return _a3._av(f);for(var g=0,e=h-11,c=5;c>=0;c--)for(var d=h-9;d>=e;d--)g=this._dk(d,c,g);if(this._cp=_a3._aw(g),null!=this._cp&&this._cp._cr==h)return this._cp;g=0;for(var d=5;d>=0;d--)for(var c=h-9;c>=e;c--)g=this._dk(d,c,g);if(this._cp=_a3._aw(g),null!=this._cp&&this._cp._cr==h)return this._cp;throw"Error _cq"},this._gk=function(){var r=this._cm(),o=this._cq(),c=_dx._gl(r._dx),f=this._au.Dimension;c._dj(this._au,f);for(var k=o._aq(),n=!0,s=new Array(o._dp),m=0,q=0,h=0,e=f-1;e>0;e-=2){6==e&&e--;for(var l=0;l<f;l++)for(var g=n?f-1-l:l,d=0;d<2;d++)k._ds(e-d,g)||(h++,q<<=1,this._au._ds(e-d,g)&&(q|=1),8==h&&(s[m++]=q,h=0,q=0));n^=!0}if(m!=o._dp)throw"Error _gk";return s}}function _fg(){this._dj=function(c,d){for(var b=0;b<d;b++)for(var a=0;a<d;a++)this._fw(b,a)&&c.flip(a,b)},this._fw=function(b,a){return 0==(b+a&1)}}function _fh(){this._dj=function(c,d){for(var b=0;b<d;b++)for(var a=0;a<d;a++)this._fw(b,a)&&c.flip(a,b)},this._fw=function(b,a){return 0==(1&b)}}function _fi(){this._dj=function(c,d){for(var b=0;b<d;b++)for(var a=0;a<d;a++)this._fw(b,a)&&c.flip(a,b)},this._fw=function(b,a){return a%3==0}}function _fj(){this._dj=function(c,d){for(var b=0;b<d;b++)for(var a=0;a<d;a++)this._fw(b,a)&&c.flip(a,b)},this._fw=function(b,a){return(b+a)%3==0}}function _fk(){this._dj=function(c,d){for(var b=0;b<d;b++)for(var a=0;a<d;a++)this._fw(b,a)&&c.flip(a,b)},this._fw=function(b,a){return 0==(_ew(b,1)+a/3&1)}}function _fl(){this._dj=function(c,d){for(var b=0;b<d;b++)for(var a=0;a<d;a++)this._fw(b,a)&&c.flip(a,b)},this._fw=function(c,b){var a=c*b;return(1&a)+a%3==0}}function _fm(){this._dj=function(c,d){for(var b=0;b<d;b++)for(var a=0;a<d;a++)this._fw(b,a)&&c.flip(a,b)},this._fw=function(c,b){var a=c*b;return 0==((1&a)+a%3&1)}}function _fn(){this._dj=function(c,d){for(var b=0;b<d;b++)for(var a=0;a<d;a++)this._fw(b,a)&&c.flip(a,b)},this._fw=function(b,a){return 0==((b+a&1)+b*a%3&1)}}function _db(_fa){this._fa=_fa,this.decode=function(received,_fv){for(var poly=new _bp(this._fa,received),_dh=new Array(_fv),i=0;i<_dh.length;i++)_dh[i]=0;for(var _fq=!1,noError=!0,i=0;i<_fv;i++){var eval=poly.evaluateAt(this._fa.exp(_fq?i+1:i));_dh[_dh.length-1-i]=eval,0!=eval&&(noError=!1)}if(!noError)for(var _fu=new _bp(this._fa,_dh),_dg=this._eb(this._fa._ba(_fv,1),_fu,_fv),sigma=_dg[0],omega=_dg[1],_dz=this._ey(sigma),_ea=this._di(omega,_dz,_fq),i=0;i<_dz.length;i++){var position=received.length-1-this._fa.log(_dz[i]);if(position<0)throw"ReedSolomonException Bad error location";received[position]=_az._bd(received[position],_ea[i])}},this._eb=function(a,b,R){if(a._ec<b._ec){var temp=a;a=b,b=temp}for(var rLast=a,r=b,sLast=this._fa.One,s=this._fa.Zero,tLast=this._fa.Zero,t=this._fa.One;r._ec>=Math.floor(R/2);){var rLastLast=rLast,_ga=sLast,_gb=tLast;if(rLast=r,sLast=s,tLast=t,rLast.Zero)throw"r_{i-1} was zero";r=rLastLast;for(var q=this._fa.Zero,_df=rLast._ex(rLast._ec),_fy=this._fa.inverse(_df);r._ec>=rLast._ec&&!r.Zero;){var _fx=r._ec-rLast._ec,scale=this._fa.multiply(r._ex(r._ec),_fy);q=q._bd(this._fa._ba(_fx,scale)),r=r._bd(rLast._dc(_fx,scale))}s=q.multiply1(sLast)._bd(_ga),t=q.multiply1(tLast)._bd(_gb)}var _de=t._ex(0);if(0==_de)throw"ReedSolomonException sigmaTilde(0) was zero";var inverse=this._fa.inverse(_de),sigma=t.multiply2(inverse),omega=r.multiply2(inverse);return new Array(sigma,omega)},this._ey=function(_ez){var _fz=_ez._ec;if(1==_fz)return new Array(_ez._ex(1));for(var result=new Array(_fz),e=0,i=1;i<256&&e<_fz;i++)0==_ez.evaluateAt(i)&&(result[e]=this._fa.inverse(i),e++);if(e!=_fz)throw"Error locator degree does not match number of roots";return result},this._di=function(_fs,_dz,_fq){for(var s=_dz.length,result=new Array(s),i=0;i<s;i++){for(var _gc=this._fa.inverse(_dz[i]),_dr=1,j=0;j<s;j++)i!=j&&(_dr=this._fa.multiply(_dr,_az._bd(1,this._fa.multiply(_dz[j],_gc))));result[i]=this._fa.multiply(_fs.evaluateAt(_gc),this._fa.inverse(_dr)),_fq&&(result[i]=this._fa.multiply(result[i],_gc))}return result}}function _bp(f,e){if(null==e||0==e.length)throw"bad arguments";this._fa=f;var c=e.length;if(c>1&&0==e[0]){for(var d=1;d<c&&0==e[d];)d++;if(d==c)this._dd=f.Zero._dd;else{this._dd=new Array(c-d);for(var b=0;b<this._dd.length;b++)this._dd[b]=0;for(var a=0;a<this._dd.length;a++)this._dd[a]=e[d+a]}}else this._dd=e;this.__defineGetter__("Zero",function(){return 0==this._dd[0]}),this.__defineGetter__("_ec",function(){return this._dd.length-1}),this.__defineGetter__("Coefficients",function(){return this._dd}),this._ex=function(g){return this._dd[this._dd.length-1-g]},this.evaluateAt=function(h){if(0==h)return this._ex(0);var l=this._dd.length;if(1==h){for(var g=0,k=0;k<l;k++)g=_az._bd(g,this._dd[k]);return g}for(var j=this._dd[0],k=1;k<l;k++)j=_az._bd(this._fa.multiply(h,j),this._dd[k]);return j},this._bd=function(g){if(this._fa!=g._fa)throw"GF256Polys do not have same _az _fa";if(this.Zero)return g;if(g.Zero)return this;var o=this._dd,n=g._dd;if(o.length>n.length){var j=o;o=n,n=j}for(var h=new Array(n.length),k=n.length-o.length,m=0;m<k;m++)h[m]=n[m];for(var l=k;l<n.length;l++)h[l]=_az._bd(o[l-k],n[l]);return new _bp(f,h)},this.multiply1=function(o){if(this._fa!=o._fa)throw"GF256Polys do not have same _az _fa";if(this.Zero||o.Zero)return this._fa.Zero;for(var r=this._dd,g=r.length,l=o._dd,n=l.length,q=new Array(g+n-1),m=0;m<g;m++)for(var h=r[m],k=0;k<n;k++)q[m+k]=_az._bd(q[m+k],this._fa.multiply(h,l[k]));return new _bp(this._fa,q)},this.multiply2=function(g){if(0==g)return this._fa.Zero;if(1==g)return this;for(var j=this._dd.length,k=new Array(j),h=0;h<j;h++)k[h]=this._fa.multiply(this._dd[h],g);return new _bp(this._fa,k)},this._dc=function(l,g){if(l<0)throw"bad arguments";if(0==g)return this._fa.Zero;for(var j=this._dd.length,k=new Array(j+l),h=0;h<k.length;h++)k[h]=0;for(var h=0;h<j;h++)k[h]=this._fa.multiply(this._dd[h],g);return new _bp(this._fa,k)},this.divide=function(l){if(this._fa!=l._fa)throw"GF256Polys do not have same _az _fa";if(l.Zero)throw"Divide by 0";for(var j=this._fa.Zero,o=this,g=l._ex(l._ec),n=this._fa.inverse(g);o._ec>=l._ec&&!o.Zero;){var m=o._ec-l._ec,h=this._fa.multiply(o._ex(o._ec),n),i=l._dc(m,h),k=this._fa._ba(m,h);j=j._bd(k),o=o._bd(i)}return new Array(j,o)}}function _az(b){this._gh=new Array(256),this._gi=new Array(256);for(var a=1,e=0;e<256;e++)this._gh[e]=a,a<<=1,a>=256&&(a^=b);for(var e=0;e<255;e++)this._gi[this._gh[e]]=e;var d=new Array(1);d[0]=0,this.zero=new _bp(this,new Array(d));var c=new Array(1);c[0]=1,this.one=new _bp(this,new Array(c)),this.__defineGetter__("Zero",function(){return this.zero}),this.__defineGetter__("One",function(){return this.one}),this._ba=function(j,f){if(j<0)throw"bad arguments";if(0==f)return zero;for(var h=new Array(j+1),g=0;g<h.length;g++)h[g]=0;return h[0]=f,new _bp(this,h)},this.exp=function(f){return this._gh[f]},this.log=function(f){if(0==f)throw"bad arguments";return this._gi[f]},this.inverse=function(f){if(0==f)throw"System.ArithmeticException";return this._gh[255-this._gi[f]]},this.multiply=function(g,f){return 0==g||0==f?0:1==g?f:1==f?g:this._gh[(this._gi[g]+this._gi[f])%255]}}function _ew(a,b){return a>=0?a>>b:(a>>b)+(2<<~b)}function _cz(c,a,b){this.x=c,this.y=a,this.count=1,this._aj=b,this.__defineGetter__("_ei",function(){return this._aj}),this.__defineGetter__("Count",function(){return this.count}),this.__defineGetter__("X",function(){return this.x}),this.__defineGetter__("Y",function(){return this.y}),this._ek=function(){this.count++},this._ev=function(f,e,d){if(Math.abs(e-this.y)<=f&&Math.abs(d-this.x)<=f){var g=Math.abs(f-this._aj);return g<=1||g/this._aj<=1}return!1}}function _es(a){this._go=a[0],this._gu=a[1],this._gr=a[2],this.__defineGetter__("_gp",function(){return this._go}),this.__defineGetter__("_gq",function(){return this._gu}),this.__defineGetter__("_gs",function(){return this._gr})}function _cc(){this.image=null,this._cv=[],this._ge=!1,this._al=new Array(0,0,0,0,0),this._am=null,this.__defineGetter__("_da",function(){return this._al[0]=0,this._al[1]=0,this._al[2]=0,this._al[3]=0,this._al[4]=0,this._al}),this._ao=function(f){for(var b=0,d=0;d<5;d++){var e=f[d];if(0==e)return!1;b+=e}if(b<7)return!1;var c=Math.floor((b<<_el)/7),a=Math.floor(c/2);return Math.abs(c-(f[0]<<_el))<a&&Math.abs(c-(f[1]<<_el))<a&&Math.abs(3*c-(f[2]<<_el))<3*a&&Math.abs(c-(f[3]<<_el))<a&&Math.abs(c-(f[4]<<_el))<a},this._an=function(b,a){return a-b[4]-b[3]-b[2]/2},this._ap=function(a,j,d,g){for(var c=this.image,h=qrcode.height,b=this._da,f=a;f>=0&&c[j+f*qrcode.width];)b[2]++,f--;if(f<0)return NaN;for(;f>=0&&!c[j+f*qrcode.width]&&b[1]<=d;)b[1]++,f--;if(f<0||b[1]>d)return NaN;for(;f>=0&&c[j+f*qrcode.width]&&b[0]<=d;)b[0]++,f--;if(b[0]>d)return NaN;for(f=a+1;f<h&&c[j+f*qrcode.width];)b[2]++,f++;if(f==h)return NaN;for(;f<h&&!c[j+f*qrcode.width]&&b[3]<d;)b[3]++,f++;if(f==h||b[3]>=d)return NaN;for(;f<h&&c[j+f*qrcode.width]&&b[4]<d;)b[4]++,f++;if(b[4]>=d)return NaN;var e=b[0]+b[1]+b[2]+b[3]+b[4];return 5*Math.abs(e-g)>=2*g?NaN:this._ao(b)?this._an(b,f):NaN},this._ej=function(b,a,e,h){for(var d=this.image,i=qrcode.width,c=this._da,g=b;g>=0&&d[g+a*qrcode.width];)c[2]++,g--;if(g<0)return NaN;for(;g>=0&&!d[g+a*qrcode.width]&&c[1]<=e;)c[1]++,g--;if(g<0||c[1]>e)return NaN;for(;g>=0&&d[g+a*qrcode.width]&&c[0]<=e;)c[0]++,g--;if(c[0]>e)return NaN;for(g=b+1;g<i&&d[g+a*qrcode.width];)c[2]++,g++;if(g==i)return NaN;for(;g<i&&!d[g+a*qrcode.width]&&c[3]<e;)c[3]++,g++;if(g==i||c[3]>=e)return NaN;for(;g<i&&d[g+a*qrcode.width]&&c[4]<e;)c[4]++,g++;if(c[4]>=e)return NaN;var f=c[0]+c[1]+c[2]+c[3]+c[4];return 5*Math.abs(f-h)>=h?NaN:this._ao(c)?this._an(c,g):NaN},this._cu=function(c,f,e){var d=c[0]+c[1]+c[2]+c[3]+c[4],n=this._an(c,e),b=this._ap(f,Math.floor(n),c[2],d);if(!isNaN(b)&&(n=this._ej(Math.floor(n),Math.floor(b),c[2],d),!isNaN(n))){for(var l=d/7,m=!1,h=this._cv.length,g=0;g<h;g++){var a=this._cv[g];if(a._ev(l,b,n)){a._ek(),m=!0;break}}if(!m){var k=new _cz(n,b,l);this._cv.push(k),null!=this._am&&this._am._ep(k)}return!0}return!1},this._ee=function(){var a=this._cv.length;if(a<3)throw"Couldn't find enough finder patterns";if(a>3){for(var b=0,c=0;c<a;c++)b+=this._cv[c]._ei;for(var d=b/a,c=0;c<this._cv.length&&this._cv.length>3;c++){var e=this._cv[c];Math.abs(e._ei-d)>.2*d&&(this._cv.remove(c),c--)}}return this._cv.length>3&&this._cv.sort(function(g,f){return g.count>f.count?-1:g.count<f.count?1:0}),new Array(this._cv[0],this._cv[1],this._cv[2])},this._eq=function(){var b=this._cv.length;if(b<=1)return 0;for(var c=null,d=0;d<b;d++){var a=this._cv[d];if(a.Count>=_eg){if(null!=c)return this._ge=!0,Math.floor((Math.abs(c.X-a.X)-Math.abs(c.Y-a.Y))/2);c=a}}return 0},this._cx=function(){for(var g=0,c=0,a=this._cv.length,d=0;d<a;d++){var f=this._cv[d];f.Count>=_eg&&(g++,c+=f._ei)}if(g<3)return!1;for(var e=c/a,b=0,d=0;d<a;d++)f=this._cv[d],b+=Math.abs(f._ei-e);return b<=.05*c},this._ce=function(e){var o=!1;this.image=e;var n=qrcode.height,k=qrcode.width,a=Math.floor(3*n/(4*_eh));(a<_gf||o)&&(a=_gf);for(var g=!1,d=new Array(5),h=a-1;h<n&&!g;h+=a){d[0]=0,d[1]=0,d[2]=0,d[3]=0,d[4]=0;for(var b=0,f=0;f<k;f++)if(e[f+h*qrcode.width])1==(1&b)&&b++,d[b]++;else if(0==(1&b))if(4==b)if(this._ao(d)){var c=this._cu(d,h,f);if(c)if(a=2,this._ge)g=this._cx();else{var m=this._eq();m>d[2]&&(h+=m-d[2]-a,f=k-1)}else{do f++;while(f<k&&!e[f+h*qrcode.width]);f--}b=0,d[0]=0,d[1]=0,d[2]=0,d[3]=0,d[4]=0}else d[0]=d[2],d[1]=d[3],d[2]=d[4],d[3]=1,d[4]=0,b=3;else d[++b]++;else d[b]++;if(this._ao(d)){var c=this._cu(d,h,k);c&&(a=d[0],this._ge&&(g=_cx()))}}var l=this._ee();return qrcode._er(l),new _es(l)}}function _ai(c,a,b){this.x=c,this.y=a,this.count=1,this._aj=b,this.__defineGetter__("_ei",function(){return this._aj}),this.__defineGetter__("Count",function(){return this.count}),this.__defineGetter__("X",function(){return Math.floor(this.x)}),this.__defineGetter__("Y",function(){return Math.floor(this.y)}),this._ek=function(){this.count++},this._ev=function(f,e,d){if(Math.abs(e-this.y)<=f&&Math.abs(d-this.x)<=f){var g=Math.abs(f-this._aj);return g<=1||g/this._aj<=1}return!1}}function _ak(g,c,b,f,a,e,d){this.image=g,this._cv=new Array,this.startX=c,this.startY=b,this.width=f,this.height=a,this._ef=e,this._al=new Array(0,0,0),this._am=d,this._an=function(i,h){return h-i[2]-i[1]/2},this._ao=function(l){for(var k=this._ef,h=k/2,j=0;j<3;j++)if(Math.abs(k-l[j])>=h)return!1;return!0},this._ap=function(h,r,l,o){var k=this.image,q=qrcode.height,j=this._al;j[0]=0,j[1]=0,j[2]=0;for(var n=h;n>=0&&k[r+n*qrcode.width]&&j[1]<=l;)j[1]++,n--;if(n<0||j[1]>l)return NaN;for(;n>=0&&!k[r+n*qrcode.width]&&j[0]<=l;)j[0]++,n--;if(j[0]>l)return NaN;for(n=h+1;n<q&&k[r+n*qrcode.width]&&j[1]<=l;)j[1]++,n++;if(n==q||j[1]>l)return NaN;for(;n<q&&!k[r+n*qrcode.width]&&j[2]<=l;)j[2]++,n++;if(j[2]>l)return NaN;var m=j[0]+j[1]+j[2];return 5*Math.abs(m-o)>=2*o?NaN:this._ao(j)?this._an(j,n):NaN},this._cu=function(l,o,n){var m=l[0]+l[1]+l[2],u=this._an(l,n),k=this._ap(o,Math.floor(u),2*l[1],m);if(!isNaN(k)){for(var t=(l[0]+l[1]+l[2])/3,r=this._cv.length,q=0;q<r;q++){var h=this._cv[q];if(h._ev(t,k,u))return new _ai(u,k,t)}var s=new _ai(u,k,t);this._cv.push(s),null!=this._am&&this._am._ep(s)}return null},this.find=function(){for(var q=this.startX,t=this.height,r=q+f,s=b+(t>>1),m=new Array(0,0,0),k=0;k<t;k++){var o=s+(0==(1&k)?k+1>>1:-(k+1>>1));m[0]=0,m[1]=0,m[2]=0;for(var n=q;n<r&&!g[n+qrcode.width*o];)n++;for(var h=0;n<r;){if(g[n+o*qrcode.width])if(1==h)m[h]++;else if(2==h){if(this._ao(m)){var l=this._cu(m,o,n);if(null!=l)return l}m[0]=m[2],m[1]=1,m[2]=0,h=1}else m[++h]++;else 1==h&&h++,m[h]++;n++}if(this._ao(m)){var l=this._cu(m,o,r);if(null!=l)return l}}if(0!=this._cv.length)return this._cv[0];throw"Couldn't find enough alignment patterns"}}function QRCodeDataBlockReader(c,a,b){this._ed=0,this._cw=7,this.dataLength=0,this.blocks=c,this._en=b,a<=9?this.dataLengthMode=0:a>=10&&a<=26?this.dataLengthMode=1:a>=27&&a<=40&&(this.dataLengthMode=2),this._gd=function(f){var k=0;if(f<this._cw+1){for(var m=0,e=0;e<f;e++)m+=1<<e;return m<<=this._cw-f+1,k=(this.blocks[this._ed]&m)>>this._cw-f+1,this._cw-=f,k}if(f<this._cw+1+8){for(var j=0,e=0;e<this._cw+1;e++)j+=1<<e;return k=(this.blocks[this._ed]&j)<<f-(this._cw+1),this._ed++,k+=this.blocks[this._ed]>>8-(f-(this._cw+1)),this._cw=this._cw-f%8,this._cw<0&&(this._cw=8+this._cw),k}if(f<this._cw+1+16){for(var j=0,h=0,e=0;e<this._cw+1;e++)j+=1<<e;var g=(this.blocks[this._ed]&j)<<f-(this._cw+1);this._ed++;var d=this.blocks[this._ed]<<f-(this._cw+1+8);this._ed++;for(var e=0;e<f-(this._cw+1+8);e++)h+=1<<e;h<<=8-(f-(this._cw+1+8));var l=(this.blocks[this._ed]&h)>>8-(f-(this._cw+1+8));return k=g+d+l,this._cw=this._cw-(f-8)%8,this._cw<0&&(this._cw=8+this._cw),k}return 0},this.NextMode=function(){return this._ed>this.blocks.length-this._en-2?0:this._gd(4)},this.getDataLength=function(d){for(var e=0;;){if(d>>e==1)break;e++}return this._gd(qrcode._eo[this.dataLengthMode][e])},this.getRomanAndFigureString=function(h){var f=h,g=0,j="",d=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":");do if(f>1){g=this._gd(11);var i=Math.floor(g/45),e=g%45;j+=d[i],j+=d[e],f-=2}else 1==f&&(g=this._gd(6),j+=d[g],f-=1);while(f>0);return j},this.getFigureString=function(f){var d=f,e=0,g="";do d>=3?(e=this._gd(10),e<100&&(g+="0"),e<10&&(g+="0"),d-=3):2==d?(e=this._gd(7),e<10&&(g+="0"),d-=2):1==d&&(e=this._gd(4),d-=1),g+=e;while(d>0);return g},this.get8bitByteArray=function(g){var e=g,f=0,d=new Array;do f=this._gd(8),d.push(f),e--;while(e>0);return d},this.getKanjiString=function(j){var g=j,i=0,h="";do{i=_gd(13);var e=i%192,f=i/192,k=(f<<8)+e,d=0;d=k+33088<=40956?k+33088:k+49472,h+=String.fromCharCode(d),g--}while(g>0);return h},this.__defineGetter__("DataByte",function(){for(var g=new Array,e=1,f=2,d=4,n=8;;){var k=this.NextMode();if(0==k){if(g.length>0)break;throw"Empty data block"}if(k!=e&&k!=f&&k!=d&&k!=n)throw"Invalid mode: "+k+" in (block:"+this._ed+" bit:"+this._cw+")";if(dataLength=this.getDataLength(k),dataLength<1)throw"Invalid data length: "+dataLength;switch(k){case e:for(var l=this.getFigureString(dataLength),i=new Array(l.length),h=0;h<l.length;h++)i[h]=l.charCodeAt(h);g.push(i);break;case f:for(var l=this.getRomanAndFigureString(dataLength),i=new Array(l.length),h=0;h<l.length;h++)i[h]=l.charCodeAt(h);g.push(i);break;case d:var m=this.get8bitByteArray(dataLength);g.push(m);break;case n:var l=this.getKanjiString(dataLength);g.push(l)}}return g})}function C_Promise(workload,context){this.parent=context,this.update=null,this.finally=null,this.error_function=null,this.then=function(callback){return this.finally=callback,this},this.progress=function(callback){return this.update=callback,this},this.error=function(callback){return this.error_function=callback,this},this.call_then=function(data){null!==this.finally&&this.finally(data);
},this.call_progress=function(data){null!==this.update&&this.update(data)},this.call_error=function(data){null!==this.error_function&&this.error_function(data)},setTimeout(workload.bind(this),100)}!function(C){function N(a){return function(){var d,b=arguments[0];for(d="["+(a?a+":":"")+b+"] http://errors.angularjs.org/1.5.8/"+(a?a+"/":"")+b,b=1;b<arguments.length;b++){d=d+(1==b?"?":"&")+"p"+(b-1)+"=";var e,c=encodeURIComponent;e=arguments[b],e="function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e,d+=c(e)}return Error(d)}}function ta(a){if(null==a||Va(a))return!1;if(L(a)||G(a)||F&&a instanceof F)return!0;var b="length"in Object(a)&&a.length;return T(b)&&(0<=b&&(b-1 in a||a instanceof Array)||"function"==typeof a.item)}function q(a,b,d){var c,e;if(a)if(z(a))for(c in a)"prototype"==c||"length"==c||"name"==c||a.hasOwnProperty&&!a.hasOwnProperty(c)||b.call(d,a[c],c,a);else if(L(a)||ta(a)){var f="object"!=typeof a;for(c=0,e=a.length;c<e;c++)(f||c in a)&&b.call(d,a[c],c,a)}else if(a.forEach&&a.forEach!==q)a.forEach(b,d,a);else if(sc(a))for(c in a)b.call(d,a[c],c,a);else if("function"==typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else for(c in a)ua.call(a,c)&&b.call(d,a[c],c,a);return a}function tc(a,b,d){for(var c=Object.keys(a).sort(),e=0;e<c.length;e++)b.call(d,a[c[e]],c[e]);return c}function uc(a){return function(b,d){a(d,b)}}function Yd(){return++pb}function Pb(a,b,d){for(var c=a.$$hashKey,e=0,f=b.length;e<f;++e){var g=b[e];if(D(g)||z(g))for(var h=Object.keys(g),k=0,l=h.length;k<l;k++){var m=h[k],n=g[m];d&&D(n)?da(n)?a[m]=new Date(n.valueOf()):Wa(n)?a[m]=new RegExp(n):n.nodeName?a[m]=n.cloneNode(!0):Qb(n)?a[m]=n.clone():(D(a[m])||(a[m]=L(n)?[]:{}),Pb(a[m],[n],!0)):a[m]=n}}return c?a.$$hashKey=c:delete a.$$hashKey,a}function S(a){return Pb(a,va.call(arguments,1),!1)}function Zd(a){return Pb(a,va.call(arguments,1),!0)}function Z(a){return parseInt(a,10)}function Rb(a,b){return S(Object.create(a),b)}function A(){}function Xa(a){return a}function ha(a){return function(){return a}}function vc(a){return z(a.toString)&&a.toString!==ma}function y(a){return"undefined"==typeof a}function w(a){return"undefined"!=typeof a}function D(a){return null!==a&&"object"==typeof a}function sc(a){return null!==a&&"object"==typeof a&&!wc(a)}function G(a){return"string"==typeof a}function T(a){return"number"==typeof a}function da(a){return"[object Date]"===ma.call(a)}function z(a){return"function"==typeof a}function Wa(a){return"[object RegExp]"===ma.call(a)}function Va(a){return a&&a.window===a}function Ya(a){return a&&a.$evalAsync&&a.$watch}function Ga(a){return"boolean"==typeof a}function $d(a){return a&&T(a.length)&&ae.test(ma.call(a))}function Qb(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function be(a){var b={};a=a.split(",");var d;for(d=0;d<a.length;d++)b[a[d]]=!0;return b}function wa(a){return Q(a.nodeName||a[0]&&a[0].nodeName)}function Za(a,b){var d=a.indexOf(b);return 0<=d&&a.splice(d,1),d}function pa(a,b){function d(a,b){var e,d=b.$$hashKey;if(L(a)){e=0;for(var f=a.length;e<f;e++)b.push(c(a[e]))}else if(sc(a))for(e in a)b[e]=c(a[e]);else if(a&&"function"==typeof a.hasOwnProperty)for(e in a)a.hasOwnProperty(e)&&(b[e]=c(a[e]));else for(e in a)ua.call(a,e)&&(b[e]=c(a[e]));return d?b.$$hashKey=d:delete b.$$hashKey,b}function c(a){if(!D(a))return a;var b=f.indexOf(a);if(-1!==b)return g[b];if(Va(a)||Ya(a))throw xa("cpws");var b=!1,c=e(a);return void 0===c&&(c=L(a)?[]:Object.create(wc(a)),b=!0),f.push(a),g.push(c),b?d(a,c):c}function e(a){switch(ma.call(a)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new a.constructor(c(a.buffer),a.byteOffset,a.length);case"[object ArrayBuffer]":if(!a.slice){var b=new ArrayBuffer(a.byteLength);return new Uint8Array(b).set(new Uint8Array(a)),b}return a.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new a.constructor(a.valueOf());case"[object RegExp]":return b=new RegExp(a.source,a.toString().match(/[^\/]*$/)[0]),b.lastIndex=a.lastIndex,b;case"[object Blob]":return new a.constructor([a],{type:a.type})}if(z(a.cloneNode))return a.cloneNode(!0)}var f=[],g=[];if(b){if($d(b)||"[object ArrayBuffer]"===ma.call(b))throw xa("cpta");if(a===b)throw xa("cpi");return L(b)?b.length=0:q(b,function(a,d){"$$hashKey"!==d&&delete b[d]}),f.push(a),g.push(b),d(a,b)}return c(a)}function na(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var c,d=typeof a;if(d==typeof b&&"object"==d){if(!L(a)){if(da(a))return!!da(b)&&na(a.getTime(),b.getTime());if(Wa(a))return!!Wa(b)&&a.toString()==b.toString();if(Ya(a)||Ya(b)||Va(a)||Va(b)||L(b)||da(b)||Wa(b))return!1;d=U();for(c in a)if("$"!==c.charAt(0)&&!z(a[c])){if(!na(a[c],b[c]))return!1;d[c]=!0}for(c in b)if(!(c in d)&&"$"!==c.charAt(0)&&w(b[c])&&!z(b[c]))return!1;return!0}if(!L(b))return!1;if((d=a.length)==b.length){for(c=0;c<d;c++)if(!na(a[c],b[c]))return!1;return!0}}return!1}function $a(a,b,d){return a.concat(va.call(b,d))}function ab(a,b){var d=2<arguments.length?va.call(arguments,2):[];return!z(b)||b instanceof RegExp?b:d.length?function(){return arguments.length?b.apply(a,$a(d,arguments,0)):b.apply(a,d)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function ce(a,b){var d=b;return"string"==typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?d=void 0:Va(b)?d="$WINDOW":b&&C.document===b?d="$DOCUMENT":Ya(b)&&(d="$SCOPE"),d}function bb(a,b){if(!y(a))return T(b)||(b=b?2:null),JSON.stringify(a,ce,b)}function xc(a){return G(a)?JSON.parse(a):a}function yc(a,b){a=a.replace(de,"");var d=Date.parse("Jan 01, 1970 00:00:00 "+a)/6e4;return isNaN(d)?b:d}function Sb(a,b,d){d=d?-1:1;var c=a.getTimezoneOffset();return b=yc(b,c),d*=b-c,a=new Date(a.getTime()),a.setMinutes(a.getMinutes()+d),a}function ya(a){a=F(a).clone();try{a.empty()}catch(b){}var d=F("<div>").append(a).html();try{return a[0].nodeType===Ma?Q(d):d.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+Q(b)})}catch(c){return Q(d)}}function zc(a){try{return decodeURIComponent(a)}catch(b){}}function Ac(a){var b={};return q((a||"").split("&"),function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=zc(e),w(e)&&(f=!w(f)||zc(f),ua.call(b,e)?L(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))}),b}function Tb(a){var b=[];return q(a,function(a,c){L(a)?q(a,function(a){b.push(ea(c,!0)+(!0===a?"":"="+ea(a,!0)))}):b.push(ea(c,!0)+(!0===a?"":"="+ea(a,!0)))}),b.length?b.join("&"):""}function qb(a){return ea(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ea(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function ee(a,b){var d,c,e=Na.length;for(c=0;c<e;++c)if(d=Na[c]+b,G(d=a.getAttribute(d)))return d;return null}function fe(a,b){var d,c,e={};q(Na,function(b){b+="app",!d&&a.hasAttribute&&a.hasAttribute(b)&&(d=a,c=a.getAttribute(b))}),q(Na,function(b){b+="app";var e;!d&&(e=a.querySelector("["+b.replace(":","\\:")+"]"))&&(d=e,c=e.getAttribute(b))}),d&&(e.strictDi=null!==ee(d,"strict-di"),b(d,c?[c]:[],e))}function Bc(a,b,d){D(d)||(d={}),d=S({strictDi:!1},d);var c=function(){if(a=F(a),a.injector()){var c=a[0]===C.document?"document":ya(a);throw xa("btstrpd",c.replace(/</,"&lt;").replace(/>/,"&gt;"))}return b=b||[],b.unshift(["$provide",function(b){b.value("$rootElement",a)}]),d.debugInfoEnabled&&b.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]),b.unshift("ng"),c=cb(b,d.strictDi),c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d),c(b)(a)})}]),c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;return C&&e.test(C.name)&&(d.debugInfoEnabled=!0,C.name=C.name.replace(e,"")),C&&!f.test(C.name)?c():(C.name=C.name.replace(f,""),ca.resumeBootstrap=function(a){return q(a,function(a){b.push(a)}),c()},void(z(ca.resumeDeferredBootstrap)&&ca.resumeDeferredBootstrap()))}function ge(){C.name="NG_ENABLE_DEBUG_INFO!"+C.name,C.location.reload()}function he(a){if(a=ca.element(a).injector(),!a)throw xa("test");return a.get("$$testability")}function Cc(a,b){return b=b||"_",a.replace(ie,function(a,c){return(c?b:"")+a.toLowerCase()})}function je(){var a;if(!Dc){var b=rb();(qa=y(b)?C.jQuery:b?C[b]:void 0)&&qa.fn.on?(F=qa,S(qa.fn,{scope:Oa.scope,isolateScope:Oa.isolateScope,controller:Oa.controller,injector:Oa.injector,inheritedData:Oa.inheritedData}),a=qa.cleanData,qa.cleanData=function(b){for(var c,f,e=0;null!=(f=b[e]);e++)(c=qa._data(f,"events"))&&c.$destroy&&qa(f).triggerHandler("$destroy");a(b)}):F=O,ca.element=F,Dc=!0}}function sb(a,b,d){if(!a)throw xa("areq",b||"?",d||"required");return a}function Pa(a,b,d){return d&&L(a)&&(a=a[a.length-1]),sb(z(a),b,"not a function, got "+(a&&"object"==typeof a?a.constructor.name||"Object":typeof a)),a}function Qa(a,b){if("hasOwnProperty"===a)throw xa("badname",b)}function Ec(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g<f;g++)c=b[g],a&&(a=(e=a)[c]);return!d&&z(a)?ab(e,a):a}function tb(a){for(var c,b=a[0],d=a[a.length-1],e=1;b!==d&&(b=b.nextSibling);e++)(c||a[e]!==b)&&(c||(c=F(va.call(a,0,e))),c.push(b));return c||a}function U(){return Object.create(null)}function ke(a){function b(a,b,c){return a[b]||(a[b]=c())}var d=N("$injector"),c=N("ng");return a=b(a,"angular",Object),a.$$minErr=a.$$minErr||N,b(a,"module",function(){var a={};return function(f,g,h){if("hasOwnProperty"===f)throw c("badname","module");return g&&a.hasOwnProperty(f)&&(a[f]=null),b(a,f,function(){function a(b,d,e,f){return f||(f=c),function(){return f[e||"push"]([b,d,arguments]),R}}function b(a,d){return function(b,e){return e&&z(e)&&(e.$$moduleName=f),c.push([a,d,arguments]),R}}if(!g)throw d("nomod",f);var c=[],e=[],p=[],u=a("$injector","invoke","push",e),R={_invokeQueue:c,_configBlocks:e,_runBlocks:p,requires:g,name:f,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),decorator:b("$provide","decorator"),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider","directive"),component:b("$compileProvider","component"),config:u,run:function(a){return p.push(a),this}};return h&&u(h),R})}})}function ia(a,b){if(L(a)){b=b||[];for(var d=0,c=a.length;d<c;d++)b[d]=a[d]}else if(D(a))for(d in b=b||{},a)"$"===d.charAt(0)&&"$"===d.charAt(1)||(b[d]=a[d]);return b||a}function le(a){S(a,{bootstrap:Bc,copy:pa,extend:S,merge:Zd,equals:na,element:F,forEach:q,injector:cb,noop:A,bind:ab,toJson:bb,fromJson:xc,identity:Xa,isUndefined:y,isDefined:w,isString:G,isFunction:z,isObject:D,isNumber:T,isElement:Qb,isArray:L,version:me,isDate:da,lowercase:Q,uppercase:ub,callbacks:{$$counter:0},getTestability:he,$$minErr:N,$$csp:Ba,reloadWithDebugInfo:ge}),(Ub=ke(C))("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:ne}),a.provider("$compile",Fc).directive({a:oe,input:Gc,textarea:Gc,form:pe,script:qe,select:re,style:se,option:te,ngBind:ue,ngBindHtml:ve,ngBindTemplate:we,ngClass:xe,ngClassEven:ye,ngClassOdd:ze,ngCloak:Ae,ngController:Be,ngForm:Ce,ngHide:De,ngIf:Ee,ngInclude:Fe,ngInit:Ge,ngNonBindable:He,ngPluralize:Ie,ngRepeat:Je,ngShow:Ke,ngStyle:Le,ngSwitch:Me,ngSwitchWhen:Ne,ngSwitchDefault:Oe,ngOptions:Pe,ngTransclude:Qe,ngModel:Re,ngList:Se,ngChange:Te,pattern:Hc,ngPattern:Hc,required:Ic,ngRequired:Ic,minlength:Jc,ngMinlength:Jc,maxlength:Kc,ngMaxlength:Kc,ngValue:Ue,ngModelOptions:Ve}).directive({ngInclude:We}).directive(vb).directive(Lc),a.provider({$anchorScroll:Xe,$animate:Ye,$animateCss:Ze,$$animateJs:$e,$$animateQueue:af,$$AnimateRunner:bf,$$animateAsyncRun:cf,$browser:df,$cacheFactory:ef,$controller:ff,$document:gf,$exceptionHandler:hf,$filter:Mc,$$forceReflow:jf,$interpolate:kf,$interval:lf,$http:mf,$httpParamSerializer:nf,$httpParamSerializerJQLike:of,$httpBackend:pf,$xhrFactory:qf,$jsonpCallbacks:rf,$location:sf,$log:tf,$parse:uf,$rootScope:vf,$q:wf,$$q:xf,$sce:yf,$sceDelegate:zf,$sniffer:Af,$templateCache:Bf,$templateRequest:Cf,$$testability:Df,$timeout:Ef,$window:Ff,$$rAF:Gf,$$jqLite:Hf,$$HashMap:If,$$cookieReader:Jf})}])}function db(a){return a.replace(Kf,function(a,d,c,e){return e?c.toUpperCase():c}).replace(Lf,"Moz$1")}function Nc(a){return a=a.nodeType,1===a||!a||9===a}function Oc(a,b){var d,c,e=b.createDocumentFragment(),f=[];if(Vb.test(a)){for(d=e.appendChild(b.createElement("div")),c=(Mf.exec(a)||["",""])[1].toLowerCase(),c=ja[c]||ja._default,d.innerHTML=c[1]+a.replace(Nf,"<$1></$2>")+c[2],c=c[0];c--;)d=d.lastChild;f=$a(f,d.childNodes),d=e.firstChild,d.textContent=""}else f.push(b.createTextNode(a));return e.textContent="",e.innerHTML="",q(f,function(a){e.appendChild(a)}),e}function Pc(a,b){var d=a.parentNode;d&&d.replaceChild(b,a),b.appendChild(a)}function O(a){if(a instanceof O)return a;var b;if(G(a)&&(a=W(a),b=!0),!(this instanceof O)){if(b&&"<"!=a.charAt(0))throw Wb("nosel");return new O(a)}if(b){b=C.document;var d;a=(d=Of.exec(a))?[b.createElement(d[1])]:(d=Oc(a,b))?d.childNodes:[]}Qc(this,a)}function Xb(a){return a.cloneNode(!0)}function wb(a,b){if(b||eb(a),a.querySelectorAll)for(var d=a.querySelectorAll("*"),c=0,e=d.length;c<e;c++)eb(d[c])}function Rc(a,b,d,c){if(w(c))throw Wb("offargs");var e=(c=xb(a))&&c.events,f=c&&c.handle;if(f)if(b){var g=function(b){var c=e[b];w(d)&&Za(c||[],d),w(d)&&c&&0<c.length||(a.removeEventListener(b,f,!1),delete e[b])};q(b.split(" "),function(a){g(a),yb[a]&&g(yb[a])})}else for(b in e)"$destroy"!==b&&a.removeEventListener(b,f,!1),delete e[b]}function eb(a,b){var d=a.ng339,c=d&&fb[d];c&&(b?delete c.data[b]:(c.handle&&(c.events.$destroy&&c.handle({},"$destroy"),Rc(a)),delete fb[d],a.ng339=void 0))}function xb(a,b){var d=a.ng339,d=d&&fb[d];return b&&!d&&(a.ng339=d=++Pf,d=fb[d]={events:{},data:{},handle:void 0}),d}function Yb(a,b,d){if(Nc(a)){var c=w(d),e=!c&&b&&!D(b),f=!b;if(a=(a=xb(a,!e))&&a.data,c)a[b]=d;else{if(f)return a;if(e)return a&&a[b];S(a,b)}}}function zb(a,b){return!!a.getAttribute&&-1<(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" ")}function Ab(a,b){b&&a.setAttribute&&q(b.split(" "),function(b){a.setAttribute("class",W((" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+W(b)+" "," ")))})}function Bb(a,b){if(b&&a.setAttribute){var d=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");q(b.split(" "),function(a){a=W(a),-1===d.indexOf(" "+a+" ")&&(d+=a+" ")}),a.setAttribute("class",W(d))}}function Qc(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var d=b.length;if("number"==typeof d&&b.window!==b){if(d)for(var c=0;c<d;c++)a[a.length++]=b[c]}else a[a.length++]=b}}function Sc(a,b){return Cb(a,"$"+(b||"ngController")+"Controller")}function Cb(a,b,d){for(9==a.nodeType&&(a=a.documentElement),b=L(b)?b:[b];a;){for(var c=0,e=b.length;c<e;c++)if(w(d=F.data(a,b[c])))return d;a=a.parentNode||11===a.nodeType&&a.host}}function Tc(a){for(wb(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Db(a,b){b||wb(a);var d=a.parentNode;d&&d.removeChild(a)}function Qf(a,b){b=b||C,"complete"===b.document.readyState?b.setTimeout(a):F(b).on("load",a)}function Uc(a,b){var d=Eb[b.toLowerCase()];return d&&Vc[wa(a)]&&d}function Rf(a,b){var d=function(c,d){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=b[d||c.type],g=f?f.length:0;if(g){if(y(c.immediatePropagationStopped)){var h=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0,c.stopPropagation&&c.stopPropagation(),h&&h.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};var k=f.specialHandlerWrapper||Sf;1<g&&(f=ia(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||k(a,c,f[l])}};return d.elem=a,d}function Sf(a,b,d){d.call(a,b)}function Tf(a,b,d){var c=b.relatedTarget;c&&(c===a||Uf.call(a,c))||d.call(a,b)}function Hf(){this.$get=function(){return S(O,{hasClass:function(a,b){return a.attr&&(a=a[0]),zb(a,b)},addClass:function(a,b){return a.attr&&(a=a[0]),Bb(a,b)},removeClass:function(a,b){return a.attr&&(a=a[0]),Ab(a,b)}})}}function Ca(a,b){var d=a&&a.$$hashKey;return d?("function"==typeof d&&(d=a.$$hashKey()),d):(d=typeof a,d="function"==d||"object"==d&&null!==a?a.$$hashKey=d+":"+(b||Yd)():d+":"+a)}function Ra(a,b){if(b){var d=0;this.nextUid=function(){return++d}}q(a,this.put,this)}function Wc(a){return a=(Function.prototype.toString.call(a)+" ").replace(Vf,""),a.match(Wf)||a.match(Xf)}function Yf(a){return(a=Wc(a))?"function("+(a[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function cb(a,b){function d(a){return function(b,c){return D(b)?void q(b,uc(a)):a(b,c)}}function c(a,b){if(Qa(a,"service"),(z(b)||L(b))&&(b=p.instantiate(b)),!b.$get)throw Ha("pget",a);return n[a+"Provider"]=b}function e(a,b){return function(){var c=B.invoke(b,this);if(y(c))throw Ha("undef",a);return c}}function f(a,b,d){return c(a,{$get:!1!==d?e(a,b):b})}function g(a){sb(y(a)||L(a),"modulesToLoad","not an array");var c,b=[];return q(a,function(a){function d(a){var b,c;for(b=0,c=a.length;b<c;b++){var e=a[b],f=p.get(e[0]);f[e[1]].apply(f,e[2])}}if(!m.get(a)){m.put(a,!0);try{G(a)?(c=Ub(a),b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):z(a)?b.push(p.invoke(a)):L(a)?b.push(p.invoke(a)):Pa(a,"module")}catch(e){throw L(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ha("modulerr",a,e.stack||e.message||e)}}}),b}function h(a,c){function d(b,e){if(a.hasOwnProperty(b)){if(a[b]===k)throw Ha("cdep",b+" <- "+l.join(" <- "));return a[b]}try{return l.unshift(b),a[b]=k,a[b]=c(b,e)}catch(f){throw a[b]===k&&delete a[b],f}finally{l.shift()}}function e(a,c,f){var g=[];a=cb.$$annotate(a,b,f);for(var h=0,k=a.length;h<k;h++){var l=a[h];if("string"!=typeof l)throw Ha("itkn",l);g.push(c&&c.hasOwnProperty(l)?c[l]:d(l,f))}return g}return{invoke:function(a,b,c,d){return"string"==typeof c&&(d=c,c=null),c=e(a,c,d),L(a)&&(a=a[a.length-1]),d=!(11>=Ea)&&("function"==typeof a&&/^(?:class\b|constructor\()/.test(Function.prototype.toString.call(a)+" ")),d?(c.unshift(null),new(Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d=L(a)?a[a.length-1]:a;return a=e(a,b,c),a.unshift(null),new(Function.prototype.bind.apply(d,a))},get:d,annotate:cb.$$annotate,has:function(b){return n.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var k={},l=[],m=new Ra([],!0),n={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,ha(b),!1)}),constant:d(function(a,b){Qa(a,"constant"),n[a]=b,u[a]=b}),decorator:function(a,b){var c=p.get(a+"Provider"),d=c.$get;c.$get=function(){var a=B.invoke(d,c);return B.invoke(b,null,{$delegate:a})}}}},p=n.$injector=h(n,function(a,b){throw ca.isString(b)&&l.push(b),Ha("unpr",l.join(" <- "))}),u={},R=h(u,function(a,b){var c=p.get(a+"Provider",b);return B.invoke(c.$get,c,void 0,a)}),B=R;n.$injectorProvider={$get:ha(R)};var r=g(a),B=R.get("$injector");return B.strictDi=b,q(r,function(a){a&&B.invoke(a)}),B}function Xe(){var a=!0;this.disableAutoScrolling=function(){a=!1},this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;return Array.prototype.some.call(a,function(a){if("a"===wa(a))return b=a,!0}),b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset,z(c)?c=c():Qb(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):T(c)||(c=0),c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=G(a)?a:d.hash();var b;a?(b=h.getElementById(a))?f(b):(b=e(h.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var h=b.document;return a&&c.$watch(function(){return d.hash()},function(a,b){a===b&&""===a||Qf(function(){c.$evalAsync(g)})}),g}]}function gb(a,b){return a||b?a?b?(L(a)&&(a=a.join(" ")),L(b)&&(b=b.join(" ")),a+" "+b):a:b:""}function Zf(a){G(a)&&(a=a.split(" "));var b=U();return q(a,function(a){a.length&&(b[a]=!0)}),b}function Ia(a){return D(a)?a:{}}function $f(a,b,d,c){function e(a){try{a.apply(null,va.call(arguments,1))}finally{if(R--,0===R)for(;B.length;)try{B.pop()()}catch(b){d.error(b)}}}function f(){t=null,g(),h()}function g(){r=K(),r=y(r)?null:r,na(r,E)&&(r=E),E=r}function h(){v===k.url()&&J===r||(v=k.url(),J=r,q(M,function(a){a(k.url(),r)}))}var k=this,l=a.location,m=a.history,n=a.setTimeout,p=a.clearTimeout,u={};k.isMock=!1;var R=0,B=[];k.$$completeOutstandingRequest=e,k.$$incOutstandingRequestCount=function(){R++},k.notifyWhenNoOutstandingRequests=function(a){0===R?a():B.push(a)};var r,J,v=l.href,fa=b.find("base"),t=null,K=c.history?function(){try{return m.state}catch(a){}}:A;g(),J=r,k.url=function(b,d,e){if(y(e)&&(e=null),l!==a.location&&(l=a.location),m!==a.history&&(m=a.history),b){var f=J===e;if(v===b&&(!c.history||f))return k;var h=v&&Ja(v)===Ja(b);return v=b,J=e,!c.history||h&&f?(h||(t=b),d?l.replace(b):h?(d=l,e=b.indexOf("#"),e=-1===e?"":b.substr(e),d.hash=e):l.href=b,l.href!==b&&(t=b)):(m[d?"replaceState":"pushState"](e,"",b),g(),J=r),t&&(t=b),k}return t||l.href.replace(/%27/g,"'")},k.state=function(){return r};var M=[],H=!1,E=null;k.onUrlChange=function(b){return H||(c.history&&F(a).on("popstate",f),F(a).on("hashchange",f),H=!0),M.push(b),b},k.$$applicationDestroyed=function(){F(a).off("hashchange popstate",f)},k.$$checkUrlChange=h,k.baseHref=function(){var a=fa.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""},k.defer=function(a,b){var c;return R++,c=n(function(){delete u[c],e(a)},b||0),u[c]=!0,c},k.defer.cancel=function(a){return!!u[a]&&(delete u[a],p(a),e(A),!0)}}function df(){this.$get=["$window","$log","$sniffer","$document",function(a,b,d,c){return new $f(a,c,b,d)}]}function ef(){this.$get=function(){function a(a,c){function e(a){a!=n&&(p?p==a&&(p=a.n):p=a,f(a.n,a.p),f(a,n),n=a,n.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw N("$cacheFactory")("iid",a);var g=0,h=S({},c,{id:a}),k=U(),l=c&&c.capacity||Number.MAX_VALUE,m=U(),n=null,p=null;return b[a]={put:function(a,b){if(!y(b)){if(l<Number.MAX_VALUE){var c=m[a]||(m[a]={key:a});e(c)}return a in k||g++,k[a]=b,g>l&&this.remove(p.key),b}},get:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;e(b)}return k[a]},remove:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;b==n&&(n=b.p),b==p&&(p=b.n),f(b.n,b.p),delete m[a]}a in k&&(delete k[a],g--)},removeAll:function(){k=U(),g=0,m=U(),n=p=null},destroy:function(){m=h=k=null,delete b[a]},info:function(){return S({},h,{size:g})}}}var b={};return a.info=function(){var a={};return q(b,function(b,e){a[e]=b.info()}),a},a.get=function(a){return b[a]},a}}function Bf(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function Fc(a,b){function d(a,b,c){var d=/^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/,e=U();return q(a,function(a,f){if(a in n)e[f]=n[a];else{var g=a.match(d);if(!g)throw ga("iscp",b,f,a,c?"controller bindings definition":"isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f},g[4]&&(n[a]=e[f])}}),e}function c(a){var b=a.charAt(0);if(!b||b!==Q(b))throw ga("baddir",a);if(a!==a.trim())throw ga("baddir",a)}function e(a){var b=a.require||a.controller&&a.name;return!L(b)&&D(b)&&q(b,function(a,c){var d=a.match(l);a.substring(d[0].length)||(b[c]=d[0]+c)}),b}var f={},g=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,h=/(([\w\-]+)(?:\:([^;]+))?;?)/,k=be("ngSrc,ngSrcset,src,srcset"),l=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,m=/^(on[a-z]+|formaction)$/,n=U();this.directive=function B(b,d){return Qa(b,"directive"),G(b)?(c(b),sb(d,"directiveFactory"),f.hasOwnProperty(b)||(f[b]=[],a.factory(b+"Directive",["$injector","$exceptionHandler",function(a,c){var d=[];return q(f[b],function(f,g){try{var h=a.invoke(f);z(h)?h={compile:ha(h)}:!h.compile&&h.link&&(h.compile=ha(h.link)),h.priority=h.priority||0,h.index=g,h.name=h.name||b,h.require=e(h),h.restrict=h.restrict||"EA",h.$$moduleName=f.$$moduleName,d.push(h)}catch(k){c(k)}}),d}])),f[b].push(d)):q(b,uc(B)),this},this.component=function(a,b){function c(a){function e(b){return z(b)||L(b)?function(c,d){return a.invoke(b,this,{$element:c,$attrs:d})}:b}var f=b.template||b.templateUrl?b.template:"",g={controller:d,controllerAs:Xc(b.controller)||b.controllerAs||"$ctrl",template:e(f),templateUrl:e(b.templateUrl),transclude:b.transclude,scope:{},bindToController:b.bindings||{},restrict:"E",require:b.require};return q(b,function(a,b){"$"===b.charAt(0)&&(g[b]=a)}),g}var d=b.controller||function(){};return q(b,function(a,b){"$"===b.charAt(0)&&(c[b]=a,z(d)&&(d[b]=a))}),c.$inject=["$injector"],this.directive(a,c)},this.aHrefSanitizationWhitelist=function(a){return w(a)?(b.aHrefSanitizationWhitelist(a),this):b.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(a){return w(a)?(b.imgSrcSanitizationWhitelist(a),this):b.imgSrcSanitizationWhitelist()};var p=!0;this.debugInfoEnabled=function(a){return w(a)?(p=a,this):p};var u=10;this.onChangesTtl=function(a){return arguments.length?(u=a,this):u},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(a,b,c,e,n,t,K,M,H,E){function I(){try{if(!--qa)throw Y=void 0,ga("infchng",u);K.$apply(function(){for(var a=[],b=0,c=Y.length;b<c;++b)try{Y[b]()}catch(d){a.push(d)}if(Y=void 0,a.length)throw a})}finally{qa++}}function Da(a,b){if(b){var d,e,f,c=Object.keys(b);for(d=0,e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a}function P(a,b,c){pa.innerHTML="<span "+b+">",b=pa.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name),d.value=c,a.attributes.setNamedItem(d)}function x(a,b){try{a.addClass(b)}catch(c){}}function aa(a,b,c,d,e){a instanceof F||(a=F(a));for(var f=/\S+/,g=0,h=a.length;g<h;g++){var k=a[g];k.nodeType===Ma&&k.nodeValue.match(f)&&Pc(k,a[g]=C.document.createElement("span"))}var l=s(a,b,a,c,d,e);aa.$$addScopeClass(a);var m=null;return function(b,c,d){sb(b,"scope"),e&&e.needsNewScope&&(b=b.$parent.$new()),d=d||{};var f=d.parentBoundTranscludeFn,g=d.transcludeControllers;if(d=d.futureParentElement,f&&f.$$boundTransclude&&(f=f.$$boundTransclude),m||(m=(d=d&&d[0])&&"foreignobject"!==wa(d)&&ma.call(d).match(/SVG/)?"svg":"html"),d="html"!==m?F(da(m,F("<div>").append(a).html())):c?Oa.clone.call(a):a,g)for(var h in g)d.data("$"+h+"Controller",g[h].instance);return aa.$$addScopeInfo(d,b),c&&c(d,b),l&&l(b,d,d,f),d}}function s(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,p,r,v;if(n)for(v=Array(c.length),m=0;m<h.length;m+=3)f=h[m],v[f]=c[f];else v=c;for(m=0,p=h.length;m<p;)k=v[h[m++]],c=h[m++],f=h[m++],c?(c.scope?(l=a.$new(),aa.$$addScopeInfo(F(k),l)):l=a,r=c.transcludeOnThisElement?za(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?za(a,b):null,c(f,l,k,d,r)):f&&f(a,k.childNodes,void 0,e)}for(var k,l,m,p,n,h=[],r=0;r<a.length;r++)k=new Da,l=$b(a[r],[],k,0===r?d:void 0,e),(f=l.length?oa(l,a[r],k,b,c,null,[],[],f):null)&&f.scope&&aa.$$addScopeClass(k.$$element),k=f&&f.terminal||!(m=a[r].childNodes)||!m.length?null:s(m,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b),(f||k)&&(h.push(r,f,k),p=!0,n=n||f),f=null;return p?g:null}function za(a,b,c){function d(e,f,g,h,k){return e||(e=a.$new(!1,k),e.$$transcluded=!0),b(e,f,{parentBoundTranscludeFn:c,transcludeControllers:g,futureParentElement:h})}var f,e=d.$$slots=U();for(f in b.$$slots)e[f]=b.$$slots[f]?za(a,b.$$slots[f],c):null;return d}function $b(a,b,c,d,e){var f=c.$attr;switch(a.nodeType){case 1:O(b,Aa(wa(a)),"E",d,e);for(var g,k,l,m,p=a.attributes,n=0,r=p&&p.length;n<r;n++){var v=!1,u=!1;g=p[n],k=g.name,l=W(g.value),g=Aa(k),(m=Ba.test(g))&&(k=k.replace(Yc,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()})),(g=g.match(Ca))&&V(g[1])&&(v=k,u=k.substr(0,k.length-5)+"end",k=k.substr(0,k.length-6)),g=Aa(k.toLowerCase()),f[g]=k,!m&&c.hasOwnProperty(g)||(c[g]=l,Uc(a,g)&&(c[g]=!0)),ia(a,b,l,g,m),O(b,g,"A",d,e,v,u)}if(f=a.className,D(f)&&(f=f.animVal),G(f)&&""!==f)for(;a=h.exec(f);)g=Aa(a[2]),O(b,g,"C",d,e)&&(c[g]=W(a[3])),f=f.substr(a.index+a[0].length);break;case Ma:if(11===Ea)for(;a.parentNode&&a.nextSibling&&a.nextSibling.nodeType===Ma;)a.nodeValue+=a.nextSibling.nodeValue,a.parentNode.removeChild(a.nextSibling);ca(b,a.nodeValue);break;case 8:hb(a,b,c,d,e)}return b.sort(Z),b}function hb(a,b,c,d,e){try{var f=g.exec(a.nodeValue);if(f){var h=Aa(f[1]);O(b,h,"M",d,e)&&(c[h]=W(f[2]))}}catch(k){}}function N(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ga("uterdir",b,c);1==a.nodeType&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--),d.push(a),a=a.nextSibling}while(0<e)}else d.push(a);return F(d)}function Zc(a,b,c){return function(d,e,f,g,h){return e=N(e[0],b,c),a(d,e,f,g,h)}}function ac(a,b,c,d,e,f){var g;return a?aa(b,c,d,e,f):function(){return g||(g=aa(b,c,d,e,f),b=c=f=null),g.apply(this,arguments)}}function oa(a,b,d,e,f,g,h,k,l){function m(a,b,c,d){a&&(c&&(a=Zc(a,c,d)),a.require=x.require,a.directiveName=I,(u===x||x.$$isolateScope)&&(a=ja(a,{isolateScope:!0})),h.push(a)),b&&(c&&(b=Zc(b,c,d)),b.require=x.require,b.directiveName=I,(u===x||x.$$isolateScope)&&(b=ja(b,{isolateScope:!0})),k.push(b))}function p(a,e,f,g,l){function m(a,b,c,d){var e;if(Ya(a)||(d=c,c=b,b=a,a=void 0),fa&&(e=t),c||(c=fa?I.parent():I),!d)return l(a,b,e,c,s);var f=l.$$slots[d];if(f)return f(a,b,e,c,s);if(y(f))throw ga("noslot",d,ya(I))}var n,E,x,M,B,t,P,I;b===f?(g=d,I=d.$$element):(I=F(f),g=new Da(I,d)),B=e,u?M=e.$new(!0):r&&(B=e.$parent),l&&(P=m,P.$$boundTransclude=l,P.isSlotFilled=function(a){return!!l.$$slots[a]}),v&&(t=ag(I,g,P,v,M,e,u)),u&&(aa.$$addScopeInfo(I,M,!0,!(H&&(H===u||H===u.$$originalDirective))),aa.$$addScopeClass(I,!0),M.$$isolateBindings=u.$$isolateBindings,E=ka(e,g,M,M.$$isolateBindings,u),E.removeWatches&&M.$on("$destroy",E.removeWatches));for(n in t){E=v[n],x=t[n];var Zb=E.$$bindings.bindToController;x.bindingInfo=x.identifier&&Zb?ka(B,g,x.instance,Zb,E):{};var K=x();K!==x.instance&&(x.instance=K,I.data("$"+E.name+"Controller",K),x.bindingInfo.removeWatches&&x.bindingInfo.removeWatches(),x.bindingInfo=ka(B,g,x.instance,Zb,E))}for(q(v,function(a,b){var c=a.require;a.bindToController&&!L(c)&&D(c)&&S(t[b].instance,ib(b,c,I,t))}),q(t,function(a){var b=a.instance;if(z(b.$onChanges))try{b.$onChanges(a.bindingInfo.initialChanges)}catch(d){c(d)}if(z(b.$onInit))try{b.$onInit()}catch(e){c(e)}z(b.$doCheck)&&(B.$watch(function(){b.$doCheck()}),b.$doCheck()),z(b.$onDestroy)&&B.$on("$destroy",function(){b.$onDestroy()})}),n=0,E=h.length;n<E;n++)x=h[n],la(x,x.isolateScope?M:e,I,g,x.require&&ib(x.directiveName,x.require,I,t),P);var s=e;for(u&&(u.template||null===u.templateUrl)&&(s=M),a&&a(s,f.childNodes,void 0,l),n=k.length-1;0<=n;n--)x=k[n],la(x,x.isolateScope?M:e,I,g,x.require&&ib(x.directiveName,x.require,I,t),P);q(t,function(a){a=a.instance,z(a.$postLink)&&a.$postLink()})}l=l||{};for(var x,I,P,s,w,n=-Number.MAX_VALUE,r=l.newScopeDirective,v=l.controllerDirectives,u=l.newIsolateScopeDirective,H=l.templateDirective,E=l.nonTlbTranscludeDirective,M=!1,B=!1,fa=l.hasElementTranscludeDirective,t=d.$$element=F(b),K=e,Fa=!1,za=!1,A=0,C=a.length;A<C;A++){x=a[A];var G=x.$$start,hb=x.$$end;if(G&&(t=N(b,G,hb)),P=void 0,n>x.priority)break;if((w=x.scope)&&(x.templateUrl||(D(w)?(X("new/isolated scope",u||r,x,t),u=x):X("new/isolated scope",u,x,t)),r=r||x),I=x.name,!Fa&&(x.replace&&(x.templateUrl||x.template)||x.transclude&&!x.$$tlb)){for(w=A+1;Fa=a[w++];)if(Fa.transclude&&!Fa.$$tlb||Fa.replace&&(Fa.templateUrl||Fa.template)){za=!0;break}Fa=!0}if(!x.templateUrl&&x.controller&&(w=x.controller,
v=v||U(),X("'"+I+"' controller",v[I],x,t),v[I]=x),w=x.transclude)if(M=!0,x.$$tlb||(X("transclusion",E,x,t),E=x),"element"==w)fa=!0,n=x.priority,P=t,t=d.$$element=F(aa.$$createComment(I,d[I])),b=t[0],ea(f,va.call(P,0),b),P[0].$$parentNode=P[0].parentNode,K=ac(za,P,e,n,g&&g.name,{nonTlbTranscludeDirective:E});else{var oa=U();if(P=F(Xb(b)).contents(),D(w)){P=[];var Q=U(),O=U();q(w,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a,Q[a]=b,oa[b]=null,O[b]=c}),q(t.contents(),function(a){var b=Q[Aa(wa(a))];b?(O[b]=!0,oa[b]=oa[b]||[],oa[b].push(a)):P.push(a)}),q(O,function(a,b){if(!a)throw ga("reqslot",b)});for(var V in oa)oa[V]&&(oa[V]=ac(za,oa[V],e))}t.empty(),K=ac(za,P,e,void 0,void 0,{needsNewScope:x.$$isolateScope||x.$$newScope}),K.$$slots=oa}if(x.template)if(B=!0,X("template",H,x,t),H=x,w=z(x.template)?x.template(t,d):x.template,w=xa(w),x.replace){if(g=x,P=Vb.test(w)?$c(da(x.templateNamespace,W(w))):[],b=P[0],1!=P.length||1!==b.nodeType)throw ga("tplrt",I,"");ea(f,t,b),C={$attr:{}},w=$b(b,[],C);var Z=a.splice(A+1,a.length-(A+1));(u||r)&&T(w,u,r),a=a.concat(w).concat(Z),$(d,C),C=a.length}else t.html(w);if(x.templateUrl)B=!0,X("template",H,x,t),H=x,x.replace&&(g=x),p=ba(a.splice(A,a.length-A),t,d,f,M&&K,h,k,{controllerDirectives:v,newScopeDirective:r!==x&&r,newIsolateScopeDirective:u,templateDirective:H,nonTlbTranscludeDirective:E}),C=a.length;else if(x.compile)try{s=x.compile(t,d,K);var Y=x.$$originalDirective||x;z(s)?m(null,ab(Y,s),G,hb):s&&m(ab(Y,s.pre),ab(Y,s.post),G,hb)}catch(ca){c(ca,ya(t))}x.terminal&&(p.terminal=!0,n=Math.max(n,x.priority))}return p.scope=r&&!0===r.scope,p.transcludeOnThisElement=M,p.templateOnThisElement=B,p.transclude=K,l.hasElementTranscludeDirective=fa,p}function ib(a,b,c,d){var e;if(G(b)){var f=b.match(l);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];if("^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance,!e){var h="$"+b+"Controller";e=g?c.inheritedData(h):c.data(h)}if(!e&&!f)throw ga("ctreq",b,a)}else if(L(b))for(e=[],g=0,f=b.length;g<f;g++)e[g]=ib(a,b[g],c,d);else D(b)&&(e={},q(b,function(b,f){e[f]=ib(a,b,c,d)}));return e||null}function ag(a,b,c,d,e,f,g){var k,h=U();for(k in d){var l=d[k],m={$scope:l===g||l.$$isolateScope?e:f,$element:a,$attrs:b,$transclude:c},p=l.controller;"@"==p&&(p=b[l.name]),m=t(p,m,!0,l.controllerAs),h[l.name]=m,a.data("$"+l.name+"Controller",m.instance)}return h}function T(a,b,c){for(var d=0,e=a.length;d<e;d++)a[d]=Rb(a[d],{$$isolateScope:b,$$newScope:c})}function O(b,e,g,h,k,l,m){if(e===k)return null;if(k=null,f.hasOwnProperty(e)){var p;e=a.get(e+"Directive");for(var n=0,r=e.length;n<r;n++)try{if(p=e[n],(y(h)||h>p.priority)&&-1!=p.restrict.indexOf(g)){if(l&&(p=Rb(p,{$$start:l,$$end:m})),!p.$$bindings){var u=p,v=p,x=p.name,H={isolateScope:null,bindToController:null};if(D(v.scope)&&(!0===v.bindToController?(H.bindToController=d(v.scope,x,!0),H.isolateScope={}):H.isolateScope=d(v.scope,x,!1)),D(v.bindToController)&&(H.bindToController=d(v.bindToController,x,!0)),D(H.bindToController)){var E=v.controller,M=v.controllerAs;if(!E)throw ga("noctrl",x);if(!Xc(E,M))throw ga("noident",x)}var t=u.$$bindings=H;D(t.isolateScope)&&(p.$$isolateBindings=t.isolateScope)}b.push(p),k=p}}catch(I){c(I)}}return k}function V(b){if(f.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,e=c.length;d<e;d++)if(b=c[d],b.multiElement)return!0;return!1}function $(a,b){var c=b.$attr,d=a.$attr;q(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))}),q(b,function(b,e){a.hasOwnProperty(e)||"$"===e.charAt(0)||(a[e]=b,"class"!==e&&"style"!==e&&(d[e]=c[e]))})}function ba(a,b,c,d,f,g,h,k){var m,p,l=[],n=b[0],r=a.shift(),u=Rb(r,{templateUrl:null,transclude:null,replace:null,$$originalDirective:r}),H=z(r.templateUrl)?r.templateUrl(b,c):r.templateUrl,E=r.templateNamespace;return b.empty(),e(H).then(function(e){var v,M;if(e=xa(e),r.replace){if(e=Vb.test(e)?$c(da(E,W(e))):[],v=e[0],1!=e.length||1!==v.nodeType)throw ga("tplrt",r.name,H);e={$attr:{}},ea(d,b,v);var B=$b(v,[],e);D(r.scope)&&T(B,!0),a=B.concat(a),$(c,e)}else v=n,b.html(e);for(a.unshift(u),m=oa(a,v,c,f,b,r,g,h,k),q(d,function(a,c){a==v&&(d[c]=b[0])}),p=s(b[0].childNodes,f);l.length;){e=l.shift(),M=l.shift();var t=l.shift(),I=l.shift(),B=b[0];if(!e.$$destroyed){if(M!==n){var P=M.className;k.hasElementTranscludeDirective&&r.replace||(B=Xb(v)),ea(t,F(M),B),x(F(B),P)}M=m.transcludeOnThisElement?za(e,m.transclude,I):I,m(p,e,B,d,M)}}l=null}),function(a,b,c,d,e){a=e,b.$$destroyed||(l?l.push(b,c,d,a):(m.transcludeOnThisElement&&(a=za(b,m.transclude,e)),m(p,b,c,d,a)))}}function Z(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function X(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw ga("multidir",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,ya(d))}function ca(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;return b&&aa.$$addBindingClass(a),function(a,c){var e=c.parent();b||aa.$$addBindingClass(e),aa.$$addBindingInfo(e,d.expressions),a.$watch(d,function(a){c[0].nodeValue=a})}}})}function da(a,b){switch(a=Q(a||"html")){case"svg":case"math":var c=C.document.createElement("div");return c.innerHTML="<"+a+">"+b+"</"+a+">",c.childNodes[0].childNodes;default:return b}}function ha(a,b){if("srcdoc"==b)return M.HTML;var c=wa(a);return"xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b)?M.RESOURCE_URL:void 0}function ia(a,c,d,e,f){var g=ha(a,e);f=k[e]||f;var h=b(d,!0,g,f);if(h){if("multiple"===e&&"select"===wa(a))throw ga("selmulti",ya(a));c.push({priority:100,compile:function(){return{pre:function(a,c,k){if(c=k.$$observers||(k.$$observers=U()),m.test(e))throw ga("nodomevents");var l=k[e];l!==d&&(h=l&&b(l,!0,g,f),d=l),h&&(k[e]=h(a),(c[e]||(c[e]=[])).$$inter=!0,(k.$$observers&&k.$$observers[e].$$scope||a).$watch(h,function(a,b){"class"===e&&a!=b?k.$updateClass(a,b):k.$set(e,a)}))}}}})}}function ea(a,b,c){var g,h,d=b[0],e=b.length,f=d.parentNode;if(a)for(g=0,h=a.length;g<h;g++)if(a[g]==d){a[g++]=c,h=g+e-1;for(var k=a.length;g<k;g++,h++)h<k?a[g]=a[h]:delete a[g];a.length-=e-1,a.context===d&&(a.context=c);break}for(f&&f.replaceChild(c,d),a=C.document.createDocumentFragment(),g=0;g<e;g++)a.appendChild(b[g]);for(F.hasData(d)&&(F.data(c,F.data(d)),F(d).off("$destroy")),F.cleanData(a.querySelectorAll("*")),g=1;g<e;g++)delete b[g];b[0]=c,b.length=1}function ja(a,b){return S(function(){return a.apply(null,arguments)},a,b)}function la(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(h){c(h,ya(d))}}function ka(a,c,d,e,f){function g(b,c,e){z(d.$onChanges)&&c!==e&&(Y||(a.$$postDigest(I),Y=[]),m||(m={},Y.push(h)),m[b]&&(e=m[b].previousValue),m[b]=new Fb(e,c))}function h(){d.$onChanges(m),m=void 0}var m,k=[],l={};return q(e,function(e,h){var v,u,x,H,m=e.attrName,p=e.optional;switch(e.mode){case"@":p||ua.call(c,m)||(d[h]=c[m]=void 0),c.$observe(m,function(a){(G(a)||Ga(a))&&(g(h,a,d[h]),d[h]=a)}),c.$$observers[m].$$scope=a,v=c[m],G(v)?d[h]=b(v)(a):Ga(v)&&(d[h]=v),l[h]=new Fb(bc,d[h]);break;case"=":if(!ua.call(c,m)){if(p)break;c[m]=void 0}if(p&&!c[m])break;u=n(c[m]),H=u.literal?na:function(a,b){return a===b||a!==a&&b!==b},x=u.assign||function(){throw v=d[h]=u(a),ga("nonassign",c[m],m,f.name)},v=d[h]=u(a),p=function(b){return H(b,d[h])||(H(b,v)?x(a,b=d[h]):d[h]=b),v=b},p.$stateful=!0,p=e.collection?a.$watchCollection(c[m],p):a.$watch(n(c[m],p),null,u.literal),k.push(p);break;case"<":if(!ua.call(c,m)){if(p)break;c[m]=void 0}if(p&&!c[m])break;u=n(c[m]);var E=d[h]=u(a);l[h]=new Fb(bc,d[h]),p=a.$watch(u,function(a,b){if(b===a){if(b===E)return;b=E}g(h,a,b),d[h]=a},u.literal),k.push(p);break;case"&":if(u=c.hasOwnProperty(m)?n(c[m]):A,u===A&&p)break;d[h]=function(b){return u(a,b)}}}),{initialChanges:l,removeWatches:k.length&&function(){for(var a=0,b=k.length;a<b;++a)k[a]()}}}var Y,ta=/^\w/,pa=C.document.createElement("div"),qa=u;Da.prototype={$normalize:Aa,$addClass:function(a){a&&0<a.length&&H.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&H.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=ad(a,b);c&&c.length&&H.addClass(this.$$element,c),(c=ad(b,a))&&c.length&&H.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=Uc(this.$$element[0],a),g=bd[a],h=a;if(f?(this.$$element.prop(a,b),e=f):g&&(this[g]=b,h=g),this[a]=b,e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=Cc(a,"-")),f=wa(this.$$element),"a"===f&&("href"===a||"xlinkHref"===a)||"img"===f&&"src"===a)this[a]=b=E(b,"src"===a);else if("img"===f&&"srcset"===a&&w(b)){for(var f="",g=W(b),k=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,k=/\s/.test(g)?k:/(,)/,g=g.split(k),k=Math.floor(g.length/2),l=0;l<k;l++)var m=2*l,f=f+E(W(g[m]),!0),f=f+(" "+W(g[m+1]));g=W(g[2*l]).split(/\s/),f+=E(W(g[0]),!0),2===g.length&&(f+=" "+W(g[1])),this[a]=b=f}!1!==d&&(null===b||y(b)?this.$$element.removeAttr(e):ta.test(e)?this.$$element.attr(e,b):P(this.$$element[0],e,b)),(a=this.$$observers)&&q(a[h],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=U()),e=d[a]||(d[a]=[]);return e.push(b),K.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||y(c[a])||b(c[a])}),function(){Za(e,b)}}};var ra=b.startSymbol(),sa=b.endSymbol(),xa="{{"==ra&&"}}"==sa?Xa:function(a){return a.replace(/\{\{/g,ra).replace(/}}/g,sa)},Ba=/^ngAttr[A-Z]/,Ca=/^(.+)Start$/;return aa.$$addBindingInfo=p?function(a,b){var c=a.data("$binding")||[];L(b)?c=c.concat(b):c.push(b),a.data("$binding",c)}:A,aa.$$addBindingClass=p?function(a){x(a,"ng-binding")}:A,aa.$$addScopeInfo=p?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:A,aa.$$addScopeClass=p?function(a,b){x(a,b?"ng-isolate-scope":"ng-scope")}:A,aa.$$createComment=function(a,b){var c="";return p&&(c=" "+(a||"")+": ",b&&(c+=b+" ")),C.document.createComment(c)},aa}]}function Fb(a,b){this.previousValue=a,this.currentValue=b}function Aa(a){return db(a.replace(Yc,""))}function ad(a,b){var d="",c=a.split(/\s+/),e=b.split(/\s+/),f=0;a:for(;f<c.length;f++){for(var g=c[f],h=0;h<e.length;h++)if(g==e[h])continue a;d+=(0<d.length?" ":"")+g}return d}function $c(a){a=F(a);var b=a.length;if(1>=b)return a;for(;b--;)8===a[b].nodeType&&bg.call(a,b,1);return a}function Xc(a,b){if(b&&G(b))return b;if(G(a)){var d=cd.exec(a);if(d)return d[3]}}function ff(){var a={},b=!1;this.has=function(b){return a.hasOwnProperty(b)},this.register=function(b,c){Qa(b,"controller"),D(b)?S(a,b):a[b]=c},this.allowGlobals=function(){b=!0},this.$get=["$injector","$window",function(d,c){function e(a,b,c,d){if(!a||!D(a.$scope))throw N("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,k){var l,m,n;if(h=!0===h,k&&G(k)&&(n=k),G(f)){if(k=f.match(cd),!k)throw cg("ctrlfmt",f);m=k[1],n=n||k[3],f=a.hasOwnProperty(m)?a[m]:Ec(g.$scope,m,!0)||(b?Ec(c,m,!0):void 0),Pa(f,m,!0)}return h?(h=(L(f)?f[f.length-1]:f).prototype,l=Object.create(h||null),n&&e(g,n,l,m||f.name),S(function(){var a=d.invoke(f,l,g,m);return a!==l&&(D(a)||z(a))&&(l=a,n&&e(g,n,l,m||f.name)),l},{instance:l,identifier:n})):(l=d.instantiate(f,g,m),n&&e(g,n,l,m||f.name),l)}}]}function gf(){this.$get=["$window",function(a){return F(a.document)}]}function hf(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a,arguments)}}]}function cc(a){return D(a)?da(a)?a.toISOString():bb(a):a}function nf(){this.$get=function(){return function(a){if(!a)return"";var b=[];return tc(a,function(a,c){null===a||y(a)||(L(a)?q(a,function(a){b.push(ea(c)+"="+ea(cc(a)))}):b.push(ea(c)+"="+ea(cc(a))))}),b.join("&")}}}function of(){this.$get=function(){return function(a){function b(a,e,f){null===a||y(a)||(L(a)?q(a,function(a,c){b(a,e+"["+(D(a)?c:"")+"]")}):D(a)&&!da(a)?tc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):d.push(ea(e)+"="+ea(cc(a))))}if(!a)return"";var d=[];return b(a,"",!0),d.join("&")}}}function dc(a,b){if(G(a)){var d=a.replace(dg,"").trim();if(d){var c=b("Content-Type");(c=c&&0===c.indexOf(dd))||(c=(c=d.match(eg))&&fg[c[0]].test(d)),c&&(a=xc(d))}}return a}function ed(a){var d,b=U();return G(a)?q(a.split("\n"),function(a){d=a.indexOf(":");var e=Q(W(a.substr(0,d)));a=W(a.substr(d+1)),e&&(b[e]=b[e]?b[e]+", "+a:a)}):D(a)&&q(a,function(a,d){var f=Q(d),g=W(a);f&&(b[f]=b[f]?b[f]+", "+g:g)}),b}function fd(a){var b;return function(d){return b||(b=ed(a)),d?(d=b[Q(d)],void 0===d&&(d=null),d):b}}function gd(a,b,d,c){return z(c)?c(a,b,d):(q(c,function(c){a=c(a,b,d)}),a)}function mf(){var a=this.defaults={transformResponse:[dc],transformRequest:[function(a){return D(a)&&"[object File]"!==ma.call(a)&&"[object Blob]"!==ma.call(a)&&"[object FormData]"!==ma.call(a)?bb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ia(ec),put:ia(ec),patch:ia(ec)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},b=!1;this.useApplyAsync=function(a){return w(a)?(b=!!a,this):b};var d=!0;this.useLegacyPromiseExtensions=function(a){return w(a)?(d=!!a,this):d};var c=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,g,h,k,l){function m(b){function c(a,b){for(var d=0,e=b.length;d<e;){var f=b[d++],g=b[d++];a=a.then(f,g)}return b.length=0,a}function e(a,b){var c,d={};return q(a,function(a,e){z(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a}),d}function f(a){var b=S({},a);return b.data=gd(a.data,a.headers,a.status,g.transformResponse),a=a.status,200<=a&&300>a?b:k.reject(b)}if(!D(b))throw N("$http")("badreq",b);if(!G(b.url))throw N("$http")("badreq",b.url);var g=S({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer},b);g.headers=function(b){var f,g,h,c=a.headers,d=S({},b.headers),c=S({},c.common,c[Q(b.method)]);a:for(f in c){g=Q(f);for(h in d)if(Q(h)===g)continue a;d[f]=c[f]}return e(d,ia(b))}(b),g.method=ub(g.method),g.paramSerializer=G(g.paramSerializer)?l.get(g.paramSerializer):g.paramSerializer;var h=[],m=[],p=k.when(g);return q(R,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError),(a.response||a.responseError)&&m.push(a.response,a.responseError)}),p=c(p,h),p=p.then(function(b){var c=b.headers,d=gd(b.data,fd(c),void 0,b.transformRequest);return y(d)&&q(c,function(a,b){"content-type"===Q(b)&&delete c[b]}),y(b.withCredentials)&&!y(a.withCredentials)&&(b.withCredentials=a.withCredentials),n(b,d).then(f,f)}),p=c(p,m),d?(p.success=function(a){return Pa(a,"fn"),p.then(function(b){a(b.data,b.status,b.headers,g)}),p},p.error=function(a){return Pa(a,"fn"),p.then(null,function(b){a(b.data,b.status,b.headers,g)}),p}):(p.success=hd("success"),p.error=hd("error")),p}function n(c,d){function g(a){if(a){var c={};return q(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}}),c}}function l(a,c,d,e){function f(){n(c,a,d,e)}E&&(200<=a&&300>a?E.put(P,[a,c,ed(d),e]):E.remove(P)),b?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function n(a,b,d,e){b=-1<=b?b:0,(200<=b&&300>b?M.resolve:M.reject)({data:a,status:b,headers:fd(d),config:c,statusText:e})}function t(a){n(a.data,a.status,ia(a.headers()),a.statusText)}function R(){var a=m.pendingRequests.indexOf(c);-1!==a&&m.pendingRequests.splice(a,1)}var E,I,M=k.defer(),H=M.promise,Da=c.headers,P=p(c.url,c.paramSerializer(c.params));return m.pendingRequests.push(c),H.then(R,R),!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(E=D(c.cache)?c.cache:D(a.cache)?a.cache:u),E&&(I=E.get(P),w(I)?I&&z(I.then)?I.then(t,t):L(I)?n(I[1],I[0],ia(I[2]),I[3]):n(I,200,{},"OK"):E.put(P,H)),y(I)&&((I=id(c.url)?f()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(Da[c.xsrfHeaderName||a.xsrfHeaderName]=I),e(c.method,P,d,l,Da,c.timeout,c.withCredentials,c.responseType,g(c.eventHandlers),g(c.uploadEventHandlers))),H}function p(a,b){return 0<b.length&&(a+=(-1==a.indexOf("?")?"?":"&")+b),a}var u=g("$http");a.paramSerializer=G(a.paramSerializer)?l.get(a.paramSerializer):a.paramSerializer;var R=[];return q(c,function(a){R.unshift(G(a)?l.get(a):l.invoke(a))}),m.pendingRequests=[],function(a){q(arguments,function(a){m[a]=function(b,c){return m(S({},c||{},{method:a,url:b}))}})}("get","delete","head","jsonp"),function(a){q(arguments,function(a){m[a]=function(b,c,d){return m(S({},d||{},{method:a,url:b,data:c}))}})}("post","put","patch"),m.defaults=a,m}]}function qf(){this.$get=function(){return function(){return new C.XMLHttpRequest}}}function pf(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(a,b,d,c){return gg(a,c,a.defer,b,d[0])}]}function gg(a,b,d,c,e){function f(a,b,d){a=a.replace("JSON_CALLBACK",b);var f=e.createElement("script"),m=null;return f.type="text/javascript",f.src=a,f.async=!0,m=function(a){f.removeEventListener("load",m,!1),f.removeEventListener("error",m,!1),e.body.removeChild(f),f=null;var g=-1,u="unknown";a&&("load"!==a.type||c.wasCalled(b)||(a={type:"error"}),u=a.type,g="error"===a.type?404:200),d&&d(g,u)},f.addEventListener("load",m,!1),f.addEventListener("error",m,!1),e.body.appendChild(f),m}return function(e,h,k,l,m,n,p,u,R,B){function r(){fa&&fa(),t&&t.abort()}function J(b,c,e,f,g){w(M)&&d.cancel(M),fa=t=null,b(c,e,f,g),a.$$completeOutstandingRequest(A)}if(a.$$incOutstandingRequestCount(),h=h||a.url(),"jsonp"===Q(e))var v=c.createCallback(h),fa=f(h,v,function(a,b){var d=200===a&&c.getResponse(v);J(l,a,d,"",b),c.removeCallback(v)});else{var t=b(e,h);if(t.open(e,h,!0),q(m,function(a,b){w(a)&&t.setRequestHeader(b,a)}),t.onload=function(){var a=t.statusText||"",b="response"in t?t.response:t.responseText,c=1223===t.status?204:t.status;0===c&&(c=b?200:"file"==Y(h).protocol?404:0),J(l,c,b,t.getAllResponseHeaders(),a)},e=function(){J(l,-1,null,null,"")},t.onerror=e,t.onabort=e,q(R,function(a,b){t.addEventListener(b,a)}),q(B,function(a,b){t.upload.addEventListener(b,a)}),p&&(t.withCredentials=!0),u)try{t.responseType=u}catch(K){if("json"!==u)throw K}t.send(y(k)?null:k)}if(0<n)var M=d(r,n);else n&&z(n.then)&&n.then(r)}}function kf(){var a="{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a},this.endSymbol=function(a){return a?(b=a,this):b},this.$get=["$parse","$exceptionHandler","$sce",function(d,c,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(n,a).replace(p,b)}function h(a,b,c,d){var e;return e=a.$watch(function(a){return e(),d(a)},b,c)}function k(f,k,p,n){function J(a){try{var b=a;a=p?e.getTrusted(p,b):e.valueOf(b);var d;if(n&&!w(a))d=a;else if(null==a)d="";else{switch(typeof a){case"string":break;case"number":a=""+a;break;default:a=bb(a)}d=a}return d}catch(g){c(Ka.interr(f,g))}}if(!f.length||-1===f.indexOf(a)){var v;return k||(k=g(f),v=ha(k),v.exp=f,v.expressions=[],v.$$watchDelegate=h),v}n=!!n;var q,t,K=0,M=[],H=[];v=f.length;for(var E=[],I=[];K<v;){if(-1==(q=f.indexOf(a,K))||-1==(t=f.indexOf(b,q+l))){K!==v&&E.push(g(f.substring(K)));break}K!==q&&E.push(g(f.substring(K,q))),K=f.substring(q+l,t),M.push(K),H.push(d(K,J)),K=t+m,I.push(E.length),E.push("")}if(p&&1<E.length&&Ka.throwNoconcat(f),!k||M.length){var Da=function(a){for(var b=0,c=M.length;b<c;b++){if(n&&y(a[b]))return;E[I[b]]=a[b]}return E.join("")};return S(function(a){var b=0,d=M.length,e=Array(d);try{for(;b<d;b++)e[b]=H[b](a);return Da(e)}catch(g){c(Ka.interr(f,g))}},{exp:f,expressions:M,$$watchDelegate:function(a,b){var c;return a.$watchGroup(H,function(d,e){var f=Da(d);z(b)&&b.call(this,f,d!==e?c:f,a),c=f})}})}}var l=a.length,m=b.length,n=new RegExp(a.replace(/./g,f),"g"),p=new RegExp(b.replace(/./g,f),"g");return k.startSymbol=function(){return a},k.endSymbol=function(){return b},k}]}function lf(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(a,b,d,c,e){function f(f,k,l,m){function n(){p?f.apply(null,u):f(r)}var p=4<arguments.length,u=p?va.call(arguments,4):[],R=b.setInterval,q=b.clearInterval,r=0,J=w(m)&&!m,v=(J?c:d).defer(),fa=v.promise;return l=w(l)?l:0,fa.$$intervalId=R(function(){J?e.defer(n):a.$evalAsync(n),v.notify(r++),0<l&&r>=l&&(v.resolve(r),q(fa.$$intervalId),delete g[fa.$$intervalId]),J||a.$apply()},k),g[fa.$$intervalId]=v,fa}var g={};return f.cancel=function(a){return!!(a&&a.$$intervalId in g)&&(g[a.$$intervalId].reject("canceled"),b.clearInterval(a.$$intervalId),delete g[a.$$intervalId],!0)},f}]}function fc(a){a=a.split("/");for(var b=a.length;b--;)a[b]=qb(a[b]);return a.join("/")}function jd(a,b){var d=Y(a);b.$$protocol=d.protocol,b.$$host=d.hostname,b.$$port=Z(d.port)||hg[d.protocol]||null}function kd(a,b){var d="/"!==a.charAt(0);d&&(a="/"+a);var c=Y(a);b.$$path=decodeURIComponent(d&&"/"===c.pathname.charAt(0)?c.pathname.substring(1):c.pathname),b.$$search=Ac(c.search),b.$$hash=decodeURIComponent(c.hash),b.$$path&&"/"!=b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function ka(a,b){if(0===b.lastIndexOf(a,0))return b.substr(a.length)}function Ja(a){var b=a.indexOf("#");return-1==b?a:a.substr(0,b)}function jb(a){return a.replace(/(#.+)|#$/,"$1")}function gc(a,b,d){this.$$html5=!0,d=d||"",jd(a,this),this.$$parse=function(a){var d=ka(b,a);if(!G(d))throw Gb("ipthprfx",a,b);kd(d,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var a=Tb(this.$$search),d=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=fc(this.$$path)+(a?"?"+a:"")+d,this.$$absUrl=b+this.$$url.substr(1)},this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;return w(f=ka(a,c))?(g=f,g=w(f=ka(d,f))?b+(ka("/",f)||f):a+g):w(f=ka(b,c))?g=b+f:b==c+"/"&&(g=b),g&&this.$$parse(g),!!g}}function hc(a,b,d){jd(a,this),this.$$parse=function(c){var f,e=ka(a,c)||ka(b,c);y(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",y(e)&&(a=c,this.replace())):(f=ka(d,e),y(f)&&(f=e)),kd(f,this),c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;0===f.lastIndexOf(e,0)&&(f=f.replace(e,"")),g.exec(f)||(c=(f=g.exec(c))?f[1]:c),this.$$path=c,this.$$compose()},this.$$compose=function(){var b=Tb(this.$$search),e=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=fc(this.$$path)+(b?"?"+b:"")+e,this.$$absUrl=a+(this.$$url?d+this.$$url:"")},this.$$parseLinkUrl=function(b,d){return Ja(a)==Ja(b)&&(this.$$parse(b),!0)}}function ld(a,b,d){this.$$html5=!0,hc.apply(this,arguments),this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;return a==Ja(c)?f=c:(g=ka(b,c))?f=a+d+g:b===c+"/"&&(f=b),f&&this.$$parse(f),!!f},this.$$compose=function(){var b=Tb(this.$$search),e=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=fc(this.$$path)+(b?"?"+b:"")+e,this.$$absUrl=a+d+this.$$url}}function Hb(a){return function(){return this[a]}}function md(a,b){return function(d){return y(d)?this[a]:(this[a]=b(d),this.$$compose(),this)}}function sf(){var a="",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return w(b)?(a=b,this):a},this.html5Mode=function(a){return Ga(a)?(b.enabled=a,this):D(a)?(Ga(a.enabled)&&(b.enabled=a.enabled),Ga(a.requireBase)&&(b.requireBase=a.requireBase),Ga(a.rewriteLinks)&&(b.rewriteLinks=a.rewriteLinks),this):b},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(d,c,e,f,g){function h(a,b,d){var e=l.url(),f=l.$$state;try{c.url(a,b,d),l.$$state=c.state()}catch(g){throw l.url(e),l.$$state=f,g}}function k(a,b){d.$broadcast("$locationChangeSuccess",l.absUrl(),a,l.$$state,b)}var l,m;m=c.baseHref();var p,n=c.url();if(b.enabled){if(!m&&b.requireBase)throw Gb("nobase");p=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(m||"/"),m=e.history?gc:ld}else p=Ja(n),m=hc;var u=p.substr(0,Ja(p).lastIndexOf("/")+1);l=new m(p,u,"#"+a),l.$$parseLinkUrl(n,n),l.$$state=c.state();var R=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(b.rewriteLinks&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!=a.which&&2!=a.button){for(var e=F(a.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),k=e.attr("href")||e.attr("xlink:href");D(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Y(h.animVal).href),R.test(h)||!h||e.attr("target")||a.isDefaultPrevented()||!l.$$parseLinkUrl(h,k)||(a.preventDefault(),l.absUrl()!=c.url()&&(d.$apply(),g.angular["ff-684208-preventDefault"]=!0))}}),jb(l.absUrl())!=jb(n)&&c.url(l.absUrl(),!0);var q=!0;return c.onUrlChange(function(a,b){y(ka(u,a))?g.location.href=a:(d.$evalAsync(function(){var f,c=l.absUrl(),e=l.$$state;a=jb(a),l.$$parse(a),l.$$state=b,f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented,l.absUrl()===a&&(f?(l.$$parse(c),l.$$state=e,h(c,!1,e)):(q=!1,k(c,e)))}),d.$$phase||d.$digest())}),d.$watch(function(){var a=jb(c.url()),b=jb(l.absUrl()),f=c.state(),g=l.$$replace,m=a!==b||l.$$html5&&e.history&&f!==l.$$state;(q||m)&&(q=!1,d.$evalAsync(function(){var b=l.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,l.$$state,f).defaultPrevented;l.absUrl()===b&&(c?(l.$$parse(a),l.$$state=f):(m&&h(b,g,f===l.$$state?null:l.$$state),k(a,f)))})),l.$$replace=!1}),l}]}function tf(){var a=!0,b=this;this.debugEnabled=function(b){return w(b)?(a=b,this):a},this.$get=["$window",function(d){function c(a){return a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line)),a}function e(a){var b=d.console||{},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(k){}return a?function(){var a=[];return q(arguments,function(b){a.push(c(b))}),e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Sa(a,b){if("__defineGetter__"===a||"__defineSetter__"===a||"__lookupGetter__"===a||"__lookupSetter__"===a||"__proto__"===a)throw X("isecfld",b);return a}function ig(a){return a+""}function ra(a,b){if(a){if(a.constructor===a)throw X("isecfn",b);if(a.window===a)throw X("isecwindow",b);if(a.children&&(a.nodeName||a.prop&&a.attr&&a.find))throw X("isecdom",b);if(a===Object)throw X("isecobj",b)}return a}function nd(a,b){if(a){if(a.constructor===a)throw X("isecfn",b);if(a===jg||a===kg||a===lg)throw X("isecff",b)}}function Ib(a,b){if(a&&(a===(0).constructor||a===(!1).constructor||a==="".constructor||a==={}.constructor||a===[].constructor||a===Function.constructor))throw X("isecaf",b)}function mg(a,b){return"undefined"!=typeof a?a:b}function od(a,b){return"undefined"==typeof a?b:"undefined"==typeof b?a:a+b}function V(a,b){var d,c;switch(a.type){case s.Program:d=!0,q(a.body,function(a){V(a.expression,b),d=d&&a.expression.constant}),a.constant=d;break;case s.Literal:a.constant=!0,a.toWatch=[];break;case s.UnaryExpression:V(a.argument,b),a.constant=a.argument.constant,a.toWatch=a.argument.toWatch;break;case s.BinaryExpression:V(a.left,b),V(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case s.LogicalExpression:V(a.left,b),V(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=a.constant?[]:[a];break;case s.ConditionalExpression:V(a.test,b),V(a.alternate,b),V(a.consequent,b),a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant,a.toWatch=a.constant?[]:[a];break;case s.Identifier:a.constant=!1,a.toWatch=[a];break;case s.MemberExpression:V(a.object,b),a.computed&&V(a.property,b),a.constant=a.object.constant&&(!a.computed||a.property.constant),a.toWatch=[a];break;case s.CallExpression:d=!!a.filter&&!b(a.callee.name).$stateful,c=[],q(a.arguments,function(a){V(a,b),d=d&&a.constant,a.constant||c.push.apply(c,a.toWatch)}),a.constant=d,a.toWatch=a.filter&&!b(a.callee.name).$stateful?c:[a];break;case s.AssignmentExpression:V(a.left,b),V(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=[a];break;case s.ArrayExpression:d=!0,c=[],q(a.elements,function(a){V(a,b),d=d&&a.constant,a.constant||c.push.apply(c,a.toWatch)}),a.constant=d,a.toWatch=c;break;case s.ObjectExpression:d=!0,c=[],q(a.properties,function(a){V(a.value,b),d=d&&a.value.constant&&!a.computed,a.value.constant||c.push.apply(c,a.value.toWatch)}),a.constant=d,a.toWatch=c;break;case s.ThisExpression:a.constant=!1,a.toWatch=[];break;case s.LocalsExpression:a.constant=!1,a.toWatch=[]}}function pd(a){if(1==a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function qd(a){return a.type===s.Identifier||a.type===s.MemberExpression}function rd(a){if(1===a.body.length&&qd(a.body[0].expression))return{type:s.AssignmentExpression,left:a.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function sd(a){return 0===a.body.length||1===a.body.length&&(a.body[0].expression.type===s.Literal||a.body[0].expression.type===s.ArrayExpression||a.body[0].expression.type===s.ObjectExpression)}function td(a,b){this.astBuilder=a,this.$filter=b}function ud(a,b){this.astBuilder=a,this.$filter=b}function Jb(a){return"constructor"==a}function ic(a){return z(a.valueOf)?a.valueOf():ng.call(a)}function uf(){var c,e,a=U(),b=U(),d={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(a,b){d[a]=b},this.setIdentifierFns=function(a,b){return c=a,e=b,this},this.$get=["$filter",function(f){function g(c,d,e){var g,k,H;switch(e=e||J,typeof c){case"string":H=c=c.trim();var E=e?b:a;if(g=E[H],!g){":"===c.charAt(0)&&":"===c.charAt(1)&&(k=!0,c=c.substring(2)),g=e?r:B;var q=new jc(g);g=new kc(q,f,g).parse(c),g.constant?g.$$watchDelegate=p:k?g.$$watchDelegate=g.literal?n:m:g.inputs&&(g.$$watchDelegate=l),e&&(g=h(g)),E[H]=g}return u(g,d);case"function":return u(c,d);default:return u(A,d)}}function h(a){function b(c,d,e,f){var g=J;J=!0;try{return a(c,d,e,f)}finally{J=g}}if(!a)return a;b.$$watchDelegate=a.$$watchDelegate,b.assign=h(a.assign),b.constant=a.constant,b.literal=a.literal;for(var c=0;a.inputs&&c<a.inputs.length;++c)a.inputs[c]=h(a.inputs[c]);return b.inputs=a.inputs,b}function k(a,b){return null==a||null==b?a===b:("object"!=typeof a||(a=ic(a),"object"!=typeof a))&&(a===b||a!==a&&b!==b)}function l(a,b,c,d,e){var g,f=d.inputs;if(1===f.length){var h=k,f=f[0];return a.$watch(function(a){var b=f(a);return k(b,h)||(g=d(a,void 0,void 0,[b]),h=b&&ic(b)),g},b,c,e)}for(var l=[],m=[],p=0,n=f.length;p<n;p++)l[p]=k,m[p]=null;return a.$watch(function(a){for(var b=!1,c=0,e=f.length;c<e;c++){var h=f[c](a);(b||(b=!k(h,l[c])))&&(m[c]=h,l[c]=h&&ic(h))}return b&&(g=d(a,void 0,void 0,m)),g},b,c,e)}function m(a,b,c,d){var e,f;return e=a.$watch(function(a){return d(a)},function(a,c,d){f=a,z(b)&&b.apply(this,arguments),w(a)&&d.$$postDigest(function(){w(f)&&e()})},c)}function n(a,b,c,d){function e(a){var b=!0;return q(a,function(a){w(a)||(b=!1)}),b}var f,g;return f=a.$watch(function(a){return d(a)},function(a,c,d){g=a,z(b)&&b.call(this,a,c,d),e(a)&&d.$$postDigest(function(){e(g)&&f()})},c)}function p(a,b,c,d){var e;return e=a.$watch(function(a){return e(),d(a)},b,c)}function u(a,b){if(!b)return a;var c=a.$$watchDelegate,d=!1,c=c!==n&&c!==m?function(c,e,f,g){return f=d&&g?g[0]:a(c,e,f,g),b(f,c,e)}:function(c,d,e,f){return e=a(c,d,e,f),c=b(e,c,d),w(e)?c:e};return a.$$watchDelegate&&a.$$watchDelegate!==l?c.$$watchDelegate=a.$$watchDelegate:b.$stateful||(c.$$watchDelegate=l,d=!a.inputs,c.inputs=a.inputs?a.inputs:[a]),c}var R=Ba().noUnsafeEval,B={csp:R,expensiveChecks:!1,literals:pa(d),isIdentifierStart:z(c)&&c,isIdentifierContinue:z(e)&&e},r={csp:R,expensiveChecks:!0,literals:pa(d),isIdentifierStart:z(c)&&c,isIdentifierContinue:z(e)&&e},J=!1;return g.$$runningExpensiveChecks=function(){return J},g}]}function wf(){this.$get=["$rootScope","$exceptionHandler",function(a,b){return vd(function(b){a.$evalAsync(b)},b)}]}function xf(){this.$get=["$browser","$exceptionHandler",function(a,b){return vd(function(b){a.defer(b)},b)}]}function vd(a,b){function d(){this.$$state={status:0}}function c(a,b){return function(c){b.call(a,c)}}function e(c){!c.processScheduled&&c.pending&&(c.processScheduled=!0,a(function(){var a,d,e;e=c.pending,c.processScheduled=!1,c.pending=void 0;for(var f=0,g=e.length;f<g;++f){d=e[f][0],a=e[f][c.status];try{z(a)?d.resolve(a(c.value)):1===c.status?d.resolve(c.value):d.reject(c.value)}catch(h){d.reject(h),b(h)}}}))}function f(){this.promise=new d}var g=N("$q",TypeError),h=function(){var a=new f;return a.resolve=c(a,a.resolve),
diff --git a/l10n/ar.js b/l10n/ar.js
new file mode 100644
index 00000000..28ce1566
--- /dev/null
+++ b/l10n/ar.js
@@ -0,0 +1,56 @@
+OC.L10N.register(
+ "passman",
+ {
+ "Passwords" : "الكلمات السرية",
+ "Starting export" : "عملية التصدير جارية",
+ "Done" : "تم",
+ "Skip first row" : "تجاهل الصف الأول",
+ "Save in Passman" : "إحتفظ به في باس مان",
+ "Settings saved" : "تم حفظ الإعدادات",
+ "General settings" : "الإعدادات العامة",
+ "Password settings" : "إعدادات كلمة السر",
+ "Share link" : "شارك الرابط",
+ "Poor" : "ضعيفة جدًا",
+ "Weak" : "ضعيفة",
+ "Good" : "جيّدة",
+ "Strong" : "قوية",
+ "Username" : "إسم المستخدم",
+ "Repeat password" : "أعد كتابة الكلمة السرية",
+ "Use this icon" : "إستخدم هذه الأيقونة",
+ "Field value" : "قيمة الحقل",
+ "Choose a file" : "إختيار ملف",
+ "Text" : "نص",
+ "File" : "ملف",
+ "Add" : "إضافة",
+ "Value" : "القيمة",
+ "Actions" : "الإجراءات",
+ "Filename" : "إسم الملف",
+ "Upload date" : "آخر تحديث",
+ "Size" : "الحجم",
+ "Secret" : "السر",
+ "Password length" : "طول كلمة السر",
+ "User" : "المستخدِم",
+ "Files" : "الملفات",
+ "Show files" : "إظهار الملفات",
+ "Details" : "التفاصيل",
+ "Hide details" : "إخفاء التفاصيل",
+ "Password score" : "قوة الكلمة السرية",
+ "Dictionary name" : "إسم القاموس",
+ "Save" : "حفظ",
+ "Cancel" : "إلغاء",
+ "Settings" : "الإعدادات",
+ "Account" : "الحساب",
+ "Password" : "كلمة السر",
+ "E-mail" : "البريد الإلكتروني",
+ "URL" : "الرابط",
+ "Notes" : "الملاحظات",
+ "Edit" : "تعديل",
+ "Delete" : "حذف",
+ "Share" : "شارك",
+ "Permissions" : "التصريحات",
+ "Date" : "التاريخ",
+ "Show All" : "إظهار الكل",
+ "Tags" : "الوسوم",
+ "Description" : "الوصف"
+},
+"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/l10n/ar.json b/l10n/ar.json
new file mode 100644
index 00000000..8fab602a
--- /dev/null
+++ b/l10n/ar.json
@@ -0,0 +1,54 @@
+{ "translations": {
+ "Passwords" : "الكلمات السرية",
+ "Starting export" : "عملية التصدير جارية",
+ "Done" : "تم",
+ "Skip first row" : "تجاهل الصف الأول",
+ "Save in Passman" : "إحتفظ به في باس مان",
+ "Settings saved" : "تم حفظ الإعدادات",
+ "General settings" : "الإعدادات العامة",
+ "Password settings" : "إعدادات كلمة السر",
+ "Share link" : "شارك الرابط",
+ "Poor" : "ضعيفة جدًا",
+ "Weak" : "ضعيفة",
+ "Good" : "جيّدة",
+ "Strong" : "قوية",
+ "Username" : "إسم المستخدم",
+ "Repeat password" : "أعد كتابة الكلمة السرية",
+ "Use this icon" : "إستخدم هذه الأيقونة",
+ "Field value" : "قيمة الحقل",
+ "Choose a file" : "إختيار ملف",
+ "Text" : "نص",
+ "File" : "ملف",
+ "Add" : "إضافة",
+ "Value" : "القيمة",
+ "Actions" : "الإجراءات",
+ "Filename" : "إسم الملف",
+ "Upload date" : "آخر تحديث",
+ "Size" : "الحجم",
+ "Secret" : "السر",
+ "Password length" : "طول كلمة السر",
+ "User" : "المستخدِم",
+ "Files" : "الملفات",
+ "Show files" : "إظهار الملفات",
+ "Details" : "التفاصيل",
+ "Hide details" : "إخفاء التفاصيل",
+ "Password score" : "قوة الكلمة السرية",
+ "Dictionary name" : "إسم القاموس",
+ "Save" : "حفظ",
+ "Cancel" : "إلغاء",
+ "Settings" : "الإعدادات",
+ "Account" : "الحساب",
+ "Password" : "كلمة السر",
+ "E-mail" : "البريد الإلكتروني",
+ "URL" : "الرابط",
+ "Notes" : "الملاحظات",
+ "Edit" : "تعديل",
+ "Delete" : "حذف",
+ "Share" : "شارك",
+ "Permissions" : "التصريحات",
+ "Date" : "التاريخ",
+ "Show All" : "إظهار الكل",
+ "Tags" : "الوسوم",
+ "Description" : "الوصف"
+},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
+} \ No newline at end of file
diff --git a/l10n/ca.js b/l10n/ca.js
index 891d65d7..b32762c3 100644
--- a/l10n/ca.js
+++ b/l10n/ca.js
@@ -56,7 +56,7 @@ OC.L10N.register(
"Share with users and groups" : "Comparteix amb usuaris i grups",
"Share link" : "Comparteix l'enllaç",
"Are you sure you want to leave? This will corrupt this credential" : "Esteu segurs que voleu sortir? Això corromprà aquesta credencial",
- "Credential unshared" : "Credencial descompartida",
+ "Credential unshared" : "S'ha deixat de compartir la credencial",
"Credential shared" : "Credencial compartida",
"Saved!" : "S'ha desat!",
"Poor" : "Pobre",
@@ -211,7 +211,7 @@ OC.L10N.register(
"Cancel" : "Cancel·la",
"Settings" : "Paràmetres",
"Share credential {{credential}}" : "Comparteix credencial {{credential}}",
- "Unshare" : "Descomparteix",
+ "Unshare" : "Deixa de compartir",
"Showing deleted since" : "S'estan mostrant les suprimides des de",
"Beginning" : "Inici",
"Showing {{number_filtered}} of {{credential_number}} credentials" : "S'estan mostrant {{number_filtered}} de {{credential_number}} credencials",
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Oohh... no s'ha trobat cap credencial ... Potser ha caducat",
"Compromise!" : "Compromís!",
"Compromised!" : "Compromès!",
- "This password is compromised. You can only remove this warning with changing the password." : "Aquesta contrasenya està compromesa. Només podreu suprimir aquest avís canviant la contrasenya.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Aquesta contrasenya està compromesa. Només podeu suprimir aquest avís canviant la contrasenya.",
"email" : "correu electrònic",
"Description" : "Descripció",
"Url" : "Url",
@@ -313,8 +313,8 @@ OC.L10N.register(
"You updated %1$s" : "Has actualitzat %1$s",
"%2$s has revised %1$s to the revision of %3$s" : "%2$s ha revisat %1$s a la revisió de %3$s",
"You reverted %1$s back to the revision of %3$s" : "Heu tornat %1$s a la revisió de %3$s",
- "%3$s has renamed %1$s to %2$s" : "%3$s ha reanomenat %1$s a %2$s",
- "You renamed %1$s to %2$s" : "Heu canviat de nom de %1$s a %2$s",
+ "%3$s has renamed %1$s to %2$s" : "%3$s ha canviat el nom de %1$s a %2$s",
+ "You renamed %1$s to %2$s" : "Heu canviat el nom de %1$s a %2$s",
"%1$s has been deleted by %2$s" : "%1$s ha estat suprimit per %2$s",
"You deleted %1$s" : "Heu suprimit %1$s",
"%1$s has been recovered by %2$s" : "%1$s ha estat recuperat per %2$s",
diff --git a/l10n/ca.json b/l10n/ca.json
index 25d91b3d..fbb1a4c7 100644
--- a/l10n/ca.json
+++ b/l10n/ca.json
@@ -54,7 +54,7 @@
"Share with users and groups" : "Comparteix amb usuaris i grups",
"Share link" : "Comparteix l'enllaç",
"Are you sure you want to leave? This will corrupt this credential" : "Esteu segurs que voleu sortir? Això corromprà aquesta credencial",
- "Credential unshared" : "Credencial descompartida",
+ "Credential unshared" : "S'ha deixat de compartir la credencial",
"Credential shared" : "Credencial compartida",
"Saved!" : "S'ha desat!",
"Poor" : "Pobre",
@@ -209,7 +209,7 @@
"Cancel" : "Cancel·la",
"Settings" : "Paràmetres",
"Share credential {{credential}}" : "Comparteix credencial {{credential}}",
- "Unshare" : "Descomparteix",
+ "Unshare" : "Deixa de compartir",
"Showing deleted since" : "S'estan mostrant les suprimides des de",
"Beginning" : "Inici",
"Showing {{number_filtered}} of {{credential_number}} credentials" : "S'estan mostrant {{number_filtered}} de {{credential_number}} credencials",
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Oohh... no s'ha trobat cap credencial ... Potser ha caducat",
"Compromise!" : "Compromís!",
"Compromised!" : "Compromès!",
- "This password is compromised. You can only remove this warning with changing the password." : "Aquesta contrasenya està compromesa. Només podreu suprimir aquest avís canviant la contrasenya.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Aquesta contrasenya està compromesa. Només podeu suprimir aquest avís canviant la contrasenya.",
"email" : "correu electrònic",
"Description" : "Descripció",
"Url" : "Url",
@@ -311,8 +311,8 @@
"You updated %1$s" : "Has actualitzat %1$s",
"%2$s has revised %1$s to the revision of %3$s" : "%2$s ha revisat %1$s a la revisió de %3$s",
"You reverted %1$s back to the revision of %3$s" : "Heu tornat %1$s a la revisió de %3$s",
- "%3$s has renamed %1$s to %2$s" : "%3$s ha reanomenat %1$s a %2$s",
- "You renamed %1$s to %2$s" : "Heu canviat de nom de %1$s a %2$s",
+ "%3$s has renamed %1$s to %2$s" : "%3$s ha canviat el nom de %1$s a %2$s",
+ "You renamed %1$s to %2$s" : "Heu canviat el nom de %1$s a %2$s",
"%1$s has been deleted by %2$s" : "%1$s ha estat suprimit per %2$s",
"You deleted %1$s" : "Heu suprimit %1$s",
"%1$s has been recovered by %2$s" : "%1$s ha estat recuperat per %2$s",
diff --git a/l10n/cs.js b/l10n/cs.js
index 13183e07..bc6d502e 100644
--- a/l10n/cs.js
+++ b/l10n/cs.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Hmmmm… pověření nenalezeno. Možná jeho platnost skončila",
"Compromise!" : "Kompromitovat!",
"Compromised!" : "Kompromitováno!",
- "This password is compromised. You can only remove this warning with changing the password." : "Toto heslo je kompromitováno. Toto varování je možné zrušit pouze změnou hesla.",
"email" : "e-mail",
"Description" : "Popis",
"Url" : "URL adresa",
diff --git a/l10n/cs.json b/l10n/cs.json
index 575ec389..3e894da0 100644
--- a/l10n/cs.json
+++ b/l10n/cs.json
@@ -294,7 +294,6 @@
"Awwhh… credential not found. Maybe it expired" : "Hmmmm… pověření nenalezeno. Možná jeho platnost skončila",
"Compromise!" : "Kompromitovat!",
"Compromised!" : "Kompromitováno!",
- "This password is compromised. You can only remove this warning with changing the password." : "Toto heslo je kompromitováno. Toto varování je možné zrušit pouze změnou hesla.",
"email" : "e-mail",
"Description" : "Popis",
"Url" : "URL adresa",
diff --git a/l10n/da.js b/l10n/da.js
index ccec6187..5e1ef9cd 100644
--- a/l10n/da.js
+++ b/l10n/da.js
@@ -102,27 +102,30 @@ OC.L10N.register(
"Use uppercase letters" : "Benyt store bogstaver",
"Use lowercase letters" : "Benyt små bogstaver",
"Use numbers" : "Benyt tal",
- "Use special characters" : "Brug special tegn",
+ "Use special characters" : "Brug specialtegn",
"Avoid ambiguous characters" : "Undgå tvetydige tegn",
- "Require every character type" : "Forlang alle tegn typer",
- "Export type" : "Eksportér type",
+ "Require every character type" : "Forlang alle tegntyper",
+ "Export type" : "Eksporttype",
"Export" : "Eksportér",
- "Enter vault password to confirm export." : "Indtast boks password for at bekræfte eksport.",
+ "Enter vault password to confirm export." : "Indtast boks-password for at bekræfte eksport.",
"Rename vault" : "Omdøb boks",
- "New vault name" : "Nyt boks navn",
- "Change" : "Ændré",
- "Change vault key" : "Ændre boks nøgle",
- "Old vault password" : "Gammelt boks password",
- "New vault password" : "Nyt boks password",
- "Repeat new vault password" : "Gentag nyt boks password",
- "Please wait your vault is being updated, do not leave this page." : "Ven venligst din boks er ved at blive opdateret, forlad ikke denne side.",
- "Processing" : "Processere",
- "Total progress" : "Total forløb",
+ "New vault name" : "Nyt boks-navn",
+ "Change" : "Ændr",
+ "Change vault key" : "Ændr boksnøgle",
+ "Old vault password" : "Gammelt boks-kodeord",
+ "New vault password" : "Nyt boks-kodeord",
+ "Repeat new vault password" : "Gentag nyt boks-kodeord",
+ "Please wait your vault is being updated, do not leave this page." : "Ven venligst, din boks er ved at blive opdateret, forlad ikke denne side.",
+ "Processing" : "Bearbejder",
+ "Total progress" : "Total fremskridt",
"About Passman" : "Om Passman",
"Version" : "Version",
- "Donate to support development" : "Doner for at støtte udvikling",
+ "Donate to support development" : "Donér for at støtte udvikling",
+ "Bookmarklet" : "Bookmarklet",
+ "Save your passwords with one click." : "Gem dine adgangskoder med ét klik.",
+ "Drag below button to your bookmark toolbar." : "Træk nedenstående knap til din bogmærkelinje.",
"Delete vault" : "Slet boks",
- "Vault password" : "Boks password",
+ "Vault password" : "Boks-adgangskode",
"This process is irreversible" : "Denne process er irreversibel",
"Delete my precious passwords" : "Slet mine tidligere passwords",
"Deleting {{password}}…" : "Sletter {{password}}...",
@@ -216,7 +219,19 @@ OC.L10N.register(
"Deleted credentials" : "Slettede brugeroplysninger",
"Logout" : "Log ud",
"Donate" : "Donér",
+ "Show All" : "Vis alle",
+ "Tags" : "Mærker",
+ "Search Tags" : "Søg Tags",
+ "Good Strength" : "God Styrke",
+ "Medium Strength" : "Styrke medium",
+ "Bad Strength" : "Svagt",
+ "Expired" : "Udløbet",
+ "Filter Tags" : "Filtrer Tags",
+ "Simple Navigation" : "Simpel Navigation",
+ "Click here to request it" : "Klik her for at bede om det",
"Loading…" : "Indlæser…",
+ "Compromise!" : "Marker kompromis!",
+ "Compromised!" : "Markeret kompromis!",
"Error while saving field" : "Fejl under lagring af felt",
"A Passman item has expired" : "Et element i Passman er udløbet",
"A Passman item has been shared" : "Et element i Passman er blevet delt",
diff --git a/l10n/da.json b/l10n/da.json
index 78b855b1..f98f8a7c 100644
--- a/l10n/da.json
+++ b/l10n/da.json
@@ -100,27 +100,30 @@
"Use uppercase letters" : "Benyt store bogstaver",
"Use lowercase letters" : "Benyt små bogstaver",
"Use numbers" : "Benyt tal",
- "Use special characters" : "Brug special tegn",
+ "Use special characters" : "Brug specialtegn",
"Avoid ambiguous characters" : "Undgå tvetydige tegn",
- "Require every character type" : "Forlang alle tegn typer",
- "Export type" : "Eksportér type",
+ "Require every character type" : "Forlang alle tegntyper",
+ "Export type" : "Eksporttype",
"Export" : "Eksportér",
- "Enter vault password to confirm export." : "Indtast boks password for at bekræfte eksport.",
+ "Enter vault password to confirm export." : "Indtast boks-password for at bekræfte eksport.",
"Rename vault" : "Omdøb boks",
- "New vault name" : "Nyt boks navn",
- "Change" : "Ændré",
- "Change vault key" : "Ændre boks nøgle",
- "Old vault password" : "Gammelt boks password",
- "New vault password" : "Nyt boks password",
- "Repeat new vault password" : "Gentag nyt boks password",
- "Please wait your vault is being updated, do not leave this page." : "Ven venligst din boks er ved at blive opdateret, forlad ikke denne side.",
- "Processing" : "Processere",
- "Total progress" : "Total forløb",
+ "New vault name" : "Nyt boks-navn",
+ "Change" : "Ændr",
+ "Change vault key" : "Ændr boksnøgle",
+ "Old vault password" : "Gammelt boks-kodeord",
+ "New vault password" : "Nyt boks-kodeord",
+ "Repeat new vault password" : "Gentag nyt boks-kodeord",
+ "Please wait your vault is being updated, do not leave this page." : "Ven venligst, din boks er ved at blive opdateret, forlad ikke denne side.",
+ "Processing" : "Bearbejder",
+ "Total progress" : "Total fremskridt",
"About Passman" : "Om Passman",
"Version" : "Version",
- "Donate to support development" : "Doner for at støtte udvikling",
+ "Donate to support development" : "Donér for at støtte udvikling",
+ "Bookmarklet" : "Bookmarklet",
+ "Save your passwords with one click." : "Gem dine adgangskoder med ét klik.",
+ "Drag below button to your bookmark toolbar." : "Træk nedenstående knap til din bogmærkelinje.",
"Delete vault" : "Slet boks",
- "Vault password" : "Boks password",
+ "Vault password" : "Boks-adgangskode",
"This process is irreversible" : "Denne process er irreversibel",
"Delete my precious passwords" : "Slet mine tidligere passwords",
"Deleting {{password}}…" : "Sletter {{password}}...",
@@ -214,7 +217,19 @@
"Deleted credentials" : "Slettede brugeroplysninger",
"Logout" : "Log ud",
"Donate" : "Donér",
+ "Show All" : "Vis alle",
+ "Tags" : "Mærker",
+ "Search Tags" : "Søg Tags",
+ "Good Strength" : "God Styrke",
+ "Medium Strength" : "Styrke medium",
+ "Bad Strength" : "Svagt",
+ "Expired" : "Udløbet",
+ "Filter Tags" : "Filtrer Tags",
+ "Simple Navigation" : "Simpel Navigation",
+ "Click here to request it" : "Klik her for at bede om det",
"Loading…" : "Indlæser…",
+ "Compromise!" : "Marker kompromis!",
+ "Compromised!" : "Markeret kompromis!",
"Error while saving field" : "Fejl under lagring af felt",
"A Passman item has expired" : "Et element i Passman er udløbet",
"A Passman item has been shared" : "Et element i Passman er blevet delt",
diff --git a/l10n/de.js b/l10n/de.js
index 5df7e3d5..e740c3ea 100644
--- a/l10n/de.js
+++ b/l10n/de.js
@@ -95,7 +95,7 @@ OC.L10N.register(
"Filename" : "Dateiname",
"Upload date" : "Datum des Hochladens",
"Size" : "Größe",
- "Upload or enter your OTP secret" : "Gebe Dein OTP-Geheimnis ein oder lade es ihn hoch",
+ "Upload or enter your OTP secret" : "Gebe Dein OTP-Geheimnis ein oder lade es hoch",
"Current OTP settings" : "Aktuelle OTP-Einstellungen",
"Issuer" : "Ersteller",
"Secret" : "Geheimnis",
@@ -232,7 +232,7 @@ OC.L10N.register(
"Destroy" : "Vernichten",
"Use regex" : "Regex verwenden",
"You have incoming share requests." : "Du hast eingehende Freigabeanforderungen.",
- "If you want to put the credential in another vault," : "Wenn Du die Anmeldeinformation in einem anderen Tresor verschieben möchtest,",
+ "If you want to put the credential in another vault," : "Wenn Du die Anmeldeinformation in einen anderen Tresor verschieben möchtest,",
"log out of this vault and log into the vault you want the shared credential in." : "melden Dich bei diesem Tresor ab und melde Dich bei dem Tresor, der die geteilte Zugangsdaten beinhaltet, wieder an.",
"Permissions" : "Rechte",
"Received from" : "Erhalten von",
@@ -266,7 +266,7 @@ OC.L10N.register(
"Decrypt vault" : "Tresor entschlüsseln",
"Seems you lost the vault password and you're unable to log in." : "Es scheint, als hättest Du das Tresor-Passwort vergessen und bist nicht mehr in der Lage Dich anzumelden.",
"If you want this vault to be removed you can request that here." : "Wenn Du möchtest, dass dieser Tresor gelöscht wird, dann kannst Du dies hier anfordern.",
- "An admin then accepts or declines the request" : "Ein Admin akzeptiert dann diese Anfrage (oder nicht)",
+ "An admin then accepts or declines the request" : "Ein Administrator akzeptiert die Anfrage oder lehnt sie ab",
"After an admin destroys this vault, all credentials in it will be lost" : "Wenn ein Administrator diesen Tresor löscht, gehen alle enthaltenen Anmeldeinformationen verloren",
"Reason for requesting deletion (optional):" : "Grund die Löschung anzufordern (optional):",
"Request vault destruction" : "Fordere Tresor-Löschung an",
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Oh… Zugangsdaten nicht gefunden. Vielleicht sind sie abgelaufen ",
"Compromise!" : "Kompromittieren!",
"Compromised!" : "Kompromittiert!",
- "This password is compromised. You can only remove this warning with changing the password." : "Dieses Passwort wurde kompromittiert. Die Warnung kann nur durch eine Änderung des Passwortes entfernt werden.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Dieses Passwort wurde kompromittiert. Die Warnung kann nur durch eine Änderung des Passwortes entfernt werden.",
"email" : "E-Mail",
"Description" : "Beschreibung",
"Url" : "URL",
@@ -341,11 +341,11 @@ OC.L10N.register(
"Password sharing" : "Passwort teilen",
"Credential mover" : "Verschiebung der Anmeldeinformationen",
"Vault destruction requests" : "Tresor-Löschungs-Anforderungen",
- "Check for new versions" : "Nach neuerer Version suchen",
+ "Check for new versions" : "Nach neuer Version suchen",
"Enable HTTPS check" : "HTTPS-Prüfung aktivieren",
"Disable context menu" : "Kontextmenü deaktivieren",
"Disable JavaScript debugger" : "JavaScript-Debugger deaktivieren",
- "Allow users on this server to share passwords with a link" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern via Link",
+ "Allow users on this server to share passwords with a link" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern über einen Link",
"Allow users on this server to share passwords with other users" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern mit anderen Benutzern",
"Move credentials from one account to another" : "Verschiebe Anmeldeinformationen von einem Konto zu einem anderen",
"Source account" : "Quell-Konto",
diff --git a/l10n/de.json b/l10n/de.json
index 0cba5a13..e871cfb4 100644
--- a/l10n/de.json
+++ b/l10n/de.json
@@ -93,7 +93,7 @@
"Filename" : "Dateiname",
"Upload date" : "Datum des Hochladens",
"Size" : "Größe",
- "Upload or enter your OTP secret" : "Gebe Dein OTP-Geheimnis ein oder lade es ihn hoch",
+ "Upload or enter your OTP secret" : "Gebe Dein OTP-Geheimnis ein oder lade es hoch",
"Current OTP settings" : "Aktuelle OTP-Einstellungen",
"Issuer" : "Ersteller",
"Secret" : "Geheimnis",
@@ -230,7 +230,7 @@
"Destroy" : "Vernichten",
"Use regex" : "Regex verwenden",
"You have incoming share requests." : "Du hast eingehende Freigabeanforderungen.",
- "If you want to put the credential in another vault," : "Wenn Du die Anmeldeinformation in einem anderen Tresor verschieben möchtest,",
+ "If you want to put the credential in another vault," : "Wenn Du die Anmeldeinformation in einen anderen Tresor verschieben möchtest,",
"log out of this vault and log into the vault you want the shared credential in." : "melden Dich bei diesem Tresor ab und melde Dich bei dem Tresor, der die geteilte Zugangsdaten beinhaltet, wieder an.",
"Permissions" : "Rechte",
"Received from" : "Erhalten von",
@@ -264,7 +264,7 @@
"Decrypt vault" : "Tresor entschlüsseln",
"Seems you lost the vault password and you're unable to log in." : "Es scheint, als hättest Du das Tresor-Passwort vergessen und bist nicht mehr in der Lage Dich anzumelden.",
"If you want this vault to be removed you can request that here." : "Wenn Du möchtest, dass dieser Tresor gelöscht wird, dann kannst Du dies hier anfordern.",
- "An admin then accepts or declines the request" : "Ein Admin akzeptiert dann diese Anfrage (oder nicht)",
+ "An admin then accepts or declines the request" : "Ein Administrator akzeptiert die Anfrage oder lehnt sie ab",
"After an admin destroys this vault, all credentials in it will be lost" : "Wenn ein Administrator diesen Tresor löscht, gehen alle enthaltenen Anmeldeinformationen verloren",
"Reason for requesting deletion (optional):" : "Grund die Löschung anzufordern (optional):",
"Request vault destruction" : "Fordere Tresor-Löschung an",
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Oh… Zugangsdaten nicht gefunden. Vielleicht sind sie abgelaufen ",
"Compromise!" : "Kompromittieren!",
"Compromised!" : "Kompromittiert!",
- "This password is compromised. You can only remove this warning with changing the password." : "Dieses Passwort wurde kompromittiert. Die Warnung kann nur durch eine Änderung des Passwortes entfernt werden.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Dieses Passwort wurde kompromittiert. Die Warnung kann nur durch eine Änderung des Passwortes entfernt werden.",
"email" : "E-Mail",
"Description" : "Beschreibung",
"Url" : "URL",
@@ -339,11 +339,11 @@
"Password sharing" : "Passwort teilen",
"Credential mover" : "Verschiebung der Anmeldeinformationen",
"Vault destruction requests" : "Tresor-Löschungs-Anforderungen",
- "Check for new versions" : "Nach neuerer Version suchen",
+ "Check for new versions" : "Nach neuer Version suchen",
"Enable HTTPS check" : "HTTPS-Prüfung aktivieren",
"Disable context menu" : "Kontextmenü deaktivieren",
"Disable JavaScript debugger" : "JavaScript-Debugger deaktivieren",
- "Allow users on this server to share passwords with a link" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern via Link",
+ "Allow users on this server to share passwords with a link" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern über einen Link",
"Allow users on this server to share passwords with other users" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern mit anderen Benutzern",
"Move credentials from one account to another" : "Verschiebe Anmeldeinformationen von einem Konto zu einem anderen",
"Source account" : "Quell-Konto",
diff --git a/l10n/de_DE.js b/l10n/de_DE.js
index bb180228..9d3ffb37 100644
--- a/l10n/de_DE.js
+++ b/l10n/de_DE.js
@@ -59,7 +59,7 @@ OC.L10N.register(
"Credential unshared" : "Anmeldeinformation wird nicht mehr geteilt",
"Credential shared" : "Anmeldeinformation wird geteilt",
"Saved!" : "Gespeichert!",
- "Poor" : "mangelhaft",
+ "Poor" : "Mangelhaft",
"Weak" : "Schwach",
"Good" : "Gut",
"Strong" : "Stark",
@@ -266,7 +266,7 @@ OC.L10N.register(
"Decrypt vault" : "Tresor entschlüsseln",
"Seems you lost the vault password and you're unable to log in." : "Es scheint, als hätten Sie das Passwort für den Tresor verloren und könnten sich nicht mehr anmelden.",
"If you want this vault to be removed you can request that here." : "Wenn Sie möchten, dass dieser Tresor gelöscht wird, dann können Sie dies hier anfordern.",
- "An admin then accepts or declines the request" : "Ein Admin akzeptiert dann diese Anfrage (oder nicht)",
+ "An admin then accepts or declines the request" : "Ein Administrator akzeptiert die Anfrage oder lehnt sie ab",
"After an admin destroys this vault, all credentials in it will be lost" : "Wenn ein Administrator diesen Tresor löscht, gehen alle enthaltenen Anmeldeinformationen verloren",
"Reason for requesting deletion (optional):" : "Grund für die Lösch-Anfrage (optional):",
"Request vault destruction" : "Beantrage die Zerstörung des Tresors",
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Oh… Zugangsdaten nicht gefunden. Vielleicht sind sie abgelaufen ",
"Compromise!" : "Kompromittieren!",
"Compromised!" : "Kompromittiert!",
- "This password is compromised. You can only remove this warning with changing the password." : "Dieses Passwort wurde kompromittiert. Die Warnung kann nur durch eine Änderung des Passwortes entfernt werden.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Dieses Passwort wurde kompromittiert. Die Warnung kann nur durch eine Änderung des Passwortes entfernt werden.",
"email" : "E-Mail",
"Description" : "Beschreibung",
"Url" : "URL",
@@ -341,11 +341,11 @@ OC.L10N.register(
"Password sharing" : "Passwort teilen",
"Credential mover" : "Zugangsdaten verschieben",
"Vault destruction requests" : "Aufträge zur Zerstörung des Tresors",
- "Check for new versions" : "Nach neuerer Version suchen",
+ "Check for new versions" : "Nach neuer Version suchen",
"Enable HTTPS check" : "HTTPS-Prüfung aktivieren",
"Disable context menu" : "Kontextmenü deaktivieren",
"Disable JavaScript debugger" : "JavaScript-Debugger deaktivieren",
- "Allow users on this server to share passwords with a link" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern via Link",
+ "Allow users on this server to share passwords with a link" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern über einen Link",
"Allow users on this server to share passwords with other users" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern mit anderen Benutzern",
"Move credentials from one account to another" : "Verschiebe Zugangsdaten von einem Konto zu einem anderen",
"Source account" : "Ursprungskonto",
diff --git a/l10n/de_DE.json b/l10n/de_DE.json
index ab551a9c..cec92fc2 100644
--- a/l10n/de_DE.json
+++ b/l10n/de_DE.json
@@ -57,7 +57,7 @@
"Credential unshared" : "Anmeldeinformation wird nicht mehr geteilt",
"Credential shared" : "Anmeldeinformation wird geteilt",
"Saved!" : "Gespeichert!",
- "Poor" : "mangelhaft",
+ "Poor" : "Mangelhaft",
"Weak" : "Schwach",
"Good" : "Gut",
"Strong" : "Stark",
@@ -264,7 +264,7 @@
"Decrypt vault" : "Tresor entschlüsseln",
"Seems you lost the vault password and you're unable to log in." : "Es scheint, als hätten Sie das Passwort für den Tresor verloren und könnten sich nicht mehr anmelden.",
"If you want this vault to be removed you can request that here." : "Wenn Sie möchten, dass dieser Tresor gelöscht wird, dann können Sie dies hier anfordern.",
- "An admin then accepts or declines the request" : "Ein Admin akzeptiert dann diese Anfrage (oder nicht)",
+ "An admin then accepts or declines the request" : "Ein Administrator akzeptiert die Anfrage oder lehnt sie ab",
"After an admin destroys this vault, all credentials in it will be lost" : "Wenn ein Administrator diesen Tresor löscht, gehen alle enthaltenen Anmeldeinformationen verloren",
"Reason for requesting deletion (optional):" : "Grund für die Lösch-Anfrage (optional):",
"Request vault destruction" : "Beantrage die Zerstörung des Tresors",
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Oh… Zugangsdaten nicht gefunden. Vielleicht sind sie abgelaufen ",
"Compromise!" : "Kompromittieren!",
"Compromised!" : "Kompromittiert!",
- "This password is compromised. You can only remove this warning with changing the password." : "Dieses Passwort wurde kompromittiert. Die Warnung kann nur durch eine Änderung des Passwortes entfernt werden.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Dieses Passwort wurde kompromittiert. Die Warnung kann nur durch eine Änderung des Passwortes entfernt werden.",
"email" : "E-Mail",
"Description" : "Beschreibung",
"Url" : "URL",
@@ -339,11 +339,11 @@
"Password sharing" : "Passwort teilen",
"Credential mover" : "Zugangsdaten verschieben",
"Vault destruction requests" : "Aufträge zur Zerstörung des Tresors",
- "Check for new versions" : "Nach neuerer Version suchen",
+ "Check for new versions" : "Nach neuer Version suchen",
"Enable HTTPS check" : "HTTPS-Prüfung aktivieren",
"Disable context menu" : "Kontextmenü deaktivieren",
"Disable JavaScript debugger" : "JavaScript-Debugger deaktivieren",
- "Allow users on this server to share passwords with a link" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern via Link",
+ "Allow users on this server to share passwords with a link" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern über einen Link",
"Allow users on this server to share passwords with other users" : "Erlaube Benutzern dieses Servers das Teilen von Passwörtern mit anderen Benutzern",
"Move credentials from one account to another" : "Verschiebe Zugangsdaten von einem Konto zu einem anderen",
"Source account" : "Ursprungskonto",
diff --git a/l10n/eo.js b/l10n/eo.js
new file mode 100644
index 00000000..64b0c91e
--- /dev/null
+++ b/l10n/eo.js
@@ -0,0 +1,31 @@
+OC.L10N.register(
+ "passman",
+ {
+ "Passwords" : "Pasvortoj",
+ "Done" : "Farita",
+ "File read." : "Dosiero legita.",
+ "Adding {{credential}}" : "Aldonado {{credential}}",
+ "Added {{credential}}" : "Aldonita {{credential}}",
+ "Importing" : "Importado",
+ "Start import" : "Startigi importo",
+ "Select CSV file" : "Selektu CSV dosiero",
+ "Sharing" : "Kunhavigo",
+ "Poor" : "Malbona",
+ "Weak" : "Malforta",
+ "Good" : "Bona",
+ "Strong" : "Forta",
+ "Complete" : "Plenumita",
+ "Username" : "Uzantonomo",
+ "Repeat password" : "Ripetu la pasvorton",
+ "Text" : "Teksto",
+ "File" : "Dosiero",
+ "Add" : "Aldoni",
+ "Actions" : "Agoj",
+ "Size" : "Grando",
+ "Disabled" : "Malkapabligita",
+ "Day(s)" : "Tago(j)",
+ "Week(s)" : "Semajno(j)",
+ "Month(s)" : "Monato(j)",
+ "Year(s)" : "Jaro(j)"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/l10n/eo.json b/l10n/eo.json
new file mode 100644
index 00000000..35039f0d
--- /dev/null
+++ b/l10n/eo.json
@@ -0,0 +1,29 @@
+{ "translations": {
+ "Passwords" : "Pasvortoj",
+ "Done" : "Farita",
+ "File read." : "Dosiero legita.",
+ "Adding {{credential}}" : "Aldonado {{credential}}",
+ "Added {{credential}}" : "Aldonita {{credential}}",
+ "Importing" : "Importado",
+ "Start import" : "Startigi importo",
+ "Select CSV file" : "Selektu CSV dosiero",
+ "Sharing" : "Kunhavigo",
+ "Poor" : "Malbona",
+ "Weak" : "Malforta",
+ "Good" : "Bona",
+ "Strong" : "Forta",
+ "Complete" : "Plenumita",
+ "Username" : "Uzantonomo",
+ "Repeat password" : "Ripetu la pasvorton",
+ "Text" : "Teksto",
+ "File" : "Dosiero",
+ "Add" : "Aldoni",
+ "Actions" : "Agoj",
+ "Size" : "Grando",
+ "Disabled" : "Malkapabligita",
+ "Day(s)" : "Tago(j)",
+ "Week(s)" : "Semajno(j)",
+ "Month(s)" : "Monato(j)",
+ "Year(s)" : "Jaro(j)"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/l10n/es.js b/l10n/es.js
index 8c267216..0920b383 100644
--- a/l10n/es.js
+++ b/l10n/es.js
@@ -79,6 +79,7 @@ OC.L10N.register(
"Use this icon" : "Usar este icono",
"Delete current icon" : "Eliminar icono actual",
"Get icon from page" : "Conseguir icono de la web",
+ "This may take a few seconds…" : "Esto puede tardar unos segundos...",
"There was an error fetching the icon!" : "¡Ha habido un error al recuperar el icono!",
"Selected icon" : "Icono seleccionado",
"Field label" : "Llene etiqueta",
@@ -295,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Ooooh... No se ha encontrado la contraseña. Quizás haya expirado",
"Compromise!" : "¡Peligro!",
"Compromised!" : "¡Publicada!",
- "This password is compromised. You can only remove this warning with changing the password." : "Esta contraseña ha sido publicada. Solo puedes eliminar esta advertencia cambiando la contraseña.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Esta contraseña ha sido publicada. Solo puedes eliminar esta advertencia cambiando la contraseña actual.",
"email" : "correo",
"Description" : "Descripción",
"Url" : "URL",
diff --git a/l10n/es.json b/l10n/es.json
index 96726aa9..10e75c08 100644
--- a/l10n/es.json
+++ b/l10n/es.json
@@ -77,6 +77,7 @@
"Use this icon" : "Usar este icono",
"Delete current icon" : "Eliminar icono actual",
"Get icon from page" : "Conseguir icono de la web",
+ "This may take a few seconds…" : "Esto puede tardar unos segundos...",
"There was an error fetching the icon!" : "¡Ha habido un error al recuperar el icono!",
"Selected icon" : "Icono seleccionado",
"Field label" : "Llene etiqueta",
@@ -293,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Ooooh... No se ha encontrado la contraseña. Quizás haya expirado",
"Compromise!" : "¡Peligro!",
"Compromised!" : "¡Publicada!",
- "This password is compromised. You can only remove this warning with changing the password." : "Esta contraseña ha sido publicada. Solo puedes eliminar esta advertencia cambiando la contraseña.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Esta contraseña ha sido publicada. Solo puedes eliminar esta advertencia cambiando la contraseña actual.",
"email" : "correo",
"Description" : "Descripción",
"Url" : "URL",
diff --git a/l10n/eu.js b/l10n/eu.js
index 285ad31c..e0a94799 100644
--- a/l10n/eu.js
+++ b/l10n/eu.js
@@ -18,11 +18,14 @@ OC.L10N.register(
"Good" : "Ona",
"Strong" : "Sendoa",
"Copy to clipboard" : "Kopiatu arbelera",
+ "Copied to clipboard!" : "Arbelera kopiatua!",
"Generate password" : "Sortu pasahitza",
"Copy password to clipboard" : "Kopiatu pasahitza arbelera",
+ "Password copied to clipboard!" : "Pasahitza arbelera kopiatu da!",
"Username" : "Erabiltzaile-izena",
"Repeat password" : "Errepikatu pasahitza",
"Pick an icon" : "Hautatu ikono bat",
+ "Search icons" : "Bilatu ikonoak",
"Use this icon" : "Erabili ikono hau",
"Field label" : "Eremuaren etiketa",
"Field value" : "Eremuaren balioa",
@@ -37,7 +40,8 @@ OC.L10N.register(
"Filename" : "Fitxategiaren izena",
"Size" : "Tamaina",
"Secret" : "Sekretua",
- "No expiration date set" : "Ez da iraungitze datarik ezarri",
+ "Expiration date" : "Iraungitze-data",
+ "No expiration date set" : "Ez da iraungitze-datarik ezarri",
"Password generation settings" : "Pasahitz sorreraren ezarpenak",
"Password length" : "Pasahitzaren luzera",
"Use numbers" : "Erabili zenbakiak",
@@ -87,8 +91,20 @@ OC.L10N.register(
"Permissions" : "Baimenak",
"Date" : "Data",
"Accept" : "Onartu",
+ "Hello there!" : "Kaixo!",
"Never" : "Inoiz ez",
+ "Password strength must be at least: {{strength}}" : "Pasahitzaren gutxieneko sendotasuna: {{strength}}",
+ "Your sharing keys will have a strength of 1024 bit, which you can change in \\\"Settings\\\" later ." : "Zure partekatze gakoek 1024 bitetako sendotasuna izango dute, hau \\\"Ezarpenak\\\" atalean aldatu dezakezu gero ere.",
"Logout" : "Amaitu saioa",
+ "Show All" : "Erakutsi guztiak",
+ "Tags" : "Etiketak",
+ "Search Tags" : "Bilatu etiketak",
+ "Good Strength" : "Sendotasun ona",
+ "Medium Strength" : "Sendotasun ertaina",
+ "Bad Strength" : "Sendotasun ahula",
+ "Expired" : "Iraungita",
+ "Filter Tags" : "Iragazi etiketak",
+ "Simple Navigation" : "Nabigazio sinplea",
"You updated %1$s" : "%1$s eguneratu duzu",
"You permanently deleted %1$s" : "%1$s behin betiko ezabatu duzu",
"Remind me later" : "Gogoratu geroago",
diff --git a/l10n/eu.json b/l10n/eu.json
index 76f13181..e66d0977 100644
--- a/l10n/eu.json
+++ b/l10n/eu.json
@@ -16,11 +16,14 @@
"Good" : "Ona",
"Strong" : "Sendoa",
"Copy to clipboard" : "Kopiatu arbelera",
+ "Copied to clipboard!" : "Arbelera kopiatua!",
"Generate password" : "Sortu pasahitza",
"Copy password to clipboard" : "Kopiatu pasahitza arbelera",
+ "Password copied to clipboard!" : "Pasahitza arbelera kopiatu da!",
"Username" : "Erabiltzaile-izena",
"Repeat password" : "Errepikatu pasahitza",
"Pick an icon" : "Hautatu ikono bat",
+ "Search icons" : "Bilatu ikonoak",
"Use this icon" : "Erabili ikono hau",
"Field label" : "Eremuaren etiketa",
"Field value" : "Eremuaren balioa",
@@ -35,7 +38,8 @@
"Filename" : "Fitxategiaren izena",
"Size" : "Tamaina",
"Secret" : "Sekretua",
- "No expiration date set" : "Ez da iraungitze datarik ezarri",
+ "Expiration date" : "Iraungitze-data",
+ "No expiration date set" : "Ez da iraungitze-datarik ezarri",
"Password generation settings" : "Pasahitz sorreraren ezarpenak",
"Password length" : "Pasahitzaren luzera",
"Use numbers" : "Erabili zenbakiak",
@@ -85,8 +89,20 @@
"Permissions" : "Baimenak",
"Date" : "Data",
"Accept" : "Onartu",
+ "Hello there!" : "Kaixo!",
"Never" : "Inoiz ez",
+ "Password strength must be at least: {{strength}}" : "Pasahitzaren gutxieneko sendotasuna: {{strength}}",
+ "Your sharing keys will have a strength of 1024 bit, which you can change in \\\"Settings\\\" later ." : "Zure partekatze gakoek 1024 bitetako sendotasuna izango dute, hau \\\"Ezarpenak\\\" atalean aldatu dezakezu gero ere.",
"Logout" : "Amaitu saioa",
+ "Show All" : "Erakutsi guztiak",
+ "Tags" : "Etiketak",
+ "Search Tags" : "Bilatu etiketak",
+ "Good Strength" : "Sendotasun ona",
+ "Medium Strength" : "Sendotasun ertaina",
+ "Bad Strength" : "Sendotasun ahula",
+ "Expired" : "Iraungita",
+ "Filter Tags" : "Iragazi etiketak",
+ "Simple Navigation" : "Nabigazio sinplea",
"You updated %1$s" : "%1$s eguneratu duzu",
"You permanently deleted %1$s" : "%1$s behin betiko ezabatu duzu",
"Remind me later" : "Gogoratu geroago",
diff --git a/l10n/fr.js b/l10n/fr.js
index dd739fe6..92ee353c 100644
--- a/l10n/fr.js
+++ b/l10n/fr.js
@@ -58,7 +58,7 @@ OC.L10N.register(
"Are you sure you want to leave? This will corrupt this credential" : "Êtes-vous sûr de vouloir quitter ? Cela va corrompre cette information d'identification",
"Credential unshared" : "Arrêt du partage de l'information d'identification ",
"Credential shared" : "Information d'identification partagée",
- "Saved!" : "Sauvegardé !",
+ "Saved!" : "Enregistré !",
"Poor" : "Médiocre",
"Weak" : "Faible",
"Good" : "Bon",
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Awwhh.... information d'identification non trouvée. Il est peut être expiré",
"Compromise!" : "Compromis !",
"Compromised!" : "Compromis !",
- "This password is compromised. You can only remove this warning with changing the password." : "Ce mot de passe est compromis. Vous ne pouvez supprimer cet avertissement qu'en changeant le mot de passe.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Ce mot de passe est compromis. Vous ne pouvez supprimer cet avertissement qu'en modifiant votre mot de passe.",
"email" : "email",
"Description" : "Description",
"Url" : "URL",
diff --git a/l10n/fr.json b/l10n/fr.json
index 019d43c9..635b79a2 100644
--- a/l10n/fr.json
+++ b/l10n/fr.json
@@ -56,7 +56,7 @@
"Are you sure you want to leave? This will corrupt this credential" : "Êtes-vous sûr de vouloir quitter ? Cela va corrompre cette information d'identification",
"Credential unshared" : "Arrêt du partage de l'information d'identification ",
"Credential shared" : "Information d'identification partagée",
- "Saved!" : "Sauvegardé !",
+ "Saved!" : "Enregistré !",
"Poor" : "Médiocre",
"Weak" : "Faible",
"Good" : "Bon",
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Awwhh.... information d'identification non trouvée. Il est peut être expiré",
"Compromise!" : "Compromis !",
"Compromised!" : "Compromis !",
- "This password is compromised. You can only remove this warning with changing the password." : "Ce mot de passe est compromis. Vous ne pouvez supprimer cet avertissement qu'en changeant le mot de passe.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Ce mot de passe est compromis. Vous ne pouvez supprimer cet avertissement qu'en modifiant votre mot de passe.",
"email" : "email",
"Description" : "Description",
"Url" : "URL",
diff --git a/l10n/gl.js b/l10n/gl.js
index d9167530..0d1fbcac 100644
--- a/l10n/gl.js
+++ b/l10n/gl.js
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Amodo… non se atopou a credencial, seica caducou?",
"Compromise!" : "Compromiso!",
"Compromised!" : "Comprometido!",
- "This password is compromised. You can only remove this warning with changing the password." : "Este contrasinal está comprometido. Só pode eliminar este aviso cambiando o contrasinal.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Este contrasinal está comprometido. Só pode eliminar este aviso cambiando o contrasinal.",
"email" : "correo",
"Description" : "Descrición",
"Url" : "URL",
@@ -312,7 +312,7 @@ OC.L10N.register(
"%1$s has been updated by %2$s" : "%1$s foi actualizado por %2$s",
"You updated %1$s" : "Vostede actualizou %1$s",
"%2$s has revised %1$s to the revision of %3$s" : "%2$s revisou %1$s para a revisión de %3$s",
- "You reverted %1$s back to the revision of %3$s" : "Vostede reverteu %1$s cara unha revisión anterior de %3$s",
+ "You reverted %1$s back to the revision of %3$s" : "Vostede reverteu %1$s cara a unha revisión anterior de %3$s",
"%3$s has renamed %1$s to %2$s" : "%3$s renomeou %1$s a %2$s",
"You renamed %1$s to %2$s" : "Vostede renomeou %1$s a %2$s",
"%1$s has been deleted by %2$s" : "%1$s foi eliminado por %2$s",
@@ -333,7 +333,7 @@ OC.L10N.register(
"%s has accepted your share request for \"%s\"." : "%s aceptou a súa solicitude para compartir «%s».",
"Passman" : "Passman",
"Passman is a full featured password manager." : "Passman é un completo xestor de contrasinais. ",
- "Passman is a full featured password manager.\nFeatures:\n- Vaults\n- Vault key is never sent to the server\n- Browser extension for easy access to passwords\n- Android app for on the road access\n- Credentials are client side encrypted with 256bit AES\n- Credentials are server side encrypted with 256bit AES\n- Ability to add custom fields to credentials\n- Built-in OTP (One Time Password) generator\n- Password analyzer\n- Share passwords internally and via link in a secure manner.\n- Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is )\nFor an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)" : "Passman é un completo xestor de contrasinais.\nCaracterísticas:\n- Bóvedas\n- A chave da bóveda non se envía nunca ao servidor\n- Extensión do navegador para facilitar o acceso aos contrasinais\n- Apli de Android para acceder en mobilidade\n- As credenciais están en cifradas do lado do cliente con AES de 256 bits\n- As credenciais están cifradas no lado do servidor con AES de 256 bits\n- Posibilidade de engadir campos personalizados a credenciais\n- Xerador incorporado de OTP (One Time Password)\n- Analizador de contrasinais\n- Comparte contrasinais internamente e mediante a ligazón dun xeito seguro.\n- Importación dende varios xestores de contrasinais (KeePass, LastPass, DashLane, ZOHO, Clipperz.is)\nPara ver unha demostración deste aplicativo, visite [https://demo.passman.cc](https://demo.passman.cc)",
+ "Passman is a full featured password manager.\nFeatures:\n- Vaults\n- Vault key is never sent to the server\n- Browser extension for easy access to passwords\n- Android app for on the road access\n- Credentials are client side encrypted with 256bit AES\n- Credentials are server side encrypted with 256bit AES\n- Ability to add custom fields to credentials\n- Built-in OTP (One Time Password) generator\n- Password analyzer\n- Share passwords internally and via link in a secure manner.\n- Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is )\nFor an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)" : "Passman é un completo xestor de contrasinais.\nCaracterísticas:\n- Bóvedas\n- A chave da bóveda non se envía nunca ao servidor\n- Extensión do navegador para facilitar o acceso aos contrasinais\n- Apli de Android para acceder en mobilidade\n- As credenciais están en cifradas do lado do cliente con AES de 256 bits\n- As credenciais están cifradas no lado do servidor con AES de 256 bits\n- Posibilidade de engadir campos personalizados a credenciais\n- Xerador incorporado de OTP (One Time Password)\n- Analizador de contrasinais\n- Comparte contrasinais internamente e mediante a ligazón dun xeito seguro.\n- Importación dende varios xestores de contrasinais (KeePass, LastPass, DashLane, ZOHO, Clipperz.is)\nPara ver unha demostración desta aplicación, visite [https://demo.passman.cc](https://demo.passman.cc)",
"Unable to get version info" : "Non é posíbel obter información da versión",
"Passman Settings" : "Axustes de Passman",
"GitHub version:" : "Versión do GitHub:",
@@ -347,7 +347,7 @@ OC.L10N.register(
"Disable JavaScript debugger" : "Desactivar o depurador JavaScript",
"Allow users on this server to share passwords with a link" : "Permitirlle aos usuarios deste servidor compartir contrasinais cunha ligazón",
"Allow users on this server to share passwords with other users" : "Permitirlle aos usuarios deste servidor compartir contrasinais con outros usuarios",
- "Move credentials from one account to another" : "Trasladar credenciais dunha conta cara outra",
+ "Move credentials from one account to another" : "Trasladar credenciais dunha conta cara a outra",
"Source account" : "Conta orixe",
"Destination account" : "Conta destino",
"Credentials moved!" : "Credenciais trasladadas!",
diff --git a/l10n/gl.json b/l10n/gl.json
index eefcd26a..9790a2cf 100644
--- a/l10n/gl.json
+++ b/l10n/gl.json
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Amodo… non se atopou a credencial, seica caducou?",
"Compromise!" : "Compromiso!",
"Compromised!" : "Comprometido!",
- "This password is compromised. You can only remove this warning with changing the password." : "Este contrasinal está comprometido. Só pode eliminar este aviso cambiando o contrasinal.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Este contrasinal está comprometido. Só pode eliminar este aviso cambiando o contrasinal.",
"email" : "correo",
"Description" : "Descrición",
"Url" : "URL",
@@ -310,7 +310,7 @@
"%1$s has been updated by %2$s" : "%1$s foi actualizado por %2$s",
"You updated %1$s" : "Vostede actualizou %1$s",
"%2$s has revised %1$s to the revision of %3$s" : "%2$s revisou %1$s para a revisión de %3$s",
- "You reverted %1$s back to the revision of %3$s" : "Vostede reverteu %1$s cara unha revisión anterior de %3$s",
+ "You reverted %1$s back to the revision of %3$s" : "Vostede reverteu %1$s cara a unha revisión anterior de %3$s",
"%3$s has renamed %1$s to %2$s" : "%3$s renomeou %1$s a %2$s",
"You renamed %1$s to %2$s" : "Vostede renomeou %1$s a %2$s",
"%1$s has been deleted by %2$s" : "%1$s foi eliminado por %2$s",
@@ -331,7 +331,7 @@
"%s has accepted your share request for \"%s\"." : "%s aceptou a súa solicitude para compartir «%s».",
"Passman" : "Passman",
"Passman is a full featured password manager." : "Passman é un completo xestor de contrasinais. ",
- "Passman is a full featured password manager.\nFeatures:\n- Vaults\n- Vault key is never sent to the server\n- Browser extension for easy access to passwords\n- Android app for on the road access\n- Credentials are client side encrypted with 256bit AES\n- Credentials are server side encrypted with 256bit AES\n- Ability to add custom fields to credentials\n- Built-in OTP (One Time Password) generator\n- Password analyzer\n- Share passwords internally and via link in a secure manner.\n- Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is )\nFor an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)" : "Passman é un completo xestor de contrasinais.\nCaracterísticas:\n- Bóvedas\n- A chave da bóveda non se envía nunca ao servidor\n- Extensión do navegador para facilitar o acceso aos contrasinais\n- Apli de Android para acceder en mobilidade\n- As credenciais están en cifradas do lado do cliente con AES de 256 bits\n- As credenciais están cifradas no lado do servidor con AES de 256 bits\n- Posibilidade de engadir campos personalizados a credenciais\n- Xerador incorporado de OTP (One Time Password)\n- Analizador de contrasinais\n- Comparte contrasinais internamente e mediante a ligazón dun xeito seguro.\n- Importación dende varios xestores de contrasinais (KeePass, LastPass, DashLane, ZOHO, Clipperz.is)\nPara ver unha demostración deste aplicativo, visite [https://demo.passman.cc](https://demo.passman.cc)",
+ "Passman is a full featured password manager.\nFeatures:\n- Vaults\n- Vault key is never sent to the server\n- Browser extension for easy access to passwords\n- Android app for on the road access\n- Credentials are client side encrypted with 256bit AES\n- Credentials are server side encrypted with 256bit AES\n- Ability to add custom fields to credentials\n- Built-in OTP (One Time Password) generator\n- Password analyzer\n- Share passwords internally and via link in a secure manner.\n- Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is )\nFor an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)" : "Passman é un completo xestor de contrasinais.\nCaracterísticas:\n- Bóvedas\n- A chave da bóveda non se envía nunca ao servidor\n- Extensión do navegador para facilitar o acceso aos contrasinais\n- Apli de Android para acceder en mobilidade\n- As credenciais están en cifradas do lado do cliente con AES de 256 bits\n- As credenciais están cifradas no lado do servidor con AES de 256 bits\n- Posibilidade de engadir campos personalizados a credenciais\n- Xerador incorporado de OTP (One Time Password)\n- Analizador de contrasinais\n- Comparte contrasinais internamente e mediante a ligazón dun xeito seguro.\n- Importación dende varios xestores de contrasinais (KeePass, LastPass, DashLane, ZOHO, Clipperz.is)\nPara ver unha demostración desta aplicación, visite [https://demo.passman.cc](https://demo.passman.cc)",
"Unable to get version info" : "Non é posíbel obter información da versión",
"Passman Settings" : "Axustes de Passman",
"GitHub version:" : "Versión do GitHub:",
@@ -345,7 +345,7 @@
"Disable JavaScript debugger" : "Desactivar o depurador JavaScript",
"Allow users on this server to share passwords with a link" : "Permitirlle aos usuarios deste servidor compartir contrasinais cunha ligazón",
"Allow users on this server to share passwords with other users" : "Permitirlle aos usuarios deste servidor compartir contrasinais con outros usuarios",
- "Move credentials from one account to another" : "Trasladar credenciais dunha conta cara outra",
+ "Move credentials from one account to another" : "Trasladar credenciais dunha conta cara a outra",
"Source account" : "Conta orixe",
"Destination account" : "Conta destino",
"Credentials moved!" : "Credenciais trasladadas!",
diff --git a/l10n/hr.js b/l10n/hr.js
new file mode 100644
index 00000000..276aa3c6
--- /dev/null
+++ b/l10n/hr.js
@@ -0,0 +1,368 @@
+OC.L10N.register(
+ "passman",
+ {
+ "Passwords" : "Zaporke",
+ "Generating sharing keys ( %s / 2)" : "Generiranje ključeva za dijeljenje (%s / 2)",
+ "Incorrect vault password!" : "Netočna zaporka trezora!",
+ "Passwords do not match" : "Zaporke se ne podudaraju",
+ "General" : "Općenito",
+ "Custom Fields" : "Prilagodljiva polja",
+ "Please fill in a label." : "Ispunite oznaku.",
+ "Please fill in a value." : "Unesite vrijednost.",
+ "Error loading file" : "Pogreška pri učitavanju datoteke",
+ "An error occurred during decryption" : "Došlo je do pogreške tijekom dešifriranja",
+ "Credential created!" : "Vjerodajnica je stvorena!",
+ "Credential deleted" : "Vjerodajnica izbrisana",
+ "Credential updated" : "Vjerodajnica ažurirana",
+ "Credential recovered" : "Vjerodajnica vraćena",
+ "Credential destroyed" : "Vjerodajnica uništena",
+ "Error downloading file, you probably have insufficient permissions" : "Pogreška pri preuzimanju datoteke, vjerojatno nemate dovoljna dopuštenja",
+ "Invalid QR code" : "Nevažeći QR kôd",
+ "Starting export" : "Pokretanje izvoza",
+ "Decrypting credentials" : "Dešifriranje vjerodajnica",
+ "Done" : "Gotovo",
+ "File read." : "Datoteka je pročitana.",
+ "Proceed with the following steps to import your file" : "Slijedite naredne korake za uvoz datoteke",
+ "Skipping unlabeled credential" : "Preskakanje neoznačenih vjerodajnica",
+ "Adding {{credential}}" : "Dodavanje {{credential}}",
+ "Added {{credential}}" : "Dodana {{credential}}",
+ "Skipping credential, missing label on line {{line}}" : "Preskakanje vjerodajnice, nedostaje oznaka na liniji {{line}}",
+ "Parsed {{num}} credentials, starting to import" : "Parsirano {{num}} vjerodajnica, počinje uvoz",
+ "Importing" : "Uvoz",
+ "Start import" : "Započni uvoz",
+ "Select CSV file" : "Odaberi CSV datoteku",
+ "Parsed {{rows}} lines from CSV file" : "Parsirano {{rows}} linija iz CSV datoteke",
+ "Skip first row" : "Preskoči prvi red",
+ "You need to assign the label field before you can start the import." : "Prije početka uvoza morate dodijeliti polje oznakom.",
+ "The first 5 lines of the CSV are shown." : "Prikazano je prvih 5 redaka CSV-a.",
+ "Assign the proper fields to each column." : "Dodijelite odgovarajuća polja svakom stupcu.",
+ "Example of imported credential" : "Primjer uvezenih vjerodajnica",
+ "Missing an importer? Try it with the generic CSV importer." : "Nedostaje uvoznik? Pokušajte s generičkim uvoznikom CSV-a.",
+ "Go back to importers." : "Vrati se uvoznicima.",
+ "Revision deleted" : "Revizija je izbrisana",
+ "Revision restored" : "Revizija je vraćena",
+ "Save in Passman" : "Spremi u Passman",
+ "Settings saved" : "Postavke spremljene",
+ "General settings" : "Opće postavke",
+ "Password audit" : "Revizija zaporke",
+ "Password settings" : "Postavke zaporke",
+ "Import credentials" : "Uvezi vjerodajnice",
+ "Export credentials" : "Izvezi vjerodajnice",
+ "Sharing" : "Dijeljenje",
+ "Are you sure you want to leave? This will destroy all your credentials" : "Jeste li sigurni da želite izaći? Time ćete uništiti sve vjerodajnice",
+ "Old password field incorrect!" : "Pogrešno polje stare zaporke!",
+ "New password does not match!" : "Nova zaporka nije podudarna!",
+ "Please log in with your new vault password" : "Prijavite se svojom novom zaporkom trezora",
+ "Share with users and groups" : "Dijelite s korisnicima i grupama",
+ "Share link" : "Dijeli poveznicu",
+ "Are you sure you want to leave? This will corrupt this credential" : "Jeste li sigurni da izaći? Time ćete učiniti ovu vjerodajnicu neispravnom",
+ "Credential unshared" : "Vjerodajnica se ne dijeli",
+ "Credential shared" : "Vjerodajnica se dijeli",
+ "Saved!" : "Spremljeno!",
+ "Poor" : "Jako slaba",
+ "Weak" : "Slaba",
+ "Good" : "Dobra",
+ "Strong" : "Jaka",
+ "Toggle visibility" : "Uključi/isključi vidljivost",
+ "Copy to clipboard" : "Kopiraj u međuspremnik",
+ "Copied to clipboard!" : "Kopirano u međuspremnik!",
+ "Generate password" : "Generiraj zaporku",
+ "Copy password to clipboard" : "Kopiraj zaporku u međuspremnik",
+ "Password copied to clipboard!" : "Zaporka je kopirana u međuspremnik!",
+ "Complete" : "Završi",
+ "Username" : "Korisničko ime",
+ "Repeat password" : "Ponovi zaporku",
+ "Add tag" : "Dodaj oznaku",
+ "Pick an icon" : "Odaberi ikonu",
+ "Search icons" : "Pretraži ikone",
+ "Upload a custom icon:" : "Otpremi prilagođenu ikonu:",
+ "Use this icon" : "Koristi ovu ikonu",
+ "Delete current icon" : "Izbriši trenutnu ikonu",
+ "Get icon from page" : "Dohvati ikonu sa stranice",
+ "This may take a few seconds…" : "To može potrajati nekoliko sekundi...",
+ "There was an error fetching the icon!" : "Došlo je do pogreške prilikom dohvaćanja ikone!",
+ "Selected icon" : "Odabrana ikona",
+ "Field label" : "Oznaka polja",
+ "Field value" : "Vrijednost polja",
+ "Choose a file" : "Odaberi datoteku",
+ "Text" : "Tekst",
+ "File" : "Datoteka",
+ "Add" : "Dodaj",
+ "Value" : "Vrijednost",
+ "Type" : "Vrsta",
+ "Actions" : "Radnje",
+ "Empty" : "Prazno",
+ "Filename" : "Naziv datoteke",
+ "Upload date" : "Datum otpremanja",
+ "Size" : "Veličina",
+ "Upload or enter your OTP secret" : "Otpremi ili unesi svoj tajni ključ OTP-a",
+ "Current OTP settings" : "Trenutne postavke OTP-a",
+ "Issuer" : "Izdavatelj",
+ "Secret" : "Tajno",
+ "Expiration date" : "Datum isteka",
+ "No expiration date set" : "Nije postavljen datum isteka",
+ "Renew interval" : "Interval obnavljanja",
+ "Disabled" : "Onemogućeno",
+ "Day(s)" : "Dan/dana",
+ "Week(s)" : "Tjedan/tjedna/tjedana",
+ "Month(s)" : "Mjesec/mjeseca/mjeseci",
+ "Year(s)" : "Godina/godine",
+ "Password generation settings" : "Postavke generiranja zaporke",
+ "Password length" : "Dužina zaporke",
+ "Minimum amount of digits" : "Minimalna količina znamenki",
+ "Use uppercase letters" : "Koristi velika slova",
+ "Use lowercase letters" : "Koristi mala slova",
+ "Use numbers" : "Koristi brojeve",
+ "Use special characters" : "Koristi posebne znakove",
+ "Avoid ambiguous characters" : "Izbjegavaj dvosmislene znakove",
+ "Require every character type" : "Koristiti svaku vrstu znakova",
+ "Export type" : "Vrsta izvoza",
+ "Export" : "Izvoz",
+ "Enter vault password to confirm export." : "Unesite zaporku trezora za potvrdu izvoza.",
+ "Rename vault" : "Preimenuj trezor",
+ "New vault name" : "Novi naziv trezora",
+ "Change" : "Promijeni",
+ "Change vault key" : "Promijeni ključ trezora",
+ "Old vault password" : "Stara zaporka trezora",
+ "New vault password" : "Nova zaporka trezora",
+ "Repeat new vault password" : "Ponovite novu zaporku trezora",
+ "Please wait your vault is being updated, do not leave this page." : "Pričekajte da se trezor ažurira, ne napuštajte ovu stranicu.",
+ "Processing" : "Obrada",
+ "Total progress" : "Totalni napredak",
+ "About Passman" : "O Passmanu",
+ "Version" : "Inačica",
+ "Donate to support development" : "Donirajte kako biste podržali razvoj",
+ "Bookmarklet" : "Bookmarklet",
+ "Save your passwords with one click." : "Spremite zaporke jednim klikom.",
+ "Drag below button to your bookmark toolbar." : "Povucite gumb u nastavku na traku knjižnih oznaka.",
+ "Delete vault" : "Izbriši trezor",
+ "Vault password" : "Zaporka trezora",
+ "This process is irreversible" : "Ovaj je postupak nepovratan",
+ "Delete my precious passwords" : "Izbriši moje zaporke",
+ "Deleting {{password}}…" : "Brisanje {{password}}…",
+ "Yes, delete my precious passwords" : "Da, izbriši moje zaporke",
+ "Import type" : "Vrsta uvoza",
+ "Import" : "Uvezi",
+ "Read progress" : "Napredak čitanja",
+ "Upload progress" : "Napredak otpremanja",
+ "Private Key" : "Privatni ključ",
+ "Public key" : "Javni ključ",
+ "Key size" : "Veličina ključa",
+ "Save keys" : "Spremi ključeve",
+ "Generate sharing keys" : "Generiraj ključeve za dijeljenje",
+ "Generating sharing keys" : "Generiranje ključeva za dijeljenje",
+ "The password tool scans your password, calculates average cracking time, listing those below the threshold" : "Alat za provjeru zaporke pregledava vašu zaporku, računa prosječno vrijeme otkrivanja zaporke i navodi zaporke koje su ispod praga",
+ "Minimum password stength" : "Minimalna snaga zaporke",
+ "Start scan" : "Započni skeniranje",
+ "Result" : "Rezultat",
+ "A total of {{scan_result}} weak credentials were found." : "Pronađeno je ukupno {{scan_result}} slabih vjerodajnica.",
+ "Score" : "Ocjena",
+ "Action" : "Radnja",
+ "Search users…" : "Pretraži korisnike…",
+ "Missing users? Only users that have vaults are shown." : "Nedostaju korisnici? Prikazani su samo korisnici koji imaju trezore.",
+ "Cyphering" : "Šifriranje",
+ "Uploading" : "Otpremanje",
+ "User" : "Korisnik",
+ "Crypto time" : "Kripto vrijeme",
+ "Total time spent encrypting" : "Ukupno vrijeme šifriranja",
+ "Read" : "Čitaj",
+ "Write" : "Piši",
+ "Files" : "Datoteke",
+ "Revisions" : "Revizije",
+ "Pending" : "Na čekanju",
+ "Enable link sharing" : "Omogući dijeljenje poveznica",
+ "Share until date" : "Dijeli do datuma",
+ "Expire after views" : "Istječe nakon pregleda",
+ "Click \\\"Share\\\" first" : "Prvo kliknite „Dijeli”",
+ "Show files" : "Prikaži datoteke",
+ "Details" : "Pojedinosti",
+ "Hide details" : "Sakrij pojedinosti",
+ "Password score" : "Ocjena zaporke",
+ "Cracking times" : "Vrijeme otkrivanja zaporke",
+ "100 / hour" : "100 / sat",
+ "Throttled online attack" : "Ublaženi napad putem mreže",
+ "10 / second" : "10 / sekundi",
+ "Unthrottled online attack" : "Neublaženi napad putem mreže",
+ "10k / second" : "10k / sekundi",
+ "Offline attack, slow hash, many cores" : "Izvanmrežni napad, spor hash, mnogo jezgara",
+ "10B / second" : "10B / sekundi",
+ "Offline attack, fast hash, many cores" : "Izvanmrežni napad, brzi hash, mnogo jezgara",
+ "Match sequence" : "Redoslijed podudaranja",
+ "See match sequence" : "Pogledaj redoslijed podudaranja",
+ "Pattern" : "Obrazac",
+ "Matched word" : "Podudarna riječ",
+ "Dictionary name" : "Naziv rječnika",
+ "Rank" : "Rang",
+ "Reversed" : "Obrnuto",
+ "Guesses" : "Pogađanja",
+ "Base guesses" : "Baza pogađanja",
+ "Uppercase variations" : "Varijacije velikih slova",
+ "l33t-variations" : "l33t-varijacije",
+ "Showing revisions of" : "Prikazuju se revizije za",
+ "Revision of" : "Revizija",
+ "by" : "od",
+ "No revisions found." : "Nije pronađena revizija.",
+ "Label" : "Oznaka",
+ "Restore revision" : "Vrati reviziju",
+ "Delete revision" : "Izbriši verziju",
+ "Edit credential" : "Uredi vjerodajnicu",
+ "Create new credential" : "Stvori novu vjerodajnicu",
+ "Save" : "Spremi",
+ "Cancel" : "Odustani",
+ "Settings" : "Postavke",
+ "Share credential {{credential}}" : "Dijeli vjerodajnicu {{credential}}",
+ "Unshare" : "Prestani dijeliti",
+ "Showing deleted since" : "Prikazuju se brisanja od",
+ "Beginning" : "Početak",
+ "Showing {{number_filtered}} of {{credential_number}} credentials" : "Prikazano je {{number_filtered}} od {{credential_number}} vjerodajnica",
+ "Search for credential…" : "Traženje vjerodajnice...",
+ "Account" : "Račun",
+ "Password" : "Zaporka",
+ "OTP" : "OTP",
+ "E-mail" : "E-pošta",
+ "URL" : "URL",
+ "Notes" : "Bilješke",
+ "Expiry time" : "Vrijeme isteka",
+ "Changed" : "Promijenjeno",
+ "Created" : "Stvoreno",
+ "Edit" : "Uredi",
+ "Delete" : "Izbriši",
+ "Share" : "Dijeli",
+ "Recover" : "Vrati",
+ "Destroy" : "Uništi",
+ "Use regex" : "Koristi regex",
+ "You have incoming share requests." : "Imate dolazne zahtjeve za dijeljenje.",
+ "If you want to put the credential in another vault," : "Ako želite staviti vjerodajnicu u drugi trezor,",
+ "log out of this vault and log into the vault you want the shared credential in." : "odjavite se iz ovog trezora i prijavite se u trezor u kojem želite koristiti dijeljenu vjerodajnicu.",
+ "Permissions" : "Dopuštenja",
+ "Received from" : "Primljeno od",
+ "Date" : "Datum",
+ "Accept" : "Prihvati",
+ "Decline" : "Odbij",
+ "You have {{session_time}} left before logout." : "Preostalo je {{session_time}} prije odjave.",
+ "Your vault has been locked for {{time}} because of {{tries}} failed attempts!" : "Vaš trezor je zaključan {{time}} zbog {{tries}} neuspjelih pokušaja!",
+ "Hello there!" : "Pozdrav!",
+ "It does not seem that you have any passwords. Do you want to add one?" : "Čini se da nemate nijednu zaporku. Želite li je dodati?",
+ "You don't have good credentials" : "Nemate dobre vjerodajnice",
+ "You don't have medium credentials" : "Nemate srednje vjerodajnice",
+ "You don't have bad credentials" : "Nemate loše vjerodajnice",
+ "You don't have expired credentials" : "Nemate istekle vjerodajnice",
+ "You don't have deleted credentials" : "Nemate izbrisane vjerodajnice",
+ "There are no credentials with your selected tags" : "Ne postoje vjerodajnice za vaše odabrane oznake",
+ "There are no credentials matching" : "Ne postoje podudarne vjerodajnice",
+ "Last accessed" : "Posljednji pristup",
+ "Never" : "Nikad",
+ "No vaults found, why not create one?" : "Nije pronađen nijedan trezor, zašto ga ne biste stvorili?",
+ "Password strength must be at least: {{strength}}" : "Snaga zaporke mora biti najmanje: {{strength}}",
+ "Please give your new vault a name." : "Odaberite naziv novog trezora.",
+ "Repeat vault password" : "Ponovite zaporku trezora",
+ "Your sharing keys will have a strength of 1024 bit, which you can change in \\\"Settings\\\" later ." : "Vaši će ključevi za dijeljenje imati 1024-bitnu snagu koju kasnije možete promijeniti u \\„Postavkama\\”.",
+ "Create vault" : "Stvori trezor",
+ "Go back to vaults" : "Vratite se u trezore",
+ "Please input the password for" : "Unesite zaporku za",
+ "Set this vault as the default." : "Postavi ovaj trezor kao zadani.",
+ "Log into this vault automatically." : "Automatski se prijavite u ovaj trezor.",
+ "Log out of this vault automatically after: " : "Automatski se odjavite iz ovog trezora nakon: ",
+ "Decrypt vault" : "Dešifriraj trezor",
+ "Seems you lost the vault password and you're unable to log in." : "Čini se da ste izgubili zaporku za trezor i ne možete se prijaviti.",
+ "If you want this vault to be removed you can request that here." : "Ako želite da se trezor ukloni, možete to zatražiti ovdje.",
+ "An admin then accepts or declines the request" : "Administrator prihvaća ili odbija taj zahtjev",
+ "After an admin destroys this vault, all credentials in it will be lost" : "Nakon što administrator uništi trezor, sve vjerodajnice u njemu bit će izgubljene",
+ "Reason for requesting deletion (optional):" : "Razlog brisanja (neobvezno):",
+ "Request vault destruction" : "Zatraži uništenje trezora",
+ "Yes, request an admin to destroy this vault" : "Da, zatraži od administratora da uništi ovaj trezor",
+ "Cancel destruction request" : "Otkaži zahtjev za uništavanjem",
+ "Vault destruction requested" : "Zatraženo je uništavanje trezora",
+ "Request removed" : "Zahtjev je uklonjen",
+ "Destruction request pending" : "Zahtjev za uništavanjem je na čekanju",
+ "Warning! Adding credentials over HTTP is insecure!" : "Upozorenje! Dodavanje vjerodajnica putem HTTP-a nije sigurno!",
+ "Logged into {{vault_name}}" : "Prijavljeni ste u {{vault_name}}",
+ "Change vault" : "Promijeni trezor",
+ "Deleted credentials" : "Izbrisane vjerodajnice",
+ "Logout" : "Odjava",
+ "Donate" : "Doniraj",
+ "Show All" : "Prikaži sve",
+ "Tags" : "Oznake",
+ "Search Tags" : "Oznake pretraživanja",
+ "Good Strength" : "Dobra snaga",
+ "Medium Strength" : "Srednja snaga",
+ "Bad Strength" : "Loša snaga",
+ "Expired" : "Istekao",
+ "Filter Tags" : "Filtriraj oznake",
+ "Simple Navigation" : "Jednostavna navigacija",
+ "Someone has shared a credential with you." : "Netko je s vama podijelio vjerodajnicu.",
+ "Click here to request it" : "Kliknite ovdje kako biste je zatražili",
+ "Loading…" : "Učitavanje…",
+ "Awwhh… credential not found. Maybe it expired" : "Ah… vjerodajnica nije pronađena. Možda je istekla",
+ "Compromise!" : "Kompromis!",
+ "Compromised!" : "Ugrožena!",
+ "This password is compromised. You can only remove this warning by changing the password." : "Vaša lozinka je ugrožena. Ovo upozorenje možete ukloniti samo promjenom zaporke.",
+ "email" : "e-pošta",
+ "Description" : "Opis",
+ "Url" : "Url",
+ "Custom Search:" : "Prilagođeno pretraživanje:",
+ "Revert to defaults" : "Vrati se na zadane vrijednosti",
+ "Error while saving field" : "Pogreška prilikom spremanja polja",
+ "A Passman item has been created, modified or deleted" : "Stvorena, promijenjena ili izbrisana stavka Passmana",
+ "A Passman item has expired" : "Istekla je stavka Passmana",
+ "A Passman item has been shared" : "Podijeljena je stavka Passmana",
+ "A Passman item has been renamed" : "Preimenovana je stavka Passmana",
+ "%1$s has been created by %2$s" : "%1$s stvorio je %2$s",
+ "You created %1$s" : "Stvorili ste %1$s",
+ "%1$s has been updated by %2$s" : "%1$s je ažurirao %2$s",
+ "You updated %1$s" : "Ažurirali ste %1$s",
+ "%2$s has revised %1$s to the revision of %3$s" : "%2$s je izmijenio %1$s na reviziju %3$s",
+ "You reverted %1$s back to the revision of %3$s" : "Vratili ste %1$s na reviziju %3$s",
+ "%3$s has renamed %1$s to %2$s" : "%3$s je preimenovao %1$s u %2$s",
+ "You renamed %1$s to %2$s" : "Preimenovali ste %1$s u %2$s",
+ "%1$s has been deleted by %2$s" : "%1$s je izbrisao %2$s",
+ "You deleted %1$s" : "Izbrisali ste %1$s",
+ "%1$s has been recovered by %2$s" : "%1$s je oporavio %2$s",
+ "You recovered %1$s" : "Oporavili ste %1$s",
+ "%1$s has been permanently deleted by %2$s" : "%1$s trajno je izbrisao %2$s",
+ "You permanently deleted %1$s" : "Trajno ste izbrisali %1$s",
+ "The password of %1$s has expired, renew it now." : "Zaporka %1$s je istekla, sada je obnovite.",
+ "%1$s has been shared with %2$s" : "%1$s je podijeljeno s %2$s",
+ "You received a share request for %1$s from %2$s" : "Primili ste zahtjev za dijeljenje za %1$s od %2$s",
+ "%s has been shared with a link" : "%s je podijeljeno putem poveznice",
+ "Your credential \"%s\" expired, click here to update the credential." : "Vaša je vjerodajnica „%s” istekla, kliknite ovdje kako biste ažurirali vjerodajnicu.",
+ "Remind me later" : "Podsjeti me kasnije",
+ "Ignore" : "Zanemari",
+ "%s shared \"%s\" with you. Click here to accept" : "%s je podijelio „%s” s vama. Kliknite ovdje kako biste prihvatili",
+ "%s has declined your share request for \"%s\"." : "%s je odbio vaš zahtjev za dijeljenjem „%s”.",
+ "%s has accepted your share request for \"%s\"." : "%s je prihvatio vaš zahtjev za dijeljenjem „%s”.",
+ "Passman" : "Passman",
+ "Passman is a full featured password manager." : "Passman je moćan i potpuno opremljeni upravitelj zaporkama.",
+ "Passman is a full featured password manager.\nFeatures:\n- Vaults\n- Vault key is never sent to the server\n- Browser extension for easy access to passwords\n- Android app for on the road access\n- Credentials are client side encrypted with 256bit AES\n- Credentials are server side encrypted with 256bit AES\n- Ability to add custom fields to credentials\n- Built-in OTP (One Time Password) generator\n- Password analyzer\n- Share passwords internally and via link in a secure manner.\n- Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is )\nFor an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)" : "Passman je moćan i potpuno opremljeni upravitelj zaporkama.\nZnačajke:\n- Trezori\n- ključ trezora nikada se ne šalje poslužitelju\n- proširenje preglednika za lak pristup zaporkama\n- aplikacija za Android omogućuje pristupanje s bilo koje lokacije\n- vjerodajnice su šifrirane na klijentu 256-bitnim AES-om\n- vjerodajnice su šifrirane na poslužitelju 256-bitnim AES-om\n- mogućnost dodavanja prilagođenih polja vjerodajnicama\n- ugrađeni generator OTP-a (jednokratne zaporke)\n- analizator zaporki\n- dijelite zaporke interno i putem poveznice na siguran način.\n- uvoz iz raznih upravitelja zaporkama (KeePass, LastPass, DashLane, ZOHO, Clipperz.is)\nZa demonstraciju ove aplikacije posjetite [https://demo.passman.cc](https: //demo.passman.cc)",
+ "Unable to get version info" : "Nije moguće dohvatiti informacije o inačici",
+ "Passman Settings" : "Postavke za Passman",
+ "GitHub version:" : "Inačica GitHuba:",
+ "A newer version of Passman is available" : "Dostupna je novija inačica Passmana",
+ "Password sharing" : "Dijeljenje zaporke",
+ "Credential mover" : "Pokretač vjerodajnica",
+ "Vault destruction requests" : "Zahtjevi za uništavanje trezora",
+ "Check for new versions" : "Provjeri za nove inačice",
+ "Enable HTTPS check" : "Omogući provjeru HTTPS-a",
+ "Disable context menu" : "Onemogući kontekstni izbornik",
+ "Disable JavaScript debugger" : "Onemogući alat za otklanjanje pogrešaka u JavaScriptu",
+ "Allow users on this server to share passwords with a link" : "Dopustite korisnicima na ovom poslužitelju da dijele zaporke putem poveznice",
+ "Allow users on this server to share passwords with other users" : "Dopustite korisnicima na ovom poslužitelju da dijele zaporke s drugim korisnicima",
+ "Move credentials from one account to another" : "Premjestite vjerodajnice s jednog računa na drugi",
+ "Source account" : "Izvorni račun",
+ "Destination account" : "Odredišni račun",
+ "Credentials moved!" : "Vjerodajnica je premještena!",
+ "Requests to destroy vault" : "Zahtjevi za uništavanjem trezora",
+ "Request ID" : "ID zahtjeva",
+ "Requested by" : "Zatražio",
+ "Reason" : "Razlog",
+ "Click here to request\n\t\t\t\t\tit" : "Kliknite ovdje kako biste je\n\t\t\t\t\tzatražili",
+ "Loading&hellip;" : "Učitavanje i pomoć;",
+ "Awwhh… could not find the credential. Maybe it expired?" : "Ah… vjerodajnica nije pronađena. Možda je istekla?",
+ "Expires:" : "Istječe:",
+ "Connection to server lost" : "Izgubljena veza s poslužiteljem",
+ "Problem loading page, reloading in 5 seconds" : "Problem s učitavanjem stranice, ponovno učitavanje za 5 sekundi",
+ "Saving..." : "Spremanje...",
+ "Dismiss" : "Zanemari",
+ "seconds ago" : "prije nekoliko sekundi"
+},
+"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/l10n/hr.json b/l10n/hr.json
new file mode 100644
index 00000000..47e94f9c
--- /dev/null
+++ b/l10n/hr.json
@@ -0,0 +1,366 @@
+{ "translations": {
+ "Passwords" : "Zaporke",
+ "Generating sharing keys ( %s / 2)" : "Generiranje ključeva za dijeljenje (%s / 2)",
+ "Incorrect vault password!" : "Netočna zaporka trezora!",
+ "Passwords do not match" : "Zaporke se ne podudaraju",
+ "General" : "Općenito",
+ "Custom Fields" : "Prilagodljiva polja",
+ "Please fill in a label." : "Ispunite oznaku.",
+ "Please fill in a value." : "Unesite vrijednost.",
+ "Error loading file" : "Pogreška pri učitavanju datoteke",
+ "An error occurred during decryption" : "Došlo je do pogreške tijekom dešifriranja",
+ "Credential created!" : "Vjerodajnica je stvorena!",
+ "Credential deleted" : "Vjerodajnica izbrisana",
+ "Credential updated" : "Vjerodajnica ažurirana",
+ "Credential recovered" : "Vjerodajnica vraćena",
+ "Credential destroyed" : "Vjerodajnica uništena",
+ "Error downloading file, you probably have insufficient permissions" : "Pogreška pri preuzimanju datoteke, vjerojatno nemate dovoljna dopuštenja",
+ "Invalid QR code" : "Nevažeći QR kôd",
+ "Starting export" : "Pokretanje izvoza",
+ "Decrypting credentials" : "Dešifriranje vjerodajnica",
+ "Done" : "Gotovo",
+ "File read." : "Datoteka je pročitana.",
+ "Proceed with the following steps to import your file" : "Slijedite naredne korake za uvoz datoteke",
+ "Skipping unlabeled credential" : "Preskakanje neoznačenih vjerodajnica",
+ "Adding {{credential}}" : "Dodavanje {{credential}}",
+ "Added {{credential}}" : "Dodana {{credential}}",
+ "Skipping credential, missing label on line {{line}}" : "Preskakanje vjerodajnice, nedostaje oznaka na liniji {{line}}",
+ "Parsed {{num}} credentials, starting to import" : "Parsirano {{num}} vjerodajnica, počinje uvoz",
+ "Importing" : "Uvoz",
+ "Start import" : "Započni uvoz",
+ "Select CSV file" : "Odaberi CSV datoteku",
+ "Parsed {{rows}} lines from CSV file" : "Parsirano {{rows}} linija iz CSV datoteke",
+ "Skip first row" : "Preskoči prvi red",
+ "You need to assign the label field before you can start the import." : "Prije početka uvoza morate dodijeliti polje oznakom.",
+ "The first 5 lines of the CSV are shown." : "Prikazano je prvih 5 redaka CSV-a.",
+ "Assign the proper fields to each column." : "Dodijelite odgovarajuća polja svakom stupcu.",
+ "Example of imported credential" : "Primjer uvezenih vjerodajnica",
+ "Missing an importer? Try it with the generic CSV importer." : "Nedostaje uvoznik? Pokušajte s generičkim uvoznikom CSV-a.",
+ "Go back to importers." : "Vrati se uvoznicima.",
+ "Revision deleted" : "Revizija je izbrisana",
+ "Revision restored" : "Revizija je vraćena",
+ "Save in Passman" : "Spremi u Passman",
+ "Settings saved" : "Postavke spremljene",
+ "General settings" : "Opće postavke",
+ "Password audit" : "Revizija zaporke",
+ "Password settings" : "Postavke zaporke",
+ "Import credentials" : "Uvezi vjerodajnice",
+ "Export credentials" : "Izvezi vjerodajnice",
+ "Sharing" : "Dijeljenje",
+ "Are you sure you want to leave? This will destroy all your credentials" : "Jeste li sigurni da želite izaći? Time ćete uništiti sve vjerodajnice",
+ "Old password field incorrect!" : "Pogrešno polje stare zaporke!",
+ "New password does not match!" : "Nova zaporka nije podudarna!",
+ "Please log in with your new vault password" : "Prijavite se svojom novom zaporkom trezora",
+ "Share with users and groups" : "Dijelite s korisnicima i grupama",
+ "Share link" : "Dijeli poveznicu",
+ "Are you sure you want to leave? This will corrupt this credential" : "Jeste li sigurni da izaći? Time ćete učiniti ovu vjerodajnicu neispravnom",
+ "Credential unshared" : "Vjerodajnica se ne dijeli",
+ "Credential shared" : "Vjerodajnica se dijeli",
+ "Saved!" : "Spremljeno!",
+ "Poor" : "Jako slaba",
+ "Weak" : "Slaba",
+ "Good" : "Dobra",
+ "Strong" : "Jaka",
+ "Toggle visibility" : "Uključi/isključi vidljivost",
+ "Copy to clipboard" : "Kopiraj u međuspremnik",
+ "Copied to clipboard!" : "Kopirano u međuspremnik!",
+ "Generate password" : "Generiraj zaporku",
+ "Copy password to clipboard" : "Kopiraj zaporku u međuspremnik",
+ "Password copied to clipboard!" : "Zaporka je kopirana u međuspremnik!",
+ "Complete" : "Završi",
+ "Username" : "Korisničko ime",
+ "Repeat password" : "Ponovi zaporku",
+ "Add tag" : "Dodaj oznaku",
+ "Pick an icon" : "Odaberi ikonu",
+ "Search icons" : "Pretraži ikone",
+ "Upload a custom icon:" : "Otpremi prilagođenu ikonu:",
+ "Use this icon" : "Koristi ovu ikonu",
+ "Delete current icon" : "Izbriši trenutnu ikonu",
+ "Get icon from page" : "Dohvati ikonu sa stranice",
+ "This may take a few seconds…" : "To može potrajati nekoliko sekundi...",
+ "There was an error fetching the icon!" : "Došlo je do pogreške prilikom dohvaćanja ikone!",
+ "Selected icon" : "Odabrana ikona",
+ "Field label" : "Oznaka polja",
+ "Field value" : "Vrijednost polja",
+ "Choose a file" : "Odaberi datoteku",
+ "Text" : "Tekst",
+ "File" : "Datoteka",
+ "Add" : "Dodaj",
+ "Value" : "Vrijednost",
+ "Type" : "Vrsta",
+ "Actions" : "Radnje",
+ "Empty" : "Prazno",
+ "Filename" : "Naziv datoteke",
+ "Upload date" : "Datum otpremanja",
+ "Size" : "Veličina",
+ "Upload or enter your OTP secret" : "Otpremi ili unesi svoj tajni ključ OTP-a",
+ "Current OTP settings" : "Trenutne postavke OTP-a",
+ "Issuer" : "Izdavatelj",
+ "Secret" : "Tajno",
+ "Expiration date" : "Datum isteka",
+ "No expiration date set" : "Nije postavljen datum isteka",
+ "Renew interval" : "Interval obnavljanja",
+ "Disabled" : "Onemogućeno",
+ "Day(s)" : "Dan/dana",
+ "Week(s)" : "Tjedan/tjedna/tjedana",
+ "Month(s)" : "Mjesec/mjeseca/mjeseci",
+ "Year(s)" : "Godina/godine",
+ "Password generation settings" : "Postavke generiranja zaporke",
+ "Password length" : "Dužina zaporke",
+ "Minimum amount of digits" : "Minimalna količina znamenki",
+ "Use uppercase letters" : "Koristi velika slova",
+ "Use lowercase letters" : "Koristi mala slova",
+ "Use numbers" : "Koristi brojeve",
+ "Use special characters" : "Koristi posebne znakove",
+ "Avoid ambiguous characters" : "Izbjegavaj dvosmislene znakove",
+ "Require every character type" : "Koristiti svaku vrstu znakova",
+ "Export type" : "Vrsta izvoza",
+ "Export" : "Izvoz",
+ "Enter vault password to confirm export." : "Unesite zaporku trezora za potvrdu izvoza.",
+ "Rename vault" : "Preimenuj trezor",
+ "New vault name" : "Novi naziv trezora",
+ "Change" : "Promijeni",
+ "Change vault key" : "Promijeni ključ trezora",
+ "Old vault password" : "Stara zaporka trezora",
+ "New vault password" : "Nova zaporka trezora",
+ "Repeat new vault password" : "Ponovite novu zaporku trezora",
+ "Please wait your vault is being updated, do not leave this page." : "Pričekajte da se trezor ažurira, ne napuštajte ovu stranicu.",
+ "Processing" : "Obrada",
+ "Total progress" : "Totalni napredak",
+ "About Passman" : "O Passmanu",
+ "Version" : "Inačica",
+ "Donate to support development" : "Donirajte kako biste podržali razvoj",
+ "Bookmarklet" : "Bookmarklet",
+ "Save your passwords with one click." : "Spremite zaporke jednim klikom.",
+ "Drag below button to your bookmark toolbar." : "Povucite gumb u nastavku na traku knjižnih oznaka.",
+ "Delete vault" : "Izbriši trezor",
+ "Vault password" : "Zaporka trezora",
+ "This process is irreversible" : "Ovaj je postupak nepovratan",
+ "Delete my precious passwords" : "Izbriši moje zaporke",
+ "Deleting {{password}}…" : "Brisanje {{password}}…",
+ "Yes, delete my precious passwords" : "Da, izbriši moje zaporke",
+ "Import type" : "Vrsta uvoza",
+ "Import" : "Uvezi",
+ "Read progress" : "Napredak čitanja",
+ "Upload progress" : "Napredak otpremanja",
+ "Private Key" : "Privatni ključ",
+ "Public key" : "Javni ključ",
+ "Key size" : "Veličina ključa",
+ "Save keys" : "Spremi ključeve",
+ "Generate sharing keys" : "Generiraj ključeve za dijeljenje",
+ "Generating sharing keys" : "Generiranje ključeva za dijeljenje",
+ "The password tool scans your password, calculates average cracking time, listing those below the threshold" : "Alat za provjeru zaporke pregledava vašu zaporku, računa prosječno vrijeme otkrivanja zaporke i navodi zaporke koje su ispod praga",
+ "Minimum password stength" : "Minimalna snaga zaporke",
+ "Start scan" : "Započni skeniranje",
+ "Result" : "Rezultat",
+ "A total of {{scan_result}} weak credentials were found." : "Pronađeno je ukupno {{scan_result}} slabih vjerodajnica.",
+ "Score" : "Ocjena",
+ "Action" : "Radnja",
+ "Search users…" : "Pretraži korisnike…",
+ "Missing users? Only users that have vaults are shown." : "Nedostaju korisnici? Prikazani su samo korisnici koji imaju trezore.",
+ "Cyphering" : "Šifriranje",
+ "Uploading" : "Otpremanje",
+ "User" : "Korisnik",
+ "Crypto time" : "Kripto vrijeme",
+ "Total time spent encrypting" : "Ukupno vrijeme šifriranja",
+ "Read" : "Čitaj",
+ "Write" : "Piši",
+ "Files" : "Datoteke",
+ "Revisions" : "Revizije",
+ "Pending" : "Na čekanju",
+ "Enable link sharing" : "Omogući dijeljenje poveznica",
+ "Share until date" : "Dijeli do datuma",
+ "Expire after views" : "Istječe nakon pregleda",
+ "Click \\\"Share\\\" first" : "Prvo kliknite „Dijeli”",
+ "Show files" : "Prikaži datoteke",
+ "Details" : "Pojedinosti",
+ "Hide details" : "Sakrij pojedinosti",
+ "Password score" : "Ocjena zaporke",
+ "Cracking times" : "Vrijeme otkrivanja zaporke",
+ "100 / hour" : "100 / sat",
+ "Throttled online attack" : "Ublaženi napad putem mreže",
+ "10 / second" : "10 / sekundi",
+ "Unthrottled online attack" : "Neublaženi napad putem mreže",
+ "10k / second" : "10k / sekundi",
+ "Offline attack, slow hash, many cores" : "Izvanmrežni napad, spor hash, mnogo jezgara",
+ "10B / second" : "10B / sekundi",
+ "Offline attack, fast hash, many cores" : "Izvanmrežni napad, brzi hash, mnogo jezgara",
+ "Match sequence" : "Redoslijed podudaranja",
+ "See match sequence" : "Pogledaj redoslijed podudaranja",
+ "Pattern" : "Obrazac",
+ "Matched word" : "Podudarna riječ",
+ "Dictionary name" : "Naziv rječnika",
+ "Rank" : "Rang",
+ "Reversed" : "Obrnuto",
+ "Guesses" : "Pogađanja",
+ "Base guesses" : "Baza pogađanja",
+ "Uppercase variations" : "Varijacije velikih slova",
+ "l33t-variations" : "l33t-varijacije",
+ "Showing revisions of" : "Prikazuju se revizije za",
+ "Revision of" : "Revizija",
+ "by" : "od",
+ "No revisions found." : "Nije pronađena revizija.",
+ "Label" : "Oznaka",
+ "Restore revision" : "Vrati reviziju",
+ "Delete revision" : "Izbriši verziju",
+ "Edit credential" : "Uredi vjerodajnicu",
+ "Create new credential" : "Stvori novu vjerodajnicu",
+ "Save" : "Spremi",
+ "Cancel" : "Odustani",
+ "Settings" : "Postavke",
+ "Share credential {{credential}}" : "Dijeli vjerodajnicu {{credential}}",
+ "Unshare" : "Prestani dijeliti",
+ "Showing deleted since" : "Prikazuju se brisanja od",
+ "Beginning" : "Početak",
+ "Showing {{number_filtered}} of {{credential_number}} credentials" : "Prikazano je {{number_filtered}} od {{credential_number}} vjerodajnica",
+ "Search for credential…" : "Traženje vjerodajnice...",
+ "Account" : "Račun",
+ "Password" : "Zaporka",
+ "OTP" : "OTP",
+ "E-mail" : "E-pošta",
+ "URL" : "URL",
+ "Notes" : "Bilješke",
+ "Expiry time" : "Vrijeme isteka",
+ "Changed" : "Promijenjeno",
+ "Created" : "Stvoreno",
+ "Edit" : "Uredi",
+ "Delete" : "Izbriši",
+ "Share" : "Dijeli",
+ "Recover" : "Vrati",
+ "Destroy" : "Uništi",
+ "Use regex" : "Koristi regex",
+ "You have incoming share requests." : "Imate dolazne zahtjeve za dijeljenje.",
+ "If you want to put the credential in another vault," : "Ako želite staviti vjerodajnicu u drugi trezor,",
+ "log out of this vault and log into the vault you want the shared credential in." : "odjavite se iz ovog trezora i prijavite se u trezor u kojem želite koristiti dijeljenu vjerodajnicu.",
+ "Permissions" : "Dopuštenja",
+ "Received from" : "Primljeno od",
+ "Date" : "Datum",
+ "Accept" : "Prihvati",
+ "Decline" : "Odbij",
+ "You have {{session_time}} left before logout." : "Preostalo je {{session_time}} prije odjave.",
+ "Your vault has been locked for {{time}} because of {{tries}} failed attempts!" : "Vaš trezor je zaključan {{time}} zbog {{tries}} neuspjelih pokušaja!",
+ "Hello there!" : "Pozdrav!",
+ "It does not seem that you have any passwords. Do you want to add one?" : "Čini se da nemate nijednu zaporku. Želite li je dodati?",
+ "You don't have good credentials" : "Nemate dobre vjerodajnice",
+ "You don't have medium credentials" : "Nemate srednje vjerodajnice",
+ "You don't have bad credentials" : "Nemate loše vjerodajnice",
+ "You don't have expired credentials" : "Nemate istekle vjerodajnice",
+ "You don't have deleted credentials" : "Nemate izbrisane vjerodajnice",
+ "There are no credentials with your selected tags" : "Ne postoje vjerodajnice za vaše odabrane oznake",
+ "There are no credentials matching" : "Ne postoje podudarne vjerodajnice",
+ "Last accessed" : "Posljednji pristup",
+ "Never" : "Nikad",
+ "No vaults found, why not create one?" : "Nije pronađen nijedan trezor, zašto ga ne biste stvorili?",
+ "Password strength must be at least: {{strength}}" : "Snaga zaporke mora biti najmanje: {{strength}}",
+ "Please give your new vault a name." : "Odaberite naziv novog trezora.",
+ "Repeat vault password" : "Ponovite zaporku trezora",
+ "Your sharing keys will have a strength of 1024 bit, which you can change in \\\"Settings\\\" later ." : "Vaši će ključevi za dijeljenje imati 1024-bitnu snagu koju kasnije možete promijeniti u \\„Postavkama\\”.",
+ "Create vault" : "Stvori trezor",
+ "Go back to vaults" : "Vratite se u trezore",
+ "Please input the password for" : "Unesite zaporku za",
+ "Set this vault as the default." : "Postavi ovaj trezor kao zadani.",
+ "Log into this vault automatically." : "Automatski se prijavite u ovaj trezor.",
+ "Log out of this vault automatically after: " : "Automatski se odjavite iz ovog trezora nakon: ",
+ "Decrypt vault" : "Dešifriraj trezor",
+ "Seems you lost the vault password and you're unable to log in." : "Čini se da ste izgubili zaporku za trezor i ne možete se prijaviti.",
+ "If you want this vault to be removed you can request that here." : "Ako želite da se trezor ukloni, možete to zatražiti ovdje.",
+ "An admin then accepts or declines the request" : "Administrator prihvaća ili odbija taj zahtjev",
+ "After an admin destroys this vault, all credentials in it will be lost" : "Nakon što administrator uništi trezor, sve vjerodajnice u njemu bit će izgubljene",
+ "Reason for requesting deletion (optional):" : "Razlog brisanja (neobvezno):",
+ "Request vault destruction" : "Zatraži uništenje trezora",
+ "Yes, request an admin to destroy this vault" : "Da, zatraži od administratora da uništi ovaj trezor",
+ "Cancel destruction request" : "Otkaži zahtjev za uništavanjem",
+ "Vault destruction requested" : "Zatraženo je uništavanje trezora",
+ "Request removed" : "Zahtjev je uklonjen",
+ "Destruction request pending" : "Zahtjev za uništavanjem je na čekanju",
+ "Warning! Adding credentials over HTTP is insecure!" : "Upozorenje! Dodavanje vjerodajnica putem HTTP-a nije sigurno!",
+ "Logged into {{vault_name}}" : "Prijavljeni ste u {{vault_name}}",
+ "Change vault" : "Promijeni trezor",
+ "Deleted credentials" : "Izbrisane vjerodajnice",
+ "Logout" : "Odjava",
+ "Donate" : "Doniraj",
+ "Show All" : "Prikaži sve",
+ "Tags" : "Oznake",
+ "Search Tags" : "Oznake pretraživanja",
+ "Good Strength" : "Dobra snaga",
+ "Medium Strength" : "Srednja snaga",
+ "Bad Strength" : "Loša snaga",
+ "Expired" : "Istekao",
+ "Filter Tags" : "Filtriraj oznake",
+ "Simple Navigation" : "Jednostavna navigacija",
+ "Someone has shared a credential with you." : "Netko je s vama podijelio vjerodajnicu.",
+ "Click here to request it" : "Kliknite ovdje kako biste je zatražili",
+ "Loading…" : "Učitavanje…",
+ "Awwhh… credential not found. Maybe it expired" : "Ah… vjerodajnica nije pronađena. Možda je istekla",
+ "Compromise!" : "Kompromis!",
+ "Compromised!" : "Ugrožena!",
+ "This password is compromised. You can only remove this warning by changing the password." : "Vaša lozinka je ugrožena. Ovo upozorenje možete ukloniti samo promjenom zaporke.",
+ "email" : "e-pošta",
+ "Description" : "Opis",
+ "Url" : "Url",
+ "Custom Search:" : "Prilagođeno pretraživanje:",
+ "Revert to defaults" : "Vrati se na zadane vrijednosti",
+ "Error while saving field" : "Pogreška prilikom spremanja polja",
+ "A Passman item has been created, modified or deleted" : "Stvorena, promijenjena ili izbrisana stavka Passmana",
+ "A Passman item has expired" : "Istekla je stavka Passmana",
+ "A Passman item has been shared" : "Podijeljena je stavka Passmana",
+ "A Passman item has been renamed" : "Preimenovana je stavka Passmana",
+ "%1$s has been created by %2$s" : "%1$s stvorio je %2$s",
+ "You created %1$s" : "Stvorili ste %1$s",
+ "%1$s has been updated by %2$s" : "%1$s je ažurirao %2$s",
+ "You updated %1$s" : "Ažurirali ste %1$s",
+ "%2$s has revised %1$s to the revision of %3$s" : "%2$s je izmijenio %1$s na reviziju %3$s",
+ "You reverted %1$s back to the revision of %3$s" : "Vratili ste %1$s na reviziju %3$s",
+ "%3$s has renamed %1$s to %2$s" : "%3$s je preimenovao %1$s u %2$s",
+ "You renamed %1$s to %2$s" : "Preimenovali ste %1$s u %2$s",
+ "%1$s has been deleted by %2$s" : "%1$s je izbrisao %2$s",
+ "You deleted %1$s" : "Izbrisali ste %1$s",
+ "%1$s has been recovered by %2$s" : "%1$s je oporavio %2$s",
+ "You recovered %1$s" : "Oporavili ste %1$s",
+ "%1$s has been permanently deleted by %2$s" : "%1$s trajno je izbrisao %2$s",
+ "You permanently deleted %1$s" : "Trajno ste izbrisali %1$s",
+ "The password of %1$s has expired, renew it now." : "Zaporka %1$s je istekla, sada je obnovite.",
+ "%1$s has been shared with %2$s" : "%1$s je podijeljeno s %2$s",
+ "You received a share request for %1$s from %2$s" : "Primili ste zahtjev za dijeljenje za %1$s od %2$s",
+ "%s has been shared with a link" : "%s je podijeljeno putem poveznice",
+ "Your credential \"%s\" expired, click here to update the credential." : "Vaša je vjerodajnica „%s” istekla, kliknite ovdje kako biste ažurirali vjerodajnicu.",
+ "Remind me later" : "Podsjeti me kasnije",
+ "Ignore" : "Zanemari",
+ "%s shared \"%s\" with you. Click here to accept" : "%s je podijelio „%s” s vama. Kliknite ovdje kako biste prihvatili",
+ "%s has declined your share request for \"%s\"." : "%s je odbio vaš zahtjev za dijeljenjem „%s”.",
+ "%s has accepted your share request for \"%s\"." : "%s je prihvatio vaš zahtjev za dijeljenjem „%s”.",
+ "Passman" : "Passman",
+ "Passman is a full featured password manager." : "Passman je moćan i potpuno opremljeni upravitelj zaporkama.",
+ "Passman is a full featured password manager.\nFeatures:\n- Vaults\n- Vault key is never sent to the server\n- Browser extension for easy access to passwords\n- Android app for on the road access\n- Credentials are client side encrypted with 256bit AES\n- Credentials are server side encrypted with 256bit AES\n- Ability to add custom fields to credentials\n- Built-in OTP (One Time Password) generator\n- Password analyzer\n- Share passwords internally and via link in a secure manner.\n- Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is )\nFor an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)" : "Passman je moćan i potpuno opremljeni upravitelj zaporkama.\nZnačajke:\n- Trezori\n- ključ trezora nikada se ne šalje poslužitelju\n- proširenje preglednika za lak pristup zaporkama\n- aplikacija za Android omogućuje pristupanje s bilo koje lokacije\n- vjerodajnice su šifrirane na klijentu 256-bitnim AES-om\n- vjerodajnice su šifrirane na poslužitelju 256-bitnim AES-om\n- mogućnost dodavanja prilagođenih polja vjerodajnicama\n- ugrađeni generator OTP-a (jednokratne zaporke)\n- analizator zaporki\n- dijelite zaporke interno i putem poveznice na siguran način.\n- uvoz iz raznih upravitelja zaporkama (KeePass, LastPass, DashLane, ZOHO, Clipperz.is)\nZa demonstraciju ove aplikacije posjetite [https://demo.passman.cc](https: //demo.passman.cc)",
+ "Unable to get version info" : "Nije moguće dohvatiti informacije o inačici",
+ "Passman Settings" : "Postavke za Passman",
+ "GitHub version:" : "Inačica GitHuba:",
+ "A newer version of Passman is available" : "Dostupna je novija inačica Passmana",
+ "Password sharing" : "Dijeljenje zaporke",
+ "Credential mover" : "Pokretač vjerodajnica",
+ "Vault destruction requests" : "Zahtjevi za uništavanje trezora",
+ "Check for new versions" : "Provjeri za nove inačice",
+ "Enable HTTPS check" : "Omogući provjeru HTTPS-a",
+ "Disable context menu" : "Onemogući kontekstni izbornik",
+ "Disable JavaScript debugger" : "Onemogući alat za otklanjanje pogrešaka u JavaScriptu",
+ "Allow users on this server to share passwords with a link" : "Dopustite korisnicima na ovom poslužitelju da dijele zaporke putem poveznice",
+ "Allow users on this server to share passwords with other users" : "Dopustite korisnicima na ovom poslužitelju da dijele zaporke s drugim korisnicima",
+ "Move credentials from one account to another" : "Premjestite vjerodajnice s jednog računa na drugi",
+ "Source account" : "Izvorni račun",
+ "Destination account" : "Odredišni račun",
+ "Credentials moved!" : "Vjerodajnica je premještena!",
+ "Requests to destroy vault" : "Zahtjevi za uništavanjem trezora",
+ "Request ID" : "ID zahtjeva",
+ "Requested by" : "Zatražio",
+ "Reason" : "Razlog",
+ "Click here to request\n\t\t\t\t\tit" : "Kliknite ovdje kako biste je\n\t\t\t\t\tzatražili",
+ "Loading&hellip;" : "Učitavanje i pomoć;",
+ "Awwhh… could not find the credential. Maybe it expired?" : "Ah… vjerodajnica nije pronađena. Možda je istekla?",
+ "Expires:" : "Istječe:",
+ "Connection to server lost" : "Izgubljena veza s poslužiteljem",
+ "Problem loading page, reloading in 5 seconds" : "Problem s učitavanjem stranice, ponovno učitavanje za 5 sekundi",
+ "Saving..." : "Spremanje...",
+ "Dismiss" : "Zanemari",
+ "seconds ago" : "prije nekoliko sekundi"
+},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
+} \ No newline at end of file
diff --git a/l10n/is.js b/l10n/is.js
index 7c3752bd..67e52222 100644
--- a/l10n/is.js
+++ b/l10n/is.js
@@ -295,7 +295,6 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Æjæjæ... auðkenni fundust ekki. Kannski þau séu útrunnin",
"Compromise!" : "Berskjaldað!",
"Compromised!" : "Berskjaldað!",
- "This password is compromised. You can only remove this warning with changing the password." : "Þetta lykilorð er berskjaldað, og því ekki nothæft lengur. Þú getur aðeins losnað við þessa aðvörun með því að skipta um lykilorð.",
"email" : "tölvupóstur",
"Description" : "Lýsing",
"Url" : "Slóð (URL)",
diff --git a/l10n/is.json b/l10n/is.json
index adb35b1f..2428e914 100644
--- a/l10n/is.json
+++ b/l10n/is.json
@@ -293,7 +293,6 @@
"Awwhh… credential not found. Maybe it expired" : "Æjæjæ... auðkenni fundust ekki. Kannski þau séu útrunnin",
"Compromise!" : "Berskjaldað!",
"Compromised!" : "Berskjaldað!",
- "This password is compromised. You can only remove this warning with changing the password." : "Þetta lykilorð er berskjaldað, og því ekki nothæft lengur. Þú getur aðeins losnað við þessa aðvörun með því að skipta um lykilorð.",
"email" : "tölvupóstur",
"Description" : "Lýsing",
"Url" : "Slóð (URL)",
diff --git a/l10n/it.js b/l10n/it.js
index 376da1e6..3e965c59 100644
--- a/l10n/it.js
+++ b/l10n/it.js
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Ops... credenziali non trovate. Potrebbero essere scadute",
"Compromise!" : "Compromessa!",
"Compromised!" : "Compromessa!",
- "This password is compromised. You can only remove this warning with changing the password." : "Questa password è compromessa. Puoi rimuovere questo avviso solo cambiando la password.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Questa password è compromessa. Puoi rimuovere questo avviso solo cambiando la password.",
"email" : "email",
"Description" : "Descrizione",
"Url" : "Url",
diff --git a/l10n/it.json b/l10n/it.json
index 85cfde14..ec70f47c 100644
--- a/l10n/it.json
+++ b/l10n/it.json
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Ops... credenziali non trovate. Potrebbero essere scadute",
"Compromise!" : "Compromessa!",
"Compromised!" : "Compromessa!",
- "This password is compromised. You can only remove this warning with changing the password." : "Questa password è compromessa. Puoi rimuovere questo avviso solo cambiando la password.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Questa password è compromessa. Puoi rimuovere questo avviso solo cambiando la password.",
"email" : "email",
"Description" : "Descrizione",
"Url" : "Url",
diff --git a/l10n/ja.js b/l10n/ja.js
index a5676654..5f98ac3b 100644
--- a/l10n/ja.js
+++ b/l10n/ja.js
@@ -16,11 +16,14 @@ OC.L10N.register(
"Credential updated" : "資格情報が更新されました",
"Credential recovered" : "資格情報を復元しました",
"Credential destroyed" : "資格情報を破棄しました",
+ "Error downloading file, you probably have insufficient permissions" : "ファイルのダウンロード中にエラーが発生しました。権限が不足していると考えられます。",
"Invalid QR code" : "無効なQRコード",
"Starting export" : "エクスポートの開始",
"Decrypting credentials" : "資格情報の復号化をしています",
"Done" : "完了",
+ "File read." : "ファイルが読み込まれました",
"Proceed with the following steps to import your file" : "ファイルをインポートするために次のステップに進んでください",
+ "Skipping unlabeled credential" : "ラベルのない資格情報をスキップする",
"Adding {{credential}}" : "{{credential}}を追加中",
"Added {{credential}}" : "{{credential}}を追加しました",
"Skipping credential, missing label on line {{line}}" : "資格情報をスキップしています、{{line}} 行目のラベルが見つかりません",
@@ -47,6 +50,7 @@ OC.L10N.register(
"Export credentials" : "資格情報のエクスポート",
"Sharing" : "共有",
"Are you sure you want to leave? This will destroy all your credentials" : "すべての資格情報が破棄されます。本当に終了しますか?",
+ "Old password field incorrect!" : "現在の保管庫パスワードが正しくありません!",
"New password does not match!" : "新しいパスワードが一致しません!",
"Please log in with your new vault password" : "新しいパスワードでログインしてください",
"Share with users and groups" : "ユーザーとグループで共有",
@@ -70,8 +74,13 @@ OC.L10N.register(
"Repeat password" : "パスワードをもう一度入力",
"Add tag" : "タグを追加",
"Pick an icon" : "アイコンを選択",
+ "Search icons" : "アイコンを探す",
"Upload a custom icon:" : "カスタムアイコンをアップロードする",
"Use this icon" : "このアイコンを使用する",
+ "Delete current icon" : "現在のアイコンを削除",
+ "Get icon from page" : "ページからアイコンを取得する",
+ "This may take a few seconds…" : "これには数秒かかることがあります…",
+ "There was an error fetching the icon!" : "アイコンの取得中にエラーが発生しました",
"Selected icon" : "選択されたアイコン",
"Field label" : "フィールドラベル",
"Field value" : "フィールドの値",
@@ -124,6 +133,7 @@ OC.L10N.register(
"Version" : "バージョン",
"Donate to support development" : "開発者支援のために寄付する",
"Bookmarklet" : "ブックマークレット",
+ "Save your passwords with one click." : "ワンクリックであなたのパスワードを保存します",
"Drag below button to your bookmark toolbar." : "ボタンより下のブックマークツールバーへドラッグしてください。",
"Delete vault" : "保管庫を削除する",
"Vault password" : "保管庫パスワード",
@@ -141,6 +151,7 @@ OC.L10N.register(
"Save keys" : "キーを保存する",
"Generate sharing keys" : "共有キーを生成",
"Generating sharing keys" : "共有キーを生成中",
+ "The password tool scans your password, calculates average cracking time, listing those below the threshold" : "パスワードツールはパスワードをスキャンし、クラックタイムの平均を計算し閾値を下回るものをリストアップします。",
"Minimum password stength" : "最小のパスワードの長さ",
"Start scan" : "スキャンを開始",
"Result" : "結果",
@@ -153,6 +164,7 @@ OC.L10N.register(
"Uploading" : "アップロード中",
"User" : "ユーザー",
"Crypto time" : "暗号化時間",
+ "Total time spent encrypting" : "暗号化にかかった時間",
"Read" : "読み込み",
"Write" : "書き込み",
"Files" : "ファイル",
@@ -161,6 +173,7 @@ OC.L10N.register(
"Enable link sharing" : "リンク共有を有効化",
"Share until date" : "有効期限まで共有する",
"Expire after views" : "表示後に期限切れにする",
+ "Click \\\"Share\\\" first" : "最初に「共有」をクリック",
"Show files" : "ファイルを表示する",
"Details" : "詳細",
"Hide details" : "詳細を隠す",
@@ -210,8 +223,8 @@ OC.L10N.register(
"URL" : "URL",
"Notes" : "メモ",
"Expiry time" : "期限",
- "Changed" : "変更しました",
- "Created" : "作成されました",
+ "Changed" : "変更時刻",
+ "Created" : "作成時刻",
"Edit" : "編集",
"Delete" : "削除",
"Share" : "共有",
@@ -220,6 +233,7 @@ OC.L10N.register(
"Use regex" : "正規表現を使用する",
"You have incoming share requests." : "共有リクエストが届いています",
"If you want to put the credential in another vault," : "証明書を他の保管庫に保存したい場合、",
+ "log out of this vault and log into the vault you want the shared credential in." : "この保管庫からログアウトして共有証明書を保存したい保管庫にログインしてください。",
"Permissions" : "アクセス権限",
"Received from" : "受信",
"Date" : "日付",
@@ -227,12 +241,22 @@ OC.L10N.register(
"Decline" : "拒否",
"You have {{session_time}} left before logout." : "ログアウトするまであと {{session_time}} 秒",
"Your vault has been locked for {{time}} because of {{tries}} failed attempts!" : "{{tries}} 回失敗したため保管庫は{{time}} 秒ロックされます",
+ "Hello there!" : "こんにちは!",
+ "It does not seem that you have any passwords. Do you want to add one?" : "パスワードが設定されてないようです。 追加しますか?",
+ "You don't have good credentials" : "パスワード強度が高い資格情報はありません",
+ "You don't have medium credentials" : "パスワード強度が普通の資格情報はありません",
+ "You don't have bad credentials" : "パスワード強度が低い資格情報はありません",
+ "You don't have expired credentials" : "有効期限切れの資格情報はありません",
+ "You don't have deleted credentials" : "削除された資格情報がありません",
+ "There are no credentials with your selected tags" : "検索タグに一致する資格情報はありません。",
+ "There are no credentials matching" : "一致する資格情報がありません",
"Last accessed" : "最終アクセス",
"Never" : "未使用",
"No vaults found, why not create one?" : "保管庫が見つかりません。新しく作成しますか?",
"Password strength must be at least: {{strength}}" : "パスワードは次の文字数以上である必要があります:{{strength}}",
"Please give your new vault a name." : "新しいVaultの名前をつけてください",
"Repeat vault password" : "保管庫パスワードを再入力してください",
+ "Your sharing keys will have a strength of 1024 bit, which you can change in \\\"Settings\\\" later ." : "共有キーの強度は1024ビットです。後で「設定」から変更できます。",
"Create vault" : "保管庫を作成する",
"Go back to vaults" : "保管庫へ戻る",
"Please input the password for" : "パスワードを入力してください",
@@ -252,15 +276,32 @@ OC.L10N.register(
"Request removed" : "リクエストを取り消しました",
"Destruction request pending" : "破棄リクエスト保留中",
"Warning! Adding credentials over HTTP is insecure!" : "警告!HTTP経由で証明書を付与するのは安全ではありません!",
+ "Logged into {{vault_name}}" : "{{vault_name}} にログインしました",
"Change vault" : "保管庫を変更する",
"Deleted credentials" : "削除された証明書",
"Logout" : "ログアウト",
"Donate" : "寄付",
"Show All" : "全て表示",
+ "Tags" : "タグ",
+ "Search Tags" : "タグ検索",
+ "Good Strength" : "パスワード強度:高",
+ "Medium Strength" : "パスワード強度:中",
+ "Bad Strength" : "パスワード強度:低",
+ "Expired" : "有効期限切れ",
+ "Filter Tags" : "タグフィルター",
+ "Simple Navigation" : "シンプルナビゲーション",
"Someone has shared a credential with you." : "誰かがあなたと資格情報を共有しました。",
"Click here to request it" : "リクエストするにはここをクリックしてください",
"Loading…" : "読み込み中...",
"Awwhh… credential not found. Maybe it expired" : "資格情報が見つかりません。期限切れの可能性があります",
+ "Compromise!" : "安全性が損なわれています!",
+ "Compromised!" : "安全性が損なわれています!",
+ "This password is compromised. You can only remove this warning by changing the password." : "このパスワードは危険にさらされています。 この警告を削除するにはパスワードを変更してください。",
+ "email" : "メール",
+ "Description" : "説明",
+ "Url" : "URL",
+ "Custom Search:" : "カスタム検索:",
+ "Revert to defaults" : "デフォルトに戻す",
"Error while saving field" : "フィールドの保存中にエラーが発生しました",
"A Passman item has been created, modified or deleted" : "Passman のアイテムが作成、変更、または削除されました",
"A Passman item has expired" : "Pasman アイテムが期限切れ",
@@ -316,6 +357,8 @@ OC.L10N.register(
"Reason" : "理由",
"Click here to request\n\t\t\t\t\tit" : "クリックしてリクエスト\n\t\t\t\t\t",
"Loading&hellip;" : "Loading&hellip;",
+ "Awwhh… could not find the credential. Maybe it expired?" : "証明書が見つかりませんでした。期限切れの可能性があります",
+ "Expires:" : "有効期限:",
"Connection to server lost" : "サーバーとの接続が切断されました",
"Problem loading page, reloading in 5 seconds" : "ページのロードに問題があります、5秒以内に再ロードします",
"Saving..." : "保存中...",
diff --git a/l10n/ja.json b/l10n/ja.json
index d4747b48..7bffde43 100644
--- a/l10n/ja.json
+++ b/l10n/ja.json
@@ -14,11 +14,14 @@
"Credential updated" : "資格情報が更新されました",
"Credential recovered" : "資格情報を復元しました",
"Credential destroyed" : "資格情報を破棄しました",
+ "Error downloading file, you probably have insufficient permissions" : "ファイルのダウンロード中にエラーが発生しました。権限が不足していると考えられます。",
"Invalid QR code" : "無効なQRコード",
"Starting export" : "エクスポートの開始",
"Decrypting credentials" : "資格情報の復号化をしています",
"Done" : "完了",
+ "File read." : "ファイルが読み込まれました",
"Proceed with the following steps to import your file" : "ファイルをインポートするために次のステップに進んでください",
+ "Skipping unlabeled credential" : "ラベルのない資格情報をスキップする",
"Adding {{credential}}" : "{{credential}}を追加中",
"Added {{credential}}" : "{{credential}}を追加しました",
"Skipping credential, missing label on line {{line}}" : "資格情報をスキップしています、{{line}} 行目のラベルが見つかりません",
@@ -45,6 +48,7 @@
"Export credentials" : "資格情報のエクスポート",
"Sharing" : "共有",
"Are you sure you want to leave? This will destroy all your credentials" : "すべての資格情報が破棄されます。本当に終了しますか?",
+ "Old password field incorrect!" : "現在の保管庫パスワードが正しくありません!",
"New password does not match!" : "新しいパスワードが一致しません!",
"Please log in with your new vault password" : "新しいパスワードでログインしてください",
"Share with users and groups" : "ユーザーとグループで共有",
@@ -68,8 +72,13 @@
"Repeat password" : "パスワードをもう一度入力",
"Add tag" : "タグを追加",
"Pick an icon" : "アイコンを選択",
+ "Search icons" : "アイコンを探す",
"Upload a custom icon:" : "カスタムアイコンをアップロードする",
"Use this icon" : "このアイコンを使用する",
+ "Delete current icon" : "現在のアイコンを削除",
+ "Get icon from page" : "ページからアイコンを取得する",
+ "This may take a few seconds…" : "これには数秒かかることがあります…",
+ "There was an error fetching the icon!" : "アイコンの取得中にエラーが発生しました",
"Selected icon" : "選択されたアイコン",
"Field label" : "フィールドラベル",
"Field value" : "フィールドの値",
@@ -122,6 +131,7 @@
"Version" : "バージョン",
"Donate to support development" : "開発者支援のために寄付する",
"Bookmarklet" : "ブックマークレット",
+ "Save your passwords with one click." : "ワンクリックであなたのパスワードを保存します",
"Drag below button to your bookmark toolbar." : "ボタンより下のブックマークツールバーへドラッグしてください。",
"Delete vault" : "保管庫を削除する",
"Vault password" : "保管庫パスワード",
@@ -139,6 +149,7 @@
"Save keys" : "キーを保存する",
"Generate sharing keys" : "共有キーを生成",
"Generating sharing keys" : "共有キーを生成中",
+ "The password tool scans your password, calculates average cracking time, listing those below the threshold" : "パスワードツールはパスワードをスキャンし、クラックタイムの平均を計算し閾値を下回るものをリストアップします。",
"Minimum password stength" : "最小のパスワードの長さ",
"Start scan" : "スキャンを開始",
"Result" : "結果",
@@ -151,6 +162,7 @@
"Uploading" : "アップロード中",
"User" : "ユーザー",
"Crypto time" : "暗号化時間",
+ "Total time spent encrypting" : "暗号化にかかった時間",
"Read" : "読み込み",
"Write" : "書き込み",
"Files" : "ファイル",
@@ -159,6 +171,7 @@
"Enable link sharing" : "リンク共有を有効化",
"Share until date" : "有効期限まで共有する",
"Expire after views" : "表示後に期限切れにする",
+ "Click \\\"Share\\\" first" : "最初に「共有」をクリック",
"Show files" : "ファイルを表示する",
"Details" : "詳細",
"Hide details" : "詳細を隠す",
@@ -208,8 +221,8 @@
"URL" : "URL",
"Notes" : "メモ",
"Expiry time" : "期限",
- "Changed" : "変更しました",
- "Created" : "作成されました",
+ "Changed" : "変更時刻",
+ "Created" : "作成時刻",
"Edit" : "編集",
"Delete" : "削除",
"Share" : "共有",
@@ -218,6 +231,7 @@
"Use regex" : "正規表現を使用する",
"You have incoming share requests." : "共有リクエストが届いています",
"If you want to put the credential in another vault," : "証明書を他の保管庫に保存したい場合、",
+ "log out of this vault and log into the vault you want the shared credential in." : "この保管庫からログアウトして共有証明書を保存したい保管庫にログインしてください。",
"Permissions" : "アクセス権限",
"Received from" : "受信",
"Date" : "日付",
@@ -225,12 +239,22 @@
"Decline" : "拒否",
"You have {{session_time}} left before logout." : "ログアウトするまであと {{session_time}} 秒",
"Your vault has been locked for {{time}} because of {{tries}} failed attempts!" : "{{tries}} 回失敗したため保管庫は{{time}} 秒ロックされます",
+ "Hello there!" : "こんにちは!",
+ "It does not seem that you have any passwords. Do you want to add one?" : "パスワードが設定されてないようです。 追加しますか?",
+ "You don't have good credentials" : "パスワード強度が高い資格情報はありません",
+ "You don't have medium credentials" : "パスワード強度が普通の資格情報はありません",
+ "You don't have bad credentials" : "パスワード強度が低い資格情報はありません",
+ "You don't have expired credentials" : "有効期限切れの資格情報はありません",
+ "You don't have deleted credentials" : "削除された資格情報がありません",
+ "There are no credentials with your selected tags" : "検索タグに一致する資格情報はありません。",
+ "There are no credentials matching" : "一致する資格情報がありません",
"Last accessed" : "最終アクセス",
"Never" : "未使用",
"No vaults found, why not create one?" : "保管庫が見つかりません。新しく作成しますか?",
"Password strength must be at least: {{strength}}" : "パスワードは次の文字数以上である必要があります:{{strength}}",
"Please give your new vault a name." : "新しいVaultの名前をつけてください",
"Repeat vault password" : "保管庫パスワードを再入力してください",
+ "Your sharing keys will have a strength of 1024 bit, which you can change in \\\"Settings\\\" later ." : "共有キーの強度は1024ビットです。後で「設定」から変更できます。",
"Create vault" : "保管庫を作成する",
"Go back to vaults" : "保管庫へ戻る",
"Please input the password for" : "パスワードを入力してください",
@@ -250,15 +274,32 @@
"Request removed" : "リクエストを取り消しました",
"Destruction request pending" : "破棄リクエスト保留中",
"Warning! Adding credentials over HTTP is insecure!" : "警告!HTTP経由で証明書を付与するのは安全ではありません!",
+ "Logged into {{vault_name}}" : "{{vault_name}} にログインしました",
"Change vault" : "保管庫を変更する",
"Deleted credentials" : "削除された証明書",
"Logout" : "ログアウト",
"Donate" : "寄付",
"Show All" : "全て表示",
+ "Tags" : "タグ",
+ "Search Tags" : "タグ検索",
+ "Good Strength" : "パスワード強度:高",
+ "Medium Strength" : "パスワード強度:中",
+ "Bad Strength" : "パスワード強度:低",
+ "Expired" : "有効期限切れ",
+ "Filter Tags" : "タグフィルター",
+ "Simple Navigation" : "シンプルナビゲーション",
"Someone has shared a credential with you." : "誰かがあなたと資格情報を共有しました。",
"Click here to request it" : "リクエストするにはここをクリックしてください",
"Loading…" : "読み込み中...",
"Awwhh… credential not found. Maybe it expired" : "資格情報が見つかりません。期限切れの可能性があります",
+ "Compromise!" : "安全性が損なわれています!",
+ "Compromised!" : "安全性が損なわれています!",
+ "This password is compromised. You can only remove this warning by changing the password." : "このパスワードは危険にさらされています。 この警告を削除するにはパスワードを変更してください。",
+ "email" : "メール",
+ "Description" : "説明",
+ "Url" : "URL",
+ "Custom Search:" : "カスタム検索:",
+ "Revert to defaults" : "デフォルトに戻す",
"Error while saving field" : "フィールドの保存中にエラーが発生しました",
"A Passman item has been created, modified or deleted" : "Passman のアイテムが作成、変更、または削除されました",
"A Passman item has expired" : "Pasman アイテムが期限切れ",
@@ -314,6 +355,8 @@
"Reason" : "理由",
"Click here to request\n\t\t\t\t\tit" : "クリックしてリクエスト\n\t\t\t\t\t",
"Loading&hellip;" : "Loading&hellip;",
+ "Awwhh… could not find the credential. Maybe it expired?" : "証明書が見つかりませんでした。期限切れの可能性があります",
+ "Expires:" : "有効期限:",
"Connection to server lost" : "サーバーとの接続が切断されました",
"Problem loading page, reloading in 5 seconds" : "ページのロードに問題があります、5秒以内に再ロードします",
"Saving..." : "保存中...",
diff --git a/l10n/lt_LT.js b/l10n/lt_LT.js
index e78ae8e4..89d3a8d5 100644
--- a/l10n/lt_LT.js
+++ b/l10n/lt_LT.js
@@ -69,7 +69,10 @@ OC.L10N.register(
"Add tag" : "Pridėti žymę",
"Search icons" : "Ieškoti piktogramų",
"Use this icon" : "Naudoti šią piktogramą",
+ "Delete current icon" : "Ištrinti dabartinę piktogramą",
+ "Get icon from page" : "Gauti piktogramą iš puslapio",
"This may take a few seconds…" : "Tai gali šiek tiek užtrukti…",
+ "There was an error fetching the icon!" : "Gaunant piktogramą, įvyko klaida!",
"Field label" : "Laukelio pavadinimas",
"Field value" : "Laukelio vertė",
"Choose a file" : "Pasirinkti failą",
@@ -118,6 +121,7 @@ OC.L10N.register(
"This process is irreversible" : "Šis procesas yra nepanaikinamas",
"Deleting {{password}}…" : "Ištrinamas {{password}}…",
"Import" : "Importuoti",
+ "Upload progress" : "Įkėlimo eiga",
"Private Key" : "Privatusis raktas",
"Public key" : "Viešasis raktas",
"Key size" : "Rakto dydis",
@@ -154,6 +158,7 @@ OC.L10N.register(
"It does not seem that you have any passwords. Do you want to add one?" : "Atrodo, kad neturite jokių slaptažodžių. Ar norite pridėti slaptažodį?",
"Never" : "Niekada",
"No vaults found, why not create one?" : "Nerasta jokių slėptuvių, kodėl gi jos nesukūrus?",
+ "Password strength must be at least: {{strength}}" : "Slaptažodžio stiprumas privalo būti bent: {{strength}}",
"Please give your new vault a name." : "Suteikite savo naujajai slėptuvei pavadinimą.",
"Repeat vault password" : "Pakartokite slėptuvės slaptažodį",
"Create vault" : "Sukurti slėptuvę",
@@ -172,8 +177,10 @@ OC.L10N.register(
"Request removed" : "Užklausa pašalinta",
"Change vault" : "Pakeisti slėptuvę",
"Logout" : "Atsijungti",
+ "Tags" : "Žymės",
"Loading…" : "Įkeliama…",
"Description" : "Aprašas",
+ "Url" : "Url",
"Error while saving field" : "Klaida įrašant lauką",
"A Passman item has been created, modified or deleted" : "Slaptažodžių tvarkyklės elementas buvo sukurtas, pakeistas arba ištrintas",
"A Passman item has expired" : "Slaptažodžių tvarkyklės elementas nebegalioja",
@@ -194,6 +201,7 @@ OC.L10N.register(
"Remind me later" : "Priminti vėliau",
"Ignore" : "Nepaisyti",
"Passman" : "Passman",
+ "Passman is a full featured password manager." : "Passman yra visiškai parengta slaptažodžių tvarkytuvė.",
"Unable to get version info" : "Nepavyko gauti versijos informacijos",
"Passman Settings" : "Passman nustatymai",
"GitHub version:" : "GitHub versija:",
@@ -206,6 +214,7 @@ OC.L10N.register(
"Destination account" : "Paskirties paskyra",
"Requested by" : "Užklausė",
"Reason" : "Priežastis",
+ "Loading&hellip;" : "Įkeliama&hellip;",
"Connection to server lost" : "Ryšys su serveriu nutrūko",
"Problem loading page, reloading in 5 seconds" : "Problemos, įkeliant puslapį, po 5 sekundžių įkeliama iš naujo",
"Saving..." : "Įrašoma...",
diff --git a/l10n/lt_LT.json b/l10n/lt_LT.json
index 6c0c0d27..c2d965d8 100644
--- a/l10n/lt_LT.json
+++ b/l10n/lt_LT.json
@@ -67,7 +67,10 @@
"Add tag" : "Pridėti žymę",
"Search icons" : "Ieškoti piktogramų",
"Use this icon" : "Naudoti šią piktogramą",
+ "Delete current icon" : "Ištrinti dabartinę piktogramą",
+ "Get icon from page" : "Gauti piktogramą iš puslapio",
"This may take a few seconds…" : "Tai gali šiek tiek užtrukti…",
+ "There was an error fetching the icon!" : "Gaunant piktogramą, įvyko klaida!",
"Field label" : "Laukelio pavadinimas",
"Field value" : "Laukelio vertė",
"Choose a file" : "Pasirinkti failą",
@@ -116,6 +119,7 @@
"This process is irreversible" : "Šis procesas yra nepanaikinamas",
"Deleting {{password}}…" : "Ištrinamas {{password}}…",
"Import" : "Importuoti",
+ "Upload progress" : "Įkėlimo eiga",
"Private Key" : "Privatusis raktas",
"Public key" : "Viešasis raktas",
"Key size" : "Rakto dydis",
@@ -152,6 +156,7 @@
"It does not seem that you have any passwords. Do you want to add one?" : "Atrodo, kad neturite jokių slaptažodžių. Ar norite pridėti slaptažodį?",
"Never" : "Niekada",
"No vaults found, why not create one?" : "Nerasta jokių slėptuvių, kodėl gi jos nesukūrus?",
+ "Password strength must be at least: {{strength}}" : "Slaptažodžio stiprumas privalo būti bent: {{strength}}",
"Please give your new vault a name." : "Suteikite savo naujajai slėptuvei pavadinimą.",
"Repeat vault password" : "Pakartokite slėptuvės slaptažodį",
"Create vault" : "Sukurti slėptuvę",
@@ -170,8 +175,10 @@
"Request removed" : "Užklausa pašalinta",
"Change vault" : "Pakeisti slėptuvę",
"Logout" : "Atsijungti",
+ "Tags" : "Žymės",
"Loading…" : "Įkeliama…",
"Description" : "Aprašas",
+ "Url" : "Url",
"Error while saving field" : "Klaida įrašant lauką",
"A Passman item has been created, modified or deleted" : "Slaptažodžių tvarkyklės elementas buvo sukurtas, pakeistas arba ištrintas",
"A Passman item has expired" : "Slaptažodžių tvarkyklės elementas nebegalioja",
@@ -192,6 +199,7 @@
"Remind me later" : "Priminti vėliau",
"Ignore" : "Nepaisyti",
"Passman" : "Passman",
+ "Passman is a full featured password manager." : "Passman yra visiškai parengta slaptažodžių tvarkytuvė.",
"Unable to get version info" : "Nepavyko gauti versijos informacijos",
"Passman Settings" : "Passman nustatymai",
"GitHub version:" : "GitHub versija:",
@@ -204,6 +212,7 @@
"Destination account" : "Paskirties paskyra",
"Requested by" : "Užklausė",
"Reason" : "Priežastis",
+ "Loading&hellip;" : "Įkeliama&hellip;",
"Connection to server lost" : "Ryšys su serveriu nutrūko",
"Problem loading page, reloading in 5 seconds" : "Problemos, įkeliant puslapį, po 5 sekundžių įkeliama iš naujo",
"Saving..." : "Įrašoma...",
diff --git a/l10n/lv.js b/l10n/lv.js
index 295dbf26..a94c742a 100644
--- a/l10n/lv.js
+++ b/l10n/lv.js
@@ -36,14 +36,14 @@ OC.L10N.register(
"Repeat password" : "Atkārtojiet paroli",
"Field label" : "Lauka nosaukums",
"Field value" : "Lauka vērtība",
- "Choose a file" : "Izvēlieties failu",
+ "Choose a file" : "Izvēlieties datni",
"Text" : "Teksts",
"File" : "Datne",
"Add" : "Pievienot",
"Value" : "Vērtība",
"Type" : "Tips",
"Empty" : "Tukšs",
- "Filename" : "Faila nosaukums",
+ "Filename" : "Datnes nosaukums",
"Upload date" : "Augšupielādes datums",
"Size" : "Izmērs",
"Current OTP settings" : "Pašreizējāie OTP iestatījumi",
@@ -85,7 +85,7 @@ OC.L10N.register(
"Files" : "Datnes",
"Enable link sharing" : "Iespējot saites kopīgošana",
"Share until date" : "Koplietot līdz datumam",
- "Show files" : "Rādīt failus",
+ "Show files" : "Rādīt datnes",
"Details" : "Detaļas",
"Hide details" : "Slēpt detaļas",
"Password score" : "Paroles punktu skaits",
@@ -129,10 +129,12 @@ OC.L10N.register(
"Deleted credentials" : "Dzēsti akreditācijas dati",
"Logout" : "Atteikties",
"Donate" : "Ziedot",
+ "Tags" : "Birkas",
+ "Search Tags" : "Meklēt birkas",
"Click here to request it" : "Noklikšķiniet šeit, lai pieprasītu",
"Description" : "Apraksts",
"Error while saving field" : "Kļūda, saglabājot lauku",
- "You created %1$s" : "Tu izveidoji %1$s",
+ "You created %1$s" : "Jūs izveidojāt %1$s",
"You updated %1$s" : "Tu atjaunināji %1$s",
"%3$s has renamed %1$s to %2$s" : "%3$s pārsauca %1$s uz %2$s",
"You renamed %1$s to %2$s" : "Tu pārdēvēji %1$s uz %2$s",
diff --git a/l10n/lv.json b/l10n/lv.json
index 5d37192c..b5ba7f1f 100644
--- a/l10n/lv.json
+++ b/l10n/lv.json
@@ -34,14 +34,14 @@
"Repeat password" : "Atkārtojiet paroli",
"Field label" : "Lauka nosaukums",
"Field value" : "Lauka vērtība",
- "Choose a file" : "Izvēlieties failu",
+ "Choose a file" : "Izvēlieties datni",
"Text" : "Teksts",
"File" : "Datne",
"Add" : "Pievienot",
"Value" : "Vērtība",
"Type" : "Tips",
"Empty" : "Tukšs",
- "Filename" : "Faila nosaukums",
+ "Filename" : "Datnes nosaukums",
"Upload date" : "Augšupielādes datums",
"Size" : "Izmērs",
"Current OTP settings" : "Pašreizējāie OTP iestatījumi",
@@ -83,7 +83,7 @@
"Files" : "Datnes",
"Enable link sharing" : "Iespējot saites kopīgošana",
"Share until date" : "Koplietot līdz datumam",
- "Show files" : "Rādīt failus",
+ "Show files" : "Rādīt datnes",
"Details" : "Detaļas",
"Hide details" : "Slēpt detaļas",
"Password score" : "Paroles punktu skaits",
@@ -127,10 +127,12 @@
"Deleted credentials" : "Dzēsti akreditācijas dati",
"Logout" : "Atteikties",
"Donate" : "Ziedot",
+ "Tags" : "Birkas",
+ "Search Tags" : "Meklēt birkas",
"Click here to request it" : "Noklikšķiniet šeit, lai pieprasītu",
"Description" : "Apraksts",
"Error while saving field" : "Kļūda, saglabājot lauku",
- "You created %1$s" : "Tu izveidoji %1$s",
+ "You created %1$s" : "Jūs izveidojāt %1$s",
"You updated %1$s" : "Tu atjaunināji %1$s",
"%3$s has renamed %1$s to %2$s" : "%3$s pārsauca %1$s uz %2$s",
"You renamed %1$s to %2$s" : "Tu pārdēvēji %1$s uz %2$s",
diff --git a/l10n/nl.js b/l10n/nl.js
index 2d7ac4cc..cf79086e 100644
--- a/l10n/nl.js
+++ b/l10n/nl.js
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Awwhh… inloggegevens niet gevonden. Misschien verliepen ze.",
"Compromise!" : "Datalek!",
"Compromised!" : "Uitgelekt!",
- "This password is compromised. You can only remove this warning with changing the password." : "Dit wachtwoord is uitgelekt. Je kunt deze melding alleen verwijderen door je wachtwoord te wijzigen.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Dit wachtwoord is uitgelekt. Je kunt deze melding alleen verwijderen door je wachtwoord te wijzigen.",
"email" : "e-mailadres",
"Description" : "Beschrijving",
"Url" : "Url",
@@ -325,7 +325,7 @@ OC.L10N.register(
"%1$s has been shared with %2$s" : "%1$s is gedeeld met %2$s",
"You received a share request for %1$s from %2$s" : "Je ontving een verzoek om %1$s te delen met %2$s",
"%s has been shared with a link" : "%s is gedeeld met een link",
- "Your credential \"%s\" expired, click here to update the credential." : "Je inloggegevens \"%s\" vervielen, klik hier om ze te vernieuwen.",
+ "Your credential \"%s\" expired, click here to update the credential." : "Je inloggegevens \"%s\" zijn vervallen, klik hier om ze te vernieuwen.",
"Remind me later" : "Herinner me later",
"Ignore" : "Negeren",
"%s shared \"%s\" with you. Click here to accept" : "%s deelde \"%s\" met je. Klik hier om te accepteren",
diff --git a/l10n/nl.json b/l10n/nl.json
index f454c7fd..81c1a016 100644
--- a/l10n/nl.json
+++ b/l10n/nl.json
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Awwhh… inloggegevens niet gevonden. Misschien verliepen ze.",
"Compromise!" : "Datalek!",
"Compromised!" : "Uitgelekt!",
- "This password is compromised. You can only remove this warning with changing the password." : "Dit wachtwoord is uitgelekt. Je kunt deze melding alleen verwijderen door je wachtwoord te wijzigen.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Dit wachtwoord is uitgelekt. Je kunt deze melding alleen verwijderen door je wachtwoord te wijzigen.",
"email" : "e-mailadres",
"Description" : "Beschrijving",
"Url" : "Url",
@@ -323,7 +323,7 @@
"%1$s has been shared with %2$s" : "%1$s is gedeeld met %2$s",
"You received a share request for %1$s from %2$s" : "Je ontving een verzoek om %1$s te delen met %2$s",
"%s has been shared with a link" : "%s is gedeeld met een link",
- "Your credential \"%s\" expired, click here to update the credential." : "Je inloggegevens \"%s\" vervielen, klik hier om ze te vernieuwen.",
+ "Your credential \"%s\" expired, click here to update the credential." : "Je inloggegevens \"%s\" zijn vervallen, klik hier om ze te vernieuwen.",
"Remind me later" : "Herinner me later",
"Ignore" : "Negeren",
"%s shared \"%s\" with you. Click here to accept" : "%s deelde \"%s\" met je. Klik hier om te accepteren",
diff --git a/l10n/pl.js b/l10n/pl.js
index 848bbe8d..a1f3b7d5 100644
--- a/l10n/pl.js
+++ b/l10n/pl.js
@@ -75,7 +75,7 @@ OC.L10N.register(
"Add tag" : "Dodaj etykietę",
"Pick an icon" : "Wybierz ikonę",
"Search icons" : "Wyszukaj ikony",
- "Upload a custom icon:" : "Wyślij niestandardową ikonę:",
+ "Upload a custom icon:" : "Wyślij własną ikonę:",
"Use this icon" : "Użyj tej ikony",
"Delete current icon" : "Usuń aktualną ikonę",
"Get icon from page" : "Pobierz ikonę ze strony",
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Ups… poświadczenie nie znalezione. Może wygasło.",
"Compromise!" : "Kompromis!",
"Compromised!" : "Zagrożone!",
- "This password is compromised. You can only remove this warning with changing the password." : "To hasło jest zagrożone. Możesz usunąć to ostrzeżenie tylko po zmianie hasła.",
+ "This password is compromised. You can only remove this warning by changing the password." : "To hasło jest zagrożone. Możesz usunąć to ostrzeżenie, zmieniając hasło.",
"email" : "e-mail",
"Description" : "Opis",
"Url" : "URL",
diff --git a/l10n/pl.json b/l10n/pl.json
index 4fa220cf..71ed30d5 100644
--- a/l10n/pl.json
+++ b/l10n/pl.json
@@ -73,7 +73,7 @@
"Add tag" : "Dodaj etykietę",
"Pick an icon" : "Wybierz ikonę",
"Search icons" : "Wyszukaj ikony",
- "Upload a custom icon:" : "Wyślij niestandardową ikonę:",
+ "Upload a custom icon:" : "Wyślij własną ikonę:",
"Use this icon" : "Użyj tej ikony",
"Delete current icon" : "Usuń aktualną ikonę",
"Get icon from page" : "Pobierz ikonę ze strony",
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Ups… poświadczenie nie znalezione. Może wygasło.",
"Compromise!" : "Kompromis!",
"Compromised!" : "Zagrożone!",
- "This password is compromised. You can only remove this warning with changing the password." : "To hasło jest zagrożone. Możesz usunąć to ostrzeżenie tylko po zmianie hasła.",
+ "This password is compromised. You can only remove this warning by changing the password." : "To hasło jest zagrożone. Możesz usunąć to ostrzeżenie, zmieniając hasło.",
"email" : "e-mail",
"Description" : "Opis",
"Url" : "URL",
diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js
index 0ca8b95a..cb5deae9 100644
--- a/l10n/pt_BR.js
+++ b/l10n/pt_BR.js
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Awwhh ... credencial não encontrada. Talvez tenha expirado",
"Compromise!" : "Comprometer!",
"Compromised!" : "Comprometido!",
- "This password is compromised. You can only remove this warning with changing the password." : "Esta senha está comprometida. Você só pode remover esse aviso se alterar a senha.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Esta senha está comprometida. Você só pode remover esse aviso alterando a senha.",
"email" : "e-mail",
"Description" : "Descrição",
"Url" : "Url",
diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json
index 9011752e..7ba01adf 100644
--- a/l10n/pt_BR.json
+++ b/l10n/pt_BR.json
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Awwhh ... credencial não encontrada. Talvez tenha expirado",
"Compromise!" : "Comprometer!",
"Compromised!" : "Comprometido!",
- "This password is compromised. You can only remove this warning with changing the password." : "Esta senha está comprometida. Você só pode remover esse aviso se alterar a senha.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Esta senha está comprometida. Você só pode remover esse aviso alterando a senha.",
"email" : "e-mail",
"Description" : "Descrição",
"Url" : "Url",
diff --git a/l10n/sl.js b/l10n/sl.js
new file mode 100644
index 00000000..ee2b741b
--- /dev/null
+++ b/l10n/sl.js
@@ -0,0 +1,47 @@
+OC.L10N.register(
+ "passman",
+ {
+ "Passwords" : "Gesla",
+ "Incorrect vault password!" : "Napačno geslo trezorja!",
+ "Passwords do not match" : "Gesli se ne skladata",
+ "General" : "Splošno",
+ "Custom Fields" : "Polja po meri",
+ "Error loading file" : "Napaka pri nalaganju datoteke",
+ "Credential created!" : "Poverila so ustvarjena!",
+ "Credential deleted" : "Poverila so izbrisana",
+ "Credential updated" : "Poverila so posodobljena",
+ "Credential destroyed" : "Poverila uničena",
+ "Invalid QR code" : "Neveljavna koda QR",
+ "Settings saved" : "Nastavitve so shranjene.",
+ "General settings" : "Splošne nastavitve",
+ "Password settings" : "Nastavitve gesla",
+ "Sharing" : "Souporaba",
+ "Share link" : "Povezava za souporabo",
+ "Saved!" : "Shranjeno!",
+ "Good" : "Dobro",
+ "Strong" : "Močno",
+ "Generate password" : "Izdelaj geslo",
+ "Username" : "Uporabniško ime",
+ "Upload date" : "Datum pošiljanja",
+ "Password generation settings" : "Nastavitve ustvarjanja gesel",
+ "Upload progress" : "Napredek pošiljanja",
+ "Uploading" : "Poteka pošiljanje",
+ "Details" : "Podrobnosti",
+ "Hide details" : "Skrij podrobnosti",
+ "Create new credential" : "Ustvari novo poverilo",
+ "Cancel" : "Prekliči",
+ "Settings" : "Nastavitve",
+ "Account" : "Račun",
+ "URL" : "Naslov URL",
+ "Decline" : "Zavrni",
+ "Logout" : "Odjava",
+ "Ignore" : "Prezri",
+ "Passman Settings" : "Nastavitve Passman",
+ "GitHub version:" : "Različica GitHub:",
+ "A newer version of Passman is available" : "Na voljo je nova različica programa Passman",
+ "Password sharing" : "Souporaba gesla",
+ "Source account" : "Izvorni račun",
+ "Destination account" : "Ciljni račun",
+ "Dismiss" : "Opusti"
+},
+"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/l10n/sl.json b/l10n/sl.json
new file mode 100644
index 00000000..639a5a1d
--- /dev/null
+++ b/l10n/sl.json
@@ -0,0 +1,45 @@
+{ "translations": {
+ "Passwords" : "Gesla",
+ "Incorrect vault password!" : "Napačno geslo trezorja!",
+ "Passwords do not match" : "Gesli se ne skladata",
+ "General" : "Splošno",
+ "Custom Fields" : "Polja po meri",
+ "Error loading file" : "Napaka pri nalaganju datoteke",
+ "Credential created!" : "Poverila so ustvarjena!",
+ "Credential deleted" : "Poverila so izbrisana",
+ "Credential updated" : "Poverila so posodobljena",
+ "Credential destroyed" : "Poverila uničena",
+ "Invalid QR code" : "Neveljavna koda QR",
+ "Settings saved" : "Nastavitve so shranjene.",
+ "General settings" : "Splošne nastavitve",
+ "Password settings" : "Nastavitve gesla",
+ "Sharing" : "Souporaba",
+ "Share link" : "Povezava za souporabo",
+ "Saved!" : "Shranjeno!",
+ "Good" : "Dobro",
+ "Strong" : "Močno",
+ "Generate password" : "Izdelaj geslo",
+ "Username" : "Uporabniško ime",
+ "Upload date" : "Datum pošiljanja",
+ "Password generation settings" : "Nastavitve ustvarjanja gesel",
+ "Upload progress" : "Napredek pošiljanja",
+ "Uploading" : "Poteka pošiljanje",
+ "Details" : "Podrobnosti",
+ "Hide details" : "Skrij podrobnosti",
+ "Create new credential" : "Ustvari novo poverilo",
+ "Cancel" : "Prekliči",
+ "Settings" : "Nastavitve",
+ "Account" : "Račun",
+ "URL" : "Naslov URL",
+ "Decline" : "Zavrni",
+ "Logout" : "Odjava",
+ "Ignore" : "Prezri",
+ "Passman Settings" : "Nastavitve Passman",
+ "GitHub version:" : "Različica GitHub:",
+ "A newer version of Passman is available" : "Na voljo je nova različica programa Passman",
+ "Password sharing" : "Souporaba gesla",
+ "Source account" : "Izvorni račun",
+ "Destination account" : "Ciljni račun",
+ "Dismiss" : "Opusti"
+},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
+} \ No newline at end of file
diff --git a/l10n/sr.js b/l10n/sr.js
index cceed0a5..2c9ea964 100644
--- a/l10n/sr.js
+++ b/l10n/sr.js
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Аргхх… акредитиви нису нађени. Можда су истекли",
"Compromise!" : "Компромитована!",
"Compromised!" : "Компромитована!",
- "This password is compromised. You can only remove this warning with changing the password." : "Ова лозинка је компромитована. Можете уклонити ово упозорење једино променом лозинке.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Ова лозинка је компромитована. Можете уклонити ово упозорење једино променом лозинке.",
"email" : "е-пошта",
"Description" : "Опис",
"Url" : "Адреса",
diff --git a/l10n/sr.json b/l10n/sr.json
index 77a0df5f..c6aa09ee 100644
--- a/l10n/sr.json
+++ b/l10n/sr.json
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Аргхх… акредитиви нису нађени. Можда су истекли",
"Compromise!" : "Компромитована!",
"Compromised!" : "Компромитована!",
- "This password is compromised. You can only remove this warning with changing the password." : "Ова лозинка је компромитована. Можете уклонити ово упозорење једино променом лозинке.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Ова лозинка је компромитована. Можете уклонити ово упозорење једино променом лозинке.",
"email" : "е-пошта",
"Description" : "Опис",
"Url" : "Адреса",
diff --git a/l10n/tr.js b/l10n/tr.js
index 7b84cfe3..05e5758f 100644
--- a/l10n/tr.js
+++ b/l10n/tr.js
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "Kimlik doğrulama bilgileri bulunamadı. Süresi geçmiş olabilir",
"Compromise!" : "Tehlikeli!",
"Compromised!" : "Tehlikeye atılmış!",
- "This password is compromised. You can only remove this warning with changing the password." : "Bu parolayı kullanmak tehlikeli. Bu uyarı yalnız parolayı değiştirerek kaldırabilirsiniz.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Bu parolayı kullanmak tehlikeli. Bu uyarı yalnız parolayı değiştirerek kaldırabilirsiniz.",
"email" : "e-posta",
"Description" : "Açıklama",
"Url" : "Adres",
diff --git a/l10n/tr.json b/l10n/tr.json
index 3cde3837..d76d8d08 100644
--- a/l10n/tr.json
+++ b/l10n/tr.json
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "Kimlik doğrulama bilgileri bulunamadı. Süresi geçmiş olabilir",
"Compromise!" : "Tehlikeli!",
"Compromised!" : "Tehlikeye atılmış!",
- "This password is compromised. You can only remove this warning with changing the password." : "Bu parolayı kullanmak tehlikeli. Bu uyarı yalnız parolayı değiştirerek kaldırabilirsiniz.",
+ "This password is compromised. You can only remove this warning by changing the password." : "Bu parolayı kullanmak tehlikeli. Bu uyarı yalnız parolayı değiştirerek kaldırabilirsiniz.",
"email" : "e-posta",
"Description" : "Açıklama",
"Url" : "Adres",
diff --git a/l10n/zh_CN.js b/l10n/zh_CN.js
index 053e4867..e34de9e9 100644
--- a/l10n/zh_CN.js
+++ b/l10n/zh_CN.js
@@ -296,7 +296,7 @@ OC.L10N.register(
"Awwhh… credential not found. Maybe it expired" : "哎呀... 没有找到证书。也许它过期了",
"Compromise!" : "密码泄露!",
"Compromised!" : "已被泄露!",
- "This password is compromised. You can only remove this warning with changing the password." : "此密码已被泄露。您可以通过修改密码来清除此告警。",
+ "This password is compromised. You can only remove this warning by changing the password." : "此密码已被泄露。您只能通过修改密码来移除此警告。",
"email" : "电子邮件",
"Description" : "描述",
"Url" : "Url",
diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json
index 8cbe753b..cd816a12 100644
--- a/l10n/zh_CN.json
+++ b/l10n/zh_CN.json
@@ -294,7 +294,7 @@
"Awwhh… credential not found. Maybe it expired" : "哎呀... 没有找到证书。也许它过期了",
"Compromise!" : "密码泄露!",
"Compromised!" : "已被泄露!",
- "This password is compromised. You can only remove this warning with changing the password." : "此密码已被泄露。您可以通过修改密码来清除此告警。",
+ "This password is compromised. You can only remove this warning by changing the password." : "此密码已被泄露。您只能通过修改密码来移除此警告。",
"email" : "电子邮件",
"Description" : "描述",
"Url" : "Url",
diff --git a/l10n/zh_TW.js b/l10n/zh_TW.js
new file mode 100644
index 00000000..4f46b931
--- /dev/null
+++ b/l10n/zh_TW.js
@@ -0,0 +1,77 @@
+OC.L10N.register(
+ "passman",
+ {
+ "Passwords" : "密碼",
+ "General" : "一般",
+ "Custom Fields" : "自定義欄位",
+ "Error loading file" : "載入檔案錯誤",
+ "An error occurred during decryption" : "解密時發生錯誤",
+ "Invalid QR code" : "無效的QR code",
+ "Starting export" : "開始輸出",
+ "Decrypting credentials" : "帳號密碼加密中",
+ "Done" : "已完成",
+ "Importing" : "匯入中",
+ "Start import" : "開始匯入",
+ "Select CSV file" : "請選擇一個CSV檔案",
+ "General settings" : "一般設定",
+ "Password settings" : "密碼設定",
+ "Sharing" : "分享",
+ "New password does not match!" : "密碼不相符",
+ "Share link" : "分享連結",
+ "Saved!" : "已儲存",
+ "Copy to clipboard" : "複製到剪貼簿",
+ "Generate password" : "產生密碼",
+ "Complete" : "完成",
+ "Repeat password" : "再輸入一次密碼",
+ "Text" : "文字",
+ "File" : "檔案",
+ "Add" : "新增",
+ "Type" : "類型",
+ "Empty" : "空的",
+ "Filename" : "檔名",
+ "Upload date" : "上傳日期",
+ "Size" : "大小",
+ "Current OTP settings" : "目前OTP設定",
+ "Week(s)" : "週",
+ "Month(s)" : "月",
+ "Year(s)" : "年",
+ "Password generation settings" : "密碼產生設定",
+ "Password length" : "密碼長度",
+ "Use uppercase letters" : "使用大寫字母",
+ "Use lowercase letters" : "使用小寫字母",
+ "Use numbers" : "使用數字",
+ "Use special characters" : "使用特殊符號",
+ "Avoid ambiguous characters" : "避免含糊符號",
+ "Require every character type" : "需要全部符號類型",
+ "Export type" : "匯出類型",
+ "Export" : "匯出",
+ "Repeat new vault password" : "再輸入一次新密碼",
+ "Version" : "版本",
+ "Import" : "匯入",
+ "Private Key" : "私鑰",
+ "Public key" : "公鑰",
+ "Key size" : "金鑰尺寸",
+ "Save keys" : "儲存金鑰",
+ "Start scan" : "開始掃描",
+ "Result" : "結果",
+ "Score" : "分數",
+ "User" : "使用者",
+ "Read" : "讀取",
+ "Write" : "寫入",
+ "Files" : "檔案",
+ "Show files" : "顯示檔案",
+ "Details" : "詳細資料",
+ "Rank" : "排名",
+ "Save" : "儲存",
+ "Cancel" : "Cancel",
+ "Settings" : "設定",
+ "Unshare" : "取消分享",
+ "E-mail" : "E-mail",
+ "URL" : "URL",
+ "Created" : "已新增",
+ "Decline" : "拒絕",
+ "Remind me later" : "稍後提醒我",
+ "Ignore" : "忽略",
+ "Connection to server lost" : "伺服器斷線了"
+},
+"nplurals=1; plural=0;");
diff --git a/l10n/zh_TW.json b/l10n/zh_TW.json
new file mode 100644
index 00000000..f5509cef
--- /dev/null
+++ b/l10n/zh_TW.json
@@ -0,0 +1,75 @@
+{ "translations": {
+ "Passwords" : "密碼",
+ "General" : "一般",
+ "Custom Fields" : "自定義欄位",
+ "Error loading file" : "載入檔案錯誤",
+ "An error occurred during decryption" : "解密時發生錯誤",
+ "Invalid QR code" : "無效的QR code",
+ "Starting export" : "開始輸出",
+ "Decrypting credentials" : "帳號密碼加密中",
+ "Done" : "已完成",
+ "Importing" : "匯入中",
+ "Start import" : "開始匯入",
+ "Select CSV file" : "請選擇一個CSV檔案",
+ "General settings" : "一般設定",
+ "Password settings" : "密碼設定",
+ "Sharing" : "分享",
+ "New password does not match!" : "密碼不相符",
+ "Share link" : "分享連結",
+ "Saved!" : "已儲存",
+ "Copy to clipboard" : "複製到剪貼簿",
+ "Generate password" : "產生密碼",
+ "Complete" : "完成",
+ "Repeat password" : "再輸入一次密碼",
+ "Text" : "文字",
+ "File" : "檔案",
+ "Add" : "新增",
+ "Type" : "類型",
+ "Empty" : "空的",
+ "Filename" : "檔名",
+ "Upload date" : "上傳日期",
+ "Size" : "大小",
+ "Current OTP settings" : "目前OTP設定",
+ "Week(s)" : "週",
+ "Month(s)" : "月",
+ "Year(s)" : "年",
+ "Password generation settings" : "密碼產生設定",
+ "Password length" : "密碼長度",
+ "Use uppercase letters" : "使用大寫字母",
+ "Use lowercase letters" : "使用小寫字母",
+ "Use numbers" : "使用數字",
+ "Use special characters" : "使用特殊符號",
+ "Avoid ambiguous characters" : "避免含糊符號",
+ "Require every character type" : "需要全部符號類型",
+ "Export type" : "匯出類型",
+ "Export" : "匯出",
+ "Repeat new vault password" : "再輸入一次新密碼",
+ "Version" : "版本",
+ "Import" : "匯入",
+ "Private Key" : "私鑰",
+ "Public key" : "公鑰",
+ "Key size" : "金鑰尺寸",
+ "Save keys" : "儲存金鑰",
+ "Start scan" : "開始掃描",
+ "Result" : "結果",
+ "Score" : "分數",
+ "User" : "使用者",
+ "Read" : "讀取",
+ "Write" : "寫入",
+ "Files" : "檔案",
+ "Show files" : "顯示檔案",
+ "Details" : "詳細資料",
+ "Rank" : "排名",
+ "Save" : "儲存",
+ "Cancel" : "Cancel",
+ "Settings" : "設定",
+ "Unshare" : "取消分享",
+ "E-mail" : "E-mail",
+ "URL" : "URL",
+ "Created" : "已新增",
+ "Decline" : "拒絕",
+ "Remind me later" : "稍後提醒我",
+ "Ignore" : "忽略",
+ "Connection to server lost" : "伺服器斷線了"
+},"pluralForm" :"nplurals=1; plural=0;"
+} \ No newline at end of file
diff --git a/lib/Notifier.php b/lib/Notifier.php
index fcf7e45a..3282fc4c 100644
--- a/lib/Notifier.php
+++ b/lib/Notifier.php
@@ -37,7 +37,7 @@ class Notifier implements INotifier {
* @param INotification $notification
* @param string $languageCode The code of the language that should be used to prepare the notification
*/
- public function prepare(INotification $notification, $languageCode) {
+ public function prepare(INotification $notification, string $languageCode): INotification {
if ($notification->getApp() !== 'passman') {
// Not my app => throw
throw new \InvalidArgumentException();
@@ -109,4 +109,22 @@ class Notifier implements INotifier {
throw new \InvalidArgumentException();
}
}
-} \ No newline at end of file
+
+ /**
+ * Identifier of the notifier
+ *
+ * @return string
+ */
+ public function getID(): string {
+ return 'passman';
+ }
+
+ /**
+ * Human readable name describing the notifier
+ *
+ * @return string
+ */
+ public function getName(): string {
+ return $this->factory->get('passman')->t('Passwords');
+ }
+}
diff --git a/lib/Service/CronService.php b/lib/Service/CronService.php
index dba14371..d84deffb 100644
--- a/lib/Service/CronService.php
+++ b/lib/Service/CronService.php
@@ -52,7 +52,7 @@ class CronService {
foreach($expired_credentials as $credential){
$link = ''; // @TODO create direct link to credential
- $sql = 'SELECT count(*) as rows from `*PREFIX*notifications` WHERE `subject`= \'credential_expired\' AND object_id=?';
+ $sql = 'SELECT count(*) as `rows` from `*PREFIX*notifications` WHERE `subject`= \'credential_expired\' AND object_id=?';
$id = $credential->getId();
$result = $this->db->executeQuery($sql, array($id));
$this->logger->debug($credential->getLabel() .' is expired, checking notifications!', array('app' => 'passman'));